From 5bf66662a9bdd62c5bccab15e607cd95cfb8fcab Mon Sep 17 00:00:00 2001 From: Charles Cabergs Date: Mon, 27 Jul 2020 10:05:23 +0200 Subject: Removed wordpress and phpmyadmin, my server doesn't handle it well and it brings shame on my familly --- srcs/phpmyadmin/vendor/autoload.php | 7 - .../vendor/bacon/bacon-qr-code/CHANGELOG.md | 37 - srcs/phpmyadmin/vendor/bacon/bacon-qr-code/LICENSE | 22 - .../vendor/bacon/bacon-qr-code/README.md | 39 - .../vendor/bacon/bacon-qr-code/composer.json | 32 - .../bacon/bacon-qr-code/src/Common/BitArray.php | 372 - .../bacon/bacon-qr-code/src/Common/BitMatrix.php | 313 - .../bacon/bacon-qr-code/src/Common/BitUtils.php | 41 - .../bacon-qr-code/src/Common/CharacterSetEci.php | 180 - .../bacon/bacon-qr-code/src/Common/EcBlock.php | 49 - .../bacon/bacon-qr-code/src/Common/EcBlocks.php | 74 - .../src/Common/ErrorCorrectionLevel.php | 63 - .../bacon-qr-code/src/Common/FormatInformation.php | 203 - .../vendor/bacon/bacon-qr-code/src/Common/Mode.php | 76 - .../bacon-qr-code/src/Common/ReedSolomonCodec.php | 468 - .../bacon/bacon-qr-code/src/Common/Version.php | 596 - .../bacon/bacon-qr-code/src/Encoder/BlockPair.php | 58 - .../bacon/bacon-qr-code/src/Encoder/ByteMatrix.php | 150 - .../bacon/bacon-qr-code/src/Encoder/Encoder.php | 652 - .../bacon/bacon-qr-code/src/Encoder/MaskUtil.php | 271 - .../bacon/bacon-qr-code/src/Encoder/MatrixUtil.php | 513 - .../bacon/bacon-qr-code/src/Encoder/QrCode.php | 141 - .../src/Exception/ExceptionInterface.php | 10 - .../src/Exception/InvalidArgumentException.php | 8 - .../src/Exception/OutOfBoundsException.php | 8 - .../src/Exception/RuntimeException.php | 8 - .../src/Exception/UnexpectedValueException.php | 8 - .../src/Exception/WriterException.php | 8 - .../bacon-qr-code/src/Renderer/Color/Alpha.php | 57 - .../bacon-qr-code/src/Renderer/Color/Cmyk.php | 103 - .../src/Renderer/Color/ColorInterface.php | 22 - .../bacon-qr-code/src/Renderer/Color/Gray.php | 46 - .../bacon/bacon-qr-code/src/Renderer/Color/Rgb.php | 88 - .../src/Renderer/Eye/CompositeEye.php | 38 - .../src/Renderer/Eye/EyeInterface.php | 26 - .../bacon-qr-code/src/Renderer/Eye/ModuleEye.php | 54 - .../src/Renderer/Eye/SimpleCircleEye.php | 54 - .../bacon-qr-code/src/Renderer/Eye/SquareEye.php | 53 - .../src/Renderer/Image/EpsImageBackEnd.php | 376 - .../src/Renderer/Image/ImageBackEndInterface.php | 87 - .../src/Renderer/Image/ImagickImageBackEnd.php | 339 - .../src/Renderer/Image/SvgImageBackEnd.php | 369 - .../src/Renderer/Image/TransformationMatrix.php | 67 - .../bacon-qr-code/src/Renderer/ImageRenderer.php | 152 - .../src/Renderer/Module/DotsModule.php | 63 - .../src/Renderer/Module/EdgeIterator/Edge.php | 100 - .../Renderer/Module/EdgeIterator/EdgeIterator.php | 169 - .../src/Renderer/Module/ModuleInterface.php | 18 - .../src/Renderer/Module/RoundnessModule.php | 129 - .../src/Renderer/Module/SquareModule.php | 47 - .../bacon-qr-code/src/Renderer/Path/Close.php | 29 - .../bacon-qr-code/src/Renderer/Path/Curve.php | 92 - .../src/Renderer/Path/EllipticArc.php | 278 - .../bacon/bacon-qr-code/src/Renderer/Path/Line.php | 41 - .../bacon/bacon-qr-code/src/Renderer/Path/Move.php | 41 - .../src/Renderer/Path/OperationInterface.php | 12 - .../bacon/bacon-qr-code/src/Renderer/Path/Path.php | 106 - .../src/Renderer/PlainTextRenderer.php | 86 - .../src/Renderer/RendererInterface.php | 11 - .../src/Renderer/RendererStyle/EyeFill.php | 74 - .../src/Renderer/RendererStyle/Fill.php | 168 - .../src/Renderer/RendererStyle/Gradient.php | 46 - .../src/Renderer/RendererStyle/GradientType.php | 22 - .../src/Renderer/RendererStyle/RendererStyle.php | 90 - .../vendor/bacon/bacon-qr-code/src/Writer.php | 68 - srcs/phpmyadmin/vendor/bin/highlight-query | 1 - srcs/phpmyadmin/vendor/bin/lint-query | 1 - srcs/phpmyadmin/vendor/bin/tokenize-query | 1 - srcs/phpmyadmin/vendor/composer/ClassLoader.php | 445 - srcs/phpmyadmin/vendor/composer/LICENSE | 21 - .../vendor/composer/autoload_classmap.php | 23 - srcs/phpmyadmin/vendor/composer/autoload_files.php | 13 - .../vendor/composer/autoload_namespaces.php | 11 - srcs/phpmyadmin/vendor/composer/autoload_psr4.php | 42 - srcs/phpmyadmin/vendor/composer/autoload_real.php | 70 - .../phpmyadmin/vendor/composer/autoload_static.php | 252 - srcs/phpmyadmin/vendor/composer/installed.json | 1884 - srcs/phpmyadmin/vendor/dasprid/enum/.coveralls.yml | 2 - srcs/phpmyadmin/vendor/dasprid/enum/.travis.yml | 41 - srcs/phpmyadmin/vendor/dasprid/enum/README.md | 164 - srcs/phpmyadmin/vendor/dasprid/enum/composer.json | 30 - srcs/phpmyadmin/vendor/dasprid/enum/phpcs.xml | 30 - .../vendor/dasprid/enum/phpunit.xml.dist | 17 - .../vendor/dasprid/enum/src/AbstractEnum.php | 241 - .../phpmyadmin/vendor/dasprid/enum/src/EnumMap.php | 375 - .../src/Exception/CloneNotSupportedException.php | 10 - .../enum/src/Exception/ExceptionInterface.php | 10 - .../enum/src/Exception/ExpectationException.php | 10 - .../src/Exception/IllegalArgumentException.php | 10 - .../enum/src/Exception/MismatchException.php | 10 - .../Exception/SerializeNotSupportedException.php | 10 - .../Exception/UnserializeNotSupportedException.php | 10 - .../vendor/dasprid/enum/src/NullValue.php | 55 - .../vendor/dasprid/enum/test/AbstractEnumTest.php | 121 - .../vendor/dasprid/enum/test/EnumMapTest.php | 243 - .../vendor/dasprid/enum/test/NullValueTest.php | 31 - .../phpmyadmin/vendor/dasprid/enum/test/Planet.php | 73 - .../vendor/dasprid/enum/test/WeekDay.php | 26 - .../recaptcha/.github/ISSUE_TEMPLATE/bug_report.md | 28 - .../phpmyadmin/vendor/google/recaptcha/.travis.yml | 33 - .../vendor/google/recaptcha/ARCHITECTURE.md | 64 - .../vendor/google/recaptcha/CONTRIBUTING.md | 49 - srcs/phpmyadmin/vendor/google/recaptcha/LICENSE | 29 - srcs/phpmyadmin/vendor/google/recaptcha/README.md | 140 - srcs/phpmyadmin/vendor/google/recaptcha/app.yaml | 8 - .../vendor/google/recaptcha/composer.json | 39 - .../vendor/google/recaptcha/phpunit.xml.dist | 20 - .../google/recaptcha/src/ReCaptcha/ReCaptcha.php | 269 - .../recaptcha/src/ReCaptcha/RequestMethod.php | 50 - .../recaptcha/src/ReCaptcha/RequestMethod/Curl.php | 82 - .../src/ReCaptcha/RequestMethod/CurlPost.php | 104 - .../recaptcha/src/ReCaptcha/RequestMethod/Post.php | 88 - .../src/ReCaptcha/RequestMethod/Socket.php | 112 - .../src/ReCaptcha/RequestMethod/SocketPost.php | 108 - .../recaptcha/src/ReCaptcha/RequestParameters.php | 111 - .../google/recaptcha/src/ReCaptcha/Response.php | 218 - .../vendor/google/recaptcha/src/autoload.php | 69 - .../paragonie/constant_time_encoding/.travis.yml | 23 - .../paragonie/constant_time_encoding/LICENSE.txt | 48 - .../paragonie/constant_time_encoding/README.md | 84 - .../paragonie/constant_time_encoding/composer.json | 51 - .../constant_time_encoding/phpunit.xml.dist | 23 - .../paragonie/constant_time_encoding/psalm.xml | 9 - .../constant_time_encoding/src/Base32.php | 471 - .../constant_time_encoding/src/Base32Hex.php | 111 - .../constant_time_encoding/src/Base64.php | 271 - .../constant_time_encoding/src/Base64DotSlash.php | 88 - .../src/Base64DotSlashOrdered.php | 82 - .../constant_time_encoding/src/Base64UrlSafe.php | 95 - .../constant_time_encoding/src/Binary.php | 85 - .../src/EncoderInterface.php | 52 - .../constant_time_encoding/src/Encoding.php | 260 - .../paragonie/constant_time_encoding/src/Hex.php | 159 - .../constant_time_encoding/src/RFC4648.php | 175 - .../constant_time_encoding/tests/Base32HexTest.php | 49 - .../constant_time_encoding/tests/Base32Test.php | 50 - .../tests/Base64DotSlashOrderedTest.php | 34 - .../tests/Base64DotSlashTest.php | 34 - .../constant_time_encoding/tests/Base64Test.php | 79 - .../tests/Base64UrlSafeTest.php | 58 - .../constant_time_encoding/tests/EncodingTest.php | 307 - .../constant_time_encoding/tests/HexTest.php | 39 - .../constant_time_encoding/tests/RFC4648Test.php | 84 - .../vendor/paragonie/random_compat/LICENSE | 22 - .../vendor/paragonie/random_compat/build-phar.sh | 5 - .../vendor/paragonie/random_compat/composer.json | 34 - .../random_compat/dist/random_compat.phar.pubkey | 5 - .../dist/random_compat.phar.pubkey.asc | 11 - .../vendor/paragonie/random_compat/lib/random.php | 32 - .../paragonie/random_compat/other/build_phar.php | 57 - .../paragonie/random_compat/psalm-autoload.php | 9 - .../vendor/paragonie/random_compat/psalm.xml | 19 - .../phpmyadmin/motranslator/.github/stale.yml | 23 - .../vendor/phpmyadmin/motranslator/CHANGES.md | 86 - .../vendor/phpmyadmin/motranslator/CONTRIBUTING.md | 42 - .../vendor/phpmyadmin/motranslator/LICENSE | 339 - .../vendor/phpmyadmin/motranslator/PERFORMANCE.md | 28 - .../vendor/phpmyadmin/motranslator/README.md | 147 - .../vendor/phpmyadmin/motranslator/codecov.yml | 3 - .../vendor/phpmyadmin/motranslator/composer.json | 37 - .../vendor/phpmyadmin/motranslator/phpunit.xml | 32 - .../vendor/phpmyadmin/motranslator/src/Loader.php | 247 - .../motranslator/src/ReaderException.php | 30 - .../phpmyadmin/motranslator/src/StringReader.php | 97 - .../phpmyadmin/motranslator/src/Translator.php | 375 - .../phpmyadmin/motranslator/src/functions.php | 215 - .../vendor/phpmyadmin/shapefile/CHANGELOG.md | 80 - .../vendor/phpmyadmin/shapefile/CONTRIBUTING.md | 42 - .../phpmyadmin/vendor/phpmyadmin/shapefile/LICENSE | 339 - .../vendor/phpmyadmin/shapefile/README.md | 57 - .../vendor/phpmyadmin/shapefile/codecov.yml | 3 - .../vendor/phpmyadmin/shapefile/composer.json | 33 - .../vendor/phpmyadmin/shapefile/phpunit.xml | 25 - .../vendor/phpmyadmin/shapefile/src/ShapeFile.php | 647 - .../phpmyadmin/shapefile/src/ShapeRecord.php | 849 - .../vendor/phpmyadmin/shapefile/src/Util.php | 118 - .../vendor/phpmyadmin/sql-parser/.github/stale.yml | 23 - .../vendor/phpmyadmin/sql-parser/.weblate | 3 - .../vendor/phpmyadmin/sql-parser/CHANGELOG.md | 382 - .../phpmyadmin/sql-parser/CODE_OF_CONDUCT.md | 76 - .../vendor/phpmyadmin/sql-parser/CONTRIBUTING.md | 54 - .../vendor/phpmyadmin/sql-parser/LICENSE.txt | 339 - .../vendor/phpmyadmin/sql-parser/README.md | 131 - .../phpmyadmin/sql-parser/bin/highlight-query | 30 - .../vendor/phpmyadmin/sql-parser/bin/lint-query | 30 - .../phpmyadmin/sql-parser/bin/tokenize-query | 30 - .../vendor/phpmyadmin/sql-parser/codecov.yml | 3 - .../vendor/phpmyadmin/sql-parser/composer.json | 56 - .../sql-parser/locale/af/LC_MESSAGES/sqlparser.mo | Bin 530 -> 0 bytes .../sql-parser/locale/ar/LC_MESSAGES/sqlparser.mo | Bin 5266 -> 0 bytes .../sql-parser/locale/ast/LC_MESSAGES/sqlparser.mo | Bin 3308 -> 0 bytes .../sql-parser/locale/az/LC_MESSAGES/sqlparser.mo | Bin 3495 -> 0 bytes .../sql-parser/locale/be/LC_MESSAGES/sqlparser.mo | Bin 5583 -> 0 bytes .../locale/be@latin/LC_MESSAGES/sqlparser.mo | Bin 4644 -> 0 bytes .../sql-parser/locale/bg/LC_MESSAGES/sqlparser.mo | Bin 970 -> 0 bytes .../sql-parser/locale/bn/LC_MESSAGES/sqlparser.mo | Bin 528 -> 0 bytes .../sql-parser/locale/br/LC_MESSAGES/sqlparser.mo | Bin 526 -> 0 bytes .../sql-parser/locale/brx/LC_MESSAGES/sqlparser.mo | Bin 529 -> 0 bytes .../sql-parser/locale/bs/LC_MESSAGES/sqlparser.mo | Bin 602 -> 0 bytes .../sql-parser/locale/ca/LC_MESSAGES/sqlparser.mo | Bin 4664 -> 0 bytes .../sql-parser/locale/ckb/LC_MESSAGES/sqlparser.mo | Bin 533 -> 0 bytes .../sql-parser/locale/cs/LC_MESSAGES/sqlparser.mo | Bin 1345 -> 0 bytes .../sql-parser/locale/cy/LC_MESSAGES/sqlparser.mo | Bin 585 -> 0 bytes .../sql-parser/locale/da/LC_MESSAGES/sqlparser.mo | Bin 4474 -> 0 bytes .../sql-parser/locale/de/LC_MESSAGES/sqlparser.mo | Bin 4667 -> 0 bytes .../sql-parser/locale/el/LC_MESSAGES/sqlparser.mo | Bin 5842 -> 0 bytes .../locale/en_GB/LC_MESSAGES/sqlparser.mo | Bin 4438 -> 0 bytes .../sql-parser/locale/eo/LC_MESSAGES/sqlparser.mo | Bin 573 -> 0 bytes .../sql-parser/locale/es/LC_MESSAGES/sqlparser.mo | Bin 4645 -> 0 bytes .../sql-parser/locale/et/LC_MESSAGES/sqlparser.mo | Bin 4285 -> 0 bytes .../sql-parser/locale/eu/LC_MESSAGES/sqlparser.mo | Bin 527 -> 0 bytes .../sql-parser/locale/fa/LC_MESSAGES/sqlparser.mo | Bin 720 -> 0 bytes .../sql-parser/locale/fi/LC_MESSAGES/sqlparser.mo | Bin 2354 -> 0 bytes .../sql-parser/locale/fr/LC_MESSAGES/sqlparser.mo | Bin 4678 -> 0 bytes .../sql-parser/locale/fy/LC_MESSAGES/sqlparser.mo | Bin 541 -> 0 bytes .../sql-parser/locale/gl/LC_MESSAGES/sqlparser.mo | Bin 529 -> 0 bytes .../sql-parser/locale/gu/LC_MESSAGES/sqlparser.mo | Bin 2529 -> 0 bytes .../sql-parser/locale/he/LC_MESSAGES/sqlparser.mo | Bin 5288 -> 0 bytes .../sql-parser/locale/hi/LC_MESSAGES/sqlparser.mo | Bin 526 -> 0 bytes .../sql-parser/locale/hr/LC_MESSAGES/sqlparser.mo | Bin 603 -> 0 bytes .../sql-parser/locale/hu/LC_MESSAGES/sqlparser.mo | Bin 3655 -> 0 bytes .../sql-parser/locale/hy/LC_MESSAGES/sqlparser.mo | Bin 1700 -> 0 bytes .../sql-parser/locale/ia/LC_MESSAGES/sqlparser.mo | Bin 4711 -> 0 bytes .../sql-parser/locale/id/LC_MESSAGES/sqlparser.mo | Bin 4461 -> 0 bytes .../sql-parser/locale/it/LC_MESSAGES/sqlparser.mo | Bin 4698 -> 0 bytes .../sql-parser/locale/ja/LC_MESSAGES/sqlparser.mo | Bin 5051 -> 0 bytes .../sql-parser/locale/ka/LC_MESSAGES/sqlparser.mo | Bin 524 -> 0 bytes .../sql-parser/locale/kk/LC_MESSAGES/sqlparser.mo | Bin 4361 -> 0 bytes .../sql-parser/locale/km/LC_MESSAGES/sqlparser.mo | Bin 620 -> 0 bytes .../sql-parser/locale/kn/LC_MESSAGES/sqlparser.mo | Bin 540 -> 0 bytes .../sql-parser/locale/ko/LC_MESSAGES/sqlparser.mo | Bin 4906 -> 0 bytes .../sql-parser/locale/ksh/LC_MESSAGES/sqlparser.mo | Bin 539 -> 0 bytes .../sql-parser/locale/ky/LC_MESSAGES/sqlparser.mo | Bin 527 -> 0 bytes .../sql-parser/locale/li/LC_MESSAGES/sqlparser.mo | Bin 546 -> 0 bytes .../sql-parser/locale/lt/LC_MESSAGES/sqlparser.mo | Bin 594 -> 0 bytes .../sql-parser/locale/lv/LC_MESSAGES/sqlparser.mo | Bin 568 -> 0 bytes .../sql-parser/locale/mk/LC_MESSAGES/sqlparser.mo | Bin 548 -> 0 bytes .../sql-parser/locale/ml/LC_MESSAGES/sqlparser.mo | Bin 530 -> 0 bytes .../sql-parser/locale/mn/LC_MESSAGES/sqlparser.mo | Bin 770 -> 0 bytes .../sql-parser/locale/ms/LC_MESSAGES/sqlparser.mo | Bin 521 -> 0 bytes .../sql-parser/locale/nb/LC_MESSAGES/sqlparser.mo | Bin 4354 -> 0 bytes .../sql-parser/locale/ne/LC_MESSAGES/sqlparser.mo | Bin 527 -> 0 bytes .../sql-parser/locale/nl/LC_MESSAGES/sqlparser.mo | Bin 4586 -> 0 bytes .../sql-parser/locale/pa/LC_MESSAGES/sqlparser.mo | Bin 527 -> 0 bytes .../sql-parser/locale/pl/LC_MESSAGES/sqlparser.mo | Bin 4575 -> 0 bytes .../sql-parser/locale/pt/LC_MESSAGES/sqlparser.mo | Bin 4608 -> 0 bytes .../locale/pt_BR/LC_MESSAGES/sqlparser.mo | Bin 4713 -> 0 bytes .../sql-parser/locale/ro/LC_MESSAGES/sqlparser.mo | Bin 4740 -> 0 bytes .../sql-parser/locale/ru/LC_MESSAGES/sqlparser.mo | Bin 5702 -> 0 bytes .../sql-parser/locale/si/LC_MESSAGES/sqlparser.mo | Bin 1719 -> 0 bytes .../sql-parser/locale/sk/LC_MESSAGES/sqlparser.mo | Bin 4594 -> 0 bytes .../sql-parser/locale/sl/LC_MESSAGES/sqlparser.mo | Bin 4575 -> 0 bytes .../sql-parser/locale/sq/LC_MESSAGES/sqlparser.mo | Bin 4496 -> 0 bytes .../phpmyadmin/sql-parser/locale/sqlparser.pot | 217 - .../sql-parser/locale/sr/LC_MESSAGES/sqlparser.mo | Bin 602 -> 0 bytes .../locale/sr@latin/LC_MESSAGES/sqlparser.mo | Bin 624 -> 0 bytes .../sql-parser/locale/sv/LC_MESSAGES/sqlparser.mo | Bin 3254 -> 0 bytes .../sql-parser/locale/ta/LC_MESSAGES/sqlparser.mo | Bin 766 -> 0 bytes .../sql-parser/locale/te/LC_MESSAGES/sqlparser.mo | Bin 1092 -> 0 bytes .../sql-parser/locale/th/LC_MESSAGES/sqlparser.mo | Bin 7120 -> 0 bytes .../sql-parser/locale/tk/LC_MESSAGES/sqlparser.mo | Bin 527 -> 0 bytes .../sql-parser/locale/tr/LC_MESSAGES/sqlparser.mo | Bin 4583 -> 0 bytes .../sql-parser/locale/tt/LC_MESSAGES/sqlparser.mo | Bin 521 -> 0 bytes .../sql-parser/locale/ug/LC_MESSAGES/sqlparser.mo | Bin 543 -> 0 bytes .../sql-parser/locale/uk/LC_MESSAGES/sqlparser.mo | Bin 5750 -> 0 bytes .../sql-parser/locale/ur/LC_MESSAGES/sqlparser.mo | Bin 527 -> 0 bytes .../sql-parser/locale/uz/LC_MESSAGES/sqlparser.mo | Bin 527 -> 0 bytes .../locale/uz@latin/LC_MESSAGES/sqlparser.mo | Bin 541 -> 0 bytes .../sql-parser/locale/vi/LC_MESSAGES/sqlparser.mo | Bin 4527 -> 0 bytes .../sql-parser/locale/vls/LC_MESSAGES/sqlparser.mo | Bin 548 -> 0 bytes .../locale/zh_CN/LC_MESSAGES/sqlparser.mo | Bin 4290 -> 0 bytes .../locale/zh_TW/LC_MESSAGES/sqlparser.mo | Bin 4408 -> 0 bytes .../vendor/phpmyadmin/sql-parser/phpcs.xml.dist | 39 - .../vendor/phpmyadmin/sql-parser/phpstan.neon.dist | 10 - .../vendor/phpmyadmin/sql-parser/phpunit.xml.dist | 46 - .../vendor/phpmyadmin/sql-parser/src/Component.php | 75 - .../sql-parser/src/Components/AlterOperation.php | 348 - .../sql-parser/src/Components/Array2d.php | 127 - .../sql-parser/src/Components/ArrayObj.php | 182 - .../sql-parser/src/Components/CaseExpression.php | 307 - .../sql-parser/src/Components/Condition.php | 227 - .../sql-parser/src/Components/CreateDefinition.php | 363 - .../sql-parser/src/Components/DataType.php | 169 - .../sql-parser/src/Components/Expression.php | 455 - .../sql-parser/src/Components/ExpressionArray.php | 123 - .../sql-parser/src/Components/FunctionCall.php | 113 - .../sql-parser/src/Components/GroupKeyword.php | 127 - .../sql-parser/src/Components/IndexHint.php | 188 - .../sql-parser/src/Components/IntoKeyword.php | 291 - .../sql-parser/src/Components/JoinKeyword.php | 222 - .../phpmyadmin/sql-parser/src/Components/Key.php | 211 - .../phpmyadmin/sql-parser/src/Components/Limit.php | 127 - .../sql-parser/src/Components/LockExpression.php | 200 - .../sql-parser/src/Components/OptionsArray.php | 367 - .../sql-parser/src/Components/OrderKeyword.php | 134 - .../src/Components/ParameterDefinition.php | 165 - .../src/Components/PartitionDefinition.php | 249 - .../sql-parser/src/Components/Reference.php | 156 - .../sql-parser/src/Components/RenameOperation.php | 176 - .../sql-parser/src/Components/SetOperation.php | 155 - .../sql-parser/src/Components/UnionKeyword.php | 31 - .../vendor/phpmyadmin/sql-parser/src/Context.php | 581 - .../src/Contexts/ContextMariaDb100000.php | 312 - .../src/Contexts/ContextMariaDb100100.php | 361 - .../src/Contexts/ContextMariaDb100200.php | 361 - .../src/Contexts/ContextMariaDb100300.php | 361 - .../sql-parser/src/Contexts/ContextMySql50000.php | 282 - .../sql-parser/src/Contexts/ContextMySql50100.php | 307 - .../sql-parser/src/Contexts/ContextMySql50500.php | 312 - .../sql-parser/src/Contexts/ContextMySql50600.php | 341 - .../sql-parser/src/Contexts/ContextMySql50700.php | 361 - .../sql-parser/src/Contexts/ContextMySql80000.php | 361 - .../vendor/phpmyadmin/sql-parser/src/Core.php | 49 - .../sql-parser/src/Exceptions/LexerException.php | 42 - .../sql-parser/src/Exceptions/LoaderException.php | 33 - .../sql-parser/src/Exceptions/ParserException.php | 34 - .../vendor/phpmyadmin/sql-parser/src/Lexer.php | 942 - .../vendor/phpmyadmin/sql-parser/src/Parser.php | 605 - .../vendor/phpmyadmin/sql-parser/src/Statement.php | 554 - .../sql-parser/src/Statements/AlterStatement.php | 146 - .../sql-parser/src/Statements/AnalyzeStatement.php | 38 - .../sql-parser/src/Statements/BackupStatement.php | 32 - .../sql-parser/src/Statements/CallStatement.php | 39 - .../sql-parser/src/Statements/CheckStatement.php | 31 - .../src/Statements/ChecksumStatement.php | 27 - .../sql-parser/src/Statements/CreateStatement.php | 741 - .../sql-parser/src/Statements/DeleteStatement.php | 375 - .../sql-parser/src/Statements/DropStatement.php | 82 - .../sql-parser/src/Statements/ExplainStatement.php | 14 - .../sql-parser/src/Statements/InsertStatement.php | 259 - .../sql-parser/src/Statements/LoadStatement.php | 418 - .../sql-parser/src/Statements/LockStatement.php | 124 - .../src/Statements/MaintenanceStatement.php | 57 - .../src/Statements/NotImplementedStatement.php | 57 - .../src/Statements/OptimizeStatement.php | 38 - .../sql-parser/src/Statements/PurgeStatement.php | 139 - .../sql-parser/src/Statements/RenameStatement.php | 54 - .../sql-parser/src/Statements/RepairStatement.php | 33 - .../sql-parser/src/Statements/ReplaceStatement.php | 197 - .../sql-parser/src/Statements/RestoreStatement.php | 29 - .../sql-parser/src/Statements/SelectStatement.php | 347 - .../sql-parser/src/Statements/SetStatement.php | 110 - .../sql-parser/src/Statements/ShowStatement.php | 62 - .../src/Statements/TransactionStatement.php | 110 - .../src/Statements/TruncateStatement.php | 42 - .../sql-parser/src/Statements/UpdateStatement.php | 117 - .../vendor/phpmyadmin/sql-parser/src/Token.php | 340 - .../phpmyadmin/sql-parser/src/TokensList.php | 199 - .../phpmyadmin/sql-parser/src/Translator.php | 71 - .../vendor/phpmyadmin/sql-parser/src/UtfString.php | 210 - .../sql-parser/src/Utils/BufferedQuery.php | 406 - .../vendor/phpmyadmin/sql-parser/src/Utils/CLI.php | 225 - .../phpmyadmin/sql-parser/src/Utils/Error.php | 96 - .../phpmyadmin/sql-parser/src/Utils/Formatter.php | 736 - .../phpmyadmin/sql-parser/src/Utils/Misc.php | 104 - .../phpmyadmin/sql-parser/src/Utils/Query.php | 871 - .../phpmyadmin/sql-parser/src/Utils/Routine.php | 139 - .../phpmyadmin/sql-parser/src/Utils/Table.php | 131 - .../phpmyadmin/sql-parser/src/Utils/Tokens.php | 164 - srcs/phpmyadmin/vendor/phpseclib/phpseclib/AUTHORS | 6 - .../vendor/phpseclib/phpseclib/BACKERS.md | 7 - srcs/phpmyadmin/vendor/phpseclib/phpseclib/LICENSE | 20 - .../vendor/phpseclib/phpseclib/README.md | 87 - .../vendor/phpseclib/phpseclib/appveyor.yml | 27 - .../vendor/phpseclib/phpseclib/composer.json | 76 - .../phpseclib/phpseclib/phpseclib/Crypt/AES.php | 126 - .../phpseclib/phpseclib/phpseclib/Crypt/Base.php | 2708 -- .../phpseclib/phpseclib/phpseclib/Crypt/Random.php | 274 - .../phpseclib/phpseclib/Crypt/Rijndael.php | 936 - .../phpseclib/phpseclib/phpseclib/bootstrap.php | 16 - .../phpseclib/phpseclib/phpseclib/openssl.cnf | 6 - .../pragmarx/google2fa-qrcode/.scrutinizer.yml | 40 - .../vendor/pragmarx/google2fa-qrcode/.travis.yml | 32 - .../vendor/pragmarx/google2fa-qrcode/CHANGELOG.md | 14 - .../vendor/pragmarx/google2fa-qrcode/LICENSE.md | 7 - .../vendor/pragmarx/google2fa-qrcode/README.md | 111 - .../vendor/pragmarx/google2fa-qrcode/composer.json | 36 - .../vendor/pragmarx/google2fa-qrcode/composer.lock | 1903 - .../vendor/pragmarx/google2fa-qrcode/phpunit.xml | 33 - .../pragmarx/google2fa-qrcode/src/Google2FA.php | 134 - .../pragmarx/google2fa-qrcode/tests/.gitkeep | 0 .../pragmarx/google2fa-qrcode/tests/Constants.php | 14 - .../google2fa-qrcode/tests/Google2FATest.php | 52 - .../pragmarx/google2fa-qrcode/tests/bootstrap.php | 42 - .../vendor/pragmarx/google2fa/.scrutinizer.yml | 40 - .../vendor/pragmarx/google2fa/.travis.yml | 31 - .../vendor/pragmarx/google2fa/CHANGELOG.md | 83 - .../vendor/pragmarx/google2fa/LICENSE.md | 7 - .../phpmyadmin/vendor/pragmarx/google2fa/README.md | 353 - .../vendor/pragmarx/google2fa/RELICENSED.md | 29 - .../vendor/pragmarx/google2fa/composer.json | 41 - .../vendor/pragmarx/google2fa/composer.lock | 1755 - .../vendor/pragmarx/google2fa/docs/playground.jpg | Bin 102734 -> 0 bytes .../vendor/pragmarx/google2fa/phpunit.xml | 33 - .../src/Exceptions/Contracts/Google2FA.php | 7 - .../IncompatibleWithGoogleAuthenticator.php | 7 - .../src/Exceptions/Contracts/InvalidCharacters.php | 7 - .../src/Exceptions/Contracts/SecretKeyTooShort.php | 7 - .../src/Exceptions/Google2FAException.php | 10 - ...ncompatibleWithGoogleAuthenticatorException.php | 12 - .../src/Exceptions/InvalidCharactersException.php | 12 - .../src/Exceptions/SecretKeyTooShortException.php | 12 - .../vendor/pragmarx/google2fa/src/Google2FA.php | 418 - .../pragmarx/google2fa/src/Support/Base32.php | 202 - .../pragmarx/google2fa/src/Support/Constants.php | 21 - .../pragmarx/google2fa/src/Support/QRCode.php | 28 - .../vendor/pragmarx/google2fa/src/Support/Url.php | 22 - .../vendor/pragmarx/google2fa/tests/.gitkeep | 0 .../vendor/pragmarx/google2fa/tests/Constants.php | 16 - .../pragmarx/google2fa/tests/Google2FATest.php | 524 - .../vendor/pragmarx/google2fa/tests/bootstrap.php | 42 - .../vendor/pragmarx/google2fa/upgrading.md | 2 - srcs/phpmyadmin/vendor/psr/cache/CHANGELOG.md | 16 - srcs/phpmyadmin/vendor/psr/cache/LICENSE.txt | 19 - srcs/phpmyadmin/vendor/psr/cache/README.md | 9 - srcs/phpmyadmin/vendor/psr/cache/composer.json | 25 - .../vendor/psr/cache/src/CacheException.php | 10 - .../vendor/psr/cache/src/CacheItemInterface.php | 105 - .../psr/cache/src/CacheItemPoolInterface.php | 138 - .../psr/cache/src/InvalidArgumentException.php | 13 - srcs/phpmyadmin/vendor/psr/container/LICENSE | 21 - srcs/phpmyadmin/vendor/psr/container/README.md | 5 - srcs/phpmyadmin/vendor/psr/container/composer.json | 27 - .../container/src/ContainerExceptionInterface.php | 13 - .../psr/container/src/ContainerInterface.php | 37 - .../container/src/NotFoundExceptionInterface.php | 13 - srcs/phpmyadmin/vendor/psr/log/LICENSE | 19 - .../vendor/psr/log/Psr/Log/AbstractLogger.php | 128 - .../psr/log/Psr/Log/InvalidArgumentException.php | 7 - .../phpmyadmin/vendor/psr/log/Psr/Log/LogLevel.php | 18 - .../psr/log/Psr/Log/LoggerAwareInterface.php | 18 - .../vendor/psr/log/Psr/Log/LoggerAwareTrait.php | 26 - .../vendor/psr/log/Psr/Log/LoggerInterface.php | 125 - .../vendor/psr/log/Psr/Log/LoggerTrait.php | 142 - .../vendor/psr/log/Psr/Log/NullLogger.php | 30 - .../psr/log/Psr/Log/Test/LoggerInterfaceTest.php | 146 - .../vendor/psr/log/Psr/Log/Test/TestLogger.php | 147 - srcs/phpmyadmin/vendor/psr/log/README.md | 58 - srcs/phpmyadmin/vendor/psr/log/composer.json | 26 - .../vendor/samyoul/u2f-php-server/LICENCE.md | 25 - .../vendor/samyoul/u2f-php-server/README.md | 473 - .../vendor/samyoul/u2f-php-server/composer.json | 17 - .../samyoul/u2f-php-server/src/Registration.php | 81 - .../u2f-php-server/src/RegistrationRequest.php | 56 - .../samyoul/u2f-php-server/src/SignRequest.php | 75 - .../samyoul/u2f-php-server/src/U2FException.php | 60 - .../samyoul/u2f-php-server/src/U2FServer.php | 429 - .../symfony/cache-contracts/CacheInterface.php | 57 - .../vendor/symfony/cache-contracts/CacheTrait.php | 76 - .../symfony/cache-contracts/CallbackInterface.php | 30 - .../symfony/cache-contracts/ItemInterface.php | 65 - .../vendor/symfony/cache-contracts/LICENSE | 19 - .../vendor/symfony/cache-contracts/README.md | 9 - .../cache-contracts/TagAwareCacheInterface.php | 38 - .../vendor/symfony/cache-contracts/composer.json | 34 - .../symfony/cache/Adapter/AbstractAdapter.php | 203 - .../cache/Adapter/AbstractTagAwareAdapter.php | 323 - .../symfony/cache/Adapter/AdapterInterface.php | 46 - .../vendor/symfony/cache/Adapter/ApcuAdapter.php | 27 - .../vendor/symfony/cache/Adapter/ArrayAdapter.php | 171 - .../vendor/symfony/cache/Adapter/ChainAdapter.php | 332 - .../symfony/cache/Adapter/DoctrineAdapter.php | 27 - .../symfony/cache/Adapter/FilesystemAdapter.php | 29 - .../cache/Adapter/FilesystemTagAwareAdapter.php | 239 - .../symfony/cache/Adapter/MemcachedAdapter.php | 37 - .../vendor/symfony/cache/Adapter/NullAdapter.php | 156 - .../vendor/symfony/cache/Adapter/PdoAdapter.php | 54 - .../symfony/cache/Adapter/PhpArrayAdapter.php | 332 - .../symfony/cache/Adapter/PhpFilesAdapter.php | 38 - .../vendor/symfony/cache/Adapter/ProxyAdapter.php | 269 - .../vendor/symfony/cache/Adapter/Psr16Adapter.php | 86 - .../vendor/symfony/cache/Adapter/RedisAdapter.php | 30 - .../symfony/cache/Adapter/RedisTagAwareAdapter.php | 292 - .../symfony/cache/Adapter/SimpleCacheAdapter.php | 21 - .../symfony/cache/Adapter/TagAwareAdapter.php | 429 - .../cache/Adapter/TagAwareAdapterInterface.php | 33 - .../symfony/cache/Adapter/TraceableAdapter.php | 302 - .../cache/Adapter/TraceableTagAwareAdapter.php | 38 - srcs/phpmyadmin/vendor/symfony/cache/CHANGELOG.md | 73 - srcs/phpmyadmin/vendor/symfony/cache/CacheItem.php | 202 - .../cache/DataCollector/CacheDataCollector.php | 194 - .../DependencyInjection/CacheCollectorPass.php | 72 - .../DependencyInjection/CachePoolClearerPass.php | 48 - .../cache/DependencyInjection/CachePoolPass.php | 222 - .../DependencyInjection/CachePoolPrunerPass.php | 60 - .../vendor/symfony/cache/DoctrineProvider.php | 114 - .../symfony/cache/Exception/CacheException.php | 25 - .../cache/Exception/InvalidArgumentException.php | 25 - .../symfony/cache/Exception/LogicException.php | 25 - srcs/phpmyadmin/vendor/symfony/cache/LICENSE | 19 - .../vendor/symfony/cache/LockRegistry.php | 154 - .../symfony/cache/Marshaller/DefaultMarshaller.php | 99 - .../symfony/cache/Marshaller/DeflateMarshaller.php | 53 - .../cache/Marshaller/MarshallerInterface.php | 40 - .../cache/Marshaller/TagAwareMarshaller.php | 89 - .../vendor/symfony/cache/PruneableInterface.php | 23 - .../phpmyadmin/vendor/symfony/cache/Psr16Cache.php | 277 - srcs/phpmyadmin/vendor/symfony/cache/README.md | 18 - .../vendor/symfony/cache/ResettableInterface.php | 21 - .../vendor/symfony/cache/Simple/AbstractCache.php | 199 - .../vendor/symfony/cache/Simple/ApcuCache.php | 31 - .../vendor/symfony/cache/Simple/ArrayCache.php | 167 - .../vendor/symfony/cache/Simple/ChainCache.php | 271 - .../vendor/symfony/cache/Simple/DoctrineCache.php | 34 - .../symfony/cache/Simple/FilesystemCache.php | 36 - .../vendor/symfony/cache/Simple/MemcachedCache.php | 34 - .../vendor/symfony/cache/Simple/NullCache.php | 104 - .../vendor/symfony/cache/Simple/PdoCache.php | 59 - .../vendor/symfony/cache/Simple/PhpArrayCache.php | 256 - .../vendor/symfony/cache/Simple/PhpFilesCache.php | 45 - .../vendor/symfony/cache/Simple/Psr6Cache.php | 23 - .../vendor/symfony/cache/Simple/RedisCache.php | 35 - .../vendor/symfony/cache/Simple/TraceableCache.php | 257 - .../symfony/cache/Traits/AbstractAdapterTrait.php | 155 - .../vendor/symfony/cache/Traits/AbstractTrait.php | 295 - .../vendor/symfony/cache/Traits/ApcuTrait.php | 121 - .../vendor/symfony/cache/Traits/ArrayTrait.php | 183 - .../vendor/symfony/cache/Traits/ContractsTrait.php | 97 - .../vendor/symfony/cache/Traits/DoctrineTrait.php | 98 - .../symfony/cache/Traits/FilesystemCommonTrait.php | 183 - .../symfony/cache/Traits/FilesystemTrait.php | 124 - .../vendor/symfony/cache/Traits/MemcachedTrait.php | 325 - .../vendor/symfony/cache/Traits/PdoTrait.php | 445 - .../vendor/symfony/cache/Traits/PhpArrayTrait.php | 169 - .../vendor/symfony/cache/Traits/PhpFilesTrait.php | 313 - .../vendor/symfony/cache/Traits/ProxyTrait.php | 43 - .../symfony/cache/Traits/RedisClusterProxy.php | 63 - .../vendor/symfony/cache/Traits/RedisProxy.php | 65 - .../vendor/symfony/cache/Traits/RedisTrait.php | 511 - srcs/phpmyadmin/vendor/symfony/cache/composer.json | 59 - srcs/phpmyadmin/vendor/symfony/config/CHANGELOG.md | 108 - .../vendor/symfony/config/ConfigCache.php | 62 - .../vendor/symfony/config/ConfigCacheFactory.php | 51 - .../symfony/config/ConfigCacheFactoryInterface.php | 32 - .../vendor/symfony/config/ConfigCacheInterface.php | 49 - .../vendor/symfony/config/Definition/ArrayNode.php | 416 - .../vendor/symfony/config/Definition/BaseNode.php | 559 - .../symfony/config/Definition/BooleanNode.php | 55 - .../Definition/Builder/ArrayNodeDefinition.php | 548 - .../Definition/Builder/BooleanNodeDefinition.php | 53 - .../Definition/Builder/BuilderAwareInterface.php | 25 - .../Definition/Builder/EnumNodeDefinition.php | 56 - .../config/Definition/Builder/ExprBuilder.php | 248 - .../Definition/Builder/FloatNodeDefinition.php | 32 - .../Definition/Builder/IntegerNodeDefinition.php | 32 - .../config/Definition/Builder/MergeBuilder.php | 67 - .../config/Definition/Builder/NodeBuilder.php | 238 - .../config/Definition/Builder/NodeDefinition.php | 373 - .../Definition/Builder/NodeParentInterface.php | 21 - .../Definition/Builder/NormalizationBuilder.php | 60 - .../Definition/Builder/NumericNodeDefinition.php | 73 - .../Builder/ParentNodeDefinitionInterface.php | 46 - .../Definition/Builder/ScalarNodeDefinition.php | 32 - .../config/Definition/Builder/TreeBuilder.php | 106 - .../Definition/Builder/ValidationBuilder.php | 44 - .../Definition/Builder/VariableNodeDefinition.php | 65 - .../config/Definition/ConfigurationInterface.php | 27 - .../Definition/Dumper/XmlReferenceDumper.php | 302 - .../Definition/Dumper/YamlReferenceDumper.php | 242 - .../vendor/symfony/config/Definition/EnumNode.php | 62 - .../Definition/Exception/DuplicateKeyException.php | 22 - .../config/Definition/Exception/Exception.php | 21 - .../Exception/ForbiddenOverwriteException.php | 22 - .../Exception/InvalidConfigurationException.php | 49 - .../Exception/InvalidDefinitionException.php | 21 - .../Definition/Exception/InvalidTypeException.php | 21 - .../Exception/TreeWithoutRootNodeException.php | 21 - .../Definition/Exception/UnsetKeyException.php | 22 - .../vendor/symfony/config/Definition/FloatNode.php | 51 - .../symfony/config/Definition/IntegerNode.php | 46 - .../symfony/config/Definition/NodeInterface.php | 100 - .../symfony/config/Definition/NumericNode.php | 64 - .../vendor/symfony/config/Definition/Processor.php | 97 - .../config/Definition/PrototypeNodeInterface.php | 27 - .../config/Definition/PrototypedArrayNode.php | 375 - .../symfony/config/Definition/ScalarNode.php | 67 - .../symfony/config/Definition/VariableNode.php | 143 - .../FileLoaderImportCircularReferenceException.php | 27 - .../config/Exception/FileLoaderLoadException.php | 111 - .../Exception/FileLocatorFileNotFoundException.php | 34 - .../config/Exception/LoaderLoadException.php | 21 - .../vendor/symfony/config/FileLocator.php | 94 - .../vendor/symfony/config/FileLocatorInterface.php | 34 - srcs/phpmyadmin/vendor/symfony/config/LICENSE | 19 - .../symfony/config/Loader/DelegatingLoader.php | 50 - .../vendor/symfony/config/Loader/FileLoader.php | 186 - .../symfony/config/Loader/GlobFileLoader.php | 36 - .../vendor/symfony/config/Loader/Loader.php | 78 - .../symfony/config/Loader/LoaderInterface.php | 52 - .../symfony/config/Loader/LoaderResolver.php | 68 - .../config/Loader/LoaderResolverInterface.php | 30 - srcs/phpmyadmin/vendor/symfony/config/README.md | 15 - .../config/Resource/ClassExistenceResource.php | 231 - .../symfony/config/Resource/ComposerResource.php | 70 - .../symfony/config/Resource/DirectoryResource.php | 108 - .../config/Resource/FileExistenceResource.php | 62 - .../symfony/config/Resource/FileResource.php | 67 - .../symfony/config/Resource/GlobResource.php | 233 - .../config/Resource/ReflectionClassResource.php | 221 - .../symfony/config/Resource/ResourceInterface.php | 33 - .../Resource/SelfCheckingResourceChecker.php | 36 - .../Resource/SelfCheckingResourceInterface.php | 30 - .../symfony/config/ResourceCheckerConfigCache.php | 188 - .../config/ResourceCheckerConfigCacheFactory.php | 48 - .../symfony/config/ResourceCheckerInterface.php | 45 - .../config/Util/Exception/InvalidXmlException.php | 21 - .../config/Util/Exception/XmlParsingException.php | 21 - .../vendor/symfony/config/Util/XmlUtils.php | 269 - .../phpmyadmin/vendor/symfony/config/composer.json | 48 - .../vendor/symfony/dependency-injection/Alias.php | 137 - .../Argument/ArgumentInterface.php | 27 - .../Argument/BoundArgument.php | 62 - .../Argument/IteratorArgument.php | 22 - .../Argument/ReferenceSetArgumentTrait.php | 54 - .../Argument/RewindableGenerator.php | 46 - .../Argument/ServiceClosureArgument.php | 50 - .../Argument/ServiceLocator.php | 50 - .../Argument/ServiceLocatorArgument.php | 44 - .../Argument/TaggedIteratorArgument.php | 73 - .../symfony/dependency-injection/CHANGELOG.md | 236 - .../dependency-injection/ChildDefinition.php | 124 - .../Compiler/AbstractRecursivePass.php | 228 - .../Compiler/AnalyzeServiceReferencesPass.php | 192 - .../Compiler/AutoAliasServicePass.php | 41 - .../dependency-injection/Compiler/AutowirePass.php | 475 - .../Compiler/AutowireRequiredMethodsPass.php | 84 - .../Compiler/CheckArgumentsValidityPass.php | 87 - .../Compiler/CheckCircularReferencesPass.php | 78 - .../Compiler/CheckDefinitionValidityPass.php | 90 - ...heckExceptionOnInvalidReferenceBehaviorPass.php | 88 - .../Compiler/CheckReferenceValidityPass.php | 43 - .../Compiler/CheckTypeDeclarationsPass.php | 245 - .../dependency-injection/Compiler/Compiler.php | 119 - .../Compiler/CompilerPassInterface.php | 27 - .../Compiler/DecoratorServicePass.php | 89 - .../Compiler/DefinitionErrorExceptionPass.php | 56 - .../Compiler/ExtensionCompilerPass.php | 37 - .../Compiler/InlineServiceDefinitionsPass.php | 231 - .../Compiler/MergeExtensionConfigurationPass.php | 220 - .../dependency-injection/Compiler/PassConfig.php | 269 - .../Compiler/PriorityTaggedServiceTrait.php | 138 - .../Compiler/RegisterEnvVarProcessorsPass.php | 75 - .../Compiler/RegisterReverseContainerPass.php | 66 - .../Compiler/RegisterServiceSubscribersPass.php | 122 - .../Compiler/RemoveAbstractDefinitionsPass.php | 33 - .../Compiler/RemovePrivateAliasesPass.php | 39 - .../Compiler/RemoveUnusedDefinitionsPass.php | 98 - .../Compiler/RepeatablePassInterface.php | 25 - .../dependency-injection/Compiler/RepeatedPass.php | 83 - .../ReplaceAliasByActualDefinitionPass.php | 94 - .../Compiler/ResolveBindingsPass.php | 227 - .../Compiler/ResolveChildDefinitionsPass.php | 190 - .../Compiler/ResolveClassPass.php | 40 - .../Compiler/ResolveEnvPlaceholdersPass.php | 44 - .../Compiler/ResolveFactoryClassPass.php | 38 - .../Compiler/ResolveHotPathPass.php | 71 - .../Compiler/ResolveInstanceofConditionalsPass.php | 168 - .../Compiler/ResolveInvalidReferencesPass.php | 136 - .../Compiler/ResolveNamedArgumentsPass.php | 112 - .../Compiler/ResolveParameterPlaceHoldersPass.php | 87 - .../Compiler/ResolvePrivatesPass.php | 40 - .../Compiler/ResolveReferencesToAliasesPass.php | 80 - .../Compiler/ResolveServiceSubscribersPass.php | 52 - .../Compiler/ResolveTaggedIteratorArgumentPass.php | 38 - .../Compiler/ServiceLocatorTagPass.php | 135 - .../Compiler/ServiceReferenceGraph.php | 98 - .../Compiler/ServiceReferenceGraphEdge.php | 99 - .../Compiler/ServiceReferenceGraphNode.php | 118 - .../Compiler/ValidateEnvPlaceholdersPass.php | 120 - .../Config/ContainerParametersResource.php | 50 - .../Config/ContainerParametersResourceChecker.php | 52 - .../symfony/dependency-injection/Container.php | 456 - .../ContainerAwareInterface.php | 25 - .../dependency-injection/ContainerAwareTrait.php | 30 - .../dependency-injection/ContainerBuilder.php | 1672 - .../dependency-injection/ContainerInterface.php | 101 - .../symfony/dependency-injection/Definition.php | 940 - .../symfony/dependency-injection/Dumper/Dumper.php | 29 - .../Dumper/DumperInterface.php | 27 - .../dependency-injection/Dumper/GraphvizDumper.php | 251 - .../dependency-injection/Dumper/PhpDumper.php | 2062 - .../dependency-injection/Dumper/Preloader.php | 100 - .../dependency-injection/Dumper/XmlDumper.php | 374 - .../dependency-injection/Dumper/YamlDumper.php | 349 - .../dependency-injection/EnvVarLoaderInterface.php | 25 - .../dependency-injection/EnvVarProcessor.php | 280 - .../EnvVarProcessorInterface.php | 40 - .../Exception/AutowiringFailedException.php | 72 - .../Exception/BadMethodCallException.php | 19 - .../Exception/EnvNotFoundException.php | 21 - .../Exception/EnvParameterException.php | 25 - .../Exception/ExceptionInterface.php | 24 - .../Exception/InvalidArgumentException.php | 21 - .../Exception/InvalidParameterTypeException.php | 26 - .../Exception/LogicException.php | 19 - .../Exception/OutOfBoundsException.php | 19 - .../ParameterCircularReferenceException.php | 34 - .../Exception/ParameterNotFoundException.php | 100 - .../Exception/RuntimeException.php | 21 - .../ServiceCircularReferenceException.php | 41 - .../Exception/ServiceNotFoundException.php | 67 - .../dependency-injection/ExpressionLanguage.php | 40 - .../ExpressionLanguageProvider.php | 50 - .../Extension/ConfigurationExtensionInterface.php | 30 - .../dependency-injection/Extension/Extension.php | 141 - .../Extension/ExtensionInterface.php | 52 - .../Extension/PrependExtensionInterface.php | 22 - .../vendor/symfony/dependency-injection/LICENSE | 19 - .../Instantiator/InstantiatorInterface.php | 34 - .../Instantiator/RealServiceInstantiator.php | 33 - .../LazyProxy/PhpDumper/DumperInterface.php | 46 - .../LazyProxy/PhpDumper/NullDumper.php | 48 - .../dependency-injection/LazyProxy/ProxyHelper.php | 56 - .../dependency-injection/Loader/ClosureLoader.php | 48 - .../Loader/Configurator/AbstractConfigurator.php | 87 - .../Configurator/AbstractServiceConfigurator.php | 93 - .../Loader/Configurator/AliasConfigurator.php | 30 - .../Loader/Configurator/ContainerConfigurator.php | 144 - .../Loader/Configurator/DefaultsConfigurator.php | 69 - .../Configurator/InlineServiceConfigurator.php | 36 - .../Loader/Configurator/InstanceofConfigurator.php | 49 - .../Loader/Configurator/ParametersConfigurator.php | 51 - .../Loader/Configurator/PrototypeConfigurator.php | 84 - .../Loader/Configurator/ReferenceConfigurator.php | 69 - .../Loader/Configurator/ServiceConfigurator.php | 72 - .../Loader/Configurator/ServicesConfigurator.php | 147 - .../Loader/Configurator/Traits/AbstractTrait.php | 28 - .../Loader/Configurator/Traits/ArgumentTrait.php | 42 - .../Configurator/Traits/AutoconfigureTrait.php | 35 - .../Loader/Configurator/Traits/AutowireTrait.php | 27 - .../Loader/Configurator/Traits/BindTrait.php | 47 - .../Loader/Configurator/Traits/CallTrait.php | 35 - .../Loader/Configurator/Traits/ClassTrait.php | 27 - .../Configurator/Traits/ConfiguratorTrait.php | 29 - .../Loader/Configurator/Traits/DecorateTrait.php | 37 - .../Loader/Configurator/Traits/DeprecateTrait.php | 33 - .../Loader/Configurator/Traits/FactoryTrait.php | 37 - .../Loader/Configurator/Traits/FileTrait.php | 27 - .../Loader/Configurator/Traits/LazyTrait.php | 32 - .../Loader/Configurator/Traits/ParentTrait.php | 50 - .../Loader/Configurator/Traits/PropertyTrait.php | 27 - .../Loader/Configurator/Traits/PublicTrait.php | 35 - .../Loader/Configurator/Traits/ShareTrait.php | 27 - .../Loader/Configurator/Traits/SyntheticTrait.php | 28 - .../Loader/Configurator/Traits/TagTrait.php | 39 - .../Loader/DirectoryLoader.php | 54 - .../dependency-injection/Loader/FileLoader.php | 227 - .../dependency-injection/Loader/GlobFileLoader.php | 40 - .../dependency-injection/Loader/IniFileLoader.php | 97 - .../dependency-injection/Loader/PhpFileLoader.php | 80 - .../dependency-injection/Loader/XmlFileLoader.php | 728 - .../dependency-injection/Loader/YamlFileLoader.php | 880 - .../Loader/schema/dic/services/services-1.0.xsd | 305 - .../symfony/dependency-injection/Parameter.php | 35 - .../ParameterBag/ContainerBag.php | 51 - .../ParameterBag/ContainerBagInterface.php | 57 - .../ParameterBag/EnvPlaceholderParameterBag.php | 173 - .../ParameterBag/FrozenParameterBag.php | 68 - .../ParameterBag/ParameterBag.php | 289 - .../ParameterBag/ParameterBagInterface.php | 115 - .../vendor/symfony/dependency-injection/README.md | 14 - .../symfony/dependency-injection/Reference.php | 47 - .../ResettableContainerInterface.php | 35 - .../dependency-injection/ReverseContainer.php | 85 - .../dependency-injection/ServiceLocator.php | 145 - .../ServiceSubscriberInterface.php | 23 - .../TaggedContainerInterface.php | 29 - .../dependency-injection/TypedReference.php | 74 - .../symfony/dependency-injection/Variable.php | 43 - .../symfony/dependency-injection/composer.json | 57 - .../symfony/expression-language/CHANGELOG.md | 20 - .../symfony/expression-language/Compiler.php | 148 - .../symfony/expression-language/Expression.php | 37 - .../expression-language/ExpressionFunction.php | 98 - .../ExpressionFunctionProviderInterface.php | 23 - .../expression-language/ExpressionLanguage.php | 166 - .../vendor/symfony/expression-language/LICENSE | 19 - .../vendor/symfony/expression-language/Lexer.php | 103 - .../expression-language/Node/ArgumentsNode.php | 40 - .../symfony/expression-language/Node/ArrayNode.php | 118 - .../expression-language/Node/BinaryNode.php | 170 - .../expression-language/Node/ConditionalNode.php | 56 - .../expression-language/Node/ConstantNode.php | 81 - .../expression-language/Node/FunctionNode.php | 67 - .../expression-language/Node/GetAttrNode.php | 114 - .../symfony/expression-language/Node/NameNode.php | 45 - .../symfony/expression-language/Node/Node.php | 113 - .../symfony/expression-language/Node/UnaryNode.php | 66 - .../expression-language/ParsedExpression.php | 36 - .../vendor/symfony/expression-language/Parser.php | 379 - .../vendor/symfony/expression-language/README.md | 15 - .../SerializedParsedExpression.php | 37 - .../symfony/expression-language/SyntaxError.php | 41 - .../vendor/symfony/expression-language/Token.php | 66 - .../symfony/expression-language/TokenStream.php | 91 - .../symfony/expression-language/composer.json | 35 - .../vendor/symfony/filesystem/CHANGELOG.md | 70 - .../filesystem/Exception/ExceptionInterface.php | 21 - .../filesystem/Exception/FileNotFoundException.php | 34 - .../symfony/filesystem/Exception/IOException.php | 39 - .../filesystem/Exception/IOExceptionInterface.php | 27 - .../Exception/InvalidArgumentException.php | 19 - .../vendor/symfony/filesystem/Filesystem.php | 769 - srcs/phpmyadmin/vendor/symfony/filesystem/LICENSE | 19 - .../phpmyadmin/vendor/symfony/filesystem/README.md | 13 - .../vendor/symfony/filesystem/composer.json | 34 - .../vendor/symfony/polyfill-ctype/Ctype.php | 227 - .../vendor/symfony/polyfill-ctype/LICENSE | 19 - .../vendor/symfony/polyfill-ctype/README.md | 12 - .../vendor/symfony/polyfill-ctype/bootstrap.php | 26 - .../vendor/symfony/polyfill-ctype/composer.json | 34 - .../vendor/symfony/polyfill-mbstring/LICENSE | 19 - .../vendor/symfony/polyfill-mbstring/Mbstring.php | 840 - .../vendor/symfony/polyfill-mbstring/README.md | 13 - .../Resources/unidata/lowerCase.php | 1096 - .../Resources/unidata/titleCaseRegexp.php | 5 - .../Resources/unidata/upperCase.php | 1104 - .../vendor/symfony/polyfill-mbstring/bootstrap.php | 62 - .../vendor/symfony/polyfill-mbstring/composer.json | 34 - .../vendor/symfony/polyfill-php56/LICENSE | 19 - .../vendor/symfony/polyfill-php56/Php56.php | 138 - .../vendor/symfony/polyfill-php56/README.md | 15 - .../vendor/symfony/polyfill-php56/bootstrap.php | 38 - .../vendor/symfony/polyfill-php56/composer.json | 32 - .../vendor/symfony/polyfill-util/Binary.php | 22 - .../symfony/polyfill-util/BinaryNoFuncOverload.php | 65 - .../symfony/polyfill-util/BinaryOnFuncOverload.php | 67 - .../vendor/symfony/polyfill-util/LICENSE | 19 - .../vendor/symfony/polyfill-util/README.md | 13 - .../vendor/symfony/polyfill-util/TestListener.php | 28 - .../symfony/polyfill-util/TestListenerForV5.php | 89 - .../symfony/polyfill-util/TestListenerForV6.php | 95 - .../symfony/polyfill-util/TestListenerForV7.php | 96 - .../symfony/polyfill-util/TestListenerTrait.php | 125 - .../vendor/symfony/polyfill-util/composer.json | 30 - .../vendor/symfony/service-contracts/LICENSE | 19 - .../vendor/symfony/service-contracts/README.md | 9 - .../symfony/service-contracts/ResetInterface.php | 30 - .../service-contracts/ServiceLocatorTrait.php | 122 - .../service-contracts/ServiceProviderInterface.php | 36 - .../ServiceSubscriberInterface.php | 53 - .../service-contracts/ServiceSubscriberTrait.php | 63 - .../service-contracts/Test/ServiceLocatorTest.php | 92 - .../vendor/symfony/service-contracts/composer.json | 34 - .../vendor/symfony/var-exporter/CHANGELOG.md | 7 - .../Exception/ClassNotFoundException.php | 20 - .../var-exporter/Exception/ExceptionInterface.php | 16 - .../Exception/NotInstantiableTypeException.php | 20 - .../vendor/symfony/var-exporter/Instantiator.php | 94 - .../symfony/var-exporter/Internal/Exporter.php | 407 - .../symfony/var-exporter/Internal/Hydrator.php | 151 - .../symfony/var-exporter/Internal/Reference.php | 30 - .../symfony/var-exporter/Internal/Registry.php | 136 - .../symfony/var-exporter/Internal/Values.php | 27 - .../phpmyadmin/vendor/symfony/var-exporter/LICENSE | 19 - .../vendor/symfony/var-exporter/README.md | 38 - .../vendor/symfony/var-exporter/VarExporter.php | 114 - .../vendor/symfony/var-exporter/composer.json | 36 - srcs/phpmyadmin/vendor/symfony/yaml/CHANGELOG.md | 196 - .../vendor/symfony/yaml/Command/LintCommand.php | 255 - srcs/phpmyadmin/vendor/symfony/yaml/Dumper.php | 125 - srcs/phpmyadmin/vendor/symfony/yaml/Escaper.php | 101 - .../symfony/yaml/Exception/DumpException.php | 21 - .../symfony/yaml/Exception/ExceptionInterface.php | 21 - .../symfony/yaml/Exception/ParseException.php | 139 - .../symfony/yaml/Exception/RuntimeException.php | 21 - srcs/phpmyadmin/vendor/symfony/yaml/Inline.php | 753 - srcs/phpmyadmin/vendor/symfony/yaml/LICENSE | 19 - srcs/phpmyadmin/vendor/symfony/yaml/Parser.php | 1245 - srcs/phpmyadmin/vendor/symfony/yaml/README.md | 13 - .../vendor/symfony/yaml/Tag/TaggedValue.php | 38 - srcs/phpmyadmin/vendor/symfony/yaml/Unescaper.php | 138 - srcs/phpmyadmin/vendor/symfony/yaml/Yaml.php | 102 - srcs/phpmyadmin/vendor/symfony/yaml/composer.json | 43 - .../vendor/tecnickcom/tcpdf/CHANGELOG.TXT | 2961 -- .../phpmyadmin/vendor/tecnickcom/tcpdf/LICENSE.TXT | 860 - srcs/phpmyadmin/vendor/tecnickcom/tcpdf/README.md | 84 - srcs/phpmyadmin/vendor/tecnickcom/tcpdf/VERSION | 1 - .../vendor/tecnickcom/tcpdf/composer.json | 47 - .../tecnickcom/tcpdf/config/tcpdf_config.php | 227 - .../tcpdf/fonts/dejavu-fonts-ttf-2.34/AUTHORS | 54 - .../tcpdf/fonts/dejavu-fonts-ttf-2.34/BUGS | 3 - .../tcpdf/fonts/dejavu-fonts-ttf-2.34/LICENSE | 99 - .../tcpdf/fonts/dejavu-fonts-ttf-2.34/NEWS | 1373 - .../tcpdf/fonts/dejavu-fonts-ttf-2.34/README | 59 - .../fonts/dejavu-fonts-ttf-2.34/langcover.txt | 249 - .../tcpdf/fonts/dejavu-fonts-ttf-2.34/status.txt | 6766 ---- .../tcpdf/fonts/dejavu-fonts-ttf-2.34/unicover.txt | 226 - .../vendor/tecnickcom/tcpdf/fonts/dejavusans.ctg.z | Bin 10454 -> 0 bytes .../vendor/tecnickcom/tcpdf/fonts/dejavusans.php | 16 - .../vendor/tecnickcom/tcpdf/fonts/dejavusans.z | Bin 375806 -> 0 bytes .../tecnickcom/tcpdf/fonts/dejavusansb.ctg.z | Bin 10200 -> 0 bytes .../vendor/tecnickcom/tcpdf/fonts/dejavusansb.php | 16 - .../vendor/tecnickcom/tcpdf/fonts/dejavusansb.z | Bin 347269 -> 0 bytes .../vendor/tecnickcom/tcpdf/fonts/helvetica.php | 13 - .../tcpdf/include/barcodes/datamatrix.php | 1176 - .../tecnickcom/tcpdf/include/barcodes/pdf417.php | 996 - .../tecnickcom/tcpdf/include/barcodes/qrcode.php | 2867 -- .../tecnickcom/tcpdf/include/tcpdf_colors.php | 462 - .../tecnickcom/tcpdf/include/tcpdf_filters.php | 481 - .../tecnickcom/tcpdf/include/tcpdf_font_data.php | 18447 --------- .../tecnickcom/tcpdf/include/tcpdf_fonts.php | 2654 -- .../tecnickcom/tcpdf/include/tcpdf_images.php | 360 - .../tecnickcom/tcpdf/include/tcpdf_static.php | 2616 -- srcs/phpmyadmin/vendor/tecnickcom/tcpdf/tcpdf.php | 24569 ------------ .../vendor/tecnickcom/tcpdf/tcpdf_autoconfig.php | 241 - .../vendor/tecnickcom/tcpdf/tcpdf_barcodes_1d.php | 2357 -- .../vendor/tecnickcom/tcpdf/tcpdf_barcodes_2d.php | 349 - .../vendor/tecnickcom/tcpdf/tcpdf_import.php | 104 - .../vendor/tecnickcom/tcpdf/tcpdf_parser.php | 815 - srcs/phpmyadmin/vendor/twig/extensions/.travis.yml | 34 - srcs/phpmyadmin/vendor/twig/extensions/LICENSE | 19 - srcs/phpmyadmin/vendor/twig/extensions/README.rst | 14 - .../vendor/twig/extensions/composer.json | 32 - .../extensions/lib/Twig/Extensions/Autoloader.php | 48 - .../lib/Twig/Extensions/Extension/Array.php | 56 - .../lib/Twig/Extensions/Extension/Date.php | 107 - .../lib/Twig/Extensions/Extension/I18n.php | 41 - .../lib/Twig/Extensions/Extension/Intl.php | 146 - .../lib/Twig/Extensions/Extension/Text.php | 99 - .../extensions/lib/Twig/Extensions/Grammar.php | 43 - .../lib/Twig/Extensions/Grammar/Arguments.php | 26 - .../lib/Twig/Extensions/Grammar/Array.php | 26 - .../lib/Twig/Extensions/Grammar/Body.php | 43 - .../lib/Twig/Extensions/Grammar/Boolean.php | 28 - .../lib/Twig/Extensions/Grammar/Constant.php | 41 - .../lib/Twig/Extensions/Grammar/Expression.php | 26 - .../lib/Twig/Extensions/Grammar/Hash.php | 26 - .../lib/Twig/Extensions/Grammar/Number.php | 28 - .../lib/Twig/Extensions/Grammar/Optional.php | 73 - .../lib/Twig/Extensions/Grammar/Switch.php | 28 - .../extensions/lib/Twig/Extensions/Grammar/Tag.php | 60 - .../lib/Twig/Extensions/GrammarInterface.php | 22 - .../extensions/lib/Twig/Extensions/Node/Trans.php | 166 - .../lib/Twig/Extensions/SimpleTokenParser.php | 138 - .../lib/Twig/Extensions/TokenParser/Trans.php | 88 - .../vendor/twig/extensions/phpunit.xml.dist | 25 - .../vendor/twig/extensions/src/ArrayExtension.php | 11 - .../vendor/twig/extensions/src/DateExtension.php | 11 - .../vendor/twig/extensions/src/I18nExtension.php | 11 - .../vendor/twig/extensions/src/IntlExtension.php | 11 - .../vendor/twig/extensions/src/Node/TransNode.php | 11 - .../vendor/twig/extensions/src/TextExtension.php | 11 - .../src/TokenParser/TransTokenParser.php | 11 - srcs/phpmyadmin/vendor/twig/twig/.editorconfig | 18 - srcs/phpmyadmin/vendor/twig/twig/.php_cs.dist | 20 - srcs/phpmyadmin/vendor/twig/twig/.travis.yml | 45 - srcs/phpmyadmin/vendor/twig/twig/CHANGELOG | 1431 - srcs/phpmyadmin/vendor/twig/twig/LICENSE | 31 - srcs/phpmyadmin/vendor/twig/twig/README.rst | 24 - srcs/phpmyadmin/vendor/twig/twig/composer.json | 52 - srcs/phpmyadmin/vendor/twig/twig/drupal_test.sh | 51 - .../vendor/twig/twig/lib/Twig/BaseNodeVisitor.php | 14 - .../vendor/twig/twig/lib/Twig/Cache/Filesystem.php | 14 - .../vendor/twig/twig/lib/Twig/Cache/Null.php | 14 - .../vendor/twig/twig/lib/Twig/CacheInterface.php | 14 - .../vendor/twig/twig/lib/Twig/Compiler.php | 14 - .../twig/twig/lib/Twig/ContainerRuntimeLoader.php | 14 - .../vendor/twig/twig/lib/Twig/Environment.php | 14 - .../phpmyadmin/vendor/twig/twig/lib/Twig/Error.php | 14 - .../vendor/twig/twig/lib/Twig/Error/Loader.php | 14 - .../vendor/twig/twig/lib/Twig/Error/Runtime.php | 14 - .../vendor/twig/twig/lib/Twig/Error/Syntax.php | 14 - .../twig/twig/lib/Twig/ExistsLoaderInterface.php | 14 - .../vendor/twig/twig/lib/Twig/ExpressionParser.php | 14 - .../vendor/twig/twig/lib/Twig/Extension.php | 14 - .../vendor/twig/twig/lib/Twig/Extension/Core.php | 14 - .../vendor/twig/twig/lib/Twig/Extension/Debug.php | 14 - .../twig/twig/lib/Twig/Extension/Escaper.php | 14 - .../twig/lib/Twig/Extension/GlobalsInterface.php | 14 - .../lib/Twig/Extension/InitRuntimeInterface.php | 14 - .../twig/twig/lib/Twig/Extension/Optimizer.php | 14 - .../twig/twig/lib/Twig/Extension/Profiler.php | 14 - .../twig/twig/lib/Twig/Extension/Sandbox.php | 14 - .../twig/twig/lib/Twig/Extension/Staging.php | 14 - .../twig/twig/lib/Twig/Extension/StringLoader.php | 14 - .../twig/twig/lib/Twig/ExtensionInterface.php | 14 - .../vendor/twig/twig/lib/Twig/ExtensionSet.php | 14 - .../twig/twig/lib/Twig/FactoryRuntimeLoader.php | 14 - .../lib/Twig/FileExtensionEscapingStrategy.php | 14 - .../vendor/twig/twig/lib/Twig/Filter.php | 14 - .../vendor/twig/twig/lib/Twig/Function.php | 14 - .../phpmyadmin/vendor/twig/twig/lib/Twig/Lexer.php | 14 - .../vendor/twig/twig/lib/Twig/Loader/Array.php | 14 - .../vendor/twig/twig/lib/Twig/Loader/Chain.php | 14 - .../twig/twig/lib/Twig/Loader/Filesystem.php | 14 - .../vendor/twig/twig/lib/Twig/LoaderInterface.php | 14 - .../vendor/twig/twig/lib/Twig/Markup.php | 14 - srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node.php | 14 - .../vendor/twig/twig/lib/Twig/Node/AutoEscape.php | 14 - .../vendor/twig/twig/lib/Twig/Node/Block.php | 14 - .../twig/twig/lib/Twig/Node/BlockReference.php | 14 - .../vendor/twig/twig/lib/Twig/Node/Body.php | 14 - .../twig/twig/lib/Twig/Node/CheckSecurity.php | 14 - .../vendor/twig/twig/lib/Twig/Node/Deprecated.php | 14 - .../vendor/twig/twig/lib/Twig/Node/Do.php | 14 - .../vendor/twig/twig/lib/Twig/Node/Embed.php | 14 - .../vendor/twig/twig/lib/Twig/Node/Expression.php | 14 - .../twig/twig/lib/Twig/Node/Expression/Array.php | 14 - .../twig/lib/Twig/Node/Expression/AssignName.php | 14 - .../twig/twig/lib/Twig/Node/Expression/Binary.php | 14 - .../twig/lib/Twig/Node/Expression/Binary/Add.php | 14 - .../twig/lib/Twig/Node/Expression/Binary/And.php | 14 - .../lib/Twig/Node/Expression/Binary/BitwiseAnd.php | 14 - .../lib/Twig/Node/Expression/Binary/BitwiseOr.php | 14 - .../lib/Twig/Node/Expression/Binary/BitwiseXor.php | 14 - .../lib/Twig/Node/Expression/Binary/Concat.php | 14 - .../twig/lib/Twig/Node/Expression/Binary/Div.php | 14 - .../lib/Twig/Node/Expression/Binary/EndsWith.php | 14 - .../twig/lib/Twig/Node/Expression/Binary/Equal.php | 14 - .../lib/Twig/Node/Expression/Binary/FloorDiv.php | 14 - .../lib/Twig/Node/Expression/Binary/Greater.php | 14 - .../Twig/Node/Expression/Binary/GreaterEqual.php | 14 - .../twig/lib/Twig/Node/Expression/Binary/In.php | 14 - .../twig/lib/Twig/Node/Expression/Binary/Less.php | 14 - .../lib/Twig/Node/Expression/Binary/LessEqual.php | 14 - .../lib/Twig/Node/Expression/Binary/Matches.php | 14 - .../twig/lib/Twig/Node/Expression/Binary/Mod.php | 14 - .../twig/lib/Twig/Node/Expression/Binary/Mul.php | 14 - .../lib/Twig/Node/Expression/Binary/NotEqual.php | 14 - .../twig/lib/Twig/Node/Expression/Binary/NotIn.php | 14 - .../twig/lib/Twig/Node/Expression/Binary/Or.php | 14 - .../twig/lib/Twig/Node/Expression/Binary/Power.php | 14 - .../twig/lib/Twig/Node/Expression/Binary/Range.php | 14 - .../lib/Twig/Node/Expression/Binary/StartsWith.php | 14 - .../twig/lib/Twig/Node/Expression/Binary/Sub.php | 14 - .../lib/Twig/Node/Expression/BlockReference.php | 14 - .../twig/twig/lib/Twig/Node/Expression/Call.php | 14 - .../twig/lib/Twig/Node/Expression/Conditional.php | 14 - .../twig/lib/Twig/Node/Expression/Constant.php | 14 - .../twig/twig/lib/Twig/Node/Expression/Filter.php | 14 - .../lib/Twig/Node/Expression/Filter/Default.php | 14 - .../twig/lib/Twig/Node/Expression/Function.php | 14 - .../twig/twig/lib/Twig/Node/Expression/GetAttr.php | 14 - .../twig/lib/Twig/Node/Expression/MethodCall.php | 14 - .../twig/twig/lib/Twig/Node/Expression/Name.php | 14 - .../twig/lib/Twig/Node/Expression/NullCoalesce.php | 14 - .../twig/twig/lib/Twig/Node/Expression/Parent.php | 14 - .../twig/lib/Twig/Node/Expression/TempName.php | 14 - .../twig/twig/lib/Twig/Node/Expression/Test.php | 14 - .../lib/Twig/Node/Expression/Test/Constant.php | 14 - .../twig/lib/Twig/Node/Expression/Test/Defined.php | 14 - .../lib/Twig/Node/Expression/Test/Divisibleby.php | 14 - .../twig/lib/Twig/Node/Expression/Test/Even.php | 14 - .../twig/lib/Twig/Node/Expression/Test/Null.php | 14 - .../twig/lib/Twig/Node/Expression/Test/Odd.php | 14 - .../twig/lib/Twig/Node/Expression/Test/Sameas.php | 14 - .../twig/twig/lib/Twig/Node/Expression/Unary.php | 14 - .../twig/lib/Twig/Node/Expression/Unary/Neg.php | 14 - .../twig/lib/Twig/Node/Expression/Unary/Not.php | 14 - .../twig/lib/Twig/Node/Expression/Unary/Pos.php | 14 - .../vendor/twig/twig/lib/Twig/Node/Flush.php | 14 - .../vendor/twig/twig/lib/Twig/Node/For.php | 14 - .../vendor/twig/twig/lib/Twig/Node/ForLoop.php | 14 - .../vendor/twig/twig/lib/Twig/Node/If.php | 14 - .../vendor/twig/twig/lib/Twig/Node/Import.php | 14 - .../vendor/twig/twig/lib/Twig/Node/Include.php | 14 - .../vendor/twig/twig/lib/Twig/Node/Macro.php | 14 - .../vendor/twig/twig/lib/Twig/Node/Module.php | 14 - .../vendor/twig/twig/lib/Twig/Node/Print.php | 14 - .../vendor/twig/twig/lib/Twig/Node/Sandbox.php | 14 - .../twig/twig/lib/Twig/Node/SandboxedPrint.php | 14 - .../vendor/twig/twig/lib/Twig/Node/Set.php | 14 - .../vendor/twig/twig/lib/Twig/Node/Spaceless.php | 14 - .../vendor/twig/twig/lib/Twig/Node/Text.php | 14 - .../vendor/twig/twig/lib/Twig/Node/With.php | 14 - .../twig/twig/lib/Twig/NodeCaptureInterface.php | 14 - .../twig/twig/lib/Twig/NodeOutputInterface.php | 14 - .../vendor/twig/twig/lib/Twig/NodeTraverser.php | 14 - .../twig/twig/lib/Twig/NodeVisitor/Escaper.php | 14 - .../twig/twig/lib/Twig/NodeVisitor/Optimizer.php | 14 - .../twig/lib/Twig/NodeVisitor/SafeAnalysis.php | 14 - .../twig/twig/lib/Twig/NodeVisitor/Sandbox.php | 14 - .../twig/twig/lib/Twig/NodeVisitorInterface.php | 14 - .../vendor/twig/twig/lib/Twig/Parser.php | 14 - .../twig/twig/lib/Twig/Profiler/Dumper/Base.php | 14 - .../twig/lib/Twig/Profiler/Dumper/Blackfire.php | 14 - .../twig/twig/lib/Twig/Profiler/Dumper/Html.php | 14 - .../twig/twig/lib/Twig/Profiler/Dumper/Text.php | 14 - .../twig/lib/Twig/Profiler/Node/EnterProfile.php | 14 - .../twig/lib/Twig/Profiler/Node/LeaveProfile.php | 14 - .../lib/Twig/Profiler/NodeVisitor/Profiler.php | 14 - .../vendor/twig/twig/lib/Twig/Profiler/Profile.php | 14 - .../twig/twig/lib/Twig/RuntimeLoaderInterface.php | 14 - .../twig/twig/lib/Twig/Sandbox/SecurityError.php | 14 - .../Twig/Sandbox/SecurityNotAllowedFilterError.php | 14 - .../Sandbox/SecurityNotAllowedFunctionError.php | 14 - .../Twig/Sandbox/SecurityNotAllowedMethodError.php | 14 - .../Sandbox/SecurityNotAllowedPropertyError.php | 14 - .../Twig/Sandbox/SecurityNotAllowedTagError.php | 14 - .../twig/twig/lib/Twig/Sandbox/SecurityPolicy.php | 14 - .../lib/Twig/Sandbox/SecurityPolicyInterface.php | 14 - .../vendor/twig/twig/lib/Twig/SimpleFilter.php | 26 - .../vendor/twig/twig/lib/Twig/SimpleFunction.php | 26 - .../vendor/twig/twig/lib/Twig/SimpleTest.php | 26 - .../vendor/twig/twig/lib/Twig/Source.php | 14 - .../twig/lib/Twig/SourceContextLoaderInterface.php | 14 - .../vendor/twig/twig/lib/Twig/Template.php | 14 - .../vendor/twig/twig/lib/Twig/TemplateWrapper.php | 14 - srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Test.php | 14 - .../twig/lib/Twig/Test/IntegrationTestCase.php | 14 - .../twig/twig/lib/Twig/Test/NodeTestCase.php | 14 - .../phpmyadmin/vendor/twig/twig/lib/Twig/Token.php | 14 - .../vendor/twig/twig/lib/Twig/TokenParser.php | 14 - .../twig/twig/lib/Twig/TokenParser/AutoEscape.php | 14 - .../twig/twig/lib/Twig/TokenParser/Block.php | 14 - .../twig/twig/lib/Twig/TokenParser/Deprecated.php | 14 - .../vendor/twig/twig/lib/Twig/TokenParser/Do.php | 14 - .../twig/twig/lib/Twig/TokenParser/Embed.php | 14 - .../twig/twig/lib/Twig/TokenParser/Extends.php | 14 - .../twig/twig/lib/Twig/TokenParser/Filter.php | 14 - .../twig/twig/lib/Twig/TokenParser/Flush.php | 14 - .../vendor/twig/twig/lib/Twig/TokenParser/For.php | 14 - .../vendor/twig/twig/lib/Twig/TokenParser/From.php | 14 - .../vendor/twig/twig/lib/Twig/TokenParser/If.php | 14 - .../twig/twig/lib/Twig/TokenParser/Import.php | 14 - .../twig/twig/lib/Twig/TokenParser/Include.php | 14 - .../twig/twig/lib/Twig/TokenParser/Macro.php | 14 - .../twig/twig/lib/Twig/TokenParser/Sandbox.php | 14 - .../vendor/twig/twig/lib/Twig/TokenParser/Set.php | 14 - .../twig/twig/lib/Twig/TokenParser/Spaceless.php | 14 - .../vendor/twig/twig/lib/Twig/TokenParser/Use.php | 14 - .../vendor/twig/twig/lib/Twig/TokenParser/With.php | 14 - .../twig/twig/lib/Twig/TokenParserInterface.php | 14 - .../vendor/twig/twig/lib/Twig/TokenStream.php | 14 - .../twig/lib/Twig/Util/DeprecationCollector.php | 14 - .../twig/lib/Twig/Util/TemplateDirIterator.php | 14 - .../vendor/twig/twig/src/Cache/CacheInterface.php | 60 - .../vendor/twig/twig/src/Cache/FilesystemCache.php | 93 - .../vendor/twig/twig/src/Cache/NullCache.php | 40 - srcs/phpmyadmin/vendor/twig/twig/src/Compiler.php | 245 - .../vendor/twig/twig/src/Environment.php | 995 - .../vendor/twig/twig/src/Error/Error.php | 257 - .../vendor/twig/twig/src/Error/LoaderError.php | 23 - .../vendor/twig/twig/src/Error/RuntimeError.php | 24 - .../vendor/twig/twig/src/Error/SyntaxError.php | 48 - .../vendor/twig/twig/src/ExpressionParser.php | 814 - .../twig/twig/src/Extension/AbstractExtension.php | 47 - .../twig/twig/src/Extension/CoreExtension.php | 1562 - .../twig/twig/src/Extension/DebugExtension.php | 66 - .../twig/twig/src/Extension/EscaperExtension.php | 427 - .../twig/twig/src/Extension/ExtensionInterface.php | 73 - .../twig/twig/src/Extension/GlobalsInterface.php | 32 - .../twig/src/Extension/InitRuntimeInterface.php | 36 - .../twig/twig/src/Extension/OptimizerExtension.php | 31 - .../twig/twig/src/Extension/ProfilerExtension.php | 48 - .../src/Extension/RuntimeExtensionInterface.php | 19 - .../twig/twig/src/Extension/SandboxExtension.php | 125 - .../twig/twig/src/Extension/StagingExtension.php | 102 - .../twig/src/Extension/StringLoaderExtension.php | 46 - .../vendor/twig/twig/src/ExtensionSet.php | 477 - .../twig/src/FileExtensionEscapingStrategy.php | 62 - srcs/phpmyadmin/vendor/twig/twig/src/Lexer.php | 501 - .../vendor/twig/twig/src/Loader/ArrayLoader.php | 86 - .../vendor/twig/twig/src/Loader/ChainLoader.php | 120 - .../twig/twig/src/Loader/ExistsLoaderInterface.php | 23 - .../twig/twig/src/Loader/FilesystemLoader.php | 308 - .../twig/twig/src/Loader/LoaderInterface.php | 69 - .../src/Loader/SourceContextLoaderInterface.php | 21 - srcs/phpmyadmin/vendor/twig/twig/src/Markup.php | 46 - .../vendor/twig/twig/src/Node/AutoEscapeNode.php | 40 - .../vendor/twig/twig/src/Node/BlockNode.php | 46 - .../twig/twig/src/Node/BlockReferenceNode.php | 38 - .../vendor/twig/twig/src/Node/BodyNode.php | 23 - .../twig/twig/src/Node/CheckSecurityNode.php | 85 - .../twig/twig/src/Node/CheckToStringNode.php | 45 - .../vendor/twig/twig/src/Node/DeprecatedNode.php | 55 - .../vendor/twig/twig/src/Node/DoNode.php | 40 - .../vendor/twig/twig/src/Node/EmbedNode.php | 50 - .../src/Node/Expression/AbstractExpression.php | 26 - .../twig/src/Node/Expression/ArrayExpression.php | 88 - .../Node/Expression/ArrowFunctionExpression.php | 64 - .../src/Node/Expression/AssignNameExpression.php | 29 - .../src/Node/Expression/Binary/AbstractBinary.php | 44 - .../twig/src/Node/Expression/Binary/AddBinary.php | 25 - .../twig/src/Node/Expression/Binary/AndBinary.php | 25 - .../Node/Expression/Binary/BitwiseAndBinary.php | 25 - .../src/Node/Expression/Binary/BitwiseOrBinary.php | 25 - .../Node/Expression/Binary/BitwiseXorBinary.php | 25 - .../src/Node/Expression/Binary/ConcatBinary.php | 25 - .../twig/src/Node/Expression/Binary/DivBinary.php | 25 - .../src/Node/Expression/Binary/EndsWithBinary.php | 37 - .../src/Node/Expression/Binary/EqualBinary.php | 24 - .../src/Node/Expression/Binary/FloorDivBinary.php | 31 - .../src/Node/Expression/Binary/GreaterBinary.php | 24 - .../Node/Expression/Binary/GreaterEqualBinary.php | 24 - .../twig/src/Node/Expression/Binary/InBinary.php | 35 - .../twig/src/Node/Expression/Binary/LessBinary.php | 24 - .../src/Node/Expression/Binary/LessEqualBinary.php | 24 - .../src/Node/Expression/Binary/MatchesBinary.php | 35 - .../twig/src/Node/Expression/Binary/ModBinary.php | 25 - .../twig/src/Node/Expression/Binary/MulBinary.php | 25 - .../src/Node/Expression/Binary/NotEqualBinary.php | 24 - .../src/Node/Expression/Binary/NotInBinary.php | 35 - .../twig/src/Node/Expression/Binary/OrBinary.php | 25 - .../src/Node/Expression/Binary/PowerBinary.php | 24 - .../src/Node/Expression/Binary/RangeBinary.php | 35 - .../src/Node/Expression/Binary/SpaceshipBinary.php | 22 - .../Node/Expression/Binary/StartsWithBinary.php | 37 - .../twig/src/Node/Expression/Binary/SubBinary.php | 25 - .../Node/Expression/BlockReferenceExpression.php | 88 - .../twig/src/Node/Expression/CallExpression.php | 313 - .../src/Node/Expression/ConditionalExpression.php | 38 - .../src/Node/Expression/ConstantExpression.php | 30 - .../src/Node/Expression/Filter/DefaultFilter.php | 54 - .../twig/src/Node/Expression/FilterExpression.php | 42 - .../src/Node/Expression/FunctionExpression.php | 45 - .../twig/src/Node/Expression/GetAttrExpression.php | 89 - .../twig/twig/src/Node/Expression/InlinePrint.php | 35 - .../src/Node/Expression/MethodCallExpression.php | 64 - .../twig/src/Node/Expression/NameExpression.php | 99 - .../src/Node/Expression/NullCoalesceExpression.php | 62 - .../twig/src/Node/Expression/ParentExpression.php | 48 - .../src/Node/Expression/TempNameExpression.php | 33 - .../twig/src/Node/Expression/Test/ConstantTest.php | 51 - .../twig/src/Node/Expression/Test/DefinedTest.php | 76 - .../src/Node/Expression/Test/DivisiblebyTest.php | 38 - .../twig/src/Node/Expression/Test/EvenTest.php | 37 - .../twig/src/Node/Expression/Test/NullTest.php | 36 - .../twig/twig/src/Node/Expression/Test/OddTest.php | 37 - .../twig/src/Node/Expression/Test/SameasTest.php | 36 - .../twig/src/Node/Expression/TestExpression.php | 44 - .../src/Node/Expression/Unary/AbstractUnary.php | 36 - .../twig/src/Node/Expression/Unary/NegUnary.php | 25 - .../twig/src/Node/Expression/Unary/NotUnary.php | 25 - .../twig/src/Node/Expression/Unary/PosUnary.php | 25 - .../src/Node/Expression/VariadicExpression.php | 24 - .../vendor/twig/twig/src/Node/FlushNode.php | 37 - .../vendor/twig/twig/src/Node/ForLoopNode.php | 56 - .../vendor/twig/twig/src/Node/ForNode.php | 119 - .../vendor/twig/twig/src/Node/IfNode.php | 72 - .../vendor/twig/twig/src/Node/ImportNode.php | 65 - .../vendor/twig/twig/src/Node/IncludeNode.php | 108 - .../vendor/twig/twig/src/Node/MacroNode.php | 115 - .../vendor/twig/twig/src/Node/ModuleNode.php | 472 - srcs/phpmyadmin/vendor/twig/twig/src/Node/Node.php | 211 - .../twig/twig/src/Node/NodeCaptureInterface.php | 23 - .../twig/twig/src/Node/NodeOutputInterface.php | 23 - .../vendor/twig/twig/src/Node/PrintNode.php | 41 - .../vendor/twig/twig/src/Node/SandboxNode.php | 47 - .../twig/twig/src/Node/SandboxedPrintNode.php | 54 - .../vendor/twig/twig/src/Node/SetNode.php | 107 - .../vendor/twig/twig/src/Node/SpacelessNode.php | 49 - .../vendor/twig/twig/src/Node/TextNode.php | 40 - .../vendor/twig/twig/src/Node/WithNode.php | 72 - .../vendor/twig/twig/src/NodeTraverser.php | 85 - .../twig/src/NodeVisitor/AbstractNodeVisitor.php | 51 - .../twig/src/NodeVisitor/EscaperNodeVisitor.php | 208 - .../src/NodeVisitor/MacroAutoImportNodeVisitor.php | 72 - .../twig/src/NodeVisitor/NodeVisitorInterface.php | 51 - .../twig/src/NodeVisitor/OptimizerNodeVisitor.php | 219 - .../src/NodeVisitor/SafeAnalysisNodeVisitor.php | 160 - .../twig/src/NodeVisitor/SandboxNodeVisitor.php | 135 - srcs/phpmyadmin/vendor/twig/twig/src/Parser.php | 394 - .../twig/twig/src/Profiler/Dumper/BaseDumper.php | 65 - .../twig/src/Profiler/Dumper/BlackfireDumper.php | 74 - .../twig/twig/src/Profiler/Dumper/HtmlDumper.php | 49 - .../twig/twig/src/Profiler/Dumper/TextDumper.php | 37 - .../twig/src/Profiler/Node/EnterProfileNode.php | 44 - .../twig/src/Profiler/Node/LeaveProfileNode.php | 38 - .../Profiler/NodeVisitor/ProfilerNodeVisitor.php | 78 - .../vendor/twig/twig/src/Profiler/Profile.php | 192 - .../src/RuntimeLoader/ContainerRuntimeLoader.php | 41 - .../src/RuntimeLoader/FactoryRuntimeLoader.php | 41 - .../src/RuntimeLoader/RuntimeLoaderInterface.php | 31 - .../vendor/twig/twig/src/Sandbox/SecurityError.php | 25 - .../src/Sandbox/SecurityNotAllowedFilterError.php | 46 - .../Sandbox/SecurityNotAllowedFunctionError.php | 46 - .../src/Sandbox/SecurityNotAllowedMethodError.php | 53 - .../Sandbox/SecurityNotAllowedPropertyError.php | 53 - .../src/Sandbox/SecurityNotAllowedTagError.php | 46 - .../twig/twig/src/Sandbox/SecurityPolicy.php | 128 - .../twig/src/Sandbox/SecurityPolicyInterface.php | 37 - srcs/phpmyadmin/vendor/twig/twig/src/Source.php | 53 - srcs/phpmyadmin/vendor/twig/twig/src/Template.php | 437 - .../vendor/twig/twig/src/TemplateWrapper.php | 145 - .../twig/twig/src/Test/IntegrationTestCase.php | 267 - .../vendor/twig/twig/src/Test/NodeTestCase.php | 67 - srcs/phpmyadmin/vendor/twig/twig/src/Token.php | 213 - .../twig/src/TokenParser/AbstractTokenParser.php | 34 - .../twig/twig/src/TokenParser/ApplyTokenParser.php | 58 - .../twig/src/TokenParser/AutoEscapeTokenParser.php | 57 - .../twig/twig/src/TokenParser/BlockTokenParser.php | 78 - .../twig/src/TokenParser/DeprecatedTokenParser.php | 44 - .../twig/twig/src/TokenParser/DoTokenParser.php | 37 - .../twig/twig/src/TokenParser/EmbedTokenParser.php | 72 - .../twig/src/TokenParser/ExtendsTokenParser.php | 52 - .../twig/src/TokenParser/FilterTokenParser.php | 64 - .../twig/twig/src/TokenParser/FlushTokenParser.php | 37 - .../twig/twig/src/TokenParser/ForTokenParser.php | 137 - .../twig/twig/src/TokenParser/FromTokenParser.php | 65 - .../twig/twig/src/TokenParser/IfTokenParser.php | 89 - .../twig/src/TokenParser/ImportTokenParser.php | 43 - .../twig/src/TokenParser/IncludeTokenParser.php | 68 - .../twig/twig/src/TokenParser/MacroTokenParser.php | 66 - .../twig/src/TokenParser/SandboxTokenParser.php | 65 - .../twig/twig/src/TokenParser/SetTokenParser.php | 72 - .../twig/src/TokenParser/SpacelessTokenParser.php | 56 - .../twig/src/TokenParser/TokenParserInterface.php | 52 - .../twig/twig/src/TokenParser/UseTokenParser.php | 73 - .../twig/twig/src/TokenParser/WithTokenParser.php | 55 - .../vendor/twig/twig/src/TokenStream.php | 134 - .../phpmyadmin/vendor/twig/twig/src/TwigFilter.php | 150 - .../vendor/twig/twig/src/TwigFunction.php | 140 - srcs/phpmyadmin/vendor/twig/twig/src/TwigTest.php | 109 - .../twig/twig/src/Util/DeprecationCollector.php | 79 - .../twig/twig/src/Util/TemplateDirIterator.php | 30 - .../mariadb-mysql-kbs/.dependabot/config.yml | 14 - .../williamdes/mariadb-mysql-kbs/.editorconfig | 8 - .../williamdes/mariadb-mysql-kbs/.gitmodules | 3 - .../williamdes/mariadb-mysql-kbs/.jshintignore | 9 - .../vendor/williamdes/mariadb-mysql-kbs/.jshintrc | 11 - .../vendor/williamdes/mariadb-mysql-kbs/.npmignore | 30 - .../williamdes/mariadb-mysql-kbs/.prettierignore | 8 - .../williamdes/mariadb-mysql-kbs/.travis.yml | 174 - .../williamdes/mariadb-mysql-kbs/CHANGELOG.md | 424 - .../vendor/williamdes/mariadb-mysql-kbs/CODEOWNERS | 5 - .../vendor/williamdes/mariadb-mysql-kbs/LICENSE | 373 - .../vendor/williamdes/mariadb-mysql-kbs/README.md | 46 - .../williamdes/mariadb-mysql-kbs/SECURITY.md | 12 - .../williamdes/mariadb-mysql-kbs/composer.json | 89 - .../data/mariadb-aria-server-status-variables.json | 70 - .../data/mariadb-aria-system-variables.json | 362 - .../data/mariadb-cassandra-status-variables.json | 78 - .../data/mariadb-cassandra-system-variables.json | 113 - .../data/mariadb-connect-system-variables.json | 188 - .../mariadb-galera-cluster-status-variables.json | 276 - .../mariadb-galera-cluster-system-variables.json | 626 - .../data/mariadb-gtid-system-variables.json | 115 - ...iadb-mariadb-audit-plugin-status-variables.json | 27 - ...iadb-mariadb-audit-plugin-system-variables.json | 244 - .../data/mariadb-mroonga-status-variables.json | 16 - .../data/mariadb-mroonga-system-variables.json | 256 - .../data/mariadb-myisam-system-variables.json | 222 - .../data/mariadb-myrocks-system-variables.json | 1732 - ...ariadb-oqgraph-system-and-status-variables.json | 43 - ...ariadb-performance-schema-system-variables.json | 482 - ...ion-and-binary-log-server-system-variables.json | 988 - ...eplication-and-binary-log-status-variables.json | 328 - ...ronous-replication-plugin-status-variables.json | 81 - ...misynchronous-replication-system-variables.json | 148 - .../data/mariadb-server-status-variables.json | 3001 -- .../data/mariadb-server-system-variables.json | 3338 -- .../data/mariadb-sphinx-status-variables.json | 60 - .../mariadb-spider-server-status-variables.json | 42 - .../mariadb-spider-server-system-variables.json | 1419 - .../data/mariadb-ssltls-status-variables.json | 215 - .../data/mariadb-ssltls-system-variables.json | 123 - ...db-thread-pool-system-and-status-variables.json | 191 - .../data/mariadb-tokudb-status-variables.json | 856 - .../data/mariadb-tokudb-system-variables.json | 594 - .../mariadb-versioned-tables-system-variables.json | 43 - ...riadb-xtradbinnodb-server-status-variables.json | 1282 - ...riadb-xtradbinnodb-server-system-variables.json | 3088 -- .../data/mysql-audit-log-reference.json | 244 - .../data/mysql-innodb-parameters.json | 2133 -- .../mysql-mysql-cluster-options-variables.json | 714 - .../mysql-performance-schema-system-variables.json | 544 - ...-pluggable-authentication-system-variables.json | 342 - .../data/mysql-replication-options-binary-log.json | 551 - .../mysql-replication-options-binary-log_5.7.json | 487 - .../data/mysql-replication-options-gtids.json | 109 - .../data/mysql-replication-options-master.json | 137 - .../data/mysql-replication-options-slave.json | 676 - .../data/mysql-replication-options.json | 29 - .../data/mysql-server-options.json | 535 - .../data/mysql-server-system-variables.json | 3804 -- .../data/mysql-version-tokens-reference.json | 30 - .../mysql-x-plugin-options-system-variables.json | 302 - .../mariadb-mysql-kbs/dist/merged-raw.json | 38229 ------------------- .../mariadb-mysql-kbs/dist/merged-raw.md | 32426 ---------------- .../mariadb-mysql-kbs/dist/merged-slim.json | 29711 -------------- .../mariadb-mysql-kbs/dist/merged-ultraslim.json | 1 - .../mariadb-mysql-kbs/dist/merged-ultraslim.php | 2 - .../williamdes/mariadb-mysql-kbs/package-lock.json | 3330 -- .../williamdes/mariadb-mysql-kbs/package.json | 83 - .../vendor/williamdes/mariadb-mysql-kbs/phpcs.xml | 155 - .../williamdes/mariadb-mysql-kbs/phpstan.neon | 9 - .../mariadb-mysql-kbs/schemas/doc-url.json | 8 - .../mariadb-mysql-kbs/schemas/doc-version.json | 15 - .../schemas/linked-key-var-url.json | 8 - .../mariadb-mysql-kbs/schemas/linked-key-var.json | 12 - .../mariadb-mysql-kbs/schemas/merged-raw.json | 112 - .../mariadb-mysql-kbs/schemas/merged-slim.json | 101 - .../schemas/merged-ultraslim.json | 63 - .../mariadb-mysql-kbs/scripts/CHANGELOG.twig | 72 - .../mariadb-mysql-kbs/scripts/apidoc-generate.sh | 6 - .../mariadb-mysql-kbs/scripts/ci/changelog.sh | 4 - .../mariadb-mysql-kbs/scripts/ci/ci-cron.sh | 65 - .../mariadb-mysql-kbs/scripts/ci/ci-lint.sh | 14 - .../mariadb-mysql-kbs/scripts/ci/ci-mocha.sh | 5 - .../mariadb-mysql-kbs/scripts/ci/ci-phpcs.sh | 4 - .../mariadb-mysql-kbs/scripts/ci/ci-phpcsbf.sh | 4 - .../mariadb-mysql-kbs/scripts/ci/ci-phpstan.sh | 4 - .../mariadb-mysql-kbs/scripts/ci/ci-phpunit.sh | 4 - .../scripts/ci/install-reporters.sh | 27 - .../mariadb-mysql-kbs/scripts/ci/install.sh | 4 - .../mariadb-mysql-kbs/scripts/release.php | 165 - .../mariadb-mysql-kbs/scripts/sami-config.php | 19 - .../scripts/sudo-bot/.sudobotignore | 3 - .../scripts/sudo-bot/keys.tar.enc | Bin 30736 -> 0 bytes .../mariadb-mysql-kbs/scripts/sudo-bot/pubkey.asc | 186 - .../mariadb-mysql-kbs/scripts/sudo-bot/template.js | 89 - .../mariadb-mysql-kbs/src/KBDocumentation.php | 75 - .../williamdes/mariadb-mysql-kbs/src/KBEntry.php | 151 - .../mariadb-mysql-kbs/src/KBException.php | 12 - .../williamdes/mariadb-mysql-kbs/src/MariaDB.js | 271 - .../williamdes/mariadb-mysql-kbs/src/MySQL.js | 251 - .../williamdes/mariadb-mysql-kbs/src/Search.php | 167 - .../williamdes/mariadb-mysql-kbs/src/SlimData.php | 162 - .../williamdes/mariadb-mysql-kbs/src/cleaner.js | 128 - .../williamdes/mariadb-mysql-kbs/src/common.js | 113 - .../williamdes/mariadb-mysql-kbs/src/index.js | 13 - .../williamdes/mariadb-mysql-kbs/src/merge.php | 472 - .../williamdes/mariadb-mysql-kbs/test/DataTest.php | 74 - .../mariadb-mysql-kbs/test/RefProvider.php | 50 - .../mariadb-mysql-kbs/test/SearchTest.php | 178 - .../mariadb-mysql-kbs/test/SlimDataTest.php | 59 - .../williamdes/mariadb-mysql-kbs/test/cleaner.js | 193 - .../test/data/mysql_test_case_1.html | 235 - .../test/data/mysql_test_case_2.html | 1211 - .../test/data/mysql_test_case_3.html | 339 - .../test/data/ultraSlimDataTestWithVariables.json | 51 - .../williamdes/mariadb-mysql-kbs/test/index.js | 12 - .../williamdes/mariadb-mysql-kbs/test/parser.js | 129 - .../williamdes/mariadb-mysql-kbs/test/phpunit.xml | 27 - .../williamdes/mariadb-mysql-kbs/test/templates.js | 218 - 1427 files changed, 341079 deletions(-) delete mode 100644 srcs/phpmyadmin/vendor/autoload.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/CHANGELOG.md delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/LICENSE delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/README.md delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/composer.json delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/BitArray.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/BitMatrix.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/BitUtils.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/CharacterSetEci.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/EcBlock.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/EcBlocks.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/ErrorCorrectionLevel.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/FormatInformation.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/Mode.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/ReedSolomonCodec.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/Version.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Encoder/BlockPair.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Encoder/ByteMatrix.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Encoder/Encoder.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Encoder/MaskUtil.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Encoder/MatrixUtil.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Encoder/QrCode.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Exception/ExceptionInterface.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Exception/InvalidArgumentException.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Exception/OutOfBoundsException.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Exception/RuntimeException.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Exception/UnexpectedValueException.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Exception/WriterException.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Color/Alpha.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Color/Cmyk.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Color/ColorInterface.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Color/Gray.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Color/Rgb.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Eye/CompositeEye.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Eye/EyeInterface.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Eye/ModuleEye.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Eye/SimpleCircleEye.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Eye/SquareEye.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/EpsImageBackEnd.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/ImageBackEndInterface.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/ImagickImageBackEnd.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/SvgImageBackEnd.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/TransformationMatrix.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/ImageRenderer.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Module/DotsModule.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Module/EdgeIterator/Edge.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Module/EdgeIterator/EdgeIterator.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Module/ModuleInterface.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Module/RoundnessModule.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Module/SquareModule.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Path/Close.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Path/Curve.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Path/EllipticArc.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Path/Line.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Path/Move.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Path/OperationInterface.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Path/Path.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/PlainTextRenderer.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/RendererInterface.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/EyeFill.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/Fill.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/Gradient.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/GradientType.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/RendererStyle.php delete mode 100644 srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Writer.php delete mode 120000 srcs/phpmyadmin/vendor/bin/highlight-query delete mode 120000 srcs/phpmyadmin/vendor/bin/lint-query delete mode 120000 srcs/phpmyadmin/vendor/bin/tokenize-query delete mode 100644 srcs/phpmyadmin/vendor/composer/ClassLoader.php delete mode 100644 srcs/phpmyadmin/vendor/composer/LICENSE delete mode 100644 srcs/phpmyadmin/vendor/composer/autoload_classmap.php delete mode 100644 srcs/phpmyadmin/vendor/composer/autoload_files.php delete mode 100644 srcs/phpmyadmin/vendor/composer/autoload_namespaces.php delete mode 100644 srcs/phpmyadmin/vendor/composer/autoload_psr4.php delete mode 100644 srcs/phpmyadmin/vendor/composer/autoload_real.php delete mode 100644 srcs/phpmyadmin/vendor/composer/autoload_static.php delete mode 100644 srcs/phpmyadmin/vendor/composer/installed.json delete mode 100644 srcs/phpmyadmin/vendor/dasprid/enum/.coveralls.yml delete mode 100644 srcs/phpmyadmin/vendor/dasprid/enum/.travis.yml delete mode 100644 srcs/phpmyadmin/vendor/dasprid/enum/README.md delete mode 100644 srcs/phpmyadmin/vendor/dasprid/enum/composer.json delete mode 100644 srcs/phpmyadmin/vendor/dasprid/enum/phpcs.xml delete mode 100644 srcs/phpmyadmin/vendor/dasprid/enum/phpunit.xml.dist delete mode 100644 srcs/phpmyadmin/vendor/dasprid/enum/src/AbstractEnum.php delete mode 100644 srcs/phpmyadmin/vendor/dasprid/enum/src/EnumMap.php delete mode 100644 srcs/phpmyadmin/vendor/dasprid/enum/src/Exception/CloneNotSupportedException.php delete mode 100644 srcs/phpmyadmin/vendor/dasprid/enum/src/Exception/ExceptionInterface.php delete mode 100644 srcs/phpmyadmin/vendor/dasprid/enum/src/Exception/ExpectationException.php delete mode 100644 srcs/phpmyadmin/vendor/dasprid/enum/src/Exception/IllegalArgumentException.php delete mode 100644 srcs/phpmyadmin/vendor/dasprid/enum/src/Exception/MismatchException.php delete mode 100644 srcs/phpmyadmin/vendor/dasprid/enum/src/Exception/SerializeNotSupportedException.php delete mode 100644 srcs/phpmyadmin/vendor/dasprid/enum/src/Exception/UnserializeNotSupportedException.php delete mode 100644 srcs/phpmyadmin/vendor/dasprid/enum/src/NullValue.php delete mode 100644 srcs/phpmyadmin/vendor/dasprid/enum/test/AbstractEnumTest.php delete mode 100644 srcs/phpmyadmin/vendor/dasprid/enum/test/EnumMapTest.php delete mode 100644 srcs/phpmyadmin/vendor/dasprid/enum/test/NullValueTest.php delete mode 100644 srcs/phpmyadmin/vendor/dasprid/enum/test/Planet.php delete mode 100644 srcs/phpmyadmin/vendor/dasprid/enum/test/WeekDay.php delete mode 100644 srcs/phpmyadmin/vendor/google/recaptcha/.github/ISSUE_TEMPLATE/bug_report.md delete mode 100644 srcs/phpmyadmin/vendor/google/recaptcha/.travis.yml delete mode 100644 srcs/phpmyadmin/vendor/google/recaptcha/ARCHITECTURE.md delete mode 100644 srcs/phpmyadmin/vendor/google/recaptcha/CONTRIBUTING.md delete mode 100644 srcs/phpmyadmin/vendor/google/recaptcha/LICENSE delete mode 100644 srcs/phpmyadmin/vendor/google/recaptcha/README.md delete mode 100644 srcs/phpmyadmin/vendor/google/recaptcha/app.yaml delete mode 100644 srcs/phpmyadmin/vendor/google/recaptcha/composer.json delete mode 100644 srcs/phpmyadmin/vendor/google/recaptcha/phpunit.xml.dist delete mode 100644 srcs/phpmyadmin/vendor/google/recaptcha/src/ReCaptcha/ReCaptcha.php delete mode 100644 srcs/phpmyadmin/vendor/google/recaptcha/src/ReCaptcha/RequestMethod.php delete mode 100644 srcs/phpmyadmin/vendor/google/recaptcha/src/ReCaptcha/RequestMethod/Curl.php delete mode 100644 srcs/phpmyadmin/vendor/google/recaptcha/src/ReCaptcha/RequestMethod/CurlPost.php delete mode 100644 srcs/phpmyadmin/vendor/google/recaptcha/src/ReCaptcha/RequestMethod/Post.php delete mode 100644 srcs/phpmyadmin/vendor/google/recaptcha/src/ReCaptcha/RequestMethod/Socket.php delete mode 100644 srcs/phpmyadmin/vendor/google/recaptcha/src/ReCaptcha/RequestMethod/SocketPost.php delete mode 100644 srcs/phpmyadmin/vendor/google/recaptcha/src/ReCaptcha/RequestParameters.php delete mode 100644 srcs/phpmyadmin/vendor/google/recaptcha/src/ReCaptcha/Response.php delete mode 100644 srcs/phpmyadmin/vendor/google/recaptcha/src/autoload.php delete mode 100644 srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/.travis.yml delete mode 100644 srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/LICENSE.txt delete mode 100644 srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/README.md delete mode 100644 srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/composer.json delete mode 100644 srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/phpunit.xml.dist delete mode 100644 srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/psalm.xml delete mode 100644 srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/Base32.php delete mode 100644 srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/Base32Hex.php delete mode 100644 srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/Base64.php delete mode 100644 srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/Base64DotSlash.php delete mode 100644 srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/Base64DotSlashOrdered.php delete mode 100644 srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/Base64UrlSafe.php delete mode 100644 srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/Binary.php delete mode 100644 srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/EncoderInterface.php delete mode 100644 srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/Encoding.php delete mode 100644 srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/Hex.php delete mode 100644 srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/RFC4648.php delete mode 100644 srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/Base32HexTest.php delete mode 100644 srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/Base32Test.php delete mode 100644 srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/Base64DotSlashOrderedTest.php delete mode 100644 srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/Base64DotSlashTest.php delete mode 100644 srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/Base64Test.php delete mode 100644 srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/Base64UrlSafeTest.php delete mode 100644 srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/EncodingTest.php delete mode 100644 srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/HexTest.php delete mode 100644 srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/RFC4648Test.php delete mode 100644 srcs/phpmyadmin/vendor/paragonie/random_compat/LICENSE delete mode 100755 srcs/phpmyadmin/vendor/paragonie/random_compat/build-phar.sh delete mode 100644 srcs/phpmyadmin/vendor/paragonie/random_compat/composer.json delete mode 100644 srcs/phpmyadmin/vendor/paragonie/random_compat/dist/random_compat.phar.pubkey delete mode 100644 srcs/phpmyadmin/vendor/paragonie/random_compat/dist/random_compat.phar.pubkey.asc delete mode 100644 srcs/phpmyadmin/vendor/paragonie/random_compat/lib/random.php delete mode 100644 srcs/phpmyadmin/vendor/paragonie/random_compat/other/build_phar.php delete mode 100644 srcs/phpmyadmin/vendor/paragonie/random_compat/psalm-autoload.php delete mode 100644 srcs/phpmyadmin/vendor/paragonie/random_compat/psalm.xml delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/motranslator/.github/stale.yml delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/motranslator/CHANGES.md delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/motranslator/CONTRIBUTING.md delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/motranslator/LICENSE delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/motranslator/PERFORMANCE.md delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/motranslator/README.md delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/motranslator/codecov.yml delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/motranslator/composer.json delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/motranslator/phpunit.xml delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/motranslator/src/Loader.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/motranslator/src/ReaderException.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/motranslator/src/StringReader.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/motranslator/src/Translator.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/motranslator/src/functions.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/shapefile/CHANGELOG.md delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/shapefile/CONTRIBUTING.md delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/shapefile/LICENSE delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/shapefile/README.md delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/shapefile/codecov.yml delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/shapefile/composer.json delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/shapefile/phpunit.xml delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/shapefile/src/ShapeFile.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/shapefile/src/ShapeRecord.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/shapefile/src/Util.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/.github/stale.yml delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/.weblate delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/CHANGELOG.md delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/CODE_OF_CONDUCT.md delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/CONTRIBUTING.md delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/LICENSE.txt delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/README.md delete mode 100755 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/bin/highlight-query delete mode 100755 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/bin/lint-query delete mode 100755 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/bin/tokenize-query delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/codecov.yml delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/composer.json delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/af/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ar/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ast/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/az/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/be/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/be@latin/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/bg/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/bn/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/br/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/brx/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/bs/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ca/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ckb/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/cs/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/cy/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/da/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/de/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/el/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/en_GB/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/eo/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/es/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/et/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/eu/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/fa/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/fi/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/fr/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/fy/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/gl/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/gu/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/he/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/hi/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/hr/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/hu/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/hy/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ia/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/id/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/it/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ja/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ka/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/kk/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/km/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/kn/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ko/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ksh/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ky/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/li/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/lt/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/lv/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/mk/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ml/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/mn/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ms/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/nb/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ne/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/nl/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/pa/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/pl/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/pt/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/pt_BR/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ro/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ru/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/si/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/sk/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/sl/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/sq/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/sqlparser.pot delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/sr/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/sr@latin/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/sv/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ta/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/te/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/th/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/tk/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/tr/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/tt/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ug/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/uk/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ur/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/uz/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/uz@latin/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/vi/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/vls/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/zh_CN/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/zh_TW/LC_MESSAGES/sqlparser.mo delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/phpcs.xml.dist delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/phpstan.neon.dist delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/phpunit.xml.dist delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Component.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/AlterOperation.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/Array2d.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/ArrayObj.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/CaseExpression.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/Condition.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/CreateDefinition.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/DataType.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/Expression.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/ExpressionArray.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/FunctionCall.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/GroupKeyword.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/IndexHint.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/IntoKeyword.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/JoinKeyword.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/Key.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/Limit.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/LockExpression.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/OptionsArray.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/OrderKeyword.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/ParameterDefinition.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/PartitionDefinition.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/Reference.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/RenameOperation.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/SetOperation.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/UnionKeyword.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Context.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMariaDb100000.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMariaDb100100.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMariaDb100200.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMariaDb100300.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMySql50000.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMySql50100.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMySql50500.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMySql50600.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMySql50700.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMySql80000.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Core.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Exceptions/LexerException.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Exceptions/LoaderException.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Exceptions/ParserException.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Lexer.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Parser.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statement.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/AlterStatement.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/AnalyzeStatement.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/BackupStatement.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/CallStatement.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/CheckStatement.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/ChecksumStatement.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/CreateStatement.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/DeleteStatement.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/DropStatement.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/ExplainStatement.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/InsertStatement.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/LoadStatement.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/LockStatement.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/MaintenanceStatement.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/NotImplementedStatement.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/OptimizeStatement.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/PurgeStatement.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/RenameStatement.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/RepairStatement.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/ReplaceStatement.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/RestoreStatement.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/SelectStatement.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/SetStatement.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/ShowStatement.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/TransactionStatement.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/TruncateStatement.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/UpdateStatement.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Token.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/TokensList.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Translator.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/UtfString.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/BufferedQuery.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/CLI.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Error.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Formatter.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Misc.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Query.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Routine.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Table.php delete mode 100644 srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Tokens.php delete mode 100644 srcs/phpmyadmin/vendor/phpseclib/phpseclib/AUTHORS delete mode 100644 srcs/phpmyadmin/vendor/phpseclib/phpseclib/BACKERS.md delete mode 100644 srcs/phpmyadmin/vendor/phpseclib/phpseclib/LICENSE delete mode 100644 srcs/phpmyadmin/vendor/phpseclib/phpseclib/README.md delete mode 100644 srcs/phpmyadmin/vendor/phpseclib/phpseclib/appveyor.yml delete mode 100644 srcs/phpmyadmin/vendor/phpseclib/phpseclib/composer.json delete mode 100644 srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/Crypt/AES.php delete mode 100644 srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/Crypt/Base.php delete mode 100644 srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/Crypt/Random.php delete mode 100644 srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php delete mode 100644 srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/bootstrap.php delete mode 100644 srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/openssl.cnf delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/.scrutinizer.yml delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/.travis.yml delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/CHANGELOG.md delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/LICENSE.md delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/README.md delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/composer.json delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/composer.lock delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/phpunit.xml delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/src/Google2FA.php delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/tests/.gitkeep delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/tests/Constants.php delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/tests/Google2FATest.php delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/tests/bootstrap.php delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa/.scrutinizer.yml delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa/.travis.yml delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa/CHANGELOG.md delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa/LICENSE.md delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa/README.md delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa/RELICENSED.md delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa/composer.json delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa/composer.lock delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa/docs/playground.jpg delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa/phpunit.xml delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa/src/Exceptions/Contracts/Google2FA.php delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa/src/Exceptions/Contracts/IncompatibleWithGoogleAuthenticator.php delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa/src/Exceptions/Contracts/InvalidCharacters.php delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa/src/Exceptions/Contracts/SecretKeyTooShort.php delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa/src/Exceptions/Google2FAException.php delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa/src/Exceptions/IncompatibleWithGoogleAuthenticatorException.php delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa/src/Exceptions/InvalidCharactersException.php delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa/src/Exceptions/SecretKeyTooShortException.php delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa/src/Google2FA.php delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa/src/Support/Base32.php delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa/src/Support/Constants.php delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa/src/Support/QRCode.php delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa/src/Support/Url.php delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa/tests/.gitkeep delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa/tests/Constants.php delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa/tests/Google2FATest.php delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa/tests/bootstrap.php delete mode 100644 srcs/phpmyadmin/vendor/pragmarx/google2fa/upgrading.md delete mode 100644 srcs/phpmyadmin/vendor/psr/cache/CHANGELOG.md delete mode 100644 srcs/phpmyadmin/vendor/psr/cache/LICENSE.txt delete mode 100644 srcs/phpmyadmin/vendor/psr/cache/README.md delete mode 100644 srcs/phpmyadmin/vendor/psr/cache/composer.json delete mode 100644 srcs/phpmyadmin/vendor/psr/cache/src/CacheException.php delete mode 100644 srcs/phpmyadmin/vendor/psr/cache/src/CacheItemInterface.php delete mode 100644 srcs/phpmyadmin/vendor/psr/cache/src/CacheItemPoolInterface.php delete mode 100644 srcs/phpmyadmin/vendor/psr/cache/src/InvalidArgumentException.php delete mode 100644 srcs/phpmyadmin/vendor/psr/container/LICENSE delete mode 100644 srcs/phpmyadmin/vendor/psr/container/README.md delete mode 100644 srcs/phpmyadmin/vendor/psr/container/composer.json delete mode 100644 srcs/phpmyadmin/vendor/psr/container/src/ContainerExceptionInterface.php delete mode 100644 srcs/phpmyadmin/vendor/psr/container/src/ContainerInterface.php delete mode 100644 srcs/phpmyadmin/vendor/psr/container/src/NotFoundExceptionInterface.php delete mode 100644 srcs/phpmyadmin/vendor/psr/log/LICENSE delete mode 100644 srcs/phpmyadmin/vendor/psr/log/Psr/Log/AbstractLogger.php delete mode 100644 srcs/phpmyadmin/vendor/psr/log/Psr/Log/InvalidArgumentException.php delete mode 100644 srcs/phpmyadmin/vendor/psr/log/Psr/Log/LogLevel.php delete mode 100644 srcs/phpmyadmin/vendor/psr/log/Psr/Log/LoggerAwareInterface.php delete mode 100644 srcs/phpmyadmin/vendor/psr/log/Psr/Log/LoggerAwareTrait.php delete mode 100644 srcs/phpmyadmin/vendor/psr/log/Psr/Log/LoggerInterface.php delete mode 100644 srcs/phpmyadmin/vendor/psr/log/Psr/Log/LoggerTrait.php delete mode 100644 srcs/phpmyadmin/vendor/psr/log/Psr/Log/NullLogger.php delete mode 100644 srcs/phpmyadmin/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php delete mode 100644 srcs/phpmyadmin/vendor/psr/log/Psr/Log/Test/TestLogger.php delete mode 100644 srcs/phpmyadmin/vendor/psr/log/README.md delete mode 100644 srcs/phpmyadmin/vendor/psr/log/composer.json delete mode 100644 srcs/phpmyadmin/vendor/samyoul/u2f-php-server/LICENCE.md delete mode 100644 srcs/phpmyadmin/vendor/samyoul/u2f-php-server/README.md delete mode 100644 srcs/phpmyadmin/vendor/samyoul/u2f-php-server/composer.json delete mode 100644 srcs/phpmyadmin/vendor/samyoul/u2f-php-server/src/Registration.php delete mode 100644 srcs/phpmyadmin/vendor/samyoul/u2f-php-server/src/RegistrationRequest.php delete mode 100644 srcs/phpmyadmin/vendor/samyoul/u2f-php-server/src/SignRequest.php delete mode 100644 srcs/phpmyadmin/vendor/samyoul/u2f-php-server/src/U2FException.php delete mode 100644 srcs/phpmyadmin/vendor/samyoul/u2f-php-server/src/U2FServer.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache-contracts/CacheInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache-contracts/CacheTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache-contracts/CallbackInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache-contracts/ItemInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache-contracts/LICENSE delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache-contracts/README.md delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache-contracts/TagAwareCacheInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache-contracts/composer.json delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Adapter/AbstractAdapter.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Adapter/AbstractTagAwareAdapter.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Adapter/AdapterInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Adapter/ApcuAdapter.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Adapter/ArrayAdapter.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Adapter/ChainAdapter.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Adapter/DoctrineAdapter.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Adapter/FilesystemAdapter.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Adapter/FilesystemTagAwareAdapter.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Adapter/MemcachedAdapter.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Adapter/NullAdapter.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Adapter/PdoAdapter.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Adapter/PhpArrayAdapter.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Adapter/PhpFilesAdapter.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Adapter/ProxyAdapter.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Adapter/Psr16Adapter.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Adapter/RedisAdapter.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Adapter/RedisTagAwareAdapter.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Adapter/SimpleCacheAdapter.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Adapter/TagAwareAdapter.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Adapter/TagAwareAdapterInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Adapter/TraceableAdapter.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Adapter/TraceableTagAwareAdapter.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/CHANGELOG.md delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/CacheItem.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/DataCollector/CacheDataCollector.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/DependencyInjection/CacheCollectorPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/DependencyInjection/CachePoolClearerPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/DependencyInjection/CachePoolPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/DependencyInjection/CachePoolPrunerPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/DoctrineProvider.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Exception/CacheException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Exception/InvalidArgumentException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Exception/LogicException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/LICENSE delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/LockRegistry.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Marshaller/DefaultMarshaller.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Marshaller/DeflateMarshaller.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Marshaller/MarshallerInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Marshaller/TagAwareMarshaller.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/PruneableInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Psr16Cache.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/README.md delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/ResettableInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Simple/AbstractCache.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Simple/ApcuCache.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Simple/ArrayCache.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Simple/ChainCache.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Simple/DoctrineCache.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Simple/FilesystemCache.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Simple/MemcachedCache.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Simple/NullCache.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Simple/PdoCache.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Simple/PhpArrayCache.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Simple/PhpFilesCache.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Simple/Psr6Cache.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Simple/RedisCache.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Simple/TraceableCache.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Traits/AbstractAdapterTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Traits/AbstractTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Traits/ApcuTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Traits/ArrayTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Traits/ContractsTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Traits/DoctrineTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Traits/FilesystemCommonTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Traits/FilesystemTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Traits/MemcachedTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Traits/PdoTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Traits/PhpArrayTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Traits/PhpFilesTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Traits/ProxyTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Traits/RedisClusterProxy.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Traits/RedisProxy.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/Traits/RedisTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/cache/composer.json delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/CHANGELOG.md delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/ConfigCache.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/ConfigCacheFactory.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/ConfigCacheFactoryInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/ConfigCacheInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/ArrayNode.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/BaseNode.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/BooleanNode.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/ArrayNodeDefinition.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/BooleanNodeDefinition.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/BuilderAwareInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/EnumNodeDefinition.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/ExprBuilder.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/FloatNodeDefinition.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/IntegerNodeDefinition.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/MergeBuilder.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/NodeBuilder.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/NodeDefinition.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/NodeParentInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/NormalizationBuilder.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/NumericNodeDefinition.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/ParentNodeDefinitionInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/ScalarNodeDefinition.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/TreeBuilder.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/ValidationBuilder.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/VariableNodeDefinition.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/ConfigurationInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/Dumper/XmlReferenceDumper.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/Dumper/YamlReferenceDumper.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/EnumNode.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/DuplicateKeyException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/Exception.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/ForbiddenOverwriteException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/InvalidConfigurationException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/InvalidDefinitionException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/InvalidTypeException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/TreeWithoutRootNodeException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/UnsetKeyException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/FloatNode.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/IntegerNode.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/NodeInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/NumericNode.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/Processor.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/PrototypeNodeInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/PrototypedArrayNode.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/ScalarNode.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Definition/VariableNode.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Exception/FileLoaderImportCircularReferenceException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Exception/FileLoaderLoadException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Exception/FileLocatorFileNotFoundException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Exception/LoaderLoadException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/FileLocator.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/FileLocatorInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/LICENSE delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Loader/DelegatingLoader.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Loader/FileLoader.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Loader/GlobFileLoader.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Loader/Loader.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Loader/LoaderInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Loader/LoaderResolver.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Loader/LoaderResolverInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/README.md delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Resource/ClassExistenceResource.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Resource/ComposerResource.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Resource/DirectoryResource.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Resource/FileExistenceResource.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Resource/FileResource.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Resource/GlobResource.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Resource/ReflectionClassResource.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Resource/ResourceInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Resource/SelfCheckingResourceChecker.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Resource/SelfCheckingResourceInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/ResourceCheckerConfigCache.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/ResourceCheckerConfigCacheFactory.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/ResourceCheckerInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Util/Exception/InvalidXmlException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Util/Exception/XmlParsingException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/Util/XmlUtils.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/config/composer.json delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Alias.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/ArgumentInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/BoundArgument.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/IteratorArgument.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/ReferenceSetArgumentTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/RewindableGenerator.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/ServiceClosureArgument.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/ServiceLocator.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/ServiceLocatorArgument.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/TaggedIteratorArgument.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/CHANGELOG.md delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/ChildDefinition.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AbstractRecursivePass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AnalyzeServiceReferencesPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AutoAliasServicePass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AutowirePass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AutowireRequiredMethodsPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckArgumentsValidityPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckCircularReferencesPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckDefinitionValidityPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckReferenceValidityPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckTypeDeclarationsPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/Compiler.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CompilerPassInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/DecoratorServicePass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/DefinitionErrorExceptionPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ExtensionCompilerPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/InlineServiceDefinitionsPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/MergeExtensionConfigurationPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/PassConfig.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/PriorityTaggedServiceTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RegisterEnvVarProcessorsPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RegisterReverseContainerPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RegisterServiceSubscribersPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RemoveAbstractDefinitionsPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RemovePrivateAliasesPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RemoveUnusedDefinitionsPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RepeatablePassInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RepeatedPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ReplaceAliasByActualDefinitionPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveBindingsPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveChildDefinitionsPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveClassPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveEnvPlaceholdersPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveFactoryClassPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveHotPathPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveInstanceofConditionalsPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveInvalidReferencesPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveNamedArgumentsPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveParameterPlaceHoldersPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolvePrivatesPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveReferencesToAliasesPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveServiceSubscribersPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveTaggedIteratorArgumentPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceLocatorTagPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraph.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphEdge.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphNode.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ValidateEnvPlaceholdersPass.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Config/ContainerParametersResource.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Config/ContainerParametersResourceChecker.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Container.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/ContainerAwareInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/ContainerAwareTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/ContainerBuilder.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/ContainerInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Definition.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Dumper/Dumper.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Dumper/DumperInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Dumper/GraphvizDumper.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Dumper/PhpDumper.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Dumper/Preloader.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Dumper/XmlDumper.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Dumper/YamlDumper.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/EnvVarLoaderInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/EnvVarProcessor.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/EnvVarProcessorInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/AutowiringFailedException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/BadMethodCallException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/EnvNotFoundException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/EnvParameterException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/ExceptionInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/InvalidArgumentException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/InvalidParameterTypeException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/LogicException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/OutOfBoundsException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/ParameterCircularReferenceException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/ParameterNotFoundException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/RuntimeException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/ServiceCircularReferenceException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/ServiceNotFoundException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/ExpressionLanguage.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/ExpressionLanguageProvider.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/ConfigurationExtensionInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/Extension.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/ExtensionInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/PrependExtensionInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/LICENSE delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/LazyProxy/Instantiator/InstantiatorInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/LazyProxy/Instantiator/RealServiceInstantiator.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/DumperInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/NullDumper.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/LazyProxy/ProxyHelper.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/ClosureLoader.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/AbstractConfigurator.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/AbstractServiceConfigurator.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/AliasConfigurator.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ContainerConfigurator.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/DefaultsConfigurator.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/InlineServiceConfigurator.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/InstanceofConfigurator.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ParametersConfigurator.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/PrototypeConfigurator.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ReferenceConfigurator.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ServiceConfigurator.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ServicesConfigurator.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AbstractTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ArgumentTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutoconfigureTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutowireTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/BindTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/CallTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ClassTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ConfiguratorTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DecorateTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DeprecateTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FactoryTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FileTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/LazyTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ParentTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PropertyTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PublicTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ShareTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/SyntheticTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/TagTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/DirectoryLoader.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/FileLoader.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/GlobFileLoader.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/IniFileLoader.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/PhpFileLoader.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/XmlFileLoader.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/YamlFileLoader.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/schema/dic/services/services-1.0.xsd delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Parameter.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/ParameterBag/ContainerBag.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/ParameterBag/ContainerBagInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/ParameterBag/EnvPlaceholderParameterBag.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/ParameterBag/FrozenParameterBag.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/ParameterBag/ParameterBag.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/ParameterBag/ParameterBagInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/README.md delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Reference.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/ResettableContainerInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/ReverseContainer.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/ServiceLocator.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/ServiceSubscriberInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/TaggedContainerInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/TypedReference.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/Variable.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/dependency-injection/composer.json delete mode 100644 srcs/phpmyadmin/vendor/symfony/expression-language/CHANGELOG.md delete mode 100644 srcs/phpmyadmin/vendor/symfony/expression-language/Compiler.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/expression-language/Expression.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/expression-language/ExpressionFunction.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/expression-language/ExpressionFunctionProviderInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/expression-language/ExpressionLanguage.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/expression-language/LICENSE delete mode 100644 srcs/phpmyadmin/vendor/symfony/expression-language/Lexer.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/expression-language/Node/ArgumentsNode.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/expression-language/Node/ArrayNode.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/expression-language/Node/BinaryNode.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/expression-language/Node/ConditionalNode.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/expression-language/Node/ConstantNode.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/expression-language/Node/FunctionNode.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/expression-language/Node/GetAttrNode.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/expression-language/Node/NameNode.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/expression-language/Node/Node.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/expression-language/Node/UnaryNode.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/expression-language/ParsedExpression.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/expression-language/Parser.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/expression-language/README.md delete mode 100644 srcs/phpmyadmin/vendor/symfony/expression-language/SerializedParsedExpression.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/expression-language/SyntaxError.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/expression-language/Token.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/expression-language/TokenStream.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/expression-language/composer.json delete mode 100644 srcs/phpmyadmin/vendor/symfony/filesystem/CHANGELOG.md delete mode 100644 srcs/phpmyadmin/vendor/symfony/filesystem/Exception/ExceptionInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/filesystem/Exception/FileNotFoundException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/filesystem/Exception/IOException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/filesystem/Exception/IOExceptionInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/filesystem/Exception/InvalidArgumentException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/filesystem/Filesystem.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/filesystem/LICENSE delete mode 100644 srcs/phpmyadmin/vendor/symfony/filesystem/README.md delete mode 100644 srcs/phpmyadmin/vendor/symfony/filesystem/composer.json delete mode 100644 srcs/phpmyadmin/vendor/symfony/polyfill-ctype/Ctype.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/polyfill-ctype/LICENSE delete mode 100644 srcs/phpmyadmin/vendor/symfony/polyfill-ctype/README.md delete mode 100644 srcs/phpmyadmin/vendor/symfony/polyfill-ctype/bootstrap.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/polyfill-ctype/composer.json delete mode 100644 srcs/phpmyadmin/vendor/symfony/polyfill-mbstring/LICENSE delete mode 100644 srcs/phpmyadmin/vendor/symfony/polyfill-mbstring/Mbstring.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/polyfill-mbstring/README.md delete mode 100644 srcs/phpmyadmin/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/polyfill-mbstring/bootstrap.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/polyfill-mbstring/composer.json delete mode 100644 srcs/phpmyadmin/vendor/symfony/polyfill-php56/LICENSE delete mode 100644 srcs/phpmyadmin/vendor/symfony/polyfill-php56/Php56.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/polyfill-php56/README.md delete mode 100644 srcs/phpmyadmin/vendor/symfony/polyfill-php56/bootstrap.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/polyfill-php56/composer.json delete mode 100644 srcs/phpmyadmin/vendor/symfony/polyfill-util/Binary.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/polyfill-util/BinaryNoFuncOverload.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/polyfill-util/BinaryOnFuncOverload.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/polyfill-util/LICENSE delete mode 100644 srcs/phpmyadmin/vendor/symfony/polyfill-util/README.md delete mode 100644 srcs/phpmyadmin/vendor/symfony/polyfill-util/TestListener.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/polyfill-util/TestListenerForV5.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/polyfill-util/TestListenerForV6.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/polyfill-util/TestListenerForV7.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/polyfill-util/TestListenerTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/polyfill-util/composer.json delete mode 100644 srcs/phpmyadmin/vendor/symfony/service-contracts/LICENSE delete mode 100644 srcs/phpmyadmin/vendor/symfony/service-contracts/README.md delete mode 100644 srcs/phpmyadmin/vendor/symfony/service-contracts/ResetInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/service-contracts/ServiceLocatorTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/service-contracts/ServiceProviderInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/service-contracts/ServiceSubscriberInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/service-contracts/ServiceSubscriberTrait.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/service-contracts/Test/ServiceLocatorTest.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/service-contracts/composer.json delete mode 100644 srcs/phpmyadmin/vendor/symfony/var-exporter/CHANGELOG.md delete mode 100644 srcs/phpmyadmin/vendor/symfony/var-exporter/Exception/ClassNotFoundException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/var-exporter/Exception/ExceptionInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/var-exporter/Exception/NotInstantiableTypeException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/var-exporter/Instantiator.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/var-exporter/Internal/Exporter.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/var-exporter/Internal/Hydrator.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/var-exporter/Internal/Reference.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/var-exporter/Internal/Registry.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/var-exporter/Internal/Values.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/var-exporter/LICENSE delete mode 100644 srcs/phpmyadmin/vendor/symfony/var-exporter/README.md delete mode 100644 srcs/phpmyadmin/vendor/symfony/var-exporter/VarExporter.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/var-exporter/composer.json delete mode 100644 srcs/phpmyadmin/vendor/symfony/yaml/CHANGELOG.md delete mode 100644 srcs/phpmyadmin/vendor/symfony/yaml/Command/LintCommand.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/yaml/Dumper.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/yaml/Escaper.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/yaml/Exception/DumpException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/yaml/Exception/ExceptionInterface.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/yaml/Exception/ParseException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/yaml/Exception/RuntimeException.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/yaml/Inline.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/yaml/LICENSE delete mode 100644 srcs/phpmyadmin/vendor/symfony/yaml/Parser.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/yaml/README.md delete mode 100644 srcs/phpmyadmin/vendor/symfony/yaml/Tag/TaggedValue.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/yaml/Unescaper.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/yaml/Yaml.php delete mode 100644 srcs/phpmyadmin/vendor/symfony/yaml/composer.json delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/CHANGELOG.TXT delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/LICENSE.TXT delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/README.md delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/VERSION delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/composer.json delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/config/tcpdf_config.php delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/AUTHORS delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/BUGS delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/LICENSE delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/NEWS delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/README delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/langcover.txt delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/status.txt delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/unicover.txt delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavusans.ctg.z delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavusans.php delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavusans.z delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavusansb.ctg.z delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavusansb.php delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavusansb.z delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/helvetica.php delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/barcodes/datamatrix.php delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/barcodes/pdf417.php delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/barcodes/qrcode.php delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/tcpdf_colors.php delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/tcpdf_filters.php delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/tcpdf_font_data.php delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/tcpdf_fonts.php delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/tcpdf_images.php delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/tcpdf_static.php delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/tcpdf.php delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/tcpdf_autoconfig.php delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/tcpdf_barcodes_1d.php delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/tcpdf_barcodes_2d.php delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/tcpdf_import.php delete mode 100644 srcs/phpmyadmin/vendor/tecnickcom/tcpdf/tcpdf_parser.php delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/.travis.yml delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/LICENSE delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/README.rst delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/composer.json delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Autoloader.php delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Extension/Array.php delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Extension/Date.php delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Extension/I18n.php delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Extension/Intl.php delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Extension/Text.php delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar.php delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Arguments.php delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Array.php delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Body.php delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Boolean.php delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Constant.php delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Expression.php delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Hash.php delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Number.php delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Optional.php delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Switch.php delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Tag.php delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/GrammarInterface.php delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Node/Trans.php delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/SimpleTokenParser.php delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/TokenParser/Trans.php delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/phpunit.xml.dist delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/src/ArrayExtension.php delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/src/DateExtension.php delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/src/I18nExtension.php delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/src/IntlExtension.php delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/src/Node/TransNode.php delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/src/TextExtension.php delete mode 100644 srcs/phpmyadmin/vendor/twig/extensions/src/TokenParser/TransTokenParser.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/.editorconfig delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/.php_cs.dist delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/.travis.yml delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/CHANGELOG delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/LICENSE delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/README.rst delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/composer.json delete mode 100755 srcs/phpmyadmin/vendor/twig/twig/drupal_test.sh delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/BaseNodeVisitor.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Cache/Filesystem.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Cache/Null.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/CacheInterface.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Compiler.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/ContainerRuntimeLoader.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Environment.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Error.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Error/Loader.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Error/Runtime.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Error/Syntax.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/ExistsLoaderInterface.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/ExpressionParser.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Extension.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Extension/Core.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Extension/Debug.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Extension/Escaper.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Extension/GlobalsInterface.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Extension/InitRuntimeInterface.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Extension/Optimizer.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Extension/Profiler.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Extension/Sandbox.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Extension/Staging.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Extension/StringLoader.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/ExtensionInterface.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/ExtensionSet.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/FactoryRuntimeLoader.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/FileExtensionEscapingStrategy.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Filter.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Function.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Lexer.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Loader/Array.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Loader/Chain.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Loader/Filesystem.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/LoaderInterface.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Markup.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/AutoEscape.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Block.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/BlockReference.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Body.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/CheckSecurity.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Deprecated.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Do.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Embed.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Array.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/AssignName.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Binary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Add.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Binary/And.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Binary/BitwiseAnd.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Binary/BitwiseOr.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Binary/BitwiseXor.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Concat.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Div.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Binary/EndsWith.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Equal.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Binary/FloorDiv.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Greater.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Binary/GreaterEqual.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Binary/In.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Less.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Binary/LessEqual.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Matches.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Mod.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Mul.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Binary/NotEqual.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Binary/NotIn.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Or.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Power.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Range.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Binary/StartsWith.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Sub.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/BlockReference.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Call.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Conditional.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Constant.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Filter.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Filter/Default.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Function.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/GetAttr.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/MethodCall.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Name.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/NullCoalesce.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Parent.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/TempName.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Test.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Test/Constant.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Test/Defined.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Test/Divisibleby.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Test/Even.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Test/Null.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Test/Odd.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Test/Sameas.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Unary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Unary/Neg.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Unary/Not.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Expression/Unary/Pos.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Flush.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/For.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/ForLoop.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/If.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Import.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Include.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Macro.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Module.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Print.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Sandbox.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/SandboxedPrint.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Set.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Spaceless.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/Text.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Node/With.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/NodeCaptureInterface.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/NodeOutputInterface.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/NodeTraverser.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/NodeVisitor/Escaper.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/NodeVisitor/Optimizer.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/NodeVisitor/SafeAnalysis.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/NodeVisitor/Sandbox.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/NodeVisitorInterface.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Parser.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Profiler/Dumper/Base.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Profiler/Dumper/Blackfire.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Profiler/Dumper/Html.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Profiler/Dumper/Text.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Profiler/Node/EnterProfile.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Profiler/Node/LeaveProfile.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Profiler/NodeVisitor/Profiler.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Profiler/Profile.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/RuntimeLoaderInterface.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Sandbox/SecurityError.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Sandbox/SecurityNotAllowedFilterError.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Sandbox/SecurityNotAllowedFunctionError.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Sandbox/SecurityNotAllowedMethodError.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Sandbox/SecurityNotAllowedPropertyError.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Sandbox/SecurityNotAllowedTagError.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Sandbox/SecurityPolicy.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Sandbox/SecurityPolicyInterface.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/SimpleFilter.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/SimpleFunction.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/SimpleTest.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Source.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/SourceContextLoaderInterface.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Template.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/TemplateWrapper.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Test.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Test/IntegrationTestCase.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Test/NodeTestCase.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Token.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/TokenParser.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/TokenParser/AutoEscape.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/TokenParser/Block.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/TokenParser/Deprecated.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/TokenParser/Do.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/TokenParser/Embed.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/TokenParser/Extends.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/TokenParser/Filter.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/TokenParser/Flush.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/TokenParser/For.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/TokenParser/From.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/TokenParser/If.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/TokenParser/Import.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/TokenParser/Include.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/TokenParser/Macro.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/TokenParser/Sandbox.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/TokenParser/Set.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/TokenParser/Spaceless.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/TokenParser/Use.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/TokenParser/With.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/TokenParserInterface.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/TokenStream.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Util/DeprecationCollector.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/lib/Twig/Util/TemplateDirIterator.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Cache/CacheInterface.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Cache/FilesystemCache.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Cache/NullCache.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Compiler.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Environment.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Error/Error.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Error/LoaderError.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Error/RuntimeError.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Error/SyntaxError.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/ExpressionParser.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Extension/AbstractExtension.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Extension/CoreExtension.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Extension/DebugExtension.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Extension/EscaperExtension.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Extension/ExtensionInterface.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Extension/GlobalsInterface.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Extension/InitRuntimeInterface.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Extension/OptimizerExtension.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Extension/ProfilerExtension.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Extension/RuntimeExtensionInterface.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Extension/SandboxExtension.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Extension/StagingExtension.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Extension/StringLoaderExtension.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/ExtensionSet.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/FileExtensionEscapingStrategy.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Lexer.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Loader/ArrayLoader.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Loader/ChainLoader.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Loader/ExistsLoaderInterface.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Loader/FilesystemLoader.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Loader/LoaderInterface.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Loader/SourceContextLoaderInterface.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Markup.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/AutoEscapeNode.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/BlockNode.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/BlockReferenceNode.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/BodyNode.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/CheckSecurityNode.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/CheckToStringNode.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/DeprecatedNode.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/DoNode.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/EmbedNode.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/AbstractExpression.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/ArrayExpression.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/ArrowFunctionExpression.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/AssignNameExpression.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/AbstractBinary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/AddBinary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/AndBinary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/BitwiseAndBinary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/BitwiseOrBinary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/BitwiseXorBinary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/ConcatBinary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/DivBinary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/EndsWithBinary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/EqualBinary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/FloorDivBinary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/GreaterBinary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/GreaterEqualBinary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/InBinary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/LessBinary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/LessEqualBinary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/MatchesBinary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/ModBinary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/MulBinary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/NotEqualBinary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/NotInBinary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/OrBinary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/PowerBinary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/RangeBinary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/SpaceshipBinary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/StartsWithBinary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/SubBinary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/BlockReferenceExpression.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/CallExpression.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/ConditionalExpression.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/ConstantExpression.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Filter/DefaultFilter.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/FilterExpression.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/FunctionExpression.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/GetAttrExpression.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/InlinePrint.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/MethodCallExpression.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/NameExpression.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/NullCoalesceExpression.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/ParentExpression.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/TempNameExpression.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Test/ConstantTest.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Test/DefinedTest.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Test/DivisiblebyTest.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Test/EvenTest.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Test/NullTest.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Test/OddTest.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Test/SameasTest.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/TestExpression.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Unary/AbstractUnary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Unary/NegUnary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Unary/NotUnary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Unary/PosUnary.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/VariadicExpression.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/FlushNode.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/ForLoopNode.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/ForNode.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/IfNode.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/ImportNode.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/IncludeNode.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/MacroNode.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/ModuleNode.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/Node.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/NodeCaptureInterface.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/NodeOutputInterface.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/PrintNode.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/SandboxNode.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/SandboxedPrintNode.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/SetNode.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/SpacelessNode.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/TextNode.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Node/WithNode.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/NodeTraverser.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/NodeVisitor/AbstractNodeVisitor.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/NodeVisitor/EscaperNodeVisitor.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/NodeVisitor/MacroAutoImportNodeVisitor.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/NodeVisitor/NodeVisitorInterface.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/NodeVisitor/OptimizerNodeVisitor.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/NodeVisitor/SafeAnalysisNodeVisitor.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/NodeVisitor/SandboxNodeVisitor.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Parser.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Profiler/Dumper/BaseDumper.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Profiler/Dumper/BlackfireDumper.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Profiler/Dumper/HtmlDumper.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Profiler/Dumper/TextDumper.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Profiler/Node/EnterProfileNode.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Profiler/Node/LeaveProfileNode.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Profiler/NodeVisitor/ProfilerNodeVisitor.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Profiler/Profile.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/RuntimeLoader/ContainerRuntimeLoader.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/RuntimeLoader/FactoryRuntimeLoader.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/RuntimeLoader/RuntimeLoaderInterface.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityError.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityNotAllowedFilterError.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityNotAllowedFunctionError.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityNotAllowedMethodError.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityNotAllowedPropertyError.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityNotAllowedTagError.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityPolicy.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityPolicyInterface.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Source.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Template.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/TemplateWrapper.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Test/IntegrationTestCase.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Test/NodeTestCase.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Token.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/AbstractTokenParser.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/ApplyTokenParser.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/AutoEscapeTokenParser.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/BlockTokenParser.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/DeprecatedTokenParser.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/DoTokenParser.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/EmbedTokenParser.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/ExtendsTokenParser.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/FilterTokenParser.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/FlushTokenParser.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/ForTokenParser.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/FromTokenParser.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/IfTokenParser.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/ImportTokenParser.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/IncludeTokenParser.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/MacroTokenParser.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/SandboxTokenParser.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/SetTokenParser.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/SpacelessTokenParser.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/TokenParserInterface.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/UseTokenParser.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/WithTokenParser.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/TokenStream.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/TwigFilter.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/TwigFunction.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/TwigTest.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Util/DeprecationCollector.php delete mode 100644 srcs/phpmyadmin/vendor/twig/twig/src/Util/TemplateDirIterator.php delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.dependabot/config.yml delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.editorconfig delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.gitmodules delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.jshintignore delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.jshintrc delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.npmignore delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.prettierignore delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.travis.yml delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/CHANGELOG.md delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/CODEOWNERS delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/LICENSE delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/README.md delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/SECURITY.md delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/composer.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-aria-server-status-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-aria-system-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-cassandra-status-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-cassandra-system-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-connect-system-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-galera-cluster-status-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-galera-cluster-system-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-gtid-system-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-mariadb-audit-plugin-status-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-mariadb-audit-plugin-system-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-mroonga-status-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-mroonga-system-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-myisam-system-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-myrocks-system-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-oqgraph-system-and-status-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-performance-schema-system-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-replication-and-binary-log-server-system-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-replication-and-binary-log-status-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-semisynchronous-replication-plugin-status-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-semisynchronous-replication-system-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-server-status-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-server-system-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-sphinx-status-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-spider-server-status-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-spider-server-system-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-ssltls-status-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-ssltls-system-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-thread-pool-system-and-status-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-tokudb-status-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-tokudb-system-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-versioned-tables-system-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-xtradbinnodb-server-status-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-xtradbinnodb-server-system-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-audit-log-reference.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-innodb-parameters.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-mysql-cluster-options-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-performance-schema-system-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-pluggable-authentication-system-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-replication-options-binary-log.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-replication-options-binary-log_5.7.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-replication-options-gtids.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-replication-options-master.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-replication-options-slave.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-replication-options.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-server-options.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-server-system-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-version-tokens-reference.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-x-plugin-options-system-variables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/dist/merged-raw.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/dist/merged-raw.md delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/dist/merged-slim.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/dist/merged-ultraslim.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/dist/merged-ultraslim.php delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/package-lock.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/package.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/phpcs.xml delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/phpstan.neon delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/schemas/doc-url.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/schemas/doc-version.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/schemas/linked-key-var-url.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/schemas/linked-key-var.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/schemas/merged-raw.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/schemas/merged-slim.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/schemas/merged-ultraslim.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/CHANGELOG.twig delete mode 100755 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/apidoc-generate.sh delete mode 100755 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/changelog.sh delete mode 100755 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/ci-cron.sh delete mode 100755 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/ci-lint.sh delete mode 100755 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/ci-mocha.sh delete mode 100755 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/ci-phpcs.sh delete mode 100755 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/ci-phpcsbf.sh delete mode 100755 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/ci-phpstan.sh delete mode 100755 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/ci-phpunit.sh delete mode 100755 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/install-reporters.sh delete mode 100755 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/install.sh delete mode 100755 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/release.php delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/sami-config.php delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/sudo-bot/.sudobotignore delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/sudo-bot/keys.tar.enc delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/sudo-bot/pubkey.asc delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/sudo-bot/template.js delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/KBDocumentation.php delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/KBEntry.php delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/KBException.php delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/MariaDB.js delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/MySQL.js delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/Search.php delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/SlimData.php delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/cleaner.js delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/common.js delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/index.js delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/merge.php delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/DataTest.php delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/RefProvider.php delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/SearchTest.php delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/SlimDataTest.php delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/cleaner.js delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/data/mysql_test_case_1.html delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/data/mysql_test_case_2.html delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/data/mysql_test_case_3.html delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/data/ultraSlimDataTestWithVariables.json delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/index.js delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/parser.js delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/phpunit.xml delete mode 100644 srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/templates.js (limited to 'srcs/phpmyadmin/vendor') diff --git a/srcs/phpmyadmin/vendor/autoload.php b/srcs/phpmyadmin/vendor/autoload.php deleted file mode 100644 index b47b837..0000000 --- a/srcs/phpmyadmin/vendor/autoload.php +++ /dev/null @@ -1,7 +0,0 @@ -writeFile('Hello World!', 'qrcode.png'); -``` - -## Available image renderer back ends -BaconQrCode comes with multiple back ends for rendering images. Currently included are the following: - -- `ImagickImageBackEnd`: renders raster images using the Imagick library -- `SvgImageBackEnd`: renders SVG files using XMLWriter -- `EpsImageBackEnd`: renders EPS files diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/composer.json b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/composer.json deleted file mode 100644 index d66d586..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/composer.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "bacon/bacon-qr-code", - "description": "BaconQrCode is a QR code generator for PHP.", - "license" : "BSD-2-Clause", - "homepage": "https://github.com/Bacon/BaconQrCode", - "require": { - "php": "^7.1", - "ext-iconv": "*", - "dasprid/enum": "^1.0" - }, - "suggest": { - "ext-imagick": "to generate QR code images" - }, - "authors": [ - { - "name": "Ben Scholzen 'DASPRiD'", - "email": "mail@dasprids.de", - "homepage": "http://www.dasprids.de", - "role": "Developer" - } - ], - "autoload": { - "psr-4": { - "BaconQrCode\\": "src/" - } - }, - "require-dev": { - "phpunit/phpunit": "^6.4", - "squizlabs/php_codesniffer": "^3.1", - "phly/keep-a-changelog": "^1.4" - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/BitArray.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/BitArray.php deleted file mode 100644 index 158384f..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/BitArray.php +++ /dev/null @@ -1,372 +0,0 @@ - - */ - private $bits; - - /** - * Size of the bit array in bits. - * - * @var int - */ - private $size; - - /** - * Creates a new bit array with a given size. - */ - public function __construct(int $size = 0) - { - $this->size = $size; - $this->bits = SplFixedArray::fromArray(array_fill(0, ($this->size + 31) >> 3, 0)); - } - - /** - * Gets the size in bits. - */ - public function getSize() : int - { - return $this->size; - } - - /** - * Gets the size in bytes. - */ - public function getSizeInBytes() : int - { - return ($this->size + 7) >> 3; - } - - /** - * Ensures that the array has a minimum capacity. - */ - public function ensureCapacity(int $size) : void - { - if ($size > count($this->bits) << 5) { - $this->bits->setSize(($size + 31) >> 5); - } - } - - /** - * Gets a specific bit. - */ - public function get(int $i) : bool - { - return 0 !== ($this->bits[$i >> 5] & (1 << ($i & 0x1f))); - } - - /** - * Sets a specific bit. - */ - public function set(int $i) : void - { - $this->bits[$i >> 5] = $this->bits[$i >> 5] | 1 << ($i & 0x1f); - } - - /** - * Flips a specific bit. - */ - public function flip(int $i) : void - { - $this->bits[$i >> 5] ^= 1 << ($i & 0x1f); - } - - /** - * Gets the next set bit position from a given position. - */ - public function getNextSet(int $from) : int - { - if ($from >= $this->size) { - return $this->size; - } - - $bitsOffset = $from >> 5; - $currentBits = $this->bits[$bitsOffset]; - $bitsLength = count($this->bits); - $currentBits &= ~((1 << ($from & 0x1f)) - 1); - - while (0 === $currentBits) { - if (++$bitsOffset === $bitsLength) { - return $this->size; - } - - $currentBits = $this->bits[$bitsOffset]; - } - - $result = ($bitsOffset << 5) + BitUtils::numberOfTrailingZeros($currentBits); - return $result > $this->size ? $this->size : $result; - } - - /** - * Gets the next unset bit position from a given position. - */ - public function getNextUnset(int $from) : int - { - if ($from >= $this->size) { - return $this->size; - } - - $bitsOffset = $from >> 5; - $currentBits = ~$this->bits[$bitsOffset]; - $bitsLength = count($this->bits); - $currentBits &= ~((1 << ($from & 0x1f)) - 1); - - while (0 === $currentBits) { - if (++$bitsOffset === $bitsLength) { - return $this->size; - } - - $currentBits = ~$this->bits[$bitsOffset]; - } - - $result = ($bitsOffset << 5) + BitUtils::numberOfTrailingZeros($currentBits); - return $result > $this->size ? $this->size : $result; - } - - /** - * Sets a bulk of bits. - */ - public function setBulk(int $i, int $newBits) : void - { - $this->bits[$i >> 5] = $newBits; - } - - /** - * Sets a range of bits. - * - * @throws InvalidArgumentException if end is smaller than start - */ - public function setRange(int $start, int $end) : void - { - if ($end < $start) { - throw new InvalidArgumentException('End must be greater or equal to start'); - } - - if ($end === $start) { - return; - } - - --$end; - - $firstInt = $start >> 5; - $lastInt = $end >> 5; - - for ($i = $firstInt; $i <= $lastInt; ++$i) { - $firstBit = $i > $firstInt ? 0 : $start & 0x1f; - $lastBit = $i < $lastInt ? 31 : $end & 0x1f; - - if (0 === $firstBit && 31 === $lastBit) { - $mask = 0x7fffffff; - } else { - $mask = 0; - - for ($j = $firstBit; $j < $lastBit; ++$j) { - $mask |= 1 << $j; - } - } - - $this->bits[$i] = $this->bits[$i] | $mask; - } - } - - /** - * Clears the bit array, unsetting every bit. - */ - public function clear() : void - { - $bitsLength = count($this->bits); - - for ($i = 0; $i < $bitsLength; ++$i) { - $this->bits[$i] = 0; - } - } - - /** - * Checks if a range of bits is set or not set. - - * @throws InvalidArgumentException if end is smaller than start - */ - public function isRange(int $start, int $end, bool $value) : bool - { - if ($end < $start) { - throw new InvalidArgumentException('End must be greater or equal to start'); - } - - if ($end === $start) { - return true; - } - - --$end; - - $firstInt = $start >> 5; - $lastInt = $end >> 5; - - for ($i = $firstInt; $i <= $lastInt; ++$i) { - $firstBit = $i > $firstInt ? 0 : $start & 0x1f; - $lastBit = $i < $lastInt ? 31 : $end & 0x1f; - - if (0 === $firstBit && 31 === $lastBit) { - $mask = 0x7fffffff; - } else { - $mask = 0; - - for ($j = $firstBit; $j <= $lastBit; ++$j) { - $mask |= 1 << $j; - } - } - - if (($this->bits[$i] & $mask) !== ($value ? $mask : 0)) { - return false; - } - } - - return true; - } - - /** - * Appends a bit to the array. - */ - public function appendBit(bool $bit) : void - { - $this->ensureCapacity($this->size + 1); - - if ($bit) { - $this->bits[$this->size >> 5] = $this->bits[$this->size >> 5] | (1 << ($this->size & 0x1f)); - } - - ++$this->size; - } - - /** - * Appends a number of bits (up to 32) to the array. - - * @throws InvalidArgumentException if num bits is not between 0 and 32 - */ - public function appendBits(int $value, int $numBits) : void - { - if ($numBits < 0 || $numBits > 32) { - throw new InvalidArgumentException('Num bits must be between 0 and 32'); - } - - $this->ensureCapacity($this->size + $numBits); - - for ($numBitsLeft = $numBits; $numBitsLeft > 0; $numBitsLeft--) { - $this->appendBit((($value >> ($numBitsLeft - 1)) & 0x01) === 1); - } - } - - /** - * Appends another bit array to this array. - */ - public function appendBitArray(self $other) : void - { - $otherSize = $other->getSize(); - $this->ensureCapacity($this->size + $other->getSize()); - - for ($i = 0; $i < $otherSize; ++$i) { - $this->appendBit($other->get($i)); - } - } - - /** - * Makes an exclusive-or comparision on the current bit array. - * - * @throws InvalidArgumentException if sizes don't match - */ - public function xorBits(self $other) : void - { - $bitsLength = count($this->bits); - $otherBits = $other->getBitArray(); - - if ($bitsLength !== count($otherBits)) { - throw new InvalidArgumentException('Sizes don\'t match'); - } - - for ($i = 0; $i < $bitsLength; ++$i) { - $this->bits[$i] = $this->bits[$i] ^ $otherBits[$i]; - } - } - - /** - * Converts the bit array to a byte array. - * - * @return SplFixedArray - */ - public function toBytes(int $bitOffset, int $numBytes) : SplFixedArray - { - $bytes = new SplFixedArray($numBytes); - - for ($i = 0; $i < $numBytes; ++$i) { - $byte = 0; - - for ($j = 0; $j < 8; ++$j) { - if ($this->get($bitOffset)) { - $byte |= 1 << (7 - $j); - } - - ++$bitOffset; - } - - $bytes[$i] = $byte; - } - - return $bytes; - } - - /** - * Gets the internal bit array. - * - * @return SplFixedArray - */ - public function getBitArray() : SplFixedArray - { - return $this->bits; - } - - /** - * Reverses the array. - */ - public function reverse() : void - { - $newBits = new SplFixedArray(count($this->bits)); - - for ($i = 0; $i < $this->size; ++$i) { - if ($this->get($this->size - $i - 1)) { - $newBits[$i >> 5] = $newBits[$i >> 5] | (1 << ($i & 0x1f)); - } - } - - $this->bits = $newBits; - } - - /** - * Returns a string representation of the bit array. - */ - public function __toString() : string - { - $result = ''; - - for ($i = 0; $i < $this->size; ++$i) { - if (0 === ($i & 0x07)) { - $result .= ' '; - } - - $result .= $this->get($i) ? 'X' : '.'; - } - - return $result; - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/BitMatrix.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/BitMatrix.php deleted file mode 100644 index 10bf8fe..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/BitMatrix.php +++ /dev/null @@ -1,313 +0,0 @@ - - */ - private $bits; - - /** - * @throws InvalidArgumentException if a dimension is smaller than zero - */ - public function __construct(int $width, int $height = null) - { - if (null === $height) { - $height = $width; - } - - if ($width < 1 || $height < 1) { - throw new InvalidArgumentException('Both dimensions must be greater than zero'); - } - - $this->width = $width; - $this->height = $height; - $this->rowSize = ($width + 31) >> 5; - $this->bits = SplFixedArray::fromArray(array_fill(0, $this->rowSize * $height, 0)); - } - - /** - * Gets the requested bit, where true means black. - */ - public function get(int $x, int $y) : bool - { - $offset = $y * $this->rowSize + ($x >> 5); - return 0 !== (BitUtils::unsignedRightShift($this->bits[$offset], ($x & 0x1f)) & 1); - } - - /** - * Sets the given bit to true. - */ - public function set(int $x, int $y) : void - { - $offset = $y * $this->rowSize + ($x >> 5); - $this->bits[$offset] = $this->bits[$offset] | (1 << ($x & 0x1f)); - } - - /** - * Flips the given bit. - */ - public function flip(int $x, int $y) : void - { - $offset = $y * $this->rowSize + ($x >> 5); - $this->bits[$offset] = $this->bits[$offset] ^ (1 << ($x & 0x1f)); - } - - /** - * Clears all bits (set to false). - */ - public function clear() : void - { - $max = count($this->bits); - - for ($i = 0; $i < $max; ++$i) { - $this->bits[$i] = 0; - } - } - - /** - * Sets a square region of the bit matrix to true. - * - * @throws InvalidArgumentException if left or top are negative - * @throws InvalidArgumentException if width or height are smaller than 1 - * @throws InvalidArgumentException if region does not fit into the matix - */ - public function setRegion(int $left, int $top, int $width, int $height) : void - { - if ($top < 0 || $left < 0) { - throw new InvalidArgumentException('Left and top must be non-negative'); - } - - if ($height < 1 || $width < 1) { - throw new InvalidArgumentException('Width and height must be at least 1'); - } - - $right = $left + $width; - $bottom = $top + $height; - - if ($bottom > $this->height || $right > $this->width) { - throw new InvalidArgumentException('The region must fit inside the matrix'); - } - - for ($y = $top; $y < $bottom; ++$y) { - $offset = $y * $this->rowSize; - - for ($x = $left; $x < $right; ++$x) { - $index = $offset + ($x >> 5); - $this->bits[$index] = $this->bits[$index] | (1 << ($x & 0x1f)); - } - } - } - - /** - * A fast method to retrieve one row of data from the matrix as a BitArray. - */ - public function getRow(int $y, BitArray $row = null) : BitArray - { - if (null === $row || $row->getSize() < $this->width) { - $row = new BitArray($this->width); - } - - $offset = $y * $this->rowSize; - - for ($x = 0; $x < $this->rowSize; ++$x) { - $row->setBulk($x << 5, $this->bits[$offset + $x]); - } - - return $row; - } - - /** - * Sets a row of data from a BitArray. - */ - public function setRow(int $y, BitArray $row) : void - { - $bits = $row->getBitArray(); - - for ($i = 0; $i < $this->rowSize; ++$i) { - $this->bits[$y * $this->rowSize + $i] = $bits[$i]; - } - } - - /** - * This is useful in detecting the enclosing rectangle of a 'pure' barcode. - * - * @return int[]|null - */ - public function getEnclosingRectangle() : ?array - { - $left = $this->width; - $top = $this->height; - $right = -1; - $bottom = -1; - - for ($y = 0; $y < $this->height; ++$y) { - for ($x32 = 0; $x32 < $this->rowSize; ++$x32) { - $bits = $this->bits[$y * $this->rowSize + $x32]; - - if (0 !== $bits) { - if ($y < $top) { - $top = $y; - } - - if ($y > $bottom) { - $bottom = $y; - } - - if ($x32 * 32 < $left) { - $bit = 0; - - while (($bits << (31 - $bit)) === 0) { - $bit++; - } - - if (($x32 * 32 + $bit) < $left) { - $left = $x32 * 32 + $bit; - } - } - } - - if ($x32 * 32 + 31 > $right) { - $bit = 31; - - while (0 === BitUtils::unsignedRightShift($bits, $bit)) { - --$bit; - } - - if (($x32 * 32 + $bit) > $right) { - $right = $x32 * 32 + $bit; - } - } - } - } - - $width = $right - $left; - $height = $bottom - $top; - - if ($width < 0 || $height < 0) { - return null; - } - - return [$left, $top, $width, $height]; - } - - /** - * Gets the most top left set bit. - * - * This is useful in detecting a corner of a 'pure' barcode. - * - * @return int[]|null - */ - public function getTopLeftOnBit() : ?array - { - $bitsOffset = 0; - - while ($bitsOffset < count($this->bits) && 0 === $this->bits[$bitsOffset]) { - ++$bitsOffset; - } - - if (count($this->bits) === $bitsOffset) { - return null; - } - - $x = intdiv($bitsOffset, $this->rowSize); - $y = ($bitsOffset % $this->rowSize) << 5; - - $bits = $this->bits[$bitsOffset]; - $bit = 0; - - while (0 === ($bits << (31 - $bit))) { - ++$bit; - } - - $x += $bit; - - return [$x, $y]; - } - - /** - * Gets the most bottom right set bit. - * - * This is useful in detecting a corner of a 'pure' barcode. - * - * @return int[]|null - */ - public function getBottomRightOnBit() : ?array - { - $bitsOffset = count($this->bits) - 1; - - while ($bitsOffset >= 0 && 0 === $this->bits[$bitsOffset]) { - --$bitsOffset; - } - - if ($bitsOffset < 0) { - return null; - } - - $x = intdiv($bitsOffset, $this->rowSize); - $y = ($bitsOffset % $this->rowSize) << 5; - - $bits = $this->bits[$bitsOffset]; - $bit = 0; - - while (0 === BitUtils::unsignedRightShift($bits, $bit)) { - --$bit; - } - - $x += $bit; - - return [$x, $y]; - } - - /** - * Gets the width of the matrix, - */ - public function getWidth() : int - { - return $this->width; - } - - /** - * Gets the height of the matrix. - */ - public function getHeight() : int - { - return $this->height; - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/BitUtils.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/BitUtils.php deleted file mode 100644 index 0c575b4..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/BitUtils.php +++ /dev/null @@ -1,41 +0,0 @@ ->>" in other - * languages. - */ - public static function unsignedRightShift(int $a, int $b) : int - { - return ( - $a >= 0 - ? $a >> $b - : (($a & 0x7fffffff) >> $b) | (0x40000000 >> ($b - 1)) - ); - } - - /** - * Gets the number of trailing zeros. - */ - public static function numberOfTrailingZeros(int $i) : int - { - $lastPos = strrpos(str_pad(decbin($i), 32, '0', STR_PAD_LEFT), '1'); - return $lastPos === false ? 32 : 31 - $lastPos; - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/CharacterSetEci.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/CharacterSetEci.php deleted file mode 100644 index 6dfff17..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/CharacterSetEci.php +++ /dev/null @@ -1,180 +0,0 @@ -|null - */ - private static $valueToEci; - - /** - * @var array|null - */ - private static $nameToEci; - - public function __construct(array $values, string ...$otherEncodingNames) - { - $this->values = $values; - $this->otherEncodingNames = $otherEncodingNames; - } - - /** - * Returns the primary value. - */ - public function getValue() : int - { - return $this->values[0]; - } - - /** - * Gets character set ECI by value. - * - * Returns the representing ECI of a given value, or null if it is legal but unsupported. - * - * @throws InvalidArgumentException if value is not between 0 and 900 - */ - public static function getCharacterSetEciByValue(int $value) : ?self - { - if ($value < 0 || $value >= 900) { - throw new InvalidArgumentException('Value must be between 0 and 900'); - } - - $valueToEci = self::valueToEci(); - - if (! array_key_exists($value, $valueToEci)) { - return null; - } - - return $valueToEci[$value]; - } - - /** - * Returns character set ECI by name. - * - * Returns the representing ECI of a given name, or null if it is legal but unsupported - */ - public static function getCharacterSetEciByName(string $name) : ?self - { - $nameToEci = self::nameToEci(); - $name = strtolower($name); - - if (! array_key_exists($name, $nameToEci)) { - return null; - } - - return $nameToEci[$name]; - } - - private static function valueToEci() : array - { - if (null !== self::$valueToEci) { - return self::$valueToEci; - } - - self::$valueToEci = []; - - foreach (self::values() as $eci) { - foreach ($eci->values as $value) { - self::$valueToEci[$value] = $eci; - } - } - - return self::$valueToEci; - } - - private static function nameToEci() : array - { - if (null !== self::$nameToEci) { - return self::$nameToEci; - } - - self::$nameToEci = []; - - foreach (self::values() as $eci) { - self::$nameToEci[strtolower($eci->name())] = $eci; - - foreach ($eci->otherEncodingNames as $name) { - self::$nameToEci[strtolower($name)] = $eci; - } - } - - return self::$nameToEci; - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/EcBlock.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/EcBlock.php deleted file mode 100644 index a9a1d07..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/EcBlock.php +++ /dev/null @@ -1,49 +0,0 @@ -count = $count; - $this->dataCodewords = $dataCodewords; - } - - /** - * Returns how many times the block is used. - */ - public function getCount() : int - { - return $this->count; - } - - /** - * Returns the number of data codewords. - */ - public function getDataCodewords() : int - { - return $this->dataCodewords; - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/EcBlocks.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/EcBlocks.php deleted file mode 100644 index 172b5f2..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/EcBlocks.php +++ /dev/null @@ -1,74 +0,0 @@ -ecCodewordsPerBlock = $ecCodewordsPerBlock; - $this->ecBlocks = $ecBlocks; - } - - /** - * Returns the number of EC codewords per block. - */ - public function getEcCodewordsPerBlock() : int - { - return $this->ecCodewordsPerBlock; - } - - /** - * Returns the total number of EC block appearances. - */ - public function getNumBlocks() : int - { - $total = 0; - - foreach ($this->ecBlocks as $ecBlock) { - $total += $ecBlock->getCount(); - } - - return $total; - } - - /** - * Returns the total count of EC codewords. - */ - public function getTotalEcCodewords() : int - { - return $this->ecCodewordsPerBlock * $this->getNumBlocks(); - } - - /** - * Returns the EC blocks included in this collection. - * - * @return EcBlock[] - */ - public function getEcBlocks() : array - { - return $this->ecBlocks; - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/ErrorCorrectionLevel.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/ErrorCorrectionLevel.php deleted file mode 100644 index 9bbf440..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/ErrorCorrectionLevel.php +++ /dev/null @@ -1,63 +0,0 @@ -bits = $bits; - } - - /** - * @throws OutOfBoundsException if number of bits is invalid - */ - public static function forBits(int $bits) : self - { - switch ($bits) { - case 0: - return self::M(); - - case 1: - return self::L(); - - case 2: - return self::H(); - - case 3: - return self::Q(); - } - - throw new OutOfBoundsException('Invalid number of bits'); - } - - /** - * Returns the two bits used to encode this error correction level. - */ - public function getBits() : int - { - return $this->bits; - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/FormatInformation.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/FormatInformation.php deleted file mode 100644 index 53e3541..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/FormatInformation.php +++ /dev/null @@ -1,203 +0,0 @@ -ecLevel = ErrorCorrectionLevel::forBits(($formatInfo >> 3) & 0x3); - $this->dataMask = $formatInfo & 0x7; - } - - /** - * Checks how many bits are different between two integers. - */ - public static function numBitsDiffering(int $a, int $b) : int - { - $a ^= $b; - - return ( - self::BITS_SET_IN_HALF_BYTE[$a & 0xf] - + self::BITS_SET_IN_HALF_BYTE[(BitUtils::unsignedRightShift($a, 4) & 0xf)] - + self::BITS_SET_IN_HALF_BYTE[(BitUtils::unsignedRightShift($a, 8) & 0xf)] - + self::BITS_SET_IN_HALF_BYTE[(BitUtils::unsignedRightShift($a, 12) & 0xf)] - + self::BITS_SET_IN_HALF_BYTE[(BitUtils::unsignedRightShift($a, 16) & 0xf)] - + self::BITS_SET_IN_HALF_BYTE[(BitUtils::unsignedRightShift($a, 20) & 0xf)] - + self::BITS_SET_IN_HALF_BYTE[(BitUtils::unsignedRightShift($a, 24) & 0xf)] - + self::BITS_SET_IN_HALF_BYTE[(BitUtils::unsignedRightShift($a, 28) & 0xf)] - ); - } - - /** - * Decodes format information. - */ - public static function decodeFormatInformation(int $maskedFormatInfo1, int $maskedFormatInfo2) : ?self - { - $formatInfo = self::doDecodeFormatInformation($maskedFormatInfo1, $maskedFormatInfo2); - - if (null !== $formatInfo) { - return $formatInfo; - } - - // Should return null, but, some QR codes apparently do not mask this info. Try again by actually masking the - // pattern first. - return self::doDecodeFormatInformation( - $maskedFormatInfo1 ^ self::FORMAT_INFO_MASK_QR, - $maskedFormatInfo2 ^ self::FORMAT_INFO_MASK_QR - ); - } - - /** - * Internal method for decoding format information. - */ - private static function doDecodeFormatInformation(int $maskedFormatInfo1, int $maskedFormatInfo2) : ?self - { - $bestDifference = PHP_INT_MAX; - $bestFormatInfo = 0; - - foreach (self::FORMAT_INFO_DECODE_LOOKUP as $decodeInfo) { - $targetInfo = $decodeInfo[0]; - - if ($targetInfo === $maskedFormatInfo1 || $targetInfo === $maskedFormatInfo2) { - // Found an exact match - return new self($decodeInfo[1]); - } - - $bitsDifference = self::numBitsDiffering($maskedFormatInfo1, $targetInfo); - - if ($bitsDifference < $bestDifference) { - $bestFormatInfo = $decodeInfo[1]; - $bestDifference = $bitsDifference; - } - - if ($maskedFormatInfo1 !== $maskedFormatInfo2) { - // Also try the other option - $bitsDifference = self::numBitsDiffering($maskedFormatInfo2, $targetInfo); - - if ($bitsDifference < $bestDifference) { - $bestFormatInfo = $decodeInfo[1]; - $bestDifference = $bitsDifference; - } - } - } - - // Hamming distance of the 32 masked codes is 7, by construction, so <= 3 bits differing means we found a match. - if ($bestDifference <= 3) { - return new self($bestFormatInfo); - } - - return null; - } - - /** - * Returns the error correction level. - */ - public function getErrorCorrectionLevel() : ErrorCorrectionLevel - { - return $this->ecLevel; - } - - /** - * Returns the data mask. - */ - public function getDataMask() : int - { - return $this->dataMask; - } - - /** - * Hashes the code of the EC level. - */ - public function hashCode() : int - { - return ($this->ecLevel->getBits() << 3) | $this->dataMask; - } - - /** - * Verifies if this instance equals another one. - */ - public function equals(self $other) : bool - { - return ( - $this->ecLevel === $other->ecLevel - && $this->dataMask === $other->dataMask - ); - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/Mode.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/Mode.php deleted file mode 100644 index 51e6c9a..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/Mode.php +++ /dev/null @@ -1,76 +0,0 @@ -characterCountBitsForVersions = $characterCountBitsForVersions; - $this->bits = $bits; - } - - /** - * Returns the number of bits used in a specific QR code version. - */ - public function getCharacterCountBits(Version $version) : int - { - $number = $version->getVersionNumber(); - - if ($number <= 9) { - $offset = 0; - } elseif ($number <= 26) { - $offset = 1; - } else { - $offset = 2; - } - - return $this->characterCountBitsForVersions[$offset]; - } - - /** - * Returns the four bits used to encode this mode. - */ - public function getBits() : int - { - return $this->bits; - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/ReedSolomonCodec.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/ReedSolomonCodec.php deleted file mode 100644 index a5aad0b..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/ReedSolomonCodec.php +++ /dev/null @@ -1,468 +0,0 @@ - 8) { - throw new InvalidArgumentException('Symbol size must be between 0 and 8'); - } - - if ($firstRoot < 0 || $firstRoot >= (1 << $symbolSize)) { - throw new InvalidArgumentException('First root must be between 0 and ' . (1 << $symbolSize)); - } - - if ($numRoots < 0 || $numRoots >= (1 << $symbolSize)) { - throw new InvalidArgumentException('Num roots must be between 0 and ' . (1 << $symbolSize)); - } - - if ($padding < 0 || $padding >= ((1 << $symbolSize) - 1 - $numRoots)) { - throw new InvalidArgumentException( - 'Padding must be between 0 and ' . ((1 << $symbolSize) - 1 - $numRoots) - ); - } - - $this->symbolSize = $symbolSize; - $this->blockSize = (1 << $symbolSize) - 1; - $this->padding = $padding; - $this->alphaTo = SplFixedArray::fromArray(array_fill(0, $this->blockSize + 1, 0), false); - $this->indexOf = SplFixedArray::fromArray(array_fill(0, $this->blockSize + 1, 0), false); - - // Generate galous field lookup table - $this->indexOf[0] = $this->blockSize; - $this->alphaTo[$this->blockSize] = 0; - - $sr = 1; - - for ($i = 0; $i < $this->blockSize; ++$i) { - $this->indexOf[$sr] = $i; - $this->alphaTo[$i] = $sr; - - $sr <<= 1; - - if ($sr & (1 << $symbolSize)) { - $sr ^= $gfPoly; - } - - $sr &= $this->blockSize; - } - - if (1 !== $sr) { - throw new RuntimeException('Field generator polynomial is not primitive'); - } - - // Form RS code generator polynomial from its roots - $this->generatorPoly = SplFixedArray::fromArray(array_fill(0, $numRoots + 1, 0), false); - $this->firstRoot = $firstRoot; - $this->primitive = $primitive; - $this->numRoots = $numRoots; - - // Find prim-th root of 1, used in decoding - for ($iPrimitive = 1; ($iPrimitive % $primitive) !== 0; $iPrimitive += $this->blockSize) { - } - - $this->iPrimitive = intdiv($iPrimitive, $primitive); - - $this->generatorPoly[0] = 1; - - for ($i = 0, $root = $firstRoot * $primitive; $i < $numRoots; ++$i, $root += $primitive) { - $this->generatorPoly[$i + 1] = 1; - - for ($j = $i; $j > 0; $j--) { - if ($this->generatorPoly[$j] !== 0) { - $this->generatorPoly[$j] = $this->generatorPoly[$j - 1] ^ $this->alphaTo[ - $this->modNn($this->indexOf[$this->generatorPoly[$j]] + $root) - ]; - } else { - $this->generatorPoly[$j] = $this->generatorPoly[$j - 1]; - } - } - - $this->generatorPoly[$j] = $this->alphaTo[$this->modNn($this->indexOf[$this->generatorPoly[0]] + $root)]; - } - - // Convert generator poly to index form for quicker encoding - for ($i = 0; $i <= $numRoots; ++$i) { - $this->generatorPoly[$i] = $this->indexOf[$this->generatorPoly[$i]]; - } - } - - /** - * Encodes data and writes result back into parity array. - */ - public function encode(SplFixedArray $data, SplFixedArray $parity) : void - { - for ($i = 0; $i < $this->numRoots; ++$i) { - $parity[$i] = 0; - } - - $iterations = $this->blockSize - $this->numRoots - $this->padding; - - for ($i = 0; $i < $iterations; ++$i) { - $feedback = $this->indexOf[$data[$i] ^ $parity[0]]; - - if ($feedback !== $this->blockSize) { - // Feedback term is non-zero - $feedback = $this->modNn($this->blockSize - $this->generatorPoly[$this->numRoots] + $feedback); - - for ($j = 1; $j < $this->numRoots; ++$j) { - $parity[$j] = $parity[$j] ^ $this->alphaTo[ - $this->modNn($feedback + $this->generatorPoly[$this->numRoots - $j]) - ]; - } - } - - for ($j = 0; $j < $this->numRoots - 1; ++$j) { - $parity[$j] = $parity[$j + 1]; - } - - if ($feedback !== $this->blockSize) { - $parity[$this->numRoots - 1] = $this->alphaTo[$this->modNn($feedback + $this->generatorPoly[0])]; - } else { - $parity[$this->numRoots - 1] = 0; - } - } - } - - /** - * Decodes received data. - */ - public function decode(SplFixedArray $data, SplFixedArray $erasures = null) : ?int - { - // This speeds up the initialization a bit. - $numRootsPlusOne = SplFixedArray::fromArray(array_fill(0, $this->numRoots + 1, 0), false); - $numRoots = SplFixedArray::fromArray(array_fill(0, $this->numRoots, 0), false); - - $lambda = clone $numRootsPlusOne; - $b = clone $numRootsPlusOne; - $t = clone $numRootsPlusOne; - $omega = clone $numRootsPlusOne; - $root = clone $numRoots; - $loc = clone $numRoots; - - $numErasures = (null !== $erasures ? count($erasures) : 0); - - // Form the Syndromes; i.e., evaluate data(x) at roots of g(x) - $syndromes = SplFixedArray::fromArray(array_fill(0, $this->numRoots, $data[0]), false); - - for ($i = 1; $i < $this->blockSize - $this->padding; ++$i) { - for ($j = 0; $j < $this->numRoots; ++$j) { - if ($syndromes[$j] === 0) { - $syndromes[$j] = $data[$i]; - } else { - $syndromes[$j] = $data[$i] ^ $this->alphaTo[ - $this->modNn($this->indexOf[$syndromes[$j]] + ($this->firstRoot + $j) * $this->primitive) - ]; - } - } - } - - // Convert syndromes to index form, checking for nonzero conditions - $syndromeError = 0; - - for ($i = 0; $i < $this->numRoots; ++$i) { - $syndromeError |= $syndromes[$i]; - $syndromes[$i] = $this->indexOf[$syndromes[$i]]; - } - - if (! $syndromeError) { - // If syndrome is zero, data[] is a codeword and there are no errors to correct, so return data[] - // unmodified. - return 0; - } - - $lambda[0] = 1; - - if ($numErasures > 0) { - // Init lambda to be the erasure locator polynomial - $lambda[1] = $this->alphaTo[$this->modNn($this->primitive * ($this->blockSize - 1 - $erasures[0]))]; - - for ($i = 1; $i < $numErasures; ++$i) { - $u = $this->modNn($this->primitive * ($this->blockSize - 1 - $erasures[$i])); - - for ($j = $i + 1; $j > 0; --$j) { - $tmp = $this->indexOf[$lambda[$j - 1]]; - - if ($tmp !== $this->blockSize) { - $lambda[$j] = $lambda[$j] ^ $this->alphaTo[$this->modNn($u + $tmp)]; - } - } - } - } - - for ($i = 0; $i <= $this->numRoots; ++$i) { - $b[$i] = $this->indexOf[$lambda[$i]]; - } - - // Begin Berlekamp-Massey algorithm to determine error+erasure locator polynomial - $r = $numErasures; - $el = $numErasures; - - while (++$r <= $this->numRoots) { - // Compute discrepancy at the r-th step in poly form - $discrepancyR = 0; - - for ($i = 0; $i < $r; ++$i) { - if ($lambda[$i] !== 0 && $syndromes[$r - $i - 1] !== $this->blockSize) { - $discrepancyR ^= $this->alphaTo[ - $this->modNn($this->indexOf[$lambda[$i]] + $syndromes[$r - $i - 1]) - ]; - } - } - - $discrepancyR = $this->indexOf[$discrepancyR]; - - if ($discrepancyR === $this->blockSize) { - $tmp = $b->toArray(); - array_unshift($tmp, $this->blockSize); - array_pop($tmp); - $b = SplFixedArray::fromArray($tmp, false); - continue; - } - - $t[0] = $lambda[0]; - - for ($i = 0; $i < $this->numRoots; ++$i) { - if ($b[$i] !== $this->blockSize) { - $t[$i + 1] = $lambda[$i + 1] ^ $this->alphaTo[$this->modNn($discrepancyR + $b[$i])]; - } else { - $t[$i + 1] = $lambda[$i + 1]; - } - } - - if (2 * $el <= $r + $numErasures - 1) { - $el = $r + $numErasures - $el; - - for ($i = 0; $i <= $this->numRoots; ++$i) { - $b[$i] = ( - $lambda[$i] === 0 - ? $this->blockSize - : $this->modNn($this->indexOf[$lambda[$i]] - $discrepancyR + $this->blockSize) - ); - } - } else { - $tmp = $b->toArray(); - array_unshift($tmp, $this->blockSize); - array_pop($tmp); - $b = SplFixedArray::fromArray($tmp, false); - } - - $lambda = clone $t; - } - - // Convert lambda to index form and compute deg(lambda(x)) - $degLambda = 0; - - for ($i = 0; $i <= $this->numRoots; ++$i) { - $lambda[$i] = $this->indexOf[$lambda[$i]]; - - if ($lambda[$i] !== $this->blockSize) { - $degLambda = $i; - } - } - - // Find roots of the error+erasure locator polynomial by Chien search. - $reg = clone $lambda; - $reg[0] = 0; - $count = 0; - $i = 1; - - for ($k = $this->iPrimitive - 1; $i <= $this->blockSize; ++$i, $k = $this->modNn($k + $this->iPrimitive)) { - $q = 1; - - for ($j = $degLambda; $j > 0; $j--) { - if ($reg[$j] !== $this->blockSize) { - $reg[$j] = $this->modNn($reg[$j] + $j); - $q ^= $this->alphaTo[$reg[$j]]; - } - } - - if ($q !== 0) { - // Not a root - continue; - } - - // Store root (index-form) and error location number - $root[$count] = $i; - $loc[$count] = $k; - - if (++$count === $degLambda) { - break; - } - } - - if ($degLambda !== $count) { - // deg(lambda) unequal to number of roots: uncorrectable error detected - return null; - } - - // Compute err+eras evaluate poly omega(x) = s(x)*lambda(x) (modulo x**numRoots). In index form. Also find - // deg(omega). - $degOmega = $degLambda - 1; - - for ($i = 0; $i <= $degOmega; ++$i) { - $tmp = 0; - - for ($j = $i; $j >= 0; --$j) { - if ($syndromes[$i - $j] !== $this->blockSize && $lambda[$j] !== $this->blockSize) { - $tmp ^= $this->alphaTo[$this->modNn($syndromes[$i - $j] + $lambda[$j])]; - } - } - - $omega[$i] = $this->indexOf[$tmp]; - } - - // Compute error values in poly-form. num1 = omega(inv(X(l))), num2 = inv(X(l))**(firstRoot-1) and - // den = lambda_pr(inv(X(l))) all in poly form. - for ($j = $count - 1; $j >= 0; --$j) { - $num1 = 0; - - for ($i = $degOmega; $i >= 0; $i--) { - if ($omega[$i] !== $this->blockSize) { - $num1 ^= $this->alphaTo[$this->modNn($omega[$i] + $i * $root[$j])]; - } - } - - $num2 = $this->alphaTo[$this->modNn($root[$j] * ($this->firstRoot - 1) + $this->blockSize)]; - $den = 0; - - // lambda[i+1] for i even is the formal derivativelambda_pr of lambda[i] - for ($i = min($degLambda, $this->numRoots - 1) & ~1; $i >= 0; $i -= 2) { - if ($lambda[$i + 1] !== $this->blockSize) { - $den ^= $this->alphaTo[$this->modNn($lambda[$i + 1] + $i * $root[$j])]; - } - } - - // Apply error to data - if ($num1 !== 0 && $loc[$j] >= $this->padding) { - $data[$loc[$j] - $this->padding] = $data[$loc[$j] - $this->padding] ^ ( - $this->alphaTo[ - $this->modNn( - $this->indexOf[$num1] + $this->indexOf[$num2] + $this->blockSize - $this->indexOf[$den] - ) - ] - ); - } - } - - if (null !== $erasures) { - if (count($erasures) < $count) { - $erasures->setSize($count); - } - - for ($i = 0; $i < $count; $i++) { - $erasures[$i] = $loc[$i]; - } - } - - return $count; - } - - /** - * Computes $x % GF_SIZE, where GF_SIZE is 2**GF_BITS - 1, without a slow divide. - */ - private function modNn(int $x) : int - { - while ($x >= $this->blockSize) { - $x -= $this->blockSize; - $x = ($x >> $this->symbolSize) + ($x & $this->blockSize); - } - - return $x; - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/Version.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/Version.php deleted file mode 100644 index 917d048..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Common/Version.php +++ /dev/null @@ -1,596 +0,0 @@ -|null - */ - private static $versions; - - /** - * @param int[] $alignmentPatternCenters - */ - private function __construct( - int $versionNumber, - array $alignmentPatternCenters, - EcBlocks ...$ecBlocks - ) { - $this->versionNumber = $versionNumber; - $this->alignmentPatternCenters = $alignmentPatternCenters; - $this->ecBlocks = $ecBlocks; - - $totalCodewords = 0; - $ecCodewords = $ecBlocks[0]->getEcCodewordsPerBlock(); - - foreach ($ecBlocks[0]->getEcBlocks() as $ecBlock) { - $totalCodewords += $ecBlock->getCount() * ($ecBlock->getDataCodewords() + $ecCodewords); - } - - $this->totalCodewords = $totalCodewords; - } - - /** - * Returns the version number. - */ - public function getVersionNumber() : int - { - return $this->versionNumber; - } - - /** - * Returns the alignment pattern centers. - * - * @return int[] - */ - public function getAlignmentPatternCenters() : array - { - return $this->alignmentPatternCenters; - } - - /** - * Returns the total number of codewords. - */ - public function getTotalCodewords() : int - { - return $this->totalCodewords; - } - - /** - * Calculates the dimension for the current version. - */ - public function getDimensionForVersion() : int - { - return 17 + 4 * $this->versionNumber; - } - - /** - * Returns the number of EC blocks for a specific EC level. - */ - public function getEcBlocksForLevel(ErrorCorrectionLevel $ecLevel) : EcBlocks - { - return $this->ecBlocks[$ecLevel->ordinal()]; - } - - /** - * Gets a provisional version number for a specific dimension. - * - * @throws InvalidArgumentException if dimension is not 1 mod 4 - */ - public static function getProvisionalVersionForDimension(int $dimension) : self - { - if (1 !== $dimension % 4) { - throw new InvalidArgumentException('Dimension is not 1 mod 4'); - } - - return self::getVersionForNumber(intdiv($dimension - 17, 4)); - } - - /** - * Gets a version instance for a specific version number. - * - * @throws InvalidArgumentException if version number is out of range - */ - public static function getVersionForNumber(int $versionNumber) : self - { - if ($versionNumber < 1 || $versionNumber > 40) { - throw new InvalidArgumentException('Version number must be between 1 and 40'); - } - - return self::versions()[$versionNumber - 1]; - } - - /** - * Decodes version information from an integer and returns the version. - */ - public static function decodeVersionInformation(int $versionBits) : ?self - { - $bestDifference = PHP_INT_MAX; - $bestVersion = 0; - - foreach (self::VERSION_DECODE_INFO as $i => $targetVersion) { - if ($targetVersion === $versionBits) { - return self::getVersionForNumber($i + 7); - } - - $bitsDifference = FormatInformation::numBitsDiffering($versionBits, $targetVersion); - - if ($bitsDifference < $bestDifference) { - $bestVersion = $i + 7; - $bestDifference = $bitsDifference; - } - } - - if ($bestDifference <= 3) { - return self::getVersionForNumber($bestVersion); - } - - return null; - } - - /** - * Builds the function pattern for the current version. - */ - public function buildFunctionPattern() : BitMatrix - { - $dimension = $this->getDimensionForVersion(); - $bitMatrix = new BitMatrix($dimension); - - // Top left finder pattern + separator + format - $bitMatrix->setRegion(0, 0, 9, 9); - // Top right finder pattern + separator + format - $bitMatrix->setRegion($dimension - 8, 0, 8, 9); - // Bottom left finder pattern + separator + format - $bitMatrix->setRegion(0, $dimension - 8, 9, 8); - - // Alignment patterns - $max = count($this->alignmentPatternCenters); - - for ($x = 0; $x < $max; ++$x) { - $i = $this->alignmentPatternCenters[$x] - 2; - - for ($y = 0; $y < $max; ++$y) { - if (($x === 0 && ($y === 0 || $y === $max - 1)) || ($x === $max - 1 && $y === 0)) { - // No alignment patterns near the three finder paterns - continue; - } - - $bitMatrix->setRegion($this->alignmentPatternCenters[$y] - 2, $i, 5, 5); - } - } - - // Vertical timing pattern - $bitMatrix->setRegion(6, 9, 1, $dimension - 17); - // Horizontal timing pattern - $bitMatrix->setRegion(9, 6, $dimension - 17, 1); - - if ($this->versionNumber > 6) { - // Version info, top right - $bitMatrix->setRegion($dimension - 11, 0, 3, 6); - // Version info, bottom left - $bitMatrix->setRegion(0, $dimension - 11, 6, 3); - } - - return $bitMatrix; - } - - /** - * Returns a string representation for the version. - */ - public function __toString() : string - { - return (string) $this->versionNumber; - } - - /** - * Build and cache a specific version. - * - * See ISO 18004:2006 6.5.1 Table 9. - * - * @return array - */ - private static function versions() : array - { - if (null !== self::$versions) { - return self::$versions; - } - - return self::$versions = [ - new self( - 1, - [], - new EcBlocks(7, new EcBlock(1, 19)), - new EcBlocks(10, new EcBlock(1, 16)), - new EcBlocks(13, new EcBlock(1, 13)), - new EcBlocks(17, new EcBlock(1, 9)) - ), - new self( - 2, - [6, 18], - new EcBlocks(10, new EcBlock(1, 34)), - new EcBlocks(16, new EcBlock(1, 28)), - new EcBlocks(22, new EcBlock(1, 22)), - new EcBlocks(28, new EcBlock(1, 16)) - ), - new self( - 3, - [6, 22], - new EcBlocks(15, new EcBlock(1, 55)), - new EcBlocks(26, new EcBlock(1, 44)), - new EcBlocks(18, new EcBlock(2, 17)), - new EcBlocks(22, new EcBlock(2, 13)) - ), - new self( - 4, - [6, 26], - new EcBlocks(20, new EcBlock(1, 80)), - new EcBlocks(18, new EcBlock(2, 32)), - new EcBlocks(26, new EcBlock(3, 24)), - new EcBlocks(16, new EcBlock(4, 9)) - ), - new self( - 5, - [6, 30], - new EcBlocks(26, new EcBlock(1, 108)), - new EcBlocks(24, new EcBlock(2, 43)), - new EcBlocks(18, new EcBlock(2, 15), new EcBlock(2, 16)), - new EcBlocks(22, new EcBlock(2, 11), new EcBlock(2, 12)) - ), - new self( - 6, - [6, 34], - new EcBlocks(18, new EcBlock(2, 68)), - new EcBlocks(16, new EcBlock(4, 27)), - new EcBlocks(24, new EcBlock(4, 19)), - new EcBlocks(28, new EcBlock(4, 15)) - ), - new self( - 7, - [6, 22, 38], - new EcBlocks(20, new EcBlock(2, 78)), - new EcBlocks(18, new EcBlock(4, 31)), - new EcBlocks(18, new EcBlock(2, 14), new EcBlock(4, 15)), - new EcBlocks(26, new EcBlock(4, 13), new EcBlock(1, 14)) - ), - new self( - 8, - [6, 24, 42], - new EcBlocks(24, new EcBlock(2, 97)), - new EcBlocks(22, new EcBlock(2, 38), new EcBlock(2, 39)), - new EcBlocks(22, new EcBlock(4, 18), new EcBlock(2, 19)), - new EcBlocks(26, new EcBlock(4, 14), new EcBlock(2, 15)) - ), - new self( - 9, - [6, 26, 46], - new EcBlocks(30, new EcBlock(2, 116)), - new EcBlocks(22, new EcBlock(3, 36), new EcBlock(2, 37)), - new EcBlocks(20, new EcBlock(4, 16), new EcBlock(4, 17)), - new EcBlocks(24, new EcBlock(4, 12), new EcBlock(4, 13)) - ), - new self( - 10, - [6, 28, 50], - new EcBlocks(18, new EcBlock(2, 68), new EcBlock(2, 69)), - new EcBlocks(26, new EcBlock(4, 43), new EcBlock(1, 44)), - new EcBlocks(24, new EcBlock(6, 19), new EcBlock(2, 20)), - new EcBlocks(28, new EcBlock(6, 15), new EcBlock(2, 16)) - ), - new self( - 11, - [6, 30, 54], - new EcBlocks(20, new EcBlock(4, 81)), - new EcBlocks(30, new EcBlock(1, 50), new EcBlock(4, 51)), - new EcBlocks(28, new EcBlock(4, 22), new EcBlock(4, 23)), - new EcBlocks(24, new EcBlock(3, 12), new EcBlock(8, 13)) - ), - new self( - 12, - [6, 32, 58], - new EcBlocks(24, new EcBlock(2, 92), new EcBlock(2, 93)), - new EcBlocks(22, new EcBlock(6, 36), new EcBlock(2, 37)), - new EcBlocks(26, new EcBlock(4, 20), new EcBlock(6, 21)), - new EcBlocks(28, new EcBlock(7, 14), new EcBlock(4, 15)) - ), - new self( - 13, - [6, 34, 62], - new EcBlocks(26, new EcBlock(4, 107)), - new EcBlocks(22, new EcBlock(8, 37), new EcBlock(1, 38)), - new EcBlocks(24, new EcBlock(8, 20), new EcBlock(4, 21)), - new EcBlocks(22, new EcBlock(12, 11), new EcBlock(4, 12)) - ), - new self( - 14, - [6, 26, 46, 66], - new EcBlocks(30, new EcBlock(3, 115), new EcBlock(1, 116)), - new EcBlocks(24, new EcBlock(4, 40), new EcBlock(5, 41)), - new EcBlocks(20, new EcBlock(11, 16), new EcBlock(5, 17)), - new EcBlocks(24, new EcBlock(11, 12), new EcBlock(5, 13)) - ), - new self( - 15, - [6, 26, 48, 70], - new EcBlocks(22, new EcBlock(5, 87), new EcBlock(1, 88)), - new EcBlocks(24, new EcBlock(5, 41), new EcBlock(5, 42)), - new EcBlocks(30, new EcBlock(5, 24), new EcBlock(7, 25)), - new EcBlocks(24, new EcBlock(11, 12), new EcBlock(7, 13)) - ), - new self( - 16, - [6, 26, 50, 74], - new EcBlocks(24, new EcBlock(5, 98), new EcBlock(1, 99)), - new EcBlocks(28, new EcBlock(7, 45), new EcBlock(3, 46)), - new EcBlocks(24, new EcBlock(15, 19), new EcBlock(2, 20)), - new EcBlocks(30, new EcBlock(3, 15), new EcBlock(13, 16)) - ), - new self( - 17, - [6, 30, 54, 78], - new EcBlocks(28, new EcBlock(1, 107), new EcBlock(5, 108)), - new EcBlocks(28, new EcBlock(10, 46), new EcBlock(1, 47)), - new EcBlocks(28, new EcBlock(1, 22), new EcBlock(15, 23)), - new EcBlocks(28, new EcBlock(2, 14), new EcBlock(17, 15)) - ), - new self( - 18, - [6, 30, 56, 82], - new EcBlocks(30, new EcBlock(5, 120), new EcBlock(1, 121)), - new EcBlocks(26, new EcBlock(9, 43), new EcBlock(4, 44)), - new EcBlocks(28, new EcBlock(17, 22), new EcBlock(1, 23)), - new EcBlocks(28, new EcBlock(2, 14), new EcBlock(19, 15)) - ), - new self( - 19, - [6, 30, 58, 86], - new EcBlocks(28, new EcBlock(3, 113), new EcBlock(4, 114)), - new EcBlocks(26, new EcBlock(3, 44), new EcBlock(11, 45)), - new EcBlocks(26, new EcBlock(17, 21), new EcBlock(4, 22)), - new EcBlocks(26, new EcBlock(9, 13), new EcBlock(16, 14)) - ), - new self( - 20, - [6, 34, 62, 90], - new EcBlocks(28, new EcBlock(3, 107), new EcBlock(5, 108)), - new EcBlocks(26, new EcBlock(3, 41), new EcBlock(13, 42)), - new EcBlocks(30, new EcBlock(15, 24), new EcBlock(5, 25)), - new EcBlocks(28, new EcBlock(15, 15), new EcBlock(10, 16)) - ), - new self( - 21, - [6, 28, 50, 72, 94], - new EcBlocks(28, new EcBlock(4, 116), new EcBlock(4, 117)), - new EcBlocks(26, new EcBlock(17, 42)), - new EcBlocks(28, new EcBlock(17, 22), new EcBlock(6, 23)), - new EcBlocks(30, new EcBlock(19, 16), new EcBlock(6, 17)) - ), - new self( - 22, - [6, 26, 50, 74, 98], - new EcBlocks(28, new EcBlock(2, 111), new EcBlock(7, 112)), - new EcBlocks(28, new EcBlock(17, 46)), - new EcBlocks(30, new EcBlock(7, 24), new EcBlock(16, 25)), - new EcBlocks(24, new EcBlock(34, 13)) - ), - new self( - 23, - [6, 30, 54, 78, 102], - new EcBlocks(30, new EcBlock(4, 121), new EcBlock(5, 122)), - new EcBlocks(28, new EcBlock(4, 47), new EcBlock(14, 48)), - new EcBlocks(30, new EcBlock(11, 24), new EcBlock(14, 25)), - new EcBlocks(30, new EcBlock(16, 15), new EcBlock(14, 16)) - ), - new self( - 24, - [6, 28, 54, 80, 106], - new EcBlocks(30, new EcBlock(6, 117), new EcBlock(4, 118)), - new EcBlocks(28, new EcBlock(6, 45), new EcBlock(14, 46)), - new EcBlocks(30, new EcBlock(11, 24), new EcBlock(16, 25)), - new EcBlocks(30, new EcBlock(30, 16), new EcBlock(2, 17)) - ), - new self( - 25, - [6, 32, 58, 84, 110], - new EcBlocks(26, new EcBlock(8, 106), new EcBlock(4, 107)), - new EcBlocks(28, new EcBlock(8, 47), new EcBlock(13, 48)), - new EcBlocks(30, new EcBlock(7, 24), new EcBlock(22, 25)), - new EcBlocks(30, new EcBlock(22, 15), new EcBlock(13, 16)) - ), - new self( - 26, - [6, 30, 58, 86, 114], - new EcBlocks(28, new EcBlock(10, 114), new EcBlock(2, 115)), - new EcBlocks(28, new EcBlock(19, 46), new EcBlock(4, 47)), - new EcBlocks(28, new EcBlock(28, 22), new EcBlock(6, 23)), - new EcBlocks(30, new EcBlock(33, 16), new EcBlock(4, 17)) - ), - new self( - 27, - [6, 34, 62, 90, 118], - new EcBlocks(30, new EcBlock(8, 122), new EcBlock(4, 123)), - new EcBlocks(28, new EcBlock(22, 45), new EcBlock(3, 46)), - new EcBlocks(30, new EcBlock(8, 23), new EcBlock(26, 24)), - new EcBlocks(30, new EcBlock(12, 15), new EcBlock(28, 16)) - ), - new self( - 28, - [6, 26, 50, 74, 98, 122], - new EcBlocks(30, new EcBlock(3, 117), new EcBlock(10, 118)), - new EcBlocks(28, new EcBlock(3, 45), new EcBlock(23, 46)), - new EcBlocks(30, new EcBlock(4, 24), new EcBlock(31, 25)), - new EcBlocks(30, new EcBlock(11, 15), new EcBlock(31, 16)) - ), - new self( - 29, - [6, 30, 54, 78, 102, 126], - new EcBlocks(30, new EcBlock(7, 116), new EcBlock(7, 117)), - new EcBlocks(28, new EcBlock(21, 45), new EcBlock(7, 46)), - new EcBlocks(30, new EcBlock(1, 23), new EcBlock(37, 24)), - new EcBlocks(30, new EcBlock(19, 15), new EcBlock(26, 16)) - ), - new self( - 30, - [6, 26, 52, 78, 104, 130], - new EcBlocks(30, new EcBlock(5, 115), new EcBlock(10, 116)), - new EcBlocks(28, new EcBlock(19, 47), new EcBlock(10, 48)), - new EcBlocks(30, new EcBlock(15, 24), new EcBlock(25, 25)), - new EcBlocks(30, new EcBlock(23, 15), new EcBlock(25, 16)) - ), - new self( - 31, - [6, 30, 56, 82, 108, 134], - new EcBlocks(30, new EcBlock(13, 115), new EcBlock(3, 116)), - new EcBlocks(28, new EcBlock(2, 46), new EcBlock(29, 47)), - new EcBlocks(30, new EcBlock(42, 24), new EcBlock(1, 25)), - new EcBlocks(30, new EcBlock(23, 15), new EcBlock(28, 16)) - ), - new self( - 32, - [6, 34, 60, 86, 112, 138], - new EcBlocks(30, new EcBlock(17, 115)), - new EcBlocks(28, new EcBlock(10, 46), new EcBlock(23, 47)), - new EcBlocks(30, new EcBlock(10, 24), new EcBlock(35, 25)), - new EcBlocks(30, new EcBlock(19, 15), new EcBlock(35, 16)) - ), - new self( - 33, - [6, 30, 58, 86, 114, 142], - new EcBlocks(30, new EcBlock(17, 115), new EcBlock(1, 116)), - new EcBlocks(28, new EcBlock(14, 46), new EcBlock(21, 47)), - new EcBlocks(30, new EcBlock(29, 24), new EcBlock(19, 25)), - new EcBlocks(30, new EcBlock(11, 15), new EcBlock(46, 16)) - ), - new self( - 34, - [6, 34, 62, 90, 118, 146], - new EcBlocks(30, new EcBlock(13, 115), new EcBlock(6, 116)), - new EcBlocks(28, new EcBlock(14, 46), new EcBlock(23, 47)), - new EcBlocks(30, new EcBlock(44, 24), new EcBlock(7, 25)), - new EcBlocks(30, new EcBlock(59, 16), new EcBlock(1, 17)) - ), - new self( - 35, - [6, 30, 54, 78, 102, 126, 150], - new EcBlocks(30, new EcBlock(12, 121), new EcBlock(7, 122)), - new EcBlocks(28, new EcBlock(12, 47), new EcBlock(26, 48)), - new EcBlocks(30, new EcBlock(39, 24), new EcBlock(14, 25)), - new EcBlocks(30, new EcBlock(22, 15), new EcBlock(41, 16)) - ), - new self( - 36, - [6, 24, 50, 76, 102, 128, 154], - new EcBlocks(30, new EcBlock(6, 121), new EcBlock(14, 122)), - new EcBlocks(28, new EcBlock(6, 47), new EcBlock(34, 48)), - new EcBlocks(30, new EcBlock(46, 24), new EcBlock(10, 25)), - new EcBlocks(30, new EcBlock(2, 15), new EcBlock(64, 16)) - ), - new self( - 37, - [6, 28, 54, 80, 106, 132, 158], - new EcBlocks(30, new EcBlock(17, 122), new EcBlock(4, 123)), - new EcBlocks(28, new EcBlock(29, 46), new EcBlock(14, 47)), - new EcBlocks(30, new EcBlock(49, 24), new EcBlock(10, 25)), - new EcBlocks(30, new EcBlock(24, 15), new EcBlock(46, 16)) - ), - new self( - 38, - [6, 32, 58, 84, 110, 136, 162], - new EcBlocks(30, new EcBlock(4, 122), new EcBlock(18, 123)), - new EcBlocks(28, new EcBlock(13, 46), new EcBlock(32, 47)), - new EcBlocks(30, new EcBlock(48, 24), new EcBlock(14, 25)), - new EcBlocks(30, new EcBlock(42, 15), new EcBlock(32, 16)) - ), - new self( - 39, - [6, 26, 54, 82, 110, 138, 166], - new EcBlocks(30, new EcBlock(20, 117), new EcBlock(4, 118)), - new EcBlocks(28, new EcBlock(40, 47), new EcBlock(7, 48)), - new EcBlocks(30, new EcBlock(43, 24), new EcBlock(22, 25)), - new EcBlocks(30, new EcBlock(10, 15), new EcBlock(67, 16)) - ), - new self( - 40, - [6, 30, 58, 86, 114, 142, 170], - new EcBlocks(30, new EcBlock(19, 118), new EcBlock(6, 119)), - new EcBlocks(28, new EcBlock(18, 47), new EcBlock(31, 48)), - new EcBlocks(30, new EcBlock(34, 24), new EcBlock(34, 25)), - new EcBlocks(30, new EcBlock(20, 15), new EcBlock(61, 16)) - ), - ]; - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Encoder/BlockPair.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Encoder/BlockPair.php deleted file mode 100644 index be54afa..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Encoder/BlockPair.php +++ /dev/null @@ -1,58 +0,0 @@ - - */ - private $dataBytes; - - /** - * Error correction bytes in the block. - * - * @var SplFixedArray - */ - private $errorCorrectionBytes; - - /** - * Creates a new block pair. - * - * @param SplFixedArray $data - * @param SplFixedArray $errorCorrection - */ - public function __construct(SplFixedArray $data, SplFixedArray $errorCorrection) - { - $this->dataBytes = $data; - $this->errorCorrectionBytes = $errorCorrection; - } - - /** - * Gets the data bytes. - * - * @return SplFixedArray - */ - public function getDataBytes() : SplFixedArray - { - return $this->dataBytes; - } - - /** - * Gets the error correction bytes. - * - * @return SplFixedArray - */ - public function getErrorCorrectionBytes() : SplFixedArray - { - return $this->errorCorrectionBytes; - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Encoder/ByteMatrix.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Encoder/ByteMatrix.php deleted file mode 100644 index b58cc0a..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Encoder/ByteMatrix.php +++ /dev/null @@ -1,150 +0,0 @@ -> - */ - private $bytes; - - /** - * Width of the matrix. - * - * @var int - */ - private $width; - - /** - * Height of the matrix. - * - * @var int - */ - private $height; - - public function __construct(int $width, int $height) - { - $this->height = $height; - $this->width = $width; - $this->bytes = new SplFixedArray($height); - - for ($y = 0; $y < $height; ++$y) { - $this->bytes[$y] = SplFixedArray::fromArray(array_fill(0, $width, 0)); - } - } - - /** - * Gets the width of the matrix. - */ - public function getWidth() : int - { - return $this->width; - } - - /** - * Gets the height of the matrix. - */ - public function getHeight() : int - { - return $this->height; - } - - /** - * Gets the internal representation of the matrix. - * - * @return SplFixedArray> - */ - public function getArray() : SplFixedArray - { - return $this->bytes; - } - - /** - * @return Traversable - */ - public function getBytes() : Traversable - { - foreach ($this->bytes as $row) { - foreach ($row as $byte) { - yield $byte; - } - } - } - - /** - * Gets the byte for a specific position. - */ - public function get(int $x, int $y) : int - { - return $this->bytes[$y][$x]; - } - - /** - * Sets the byte for a specific position. - */ - public function set(int $x, int $y, int $value) : void - { - $this->bytes[$y][$x] = $value; - } - - /** - * Clears the matrix with a specific value. - */ - public function clear(int $value) : void - { - for ($y = 0; $y < $this->height; ++$y) { - for ($x = 0; $x < $this->width; ++$x) { - $this->bytes[$y][$x] = $value; - } - } - } - - public function __clone() - { - $this->bytes = clone $this->bytes; - - foreach ($this->bytes as $index => $row) { - $this->bytes[$index] = clone $row; - } - } - - /** - * Returns a string representation of the matrix. - */ - public function __toString() : string - { - $result = ''; - - for ($y = 0; $y < $this->height; $y++) { - for ($x = 0; $x < $this->width; $x++) { - switch ($this->bytes[$y][$x]) { - case 0: - $result .= ' 0'; - break; - - case 1: - $result .= ' 1'; - break; - - default: - $result .= ' '; - break; - } - } - - $result .= "\n"; - } - - return $result; - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Encoder/Encoder.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Encoder/Encoder.php deleted file mode 100644 index 4345f57..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Encoder/Encoder.php +++ /dev/null @@ -1,652 +0,0 @@ -getSize() - + $mode->getCharacterCountBits(Version::getVersionForNumber(1)) - + $dataBits->getSize(); - $provisionalVersion = self::chooseVersion($provisionalBitsNeeded, $ecLevel); - - // Use that guess to calculate the right version. I am still not sure - // this works in 100% of cases. - $bitsNeeded = $headerBits->getSize() - + $mode->getCharacterCountBits($provisionalVersion) - + $dataBits->getSize(); - $version = self::chooseVersion($bitsNeeded, $ecLevel); - - $headerAndDataBits = new BitArray(); - $headerAndDataBits->appendBitArray($headerBits); - - // Find "length" of main segment and write it. - $numLetters = (Mode::BYTE() === $mode ? $dataBits->getSizeInBytes() : strlen($content)); - self::appendLengthInfo($numLetters, $version, $mode, $headerAndDataBits); - - // Put data together into the overall payload. - $headerAndDataBits->appendBitArray($dataBits); - $ecBlocks = $version->getEcBlocksForLevel($ecLevel); - $numDataBytes = $version->getTotalCodewords() - $ecBlocks->getTotalEcCodewords(); - - // Terminate the bits properly. - self::terminateBits($numDataBytes, $headerAndDataBits); - - // Interleave data bits with error correction code. - $finalBits = self::interleaveWithEcBytes( - $headerAndDataBits, - $version->getTotalCodewords(), - $numDataBytes, - $ecBlocks->getNumBlocks() - ); - - // Choose the mask pattern. - $dimension = $version->getDimensionForVersion(); - $matrix = new ByteMatrix($dimension, $dimension); - $maskPattern = self::chooseMaskPattern($finalBits, $ecLevel, $version, $matrix); - - // Build the matrix. - MatrixUtil::buildMatrix($finalBits, $ecLevel, $version, $maskPattern, $matrix); - - return new QrCode($mode, $ecLevel, $version, $maskPattern, $matrix); - } - - /** - * Gets the alphanumeric code for a byte. - */ - private static function getAlphanumericCode(int $code) : int - { - if (isset(self::ALPHANUMERIC_TABLE[$code])) { - return self::ALPHANUMERIC_TABLE[$code]; - } - - return -1; - } - - /** - * Chooses the best mode for a given content. - */ - private static function chooseMode(string $content, string $encoding = null) : Mode - { - if (null !== $encoding && 0 === strcasecmp($encoding, 'SHIFT-JIS')) { - return self::isOnlyDoubleByteKanji($content) ? Mode::KANJI() : Mode::BYTE(); - } - - $hasNumeric = false; - $hasAlphanumeric = false; - $contentLength = strlen($content); - - for ($i = 0; $i < $contentLength; ++$i) { - $char = $content[$i]; - - if (ctype_digit($char)) { - $hasNumeric = true; - } elseif (-1 !== self::getAlphanumericCode(ord($char))) { - $hasAlphanumeric = true; - } else { - return Mode::BYTE(); - } - } - - if ($hasAlphanumeric) { - return Mode::ALPHANUMERIC(); - } elseif ($hasNumeric) { - return Mode::NUMERIC(); - } - - return Mode::BYTE(); - } - - /** - * Calculates the mask penalty for a matrix. - */ - private static function calculateMaskPenalty(ByteMatrix $matrix) : int - { - return ( - MaskUtil::applyMaskPenaltyRule1($matrix) - + MaskUtil::applyMaskPenaltyRule2($matrix) - + MaskUtil::applyMaskPenaltyRule3($matrix) - + MaskUtil::applyMaskPenaltyRule4($matrix) - ); - } - - /** - * Checks if content only consists of double-byte kanji characters. - */ - private static function isOnlyDoubleByteKanji(string $content) : bool - { - $bytes = @iconv('utf-8', 'SHIFT-JIS', $content); - - if (false === $bytes) { - return false; - } - - $length = strlen($bytes); - - if (0 !== $length % 2) { - return false; - } - - for ($i = 0; $i < $length; $i += 2) { - $byte = $bytes[$i] & 0xff; - - if (($byte < 0x81 || $byte > 0x9f) && $byte < 0xe0 || $byte > 0xeb) { - return false; - } - } - - return true; - } - - /** - * Chooses the best mask pattern for a matrix. - */ - private static function chooseMaskPattern( - BitArray $bits, - ErrorCorrectionLevel $ecLevel, - Version $version, - ByteMatrix $matrix - ) : int { - $minPenalty = PHP_INT_MAX; - $bestMaskPattern = -1; - - for ($maskPattern = 0; $maskPattern < QrCode::NUM_MASK_PATTERNS; ++$maskPattern) { - MatrixUtil::buildMatrix($bits, $ecLevel, $version, $maskPattern, $matrix); - $penalty = self::calculateMaskPenalty($matrix); - - if ($penalty < $minPenalty) { - $minPenalty = $penalty; - $bestMaskPattern = $maskPattern; - } - } - - return $bestMaskPattern; - } - - /** - * Chooses the best version for the input. - * - * @throws WriterException if data is too big - */ - private static function chooseVersion(int $numInputBits, ErrorCorrectionLevel $ecLevel) : Version - { - for ($versionNum = 1; $versionNum <= 40; ++$versionNum) { - $version = Version::getVersionForNumber($versionNum); - $numBytes = $version->getTotalCodewords(); - - $ecBlocks = $version->getEcBlocksForLevel($ecLevel); - $numEcBytes = $ecBlocks->getTotalEcCodewords(); - - $numDataBytes = $numBytes - $numEcBytes; - $totalInputBytes = intdiv($numInputBits + 8, 8); - - if ($numDataBytes >= $totalInputBytes) { - return $version; - } - } - - throw new WriterException('Data too big'); - } - - /** - * Terminates the bits in a bit array. - * - * @throws WriterException if data bits cannot fit in the QR code - * @throws WriterException if bits size does not equal the capacity - */ - private static function terminateBits(int $numDataBytes, BitArray $bits) : void - { - $capacity = $numDataBytes << 3; - - if ($bits->getSize() > $capacity) { - throw new WriterException('Data bits cannot fit in the QR code'); - } - - for ($i = 0; $i < 4 && $bits->getSize() < $capacity; ++$i) { - $bits->appendBit(false); - } - - $numBitsInLastByte = $bits->getSize() & 0x7; - - if ($numBitsInLastByte > 0) { - for ($i = $numBitsInLastByte; $i < 8; ++$i) { - $bits->appendBit(false); - } - } - - $numPaddingBytes = $numDataBytes - $bits->getSizeInBytes(); - - for ($i = 0; $i < $numPaddingBytes; ++$i) { - $bits->appendBits(0 === ($i & 0x1) ? 0xec : 0x11, 8); - } - - if ($bits->getSize() !== $capacity) { - throw new WriterException('Bits size does not equal capacity'); - } - } - - /** - * Gets number of data- and EC bytes for a block ID. - * - * @return int[] - * @throws WriterException if block ID is too large - * @throws WriterException if EC bytes mismatch - * @throws WriterException if RS blocks mismatch - * @throws WriterException if total bytes mismatch - */ - private static function getNumDataBytesAndNumEcBytesForBlockId( - int $numTotalBytes, - int $numDataBytes, - int $numRsBlocks, - int $blockId - ) : array { - if ($blockId >= $numRsBlocks) { - throw new WriterException('Block ID too large'); - } - - $numRsBlocksInGroup2 = $numTotalBytes % $numRsBlocks; - $numRsBlocksInGroup1 = $numRsBlocks - $numRsBlocksInGroup2; - $numTotalBytesInGroup1 = intdiv($numTotalBytes, $numRsBlocks); - $numTotalBytesInGroup2 = $numTotalBytesInGroup1 + 1; - $numDataBytesInGroup1 = intdiv($numDataBytes, $numRsBlocks); - $numDataBytesInGroup2 = $numDataBytesInGroup1 + 1; - $numEcBytesInGroup1 = $numTotalBytesInGroup1 - $numDataBytesInGroup1; - $numEcBytesInGroup2 = $numTotalBytesInGroup2 - $numDataBytesInGroup2; - - if ($numEcBytesInGroup1 !== $numEcBytesInGroup2) { - throw new WriterException('EC bytes mismatch'); - } - - if ($numRsBlocks !== $numRsBlocksInGroup1 + $numRsBlocksInGroup2) { - throw new WriterException('RS blocks mismatch'); - } - - if ($numTotalBytes !== - (($numDataBytesInGroup1 + $numEcBytesInGroup1) * $numRsBlocksInGroup1) - + (($numDataBytesInGroup2 + $numEcBytesInGroup2) * $numRsBlocksInGroup2) - ) { - throw new WriterException('Total bytes mismatch'); - } - - if ($blockId < $numRsBlocksInGroup1) { - return [$numDataBytesInGroup1, $numEcBytesInGroup1]; - } else { - return [$numDataBytesInGroup2, $numEcBytesInGroup2]; - } - } - - /** - * Interleaves data with EC bytes. - * - * @throws WriterException if number of bits and data bytes does not match - * @throws WriterException if data bytes does not match offset - * @throws WriterException if an interleaving error occurs - */ - private static function interleaveWithEcBytes( - BitArray $bits, - int $numTotalBytes, - int $numDataBytes, - int $numRsBlocks - ) : BitArray { - if ($bits->getSizeInBytes() !== $numDataBytes) { - throw new WriterException('Number of bits and data bytes does not match'); - } - - $dataBytesOffset = 0; - $maxNumDataBytes = 0; - $maxNumEcBytes = 0; - - $blocks = new SplFixedArray($numRsBlocks); - - for ($i = 0; $i < $numRsBlocks; ++$i) { - list($numDataBytesInBlock, $numEcBytesInBlock) = self::getNumDataBytesAndNumEcBytesForBlockId( - $numTotalBytes, - $numDataBytes, - $numRsBlocks, - $i - ); - - $size = $numDataBytesInBlock; - $dataBytes = $bits->toBytes(8 * $dataBytesOffset, $size); - $ecBytes = self::generateEcBytes($dataBytes, $numEcBytesInBlock); - $blocks[$i] = new BlockPair($dataBytes, $ecBytes); - - $maxNumDataBytes = max($maxNumDataBytes, $size); - $maxNumEcBytes = max($maxNumEcBytes, count($ecBytes)); - $dataBytesOffset += $numDataBytesInBlock; - } - - if ($numDataBytes !== $dataBytesOffset) { - throw new WriterException('Data bytes does not match offset'); - } - - $result = new BitArray(); - - for ($i = 0; $i < $maxNumDataBytes; ++$i) { - foreach ($blocks as $block) { - $dataBytes = $block->getDataBytes(); - - if ($i < count($dataBytes)) { - $result->appendBits($dataBytes[$i], 8); - } - } - } - - for ($i = 0; $i < $maxNumEcBytes; ++$i) { - foreach ($blocks as $block) { - $ecBytes = $block->getErrorCorrectionBytes(); - - if ($i < count($ecBytes)) { - $result->appendBits($ecBytes[$i], 8); - } - } - } - - if ($numTotalBytes !== $result->getSizeInBytes()) { - throw new WriterException( - 'Interleaving error: ' . $numTotalBytes . ' and ' . $result->getSizeInBytes() . ' differ' - ); - } - - return $result; - } - - /** - * Generates EC bytes for given data. - * - * @param SplFixedArray $dataBytes - * @return SplFixedArray - */ - private static function generateEcBytes(SplFixedArray $dataBytes, int $numEcBytesInBlock) : SplFixedArray - { - $numDataBytes = count($dataBytes); - $toEncode = new SplFixedArray($numDataBytes + $numEcBytesInBlock); - - for ($i = 0; $i < $numDataBytes; $i++) { - $toEncode[$i] = $dataBytes[$i] & 0xff; - } - - $ecBytes = new SplFixedArray($numEcBytesInBlock); - $codec = self::getCodec($numDataBytes, $numEcBytesInBlock); - $codec->encode($toEncode, $ecBytes); - - return $ecBytes; - } - - /** - * Gets an RS codec and caches it. - */ - private static function getCodec(int $numDataBytes, int $numEcBytesInBlock) : ReedSolomonCodec - { - $cacheId = $numDataBytes . '-' . $numEcBytesInBlock; - - if (isset(self::$codecs[$cacheId])) { - return self::$codecs[$cacheId]; - } - - return self::$codecs[$cacheId] = new ReedSolomonCodec( - 8, - 0x11d, - 0, - 1, - $numEcBytesInBlock, - 255 - $numDataBytes - $numEcBytesInBlock - ); - } - - /** - * Appends mode information to a bit array. - */ - private static function appendModeInfo(Mode $mode, BitArray $bits) : void - { - $bits->appendBits($mode->getBits(), 4); - } - - /** - * Appends length information to a bit array. - * - * @throws WriterException if num letters is bigger than expected - */ - private static function appendLengthInfo(int $numLetters, Version $version, Mode $mode, BitArray $bits) : void - { - $numBits = $mode->getCharacterCountBits($version); - - if ($numLetters >= (1 << $numBits)) { - throw new WriterException($numLetters . ' is bigger than ' . ((1 << $numBits) - 1)); - } - - $bits->appendBits($numLetters, $numBits); - } - - /** - * Appends bytes to a bit array in a specific mode. - * - * @throws WriterException if an invalid mode was supplied - */ - private static function appendBytes(string $content, Mode $mode, BitArray $bits, string $encoding) : void - { - switch ($mode) { - case Mode::NUMERIC(): - self::appendNumericBytes($content, $bits); - break; - - case Mode::ALPHANUMERIC(): - self::appendAlphanumericBytes($content, $bits); - break; - - case Mode::BYTE(): - self::append8BitBytes($content, $bits, $encoding); - break; - - case Mode::KANJI(): - self::appendKanjiBytes($content, $bits); - break; - - default: - throw new WriterException('Invalid mode: ' . $mode); - } - } - - /** - * Appends numeric bytes to a bit array. - */ - private static function appendNumericBytes(string $content, BitArray $bits) : void - { - $length = strlen($content); - $i = 0; - - while ($i < $length) { - $num1 = (int) $content[$i]; - - if ($i + 2 < $length) { - // Encode three numeric letters in ten bits. - $num2 = (int) $content[$i + 1]; - $num3 = (int) $content[$i + 2]; - $bits->appendBits($num1 * 100 + $num2 * 10 + $num3, 10); - $i += 3; - } elseif ($i + 1 < $length) { - // Encode two numeric letters in seven bits. - $num2 = (int) $content[$i + 1]; - $bits->appendBits($num1 * 10 + $num2, 7); - $i += 2; - } else { - // Encode one numeric letter in four bits. - $bits->appendBits($num1, 4); - ++$i; - } - } - } - - /** - * Appends alpha-numeric bytes to a bit array. - * - * @throws WriterException if an invalid alphanumeric code was found - */ - private static function appendAlphanumericBytes(string $content, BitArray $bits) : void - { - $length = strlen($content); - $i = 0; - - while ($i < $length) { - $code1 = self::getAlphanumericCode(ord($content[$i])); - - if (-1 === $code1) { - throw new WriterException('Invalid alphanumeric code'); - } - - if ($i + 1 < $length) { - $code2 = self::getAlphanumericCode(ord($content[$i + 1])); - - if (-1 === $code2) { - throw new WriterException('Invalid alphanumeric code'); - } - - // Encode two alphanumeric letters in 11 bits. - $bits->appendBits($code1 * 45 + $code2, 11); - $i += 2; - } else { - // Encode one alphanumeric letter in six bits. - $bits->appendBits($code1, 6); - ++$i; - } - } - } - - /** - * Appends regular 8-bit bytes to a bit array. - * - * @throws WriterException if content cannot be encoded to target encoding - */ - private static function append8BitBytes(string $content, BitArray $bits, string $encoding) : void - { - $bytes = @iconv('utf-8', $encoding, $content); - - if (false === $bytes) { - throw new WriterException('Could not encode content to ' . $encoding); - } - - $length = strlen($bytes); - - for ($i = 0; $i < $length; $i++) { - $bits->appendBits(ord($bytes[$i]), 8); - } - } - - /** - * Appends KANJI bytes to a bit array. - * - * @throws WriterException if content does not seem to be encoded in SHIFT-JIS - * @throws WriterException if an invalid byte sequence occurs - */ - private static function appendKanjiBytes(string $content, BitArray $bits) : void - { - if (strlen($content) % 2 > 0) { - // We just do a simple length check here. The for loop will check - // individual characters. - throw new WriterException('Content does not seem to be encoded in SHIFT-JIS'); - } - - $length = strlen($content); - - for ($i = 0; $i < $length; $i += 2) { - $byte1 = ord($content[$i]) & 0xff; - $byte2 = ord($content[$i + 1]) & 0xff; - $code = ($byte1 << 8) | $byte2; - - if ($code >= 0x8140 && $code <= 0x9ffc) { - $subtracted = $code - 0x8140; - } elseif ($code >= 0xe040 && $code <= 0xebbf) { - $subtracted = $code - 0xc140; - } else { - throw new WriterException('Invalid byte sequence'); - } - - $encoded = (($subtracted >> 8) * 0xc0) + ($subtracted & 0xff); - - $bits->appendBits($encoded, 13); - } - } - - /** - * Appends ECI information to a bit array. - */ - private static function appendEci(CharacterSetEci $eci, BitArray $bits) : void - { - $mode = Mode::ECI(); - $bits->appendBits($mode->getBits(), 4); - $bits->appendBits($eci->getValue(), 8); - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Encoder/MaskUtil.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Encoder/MaskUtil.php deleted file mode 100644 index 3baddbd..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Encoder/MaskUtil.php +++ /dev/null @@ -1,271 +0,0 @@ -getArray(); - $width = $matrix->getWidth(); - $height = $matrix->getHeight(); - - for ($y = 0; $y < $height - 1; ++$y) { - for ($x = 0; $x < $width - 1; ++$x) { - $value = $array[$y][$x]; - - if ($value === $array[$y][$x + 1] - && $value === $array[$y + 1][$x] - && $value === $array[$y + 1][$x + 1] - ) { - ++$penalty; - } - } - } - - return self::N2 * $penalty; - } - - /** - * Applies mask penalty rule 3 and returns the penalty. - * - * Finds consecutive cells of 00001011101 or 10111010000, and gives penalty - * to them. If we find patterns like 000010111010000, we give penalties - * twice (i.e. 40 * 2). - */ - public static function applyMaskPenaltyRule3(ByteMatrix $matrix) : int - { - $penalty = 0; - $array = $matrix->getArray(); - $width = $matrix->getWidth(); - $height = $matrix->getHeight(); - - for ($y = 0; $y < $height; ++$y) { - for ($x = 0; $x < $width; ++$x) { - if ($x + 6 < $width - && 1 === $array[$y][$x] - && 0 === $array[$y][$x + 1] - && 1 === $array[$y][$x + 2] - && 1 === $array[$y][$x + 3] - && 1 === $array[$y][$x + 4] - && 0 === $array[$y][$x + 5] - && 1 === $array[$y][$x + 6] - && ( - ( - $x + 10 < $width - && 0 === $array[$y][$x + 7] - && 0 === $array[$y][$x + 8] - && 0 === $array[$y][$x + 9] - && 0 === $array[$y][$x + 10] - ) - || ( - $x - 4 >= 0 - && 0 === $array[$y][$x - 1] - && 0 === $array[$y][$x - 2] - && 0 === $array[$y][$x - 3] - && 0 === $array[$y][$x - 4] - ) - ) - ) { - $penalty += self::N3; - } - - if ($y + 6 < $height - && 1 === $array[$y][$x] - && 0 === $array[$y + 1][$x] - && 1 === $array[$y + 2][$x] - && 1 === $array[$y + 3][$x] - && 1 === $array[$y + 4][$x] - && 0 === $array[$y + 5][$x] - && 1 === $array[$y + 6][$x] - && ( - ( - $y + 10 < $height - && 0 === $array[$y + 7][$x] - && 0 === $array[$y + 8][$x] - && 0 === $array[$y + 9][$x] - && 0 === $array[$y + 10][$x] - ) - || ( - $y - 4 >= 0 - && 0 === $array[$y - 1][$x] - && 0 === $array[$y - 2][$x] - && 0 === $array[$y - 3][$x] - && 0 === $array[$y - 4][$x] - ) - ) - ) { - $penalty += self::N3; - } - } - } - - return $penalty; - } - - /** - * Applies mask penalty rule 4 and returns the penalty. - * - * Calculates the ratio of dark cells and gives penalty if the ratio is far - * from 50%. It gives 10 penalty for 5% distance. - */ - public static function applyMaskPenaltyRule4(ByteMatrix $matrix) : int - { - $numDarkCells = 0; - - $array = $matrix->getArray(); - $width = $matrix->getWidth(); - $height = $matrix->getHeight(); - - for ($y = 0; $y < $height; ++$y) { - $arrayY = $array[$y]; - - for ($x = 0; $x < $width; ++$x) { - if (1 === $arrayY[$x]) { - ++$numDarkCells; - } - } - } - - $numTotalCells = $height * $width; - $darkRatio = $numDarkCells / $numTotalCells; - $fixedPercentVariances = (int) (abs($darkRatio - 0.5) * 20); - - return $fixedPercentVariances * self::N4; - } - - /** - * Returns the mask bit for "getMaskPattern" at "x" and "y". - * - * See 8.8 of JISX0510:2004 for mask pattern conditions. - * - * @throws InvalidArgumentException if an invalid mask pattern was supplied - */ - public static function getDataMaskBit(int $maskPattern, int $x, int $y) : bool - { - switch ($maskPattern) { - case 0: - $intermediate = ($y + $x) & 0x1; - break; - - case 1: - $intermediate = $y & 0x1; - break; - - case 2: - $intermediate = $x % 3; - break; - - case 3: - $intermediate = ($y + $x) % 3; - break; - - case 4: - $intermediate = (BitUtils::unsignedRightShift($y, 1) + ($x / 3)) & 0x1; - break; - - case 5: - $temp = $y * $x; - $intermediate = ($temp & 0x1) + ($temp % 3); - break; - - case 6: - $temp = $y * $x; - $intermediate = (($temp & 0x1) + ($temp % 3)) & 0x1; - break; - - case 7: - $temp = $y * $x; - $intermediate = (($temp % 3) + (($y + $x) & 0x1)) & 0x1; - break; - - default: - throw new InvalidArgumentException('Invalid mask pattern: ' . $maskPattern); - } - - return 0 == $intermediate; - } - - /** - * Helper function for applyMaskPenaltyRule1. - * - * We need this for doing this calculation in both vertical and horizontal - * orders respectively. - */ - private static function applyMaskPenaltyRule1Internal(ByteMatrix $matrix, bool $isHorizontal) : int - { - $penalty = 0; - $iLimit = $isHorizontal ? $matrix->getHeight() : $matrix->getWidth(); - $jLimit = $isHorizontal ? $matrix->getWidth() : $matrix->getHeight(); - $array = $matrix->getArray(); - - for ($i = 0; $i < $iLimit; ++$i) { - $numSameBitCells = 0; - $prevBit = -1; - - for ($j = 0; $j < $jLimit; $j++) { - $bit = $isHorizontal ? $array[$i][$j] : $array[$j][$i]; - - if ($bit === $prevBit) { - ++$numSameBitCells; - } else { - if ($numSameBitCells >= 5) { - $penalty += self::N1 + ($numSameBitCells - 5); - } - - $numSameBitCells = 1; - $prevBit = $bit; - } - } - - if ($numSameBitCells >= 5) { - $penalty += self::N1 + ($numSameBitCells - 5); - } - } - - return $penalty; - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Encoder/MatrixUtil.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Encoder/MatrixUtil.php deleted file mode 100644 index 0967e29..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Encoder/MatrixUtil.php +++ /dev/null @@ -1,513 +0,0 @@ -clear(-1); - } - - /** - * Builds a complete matrix. - */ - public static function buildMatrix( - BitArray $dataBits, - ErrorCorrectionLevel $level, - Version $version, - int $maskPattern, - ByteMatrix $matrix - ) : void { - self::clearMatrix($matrix); - self::embedBasicPatterns($version, $matrix); - self::embedTypeInfo($level, $maskPattern, $matrix); - self::maybeEmbedVersionInfo($version, $matrix); - self::embedDataBits($dataBits, $maskPattern, $matrix); - } - - /** - * Removes the position detection patterns from a matrix. - * - * This can be useful if you need to render those patterns separately. - */ - public static function removePositionDetectionPatterns(ByteMatrix $matrix) : void - { - $pdpWidth = count(self::POSITION_DETECTION_PATTERN[0]); - - self::removePositionDetectionPattern(0, 0, $matrix); - self::removePositionDetectionPattern($matrix->getWidth() - $pdpWidth, 0, $matrix); - self::removePositionDetectionPattern(0, $matrix->getWidth() - $pdpWidth, $matrix); - } - - /** - * Embeds type information into a matrix. - */ - private static function embedTypeInfo(ErrorCorrectionLevel $level, int $maskPattern, ByteMatrix $matrix) : void - { - $typeInfoBits = new BitArray(); - self::makeTypeInfoBits($level, $maskPattern, $typeInfoBits); - - $typeInfoBitsSize = $typeInfoBits->getSize(); - - for ($i = 0; $i < $typeInfoBitsSize; ++$i) { - $bit = $typeInfoBits->get($typeInfoBitsSize - 1 - $i); - - $x1 = self::TYPE_INFO_COORDINATES[$i][0]; - $y1 = self::TYPE_INFO_COORDINATES[$i][1]; - - $matrix->set($x1, $y1, (int) $bit); - - if ($i < 8) { - $x2 = $matrix->getWidth() - $i - 1; - $y2 = 8; - } else { - $x2 = 8; - $y2 = $matrix->getHeight() - 7 + ($i - 8); - } - - $matrix->set($x2, $y2, (int) $bit); - } - } - - /** - * Generates type information bits and appends them to a bit array. - * - * @throws RuntimeException if bit array resulted in invalid size - */ - private static function makeTypeInfoBits(ErrorCorrectionLevel $level, int $maskPattern, BitArray $bits) : void - { - $typeInfo = ($level->getBits() << 3) | $maskPattern; - $bits->appendBits($typeInfo, 5); - - $bchCode = self::calculateBchCode($typeInfo, self::TYPE_INFO_POLY); - $bits->appendBits($bchCode, 10); - - $maskBits = new BitArray(); - $maskBits->appendBits(self::TYPE_INFO_MASK_PATTERN, 15); - $bits->xorBits($maskBits); - - if (15 !== $bits->getSize()) { - throw new RuntimeException('Bit array resulted in invalid size: ' . $bits->getSize()); - } - } - - /** - * Embeds version information if required. - */ - private static function maybeEmbedVersionInfo(Version $version, ByteMatrix $matrix) : void - { - if ($version->getVersionNumber() < 7) { - return; - } - - $versionInfoBits = new BitArray(); - self::makeVersionInfoBits($version, $versionInfoBits); - - $bitIndex = 6 * 3 - 1; - - for ($i = 0; $i < 6; ++$i) { - for ($j = 0; $j < 3; ++$j) { - $bit = $versionInfoBits->get($bitIndex); - --$bitIndex; - - $matrix->set($i, $matrix->getHeight() - 11 + $j, (int) $bit); - $matrix->set($matrix->getHeight() - 11 + $j, $i, (int) $bit); - } - } - } - - /** - * Generates version information bits and appends them to a bit array. - * - * @throws RuntimeException if bit array resulted in invalid size - */ - private static function makeVersionInfoBits(Version $version, BitArray $bits) : void - { - $bits->appendBits($version->getVersionNumber(), 6); - - $bchCode = self::calculateBchCode($version->getVersionNumber(), self::VERSION_INFO_POLY); - $bits->appendBits($bchCode, 12); - - if (18 !== $bits->getSize()) { - throw new RuntimeException('Bit array resulted in invalid size: ' . $bits->getSize()); - } - } - - /** - * Calculates the BCH code for a value and a polynomial. - */ - private static function calculateBchCode(int $value, int $poly) : int - { - $msbSetInPoly = self::findMsbSet($poly); - $value <<= $msbSetInPoly - 1; - - while (self::findMsbSet($value) >= $msbSetInPoly) { - $value ^= $poly << (self::findMsbSet($value) - $msbSetInPoly); - } - - return $value; - } - - /** - * Finds and MSB set. - */ - private static function findMsbSet(int $value) : int - { - $numDigits = 0; - - while (0 !== $value) { - $value >>= 1; - ++$numDigits; - } - - return $numDigits; - } - - /** - * Embeds basic patterns into a matrix. - */ - private static function embedBasicPatterns(Version $version, ByteMatrix $matrix) : void - { - self::embedPositionDetectionPatternsAndSeparators($matrix); - self::embedDarkDotAtLeftBottomCorner($matrix); - self::maybeEmbedPositionAdjustmentPatterns($version, $matrix); - self::embedTimingPatterns($matrix); - } - - /** - * Embeds position detection patterns and separators into a byte matrix. - */ - private static function embedPositionDetectionPatternsAndSeparators(ByteMatrix $matrix) : void - { - $pdpWidth = count(self::POSITION_DETECTION_PATTERN[0]); - - self::embedPositionDetectionPattern(0, 0, $matrix); - self::embedPositionDetectionPattern($matrix->getWidth() - $pdpWidth, 0, $matrix); - self::embedPositionDetectionPattern(0, $matrix->getWidth() - $pdpWidth, $matrix); - - $hspWidth = 8; - - self::embedHorizontalSeparationPattern(0, $hspWidth - 1, $matrix); - self::embedHorizontalSeparationPattern($matrix->getWidth() - $hspWidth, $hspWidth - 1, $matrix); - self::embedHorizontalSeparationPattern(0, $matrix->getWidth() - $hspWidth, $matrix); - - $vspSize = 7; - - self::embedVerticalSeparationPattern($vspSize, 0, $matrix); - self::embedVerticalSeparationPattern($matrix->getHeight() - $vspSize - 1, 0, $matrix); - self::embedVerticalSeparationPattern($vspSize, $matrix->getHeight() - $vspSize, $matrix); - } - - /** - * Embeds a single position detection pattern into a byte matrix. - */ - private static function embedPositionDetectionPattern(int $xStart, int $yStart, ByteMatrix $matrix) : void - { - for ($y = 0; $y < 7; ++$y) { - for ($x = 0; $x < 7; ++$x) { - $matrix->set($xStart + $x, $yStart + $y, self::POSITION_DETECTION_PATTERN[$y][$x]); - } - } - } - - private static function removePositionDetectionPattern(int $xStart, int $yStart, ByteMatrix $matrix) : void - { - for ($y = 0; $y < 7; ++$y) { - for ($x = 0; $x < 7; ++$x) { - $matrix->set($xStart + $x, $yStart + $y, 0); - } - } - } - - /** - * Embeds a single horizontal separation pattern. - * - * @throws RuntimeException if a byte was already set - */ - private static function embedHorizontalSeparationPattern(int $xStart, int $yStart, ByteMatrix $matrix) : void - { - for ($x = 0; $x < 8; $x++) { - if (-1 !== $matrix->get($xStart + $x, $yStart)) { - throw new RuntimeException('Byte already set'); - } - - $matrix->set($xStart + $x, $yStart, 0); - } - } - - /** - * Embeds a single vertical separation pattern. - * - * @throws RuntimeException if a byte was already set - */ - private static function embedVerticalSeparationPattern(int $xStart, int $yStart, ByteMatrix $matrix) : void - { - for ($y = 0; $y < 7; $y++) { - if (-1 !== $matrix->get($xStart, $yStart + $y)) { - throw new RuntimeException('Byte already set'); - } - - $matrix->set($xStart, $yStart + $y, 0); - } - } - - /** - * Embeds a dot at the left bottom corner. - * - * @throws RuntimeException if a byte was already set to 0 - */ - private static function embedDarkDotAtLeftBottomCorner(ByteMatrix $matrix) : void - { - if (0 === $matrix->get(8, $matrix->getHeight() - 8)) { - throw new RuntimeException('Byte already set to 0'); - } - - $matrix->set(8, $matrix->getHeight() - 8, 1); - } - - /** - * Embeds position adjustment patterns if required. - */ - private static function maybeEmbedPositionAdjustmentPatterns(Version $version, ByteMatrix $matrix) : void - { - if ($version->getVersionNumber() < 2) { - return; - } - - $index = $version->getVersionNumber() - 1; - - $coordinates = self::POSITION_ADJUSTMENT_PATTERN_COORDINATE_TABLE[$index]; - $numCoordinates = count($coordinates); - - for ($i = 0; $i < $numCoordinates; ++$i) { - for ($j = 0; $j < $numCoordinates; ++$j) { - $y = $coordinates[$i]; - $x = $coordinates[$j]; - - if (null === $x || null === $y) { - continue; - } - - if (-1 === $matrix->get($x, $y)) { - self::embedPositionAdjustmentPattern($x - 2, $y - 2, $matrix); - } - } - } - } - - /** - * Embeds a single position adjustment pattern. - */ - private static function embedPositionAdjustmentPattern(int $xStart, int $yStart, ByteMatrix $matrix) : void - { - for ($y = 0; $y < 5; $y++) { - for ($x = 0; $x < 5; $x++) { - $matrix->set($xStart + $x, $yStart + $y, self::POSITION_ADJUSTMENT_PATTERN[$y][$x]); - } - } - } - - /** - * Embeds timing patterns into a matrix. - */ - private static function embedTimingPatterns(ByteMatrix $matrix) : void - { - $matrixWidth = $matrix->getWidth(); - - for ($i = 8; $i < $matrixWidth - 8; ++$i) { - $bit = ($i + 1) % 2; - - if (-1 === $matrix->get($i, 6)) { - $matrix->set($i, 6, $bit); - } - - if (-1 === $matrix->get(6, $i)) { - $matrix->set(6, $i, $bit); - } - } - } - - /** - * Embeds "dataBits" using "getMaskPattern". - * - * For debugging purposes, it skips masking process if "getMaskPattern" is -1. See 8.7 of JISX0510:2004 (p.38) for - * how to embed data bits. - * - * @throws WriterException if not all bits could be consumed - */ - private static function embedDataBits(BitArray $dataBits, int $maskPattern, ByteMatrix $matrix) : void - { - $bitIndex = 0; - $direction = -1; - - // Start from the right bottom cell. - $x = $matrix->getWidth() - 1; - $y = $matrix->getHeight() - 1; - - while ($x > 0) { - // Skip vertical timing pattern. - if (6 === $x) { - --$x; - } - - while ($y >= 0 && $y < $matrix->getHeight()) { - for ($i = 0; $i < 2; $i++) { - $xx = $x - $i; - - // Skip the cell if it's not empty. - if (-1 !== $matrix->get($xx, $y)) { - continue; - } - - if ($bitIndex < $dataBits->getSize()) { - $bit = $dataBits->get($bitIndex); - ++$bitIndex; - } else { - // Padding bit. If there is no bit left, we'll fill the - // left cells with 0, as described in 8.4.9 of - // JISX0510:2004 (p. 24). - $bit = false; - } - - // Skip masking if maskPattern is -1. - if (-1 !== $maskPattern && MaskUtil::getDataMaskBit($maskPattern, $xx, $y)) { - $bit = ! $bit; - } - - $matrix->set($xx, $y, (int) $bit); - } - - $y += $direction; - } - - $direction = -$direction; - $y += $direction; - $x -= 2; - } - - // All bits should be consumed - if ($dataBits->getSize() !== $bitIndex) { - throw new WriterException('Not all bits consumed (' . $bitIndex . ' out of ' . $dataBits->getSize() .')'); - } - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Encoder/QrCode.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Encoder/QrCode.php deleted file mode 100644 index f568e88..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Encoder/QrCode.php +++ /dev/null @@ -1,141 +0,0 @@ -mode = $mode; - $this->errorCorrectionLevel = $errorCorrectionLevel; - $this->version = $version; - $this->maskPattern = $maskPattern; - $this->matrix = $matrix; - } - - /** - * Gets the mode. - */ - public function getMode() : Mode - { - return $this->mode; - } - - /** - * Gets the EC level. - */ - public function getErrorCorrectionLevel() : ErrorCorrectionLevel - { - return $this->errorCorrectionLevel; - } - - /** - * Gets the version. - */ - public function getVersion() : Version - { - return $this->version; - } - - /** - * Gets the mask pattern. - */ - public function getMaskPattern() : int - { - return $this->maskPattern; - } - - /** - * Gets the matrix. - * - * @return ByteMatrix - */ - public function getMatrix() - { - return $this->matrix; - } - - /** - * Validates whether a mask pattern is valid. - */ - public static function isValidMaskPattern(int $maskPattern) : bool - { - return $maskPattern > 0 && $maskPattern < self::NUM_MASK_PATTERNS; - } - - /** - * Returns a string representation of the QR code. - */ - public function __toString() : string - { - $result = "<<\n" - . ' mode: ' . $this->mode . "\n" - . ' ecLevel: ' . $this->errorCorrectionLevel . "\n" - . ' version: ' . $this->version . "\n" - . ' maskPattern: ' . $this->maskPattern . "\n"; - - if ($this->matrix === null) { - $result .= " matrix: null\n"; - } else { - $result .= " matrix:\n"; - $result .= $this->matrix; - } - - $result .= ">>\n"; - - return $result; - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Exception/ExceptionInterface.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Exception/ExceptionInterface.php deleted file mode 100644 index 6f70c20..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Exception/ExceptionInterface.php +++ /dev/null @@ -1,10 +0,0 @@ - 100) { - throw new Exception\InvalidArgumentException('Alpha must be between 0 and 100'); - } - - $this->alpha = $alpha; - $this->baseColor = $baseColor; - } - - public function getAlpha() : int - { - return $this->alpha; - } - - public function getBaseColor() : ColorInterface - { - return $this->baseColor; - } - - public function toRgb() : Rgb - { - return $this->baseColor->toRgb(); - } - - public function toCmyk() : Cmyk - { - return $this->baseColor->toCmyk(); - } - - public function toGray() : Gray - { - return $this->baseColor->toGray(); - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Color/Cmyk.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Color/Cmyk.php deleted file mode 100644 index d6de390..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Color/Cmyk.php +++ /dev/null @@ -1,103 +0,0 @@ - 100) { - throw new Exception\InvalidArgumentException('Cyan must be between 0 and 100'); - } - - if ($magenta < 0 || $magenta > 100) { - throw new Exception\InvalidArgumentException('Magenta must be between 0 and 100'); - } - - if ($yellow < 0 || $yellow > 100) { - throw new Exception\InvalidArgumentException('Yellow must be between 0 and 100'); - } - - if ($black < 0 || $black > 100) { - throw new Exception\InvalidArgumentException('Black must be between 0 and 100'); - } - - $this->cyan = $cyan; - $this->magenta = $magenta; - $this->yellow = $yellow; - $this->black = $black; - } - - public function getCyan() : int - { - return $this->cyan; - } - - public function getMagenta() : int - { - return $this->magenta; - } - - public function getYellow() : int - { - return $this->yellow; - } - - public function getBlack() : int - { - return $this->black; - } - - public function toRgb() : Rgb - { - $k = $this->black / 100; - $c = (-$k * $this->cyan + $k * 100 + $this->cyan) / 100; - $m = (-$k * $this->magenta + $k * 100 + $this->magenta) / 100; - $y = (-$k * $this->yellow + $k * 100 + $this->yellow) / 100; - - return new Rgb( - (int) (-$c * 255 + 255), - (int) (-$m * 255 + 255), - (int) (-$y * 255 + 255) - ); - } - - public function toCmyk() : Cmyk - { - return $this; - } - - public function toGray() : Gray - { - return $this->toRgb()->toGray(); - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Color/ColorInterface.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Color/ColorInterface.php deleted file mode 100644 index b50d1ca..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Color/ColorInterface.php +++ /dev/null @@ -1,22 +0,0 @@ - 100) { - throw new Exception\InvalidArgumentException('Gray must be between 0 and 100'); - } - - $this->gray = (int) $gray; - } - - public function getGray() : int - { - return $this->gray; - } - - public function toRgb() : Rgb - { - return new Rgb((int) ($this->gray * 2.55), (int) ($this->gray * 2.55), (int) ($this->gray * 2.55)); - } - - public function toCmyk() : Cmyk - { - return new Cmyk(0, 0, 0, 100 - $this->gray); - } - - public function toGray() : Gray - { - return $this; - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Color/Rgb.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Color/Rgb.php deleted file mode 100644 index 7935406..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Color/Rgb.php +++ /dev/null @@ -1,88 +0,0 @@ - 255) { - throw new Exception\InvalidArgumentException('Red must be between 0 and 255'); - } - - if ($green < 0 || $green > 255) { - throw new Exception\InvalidArgumentException('Green must be between 0 and 255'); - } - - if ($blue < 0 || $blue > 255) { - throw new Exception\InvalidArgumentException('Blue must be between 0 and 255'); - } - - $this->red = $red; - $this->green = $green; - $this->blue = $blue; - } - - public function getRed() : int - { - return $this->red; - } - - public function getGreen() : int - { - return $this->green; - } - - public function getBlue() : int - { - return $this->blue; - } - - public function toRgb() : Rgb - { - return $this; - } - - public function toCmyk() : Cmyk - { - $c = 1 - ($this->red / 255); - $m = 1 - ($this->green / 255); - $y = 1 - ($this->blue / 255); - $k = min($c, $m, $y); - - return new Cmyk( - (int) (100 * ($c - $k) / (1 - $k)), - (int) (100 * ($m - $k) / (1 - $k)), - (int) (100 * ($y - $k) / (1 - $k)), - (int) (100 * $k) - ); - } - - public function toGray() : Gray - { - return new Gray((int) (($this->red * 0.21 + $this->green * 0.71 + $this->blue * 0.07) / 2.55)); - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Eye/CompositeEye.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Eye/CompositeEye.php deleted file mode 100644 index a3e1909..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Eye/CompositeEye.php +++ /dev/null @@ -1,38 +0,0 @@ -externalEye = $externalEye; - $this->internalEye = $internalEye; - } - - public function getExternalPath() : Path - { - return $this->externalEye->getExternalPath(); - } - - public function getInternalPath() : Path - { - return $this->externalEye->getInternalPath(); - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Eye/EyeInterface.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Eye/EyeInterface.php deleted file mode 100644 index ab68f3c..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Eye/EyeInterface.php +++ /dev/null @@ -1,26 +0,0 @@ -module = $module; - } - - public function getExternalPath() : Path - { - $matrix = new ByteMatrix(7, 7); - - for ($x = 0; $x < 7; ++$x) { - $matrix->set($x, 0, 1); - $matrix->set($x, 6, 1); - } - - for ($y = 1; $y < 6; ++$y) { - $matrix->set(0, $y, 1); - $matrix->set(6, $y, 1); - } - - return $this->module->createPath($matrix)->translate(-3.5, -3.5); - } - - public function getInternalPath() : Path - { - $matrix = new ByteMatrix(3, 3); - - for ($x = 0; $x < 3; ++$x) { - for ($y = 0; $y < 3; ++$y) { - $matrix->set($x, $y, 1); - } - } - - return $this->module->createPath($matrix)->translate(-1.5, -1.5); - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Eye/SimpleCircleEye.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Eye/SimpleCircleEye.php deleted file mode 100644 index 64d54ee..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Eye/SimpleCircleEye.php +++ /dev/null @@ -1,54 +0,0 @@ -move(-3.5, -3.5) - ->line(3.5, -3.5) - ->line(3.5, 3.5) - ->line(-3.5, 3.5) - ->close() - ->move(-2.5, -2.5) - ->line(-2.5, 2.5) - ->line(2.5, 2.5) - ->line(2.5, -2.5) - ->close() - ; - } - - public function getInternalPath() : Path - { - return (new Path()) - ->move(1.5, 0) - ->ellipticArc(1.5, 1.5, 0., false, true, 0., 1.5) - ->ellipticArc(1.5, 1.5, 0., false, true, -1.5, 0.) - ->ellipticArc(1.5, 1.5, 0., false, true, 0., -1.5) - ->ellipticArc(1.5, 1.5, 0., false, true, 1.5, 0.) - ->close() - ; - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Eye/SquareEye.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Eye/SquareEye.php deleted file mode 100644 index a3892b4..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Eye/SquareEye.php +++ /dev/null @@ -1,53 +0,0 @@ -move(-3.5, -3.5) - ->line(3.5, -3.5) - ->line(3.5, 3.5) - ->line(-3.5, 3.5) - ->close() - ->move(-2.5, -2.5) - ->line(-2.5, 2.5) - ->line(2.5, 2.5) - ->line(2.5, -2.5) - ->close() - ; - } - - public function getInternalPath() : Path - { - return (new Path()) - ->move(-1.5, -1.5) - ->line(1.5, -1.5) - ->line(1.5, 1.5) - ->line(-1.5, 1.5) - ->close() - ; - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/EpsImageBackEnd.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/EpsImageBackEnd.php deleted file mode 100644 index b581b54..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/EpsImageBackEnd.php +++ /dev/null @@ -1,376 +0,0 @@ -eps = "%!PS-Adobe-3.0 EPSF-3.0\n" - . "%%Creator: BaconQrCode\n" - . sprintf("%%%%BoundingBox: 0 0 %d %d \n", $size, $size) - . "%%BeginProlog\n" - . "save\n" - . "50 dict begin\n" - . "/q { gsave } bind def\n" - . "/Q { grestore } bind def\n" - . "/s { scale } bind def\n" - . "/t { translate } bind def\n" - . "/r { rotate } bind def\n" - . "/n { newpath } bind def\n" - . "/m { moveto } bind def\n" - . "/l { lineto } bind def\n" - . "/c { curveto } bind def\n" - . "/z { closepath } bind def\n" - . "/f { eofill } bind def\n" - . "/rgb { setrgbcolor } bind def\n" - . "/cmyk { setcmykcolor } bind def\n" - . "/gray { setgray } bind def\n" - . "%%EndProlog\n" - . "1 -1 s\n" - . sprintf("0 -%d t\n", $size); - - if ($backgroundColor instanceof Alpha && 0 === $backgroundColor->getAlpha()) { - return; - } - - $this->eps .= wordwrap( - '0 0 m' - . sprintf(' %s 0 l', (string) $size) - . sprintf(' %s %s l', (string) $size, (string) $size) - . sprintf(' 0 %s l', (string) $size) - . ' z' - . ' ' .$this->getColorSetString($backgroundColor) . " f\n", - 75, - "\n " - ); - } - - public function scale(float $size) : void - { - if (null === $this->eps) { - throw new RuntimeException('No image has been started'); - } - - $this->eps .= sprintf("%1\$s %1\$s s\n", round($size, self::PRECISION)); - } - - public function translate(float $x, float $y) : void - { - if (null === $this->eps) { - throw new RuntimeException('No image has been started'); - } - - $this->eps .= sprintf("%s %s t\n", round($x, self::PRECISION), round($y, self::PRECISION)); - } - - public function rotate(int $degrees) : void - { - if (null === $this->eps) { - throw new RuntimeException('No image has been started'); - } - - $this->eps .= sprintf("%d r\n", $degrees); - } - - public function push() : void - { - if (null === $this->eps) { - throw new RuntimeException('No image has been started'); - } - - $this->eps .= "q\n"; - } - - public function pop() : void - { - if (null === $this->eps) { - throw new RuntimeException('No image has been started'); - } - - $this->eps .= "Q\n"; - } - - public function drawPathWithColor(Path $path, ColorInterface $color) : void - { - if (null === $this->eps) { - throw new RuntimeException('No image has been started'); - } - - $fromX = 0; - $fromY = 0; - $this->eps .= wordwrap( - 'n ' - . $this->drawPathOperations($path, $fromX, $fromY) - . ' ' . $this->getColorSetString($color) . " f\n", - 75, - "\n " - ); - } - - public function drawPathWithGradient( - Path $path, - Gradient $gradient, - float $x, - float $y, - float $width, - float $height - ) : void { - if (null === $this->eps) { - throw new RuntimeException('No image has been started'); - } - - $fromX = 0; - $fromY = 0; - $this->eps .= wordwrap( - 'q n ' . $this->drawPathOperations($path, $fromX, $fromY) . "\n", - 75, - "\n " - ); - - $this->createGradientFill($gradient, $x, $y, $width, $height); - } - - public function done() : string - { - if (null === $this->eps) { - throw new RuntimeException('No image has been started'); - } - - $this->eps .= "%%TRAILER\nend restore\n%%EOF"; - $blob = $this->eps; - $this->eps = null; - - return $blob; - } - - private function drawPathOperations(Iterable $ops, &$fromX, &$fromY) : string - { - $pathData = []; - - foreach ($ops as $op) { - switch (true) { - case $op instanceof Move: - $fromX = $toX = round($op->getX(), self::PRECISION); - $fromY = $toY = round($op->getY(), self::PRECISION); - $pathData[] = sprintf('%s %s m', $toX, $toY); - break; - - case $op instanceof Line: - $fromX = $toX = round($op->getX(), self::PRECISION); - $fromY = $toY = round($op->getY(), self::PRECISION); - $pathData[] = sprintf('%s %s l', $toX, $toY); - break; - - case $op instanceof EllipticArc: - $pathData[] = $this->drawPathOperations($op->toCurves($fromX, $fromY), $fromX, $fromY); - break; - - case $op instanceof Curve: - $x1 = round($op->getX1(), self::PRECISION); - $y1 = round($op->getY1(), self::PRECISION); - $x2 = round($op->getX2(), self::PRECISION); - $y2 = round($op->getY2(), self::PRECISION); - $fromX = $x3 = round($op->getX3(), self::PRECISION); - $fromY = $y3 = round($op->getY3(), self::PRECISION); - $pathData[] = sprintf('%s %s %s %s %s %s c', $x1, $y1, $x2, $y2, $x3, $y3); - break; - - case $op instanceof Close: - $pathData[] = 'z'; - break; - - default: - throw new RuntimeException('Unexpected draw operation: ' . get_class($op)); - } - } - - return implode(' ', $pathData); - } - - private function createGradientFill(Gradient $gradient, float $x, float $y, float $width, float $height) : void - { - $startColor = $gradient->getStartColor(); - $endColor = $gradient->getEndColor(); - - if ($startColor instanceof Alpha) { - $startColor = $startColor->getBaseColor(); - } - - $startColorType = get_class($startColor); - - if (! in_array($startColorType, [Rgb::class, Cmyk::class, Gray::class])) { - $startColorType = Cmyk::class; - $startColor = $startColor->toCmyk(); - } - - if (get_class($endColor) !== $startColorType) { - switch ($startColorType) { - case Cmyk::class: - $endColor = $endColor->toCmyk(); - break; - - case Rgb::class: - $endColor = $endColor->toRgb(); - break; - - case Gray::class: - $endColor = $endColor->toGray(); - break; - } - } - - $this->eps .= "eoclip\n<<\n"; - - if ($gradient->getType() === GradientType::RADIAL()) { - $this->eps .= " /ShadingType 3\n"; - } else { - $this->eps .= " /ShadingType 2\n"; - } - - $this->eps .= " /Extend [ true true ]\n" - . " /AntiAlias true\n"; - - switch ($startColorType) { - case Cmyk::class: - $this->eps .= " /ColorSpace /DeviceCMYK\n"; - break; - - case Rgb::class: - $this->eps .= " /ColorSpace /DeviceRGB\n"; - break; - - case Gray::class: - $this->eps .= " /ColorSpace /DeviceGray\n"; - break; - } - - switch ($gradient->getType()) { - case GradientType::HORIZONTAL(): - $this->eps .= sprintf( - " /Coords [ %s %s %s %s ]\n", - round($x, self::PRECISION), - round($y, self::PRECISION), - round($x + $width, self::PRECISION), - round($y, self::PRECISION) - ); - break; - - case GradientType::VERTICAL(): - $this->eps .= sprintf( - " /Coords [ %s %s %s %s ]\n", - round($x, self::PRECISION), - round($y, self::PRECISION), - round($x, self::PRECISION), - round($y + $height, self::PRECISION) - ); - break; - - case GradientType::DIAGONAL(): - $this->eps .= sprintf( - " /Coords [ %s %s %s %s ]\n", - round($x, self::PRECISION), - round($y, self::PRECISION), - round($x + $width, self::PRECISION), - round($y + $height, self::PRECISION) - ); - break; - - case GradientType::INVERSE_DIAGONAL(): - $this->eps .= sprintf( - " /Coords [ %s %s %s %s ]\n", - round($x, self::PRECISION), - round($y + $height, self::PRECISION), - round($x + $width, self::PRECISION), - round($y, self::PRECISION) - ); - break; - - case GradientType::RADIAL(): - $centerX = ($x + $width) / 2; - $centerY = ($y + $height) / 2; - - $this->eps .= sprintf( - " /Coords [ %s %s 0 %s %s %s ]\n", - round($centerX, self::PRECISION), - round($centerY, self::PRECISION), - round($centerX, self::PRECISION), - round($centerY, self::PRECISION), - round(max($width, $height) / 2, self::PRECISION) - ); - break; - } - - $this->eps .= " /Function\n" - . " <<\n" - . " /FunctionType 2\n" - . " /Domain [ 0 1 ]\n" - . sprintf(" /C0 [ %s ]\n", $this->getColorString($startColor)) - . sprintf(" /C1 [ %s ]\n", $this->getColorString($endColor)) - . " /N 1\n" - . " >>\n>>\nshfill\nQ\n"; - } - - private function getColorSetString(ColorInterface $color) : string - { - if ($color instanceof Rgb) { - return $this->getColorString($color) . ' rgb'; - } - - if ($color instanceof Cmyk) { - return $this->getColorString($color) . ' cmyk'; - } - - if ($color instanceof Gray) { - return $this->getColorString($color) . ' gray'; - } - - return $this->getColorSetString($color->toCmyk()); - } - - private function getColorString(ColorInterface $color) : string - { - if ($color instanceof Rgb) { - return sprintf('%s %s %s', $color->getRed() / 255, $color->getGreen() / 255, $color->getBlue() / 255); - } - - if ($color instanceof Cmyk) { - return sprintf( - '%s %s %s %s', - $color->getCyan() / 100, - $color->getMagenta() / 100, - $color->getYellow() / 100, - $color->getBlack() / 100 - ); - } - - if ($color instanceof Gray) { - return sprintf('%s', $color->getGray() / 100); - } - - return $this->getColorString($color->toCmyk()); - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/ImageBackEndInterface.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/ImageBackEndInterface.php deleted file mode 100644 index 0935819..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/ImageBackEndInterface.php +++ /dev/null @@ -1,87 +0,0 @@ -imageFormat = $imageFormat; - $this->compressionQuality = $compressionQuality; - } - - public function new(int $size, ColorInterface $backgroundColor) : void - { - $this->image = new Imagick(); - $this->image->newImage($size, $size, $this->getColorPixel($backgroundColor)); - $this->image->setImageFormat($this->imageFormat); - $this->image->setCompressionQuality($this->compressionQuality); - $this->draw = new ImagickDraw(); - $this->gradientCount = 0; - $this->matrices = [new TransformationMatrix()]; - $this->matrixIndex = 0; - } - - public function scale(float $size) : void - { - if (null === $this->draw) { - throw new RuntimeException('No image has been started'); - } - - $this->draw->scale($size, $size); - $this->matrices[$this->matrixIndex] = $this->matrices[$this->matrixIndex] - ->multiply(TransformationMatrix::scale($size)); - } - - public function translate(float $x, float $y) : void - { - if (null === $this->draw) { - throw new RuntimeException('No image has been started'); - } - - $this->draw->translate($x, $y); - $this->matrices[$this->matrixIndex] = $this->matrices[$this->matrixIndex] - ->multiply(TransformationMatrix::translate($x, $y)); - } - - public function rotate(int $degrees) : void - { - if (null === $this->draw) { - throw new RuntimeException('No image has been started'); - } - - $this->draw->rotate($degrees); - $this->matrices[$this->matrixIndex] = $this->matrices[$this->matrixIndex] - ->multiply(TransformationMatrix::rotate($degrees)); - } - - public function push() : void - { - if (null === $this->draw) { - throw new RuntimeException('No image has been started'); - } - - $this->draw->push(); - $this->matrices[++$this->matrixIndex] = $this->matrices[$this->matrixIndex - 1]; - } - - public function pop() : void - { - if (null === $this->draw) { - throw new RuntimeException('No image has been started'); - } - - $this->draw->pop(); - unset($this->matrices[$this->matrixIndex--]); - } - - public function drawPathWithColor(Path $path, ColorInterface $color) : void - { - if (null === $this->draw) { - throw new RuntimeException('No image has been started'); - } - - $this->draw->setFillColor($this->getColorPixel($color)); - $this->drawPath($path); - } - - public function drawPathWithGradient( - Path $path, - Gradient $gradient, - float $x, - float $y, - float $width, - float $height - ) : void { - if (null === $this->draw) { - throw new RuntimeException('No image has been started'); - } - - $this->draw->setFillPatternURL('#' . $this->createGradientFill($gradient, $x, $y, $width, $height)); - $this->drawPath($path); - } - - public function done() : string - { - if (null === $this->draw) { - throw new RuntimeException('No image has been started'); - } - - $this->image->drawImage($this->draw); - $blob = $this->image->getImageBlob(); - $this->draw->clear(); - $this->image->clear(); - $this->draw = null; - $this->image = null; - $this->gradientCount = null; - - return $blob; - } - - private function drawPath(Path $path) : void - { - $this->draw->pathStart(); - - foreach ($path as $op) { - switch (true) { - case $op instanceof Move: - $this->draw->pathMoveToAbsolute($op->getX(), $op->getY()); - break; - - case $op instanceof Line: - $this->draw->pathLineToAbsolute($op->getX(), $op->getY()); - break; - - case $op instanceof EllipticArc: - $this->draw->pathEllipticArcAbsolute( - $op->getXRadius(), - $op->getYRadius(), - $op->getXAxisAngle(), - $op->isLargeArc(), - $op->isSweep(), - $op->getX(), - $op->getY() - ); - break; - - case $op instanceof Curve: - $this->draw->pathCurveToAbsolute( - $op->getX1(), - $op->getY1(), - $op->getX2(), - $op->getY2(), - $op->getX3(), - $op->getY3() - ); - break; - - case $op instanceof Close: - $this->draw->pathClose(); - break; - - default: - throw new RuntimeException('Unexpected draw operation: ' . get_class($op)); - } - } - - $this->draw->pathFinish(); - } - - private function createGradientFill(Gradient $gradient, float $x, float $y, float $width, float $height) : string - { - list($width, $height) = $this->matrices[$this->matrixIndex]->apply($x + $width, $y + $height); - list($x, $y) = $this->matrices[$this->matrixIndex]->apply($x, $y); - $width -= $x; - $height -= $y; - - $startColor = $this->getColorPixel($gradient->getStartColor())->getColorAsString(); - $endColor = $this->getColorPixel($gradient->getEndColor())->getColorAsString(); - $gradientImage = new Imagick(); - - switch ($gradient->getType()) { - case GradientType::HORIZONTAL(): - $gradientImage->newPseudoImage((int) $height, (int) $width, sprintf( - 'gradient:%s-%s', - $startColor, - $endColor - )); - $gradientImage->rotateImage('transparent', -90); - break; - - case GradientType::VERTICAL(): - $gradientImage->newPseudoImage((int) $width, (int) $height, sprintf( - 'gradient:%s-%s', - $startColor, - $endColor - )); - break; - - case GradientType::DIAGONAL(): - case GradientType::INVERSE_DIAGONAL(): - $gradientImage->newPseudoImage((int) ($width * sqrt(2)), (int) ($height * sqrt(2)), sprintf( - 'gradient:%s-%s', - $startColor, - $endColor - )); - - if (GradientType::DIAGONAL() === $gradient->getType()) { - $gradientImage->rotateImage('transparent', -45); - } else { - $gradientImage->rotateImage('transparent', -135); - } - - $rotatedWidth = $gradientImage->getImageWidth(); - $rotatedHeight = $gradientImage->getImageHeight(); - - $gradientImage->setImagePage($rotatedWidth, $rotatedHeight, 0, 0); - $gradientImage->cropImage( - intdiv($rotatedWidth, 2) - 2, - intdiv($rotatedHeight, 2) - 2, - intdiv($rotatedWidth, 4) + 1, - intdiv($rotatedWidth, 4) + 1 - ); - break; - - case GradientType::RADIAL(): - $gradientImage->newPseudoImage((int) $width, (int) $height, sprintf( - 'radial-gradient:%s-%s', - $startColor, - $endColor - )); - break; - } - - $id = sprintf('g%d', ++$this->gradientCount); - $this->draw->pushPattern($id, 0, 0, $x + $width, $y + $height); - $this->draw->composite(Imagick::COMPOSITE_COPY, $x, $y, $width, $height, $gradientImage); - $this->draw->popPattern(); - return $id; - } - - private function getColorPixel(ColorInterface $color) : ImagickPixel - { - $alpha = 100; - - if ($color instanceof Alpha) { - $alpha = $color->getAlpha(); - $color = $color->getBaseColor(); - } - - if ($color instanceof Rgb) { - return new ImagickPixel(sprintf( - 'rgba(%d, %d, %d, %F)', - $color->getRed(), - $color->getGreen(), - $color->getBlue(), - $alpha / 100 - )); - } - - if ($color instanceof Cmyk) { - return new ImagickPixel(sprintf( - 'cmyka(%d, %d, %d, %d, %F)', - $color->getCyan(), - $color->getMagenta(), - $color->getYellow(), - $color->getBlack(), - $alpha / 100 - )); - } - - if ($color instanceof Gray) { - return new ImagickPixel(sprintf( - 'graya(%d%%, %F)', - $color->getGray(), - $alpha / 100 - )); - } - - return $this->getColorPixel(new Alpha($alpha, $color->toRgb())); - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/SvgImageBackEnd.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/SvgImageBackEnd.php deleted file mode 100644 index 714da6e..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/SvgImageBackEnd.php +++ /dev/null @@ -1,369 +0,0 @@ -xmlWriter = new XMLWriter(); - $this->xmlWriter->openMemory(); - - $this->xmlWriter->startDocument('1.0', 'UTF-8'); - $this->xmlWriter->startElement('svg'); - $this->xmlWriter->writeAttribute('xmlns', 'http://www.w3.org/2000/svg'); - $this->xmlWriter->writeAttribute('version', '1.1'); - $this->xmlWriter->writeAttribute('width', (string) $size); - $this->xmlWriter->writeAttribute('height', (string) $size); - $this->xmlWriter->writeAttribute('viewBox', '0 0 '. $size . ' ' . $size); - - $this->gradientCount = 0; - $this->currentStack = 0; - $this->stack[0] = 0; - - $alpha = 1; - - if ($backgroundColor instanceof Alpha) { - $alpha = $backgroundColor->getAlpha() / 100; - } - - if (0 === $alpha) { - return; - } - - $this->xmlWriter->startElement('rect'); - $this->xmlWriter->writeAttribute('x', '0'); - $this->xmlWriter->writeAttribute('y', '0'); - $this->xmlWriter->writeAttribute('width', (string) $size); - $this->xmlWriter->writeAttribute('height', (string) $size); - $this->xmlWriter->writeAttribute('fill', $this->getColorString($backgroundColor)); - - if ($alpha < 1) { - $this->xmlWriter->writeAttribute('fill-opacity', (string) $alpha); - } - - $this->xmlWriter->endElement(); - } - - public function scale(float $size) : void - { - if (null === $this->xmlWriter) { - throw new RuntimeException('No image has been started'); - } - - $this->xmlWriter->startElement('g'); - $this->xmlWriter->writeAttribute( - 'transform', - sprintf('scale(%s)', round($size, self::PRECISION)) - ); - ++$this->stack[$this->currentStack]; - } - - public function translate(float $x, float $y) : void - { - if (null === $this->xmlWriter) { - throw new RuntimeException('No image has been started'); - } - - $this->xmlWriter->startElement('g'); - $this->xmlWriter->writeAttribute( - 'transform', - sprintf('translate(%s,%s)', round($x, self::PRECISION), round($y, self::PRECISION)) - ); - ++$this->stack[$this->currentStack]; - } - - public function rotate(int $degrees) : void - { - if (null === $this->xmlWriter) { - throw new RuntimeException('No image has been started'); - } - - $this->xmlWriter->startElement('g'); - $this->xmlWriter->writeAttribute('transform', sprintf('rotate(%d)', $degrees)); - ++$this->stack[$this->currentStack]; - } - - public function push() : void - { - if (null === $this->xmlWriter) { - throw new RuntimeException('No image has been started'); - } - - $this->xmlWriter->startElement('g'); - $this->stack[] = 1; - ++$this->currentStack; - } - - public function pop() : void - { - if (null === $this->xmlWriter) { - throw new RuntimeException('No image has been started'); - } - - for ($i = 0; $i < $this->stack[$this->currentStack]; ++$i) { - $this->xmlWriter->endElement(); - } - - array_pop($this->stack); - --$this->currentStack; - } - - public function drawPathWithColor(Path $path, ColorInterface $color) : void - { - if (null === $this->xmlWriter) { - throw new RuntimeException('No image has been started'); - } - - $alpha = 1; - - if ($color instanceof Alpha) { - $alpha = $color->getAlpha() / 100; - } - - $this->startPathElement($path); - $this->xmlWriter->writeAttribute('fill', $this->getColorString($color)); - - if ($alpha < 1) { - $this->xmlWriter->writeAttribute('fill-opacity', (string) $alpha); - } - - $this->xmlWriter->endElement(); - } - - public function drawPathWithGradient( - Path $path, - Gradient $gradient, - float $x, - float $y, - float $width, - float $height - ) : void { - if (null === $this->xmlWriter) { - throw new RuntimeException('No image has been started'); - } - - $gradientId = $this->createGradientFill($gradient, $x, $y, $width, $height); - $this->startPathElement($path); - $this->xmlWriter->writeAttribute('fill', 'url(#' . $gradientId . ')'); - $this->xmlWriter->endElement(); - } - - public function done() : string - { - if (null === $this->xmlWriter) { - throw new RuntimeException('No image has been started'); - } - - foreach ($this->stack as $openElements) { - for ($i = $openElements; $i > 0; --$i) { - $this->xmlWriter->endElement(); - } - } - - $this->xmlWriter->endDocument(); - $blob = $this->xmlWriter->outputMemory(true); - $this->xmlWriter = null; - $this->stack = null; - $this->currentStack = null; - $this->gradientCount = null; - - return $blob; - } - - private function startPathElement(Path $path) : void - { - $pathData = []; - - foreach ($path as $op) { - switch (true) { - case $op instanceof Move: - $pathData[] = sprintf( - 'M%s %s', - round($op->getX(), self::PRECISION), - round($op->getY(), self::PRECISION) - ); - break; - - case $op instanceof Line: - $pathData[] = sprintf( - 'L%s %s', - round($op->getX(), self::PRECISION), - round($op->getY(), self::PRECISION) - ); - break; - - case $op instanceof EllipticArc: - $pathData[] = sprintf( - 'A%s %s %s %u %u %s %s', - round($op->getXRadius(), self::PRECISION), - round($op->getYRadius(), self::PRECISION), - round($op->getXAxisAngle(), self::PRECISION), - $op->isLargeArc(), - $op->isSweep(), - round($op->getX(), self::PRECISION), - round($op->getY(), self::PRECISION) - ); - break; - - case $op instanceof Curve: - $pathData[] = sprintf( - 'C%s %s %s %s %s %s', - round($op->getX1(), self::PRECISION), - round($op->getY1(), self::PRECISION), - round($op->getX2(), self::PRECISION), - round($op->getY2(), self::PRECISION), - round($op->getX3(), self::PRECISION), - round($op->getY3(), self::PRECISION) - ); - break; - - case $op instanceof Close: - $pathData[] = 'Z'; - break; - - default: - throw new RuntimeException('Unexpected draw operation: ' . get_class($op)); - } - } - - $this->xmlWriter->startElement('path'); - $this->xmlWriter->writeAttribute('fill-rule', 'evenodd'); - $this->xmlWriter->writeAttribute('d', implode('', $pathData)); - } - - private function createGradientFill(Gradient $gradient, float $x, float $y, float $width, float $height) : string - { - $this->xmlWriter->startElement('defs'); - - $startColor = $gradient->getStartColor(); - $endColor = $gradient->getEndColor(); - - if ($gradient->getType() === GradientType::RADIAL()) { - $this->xmlWriter->startElement('radialGradient'); - } else { - $this->xmlWriter->startElement('linearGradient'); - } - - $this->xmlWriter->writeAttribute('gradientUnits', 'userSpaceOnUse'); - - switch ($gradient->getType()) { - case GradientType::HORIZONTAL(): - $this->xmlWriter->writeAttribute('x1', (string) round($x, self::PRECISION)); - $this->xmlWriter->writeAttribute('y1', (string) round($y, self::PRECISION)); - $this->xmlWriter->writeAttribute('x2', (string) round($x + $width, self::PRECISION)); - $this->xmlWriter->writeAttribute('y2', (string) round($y, self::PRECISION)); - break; - - case GradientType::VERTICAL(): - $this->xmlWriter->writeAttribute('x1', (string) round($x, self::PRECISION)); - $this->xmlWriter->writeAttribute('y1', (string) round($y, self::PRECISION)); - $this->xmlWriter->writeAttribute('x2', (string) round($x, self::PRECISION)); - $this->xmlWriter->writeAttribute('y2', (string) round($y + $height, self::PRECISION)); - break; - - case GradientType::DIAGONAL(): - $this->xmlWriter->writeAttribute('x1', (string) round($x, self::PRECISION)); - $this->xmlWriter->writeAttribute('y1', (string) round($y, self::PRECISION)); - $this->xmlWriter->writeAttribute('x2', (string) round($x + $width, self::PRECISION)); - $this->xmlWriter->writeAttribute('y2', (string) round($y + $height, self::PRECISION)); - break; - - case GradientType::INVERSE_DIAGONAL(): - $this->xmlWriter->writeAttribute('x1', (string) round($x, self::PRECISION)); - $this->xmlWriter->writeAttribute('y1', (string) round($y + $height, self::PRECISION)); - $this->xmlWriter->writeAttribute('x2', (string) round($x + $width, self::PRECISION)); - $this->xmlWriter->writeAttribute('y2', (string) round($y, self::PRECISION)); - break; - - case GradientType::RADIAL(): - $this->xmlWriter->writeAttribute('cx', (string) round(($x + $width) / 2, self::PRECISION)); - $this->xmlWriter->writeAttribute('cy', (string) round(($y + $height) / 2, self::PRECISION)); - $this->xmlWriter->writeAttribute('r', (string) round(max($width, $height) / 2, self::PRECISION)); - break; - } - - $id = sprintf('g%d', ++$this->gradientCount); - $this->xmlWriter->writeAttribute('id', $id); - - $this->xmlWriter->startElement('stop'); - $this->xmlWriter->writeAttribute('offset', '0%'); - $this->xmlWriter->writeAttribute('stop-color', $this->getColorString($startColor)); - - if ($startColor instanceof Alpha) { - $this->xmlWriter->writeAttribute('stop-opacity', $startColor->getAlpha()); - } - - $this->xmlWriter->endElement(); - - $this->xmlWriter->startElement('stop'); - $this->xmlWriter->writeAttribute('offset', '100%'); - $this->xmlWriter->writeAttribute('stop-color', $this->getColorString($endColor)); - - if ($endColor instanceof Alpha) { - $this->xmlWriter->writeAttribute('stop-opacity', $endColor->getAlpha()); - } - - $this->xmlWriter->endElement(); - - $this->xmlWriter->endElement(); - $this->xmlWriter->endElement(); - - return $id; - } - - private function getColorString(ColorInterface $color) : string - { - $color = $color->toRgb(); - - return sprintf( - '#%02x%02x%02x', - $color->getRed(), - $color->getGreen(), - $color->getBlue() - ); - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/TransformationMatrix.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/TransformationMatrix.php deleted file mode 100644 index b41ee09..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Image/TransformationMatrix.php +++ /dev/null @@ -1,67 +0,0 @@ -values = [1, 0, 0, 1, 0, 0]; - } - - public function multiply(self $other) : self - { - $matrix = new self(); - $matrix->values[0] = $this->values[0] * $other->values[0] + $this->values[2] * $other->values[1]; - $matrix->values[1] = $this->values[1] * $other->values[0] + $this->values[3] * $other->values[1]; - $matrix->values[2] = $this->values[0] * $other->values[2] + $this->values[2] * $other->values[3]; - $matrix->values[3] = $this->values[1] * $other->values[2] + $this->values[3] * $other->values[3]; - $matrix->values[4] = $this->values[0] * $other->values[4] + $this->values[2] * $other->values[5] - + $this->values[4]; - $matrix->values[5] = $this->values[1] * $other->values[4] + $this->values[3] * $other->values[5] - + $this->values[5]; - - return $matrix; - } - - public static function scale(float $size) : self - { - $matrix = new self(); - $matrix->values = [$size, 0, 0, $size, 0, 0]; - return $matrix; - } - - public static function translate(float $x, float $y) : self - { - $matrix = new self(); - $matrix->values = [1, 0, 0, 1, $x, $y]; - return $matrix; - } - - public static function rotate(int $degrees) : self - { - $matrix = new self(); - $matrix->values = [cos($degrees), sin($degrees), -sin($degrees), cos($degrees), 0, 0]; - return $matrix; - } - - - /** - * Applies this matrix onto a point and returns the resulting viewport point. - * - * @return float[] - */ - public function apply(float $x, float $y) : array - { - return [ - $x * $this->values[0] + $y * $this->values[2] + $this->values[4], - $x * $this->values[2] + $x * $this->values[3] + $this->values[5], - ]; - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/ImageRenderer.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/ImageRenderer.php deleted file mode 100644 index ab16276..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/ImageRenderer.php +++ /dev/null @@ -1,152 +0,0 @@ -rendererStyle = $rendererStyle; - $this->imageBackEnd = $imageBackEnd; - } - - /** - * @throws InvalidArgumentException if matrix width doesn't match height - */ - public function render(QrCode $qrCode) : string - { - $size = $this->rendererStyle->getSize(); - $margin = $this->rendererStyle->getMargin(); - $matrix = $qrCode->getMatrix(); - $matrixSize = $matrix->getWidth(); - - if ($matrixSize !== $matrix->getHeight()) { - throw new InvalidArgumentException('Matrix must have the same width and height'); - } - - $totalSize = $matrixSize + ($margin * 2); - $moduleSize = $size / $totalSize; - $fill = $this->rendererStyle->getFill(); - - $this->imageBackEnd->new($size, $fill->getBackgroundColor()); - $this->imageBackEnd->scale((float) $moduleSize); - $this->imageBackEnd->translate((float) $margin, (float) $margin); - - $module = $this->rendererStyle->getModule(); - $moduleMatrix = clone $matrix; - MatrixUtil::removePositionDetectionPatterns($moduleMatrix); - $modulePath = $this->drawEyes($matrixSize, $module->createPath($moduleMatrix)); - - if ($fill->hasGradientFill()) { - $this->imageBackEnd->drawPathWithGradient( - $modulePath, - $fill->getForegroundGradient(), - 0, - 0, - $matrixSize, - $matrixSize - ); - } else { - $this->imageBackEnd->drawPathWithColor($modulePath, $fill->getForegroundColor()); - } - - return $this->imageBackEnd->done(); - } - - private function drawEyes(int $matrixSize, Path $modulePath) : Path - { - $fill = $this->rendererStyle->getFill(); - - $eye = $this->rendererStyle->getEye(); - $externalPath = $eye->getExternalPath(); - $internalPath = $eye->getInternalPath(); - - $modulePath = $this->drawEye( - $externalPath, - $internalPath, - $fill->getTopLeftEyeFill(), - 3.5, - 3.5, - 0, - $modulePath - ); - $modulePath = $this->drawEye( - $externalPath, - $internalPath, - $fill->getTopRightEyeFill(), - $matrixSize - 3.5, - 3.5, - 90, - $modulePath - ); - $modulePath = $this->drawEye( - $externalPath, - $internalPath, - $fill->getBottomLeftEyeFill(), - 3.5, - $matrixSize - 3.5, - -90, - $modulePath - ); - - return $modulePath; - } - - private function drawEye( - Path $externalPath, - Path $internalPath, - EyeFill $fill, - float $xTranslation, - float $yTranslation, - int $rotation, - Path $modulePath - ) : Path { - if ($fill->inheritsBothColors()) { - return $modulePath - ->append($externalPath->translate($xTranslation, $yTranslation)) - ->append($internalPath->translate($xTranslation, $yTranslation)); - } - - $this->imageBackEnd->push(); - $this->imageBackEnd->translate($xTranslation, $yTranslation); - - if (0 !== $rotation) { - $this->imageBackEnd->rotate($rotation); - } - - if ($fill->inheritsExternalColor()) { - $modulePath = $modulePath->append($externalPath->translate($xTranslation, $yTranslation)); - } else { - $this->imageBackEnd->drawPathWithColor($externalPath, $fill->getExternalColor()); - } - - if ($fill->inheritsInternalColor()) { - $modulePath = $modulePath->append($internalPath->translate($xTranslation, $yTranslation)); - } else { - $this->imageBackEnd->drawPathWithColor($internalPath, $fill->getInternalColor()); - } - - $this->imageBackEnd->pop(); - - return $modulePath; - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Module/DotsModule.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Module/DotsModule.php deleted file mode 100644 index f536e5a..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Module/DotsModule.php +++ /dev/null @@ -1,63 +0,0 @@ - 1) { - throw new InvalidArgumentException('Size must between 0 (exclusive) and 1 (inclusive)'); - } - - $this->size = $size; - } - - public function createPath(ByteMatrix $matrix) : Path - { - $width = $matrix->getWidth(); - $height = $matrix->getHeight(); - $path = new Path(); - $halfSize = $this->size / 2; - $margin = (1 - $this->size) / 2; - - for ($y = 0; $y < $height; ++$y) { - for ($x = 0; $x < $width; ++$x) { - if (! $matrix->get($x, $y)) { - continue; - } - - $pathX = $x + $margin; - $pathY = $y + $margin; - - $path = $path - ->move($pathX + $this->size, $pathY + $halfSize) - ->ellipticArc($halfSize, $halfSize, 0, false, true, $pathX + $halfSize, $pathY + $this->size) - ->ellipticArc($halfSize, $halfSize, 0, false, true, $pathX, $pathY + $halfSize) - ->ellipticArc($halfSize, $halfSize, 0, false, true, $pathX + $halfSize, $pathY) - ->ellipticArc($halfSize, $halfSize, 0, false, true, $pathX + $this->size, $pathY + $halfSize) - ->close() - ; - } - } - - return $path; - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Module/EdgeIterator/Edge.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Module/EdgeIterator/Edge.php deleted file mode 100644 index 90482f2..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Module/EdgeIterator/Edge.php +++ /dev/null @@ -1,100 +0,0 @@ - - */ - private $points = []; - - /** - * @var array|null - */ - private $simplifiedPoints; - - /** - * @var int - */ - private $minX = PHP_INT_MAX; - - /** - * @var int - */ - private $minY = PHP_INT_MAX; - - /** - * @var int - */ - private $maxX = -1; - - /** - * @var int - */ - private $maxY = -1; - - public function __construct(bool $positive) - { - $this->positive = $positive; - } - - public function addPoint(int $x, int $y) : void - { - $this->points[] = [$x, $y]; - $this->minX = min($this->minX, $x); - $this->minY = min($this->minY, $y); - $this->maxX = max($this->maxX, $x); - $this->maxY = max($this->maxY, $y); - } - - public function isPositive() : bool - { - return $this->positive; - } - - /** - * @return array - */ - public function getPoints() : array - { - return $this->points; - } - - public function getMaxX() : int - { - return $this->maxX; - } - - public function getSimplifiedPoints() : array - { - if (null !== $this->simplifiedPoints) { - return $this->simplifiedPoints; - } - - $points = []; - $length = count($this->points); - - for ($i = 0; $i < $length; ++$i) { - $previousPoint = $this->points[(0 === $i ? $length : $i) - 1]; - $nextPoint = $this->points[($length - 1 === $i ? -1 : $i) + 1]; - $currentPoint = $this->points[$i]; - - if (($previousPoint[0] === $currentPoint[0] && $currentPoint[0] === $nextPoint[0]) - || ($previousPoint[1] === $currentPoint[1] && $currentPoint[1] === $nextPoint[1]) - ) { - continue; - } - - $points[] = $currentPoint; - } - - return $this->simplifiedPoints = $points; - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Module/EdgeIterator/EdgeIterator.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Module/EdgeIterator/EdgeIterator.php deleted file mode 100644 index af52d52..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Module/EdgeIterator/EdgeIterator.php +++ /dev/null @@ -1,169 +0,0 @@ -bytes = iterator_to_array($matrix->getBytes()); - $this->size = count($this->bytes); - $this->width = $matrix->getWidth(); - $this->height = $matrix->getHeight(); - } - - /** - * @return Edge[] - */ - public function getIterator() : Traversable - { - $originalBytes = $this->bytes; - $point = $this->findNext(0, 0); - - while (null !== $point) { - $edge = $this->findEdge($point[0], $point[1]); - $this->xorEdge($edge); - - yield $edge; - - $point = $this->findNext($point[0], $point[1]); - } - - $this->bytes = $originalBytes; - } - - /** - * @return int[]|null - */ - private function findNext(int $x, int $y) : ?array - { - $i = $this->width * $y + $x; - - while ($i < $this->size && 1 !== $this->bytes[$i]) { - ++$i; - } - - if ($i < $this->size) { - return $this->pointOf($i); - } - - return null; - } - - private function findEdge(int $x, int $y) : Edge - { - $edge = new Edge($this->isSet($x, $y)); - $startX = $x; - $startY = $y; - $dirX = 0; - $dirY = 1; - - while (true) { - $edge->addPoint($x, $y); - $x += $dirX; - $y += $dirY; - - if ($x === $startX && $y === $startY) { - break; - } - - $left = $this->isSet($x + ($dirX + $dirY - 1 ) / 2, $y + ($dirY - $dirX - 1) / 2); - $right = $this->isSet($x + ($dirX - $dirY - 1) / 2, $y + ($dirY + $dirX - 1) / 2); - - if ($right && ! $left) { - $tmp = $dirX; - $dirX = -$dirY; - $dirY = $tmp; - } elseif ($right) { - $tmp = $dirX; - $dirX = -$dirY; - $dirY = $tmp; - } elseif (! $left) { - $tmp = $dirX; - $dirX = $dirY; - $dirY = -$tmp; - } - } - - return $edge; - } - - private function xorEdge(Edge $path) : void - { - $points = $path->getPoints(); - $y1 = $points[0][1]; - $length = count($points); - $maxX = $path->getMaxX(); - - for ($i = 1; $i < $length; ++$i) { - $y = $points[$i][1]; - - if ($y === $y1) { - continue; - } - - $x = $points[$i][0]; - $minY = min($y1, $y); - - for ($j = $x; $j < $maxX; ++$j) { - $this->flip($j, $minY); - } - - $y1 = $y; - } - } - - private function isSet(int $x, int $y) : bool - { - return ( - $x >= 0 - && $x < $this->width - && $y >= 0 - && $y < $this->height - ) && 1 === $this->bytes[$this->width * $y + $x]; - } - - /** - * @return int[] - */ - private function pointOf(int $i) : array - { - $y = intdiv($i, $this->width); - return [$i - $y * $this->width, $y]; - } - - private function flip(int $x, int $y) : void - { - $this->bytes[$this->width * $y + $x] = ( - $this->isSet($x, $y) ? 0 : 1 - ); - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Module/ModuleInterface.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Module/ModuleInterface.php deleted file mode 100644 index 0ccb0e0..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Module/ModuleInterface.php +++ /dev/null @@ -1,18 +0,0 @@ - 1) { - throw new InvalidArgumentException('Intensity must between 0 (exclusive) and 1 (inclusive)'); - } - - $this->intensity = $intensity / 2; - } - - public function createPath(ByteMatrix $matrix) : Path - { - $path = new Path(); - - foreach (new EdgeIterator($matrix) as $edge) { - $points = $edge->getSimplifiedPoints(); - $length = count($points); - - $currentPoint = $points[0]; - $nextPoint = $points[1]; - $horizontal = ($currentPoint[1] === $nextPoint[1]); - - if ($horizontal) { - $right = $nextPoint[0] > $currentPoint[0]; - $path = $path->move( - $currentPoint[0] + ($right ? $this->intensity : -$this->intensity), - $currentPoint[1] - ); - } else { - $up = $nextPoint[0] < $currentPoint[0]; - $path = $path->move( - $currentPoint[0], - $currentPoint[1] + ($up ? -$this->intensity : $this->intensity) - ); - } - - for ($i = 1; $i <= $length; ++$i) { - if ($i === $length) { - $previousPoint = $points[$length - 1]; - $currentPoint = $points[0]; - $nextPoint = $points[1]; - } else { - $previousPoint = $points[(0 === $i ? $length : $i) - 1]; - $currentPoint = $points[$i]; - $nextPoint = $points[($length - 1 === $i ? -1 : $i) + 1]; - } - - $horizontal = ($previousPoint[1] === $currentPoint[1]); - - if ($horizontal) { - $right = $previousPoint[0] < $currentPoint[0]; - $up = $nextPoint[1] < $currentPoint[1]; - $sweep = ($up xor $right); - - if ($this->intensity < 0.5 - || ($right && $previousPoint[0] !== $currentPoint[0] - 1) - || (! $right && $previousPoint[0] - 1 !== $currentPoint[0]) - ) { - $path = $path->line( - $currentPoint[0] + ($right ? -$this->intensity : $this->intensity), - $currentPoint[1] - ); - } - - $path = $path->ellipticArc( - $this->intensity, - $this->intensity, - 0, - false, - $sweep, - $currentPoint[0], - $currentPoint[1] + ($up ? -$this->intensity : $this->intensity) - ); - } else { - $up = $previousPoint[1] > $currentPoint[1]; - $right = $nextPoint[0] > $currentPoint[0]; - $sweep = ! ($up xor $right); - - if ($this->intensity < 0.5 - || ($up && $previousPoint[1] !== $currentPoint[1] + 1) - || (! $up && $previousPoint[0] + 1 !== $currentPoint[0]) - ) { - $path = $path->line( - $currentPoint[0], - $currentPoint[1] + ($up ? $this->intensity : -$this->intensity) - ); - } - - $path = $path->ellipticArc( - $this->intensity, - $this->intensity, - 0, - false, - $sweep, - $currentPoint[0] + ($right ? $this->intensity : -$this->intensity), - $currentPoint[1] - ); - } - } - - $path = $path->close(); - } - - return $path; - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Module/SquareModule.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Module/SquareModule.php deleted file mode 100644 index 9ab4607..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Module/SquareModule.php +++ /dev/null @@ -1,47 +0,0 @@ -getSimplifiedPoints(); - $length = count($points); - $path = $path->move($points[0][0], $points[0][1]); - - for ($i = 1; $i < $length; ++$i) { - $path = $path->line($points[$i][0], $points[$i][1]); - } - - $path = $path->close(); - } - - return $path; - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Path/Close.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Path/Close.php deleted file mode 100644 index b07feb0..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Path/Close.php +++ /dev/null @@ -1,29 +0,0 @@ -x1 = $x1; - $this->y1 = $y1; - $this->x2 = $x2; - $this->y2 = $y2; - $this->x3 = $x3; - $this->y3 = $y3; - } - - public function getX1() : float - { - return $this->x1; - } - - public function getY1() : float - { - return $this->y1; - } - - public function getX2() : float - { - return $this->x2; - } - - public function getY2() : float - { - return $this->y2; - } - - public function getX3() : float - { - return $this->x3; - } - - public function getY3() : float - { - return $this->y3; - } - - /** - * @return self - */ - public function translate(float $x, float $y) : OperationInterface - { - return new self( - $this->x1 + $x, - $this->y1 + $y, - $this->x2 + $x, - $this->y2 + $y, - $this->x3 + $x, - $this->y3 + $y - ); - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Path/EllipticArc.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Path/EllipticArc.php deleted file mode 100644 index eff7deb..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Path/EllipticArc.php +++ /dev/null @@ -1,278 +0,0 @@ -xRadius = abs($xRadius); - $this->yRadius = abs($yRadius); - $this->xAxisAngle = $xAxisAngle % 360; - $this->largeArc = $largeArc; - $this->sweep = $sweep; - $this->x = $x; - $this->y = $y; - } - - public function getXRadius() : float - { - return $this->xRadius; - } - - public function getYRadius() : float - { - return $this->yRadius; - } - - public function getXAxisAngle() : float - { - return $this->xAxisAngle; - } - - public function isLargeArc() : bool - { - return $this->largeArc; - } - - public function isSweep() : bool - { - return $this->sweep; - } - - public function getX() : float - { - return $this->x; - } - - public function getY() : float - { - return $this->y; - } - - /** - * @return self - */ - public function translate(float $x, float $y) : OperationInterface - { - return new self( - $this->xRadius, - $this->yRadius, - $this->xAxisAngle, - $this->largeArc, - $this->sweep, - $this->x + $x, - $this->y + $y - ); - } - - /** - * Converts the elliptic arc to multiple curves. - * - * Since not all image back ends support elliptic arcs, this method allows to convert the arc into multiple curves - * resembling the same result. - * - * @see https://mortoray.com/2017/02/16/rendering-an-svg-elliptical-arc-as-bezier-curves/ - * @return array - */ - public function toCurves(float $fromX, float $fromY) : array - { - if (sqrt(($fromX - $this->x) ** 2 + ($fromY - $this->y) ** 2) < self::ZERO_TOLERANCE) { - return []; - } - - if ($this->xRadius < self::ZERO_TOLERANCE || $this->yRadius < self::ZERO_TOLERANCE) { - return [new Line($this->x, $this->y)]; - } - - return $this->createCurves($fromX, $fromY); - } - - /** - * @return Curve[] - */ - private function createCurves(float $fromX, $fromY) : array - { - $xAngle = deg2rad($this->xAxisAngle); - list($centerX, $centerY, $radiusX, $radiusY, $startAngle, $deltaAngle) = - $this->calculateCenterPointParameters($fromX, $fromY, $xAngle); - - $s = $startAngle; - $e = $s + $deltaAngle; - $sign = ($e < $s) ? -1 : 1; - $remain = abs($e - $s); - $p1 = self::point($centerX, $centerY, $radiusX, $radiusY, $xAngle, $s); - $curves = []; - - while ($remain > self::ZERO_TOLERANCE) { - $step = min($remain, pi() / 2); - $signStep = $step * $sign; - $p2 = self::point($centerX, $centerY, $radiusX, $radiusY, $xAngle, $s + $signStep); - - $alphaT = tan($signStep / 2); - $alpha = sin($signStep) * (sqrt(4 + 3 * $alphaT ** 2) - 1) / 3; - $d1 = self::derivative($radiusX, $radiusY, $xAngle, $s); - $d2 = self::derivative($radiusX, $radiusY, $xAngle, $s + $signStep); - - $curves[] = new Curve( - $p1[0] + $alpha * $d1[0], - $p1[1] + $alpha * $d1[1], - $p2[0] - $alpha * $d2[0], - $p2[1] - $alpha * $d2[1], - $p2[0], - $p2[1] - ); - - $s += $signStep; - $remain -= $step; - $p1 = $p2; - } - - return $curves; - } - - /** - * @return float[] - */ - private function calculateCenterPointParameters(float $fromX, float $fromY, float $xAngle) - { - $rX = $this->xRadius; - $rY = $this->yRadius; - - // F.6.5.1 - $dx2 = ($fromX - $this->x) / 2; - $dy2 = ($fromY - $this->y) / 2; - $x1p = cos($xAngle) * $dx2 + sin($xAngle) * $dy2; - $y1p = -sin($xAngle) * $dx2 + cos($xAngle) * $dy2; - - // F.6.5.2 - $rxs = $rX ** 2; - $rys = $rY ** 2; - $x1ps = $x1p ** 2; - $y1ps = $y1p ** 2; - $cr = $x1ps / $rxs + $y1ps / $rys; - - if ($cr > 1) { - $s = sqrt($cr); - $rX *= $s; - $rY *= $s; - $rxs = $rX ** 2; - $rys = $rY ** 2; - } - - $dq = ($rxs * $y1ps + $rys * $x1ps); - $pq = ($rxs * $rys - $dq) / $dq; - $q = sqrt(max(0, $pq)); - - if ($this->largeArc === $this->sweep) { - $q = -$q; - } - - $cxp = $q * $rX * $y1p / $rY; - $cyp = -$q * $rY * $x1p / $rX; - - // F.6.5.3 - $cx = cos($xAngle) * $cxp - sin($xAngle) * $cyp + ($fromX + $this->x) / 2; - $cy = sin($xAngle) * $cxp + cos($xAngle) * $cyp + ($fromY + $this->y) / 2; - - // F.6.5.5 - $theta = self::angle(1, 0, ($x1p - $cxp) / $rX, ($y1p - $cyp) / $rY); - - // F.6.5.6 - $delta = self::angle(($x1p - $cxp) / $rX, ($y1p - $cyp) / $rY, (-$x1p - $cxp) / $rX, (-$y1p - $cyp) / $rY); - $delta = fmod($delta, pi() * 2); - - if (! $this->sweep) { - $delta -= 2 * pi(); - } - - return [$cx, $cy, $rX, $rY, $theta, $delta]; - } - - private static function angle(float $ux, float $uy, float $vx, float $vy) : float - { - // F.6.5.4 - $dot = $ux * $vx + $uy * $vy; - $length = sqrt($ux ** 2 + $uy ** 2) * sqrt($vx ** 2 + $vy ** 2); - $angle = acos(min(1, max(-1, $dot / $length))); - - if (($ux * $vy - $uy * $vx) < 0) { - return -$angle; - } - - return $angle; - } - - /** - * @return float[] - */ - private static function point( - float $centerX, - float $centerY, - float $radiusX, - float $radiusY, - float $xAngle, - float $angle - ) : array { - return [ - $centerX + $radiusX * cos($xAngle) * cos($angle) - $radiusY * sin($xAngle) * sin($angle), - $centerY + $radiusX * sin($xAngle) * cos($angle) + $radiusY * cos($xAngle) * sin($angle), - ]; - } - - /** - * @return float[] - */ - private static function derivative(float $radiusX, float $radiusY, float $xAngle, float $angle) : array - { - return [ - -$radiusX * cos($xAngle) * sin($angle) - $radiusY * sin($xAngle) * cos($angle), - -$radiusX * sin($xAngle) * sin($angle) + $radiusY * cos($xAngle) * cos($angle), - ]; - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Path/Line.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Path/Line.php deleted file mode 100644 index 3149a39..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Path/Line.php +++ /dev/null @@ -1,41 +0,0 @@ -x = $x; - $this->y = $y; - } - - public function getX() : float - { - return $this->x; - } - - public function getY() : float - { - return $this->y; - } - - /** - * @return self - */ - public function translate(float $x, float $y) : OperationInterface - { - return new self($this->x + $x, $this->y + $y); - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Path/Move.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Path/Move.php deleted file mode 100644 index 007b77c..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Path/Move.php +++ /dev/null @@ -1,41 +0,0 @@ -x = $x; - $this->y = $y; - } - - public function getX() : float - { - return $this->x; - } - - public function getY() : float - { - return $this->y; - } - - /** - * @return self - */ - public function translate(float $x, float $y) : OperationInterface - { - return new self($this->x + $x, $this->x + $y); - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Path/OperationInterface.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Path/OperationInterface.php deleted file mode 100644 index a5fa0ed..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/Path/OperationInterface.php +++ /dev/null @@ -1,12 +0,0 @@ -operations[] = new Move($x, $y); - return $path; - } - - /** - * Draws a line from the current position to another position. - */ - public function line(float $x, float $y) : self - { - $path = clone $this; - $path->operations[] = new Line($x, $y); - return $path; - } - - /** - * Draws an elliptic arc from the current position to another position. - */ - public function ellipticArc( - float $xRadius, - float $yRadius, - float $xAxisRotation, - bool $largeArc, - bool $sweep, - float $x, - float $y - ) : self { - $path = clone $this; - $path->operations[] = new EllipticArc($xRadius, $yRadius, $xAxisRotation, $largeArc, $sweep, $x, $y); - return $path; - } - - /** - * Draws a curve from the current position to another position. - */ - public function curve(float $x1, float $y1, float $x2, float $y2, float $x3, float $y3) : self - { - $path = clone $this; - $path->operations[] = new Curve($x1, $y1, $x2, $y2, $x3, $y3); - return $path; - } - - /** - * Closes a sub-path. - */ - public function close() : self - { - $path = clone $this; - $path->operations[] = Close::instance(); - return $path; - } - - /** - * Appends another path to this one. - */ - public function append(self $other) : self - { - $path = clone $this; - $path->operations = array_merge($this->operations, $other->operations); - return $path; - } - - public function translate(float $x, float $y) : self - { - $path = new self(); - - foreach ($this->operations as $operation) { - $path->operations[] = $operation->translate($x, $y); - } - - return $path; - } - - /** - * @return OperationInterface[]|Traversable - */ - public function getIterator() : Traversable - { - foreach ($this->operations as $operation) { - yield $operation; - } - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/PlainTextRenderer.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/PlainTextRenderer.php deleted file mode 100644 index 8aa7652..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/PlainTextRenderer.php +++ /dev/null @@ -1,86 +0,0 @@ -margin = $margin; - } - - /** - * @throws InvalidArgumentException if matrix width doesn't match height - */ - public function render(QrCode $qrCode) : string - { - $matrix = $qrCode->getMatrix(); - $matrixSize = $matrix->getWidth(); - - if ($matrixSize !== $matrix->getHeight()) { - throw new InvalidArgumentException('Matrix must have the same width and height'); - } - - $rows = $matrix->getArray()->toArray(); - - if (0 !== $matrixSize % 2) { - $rows[] = array_fill(0, $matrixSize, 0); - } - - $horizontalMargin = str_repeat(self::EMPTY_BLOCK, $this->margin); - $result = str_repeat("\n", (int) ceil($this->margin / 2)); - - for ($i = 0; $i < $matrixSize; $i += 2) { - $result .= $horizontalMargin; - - $upperRow = $rows[$i]; - $lowerRow = $rows[$i + 1]; - - for ($j = 0; $j < $matrixSize; ++$j) { - $upperBit = $upperRow[$j]; - $lowerBit = $lowerRow[$j]; - - if ($upperBit) { - $result .= $lowerBit ? self::FULL_BLOCK : self::UPPER_HALF_BLOCK; - } else { - $result .= $lowerBit ? self::LOWER_HALF_BLOCK : self::EMPTY_BLOCK; - } - } - - $result .= $horizontalMargin . "\n"; - } - - $result .= str_repeat("\n", (int) ceil($this->margin / 2)); - - return $result; - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/RendererInterface.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/RendererInterface.php deleted file mode 100644 index b0aae39..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/RendererInterface.php +++ /dev/null @@ -1,11 +0,0 @@ -externalColor = $externalColor; - $this->internalColor = $internalColor; - } - - public static function uniform(ColorInterface $color) : self - { - return new self($color, $color); - } - - public static function inherit() : self - { - return self::$inherit ?: self::$inherit = new self(null, null); - } - - public function inheritsBothColors() : bool - { - return null === $this->externalColor && null === $this->internalColor; - } - - public function inheritsExternalColor() : bool - { - return null === $this->externalColor; - } - - public function inheritsInternalColor() : bool - { - return null === $this->internalColor; - } - - public function getExternalColor() : ColorInterface - { - if (null === $this->externalColor) { - throw new RuntimeException('External eye color inherits foreground color'); - } - - return $this->externalColor; - } - - public function getInternalColor() : ColorInterface - { - if (null === $this->internalColor) { - throw new RuntimeException('Internal eye color inherits foreground color'); - } - - return $this->internalColor; - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/Fill.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/Fill.php deleted file mode 100644 index d54268e..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/Fill.php +++ /dev/null @@ -1,168 +0,0 @@ -backgroundColor = $backgroundColor; - $this->foregroundColor = $foregroundColor; - $this->foregroundGradient = $foregroundGradient; - $this->topLeftEyeFill = $topLeftEyeFill; - $this->topRightEyeFill = $topRightEyeFill; - $this->bottomLeftEyeFill = $bottomLeftEyeFill; - } - - public static function default() : self - { - return self::$default ?: self::$default = self::uniformColor(new Gray(100), new Gray(0)); - } - - public static function withForegroundColor( - ColorInterface $backgroundColor, - ColorInterface $foregroundColor, - EyeFill $topLeftEyeFill, - EyeFill $topRightEyeFill, - EyeFill $bottomLeftEyeFill - ) : self { - return new self( - $backgroundColor, - $foregroundColor, - null, - $topLeftEyeFill, - $topRightEyeFill, - $bottomLeftEyeFill - ); - } - - public static function withForegroundGradient( - ColorInterface $backgroundColor, - Gradient $foregroundGradient, - EyeFill $topLeftEyeFill, - EyeFill $topRightEyeFill, - EyeFill $bottomLeftEyeFill - ) : self { - return new self( - $backgroundColor, - null, - $foregroundGradient, - $topLeftEyeFill, - $topRightEyeFill, - $bottomLeftEyeFill - ); - } - - public static function uniformColor(ColorInterface $backgroundColor, ColorInterface $foregroundColor) : self - { - return new self( - $backgroundColor, - $foregroundColor, - null, - EyeFill::inherit(), - EyeFill::inherit(), - EyeFill::inherit() - ); - } - - public static function uniformGradient(ColorInterface $backgroundColor, Gradient $foregroundGradient) : self - { - return new self( - $backgroundColor, - null, - $foregroundGradient, - EyeFill::inherit(), - EyeFill::inherit(), - EyeFill::inherit() - ); - } - - public function hasGradientFill() : bool - { - return null !== $this->foregroundGradient; - } - - public function getBackgroundColor() : ColorInterface - { - return $this->backgroundColor; - } - - public function getForegroundColor() : ColorInterface - { - if (null === $this->foregroundColor) { - throw new RuntimeException('Fill uses a gradient, thus no foreground color is available'); - } - - return $this->foregroundColor; - } - - public function getForegroundGradient() : Gradient - { - if (null === $this->foregroundGradient) { - throw new RuntimeException('Fill uses a single color, thus no foreground gradient is available'); - } - - return $this->foregroundGradient; - } - - public function getTopLeftEyeFill() : EyeFill - { - return $this->topLeftEyeFill; - } - - public function getTopRightEyeFill() : EyeFill - { - return $this->topRightEyeFill; - } - - public function getBottomLeftEyeFill() : EyeFill - { - return $this->bottomLeftEyeFill; - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/Gradient.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/Gradient.php deleted file mode 100644 index 3813dfd..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/Gradient.php +++ /dev/null @@ -1,46 +0,0 @@ -startColor = $startColor; - $this->endColor = $endColor; - $this->type = $type; - } - - public function getStartColor() : ColorInterface - { - return $this->startColor; - } - - public function getEndColor() : ColorInterface - { - return $this->endColor; - } - - public function getType() : GradientType - { - return $this->type; - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/GradientType.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/GradientType.php deleted file mode 100644 index c1ca754..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Renderer/RendererStyle/GradientType.php +++ /dev/null @@ -1,22 +0,0 @@ -margin = $margin; - $this->size = $size; - $this->module = $module ?: SquareModule::instance(); - $this->eye = $eye ?: new ModuleEye($this->module); - $this->fill = $fill ?: Fill::default(); - } - - public function withSize(int $size) : self - { - $style = clone $this; - $style->size = $size; - return $style; - } - - public function withMargin(int $margin) : self - { - $style = clone $this; - $style->margin = $margin; - return $style; - } - - public function getSize() : int - { - return $this->size; - } - - public function getMargin() : int - { - return $this->margin; - } - - public function getModule() : ModuleInterface - { - return $this->module; - } - - public function getEye() : EyeInterface - { - return $this->eye; - } - - public function getFill() : Fill - { - return $this->fill; - } -} diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Writer.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Writer.php deleted file mode 100644 index 6688901..0000000 --- a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Writer.php +++ /dev/null @@ -1,68 +0,0 @@ -renderer = $renderer; - } - - /** - * Writes QR code and returns it as string. - * - * Content is a string which *should* be encoded in UTF-8, in case there are - * non ASCII-characters present. - * - * @throws InvalidArgumentException if the content is empty - */ - public function writeString( - string $content, - string $encoding = Encoder::DEFAULT_BYTE_MODE_ECODING, - ?ErrorCorrectionLevel $ecLevel = null - ) : string { - if (strlen($content) === 0) { - throw new InvalidArgumentException('Found empty contents'); - } - - if (null === $ecLevel) { - $ecLevel = ErrorCorrectionLevel::L(); - } - - return $this->renderer->render(Encoder::encode($content, $ecLevel, $encoding)); - } - - /** - * Writes QR code to a file. - * - * @see Writer::writeString() - */ - public function writeFile( - string $content, - string $filename, - string $encoding = Encoder::DEFAULT_BYTE_MODE_ECODING, - ?ErrorCorrectionLevel $ecLevel = null - ) : void { - file_put_contents($filename, $this->writeString($content, $encoding, $ecLevel)); - } -} diff --git a/srcs/phpmyadmin/vendor/bin/highlight-query b/srcs/phpmyadmin/vendor/bin/highlight-query deleted file mode 120000 index 7c1bba7..0000000 --- a/srcs/phpmyadmin/vendor/bin/highlight-query +++ /dev/null @@ -1 +0,0 @@ -../phpmyadmin/sql-parser/bin/highlight-query \ No newline at end of file diff --git a/srcs/phpmyadmin/vendor/bin/lint-query b/srcs/phpmyadmin/vendor/bin/lint-query deleted file mode 120000 index f337e79..0000000 --- a/srcs/phpmyadmin/vendor/bin/lint-query +++ /dev/null @@ -1 +0,0 @@ -../phpmyadmin/sql-parser/bin/lint-query \ No newline at end of file diff --git a/srcs/phpmyadmin/vendor/bin/tokenize-query b/srcs/phpmyadmin/vendor/bin/tokenize-query deleted file mode 120000 index 56dc163..0000000 --- a/srcs/phpmyadmin/vendor/bin/tokenize-query +++ /dev/null @@ -1 +0,0 @@ -../phpmyadmin/sql-parser/bin/tokenize-query \ No newline at end of file diff --git a/srcs/phpmyadmin/vendor/composer/ClassLoader.php b/srcs/phpmyadmin/vendor/composer/ClassLoader.php deleted file mode 100644 index fce8549..0000000 --- a/srcs/phpmyadmin/vendor/composer/ClassLoader.php +++ /dev/null @@ -1,445 +0,0 @@ - - * Jordi Boggiano - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Composer\Autoload; - -/** - * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. - * - * $loader = new \Composer\Autoload\ClassLoader(); - * - * // register classes with namespaces - * $loader->add('Symfony\Component', __DIR__.'/component'); - * $loader->add('Symfony', __DIR__.'/framework'); - * - * // activate the autoloader - * $loader->register(); - * - * // to enable searching the include path (eg. for PEAR packages) - * $loader->setUseIncludePath(true); - * - * In this example, if you try to use a class in the Symfony\Component - * namespace or one of its children (Symfony\Component\Console for instance), - * the autoloader will first look for the class under the component/ - * directory, and it will then fallback to the framework/ directory if not - * found before giving up. - * - * This class is loosely based on the Symfony UniversalClassLoader. - * - * @author Fabien Potencier - * @author Jordi Boggiano - * @see http://www.php-fig.org/psr/psr-0/ - * @see http://www.php-fig.org/psr/psr-4/ - */ -class ClassLoader -{ - // PSR-4 - private $prefixLengthsPsr4 = array(); - private $prefixDirsPsr4 = array(); - private $fallbackDirsPsr4 = array(); - - // PSR-0 - private $prefixesPsr0 = array(); - private $fallbackDirsPsr0 = array(); - - private $useIncludePath = false; - private $classMap = array(); - private $classMapAuthoritative = false; - private $missingClasses = array(); - private $apcuPrefix; - - public function getPrefixes() - { - if (!empty($this->prefixesPsr0)) { - return call_user_func_array('array_merge', $this->prefixesPsr0); - } - - return array(); - } - - public function getPrefixesPsr4() - { - return $this->prefixDirsPsr4; - } - - public function getFallbackDirs() - { - return $this->fallbackDirsPsr0; - } - - public function getFallbackDirsPsr4() - { - return $this->fallbackDirsPsr4; - } - - public function getClassMap() - { - return $this->classMap; - } - - /** - * @param array $classMap Class to filename map - */ - public function addClassMap(array $classMap) - { - if ($this->classMap) { - $this->classMap = array_merge($this->classMap, $classMap); - } else { - $this->classMap = $classMap; - } - } - - /** - * Registers a set of PSR-0 directories for a given prefix, either - * appending or prepending to the ones previously set for this prefix. - * - * @param string $prefix The prefix - * @param array|string $paths The PSR-0 root directories - * @param bool $prepend Whether to prepend the directories - */ - public function add($prefix, $paths, $prepend = false) - { - if (!$prefix) { - if ($prepend) { - $this->fallbackDirsPsr0 = array_merge( - (array) $paths, - $this->fallbackDirsPsr0 - ); - } else { - $this->fallbackDirsPsr0 = array_merge( - $this->fallbackDirsPsr0, - (array) $paths - ); - } - - return; - } - - $first = $prefix[0]; - if (!isset($this->prefixesPsr0[$first][$prefix])) { - $this->prefixesPsr0[$first][$prefix] = (array) $paths; - - return; - } - if ($prepend) { - $this->prefixesPsr0[$first][$prefix] = array_merge( - (array) $paths, - $this->prefixesPsr0[$first][$prefix] - ); - } else { - $this->prefixesPsr0[$first][$prefix] = array_merge( - $this->prefixesPsr0[$first][$prefix], - (array) $paths - ); - } - } - - /** - * Registers a set of PSR-4 directories for a given namespace, either - * appending or prepending to the ones previously set for this namespace. - * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param array|string $paths The PSR-4 base directories - * @param bool $prepend Whether to prepend the directories - * - * @throws \InvalidArgumentException - */ - public function addPsr4($prefix, $paths, $prepend = false) - { - if (!$prefix) { - // Register directories for the root namespace. - if ($prepend) { - $this->fallbackDirsPsr4 = array_merge( - (array) $paths, - $this->fallbackDirsPsr4 - ); - } else { - $this->fallbackDirsPsr4 = array_merge( - $this->fallbackDirsPsr4, - (array) $paths - ); - } - } elseif (!isset($this->prefixDirsPsr4[$prefix])) { - // Register directories for a new namespace. - $length = strlen($prefix); - if ('\\' !== $prefix[$length - 1]) { - throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); - } - $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - $this->prefixDirsPsr4[$prefix] = (array) $paths; - } elseif ($prepend) { - // Prepend directories for an already registered namespace. - $this->prefixDirsPsr4[$prefix] = array_merge( - (array) $paths, - $this->prefixDirsPsr4[$prefix] - ); - } else { - // Append directories for an already registered namespace. - $this->prefixDirsPsr4[$prefix] = array_merge( - $this->prefixDirsPsr4[$prefix], - (array) $paths - ); - } - } - - /** - * Registers a set of PSR-0 directories for a given prefix, - * replacing any others previously set for this prefix. - * - * @param string $prefix The prefix - * @param array|string $paths The PSR-0 base directories - */ - public function set($prefix, $paths) - { - if (!$prefix) { - $this->fallbackDirsPsr0 = (array) $paths; - } else { - $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; - } - } - - /** - * Registers a set of PSR-4 directories for a given namespace, - * replacing any others previously set for this namespace. - * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param array|string $paths The PSR-4 base directories - * - * @throws \InvalidArgumentException - */ - public function setPsr4($prefix, $paths) - { - if (!$prefix) { - $this->fallbackDirsPsr4 = (array) $paths; - } else { - $length = strlen($prefix); - if ('\\' !== $prefix[$length - 1]) { - throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); - } - $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - $this->prefixDirsPsr4[$prefix] = (array) $paths; - } - } - - /** - * Turns on searching the include path for class files. - * - * @param bool $useIncludePath - */ - public function setUseIncludePath($useIncludePath) - { - $this->useIncludePath = $useIncludePath; - } - - /** - * Can be used to check if the autoloader uses the include path to check - * for classes. - * - * @return bool - */ - public function getUseIncludePath() - { - return $this->useIncludePath; - } - - /** - * Turns off searching the prefix and fallback directories for classes - * that have not been registered with the class map. - * - * @param bool $classMapAuthoritative - */ - public function setClassMapAuthoritative($classMapAuthoritative) - { - $this->classMapAuthoritative = $classMapAuthoritative; - } - - /** - * Should class lookup fail if not found in the current class map? - * - * @return bool - */ - public function isClassMapAuthoritative() - { - return $this->classMapAuthoritative; - } - - /** - * APCu prefix to use to cache found/not-found classes, if the extension is enabled. - * - * @param string|null $apcuPrefix - */ - public function setApcuPrefix($apcuPrefix) - { - $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; - } - - /** - * The APCu prefix in use, or null if APCu caching is not enabled. - * - * @return string|null - */ - public function getApcuPrefix() - { - return $this->apcuPrefix; - } - - /** - * Registers this instance as an autoloader. - * - * @param bool $prepend Whether to prepend the autoloader or not - */ - public function register($prepend = false) - { - spl_autoload_register(array($this, 'loadClass'), true, $prepend); - } - - /** - * Unregisters this instance as an autoloader. - */ - public function unregister() - { - spl_autoload_unregister(array($this, 'loadClass')); - } - - /** - * Loads the given class or interface. - * - * @param string $class The name of the class - * @return bool|null True if loaded, null otherwise - */ - public function loadClass($class) - { - if ($file = $this->findFile($class)) { - includeFile($file); - - return true; - } - } - - /** - * Finds the path to the file where the class is defined. - * - * @param string $class The name of the class - * - * @return string|false The path if found, false otherwise - */ - public function findFile($class) - { - // class map lookup - if (isset($this->classMap[$class])) { - return $this->classMap[$class]; - } - if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { - return false; - } - if (null !== $this->apcuPrefix) { - $file = apcu_fetch($this->apcuPrefix.$class, $hit); - if ($hit) { - return $file; - } - } - - $file = $this->findFileWithExtension($class, '.php'); - - // Search for Hack files if we are running on HHVM - if (false === $file && defined('HHVM_VERSION')) { - $file = $this->findFileWithExtension($class, '.hh'); - } - - if (null !== $this->apcuPrefix) { - apcu_add($this->apcuPrefix.$class, $file); - } - - if (false === $file) { - // Remember that this class does not exist. - $this->missingClasses[$class] = true; - } - - return $file; - } - - private function findFileWithExtension($class, $ext) - { - // PSR-4 lookup - $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; - - $first = $class[0]; - if (isset($this->prefixLengthsPsr4[$first])) { - $subPath = $class; - while (false !== $lastPos = strrpos($subPath, '\\')) { - $subPath = substr($subPath, 0, $lastPos); - $search = $subPath . '\\'; - if (isset($this->prefixDirsPsr4[$search])) { - $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); - foreach ($this->prefixDirsPsr4[$search] as $dir) { - if (file_exists($file = $dir . $pathEnd)) { - return $file; - } - } - } - } - } - - // PSR-4 fallback dirs - foreach ($this->fallbackDirsPsr4 as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { - return $file; - } - } - - // PSR-0 lookup - if (false !== $pos = strrpos($class, '\\')) { - // namespaced class name - $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) - . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); - } else { - // PEAR-like class name - $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; - } - - if (isset($this->prefixesPsr0[$first])) { - foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { - if (0 === strpos($class, $prefix)) { - foreach ($dirs as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { - return $file; - } - } - } - } - } - - // PSR-0 fallback dirs - foreach ($this->fallbackDirsPsr0 as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { - return $file; - } - } - - // PSR-0 include paths. - if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { - return $file; - } - - return false; - } -} - -/** - * Scope isolated include. - * - * Prevents access to $this/self from included files. - */ -function includeFile($file) -{ - include $file; -} diff --git a/srcs/phpmyadmin/vendor/composer/LICENSE b/srcs/phpmyadmin/vendor/composer/LICENSE deleted file mode 100644 index f27399a..0000000 --- a/srcs/phpmyadmin/vendor/composer/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ - -Copyright (c) Nils Adermann, Jordi Boggiano - -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. - diff --git a/srcs/phpmyadmin/vendor/composer/autoload_classmap.php b/srcs/phpmyadmin/vendor/composer/autoload_classmap.php deleted file mode 100644 index 2b89e59..0000000 --- a/srcs/phpmyadmin/vendor/composer/autoload_classmap.php +++ /dev/null @@ -1,23 +0,0 @@ - $vendorDir . '/tecnickcom/tcpdf/include/barcodes/datamatrix.php', - 'PDF417' => $vendorDir . '/tecnickcom/tcpdf/include/barcodes/pdf417.php', - 'QRcode' => $vendorDir . '/tecnickcom/tcpdf/include/barcodes/qrcode.php', - 'TCPDF' => $vendorDir . '/tecnickcom/tcpdf/tcpdf.php', - 'TCPDF2DBarcode' => $vendorDir . '/tecnickcom/tcpdf/tcpdf_barcodes_2d.php', - 'TCPDFBarcode' => $vendorDir . '/tecnickcom/tcpdf/tcpdf_barcodes_1d.php', - 'TCPDF_COLORS' => $vendorDir . '/tecnickcom/tcpdf/include/tcpdf_colors.php', - 'TCPDF_FILTERS' => $vendorDir . '/tecnickcom/tcpdf/include/tcpdf_filters.php', - 'TCPDF_FONTS' => $vendorDir . '/tecnickcom/tcpdf/include/tcpdf_fonts.php', - 'TCPDF_FONT_DATA' => $vendorDir . '/tecnickcom/tcpdf/include/tcpdf_font_data.php', - 'TCPDF_IMAGES' => $vendorDir . '/tecnickcom/tcpdf/include/tcpdf_images.php', - 'TCPDF_IMPORT' => $vendorDir . '/tecnickcom/tcpdf/tcpdf_import.php', - 'TCPDF_PARSER' => $vendorDir . '/tecnickcom/tcpdf/tcpdf_parser.php', - 'TCPDF_STATIC' => $vendorDir . '/tecnickcom/tcpdf/include/tcpdf_static.php', -); diff --git a/srcs/phpmyadmin/vendor/composer/autoload_files.php b/srcs/phpmyadmin/vendor/composer/autoload_files.php deleted file mode 100644 index b647401..0000000 --- a/srcs/phpmyadmin/vendor/composer/autoload_files.php +++ /dev/null @@ -1,13 +0,0 @@ - $vendorDir . '/symfony/polyfill-ctype/bootstrap.php', - '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php', - 'bd9634f2d41831496de0d3dfe4c94881' => $vendorDir . '/symfony/polyfill-php56/bootstrap.php', - 'decc78cc4436b1292c6c0d151b19445c' => $vendorDir . '/phpseclib/phpseclib/phpseclib/bootstrap.php', -); diff --git a/srcs/phpmyadmin/vendor/composer/autoload_namespaces.php b/srcs/phpmyadmin/vendor/composer/autoload_namespaces.php deleted file mode 100644 index dcc18b2..0000000 --- a/srcs/phpmyadmin/vendor/composer/autoload_namespaces.php +++ /dev/null @@ -1,11 +0,0 @@ - array($vendorDir . '/twig/extensions/lib'), - 'Twig_' => array($vendorDir . '/twig/twig/lib'), -); diff --git a/srcs/phpmyadmin/vendor/composer/autoload_psr4.php b/srcs/phpmyadmin/vendor/composer/autoload_psr4.php deleted file mode 100644 index 36ec64e..0000000 --- a/srcs/phpmyadmin/vendor/composer/autoload_psr4.php +++ /dev/null @@ -1,42 +0,0 @@ - array($vendorDir . '/phpseclib/phpseclib/phpseclib'), - 'Williamdes\\MariaDBMySQLKBS\\' => array($vendorDir . '/williamdes/mariadb-mysql-kbs/src'), - 'Twig\\Extensions\\' => array($vendorDir . '/twig/extensions/src'), - 'Twig\\' => array($vendorDir . '/twig/twig/src'), - 'Symfony\\Polyfill\\Util\\' => array($vendorDir . '/symfony/polyfill-util'), - 'Symfony\\Polyfill\\Php56\\' => array($vendorDir . '/symfony/polyfill-php56'), - 'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'), - 'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'), - 'Symfony\\Contracts\\Service\\' => array($vendorDir . '/symfony/service-contracts'), - 'Symfony\\Contracts\\Cache\\' => array($vendorDir . '/symfony/cache-contracts'), - 'Symfony\\Component\\Yaml\\' => array($vendorDir . '/symfony/yaml'), - 'Symfony\\Component\\VarExporter\\' => array($vendorDir . '/symfony/var-exporter'), - 'Symfony\\Component\\Filesystem\\' => array($vendorDir . '/symfony/filesystem'), - 'Symfony\\Component\\ExpressionLanguage\\' => array($vendorDir . '/symfony/expression-language'), - 'Symfony\\Component\\DependencyInjection\\' => array($vendorDir . '/symfony/dependency-injection'), - 'Symfony\\Component\\Config\\' => array($vendorDir . '/symfony/config'), - 'Symfony\\Component\\Cache\\' => array($vendorDir . '/symfony/cache'), - 'Samyoul\\U2F\\U2FServer\\' => array($vendorDir . '/samyoul/u2f-php-server/src'), - 'ReCaptcha\\' => array($vendorDir . '/google/recaptcha/src/ReCaptcha'), - 'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'), - 'Psr\\Container\\' => array($vendorDir . '/psr/container/src'), - 'Psr\\Cache\\' => array($vendorDir . '/psr/cache/src'), - 'PragmaRX\\Google2FA\\Tests\\' => array($vendorDir . '/pragmarx/google2fa/tests'), - 'PragmaRX\\Google2FA\\' => array($vendorDir . '/pragmarx/google2fa/src'), - 'PragmaRX\\Google2FAQRCode\\Tests\\' => array($vendorDir . '/pragmarx/google2fa-qrcode/tests'), - 'PragmaRX\\Google2FAQRCode\\' => array($vendorDir . '/pragmarx/google2fa-qrcode/src'), - 'PhpMyAdmin\\SqlParser\\' => array($vendorDir . '/phpmyadmin/sql-parser/src'), - 'PhpMyAdmin\\ShapeFile\\' => array($vendorDir . '/phpmyadmin/shapefile/src'), - 'PhpMyAdmin\\MoTranslator\\' => array($vendorDir . '/phpmyadmin/motranslator/src'), - 'PhpMyAdmin\\' => array($baseDir . '/libraries/classes'), - 'ParagonIE\\ConstantTime\\' => array($vendorDir . '/paragonie/constant_time_encoding/src'), - 'DASPRiD\\Enum\\' => array($vendorDir . '/dasprid/enum/src'), - 'BaconQrCode\\' => array($vendorDir . '/bacon/bacon-qr-code/src'), -); diff --git a/srcs/phpmyadmin/vendor/composer/autoload_real.php b/srcs/phpmyadmin/vendor/composer/autoload_real.php deleted file mode 100644 index b9a0918..0000000 --- a/srcs/phpmyadmin/vendor/composer/autoload_real.php +++ /dev/null @@ -1,70 +0,0 @@ -= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require_once __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInitcffcd61e9798dd817f367505fcb2aeb1::getInitializer($loader)); - } else { - $map = require __DIR__ . '/autoload_namespaces.php'; - foreach ($map as $namespace => $path) { - $loader->set($namespace, $path); - } - - $map = require __DIR__ . '/autoload_psr4.php'; - foreach ($map as $namespace => $path) { - $loader->setPsr4($namespace, $path); - } - - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } - - $loader->register(true); - - if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInitcffcd61e9798dd817f367505fcb2aeb1::$files; - } else { - $includeFiles = require __DIR__ . '/autoload_files.php'; - } - foreach ($includeFiles as $fileIdentifier => $file) { - composerRequirecffcd61e9798dd817f367505fcb2aeb1($fileIdentifier, $file); - } - - return $loader; - } -} - -function composerRequirecffcd61e9798dd817f367505fcb2aeb1($fileIdentifier, $file) -{ - if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { - require $file; - - $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; - } -} diff --git a/srcs/phpmyadmin/vendor/composer/autoload_static.php b/srcs/phpmyadmin/vendor/composer/autoload_static.php deleted file mode 100644 index f9d9a00..0000000 --- a/srcs/phpmyadmin/vendor/composer/autoload_static.php +++ /dev/null @@ -1,252 +0,0 @@ - __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php', - '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php', - 'bd9634f2d41831496de0d3dfe4c94881' => __DIR__ . '/..' . '/symfony/polyfill-php56/bootstrap.php', - 'decc78cc4436b1292c6c0d151b19445c' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/bootstrap.php', - ); - - public static $prefixLengthsPsr4 = array ( - 'p' => - array ( - 'phpseclib\\' => 10, - ), - 'W' => - array ( - 'Williamdes\\MariaDBMySQLKBS\\' => 27, - ), - 'T' => - array ( - 'Twig\\Extensions\\' => 16, - 'Twig\\' => 5, - ), - 'S' => - array ( - 'Symfony\\Polyfill\\Util\\' => 22, - 'Symfony\\Polyfill\\Php56\\' => 23, - 'Symfony\\Polyfill\\Mbstring\\' => 26, - 'Symfony\\Polyfill\\Ctype\\' => 23, - 'Symfony\\Contracts\\Service\\' => 26, - 'Symfony\\Contracts\\Cache\\' => 24, - 'Symfony\\Component\\Yaml\\' => 23, - 'Symfony\\Component\\VarExporter\\' => 30, - 'Symfony\\Component\\Filesystem\\' => 29, - 'Symfony\\Component\\ExpressionLanguage\\' => 37, - 'Symfony\\Component\\DependencyInjection\\' => 38, - 'Symfony\\Component\\Config\\' => 25, - 'Symfony\\Component\\Cache\\' => 24, - 'Samyoul\\U2F\\U2FServer\\' => 22, - ), - 'R' => - array ( - 'ReCaptcha\\' => 10, - ), - 'P' => - array ( - 'Psr\\Log\\' => 8, - 'Psr\\Container\\' => 14, - 'Psr\\Cache\\' => 10, - 'PragmaRX\\Google2FA\\Tests\\' => 25, - 'PragmaRX\\Google2FA\\' => 19, - 'PragmaRX\\Google2FAQRCode\\Tests\\' => 31, - 'PragmaRX\\Google2FAQRCode\\' => 25, - 'PhpMyAdmin\\SqlParser\\' => 21, - 'PhpMyAdmin\\ShapeFile\\' => 21, - 'PhpMyAdmin\\MoTranslator\\' => 24, - 'PhpMyAdmin\\' => 11, - 'ParagonIE\\ConstantTime\\' => 23, - ), - 'D' => - array ( - 'DASPRiD\\Enum\\' => 13, - ), - 'B' => - array ( - 'BaconQrCode\\' => 12, - ), - ); - - public static $prefixDirsPsr4 = array ( - 'phpseclib\\' => - array ( - 0 => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib', - ), - 'Williamdes\\MariaDBMySQLKBS\\' => - array ( - 0 => __DIR__ . '/..' . '/williamdes/mariadb-mysql-kbs/src', - ), - 'Twig\\Extensions\\' => - array ( - 0 => __DIR__ . '/..' . '/twig/extensions/src', - ), - 'Twig\\' => - array ( - 0 => __DIR__ . '/..' . '/twig/twig/src', - ), - 'Symfony\\Polyfill\\Util\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-util', - ), - 'Symfony\\Polyfill\\Php56\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-php56', - ), - 'Symfony\\Polyfill\\Mbstring\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring', - ), - 'Symfony\\Polyfill\\Ctype\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-ctype', - ), - 'Symfony\\Contracts\\Service\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/service-contracts', - ), - 'Symfony\\Contracts\\Cache\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/cache-contracts', - ), - 'Symfony\\Component\\Yaml\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/yaml', - ), - 'Symfony\\Component\\VarExporter\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/var-exporter', - ), - 'Symfony\\Component\\Filesystem\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/filesystem', - ), - 'Symfony\\Component\\ExpressionLanguage\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/expression-language', - ), - 'Symfony\\Component\\DependencyInjection\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/dependency-injection', - ), - 'Symfony\\Component\\Config\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/config', - ), - 'Symfony\\Component\\Cache\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/cache', - ), - 'Samyoul\\U2F\\U2FServer\\' => - array ( - 0 => __DIR__ . '/..' . '/samyoul/u2f-php-server/src', - ), - 'ReCaptcha\\' => - array ( - 0 => __DIR__ . '/..' . '/google/recaptcha/src/ReCaptcha', - ), - 'Psr\\Log\\' => - array ( - 0 => __DIR__ . '/..' . '/psr/log/Psr/Log', - ), - 'Psr\\Container\\' => - array ( - 0 => __DIR__ . '/..' . '/psr/container/src', - ), - 'Psr\\Cache\\' => - array ( - 0 => __DIR__ . '/..' . '/psr/cache/src', - ), - 'PragmaRX\\Google2FA\\Tests\\' => - array ( - 0 => __DIR__ . '/..' . '/pragmarx/google2fa/tests', - ), - 'PragmaRX\\Google2FA\\' => - array ( - 0 => __DIR__ . '/..' . '/pragmarx/google2fa/src', - ), - 'PragmaRX\\Google2FAQRCode\\Tests\\' => - array ( - 0 => __DIR__ . '/..' . '/pragmarx/google2fa-qrcode/tests', - ), - 'PragmaRX\\Google2FAQRCode\\' => - array ( - 0 => __DIR__ . '/..' . '/pragmarx/google2fa-qrcode/src', - ), - 'PhpMyAdmin\\SqlParser\\' => - array ( - 0 => __DIR__ . '/..' . '/phpmyadmin/sql-parser/src', - ), - 'PhpMyAdmin\\ShapeFile\\' => - array ( - 0 => __DIR__ . '/..' . '/phpmyadmin/shapefile/src', - ), - 'PhpMyAdmin\\MoTranslator\\' => - array ( - 0 => __DIR__ . '/..' . '/phpmyadmin/motranslator/src', - ), - 'PhpMyAdmin\\' => - array ( - 0 => __DIR__ . '/../..' . '/libraries/classes', - ), - 'ParagonIE\\ConstantTime\\' => - array ( - 0 => __DIR__ . '/..' . '/paragonie/constant_time_encoding/src', - ), - 'DASPRiD\\Enum\\' => - array ( - 0 => __DIR__ . '/..' . '/dasprid/enum/src', - ), - 'BaconQrCode\\' => - array ( - 0 => __DIR__ . '/..' . '/bacon/bacon-qr-code/src', - ), - ); - - public static $prefixesPsr0 = array ( - 'T' => - array ( - 'Twig_Extensions_' => - array ( - 0 => __DIR__ . '/..' . '/twig/extensions/lib', - ), - 'Twig_' => - array ( - 0 => __DIR__ . '/..' . '/twig/twig/lib', - ), - ), - ); - - public static $classMap = array ( - 'Datamatrix' => __DIR__ . '/..' . '/tecnickcom/tcpdf/include/barcodes/datamatrix.php', - 'PDF417' => __DIR__ . '/..' . '/tecnickcom/tcpdf/include/barcodes/pdf417.php', - 'QRcode' => __DIR__ . '/..' . '/tecnickcom/tcpdf/include/barcodes/qrcode.php', - 'TCPDF' => __DIR__ . '/..' . '/tecnickcom/tcpdf/tcpdf.php', - 'TCPDF2DBarcode' => __DIR__ . '/..' . '/tecnickcom/tcpdf/tcpdf_barcodes_2d.php', - 'TCPDFBarcode' => __DIR__ . '/..' . '/tecnickcom/tcpdf/tcpdf_barcodes_1d.php', - 'TCPDF_COLORS' => __DIR__ . '/..' . '/tecnickcom/tcpdf/include/tcpdf_colors.php', - 'TCPDF_FILTERS' => __DIR__ . '/..' . '/tecnickcom/tcpdf/include/tcpdf_filters.php', - 'TCPDF_FONTS' => __DIR__ . '/..' . '/tecnickcom/tcpdf/include/tcpdf_fonts.php', - 'TCPDF_FONT_DATA' => __DIR__ . '/..' . '/tecnickcom/tcpdf/include/tcpdf_font_data.php', - 'TCPDF_IMAGES' => __DIR__ . '/..' . '/tecnickcom/tcpdf/include/tcpdf_images.php', - 'TCPDF_IMPORT' => __DIR__ . '/..' . '/tecnickcom/tcpdf/tcpdf_import.php', - 'TCPDF_PARSER' => __DIR__ . '/..' . '/tecnickcom/tcpdf/tcpdf_parser.php', - 'TCPDF_STATIC' => __DIR__ . '/..' . '/tecnickcom/tcpdf/include/tcpdf_static.php', - ); - - public static function getInitializer(ClassLoader $loader) - { - return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInitcffcd61e9798dd817f367505fcb2aeb1::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInitcffcd61e9798dd817f367505fcb2aeb1::$prefixDirsPsr4; - $loader->prefixesPsr0 = ComposerStaticInitcffcd61e9798dd817f367505fcb2aeb1::$prefixesPsr0; - $loader->classMap = ComposerStaticInitcffcd61e9798dd817f367505fcb2aeb1::$classMap; - - }, null, ClassLoader::class); - } -} diff --git a/srcs/phpmyadmin/vendor/composer/installed.json b/srcs/phpmyadmin/vendor/composer/installed.json deleted file mode 100644 index 9f904de..0000000 --- a/srcs/phpmyadmin/vendor/composer/installed.json +++ /dev/null @@ -1,1884 +0,0 @@ -[ - { - "name": "bacon/bacon-qr-code", - "version": "2.0.0", - "version_normalized": "2.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/Bacon/BaconQrCode.git", - "reference": "eaac909da3ccc32b748a65b127acd8918f58d9b0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/eaac909da3ccc32b748a65b127acd8918f58d9b0", - "reference": "eaac909da3ccc32b748a65b127acd8918f58d9b0", - "shasum": "" - }, - "require": { - "dasprid/enum": "^1.0", - "ext-iconv": "*", - "php": "^7.1" - }, - "require-dev": { - "phly/keep-a-changelog": "^1.4", - "phpunit/phpunit": "^6.4", - "squizlabs/php_codesniffer": "^3.1" - }, - "suggest": { - "ext-imagick": "to generate QR code images" - }, - "time": "2018-04-25T17:53:56+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "BaconQrCode\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], - "authors": [ - { - "name": "Ben Scholzen 'DASPRiD'", - "email": "mail@dasprids.de", - "homepage": "http://www.dasprids.de", - "role": "Developer" - } - ], - "description": "BaconQrCode is a QR code generator for PHP.", - "homepage": "https://github.com/Bacon/BaconQrCode" - }, - { - "name": "dasprid/enum", - "version": "1.0.0", - "version_normalized": "1.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/DASPRiD/Enum.git", - "reference": "631ef6e638e9494b0310837fa531bedd908fc22b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/DASPRiD/Enum/zipball/631ef6e638e9494b0310837fa531bedd908fc22b", - "reference": "631ef6e638e9494b0310837fa531bedd908fc22b", - "shasum": "" - }, - "require-dev": { - "phpunit/phpunit": "^6.4", - "squizlabs/php_codesniffer": "^3.1" - }, - "time": "2017-10-25T22:45:27+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "DASPRiD\\Enum\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], - "authors": [ - { - "name": "Ben Scholzen 'DASPRiD'", - "email": "mail@dasprids.de", - "homepage": "https://dasprids.de/" - } - ], - "description": "PHP 7.1 enum implementation", - "keywords": [ - "enum", - "map" - ] - }, - { - "name": "google/recaptcha", - "version": "1.2.3", - "version_normalized": "1.2.3.0", - "source": { - "type": "git", - "url": "https://github.com/google/recaptcha.git", - "reference": "98c4a6573b27e8b0990ea8789c74ea378795134c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/google/recaptcha/zipball/98c4a6573b27e8b0990ea8789c74ea378795134c", - "reference": "98c4a6573b27e8b0990ea8789c74ea378795134c", - "shasum": "" - }, - "require": { - "php": ">=5.5" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^2.2.20|^2.15", - "php-coveralls/php-coveralls": "^2.1", - "phpunit/phpunit": "^4.8.36|^5.7.27|^6.59|^7.5.11" - }, - "time": "2019-08-16T15:48:25+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "ReCaptcha\\": "src/ReCaptcha" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Client library for reCAPTCHA, a free service that protects websites from spam and abuse.", - "homepage": "https://www.google.com/recaptcha/", - "keywords": [ - "Abuse", - "captcha", - "recaptcha", - "spam" - ] - }, - { - "name": "paragonie/constant_time_encoding", - "version": "v2.3.0", - "version_normalized": "2.3.0.0", - "source": { - "type": "git", - "url": "https://github.com/paragonie/constant_time_encoding.git", - "reference": "47a1cedd2e4d52688eb8c96469c05ebc8fd28fa2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/47a1cedd2e4d52688eb8c96469c05ebc8fd28fa2", - "reference": "47a1cedd2e4d52688eb8c96469c05ebc8fd28fa2", - "shasum": "" - }, - "require": { - "php": "^7|^8" - }, - "require-dev": { - "phpunit/phpunit": "^6|^7", - "vimeo/psalm": "^1|^2|^3" - }, - "time": "2019-11-06T19:20:29+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "ParagonIE\\ConstantTime\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com", - "role": "Maintainer" - }, - { - "name": "Steve 'Sc00bz' Thomas", - "email": "steve@tobtu.com", - "homepage": "https://www.tobtu.com", - "role": "Original Developer" - } - ], - "description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)", - "keywords": [ - "base16", - "base32", - "base32_decode", - "base32_encode", - "base64", - "base64_decode", - "base64_encode", - "bin2hex", - "encoding", - "hex", - "hex2bin", - "rfc4648" - ] - }, - { - "name": "paragonie/random_compat", - "version": "v9.99.99", - "version_normalized": "9.99.99.0", - "source": { - "type": "git", - "url": "https://github.com/paragonie/random_compat.git", - "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", - "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", - "shasum": "" - }, - "require": { - "php": "^7" - }, - "require-dev": { - "phpunit/phpunit": "4.*|5.*", - "vimeo/psalm": "^1" - }, - "suggest": { - "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." - }, - "time": "2018-07-02T15:55:56+00:00", - "type": "library", - "installation-source": "dist", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com" - } - ], - "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", - "keywords": [ - "csprng", - "polyfill", - "pseudorandom", - "random" - ] - }, - { - "name": "phpmyadmin/motranslator", - "version": "4.0", - "version_normalized": "4.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/phpmyadmin/motranslator.git", - "reference": "fcb370254998fda7eeccfd7c787b4deb71b0d77c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpmyadmin/motranslator/zipball/fcb370254998fda7eeccfd7c787b4deb71b0d77c", - "reference": "fcb370254998fda7eeccfd7c787b4deb71b0d77c", - "shasum": "" - }, - "require": { - "php": ">=5.3.0", - "symfony/expression-language": "^4.0 || ^3.2 || ^2.8" - }, - "require-dev": { - "apigen/apigen": "^4.1", - "phpunit/php-code-coverage": "*", - "phpunit/phpunit": "~4.8 || ~5.7 || ~6.5" - }, - "time": "2018-02-12T13:22:52+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "PhpMyAdmin\\MoTranslator\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "The phpMyAdmin Team", - "email": "developers@phpmyadmin.net", - "homepage": "https://www.phpmyadmin.net/team/" - } - ], - "description": "Translation API for PHP using Gettext MO files", - "homepage": "https://github.com/phpmyadmin/motranslator", - "keywords": [ - "gettext", - "i18n", - "mo", - "translator" - ] - }, - { - "name": "phpmyadmin/shapefile", - "version": "2.1", - "version_normalized": "2.1.0.0", - "source": { - "type": "git", - "url": "https://github.com/phpmyadmin/shapefile.git", - "reference": "e23b767f2a81f61fee3fc09fc062879985f3e224" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpmyadmin/shapefile/zipball/e23b767f2a81f61fee3fc09fc062879985f3e224", - "reference": "e23b767f2a81f61fee3fc09fc062879985f3e224", - "shasum": "" - }, - "require": { - "php": ">=5.4.0" - }, - "require-dev": { - "phpunit/php-code-coverage": "*", - "phpunit/phpunit": "~4.8 || ~5.7" - }, - "suggest": { - "ext-dbase": "For dbf files parsing" - }, - "time": "2017-05-15T08:31:47+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "PhpMyAdmin\\ShapeFile\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0+" - ], - "authors": [ - { - "name": "The phpMyAdmin Team", - "email": "developers@phpmyadmin.net", - "homepage": "https://www.phpmyadmin.net/team/" - } - ], - "description": "ESRI ShapeFile library for PHP", - "homepage": "https://github.com/phpmyadmin/shapefile", - "keywords": [ - "ESRI", - "Shapefile", - "dbf", - "geo", - "geospatial", - "shape", - "shp" - ] - }, - { - "name": "phpmyadmin/sql-parser", - "version": "5.2.0", - "version_normalized": "5.2.0.0", - "source": { - "type": "git", - "url": "https://github.com/phpmyadmin/sql-parser.git", - "reference": "bddaf056f8f43621e94b29284c98f35db8b6d93e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpmyadmin/sql-parser/zipball/bddaf056f8f43621e94b29284c98f35db8b6d93e", - "reference": "bddaf056f8f43621e94b29284c98f35db8b6d93e", - "shasum": "" - }, - "require": { - "php": "^7.1", - "symfony/polyfill-mbstring": "^1.3" - }, - "conflict": { - "phpmyadmin/motranslator": "<3.0" - }, - "require-dev": { - "phpmyadmin/coding-standard": "^1.0", - "phpmyadmin/motranslator": "^4.0", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.12.3", - "phpstan/phpstan-phpunit": "^0.12.1", - "phpunit/php-code-coverage": "*", - "phpunit/phpunit": "^7.4 || ^8" - }, - "suggest": { - "ext-mbstring": "For best performance", - "phpmyadmin/motranslator": "Translate messages to your favorite locale" - }, - "time": "2020-01-07T23:24:46+00:00", - "bin": [ - "bin/highlight-query", - "bin/lint-query", - "bin/tokenize-query" - ], - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "PhpMyAdmin\\SqlParser\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "The phpMyAdmin Team", - "email": "developers@phpmyadmin.net", - "homepage": "https://www.phpmyadmin.net/team/" - } - ], - "description": "A validating SQL lexer and parser with a focus on MySQL dialect.", - "homepage": "https://github.com/phpmyadmin/sql-parser", - "keywords": [ - "analysis", - "lexer", - "parser", - "sql" - ] - }, - { - "name": "phpseclib/phpseclib", - "version": "2.0.23", - "version_normalized": "2.0.23.0", - "source": { - "type": "git", - "url": "https://github.com/phpseclib/phpseclib.git", - "reference": "c78eb5058d5bb1a183133c36d4ba5b6675dfa099" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/c78eb5058d5bb1a183133c36d4ba5b6675dfa099", - "reference": "c78eb5058d5bb1a183133c36d4ba5b6675dfa099", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phing/phing": "~2.7", - "phpunit/phpunit": "^4.8.35|^5.7|^6.0", - "sami/sami": "~2.0", - "squizlabs/php_codesniffer": "~2.0" - }, - "suggest": { - "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.", - "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.", - "ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.", - "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations." - }, - "time": "2019-09-17T03:41:22+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "files": [ - "phpseclib/bootstrap.php" - ], - "psr-4": { - "phpseclib\\": "phpseclib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jim Wigginton", - "email": "terrafrost@php.net", - "role": "Lead Developer" - }, - { - "name": "Patrick Monnerat", - "email": "pm@datasphere.ch", - "role": "Developer" - }, - { - "name": "Andreas Fischer", - "email": "bantu@phpbb.com", - "role": "Developer" - }, - { - "name": "Hans-Jürgen Petrich", - "email": "petrich@tronic-media.com", - "role": "Developer" - }, - { - "name": "Graham Campbell", - "email": "graham@alt-three.com", - "role": "Developer" - } - ], - "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.", - "homepage": "http://phpseclib.sourceforge.net", - "keywords": [ - "BigInteger", - "aes", - "asn.1", - "asn1", - "blowfish", - "crypto", - "cryptography", - "encryption", - "rsa", - "security", - "sftp", - "signature", - "signing", - "ssh", - "twofish", - "x.509", - "x509" - ] - }, - { - "name": "pragmarx/google2fa", - "version": "v6.0.1", - "version_normalized": "6.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/antonioribeiro/google2fa.git", - "reference": "8df7d8fe0734c7ddad5fce2251adf4b3e9218643" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/antonioribeiro/google2fa/zipball/8df7d8fe0734c7ddad5fce2251adf4b3e9218643", - "reference": "8df7d8fe0734c7ddad5fce2251adf4b3e9218643", - "shasum": "" - }, - "require": { - "paragonie/constant_time_encoding": "~1.0|~2.0", - "paragonie/random_compat": ">=1", - "php": ">=5.4", - "symfony/polyfill-php56": "~1.2" - }, - "require-dev": { - "phpunit/phpunit": "~4|~5|~6|~7|~8" - }, - "time": "2019-09-18T22:34:47+00:00", - "type": "library", - "extra": { - "component": "package", - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "PragmaRX\\Google2FA\\": "src/", - "PragmaRX\\Google2FA\\Tests\\": "tests/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Antonio Carlos Ribeiro", - "email": "acr@antoniocarlosribeiro.com", - "role": "Creator & Designer" - } - ], - "description": "A One Time Password Authentication package, compatible with Google Authenticator.", - "keywords": [ - "2fa", - "Authentication", - "Two Factor Authentication", - "google2fa" - ] - }, - { - "name": "pragmarx/google2fa-qrcode", - "version": "v1.0.3", - "version_normalized": "1.0.3.0", - "source": { - "type": "git", - "url": "https://github.com/antonioribeiro/google2fa-qrcode.git", - "reference": "fd5ff0531a48b193a659309cc5fb882c14dbd03f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/antonioribeiro/google2fa-qrcode/zipball/fd5ff0531a48b193a659309cc5fb882c14dbd03f", - "reference": "fd5ff0531a48b193a659309cc5fb882c14dbd03f", - "shasum": "" - }, - "require": { - "bacon/bacon-qr-code": "~1.0|~2.0", - "php": ">=5.4", - "pragmarx/google2fa": ">=4.0" - }, - "require-dev": { - "khanamiryan/qrcode-detector-decoder": "^1.0", - "phpunit/phpunit": "~4|~5|~6|~7" - }, - "time": "2019-03-20T16:42:58+00:00", - "type": "library", - "extra": { - "component": "package", - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "PragmaRX\\Google2FAQRCode\\": "src/", - "PragmaRX\\Google2FAQRCode\\Tests\\": "tests/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Antonio Carlos Ribeiro", - "email": "acr@antoniocarlosribeiro.com", - "role": "Creator & Designer" - } - ], - "description": "QR Code package for Google2FA", - "keywords": [ - "2fa", - "Authentication", - "Two Factor Authentication", - "google2fa", - "qr code", - "qrcode" - ] - }, - { - "name": "psr/cache", - "version": "1.0.1", - "version_normalized": "1.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/cache.git", - "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", - "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "time": "2016-08-06T20:24:11+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Psr\\Cache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for caching libraries", - "keywords": [ - "cache", - "psr", - "psr-6" - ] - }, - { - "name": "psr/container", - "version": "1.0.0", - "version_normalized": "1.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "time": "2017-02-14T16:28:37+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", - "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" - ] - }, - { - "name": "psr/log", - "version": "1.1.2", - "version_normalized": "1.1.2.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801", - "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "time": "2019-11-01T11:05:21+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Psr\\Log\\": "Psr/Log/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ] - }, - { - "name": "samyoul/u2f-php-server", - "version": "v1.1.4", - "version_normalized": "1.1.4.0", - "source": { - "type": "git", - "url": "https://github.com/Samyoul/U2F-php-server.git", - "reference": "0625202c79d570e58525ed6c4ae38500ea3f0883" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Samyoul/U2F-php-server/zipball/0625202c79d570e58525ed6c4ae38500ea3f0883", - "reference": "0625202c79d570e58525ed6c4ae38500ea3f0883", - "shasum": "" - }, - "require": { - "ext-openssl": "*" - }, - "time": "2018-10-26T12:43:39+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Samyoul\\U2F\\U2FServer\\": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], - "authors": [ - { - "name": "Samuel Hawksby-Robinson", - "email": "samuel@samyoul.com" - } - ], - "description": "Server side handling class for FIDO U2F registration and authentication" - }, - { - "name": "symfony/cache", - "version": "v4.4.2", - "version_normalized": "4.4.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/cache.git", - "reference": "6af64bab165e588300378a87bcd2df3c7c31c144" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/6af64bab165e588300378a87bcd2df3c7c31c144", - "reference": "6af64bab165e588300378a87bcd2df3c7c31c144", - "shasum": "" - }, - "require": { - "php": "^7.1.3", - "psr/cache": "~1.0", - "psr/log": "~1.0", - "symfony/cache-contracts": "^1.1.7|^2", - "symfony/service-contracts": "^1.1|^2", - "symfony/var-exporter": "^4.2|^5.0" - }, - "conflict": { - "doctrine/dbal": "<2.5", - "symfony/dependency-injection": "<3.4", - "symfony/http-kernel": "<4.4", - "symfony/var-dumper": "<4.4" - }, - "provide": { - "psr/cache-implementation": "1.0", - "psr/simple-cache-implementation": "1.0", - "symfony/cache-implementation": "1.0" - }, - "require-dev": { - "cache/integration-tests": "dev-master", - "doctrine/cache": "~1.6", - "doctrine/dbal": "~2.5", - "predis/predis": "~1.1", - "psr/simple-cache": "^1.0", - "symfony/config": "^4.2|^5.0", - "symfony/dependency-injection": "^3.4|^4.1|^5.0", - "symfony/var-dumper": "^4.4|^5.0" - }, - "time": "2019-12-16T10:45:21+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Cache\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Cache component with PSR-6, PSR-16, and tags", - "homepage": "https://symfony.com", - "keywords": [ - "caching", - "psr6" - ] - }, - { - "name": "symfony/cache-contracts", - "version": "v1.1.7", - "version_normalized": "1.1.7.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/cache-contracts.git", - "reference": "af50d14ada9e4e82cfabfabdc502d144f89be0a1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/af50d14ada9e4e82cfabfabdc502d144f89be0a1", - "reference": "af50d14ada9e4e82cfabfabdc502d144f89be0a1", - "shasum": "" - }, - "require": { - "php": "^7.1.3", - "psr/cache": "^1.0" - }, - "suggest": { - "symfony/cache-implementation": "" - }, - "time": "2019-10-04T21:43:27+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Cache\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to caching", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ] - }, - { - "name": "symfony/config", - "version": "v4.4.2", - "version_normalized": "4.4.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/config.git", - "reference": "6911d432edd5b50822986604fd5a5be3af856d30" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/6911d432edd5b50822986604fd5a5be3af856d30", - "reference": "6911d432edd5b50822986604fd5a5be3af856d30", - "shasum": "" - }, - "require": { - "php": "^7.1.3", - "symfony/filesystem": "^3.4|^4.0|^5.0", - "symfony/polyfill-ctype": "~1.8" - }, - "conflict": { - "symfony/finder": "<3.4" - }, - "require-dev": { - "symfony/event-dispatcher": "^3.4|^4.0|^5.0", - "symfony/finder": "^3.4|^4.0|^5.0", - "symfony/messenger": "^4.1|^5.0", - "symfony/service-contracts": "^1.1|^2", - "symfony/yaml": "^3.4|^4.0|^5.0" - }, - "suggest": { - "symfony/yaml": "To use the yaml reference dumper" - }, - "time": "2019-12-18T12:00:29+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Config\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Config Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/dependency-injection", - "version": "v4.4.2", - "version_normalized": "4.4.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/dependency-injection.git", - "reference": "79b0358207a3571cc3af02a57d0321927921f539" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/79b0358207a3571cc3af02a57d0321927921f539", - "reference": "79b0358207a3571cc3af02a57d0321927921f539", - "shasum": "" - }, - "require": { - "php": "^7.1.3", - "psr/container": "^1.0", - "symfony/service-contracts": "^1.1.6|^2" - }, - "conflict": { - "symfony/config": "<4.3|>=5.0", - "symfony/finder": "<3.4", - "symfony/proxy-manager-bridge": "<3.4", - "symfony/yaml": "<3.4" - }, - "provide": { - "psr/container-implementation": "1.0", - "symfony/service-implementation": "1.0" - }, - "require-dev": { - "symfony/config": "^4.3", - "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/yaml": "^3.4|^4.0|^5.0" - }, - "suggest": { - "symfony/config": "", - "symfony/expression-language": "For using expressions in service container configuration", - "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", - "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", - "symfony/yaml": "" - }, - "time": "2019-12-19T16:00:02+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\DependencyInjection\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony DependencyInjection Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/expression-language", - "version": "v4.4.2", - "version_normalized": "4.4.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/expression-language.git", - "reference": "539e7ff0b635c8b90d8127bc929da781a96eab2d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/expression-language/zipball/539e7ff0b635c8b90d8127bc929da781a96eab2d", - "reference": "539e7ff0b635c8b90d8127bc929da781a96eab2d", - "shasum": "" - }, - "require": { - "php": "^7.1.3", - "symfony/cache": "^3.4|^4.0|^5.0", - "symfony/service-contracts": "^1.1|^2" - }, - "time": "2019-12-10T10:33:21+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\ExpressionLanguage\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony ExpressionLanguage Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/filesystem", - "version": "v4.4.2", - "version_normalized": "4.4.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "40c2606131d56eff6f193b6e2ceb92414653b591" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/40c2606131d56eff6f193b6e2ceb92414653b591", - "reference": "40c2606131d56eff6f193b6e2ceb92414653b591", - "shasum": "" - }, - "require": { - "php": "^7.1.3", - "symfony/polyfill-ctype": "~1.8" - }, - "time": "2019-11-26T23:16:41+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Filesystem\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Filesystem Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/polyfill-ctype", - "version": "v1.13.1", - "version_normalized": "1.13.1.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", - "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "time": "2019-11-27T13:56:44+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.13-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ] - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.13.1", - "version_normalized": "1.13.1.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7b4aab9743c30be783b73de055d24a39cf4b954f", - "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "time": "2019-11-27T14:18:11+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.13-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ] - }, - { - "name": "symfony/polyfill-php56", - "version": "v1.13.1", - "version_normalized": "1.13.1.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php56.git", - "reference": "53dd1cdf3cb986893ccf2b96665b25b3abb384f4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/53dd1cdf3cb986893ccf2b96665b25b3abb384f4", - "reference": "53dd1cdf3cb986893ccf2b96665b25b3abb384f4", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "symfony/polyfill-util": "~1.0" - }, - "time": "2019-11-27T13:56:44+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.13-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php56\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ] - }, - { - "name": "symfony/polyfill-util", - "version": "v1.13.1", - "version_normalized": "1.13.1.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-util.git", - "reference": "964a67f293b66b95883a5ed918a65354fcd2258f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/964a67f293b66b95883a5ed918a65354fcd2258f", - "reference": "964a67f293b66b95883a5ed918a65354fcd2258f", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "time": "2019-11-27T13:56:44+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.13-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Util\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony utilities for portability of PHP codes", - "homepage": "https://symfony.com", - "keywords": [ - "compat", - "compatibility", - "polyfill", - "shim" - ] - }, - { - "name": "symfony/service-contracts", - "version": "v1.1.8", - "version_normalized": "1.1.8.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "ffc7f5692092df31515df2a5ecf3b7302b3ddacf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/ffc7f5692092df31515df2a5ecf3b7302b3ddacf", - "reference": "ffc7f5692092df31515df2a5ecf3b7302b3ddacf", - "shasum": "" - }, - "require": { - "php": "^7.1.3", - "psr/container": "^1.0" - }, - "suggest": { - "symfony/service-implementation": "" - }, - "time": "2019-10-14T12:27:06+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Service\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to writing services", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ] - }, - { - "name": "symfony/var-exporter", - "version": "v4.4.2", - "version_normalized": "4.4.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/var-exporter.git", - "reference": "e566070effe60b8d16b99e958cdbd92aa2e470cb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/e566070effe60b8d16b99e958cdbd92aa2e470cb", - "reference": "e566070effe60b8d16b99e958cdbd92aa2e470cb", - "shasum": "" - }, - "require": { - "php": "^7.1.3" - }, - "require-dev": { - "symfony/var-dumper": "^4.1.1|^5.0" - }, - "time": "2019-12-01T08:39:58+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\VarExporter\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "A blend of var_export() + serialize() to turn any serializable data structure to plain PHP code", - "homepage": "https://symfony.com", - "keywords": [ - "clone", - "construct", - "export", - "hydrate", - "instantiate", - "serialize" - ] - }, - { - "name": "symfony/yaml", - "version": "v4.4.2", - "version_normalized": "4.4.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "a08832b974dd5fafe3085a66d41fe4c84bb2628c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/a08832b974dd5fafe3085a66d41fe4c84bb2628c", - "reference": "a08832b974dd5fafe3085a66d41fe4c84bb2628c", - "shasum": "" - }, - "require": { - "php": "^7.1.3", - "symfony/polyfill-ctype": "~1.8" - }, - "conflict": { - "symfony/console": "<3.4" - }, - "require-dev": { - "symfony/console": "^3.4|^4.0|^5.0" - }, - "suggest": { - "symfony/console": "For validating YAML files using the lint command" - }, - "time": "2019-12-10T10:33:21+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Yaml\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Yaml Component", - "homepage": "https://symfony.com" - }, - { - "name": "tecnickcom/tcpdf", - "version": "6.3.2", - "version_normalized": "6.3.2.0", - "source": { - "type": "git", - "url": "https://github.com/tecnickcom/TCPDF.git", - "reference": "9fde7bb9b404b945e7ea88fb7eccd23d9a4e324b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/tecnickcom/TCPDF/zipball/9fde7bb9b404b945e7ea88fb7eccd23d9a4e324b", - "reference": "9fde7bb9b404b945e7ea88fb7eccd23d9a4e324b", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "time": "2019-09-20T09:35:01+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "classmap": [ - "config", - "include", - "tcpdf.php", - "tcpdf_parser.php", - "tcpdf_import.php", - "tcpdf_barcodes_1d.php", - "tcpdf_barcodes_2d.php", - "include/tcpdf_colors.php", - "include/tcpdf_filters.php", - "include/tcpdf_font_data.php", - "include/tcpdf_fonts.php", - "include/tcpdf_images.php", - "include/tcpdf_static.php", - "include/barcodes/datamatrix.php", - "include/barcodes/pdf417.php", - "include/barcodes/qrcode.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "LGPL-3.0" - ], - "authors": [ - { - "name": "Nicola Asuni", - "email": "info@tecnick.com", - "role": "lead" - } - ], - "description": "TCPDF is a PHP class for generating PDF documents and barcodes.", - "homepage": "http://www.tcpdf.org/", - "keywords": [ - "PDFD32000-2008", - "TCPDF", - "barcodes", - "datamatrix", - "pdf", - "pdf417", - "qrcode" - ] - }, - { - "name": "twig/extensions", - "version": "v1.5.4", - "version_normalized": "1.5.4.0", - "source": { - "type": "git", - "url": "https://github.com/twigphp/Twig-extensions.git", - "reference": "57873c8b0c1be51caa47df2cdb824490beb16202" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig-extensions/zipball/57873c8b0c1be51caa47df2cdb824490beb16202", - "reference": "57873c8b0c1be51caa47df2cdb824490beb16202", - "shasum": "" - }, - "require": { - "twig/twig": "^1.27|^2.0" - }, - "require-dev": { - "symfony/phpunit-bridge": "^3.4", - "symfony/translation": "^2.7|^3.4" - }, - "suggest": { - "symfony/translation": "Allow the time_diff output to be translated" - }, - "time": "2018-12-05T18:34:18+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.5-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-0": { - "Twig_Extensions_": "lib/" - }, - "psr-4": { - "Twig\\Extensions\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - } - ], - "description": "Common additional features for Twig that do not directly belong in core", - "keywords": [ - "i18n", - "text" - ] - }, - { - "name": "twig/twig", - "version": "v2.12.3", - "version_normalized": "2.12.3.0", - "source": { - "type": "git", - "url": "https://github.com/twigphp/Twig.git", - "reference": "97b6311585cae66a26833b14b33785f5797f7d39" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/97b6311585cae66a26833b14b33785f5797f7d39", - "reference": "97b6311585cae66a26833b14b33785f5797f7d39", - "shasum": "" - }, - "require": { - "php": "^7.0", - "symfony/polyfill-ctype": "^1.8", - "symfony/polyfill-mbstring": "^1.3" - }, - "require-dev": { - "psr/container": "^1.0", - "symfony/phpunit-bridge": "^4.4|^5.0" - }, - "time": "2019-12-28T07:12:03+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.12-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-0": { - "Twig_": "lib/" - }, - "psr-4": { - "Twig\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" - }, - { - "name": "Twig Team", - "role": "Contributors" - }, - { - "name": "Armin Ronacher", - "email": "armin.ronacher@active-4.com", - "role": "Project Founder" - } - ], - "description": "Twig, the flexible, fast, and secure template language for PHP", - "homepage": "https://twig.symfony.com", - "keywords": [ - "templating" - ] - }, - { - "name": "williamdes/mariadb-mysql-kbs", - "version": "1.2.8", - "version_normalized": "1.2.8.0", - "source": { - "type": "git", - "url": "https://github.com/williamdes/mariadb-mysql-kbs.git", - "reference": "ebae1986d3dec93df3bdf9ae5c664485c12d2b94" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/williamdes/mariadb-mysql-kbs/zipball/ebae1986d3dec93df3bdf9ae5c664485c12d2b94", - "reference": "ebae1986d3dec93df3bdf9ae5c664485c12d2b94", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "require-dev": { - "php-school/cli-menu": "^3.0", - "phpstan/phpstan": "^0.11.3", - "phpunit/phpunit": "^7.0 || ^8.0", - "slevomat/coding-standard": "^5.0", - "squizlabs/php_codesniffer": "^3.3", - "swaggest/json-schema": "^0.12.9" - }, - "time": "2019-11-10T13:56:20+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Williamdes\\MariaDBMySQLKBS\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MPL-2.0" - ], - "authors": [ - { - "name": "William Desportes", - "email": "williamdes@wdes.fr" - } - ], - "description": "An index of the MariaDB and MySQL Knowledge bases", - "homepage": "https://github.com/williamdes/mariadb-mysql-kbs", - "keywords": [ - "composer-package", - "dataset", - "json", - "kb", - "knowledge-base", - "library", - "mariadb", - "mariadb-knowledge-bases", - "mysql", - "mysql-knowledge-bases", - "npm-package" - ] - } -] diff --git a/srcs/phpmyadmin/vendor/dasprid/enum/.coveralls.yml b/srcs/phpmyadmin/vendor/dasprid/enum/.coveralls.yml deleted file mode 100644 index bc71b62..0000000 --- a/srcs/phpmyadmin/vendor/dasprid/enum/.coveralls.yml +++ /dev/null @@ -1,2 +0,0 @@ -coverage_clover: clover.xml -json_path: coveralls-upload.json diff --git a/srcs/phpmyadmin/vendor/dasprid/enum/.travis.yml b/srcs/phpmyadmin/vendor/dasprid/enum/.travis.yml deleted file mode 100644 index e4c6453..0000000 --- a/srcs/phpmyadmin/vendor/dasprid/enum/.travis.yml +++ /dev/null @@ -1,41 +0,0 @@ -sudo: false - -language: php - -cache: - directories: - - $HOME/.composer/cache - - $HOME/.local - - vendor - -matrix: - fast_finish: true - include: - - php: 7.1 - env: - - EXECUTE_CS_CHECK=true - - EXECUTE_TEST_COVERALLS=true - - PATH="$HOME/.local/bin:$PATH" - - php: nightly - allow_failures: - - php: nightly - -before_install: - - if [[ $EXECUTE_TEST_COVERALLS != 'true' ]]; then phpenv config-rm xdebug.ini || return 0 ; fi - - composer self-update - - if [[ $EXECUTE_TEST_COVERALLS == 'true' ]]; then composer require --dev --no-update satooshi/php-coveralls:dev-master ; fi - -install: - - travis_retry composer install --no-interaction - - composer info -i - -script: - - if [[ $EXECUTE_TEST_COVERALLS == 'true' ]]; then vendor/bin/phpunit --coverage-clover clover.xml ; fi - - if [[ $EXECUTE_TEST_COVERALLS != 'true' ]]; then vendor/bin/phpunit ; fi - - if [[ $EXECUTE_CS_CHECK == 'true' ]]; then vendor/bin/phpcs ; fi - -after_script: - - if [[ $EXECUTE_TEST_COVERALLS == 'true' ]]; then vendor/bin/coveralls ; fi - -notifications: - email: true diff --git a/srcs/phpmyadmin/vendor/dasprid/enum/README.md b/srcs/phpmyadmin/vendor/dasprid/enum/README.md deleted file mode 100644 index 9e9ca12..0000000 --- a/srcs/phpmyadmin/vendor/dasprid/enum/README.md +++ /dev/null @@ -1,164 +0,0 @@ -# PHP 7.1 enums - -[![Build Status](https://travis-ci.org/DASPRiD/Enum.svg?branch=master)](https://travis-ci.org/DASPRiD/Enum) -[![Coverage Status](https://coveralls.io/repos/github/DASPRiD/Enum/badge.svg?branch=master)](https://coveralls.io/github/DASPRiD/Enum?branch=master) -[![Latest Stable Version](https://poser.pugx.org/dasprid/enum/v/stable)](https://packagist.org/packages/dasprid/enum) -[![Total Downloads](https://poser.pugx.org/dasprid/enum/downloads)](https://packagist.org/packages/dasprid/enum) -[![License](https://poser.pugx.org/dasprid/enum/license)](https://packagist.org/packages/dasprid/enum) - -It is a well known fact that PHP is missing a basic enum type, ignoring the rather incomplete `SplEnum` implementation -which is only available as a PECL extension. There are also quite a few other userland enum implementations around, -but all of them have one or another compromise. This library tries to close that gap as far as PHP allows it to. - -## Usage - -### Basics - -At its core, there is the `DASPRiD\Enum\AbstractEnum` class, which by default will work with constants like any other -enum implementation you might know. The first clear difference is that you should define all the constants as protected -(so nobody outside your class can read them but the `AbstractEnum` can still do so). The other even mightier difference -is that, for simple enums, the value of the constant doesn't matter at all. Let's have a look at a simple example: - -```php -use DASPRiD\Enum\AbstractEnum; - -/** - * @method static self MONDAY() - * @method static self TUESDAY() - * @method static self WEDNESDAY() - * @method static self THURSDAY() - * @method static self FRIDAY() - * @method static self SATURDAY() - * @method static self SUNDAY() - */ -final class WeekDay extends AbstractEnum -{ - protected const MONDAY = null; - protected const TUESDAY = null; - protected const WEDNESDAY = null; - protected const THURSDAY = null; - protected const FRIDAY = null; - protected const SATURDAY = null; - protected const SUNDAY = null; -} -``` - -If you need to provide constants for either internal use or public use, you can mark them as either private or public, -in which case they will be ignored by the enum, which only considers protected constants as valid values. As you can -see, we specifically defined the generated magic methods in a class level doc block, so anyone using this class will -automatically have proper auto-completion in their IDE. Now since you have defined the enum, you can simply use it like -that: - -```php -function tellItLikeItIs(WeekDay $weekDay) -{ - switch ($weekDay) { - case WeekDay::MONDAY(): - echo 'Mondays are bad.'; - break; - - case WeekDay::FRIDAY(): - echo 'Fridays are better.'; - break; - - case WeekDay::SATURDAY(): - case WeekDay::SUNDAY(): - echo 'Weekends are best.'; - break; - - default: - echo 'Midweek days are so-so.'; - } -} - -tellItLikeItIs(WeekDay::MONDAY()); -tellItLikeItIs(WeekDay::WEDNESDAY()); -tellItLikeItIs(WeekDay::FRIDAY()); -tellItLikeItIs(WeekDay::SATURDAY()); -tellItLikeItIs(WeekDay::SUNDAY()); -``` - -### More complex example - -Of course, all enums are singletons, which are not cloneable or serializable. Thus you can be sure that there is always -just one instance of the same type. Of course, the values of constants are not completely useless, let's have a look at -a more complex example: - -```php -use DASPRiD\Enum\AbstractEnum; - -/** - * @method static self MERCURY() - * @method static self VENUS() - * @method static self EARTH() - * @method static self MARS() - * @method static self JUPITER() - * @method static self SATURN() - * @method static self URANUS() - * @method static self NEPTUNE() - */ -final class Planet extends AbstractEnum -{ - protected const MERCURY = [3.303e+23, 2.4397e6]; - protected const VENUS = [4.869e+24, 6.0518e6]; - protected const EARTH = [5.976e+24, 6.37814e6]; - protected const MARS = [6.421e+23, 3.3972e6]; - protected const JUPITER = [1.9e+27, 7.1492e7]; - protected const SATURN = [5.688e+26, 6.0268e7]; - protected const URANUS = [8.686e+25, 2.5559e7]; - protected const NEPTUNE = [1.024e+26, 2.4746e7]; - - /** - * Universal gravitational constant. - * - * @var float - */ - private const G = 6.67300E-11; - - /** - * Mass in kilograms. - * - * @var float - */ - private $mass; - - /** - * Radius in meters. - * - * @var float - */ - private $radius; - - protected function __construct(float $mass, float $radius) - { - $this->mass = $mass; - $this->radius = $radius; - } - - public function mass() : float - { - return $this->mass; - } - - public function radius() : float - { - return $this->radius; - } - - public function surfaceGravity() : float - { - return self::G * $this->mass / ($this->radius * $this->radius); - } - - public function surfaceWeight(float $otherMass) : float - { - return $otherMass * $this->surfaceGravity(); - } -} - -$myMass = 80; - -foreach (Planet::values() as $planet) { - printf("Your weight on %s is %f\n", $planet, $planet->surfaceWeight($myMass)); -} -``` diff --git a/srcs/phpmyadmin/vendor/dasprid/enum/composer.json b/srcs/phpmyadmin/vendor/dasprid/enum/composer.json deleted file mode 100644 index 41184d3..0000000 --- a/srcs/phpmyadmin/vendor/dasprid/enum/composer.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "dasprid/enum", - "description": "PHP 7.1 enum implementation", - "license": "BSD-2-Clause", - "authors": [ - { - "name": "Ben Scholzen 'DASPRiD'", - "homepage": "https://dasprids.de/", - "email": "mail@dasprids.de" - } - ], - "keywords": [ - "enum", - "map" - ], - "require-dev": { - "phpunit/phpunit": "^6.4", - "squizlabs/php_codesniffer": "^3.1" - }, - "autoload": { - "psr-4": { - "DASPRiD\\Enum\\": "src/" - } - }, - "autoload-dev": { - "psr-4": { - "DASPRiD\\EnumTest\\": "test/" - } - } -} diff --git a/srcs/phpmyadmin/vendor/dasprid/enum/phpcs.xml b/srcs/phpmyadmin/vendor/dasprid/enum/phpcs.xml deleted file mode 100644 index a184db8..0000000 --- a/srcs/phpmyadmin/vendor/dasprid/enum/phpcs.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - Enum coding standard - - - - - - - - - - - - - - - - - - - - - - - - - src - test - diff --git a/srcs/phpmyadmin/vendor/dasprid/enum/phpunit.xml.dist b/srcs/phpmyadmin/vendor/dasprid/enum/phpunit.xml.dist deleted file mode 100644 index 307a430..0000000 --- a/srcs/phpmyadmin/vendor/dasprid/enum/phpunit.xml.dist +++ /dev/null @@ -1,17 +0,0 @@ - - - - - ./test - - - - - - src - - - diff --git a/srcs/phpmyadmin/vendor/dasprid/enum/src/AbstractEnum.php b/srcs/phpmyadmin/vendor/dasprid/enum/src/AbstractEnum.php deleted file mode 100644 index bc36119..0000000 --- a/srcs/phpmyadmin/vendor/dasprid/enum/src/AbstractEnum.php +++ /dev/null @@ -1,241 +0,0 @@ -> - */ - private static $values = []; - - /** - * @var array - */ - private static $allValuesLoaded = []; - - /** - * @var array - */ - private static $constants = []; - - /** - * The constructor is private by default to avoid arbitrary enum creation. - * - * When creating your own constructor for a parameterized enum, make sure to declare it as protected, so that - * the static methods are able to construct it. Avoid making it public, as that would allow creation of - * non-singleton enum instances. - */ - private function __construct() - { - } - - /** - * Magic getter which forwards all calls to {@see self::valueOf()}. - * - * @return static - */ - final public static function __callStatic(string $name, array $arguments) : self - { - return static::valueOf($name); - } - - /** - * Returns an enum with the specified name. - * - * The name must match exactly an identifier used to declare an enum in this type (extraneous whitespace characters - * are not permitted). - * - * @return static - * @throws IllegalArgumentException if the enum has no constant with the specified name - */ - final public static function valueOf(string $name) : self - { - if (isset(self::$values[static::class][$name])) { - return self::$values[static::class][$name]; - } - - $constants = self::constants(); - - if (array_key_exists($name, $constants)) { - return self::createValue($name, $constants[$name][0], $constants[$name][1]); - } - - throw new IllegalArgumentException(sprintf('No enum constant %s::%s', static::class, $name)); - } - - /** - * @return static - */ - final private static function createValue(string $name, int $ordinal, array $arguments) : self - { - $instance = new static(...$arguments); - $instance->name = $name; - $instance->ordinal = $ordinal; - self::$values[static::class][$name] = $instance; - return $instance; - } - - /** - * Obtains all possible types defined by this enum. - * - * @return static[] - */ - final public static function values() : array - { - if (isset(self::$allValuesLoaded[static::class])) { - return self::$values[static::class]; - } - - if (! isset(self::$values[static::class])) { - self::$values[static::class] = []; - } - - foreach (self::constants() as $name => $constant) { - if (array_key_exists($name, self::$values[static::class])) { - continue; - } - - static::createValue($name, $constant[0], $constant[1]); - } - - uasort(self::$values[static::class], function (self $a, self $b) { - return $a->ordinal() <=> $b->ordinal(); - }); - - self::$allValuesLoaded[static::class] = true; - return self::$values[static::class]; - } - - final private static function constants() : array - { - if (isset(self::$constants[static::class])) { - return self::$constants[static::class]; - } - - self::$constants[static::class] = []; - $reflectionClass = new ReflectionClass(static::class); - $ordinal = -1; - - foreach ($reflectionClass->getReflectionConstants() as $reflectionConstant) { - if (! $reflectionConstant->isProtected()) { - continue; - } - - $value = $reflectionConstant->getValue(); - - self::$constants[static::class][$reflectionConstant->name] = [ - ++$ordinal, - is_array($value) ? $value : [] - ]; - } - - return self::$constants[static::class]; - } - - /** - * Returns the name of this enum constant, exactly as declared in its enum declaration. - * - * Most programmers should use the {@see self::__toString()} method in preference to this one, as the toString - * method may return a more user-friendly name. This method is designed primarily for use in specialized situations - * where correctness depends on getting the exact name, which will not vary from release to release. - */ - final public function name() : string - { - return $this->name; - } - - /** - * Returns the ordinal of this enumeration constant (its position in its enum declaration, where the initial - * constant is assigned an ordinal of zero). - * - * Most programmers will have no use for this method. It is designed for use by sophisticated enum-based data - * structures. - */ - final public function ordinal() : int - { - return $this->ordinal; - } - - /** - * Compares this enum with the specified object for order. - * - * Returns negative integer, zero or positive integer as this object is less than, equal to or greater than the - * specified object. - * - * Enums are only comparable to other enums of the same type. The natural order implemented by this method is the - * order in which the constants are declared. - * - * @throws MismatchException if the passed enum is not of the same type - */ - final public function compareTo(self $other) : int - { - if (! $other instanceof static) { - throw new MismatchException(sprintf( - 'The passed enum %s is not of the same type as %s', - get_class($other), - static::class - )); - } - - return $this->ordinal - $other->ordinal; - } - - /** - * Forbid cloning enums. - * - * @throws CloneNotSupportedException - */ - final public function __clone() - { - throw new CloneNotSupportedException(); - } - - /** - * Forbid serializing enums. - * - * @throws SerializeNotSupportedException - */ - final public function __sleep() : void - { - throw new SerializeNotSupportedException(); - } - - /** - * Forbid unserializing enums. - * - * @throws UnserializeNotSupportedException - */ - final public function __wakeup() : void - { - throw new UnserializeNotSupportedException(); - } - - /** - * Turns the enum into a string representation. - * - * You may override this method to give a more user-friendly version. - */ - public function __toString() : string - { - return $this->name; - } -} diff --git a/srcs/phpmyadmin/vendor/dasprid/enum/src/EnumMap.php b/srcs/phpmyadmin/vendor/dasprid/enum/src/EnumMap.php deleted file mode 100644 index 77c5f35..0000000 --- a/srcs/phpmyadmin/vendor/dasprid/enum/src/EnumMap.php +++ /dev/null @@ -1,375 +0,0 @@ - - */ - private $keyUniverse; - - /** - * Array representation of this map. The ith element is the value to which universe[i] is currently mapped, or null - * if it isn't mapped to anything, or NullValue if it's mapped to null. - * - * @var array - */ - private $values; - - /** - * @var int - */ - private $size = 0; - - /** - * Creates a new enum map. - * - * @param string $keyType the type of the keys, must extend AbstractEnum - * @param string $valueType the type of the values - * @param bool $allowNullValues whether to allow null values - * @throws IllegalArgumentException when key type does not extend AbstractEnum - */ - public function __construct(string $keyType, string $valueType, bool $allowNullValues) - { - if (! is_subclass_of($keyType, AbstractEnum::class)) { - throw new IllegalArgumentException(sprintf( - 'Class %s does not extend %s', - $keyType, - AbstractEnum::class - )); - } - - $this->keyType = $keyType; - $this->valueType = $valueType; - $this->allowNullValues = $allowNullValues; - $this->keyUniverse = $keyType::values(); - $this->values = array_fill(0, count($this->keyUniverse), null); - } - - /** - * Checks whether the map types match the supplied ones. - * - * You should call this method when an EnumMap is passed to you and you want to ensure that it's made up of the - * correct types. - * - * @throws ExpectationException when supplied key type mismatches local key type - * @throws ExpectationException when supplied value type mismatches local value type - * @throws ExpectationException when the supplied map allows null values, abut should not - */ - public function expect(string $keyType, string $valueType, bool $allowNullValues) : void - { - if ($keyType !== $this->keyType) { - throw new ExpectationException(sprintf( - 'Callee expected an EnumMap with key type %s, but got %s', - $keyType, - $this->keyType - )); - } - - if ($valueType !== $this->valueType) { - throw new ExpectationException(sprintf( - 'Callee expected an EnumMap with value type %s, but got %s', - $keyType, - $this->keyType - )); - } - - if ($allowNullValues !== $this->allowNullValues) { - throw new ExpectationException(sprintf( - 'Callee expected an EnumMap with nullable flag %s, but got %s', - ($allowNullValues ? 'true' : 'false'), - ($this->allowNullValues ? 'true' : 'false') - )); - } - } - - /** - * Returns the number of key-value mappings in this map. - */ - public function size() : int - { - return $this->size; - } - - /** - * Returns true if this map maps one or more keys to the specified value. - */ - public function containsValue($value) : bool - { - return in_array($this->maskNull($value), $this->values, true); - } - - /** - * Returns true if this map contains a mapping for the specified key. - */ - public function containsKey(AbstractEnum $key) : bool - { - $this->checkKeyType($key); - return null !== $this->values[$key->ordinal()]; - } - - /** - * Returns the value to which the specified key is mapped, or null if this map contains no mapping for the key. - * - * More formally, if this map contains a mapping from a key to a value, then this method returns the value; - * otherwise it returns null (there can be at most one such mapping). - * - * A return value of null does not necessarily indicate that the map contains no mapping for the key; it's also - * possible that hte map explicitly maps the key to null. The {@see self::containsKey()} operation may be used to - * distinguish these two cases. - * - * @return mixed - */ - public function get(AbstractEnum $key) - { - $this->checkKeyType($key); - return $this->unmaskNull($this->values[$key->ordinal()]); - } - - /** - * Associates the specified value with the specified key in this map. - * - * If the map previously contained a mapping for this key, the old value is replaced. - * - * @return mixed the previous value associated with the specified key, or null if there was no mapping for the key. - * (a null return can also indicate that the map previously associated null with the specified key.) - * @throws IllegalArgumentException when the passed values does not match the internal value type - */ - public function put(AbstractEnum $key, $value) - { - $this->checkKeyType($key); - - if (! $this->isValidValue($value)) { - throw new IllegalArgumentException(sprintf('Value is not of type %s', $this->valueType)); - } - - $index = $key->ordinal(); - $oldValue = $this->values[$index]; - $this->values[$index] = $this->maskNull($value); - - if (null === $oldValue) { - ++$this->size; - } - - return $this->unmaskNull($oldValue); - } - - /** - * Removes the mapping for this key frm this map if present. - * - * @return mixed the previous value associated with the specified key, or null if there was no mapping for the key. - * (a null return can also indicate that the map previously associated null with the specified key.) - */ - public function remove(AbstractEnum $key) - { - $this->checkKeyType($key); - - $index = $key->ordinal(); - $oldValue = $this->values[$index]; - $this->values[$index] = null; - - if (null !== $oldValue) { - --$this->size; - } - - return $this->unmaskNull($oldValue); - } - - /** - * Removes all mappings from this map. - */ - public function clear() : void - { - $this->values = array_fill(0, count($this->keyUniverse), null); - $this->size = 0; - } - - /** - * Compares the specified map with this map for quality. - * - * Returns true if the two maps represent the same mappings. - */ - public function equals(self $other) : bool - { - if ($this === $other) { - return true; - } - - if ($this->size !== $other->size) { - return false; - } - - return $this->values === $other->values; - } - - /** - * Returns the values contained in this map. - * - * The array will contain the values in the order their corresponding keys appear in the map, which is their natural - * order (the order in which the num constants are declared). - */ - public function values() : array - { - return array_values(array_map(function ($value) { - return $this->unmaskNull($value); - }, array_filter($this->values, function ($value) : bool { - return null !== $value; - }))); - } - - public function serialize() : string - { - $values = []; - - foreach ($this->values as $ordinal => $value) { - if (null === $value) { - continue; - } - - $values[$ordinal] = $this->unmaskNull($value); - } - - return serialize([ - 'keyType' => $this->keyType, - 'valueType' => $this->valueType, - 'allowNullValues' => $this->allowNullValues, - 'values' => $values, - ]); - } - - public function unserialize($serialized) : void - { - $data = unserialize($serialized); - $this->__construct($data['keyType'], $data['valueType'], $data['allowNullValues']); - - foreach ($this->keyUniverse as $key) { - if (array_key_exists($key->ordinal(), $data['values'])) { - $this->put($key, $data['values'][$key->ordinal()]); - } - } - } - - public function getIterator() : Traversable - { - foreach ($this->keyUniverse as $key) { - if (null === $this->values[$key->ordinal()]) { - continue; - } - - yield $key => $this->unmaskNull($this->values[$key->ordinal()]); - } - } - - private function maskNull($value) - { - if (null === $value) { - return NullValue::instance(); - } - - return $value; - } - - private function unmaskNull($value) - { - if ($value instanceof NullValue) { - return null; - } - - return $value; - } - - /** - * @throws IllegalArgumentException when the passed key does not match the internal key type - */ - private function checkKeyType(AbstractEnum $key) : void - { - if (get_class($key) !== $this->keyType) { - throw new IllegalArgumentException(sprintf( - 'Object of type %s is not the same type as %s', - get_class($key), - $this->keyType - )); - } - } - - private function isValidValue($value) : bool - { - if (null === $value) { - if ($this->allowNullValues) { - return true; - } - - return false; - } - - switch ($this->valueType) { - case 'mixed': - return true; - - case 'bool': - case 'boolean': - return is_bool($value); - - case 'int': - case 'integer': - return is_int($value); - - case 'float': - case 'double': - return is_float($value); - - case 'string': - return is_string($value); - - case 'object': - return is_object($value); - - case 'array': - return is_array($value); - } - - return $value instanceof $this->valueType; - } -} diff --git a/srcs/phpmyadmin/vendor/dasprid/enum/src/Exception/CloneNotSupportedException.php b/srcs/phpmyadmin/vendor/dasprid/enum/src/Exception/CloneNotSupportedException.php deleted file mode 100644 index 4b37dbe..0000000 --- a/srcs/phpmyadmin/vendor/dasprid/enum/src/Exception/CloneNotSupportedException.php +++ /dev/null @@ -1,10 +0,0 @@ -getProperty('constants'); - $constantsProperty->setAccessible(true); - $constantsProperty->setValue([]); - - $valuesProperty = $reflectionClass->getProperty('values'); - $valuesProperty->setAccessible(true); - $valuesProperty->setValue([]); - - $allValuesLoadedProperty = $reflectionClass->getProperty('allValuesLoaded'); - $allValuesLoadedProperty->setAccessible(true); - $allValuesLoadedProperty->setValue([]); - } - - public function testToString() : void - { - $weekday = WeekDay::FRIDAY(); - self::assertSame('FRIDAY', (string) $weekday); - } - - public function testName() : void - { - $this->assertSame('WEDNESDAY', WeekDay::WEDNESDAY()->name()); - } - - public function testOrdinal() : void - { - $this->assertSame(2, WeekDay::WEDNESDAY()->ordinal()); - } - - public function testSameInstanceIsReturned() : void - { - self::assertSame(WeekDay::FRIDAY(), WeekDay::FRIDAY()); - } - - public static function testValueOf() : void - { - self::assertSame(WeekDay::FRIDAY(), WeekDay::valueOf('FRIDAY')); - } - - public function testValueOfInvalidConstant() : void - { - $this->expectException(IllegalArgumentException::class); - WeekDay::valueOf('CATURDAY'); - } - - public function testExceptionOnCloneAttempt() : void - { - $this->expectException(CloneNotSupportedException::class); - clone WeekDay::FRIDAY(); - } - - public function testExceptionOnSerializeAttempt() : void - { - $this->expectException(SerializeNotSupportedException::class); - serialize(WeekDay::FRIDAY()); - } - - public function testExceptionOnUnserializeAttempt() : void - { - $this->expectException(UnserializeNotSupportedException::class); - unserialize('O:24:"DASPRiD\\EnumTest\\WeekDay":0:{}'); - } - - public function testReturnValueOfValuesIsSortedByOrdinal() : void - { - // Initialize some week days out of order - WeekDay::SATURDAY(); - WeekDay::TUESDAY(); - - $ordinals = array_values(array_map(function (WeekDay $weekDay) : int { - return $weekDay->ordinal(); - }, WeekDay::values())); - - self::assertSame([0, 1, 2, 3, 4, 5, 6], $ordinals); - - $cachedOrdinals = array_values(array_map(function (WeekDay $weekDay) : int { - return $weekDay->ordinal(); - }, WeekDay::values())); - $this->assertSame($ordinals, $cachedOrdinals); - } - - public function testCompareTo() : void - { - $this->assertSame(-4, WeekDay::WEDNESDAY()->compareTo(WeekDay::SUNDAY())); - $this->assertSame(4, WeekDay::SUNDAY()->compareTo(WeekDay::WEDNESDAY())); - $this->assertSame(0, WeekDay::WEDNESDAY()->compareTo(WeekDay::WEDNESDAY())); - } - - public function testCompareToWrongEnum() : void - { - $this->expectException(MismatchException::class); - WeekDay::MONDAY()->compareTo(Planet::EARTH()); - } - - public function testParameterizedEnum() : void - { - $planet = Planet::EARTH(); - $this->assertSame(5.976e+24, $planet->mass()); - $this->assertSame(6.37814e6, $planet->radius()); - } -} diff --git a/srcs/phpmyadmin/vendor/dasprid/enum/test/EnumMapTest.php b/srcs/phpmyadmin/vendor/dasprid/enum/test/EnumMapTest.php deleted file mode 100644 index d51a86c..0000000 --- a/srcs/phpmyadmin/vendor/dasprid/enum/test/EnumMapTest.php +++ /dev/null @@ -1,243 +0,0 @@ -expectException(IllegalArgumentException::class); - new EnumMap(stdClass::class, 'string', false); - } - - public function testUnexpectedKeyType() : void - { - $this->expectException(ExpectationException::class); - $map = new EnumMap(WeekDay::class, 'string', false); - $map->expect(Planet::class, 'string', false); - } - - public function testUnexpectedValueType() : void - { - $this->expectException(ExpectationException::class); - $map = new EnumMap(WeekDay::class, 'string', false); - $map->expect(WeekDay::class, 'int', false); - } - - public function testUnexpectedNullableValueType() : void - { - $this->expectException(ExpectationException::class); - $map = new EnumMap(WeekDay::class, 'string', true); - $map->expect(WeekDay::class, 'string', false); - } - - public function testExpectedTypes() : void - { - $map = new EnumMap(WeekDay::class, 'string', true); - $map->expect(WeekDay::class, 'string', true); - $this->addToAssertionCount(1); - } - - public function testSize() : void - { - $map = new EnumMap(WeekDay::class, 'string', true); - $this->assertSame(0, $map->size()); - $map->put(WeekDay::MONDAY(), 'foo'); - $this->assertSame(1, $map->size()); - } - - public function testContainsValue() : void - { - $map = new EnumMap(WeekDay::class, 'string', true); - $this->assertFalse($map->containsValue('foo')); - $map->put(WeekDay::TUESDAY(), 'foo'); - $this->assertTrue($map->containsValue('foo')); - $this->assertFalse($map->containsValue(null)); - $map->put(WeekDay::WEDNESDAY(), null); - $this->assertTrue($map->containsValue(null)); - } - - public function testContainsKey() : void - { - $map = new EnumMap(WeekDay::class, 'string', true); - $this->assertFalse($map->containsKey(WeekDay::TUESDAY())); - $map->put(WeekDay::TUESDAY(), 'foo'); - $this->assertTrue($map->containsKey(WeekDay::TUESDAY())); - $map->put(WeekDay::WEDNESDAY(), null); - $this->assertTrue($map->containsKey(WeekDay::WEDNESDAY())); - } - - public function testPutAndGet() : void - { - $map = new EnumMap(WeekDay::class, 'string', true); - $map->put(WeekDay::TUESDAY(), 'foo'); - $map->put(WeekDay::FRIDAY(), null); - $this->assertSame('foo', $map->get(WeekDay::TUESDAY())); - $this->assertSame(null, $map->get(WeekDay::WEDNESDAY())); - $this->assertSame(null, $map->get(WeekDay::FRIDAY())); - } - - public function testPutInvalidKey() : void - { - $this->expectException(IllegalArgumentException::class); - $map = new EnumMap(WeekDay::class, 'string', true); - $map->put(Planet::MARS(), 'foo'); - } - - public function invalidValues() : array - { - return [ - ['bool', null, false], - ['bool', 0], - ['boolean', 0], - ['int', 2.4], - ['integer', 5.3], - ['float', 3], - ['double', 7], - ['string', 1], - ['object', 1], - ['array', 1], - [stdClass::class, 1], - ]; - } - - /** - * @dataProvider invalidValues - * @param mixed $value - */ - public function testPutInvalidValue(string $valueType, $value, bool $allowNull = true) : void - { - $this->expectException(IllegalArgumentException::class); - $map = new EnumMap(WeekDay::class, $valueType, $allowNull); - $map->put(WeekDay::TUESDAY(), $value); - } - - public function validValues() : array - { - return [ - ['bool', null], - ['mixed', 'foo'], - ['mixed', 1], - ['mixed', new stdClass()], - ['bool', true], - ['boolean', false], - ['int', 1], - ['integer', 4], - ['float', 2.5], - ['double', 6.4], - ['string', 'foo'], - ['object', new stdClass()], - ['array', ['foo']], - [stdClass::class, new stdClass()], - ]; - } - - /** - * @dataProvider validValues - * @param mixed $value - */ - public function testPutValidValue(string $valueType, $value, bool $allowNull = true) : void - { - $map = new EnumMap(WeekDay::class, $valueType, $allowNull); - $map->put(WeekDay::TUESDAY(), $value); - $this->addToAssertionCount(1); - } - - public function testRemove() : void - { - $map = new EnumMap(WeekDay::class, 'string', true); - $map->put(WeekDay::TUESDAY(), 'foo'); - $map->remove(WeekDay::TUESDAY()); - $map->remove(WeekDay::WEDNESDAY()); - $this->assertSame(null, $map->get(WeekDay::TUESDAY())); - $this->assertSame(0, $map->size()); - } - - public function testClear() : void - { - $map = new EnumMap(WeekDay::class, 'string', true); - $map->put(WeekDay::TUESDAY(), 'foo'); - $map->clear(); - $this->assertSame(null, $map->get(WeekDay::TUESDAY())); - $this->assertSame(0, $map->size()); - } - - public function testEqualsWithSameInstance() : void - { - $map = new EnumMap(WeekDay::class, 'string', true); - $this->assertTrue($map->equals($map)); - } - - public function testEqualsWithDifferentSize() : void - { - $mapA = new EnumMap(WeekDay::class, 'string', true); - $mapB = new EnumMap(WeekDay::class, 'string', true); - $mapB->put(WeekDay::MONDAY(), 'foo'); - - $this->assertFalse($mapA->equals($mapB)); - } - - public function testEqualsWithDifferentValues() : void - { - $mapA = new EnumMap(WeekDay::class, 'string', true); - $mapA->put(WeekDay::MONDAY(), 'foo'); - $mapB = new EnumMap(WeekDay::class, 'string', true); - $mapB->put(WeekDay::MONDAY(), 'bar'); - - $this->assertFalse($mapA->equals($mapB)); - } - - public function testEqualsWithDifferentConstants() : void - { - $mapA = new EnumMap(WeekDay::class, 'string', true); - $mapA->put(WeekDay::MONDAY(), 'foo'); - $mapB = new EnumMap(WeekDay::class, 'string', true); - $mapB->put(WeekDay::TUESDAY(), 'foo'); - - $this->assertFalse($mapA->equals($mapB)); - } - - public function testValues() : void - { - $map = new EnumMap(WeekDay::class, 'string', true); - $this->assertSame([], $map->values()); - - $map->put(WeekDay::FRIDAY(), 'foo'); - $map->put(WeekDay::TUESDAY(), 'bar'); - $map->put(WeekDay::SUNDAY(), null); - - $this->assertSame(['bar', 'foo', null], $map->values()); - } - - public function testSerializeAndUnserialize() : void - { - $mapA = new EnumMap(WeekDay::class, 'string', true); - $mapA->put(WeekDay::MONDAY(), 'foo'); - $mapB = unserialize(serialize($mapA)); - - $this->assertTrue($mapA->equals($mapB)); - } - - public function testIterator() : void - { - $map = new EnumMap(WeekDay::class, 'string', true); - $map->put(WeekDay::FRIDAY(), 'foo'); - $map->put(WeekDay::TUESDAY(), 'bar'); - $map->put(WeekDay::SUNDAY(), null); - - $result = []; - - foreach ($map as $key => $value) { - $result[$key->ordinal()] = $value; - } - - $this->assertSame([1 => 'bar', 4 => 'foo', 6 => null], $result); - } -} diff --git a/srcs/phpmyadmin/vendor/dasprid/enum/test/NullValueTest.php b/srcs/phpmyadmin/vendor/dasprid/enum/test/NullValueTest.php deleted file mode 100644 index 9f70640..0000000 --- a/srcs/phpmyadmin/vendor/dasprid/enum/test/NullValueTest.php +++ /dev/null @@ -1,31 +0,0 @@ -expectException(CloneNotSupportedException::class); - clone NullValue::instance(); - } - - public function testExceptionOnSerializeAttempt() : void - { - $this->expectException(SerializeNotSupportedException::class); - serialize(NullValue::instance()); - } - - public function testExceptionOnUnserializeAttempt() : void - { - $this->expectException(UnserializeNotSupportedException::class); - unserialize('O:22:"DASPRiD\\Enum\\NullValue":0:{}'); - } -} diff --git a/srcs/phpmyadmin/vendor/dasprid/enum/test/Planet.php b/srcs/phpmyadmin/vendor/dasprid/enum/test/Planet.php deleted file mode 100644 index 3c44c1d..0000000 --- a/srcs/phpmyadmin/vendor/dasprid/enum/test/Planet.php +++ /dev/null @@ -1,73 +0,0 @@ -mass = $mass; - $this->radius = $radius; - } - - public function mass() : float - { - return $this->mass; - } - - public function radius() : float - { - return $this->radius; - } - - public function surfaceGravity() : float - { - return self::G * $this->mass / ($this->radius * $this->radius); - } - - public function surfaceWeight(float $otherMass) : float - { - return $otherMass * $this->surfaceGravity(); - } -} diff --git a/srcs/phpmyadmin/vendor/dasprid/enum/test/WeekDay.php b/srcs/phpmyadmin/vendor/dasprid/enum/test/WeekDay.php deleted file mode 100644 index 70b8db5..0000000 --- a/srcs/phpmyadmin/vendor/dasprid/enum/test/WeekDay.php +++ /dev/null @@ -1,26 +0,0 @@ - - -**Environment** - - - * OS name and version: - * PHP version: - * Web server name and version: - * `google/recaptcha` version: - * Browser name and version: - -**Reproducing the issue** - - - * URL (optional): - * Code (optional): - - ***User steps*** - - - 1. Visit page... diff --git a/srcs/phpmyadmin/vendor/google/recaptcha/.travis.yml b/srcs/phpmyadmin/vendor/google/recaptcha/.travis.yml deleted file mode 100644 index a625795..0000000 --- a/srcs/phpmyadmin/vendor/google/recaptcha/.travis.yml +++ /dev/null @@ -1,33 +0,0 @@ -dist: trusty - -language: php - -sudo: false - -php: - - '5.5' - - '5.6' - - '7.0' - - '7.1' - - '7.2' - - '7.3' - -before_script: - - composer install - - phpenv version-name | grep ^5.[34] && echo "extension=apc.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini ; true - - phpenv version-name | grep ^5.[34] && echo "apc.enable_cli=1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini ; true - -script: - - mkdir -p build/logs - - composer run-script lint - - composer run-script test - -after_success: - - travis_retry php vendor/bin/php-coveralls - -cache: - directories: - - "$HOME/.composer/cache/files" - -git: - depth: 5 diff --git a/srcs/phpmyadmin/vendor/google/recaptcha/ARCHITECTURE.md b/srcs/phpmyadmin/vendor/google/recaptcha/ARCHITECTURE.md deleted file mode 100644 index 13add26..0000000 --- a/srcs/phpmyadmin/vendor/google/recaptcha/ARCHITECTURE.md +++ /dev/null @@ -1,64 +0,0 @@ -# Architecture - -The general pattern of usage is to instantiate the `ReCaptcha` class with your -secret key, specify any additional validation rules, and then call `verify()` -with the reCAPTCHA response and user's IP address. For example: - -```php -setExpectedHostname('recaptcha-demo.appspot.com') - ->verify($gRecaptchaResponse, $remoteIp); -if ($resp->isSuccess()) { - // Verified! -} else { - $errors = $resp->getErrorCodes(); -} -``` - -By default, this will use the -[`stream_context_create()`](https://secure.php.net/stream_context_create) and -[`file_get_contents()`](https://secure.php.net/file_get_contents) to make a POST -request to the reCAPTCHA service. This is handled by the -[`RequestMethod\Post`](./src/ReCaptcha/RequestMethod/Post.php) class. - -## Alternate request methods - -You may need to use other methods for making requests in your environment. The -[`ReCaptcha`](./src/ReCaptcha/ReCaptcha.php) class allows an optional -[`RequestMethod`](./src/ReCaptcha/RequestMethod.php) instance to configure this. -For example, if you want to use [cURL](https://secure.php.net/curl) instead you -can do this: - -```php -setExpectedHostname('recaptcha-demo.appspot.com') - ->verify($gRecaptchaResponse, $remoteIp); -if ($resp->isSuccess()) { - // Verified! -} else { - $errors = $resp->getErrorCodes(); -} -``` - -The following methods are available: - -- `setExpectedHostname($hostname)`: ensures the hostname matches. You must do - this if you have disabled "Domain/Package Name Validation" for your - credentials. -- `setExpectedApkPackageName($apkPackageName)`: if you're verifying a response - from an Android app. Again, you must do this if you have disabled - "Domain/Package Name Validation" for your credentials. -- `setExpectedAction($action)`: ensures the action matches for the v3 API. -- `setScoreThreshold($threshold)`: set a score theshold for responses from the - v3 API -- `setChallengeTimeout($timeoutSeconds)`: set a timeout between the user passing - the reCAPTCHA and your server processing it. - -Each of the `set`\*`()` methods return the `ReCaptcha` instance so you can chain -them together. For example: - -```php -setExpectedHostname('recaptcha-demo.appspot.com') - ->setExpectedAction('homepage') - ->setScoreThreshold(0.5) - ->verify($gRecaptchaResponse, $remoteIp); - -if ($resp->isSuccess()) { - // Verified! -} else { - $errors = $resp->getErrorCodes(); -} -``` - -You can find the constants for the libraries error codes in the `ReCaptcha` -class constants, e.g. `ReCaptcha::E_HOSTNAME_MISMATCH` - -For more details on usage and structure, see [ARCHITECTURE](ARCHITECTURE.md). - -### Examples - -You can see examples of each reCAPTCHA type in [examples/](examples/). You can -run the examples locally by using the Composer script: - -```sh -composer run-script serve-examples -``` - -This makes use of the in-built PHP dev server to host the examples at -http://localhost:8080/ - -These are also hosted on Google AppEngine Flexible environment at -https://recaptcha-demo.appspot.com/. This is configured by -[`app.yaml`](./app.yaml) which you can also use to [deploy to your own AppEngine -project](https://cloud.google.com/appengine/docs/flexible/php/download). - -## Contributing - -No one ever has enough engineers, so we're very happy to accept contributions -via Pull Requests. For details, see [CONTRIBUTING](CONTRIBUTING.md) diff --git a/srcs/phpmyadmin/vendor/google/recaptcha/app.yaml b/srcs/phpmyadmin/vendor/google/recaptcha/app.yaml deleted file mode 100644 index b6ccaf1..0000000 --- a/srcs/phpmyadmin/vendor/google/recaptcha/app.yaml +++ /dev/null @@ -1,8 +0,0 @@ -runtime: php -env: flex - -skip_files: -- tests - -runtime_config: - document_root: examples diff --git a/srcs/phpmyadmin/vendor/google/recaptcha/composer.json b/srcs/phpmyadmin/vendor/google/recaptcha/composer.json deleted file mode 100644 index ab6b4f1..0000000 --- a/srcs/phpmyadmin/vendor/google/recaptcha/composer.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "google/recaptcha", - "description": "Client library for reCAPTCHA, a free service that protects websites from spam and abuse.", - "type": "library", - "keywords": ["recaptcha", "captcha", "spam", "abuse"], - "homepage": "https://www.google.com/recaptcha/", - "license": "BSD-3-Clause", - "support": { - "forum": "https://groups.google.com/forum/#!forum/recaptcha", - "source": "https://github.com/google/recaptcha" - }, - "require": { - "php": ">=5.5" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.36|^5.7.27|^6.59|^7.5.11", - "friendsofphp/php-cs-fixer": "^2.2.20|^2.15", - "php-coveralls/php-coveralls": "^2.1" - }, - "autoload": { - "psr-4": { - "ReCaptcha\\": "src/ReCaptcha" - } - }, - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, - "scripts": { - "lint": "vendor/bin/php-cs-fixer -vvv fix --using-cache=no --dry-run .", - "lint-fix": "vendor/bin/php-cs-fixer -vvv fix --using-cache=no .", - "test": "vendor/bin/phpunit --colors=always", - "serve-examples": "@php -S localhost:8080 -t examples" - }, - "config": { - "process-timeout": 0 - } -} diff --git a/srcs/phpmyadmin/vendor/google/recaptcha/phpunit.xml.dist b/srcs/phpmyadmin/vendor/google/recaptcha/phpunit.xml.dist deleted file mode 100644 index ae86610..0000000 --- a/srcs/phpmyadmin/vendor/google/recaptcha/phpunit.xml.dist +++ /dev/null @@ -1,20 +0,0 @@ - - - - - tests/ReCaptcha/ - - - - - src/ReCaptcha/ - - - - - - diff --git a/srcs/phpmyadmin/vendor/google/recaptcha/src/ReCaptcha/ReCaptcha.php b/srcs/phpmyadmin/vendor/google/recaptcha/src/ReCaptcha/ReCaptcha.php deleted file mode 100644 index 177fa44..0000000 --- a/srcs/phpmyadmin/vendor/google/recaptcha/src/ReCaptcha/ReCaptcha.php +++ /dev/null @@ -1,269 +0,0 @@ -secret = $secret; - $this->requestMethod = (is_null($requestMethod)) ? new RequestMethod\Post() : $requestMethod; - } - - /** - * Calls the reCAPTCHA siteverify API to verify whether the user passes - * CAPTCHA test and additionally runs any specified additional checks - * - * @param string $response The user response token provided by reCAPTCHA, verifying the user on your site. - * @param string $remoteIp The end user's IP address. - * @return Response Response from the service. - */ - public function verify($response, $remoteIp = null) - { - // Discard empty solution submissions - if (empty($response)) { - $recaptchaResponse = new Response(false, array(self::E_MISSING_INPUT_RESPONSE)); - return $recaptchaResponse; - } - - $params = new RequestParameters($this->secret, $response, $remoteIp, self::VERSION); - $rawResponse = $this->requestMethod->submit($params); - $initialResponse = Response::fromJson($rawResponse); - $validationErrors = array(); - - if (isset($this->hostname) && strcasecmp($this->hostname, $initialResponse->getHostname()) !== 0) { - $validationErrors[] = self::E_HOSTNAME_MISMATCH; - } - - if (isset($this->apkPackageName) && strcasecmp($this->apkPackageName, $initialResponse->getApkPackageName()) !== 0) { - $validationErrors[] = self::E_APK_PACKAGE_NAME_MISMATCH; - } - - if (isset($this->action) && strcasecmp($this->action, $initialResponse->getAction()) !== 0) { - $validationErrors[] = self::E_ACTION_MISMATCH; - } - - if (isset($this->threshold) && $this->threshold > $initialResponse->getScore()) { - $validationErrors[] = self::E_SCORE_THRESHOLD_NOT_MET; - } - - if (isset($this->timeoutSeconds)) { - $challengeTs = strtotime($initialResponse->getChallengeTs()); - - if ($challengeTs > 0 && time() - $challengeTs > $this->timeoutSeconds) { - $validationErrors[] = self::E_CHALLENGE_TIMEOUT; - } - } - - if (empty($validationErrors)) { - return $initialResponse; - } - - return new Response( - false, - array_merge($initialResponse->getErrorCodes(), $validationErrors), - $initialResponse->getHostname(), - $initialResponse->getChallengeTs(), - $initialResponse->getApkPackageName(), - $initialResponse->getScore(), - $initialResponse->getAction() - ); - } - - /** - * Provide a hostname to match against in verify() - * This should be without a protocol or trailing slash, e.g. www.google.com - * - * @param string $hostname Expected hostname - * @return ReCaptcha Current instance for fluent interface - */ - public function setExpectedHostname($hostname) - { - $this->hostname = $hostname; - return $this; - } - - /** - * Provide an APK package name to match against in verify() - * - * @param string $apkPackageName Expected APK package name - * @return ReCaptcha Current instance for fluent interface - */ - public function setExpectedApkPackageName($apkPackageName) - { - $this->apkPackageName = $apkPackageName; - return $this; - } - - /** - * Provide an action to match against in verify() - * This should be set per page. - * - * @param string $action Expected action - * @return ReCaptcha Current instance for fluent interface - */ - public function setExpectedAction($action) - { - $this->action = $action; - return $this; - } - - /** - * Provide a threshold to meet or exceed in verify() - * Threshold should be a float between 0 and 1 which will be tested as response >= threshold. - * - * @param float $threshold Expected threshold - * @return ReCaptcha Current instance for fluent interface - */ - public function setScoreThreshold($threshold) - { - $this->threshold = floatval($threshold); - return $this; - } - - /** - * Provide a timeout in seconds to test against the challenge timestamp in verify() - * - * @param int $timeoutSeconds Expected hostname - * @return ReCaptcha Current instance for fluent interface - */ - public function setChallengeTimeout($timeoutSeconds) - { - $this->timeoutSeconds = $timeoutSeconds; - return $this; - } -} diff --git a/srcs/phpmyadmin/vendor/google/recaptcha/src/ReCaptcha/RequestMethod.php b/srcs/phpmyadmin/vendor/google/recaptcha/src/ReCaptcha/RequestMethod.php deleted file mode 100644 index 0a2a671..0000000 --- a/srcs/phpmyadmin/vendor/google/recaptcha/src/ReCaptcha/RequestMethod.php +++ /dev/null @@ -1,50 +0,0 @@ -curl = (is_null($curl)) ? new Curl() : $curl; - $this->siteVerifyUrl = (is_null($siteVerifyUrl)) ? ReCaptcha::SITE_VERIFY_URL : $siteVerifyUrl; - } - - /** - * Submit the cURL request with the specified parameters. - * - * @param RequestParameters $params Request parameters - * @return string Body of the reCAPTCHA response - */ - public function submit(RequestParameters $params) - { - $handle = $this->curl->init($this->siteVerifyUrl); - - $options = array( - CURLOPT_POST => true, - CURLOPT_POSTFIELDS => $params->toQueryString(), - CURLOPT_HTTPHEADER => array( - 'Content-Type: application/x-www-form-urlencoded' - ), - CURLINFO_HEADER_OUT => false, - CURLOPT_HEADER => false, - CURLOPT_RETURNTRANSFER => true, - CURLOPT_SSL_VERIFYPEER => true - ); - $this->curl->setoptArray($handle, $options); - - $response = $this->curl->exec($handle); - $this->curl->close($handle); - - if ($response !== false) { - return $response; - } - - return '{"success": false, "error-codes": ["'.ReCaptcha::E_CONNECTION_FAILED.'"]}'; - } -} diff --git a/srcs/phpmyadmin/vendor/google/recaptcha/src/ReCaptcha/RequestMethod/Post.php b/srcs/phpmyadmin/vendor/google/recaptcha/src/ReCaptcha/RequestMethod/Post.php deleted file mode 100644 index a4ff716..0000000 --- a/srcs/phpmyadmin/vendor/google/recaptcha/src/ReCaptcha/RequestMethod/Post.php +++ /dev/null @@ -1,88 +0,0 @@ -siteVerifyUrl = (is_null($siteVerifyUrl)) ? ReCaptcha::SITE_VERIFY_URL : $siteVerifyUrl; - } - - /** - * Submit the POST request with the specified parameters. - * - * @param RequestParameters $params Request parameters - * @return string Body of the reCAPTCHA response - */ - public function submit(RequestParameters $params) - { - $options = array( - 'http' => array( - 'header' => "Content-type: application/x-www-form-urlencoded\r\n", - 'method' => 'POST', - 'content' => $params->toQueryString(), - // Force the peer to validate (not needed in 5.6.0+, but still works) - 'verify_peer' => true, - ), - ); - $context = stream_context_create($options); - $response = file_get_contents($this->siteVerifyUrl, false, $context); - - if ($response !== false) { - return $response; - } - - return '{"success": false, "error-codes": ["'.ReCaptcha::E_CONNECTION_FAILED.'"]}'; - } -} diff --git a/srcs/phpmyadmin/vendor/google/recaptcha/src/ReCaptcha/RequestMethod/Socket.php b/srcs/phpmyadmin/vendor/google/recaptcha/src/ReCaptcha/RequestMethod/Socket.php deleted file mode 100644 index 236bd5f..0000000 --- a/srcs/phpmyadmin/vendor/google/recaptcha/src/ReCaptcha/RequestMethod/Socket.php +++ /dev/null @@ -1,112 +0,0 @@ -handle = fsockopen($hostname, $port, $errno, $errstr, (is_null($timeout) ? ini_get("default_socket_timeout") : $timeout)); - - if ($this->handle != false && $errno === 0 && $errstr === '') { - return $this->handle; - } - return false; - } - - /** - * fwrite - * - * @see http://php.net/fwrite - * @param string $string - * @param int $length - * @return int | bool - */ - public function fwrite($string, $length = null) - { - return fwrite($this->handle, $string, (is_null($length) ? strlen($string) : $length)); - } - - /** - * fgets - * - * @see http://php.net/fgets - * @param int $length - * @return string - */ - public function fgets($length = null) - { - return fgets($this->handle, $length); - } - - /** - * feof - * - * @see http://php.net/feof - * @return bool - */ - public function feof() - { - return feof($this->handle); - } - - /** - * fclose - * - * @see http://php.net/fclose - * @return bool - */ - public function fclose() - { - return fclose($this->handle); - } -} diff --git a/srcs/phpmyadmin/vendor/google/recaptcha/src/ReCaptcha/RequestMethod/SocketPost.php b/srcs/phpmyadmin/vendor/google/recaptcha/src/ReCaptcha/RequestMethod/SocketPost.php deleted file mode 100644 index 7edffb8..0000000 --- a/srcs/phpmyadmin/vendor/google/recaptcha/src/ReCaptcha/RequestMethod/SocketPost.php +++ /dev/null @@ -1,108 +0,0 @@ -socket = (is_null($socket)) ? new Socket() : $socket; - $this->siteVerifyUrl = (is_null($siteVerifyUrl)) ? ReCaptcha::SITE_VERIFY_URL : $siteVerifyUrl; - } - - /** - * Submit the POST request with the specified parameters. - * - * @param RequestParameters $params Request parameters - * @return string Body of the reCAPTCHA response - */ - public function submit(RequestParameters $params) - { - $errno = 0; - $errstr = ''; - $urlParsed = parse_url($this->siteVerifyUrl); - - if (false === $this->socket->fsockopen('ssl://' . $urlParsed['host'], 443, $errno, $errstr, 30)) { - return '{"success": false, "error-codes": ["'.ReCaptcha::E_CONNECTION_FAILED.'"]}'; - } - - $content = $params->toQueryString(); - - $request = "POST " . $urlParsed['path'] . " HTTP/1.1\r\n"; - $request .= "Host: " . $urlParsed['host'] . "\r\n"; - $request .= "Content-Type: application/x-www-form-urlencoded\r\n"; - $request .= "Content-length: " . strlen($content) . "\r\n"; - $request .= "Connection: close\r\n\r\n"; - $request .= $content . "\r\n\r\n"; - - $this->socket->fwrite($request); - $response = ''; - - while (!$this->socket->feof()) { - $response .= $this->socket->fgets(4096); - } - - $this->socket->fclose(); - - if (0 !== strpos($response, 'HTTP/1.1 200 OK')) { - return '{"success": false, "error-codes": ["'.ReCaptcha::E_BAD_RESPONSE.'"]}'; - } - - $parts = preg_split("#\n\s*\n#Uis", $response); - - return $parts[1]; - } -} diff --git a/srcs/phpmyadmin/vendor/google/recaptcha/src/ReCaptcha/RequestParameters.php b/srcs/phpmyadmin/vendor/google/recaptcha/src/ReCaptcha/RequestParameters.php deleted file mode 100644 index e9ba453..0000000 --- a/srcs/phpmyadmin/vendor/google/recaptcha/src/ReCaptcha/RequestParameters.php +++ /dev/null @@ -1,111 +0,0 @@ -secret = $secret; - $this->response = $response; - $this->remoteIp = $remoteIp; - $this->version = $version; - } - - /** - * Array representation. - * - * @return array Array formatted parameters. - */ - public function toArray() - { - $params = array('secret' => $this->secret, 'response' => $this->response); - - if (!is_null($this->remoteIp)) { - $params['remoteip'] = $this->remoteIp; - } - - if (!is_null($this->version)) { - $params['version'] = $this->version; - } - - return $params; - } - - /** - * Query string representation for HTTP request. - * - * @return string Query string formatted parameters. - */ - public function toQueryString() - { - return http_build_query($this->toArray(), '', '&'); - } -} diff --git a/srcs/phpmyadmin/vendor/google/recaptcha/src/ReCaptcha/Response.php b/srcs/phpmyadmin/vendor/google/recaptcha/src/ReCaptcha/Response.php deleted file mode 100644 index 55838c0..0000000 --- a/srcs/phpmyadmin/vendor/google/recaptcha/src/ReCaptcha/Response.php +++ /dev/null @@ -1,218 +0,0 @@ -success = $success; - $this->hostname = $hostname; - $this->challengeTs = $challengeTs; - $this->apkPackageName = $apkPackageName; - $this->score = $score; - $this->action = $action; - $this->errorCodes = $errorCodes; - } - - /** - * Is success? - * - * @return boolean - */ - public function isSuccess() - { - return $this->success; - } - - /** - * Get error codes. - * - * @return array - */ - public function getErrorCodes() - { - return $this->errorCodes; - } - - /** - * Get hostname. - * - * @return string - */ - public function getHostname() - { - return $this->hostname; - } - - /** - * Get challenge timestamp - * - * @return string - */ - public function getChallengeTs() - { - return $this->challengeTs; - } - - /** - * Get APK package name - * - * @return string - */ - public function getApkPackageName() - { - return $this->apkPackageName; - } - /** - * Get score - * - * @return float - */ - public function getScore() - { - return $this->score; - } - - /** - * Get action - * - * @return string - */ - public function getAction() - { - return $this->action; - } - - public function toArray() - { - return array( - 'success' => $this->isSuccess(), - 'hostname' => $this->getHostname(), - 'challenge_ts' => $this->getChallengeTs(), - 'apk_package_name' => $this->getApkPackageName(), - 'score' => $this->getScore(), - 'action' => $this->getAction(), - 'error-codes' => $this->getErrorCodes(), - ); - } -} diff --git a/srcs/phpmyadmin/vendor/google/recaptcha/src/autoload.php b/srcs/phpmyadmin/vendor/google/recaptcha/src/autoload.php deleted file mode 100644 index 7947a10..0000000 --- a/srcs/phpmyadmin/vendor/google/recaptcha/src/autoload.php +++ /dev/null @@ -1,69 +0,0 @@ - - - - - ./tests - - - - - ./src - - - \ No newline at end of file diff --git a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/psalm.xml b/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/psalm.xml deleted file mode 100644 index 0a17264..0000000 --- a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/psalm.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/Base32.php b/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/Base32.php deleted file mode 100644 index 18c0ac9..0000000 --- a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/Base32.php +++ /dev/null @@ -1,471 +0,0 @@ - 96 && $src < 123) $ret += $src - 97 + 1; // -64 - $ret += (((0x60 - $src) & ($src - 0x7b)) >> 8) & ($src - 96); - - // if ($src > 0x31 && $src < 0x38) $ret += $src - 24 + 1; // -23 - $ret += (((0x31 - $src) & ($src - 0x38)) >> 8) & ($src - 23); - - return $ret; - } - - /** - * Uses bitwise operators instead of table-lookups to turn 5-bit integers - * into 8-bit integers. - * - * Uppercase variant. - * - * @param int $src - * @return int - */ - protected static function decode5BitsUpper(int $src): int - { - $ret = -1; - - // if ($src > 64 && $src < 91) $ret += $src - 65 + 1; // -64 - $ret += (((0x40 - $src) & ($src - 0x5b)) >> 8) & ($src - 64); - - // if ($src > 0x31 && $src < 0x38) $ret += $src - 24 + 1; // -23 - $ret += (((0x31 - $src) & ($src - 0x38)) >> 8) & ($src - 23); - - return $ret; - } - - /** - * Uses bitwise operators instead of table-lookups to turn 8-bit integers - * into 5-bit integers. - * - * @param int $src - * @return string - */ - protected static function encode5Bits(int $src): string - { - $diff = 0x61; - - // if ($src > 25) $ret -= 72; - $diff -= ((25 - $src) >> 8) & 73; - - return \pack('C', $src + $diff); - } - - /** - * Uses bitwise operators instead of table-lookups to turn 8-bit integers - * into 5-bit integers. - * - * Uppercase variant. - * - * @param int $src - * @return string - */ - protected static function encode5BitsUpper(int $src): string - { - $diff = 0x41; - - // if ($src > 25) $ret -= 40; - $diff -= ((25 - $src) >> 8) & 41; - - return \pack('C', $src + $diff); - } - - - /** - * Base32 decoding - * - * @param string $src - * @param bool $upper - * @param bool $strictPadding - * @return string - * @throws \TypeError - * @psalm-suppress RedundantCondition - */ - protected static function doDecode(string $src, bool $upper = false, bool $strictPadding = false): string - { - // We do this to reduce code duplication: - $method = $upper - ? 'decode5BitsUpper' - : 'decode5Bits'; - - // Remove padding - $srcLen = Binary::safeStrlen($src); - if ($srcLen === 0) { - return ''; - } - if ($strictPadding) { - if (($srcLen & 7) === 0) { - for ($j = 0; $j < 7; ++$j) { - if ($src[$srcLen - 1] === '=') { - $srcLen--; - } else { - break; - } - } - } - if (($srcLen & 7) === 1) { - throw new \RangeException( - 'Incorrect padding' - ); - } - } else { - $src = \rtrim($src, '='); - $srcLen = Binary::safeStrlen($src); - } - - $err = 0; - $dest = ''; - // Main loop (no padding): - for ($i = 0; $i + 8 <= $srcLen; $i += 8) { - /** @var array $chunk */ - $chunk = \unpack('C*', Binary::safeSubstr($src, $i, 8)); - /** @var int $c0 */ - $c0 = static::$method($chunk[1]); - /** @var int $c1 */ - $c1 = static::$method($chunk[2]); - /** @var int $c2 */ - $c2 = static::$method($chunk[3]); - /** @var int $c3 */ - $c3 = static::$method($chunk[4]); - /** @var int $c4 */ - $c4 = static::$method($chunk[5]); - /** @var int $c5 */ - $c5 = static::$method($chunk[6]); - /** @var int $c6 */ - $c6 = static::$method($chunk[7]); - /** @var int $c7 */ - $c7 = static::$method($chunk[8]); - - $dest .= \pack( - 'CCCCC', - (($c0 << 3) | ($c1 >> 2) ) & 0xff, - (($c1 << 6) | ($c2 << 1) | ($c3 >> 4)) & 0xff, - (($c3 << 4) | ($c4 >> 1) ) & 0xff, - (($c4 << 7) | ($c5 << 2) | ($c6 >> 3)) & 0xff, - (($c6 << 5) | ($c7 ) ) & 0xff - ); - $err |= ($c0 | $c1 | $c2 | $c3 | $c4 | $c5 | $c6 | $c7) >> 8; - } - // The last chunk, which may have padding: - if ($i < $srcLen) { - /** @var array $chunk */ - $chunk = \unpack('C*', Binary::safeSubstr($src, $i, $srcLen - $i)); - /** @var int $c0 */ - $c0 = static::$method($chunk[1]); - - if ($i + 6 < $srcLen) { - /** @var int $c1 */ - $c1 = static::$method($chunk[2]); - /** @var int $c2 */ - $c2 = static::$method($chunk[3]); - /** @var int $c3 */ - $c3 = static::$method($chunk[4]); - /** @var int $c4 */ - $c4 = static::$method($chunk[5]); - /** @var int $c5 */ - $c5 = static::$method($chunk[6]); - /** @var int $c6 */ - $c6 = static::$method($chunk[7]); - - $dest .= \pack( - 'CCCC', - (($c0 << 3) | ($c1 >> 2) ) & 0xff, - (($c1 << 6) | ($c2 << 1) | ($c3 >> 4)) & 0xff, - (($c3 << 4) | ($c4 >> 1) ) & 0xff, - (($c4 << 7) | ($c5 << 2) | ($c6 >> 3)) & 0xff - ); - $err |= ($c0 | $c1 | $c2 | $c3 | $c4 | $c5 | $c6) >> 8; - } elseif ($i + 5 < $srcLen) { - /** @var int $c1 */ - $c1 = static::$method($chunk[2]); - /** @var int $c2 */ - $c2 = static::$method($chunk[3]); - /** @var int $c3 */ - $c3 = static::$method($chunk[4]); - /** @var int $c4 */ - $c4 = static::$method($chunk[5]); - /** @var int $c5 */ - $c5 = static::$method($chunk[6]); - - $dest .= \pack( - 'CCCC', - (($c0 << 3) | ($c1 >> 2) ) & 0xff, - (($c1 << 6) | ($c2 << 1) | ($c3 >> 4)) & 0xff, - (($c3 << 4) | ($c4 >> 1) ) & 0xff, - (($c4 << 7) | ($c5 << 2) ) & 0xff - ); - $err |= ($c0 | $c1 | $c2 | $c3 | $c4 | $c5) >> 8; - } elseif ($i + 4 < $srcLen) { - /** @var int $c1 */ - $c1 = static::$method($chunk[2]); - /** @var int $c2 */ - $c2 = static::$method($chunk[3]); - /** @var int $c3 */ - $c3 = static::$method($chunk[4]); - /** @var int $c4 */ - $c4 = static::$method($chunk[5]); - - $dest .= \pack( - 'CCC', - (($c0 << 3) | ($c1 >> 2) ) & 0xff, - (($c1 << 6) | ($c2 << 1) | ($c3 >> 4)) & 0xff, - (($c3 << 4) | ($c4 >> 1) ) & 0xff - ); - $err |= ($c0 | $c1 | $c2 | $c3 | $c4) >> 8; - } elseif ($i + 3 < $srcLen) { - /** @var int $c1 */ - $c1 = static::$method($chunk[2]); - /** @var int $c2 */ - $c2 = static::$method($chunk[3]); - /** @var int $c3 */ - $c3 = static::$method($chunk[4]); - - $dest .= \pack( - 'CC', - (($c0 << 3) | ($c1 >> 2) ) & 0xff, - (($c1 << 6) | ($c2 << 1) | ($c3 >> 4)) & 0xff - ); - $err |= ($c0 | $c1 | $c2 | $c3) >> 8; - } elseif ($i + 2 < $srcLen) { - /** @var int $c1 */ - $c1 = static::$method($chunk[2]); - /** @var int $c2 */ - $c2 = static::$method($chunk[3]); - - $dest .= \pack( - 'CC', - (($c0 << 3) | ($c1 >> 2) ) & 0xff, - (($c1 << 6) | ($c2 << 1) ) & 0xff - ); - $err |= ($c0 | $c1 | $c2) >> 8; - } elseif ($i + 1 < $srcLen) { - /** @var int $c1 */ - $c1 = static::$method($chunk[2]); - - $dest .= \pack( - 'C', - (($c0 << 3) | ($c1 >> 2) ) & 0xff - ); - $err |= ($c0 | $c1) >> 8; - } else { - $dest .= \pack( - 'C', - (($c0 << 3) ) & 0xff - ); - $err |= ($c0) >> 8; - } - } - /** @var bool $check */ - $check = ($err === 0); - if (!$check) { - throw new \RangeException( - 'Base32::doDecode() only expects characters in the correct base32 alphabet' - ); - } - return $dest; - } - - /** - * Base32 Encoding - * - * @param string $src - * @param bool $upper - * @param bool $pad - * @return string - * @throws \TypeError - */ - protected static function doEncode(string $src, bool $upper = false, $pad = true): string - { - // We do this to reduce code duplication: - $method = $upper - ? 'encode5BitsUpper' - : 'encode5Bits'; - - $dest = ''; - $srcLen = Binary::safeStrlen($src); - - // Main loop (no padding): - for ($i = 0; $i + 5 <= $srcLen; $i += 5) { - /** @var array $chunk */ - $chunk = \unpack('C*', Binary::safeSubstr($src, $i, 5)); - $b0 = $chunk[1]; - $b1 = $chunk[2]; - $b2 = $chunk[3]; - $b3 = $chunk[4]; - $b4 = $chunk[5]; - $dest .= - static::$method( ($b0 >> 3) & 31) . - static::$method((($b0 << 2) | ($b1 >> 6)) & 31) . - static::$method((($b1 >> 1) ) & 31) . - static::$method((($b1 << 4) | ($b2 >> 4)) & 31) . - static::$method((($b2 << 1) | ($b3 >> 7)) & 31) . - static::$method((($b3 >> 2) ) & 31) . - static::$method((($b3 << 3) | ($b4 >> 5)) & 31) . - static::$method( $b4 & 31); - } - // The last chunk, which may have padding: - if ($i < $srcLen) { - /** @var array $chunk */ - $chunk = \unpack('C*', Binary::safeSubstr($src, $i, $srcLen - $i)); - $b0 = $chunk[1]; - if ($i + 3 < $srcLen) { - $b1 = $chunk[2]; - $b2 = $chunk[3]; - $b3 = $chunk[4]; - $dest .= - static::$method( ($b0 >> 3) & 31) . - static::$method((($b0 << 2) | ($b1 >> 6)) & 31) . - static::$method((($b1 >> 1) ) & 31) . - static::$method((($b1 << 4) | ($b2 >> 4)) & 31) . - static::$method((($b2 << 1) | ($b3 >> 7)) & 31) . - static::$method((($b3 >> 2) ) & 31) . - static::$method((($b3 << 3) ) & 31); - if ($pad) { - $dest .= '='; - } - } elseif ($i + 2 < $srcLen) { - $b1 = $chunk[2]; - $b2 = $chunk[3]; - $dest .= - static::$method( ($b0 >> 3) & 31) . - static::$method((($b0 << 2) | ($b1 >> 6)) & 31) . - static::$method((($b1 >> 1) ) & 31) . - static::$method((($b1 << 4) | ($b2 >> 4)) & 31) . - static::$method((($b2 << 1) ) & 31); - if ($pad) { - $dest .= '==='; - } - } elseif ($i + 1 < $srcLen) { - $b1 = $chunk[2]; - $dest .= - static::$method( ($b0 >> 3) & 31) . - static::$method((($b0 << 2) | ($b1 >> 6)) & 31) . - static::$method((($b1 >> 1) ) & 31) . - static::$method((($b1 << 4) ) & 31); - if ($pad) { - $dest .= '===='; - } - } else { - $dest .= - static::$method( ($b0 >> 3) & 31) . - static::$method( ($b0 << 2) & 31); - if ($pad) { - $dest .= '======'; - } - } - } - return $dest; - } -} diff --git a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/Base32Hex.php b/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/Base32Hex.php deleted file mode 100644 index 68fdad5..0000000 --- a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/Base32Hex.php +++ /dev/null @@ -1,111 +0,0 @@ - 0x30 && $src < 0x3a) ret += $src - 0x2e + 1; // -47 - $ret += (((0x2f - $src) & ($src - 0x3a)) >> 8) & ($src - 47); - - // if ($src > 0x60 && $src < 0x77) ret += $src - 0x61 + 10 + 1; // -86 - $ret += (((0x60 - $src) & ($src - 0x77)) >> 8) & ($src - 86); - - return $ret; - } - - /** - * Uses bitwise operators instead of table-lookups to turn 5-bit integers - * into 8-bit integers. - * - * @param int $src - * @return int - */ - protected static function decode5BitsUpper(int $src): int - { - $ret = -1; - - // if ($src > 0x30 && $src < 0x3a) ret += $src - 0x2e + 1; // -47 - $ret += (((0x2f - $src) & ($src - 0x3a)) >> 8) & ($src - 47); - - // if ($src > 0x40 && $src < 0x57) ret += $src - 0x41 + 10 + 1; // -54 - $ret += (((0x40 - $src) & ($src - 0x57)) >> 8) & ($src - 54); - - return $ret; - } - - /** - * Uses bitwise operators instead of table-lookups to turn 8-bit integers - * into 5-bit integers. - * - * @param int $src - * @return string - */ - protected static function encode5Bits(int $src): string - { - $src += 0x30; - - // if ($src > 0x39) $src += 0x61 - 0x3a; // 39 - $src += ((0x39 - $src) >> 8) & 39; - - return \pack('C', $src); - } - - /** - * Uses bitwise operators instead of table-lookups to turn 8-bit integers - * into 5-bit integers. - * - * Uppercase variant. - * - * @param int $src - * @return string - */ - protected static function encode5BitsUpper(int $src): string - { - $src += 0x30; - - // if ($src > 0x39) $src += 0x41 - 0x3a; // 7 - $src += ((0x39 - $src) >> 8) & 7; - - return \pack('C', $src); - } -} \ No newline at end of file diff --git a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/Base64.php b/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/Base64.php deleted file mode 100644 index b806909..0000000 --- a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/Base64.php +++ /dev/null @@ -1,271 +0,0 @@ - $chunk */ - $chunk = \unpack('C*', Binary::safeSubstr($src, $i, 3)); - $b0 = $chunk[1]; - $b1 = $chunk[2]; - $b2 = $chunk[3]; - - $dest .= - static::encode6Bits( $b0 >> 2 ) . - static::encode6Bits((($b0 << 4) | ($b1 >> 4)) & 63) . - static::encode6Bits((($b1 << 2) | ($b2 >> 6)) & 63) . - static::encode6Bits( $b2 & 63); - } - // The last chunk, which may have padding: - if ($i < $srcLen) { - /** @var array $chunk */ - $chunk = \unpack('C*', Binary::safeSubstr($src, $i, $srcLen - $i)); - $b0 = $chunk[1]; - if ($i + 1 < $srcLen) { - $b1 = $chunk[2]; - $dest .= - static::encode6Bits($b0 >> 2) . - static::encode6Bits((($b0 << 4) | ($b1 >> 4)) & 63) . - static::encode6Bits(($b1 << 2) & 63); - if ($pad) { - $dest .= '='; - } - } else { - $dest .= - static::encode6Bits( $b0 >> 2) . - static::encode6Bits(($b0 << 4) & 63); - if ($pad) { - $dest .= '=='; - } - } - } - return $dest; - } - - /** - * decode from base64 into binary - * - * Base64 character set "./[A-Z][a-z][0-9]" - * - * @param string $src - * @param bool $strictPadding - * @return string - * @throws \RangeException - * @throws \TypeError - * @psalm-suppress RedundantCondition - */ - public static function decode(string $src, bool $strictPadding = false): string - { - // Remove padding - $srcLen = Binary::safeStrlen($src); - if ($srcLen === 0) { - return ''; - } - - if ($strictPadding) { - if (($srcLen & 3) === 0) { - if ($src[$srcLen - 1] === '=') { - $srcLen--; - if ($src[$srcLen - 1] === '=') { - $srcLen--; - } - } - } - if (($srcLen & 3) === 1) { - throw new \RangeException( - 'Incorrect padding' - ); - } - if ($src[$srcLen - 1] === '=') { - throw new \RangeException( - 'Incorrect padding' - ); - } - } else { - $src = \rtrim($src, '='); - $srcLen = Binary::safeStrlen($src); - } - - $err = 0; - $dest = ''; - // Main loop (no padding): - for ($i = 0; $i + 4 <= $srcLen; $i += 4) { - /** @var array $chunk */ - $chunk = \unpack('C*', Binary::safeSubstr($src, $i, 4)); - $c0 = static::decode6Bits($chunk[1]); - $c1 = static::decode6Bits($chunk[2]); - $c2 = static::decode6Bits($chunk[3]); - $c3 = static::decode6Bits($chunk[4]); - - $dest .= \pack( - 'CCC', - ((($c0 << 2) | ($c1 >> 4)) & 0xff), - ((($c1 << 4) | ($c2 >> 2)) & 0xff), - ((($c2 << 6) | $c3 ) & 0xff) - ); - $err |= ($c0 | $c1 | $c2 | $c3) >> 8; - } - // The last chunk, which may have padding: - if ($i < $srcLen) { - /** @var array $chunk */ - $chunk = \unpack('C*', Binary::safeSubstr($src, $i, $srcLen - $i)); - $c0 = static::decode6Bits($chunk[1]); - - if ($i + 2 < $srcLen) { - $c1 = static::decode6Bits($chunk[2]); - $c2 = static::decode6Bits($chunk[3]); - $dest .= \pack( - 'CC', - ((($c0 << 2) | ($c1 >> 4)) & 0xff), - ((($c1 << 4) | ($c2 >> 2)) & 0xff) - ); - $err |= ($c0 | $c1 | $c2) >> 8; - } elseif ($i + 1 < $srcLen) { - $c1 = static::decode6Bits($chunk[2]); - $dest .= \pack( - 'C', - ((($c0 << 2) | ($c1 >> 4)) & 0xff) - ); - $err |= ($c0 | $c1) >> 8; - } elseif ($i < $srcLen && $strictPadding) { - $err |= 1; - } - } - /** @var bool $check */ - $check = ($err === 0); - if (!$check) { - throw new \RangeException( - 'Base64::decode() only expects characters in the correct base64 alphabet' - ); - } - return $dest; - } - - /** - * Uses bitwise operators instead of table-lookups to turn 6-bit integers - * into 8-bit integers. - * - * Base64 character set: - * [A-Z] [a-z] [0-9] + / - * 0x41-0x5a, 0x61-0x7a, 0x30-0x39, 0x2b, 0x2f - * - * @param int $src - * @return int - */ - protected static function decode6Bits(int $src): int - { - $ret = -1; - - // if ($src > 0x40 && $src < 0x5b) $ret += $src - 0x41 + 1; // -64 - $ret += (((0x40 - $src) & ($src - 0x5b)) >> 8) & ($src - 64); - - // if ($src > 0x60 && $src < 0x7b) $ret += $src - 0x61 + 26 + 1; // -70 - $ret += (((0x60 - $src) & ($src - 0x7b)) >> 8) & ($src - 70); - - // if ($src > 0x2f && $src < 0x3a) $ret += $src - 0x30 + 52 + 1; // 5 - $ret += (((0x2f - $src) & ($src - 0x3a)) >> 8) & ($src + 5); - - // if ($src == 0x2b) $ret += 62 + 1; - $ret += (((0x2a - $src) & ($src - 0x2c)) >> 8) & 63; - - // if ($src == 0x2f) ret += 63 + 1; - $ret += (((0x2e - $src) & ($src - 0x30)) >> 8) & 64; - - return $ret; - } - - /** - * Uses bitwise operators instead of table-lookups to turn 8-bit integers - * into 6-bit integers. - * - * @param int $src - * @return string - */ - protected static function encode6Bits(int $src): string - { - $diff = 0x41; - - // if ($src > 25) $diff += 0x61 - 0x41 - 26; // 6 - $diff += ((25 - $src) >> 8) & 6; - - // if ($src > 51) $diff += 0x30 - 0x61 - 26; // -75 - $diff -= ((51 - $src) >> 8) & 75; - - // if ($src > 61) $diff += 0x2b - 0x30 - 10; // -15 - $diff -= ((61 - $src) >> 8) & 15; - - // if ($src > 62) $diff += 0x2f - 0x2b - 1; // 3 - $diff += ((62 - $src) >> 8) & 3; - - return \pack('C', $src + $diff); - } -} diff --git a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/Base64DotSlash.php b/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/Base64DotSlash.php deleted file mode 100644 index 8ad2e2b..0000000 --- a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/Base64DotSlash.php +++ /dev/null @@ -1,88 +0,0 @@ - 0x2d && $src < 0x30) ret += $src - 0x2e + 1; // -45 - $ret += (((0x2d - $src) & ($src - 0x30)) >> 8) & ($src - 45); - - // if ($src > 0x40 && $src < 0x5b) ret += $src - 0x41 + 2 + 1; // -62 - $ret += (((0x40 - $src) & ($src - 0x5b)) >> 8) & ($src - 62); - - // if ($src > 0x60 && $src < 0x7b) ret += $src - 0x61 + 28 + 1; // -68 - $ret += (((0x60 - $src) & ($src - 0x7b)) >> 8) & ($src - 68); - - // if ($src > 0x2f && $src < 0x3a) ret += $src - 0x30 + 54 + 1; // 7 - $ret += (((0x2f - $src) & ($src - 0x3a)) >> 8) & ($src + 7); - - return $ret; - } - - /** - * Uses bitwise operators instead of table-lookups to turn 8-bit integers - * into 6-bit integers. - * - * @param int $src - * @return string - */ - protected static function encode6Bits(int $src): string - { - $src += 0x2e; - - // if ($src > 0x2f) $src += 0x41 - 0x30; // 17 - $src += ((0x2f - $src) >> 8) & 17; - - // if ($src > 0x5a) $src += 0x61 - 0x5b; // 6 - $src += ((0x5a - $src) >> 8) & 6; - - // if ($src > 0x7a) $src += 0x30 - 0x7b; // -75 - $src -= ((0x7a - $src) >> 8) & 75; - - return \pack('C', $src); - } -} diff --git a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/Base64DotSlashOrdered.php b/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/Base64DotSlashOrdered.php deleted file mode 100644 index dd1459e..0000000 --- a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/Base64DotSlashOrdered.php +++ /dev/null @@ -1,82 +0,0 @@ - 0x2d && $src < 0x3a) ret += $src - 0x2e + 1; // -45 - $ret += (((0x2d - $src) & ($src - 0x3a)) >> 8) & ($src - 45); - - // if ($src > 0x40 && $src < 0x5b) ret += $src - 0x41 + 12 + 1; // -52 - $ret += (((0x40 - $src) & ($src - 0x5b)) >> 8) & ($src - 52); - - // if ($src > 0x60 && $src < 0x7b) ret += $src - 0x61 + 38 + 1; // -58 - $ret += (((0x60 - $src) & ($src - 0x7b)) >> 8) & ($src - 58); - - return $ret; - } - - /** - * Uses bitwise operators instead of table-lookups to turn 8-bit integers - * into 6-bit integers. - * - * @param int $src - * @return string - */ - protected static function encode6Bits(int $src): string - { - $src += 0x2e; - - // if ($src > 0x39) $src += 0x41 - 0x3a; // 7 - $src += ((0x39 - $src) >> 8) & 7; - - // if ($src > 0x5a) $src += 0x61 - 0x5b; // 6 - $src += ((0x5a - $src) >> 8) & 6; - - return \pack('C', $src); - } -} diff --git a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/Base64UrlSafe.php b/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/Base64UrlSafe.php deleted file mode 100644 index 1a41075..0000000 --- a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/Base64UrlSafe.php +++ /dev/null @@ -1,95 +0,0 @@ - 0x40 && $src < 0x5b) $ret += $src - 0x41 + 1; // -64 - $ret += (((0x40 - $src) & ($src - 0x5b)) >> 8) & ($src - 64); - - // if ($src > 0x60 && $src < 0x7b) $ret += $src - 0x61 + 26 + 1; // -70 - $ret += (((0x60 - $src) & ($src - 0x7b)) >> 8) & ($src - 70); - - // if ($src > 0x2f && $src < 0x3a) $ret += $src - 0x30 + 52 + 1; // 5 - $ret += (((0x2f - $src) & ($src - 0x3a)) >> 8) & ($src + 5); - - // if ($src == 0x2c) $ret += 62 + 1; - $ret += (((0x2c - $src) & ($src - 0x2e)) >> 8) & 63; - - // if ($src == 0x5f) ret += 63 + 1; - $ret += (((0x5e - $src) & ($src - 0x60)) >> 8) & 64; - - return $ret; - } - - /** - * Uses bitwise operators instead of table-lookups to turn 8-bit integers - * into 6-bit integers. - * - * @param int $src - * @return string - */ - protected static function encode6Bits(int $src): string - { - $diff = 0x41; - - // if ($src > 25) $diff += 0x61 - 0x41 - 26; // 6 - $diff += ((25 - $src) >> 8) & 6; - - // if ($src > 51) $diff += 0x30 - 0x61 - 26; // -75 - $diff -= ((51 - $src) >> 8) & 75; - - // if ($src > 61) $diff += 0x2d - 0x30 - 10; // -13 - $diff -= ((61 - $src) >> 8) & 13; - - // if ($src > 62) $diff += 0x5f - 0x2b - 1; // 3 - $diff += ((62 - $src) >> 8) & 49; - - return \pack('C', $src + $diff); - } -} diff --git a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/Binary.php b/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/Binary.php deleted file mode 100644 index 38c3ec8..0000000 --- a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/Binary.php +++ /dev/null @@ -1,85 +0,0 @@ - $chunk */ - $chunk = \unpack('C', Binary::safeSubstr($binString, $i, 1)); - /** @var int $c */ - $c = $chunk[1] & 0xf; - /** @var int $b */ - $b = $chunk[1] >> 4; - - $hex .= pack( - 'CC', - (87 + $b + ((($b - 10) >> 8) & ~38)), - (87 + $c + ((($c - 10) >> 8) & ~38)) - ); - } - return $hex; - } - - /** - * Convert a binary string into a hexadecimal string without cache-timing - * leaks, returning uppercase letters (as per RFC 4648) - * - * @param string $binString (raw binary) - * @return string - * @throws \TypeError - */ - public static function encodeUpper(string $binString): string - { - /** @var string $hex */ - $hex = ''; - /** @var int $len */ - $len = Binary::safeStrlen($binString); - - for ($i = 0; $i < $len; ++$i) { - /** @var array $chunk */ - $chunk = \unpack('C', Binary::safeSubstr($binString, $i, 2)); - /** @var int $c */ - $c = $chunk[1] & 0xf; - /** @var int $b */ - $b = $chunk[1] >> 4; - - $hex .= pack( - 'CC', - (55 + $b + ((($b - 10) >> 8) & ~6)), - (55 + $c + ((($c - 10) >> 8) & ~6)) - ); - } - return $hex; - } - - /** - * Convert a hexadecimal string into a binary string without cache-timing - * leaks - * - * @param string $hexString - * @param bool $strictPadding - * @return string (raw binary) - * @throws \RangeException - */ - public static function decode(string $hexString, bool $strictPadding = false): string - { - /** @var int $hex_pos */ - $hex_pos = 0; - /** @var string $bin */ - $bin = ''; - /** @var int $c_acc */ - $c_acc = 0; - /** @var int $hex_len */ - $hex_len = Binary::safeStrlen($hexString); - /** @var int $state */ - $state = 0; - if (($hex_len & 1) !== 0) { - if ($strictPadding) { - throw new \RangeException( - 'Expected an even number of hexadecimal characters' - ); - } else { - $hexString = '0' . $hexString; - ++$hex_len; - } - } - - /** @var array $chunk */ - $chunk = \unpack('C*', $hexString); - while ($hex_pos < $hex_len) { - ++$hex_pos; - /** @var int $c */ - $c = $chunk[$hex_pos]; - /** @var int $c_num */ - $c_num = $c ^ 48; - /** @var int $c_num0 */ - $c_num0 = ($c_num - 10) >> 8; - /** @var int $c_alpha */ - $c_alpha = ($c & ~32) - 55; - /** @var int $c_alpha0 */ - $c_alpha0 = (($c_alpha - 10) ^ ($c_alpha - 16)) >> 8; - - if (($c_num0 | $c_alpha0) === 0) { - throw new \RangeException( - 'hexEncode() only expects hexadecimal characters' - ); - } - /** @var int $c_val */ - $c_val = ($c_num0 & $c_num) | ($c_alpha & $c_alpha0); - if ($state === 0) { - $c_acc = $c_val * 16; - } else { - $bin .= \pack('C', $c_acc | $c_val); - } - $state ^= 1; - } - return $bin; - } -} diff --git a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/RFC4648.php b/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/RFC4648.php deleted file mode 100644 index 492cad0..0000000 --- a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/src/RFC4648.php +++ /dev/null @@ -1,175 +0,0 @@ - "Zm9v" - * - * @param string $str - * @return string - * @throws \TypeError - */ - public static function base64Encode(string $str): string - { - return Base64::encode($str); - } - - /** - * RFC 4648 Base64 decoding - * - * "Zm9v" -> "foo" - * - * @param string $str - * @return string - * @throws \TypeError - */ - public static function base64Decode(string $str): string - { - return Base64::decode($str, true); - } - - /** - * RFC 4648 Base64 (URL Safe) encoding - * - * "foo" -> "Zm9v" - * - * @param string $str - * @return string - * @throws \TypeError - */ - public static function base64UrlSafeEncode(string $str): string - { - return Base64UrlSafe::encode($str); - } - - /** - * RFC 4648 Base64 (URL Safe) decoding - * - * "Zm9v" -> "foo" - * - * @param string $str - * @return string - * @throws \TypeError - */ - public static function base64UrlSafeDecode(string $str): string - { - return Base64UrlSafe::decode($str, true); - } - - /** - * RFC 4648 Base32 encoding - * - * "foo" -> "MZXW6===" - * - * @param string $str - * @return string - * @throws \TypeError - */ - public static function base32Encode(string $str): string - { - return Base32::encodeUpper($str); - } - - /** - * RFC 4648 Base32 encoding - * - * "MZXW6===" -> "foo" - * - * @param string $str - * @return string - * @throws \TypeError - */ - public static function base32Decode(string $str): string - { - return Base32::decodeUpper($str, true); - } - - /** - * RFC 4648 Base32-Hex encoding - * - * "foo" -> "CPNMU===" - * - * @param string $str - * @return string - * @throws \TypeError - */ - public static function base32HexEncode(string $str): string - { - return Base32::encodeUpper($str); - } - - /** - * RFC 4648 Base32-Hex decoding - * - * "CPNMU===" -> "foo" - * - * @param string $str - * @return string - * @throws \TypeError - */ - public static function base32HexDecode(string $str): string - { - return Base32::decodeUpper($str, true); - } - - /** - * RFC 4648 Base16 decoding - * - * "foo" -> "666F6F" - * - * @param string $str - * @return string - * @throws \TypeError - */ - public static function base16Encode(string $str): string - { - return Hex::encodeUpper($str); - } - - /** - * RFC 4648 Base16 decoding - * - * "666F6F" -> "foo" - * - * @param string $str - * @return string - */ - public static function base16Decode(string $str): string - { - return Hex::decode($str, true); - } -} \ No newline at end of file diff --git a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/Base32HexTest.php b/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/Base32HexTest.php deleted file mode 100644 index ed19f33..0000000 --- a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/Base32HexTest.php +++ /dev/null @@ -1,49 +0,0 @@ -assertSame( - $random, - Base32Hex::decode($enc) - ); - $unpadded = \rtrim($enc, '='); - $this->assertSame( - $unpadded, - Base32Hex::encodeUnpadded($random) - ); - $this->assertSame( - $random, - Base32Hex::decode($unpadded) - ); - - $enc = Base32Hex::encodeUpper($random); - $this->assertSame( - $random, - Base32Hex::decodeUpper($enc) - ); $unpadded = \rtrim($enc, '='); - $this->assertSame( - $unpadded, - Base32Hex::encodeUpperUnpadded($random) - ); - $this->assertSame( - $random, - Base32Hex::decodeUpper($unpadded) - ); - } - } - } -} diff --git a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/Base32Test.php b/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/Base32Test.php deleted file mode 100644 index 65e8e7c..0000000 --- a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/Base32Test.php +++ /dev/null @@ -1,50 +0,0 @@ -assertSame( - $random, - Base32::decode($enc) - ); - $unpadded = \rtrim($enc, '='); - $this->assertSame( - $unpadded, - Base32::encodeUnpadded($random) - ); - $this->assertSame( - $random, - Base32::decode($unpadded) - ); - - $enc = Base32::encodeUpper($random); - $this->assertSame( - $random, - Base32::decodeUpper($enc) - ); - $unpadded = \rtrim($enc, '='); - $this->assertSame( - $unpadded, - Base32::encodeUpperUnpadded($random) - ); - $this->assertSame( - $random, - Base32::decodeUpper($unpadded) - ); - } - } - } -} diff --git a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/Base64DotSlashOrderedTest.php b/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/Base64DotSlashOrderedTest.php deleted file mode 100644 index f7dc828..0000000 --- a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/Base64DotSlashOrderedTest.php +++ /dev/null @@ -1,34 +0,0 @@ -assertSame( - $random, - Base64DotSlashOrdered::decode($enc) - ); - - $unpadded = \rtrim($enc, '='); - $this->assertSame( - $random, - Base64DotSlashOrdered::decode($unpadded) - ); - $this->assertSame( - $random, - Base64DotSlashOrdered::decode($unpadded) - ); - } - } - } -} diff --git a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/Base64DotSlashTest.php b/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/Base64DotSlashTest.php deleted file mode 100644 index 257a3d5..0000000 --- a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/Base64DotSlashTest.php +++ /dev/null @@ -1,34 +0,0 @@ -assertSame( - $random, - Base64DotSlash::decode($enc) - ); - - $unpadded = \rtrim($enc, '='); - $this->assertSame( - $random, - Base64DotSlash::decode($unpadded) - ); - $this->assertSame( - $random, - Base64DotSlash::decode($unpadded) - ); - } - } - } -} diff --git a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/Base64Test.php b/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/Base64Test.php deleted file mode 100644 index 16ab47d..0000000 --- a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/Base64Test.php +++ /dev/null @@ -1,79 +0,0 @@ -assertSame( - $random, - Base64::decode($enc) - ); - $this->assertSame( - \base64_encode($random), - $enc - ); - - $unpadded = \rtrim($enc, '='); - $this->assertSame( - $random, - Base64::decode($unpadded) - ); - $this->assertSame( - $random, - Base64::decode($unpadded) - ); - } - } - $str = 'MIIFzzCCBLegAwIBAgIDAfdlMA0GCSqGSIb3DQEBBQUAMHMxCzAJBgNVBAYTAlBM' . - 'MSgwJgYDVQQKDB9LcmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMSQwIgYDVQQ' . - 'DDBtDT1BFIFNaQUZJUiAtIEt3YWxpZmlrb3dhbnkxFDASBgNVBAUTC05yIHdwaXN1Oi' . - 'A2MB4XDTExMTEwOTA2MDAwMFoXDTEzMTEwOTA2MDAwMFowgdkxCzAJBgNVBAYTAlBMM' . - 'RwwGgYDVQQKDBNVcnrEhWQgTWlhc3RhIEdkeW5pMRswGQYDVQQFExJQRVNFTDogNjEw' . - 'NjA2MDMxMTgxGTAXBgNVBAMMEEplcnp5IFByemV3b3Jza2kxTzBNBgNVBBAwRgwiQWw' . - 'uIE1hcnN6YcWCa2EgUGnFgnN1ZHNraWVnbyA1Mi81NAwNODEtMzgyIEdkeW5pYQwGUG' . - '9sc2thDAlwb21vcnNraWUxDjAMBgNVBCoMBUplcnp5MRMwEQYDVQQEDApQcnpld29yc' . - '2tpMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCMm5vjGqHPthJCMqKpqssSISRo' . - 's0PYDTcEQzyyurfX67EJWKtZj6HNwuDMEGJ02iBNZfjUl7r8dIi28bSKhNlsfycXZKY' . - 'RcIjp0+r5RqtR2auo9GQ6veKb61DEAGIqaR+uLLcJVTHCu0w9oXLGbRlGth5eNoj03C' . - 'xXVAH2IfhbNwIDAQABo4IChzCCAoMwDAYDVR0TAQH/BAIwADCCAUgGA1UdIAEB/wSCA' . - 'TwwggE4MIIBNAYJKoRoAYb3IwEBMIIBJTCB3QYIKwYBBQUHAgIwgdAMgc1EZWtsYXJh' . - 'Y2phIHRhIGplc3Qgb8Wbd2lhZGN6ZW5pZW0gd3lkYXdjeSwgxbxlIHRlbiBjZXJ0eWZ' . - 'pa2F0IHpvc3RhxYIgd3lkYW55IGpha28gY2VydHlmaWthdCBrd2FsaWZpa293YW55IH' . - 'pnb2RuaWUgeiB3eW1hZ2FuaWFtaSB1c3Rhd3kgbyBwb2RwaXNpZSBlbGVrdHJvbmlje' . - 'm55bSBvcmF6IHRvd2FyenlzesSFY3ltaSBqZWogcm96cG9yesSFZHplbmlhbWkuMEMG' . - 'CCsGAQUFBwIBFjdodHRwOi8vd3d3Lmtpci5jb20ucGwvY2VydHlmaWthY2phX2tsdWN' . - '6eS9wb2xpdHlrYS5odG1sMAkGA1UdCQQCMAAwIQYDVR0RBBowGIEWai5wcnpld29yc2' . - 'tpQGdkeW5pYS5wbDAOBgNVHQ8BAf8EBAMCBkAwgZ4GA1UdIwSBljCBk4AU3TGldJXip' . - 'N4oGS3ZYmnBDMFs8gKhd6R1MHMxCzAJBgNVBAYTAlBMMSgwJgYDVQQKDB9LcmFqb3dh' . - 'IEl6YmEgUm96bGljemVuaW93YSBTLkEuMSQwIgYDVQQDDBtDT1BFIFNaQUZJUiAtIEt' . - '3YWxpZmlrb3dhbnkxFDASBgNVBAUTC05yIHdwaXN1OiA2ggJb9jBIBgNVHR8EQTA/MD' . - '2gO6A5hjdodHRwOi8vd3d3Lmtpci5jb20ucGwvY2VydHlmaWthY2phX2tsdWN6eS9DU' . - 'kxfT1pLMzIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQBYPIqnAreyeql7/opJjcar/qWZ' . - 'y9ruhB2q0lZFsJOhwgMnbQXzp/4vv93YJqcHGAXdHP6EO8FQX47mjo2ZKQmi+cIHJHL' . - 'ONdX/3Im+M17V0iNAh7Z1lOSfTRT+iiwe/F8phcEaD5q2RmvYusR7zXZq/cLL0If0hX' . - 'oPZ/EHQxjN8pxzxiUx6bJAgturnIMEfRNesxwghdr1dkUjOhGLf3kHVzgM6j3VAM7oF' . - 'mMUb5y5s96Bzl10DodWitjOEH0vvnIcsppSxH1C1dCAi0o9f/1y2XuLNhBNHMAyTqpY' . - 'PX8Yvav1c+Z50OMaSXHAnTa20zv8UtiHbaAhwlifCelUMj93S'; - - try { - Base64::decode($str, true); - $this->fail('Strict padding not enforced'); - } catch (\Exception $ex) { - - $this->assertSame( - Base64::decode($str), - \base64_decode($str) - ); - } - } -} diff --git a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/Base64UrlSafeTest.php b/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/Base64UrlSafeTest.php deleted file mode 100644 index 136ed61..0000000 --- a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/Base64UrlSafeTest.php +++ /dev/null @@ -1,58 +0,0 @@ -assertSame( - $random, - Base64UrlSafe::decode($enc) - ); - $this->assertSame( - \strtr(\base64_encode($random), '+/', '-_'), - $enc - ); - - $unpadded = \rtrim($enc, '='); - $this->assertSame( - $unpadded, - Base64UrlSafe::encodeUnpadded($random) - ); - $this->assertSame( - $random, - Base64UrlSafe::decode($unpadded) - ); - } - } - - $random = \random_bytes(1 << 20); - $enc = Base64UrlSafe::encode($random); - $this->assertTrue(Binary::safeStrlen($enc) > 65536); - $this->assertSame( - $random, - Base64UrlSafe::decode($enc) - ); - $this->assertSame( - \strtr(\base64_encode($random), '+/', '-_'), - $enc - ); - } -} diff --git a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/EncodingTest.php b/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/EncodingTest.php deleted file mode 100644 index 6f774d8..0000000 --- a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/EncodingTest.php +++ /dev/null @@ -1,307 +0,0 @@ -assertSame( - Encoding::base32Encode("\x00"), - 'aa======' - ); - $this->assertSame( - Encoding::base32Encode("\x00\x00"), - 'aaaa====' - ); - $this->assertSame( - Encoding::base32Encode("\x00\x00\x00"), - 'aaaaa===' - ); - $this->assertSame( - Encoding::base32Encode("\x00\x00\x00\x00"), - 'aaaaaaa=' - ); - $this->assertSame( - Encoding::base32Encode("\x00\x00\x00\x00\x00"), - 'aaaaaaaa' - ); - $this->assertSame( - Encoding::base32Encode("\x00\x00\x0F\xFF\xFF"), - 'aaaa7777' - ); - $this->assertSame( - Encoding::base32Encode("\xFF\xFF\xF0\x00\x00"), - '7777aaaa' - ); - - $this->assertSame( - Encoding::base32Encode("\xce\x73\x9c\xe7\x39"), - 'zzzzzzzz' - ); - $this->assertSame( - Encoding::base32Encode("\xd6\xb5\xad\x6b\x5a"), - '22222222' - ); - $this->assertSame( - Base32::encodeUpper("\x00"), - 'AA======' - ); - $this->assertSame( - Base32::encodeUpper("\x00\x00"), - 'AAAA====' - ); - $this->assertSame( - Base32::encodeUpper("\x00\x00\x00"), - 'AAAAA===' - ); - $this->assertSame( - Base32::encodeUpper("\x00\x00\x00\x00"), - 'AAAAAAA=' - ); - $this->assertSame( - Base32::encodeUpper("\x00\x00\x00\x00\x00"), - 'AAAAAAAA' - ); - $this->assertSame( - Base32::encodeUpper("\x00\x00\x0F\xFF\xFF"), - 'AAAA7777' - ); - $this->assertSame( - Base32::encodeUpper("\xFF\xFF\xF0\x00\x00"), - '7777AAAA' - ); - - $this->assertSame( - Base32::encodeUpper("\xce\x73\x9c\xe7\x39"), - 'ZZZZZZZZ' - ); - $this->assertSame( - Base32::encodeUpper("\xd6\xb5\xad\x6b\x5a"), - '22222222' - ); - } - - public function testBase32Hex() - { - $this->assertSame( - Base32Hex::encode("\x00"), - '00======' - ); - $this->assertSame( - Base32Hex::encode("\x00\x00"), - '0000====' - ); - $this->assertSame( - Base32Hex::encode("\x00\x00\x00"), - '00000===' - ); - $this->assertSame( - Base32Hex::encode("\x00\x00\x00\x00"), - '0000000=' - ); - $this->assertSame( - Base32Hex::encode("\x00\x00\x00\x00\x00"), - '00000000' - ); - $this->assertSame( - Base32Hex::encode("\x00\x00\x0F\xFF\xFF"), - '0000vvvv' - ); - $this->assertSame( - Base32Hex::encode("\xFF\xFF\xF0\x00\x00"), - 'vvvv0000' - ); - - - } - - /** - * Based on test vectors from RFC 4648 - */ - public function testBase32Decode() - { - $this->assertSame( - "\x00\x00\x00\x00\x00\x00", - Encoding::base32Decode('aaaaaaaaaa======') - ); - $this->assertSame( - "\x00\x00\x00\x00\x00\x00\x00", - Encoding::base32Decode('aaaaaaaaaaaa====') - ); - $this->assertSame( - "\x00\x00\x00\x00\x00\x00\x00\x00", - Encoding::base32Decode('aaaaaaaaaaaaa===') - ); - $this->assertSame( - "\x00\x00\x00\x00\x00\x00\x00\x00\x00", - Encoding::base32Decode('aaaaaaaaaaaaaaa=') - ); - $this->assertSame( - "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", - Encoding::base32Decode('aaaaaaaaaaaaaaaa') - ); - $this->assertSame( - "\x00", - Encoding::base32Decode('aa======') - ); - $this->assertSame( - "\x00\x00", - Encoding::base32Decode('aaaa====') - ); - $this->assertSame( - "\x00\x00\x00", - Encoding::base32Decode('aaaaa===') - ); - $this->assertSame( - "\x00\x00\x00\x00", - Encoding::base32Decode('aaaaaaa=') - ); - $this->assertSame( - "\x00\x00\x00\x00\x00", - Encoding::base32Decode('aaaaaaaa') - ); - $this->assertSame( - "\x00\x00\x0F\xFF\xFF", - Encoding::base32Decode('aaaa7777') - ); - $this->assertSame( - "\xFF\xFF\xF0\x00\x00", - Encoding::base32Decode('7777aaaa') - ); - $this->assertSame( - "\xce\x73\x9c\xe7\x39", - Encoding::base32Decode('zzzzzzzz') - ); - $this->assertSame( - "\xd6\xb5\xad\x6b\x5a", - Encoding::base32Decode('22222222') - ); - $this->assertSame( - 'foobar', - Encoding::base32Decode('mzxw6ytboi======') - ); - - $rand = random_bytes(9); - $enc = Encoding::base32Encode($rand); - - $this->assertSame( - Encoding::base32Encode($rand), - Encoding::base32Encode(Encoding::base32Decode($enc)) - ); - $this->assertSame( - $rand, - Encoding::base32Decode($enc) - ); - } - - /** - * @covers Encoding::hexDecode() - * @covers Encoding::hexEncode() - * @covers Encoding::base32Decode() - * @covers Encoding::base32Encode() - * @covers Encoding::base64Decode() - * @covers Encoding::base64Encode() - * @covers Encoding::base64DotSlashDecode() - * @covers Encoding::base64DotSlashEncode() - * @covers Encoding::base64DotSlashOrderedDecode() - * @covers Encoding::base64DotSlashOrderedEncode() - */ - public function testBasicEncoding() - { - // Re-run the test at least 3 times for each length - for ($j = 0; $j < 3; ++$j) { - for ($i = 1; $i < 84; ++$i) { - $rand = random_bytes($i); - $enc = Encoding::hexEncode($rand); - $this->assertSame( - \bin2hex($rand), - $enc, - "Hex Encoding - Length: " . $i - ); - $this->assertSame( - $rand, - Encoding::hexDecode($enc), - "Hex Encoding - Length: " . $i - ); - - // Uppercase variant: - $enc = Hex::encodeUpper($rand); - $this->assertSame( - \strtoupper(\bin2hex($rand)), - $enc, - "Hex Encoding - Length: " . $i - ); - $this->assertSame( - $rand, - Hex::decode($enc), - "HexUpper Encoding - Length: " . $i - ); - - $enc = Encoding::base32Encode($rand); - $this->assertSame( - $rand, - Encoding::base32Decode($enc), - "Base32 Encoding - Length: " . $i - ); - - $enc = Encoding::base32EncodeUpper($rand); - $this->assertSame( - $rand, - Encoding::base32DecodeUpper($enc), - "Base32Upper Encoding - Length: " . $i - ); - - $enc = Encoding::base32HexEncode($rand); - $this->assertSame( - bin2hex($rand), - bin2hex(Encoding::base32HexDecode($enc)), - "Base32Hex Encoding - Length: " . $i - ); - - $enc = Encoding::base32HexEncodeUpper($rand); - $this->assertSame( - bin2hex($rand), - bin2hex(Encoding::base32HexDecodeUpper($enc)), - "Base32HexUpper Encoding - Length: " . $i - ); - - $enc = Encoding::base64Encode($rand); - $this->assertSame( - $rand, - Encoding::base64Decode($enc), - "Base64 Encoding - Length: " . $i - ); - - $enc = Encoding::base64EncodeDotSlash($rand); - $this->assertSame( - $rand, - Encoding::base64DecodeDotSlash($enc), - "Base64 DotSlash Encoding - Length: " . $i - ); - $enc = Encoding::base64EncodeDotSlashOrdered($rand); - $this->assertSame( - $rand, - Encoding::base64DecodeDotSlashOrdered($enc), - "Base64 Ordered DotSlash Encoding - Length: " . $i - ); - - $enc = Base64UrlSafe::encode($rand); - $this->assertSame( - \strtr(\base64_encode($rand), '+/', '-_'), - $enc - ); - $this->assertSame( - $rand, - Base64UrlSafe::decode($enc) - ); - } - } - } -} \ No newline at end of file diff --git a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/HexTest.php b/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/HexTest.php deleted file mode 100644 index 5c31f6d..0000000 --- a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/HexTest.php +++ /dev/null @@ -1,39 +0,0 @@ -assertSame( - $random, - Hex::decode($enc) - ); - $this->assertSame( - \bin2hex($random), - $enc - ); - - $enc = Hex::encodeUpper($random); - $this->assertSame( - $random, - Hex::decode($enc) - ); - $this->assertSame( - \strtoupper(\bin2hex($random)), - $enc - ); - } - } - } -} diff --git a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/RFC4648Test.php b/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/RFC4648Test.php deleted file mode 100644 index a6653de..0000000 --- a/srcs/phpmyadmin/vendor/paragonie/constant_time_encoding/tests/RFC4648Test.php +++ /dev/null @@ -1,84 +0,0 @@ -assertSame(Base64::encode(''), ''); - $this->assertSame(Base64::encode('f'), 'Zg=='); - $this->assertSame(Base64::encode('fo'), 'Zm8='); - $this->assertSame(Base64::encode('foo'), 'Zm9v'); - $this->assertSame(Base64::encode('foob'), 'Zm9vYg=='); - $this->assertSame(Base64::encode('fooba'), 'Zm9vYmE='); - $this->assertSame(Base64::encode('foobar'), 'Zm9vYmFy'); - } - - public function testVectorBase32() - { - $this->assertSame(Base32::encode(''), ''); - $this->assertSame(Base32::encode('f'), 'my======'); - $this->assertSame(Base32::encode('fo'), 'mzxq===='); - $this->assertSame(Base32::encode('foo'), 'mzxw6==='); - $this->assertSame(Base32::encode('foob'), 'mzxw6yq='); - $this->assertSame(Base32::encode('fooba'), 'mzxw6ytb'); - $this->assertSame(Base32::encode('foobar'), 'mzxw6ytboi======'); - - $this->assertSame(Base32::encodeUpper(''), ''); - $this->assertSame(Base32::encodeUpper('f'), 'MY======'); - $this->assertSame(Base32::encodeUpper('fo'), 'MZXQ===='); - $this->assertSame(Base32::encodeUpper('foo'), 'MZXW6==='); - $this->assertSame(Base32::encodeUpper('foob'), 'MZXW6YQ='); - $this->assertSame(Base32::encodeUpper('fooba'), 'MZXW6YTB'); - $this->assertSame(Base32::encodeUpper('foobar'), 'MZXW6YTBOI======'); - } - - public function testVectorBase32Hex() - { - $this->assertSame(Base32Hex::encode(''), ''); - $this->assertSame(Base32Hex::encode('f'), 'co======'); - $this->assertSame(Base32Hex::encode('fo'), 'cpng===='); - $this->assertSame(Base32Hex::encode('foo'), 'cpnmu==='); - $this->assertSame(Base32Hex::encode('foob'), 'cpnmuog='); - $this->assertSame(Base32Hex::encode('fooba'), 'cpnmuoj1'); - $this->assertSame(Base32Hex::encode('foobar'), 'cpnmuoj1e8======'); - - $this->assertSame(Base32Hex::encodeUpper(''), ''); - $this->assertSame(Base32Hex::encodeUpper('f'), 'CO======'); - $this->assertSame(Base32Hex::encodeUpper('fo'), 'CPNG===='); - $this->assertSame(Base32Hex::encodeUpper('foo'), 'CPNMU==='); - $this->assertSame(Base32Hex::encodeUpper('foob'), 'CPNMUOG='); - $this->assertSame(Base32Hex::encodeUpper('fooba'), 'CPNMUOJ1'); - $this->assertSame(Base32Hex::encodeUpper('foobar'), 'CPNMUOJ1E8======'); - } - - public function testVectorBase16() - { - $this->assertSame(Hex::encode(''), ''); - $this->assertSame(Hex::encode('f'), '66'); - $this->assertSame(Hex::encode('fo'), '666f'); - $this->assertSame(Hex::encode('foo'), '666f6f'); - $this->assertSame(Hex::encode('foob'), '666f6f62'); - $this->assertSame(Hex::encode('fooba'), '666f6f6261'); - $this->assertSame(Hex::encode('foobar'), '666f6f626172'); - - $this->assertSame(Hex::encodeUpper(''), ''); - $this->assertSame(Hex::encodeUpper('f'), '66'); - $this->assertSame(Hex::encodeUpper('fo'), '666F'); - $this->assertSame(Hex::encodeUpper('foo'), '666F6F'); - $this->assertSame(Hex::encodeUpper('foob'), '666F6F62'); - $this->assertSame(Hex::encodeUpper('fooba'), '666F6F6261'); - $this->assertSame(Hex::encodeUpper('foobar'), '666F6F626172'); - } -} diff --git a/srcs/phpmyadmin/vendor/paragonie/random_compat/LICENSE b/srcs/phpmyadmin/vendor/paragonie/random_compat/LICENSE deleted file mode 100644 index 45c7017..0000000 --- a/srcs/phpmyadmin/vendor/paragonie/random_compat/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Paragon Initiative Enterprises - -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. - diff --git a/srcs/phpmyadmin/vendor/paragonie/random_compat/build-phar.sh b/srcs/phpmyadmin/vendor/paragonie/random_compat/build-phar.sh deleted file mode 100755 index b4a5ba3..0000000 --- a/srcs/phpmyadmin/vendor/paragonie/random_compat/build-phar.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash - -basedir=$( dirname $( readlink -f ${BASH_SOURCE[0]} ) ) - -php -dphar.readonly=0 "$basedir/other/build_phar.php" $* \ No newline at end of file diff --git a/srcs/phpmyadmin/vendor/paragonie/random_compat/composer.json b/srcs/phpmyadmin/vendor/paragonie/random_compat/composer.json deleted file mode 100644 index 1fa8de9..0000000 --- a/srcs/phpmyadmin/vendor/paragonie/random_compat/composer.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "paragonie/random_compat", - "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", - "keywords": [ - "csprng", - "random", - "polyfill", - "pseudorandom" - ], - "license": "MIT", - "type": "library", - "authors": [ - { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com" - } - ], - "support": { - "issues": "https://github.com/paragonie/random_compat/issues", - "email": "info@paragonie.com", - "source": "https://github.com/paragonie/random_compat" - }, - "require": { - "php": "^7" - }, - "require-dev": { - "vimeo/psalm": "^1", - "phpunit/phpunit": "4.*|5.*" - }, - "suggest": { - "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." - } -} diff --git a/srcs/phpmyadmin/vendor/paragonie/random_compat/dist/random_compat.phar.pubkey b/srcs/phpmyadmin/vendor/paragonie/random_compat/dist/random_compat.phar.pubkey deleted file mode 100644 index eb50ebf..0000000 --- a/srcs/phpmyadmin/vendor/paragonie/random_compat/dist/random_compat.phar.pubkey +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PUBLIC KEY----- -MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEEd+wCqJDrx5B4OldM0dQE0ZMX+lx1ZWm -pui0SUqD4G29L3NGsz9UhJ/0HjBdbnkhIK5xviT0X5vtjacF6ajgcCArbTB+ds+p -+h7Q084NuSuIpNb6YPfoUFgC/CL9kAoc ------END PUBLIC KEY----- diff --git a/srcs/phpmyadmin/vendor/paragonie/random_compat/dist/random_compat.phar.pubkey.asc b/srcs/phpmyadmin/vendor/paragonie/random_compat/dist/random_compat.phar.pubkey.asc deleted file mode 100644 index 6a1d7f3..0000000 --- a/srcs/phpmyadmin/vendor/paragonie/random_compat/dist/random_compat.phar.pubkey.asc +++ /dev/null @@ -1,11 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG v2.0.22 (MingW32) - -iQEcBAABAgAGBQJWtW1hAAoJEGuXocKCZATaJf0H+wbZGgskK1dcRTsuVJl9IWip -QwGw/qIKI280SD6/ckoUMxKDCJiFuPR14zmqnS36k7N5UNPnpdTJTS8T11jttSpg -1LCmgpbEIpgaTah+cELDqFCav99fS+bEiAL5lWDAHBTE/XPjGVCqeehyPYref4IW -NDBIEsvnHPHPLsn6X5jq4+Yj5oUixgxaMPiR+bcO4Sh+RzOVB6i2D0upWfRXBFXA -NNnsg9/zjvoC7ZW73y9uSH+dPJTt/Vgfeiv52/v41XliyzbUyLalf02GNPY+9goV -JHG1ulEEBJOCiUD9cE1PUIJwHA/HqyhHIvV350YoEFiHl8iSwm7SiZu5kPjaq74= -=B6+8 ------END PGP SIGNATURE----- diff --git a/srcs/phpmyadmin/vendor/paragonie/random_compat/lib/random.php b/srcs/phpmyadmin/vendor/paragonie/random_compat/lib/random.php deleted file mode 100644 index c7731a5..0000000 --- a/srcs/phpmyadmin/vendor/paragonie/random_compat/lib/random.php +++ /dev/null @@ -1,32 +0,0 @@ -buildFromDirectory(dirname(__DIR__).'/lib'); -rename( - dirname(__DIR__).'/lib/index.php', - dirname(__DIR__).'/lib/random.php' -); - -/** - * If we pass an (optional) path to a private key as a second argument, we will - * sign the Phar with OpenSSL. - * - * If you leave this out, it will produce an unsigned .phar! - */ -if ($argc > 1) { - if (!@is_readable($argv[1])) { - echo 'Could not read the private key file:', $argv[1], "\n"; - exit(255); - } - $pkeyFile = file_get_contents($argv[1]); - - $private = openssl_get_privatekey($pkeyFile); - if ($private !== false) { - $pkey = ''; - openssl_pkey_export($private, $pkey); - $phar->setSignatureAlgorithm(Phar::OPENSSL, $pkey); - - /** - * Save the corresponding public key to the file - */ - if (!@is_readable($dist.'/random_compat.phar.pubkey')) { - $details = openssl_pkey_get_details($private); - file_put_contents( - $dist.'/random_compat.phar.pubkey', - $details['key'] - ); - } - } else { - echo 'An error occurred reading the private key from OpenSSL.', "\n"; - exit(255); - } -} diff --git a/srcs/phpmyadmin/vendor/paragonie/random_compat/psalm-autoload.php b/srcs/phpmyadmin/vendor/paragonie/random_compat/psalm-autoload.php deleted file mode 100644 index d71d1b8..0000000 --- a/srcs/phpmyadmin/vendor/paragonie/random_compat/psalm-autoload.php +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/.github/stale.yml b/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/.github/stale.yml deleted file mode 100644 index 8ed0f30..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/.github/stale.yml +++ /dev/null @@ -1,23 +0,0 @@ -# Configuration for probot-stale - https://github.com/probot/stale - -# Number of days of inactivity before an Issue or Pull Request becomes stale -daysUntilStale: 60 -# Number of days of inactivity before a stale Issue or Pull Request is closed -daysUntilClose: 7 -# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable -exemptLabels: - - pinned - - security -# Label to use when marking as stale -staleLabel: wontfix -# Comment to post when marking as stale. Set to `false` to disable -markComment: > - This issue has been automatically marked as stale because it has not had - recent activity. It will be closed if no further activity occurs. Thank you - for your contributions. -# Comment to post when removing the stale label. Set to `false` to disable -unmarkComment: false -# Comment to post when closing a stale Issue or Pull Request. Set to `false` to disable -closeComment: false -# Limit to only `issues` or `pulls` -only: pulls diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/CHANGES.md b/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/CHANGES.md deleted file mode 100644 index 6a8a1c7..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/CHANGES.md +++ /dev/null @@ -1,86 +0,0 @@ -# Version 4.0 - -* Released on 2018-02-12. -* The library no longer changes system locales. - -# Version 3.4 - -* Released on 2017-12-15. -* Added Translator::setTranslation method. - -# Version 3.3 - -* Released on 2017-06-01. -* Add support for switching locales for Loader instance. - -# Version 3.2 - -* Released on 2017-05-23. -* Various fixes when handling corrupted mo files. - -# Version 3.1 - -* Released on 2017-05-15. -* Documentation improvements. - -# Version 3.0 - -* Released on 2017-01-23. -* All classes moved to the PhpMyAdmin namespace. - -# Version 2.2 - -* Released on 2017-01-07. -* Coding style cleanup. -* Avoid installing tests using composer. - -# Version 2.1 - -* Released on 2016-12-21. -* Various code cleanups. -* Added support for PHP 5.3. - -# Version 2.0 - -* Released on 2016-10-13. -* Consistently use camelCase in API. -* No more relies on using eval(). -* Depends on symfony/expression-language for calculations. - -# Version 1.2 - -* Released on 2016-09-22. -* Stricter validation of plural expression. - -# Version 1.1 - -* Released on 2016-08-29. -* Improved handling of corrupted mo files. -* Minor performance improvements. -* Stricter validation of plural expression. - -# Version 1.0 - -* Released on 2016-04-27. -* Documentation improvements. -* Testsuite improvements. - -# Version 0.4 - -* Released on 2016-03-02. -* Fixed test failures with hhvm due to broken putenv. - -# Version 0.3 - -* Released on 2016-03-01. -* Added Loader::detectlocale method. - -# Version 0.2 - -* Released on 2016-02-24. -* Marked PHP 5.4 and 5.5 as supported. - -# Version 0.1 - -* Released on 2016-02-23. -* Initial release. diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/CONTRIBUTING.md b/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/CONTRIBUTING.md deleted file mode 100644 index e211ff2..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/CONTRIBUTING.md +++ /dev/null @@ -1,42 +0,0 @@ -# Contributing to motranslator - -## Reporting issues - -Our issue tracker is hosted at GitHub: - -https://github.com/phpmyadmin/motranslator/issues - -Please search for existing issues before reporting new ones. - -## Working with Git checkout - -The dependencies are managed by Composer, to get them all installed (or update -on consequent runs) do: - -``` -composer update -``` - -## Submitting patches - -Please submit your patches using GitHub pull requests, this allows us to review -them and to run automated tests on the code. - -## Coding standards - -We do follow PSR-1 and PSR-2 coding standards. - -You can use php-cs-fixer to fix the code to match our expectations: - -``` -php-cs-fixer fix . -``` - -## Testsuite - -Our code comes with quite comprehensive testsuite, it is automatically executed -on every commit and pull request, you can also run it locally: - -``` -./vendor/bin/phpunit -c phpunit.xml -``` diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/LICENSE b/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/LICENSE deleted file mode 100644 index 23cb790..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/LICENSE +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - {description} - Copyright (C) {year} {fullname} - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - {signature of Ty Coon}, 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/PERFORMANCE.md b/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/PERFORMANCE.md deleted file mode 100644 index 334c5b7..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/PERFORMANCE.md +++ /dev/null @@ -1,28 +0,0 @@ -# Performance - -This library was tweaked for best performance for single use - translating -application with many strings using mo file. Current benchmarks show it's about -four times faster than original php-gettext. - -There are two benchmark scripts in the code: - -* ``benchmark-context.php`` - benchmarks context usage -* ``benchmark-plural.php`` - benchmarks plural evaluation -* ``benchmark.php`` - benchmarks file parsing - -## Performance measurements - -The performance improvements based on individual changes in the code: - -| Stage | Seconds | -| -------------- | --------------- | -| Original code | 4.7929680347443 | -| Remove nocache | 4.6308250427246 | -| Direct endian | 4.5883052349091 | -| Remove attribs | 4.5297479629517 | -| String reader | 1.8148958683014 | -| No offset | 1.2436759471893 | -| Less attribs | 1.1722540855408 | -| Remove shift | 1.0970499515533 | -| Magic order | 1.0868430137634 | - diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/README.md b/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/README.md deleted file mode 100644 index 470df2d..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/README.md +++ /dev/null @@ -1,147 +0,0 @@ -# motranslator - -Translation API for PHP using Gettext MO files. - -[![Build Status](https://travis-ci.org/phpmyadmin/motranslator.svg?branch=master)](https://travis-ci.org/phpmyadmin/motranslator) -[![codecov.io](https://codecov.io/github/phpmyadmin/motranslator/coverage.svg?branch=master)](https://codecov.io/github/phpmyadmin/motranslator?branch=master) -[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/phpmyadmin/motranslator/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/phpmyadmin/motranslator/?branch=master) -[![Packagist](https://img.shields.io/packagist/dt/phpmyadmin/motranslator.svg)](https://packagist.org/packages/phpmyadmin/motranslator) - -## Features - -* All strings are stored in memory for fast lookup -* Fast loading of MO files -* Low level API for reading MO files -* Emulation of Gettext API -* No use of `eval()` for plural equation - -## Limitations - -* Not suitable for huge MO files which you don't want to store in memory -* Input and output encoding has to match (preferably UTF-8) - -## Installation - -Please use [Composer][1] to install: - -``` -composer require phpmyadmin/motranslator -``` - -## Documentation - -The API documentation is available at -. - - -## Object API usage - -```php -// Create loader object -$loader = new PhpMyAdmin\MoTranslator\Loader(); - -// Set locale -$loader->setlocale('cs'); - -// Set default text domain -$loader->textdomain('domain'); - -// Set path where to look for a domain -$loader->bindtextdomain('domain', __DIR__ . '/data/locale/'); - -// Get translator -$translator = $loader->getTranslator(); - -// Now you can use Translator API (see below) -``` - -## Low level API usage - -```php -// Directly load the mo file -$translator = new PhpMyAdmin\MoTranslator\Translator('./path/to/file.mo'); - -// Now you can use Translator API (see below) -``` - -## Translator API usage - -```php -// Translate string -echo $translator->gettext('String'); - -// Translate plural string -echo $translator->ngettext('String', 'Plural string', $count); - -// Translate string with context -echo $translator->pgettext('Context', 'String'); - -// Translate plural string with context -echo $translator->npgettext('Context', 'String', 'Plural string', $count); -``` - -## Gettext compatibility usage - -```php -// Load compatibility layer -PhpMyAdmin\MoTranslator\Loader::loadFunctions(); - -// Configure -_setlocale(LC_MESSAGES, 'cs'); -_textdomain('phpmyadmin'); -_bindtextdomain('phpmyadmin', __DIR__ . '/data/locale/'); -_bind_textdomain_codeset('phpmyadmin', 'UTF-8'); - -// Use functions -echo _gettext('Type'); -echo __('Type'); - -// It also support other Gettext functions -_dnpgettext($domain, $msgctxt, $msgid, $msgidPlural, $number); -_dngettext($domain, $msgid, $msgidPlural, $number); -_npgettext($msgctxt, $msgid, $msgidPlural, $number); -_ngettext($msgid, $msgidPlural, $number); -_dpgettext($domain, $msgctxt, $msgid); -_dgettext($domain, $msgid); -_pgettext($msgctxt, $msgid); -``` - -## History - -This library is based on [php-gettext][2]. It adds some performance -improvements and ability to install using [Composer][1]. - -## Motivation - -Motivation for this library includes: - -* The [php-gettext][2] library is not maintained anymore -* It doesn't work with recent PHP version (phpMyAdmin has patched version) -* It relies on `eval()` function for plural equations what can have severe security implications, see CVE-2016-6175 -* It's not possible to install it using [Composer][1] -* There was place for performance improvements in the library - -### Why not to use native gettext in PHP? - -We've tried that, but it's not a viable solution: - -* You can not use locales not known to system, what is something you can not - control from web application. This gets even more tricky with minimalist - virtualisation containers. -* Changing the MO file usually leads to PHP segmentation fault. It (or rather - Gettext library) caches headers of MO file and if it's content is changed - (for example new version is uploaded to server) it tries to access new data - with old references. This is bug known for ages: - https://bugs.php.net/bug.php?id=45943 - -### Why use Gettext and not JSON, YAML or whatever? - -We want translators to be able to use their favorite tools and we want us to be -able to use wide range of tools available with Gettext as well such as -[web based translation using Weblate][3]. Using custom format usually adds -another barrier for translators and we want to make it easy for them to -contribute. - -[1]:https://getcomposer.org/ -[2]:https://launchpad.net/php-gettext -[3]:https://weblate.org/ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/codecov.yml b/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/codecov.yml deleted file mode 100644 index 99d09da..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/codecov.yml +++ /dev/null @@ -1,3 +0,0 @@ -comment: - layout: header, changes, diff -coverage: {} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/composer.json b/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/composer.json deleted file mode 100644 index f7726f8..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/composer.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "phpmyadmin/motranslator", - "description": "Translation API for PHP using Gettext MO files", - "license": "GPL-2.0-or-later", - "keywords": ["gettext", "mo", "translator", "i18n"], - "homepage": "https://github.com/phpmyadmin/motranslator", - "authors": [ - { - "name": "The phpMyAdmin Team", - "email": "developers@phpmyadmin.net", - "homepage": "https://www.phpmyadmin.net/team/" - } - ], - "support": { - "issues": "https://github.com/phpmyadmin/motranslator/issues", - "source": "https://github.com/phpmyadmin/motranslator" - }, - "require": { - "php": ">=5.3.0", - "symfony/expression-language": "^4.0 || ^3.2 || ^2.8" - }, - "require-dev": { - "apigen/apigen": "^4.1", - "phpunit/php-code-coverage": "*", - "phpunit/phpunit": "~4.8 || ~5.7 || ~6.5" - }, - "autoload": { - "psr-4": { - "PhpMyAdmin\\MoTranslator\\": "src" - } - }, - "autoload-dev": { - "psr-4": { - "PhpMyAdmin\\MoTranslator\\Tests\\": "tests" - } - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/phpunit.xml b/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/phpunit.xml deleted file mode 100644 index 85c5abd..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/phpunit.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - ./tests - - - - - src/ - - - - - - - - diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/src/Loader.php b/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/src/Loader.php deleted file mode 100644 index e32d7c4..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/src/Loader.php +++ /dev/null @@ -1,247 +0,0 @@ - - Copyright (c) 2009 Danilo Segan - Copyright (c) 2016 Michal Čihař - - This file is part of MoTranslator. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -*/ - -namespace PhpMyAdmin\MoTranslator; - -class Loader -{ - /** - * Loader instance. - * - * @static - * - * @var Loader - */ - private static $_instance; - - /** - * Default gettext domain to use. - * - * @var string - */ - private $default_domain = ''; - - /** - * Configured locale. - * - * @var string - */ - private $locale = ''; - - /** - * Loaded domains. - * - * @var array - */ - private $domains = array(); - - /** - * Bound paths for domains. - * - * @var array - */ - private $paths = array('' => './'); - - /** - * Returns the singleton Loader object. - * - * @return Loader object - */ - public static function getInstance() - { - if (empty(self::$_instance)) { - self::$_instance = new self(); - } - - return self::$_instance; - } - - /** - * Loads global localizaton functions. - */ - public static function loadFunctions() - { - require_once __DIR__ . '/functions.php'; - } - - /** - * Figure out all possible locale names and start with the most - * specific ones. I.e. for sr_CS.UTF-8@latin, look through all of - * sr_CS.UTF-8@latin, sr_CS@latin, sr@latin, sr_CS.UTF-8, sr_CS, sr. - * - * @param string $locale Locale code - * - * @return array list of locales to try for any POSIX-style locale specification - */ - public static function listLocales($locale) - { - $locale_names = array(); - - $lang = null; - $country = null; - $charset = null; - $modifier = null; - - if ($locale) { - if (preg_match('/^(?P[a-z]{2,3})' // language code - . '(?:_(?P[A-Z]{2}))?' // country code - . '(?:\\.(?P[-A-Za-z0-9_]+))?' // charset - . '(?:@(?P[-A-Za-z0-9_]+))?$/', // @ modifier - $locale, $matches)) { - extract($matches); - - if ($modifier) { - if ($country) { - if ($charset) { - array_push($locale_names, "${lang}_$country.$charset@$modifier"); - } - array_push($locale_names, "${lang}_$country@$modifier"); - } elseif ($charset) { - array_push($locale_names, "${lang}.$charset@$modifier"); - } - array_push($locale_names, "$lang@$modifier"); - } - if ($country) { - if ($charset) { - array_push($locale_names, "${lang}_$country.$charset"); - } - array_push($locale_names, "${lang}_$country"); - } elseif ($charset) { - array_push($locale_names, "${lang}.$charset"); - } - array_push($locale_names, $lang); - } - - // If the locale name doesn't match POSIX style, just include it as-is. - if (!in_array($locale, $locale_names)) { - array_push($locale_names, $locale); - } - } - - return $locale_names; - } - - /** - * Returns Translator object for domain or for default domain. - * - * @param string $domain Translation domain - * - * @return Translator - */ - public function getTranslator($domain = '') - { - if (empty($domain)) { - $domain = $this->default_domain; - } - - if (!isset($this->domains[$this->locale])) { - $this->domains[$this->locale] = array(); - } - - if (!isset($this->domains[$this->locale][$domain])) { - if (isset($this->paths[$domain])) { - $base = $this->paths[$domain]; - } else { - $base = './'; - } - - $locale_names = $this->listLocales($this->locale); - - $filename = ''; - foreach ($locale_names as $locale) { - $filename = "$base/$locale/LC_MESSAGES/$domain.mo"; - if (file_exists($filename)) { - break; - } - } - - // We don't care about invalid path, we will get fallback - // translator here - $this->domains[$this->locale][$domain] = new Translator($filename); - } - - return $this->domains[$this->locale][$domain]; - } - - /** - * Sets the path for a domain. - * - * @param string $domain Domain name - * @param string $path Path where to find locales - */ - public function bindtextdomain($domain, $path) - { - $this->paths[$domain] = $path; - } - - /** - * Sets the default domain. - * - * @param string $domain Domain name - */ - public function textdomain($domain) - { - $this->default_domain = $domain; - } - - /** - * Sets a requested locale. - * - * @param string $locale Locale name - * - * @return string Set or current locale - */ - public function setlocale($locale) - { - if (!empty($locale)) { - $this->locale = $locale; - } - - return $this->locale; - } - - /** - * Detects currently configured locale. - * - * It checks: - * - * - global lang variable - * - environment for LC_ALL, LC_MESSAGES and LANG - * - * @return string with locale name - */ - public function detectlocale() - { - if (isset($GLOBALS['lang'])) { - return $GLOBALS['lang']; - } elseif (getenv('LC_ALL')) { - return getenv('LC_ALL'); - } elseif (getenv('LC_MESSAGES')) { - return getenv('LC_MESSAGES'); - } elseif (getenv('LANG')) { - return getenv('LANG'); - } - - return 'en'; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/src/ReaderException.php b/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/src/ReaderException.php deleted file mode 100644 index e2b18bc..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/src/ReaderException.php +++ /dev/null @@ -1,30 +0,0 @@ -. - Copyright (c) 2016 Michal Čihař - - This file is part of MoTranslator. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -*/ - -namespace PhpMyAdmin\MoTranslator; - -/** - * Exception thrown when file can not be read. - */ -class ReaderException extends \Exception -{ -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/src/StringReader.php b/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/src/StringReader.php deleted file mode 100644 index 06d1916..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/src/StringReader.php +++ /dev/null @@ -1,97 +0,0 @@ -. - Copyright (c) 2016 Michal Čihař - - This file is part of MoTranslator. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -*/ - -namespace PhpMyAdmin\MoTranslator; - -/** - * Simple wrapper around string buffer for - * random access and values parsing. - */ -class StringReader -{ - private $_str; - private $_len; - - /** - * Constructor. - * - * @param string $filename Name of file to load - */ - public function __construct($filename) - { - $this->_str = file_get_contents($filename); - $this->_len = strlen($this->_str); - } - - /** - * Read number of bytes from given offset. - * - * @param int $pos Offset - * @param int $bytes Number of bytes to read - * - * @return string - */ - public function read($pos, $bytes) - { - if ($pos + $bytes > $this->_len) { - throw new ReaderException('Not enough bytes!'); - } - - return substr($this->_str, $pos, $bytes); - } - - /** - * Reads a 32bit integer from the stream. - * - * @param string $unpack Unpack string - * @param int $pos Position - * - * @return int Ingerer from the stream - */ - public function readint($unpack, $pos) - { - $data = unpack($unpack, $this->read($pos, 4)); - $result = $data[1]; - - /* We're reading unsigned int, but PHP will happily - * give us negative number on 32-bit platforms. - * - * See also documentation: - * https://secure.php.net/manual/en/function.unpack.php#refsect1-function.unpack-notes - */ - return $result < 0 ? PHP_INT_MAX : $result; - } - - /** - * Reads an array of integers from the stream. - * - * @param string $unpack Unpack string - * @param int $pos Position - * @param int $count How many elements should be read - * - * @return array Array of Integers - */ - public function readintarray($unpack, $pos, $count) - { - return unpack($unpack . $count, $this->read($pos, 4 * $count)); - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/src/Translator.php b/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/src/Translator.php deleted file mode 100644 index 53a66a6..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/src/Translator.php +++ /dev/null @@ -1,375 +0,0 @@ -. - Copyright (c) 2005 Nico Kaiser - Copyright (c) 2016 Michal Čihař - - This file is part of MoTranslator. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -*/ - -namespace PhpMyAdmin\MoTranslator; - -use Symfony\Component\ExpressionLanguage\ExpressionLanguage; - -/** - * Provides a simple gettext replacement that works independently from - * the system's gettext abilities. - * It can read MO files and use them for translating strings. - * - * It caches ll strings and translations to speed up the string lookup. - */ -class Translator -{ - /** - * None error. - */ - const ERROR_NONE = 0; - /** - * File does not exist. - */ - const ERROR_DOES_NOT_EXIST = 1; - /** - * File has bad magic number. - */ - const ERROR_BAD_MAGIC = 2; - /** - * Error while reading file, probably too short. - */ - const ERROR_READING = 3; - - /** - * Big endian mo file magic bytes. - */ - const MAGIC_BE = "\x95\x04\x12\xde"; - /** - * Little endian mo file magic bytes. - */ - const MAGIC_LE = "\xde\x12\x04\x95"; - - /** - * Parse error code (0 if no error). - * - * @var int - */ - public $error = self::ERROR_NONE; - - /** - * Cache header field for plural forms. - * - * @var string|null - */ - private $pluralequation = null; - /** - * @var ExpressionLanguage|null Evaluator for plurals - */ - private $pluralexpression = null; - /** - * @var int|null number of plurals - */ - private $pluralcount = null; - /** - * Array with original -> translation mapping. - * - * @var array - */ - private $cache_translations = array(); - - /** - * Constructor. - * - * @param string $filename Name of mo file to load - */ - public function __construct($filename) - { - if (!is_readable($filename)) { - $this->error = self::ERROR_DOES_NOT_EXIST; - - return; - } - - $stream = new StringReader($filename); - - try { - $magic = $stream->read(0, 4); - if (strcmp($magic, self::MAGIC_LE) == 0) { - $unpack = 'V'; - } elseif (strcmp($magic, self::MAGIC_BE) == 0) { - $unpack = 'N'; - } else { - $this->error = self::ERROR_BAD_MAGIC; - - return; - } - - /* Parse header */ - $total = $stream->readint($unpack, 8); - $originals = $stream->readint($unpack, 12); - $translations = $stream->readint($unpack, 16); - - /* get original and translations tables */ - $table_originals = $stream->readintarray($unpack, $originals, $total * 2); - $table_translations = $stream->readintarray($unpack, $translations, $total * 2); - - /* read all strings to the cache */ - for ($i = 0; $i < $total; ++$i) { - $original = $stream->read($table_originals[$i * 2 + 2], $table_originals[$i * 2 + 1]); - $translation = $stream->read($table_translations[$i * 2 + 2], $table_translations[$i * 2 + 1]); - $this->cache_translations[$original] = $translation; - } - } catch (ReaderException $e) { - $this->error = self::ERROR_READING; - - return; - } - } - - /** - * Translates a string. - * - * @param string $msgid String to be translated - * - * @return string translated string (or original, if not found) - */ - public function gettext($msgid) - { - if (array_key_exists($msgid, $this->cache_translations)) { - return $this->cache_translations[$msgid]; - } - - return $msgid; - } - - /** - * Check if a string is translated. - * - * @param string $msgid String to be checked - * - * @return bool - */ - public function exists($msgid) - { - return array_key_exists($msgid, $this->cache_translations); - } - - /** - * Sanitize plural form expression for use in ExpressionLanguage. - * - * @param string $expr Expression to sanitize - * - * @return string sanitized plural form expression - */ - public static function sanitizePluralExpression($expr) - { - // Parse equation - $expr = explode(';', $expr); - if (count($expr) >= 2) { - $expr = $expr[1]; - } else { - $expr = $expr[0]; - } - $expr = trim(strtolower($expr)); - // Strip plural prefix - if (substr($expr, 0, 6) === 'plural') { - $expr = ltrim(substr($expr, 6)); - } - // Strip equals - if (substr($expr, 0, 1) === '=') { - $expr = ltrim(substr($expr, 1)); - } - - // Cleanup from unwanted chars - $expr = preg_replace('@[^n0-9:\(\)\?=!<>/%&| ]@', '', $expr); - - return $expr; - } - - /** - * Extracts number of plurals from plurals form expression. - * - * @param string $expr Expression to process - * - * @return int Total number of plurals - */ - public static function extractPluralCount($expr) - { - $parts = explode(';', $expr, 2); - $nplurals = explode('=', trim($parts[0]), 2); - if (strtolower(rtrim($nplurals[0])) != 'nplurals') { - return 1; - } - if (count($nplurals) == 1) { - return 1; - } - - return intval($nplurals[1]); - } - - /** - * Parse full PO header and extract only plural forms line. - * - * @param string $header Gettext header - * - * @return string verbatim plural form header field - */ - public static function extractPluralsForms($header) - { - $headers = explode("\n", $header); - $expr = 'nplurals=2; plural=n == 1 ? 0 : 1;'; - foreach ($headers as $header) { - if (stripos($header, 'Plural-Forms:') === 0) { - $expr = substr($header, 13); - } - } - - return $expr; - } - - /** - * Get possible plural forms from MO header. - * - * @return string plural form header - */ - private function getPluralForms() - { - // lets assume message number 0 is header - // this is true, right? - - // cache header field for plural forms - if (is_null($this->pluralequation)) { - if (isset($this->cache_translations[''])) { - $header = $this->cache_translations['']; - } else { - $header = ''; - } - $expr = $this->extractPluralsForms($header); - $this->pluralequation = $this->sanitizePluralExpression($expr); - $this->pluralcount = $this->extractPluralCount($expr); - } - - return $this->pluralequation; - } - - /** - * Detects which plural form to take. - * - * @param int $n count of objects - * - * @return int array index of the right plural form - */ - private function selectString($n) - { - if (is_null($this->pluralexpression)) { - $this->pluralexpression = new ExpressionLanguage(); - } - try { - $plural = $this->pluralexpression->evaluate( - $this->getPluralForms(), array('n' => $n) - ); - } catch (\Exception $e) { - $plural = 0; - } - - if ($plural >= $this->pluralcount) { - $plural = $this->pluralcount - 1; - } - - return $plural; - } - - /** - * Plural version of gettext. - * - * @param string $msgid Single form - * @param string $msgidPlural Plural form - * @param int $number Number of objects - * - * @return string translated plural form - */ - public function ngettext($msgid, $msgidPlural, $number) - { - // this should contains all strings separated by NULLs - $key = implode(chr(0), array($msgid, $msgidPlural)); - if (!array_key_exists($key, $this->cache_translations)) { - return ($number != 1) ? $msgidPlural : $msgid; - } - - // find out the appropriate form - $select = $this->selectString($number); - - $result = $this->cache_translations[$key]; - $list = explode(chr(0), $result); - - if (!isset($list[$select])) { - return $list[0]; - } - - return $list[$select]; - } - - /** - * Translate with context. - * - * @param string $msgctxt Context - * @param string $msgid String to be translated - * - * @return string translated plural form - */ - public function pgettext($msgctxt, $msgid) - { - $key = implode(chr(4), array($msgctxt, $msgid)); - $ret = $this->gettext($key); - if (strpos($ret, chr(4)) !== false) { - return $msgid; - } - - return $ret; - } - - /** - * Plural version of pgettext. - * - * @param string $msgctxt Context - * @param string $msgid Single form - * @param string $msgidPlural Plural form - * @param int $number Number of objects - * - * @return string translated plural form - */ - public function npgettext($msgctxt, $msgid, $msgidPlural, $number) - { - $key = implode(chr(4), array($msgctxt, $msgid)); - $ret = $this->ngettext($key, $msgidPlural, $number); - if (strpos($ret, chr(4)) !== false) { - return $msgid; - } - - return $ret; - } - - /** - * Set translation in place - * - * @param string $msgid String to be set - * @param string $msgstr Translation - * - * @return void - */ - public function setTranslation($msgid, $msgstr) - { - $this->cache_translations[$msgid] = $msgstr; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/src/functions.php b/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/src/functions.php deleted file mode 100644 index 559715a..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/motranslator/src/functions.php +++ /dev/null @@ -1,215 +0,0 @@ - - Copyright (c) 2009 Danilo Segan - Copyright (c) 2016 Michal Čihař - - This file is part of MoTranslator. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -*/ - -use PhpMyAdmin\MoTranslator\Loader; - -/** - * Sets a requested locale. - * - * @param int $category Locale category, ignored - * @param string $locale Locale name - * - * @return string Set or current locale - */ -function _setlocale($category, $locale) -{ - return Loader::getInstance()->setlocale($locale); -} - -/** - * Sets the path for a domain. - * - * @param string $domain Domain name - * @param string $path Path where to find locales - */ -function _bindtextdomain($domain, $path) -{ - Loader::getInstance()->bindtextdomain($domain, $path); -} - -/** - * Dummy compatibility function, MoTranslator assumes - * everything is using same character set on input and - * output. - * - * Generally it is wise to output in UTF-8 and have - * mo files in UTF-8. - * - * @param mixed $domain Domain where to set character set - * @param mixed $codeset Character set to set - */ -function _bind_textdomain_codeset($domain, $codeset) -{ -} - -/** - * Sets the default domain. - * - * @param string $domain Domain name - */ -function _textdomain($domain) -{ - Loader::getInstance()->textdomain($domain); -} - -/** - * Translates a string. - * - * @param string $msgid String to be translated - * - * @return string translated string (or original, if not found) - */ -function _gettext($msgid) -{ - return Loader::getInstance()->getTranslator()->gettext( - $msgid - ); -} - -/** - * Translates a string, alias for _gettext. - * - * @param string $msgid String to be translated - * - * @return string translated string (or original, if not found) - */ -function __($msgid) -{ - return Loader::getInstance()->getTranslator()->gettext( - $msgid - ); -} - -/** - * Plural version of gettext. - * - * @param string $msgid Single form - * @param string $msgidPlural Plural form - * @param int $number Number of objects - * - * @return string translated plural form - */ -function _ngettext($msgid, $msgidPlural, $number) -{ - return Loader::getInstance()->getTranslator()->ngettext( - $msgid, $msgidPlural, $number - ); -} - -/** - * Translate with context. - * - * @param string $msgctxt Context - * @param string $msgid String to be translated - * - * @return string translated plural form - */ -function _pgettext($msgctxt, $msgid) -{ - return Loader::getInstance()->getTranslator()->pgettext( - $msgctxt, $msgid - ); -} - -/** - * Plural version of pgettext. - * - * @param string $msgctxt Context - * @param string $msgid Single form - * @param string $msgidPlural Plural form - * @param int $number Number of objects - * - * @return string translated plural form - */ -function _npgettext($msgctxt, $msgid, $msgidPlural, $number) -{ - return Loader::getInstance()->getTranslator()->npgettext( - $msgctxt, $msgid, $msgidPlural, $number - ); -} - -/** - * Translates a string. - * - * @param string $domain Domain to use - * @param string $msgid String to be translated - * - * @return string translated string (or original, if not found) - */ -function _dgettext($domain, $msgid) -{ - return Loader::getInstance()->getTranslator($domain)->gettext( - $msgid - ); -} - -/** - * Plural version of gettext. - * - * @param string $domain Domain to use - * @param string $msgid Single form - * @param string $msgidPlural Plural form - * @param int $number Number of objects - * - * @return string translated plural form - */ -function _dngettext($domain, $msgid, $msgidPlural, $number) -{ - return Loader::getInstance()->getTranslator($domain)->ngettext( - $msgid, $msgidPlural, $number - ); -} - -/** - * Translate with context. - * - * @param string $domain Domain to use - * @param string $msgctxt Context - * @param string $msgid String to be translated - * - * @return string translated plural form - */ -function _dpgettext($domain, $msgctxt, $msgid) -{ - return Loader::getInstance()->getTranslator($domain)->pgettext( - $msgctxt, $msgid - ); -} - -/** - * Plural version of pgettext. - * - * @param string $domain Domain to use - * @param string $msgctxt Context - * @param string $msgid Single form - * @param string $msgidPlural Plural form - * @param int $number Number of objects - * - * @return string translated plural form - */ -function _dnpgettext($domain, $msgctxt, $msgid, $msgidPlural, $number) -{ - return Loader::getInstance()->getTranslator($domain)->npgettext( - $msgctxt, $msgid, $msgidPlural, $number - ); -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/shapefile/CHANGELOG.md b/srcs/phpmyadmin/vendor/phpmyadmin/shapefile/CHANGELOG.md deleted file mode 100644 index c572456..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/shapefile/CHANGELOG.md +++ /dev/null @@ -1,80 +0,0 @@ -# Change Log - -## [2.1] - 2017-05-15 - -* Documentation improvements. - -## [2.0] - 2017-01-23 - -* Switched to PhpMyAdmin vendor namespace to follow PSR-4. - -## [1.2] - 2017-01-07 - -* Coding style cleanup. -* PHP 7.2 support. -* Avoid installing tests and test data using composer. - -## [1.1] - 2016-11-21 - -* Fixed adjusting of record bouding box - -## [1.0] - 2016-11-21 - -* Documentation improvements -* Code cleanups - -## [0.12] - 2016-11-17 - -* Fixed DBF search -* Improved test coverage - -## [0.11] - 2016-11-16 - -* Code cleanups -* Fixed behavior without configured DBF header - -## [0.11] - 2016-11-16 - -* Fixed saving Polygon/Polyline creation with multiple parts -* Fixed saving Multipont records - -## [0.10] - 2016-09-05 - -* Improved error handling on loading - -## [0.9] - 2016-08-04 - -* Code cleanups - -## [0.8] - 2016-06-24 - -* Code cleanups -* Fixed loading of records with optional data - -## [0.7] - 2016-06-24 - -* Properly fail on loading corrupted files - -## [0.6] - 2016-06-24 - -* Fixed detection of end of file when loading - -## [0.5] - 2016-06-24 - -* Added getShapeName method to ShapeFile - -## [0.4] - 2016-06-24 - -* Make API work even without real file open - -## [0.3] - 2016-06-24 - -* Better support for subclassing - -## [0.2] - 2016-06-24 - -* Make the dbase extension optional dependency - -## [0.1] - 2016-06-14 - -* Inital release based on bfShapeFiles diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/shapefile/CONTRIBUTING.md b/srcs/phpmyadmin/vendor/phpmyadmin/shapefile/CONTRIBUTING.md deleted file mode 100644 index d5d8705..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/shapefile/CONTRIBUTING.md +++ /dev/null @@ -1,42 +0,0 @@ -# Contributing to shapefile - -## Reporting issues - -Our issue tracker is hosted at GitHub: - -https://github.com/phpmyadmin/shapefile/issues - -Please search for existing issues before reporting new ones. - -## Working with Git checkout - -The dependencies are managed by Composer, to get them all installed (or update -on consequent runs) do: - -``` -composer update -``` - -## Submitting patches - -Please submit your patches using GitHub pull requests, this allows us to review -them and to run automated tests on the code. - -## Coding standards - -We do follow PSR-1 and PSR-2 coding standards. - -You can use php-cs-fixer to fix the code to match our expectations: - -``` -php-cs-fixer fix . -``` - -## Testsuite - -Our code comes with quite comprehensive testsuite, it is automatically executed -on every commit and pull request, you can also run it locally: - -``` -./vendor/bin/phpunit -c phpunit.xml -``` diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/shapefile/LICENSE b/srcs/phpmyadmin/vendor/phpmyadmin/shapefile/LICENSE deleted file mode 100644 index 23cb790..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/shapefile/LICENSE +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - {description} - Copyright (C) {year} {fullname} - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - {signature of Ty Coon}, 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/shapefile/README.md b/srcs/phpmyadmin/vendor/phpmyadmin/shapefile/README.md deleted file mode 100644 index 3e0bf23..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/shapefile/README.md +++ /dev/null @@ -1,57 +0,0 @@ -# shapefile -ShapeFile library for PHP - -[![Build Status](https://travis-ci.org/phpmyadmin/shapefile.svg?branch=master)](https://travis-ci.org/phpmyadmin/shapefile) -[![codecov.io](https://codecov.io/github/phpmyadmin/shapefile/coverage.svg?branch=master)](https://codecov.io/github/phpmyadmin/shapefile?branch=master) -[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/phpmyadmin/shapefile/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/phpmyadmin/shapefile/?branch=master) -[![Packagist](https://img.shields.io/packagist/dt/phpmyadmin/shapefile.svg)](https://packagist.org/packages/phpmyadmin/shapefile) - -## Features - -Currently the 2D and 3D variants except MultiPatch of the ShapeFile format as -defined in https://www.esri.com/library/whitepapers/pdfs/shapefile.pdf. The -library currently supports reading and editing of ShapeFiles and the Associated -information (DBF file). There are a lot of things that can be improved in the -code, if you are interested in developing, helping with the documentation, -making translations or offering new ideas please contact us. - -## Installation - -Please use [Composer][1] to install: - -``` -composer require phpmyadmin/shapefile -``` - -To be able to read and write the associated DBF file, you need ``dbase`` -extension: - -``` -pecl install dbase -echo "extension=dbase.so" > /etc/php5/conf.d/dbase.ini -``` - -## Documentation - -The API documentation is available at -. - -## Usage - -To read shape file: - -```php -$shp = new \PhpMyAdmin\ShapeFile\ShapeFile(0); -$shp->loadFromFile('path/file.*'); -``` - -## History - -This library is based on BytesFall ShapeFiles library written by Ovidio (ovidio -AT users.sourceforge.net). The library has been embedded in phpMyAdmin for -years and slowly developed there. At one point people started to use our -version rather than the original library and that was the point we decided to -make it separate package. - -[1]:https://getcomposer.org/ - diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/shapefile/codecov.yml b/srcs/phpmyadmin/vendor/phpmyadmin/shapefile/codecov.yml deleted file mode 100644 index 99d09da..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/shapefile/codecov.yml +++ /dev/null @@ -1,3 +0,0 @@ -comment: - layout: header, changes, diff -coverage: {} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/shapefile/composer.json b/srcs/phpmyadmin/vendor/phpmyadmin/shapefile/composer.json deleted file mode 100644 index b4968ec..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/shapefile/composer.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "phpmyadmin/shapefile", - "description": "ESRI ShapeFile library for PHP", - "license": "GPL-2.0+", - "keywords": ["shapefile", "shp", "geo", "geospatial", "dbf", "ESRI", "shape"], - "homepage": "https://github.com/phpmyadmin/shapefile", - "authors": [ - { - "name": "The phpMyAdmin Team", - "email": "developers@phpmyadmin.net", - "homepage": "https://www.phpmyadmin.net/team/" - } - ], - "support": { - "issues": "https://github.com/phpmyadmin/shapefile/issues", - "source": "https://github.com/phpmyadmin/shapefile" - }, - "require": { - "php": ">=5.4.0" - }, - "suggest": { - "ext-dbase": "For dbf files parsing" - }, - "require-dev": { - "phpunit/php-code-coverage": "*", - "phpunit/phpunit": "~4.8 || ~5.7" - }, - "autoload": { - "psr-4": { - "PhpMyAdmin\\ShapeFile\\": "src" - } - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/shapefile/phpunit.xml b/srcs/phpmyadmin/vendor/phpmyadmin/shapefile/phpunit.xml deleted file mode 100644 index 77935db..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/shapefile/phpunit.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - ./tests - - - - - src/ - - - diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/shapefile/src/ShapeFile.php b/srcs/phpmyadmin/vendor/phpmyadmin/shapefile/src/ShapeFile.php deleted file mode 100644 index 5995a82..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/shapefile/src/ShapeFile.php +++ /dev/null @@ -1,647 +0,0 @@ -. - * - * Copyright 2006-2007 Ovidio - * Copyright 2016 - 2017 Michal Čihař - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, you can download one from - * https://www.gnu.org/copyleft/gpl.html. - */ - -namespace PhpMyAdmin\ShapeFile; - -/** - * ShapeFile class. - */ -class ShapeFile -{ - const MAGIC = 0x270a; - - public $FileName; - - private $SHPFile = null; - private $SHXFile = null; - private $DBFFile = null; - - private $DBFHeader; - - public $lastError = ''; - - public $boundingBox = array('xmin' => 0.0, 'ymin' => 0.0, 'xmax' => 0.0, 'ymax' => 0.0); - private $fileLength = 0; - public $shapeType = 0; - - public $records = array(); - - /** - * Checks whether dbase manipuations are supported. - * - * @return bool - */ - public static function supports_dbase() - { - return extension_loaded('dbase'); - } - - /** - * @param int $shapeType File shape type, should be same as all records - * @param array $boundingBox File bounding box - * @param null|mixed $FileName File name - */ - public function __construct($shapeType, $boundingBox = array('xmin' => 0.0, 'ymin' => 0.0, 'xmax' => 0.0, 'ymax' => 0.0), $FileName = null) - { - $this->shapeType = $shapeType; - $this->boundingBox = $boundingBox; - $this->FileName = $FileName; - $this->fileLength = 50; // The value for file length is the total length of the file in 16-bit words (including the fifty 16-bit words that make up the header). - } - - /** - * Loads shapefile and dbase (if supported). - * - * @param string $FileName File mask to load (eg. example.*) - */ - public function loadFromFile($FileName) - { - if (!empty($FileName)) { - $this->FileName = $FileName; - $result = $this->_openSHPFile(); - } else { - /* We operate on buffer emulated by readSHP / eofSHP */ - $result = true; - } - - if ($result && ($this->_openDBFFile())) { - if (!$this->_loadHeaders()) { - $this->_closeSHPFile(); - $this->_closeDBFFile(); - - return false; - } - if (!$this->_loadRecords()) { - $this->_closeSHPFile(); - $this->_closeDBFFile(); - - return false; - } - $this->_closeSHPFile(); - $this->_closeDBFFile(); - - return true; - } - - return false; - } - - /** - * Saves shapefile. - * - * @param string|null $FileName Name of file, otherwise existing is used - */ - public function saveToFile($FileName = null) - { - if (!is_null($FileName)) { - $this->FileName = $FileName; - } - - if (($this->_openSHPFile(true)) && ($this->_openSHXFile(true)) && ($this->_createDBFFile())) { - $this->_saveHeaders(); - $this->_saveRecords(); - $this->_closeSHPFile(); - $this->_closeSHXFile(); - $this->_closeDBFFile(); - } else { - return false; - } - } - - /** - * Generates filename with given extension. - * - * @param string $extension Extension to use (including dot) - * - * @return string - */ - private function _getFilename($extension) - { - return str_replace('.*', $extension, $this->FileName); - } - - /** - * Updates bounding box based on SHPData. - * - * @param string $type Type of box - * @param array $data ShapeRecord SHPData - */ - private function updateBBox($type, $data) - { - $min = $type . 'min'; - $max = $type . 'max'; - - if (!isset($this->boundingBox[$min]) || $this->boundingBox[$min] == 0.0 || ($this->boundingBox[$min] > $data[$min])) { - $this->boundingBox[$min] = $data[$min]; - } - if (!isset($this->boundingBox[$max]) || $this->boundingBox[$max] == 0.0 || ($this->boundingBox[$max] < $data[$max])) { - $this->boundingBox[$max] = $data[$max]; - } - } - - /** - * Adds record to shape file. - * - * @param ShapeRecord $record - * - * @return int Number of added record - */ - public function addRecord($record) - { - if ((isset($this->DBFHeader)) && (is_array($this->DBFHeader))) { - $record->updateDBFInfo($this->DBFHeader); - } - - $this->fileLength += ($record->getContentLength() + 4); - $this->records[] = $record; - $this->records[count($this->records) - 1]->recordNumber = count($this->records); - - $this->updateBBox('x', $record->SHPData); - $this->updateBBox('y', $record->SHPData); - - if (in_array($this->shapeType, array(11, 13, 15, 18, 21, 23, 25, 28))) { - $this->updateBBox('m', $record->SHPData); - } - - if (in_array($this->shapeType, array(11, 13, 15, 18))) { - $this->updateBBox('z', $record->SHPData); - } - - return count($this->records) - 1; - } - - /** - * Deletes record from shapefile. - * - * @param int $index - */ - public function deleteRecord($index) - { - if (isset($this->records[$index])) { - $this->fileLength -= ($this->records[$index]->getContentLength() + 4); - $count = count($this->records) - 1; - for ($i = $index; $i < $count; ++$i) { - $this->records[$i] = $this->records[$i + 1]; - } - unset($this->records[count($this->records) - 1]); - $this->_deleteRecordFromDBF($index); - } - } - - /** - * Returns array defining fields in DBF file. - * - * @return array see setDBFHeader for more information - */ - public function getDBFHeader() - { - return $this->DBFHeader; - } - - /** - * Changes array defining fields in DBF file, used in dbase_create call. - * - * @param array $header An array of arrays, each array describing the - * format of one field of the database. Each - * field consists of a name, a character indicating - * the field type, and optionally, a length, - * a precision and a nullable flag. - */ - public function setDBFHeader($header) - { - $this->DBFHeader = $header; - - $count = count($this->records); - for ($i = 0; $i < $count; ++$i) { - $this->records[$i]->updateDBFInfo($header); - } - } - - /** - * Lookups value in the DBF file and returs index. - * - * @param string $field Field to match - * @param mixed $value Value to match - * - * @return int - */ - public function getIndexFromDBFData($field, $value) - { - foreach ($this->records as $index => $record) { - if (isset($record->DBFData[$field]) && - (trim(strtoupper($record->DBFData[$field])) == strtoupper($value)) - ) { - return $index; - } - } - - return -1; - } - - /** - * Loads DBF metadata. - */ - private function _loadDBFHeader() - { - $DBFFile = fopen($this->_getFilename('.dbf'), 'r'); - - $result = array(); - $i = 1; - $inHeader = true; - - while ($inHeader) { - if (!feof($DBFFile)) { - $buff32 = fread($DBFFile, 32); - if ($i > 1) { - if (substr($buff32, 0, 1) == chr(13)) { - $inHeader = false; - } else { - $pos = strpos(substr($buff32, 0, 10), chr(0)); - $pos = ($pos == 0 ? 10 : $pos); - - $fieldName = substr($buff32, 0, $pos); - $fieldType = substr($buff32, 11, 1); - $fieldLen = ord(substr($buff32, 16, 1)); - $fieldDec = ord(substr($buff32, 17, 1)); - - array_push($result, array($fieldName, $fieldType, $fieldLen, $fieldDec)); - } - } - ++$i; - } else { - $inHeader = false; - } - } - - fclose($DBFFile); - - return $result; - } - - /** - * Deletes record from the DBF file. - * - * @param int $index - */ - private function _deleteRecordFromDBF($index) - { - if (@dbase_delete_record($this->DBFFile, $index)) { - dbase_pack($this->DBFFile); - } - } - - /** - * Loads SHP file metadata. - * - * @return bool - */ - private function _loadHeaders() - { - if (Util::loadData('N', $this->readSHP(4)) != self::MAGIC) { - $this->setError('Not a SHP file (file code mismatch)'); - - return false; - } - - /* Skip 20 unused bytes */ - $this->readSHP(20); - - $this->fileLength = Util::loadData('N', $this->readSHP(4)); - - /* We currently ignore version */ - $this->readSHP(4); - - $this->shapeType = Util::loadData('V', $this->readSHP(4)); - - $this->boundingBox = array(); - $this->boundingBox['xmin'] = Util::loadData('d', $this->readSHP(8)); - $this->boundingBox['ymin'] = Util::loadData('d', $this->readSHP(8)); - $this->boundingBox['xmax'] = Util::loadData('d', $this->readSHP(8)); - $this->boundingBox['ymax'] = Util::loadData('d', $this->readSHP(8)); - $this->boundingBox['zmin'] = Util::loadData('d', $this->readSHP(8)); - $this->boundingBox['zmax'] = Util::loadData('d', $this->readSHP(8)); - $this->boundingBox['mmin'] = Util::loadData('d', $this->readSHP(8)); - $this->boundingBox['mmax'] = Util::loadData('d', $this->readSHP(8)); - - if (self::supports_dbase()) { - $this->DBFHeader = $this->_loadDBFHeader(); - } - - return true; - } - - /** - * Saves bounding box record, possibly using 0 instead of not set values. - * - * @param file $file File object - * @param string $type Bounding box dimension (eg. xmax, mmin...) - */ - private function _saveBBoxRecord($file, $type) - { - fwrite($file, Util::packDouble( - isset($this->boundingBox[$type]) ? $this->boundingBox[$type] : 0) - ); - } - - /** - * Saves bounding box to a file. - * - * @param file $file File object - */ - private function _saveBBox($file) - { - $this->_saveBBoxRecord($file, 'xmin'); - $this->_saveBBoxRecord($file, 'ymin'); - $this->_saveBBoxRecord($file, 'xmax'); - $this->_saveBBoxRecord($file, 'ymax'); - $this->_saveBBoxRecord($file, 'zmin'); - $this->_saveBBoxRecord($file, 'zmax'); - $this->_saveBBoxRecord($file, 'mmin'); - $this->_saveBBoxRecord($file, 'mmax'); - } - - /** - * Saves SHP and SHX file metadata. - */ - private function _saveHeaders() - { - fwrite($this->SHPFile, pack('NNNNNN', self::MAGIC, 0, 0, 0, 0, 0)); - fwrite($this->SHPFile, pack('N', $this->fileLength)); - fwrite($this->SHPFile, pack('V', 1000)); - fwrite($this->SHPFile, pack('V', $this->shapeType)); - $this->_saveBBox($this->SHPFile); - - fwrite($this->SHXFile, pack('NNNNNN', self::MAGIC, 0, 0, 0, 0, 0)); - fwrite($this->SHXFile, pack('N', 50 + 4 * count($this->records))); - fwrite($this->SHXFile, pack('V', 1000)); - fwrite($this->SHXFile, pack('V', $this->shapeType)); - $this->_saveBBox($this->SHXFile); - } - - /** - * Loads records from SHP file (and DBF). - * - * @return bool - */ - private function _loadRecords() - { - /* Need to start at offset 100 */ - while (!$this->eofSHP()) { - $record = new ShapeRecord(-1); - $record->loadFromFile($this, $this->SHPFile, $this->DBFFile); - if ($record->lastError != '') { - $this->setError($record->lastError); - - return false; - } - if (($record->shapeType === false || $record->shapeType === '') && $this->eofSHP()) { - break; - } - - $this->records[] = $record; - } - - return true; - } - - /** - * Saves records to SHP and SHX files. - */ - private function _saveRecords() - { - $offset = 50; - if (is_array($this->records) && (count($this->records) > 0)) { - foreach ($this->records as $index => $record) { - //Save the record to the .shp file - $record->saveToFile($this->SHPFile, $this->DBFFile, $index + 1); - - //Save the record to the .shx file - fwrite($this->SHXFile, pack('N', $offset)); - fwrite($this->SHXFile, pack('N', $record->getContentLength())); - $offset += (4 + $record->getContentLength()); - } - } - } - - /** - * Generic interface to open files. - * - * @param bool $toWrite Whether file should be opened for writing - * @param string $extension File extension - * @param string $name Verbose file name to report errors - * - * @return file|false File handle - */ - private function _openFile($toWrite, $extension, $name) - { - $shp_name = $this->_getFilename($extension); - $result = @fopen($shp_name, ($toWrite ? 'wb+' : 'rb')); - if (!$result) { - $this->setError(sprintf('It wasn\'t possible to open the %s file "%s"', $name, $shp_name)); - - return false; - } - - return $result; - } - - /** - * Opens SHP file. - * - * @param bool $toWrite Whether file should be opened for writing - * - * @return bool - */ - private function _openSHPFile($toWrite = false) - { - $this->SHPFile = $this->_openFile($toWrite, '.shp', 'Shape'); - if (!$this->SHPFile) { - return false; - } - - return true; - } - - /** - * Closes SHP file. - */ - private function _closeSHPFile() - { - if ($this->SHPFile) { - fclose($this->SHPFile); - $this->SHPFile = null; - } - } - - /** - * Opens SHX file. - * - * @param bool $toWrite Whether file should be opened for writing - * - * @return bool - */ - private function _openSHXFile($toWrite = false) - { - $this->SHXFile = $this->_openFile($toWrite, '.shx', 'Index'); - if (!$this->SHXFile) { - return false; - } - - return true; - } - - /** - * Closes SHX file. - */ - private function _closeSHXFile() - { - if ($this->SHXFile) { - fclose($this->SHXFile); - $this->SHXFile = null; - } - } - - /** - * Creates DBF file. - * - * @return bool - */ - private function _createDBFFile() - { - if (!self::supports_dbase() || !is_array($this->DBFHeader) || count($this->DBFHeader) == 0) { - $this->DBFFile = null; - - return true; - } - $dbf_name = $this->_getFilename('.dbf'); - - /* Unlink existing file */ - if (file_exists($dbf_name)) { - unlink($dbf_name); - } - - /* Create new file */ - $this->DBFFile = @dbase_create($dbf_name, $this->DBFHeader); - if ($this->DBFFile === false) { - $this->setError(sprintf('It wasn\'t possible to create the DBase file "%s"', $dbf_name)); - - return false; - } - - return true; - } - - /** - * Loads DBF file if supported. - * - * @return bool - */ - private function _openDBFFile() - { - if (!self::supports_dbase()) { - $this->DBFFile = null; - - return true; - } - $dbf_name = $this->_getFilename('.dbf'); - if (is_readable($dbf_name)) { - $this->DBFFile = @dbase_open($dbf_name, 0); - if (!$this->DBFFile) { - $this->setError(sprintf('It wasn\'t possible to open the DBase file "%s"', $dbf_name)); - - return false; - } - } else { - $this->setError(sprintf('It wasn\'t possible to find the DBase file "%s"', $dbf_name)); - - return false; - } - - return true; - } - - /** - * Closes DBF file. - */ - private function _closeDBFFile() - { - if ($this->DBFFile) { - dbase_close($this->DBFFile); - $this->DBFFile = null; - } - } - - /** - * Sets error message. - * - * @param string $error - */ - public function setError($error) - { - $this->lastError = $error; - } - - /** - * Reads given number of bytes from SHP file. - * - * @param int $bytes - * - * @return string - */ - public function readSHP($bytes) - { - return fread($this->SHPFile, $bytes); - } - - /** - * Checks whether file is at EOF. - * - * @return bool - */ - public function eofSHP() - { - return feof($this->SHPFile); - } - - /** - * Returns shape name. - * - * @return string - */ - public function getShapeName() - { - return Util::nameShape($this->shapeType); - } - - /** - * Check whether file contains measure data. - * - * For some reason this is distinguished by zero bounding box in the - * specification. - * - * @return bool - */ - public function hasMeasure() - { - return $this->boundingBox['mmin'] != 0 || $this->boundingBox['mmax'] != 0; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/shapefile/src/ShapeRecord.php b/srcs/phpmyadmin/vendor/phpmyadmin/shapefile/src/ShapeRecord.php deleted file mode 100644 index 0d5cfe7..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/shapefile/src/ShapeRecord.php +++ /dev/null @@ -1,849 +0,0 @@ -. - * - * Copyright 2006-2007 Ovidio - * Copyright 2016 - 2017 Michal Čihař - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, you can download one from - * https://www.gnu.org/copyleft/gpl.html. - */ - -namespace PhpMyAdmin\ShapeFile; - -/** - * ShapeFile record class. - */ -class ShapeRecord -{ - private $SHPFile = null; - private $DBFFile = null; - private $ShapeFile = null; - - private $size = 0; - private $read = 0; - - public $recordNumber = null; - public $shapeType = null; - - public $lastError = ''; - - public $SHPData = array(); - public $DBFData = array(); - - /** - * @param int $shapeType - */ - public function __construct($shapeType) - { - $this->shapeType = $shapeType; - } - - /** - * Loads record from files. - * - * @param ShapeFile $ShapeFile - * @param file &$SHPFile Opened SHP file - * @param file &$DBFFile Opened DBF file - */ - public function loadFromFile(&$ShapeFile, &$SHPFile, &$DBFFile) - { - $this->ShapeFile = $ShapeFile; - $this->SHPFile = $SHPFile; - $this->DBFFile = $DBFFile; - $this->_loadHeaders(); - - /* No header read */ - if ($this->read == 0) { - return; - } - - switch ($this->shapeType) { - case 0: - $this->_loadNullRecord(); - break; - case 1: - $this->_loadPointRecord(); - break; - case 21: - $this->_loadPointMRecord(); - break; - case 11: - $this->_loadPointZRecord(); - break; - case 3: - $this->_loadPolyLineRecord(); - break; - case 23: - $this->_loadPolyLineMRecord(); - break; - case 13: - $this->_loadPolyLineZRecord(); - break; - case 5: - $this->_loadPolygonRecord(); - break; - case 25: - $this->_loadPolygonMRecord(); - break; - case 15: - $this->_loadPolygonZRecord(); - break; - case 8: - $this->_loadMultiPointRecord(); - break; - case 28: - $this->_loadMultiPointMRecord(); - break; - case 18: - $this->_loadMultiPointZRecord(); - break; - default: - $this->setError(sprintf('The Shape Type "%s" is not supported.', $this->shapeType)); - break; - } - - /* We need to skip rest of the record */ - while ($this->read < $this->size) { - $this->_loadData('V', 4); - } - - /* Check if we didn't read too much */ - if ($this->read != $this->size) { - $this->setError(sprintf('Failed to parse record, read=%d, size=%d', $this->read, $this->size)); - } - - if (ShapeFile::supports_dbase() && isset($this->DBFFile)) { - $this->_loadDBFData(); - } - } - - /** - * Saves record to files. - * - * @param file &$SHPFile Opened SHP file - * @param file &$DBFFile Opened DBF file - * @param int $recordNumber Record number - */ - public function saveToFile(&$SHPFile, &$DBFFile, $recordNumber) - { - $this->SHPFile = $SHPFile; - $this->DBFFile = $DBFFile; - $this->recordNumber = $recordNumber; - $this->_saveHeaders(); - - switch ($this->shapeType) { - case 0: - // Nothing to save - break; - case 1: - $this->_savePointRecord(); - break; - case 21: - $this->_savePointMRecord(); - break; - case 11: - $this->_savePointZRecord(); - break; - case 3: - $this->_savePolyLineRecord(); - break; - case 23: - $this->_savePolyLineMRecord(); - break; - case 13: - $this->_savePolyLineZRecord(); - break; - case 5: - $this->_savePolygonRecord(); - break; - case 25: - $this->_savePolygonMRecord(); - break; - case 15: - $this->_savePolygonZRecord(); - break; - case 8: - $this->_saveMultiPointRecord(); - break; - case 28: - $this->_saveMultiPointMRecord(); - break; - case 18: - $this->_saveMultiPointZRecord(); - break; - default: - $this->setError(sprintf('The Shape Type "%s" is not supported.', $this->shapeType)); - break; - } - if (ShapeFile::supports_dbase() && !is_null($this->DBFFile)) { - $this->_saveDBFData(); - } - } - - /** - * Updates DBF data to match header. - * - * @param array $header DBF structure header - */ - public function updateDBFInfo($header) - { - $tmp = $this->DBFData; - unset($this->DBFData); - $this->DBFData = array(); - foreach ($header as $value) { - $this->DBFData[$value[0]] = (isset($tmp[$value[0]])) ? $tmp[$value[0]] : ''; - } - } - - /** - * Reads data. - * - * @param string $type type for unpack() - * @param int $count number of bytes - * - * @return mixed - */ - private function _loadData($type, $count) - { - $data = $this->ShapeFile->readSHP($count); - if ($data === false) { - return false; - } - $this->read += strlen($data); - - return Util::loadData($type, $data); - } - - /** - * Loads metadata header from a file. - */ - private function _loadHeaders() - { - $this->shapeType = false; - $this->recordNumber = $this->_loadData('N', 4); - if ($this->recordNumber === false) { - return; - } - // We read the length of the record - $this->size = $this->_loadData('N', 4); - if ($this->size === false) { - return; - } - $this->size = $this->size * 2 + 8; - $this->shapeType = $this->_loadData('V', 4); - } - - /** - * Saves metadata header to a file. - */ - private function _saveHeaders() - { - fwrite($this->SHPFile, pack('N', $this->recordNumber)); - fwrite($this->SHPFile, pack('N', $this->getContentLength())); - fwrite($this->SHPFile, pack('V', $this->shapeType)); - } - - private function _loadPoint() - { - $data = array(); - - $data['x'] = $this->_loadData('d', 8); - $data['y'] = $this->_loadData('d', 8); - - return $data; - } - - private function _loadPointM() - { - $data = $this->_loadPoint(); - - $data['m'] = $this->_loadData('d', 8); - - return $data; - } - - private function _loadPointZ() - { - $data = $this->_loadPoint(); - - $data['z'] = $this->_loadData('d', 8); - $data['m'] = $this->_loadData('d', 8); - - return $data; - } - - private function _savePoint($data) - { - fwrite($this->SHPFile, Util::packDouble($data['x'])); - fwrite($this->SHPFile, Util::packDouble($data['y'])); - } - - private function _savePointM($data) - { - fwrite($this->SHPFile, Util::packDouble($data['x'])); - fwrite($this->SHPFile, Util::packDouble($data['y'])); - fwrite($this->SHPFile, Util::packDouble($data['m'])); - } - - private function _savePointZ($data) - { - fwrite($this->SHPFile, Util::packDouble($data['x'])); - fwrite($this->SHPFile, Util::packDouble($data['y'])); - fwrite($this->SHPFile, Util::packDouble($data['z'])); - fwrite($this->SHPFile, Util::packDouble($data['m'])); - } - - private function _loadNullRecord() - { - $this->SHPData = array(); - } - - private function _loadPointRecord() - { - $this->SHPData = $this->_loadPoint(); - } - - private function _loadPointMRecord() - { - $this->SHPData = $this->_loadPointM(); - } - - private function _loadPointZRecord() - { - $this->SHPData = $this->_loadPointZ(); - } - - private function _savePointRecord() - { - $this->_savePoint($this->SHPData); - } - - private function _savePointMRecord() - { - $this->_savePointM($this->SHPData); - } - - private function _savePointZRecord() - { - $this->_savePointZ($this->SHPData); - } - - private function _loadBBox() - { - $this->SHPData['xmin'] = $this->_loadData('d', 8); - $this->SHPData['ymin'] = $this->_loadData('d', 8); - $this->SHPData['xmax'] = $this->_loadData('d', 8); - $this->SHPData['ymax'] = $this->_loadData('d', 8); - } - - private function _loadMultiPointRecord() - { - $this->SHPData = array(); - $this->_loadBBox(); - - $this->SHPData['numpoints'] = $this->_loadData('V', 4); - - for ($i = 0; $i < $this->SHPData['numpoints']; ++$i) { - $this->SHPData['points'][] = $this->_loadPoint(); - } - } - - /** - * @param string $type - */ - private function _loadMultiPointMZRecord($type) - { - /* The m dimension is optional, depends on bounding box data */ - if ($type == 'm' && !$this->ShapeFile->hasMeasure()) { - return; - } - - $this->SHPData[$type . 'min'] = $this->_loadData('d', 8); - $this->SHPData[$type . 'max'] = $this->_loadData('d', 8); - - for ($i = 0; $i < $this->SHPData['numpoints']; ++$i) { - $this->SHPData['points'][$i][$type] = $this->_loadData('d', 8); - } - } - - private function _loadMultiPointMRecord() - { - $this->_loadMultiPointRecord(); - - $this->_loadMultiPointMZRecord('m'); - } - - private function _loadMultiPointZRecord() - { - $this->_loadMultiPointRecord(); - - $this->_loadMultiPointMZRecord('z'); - $this->_loadMultiPointMZRecord('m'); - } - - private function _saveMultiPointRecord() - { - fwrite($this->SHPFile, pack('dddd', $this->SHPData['xmin'], $this->SHPData['ymin'], $this->SHPData['xmax'], $this->SHPData['ymax'])); - - fwrite($this->SHPFile, pack('V', $this->SHPData['numpoints'])); - - for ($i = 0; $i < $this->SHPData['numpoints']; ++$i) { - $this->_savePoint($this->SHPData['points'][$i]); - } - } - - /** - * @param string $type - */ - private function _saveMultiPointMZRecord($type) - { - fwrite($this->SHPFile, pack('dd', $this->SHPData[$type . 'min'], $this->SHPData[$type . 'max'])); - - for ($i = 0; $i < $this->SHPData['numpoints']; ++$i) { - fwrite($this->SHPFile, Util::packDouble($this->SHPData['points'][$i][$type])); - } - } - - private function _saveMultiPointMRecord() - { - $this->_saveMultiPointRecord(); - - $this->_saveMultiPointMZRecord('m'); - } - - private function _saveMultiPointZRecord() - { - $this->_saveMultiPointRecord(); - - $this->_saveMultiPointMZRecord('z'); - $this->_saveMultiPointMZRecord('m'); - } - - private function _loadPolyLineRecord() - { - $this->SHPData = array(); - $this->_loadBBox(); - - $this->SHPData['numparts'] = $this->_loadData('V', 4); - $this->SHPData['numpoints'] = $this->_loadData('V', 4); - - $numparts = $this->SHPData['numparts']; - $numpoints = $this->SHPData['numpoints']; - - for ($i = 0; $i < $numparts; ++$i) { - $this->SHPData['parts'][$i] = $this->_loadData('V', 4); - } - - $part = 0; - for ($i = 0; $i < $numpoints; ++$i) { - if ($part + 1 < $numparts && $this->SHPData['parts'][$part + 1] == $i) { - ++$part; - } - if (!isset($this->SHPData['parts'][$part]['points']) || !is_array($this->SHPData['parts'][$part]['points'])) { - $this->SHPData['parts'][$part] = array('points' => array()); - } - $this->SHPData['parts'][$part]['points'][] = $this->_loadPoint(); - } - } - - /** - * @param string $type - */ - private function _loadPolyLineMZRecord($type) - { - /* The m dimension is optional, depends on bounding box data */ - if ($type == 'm' && !$this->ShapeFile->hasMeasure()) { - return; - } - - $this->SHPData[$type . 'min'] = $this->_loadData('d', 8); - $this->SHPData[$type . 'max'] = $this->_loadData('d', 8); - - $numparts = $this->SHPData['numparts']; - $numpoints = $this->SHPData['numpoints']; - - $part = 0; - for ($i = 0; $i < $numpoints; ++$i) { - if ($part + 1 < $numparts && $this->SHPData['parts'][$part + 1] == $i) { - ++$part; - } - $this->SHPData['parts'][$part]['points'][$i][$type] = $this->_loadData('d', 8); - } - } - - private function _loadPolyLineMRecord() - { - $this->_loadPolyLineRecord(); - - $this->_loadPolyLineMZRecord('m'); - } - - private function _loadPolyLineZRecord() - { - $this->_loadPolyLineRecord(); - - $this->_loadPolyLineMZRecord('z'); - $this->_loadPolyLineMZRecord('m'); - } - - private function _savePolyLineRecord() - { - fwrite($this->SHPFile, pack('dddd', $this->SHPData['xmin'], $this->SHPData['ymin'], $this->SHPData['xmax'], $this->SHPData['ymax'])); - - fwrite($this->SHPFile, pack('VV', $this->SHPData['numparts'], $this->SHPData['numpoints'])); - - $part_index = 0; - for ($i = 0; $i < $this->SHPData['numparts']; ++$i) { - fwrite($this->SHPFile, pack('V', $part_index)); - $part_index += count($this->SHPData['parts'][$i]['points']); - } - - foreach ($this->SHPData['parts'] as $partData) { - foreach ($partData['points'] as $pointData) { - $this->_savePoint($pointData); - } - } - } - - /** - * @param string $type - */ - private function _savePolyLineMZRecord($type) - { - fwrite($this->SHPFile, pack('dd', $this->SHPData[$type . 'min'], $this->SHPData[$type . 'max'])); - - foreach ($this->SHPData['parts'] as $partData) { - foreach ($partData['points'] as $pointData) { - fwrite($this->SHPFile, Util::packDouble($pointData[$type])); - } - } - } - - private function _savePolyLineMRecord() - { - $this->_savePolyLineRecord(); - - $this->_savePolyLineMZRecord('m'); - } - - private function _savePolyLineZRecord() - { - $this->_savePolyLineRecord(); - - $this->_savePolyLineMZRecord('z'); - $this->_savePolyLineMZRecord('m'); - } - - private function _loadPolygonRecord() - { - $this->_loadPolyLineRecord(); - } - - private function _loadPolygonMRecord() - { - $this->_loadPolyLineMRecord(); - } - - private function _loadPolygonZRecord() - { - $this->_loadPolyLineZRecord(); - } - - private function _savePolygonRecord() - { - $this->_savePolyLineRecord(); - } - - private function _savePolygonMRecord() - { - $this->_savePolyLineMRecord(); - } - - private function _savePolygonZRecord() - { - $this->_savePolyLineZRecord(); - } - - private function _adjustBBox($point) - { - // Adjusts bounding box based on point - $directions = array('x', 'y', 'z', 'm'); - foreach ($directions as $direction) { - if (!isset($point[$direction])) { - continue; - } - $min = $direction . 'min'; - $max = $direction . 'max'; - if (!isset($this->SHPData[$min]) || ($this->SHPData[$min] > $point[$direction])) { - $this->SHPData[$min] = $point[$direction]; - } - if (!isset($this->SHPData[$max]) || ($this->SHPData[$max] < $point[$direction])) { - $this->SHPData[$max] = $point[$direction]; - } - } - } - - /** - * Sets dimension to 0 if not set. - * - * @param array $point Point to check - * @param string $dimension Dimension to check - * - * @return array - */ - private function _fixPoint($point, $dimension) - { - if (!isset($point[$dimension])) { - $point[$dimension] = 0.0; // no_value - } - - return $point; - } - - /** - * Adjust point and bounding box when adding point. - * - * @param array $point Point data - * - * @return array Fixed point data - */ - private function _adjustPoint($point) - { - $type = $this->shapeType / 10; - if ($type >= 2) { - $point = $this->_fixPoint($point, 'm'); - } elseif ($type >= 1) { - $point = $this->_fixPoint($point, 'z'); - $point = $this->_fixPoint($point, 'm'); - } - - return $point; - } - - /** - * Adds point to a record. - * - * @param array $point Point data - * @param int $partIndex Part index - */ - public function addPoint($point, $partIndex = 0) - { - $point = $this->_adjustPoint($point); - switch ($this->shapeType) { - case 0: - //Don't add anything - return; - case 1: - case 11: - case 21: - //Substitutes the value of the current point - $this->SHPData = $point; - break; - case 3: - case 5: - case 13: - case 15: - case 23: - case 25: - //Adds a new point to the selected part - $this->SHPData['parts'][$partIndex]['points'][] = $point; - $this->SHPData['numparts'] = count($this->SHPData['parts']); - $this->SHPData['numpoints'] = 1 + (isset($this->SHPData['numpoints']) ? $this->SHPData['numpoints'] : 0); - break; - case 8: - case 18: - case 28: - //Adds a new point - $this->SHPData['points'][] = $point; - $this->SHPData['numpoints'] = 1 + (isset($this->SHPData['numpoints']) ? $this->SHPData['numpoints'] : 0); - break; - default: - $this->setError(sprintf('The Shape Type "%s" is not supported.', $this->shapeType)); - - return; - } - $this->_adjustBBox($point); - } - - /** - * Deletes point from a record. - * - * @param int $pointIndex Point index - * @param int $partIndex Part index - */ - public function deletePoint($pointIndex = 0, $partIndex = 0) - { - switch ($this->shapeType) { - case 0: - //Don't delete anything - break; - case 1: - case 11: - case 21: - //Sets the value of the point to zero - $this->SHPData['x'] = 0.0; - $this->SHPData['y'] = 0.0; - if (in_array($this->shapeType, array(11, 21))) { - $this->SHPData['m'] = 0.0; - } - if (in_array($this->shapeType, array(11))) { - $this->SHPData['z'] = 0.0; - } - break; - case 3: - case 5: - case 13: - case 15: - case 23: - case 25: - //Deletes the point from the selected part, if exists - if (isset($this->SHPData['parts'][$partIndex]) && isset($this->SHPData['parts'][$partIndex]['points'][$pointIndex])) { - $count = count($this->SHPData['parts'][$partIndex]['points']) - 1; - for ($i = $pointIndex; $i < $count; ++$i) { - $this->SHPData['parts'][$partIndex]['points'][$i] = $this->SHPData['parts'][$partIndex]['points'][$i + 1]; - } - unset($this->SHPData['parts'][$partIndex]['points'][count($this->SHPData['parts'][$partIndex]['points']) - 1]); - - $this->SHPData['numparts'] = count($this->SHPData['parts']); - --$this->SHPData['numpoints']; - } - break; - case 8: - case 18: - case 28: - //Deletes the point, if exists - if (isset($this->SHPData['points'][$pointIndex])) { - $count = count($this->SHPData['points']) - 1; - for ($i = $pointIndex; $i < $count; ++$i) { - $this->SHPData['points'][$i] = $this->SHPData['points'][$i + 1]; - } - unset($this->SHPData['points'][count($this->SHPData['points']) - 1]); - - --$this->SHPData['numpoints']; - } - break; - default: - $this->setError(sprintf('The Shape Type "%s" is not supported.', $this->shapeType)); - break; - } - } - - /** - * Returns length of content. - * - * @return int - */ - public function getContentLength() - { - // The content length for a record is the length of the record contents section measured in 16-bit words. - // one coordinate makes 4 16-bit words (64 bit double) - switch ($this->shapeType) { - case 0: - $result = 0; - break; - case 1: - $result = 10; - break; - case 21: - $result = 10 + 4; - break; - case 11: - $result = 10 + 8; - break; - case 3: - case 5: - $count = count($this->SHPData['parts']); - $result = 22 + 2 * $count; - for ($i = 0; $i < $count; ++$i) { - $result += 8 * count($this->SHPData['parts'][$i]['points']); - } - break; - case 23: - case 25: - $count = count($this->SHPData['parts']); - $result = 22 + (2 * 4) + 2 * $count; - for ($i = 0; $i < $count; ++$i) { - $result += (8 + 4) * count($this->SHPData['parts'][$i]['points']); - } - break; - case 13: - case 15: - $count = count($this->SHPData['parts']); - $result = 22 + (4 * 4) + 2 * $count; - for ($i = 0; $i < $count; ++$i) { - $result += (8 + 8) * count($this->SHPData['parts'][$i]['points']); - } - break; - case 8: - $result = 20 + 8 * count($this->SHPData['points']); - break; - case 28: - $result = 20 + (2 * 4) + (8 + 4) * count($this->SHPData['points']); - break; - case 18: - $result = 20 + (4 * 4) + (8 + 8) * count($this->SHPData['points']); - break; - default: - $result = false; - $this->setError(sprintf('The Shape Type "%s" is not supported.', $this->shapeType)); - break; - } - - return $result; - } - - private function _loadDBFData() - { - $this->DBFData = @dbase_get_record_with_names($this->DBFFile, $this->recordNumber); - unset($this->DBFData['deleted']); - } - - private function _saveDBFData() - { - if (count($this->DBFData) == 0) { - return; - } - unset($this->DBFData['deleted']); - if ($this->recordNumber <= dbase_numrecords($this->DBFFile)) { - if (!dbase_replace_record($this->DBFFile, array_values($this->DBFData), $this->recordNumber)) { - $this->setError('I wasn\'t possible to update the information in the DBF file.'); - } - } else { - if (!dbase_add_record($this->DBFFile, array_values($this->DBFData))) { - $this->setError('I wasn\'t possible to add the information to the DBF file.'); - } - } - } - - /** - * Sets error message. - * - * @param string $error - */ - public function setError($error) - { - $this->lastError = $error; - } - - /** - * Returns shape name. - * - * @return string - */ - public function getShapeName() - { - return Util::nameShape($this->shapeType); - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/shapefile/src/Util.php b/srcs/phpmyadmin/vendor/phpmyadmin/shapefile/src/Util.php deleted file mode 100644 index f4e2878..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/shapefile/src/Util.php +++ /dev/null @@ -1,118 +0,0 @@ -. - * - * Copyright 2006-2007 Ovidio - * Copyright 2016 - 2017 Michal Čihař - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, you can download one from - * https://www.gnu.org/copyleft/gpl.html. - */ - -namespace PhpMyAdmin\ShapeFile; - -class Util -{ - private static $little_endian = null; - - private static $shape_names = array( - 0 => 'Null Shape', - 1 => 'Point', - 3 => 'PolyLine', - 5 => 'Polygon', - 8 => 'MultiPoint', - 11 => 'PointZ', - 13 => 'PolyLineZ', - 15 => 'PolygonZ', - 18 => 'MultiPointZ', - 21 => 'PointM', - 23 => 'PolyLineM', - 25 => 'PolygonM', - 28 => 'MultiPointM', - 31 => 'MultiPatch', - ); - - /** - * Reads data. - * - * @param string $type type for unpack() - * @param string $data Data to process - * - * @return mixed - */ - public static function loadData($type, $data) - { - if ($data === false || strlen($data) == 0) { - return false; - } - $tmp = unpack($type, $data); - - return current($tmp); - } - - /** - * Changes endianity. - * - * @param string $binValue Binary value - * - * @return string - */ - public static function swap($binValue) - { - $result = $binValue[strlen($binValue) - 1]; - for ($i = strlen($binValue) - 2; $i >= 0; --$i) { - $result .= $binValue[$i]; - } - - return $result; - } - - /** - * Encodes double value to correct endianity. - * - * @param float $value Value to pack - * - * @return string - */ - public static function packDouble($value) - { - $bin = pack('d', (float) $value); - - if (is_null(self::$little_endian)) { - self::$little_endian = (pack('L', 1) == pack('V', 1)); - } - - if (self::$little_endian) { - return $bin; - } - - return self::swap($bin); - } - - /** - * Returns shape name. - * - * @param int $type - * - * @return string - */ - public static function nameShape($type) - { - if (isset(self::$shape_names[$type])) { - return self::$shape_names[$type]; - } - - return sprintf('Shape %d', $type); - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/.github/stale.yml b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/.github/stale.yml deleted file mode 100644 index 8ed0f30..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/.github/stale.yml +++ /dev/null @@ -1,23 +0,0 @@ -# Configuration for probot-stale - https://github.com/probot/stale - -# Number of days of inactivity before an Issue or Pull Request becomes stale -daysUntilStale: 60 -# Number of days of inactivity before a stale Issue or Pull Request is closed -daysUntilClose: 7 -# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable -exemptLabels: - - pinned - - security -# Label to use when marking as stale -staleLabel: wontfix -# Comment to post when marking as stale. Set to `false` to disable -markComment: > - This issue has been automatically marked as stale because it has not had - recent activity. It will be closed if no further activity occurs. Thank you - for your contributions. -# Comment to post when removing the stale label. Set to `false` to disable -unmarkComment: false -# Comment to post when closing a stale Issue or Pull Request. Set to `false` to disable -closeComment: false -# Limit to only `issues` or `pulls` -only: pulls diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/.weblate b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/.weblate deleted file mode 100644 index 62f698f..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/.weblate +++ /dev/null @@ -1,3 +0,0 @@ -[weblate] -url = https://hosted.weblate.org/api/ -translation = phpmyadmin/sql-parser diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/CHANGELOG.md b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/CHANGELOG.md deleted file mode 100644 index 2648fa8..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/CHANGELOG.md +++ /dev/null @@ -1,382 +0,0 @@ -# Change Log - -## [5.2.0] - 2020-01-07 - -* Fix ALTER TABLE ... PRIMARY/UNIQUE KEY results in error (#267) -* Prevent overwrite of offset in Limit clause by parenthesis (#275) -* Allow SCHEMA to be used in CREATE Database statement (#231) -* Add missing options in SET statement (#255) -* Add support for DROP USER statement (#259) -* Fix php error "undefined index" when replacing a non existing clause (#249) - -## [5.1.0] - 2019-11-12 - -* Fix for PHP deprecations messages about implode for php 7.4+ (#258) -* Parse CHECK keyword on table definition (#264) -* Parse truncate statement (#221) -* Fix wrong parsing of partitions (#265) - -## [5.0.0] - 2019-05-09 - -* Drop support for PHP 5.3, PHP 5.4, PHP 5.5, PHP 5.6, PHP 7.0 and HHVM -* Enable strict mode on PHP files -* Fix redundant whitespaces in build() outputs (#228) -* Fix incorrect error on DEFAULT keyword in ALTER operation (#229) -* Fix incorrect outputs from Query::getClause (#233) -* Add support for reading an SQL file from stdin -* Fix for missing tokenize-query in Composer's vendor/bin/ directory -* Fix for PHP warnings with an incomplete CASE expression (#241) -* Fix for error message with multiple CALL statements (#223) -* Recognize the question mark character as a parameter (#242) - -## [4.4.0] - 2019-11-12 - -* Fix for PHP deprecations messages about implode for php 7.4+ (#258) -* Parse CHECK keyword on table definition (#264) -* Parse truncate statement (#221) -* Fix wrong parsing of partitions (#265) - -## [4.3.2] - 2019-06-03 - -Backport fixes from 5.0.0 to QA branch: - -* Fix redundant whitespaces in build() outputs (#228) -* Fix incorrect error on DEFAULT keyword in ALTER operation (#229) -* Fix incorrect outputs from Query::getClause (#233) -* Add support for reading an SQL file from stdin -* Fix for missing tokenize-query in Composer's vendor/bin/ directory -* Fix for PHP warnings with an incomplete CASE expression (#241) -* Fix for error message with multiple CALL statements (#223) -* Recognize the question mark character as a parameter (#242) - -## [4.3.1] - 2019-01-05 - -* Fixed incorrect error thrown on DEFAULT keyword in ALTER statement (#218) - -## [4.3.0] - 2018-12-25 - -* Add support for aliases on CASE expressions (#162 and #192) -* Add support for INDEX hints in SELECT statement (#199) -* Add support for LOCK and UNLOCK TABLES statement (#180) -* Add detection of extraneous comma in UPDATE statement (#160) -* Add detection of a missing comma between two ALTER operations (#189) -* Add missing support for STRAIGHT_JOIN (#196) -* Add support for end options in SET statement (#190) -* Fix building of RENAME statements (#201) -* Add support for PURGE statements (#207) -* Add support for COLLATE keyword (#190) - -## [4.2.5] - 2018-10-31 - -* Fix issue with CREATE OR REPLACE VIEW. - -## [4.2.4] - 2017-12-06 - -* Fix parsing of CREATE TABLE with per field COLLATE. -* Improved Context::loadClosest to better deal with corner cases. -* Localizaton updates. - -## [4.2.3] - 2017-10-10 - -* Make mbstring extension optional (though Symfony polyfill). -* Fixed build CREATE TABLE query with PARTITIONS having ENGINE but not VALUES. - -## [4.2.2] - 2017-09-28 - -* Added support for binding parameters. - -## [4.2.1] - 2017-09-08 - -* Fixed minor bug in Query::getFlags. -* Localizaton updates. - -## [4.2.0] - 2017-08-30 - -* Initial support for MariaDB SQL contexts. -* Add support for MariaDB 10.3 INTERSECT and EXCEPT. - -## [4.1.10] - 2017-08-21 - -* Use custom LoaderException for context loading errors. - -## [4.1.9] - 2017-07-12 - -* Various code cleanups. -* Improved error handling of several invalid statements. - -## [4.1.8] - 2017-07-09 - -* Fixed parsing SQL comment at the end of query. -* Improved handing of non utf-8 strings. -* Added query flag for SET queries. - -## [4.1.7] - 2017-06-06 - -* Fixed setting combination SQL Modes. - -## [4.1.6] - 2017-06-01 - -* Fixed building query with GROUP BY clause. - -## [4.1.5] - 2017-05-15 - -* Fixed invalid lexing of queries with : in strings. -* Properly handle maximal length of delimiter. - -## [4.1.4] - 2017-05-05 - -* Fixed wrong extract of string tokens with escaped characters. -* Properly handle lowercase begin statement. - -## [4.1.3] - 2017-04-06 - -* Added support for DELETE ... JOIN clauses. -* Changed BufferedQuery to include comments in output. -* Fixed parsing of inline comments. - -## [4.1.2] - 2017-02-20 - -* Coding style improvements. -* Chinese localization. -* Improved order validatin for JOIN clauses. -* Improved pretty printing of JOIN clauses. -* Added support for LOAD DATA statements. - -## [4.1.1] - 2017-02-07 - -* Localization using phpmyadmin/motranslator is now optional. -* Improved testsuite. -* Better handling of non upper cased not reserved keywords. -* Minor performance and coding style improvements. - -## [4.1.0] - 2017-01-23 - -* Use phpmyadmin/motranslator to localize messages. - -## [4.0.1] - 2017-01-23 - -* Fixed CLI wrappers for new API. -* Fixed README for new API. - -## [4.0.0] - 2017-01-23 - -* Added PhpMyAdmin namespace prefix to follow PSR-4. - -## [3.4.17] - 2017-01-20 - -* Coding style fixes. -* Fixed indentation in HTML formatting. -* Fixed parsing of unterminated variables. -* Improved comments lexing. - -## [3.4.16] - 2017-01-06 - -* Coding style fixes. -* Properly handle operators AND, NOT, OR, XOR, DIV, MOD - -## [3.4.15] - 2017-01-02 - -* Fix return value of Formatter.toString() when type is text -* Fix parsing of FIELDS and LINES options in SELECT..INTO -* PHP 7.2 compatibility. -* Better parameter passing to query formatter. - -## [3.4.14] - 2016-11-30 - -* Improved parsing of UNION queries. -* Recognize BINARY function. - -## [3.4.13] - 2016-11-15 - -* Fix broken incorrect clause order detection for Joins. -* Add parsing of end options in Select statements. - -## [3.4.12] - 2016-11-09 - -* Added verification order of SELECT statement clauses. - -## [3.4.11] - 2016-10-25 - -* Fixed parsing of ON UPDATE option in field definition of TIMESTAMP type with precision -* Fixed parsing of NATURAL JOIN, CROSS JOIN and related joins. -* Fixed parsing of BEGIN/END labels. - -## [3.4.10] - 2016-10-03 - -* Fixed API regression on DELETE statement - -## [3.4.9] - 2016-10-03 - -* Added support for CASE expressions -* Support for parsing and building DELETE statement -* Support for parsing subqueries in FROM clause - -## [3.4.8] - 2016-09-22 - -* No change release to sync GitHub releases with Packagist - -## [3.4.7] - 2016-09-20 - -* Fix parsing of DEFINER without backquotes -* Fixed escaping HTML entities in HTML formatter -* Fixed escaping of control chars in CLI formatter - -## [3.4.6] - 2016-09-13 - -* Fix parsing of REPLACE INTO ... -* Fix parsing of INSERT ... ON DUPLICATE KEY UPDATE ... -* Extended testsuite -* Re-enabled PHP 5.3 support - -## [3.4.5] - 2016-09-13 - -* Fix parsing of INSERT...SELECT and INSERT...SET syntax -* Fix parsing of CREATE TABLE ... PARTITION -* Fix parsing of SET CHARACTER SET, CHARSET, NAMES -* Add Support for 'CREATE TABLE `table_copy` LIKE `table` - -## [3.4.4] - 2016-04-26 - -* Add support for FULL OUTER JOIN - -## [3.4.3] - 2016-04-19 - -* Fix parsing of query with \ - -## [3.4.2] - 2016-04-07 - -* Recognize UNION DISTINCT -* Recognize REGEXP and RLIKE operators - -## [3.4.1] - 2016-04-06 - -* Add FULLTEXT and SPATIAL keywords -* Properly parse CREATE TABLE [AS] SELECT -* Fix parsing of table with DEFAULT and COMMENT - -## [3.4.0] - 2016-02-23 - -* Fix parsing DEFAULT value on CREATE -* Fix parsing of ALTER VIEW - -## [3.3.1] - 2016-02-12 - -* Condition: Allow keyword `INTERVAL`. - -## [3.3.0] - 2016-02-12 - -* Expression: Refactored parsing options. - -## [3.2.0] - 2016-02-11 - -* Context: Added custom mode that avoids escaping when possible. - -## [3.1.0] - 2016-02-10 - -* ArrayObj: Handle more complex expressions in arrays. -* BufferedQuery: Backslashes in comments escaped characters in comments. -* Condition: Allow `IF` in conditions. -* Context: Add `;` as operator. -* Context: Updated contexts to contain `BIT` data type. -* CreateStatement: The `DEFAULT` option may be an expression. -* DescribeStatement: Added `DESC` as alias for `DESCRIBE`. -* Expression: Rewrote expression parsing. -* Misc: Added PHPUnit's Code Coverage 3.0 as a dependency. -* Misc: Added support for PHP 5.4 back. -* Misc: Removed dependency to Ctype. -* Misc: Repository transferred from @udan11 to @phpMyAdmin. -* Misc: Updated `.gitignore` to ignore `composer.lock`. -* Misc: Updated Composer and Travis configuration for PHP 7 and PHPUnit 5. -* Tools: Documented tags in `ContextGenerator`. - -## [3.0.8] - 2015-12-18 - -* Allow `NULL` in expressions. -* Downgraded PHPUnit to 4.8. Removed old PHP versions. -* Updated PHPUnit to 5.1 and fixed some of the tests. -* Added `UNION ALL` as a type of `UNION`. -* Expressions are permitted in `SET` operations. -* Added `STRAIGHT_JOIN` as a known type of join. -* Added missing definitions for `MATCH` and `AGAINST`. -* Added missing statement (`FLUSH` and `DEALLOCATE`). - -## [3.0.7] - 2015-11-12 - -* Expressions may begin with a function that is also a reserved keyword (e.g. `IF`). - -## [3.0.6] - 2015-11-12 - -* Fixed a bug where formatter split the function name and the parameters list. - -## [3.0.5] - 2015-11-08 - -* Add GRANT as known statement. -* Use JOIN expressions for flag detection. -* Fix the order of clauses in SELECT statements involving UNIONs. -* Added dummy parsers for CREATE USER and SET PASSWORD statements. -* Accept NOT operator in conditions. -* Fixed DELIMITER statements in BufferedQuery. -* Added INSERT statement builder. - -## [3.0.4] - 2015-10-21 - -* Fix error message in `SqlParser\Components\OptionsArray`. - -## [3.0.3] - 2015-10-10 - -* Avoid building a field multiple times if clause has synonyms. - -## [3.0.2] - 2015-10-10 - -* Add EXISTS as an acceptable keyword in conditions. - -## [3.0.1] - 2015-10-06 - -* Handle backslashes separately for `SqlParser\Utils\BufferedQuery`. Fixes a bug where backslashes in combination with strings weren't handled properly. - -## [3.0.0] - 2015-10-02 - -__Breaking changes:__ - -* `SqlParser\Components\Reference::$table` is now an instance of `SqlParser\Components\Expression` to support references from other tables. - -## [2.1.3] - 2015-10-02 - -* Add definitions for all JOIN clauses. - -## [2.1.2] - 2015-10-02 - -* Properly parse options when the value of the option is '='. - -## [2.1.1] - 2015-09-30 - -* Only RANGE and LIST type partitions support VALUES. - -## [2.1.0] - 2015-09-30 - -* Added utilities for handling tokens and tokens list. - -## [2.0.3] - 2015-09-30 - -* Added missing NOT IN operator. This caused troubles when parsing conditions that contained the `NOT IN` operator. - -## [2.0.2] - 2015-09-30 - -* Added support for `OUTER` as an optional keyword in joins. - -## [2.0.1] - 2015-09-30 - -* Fixed a bug related to (sub)partitions options not being included in the built component. Also, the option `ENGINE` was unrecognized. - -## [2.0.0] - 2015-09-25 - -* Better parsing for CREATE TABLE statements (related to breaking change 1). -* Added support for JSON data type. -* Refactoring and minor documentation improvements. - -__Breaking changes:__ -* `SqlParser\Components\Key::$columns` is now an array of arrays. Each array must contain a `name` key which represents the name of the column and an optional `length` key which represents the length of the column. - -## [1.0.0] - 2015-08-20 - -* First release of this library. diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/CODE_OF_CONDUCT.md b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/CODE_OF_CONDUCT.md deleted file mode 100644 index 4c40291..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,76 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as -contributors and maintainers pledge to making participation in our project and -our community a harassment-free experience for everyone, regardless of age, body -size, disability, ethnicity, sex characteristics, gender identity and expression, -level of experience, education, socio-economic status, nationality, personal -appearance, race, religion, or sexual identity and orientation. - -## Our Standards - -Examples of behavior that contributes to creating a positive environment -include: - -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -* The use of sexualized language or imagery and unwelcome sexual attention or - advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic - address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Our Responsibilities - -Project maintainers are responsible for clarifying the standards of acceptable -behavior and are expected to take appropriate and fair corrective action in -response to any instances of unacceptable behavior. - -Project maintainers have the right and responsibility to remove, edit, or -reject comments, commits, code, wiki edits, issues, and other contributions -that are not aligned to this Code of Conduct, or to ban temporarily or -permanently any contributor for other behaviors that they deem inappropriate, -threatening, offensive, or harmful. - -## Scope - -This Code of Conduct applies both within project spaces and in public spaces -when an individual is representing the project or its community. Examples of -representing a project or community include using an official project e-mail -address, posting via an official social media account, or acting as an appointed -representative at an online or offline event. Representation of a project may be -further defined and clarified by project maintainers. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting the project team at info@phpmyadmin.net. All -complaints will be reviewed and investigated and will result in a response that -is deemed necessary and appropriate to the circumstances. The project team is -obligated to maintain confidentiality with regard to the reporter of an incident. -Further details of specific enforcement policies may be posted separately. - -Project maintainers who do not follow or enforce the Code of Conduct in good -faith may face temporary or permanent repercussions as determined by other -members of the project's leadership. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, -available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html - -[homepage]: https://www.contributor-covenant.org - -For answers to common questions about this code of conduct, see -https://www.contributor-covenant.org/faq diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/CONTRIBUTING.md b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/CONTRIBUTING.md deleted file mode 100644 index b05cad8..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/CONTRIBUTING.md +++ /dev/null @@ -1,54 +0,0 @@ -# Contributing to SQL Parser - -## Reporting issues - -Our issue tracker is hosted at GitHub: - -https://github.com/phpmyadmin/sql-parser/issues - -Please search for existing issues before reporting new ones. - -## Working with Git checkout - -The dependencies are managed by Composer, to get them all installed (or update -on consequent runs) do: - -``` -composer update -``` - -## Submitting patches - -Please submit your patches using GitHub pull requests, this allows us to review -them and to run automated tests on the code. - -## Coding standards - -We do follow PSR-1 and PSR-2 coding standards. - -You can use phpcbf to fix the code to match our expectations: - -``` -./vendor/bin/phpcbf -``` - -## Testsuite - -Our code comes with quite comprehensive testsuite, it is automatically executed -on every commit and pull request, you can also run it locally: - -``` -./vendor/bin/phpunit -``` - -The testsuite relies on fixtures of parser states, in case you need to -regenerate some of these there are helper scripts in tools directory: - -``` -# Remove file you want to regenerate -rm tests/data/parser/parse.out - -# Run the generator in the tools directory -cd tools -./run_generators.sh -``` diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/LICENSE.txt b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/LICENSE.txt deleted file mode 100644 index d159169..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/LICENSE.txt +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/README.md b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/README.md deleted file mode 100644 index 04ee442..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/README.md +++ /dev/null @@ -1,131 +0,0 @@ -# SQL Parser - -A validating SQL lexer and parser with a focus on MySQL dialect. - -## Code status - -[![Build Status](https://travis-ci.org/phpmyadmin/sql-parser.svg?branch=master)](https://travis-ci.org/phpmyadmin/sql-parser) -[![Code Coverage](https://scrutinizer-ci.com/g/phpmyadmin/sql-parser/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/phpmyadmin/sql-parser/?branch=master) -[![codecov.io](https://codecov.io/github/phpmyadmin/sql-parser/coverage.svg?branch=master)](https://codecov.io/github/phpmyadmin/sql-parser?branch=master) -[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/phpmyadmin/sql-parser/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/phpmyadmin/sql-parser/?branch=master) -[![Translation status](https://hosted.weblate.org/widgets/phpmyadmin/-/svg-badge.svg)](https://hosted.weblate.org/engage/phpmyadmin/?utm_source=widget) -[![Packagist](https://img.shields.io/packagist/dt/phpmyadmin/sql-parser.svg)](https://packagist.org/packages/phpmyadmin/sql-parser) -[![Open Source Helpers](https://www.codetriage.com/phpmyadmin/sql-parser/badges/users.svg)](https://www.codetriage.com/phpmyadmin/sql-parser) - -## Installation - -Please use [Composer][1] to install: - -``` -composer require phpmyadmin/sql-parser -``` - -## Documentation - -The API documentation is available at -. - -## Usage - -### Command line utilities - -Command line utility to syntax highlight SQL query: - -```sh -./vendor/bin/highlight-query --query "SELECT 1" -``` - -Command line utility to lint SQL query: - -```sh -./vendor/bin/lint-query --query "SELECT 1" -``` - -Command line utility to tokenize SQL query: - -```sh -./vendor/bin/tokenize-query --query "SELECT 1" -``` - -All commands are able to parse input from stdin (standard in), such as: - -```sh -echo "SELECT 1" | ./vendor/bin/highlight-query -cat example.sql | ./vendor/bin/lint-query -``` -### Formatting SQL query - -```php -echo PhpMyAdmin\SqlParser\Utils\Formatter::format($query, ['type' => 'html']); -``` - -### Discoverying query type - -```php -use PhpMyAdmin\SqlParser\Parser; -use PhpMyAdmin\SqlParser\Utils\Query; - -$query = 'OPTIMIZE TABLE tbl'; -$parser = new Parser($query); -$flags = Query::getFlags($parser->statements[0]); - -echo $flags['querytype']; -``` - -### Parsing and building SQL query - -```php -require __DIR__."/vendor/autoload.php"; - -$query1 = "select * from a"; -$parser = new PhpMyAdmin\SqlParser\Parser($query1); - -// inspect query -var_dump($parser->statements[0]); // outputs object(PhpMyAdmin\SqlParser\Statements\SelectStatement) - -// modify query by replacing table a with table b -$table2 = new \PhpMyAdmin\SqlParser\Components\Expression("", "b", "", ""); -$parser->statements[0]->from[0] = $table2; - -// build query again from an array of object(PhpMyAdmin\SqlParser\Statements\SelectStatement) to a string -$statement = $parser->statements[0]; -$query2 = $statement->build(); -var_dump($query2); // outputs string(19) "SELECT * FROM `b` " - -// Change SQL mode -PhpMyAdmin\SqlParser\Context::setMode('ANSI_QUOTES'); - -// build the query again using different quotes -$query2 = $statement->build(); -var_dump($query2); // outputs string(19) "SELECT * FROM "b" " -``` - -## Localization - -You can localize error messages installing `phpmyadmin/motranslator` version `3.0` or newer: -```sh -composer require phpmyadmin/motranslator:^3.0 -``` - -The locale is automatically detected from your enrivonment, you can also set a different locale - -**From cli**: -```sh -LC_ALL=pl ./vendor/bin/lint-query --query "SELECT 1" -``` - -**From php**: -```php -require __DIR__."/vendor/autoload.php"; - -$GLOBALS['lang'] = 'pl'; - -$query1 = "select * from a"; -$parser = new PhpMyAdmin\SqlParser\Parser($query1); -``` - -## More information - -This library was originally created during the Google Summer of Code 2015 and has been used by phpMyAdmin since version 4.5. - -[1]:https://getcomposer.org/ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/bin/highlight-query b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/bin/highlight-query deleted file mode 100755 index 53d380f..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/bin/highlight-query +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env php -runHighlight()); diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/bin/lint-query b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/bin/lint-query deleted file mode 100755 index 1fe12f2..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/bin/lint-query +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env php -runLint()); diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/bin/tokenize-query b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/bin/tokenize-query deleted file mode 100755 index e1a55f6..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/bin/tokenize-query +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env php -runTokenize()); diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/codecov.yml b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/codecov.yml deleted file mode 100644 index 99d09da..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/codecov.yml +++ /dev/null @@ -1,3 +0,0 @@ -comment: - layout: header, changes, diff -coverage: {} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/composer.json b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/composer.json deleted file mode 100644 index 51a13f6..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/composer.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "phpmyadmin/sql-parser", - "description": "A validating SQL lexer and parser with a focus on MySQL dialect.", - "license": "GPL-2.0-or-later", - "keywords": ["sql", "lexer", "parser", "analysis"], - "homepage": "https://github.com/phpmyadmin/sql-parser", - "authors": [ - { - "name": "The phpMyAdmin Team", - "email": "developers@phpmyadmin.net", - "homepage": "https://www.phpmyadmin.net/team/" - } - ], - "support": { - "issues": "https://github.com/phpmyadmin/sql-parser/issues", - "source": "https://github.com/phpmyadmin/sql-parser" - }, - "require": { - "php": "^7.1", - "symfony/polyfill-mbstring": "^1.3" - }, - "require-dev": { - "phpmyadmin/coding-standard": "^1.0", - "phpmyadmin/motranslator": "^4.0", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.12.3", - "phpstan/phpstan-phpunit": "^0.12.1", - "phpunit/php-code-coverage": "*", - "phpunit/phpunit": "^7.4 || ^8" - }, - "conflict": { - "phpmyadmin/motranslator": "<3.0" - }, - "suggest": { - "ext-mbstring": "For best performance", - "phpmyadmin/motranslator": "Translate messages to your favorite locale" - }, - "bin": [ - "bin/highlight-query", - "bin/lint-query", - "bin/tokenize-query" - ], - "autoload": { - "psr-4": { - "PhpMyAdmin\\SqlParser\\": "src" - } - }, - "autoload-dev": { - "psr-4": { - "PhpMyAdmin\\SqlParser\\Tests\\": "tests" - } - }, - "config":{ - "sort-packages": true - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/af/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/af/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 51f466c..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/af/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ar/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ar/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 71c7686..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ar/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ast/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ast/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index a4ef8de..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ast/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/az/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/az/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 013c273..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/az/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/be/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/be/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 08adf11..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/be/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/be@latin/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/be@latin/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index f985708..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/be@latin/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/bg/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/bg/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 2201811..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/bg/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/bn/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/bn/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 30c0d62..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/bn/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/br/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/br/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 1efc086..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/br/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/brx/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/brx/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 5cee1dd..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/brx/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/bs/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/bs/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 831fa44..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/bs/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ca/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ca/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 4df19d2..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ca/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ckb/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ckb/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 3ea16c3..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ckb/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/cs/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/cs/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index d90e509..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/cs/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/cy/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/cy/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index b57e1d0..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/cy/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/da/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/da/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 6332c56..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/da/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/de/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/de/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index bc7e60a..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/de/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/el/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/el/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 8a6ceb3..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/el/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/en_GB/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/en_GB/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 40ba959..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/en_GB/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/eo/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/eo/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 3f4f65a..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/eo/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/es/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/es/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index aec2a26..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/es/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/et/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/et/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 45098b2..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/et/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/eu/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/eu/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 831ffa8..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/eu/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/fa/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/fa/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index acc1cdb..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/fa/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/fi/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/fi/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index fa60e3e..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/fi/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/fr/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/fr/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index f348d3e..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/fr/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/fy/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/fy/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 94ab1f1..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/fy/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/gl/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/gl/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 80242e2..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/gl/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/gu/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/gu/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 84b897d..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/gu/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/he/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/he/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 2fda426..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/he/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/hi/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/hi/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 781fe5e..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/hi/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/hr/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/hr/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 265163f..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/hr/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/hu/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/hu/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 27db8b5..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/hu/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/hy/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/hy/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index ba09bc9..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/hy/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ia/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ia/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index acfca6f..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ia/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/id/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/id/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index ca04a13..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/id/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/it/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/it/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 05b2da8..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/it/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ja/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ja/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 836f25d..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ja/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ka/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ka/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 67b95ea..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ka/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/kk/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/kk/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 86d6c2e..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/kk/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/km/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/km/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 0701c80..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/km/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/kn/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/kn/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 6ff4ed9..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/kn/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ko/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ko/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 0eefb17..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ko/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ksh/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ksh/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 3d6d131..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ksh/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ky/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ky/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index e455f0a..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ky/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/li/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/li/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 487866f..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/li/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/lt/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/lt/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 5d19aea..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/lt/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/lv/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/lv/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index f288727..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/lv/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/mk/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/mk/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index e622229..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/mk/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ml/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ml/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 5fb194e..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ml/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/mn/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/mn/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index d38bdc1..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/mn/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ms/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ms/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 87965e1..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ms/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/nb/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/nb/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index ec0c1c6..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/nb/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ne/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ne/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index fae4322..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ne/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/nl/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/nl/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index b002cfd..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/nl/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/pa/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/pa/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index dfa4270..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/pa/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/pl/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/pl/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index ba6d7f7..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/pl/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/pt/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/pt/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index d540173..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/pt/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/pt_BR/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/pt_BR/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 8a05f24..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/pt_BR/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ro/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ro/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 9cf4b16..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ro/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ru/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ru/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 550cd11..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ru/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/si/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/si/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index ce5d946..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/si/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/sk/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/sk/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index eb55db6..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/sk/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/sl/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/sl/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 9f2f909..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/sl/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/sq/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/sq/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 06e2f54..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/sq/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/sqlparser.pot b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/sqlparser.pot deleted file mode 100644 index 0d1e1e2..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/sqlparser.pot +++ /dev/null @@ -1,217 +0,0 @@ -# phpMyAdmin SQL parser translation. -# Copyright (C) 2015 - 2017 phpMyAdmin devel team -# This file is distributed under the same license as the SQL parser package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: SQL parser 0\n" -"Report-Msgid-Bugs-To: translators@phpmyadmin.net\n" -"POT-Creation-Date: 2017-08-21 12:54+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: 8bit\n" - -#: src/Component.php:43 src/Component.php:63 -msgid "Not implemented yet." -msgstr "" - -#: src/Components/AlterOperation.php:241 src/Statement.php:334 -msgid "" -"A new statement was found, but no delimiter between it and the previous one." -msgstr "" - -#: src/Components/AlterOperation.php:253 -msgid "Unrecognized alter operation." -msgstr "" - -#: src/Components/Array2d.php:88 -#, php-format -msgid "%1$d values were expected, but found %2$d." -msgstr "" - -#: src/Components/Array2d.php:111 -msgid "An opening bracket followed by a set of values was expected." -msgstr "" - -#: src/Components/ArrayObj.php:114 src/Components/CreateDefinition.php:201 -msgid "An opening bracket was expected." -msgstr "" - -#: src/Components/CaseExpression.php:135 src/Components/CaseExpression.php:164 -#: src/Components/CaseExpression.php:176 src/Components/CaseExpression.php:190 -#: src/Statements/DeleteStatement.php:227 -#: src/Statements/DeleteStatement.php:244 -#: src/Statements/DeleteStatement.php:292 -#: src/Statements/DeleteStatement.php:303 -#: src/Statements/DeleteStatement.php:333 -#: src/Statements/DeleteStatement.php:344 -#: src/Statements/InsertStatement.php:189 -#: src/Statements/InsertStatement.php:217 src/Statements/LoadStatement.php:258 -#: src/Statements/ReplaceStatement.php:155 -#: src/Statements/ReplaceStatement.php:182 -msgid "Unexpected keyword." -msgstr "" - -#: src/Components/CaseExpression.php:199 -msgid "Unexpected end of CASE expression" -msgstr "" - -#: src/Components/CreateDefinition.php:223 -msgid "" -"A symbol name was expected! A reserved keyword can not be used as a column " -"name without backquotes." -msgstr "" - -#: src/Components/CreateDefinition.php:237 -msgid "A symbol name was expected!" -msgstr "" - -#: src/Components/CreateDefinition.php:270 -msgid "A comma or a closing bracket was expected." -msgstr "" - -#: src/Components/CreateDefinition.php:286 -msgid "A closing bracket was expected." -msgstr "" - -#: src/Components/DataType.php:123 -msgid "Unrecognized data type." -msgstr "" - -#: src/Components/Expression.php:244 src/Components/Expression.php:394 -msgid "An alias was expected." -msgstr "" - -#: src/Components/Expression.php:332 src/Components/Expression.php:351 -#: src/Components/Expression.php:383 -msgid "An alias was previously found." -msgstr "" - -#: src/Components/Expression.php:364 -msgid "Unexpected dot." -msgstr "" - -#: src/Components/ExpressionArray.php:102 -msgid "An expression was expected." -msgstr "" - -#: src/Components/Limit.php:86 src/Components/Limit.php:108 -msgid "An offset was expected." -msgstr "" - -#: src/Components/OptionsArray.php:143 -#, php-format -msgid "This option conflicts with \"%1$s\"." -msgstr "" - -#: src/Components/RenameOperation.php:109 -msgid "The old name of the table was expected." -msgstr "" - -#: src/Components/RenameOperation.php:119 -msgid "Keyword \"TO\" was expected." -msgstr "" - -#: src/Components/RenameOperation.php:135 -msgid "The new name of the table was expected." -msgstr "" - -#: src/Components/RenameOperation.php:153 -msgid "A rename operation was expected." -msgstr "" - -#: src/Components/SetOperation.php:117 -msgid "Missing expression." -msgstr "" - -#: src/Lexer.php:237 -msgid "Unexpected character." -msgstr "" - -#: src/Lexer.php:278 -msgid "Expected whitespace(s) before delimiter." -msgstr "" - -#: src/Lexer.php:296 src/Lexer.php:314 -msgid "Expected delimiter." -msgstr "" - -#: src/Lexer.php:843 -#, php-format -msgid "Ending quote %1$s was expected." -msgstr "" - -#: src/Lexer.php:884 -msgid "Variable name was expected." -msgstr "" - -#: src/Parser.php:423 -msgid "Unexpected beginning of statement." -msgstr "" - -#: src/Parser.php:442 -msgid "Unrecognized statement type." -msgstr "" - -#: src/Parser.php:527 -msgid "No transaction was previously started." -msgstr "" - -#: src/Statement.php:242 src/Statements/DeleteStatement.php:254 -#: src/Statements/DeleteStatement.php:306 -#: src/Statements/InsertStatement.php:226 -#: src/Statements/InsertStatement.php:246 src/Statements/LoadStatement.php:261 -#: src/Statements/LoadStatement.php:291 src/Statements/LoadStatement.php:310 -#: src/Statements/ReplaceStatement.php:190 -msgid "Unexpected token." -msgstr "" - -#: src/Statement.php:306 -msgid "This type of clause was previously parsed." -msgstr "" - -#: src/Statement.php:366 -msgid "Unrecognized keyword." -msgstr "" - -#: src/Statement.php:377 -msgid "Keyword at end of statement." -msgstr "" - -#: src/Statement.php:503 -msgid "Unexpected ordering of clauses." -msgstr "" - -#: src/Statements/CreateStatement.php:375 -msgid "The name of the entity was expected." -msgstr "" - -#: src/Statements/CreateStatement.php:430 -msgid "A table name was expected." -msgstr "" - -#: src/Statements/CreateStatement.php:438 -msgid "At least one column definition was expected." -msgstr "" - -#: src/Statements/CreateStatement.php:550 -msgid "A \"RETURNS\" keyword was expected." -msgstr "" - -#: src/Statements/DeleteStatement.php:314 -msgid "This type of clause is not valid in Multi-table queries." -msgstr "" - -#: tests/Lexer/LexerTest.php:19 tests/Parser/ParserTest.php:58 -msgid "error #1" -msgstr "" - -#: tests/Lexer/LexerTest.php:46 tests/Parser/ParserTest.php:80 -msgid "strict error" -msgstr "" diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/sr/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/sr/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 815f3d4..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/sr/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/sr@latin/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/sr@latin/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index a9592f7..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/sr@latin/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/sv/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/sv/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index d0b01c1..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/sv/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ta/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ta/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 406863d..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ta/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/te/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/te/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 7ca8ae7..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/te/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/th/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/th/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 0e1293c..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/th/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/tk/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/tk/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 91144a3..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/tk/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/tr/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/tr/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index c684db5..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/tr/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/tt/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/tt/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index ccddede..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/tt/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ug/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ug/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index d8bd2e8..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ug/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/uk/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/uk/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 0503299..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/uk/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ur/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ur/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 81aea0b..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/ur/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/uz/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/uz/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 9f13bd4..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/uz/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/uz@latin/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/uz@latin/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index ddb2b40..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/uz@latin/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/vi/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/vi/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index cf65110..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/vi/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/vls/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/vls/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 30fcbed..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/vls/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/zh_CN/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/zh_CN/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index 700ea4a..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/zh_CN/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/zh_TW/LC_MESSAGES/sqlparser.mo b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/zh_TW/LC_MESSAGES/sqlparser.mo deleted file mode 100644 index ebe8e5c..0000000 Binary files a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/locale/zh_TW/LC_MESSAGES/sqlparser.mo and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/phpcs.xml.dist b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/phpcs.xml.dist deleted file mode 100644 index 81b5c0c..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/phpcs.xml.dist +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - */src/Contexts/* - - - - 4 - - - 4 - - - 4 - - - 4 - - - - - - - */tools/sami-config.php - - src - tests - tools - diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/phpstan.neon.dist b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/phpstan.neon.dist deleted file mode 100644 index 9fc98c0..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/phpstan.neon.dist +++ /dev/null @@ -1,10 +0,0 @@ -parameters: - level: 2 - paths: - - src - - tests - - bin - reportUnmatchedIgnoredErrors: true - inferPrivatePropertyTypeFromConstructor: true - ignoreErrors: - - '#Unsafe usage of new static\(\)\.#' diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/phpunit.xml.dist b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/phpunit.xml.dist deleted file mode 100644 index 36faf50..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/phpunit.xml.dist +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - ./tests/Builder - - - ./tests/Components - - - ./tests/Lexer - - - ./tests/Misc - - - ./tests/Parser - - - ./tests/Utils - - - - - src/ - - - - - - - - diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Component.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Component.php deleted file mode 100644 index 656d318..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Component.php +++ /dev/null @@ -1,75 +0,0 @@ - [ - 1, - 'var', - ], - 'CHARSET' => [ - 1, - 'var', - ], - 'DEFAULT CHARACTER SET' => [ - 1, - 'var', - ], - 'DEFAULT CHARSET' => [ - 1, - 'var', - ], - 'UPGRADE' => [ - 1, - 'var', - ], - 'COLLATE' => [ - 2, - 'var', - ], - 'DEFAULT COLLATE' => [ - 2, - 'var', - ], - ]; - - /** - * All table options. - * - * @var array - */ - public static $TABLE_OPTIONS = [ - 'ENGINE' => [ - 1, - 'var=', - ], - 'AUTO_INCREMENT' => [ - 1, - 'var=', - ], - 'AVG_ROW_LENGTH' => [ - 1, - 'var', - ], - 'MAX_ROWS' => [ - 1, - 'var', - ], - 'ROW_FORMAT' => [ - 1, - 'var', - ], - 'COMMENT' => [ - 1, - 'var', - ], - 'ADD' => 1, - 'ALTER' => 1, - 'ANALYZE' => 1, - 'CHANGE' => 1, - 'CHECK' => 1, - 'COALESCE' => 1, - 'CONVERT' => 1, - 'DISABLE' => 1, - 'DISCARD' => 1, - 'DROP' => 1, - 'ENABLE' => 1, - 'IMPORT' => 1, - 'MODIFY' => 1, - 'OPTIMIZE' => 1, - 'ORDER' => 1, - 'PARTITION' => 1, - 'REBUILD' => 1, - 'REMOVE' => 1, - 'RENAME' => 1, - 'REORGANIZE' => 1, - 'REPAIR' => 1, - 'UPGRADE' => 1, - - 'COLUMN' => 2, - 'CONSTRAINT' => 2, - 'DEFAULT' => 2, - 'TO' => 2, - 'BY' => 2, - 'FOREIGN' => 2, - 'FULLTEXT' => 2, - 'KEY' => 2, - 'KEYS' => 2, - 'PARTITIONING' => 2, - 'PRIMARY KEY' => 2, - 'SPATIAL' => 2, - 'TABLESPACE' => 2, - 'INDEX' => 2, - ]; - - /** - * All view options. - * - * @var array - */ - public static $VIEW_OPTIONS = [ - 'AS' => 1, - ]; - - /** - * Options of this operation. - * - * @var OptionsArray - */ - public $options; - - /** - * The altered field. - * - * @var Expression - */ - public $field; - - /** - * Unparsed tokens. - * - * @var Token[]|string - */ - public $unknown = []; - - /** - * @param OptionsArray $options options of alter operation - * @param Expression $field altered field - * @param array $unknown unparsed tokens found at the end of operation - */ - public function __construct( - $options = null, - $field = null, - $unknown = [] - ) { - $this->options = $options; - $this->field = $field; - $this->unknown = $unknown; - } - - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return AlterOperation - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) - { - $ret = new static(); - - /** - * Counts brackets. - * - * @var int - */ - $brackets = 0; - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 ---------------------[ options ]---------------------> 1 - * - * 1 ----------------------[ field ]----------------------> 2 - * - * 2 -------------------------[ , ]-----------------------> 0 - * - * @var int - */ - $state = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping comments. - if ($token->type === Token::TYPE_COMMENT) { - continue; - } - - // Skipping whitespaces. - if ($token->type === Token::TYPE_WHITESPACE) { - if ($state === 2) { - // When parsing the unknown part, the whitespaces are - // included to not break anything. - $ret->unknown[] = $token; - } - continue; - } - - if ($state === 0) { - $ret->options = OptionsArray::parse($parser, $list, $options); - - if ($ret->options->has('AS')) { - for (; $list->idx < $list->count; ++$list->idx) { - if ($list->tokens[$list->idx]->type === Token::TYPE_DELIMITER) { - break; - } - $ret->unknown[] = $list->tokens[$list->idx]; - } - break; - } - - $state = 1; - } elseif ($state === 1) { - $ret->field = Expression::parse( - $parser, - $list, - [ - 'breakOnAlias' => true, - 'parseField' => 'column', - ] - ); - if ($ret->field === null) { - // No field was read. We go back one token so the next - // iteration will parse the same token, but in state 2. - --$list->idx; - } - $state = 2; - } elseif ($state === 2) { - if ($token->type === Token::TYPE_OPERATOR) { - if ($token->value === '(') { - ++$brackets; - } elseif ($token->value === ')') { - --$brackets; - } elseif (($token->value === ',') && ($brackets === 0)) { - break; - } - } elseif (! empty(Parser::$STATEMENT_PARSERS[$token->value])) { - // We have reached the end of ALTER operation and suddenly found - // a start to new statement, but have not find a delimiter between them - - if (! ($token->value === 'SET' && $list->tokens[$list->idx - 1]->value === 'CHARACTER')) { - $parser->error( - 'A new statement was found, but no delimiter between it and the previous one.', - $token - ); - break; - } - } elseif ((array_key_exists($token->value, self::$DB_OPTIONS) - || array_key_exists($token->value, self::$TABLE_OPTIONS)) - && ! self::checkIfColumnDefinitionKeyword($token->value) - ) { - // This alter operation has finished, which means a comma was missing before start of new alter operation - $parser->error( - 'Missing comma before start of a new alter operation.', - $token - ); - break; - } - $ret->unknown[] = $token; - } - } - - if ($ret->options->isEmpty()) { - $parser->error( - 'Unrecognized alter operation.', - $list->tokens[$list->idx] - ); - } - - --$list->idx; - - return $ret; - } - - /** - * @param AlterOperation $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) - { - $ret = $component->options . ' '; - if (isset($component->field) && ($component->field !== '')) { - $ret .= $component->field . ' '; - } - $ret .= TokensList::build($component->unknown); - - return $ret; - } - - /** - * Check if token's value is one of the common keywords - * between column and table alteration - * - * @param string $tokenValue Value of current token - * - * @return bool - */ - private static function checkIfColumnDefinitionKeyword($tokenValue) - { - $common_options = [ - 'AUTO_INCREMENT', - 'COMMENT', - 'DEFAULT', - 'CHARACTER SET', - 'COLLATE', - 'PRIMARY', - 'UNIQUE', - 'PRIMARY KEY', - 'UNIQUE KEY', - ]; - // Since these options can be used for - // both table as well as a specific column in the table - return in_array($tokenValue, $common_options); - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/Array2d.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/Array2d.php deleted file mode 100644 index 1ae5c30..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/Array2d.php +++ /dev/null @@ -1,127 +0,0 @@ - 1 - * - * 1 ------------------------[ , ]------------------------> 0 - * 1 -----------------------[ else ]----------------------> (END) - * - * @var int - */ - $state = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - // No keyword is expected. - if (($token->type === Token::TYPE_KEYWORD) && ($token->flags & Token::FLAG_KEYWORD_RESERVED)) { - break; - } - - if ($state === 0) { - if ($token->value === '(') { - $arr = ArrayObj::parse($parser, $list, $options); - $arrCount = count($arr->values); - if ($count === -1) { - $count = $arrCount; - } elseif ($arrCount !== $count) { - $parser->error( - sprintf( - Translator::gettext('%1$d values were expected, but found %2$d.'), - $count, - $arrCount - ), - $token - ); - } - $ret[] = $arr; - $state = 1; - } else { - break; - } - } elseif ($state === 1) { - if ($token->value === ',') { - $state = 0; - } else { - break; - } - } - } - - if ($state === 0) { - $parser->error( - 'An opening bracket followed by a set of values was expected.', - $list->tokens[$list->idx] - ); - } - - --$list->idx; - - return $ret; - } - - /** - * @param ArrayObj[] $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) - { - return ArrayObj::build($component); - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/ArrayObj.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/ArrayObj.php deleted file mode 100644 index ab1ad61..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/ArrayObj.php +++ /dev/null @@ -1,182 +0,0 @@ -raw = $raw; - $this->values = $values; - } - - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return ArrayObj|Component[] - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) - { - $ret = empty($options['type']) ? new static() : []; - - /** - * The last raw expression. - * - * @var string - */ - $lastRaw = ''; - - /** - * The last value. - * - * @var string - */ - $lastValue = ''; - - /** - * Counts brackets. - * - * @var int - */ - $brackets = 0; - - /** - * Last separator (bracket or comma). - * - * @var bool - */ - $isCommaLast = false; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) - || ($token->type === Token::TYPE_COMMENT) - ) { - $lastRaw .= $token->token; - $lastValue = trim($lastValue) . ' '; - continue; - } - - if (($brackets === 0) - && (($token->type !== Token::TYPE_OPERATOR) - || ($token->value !== '(')) - ) { - $parser->error('An opening bracket was expected.', $token); - break; - } - - if ($token->type === Token::TYPE_OPERATOR) { - if ($token->value === '(') { - if (++$brackets === 1) { // 1 is the base level. - continue; - } - } elseif ($token->value === ')') { - if (--$brackets === 0) { // Array ended. - break; - } - } elseif ($token->value === ',') { - if ($brackets === 1) { - $isCommaLast = true; - if (empty($options['type'])) { - $ret->raw[] = trim($lastRaw); - $ret->values[] = trim($lastValue); - $lastRaw = $lastValue = ''; - } - } - continue; - } - } - - if (empty($options['type'])) { - $lastRaw .= $token->token; - $lastValue .= $token->value; - } else { - $ret[] = $options['type']::parse( - $parser, - $list, - empty($options['typeOptions']) ? [] : $options['typeOptions'] - ); - } - } - - // Handling last element. - // - // This is treated differently to treat the following cases: - // - // => [] - // [,] => ['', ''] - // [] => [] - // [a,] => ['a', ''] - // [a] => ['a'] - $lastRaw = trim($lastRaw); - if (empty($options['type']) - && ((strlen($lastRaw) > 0) || ($isCommaLast)) - ) { - $ret->raw[] = $lastRaw; - $ret->values[] = trim($lastValue); - } - - return $ret; - } - - /** - * @param ArrayObj|ArrayObj[] $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) - { - if (is_array($component)) { - return implode(', ', $component); - } elseif (! empty($component->raw)) { - return '(' . implode(', ', $component->raw) . ')'; - } - - return '(' . implode(', ', $component->values) . ')'; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/CaseExpression.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/CaseExpression.php deleted file mode 100644 index 26c044f..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/CaseExpression.php +++ /dev/null @@ -1,307 +0,0 @@ -idx; // Skip 'CASE' - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) - || ($token->type === Token::TYPE_COMMENT) - ) { - continue; - } - - if ($state === 0) { - if ($token->type === Token::TYPE_KEYWORD) { - switch ($token->keyword) { - case 'WHEN': - ++$list->idx; // Skip 'WHEN' - $new_condition = Condition::parse($parser, $list); - $type = 1; - $state = 1; - $ret->conditions[] = $new_condition; - break; - case 'ELSE': - ++$list->idx; // Skip 'ELSE' - $ret->else_result = Expression::parse($parser, $list); - $state = 0; // last clause of CASE expression - break; - case 'END': - $state = 3; // end of CASE expression - ++$list->idx; - break 2; - default: - $parser->error('Unexpected keyword.', $token); - break 2; - } - } else { - $ret->value = Expression::parse($parser, $list); - $type = 0; - $state = 1; - } - } elseif ($state === 1) { - if ($type === 0) { - if ($token->type === Token::TYPE_KEYWORD) { - switch ($token->keyword) { - case 'WHEN': - ++$list->idx; // Skip 'WHEN' - $new_value = Expression::parse($parser, $list); - $state = 2; - $ret->compare_values[] = $new_value; - break; - case 'ELSE': - ++$list->idx; // Skip 'ELSE' - $ret->else_result = Expression::parse($parser, $list); - $state = 0; // last clause of CASE expression - break; - case 'END': - $state = 3; // end of CASE expression - ++$list->idx; - break 2; - default: - $parser->error('Unexpected keyword.', $token); - break 2; - } - } - } else { - if ($token->type === Token::TYPE_KEYWORD - && $token->keyword === 'THEN' - ) { - ++$list->idx; // Skip 'THEN' - $new_result = Expression::parse($parser, $list); - $state = 0; - $ret->results[] = $new_result; - } elseif ($token->type === Token::TYPE_KEYWORD) { - $parser->error('Unexpected keyword.', $token); - break; - } - } - } elseif ($state === 2) { - if ($type === 0) { - if ($token->type === Token::TYPE_KEYWORD - && $token->keyword === 'THEN' - ) { - ++$list->idx; // Skip 'THEN' - $new_result = Expression::parse($parser, $list); - $ret->results[] = $new_result; - $state = 1; - } elseif ($token->type === Token::TYPE_KEYWORD) { - $parser->error('Unexpected keyword.', $token); - break; - } - } - } - } - - if ($state !== 3) { - $parser->error( - 'Unexpected end of CASE expression', - $list->tokens[$list->idx - 1] - ); - } else { - // Parse for alias of CASE expression - $asFound = false; - for (; $list->idx < $list->count; ++$list->idx) { - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) - || ($token->type === Token::TYPE_COMMENT) - ) { - continue; - } - - // Handle optional AS keyword before alias - if ($token->type === Token::TYPE_KEYWORD - && $token->keyword === 'AS') { - if ($asFound || ! empty($ret->alias)) { - $parser->error('Potential duplicate alias of CASE expression.', $token); - break; - } - $asFound = true; - continue; - } - - if ($asFound - && $token->type === Token::TYPE_KEYWORD - && ($token->flags & Token::FLAG_KEYWORD_RESERVED || $token->flags & Token::FLAG_KEYWORD_FUNCTION)) { - $parser->error('An alias expected after AS but got ' . $token->value, $token); - $asFound = false; - break; - } - - if ($asFound - || $token->type === Token::TYPE_STRING - || ($token->type === Token::TYPE_SYMBOL && ! $token->flags & Token::FLAG_SYMBOL_VARIABLE) - || $token->type === Token::TYPE_NONE - ) { - // An alias is expected (the keyword `AS` was previously found). - if (! empty($ret->alias)) { - $parser->error('An alias was previously found.', $token); - break; - } - $ret->alias = $token->value; - $asFound = false; - - continue; - } - - break; - } - if ($asFound) { - $parser->error('An alias was expected after AS.', $list->tokens[$list->idx - 1]); - } - - $ret->expr = self::build($ret); - } - - --$list->idx; - - return $ret; - } - - /** - * @param CaseExpression $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) - { - $ret = 'CASE '; - if (isset($component->value)) { - // Syntax type 0 - $ret .= $component->value . ' '; - $val_cnt = count($component->compare_values); - $res_cnt = count($component->results); - for ($i = 0; $i < $val_cnt && $i < $res_cnt; ++$i) { - $ret .= 'WHEN ' . $component->compare_values[$i] . ' '; - $ret .= 'THEN ' . $component->results[$i] . ' '; - } - } else { - // Syntax type 1 - $val_cnt = count($component->conditions); - $res_cnt = count($component->results); - for ($i = 0; $i < $val_cnt && $i < $res_cnt; ++$i) { - $ret .= 'WHEN ' . Condition::build($component->conditions[$i]) . ' '; - $ret .= 'THEN ' . $component->results[$i] . ' '; - } - } - if (isset($component->else_result)) { - $ret .= 'ELSE ' . $component->else_result . ' '; - } - $ret .= 'END'; - - if ($component->alias) { - $ret .= ' AS ' . Context::escape($component->alias); - } - - return $ret; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/Condition.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/Condition.php deleted file mode 100644 index b719b28..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/Condition.php +++ /dev/null @@ -1,227 +0,0 @@ - 1, - 'AND' => 1, - 'BETWEEN' => 1, - 'EXISTS' => 1, - 'IF' => 1, - 'IN' => 1, - 'INTERVAL' => 1, - 'IS' => 1, - 'LIKE' => 1, - 'MATCH' => 1, - 'NOT IN' => 1, - 'NOT NULL' => 1, - 'NOT' => 1, - 'NULL' => 1, - 'OR' => 1, - 'REGEXP' => 1, - 'RLIKE' => 1, - 'XOR' => 1, - ]; - - /** - * Identifiers recognized. - * - * @var array - */ - public $identifiers = []; - - /** - * Whether this component is an operator. - * - * @var bool - */ - public $isOperator = false; - - /** - * The condition. - * - * @var string - */ - public $expr; - - /** - * @param string $expr the condition or the operator - */ - public function __construct($expr = null) - { - $this->expr = trim((string) $expr); - } - - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return Condition[] - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) - { - $ret = []; - - $expr = new static(); - - /** - * Counts brackets. - * - * @var int - */ - $brackets = 0; - - /** - * Whether there was a `BETWEEN` keyword before or not. - * - * It is required to keep track of them because their structure contains - * the keyword `AND`, which is also an operator that delimits - * expressions. - * - * @var bool - */ - $betweenBefore = false; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if ($token->type === Token::TYPE_COMMENT) { - continue; - } - - // Replacing all whitespaces (new lines, tabs, etc.) with a single - // space character. - if ($token->type === Token::TYPE_WHITESPACE) { - $expr->expr .= ' '; - continue; - } - - // Conditions are delimited by logical operators. - if (in_array($token->value, static::$DELIMITERS, true)) { - if ($betweenBefore && ($token->value === 'AND')) { - // The syntax of keyword `BETWEEN` is hard-coded. - $betweenBefore = false; - } else { - // The expression ended. - $expr->expr = trim($expr->expr); - if (! empty($expr->expr)) { - $ret[] = $expr; - } - - // Adding the operator. - $expr = new static($token->value); - $expr->isOperator = true; - $ret[] = $expr; - - // Preparing to parse another condition. - $expr = new static(); - continue; - } - } - - if (($token->type === Token::TYPE_KEYWORD) - && ($token->flags & Token::FLAG_KEYWORD_RESERVED) - && ! ($token->flags & Token::FLAG_KEYWORD_FUNCTION) - ) { - if ($token->value === 'BETWEEN') { - $betweenBefore = true; - } - if (($brackets === 0) && empty(static::$ALLOWED_KEYWORDS[$token->value])) { - break; - } - } - - if ($token->type === Token::TYPE_OPERATOR) { - if ($token->value === '(') { - ++$brackets; - } elseif ($token->value === ')') { - if ($brackets === 0) { - break; - } - --$brackets; - } - } - - $expr->expr .= $token->token; - if (($token->type === Token::TYPE_NONE) - || (($token->type === Token::TYPE_KEYWORD) - && (! ($token->flags & Token::FLAG_KEYWORD_RESERVED))) - || ($token->type === Token::TYPE_STRING) - || ($token->type === Token::TYPE_SYMBOL) - ) { - if (! in_array($token->value, $expr->identifiers)) { - $expr->identifiers[] = $token->value; - } - } - } - - // Last iteration was not processed. - $expr->expr = trim($expr->expr); - if (! empty($expr->expr)) { - $ret[] = $expr; - } - - --$list->idx; - - return $ret; - } - - /** - * @param Condition[] $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) - { - if (is_array($component)) { - return implode(' ', $component); - } - - return $component->expr; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/CreateDefinition.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/CreateDefinition.php deleted file mode 100644 index 0cd29c9..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/CreateDefinition.php +++ /dev/null @@ -1,363 +0,0 @@ - true, - - 'NOT NULL' => 1, - 'NULL' => 1, - 'DEFAULT' => [ - 2, - 'expr', - ['breakOnAlias' => true], - ], - /* Following are not according to grammar, but MySQL happily accepts - * these at any location */ - 'CHARSET' => [ - 2, - 'var', - ], - 'COLLATE' => [ - 3, - 'var', - ], - 'AUTO_INCREMENT' => 3, - 'PRIMARY' => 4, - 'PRIMARY KEY' => 4, - 'UNIQUE' => 4, - 'UNIQUE KEY' => 4, - 'COMMENT' => [ - 5, - 'var', - ], - 'COLUMN_FORMAT' => [ - 6, - 'var', - ], - 'ON UPDATE' => [ - 7, - 'expr', - ], - - // Generated columns options. - 'GENERATED ALWAYS' => 8, - 'AS' => [ - 9, - 'expr', - ['parenthesesDelimited' => true], - ], - 'VIRTUAL' => 10, - 'PERSISTENT' => 11, - 'STORED' => 11, - 'CHECK' => [ - 12, - 'expr', - ['parenthesesDelimited' => true], - ], - // Common entries. - // - // NOTE: Some of the common options are not in the same order which - // causes troubles when checking if the options are in the right order. - // I should find a way to define multiple sets of options and make the - // parser select the right set. - // - // 'UNIQUE' => 4, - // 'UNIQUE KEY' => 4, - // 'COMMENT' => [5, 'var'], - // 'NOT NULL' => 1, - // 'NULL' => 1, - // 'PRIMARY' => 4, - // 'PRIMARY KEY' => 4, - ]; - - /** - * The name of the new column. - * - * @var string - */ - public $name; - - /** - * Whether this field is a constraint or not. - * - * @var bool - */ - public $isConstraint; - - /** - * The data type of thew new column. - * - * @var DataType - */ - public $type; - - /** - * The key. - * - * @var Key - */ - public $key; - - /** - * The table that is referenced. - * - * @var Reference - */ - public $references; - - /** - * The options of this field. - * - * @var OptionsArray - */ - public $options; - - /** - * @param string $name the name of the field - * @param OptionsArray $options the options of this field - * @param DataType|Key $type the data type of this field or the key - * @param bool $isConstraint whether this field is a constraint or not - * @param Reference $references references - */ - public function __construct( - $name = null, - $options = null, - $type = null, - $isConstraint = false, - $references = null - ) { - $this->name = $name; - $this->options = $options; - if ($type instanceof DataType) { - $this->type = $type; - } elseif ($type instanceof Key) { - $this->key = $type; - $this->isConstraint = $isConstraint; - $this->references = $references; - } - } - - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return CreateDefinition[] - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) - { - $ret = []; - - $expr = new static(); - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 -----------------------[ ( ]------------------------> 1 - * - * 1 --------------------[ CONSTRAINT ]------------------> 1 - * 1 -----------------------[ key ]----------------------> 2 - * 1 -------------[ constraint / column name ]-----------> 2 - * - * 2 --------------------[ data type ]-------------------> 3 - * - * 3 ---------------------[ options ]--------------------> 4 - * - * 4 --------------------[ REFERENCES ]------------------> 4 - * - * 5 ------------------------[ , ]-----------------------> 1 - * 5 ------------------------[ ) ]-----------------------> 6 (-1) - * - * @var int - */ - $state = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if ($state === 0) { - if (($token->type === Token::TYPE_OPERATOR) && ($token->value === '(')) { - $state = 1; - } else { - $parser->error( - 'An opening bracket was expected.', - $token - ); - - break; - } - } elseif ($state === 1) { - if ($token->type === Token::TYPE_KEYWORD && $token->keyword === 'CONSTRAINT') { - $expr->isConstraint = true; - } elseif (($token->type === Token::TYPE_KEYWORD) && ($token->flags & Token::FLAG_KEYWORD_KEY)) { - $expr->key = Key::parse($parser, $list); - $state = 4; - } elseif ($token->type === Token::TYPE_SYMBOL || $token->type === Token::TYPE_NONE) { - $expr->name = $token->value; - if (! $expr->isConstraint) { - $state = 2; - } - } elseif ($token->type === Token::TYPE_KEYWORD) { - if ($token->flags & Token::FLAG_KEYWORD_RESERVED) { - // Reserved keywords can't be used - // as field names without backquotes - $parser->error( - 'A symbol name was expected! ' - . 'A reserved keyword can not be used ' - . 'as a column name without backquotes.', - $token - ); - - return $ret; - } - - // Non-reserved keywords are allowed without backquotes - $expr->name = $token->value; - $state = 2; - } else { - $parser->error( - 'A symbol name was expected!', - $token - ); - - return $ret; - } - } elseif ($state === 2) { - $expr->type = DataType::parse($parser, $list); - $state = 3; - } elseif ($state === 3) { - $expr->options = OptionsArray::parse($parser, $list, static::$FIELD_OPTIONS); - $state = 4; - } elseif ($state === 4) { - if ($token->type === Token::TYPE_KEYWORD && $token->keyword === 'REFERENCES') { - ++$list->idx; // Skipping keyword 'REFERENCES'. - $expr->references = Reference::parse($parser, $list); - } else { - --$list->idx; - } - $state = 5; - } elseif ($state === 5) { - if (! empty($expr->type) || ! empty($expr->key)) { - $ret[] = $expr; - } - $expr = new static(); - if ($token->value === ',') { - $state = 1; - } elseif ($token->value === ')') { - $state = 6; - ++$list->idx; - break; - } else { - $parser->error( - 'A comma or a closing bracket was expected.', - $token - ); - $state = 0; - break; - } - } - } - - // Last iteration was not saved. - if (! empty($expr->type) || ! empty($expr->key)) { - $ret[] = $expr; - } - - if (($state !== 0) && ($state !== 6)) { - $parser->error( - 'A closing bracket was expected.', - $list->tokens[$list->idx - 1] - ); - } - - --$list->idx; - - return $ret; - } - - /** - * @param CreateDefinition|CreateDefinition[] $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) - { - if (is_array($component)) { - return "(\n " . implode(",\n ", $component) . "\n)"; - } - - $tmp = ''; - - if ($component->isConstraint) { - $tmp .= 'CONSTRAINT '; - } - - if (isset($component->name) && ($component->name !== '')) { - $tmp .= Context::escape($component->name) . ' '; - } - - if (! empty($component->type)) { - $tmp .= DataType::build( - $component->type, - ['lowercase' => true] - ) . ' '; - } - - if (! empty($component->key)) { - $tmp .= $component->key . ' '; - } - - if (! empty($component->references)) { - $tmp .= 'REFERENCES ' . $component->references . ' '; - } - - $tmp .= $component->options; - - return trim($tmp); - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/DataType.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/DataType.php deleted file mode 100644 index 484e559..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/DataType.php +++ /dev/null @@ -1,169 +0,0 @@ - 1, - 'CHARACTER SET' => [ - 2, - 'var', - ], - 'CHARSET' => [ - 2, - 'var', - ], - 'COLLATE' => [ - 3, - 'var', - ], - 'UNSIGNED' => 4, - 'ZEROFILL' => 5, - ]; - - /** - * The name of the data type. - * - * @var string - */ - public $name; - - /** - * The parameters of this data type. - * - * Some data types have no parameters. - * Numeric types might have parameters for the maximum number of digits, - * precision, etc. - * String types might have parameters for the maximum length stored. - * `ENUM` and `SET` have parameters for possible values. - * - * For more information, check the MySQL manual. - * - * @var array - */ - public $parameters = []; - - /** - * The options of this data type. - * - * @var OptionsArray - */ - public $options; - - /** - * @param string $name the name of this data type - * @param array $parameters the parameters (size or possible values) - * @param OptionsArray $options the options of this data type - */ - public function __construct( - $name = null, - array $parameters = [], - $options = null - ) { - $this->name = $name; - $this->parameters = $parameters; - $this->options = $options; - } - - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return DataType|null - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) - { - $ret = new static(); - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 -------------------[ data type ]--------------------> 1 - * - * 1 ----------------[ size and options ]----------------> 2 - * - * @var int - */ - $state = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if ($state === 0) { - $ret->name = strtoupper((string) $token->value); - if (($token->type !== Token::TYPE_KEYWORD) || (! ($token->flags & Token::FLAG_KEYWORD_DATA_TYPE))) { - $parser->error('Unrecognized data type.', $token); - } - $state = 1; - } elseif ($state === 1) { - if (($token->type === Token::TYPE_OPERATOR) && ($token->value === '(')) { - $parameters = ArrayObj::parse($parser, $list); - ++$list->idx; - $ret->parameters = ($ret->name === 'ENUM') || ($ret->name === 'SET') ? - $parameters->raw : $parameters->values; - } - $ret->options = OptionsArray::parse($parser, $list, static::$DATA_TYPE_OPTIONS); - ++$list->idx; - break; - } - } - - if (empty($ret->name)) { - return null; - } - - --$list->idx; - - return $ret; - } - - /** - * @param DataType $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) - { - $name = empty($options['lowercase']) ? - $component->name : strtolower($component->name); - - $parameters = ''; - if (! empty($component->parameters)) { - $parameters = '(' . implode(',', $component->parameters) . ')'; - } - - return trim($name . $parameters . ' ' . $component->options); - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/Expression.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/Expression.php deleted file mode 100644 index bf97937..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/Expression.php +++ /dev/null @@ -1,455 +0,0 @@ - 1, - 'DUAL' => 1, - 'NULL' => 1, - 'REGEXP' => 1, - 'CASE' => 1, - 'DIV' => 1, - 'AND' => 1, - 'OR' => 1, - 'XOR' => 1, - 'NOT' => 1, - 'MOD' => 1, - ]; - - /** - * The name of this database. - * - * @var string - */ - public $database; - - /** - * The name of this table. - * - * @var string - */ - public $table; - - /** - * The name of the column. - * - * @var string - */ - public $column; - - /** - * The sub-expression. - * - * @var string - */ - public $expr = ''; - - /** - * The alias of this expression. - * - * @var string - */ - public $alias; - - /** - * The name of the function. - * - * @var mixed - */ - public $function; - - /** - * The type of subquery. - * - * @var string - */ - public $subquery; - - /** - * Syntax: - * new Expression('expr') - * new Expression('expr', 'alias') - * new Expression('database', 'table', 'column') - * new Expression('database', 'table', 'column', 'alias') - * - * If the database, table or column name is not required, pass an empty - * string. - * - * @param string $database The name of the database or the the expression. - * the the expression. - * @param string $table The name of the table or the alias of the expression. - * the alias of the expression. - * @param string $column the name of the column - * @param string $alias the name of the alias - */ - public function __construct($database = null, $table = null, $column = null, $alias = null) - { - if (($column === null) && ($alias === null)) { - $this->expr = $database; // case 1 - $this->alias = $table; // case 2 - } else { - $this->database = $database; // case 3 - $this->table = $table; // case 3 - $this->column = $column; // case 3 - $this->alias = $alias; // case 4 - } - } - - /** - * Possible options:. - * - * `field` - * - * First field to be filled. - * If this is not specified, it takes the value of `parseField`. - * - * `parseField` - * - * Specifies the type of the field parsed. It may be `database`, - * `table` or `column`. These expressions may not include - * parentheses. - * - * `breakOnAlias` - * - * If not empty, breaks when the alias occurs (it is not included). - * - * `breakOnParentheses` - * - * If not empty, breaks when the first parentheses occurs. - * - * `parenthesesDelimited` - * - * If not empty, breaks after last parentheses occurred. - * - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return Expression|null - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) - { - $ret = new static(); - - /** - * Whether current tokens make an expression or a table reference. - * - * @var bool - */ - $isExpr = false; - - /** - * Whether a period was previously found. - * - * @var bool - */ - $dot = false; - - /** - * Whether an alias is expected. Is 2 if `AS` keyword was found. - * - * @var bool - */ - $alias = false; - - /** - * Counts brackets. - * - * @var int - */ - $brackets = 0; - - /** - * Keeps track of the last two previous tokens. - * - * @var Token[] - */ - $prev = [ - null, - null, - ]; - - // When a field is parsed, no parentheses are expected. - if (! empty($options['parseField'])) { - $options['breakOnParentheses'] = true; - $options['field'] = $options['parseField']; - } - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) - || ($token->type === Token::TYPE_COMMENT) - ) { - if ($isExpr) { - $ret->expr .= $token->token; - } - continue; - } - - if ($token->type === Token::TYPE_KEYWORD) { - if (($brackets > 0) && empty($ret->subquery) - && ! empty(Parser::$STATEMENT_PARSERS[$token->keyword]) - ) { - // A `(` was previously found and this keyword is the - // beginning of a statement, so this is a subquery. - $ret->subquery = $token->keyword; - } elseif (($token->flags & Token::FLAG_KEYWORD_FUNCTION) - && (empty($options['parseField']) - && ! $alias) - ) { - $isExpr = true; - } elseif (($token->flags & Token::FLAG_KEYWORD_RESERVED) - && ($brackets === 0) - ) { - if (empty(self::$ALLOWED_KEYWORDS[$token->keyword])) { - // A reserved keyword that is not allowed in the - // expression was found so the expression must have - // ended and a new clause is starting. - break; - } - if ($token->keyword === 'AS') { - if (! empty($options['breakOnAlias'])) { - break; - } - if ($alias) { - $parser->error( - 'An alias was expected.', - $token - ); - break; - } - $alias = true; - continue; - } elseif ($token->keyword === 'CASE') { - // For a use of CASE like - // 'SELECT a = CASE .... END, b=1, `id`, ... FROM ...' - $tempCaseExpr = CaseExpression::parse($parser, $list); - $ret->expr .= CaseExpression::build($tempCaseExpr); - $isExpr = true; - continue; - } - $isExpr = true; - } elseif ($brackets === 0 && strlen((string) $ret->expr) > 0 && ! $alias) { - /* End of expression */ - break; - } - } - - if (($token->type === Token::TYPE_NUMBER) - || ($token->type === Token::TYPE_BOOL) - || (($token->type === Token::TYPE_SYMBOL) - && ($token->flags & Token::FLAG_SYMBOL_VARIABLE)) - || (($token->type === Token::TYPE_SYMBOL) - && ($token->flags & Token::FLAG_SYMBOL_PARAMETER)) - || (($token->type === Token::TYPE_OPERATOR) - && ($token->value !== '.')) - ) { - if (! empty($options['parseField'])) { - break; - } - - // Numbers, booleans and operators (except dot) are usually part - // of expressions. - $isExpr = true; - } - - if ($token->type === Token::TYPE_OPERATOR) { - if (! empty($options['breakOnParentheses']) - && (($token->value === '(') || ($token->value === ')')) - ) { - // No brackets were expected. - break; - } - if ($token->value === '(') { - ++$brackets; - if (empty($ret->function) && ($prev[1] !== null) - && (($prev[1]->type === Token::TYPE_NONE) - || ($prev[1]->type === Token::TYPE_SYMBOL) - || (($prev[1]->type === Token::TYPE_KEYWORD) - && ($prev[1]->flags & Token::FLAG_KEYWORD_FUNCTION))) - ) { - $ret->function = $prev[1]->value; - } - } elseif ($token->value === ')') { - if ($brackets === 0) { - // Not our bracket - break; - } else { - --$brackets; - if ($brackets === 0) { - if (! empty($options['parenthesesDelimited'])) { - // The current token is the last bracket, the next - // one will be outside the expression. - $ret->expr .= $token->token; - ++$list->idx; - break; - } - } elseif ($brackets < 0) { - // $parser->error('Unexpected closing bracket.', $token); - // $brackets = 0; - break; - } - } - } elseif ($token->value === ',') { - // Expressions are comma-delimited. - if ($brackets === 0) { - break; - } - } - } - - // Saving the previous tokens. - $prev[0] = $prev[1]; - $prev[1] = $token; - - if ($alias) { - // An alias is expected (the keyword `AS` was previously found). - if (! empty($ret->alias)) { - $parser->error('An alias was previously found.', $token); - break; - } - $ret->alias = $token->value; - $alias = false; - } elseif ($isExpr) { - // Handling aliases. - if (/* (empty($ret->alias)) && */ ($brackets === 0) - && (($prev[0] === null) - || ((($prev[0]->type !== Token::TYPE_OPERATOR) - || ($prev[0]->token === ')')) - && (($prev[0]->type !== Token::TYPE_KEYWORD) - || (! ($prev[0]->flags & Token::FLAG_KEYWORD_RESERVED))))) - && (($prev[1]->type === Token::TYPE_STRING) - || (($prev[1]->type === Token::TYPE_SYMBOL) - && (! ($prev[1]->flags & Token::FLAG_SYMBOL_VARIABLE))) - || ($prev[1]->type === Token::TYPE_NONE)) - ) { - if (! empty($ret->alias)) { - $parser->error('An alias was previously found.', $token); - break; - } - $ret->alias = $prev[1]->value; - } else { - $ret->expr .= $token->token; - } - } elseif (! $isExpr) { - if (($token->type === Token::TYPE_OPERATOR) && ($token->value === '.')) { - // Found a `.` which means we expect a column name and - // the column name we parsed is actually the table name - // and the table name is actually a database name. - if (! empty($ret->database) || $dot) { - $parser->error('Unexpected dot.', $token); - } - $ret->database = $ret->table; - $ret->table = $ret->column; - $ret->column = null; - $dot = true; - $ret->expr .= $token->token; - } else { - $field = empty($options['field']) ? 'column' : $options['field']; - if (empty($ret->$field)) { - $ret->$field = $token->value; - $ret->expr .= $token->token; - $dot = false; - } else { - // No alias is expected. - if (! empty($options['breakOnAlias'])) { - break; - } - if (! empty($ret->alias)) { - $parser->error('An alias was previously found.', $token); - break; - } - $ret->alias = $token->value; - } - } - } - } - - if ($alias) { - $parser->error( - 'An alias was expected.', - $list->tokens[$list->idx - 1] - ); - } - - // White-spaces might be added at the end. - $ret->expr = trim((string) $ret->expr); - - if ($ret->expr === '') { - return null; - } - - --$list->idx; - - return $ret; - } - - /** - * @param Expression|Expression[] $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) - { - if (is_array($component)) { - return implode(', ', $component); - } - - if ($component->expr !== '' && $component->expr !== null) { - $ret = $component->expr; - } else { - $fields = []; - if (isset($component->database) && ($component->database !== '')) { - $fields[] = $component->database; - } - if (isset($component->table) && ($component->table !== '')) { - $fields[] = $component->table; - } - if (isset($component->column) && ($component->column !== '')) { - $fields[] = $component->column; - } - $ret = implode('.', Context::escape($fields)); - } - - if (! empty($component->alias)) { - $ret .= ' AS ' . Context::escape($component->alias); - } - - return $ret; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/ExpressionArray.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/ExpressionArray.php deleted file mode 100644 index 186693d..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/ExpressionArray.php +++ /dev/null @@ -1,123 +0,0 @@ - 1 - * - * 1 ------------------------[ , ]------------------------> 0 - * 1 -----------------------[ else ]----------------------> (END) - * - * @var int - */ - $state = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if (($token->type === Token::TYPE_KEYWORD) - && ($token->flags & Token::FLAG_KEYWORD_RESERVED) - && ((~$token->flags & Token::FLAG_KEYWORD_FUNCTION)) - && ($token->value !== 'DUAL') - && ($token->value !== 'NULL') - && ($token->value !== 'CASE') - ) { - // No keyword is expected. - break; - } - - if ($state === 0) { - if ($token->type === Token::TYPE_KEYWORD - && $token->value === 'CASE' - ) { - $expr = CaseExpression::parse($parser, $list, $options); - } else { - $expr = Expression::parse($parser, $list, $options); - } - - if ($expr === null) { - break; - } - $ret[] = $expr; - $state = 1; - } elseif ($state === 1) { - if ($token->value === ',') { - $state = 0; - } else { - break; - } - } - } - - if ($state === 0) { - $parser->error( - 'An expression was expected.', - $list->tokens[$list->idx] - ); - } - - --$list->idx; - - return $ret; - } - - /** - * @param ExpressionArray[] $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) - { - $ret = []; - foreach ($component as $frag) { - $ret[] = $frag::build($frag); - } - - return implode(', ', $ret); - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/FunctionCall.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/FunctionCall.php deleted file mode 100644 index b41e6b2..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/FunctionCall.php +++ /dev/null @@ -1,113 +0,0 @@ -name = $name; - if (is_array($parameters)) { - $this->parameters = new ArrayObj($parameters); - } elseif ($parameters instanceof ArrayObj) { - $this->parameters = $parameters; - } - } - - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return FunctionCall - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) - { - $ret = new static(); - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 ----------------------[ name ]-----------------------> 1 - * - * 1 --------------------[ parameters ]-------------------> (END) - * - * @var int - */ - $state = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if ($state === 0) { - $ret->name = $token->value; - $state = 1; - } elseif ($state === 1) { - if (($token->type === Token::TYPE_OPERATOR) && ($token->value === '(')) { - $ret->parameters = ArrayObj::parse($parser, $list); - } - break; - } - } - - return $ret; - } - - /** - * @param FunctionCall $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) - { - return $component->name . $component->parameters; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/GroupKeyword.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/GroupKeyword.php deleted file mode 100644 index 888fb89..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/GroupKeyword.php +++ /dev/null @@ -1,127 +0,0 @@ -expr = $expr; - } - - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return GroupKeyword[] - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) - { - $ret = []; - - $expr = new static(); - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 --------------------[ expression ]-------------------> 1 - * - * 1 ------------------------[ , ]------------------------> 0 - * 1 -------------------[ ASC / DESC ]--------------------> 1 - * - * @var int - */ - $state = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if ($state === 0) { - $expr->expr = Expression::parse($parser, $list); - $state = 1; - } elseif ($state === 1) { - if (($token->type === Token::TYPE_KEYWORD) - && (($token->keyword === 'ASC') || ($token->keyword === 'DESC')) - ) { - $expr->type = $token->keyword; - } elseif (($token->type === Token::TYPE_OPERATOR) - && ($token->value === ',') - ) { - if (! empty($expr->expr)) { - $ret[] = $expr; - } - $expr = new static(); - $state = 0; - } else { - break; - } - } - } - - // Last iteration was not processed. - if (! empty($expr->expr)) { - $ret[] = $expr; - } - - --$list->idx; - - return $ret; - } - - /** - * @param GroupKeyword|GroupKeyword[] $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) - { - if (is_array($component)) { - return implode(', ', $component); - } - - return trim((string) $component->expr); - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/IndexHint.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/IndexHint.php deleted file mode 100644 index 9b2f44e..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/IndexHint.php +++ /dev/null @@ -1,188 +0,0 @@ -type = $type; - $this->indexOrKey = $indexOrKey; - $this->for = $for; - $this->indexes = $indexes; - } - - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return IndexHint|Component[] - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) - { - $ret = []; - $expr = new static(); - $expr->type = isset($options['type']) ? $options['type'] : null; - /** - * The state of the parser. - * - * Below are the states of the parser. - * 0 ----------------- [ USE/IGNORE/FORCE ]-----------------> 1 - * 1 -------------------- [ INDEX/KEY ] --------------------> 2 - * 2 ----------------------- [ FOR ] -----------------------> 3 - * 2 -------------------- [ expr_list ] --------------------> 0 - * 3 -------------- [ JOIN/GROUP BY/ORDER BY ] -------------> 4 - * 4 -------------------- [ expr_list ] --------------------> 0 - * - * @var int - */ - $state = 0; - - // By design, the parser will parse first token after the keyword. So, the keyword - // must be analyzed too, in order to determine the type of this index hint. - if ($list->idx > 0) { - --$list->idx; - } - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - switch ($state) { - case 0: - if ($token->type === Token::TYPE_KEYWORD) { - if ($token->keyword === 'USE' || $token->keyword === 'IGNORE' || $token->keyword === 'FORCE') { - $expr->type = $token->keyword; - $state = 1; - } else { - break 2; - } - } - break; - case 1: - if ($token->type === Token::TYPE_KEYWORD) { - if ($token->keyword === 'INDEX' || $token->keyword === 'KEY') { - $expr->indexOrKey = $token->keyword; - } else { - $parser->error('Unexpected keyword.', $token); - } - $state = 2; - } else { - // we expect the token to be a keyword - $parser->error('Unexpected token.', $token); - } - break; - case 2: - if ($token->type === Token::TYPE_KEYWORD && $token->keyword === 'FOR') { - $state = 3; - } else { - $expr->indexes = ExpressionArray::parse($parser, $list); - $state = 0; - $ret[] = $expr; - $expr = new static(); - } - break; - case 3: - if ($token->type === Token::TYPE_KEYWORD) { - if ($token->keyword === 'JOIN' || $token->keyword === 'GROUP BY' || $token->keyword === 'ORDER BY') { - $expr->for = $token->keyword; - } else { - $parser->error('Unexpected keyword.', $token); - } - $state = 4; - } else { - // we expect the token to be a keyword - $parser->error('Unexpected token.', $token); - } - break; - case 4: - $expr->indexes = ExpressionArray::parse($parser, $list); - $state = 0; - $ret[] = $expr; - $expr = new static(); - break; - } - } - --$list->idx; - - return $ret; - } - - /** - * @param IndexHint|IndexHint[] $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) - { - if (is_array($component)) { - return implode(' ', $component); - } - - $ret = $component->type . ' ' . $component->indexOrKey . ' '; - if ($component->for !== null) { - $ret .= 'FOR ' . $component->for . ' '; - } - return $ret . ExpressionArray::build($component->indexes); - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/IntoKeyword.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/IntoKeyword.php deleted file mode 100644 index c3f8a43..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/IntoKeyword.php +++ /dev/null @@ -1,291 +0,0 @@ - [ - 1, - 'expr', - ], - 'OPTIONALLY' => 2, - 'ENCLOSED BY' => [ - 3, - 'expr', - ], - 'ESCAPED BY' => [ - 4, - 'expr', - ], - ]; - - /** - * LINES Options for `SELECT...INTO` statements. - * - * @var array - */ - public static $LINES_OPTIONS = [ - 'STARTING BY' => [ - 1, - 'expr', - ], - 'TERMINATED BY' => [ - 2, - 'expr', - ], - ]; - - /** - * Type of target (OUTFILE or SYMBOL). - * - * @var string - */ - public $type; - - /** - * The destination, which can be a table or a file. - * - * @var string|Expression - */ - public $dest; - - /** - * The name of the columns. - * - * @var array - */ - public $columns; - - /** - * The values to be selected into (SELECT .. INTO @var1). - * - * @var Expression[] - */ - public $values; - - /** - * Options for FIELDS/COLUMNS keyword. - * - * @see static::$FIELDS_OPTIONS - * - * @var OptionsArray - */ - public $fields_options; - - /** - * Whether to use `FIELDS` or `COLUMNS` while building. - * - * @var bool - */ - public $fields_keyword; - - /** - * Options for OPTIONS keyword. - * - * @see static::$LINES_OPTIONS - * - * @var OptionsArray - */ - public $lines_options; - - /** - * @param string $type type of destination (may be OUTFILE) - * @param string|Expression $dest actual destination - * @param array $columns column list of destination - * @param array $values selected fields - * @param OptionsArray $fields_options options for FIELDS/COLUMNS keyword - * @param bool $fields_keyword options for OPTIONS keyword - */ - public function __construct( - $type = null, - $dest = null, - $columns = null, - $values = null, - $fields_options = null, - $fields_keyword = null - ) { - $this->type = $type; - $this->dest = $dest; - $this->columns = $columns; - $this->values = $values; - $this->fields_options = $fields_options; - $this->fields_keyword = $fields_keyword; - } - - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return IntoKeyword - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) - { - $ret = new static(); - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 -----------------------[ name ]----------------------> 1 - * 0 ---------------------[ OUTFILE ]---------------------> 2 - * - * 1 ------------------------[ ( ]------------------------> (END) - * - * 2 ---------------------[ filename ]--------------------> 1 - * - * @var int - */ - $state = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if (($token->type === Token::TYPE_KEYWORD) && ($token->flags & Token::FLAG_KEYWORD_RESERVED)) { - if (($state === 0) && ($token->keyword === 'OUTFILE')) { - $ret->type = 'OUTFILE'; - $state = 2; - continue; - } - - // No other keyword is expected except for $state = 4, which expects `LINES` - if ($state !== 4) { - break; - } - } - - if ($state === 0) { - if ((isset($options['fromInsert']) - && $options['fromInsert']) - || (isset($options['fromReplace']) - && $options['fromReplace']) - ) { - $ret->dest = Expression::parse( - $parser, - $list, - [ - 'parseField' => 'table', - 'breakOnAlias' => true, - ] - ); - } else { - $ret->values = ExpressionArray::parse($parser, $list); - } - $state = 1; - } elseif ($state === 1) { - if (($token->type === Token::TYPE_OPERATOR) && ($token->value === '(')) { - $ret->columns = ArrayObj::parse($parser, $list)->values; - ++$list->idx; - } - break; - } elseif ($state === 2) { - $ret->dest = $token->value; - - $state = 3; - } elseif ($state === 3) { - $ret->parseFileOptions($parser, $list, $token->value); - $state = 4; - } elseif ($state === 4) { - if ($token->type === Token::TYPE_KEYWORD && $token->keyword !== 'LINES') { - break; - } - - $ret->parseFileOptions($parser, $list, $token->value); - $state = 5; - } - } - - --$list->idx; - - return $ret; - } - - public function parseFileOptions(Parser $parser, TokensList $list, $keyword = 'FIELDS') - { - ++$list->idx; - - if ($keyword === 'FIELDS' || $keyword === 'COLUMNS') { - // parse field options - $this->fields_options = OptionsArray::parse( - $parser, - $list, - static::$FIELDS_OPTIONS - ); - - $this->fields_keyword = ($keyword === 'FIELDS'); - } else { - // parse line options - $this->lines_options = OptionsArray::parse( - $parser, - $list, - static::$LINES_OPTIONS - ); - } - } - - /** - * @param IntoKeyword $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) - { - if ($component->dest instanceof Expression) { - $columns = ! empty($component->columns) ? '(`' . implode('`, `', $component->columns) . '`)' : ''; - - return $component->dest . $columns; - } elseif (isset($component->values)) { - return ExpressionArray::build($component->values); - } - - $ret = 'OUTFILE "' . $component->dest . '"'; - - $fields_options_str = OptionsArray::build($component->fields_options); - if (trim($fields_options_str) !== '') { - $ret .= $component->fields_keyword ? ' FIELDS' : ' COLUMNS'; - $ret .= ' ' . $fields_options_str; - } - - $lines_options_str = OptionsArray::build($component->lines_options, ['expr' => true]); - if (trim($lines_options_str) !== '') { - $ret .= ' LINES ' . $lines_options_str; - } - - return $ret; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/JoinKeyword.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/JoinKeyword.php deleted file mode 100644 index 91bab01..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/JoinKeyword.php +++ /dev/null @@ -1,222 +0,0 @@ - 'CROSS', - 'FULL JOIN' => 'FULL', - 'FULL OUTER JOIN' => 'FULL', - 'INNER JOIN' => 'INNER', - 'JOIN' => 'JOIN', - 'LEFT JOIN' => 'LEFT', - 'LEFT OUTER JOIN' => 'LEFT', - 'RIGHT JOIN' => 'RIGHT', - 'RIGHT OUTER JOIN' => 'RIGHT', - 'NATURAL JOIN' => 'NATURAL', - 'NATURAL LEFT JOIN' => 'NATURAL LEFT', - 'NATURAL RIGHT JOIN' => 'NATURAL RIGHT', - 'NATURAL LEFT OUTER JOIN' => 'NATURAL LEFT OUTER', - 'NATURAL RIGHT OUTER JOIN' => 'NATURAL RIGHT OUTER', - 'STRAIGHT_JOIN' => 'STRAIGHT', - ]; - - /** - * Type of this join. - * - * @see static::$JOINS - * - * @var string - */ - public $type; - - /** - * Join expression. - * - * @var Expression - */ - public $expr; - - /** - * Join conditions. - * - * @var Condition[] - */ - public $on; - - /** - * Columns in Using clause. - * - * @var ArrayObj - */ - public $using; - - /** - * @see JoinKeyword::$JOINS - * - * @param string $type Join type - * @param Expression $expr join expression - * @param Condition[] $on join conditions - * @param ArrayObj $using columns joined - */ - public function __construct($type = null, $expr = null, $on = null, $using = null) - { - $this->type = $type; - $this->expr = $expr; - $this->on = $on; - $this->using = $using; - } - - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return JoinKeyword[] - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) - { - $ret = []; - - $expr = new static(); - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 -----------------------[ JOIN ]----------------------> 1 - * - * 1 -----------------------[ expr ]----------------------> 2 - * - * 2 ------------------------[ ON ]-----------------------> 3 - * 2 -----------------------[ USING ]---------------------> 4 - * - * 3 --------------------[ conditions ]-------------------> 0 - * - * 4 ----------------------[ columns ]--------------------> 0 - * - * @var int - */ - $state = 0; - - // By design, the parser will parse first token after the keyword. - // In this case, the keyword must be analyzed too, in order to determine - // the type of this join. - if ($list->idx > 0) { - --$list->idx; - } - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if ($state === 0) { - if (($token->type === Token::TYPE_KEYWORD) - && ! empty(static::$JOINS[$token->keyword]) - ) { - $expr->type = static::$JOINS[$token->keyword]; - $state = 1; - } else { - break; - } - } elseif ($state === 1) { - $expr->expr = Expression::parse($parser, $list, ['field' => 'table']); - $state = 2; - } elseif ($state === 2) { - if ($token->type === Token::TYPE_KEYWORD) { - switch ($token->keyword) { - case 'ON': - $state = 3; - break; - case 'USING': - $state = 4; - break; - default: - if (! empty(static::$JOINS[$token->keyword]) - ) { - $ret[] = $expr; - $expr = new static(); - $expr->type = static::$JOINS[$token->keyword]; - $state = 1; - } else { - /* Next clause is starting */ - break 2; - } - break; - } - } - } elseif ($state === 3) { - $expr->on = Condition::parse($parser, $list); - $ret[] = $expr; - $expr = new static(); - $state = 0; - } elseif ($state === 4) { - $expr->using = ArrayObj::parse($parser, $list); - $ret[] = $expr; - $expr = new static(); - $state = 0; - } - } - - if (! empty($expr->type)) { - $ret[] = $expr; - } - - --$list->idx; - - return $ret; - } - - /** - * @param JoinKeyword[] $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) - { - $ret = []; - foreach ($component as $c) { - $ret[] = array_search($c->type, static::$JOINS) . ' ' . $c->expr - . (! empty($c->on) - ? ' ON ' . Condition::build($c->on) : '') - . (! empty($c->using) - ? ' USING ' . ArrayObj::build($c->using) : ''); - } - - return implode(' ', $ret); - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/Key.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/Key.php deleted file mode 100644 index 669a7c0..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/Key.php +++ /dev/null @@ -1,211 +0,0 @@ - [ - 1, - 'var', - ], - 'USING' => [ - 2, - 'var', - ], - 'WITH PARSER' => [ - 3, - 'var', - ], - 'COMMENT' => [ - 4, - 'var=', - ], - ]; - - /** - * The name of this key. - * - * @var string - */ - public $name; - - /** - * Columns. - * - * @var array - */ - public $columns; - - /** - * The type of this key. - * - * @var string - */ - public $type; - - /** - * The options of this key. - * - * @var OptionsArray - */ - public $options; - - /** - * @param string $name the name of the key - * @param array $columns the columns covered by this key - * @param string $type the type of this key - * @param OptionsArray $options the options of this key - */ - public function __construct( - $name = null, - array $columns = [], - $type = null, - $options = null - ) { - $this->name = $name; - $this->columns = $columns; - $this->type = $type; - $this->options = $options; - } - - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return Key - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) - { - $ret = new static(); - - /** - * Last parsed column. - * - * @var array - */ - $lastColumn = []; - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 ----------------------[ type ]-----------------------> 1 - * - * 1 ----------------------[ name ]-----------------------> 1 - * 1 ---------------------[ columns ]---------------------> 2 - * - * 2 ---------------------[ options ]---------------------> 3 - * - * @var int - */ - $state = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if ($state === 0) { - $ret->type = $token->value; - $state = 1; - } elseif ($state === 1) { - if (($token->type === Token::TYPE_OPERATOR) && ($token->value === '(')) { - $state = 2; - } else { - $ret->name = $token->value; - } - } elseif ($state === 2) { - if ($token->type === Token::TYPE_OPERATOR) { - if ($token->value === '(') { - $state = 3; - } elseif (($token->value === ',') || ($token->value === ')')) { - $state = $token->value === ',' ? 2 : 4; - if (! empty($lastColumn)) { - $ret->columns[] = $lastColumn; - $lastColumn = []; - } - } - } else { - $lastColumn['name'] = $token->value; - } - } elseif ($state === 3) { - if (($token->type === Token::TYPE_OPERATOR) && ($token->value === ')')) { - $state = 2; - } else { - $lastColumn['length'] = $token->value; - } - } elseif ($state === 4) { - $ret->options = OptionsArray::parse($parser, $list, static::$KEY_OPTIONS); - ++$list->idx; - break; - } - } - - --$list->idx; - - return $ret; - } - - /** - * @param Key $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) - { - $ret = $component->type . ' '; - if (! empty($component->name)) { - $ret .= Context::escape($component->name) . ' '; - } - - $columns = []; - foreach ($component->columns as $column) { - $tmp = Context::escape($column['name']); - if (isset($column['length'])) { - $tmp .= '(' . $column['length'] . ')'; - } - $columns[] = $tmp; - } - - $ret .= '(' . implode(',', $columns) . ') ' . $component->options; - - return trim($ret); - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/Limit.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/Limit.php deleted file mode 100644 index 16dad29..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/Limit.php +++ /dev/null @@ -1,127 +0,0 @@ -rowCount = $rowCount; - $this->offset = $offset; - } - - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return Limit - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) - { - $ret = new static(); - - $offset = false; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if (($token->type === Token::TYPE_KEYWORD) && ($token->flags & Token::FLAG_KEYWORD_RESERVED)) { - break; - } - - if ($token->type === Token::TYPE_KEYWORD && $token->keyword === 'OFFSET') { - if ($offset) { - $parser->error('An offset was expected.', $token); - } - $offset = true; - continue; - } - - if (($token->type === Token::TYPE_OPERATOR) && ($token->value === ',')) { - $ret->offset = $ret->rowCount; - $ret->rowCount = 0; - continue; - } - - // Skip if not a number - if (($token->type !== Token::TYPE_NUMBER)) { - break; - } - - if ($offset) { - $ret->offset = $token->value; - $offset = false; - } else { - $ret->rowCount = $token->value; - } - } - - if ($offset) { - $parser->error( - 'An offset was expected.', - $list->tokens[$list->idx - 1] - ); - } - - --$list->idx; - - return $ret; - } - - /** - * @param Limit $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) - { - return $component->offset . ', ' . $component->rowCount; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/LockExpression.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/LockExpression.php deleted file mode 100644 index 6184f2e..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/LockExpression.php +++ /dev/null @@ -1,200 +0,0 @@ - 1 - * 1 ---------------- [ lock_type ] ----------------> 2 - * 2 -------------------- [ , ] --------------------> break - * - * @var int - */ - $state = 0; - - $prevToken = null; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER - || ($token->type === Token::TYPE_OPERATOR - && $token->value === ',') - ) { - break; - } - - if ($state === 0) { - $ret->table = Expression::parse($parser, $list, ['parseField' => 'table']); - $state = 1; - } elseif ($state === 1) { - // parse lock type - $ret->type = self::parseLockType($parser, $list); - $state = 2; - } - $prevToken = $token; - } - - // 2 is the only valid end state - if ($state !== 2) { - $parser->error('Unexpected end of LOCK expression.', $prevToken); - } - - --$list->idx; - - return $ret; - } - - /** - * @param LockExpression|LockExpression[] $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) - { - if (is_array($component)) { - return implode(', ', $component); - } - - return $component->table . ' ' . $component->type; - } - - private static function parseLockType(Parser $parser, TokensList $list) - { - $lockType = ''; - - /** - * The state of the parser while parsing for lock type. - * - * Below are the states of the parser. - * - * 0 ---------------- [ READ ] -----------------> 1 - * 0 ------------- [ LOW_PRIORITY ] ------------> 2 - * 0 ---------------- [ WRITE ] ----------------> 3 - * 1 ---------------- [ LOCAL ] ----------------> 3 - * 2 ---------------- [ WRITE ] ----------------> 3 - * - * @var int - */ - $state = 0; - - $prevToken = null; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER - || ($token->type === Token::TYPE_OPERATOR - && $token->value === ',') - ) { - --$list->idx; - break; - } - - // Skipping whitespaces and comments. - if ($token->type === Token::TYPE_WHITESPACE || $token->type === Token::TYPE_COMMENT) { - continue; - } - - // We only expect keywords - if ($token->type !== Token::TYPE_KEYWORD) { - $parser->error('Unexpected token.', $token); - break; - } - - if ($state === 0) { - if ($token->keyword === 'READ') { - $state = 1; - } elseif ($token->keyword === 'LOW_PRIORITY') { - $state = 2; - } elseif ($token->keyword === 'WRITE') { - $state = 3; - } else { - $parser->error('Unexpected keyword.', $token); - break; - } - $lockType .= $token->keyword; - } elseif ($state === 1) { - if ($token->keyword === 'LOCAL') { - $lockType .= ' ' . $token->keyword; - $state = 3; - } else { - $parser->error('Unexpected keyword.', $token); - break; - } - } elseif ($state === 2) { - if ($token->keyword === 'WRITE') { - $lockType .= ' ' . $token->keyword; - $state = 3; // parsing over - } else { - $parser->error('Unexpected keyword.', $token); - break; - } - } - - $prevToken = $token; - } - - // Only two possible end states - if ($state !== 1 && $state !== 3) { - $parser->error('Unexpected end of Lock expression.', $prevToken); - } - - return $lockType; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/OptionsArray.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/OptionsArray.php deleted file mode 100644 index da73dc6..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/OptionsArray.php +++ /dev/null @@ -1,367 +0,0 @@ -options = $options; - } - - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return OptionsArray - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) - { - $ret = new static(); - - /** - * The ID that will be assigned to duplicate options. - * - * @var int - */ - $lastAssignedId = count($options) + 1; - - /** - * The option that was processed last time. - * - * @var array - */ - $lastOption = null; - - /** - * The index of the option that was processed last time. - * - * @var int - */ - $lastOptionId = 0; - - /** - * Counts brackets. - * - * @var int - */ - $brackets = 0; - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 ---------------------[ option ]----------------------> 1 - * - * 1 -------------------[ = (optional) ]------------------> 2 - * - * 2 ----------------------[ value ]----------------------> 0 - * - * @var int - */ - $state = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping comments. - if ($token->type === Token::TYPE_COMMENT) { - continue; - } - - // Skipping whitespace if not parsing value. - if (($token->type === Token::TYPE_WHITESPACE) && ($brackets === 0)) { - continue; - } - - if ($lastOption === null) { - $upper = strtoupper($token->token); - if (isset($options[$upper])) { - $lastOption = $options[$upper]; - $lastOptionId = is_array($lastOption) ? - $lastOption[0] : $lastOption; - $state = 0; - - // Checking for option conflicts. - // For example, in `SELECT` statements the keywords `ALL` - // and `DISTINCT` conflict and if used together, they - // produce an invalid query. - // - // Usually, tokens can be identified in the array by the - // option ID, but if conflicts occur, a generated option ID - // is used. - // - // The first pseudo duplicate ID is the maximum value of the - // real options (e.g. if there are 5 options, the first - // fake ID is 6). - if (isset($ret->options[$lastOptionId])) { - $parser->error( - sprintf( - Translator::gettext('This option conflicts with "%1$s".'), - is_array($ret->options[$lastOptionId]) - ? $ret->options[$lastOptionId]['name'] - : $ret->options[$lastOptionId] - ), - $token - ); - $lastOptionId = $lastAssignedId++; - } - } else { - // There is no option to be processed. - break; - } - } - - if ($state === 0) { - if (! is_array($lastOption)) { - // This is a just keyword option without any value. - // This is the beginning and the end of it. - $ret->options[$lastOptionId] = $token->value; - $lastOption = null; - $state = 0; - } elseif (($lastOption[1] === 'var') || ($lastOption[1] === 'var=')) { - // This is a keyword that is followed by a value. - // This is only the beginning. The value is parsed in state - // 1 and 2. State 1 is used to skip the first equals sign - // and state 2 to parse the actual value. - $ret->options[$lastOptionId] = [ - // @var string The name of the option. - 'name' => $token->value, - // @var bool Whether it contains an equal sign. - // This is used by the builder to rebuild it. - 'equals' => $lastOption[1] === 'var=', - // @var string Raw value. - 'expr' => '', - // @var string Processed value. - 'value' => '', - ]; - $state = 1; - } elseif ($lastOption[1] === 'expr' || $lastOption[1] === 'expr=') { - // This is a keyword that is followed by an expression. - // The expression is used by the specialized parser. - - // Skipping this option in order to parse the expression. - ++$list->idx; - $ret->options[$lastOptionId] = [ - // @var string The name of the option. - 'name' => $token->value, - // @var bool Whether it contains an equal sign. - // This is used by the builder to rebuild it. - 'equals' => $lastOption[1] === 'expr=', - // @var Expression The parsed expression. - 'expr' => '', - ]; - $state = 1; - } - } elseif ($state === 1) { - $state = 2; - if ($token->token === '=') { - $ret->options[$lastOptionId]['equals'] = true; - continue; - } - } - - // This is outside the `elseif` group above because the change might - // change this iteration. - if ($state === 2) { - if ($lastOption[1] === 'expr' || $lastOption[1] === 'expr=') { - $ret->options[$lastOptionId]['expr'] = Expression::parse( - $parser, - $list, - empty($lastOption[2]) ? [] : $lastOption[2] - ); - $ret->options[$lastOptionId]['value'] - = $ret->options[$lastOptionId]['expr']->expr; - $lastOption = null; - $state = 0; - } else { - if ($token->token === '(') { - ++$brackets; - } elseif ($token->token === ')') { - --$brackets; - } - - $ret->options[$lastOptionId]['expr'] .= $token->token; - - if (! ((($token->token === '(') && ($brackets === 1)) - || (($token->token === ')') && ($brackets === 0))) - ) { - // First pair of brackets is being skipped. - $ret->options[$lastOptionId]['value'] .= $token->value; - } - - // Checking if we finished parsing. - if ($brackets === 0) { - $lastOption = null; - } - } - } - } - - /* - * We reached the end of statement without getting a value - * for an option for which a value was required - */ - if ($state === 1 - && $lastOption - && ($lastOption[1] === 'expr' - || $lastOption[1] === 'var' - || $lastOption[1] === 'var=' - || $lastOption[1] === 'expr=') - ) { - $parser->error( - sprintf( - 'Value/Expression for the option %1$s was expected.', - $ret->options[$lastOptionId]['name'] - ), - $list->tokens[$list->idx - 1] - ); - } - - if (empty($options['_UNSORTED'])) { - ksort($ret->options); - } - - --$list->idx; - - return $ret; - } - - /** - * @param OptionsArray $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) - { - if (empty($component->options)) { - return ''; - } - - $options = []; - foreach ($component->options as $option) { - if (! is_array($option)) { - $options[] = $option; - } else { - $options[] = $option['name'] - . (! empty($option['equals']) && $option['equals'] ? '=' : ' ') - . (! empty($option['expr']) ? $option['expr'] : $option['value']); - } - } - - return implode(' ', $options); - } - - /** - * Checks if it has the specified option and returns it value or true. - * - * @param string $key the key to be checked - * @param bool $getExpr Gets the expression instead of the value. - * The value is the processed form of the expression. - * - * @return mixed - */ - public function has($key, $getExpr = false) - { - foreach ($this->options as $option) { - if (is_array($option)) { - if (! strcasecmp($key, $option['name'])) { - return $getExpr ? $option['expr'] : $option['value']; - } - } elseif (! strcasecmp($key, $option)) { - return true; - } - } - - return false; - } - - /** - * Removes the option from the array. - * - * @param string $key the key to be removed - * - * @return bool whether the key was found and deleted or not - */ - public function remove($key) - { - foreach ($this->options as $idx => $option) { - if (is_array($option)) { - if (! strcasecmp($key, $option['name'])) { - unset($this->options[$idx]); - - return true; - } - } elseif (! strcasecmp($key, $option)) { - unset($this->options[$idx]); - - return true; - } - } - - return false; - } - - /** - * Merges the specified options with these ones. Values with same ID will be - * replaced. - * - * @param array|OptionsArray $options the options to be merged - */ - public function merge($options) - { - if (is_array($options)) { - $this->options = array_merge_recursive($this->options, $options); - } elseif ($options instanceof self) { - $this->options = array_merge_recursive($this->options, $options->options); - } - } - - /** - * Checks tf there are no options set. - * - * @return bool - */ - public function isEmpty() - { - return empty($this->options); - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/OrderKeyword.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/OrderKeyword.php deleted file mode 100644 index 966758e..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/OrderKeyword.php +++ /dev/null @@ -1,134 +0,0 @@ -expr = $expr; - $this->type = $type; - } - - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return OrderKeyword[] - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) - { - $ret = []; - - $expr = new static(); - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 --------------------[ expression ]-------------------> 1 - * - * 1 ------------------------[ , ]------------------------> 0 - * 1 -------------------[ ASC / DESC ]--------------------> 1 - * - * @var int - */ - $state = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if ($state === 0) { - $expr->expr = Expression::parse($parser, $list); - $state = 1; - } elseif ($state === 1) { - if (($token->type === Token::TYPE_KEYWORD) - && (($token->keyword === 'ASC') || ($token->keyword === 'DESC')) - ) { - $expr->type = $token->keyword; - } elseif (($token->type === Token::TYPE_OPERATOR) - && ($token->value === ',') - ) { - if (! empty($expr->expr)) { - $ret[] = $expr; - } - $expr = new static(); - $state = 0; - } else { - break; - } - } - } - - // Last iteration was not processed. - if (! empty($expr->expr)) { - $ret[] = $expr; - } - - --$list->idx; - - return $ret; - } - - /** - * @param OrderKeyword|OrderKeyword[] $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) - { - if (is_array($component)) { - return implode(', ', $component); - } - - return $component->expr . ' ' . $component->type; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/ParameterDefinition.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/ParameterDefinition.php deleted file mode 100644 index d7aa293..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/ParameterDefinition.php +++ /dev/null @@ -1,165 +0,0 @@ -name = $name; - $this->inOut = $inOut; - $this->type = $type; - } - - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return ParameterDefinition[] - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) - { - $ret = []; - - $expr = new static(); - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 -----------------------[ ( ]------------------------> 1 - * - * 1 ----------------[ IN / OUT / INOUT ]----------------> 1 - * 1 ----------------------[ name ]----------------------> 2 - * - * 2 -------------------[ data type ]--------------------> 3 - * - * 3 ------------------------[ , ]-----------------------> 1 - * 3 ------------------------[ ) ]-----------------------> (END) - * - * @var int - */ - $state = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if ($state === 0) { - if (($token->type === Token::TYPE_OPERATOR) && ($token->value === '(')) { - $state = 1; - } - continue; - } elseif ($state === 1) { - if (($token->value === 'IN') || ($token->value === 'OUT') || ($token->value === 'INOUT')) { - $expr->inOut = $token->value; - ++$list->idx; - } elseif ($token->value === ')') { - ++$list->idx; - break; - } else { - $expr->name = $token->value; - $state = 2; - } - } elseif ($state === 2) { - $expr->type = DataType::parse($parser, $list); - $state = 3; - } elseif ($state === 3) { - $ret[] = $expr; - $expr = new static(); - if ($token->value === ',') { - $state = 1; - } elseif ($token->value === ')') { - ++$list->idx; - break; - } - } - } - - // Last iteration was not saved. - if (isset($expr->name) && ($expr->name !== '')) { - $ret[] = $expr; - } - - --$list->idx; - - return $ret; - } - - /** - * @param ParameterDefinition[] $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) - { - if (is_array($component)) { - return '(' . implode(', ', $component) . ')'; - } - - $tmp = ''; - if (! empty($component->inOut)) { - $tmp .= $component->inOut . ' '; - } - - return trim( - $tmp . Context::escape($component->name) . ' ' . $component->type - ); - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/PartitionDefinition.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/PartitionDefinition.php deleted file mode 100644 index e67e92f..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/PartitionDefinition.php +++ /dev/null @@ -1,249 +0,0 @@ - [ - 1, - 'var', - ], - 'ENGINE' => [ - 1, - 'var', - ], - 'COMMENT' => [ - 2, - 'var', - ], - 'DATA DIRECTORY' => [ - 3, - 'var', - ], - 'INDEX DIRECTORY' => [ - 4, - 'var', - ], - 'MAX_ROWS' => [ - 5, - 'var', - ], - 'MIN_ROWS' => [ - 6, - 'var', - ], - 'TABLESPACE' => [ - 7, - 'var', - ], - 'NODEGROUP' => [ - 8, - 'var', - ], - ]; - - /** - * Whether this entry is a subpartition or a partition. - * - * @var bool - */ - public $isSubpartition; - - /** - * The name of this partition. - * - * @var string - */ - public $name; - - /** - * The type of this partition (what follows the `VALUES` keyword). - * - * @var string - */ - public $type; - - /** - * The expression used to defined this partition. - * - * @var Expression|string - */ - public $expr; - - /** - * The subpartitions of this partition. - * - * @var PartitionDefinition[] - */ - public $subpartitions; - - /** - * The options of this field. - * - * @var OptionsArray - */ - public $options; - - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return PartitionDefinition - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) - { - $ret = new static(); - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 -------------[ PARTITION | SUBPARTITION ]------------> 1 - * - * 1 -----------------------[ name ]----------------------> 2 - * - * 2 ----------------------[ VALUES ]---------------------> 3 - * - * 3 ---------------------[ LESS THAN ]-------------------> 4 - * 3 ------------------------[ IN ]-----------------------> 4 - * - * 4 -----------------------[ expr ]----------------------> 5 - * - * 5 ----------------------[ options ]--------------------> 6 - * - * 6 ------------------[ subpartitions ]------------------> (END) - * - * @var int - */ - $state = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if ($state === 0) { - $ret->isSubpartition = ($token->type === Token::TYPE_KEYWORD) && ($token->keyword === 'SUBPARTITION'); - $state = 1; - } elseif ($state === 1) { - $ret->name = $token->value; - - // Looking ahead for a 'VALUES' keyword. - // Loop until the end of the partition name (delimited by a whitespace) - while ($nextToken = $list->tokens[++$list->idx]) { - if ($nextToken->type !== Token::TYPE_NONE) { - break; - } - $ret->name .= $nextToken->value; - } - $idx = $list->idx--; - // Get the first token after the white space. - $nextToken = $list->tokens[++$idx]; - - $state = ($nextToken->type === Token::TYPE_KEYWORD) - && ($nextToken->value === 'VALUES') - ? 2 : 5; - } elseif ($state === 2) { - $state = 3; - } elseif ($state === 3) { - $ret->type = $token->value; - $state = 4; - } elseif ($state === 4) { - if ($token->value === 'MAXVALUE') { - $ret->expr = $token->value; - } else { - $ret->expr = Expression::parse( - $parser, - $list, - [ - 'parenthesesDelimited' => true, - 'breakOnAlias' => true, - ] - ); - } - $state = 5; - } elseif ($state === 5) { - $ret->options = OptionsArray::parse($parser, $list, static::$OPTIONS); - $state = 6; - } elseif ($state === 6) { - if (($token->type === Token::TYPE_OPERATOR) && ($token->value === '(')) { - $ret->subpartitions = ArrayObj::parse( - $parser, - $list, - [ - 'type' => 'PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition', - ] - ); - ++$list->idx; - } - break; - } - } - - --$list->idx; - - return $ret; - } - - /** - * @param PartitionDefinition|PartitionDefinition[] $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) - { - if (is_array($component)) { - return "(\n" . implode(",\n", $component) . "\n)"; - } - - if ($component->isSubpartition) { - return trim('SUBPARTITION ' . $component->name . ' ' . $component->options); - } - - $subpartitions = empty($component->subpartitions) ? '' : ' ' . self::build($component->subpartitions); - - return trim( - 'PARTITION ' . $component->name - . (empty($component->type) ? '' : ' VALUES ' . $component->type . ' ' . $component->expr . ' ') - . (! empty($component->options) && ! empty($component->type) ? '' : ' ') . $component->options . $subpartitions - ); - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/Reference.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/Reference.php deleted file mode 100644 index 759f3ad..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/Reference.php +++ /dev/null @@ -1,156 +0,0 @@ - [ - 1, - 'var', - ], - 'ON DELETE' => [ - 2, - 'var', - ], - 'ON UPDATE' => [ - 3, - 'var', - ], - ]; - - /** - * The referenced table. - * - * @var Expression - */ - public $table; - - /** - * The referenced columns. - * - * @var array - */ - public $columns; - - /** - * The options of the referencing. - * - * @var OptionsArray - */ - public $options; - - /** - * @param Expression $table the name of the table referenced - * @param array $columns the columns referenced - * @param OptionsArray $options the options - */ - public function __construct($table = null, array $columns = [], $options = null) - { - $this->table = $table; - $this->columns = $columns; - $this->options = $options; - } - - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return Reference - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) - { - $ret = new static(); - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 ----------------------[ table ]---------------------> 1 - * - * 1 ---------------------[ columns ]--------------------> 2 - * - * 2 ---------------------[ options ]--------------------> (END) - * - * @var int - */ - $state = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if ($state === 0) { - $ret->table = Expression::parse( - $parser, - $list, - [ - 'parseField' => 'table', - 'breakOnAlias' => true, - ] - ); - $state = 1; - } elseif ($state === 1) { - $ret->columns = ArrayObj::parse($parser, $list)->values; - $state = 2; - } elseif ($state === 2) { - $ret->options = OptionsArray::parse($parser, $list, static::$REFERENCES_OPTIONS); - ++$list->idx; - break; - } - } - - --$list->idx; - - return $ret; - } - - /** - * @param Reference $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) - { - return trim( - $component->table - . ' (' . implode(', ', Context::escape($component->columns)) . ') ' - . $component->options - ); - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/RenameOperation.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/RenameOperation.php deleted file mode 100644 index a2a8d1f..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/RenameOperation.php +++ /dev/null @@ -1,176 +0,0 @@ -old = $old; - $this->new = $new; - } - - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return RenameOperation[] - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) - { - $ret = []; - - $expr = new static(); - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 ---------------------[ old name ]--------------------> 1 - * - * 1 ------------------------[ TO ]-----------------------> 2 - * - * 2 ---------------------[ new name ]--------------------> 3 - * - * 3 ------------------------[ , ]------------------------> 0 - * 3 -----------------------[ else ]----------------------> (END) - * - * @var int - */ - $state = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if ($state === 0) { - $expr->old = Expression::parse( - $parser, - $list, - [ - 'breakOnAlias' => true, - 'parseField' => 'table', - ] - ); - if (empty($expr->old)) { - $parser->error( - 'The old name of the table was expected.', - $token - ); - } - $state = 1; - } elseif ($state === 1) { - if ($token->type === Token::TYPE_KEYWORD && $token->keyword === 'TO') { - $state = 2; - } else { - $parser->error( - 'Keyword "TO" was expected.', - $token - ); - break; - } - } elseif ($state === 2) { - $expr->new = Expression::parse( - $parser, - $list, - [ - 'breakOnAlias' => true, - 'parseField' => 'table', - ] - ); - if (empty($expr->new)) { - $parser->error( - 'The new name of the table was expected.', - $token - ); - } - $state = 3; - } elseif ($state === 3) { - if (($token->type === Token::TYPE_OPERATOR) && ($token->value === ',')) { - $ret[] = $expr; - $expr = new static(); - $state = 0; - } else { - break; - } - } - } - - if ($state !== 3) { - $parser->error( - 'A rename operation was expected.', - $list->tokens[$list->idx - 1] - ); - } - - // Last iteration was not saved. - if (! empty($expr->old)) { - $ret[] = $expr; - } - - --$list->idx; - - return $ret; - } - - /** - * @param RenameOperation $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) - { - if (is_array($component)) { - return implode(', ', $component); - } - - return $component->old . ' TO ' . $component->new; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/SetOperation.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/SetOperation.php deleted file mode 100644 index 1e44650..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/SetOperation.php +++ /dev/null @@ -1,155 +0,0 @@ -column = $column; - $this->value = $value; - } - - /** - * @param Parser $parser the parser that serves as context - * @param TokensList $list the list of tokens that are being parsed - * @param array $options parameters for parsing - * - * @return SetOperation[] - */ - public static function parse(Parser $parser, TokensList $list, array $options = []) - { - $ret = []; - - $expr = new static(); - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 ---------------------[ col_name ]--------------------> 0 - * 0 ------------------------[ = ]------------------------> 1 - * 1 -----------------------[ value ]---------------------> 1 - * 1 ------------------------[ , ]------------------------> 0 - * - * @var int - */ - $state = 0; - - /** - * Token when the parser has seen the latest comma - * - * @var Token - */ - $commaLastSeenAt = null; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - // No keyword is expected. - if (($token->type === Token::TYPE_KEYWORD) - && ($token->flags & Token::FLAG_KEYWORD_RESERVED) - && ($state === 0) - ) { - break; - } - - if ($state === 0) { - if ($token->token === '=') { - $state = 1; - } elseif ($token->value !== ',') { - $expr->column .= $token->token; - } elseif ($token->value === ',') { - $commaLastSeenAt = $token; - } - } elseif ($state === 1) { - $tmp = Expression::parse( - $parser, - $list, - [ - 'breakOnAlias' => true, - ] - ); - if ($tmp === null) { - $parser->error('Missing expression.', $token); - break; - } - $expr->column = trim($expr->column); - $expr->value = $tmp->expr; - $ret[] = $expr; - $expr = new static(); - $state = 0; - $commaLastSeenAt = null; - } - } - --$list->idx; - - // We saw a comma, but didn't see a column-value pair after it - if ($commaLastSeenAt !== null) { - $parser->error('Unexpected token.', $commaLastSeenAt); - } - - return $ret; - } - - /** - * @param SetOperation|SetOperation[] $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) - { - if (is_array($component)) { - return implode(', ', $component); - } - - return $component->column . ' = ' . $component->value; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/UnionKeyword.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/UnionKeyword.php deleted file mode 100644 index 55c9e29..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Components/UnionKeyword.php +++ /dev/null @@ -1,31 +0,0 @@ - $component the component to be built - * @param array $options parameters for building - * - * @return string - */ - public static function build($component, array $options = []) - { - $tmp = []; - foreach ($component as $componentPart) { - $tmp[] = $componentPart[0] . ' ' . $componentPart[1]; - } - - return implode(' ', $tmp); - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Context.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Context.php deleted file mode 100644 index 138c5c5..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Context.php +++ /dev/null @@ -1,581 +0,0 @@ - 1, - '*' => 1, - '+' => 1, - '-' => 1, - '/' => 1, - - // @see Token::FLAG_OPERATOR_LOGICAL - '!' => 2, - '!=' => 2, - '&&' => 2, - '<' => 2, - '<=' => 2, - '<=>' => 2, - '<>' => 2, - '=' => 2, - '>' => 2, - '>=' => 2, - '||' => 2, - - // @see Token::FLAG_OPERATOR_BITWISE - '&' => 4, - '<<' => 4, - '>>' => 4, - '^' => 4, - '|' => 4, - '~' => 4, - - // @see Token::FLAG_OPERATOR_ASSIGNMENT - ':=' => 8, - - // @see Token::FLAG_OPERATOR_SQL - '(' => 16, - ')' => 16, - '.' => 16, - ',' => 16, - ';' => 16, - ]; - - /** - * The mode of the MySQL server that will be used in lexing, parsing and - * building the statements. - * - * @var int - */ - public static $MODE = 0; - - /* - * Server SQL Modes - * https://dev.mysql.com/doc/refman/5.0/en/sql-mode.html - */ - - // Compatibility mode for Microsoft's SQL server. - // This is the equivalent of ANSI_QUOTES. - const SQL_MODE_COMPAT_MYSQL = 2; - - // https://dev.mysql.com/doc/refman/5.0/en/sql-mode.html#sqlmode_allow_invalid_dates - const SQL_MODE_ALLOW_INVALID_DATES = 1; - - // https://dev.mysql.com/doc/refman/5.0/en/sql-mode.html#sqlmode_ansi_quotes - const SQL_MODE_ANSI_QUOTES = 2; - - // https://dev.mysql.com/doc/refman/5.0/en/sql-mode.html#sqlmode_error_for_division_by_zero - const SQL_MODE_ERROR_FOR_DIVISION_BY_ZERO = 4; - - // https://dev.mysql.com/doc/refman/5.0/en/sql-mode.html#sqlmode_high_not_precedence - const SQL_MODE_HIGH_NOT_PRECEDENCE = 8; - - // https://dev.mysql.com/doc/refman/5.0/en/sql-mode.html#sqlmode_ignore_space - const SQL_MODE_IGNORE_SPACE = 16; - - // https://dev.mysql.com/doc/refman/5.0/en/sql-mode.html#sqlmode_no_auto_create_user - const SQL_MODE_NO_AUTO_CREATE_USER = 32; - - // https://dev.mysql.com/doc/refman/5.0/en/sql-mode.html#sqlmode_no_auto_value_on_zero - const SQL_MODE_NO_AUTO_VALUE_ON_ZERO = 64; - - // https://dev.mysql.com/doc/refman/5.0/en/sql-mode.html#sqlmode_no_backslash_escapes - const SQL_MODE_NO_BACKSLASH_ESCAPES = 128; - - // https://dev.mysql.com/doc/refman/5.0/en/sql-mode.html#sqlmode_no_dir_in_create - const SQL_MODE_NO_DIR_IN_CREATE = 256; - - // https://dev.mysql.com/doc/refman/5.0/en/sql-mode.html#sqlmode_no_dir_in_create - const SQL_MODE_NO_ENGINE_SUBSTITUTION = 512; - - // https://dev.mysql.com/doc/refman/5.0/en/sql-mode.html#sqlmode_no_field_options - const SQL_MODE_NO_FIELD_OPTIONS = 1024; - - // https://dev.mysql.com/doc/refman/5.0/en/sql-mode.html#sqlmode_no_key_options - const SQL_MODE_NO_KEY_OPTIONS = 2048; - - // https://dev.mysql.com/doc/refman/5.0/en/sql-mode.html#sqlmode_no_table_options - const SQL_MODE_NO_TABLE_OPTIONS = 4096; - - // https://dev.mysql.com/doc/refman/5.0/en/sql-mode.html#sqlmode_no_unsigned_subtraction - const SQL_MODE_NO_UNSIGNED_SUBTRACTION = 8192; - - // https://dev.mysql.com/doc/refman/5.0/en/sql-mode.html#sqlmode_no_zero_date - const SQL_MODE_NO_ZERO_DATE = 16384; - - // https://dev.mysql.com/doc/refman/5.0/en/sql-mode.html#sqlmode_no_zero_in_date - const SQL_MODE_NO_ZERO_IN_DATE = 32768; - - // https://dev.mysql.com/doc/refman/5.0/en/sql-mode.html#sqlmode_only_full_group_by - const SQL_MODE_ONLY_FULL_GROUP_BY = 65536; - - // https://dev.mysql.com/doc/refman/5.0/en/sql-mode.html#sqlmode_pipes_as_concat - const SQL_MODE_PIPES_AS_CONCAT = 131072; - - // https://dev.mysql.com/doc/refman/5.0/en/sql-mode.html#sqlmode_real_as_float - const SQL_MODE_REAL_AS_FLOAT = 262144; - - // https://dev.mysql.com/doc/refman/5.0/en/sql-mode.html#sqlmode_strict_all_tables - const SQL_MODE_STRICT_ALL_TABLES = 524288; - - // https://dev.mysql.com/doc/refman/5.0/en/sql-mode.html#sqlmode_strict_trans_tables - const SQL_MODE_STRICT_TRANS_TABLES = 1048576; - - // Custom modes. - - // The table and column names and any other field that must be escaped will - // not be. - // Reserved keywords are being escaped regardless this mode is used or not. - const SQL_MODE_NO_ENCLOSING_QUOTES = 1073741824; - - /* - * Combination SQL Modes - * https://dev.mysql.com/doc/refman/5.0/en/sql-mode.html#sql-mode-combo - */ - - // REAL_AS_FLOAT, PIPES_AS_CONCAT, ANSI_QUOTES, IGNORE_SPACE - const SQL_MODE_ANSI = 393234; - - // PIPES_AS_CONCAT, ANSI_QUOTES, IGNORE_SPACE, NO_KEY_OPTIONS, - // NO_TABLE_OPTIONS, NO_FIELD_OPTIONS, - const SQL_MODE_DB2 = 138258; - - // PIPES_AS_CONCAT, ANSI_QUOTES, IGNORE_SPACE, NO_KEY_OPTIONS, - // NO_TABLE_OPTIONS, NO_FIELD_OPTIONS, NO_AUTO_CREATE_USER - const SQL_MODE_MAXDB = 138290; - - // PIPES_AS_CONCAT, ANSI_QUOTES, IGNORE_SPACE, NO_KEY_OPTIONS, - // NO_TABLE_OPTIONS, NO_FIELD_OPTIONS - const SQL_MODE_MSSQL = 138258; - - // PIPES_AS_CONCAT, ANSI_QUOTES, IGNORE_SPACE, NO_KEY_OPTIONS, - // NO_TABLE_OPTIONS, NO_FIELD_OPTIONS, NO_AUTO_CREATE_USER - const SQL_MODE_ORACLE = 138290; - - // PIPES_AS_CONCAT, ANSI_QUOTES, IGNORE_SPACE, NO_KEY_OPTIONS, - // NO_TABLE_OPTIONS, NO_FIELD_OPTIONS - const SQL_MODE_POSTGRESQL = 138258; - - // STRICT_TRANS_TABLES, STRICT_ALL_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, - // ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER - const SQL_MODE_TRADITIONAL = 1622052; - - // ------------------------------------------------------------------------- - // Keyword. - - /** - * Checks if the given string is a keyword. - * - * @param string $str string to be checked - * @param bool $isReserved checks if the keyword is reserved - * - * @return int|null - */ - public static function isKeyword($str, $isReserved = false) - { - $str = strtoupper($str); - - if (isset(static::$KEYWORDS[$str])) { - if ($isReserved && ! (static::$KEYWORDS[$str] & Token::FLAG_KEYWORD_RESERVED)) { - return null; - } - - return static::$KEYWORDS[$str]; - } - - return null; - } - - // ------------------------------------------------------------------------- - // Operator. - - /** - * Checks if the given string is an operator. - * - * @param string $str string to be checked - * - * @return int|null the appropriate flag for the operator - */ - public static function isOperator($str) - { - if (! isset(static::$OPERATORS[$str])) { - return null; - } - - return static::$OPERATORS[$str]; - } - - // ------------------------------------------------------------------------- - // Whitespace. - - /** - * Checks if the given character is a whitespace. - * - * @param string $str string to be checked - * - * @return bool - */ - public static function isWhitespace($str) - { - return ($str === ' ') || ($str === "\r") || ($str === "\n") || ($str === "\t"); - } - - // ------------------------------------------------------------------------- - // Comment. - - /** - * Checks if the given string is the beginning of a whitespace. - * - * @param string $str string to be checked - * @param mixed $end - * - * @return int|null the appropriate flag for the comment type - */ - public static function isComment($str, $end = false) - { - $len = strlen($str); - if ($len === 0) { - return null; - } - if ($str[0] === '#') { - return Token::FLAG_COMMENT_BASH; - } elseif (($len > 1) && ($str[0] === '/') && ($str[1] === '*')) { - return ($len > 2) && ($str[2] === '!') ? - Token::FLAG_COMMENT_MYSQL_CMD : Token::FLAG_COMMENT_C; - } elseif (($len > 1) && ($str[0] === '*') && ($str[1] === '/')) { - return Token::FLAG_COMMENT_C; - } elseif (($len > 2) && ($str[0] === '-') - && ($str[1] === '-') && static::isWhitespace($str[2]) - ) { - return Token::FLAG_COMMENT_SQL; - } elseif (($len === 2) && $end && ($str[0] === '-') && ($str[1] === '-')) { - return Token::FLAG_COMMENT_SQL; - } - - return null; - } - - // ------------------------------------------------------------------------- - // Bool. - - /** - * Checks if the given string is a boolean value. - * This actually check only for `TRUE` and `FALSE` because `1` or `0` are - * actually numbers and are parsed by specific methods. - * - * @param string $str string to be checked - * - * @return bool - */ - public static function isBool($str) - { - $str = strtoupper($str); - - return ($str === 'TRUE') || ($str === 'FALSE'); - } - - // ------------------------------------------------------------------------- - // Number. - - /** - * Checks if the given character can be a part of a number. - * - * @param string $str string to be checked - * - * @return bool - */ - public static function isNumber($str) - { - return ($str >= '0') && ($str <= '9') || ($str === '.') - || ($str === '-') || ($str === '+') || ($str === 'e') || ($str === 'E'); - } - - // ------------------------------------------------------------------------- - // Symbol. - - /** - * Checks if the given character is the beginning of a symbol. A symbol - * can be either a variable or a field name. - * - * @param string $str string to be checked - * - * @return int|null the appropriate flag for the symbol type - */ - public static function isSymbol($str) - { - if (strlen($str) === 0) { - return null; - } - if ($str[0] === '@') { - return Token::FLAG_SYMBOL_VARIABLE; - } elseif ($str[0] === '`') { - return Token::FLAG_SYMBOL_BACKTICK; - } elseif ($str[0] === ':' || $str[0] === '?') { - return Token::FLAG_SYMBOL_PARAMETER; - } - - return null; - } - - // ------------------------------------------------------------------------- - // String. - - /** - * Checks if the given character is the beginning of a string. - * - * @param string $str string to be checked - * - * @return int|null the appropriate flag for the string type - */ - public static function isString($str) - { - if (strlen($str) === 0) { - return null; - } - if ($str[0] === '\'') { - return Token::FLAG_STRING_SINGLE_QUOTES; - } elseif ($str[0] === '"') { - return Token::FLAG_STRING_DOUBLE_QUOTES; - } - - return null; - } - - // ------------------------------------------------------------------------- - // Delimiter. - - /** - * Checks if the given character can be a separator for two lexeme. - * - * @param string $str string to be checked - * - * @return bool - */ - public static function isSeparator($str) - { - // NOTES: Only non alphanumeric ASCII characters may be separators. - // `~` is the last printable ASCII character. - return ($str <= '~') && ($str !== '_') - && (($str < '0') || ($str > '9')) - && (($str < 'a') || ($str > 'z')) - && (($str < 'A') || ($str > 'Z')); - } - - /** - * Loads the specified context. - * - * Contexts may be used by accessing the context directly. - * - * @param string $context name of the context or full class name that - * defines the context - * - * @throws LoaderException if the specified context doesn't exist. - */ - public static function load($context = '') - { - if (empty($context)) { - $context = self::$defaultContext; - } - if ($context[0] !== '\\') { - // Short context name (must be formatted into class name). - $context = self::$contextPrefix . $context; - } - if (! class_exists($context)) { - throw @new LoaderException( - 'Specified context ("' . $context . '") does not exist.', - $context - ); - } - self::$loadedContext = $context; - self::$KEYWORDS = $context::$KEYWORDS; - } - - /** - * Loads the context with the closest version to the one specified. - * - * The closest context is found by replacing last digits with zero until one - * is loaded successfully. - * - * @see Context::load() - * - * @param string $context name of the context or full class name that - * defines the context - * - * @return string|null The loaded context. `null` if no context was loaded. - */ - public static function loadClosest($context = '') - { - $length = strlen($context); - for ($i = $length; $i > 0;) { - try { - /* Trying to load the new context */ - static::load($context); - return $context; - } catch (LoaderException $e) { - /* Replace last two non zero digits by zeroes */ - do { - $i -= 2; - $part = substr($context, $i, 2); - /* No more numeric parts to strip */ - if (! is_numeric($part)) { - break 2; - } - } while (intval($part) === 0 && $i > 0); - $context = substr($context, 0, $i) . '00' . substr($context, $i + 2); - } - } - /* Fallback to loading at least matching engine */ - if (strncmp($context, 'MariaDb', 7) === 0) { - return static::loadClosest('MariaDb100300'); - } elseif (strncmp($context, 'MySql', 5) === 0) { - return static::loadClosest('MySql50700'); - } - return null; - } - - /** - * Sets the SQL mode. - * - * @param string $mode The list of modes. If empty, the mode is reset. - */ - public static function setMode($mode = '') - { - static::$MODE = 0; - if (empty($mode)) { - return; - } - $mode = explode(',', $mode); - foreach ($mode as $m) { - static::$MODE |= constant('static::SQL_MODE_' . $m); - } - } - - /** - * Escapes the symbol by adding surrounding backticks. - * - * @param array|string $str the string to be escaped - * @param string $quote quote to be used when escaping - * - * @return string|array - */ - public static function escape($str, $quote = '`') - { - if (is_array($str)) { - foreach ($str as $key => $value) { - $str[$key] = static::escape($value); - } - - return $str; - } - - if ((static::$MODE & self::SQL_MODE_NO_ENCLOSING_QUOTES) - && (! static::isKeyword($str, true)) - ) { - return $str; - } - - if (static::$MODE & self::SQL_MODE_ANSI_QUOTES) { - $quote = '"'; - } - - return $quote . str_replace($quote, $quote . $quote, $str) . $quote; - } -} - -// Initializing the default context. -Context::load(); diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMariaDb100000.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMariaDb100000.php deleted file mode 100644 index b6646bb..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMariaDb100000.php +++ /dev/null @@ -1,312 +0,0 @@ - 1, 'DO' => 1, 'IO' => 1, 'NO' => 1, 'XA' => 1, - 'ANY' => 1, 'CPU' => 1, 'END' => 1, 'IPC' => 1, 'NDB' => 1, 'NEW' => 1, - 'ONE' => 1, 'ROW' => 1, - 'BOOL' => 1, 'BYTE' => 1, 'CODE' => 1, 'CUBE' => 1, 'DATA' => 1, 'DISK' => 1, - 'ENDS' => 1, 'FAST' => 1, 'FILE' => 1, 'FULL' => 1, 'HASH' => 1, 'HELP' => 1, - 'HOST' => 1, 'LAST' => 1, 'LESS' => 1, 'LIST' => 1, 'LOGS' => 1, 'MODE' => 1, - 'NAME' => 1, 'NEXT' => 1, 'NONE' => 1, 'OPEN' => 1, 'PAGE' => 1, 'PORT' => 1, - 'PREV' => 1, 'ROWS' => 1, 'SLOW' => 1, 'SOME' => 1, 'STOP' => 1, 'THAN' => 1, - 'TYPE' => 1, 'VIEW' => 1, 'WAIT' => 1, 'WORK' => 1, 'X509' => 1, - 'AFTER' => 1, 'BEGIN' => 1, 'BLOCK' => 1, 'BTREE' => 1, 'CACHE' => 1, - 'CHAIN' => 1, 'CLOSE' => 1, 'ERROR' => 1, 'EVENT' => 1, 'EVERY' => 1, - 'FIRST' => 1, 'FIXED' => 1, 'FLUSH' => 1, 'FOUND' => 1, 'HOSTS' => 1, - 'LEVEL' => 1, 'LOCAL' => 1, 'LOCKS' => 1, 'MERGE' => 1, 'MUTEX' => 1, - 'NAMES' => 1, 'NCHAR' => 1, 'OWNER' => 1, 'PHASE' => 1, 'PROXY' => 1, - 'QUERY' => 1, 'QUICK' => 1, 'RELAY' => 1, 'RESET' => 1, 'RTREE' => 1, - 'SHARE' => 1, 'SLAVE' => 1, 'START' => 1, 'SUPER' => 1, 'SWAPS' => 1, - 'TYPES' => 1, 'UNTIL' => 1, 'VALUE' => 1, - 'ACTION' => 1, 'BACKUP' => 1, 'BINLOG' => 1, 'CIPHER' => 1, 'CLIENT' => 1, - 'COMMIT' => 1, 'ENABLE' => 1, 'ENGINE' => 1, 'ERRORS' => 1, 'ESCAPE' => 1, - 'EVENTS' => 1, 'FAULTS' => 1, 'FIELDS' => 1, 'GLOBAL' => 1, 'GRANTS' => 1, - 'IMPORT' => 1, 'INNODB' => 1, 'ISSUER' => 1, 'LEAVES' => 1, 'MASTER' => 1, - 'MEDIUM' => 1, 'MEMORY' => 1, 'MODIFY' => 1, 'OFFSET' => 1, 'PARSER' => 1, - 'PLUGIN' => 1, 'RELOAD' => 1, 'REMOVE' => 1, 'REPAIR' => 1, 'RESUME' => 1, - 'ROLLUP' => 1, 'SERVER' => 1, 'SIGNED' => 1, 'SIMPLE' => 1, 'SOCKET' => 1, - 'SONAME' => 1, 'SOUNDS' => 1, 'SOURCE' => 1, 'STARTS' => 1, 'STATUS' => 1, - 'STRING' => 1, 'TABLES' => 1, - 'AUTHORS' => 1, 'CHANGED' => 1, 'COLUMNS' => 1, 'COMMENT' => 1, 'COMPACT' => 1, - 'CONTEXT' => 1, 'DEFINER' => 1, 'DISABLE' => 1, 'DISCARD' => 1, 'DYNAMIC' => 1, - 'ENGINES' => 1, 'EXECUTE' => 1, 'GENERAL' => 1, 'HANDLER' => 1, 'INDEXES' => 1, - 'INSTALL' => 1, 'INVOKER' => 1, 'LOGFILE' => 1, 'MIGRATE' => 1, 'NO_WAIT' => 1, - 'OPTIONS' => 1, 'PARTIAL' => 1, 'PLUGINS' => 1, 'PREPARE' => 1, 'PROFILE' => 1, - 'REBUILD' => 1, 'RECOVER' => 1, 'RESTORE' => 1, 'RETURNS' => 1, 'ROUTINE' => 1, - 'SESSION' => 1, 'STORAGE' => 1, 'SUBJECT' => 1, 'SUSPEND' => 1, 'UNICODE' => 1, - 'UNKNOWN' => 1, 'UPGRADE' => 1, 'USE_FRM' => 1, 'VIRTUAL' => 1, 'WRAPPER' => 1, - 'CASCADED' => 1, 'CHECKSUM' => 1, 'DATAFILE' => 1, 'DUMPFILE' => 1, - 'EXTENDED' => 1, 'FUNCTION' => 1, 'INNOBASE' => 1, 'LANGUAGE' => 1, - 'MAX_ROWS' => 1, 'MAX_SIZE' => 1, 'MIN_ROWS' => 1, 'NATIONAL' => 1, - 'NVARCHAR' => 1, 'ONE_SHOT' => 1, 'PRESERVE' => 1, 'PROFILES' => 1, - 'REDOFILE' => 1, 'RELAYLOG' => 1, 'ROLLBACK' => 1, 'SCHEDULE' => 1, - 'SECURITY' => 1, 'SHUTDOWN' => 1, 'SNAPSHOT' => 1, 'SWITCHES' => 1, - 'TRIGGERS' => 1, 'UNDOFILE' => 1, 'WARNINGS' => 1, - 'AGGREGATE' => 1, 'ALGORITHM' => 1, 'COMMITTED' => 1, 'DIRECTORY' => 1, - 'DUPLICATE' => 1, 'EXPANSION' => 1, 'IO_THREAD' => 1, 'ISOLATION' => 1, - 'NODEGROUP' => 1, 'PACK_KEYS' => 1, 'READ_ONLY' => 1, 'REDUNDANT' => 1, - 'SAVEPOINT' => 1, 'SQL_CACHE' => 1, 'TEMPORARY' => 1, 'TEMPTABLE' => 1, - 'UNDEFINED' => 1, 'UNINSTALL' => 1, 'VARIABLES' => 1, - 'COMPLETION' => 1, 'COMPRESSED' => 1, 'CONCURRENT' => 1, 'CONNECTION' => 1, - 'CONSISTENT' => 1, 'DEALLOCATE' => 1, 'IDENTIFIED' => 1, 'MASTER_SSL' => 1, - 'NDBCLUSTER' => 1, 'PARTITIONS' => 1, 'PERSISTENT' => 1, 'PRIVILEGES' => 1, - 'REORGANIZE' => 1, 'REPEATABLE' => 1, 'ROW_FORMAT' => 1, 'SQL_THREAD' => 1, - 'TABLESPACE' => 1, 'TABLE_NAME' => 1, - 'COLUMN_NAME' => 1, 'CURSOR_NAME' => 1, 'EXTENT_SIZE' => 1, 'FRAC_SECOND' => 1, - 'MASTER_HOST' => 1, 'MASTER_PORT' => 1, 'MASTER_USER' => 1, 'MYSQL_ERRNO' => 1, - 'PROCESSLIST' => 1, 'REPLICATION' => 1, 'SCHEMA_NAME' => 1, 'SQL_TSI_DAY' => 1, - 'TRANSACTION' => 1, 'UNCOMMITTED' => 1, - 'CATALOG_NAME' => 1, 'CLASS_ORIGIN' => 1, 'CONTRIBUTORS' => 1, - 'DES_KEY_FILE' => 1, 'INITIAL_SIZE' => 1, 'MESSAGE_TEXT' => 1, - 'PARTITIONING' => 1, 'RELAY_THREAD' => 1, 'SERIALIZABLE' => 1, - 'SQL_NO_CACHE' => 1, 'SQL_TSI_HOUR' => 1, 'SQL_TSI_WEEK' => 1, - 'SQL_TSI_YEAR' => 1, 'SUBPARTITION' => 1, - 'INSERT_METHOD' => 1, 'MASTER_SSL_CA' => 1, 'RELAY_LOG_POS' => 1, - 'SQL_TSI_MONTH' => 1, 'SUBPARTITIONS' => 1, - 'AUTO_INCREMENT' => 1, 'AVG_ROW_LENGTH' => 1, 'KEY_BLOCK_SIZE' => 1, - 'MASTER_LOG_POS' => 1, 'MASTER_SSL_KEY' => 1, 'RELAY_LOG_FILE' => 1, - 'SQL_TSI_MINUTE' => 1, 'SQL_TSI_SECOND' => 1, 'TABLE_CHECKSUM' => 1, - 'USER_RESOURCES' => 1, - 'AUTOEXTEND_SIZE' => 1, 'CONSTRAINT_NAME' => 1, 'DELAY_KEY_WRITE' => 1, - 'MASTER_LOG_FILE' => 1, 'MASTER_PASSWORD' => 1, 'MASTER_SSL_CERT' => 1, - 'SQL_TSI_QUARTER' => 1, 'SUBCLASS_ORIGIN' => 1, - 'MASTER_SERVER_ID' => 1, 'REDO_BUFFER_SIZE' => 1, 'UNDO_BUFFER_SIZE' => 1, - 'CONSTRAINT_SCHEMA' => 1, 'IGNORE_SERVER_IDS' => 1, 'MASTER_SSL_CAPATH' => 1, - 'MASTER_SSL_CIPHER' => 1, 'SQL_BUFFER_RESULT' => 1, - 'CONSTRAINT_CATALOG' => 1, - 'SQL_TSI_FRAC_SECOND' => 1, - 'MASTER_CONNECT_RETRY' => 1, 'MAX_QUERIES_PER_HOUR' => 1, - 'MAX_UPDATES_PER_HOUR' => 1, 'MAX_USER_CONNECTIONS' => 1, - 'MASTER_HEARTBEAT_PERIOD' => 1, - 'MAX_CONNECTIONS_PER_HOUR' => 1, - - 'AS' => 3, 'BY' => 3, 'IS' => 3, 'ON' => 3, 'OR' => 3, 'TO' => 3, - 'ADD' => 3, 'ALL' => 3, 'AND' => 3, 'ASC' => 3, 'DEC' => 3, 'DIV' => 3, - 'FOR' => 3, 'NOT' => 3, 'OUT' => 3, 'SQL' => 3, 'SSL' => 3, 'USE' => 3, - 'XOR' => 3, - 'BOTH' => 3, 'CALL' => 3, 'CASE' => 3, 'DESC' => 3, 'DROP' => 3, 'DUAL' => 3, - 'EACH' => 3, 'ELSE' => 3, 'EXIT' => 3, 'FROM' => 3, 'INT1' => 3, 'INT2' => 3, - 'INT3' => 3, 'INT4' => 3, 'INT8' => 3, 'INTO' => 3, 'JOIN' => 3, 'KEYS' => 3, - 'KILL' => 3, 'LIKE' => 3, 'LOAD' => 3, 'LOCK' => 3, 'LONG' => 3, 'LOOP' => 3, - 'NULL' => 3, 'READ' => 3, 'SHOW' => 3, 'THEN' => 3, 'TRUE' => 3, 'UNDO' => 3, - 'WHEN' => 3, 'WITH' => 3, - 'ALTER' => 3, 'CHECK' => 3, 'CROSS' => 3, 'FALSE' => 3, 'FETCH' => 3, - 'FORCE' => 3, 'GRANT' => 3, 'GROUP' => 3, 'INNER' => 3, 'INOUT' => 3, - 'LEAVE' => 3, 'LIMIT' => 3, 'LINES' => 3, 'ORDER' => 3, 'OUTER' => 3, - 'PURGE' => 3, 'RANGE' => 3, 'READS' => 3, 'RLIKE' => 3, 'TABLE' => 3, - 'UNION' => 3, 'USAGE' => 3, 'USING' => 3, 'WHERE' => 3, 'WHILE' => 3, - 'WRITE' => 3, - 'BEFORE' => 3, 'CHANGE' => 3, 'COLUMN' => 3, 'CREATE' => 3, 'CURSOR' => 3, - 'DELETE' => 3, 'ELSEIF' => 3, 'EXISTS' => 3, 'FLOAT4' => 3, 'FLOAT8' => 3, - 'HAVING' => 3, 'IGNORE' => 3, 'INFILE' => 3, 'LINEAR' => 3, 'OPTION' => 3, - 'REGEXP' => 3, 'RENAME' => 3, 'RETURN' => 3, 'REVOKE' => 3, 'SELECT' => 3, - 'SIGNAL' => 3, 'UNLOCK' => 3, 'UPDATE' => 3, - 'ANALYZE' => 3, 'BETWEEN' => 3, 'CASCADE' => 3, 'COLLATE' => 3, 'DECLARE' => 3, - 'DELAYED' => 3, 'ESCAPED' => 3, 'EXPLAIN' => 3, 'FOREIGN' => 3, 'ITERATE' => 3, - 'LEADING' => 3, 'NATURAL' => 3, 'OUTFILE' => 3, 'PRIMARY' => 3, 'RELEASE' => 3, - 'REQUIRE' => 3, 'SCHEMAS' => 3, 'TRIGGER' => 3, 'VARYING' => 3, - 'CONTINUE' => 3, 'DAY_HOUR' => 3, 'DESCRIBE' => 3, 'DISTINCT' => 3, - 'ENCLOSED' => 3, 'MAXVALUE' => 3, 'MODIFIES' => 3, 'OPTIMIZE' => 3, - 'RESIGNAL' => 3, 'RESTRICT' => 3, 'SPECIFIC' => 3, 'SQLSTATE' => 3, - 'STARTING' => 3, 'TRAILING' => 3, 'UNSIGNED' => 3, 'ZEROFILL' => 3, - 'CONDITION' => 3, 'DATABASES' => 3, 'MIDDLEINT' => 3, 'PARTITION' => 3, - 'PRECISION' => 3, 'PROCEDURE' => 3, 'SENSITIVE' => 3, 'SEPARATOR' => 3, - 'ACCESSIBLE' => 3, 'ASENSITIVE' => 3, 'CONSTRAINT' => 3, 'DAY_MINUTE' => 3, - 'DAY_SECOND' => 3, 'OPTIONALLY' => 3, 'READ_WRITE' => 3, 'REFERENCES' => 3, - 'SQLWARNING' => 3, 'TERMINATED' => 3, 'YEAR_MONTH' => 3, - 'DISTINCTROW' => 3, 'HOUR_MINUTE' => 3, 'HOUR_SECOND' => 3, 'INSENSITIVE' => 3, - 'LOW_PRIORITY' => 3, 'SQLEXCEPTION' => 3, 'VARCHARACTER' => 3, - 'DETERMINISTIC' => 3, 'HIGH_PRIORITY' => 3, 'MINUTE_SECOND' => 3, - 'STRAIGHT_JOIN' => 3, - 'SQL_BIG_RESULT' => 3, - 'DAY_MICROSECOND' => 3, - 'HOUR_MICROSECOND' => 3, 'SQL_SMALL_RESULT' => 3, - 'MINUTE_MICROSECOND' => 3, 'NO_WRITE_TO_BINLOG' => 3, 'SECOND_MICROSECOND' => 3, - 'SQL_CALC_FOUND_ROWS' => 3, - 'MASTER_SSL_VERIFY_SERVER_CERT' => 3, - - 'GROUP BY' => 7, 'NOT NULL' => 7, 'ORDER BY' => 7, 'SET NULL' => 7, - 'AND CHAIN' => 7, 'FULL JOIN' => 7, 'IF EXISTS' => 7, 'LEFT JOIN' => 7, - 'LESS THAN' => 7, 'LOAD DATA' => 7, 'NO ACTION' => 7, 'ON DELETE' => 7, - 'ON UPDATE' => 7, 'UNION ALL' => 7, - 'CROSS JOIN' => 7, 'ESCAPED BY' => 7, 'FOR UPDATE' => 7, 'INNER JOIN' => 7, - 'LINEAR KEY' => 7, 'NO RELEASE' => 7, 'OR REPLACE' => 7, 'RIGHT JOIN' => 7, - 'ENCLOSED BY' => 7, 'LINEAR HASH' => 7, 'STARTING BY' => 7, - 'AND NO CHAIN' => 7, 'FOR EACH ROW' => 7, 'NATURAL JOIN' => 7, - 'PARTITION BY' => 7, 'SET PASSWORD' => 7, 'SQL SECURITY' => 7, - 'CHARACTER SET' => 7, 'IF NOT EXISTS' => 7, 'TERMINATED BY' => 7, - 'DATA DIRECTORY' => 7, 'UNION DISTINCT' => 7, - 'DEFAULT CHARSET' => 7, 'DEFAULT COLLATE' => 7, 'FULL OUTER JOIN' => 7, - 'INDEX DIRECTORY' => 7, 'LEFT OUTER JOIN' => 7, 'SUBPARTITION BY' => 7, - 'GENERATED ALWAYS' => 7, 'RIGHT OUTER JOIN' => 7, - 'NATURAL LEFT JOIN' => 7, 'START TRANSACTION' => 7, - 'LOCK IN SHARE MODE' => 7, 'NATURAL RIGHT JOIN' => 7, 'SELECT TRANSACTION' => 7, - 'DEFAULT CHARACTER SET' => 7, - 'NATURAL LEFT OUTER JOIN' => 7, - 'NATURAL RIGHT OUTER JOIN' => 7, 'WITH CONSISTENT SNAPSHOT' => 7, - - 'BIT' => 9, 'XML' => 9, - 'ENUM' => 9, 'JSON' => 9, 'TEXT' => 9, - 'ARRAY' => 9, - 'SERIAL' => 9, - 'BOOLEAN' => 9, - 'DATETIME' => 9, 'GEOMETRY' => 9, 'MULTISET' => 9, - 'MULTILINEPOINT' => 9, - 'MULTILINEPOLYGON' => 9, - - 'INT' => 11, 'SET' => 11, - 'BLOB' => 11, 'REAL' => 11, - 'FLOAT' => 11, - 'BIGINT' => 11, 'DOUBLE' => 11, - 'DECIMAL' => 11, 'INTEGER' => 11, 'NUMERIC' => 11, 'TINYINT' => 11, 'VARCHAR' => 11, - 'LONGBLOB' => 11, 'LONGTEXT' => 11, 'SMALLINT' => 11, 'TINYBLOB' => 11, - 'TINYTEXT' => 11, - 'CHARACTER' => 11, 'MEDIUMINT' => 11, 'VARBINARY' => 11, - 'MEDIUMBLOB' => 11, 'MEDIUMTEXT' => 11, - - 'BINARY VARYING' => 15, - - 'KEY' => 19, - 'INDEX' => 19, - 'UNIQUE' => 19, - 'SPATIAL' => 19, - 'FULLTEXT' => 19, - - 'INDEX KEY' => 23, - 'UNIQUE KEY' => 23, - 'FOREIGN KEY' => 23, 'PRIMARY KEY' => 23, 'SPATIAL KEY' => 23, - 'FULLTEXT KEY' => 23, 'UNIQUE INDEX' => 23, - 'SPATIAL INDEX' => 23, - 'FULLTEXT INDEX' => 23, - - 'X' => 33, 'Y' => 33, - 'LN' => 33, 'PI' => 33, - 'ABS' => 33, 'AVG' => 33, 'BIN' => 33, 'COS' => 33, 'COT' => 33, 'DAY' => 33, - 'ELT' => 33, 'EXP' => 33, 'HEX' => 33, 'LOG' => 33, 'MAX' => 33, 'MD5' => 33, - 'MID' => 33, 'MIN' => 33, 'NOW' => 33, 'OCT' => 33, 'ORD' => 33, 'POW' => 33, - 'SHA' => 33, 'SIN' => 33, 'STD' => 33, 'SUM' => 33, 'TAN' => 33, - 'ACOS' => 33, 'AREA' => 33, 'ASIN' => 33, 'ATAN' => 33, 'CAST' => 33, 'CEIL' => 33, - 'CONV' => 33, 'HOUR' => 33, 'LOG2' => 33, 'LPAD' => 33, 'RAND' => 33, 'RPAD' => 33, - 'SHA1' => 33, 'SHA2' => 33, 'SIGN' => 33, 'SQRT' => 33, 'SRID' => 33, 'TRIM' => 33, - 'USER' => 33, 'UUID' => 33, 'WEEK' => 33, - 'ASCII' => 33, 'ASWKB' => 33, 'ASWKT' => 33, 'ATAN2' => 33, 'COUNT' => 33, - 'CRC32' => 33, 'FIELD' => 33, 'FLOOR' => 33, 'INSTR' => 33, 'LCASE' => 33, - 'LEAST' => 33, 'LOG10' => 33, 'LOWER' => 33, 'LTRIM' => 33, 'MONTH' => 33, - 'POWER' => 33, 'QUOTE' => 33, 'ROUND' => 33, 'RTRIM' => 33, 'SLEEP' => 33, - 'SPACE' => 33, 'UCASE' => 33, 'UNHEX' => 33, 'UPPER' => 33, - 'ASTEXT' => 33, 'BIT_OR' => 33, 'CONCAT' => 33, 'DECODE' => 33, 'ENCODE' => 33, - 'EQUALS' => 33, 'FORMAT' => 33, 'IFNULL' => 33, 'ISNULL' => 33, 'LENGTH' => 33, - 'LOCATE' => 33, 'MINUTE' => 33, 'NULLIF' => 33, 'POINTN' => 33, 'SECOND' => 33, - 'STDDEV' => 33, 'STRCMP' => 33, 'SUBSTR' => 33, 'WITHIN' => 33, - 'ADDDATE' => 33, 'ADDTIME' => 33, 'AGAINST' => 33, 'BIT_AND' => 33, 'BIT_XOR' => 33, - 'CEILING' => 33, 'CHARSET' => 33, 'CROSSES' => 33, 'CURDATE' => 33, 'CURTIME' => 33, - 'DAYNAME' => 33, 'DEGREES' => 33, 'ENCRYPT' => 33, 'EXTRACT' => 33, 'GLENGTH' => 33, - 'ISEMPTY' => 33, 'QUARTER' => 33, 'RADIANS' => 33, 'REVERSE' => 33, 'SOUNDEX' => 33, - 'SUBDATE' => 33, 'SUBTIME' => 33, 'SYSDATE' => 33, 'TOUCHES' => 33, 'TO_DAYS' => 33, - 'VAR_POP' => 33, 'VERSION' => 33, 'WEEKDAY' => 33, - 'ASBINARY' => 33, 'CENTROID' => 33, 'COALESCE' => 33, 'COMPRESS' => 33, - 'CONTAINS' => 33, 'DATEDIFF' => 33, 'DATE_ADD' => 33, 'DATE_SUB' => 33, - 'DISJOINT' => 33, 'ENDPOINT' => 33, 'ENVELOPE' => 33, 'GET_LOCK' => 33, - 'GREATEST' => 33, 'ISCLOSED' => 33, 'ISSIMPLE' => 33, 'MAKEDATE' => 33, - 'MAKETIME' => 33, 'MAKE_SET' => 33, 'MBREQUAL' => 33, 'OVERLAPS' => 33, - 'PASSWORD' => 33, 'POSITION' => 33, 'TIMEDIFF' => 33, 'TRUNCATE' => 33, - 'VARIANCE' => 33, 'VAR_SAMP' => 33, 'YEARWEEK' => 33, - 'BENCHMARK' => 33, 'BIT_COUNT' => 33, 'COLLATION' => 33, 'CONCAT_WS' => 33, - 'DAYOFWEEK' => 33, 'DAYOFYEAR' => 33, 'DIMENSION' => 33, 'FROM_DAYS' => 33, - 'GEOMETRYN' => 33, 'INET_ATON' => 33, 'INET_NTOA' => 33, 'LOAD_FILE' => 33, - 'MBRWITHIN' => 33, 'MONTHNAME' => 33, 'NUMPOINTS' => 33, 'ROW_COUNT' => 33, - 'SUBSTRING' => 33, 'UPDATEXML' => 33, - 'BIT_LENGTH' => 33, 'CONVERT_TZ' => 33, 'DAYOFMONTH' => 33, 'EXPORT_SET' => 33, - 'FOUND_ROWS' => 33, 'GET_FORMAT' => 33, 'INTERSECTS' => 33, 'MBRTOUCHES' => 33, - 'MULTIPOINT' => 33, 'NAME_CONST' => 33, 'PERIOD_ADD' => 33, 'STARTPOINT' => 33, - 'STDDEV_POP' => 33, 'TO_SECONDS' => 33, 'UNCOMPRESS' => 33, 'UUID_SHORT' => 33, - 'WEEKOFYEAR' => 33, - 'AES_DECRYPT' => 33, 'AES_ENCRYPT' => 33, 'CHAR_LENGTH' => 33, 'DATE_FORMAT' => 33, - 'DES_DECRYPT' => 33, 'DES_ENCRYPT' => 33, 'FIND_IN_SET' => 33, 'GEOMFROMWKB' => 33, - 'LINEFROMWKB' => 33, 'MBRCONTAINS' => 33, 'MBRDISJOINT' => 33, 'MBROVERLAPS' => 33, - 'MICROSECOND' => 33, 'PERIOD_DIFF' => 33, 'POLYFROMWKB' => 33, 'SEC_TO_TIME' => 33, - 'STDDEV_SAMP' => 33, 'STR_TO_DATE' => 33, 'SYSTEM_USER' => 33, 'TIME_FORMAT' => 33, - 'TIME_TO_SEC' => 33, - 'COERCIBILITY' => 33, 'EXTERIORRING' => 33, 'EXTRACTVALUE' => 33, - 'GEOMETRYTYPE' => 33, 'GEOMFROMTEXT' => 33, 'GROUP_CONCAT' => 33, - 'IS_FREE_LOCK' => 33, 'IS_USED_LOCK' => 33, 'LINEFROMTEXT' => 33, - 'MLINEFROMWKB' => 33, 'MPOLYFROMWKB' => 33, 'MULTIPOLYGON' => 33, - 'OCTET_LENGTH' => 33, 'OLD_PASSWORD' => 33, 'POINTFROMWKB' => 33, - 'POLYFROMTEXT' => 33, 'RELEASE_LOCK' => 33, 'SESSION_USER' => 33, - 'TIMESTAMPADD' => 33, - 'CONNECTION_ID' => 33, 'FROM_UNIXTIME' => 33, 'INTERIORRINGN' => 33, - 'MBRINTERSECTS' => 33, 'MLINEFROMTEXT' => 33, 'MPOINTFROMWKB' => 33, - 'MPOLYFROMTEXT' => 33, 'NUMGEOMETRIES' => 33, 'POINTFROMTEXT' => 33, - 'TIMESTAMPDIFF' => 33, - 'LAST_INSERT_ID' => 33, 'MPOINTFROMTEXT' => 33, 'POLYGONFROMWKB' => 33, - 'UNIX_TIMESTAMP' => 33, - 'GEOMCOLLFROMWKB' => 33, 'MASTER_POS_WAIT' => 33, 'POLYGONFROMTEXT' => 33, - 'SUBSTRING_INDEX' => 33, - 'CHARACTER_LENGTH' => 33, 'GEOMCOLLFROMTEXT' => 33, 'GEOMETRYFROMTEXT' => 33, - 'NUMINTERIORRINGS' => 33, - 'LINESTRINGFROMWKB' => 33, 'MULTIPOINTFROMWKB' => 33, - 'MULTIPOINTFROMTEXT' => 33, - 'MULTIPOLYGONFROMWKB' => 33, 'UNCOMPRESSED_LENGTH' => 33, - 'MULTIPOLYGONFROMTEXT' => 33, - 'MULTILINESTRINGFROMWKB' => 33, - 'MULTILINESTRINGFROMTEXT' => 33, - 'GEOMETRYCOLLECTIONFROMWKB' => 33, - 'GEOMETRYCOLLECTIONFROMTEXT' => 33, - - 'IF' => 35, 'IN' => 35, - 'MOD' => 35, - 'LEFT' => 35, - 'MATCH' => 35, 'RIGHT' => 35, - 'INSERT' => 35, 'REPEAT' => 35, 'SCHEMA' => 35, 'VALUES' => 35, - 'CONVERT' => 35, 'DEFAULT' => 35, 'REPLACE' => 35, - 'DATABASE' => 35, 'UTC_DATE' => 35, 'UTC_TIME' => 35, - 'LOCALTIME' => 35, - 'CURRENT_DATE' => 35, 'CURRENT_TIME' => 35, 'CURRENT_USER' => 35, - 'UTC_TIMESTAMP' => 35, - 'LOCALTIMESTAMP' => 35, - 'CURRENT_TIMESTAMP' => 35, - - 'NOT IN' => 39, - - 'DATE' => 41, 'TIME' => 41, 'YEAR' => 41, - 'POINT' => 41, - 'POLYGON' => 41, - 'TIMESTAMP' => 41, - 'LINESTRING' => 41, - 'MULTILINESTRING' => 41, - 'GEOMETRYCOLLECTION' => 41, - - 'CHAR' => 43, - 'BINARY' => 43, - 'INTERVAL' => 43, - ]; -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMariaDb100100.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMariaDb100100.php deleted file mode 100644 index 9eca83a..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMariaDb100100.php +++ /dev/null @@ -1,361 +0,0 @@ - 1, 'DO' => 1, 'IO' => 1, 'NO' => 1, 'XA' => 1, - 'ANY' => 1, 'CPU' => 1, 'END' => 1, 'IPC' => 1, 'NDB' => 1, 'NEW' => 1, - 'ONE' => 1, 'ROW' => 1, 'XID' => 1, - 'BOOL' => 1, 'BYTE' => 1, 'CODE' => 1, 'CUBE' => 1, 'DATA' => 1, 'DISK' => 1, - 'ENDS' => 1, 'FAST' => 1, 'FILE' => 1, 'FULL' => 1, 'HASH' => 1, 'HELP' => 1, - 'HOST' => 1, 'LAST' => 1, 'LESS' => 1, 'LIST' => 1, 'LOGS' => 1, 'MODE' => 1, - 'NAME' => 1, 'NEXT' => 1, 'NONE' => 1, 'ONLY' => 1, 'OPEN' => 1, 'PAGE' => 1, - 'PORT' => 1, 'PREV' => 1, 'ROWS' => 1, 'SLOW' => 1, 'SOME' => 1, 'STOP' => 1, - 'THAN' => 1, 'TYPE' => 1, 'VIEW' => 1, 'WAIT' => 1, 'WORK' => 1, 'X509' => 1, - 'AFTER' => 1, 'BEGIN' => 1, 'BLOCK' => 1, 'BTREE' => 1, 'CACHE' => 1, - 'CHAIN' => 1, 'CLOSE' => 1, 'ERROR' => 1, 'EVENT' => 1, 'EVERY' => 1, - 'FIRST' => 1, 'FIXED' => 1, 'FLUSH' => 1, 'FOUND' => 1, 'HOSTS' => 1, - 'LEVEL' => 1, 'LOCAL' => 1, 'LOCKS' => 1, 'MERGE' => 1, 'MUTEX' => 1, - 'NAMES' => 1, 'NCHAR' => 1, 'NEVER' => 1, 'OWNER' => 1, 'PHASE' => 1, - 'PROXY' => 1, 'QUERY' => 1, 'QUICK' => 1, 'RELAY' => 1, 'RESET' => 1, - 'RTREE' => 1, 'SHARE' => 1, 'SLAVE' => 1, 'START' => 1, 'SUPER' => 1, - 'SWAPS' => 1, 'TYPES' => 1, 'UNTIL' => 1, 'VALUE' => 1, - 'ACTION' => 1, 'ALWAYS' => 1, 'BACKUP' => 1, 'BINLOG' => 1, 'CIPHER' => 1, - 'CLIENT' => 1, 'COMMIT' => 1, 'ENABLE' => 1, 'ENGINE' => 1, 'ERRORS' => 1, - 'ESCAPE' => 1, 'EVENTS' => 1, 'EXPIRE' => 1, 'EXPORT' => 1, 'FAULTS' => 1, - 'FIELDS' => 1, 'FILTER' => 1, 'GLOBAL' => 1, 'GRANTS' => 1, 'IMPORT' => 1, - 'ISSUER' => 1, 'LEAVES' => 1, 'MASTER' => 1, 'MEDIUM' => 1, 'MEMORY' => 1, - 'MODIFY' => 1, 'NUMBER' => 1, 'OFFSET' => 1, 'PARSER' => 1, 'PLUGIN' => 1, - 'RELOAD' => 1, 'REMOVE' => 1, 'REPAIR' => 1, 'RESUME' => 1, 'ROLLUP' => 1, - 'SERVER' => 1, 'SIGNED' => 1, 'SIMPLE' => 1, 'SOCKET' => 1, 'SONAME' => 1, - 'SOUNDS' => 1, 'SOURCE' => 1, 'STARTS' => 1, 'STATUS' => 1, 'STRING' => 1, - 'TABLES' => 1, - 'ACCOUNT' => 1, 'ANALYSE' => 1, 'CHANGED' => 1, 'CHANNEL' => 1, 'COLUMNS' => 1, - 'COMMENT' => 1, 'COMPACT' => 1, 'CONTEXT' => 1, 'CURRENT' => 1, 'DEFINER' => 1, - 'DISABLE' => 1, 'DISCARD' => 1, 'DYNAMIC' => 1, 'ENGINES' => 1, 'EXECUTE' => 1, - 'FOLLOWS' => 1, 'GENERAL' => 1, 'HANDLER' => 1, 'INDEXES' => 1, 'INSTALL' => 1, - 'INVOKER' => 1, 'LOGFILE' => 1, 'MIGRATE' => 1, 'NO_WAIT' => 1, 'OPTIONS' => 1, - 'PARTIAL' => 1, 'PLUGINS' => 1, 'PREPARE' => 1, 'PROFILE' => 1, 'REBUILD' => 1, - 'RECOVER' => 1, 'RESTORE' => 1, 'RETURNS' => 1, 'ROUTINE' => 1, 'SESSION' => 1, - 'STACKED' => 1, 'STORAGE' => 1, 'SUBJECT' => 1, 'SUSPEND' => 1, 'UNICODE' => 1, - 'UNKNOWN' => 1, 'UPGRADE' => 1, 'USE_FRM' => 1, 'WITHOUT' => 1, 'WRAPPER' => 1, - 'CASCADED' => 1, 'CHECKSUM' => 1, 'DATAFILE' => 1, 'DUMPFILE' => 1, - 'EXCHANGE' => 1, 'EXTENDED' => 1, 'FUNCTION' => 1, 'LANGUAGE' => 1, - 'MAX_ROWS' => 1, 'MAX_SIZE' => 1, 'MIN_ROWS' => 1, 'NATIONAL' => 1, - 'NVARCHAR' => 1, 'PRECEDES' => 1, 'PRESERVE' => 1, 'PROFILES' => 1, - 'REDOFILE' => 1, 'RELAYLOG' => 1, 'ROLLBACK' => 1, 'SCHEDULE' => 1, - 'SECURITY' => 1, 'SHUTDOWN' => 1, 'SNAPSHOT' => 1, 'SWITCHES' => 1, - 'TRIGGERS' => 1, 'UNDOFILE' => 1, 'WARNINGS' => 1, - 'AGGREGATE' => 1, 'ALGORITHM' => 1, 'COMMITTED' => 1, 'DIRECTORY' => 1, - 'DUPLICATE' => 1, 'EXPANSION' => 1, 'IO_THREAD' => 1, 'ISOLATION' => 1, - 'NODEGROUP' => 1, 'PACK_KEYS' => 1, 'READ_ONLY' => 1, 'REDUNDANT' => 1, - 'SAVEPOINT' => 1, 'SQL_CACHE' => 1, 'TEMPORARY' => 1, 'TEMPTABLE' => 1, - 'UNDEFINED' => 1, 'UNINSTALL' => 1, 'VARIABLES' => 1, - 'COMPLETION' => 1, 'COMPRESSED' => 1, 'CONCURRENT' => 1, 'CONNECTION' => 1, - 'CONSISTENT' => 1, 'DEALLOCATE' => 1, 'IDENTIFIED' => 1, 'MASTER_SSL' => 1, - 'NDBCLUSTER' => 1, 'PARTITIONS' => 1, 'PERSISTENT' => 1, 'PLUGIN_DIR' => 1, - 'PRIVILEGES' => 1, 'REORGANIZE' => 1, 'REPEATABLE' => 1, 'ROW_FORMAT' => 1, - 'SQL_THREAD' => 1, 'TABLESPACE' => 1, 'TABLE_NAME' => 1, 'VALIDATION' => 1, - 'COLUMN_NAME' => 1, 'COMPRESSION' => 1, 'CURSOR_NAME' => 1, 'DIAGNOSTICS' => 1, - 'EXTENT_SIZE' => 1, 'MASTER_HOST' => 1, 'MASTER_PORT' => 1, 'MASTER_USER' => 1, - 'MYSQL_ERRNO' => 1, 'NONBLOCKING' => 1, 'PROCESSLIST' => 1, 'REPLICATION' => 1, - 'SCHEMA_NAME' => 1, 'SQL_TSI_DAY' => 1, 'TRANSACTION' => 1, 'UNCOMMITTED' => 1, - 'CATALOG_NAME' => 1, 'CLASS_ORIGIN' => 1, 'DEFAULT_AUTH' => 1, - 'DES_KEY_FILE' => 1, 'INITIAL_SIZE' => 1, 'MASTER_DELAY' => 1, - 'MESSAGE_TEXT' => 1, 'PARTITIONING' => 1, 'RELAY_THREAD' => 1, - 'SERIALIZABLE' => 1, 'SQL_NO_CACHE' => 1, 'SQL_TSI_HOUR' => 1, - 'SQL_TSI_WEEK' => 1, 'SQL_TSI_YEAR' => 1, 'SUBPARTITION' => 1, - 'COLUMN_FORMAT' => 1, 'INSERT_METHOD' => 1, 'MASTER_SSL_CA' => 1, - 'RELAY_LOG_POS' => 1, 'SQL_TSI_MONTH' => 1, 'SUBPARTITIONS' => 1, - 'AUTO_INCREMENT' => 1, 'AVG_ROW_LENGTH' => 1, 'KEY_BLOCK_SIZE' => 1, - 'MASTER_LOG_POS' => 1, 'MASTER_SSL_CRL' => 1, 'MASTER_SSL_KEY' => 1, - 'RELAY_LOG_FILE' => 1, 'SQL_TSI_MINUTE' => 1, 'SQL_TSI_SECOND' => 1, - 'TABLE_CHECKSUM' => 1, 'USER_RESOURCES' => 1, - 'AUTOEXTEND_SIZE' => 1, 'CONSTRAINT_NAME' => 1, 'DELAY_KEY_WRITE' => 1, - 'FILE_BLOCK_SIZE' => 1, 'MASTER_LOG_FILE' => 1, 'MASTER_PASSWORD' => 1, - 'MASTER_SSL_CERT' => 1, 'PARSE_GCOL_EXPR' => 1, 'REPLICATE_DO_DB' => 1, - 'SQL_AFTER_GTIDS' => 1, 'SQL_TSI_QUARTER' => 1, 'SUBCLASS_ORIGIN' => 1, - 'MASTER_SERVER_ID' => 1, 'REDO_BUFFER_SIZE' => 1, 'SQL_BEFORE_GTIDS' => 1, - 'STATS_PERSISTENT' => 1, 'UNDO_BUFFER_SIZE' => 1, - 'CONSTRAINT_SCHEMA' => 1, 'GROUP_REPLICATION' => 1, 'IGNORE_SERVER_IDS' => 1, - 'MASTER_SSL_CAPATH' => 1, 'MASTER_SSL_CIPHER' => 1, 'RETURNED_SQLSTATE' => 1, - 'SQL_BUFFER_RESULT' => 1, 'STATS_AUTO_RECALC' => 1, - 'CONSTRAINT_CATALOG' => 1, 'MASTER_RETRY_COUNT' => 1, 'MASTER_SSL_CRLPATH' => 1, - 'MAX_STATEMENT_TIME' => 1, 'REPLICATE_DO_TABLE' => 1, 'SQL_AFTER_MTS_GAPS' => 1, - 'STATS_SAMPLE_PAGES' => 1, - 'REPLICATE_IGNORE_DB' => 1, - 'MASTER_AUTO_POSITION' => 1, 'MASTER_CONNECT_RETRY' => 1, - 'MAX_QUERIES_PER_HOUR' => 1, 'MAX_UPDATES_PER_HOUR' => 1, - 'MAX_USER_CONNECTIONS' => 1, 'REPLICATE_REWRITE_DB' => 1, - 'REPLICATE_IGNORE_TABLE' => 1, - 'MASTER_HEARTBEAT_PERIOD' => 1, 'REPLICATE_WILD_DO_TABLE' => 1, - 'MAX_CONNECTIONS_PER_HOUR' => 1, - 'REPLICATE_WILD_IGNORE_TABLE' => 1, - - 'AS' => 3, 'BY' => 3, 'IS' => 3, 'ON' => 3, 'OR' => 3, 'TO' => 3, - 'ADD' => 3, 'ALL' => 3, 'AND' => 3, 'ASC' => 3, 'DEC' => 3, 'DIV' => 3, - 'FOR' => 3, 'GET' => 3, 'NOT' => 3, 'OUT' => 3, 'SQL' => 3, 'SSL' => 3, - 'USE' => 3, 'XOR' => 3, - 'BOTH' => 3, 'CALL' => 3, 'CASE' => 3, 'DESC' => 3, 'DROP' => 3, 'DUAL' => 3, - 'EACH' => 3, 'ELSE' => 3, 'EXIT' => 3, 'FROM' => 3, 'INT1' => 3, 'INT2' => 3, - 'INT3' => 3, 'INT4' => 3, 'INT8' => 3, 'INTO' => 3, 'JOIN' => 3, 'KEYS' => 3, - 'KILL' => 3, 'LIKE' => 3, 'LOAD' => 3, 'LOCK' => 3, 'LONG' => 3, 'LOOP' => 3, - 'NULL' => 3, 'READ' => 3, 'SHOW' => 3, 'THEN' => 3, 'TRUE' => 3, 'UNDO' => 3, - 'WHEN' => 3, 'WITH' => 3, - 'ALTER' => 3, 'CHECK' => 3, 'CROSS' => 3, 'FALSE' => 3, 'FETCH' => 3, - 'FORCE' => 3, 'GRANT' => 3, 'GROUP' => 3, 'INNER' => 3, 'INOUT' => 3, - 'LEAVE' => 3, 'LIMIT' => 3, 'LINES' => 3, 'ORDER' => 3, 'OUTER' => 3, - 'PURGE' => 3, 'RANGE' => 3, 'READS' => 3, 'RLIKE' => 3, 'TABLE' => 3, - 'UNION' => 3, 'USAGE' => 3, 'USING' => 3, 'WHERE' => 3, 'WHILE' => 3, - 'WRITE' => 3, - 'BEFORE' => 3, 'CHANGE' => 3, 'COLUMN' => 3, 'CREATE' => 3, 'CURSOR' => 3, - 'DELETE' => 3, 'ELSEIF' => 3, 'EXISTS' => 3, 'FLOAT4' => 3, 'FLOAT8' => 3, - 'HAVING' => 3, 'IGNORE' => 3, 'INFILE' => 3, 'LINEAR' => 3, 'OPTION' => 3, - 'REGEXP' => 3, 'RENAME' => 3, 'RETURN' => 3, 'REVOKE' => 3, 'SELECT' => 3, - 'SIGNAL' => 3, 'STORED' => 3, 'UNLOCK' => 3, 'UPDATE' => 3, - 'ANALYZE' => 3, 'BETWEEN' => 3, 'CASCADE' => 3, 'COLLATE' => 3, 'DECLARE' => 3, - 'DELAYED' => 3, 'ESCAPED' => 3, 'EXPLAIN' => 3, 'FOREIGN' => 3, 'ITERATE' => 3, - 'LEADING' => 3, 'NATURAL' => 3, 'OUTFILE' => 3, 'PRIMARY' => 3, 'RELEASE' => 3, - 'REQUIRE' => 3, 'SCHEMAS' => 3, 'TRIGGER' => 3, 'VARYING' => 3, 'VIRTUAL' => 3, - 'CONTINUE' => 3, 'DAY_HOUR' => 3, 'DESCRIBE' => 3, 'DISTINCT' => 3, - 'ENCLOSED' => 3, 'MAXVALUE' => 3, 'MODIFIES' => 3, 'OPTIMIZE' => 3, - 'RESIGNAL' => 3, 'RESTRICT' => 3, 'SPECIFIC' => 3, 'SQLSTATE' => 3, - 'STARTING' => 3, 'TRAILING' => 3, 'UNSIGNED' => 3, 'ZEROFILL' => 3, - 'CONDITION' => 3, 'DATABASES' => 3, 'GENERATED' => 3, 'MIDDLEINT' => 3, - 'PARTITION' => 3, 'PRECISION' => 3, 'PROCEDURE' => 3, 'SENSITIVE' => 3, - 'SEPARATOR' => 3, - 'ACCESSIBLE' => 3, 'ASENSITIVE' => 3, 'CONSTRAINT' => 3, 'DAY_MINUTE' => 3, - 'DAY_SECOND' => 3, 'OPTIONALLY' => 3, 'READ_WRITE' => 3, 'REFERENCES' => 3, - 'SQLWARNING' => 3, 'TERMINATED' => 3, 'YEAR_MONTH' => 3, - 'DISTINCTROW' => 3, 'HOUR_MINUTE' => 3, 'HOUR_SECOND' => 3, 'INSENSITIVE' => 3, - 'MASTER_BIND' => 3, - 'LOW_PRIORITY' => 3, 'SQLEXCEPTION' => 3, 'VARCHARACTER' => 3, - 'DETERMINISTIC' => 3, 'HIGH_PRIORITY' => 3, 'MINUTE_SECOND' => 3, - 'STRAIGHT_JOIN' => 3, - 'IO_AFTER_GTIDS' => 3, 'SQL_BIG_RESULT' => 3, - 'DAY_MICROSECOND' => 3, 'IO_BEFORE_GTIDS' => 3, 'OPTIMIZER_COSTS' => 3, - 'HOUR_MICROSECOND' => 3, 'SQL_SMALL_RESULT' => 3, - 'MINUTE_MICROSECOND' => 3, 'NO_WRITE_TO_BINLOG' => 3, 'SECOND_MICROSECOND' => 3, - 'SQL_CALC_FOUND_ROWS' => 3, - 'MASTER_SSL_VERIFY_SERVER_CERT' => 3, - - 'GROUP BY' => 7, 'NOT NULL' => 7, 'ORDER BY' => 7, 'SET NULL' => 7, - 'AND CHAIN' => 7, 'FULL JOIN' => 7, 'IF EXISTS' => 7, 'LEFT JOIN' => 7, - 'LESS THAN' => 7, 'LOAD DATA' => 7, 'NO ACTION' => 7, 'ON DELETE' => 7, - 'ON UPDATE' => 7, 'UNION ALL' => 7, - 'CROSS JOIN' => 7, 'ESCAPED BY' => 7, 'FOR UPDATE' => 7, 'INNER JOIN' => 7, - 'LINEAR KEY' => 7, 'NO RELEASE' => 7, 'OR REPLACE' => 7, 'RIGHT JOIN' => 7, - 'ENCLOSED BY' => 7, 'LINEAR HASH' => 7, 'STARTING BY' => 7, - 'AND NO CHAIN' => 7, 'FOR EACH ROW' => 7, 'NATURAL JOIN' => 7, - 'PARTITION BY' => 7, 'SET PASSWORD' => 7, 'SQL SECURITY' => 7, - 'CHARACTER SET' => 7, 'IF NOT EXISTS' => 7, 'TERMINATED BY' => 7, - 'DATA DIRECTORY' => 7, 'UNION DISTINCT' => 7, - 'DEFAULT CHARSET' => 7, 'DEFAULT COLLATE' => 7, 'FULL OUTER JOIN' => 7, - 'INDEX DIRECTORY' => 7, 'LEFT OUTER JOIN' => 7, 'SUBPARTITION BY' => 7, - 'GENERATED ALWAYS' => 7, 'RIGHT OUTER JOIN' => 7, - 'NATURAL LEFT JOIN' => 7, 'START TRANSACTION' => 7, - 'LOCK IN SHARE MODE' => 7, 'NATURAL RIGHT JOIN' => 7, 'SELECT TRANSACTION' => 7, - 'DEFAULT CHARACTER SET' => 7, - 'NATURAL LEFT OUTER JOIN' => 7, - 'NATURAL RIGHT OUTER JOIN' => 7, 'WITH CONSISTENT SNAPSHOT' => 7, - - 'BIT' => 9, 'XML' => 9, - 'ENUM' => 9, 'JSON' => 9, 'TEXT' => 9, - 'ARRAY' => 9, - 'SERIAL' => 9, - 'BOOLEAN' => 9, - 'DATETIME' => 9, 'GEOMETRY' => 9, 'MULTISET' => 9, - 'MULTILINEPOINT' => 9, - 'MULTILINEPOLYGON' => 9, - - 'INT' => 11, 'SET' => 11, - 'BLOB' => 11, 'REAL' => 11, - 'FLOAT' => 11, - 'BIGINT' => 11, 'DOUBLE' => 11, - 'DECIMAL' => 11, 'INTEGER' => 11, 'NUMERIC' => 11, 'TINYINT' => 11, 'VARCHAR' => 11, - 'LONGBLOB' => 11, 'LONGTEXT' => 11, 'SMALLINT' => 11, 'TINYBLOB' => 11, - 'TINYTEXT' => 11, - 'CHARACTER' => 11, 'MEDIUMINT' => 11, 'VARBINARY' => 11, - 'MEDIUMBLOB' => 11, 'MEDIUMTEXT' => 11, - - 'BINARY VARYING' => 15, - - 'KEY' => 19, - 'INDEX' => 19, - 'UNIQUE' => 19, - 'SPATIAL' => 19, - 'FULLTEXT' => 19, - - 'INDEX KEY' => 23, - 'UNIQUE KEY' => 23, - 'FOREIGN KEY' => 23, 'PRIMARY KEY' => 23, 'SPATIAL KEY' => 23, - 'FULLTEXT KEY' => 23, 'UNIQUE INDEX' => 23, - 'SPATIAL INDEX' => 23, - 'FULLTEXT INDEX' => 23, - - 'X' => 33, 'Y' => 33, - 'LN' => 33, 'PI' => 33, - 'ABS' => 33, 'AVG' => 33, 'BIN' => 33, 'COS' => 33, 'COT' => 33, 'DAY' => 33, - 'ELT' => 33, 'EXP' => 33, 'HEX' => 33, 'LOG' => 33, 'MAX' => 33, 'MD5' => 33, - 'MID' => 33, 'MIN' => 33, 'NOW' => 33, 'OCT' => 33, 'ORD' => 33, 'POW' => 33, - 'SHA' => 33, 'SIN' => 33, 'STD' => 33, 'SUM' => 33, 'TAN' => 33, - 'ACOS' => 33, 'AREA' => 33, 'ASIN' => 33, 'ATAN' => 33, 'CAST' => 33, 'CEIL' => 33, - 'CONV' => 33, 'HOUR' => 33, 'LOG2' => 33, 'LPAD' => 33, 'RAND' => 33, 'RPAD' => 33, - 'SHA1' => 33, 'SHA2' => 33, 'SIGN' => 33, 'SQRT' => 33, 'SRID' => 33, 'ST_X' => 33, - 'ST_Y' => 33, 'TRIM' => 33, 'USER' => 33, 'UUID' => 33, 'WEEK' => 33, - 'ASCII' => 33, 'ASWKB' => 33, 'ASWKT' => 33, 'ATAN2' => 33, 'COUNT' => 33, - 'CRC32' => 33, 'FIELD' => 33, 'FLOOR' => 33, 'INSTR' => 33, 'LCASE' => 33, - 'LEAST' => 33, 'LOG10' => 33, 'LOWER' => 33, 'LTRIM' => 33, 'MONTH' => 33, - 'POWER' => 33, 'QUOTE' => 33, 'ROUND' => 33, 'RTRIM' => 33, 'SLEEP' => 33, - 'SPACE' => 33, 'UCASE' => 33, 'UNHEX' => 33, 'UPPER' => 33, - 'ASTEXT' => 33, 'BIT_OR' => 33, 'BUFFER' => 33, 'CONCAT' => 33, 'DECODE' => 33, - 'ENCODE' => 33, 'EQUALS' => 33, 'FORMAT' => 33, 'IFNULL' => 33, 'ISNULL' => 33, - 'LENGTH' => 33, 'LOCATE' => 33, 'MINUTE' => 33, 'NULLIF' => 33, 'POINTN' => 33, - 'SECOND' => 33, 'STDDEV' => 33, 'STRCMP' => 33, 'SUBSTR' => 33, 'WITHIN' => 33, - 'ADDDATE' => 33, 'ADDTIME' => 33, 'AGAINST' => 33, 'BIT_AND' => 33, 'BIT_XOR' => 33, - 'CEILING' => 33, 'CHARSET' => 33, 'CROSSES' => 33, 'CURDATE' => 33, 'CURTIME' => 33, - 'DAYNAME' => 33, 'DEGREES' => 33, 'ENCRYPT' => 33, 'EXTRACT' => 33, 'GLENGTH' => 33, - 'ISEMPTY' => 33, 'IS_IPV4' => 33, 'IS_IPV6' => 33, 'QUARTER' => 33, 'RADIANS' => 33, - 'REVERSE' => 33, 'SOUNDEX' => 33, 'ST_AREA' => 33, 'ST_SRID' => 33, 'SUBDATE' => 33, - 'SUBTIME' => 33, 'SYSDATE' => 33, 'TOUCHES' => 33, 'TO_DAYS' => 33, 'VAR_POP' => 33, - 'VERSION' => 33, 'WEEKDAY' => 33, - 'ASBINARY' => 33, 'CENTROID' => 33, 'COALESCE' => 33, 'COMPRESS' => 33, - 'CONTAINS' => 33, 'DATEDIFF' => 33, 'DATE_ADD' => 33, 'DATE_SUB' => 33, - 'DISJOINT' => 33, 'DISTANCE' => 33, 'ENDPOINT' => 33, 'ENVELOPE' => 33, - 'GET_LOCK' => 33, 'GREATEST' => 33, 'ISCLOSED' => 33, 'ISSIMPLE' => 33, - 'JSON_SET' => 33, 'MAKEDATE' => 33, 'MAKETIME' => 33, 'MAKE_SET' => 33, - 'MBREQUAL' => 33, 'OVERLAPS' => 33, 'PASSWORD' => 33, 'POSITION' => 33, - 'ST_ASWKB' => 33, 'ST_ASWKT' => 33, 'ST_UNION' => 33, 'TIMEDIFF' => 33, - 'TRUNCATE' => 33, 'VARIANCE' => 33, 'VAR_SAMP' => 33, 'YEARWEEK' => 33, - 'ANY_VALUE' => 33, 'BENCHMARK' => 33, 'BIT_COUNT' => 33, 'COLLATION' => 33, - 'CONCAT_WS' => 33, 'DAYOFWEEK' => 33, 'DAYOFYEAR' => 33, 'DIMENSION' => 33, - 'FROM_DAYS' => 33, 'GEOMETRYN' => 33, 'INET_ATON' => 33, 'INET_NTOA' => 33, - 'JSON_KEYS' => 33, 'JSON_TYPE' => 33, 'LOAD_FILE' => 33, 'MBRCOVERS' => 33, - 'MBREQUALS' => 33, 'MBRWITHIN' => 33, 'MONTHNAME' => 33, 'NUMPOINTS' => 33, - 'ROW_COUNT' => 33, 'ST_ASTEXT' => 33, 'ST_BUFFER' => 33, 'ST_EQUALS' => 33, - 'ST_LENGTH' => 33, 'ST_POINTN' => 33, 'ST_WITHIN' => 33, 'SUBSTRING' => 33, - 'TO_BASE64' => 33, 'UPDATEXML' => 33, - 'BIT_LENGTH' => 33, 'CONVERT_TZ' => 33, 'CONVEXHULL' => 33, 'DAYOFMONTH' => 33, - 'EXPORT_SET' => 33, 'FOUND_ROWS' => 33, 'GET_FORMAT' => 33, 'INET6_ATON' => 33, - 'INET6_NTOA' => 33, 'INTERSECTS' => 33, 'JSON_ARRAY' => 33, 'JSON_DEPTH' => 33, - 'JSON_MERGE' => 33, 'JSON_QUOTE' => 33, 'JSON_VALID' => 33, 'MBRTOUCHES' => 33, - 'MULTIPOINT' => 33, 'NAME_CONST' => 33, 'PERIOD_ADD' => 33, 'STARTPOINT' => 33, - 'STDDEV_POP' => 33, 'ST_CROSSES' => 33, 'ST_GEOHASH' => 33, 'ST_ISEMPTY' => 33, - 'ST_ISVALID' => 33, 'ST_TOUCHES' => 33, 'TO_SECONDS' => 33, 'UNCOMPRESS' => 33, - 'UUID_SHORT' => 33, 'WEEKOFYEAR' => 33, - 'AES_DECRYPT' => 33, 'AES_ENCRYPT' => 33, 'CHAR_LENGTH' => 33, 'DATE_FORMAT' => 33, - 'DES_DECRYPT' => 33, 'DES_ENCRYPT' => 33, 'FIND_IN_SET' => 33, 'FROM_BASE64' => 33, - 'GEOMFROMWKB' => 33, 'GTID_SUBSET' => 33, 'JSON_INSERT' => 33, 'JSON_LENGTH' => 33, - 'JSON_OBJECT' => 33, 'JSON_PRETTY' => 33, 'JSON_REMOVE' => 33, 'JSON_SEARCH' => 33, - 'LINEFROMWKB' => 33, 'MBRCONTAINS' => 33, 'MBRDISJOINT' => 33, 'MBROVERLAPS' => 33, - 'MICROSECOND' => 33, 'PERIOD_DIFF' => 33, 'POLYFROMWKB' => 33, 'SEC_TO_TIME' => 33, - 'STDDEV_SAMP' => 33, 'STR_TO_DATE' => 33, 'ST_ASBINARY' => 33, 'ST_CENTROID' => 33, - 'ST_CONTAINS' => 33, 'ST_DISJOINT' => 33, 'ST_DISTANCE' => 33, 'ST_ENDPOINT' => 33, - 'ST_ENVELOPE' => 33, 'ST_ISCLOSED' => 33, 'ST_ISSIMPLE' => 33, 'ST_OVERLAPS' => 33, - 'ST_SIMPLIFY' => 33, 'ST_VALIDATE' => 33, 'SYSTEM_USER' => 33, 'TIME_FORMAT' => 33, - 'TIME_TO_SEC' => 33, - 'COERCIBILITY' => 33, 'EXTERIORRING' => 33, 'EXTRACTVALUE' => 33, - 'GEOMETRYTYPE' => 33, 'GEOMFROMTEXT' => 33, 'GROUP_CONCAT' => 33, - 'IS_FREE_LOCK' => 33, 'IS_USED_LOCK' => 33, 'JSON_EXTRACT' => 33, - 'JSON_REPLACE' => 33, 'JSON_UNQUOTE' => 33, 'LINEFROMTEXT' => 33, - 'MBRCOVEREDBY' => 33, 'MLINEFROMWKB' => 33, 'MPOLYFROMWKB' => 33, - 'MULTIPOLYGON' => 33, 'OCTET_LENGTH' => 33, 'OLD_PASSWORD' => 33, - 'POINTFROMWKB' => 33, 'POLYFROMTEXT' => 33, 'RANDOM_BYTES' => 33, - 'RELEASE_LOCK' => 33, 'SESSION_USER' => 33, 'ST_ASGEOJSON' => 33, - 'ST_DIMENSION' => 33, 'ST_GEOMETRYN' => 33, 'ST_NUMPOINTS' => 33, - 'TIMESTAMPADD' => 33, - 'CONNECTION_ID' => 33, 'FROM_UNIXTIME' => 33, 'GTID_SUBTRACT' => 33, - 'INTERIORRINGN' => 33, 'JSON_CONTAINS' => 33, 'MBRINTERSECTS' => 33, - 'MLINEFROMTEXT' => 33, 'MPOINTFROMWKB' => 33, 'MPOLYFROMTEXT' => 33, - 'NUMGEOMETRIES' => 33, 'POINTFROMTEXT' => 33, 'ST_CONVEXHULL' => 33, - 'ST_DIFFERENCE' => 33, 'ST_INTERSECTS' => 33, 'ST_STARTPOINT' => 33, - 'TIMESTAMPDIFF' => 33, 'WEIGHT_STRING' => 33, - 'IS_IPV4_COMPAT' => 33, 'IS_IPV4_MAPPED' => 33, 'LAST_INSERT_ID' => 33, - 'MPOINTFROMTEXT' => 33, 'POLYGONFROMWKB' => 33, 'ST_GEOMFROMWKB' => 33, - 'ST_LINEFROMWKB' => 33, 'ST_POLYFROMWKB' => 33, 'UNIX_TIMESTAMP' => 33, - 'GEOMCOLLFROMWKB' => 33, 'MASTER_POS_WAIT' => 33, 'POLYGONFROMTEXT' => 33, - 'ST_EXTERIORRING' => 33, 'ST_GEOMETRYTYPE' => 33, 'ST_GEOMFROMTEXT' => 33, - 'ST_INTERSECTION' => 33, 'ST_LINEFROMTEXT' => 33, 'ST_MAKEENVELOPE' => 33, - 'ST_MLINEFROMWKB' => 33, 'ST_MPOLYFROMWKB' => 33, 'ST_POINTFROMWKB' => 33, - 'ST_POLYFROMTEXT' => 33, 'SUBSTRING_INDEX' => 33, - 'CHARACTER_LENGTH' => 33, 'GEOMCOLLFROMTEXT' => 33, 'GEOMETRYFROMTEXT' => 33, - 'JSON_MERGE_PATCH' => 33, 'NUMINTERIORRINGS' => 33, 'ST_INTERIORRINGN' => 33, - 'ST_MLINEFROMTEXT' => 33, 'ST_MPOINTFROMWKB' => 33, 'ST_MPOLYFROMTEXT' => 33, - 'ST_NUMGEOMETRIES' => 33, 'ST_POINTFROMTEXT' => 33, 'ST_SYMDIFFERENCE' => 33, - 'JSON_ARRAY_APPEND' => 33, 'JSON_ARRAY_INSERT' => 33, 'JSON_STORAGE_FREE' => 33, - 'JSON_STORAGE_SIZE' => 33, 'LINESTRINGFROMWKB' => 33, 'MULTIPOINTFROMWKB' => 33, - 'RELEASE_ALL_LOCKS' => 33, 'ST_LATFROMGEOHASH' => 33, 'ST_MPOINTFROMTEXT' => 33, - 'ST_POLYGONFROMWKB' => 33, - 'JSON_CONTAINS_PATH' => 33, 'MULTIPOINTFROMTEXT' => 33, 'ST_BUFFER_STRATEGY' => 33, - 'ST_DISTANCE_SPHERE' => 33, 'ST_GEOMCOLLFROMTXT' => 33, 'ST_GEOMCOLLFROMWKB' => 33, - 'ST_GEOMFROMGEOJSON' => 33, 'ST_LONGFROMGEOHASH' => 33, 'ST_POLYGONFROMTEXT' => 33, - 'JSON_MERGE_PRESERVE' => 33, 'MULTIPOLYGONFROMWKB' => 33, 'ST_GEOMCOLLFROMTEXT' => 33, - 'ST_GEOMETRYFROMTEXT' => 33, 'ST_NUMINTERIORRINGS' => 33, 'ST_POINTFROMGEOHASH' => 33, - 'UNCOMPRESSED_LENGTH' => 33, - 'MULTIPOLYGONFROMTEXT' => 33, 'ST_LINESTRINGFROMWKB' => 33, - 'ST_MULTIPOINTFROMWKB' => 33, - 'ST_MULTIPOINTFROMTEXT' => 33, - 'MULTILINESTRINGFROMWKB' => 33, 'ST_MULTIPOLYGONFROMWKB' => 33, - 'MULTILINESTRINGFROMTEXT' => 33, 'ST_MULTIPOLYGONFROMTEXT' => 33, - 'GEOMETRYCOLLECTIONFROMWKB' => 33, 'ST_MULTILINESTRINGFROMWKB' => 33, - 'GEOMETRYCOLLECTIONFROMTEXT' => 33, 'ST_MULTILINESTRINGFROMTEXT' => 33, - 'VALIDATE_PASSWORD_STRENGTH' => 33, 'WAIT_FOR_EXECUTED_GTID_SET' => 33, - 'ST_GEOMETRYCOLLECTIONFROMWKB' => 33, - 'ST_GEOMETRYCOLLECTIONFROMTEXT' => 33, - 'WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS' => 33, - - 'IF' => 35, 'IN' => 35, - 'MOD' => 35, - 'LEFT' => 35, - 'MATCH' => 35, 'RIGHT' => 35, - 'INSERT' => 35, 'REPEAT' => 35, 'SCHEMA' => 35, 'VALUES' => 35, - 'CONVERT' => 35, 'DEFAULT' => 35, 'REPLACE' => 35, - 'DATABASE' => 35, 'UTC_DATE' => 35, 'UTC_TIME' => 35, - 'LOCALTIME' => 35, - 'CURRENT_DATE' => 35, 'CURRENT_TIME' => 35, 'CURRENT_USER' => 35, - 'UTC_TIMESTAMP' => 35, - 'LOCALTIMESTAMP' => 35, - 'CURRENT_TIMESTAMP' => 35, - - 'NOT IN' => 39, - - 'DATE' => 41, 'TIME' => 41, 'YEAR' => 41, - 'POINT' => 41, - 'POLYGON' => 41, - 'TIMESTAMP' => 41, - 'LINESTRING' => 41, - 'MULTILINESTRING' => 41, - 'GEOMETRYCOLLECTION' => 41, - - 'CHAR' => 43, - 'BINARY' => 43, - 'INTERVAL' => 43, - ]; -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMariaDb100200.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMariaDb100200.php deleted file mode 100644 index 8f088aa..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMariaDb100200.php +++ /dev/null @@ -1,361 +0,0 @@ - 1, 'DO' => 1, 'IO' => 1, 'NO' => 1, 'XA' => 1, - 'ANY' => 1, 'CPU' => 1, 'END' => 1, 'IPC' => 1, 'NDB' => 1, 'NEW' => 1, - 'ONE' => 1, 'ROW' => 1, 'XID' => 1, - 'BOOL' => 1, 'BYTE' => 1, 'CODE' => 1, 'CUBE' => 1, 'DATA' => 1, 'DISK' => 1, - 'ENDS' => 1, 'FAST' => 1, 'FILE' => 1, 'FULL' => 1, 'HASH' => 1, 'HELP' => 1, - 'HOST' => 1, 'LAST' => 1, 'LESS' => 1, 'LIST' => 1, 'LOGS' => 1, 'MODE' => 1, - 'NAME' => 1, 'NEXT' => 1, 'NONE' => 1, 'ONLY' => 1, 'OPEN' => 1, 'PAGE' => 1, - 'PORT' => 1, 'PREV' => 1, 'SLOW' => 1, 'SOME' => 1, 'STOP' => 1, 'THAN' => 1, - 'TYPE' => 1, 'VIEW' => 1, 'WAIT' => 1, 'WORK' => 1, 'X509' => 1, - 'AFTER' => 1, 'BEGIN' => 1, 'BLOCK' => 1, 'BTREE' => 1, 'CACHE' => 1, - 'CHAIN' => 1, 'CLOSE' => 1, 'ERROR' => 1, 'EVENT' => 1, 'EVERY' => 1, - 'FIRST' => 1, 'FIXED' => 1, 'FLUSH' => 1, 'FOUND' => 1, 'HOSTS' => 1, - 'LEVEL' => 1, 'LOCAL' => 1, 'LOCKS' => 1, 'MERGE' => 1, 'MUTEX' => 1, - 'NAMES' => 1, 'NCHAR' => 1, 'NEVER' => 1, 'OWNER' => 1, 'PHASE' => 1, - 'PROXY' => 1, 'QUERY' => 1, 'QUICK' => 1, 'RELAY' => 1, 'RESET' => 1, - 'RTREE' => 1, 'SHARE' => 1, 'SLAVE' => 1, 'START' => 1, 'SUPER' => 1, - 'SWAPS' => 1, 'TYPES' => 1, 'UNTIL' => 1, 'VALUE' => 1, - 'ACTION' => 1, 'ALWAYS' => 1, 'BACKUP' => 1, 'BINLOG' => 1, 'CIPHER' => 1, - 'CLIENT' => 1, 'COMMIT' => 1, 'ENABLE' => 1, 'ENGINE' => 1, 'ERRORS' => 1, - 'ESCAPE' => 1, 'EVENTS' => 1, 'EXPIRE' => 1, 'EXPORT' => 1, 'FAULTS' => 1, - 'FIELDS' => 1, 'FILTER' => 1, 'GLOBAL' => 1, 'GRANTS' => 1, 'IMPORT' => 1, - 'ISSUER' => 1, 'LEAVES' => 1, 'MASTER' => 1, 'MEDIUM' => 1, 'MEMORY' => 1, - 'MODIFY' => 1, 'NUMBER' => 1, 'OFFSET' => 1, 'PARSER' => 1, 'PLUGIN' => 1, - 'RELOAD' => 1, 'REMOVE' => 1, 'REPAIR' => 1, 'RESUME' => 1, 'ROLLUP' => 1, - 'SERVER' => 1, 'SIGNED' => 1, 'SIMPLE' => 1, 'SOCKET' => 1, 'SONAME' => 1, - 'SOUNDS' => 1, 'SOURCE' => 1, 'STARTS' => 1, 'STATUS' => 1, 'STRING' => 1, - 'TABLES' => 1, - 'ACCOUNT' => 1, 'ANALYSE' => 1, 'CHANGED' => 1, 'CHANNEL' => 1, 'COLUMNS' => 1, - 'COMMENT' => 1, 'COMPACT' => 1, 'CONTEXT' => 1, 'CURRENT' => 1, 'DEFINER' => 1, - 'DISABLE' => 1, 'DISCARD' => 1, 'DYNAMIC' => 1, 'ENGINES' => 1, 'EXECUTE' => 1, - 'FOLLOWS' => 1, 'GENERAL' => 1, 'HANDLER' => 1, 'INDEXES' => 1, 'INSTALL' => 1, - 'INVOKER' => 1, 'LOGFILE' => 1, 'MIGRATE' => 1, 'NO_WAIT' => 1, 'OPTIONS' => 1, - 'PARTIAL' => 1, 'PLUGINS' => 1, 'PREPARE' => 1, 'PROFILE' => 1, 'REBUILD' => 1, - 'RECOVER' => 1, 'RESTORE' => 1, 'RETURNS' => 1, 'ROUTINE' => 1, 'SESSION' => 1, - 'STACKED' => 1, 'STORAGE' => 1, 'SUBJECT' => 1, 'SUSPEND' => 1, 'UNICODE' => 1, - 'UNKNOWN' => 1, 'UPGRADE' => 1, 'USE_FRM' => 1, 'WITHOUT' => 1, 'WRAPPER' => 1, - 'CASCADED' => 1, 'CHECKSUM' => 1, 'DATAFILE' => 1, 'DUMPFILE' => 1, - 'EXCHANGE' => 1, 'EXTENDED' => 1, 'FUNCTION' => 1, 'LANGUAGE' => 1, - 'MAX_ROWS' => 1, 'MAX_SIZE' => 1, 'MIN_ROWS' => 1, 'NATIONAL' => 1, - 'NVARCHAR' => 1, 'PRECEDES' => 1, 'PRESERVE' => 1, 'PROFILES' => 1, - 'REDOFILE' => 1, 'RELAYLOG' => 1, 'ROLLBACK' => 1, 'SCHEDULE' => 1, - 'SECURITY' => 1, 'SHUTDOWN' => 1, 'SNAPSHOT' => 1, 'SWITCHES' => 1, - 'TRIGGERS' => 1, 'UNDOFILE' => 1, 'WARNINGS' => 1, - 'AGGREGATE' => 1, 'ALGORITHM' => 1, 'COMMITTED' => 1, 'DIRECTORY' => 1, - 'DUPLICATE' => 1, 'EXPANSION' => 1, 'IO_THREAD' => 1, 'ISOLATION' => 1, - 'NODEGROUP' => 1, 'PACK_KEYS' => 1, 'READ_ONLY' => 1, 'REDUNDANT' => 1, - 'SAVEPOINT' => 1, 'SQL_CACHE' => 1, 'TEMPORARY' => 1, 'TEMPTABLE' => 1, - 'UNDEFINED' => 1, 'UNINSTALL' => 1, 'VARIABLES' => 1, - 'COMPLETION' => 1, 'COMPRESSED' => 1, 'CONCURRENT' => 1, 'CONNECTION' => 1, - 'CONSISTENT' => 1, 'DEALLOCATE' => 1, 'IDENTIFIED' => 1, 'MASTER_SSL' => 1, - 'NDBCLUSTER' => 1, 'PARTITIONS' => 1, 'PERSISTENT' => 1, 'PLUGIN_DIR' => 1, - 'PRIVILEGES' => 1, 'REORGANIZE' => 1, 'REPEATABLE' => 1, 'ROW_FORMAT' => 1, - 'SQL_THREAD' => 1, 'TABLESPACE' => 1, 'TABLE_NAME' => 1, 'VALIDATION' => 1, - 'COLUMN_NAME' => 1, 'COMPRESSION' => 1, 'CURSOR_NAME' => 1, 'DIAGNOSTICS' => 1, - 'EXTENT_SIZE' => 1, 'MASTER_HOST' => 1, 'MASTER_PORT' => 1, 'MASTER_USER' => 1, - 'MYSQL_ERRNO' => 1, 'NONBLOCKING' => 1, 'PROCESSLIST' => 1, 'REPLICATION' => 1, - 'SCHEMA_NAME' => 1, 'SQL_TSI_DAY' => 1, 'TRANSACTION' => 1, 'UNCOMMITTED' => 1, - 'CATALOG_NAME' => 1, 'CLASS_ORIGIN' => 1, 'DEFAULT_AUTH' => 1, - 'DES_KEY_FILE' => 1, 'INITIAL_SIZE' => 1, 'MASTER_DELAY' => 1, - 'MESSAGE_TEXT' => 1, 'PARTITIONING' => 1, 'RELAY_THREAD' => 1, - 'SERIALIZABLE' => 1, 'SQL_NO_CACHE' => 1, 'SQL_TSI_HOUR' => 1, - 'SQL_TSI_WEEK' => 1, 'SQL_TSI_YEAR' => 1, 'SUBPARTITION' => 1, - 'COLUMN_FORMAT' => 1, 'INSERT_METHOD' => 1, 'MASTER_SSL_CA' => 1, - 'RELAY_LOG_POS' => 1, 'SQL_TSI_MONTH' => 1, 'SUBPARTITIONS' => 1, - 'AUTO_INCREMENT' => 1, 'AVG_ROW_LENGTH' => 1, 'KEY_BLOCK_SIZE' => 1, - 'MASTER_LOG_POS' => 1, 'MASTER_SSL_CRL' => 1, 'MASTER_SSL_KEY' => 1, - 'RELAY_LOG_FILE' => 1, 'SQL_TSI_MINUTE' => 1, 'SQL_TSI_SECOND' => 1, - 'TABLE_CHECKSUM' => 1, 'USER_RESOURCES' => 1, - 'AUTOEXTEND_SIZE' => 1, 'CONSTRAINT_NAME' => 1, 'DELAY_KEY_WRITE' => 1, - 'FILE_BLOCK_SIZE' => 1, 'MASTER_LOG_FILE' => 1, 'MASTER_PASSWORD' => 1, - 'MASTER_SSL_CERT' => 1, 'PARSE_GCOL_EXPR' => 1, 'REPLICATE_DO_DB' => 1, - 'SQL_AFTER_GTIDS' => 1, 'SQL_TSI_QUARTER' => 1, 'SUBCLASS_ORIGIN' => 1, - 'MASTER_SERVER_ID' => 1, 'REDO_BUFFER_SIZE' => 1, 'SQL_BEFORE_GTIDS' => 1, - 'STATS_PERSISTENT' => 1, 'UNDO_BUFFER_SIZE' => 1, - 'CONSTRAINT_SCHEMA' => 1, 'GROUP_REPLICATION' => 1, 'IGNORE_SERVER_IDS' => 1, - 'MASTER_SSL_CAPATH' => 1, 'MASTER_SSL_CIPHER' => 1, 'RETURNED_SQLSTATE' => 1, - 'SQL_BUFFER_RESULT' => 1, 'STATS_AUTO_RECALC' => 1, - 'CONSTRAINT_CATALOG' => 1, 'MASTER_RETRY_COUNT' => 1, 'MASTER_SSL_CRLPATH' => 1, - 'MAX_STATEMENT_TIME' => 1, 'REPLICATE_DO_TABLE' => 1, 'SQL_AFTER_MTS_GAPS' => 1, - 'STATS_SAMPLE_PAGES' => 1, - 'REPLICATE_IGNORE_DB' => 1, - 'MASTER_AUTO_POSITION' => 1, 'MASTER_CONNECT_RETRY' => 1, - 'MAX_QUERIES_PER_HOUR' => 1, 'MAX_UPDATES_PER_HOUR' => 1, - 'MAX_USER_CONNECTIONS' => 1, 'REPLICATE_REWRITE_DB' => 1, - 'REPLICATE_IGNORE_TABLE' => 1, - 'MASTER_HEARTBEAT_PERIOD' => 1, 'REPLICATE_WILD_DO_TABLE' => 1, - 'MAX_CONNECTIONS_PER_HOUR' => 1, - 'REPLICATE_WILD_IGNORE_TABLE' => 1, - - 'AS' => 3, 'BY' => 3, 'IS' => 3, 'ON' => 3, 'OR' => 3, 'TO' => 3, - 'ADD' => 3, 'ALL' => 3, 'AND' => 3, 'ASC' => 3, 'DEC' => 3, 'DIV' => 3, - 'FOR' => 3, 'GET' => 3, 'NOT' => 3, 'OUT' => 3, 'SQL' => 3, 'SSL' => 3, - 'USE' => 3, 'XOR' => 3, - 'BOTH' => 3, 'CALL' => 3, 'CASE' => 3, 'DESC' => 3, 'DROP' => 3, 'DUAL' => 3, - 'EACH' => 3, 'ELSE' => 3, 'EXIT' => 3, 'FROM' => 3, 'INT1' => 3, 'INT2' => 3, - 'INT3' => 3, 'INT4' => 3, 'INT8' => 3, 'INTO' => 3, 'JOIN' => 3, 'KEYS' => 3, - 'KILL' => 3, 'LIKE' => 3, 'LOAD' => 3, 'LOCK' => 3, 'LONG' => 3, 'LOOP' => 3, - 'NULL' => 3, 'READ' => 3, 'ROWS' => 3, 'SHOW' => 3, 'THEN' => 3, 'TRUE' => 3, - 'UNDO' => 3, 'WHEN' => 3, 'WITH' => 3, - 'ALTER' => 3, 'CHECK' => 3, 'CROSS' => 3, 'FALSE' => 3, 'FETCH' => 3, - 'FORCE' => 3, 'GRANT' => 3, 'GROUP' => 3, 'INNER' => 3, 'INOUT' => 3, - 'LEAVE' => 3, 'LIMIT' => 3, 'LINES' => 3, 'ORDER' => 3, 'OUTER' => 3, - 'PURGE' => 3, 'RANGE' => 3, 'READS' => 3, 'RLIKE' => 3, 'TABLE' => 3, - 'UNION' => 3, 'USAGE' => 3, 'USING' => 3, 'WHERE' => 3, 'WHILE' => 3, - 'WRITE' => 3, - 'BEFORE' => 3, 'CHANGE' => 3, 'COLUMN' => 3, 'CREATE' => 3, 'CURSOR' => 3, - 'DELETE' => 3, 'ELSEIF' => 3, 'EXISTS' => 3, 'FLOAT4' => 3, 'FLOAT8' => 3, - 'HAVING' => 3, 'IGNORE' => 3, 'INFILE' => 3, 'LINEAR' => 3, 'OPTION' => 3, - 'REGEXP' => 3, 'RENAME' => 3, 'RETURN' => 3, 'REVOKE' => 3, 'SELECT' => 3, - 'SIGNAL' => 3, 'STORED' => 3, 'UNLOCK' => 3, 'UPDATE' => 3, - 'ANALYZE' => 3, 'BETWEEN' => 3, 'CASCADE' => 3, 'COLLATE' => 3, 'DECLARE' => 3, - 'DELAYED' => 3, 'ESCAPED' => 3, 'EXPLAIN' => 3, 'FOREIGN' => 3, 'ITERATE' => 3, - 'LEADING' => 3, 'NATURAL' => 3, 'OUTFILE' => 3, 'PRIMARY' => 3, 'RELEASE' => 3, - 'REQUIRE' => 3, 'SCHEMAS' => 3, 'TRIGGER' => 3, 'VARYING' => 3, 'VIRTUAL' => 3, - 'CONTINUE' => 3, 'DAY_HOUR' => 3, 'DESCRIBE' => 3, 'DISTINCT' => 3, - 'ENCLOSED' => 3, 'MAXVALUE' => 3, 'MODIFIES' => 3, 'OPTIMIZE' => 3, - 'RESIGNAL' => 3, 'RESTRICT' => 3, 'SPECIFIC' => 3, 'SQLSTATE' => 3, - 'STARTING' => 3, 'TRAILING' => 3, 'UNSIGNED' => 3, 'ZEROFILL' => 3, - 'CONDITION' => 3, 'DATABASES' => 3, 'GENERATED' => 3, 'MIDDLEINT' => 3, - 'PARTITION' => 3, 'PRECISION' => 3, 'PROCEDURE' => 3, 'RECURSIVE' => 3, - 'SENSITIVE' => 3, 'SEPARATOR' => 3, - 'ACCESSIBLE' => 3, 'ASENSITIVE' => 3, 'CONSTRAINT' => 3, 'DAY_MINUTE' => 3, - 'DAY_SECOND' => 3, 'OPTIONALLY' => 3, 'READ_WRITE' => 3, 'REFERENCES' => 3, - 'SQLWARNING' => 3, 'TERMINATED' => 3, 'YEAR_MONTH' => 3, - 'DISTINCTROW' => 3, 'HOUR_MINUTE' => 3, 'HOUR_SECOND' => 3, 'INSENSITIVE' => 3, - 'MASTER_BIND' => 3, - 'LOW_PRIORITY' => 3, 'SQLEXCEPTION' => 3, 'VARCHARACTER' => 3, - 'DETERMINISTIC' => 3, 'HIGH_PRIORITY' => 3, 'MINUTE_SECOND' => 3, - 'STRAIGHT_JOIN' => 3, - 'IO_AFTER_GTIDS' => 3, 'SQL_BIG_RESULT' => 3, - 'DAY_MICROSECOND' => 3, 'IO_BEFORE_GTIDS' => 3, 'OPTIMIZER_COSTS' => 3, - 'HOUR_MICROSECOND' => 3, 'SQL_SMALL_RESULT' => 3, - 'MINUTE_MICROSECOND' => 3, 'NO_WRITE_TO_BINLOG' => 3, 'SECOND_MICROSECOND' => 3, - 'SQL_CALC_FOUND_ROWS' => 3, - 'MASTER_SSL_VERIFY_SERVER_CERT' => 3, - - 'GROUP BY' => 7, 'NOT NULL' => 7, 'ORDER BY' => 7, 'SET NULL' => 7, - 'AND CHAIN' => 7, 'FULL JOIN' => 7, 'IF EXISTS' => 7, 'LEFT JOIN' => 7, - 'LESS THAN' => 7, 'LOAD DATA' => 7, 'NO ACTION' => 7, 'ON DELETE' => 7, - 'ON UPDATE' => 7, 'UNION ALL' => 7, - 'CROSS JOIN' => 7, 'ESCAPED BY' => 7, 'FOR UPDATE' => 7, 'INNER JOIN' => 7, - 'LINEAR KEY' => 7, 'NO RELEASE' => 7, 'OR REPLACE' => 7, 'RIGHT JOIN' => 7, - 'ENCLOSED BY' => 7, 'LINEAR HASH' => 7, 'STARTING BY' => 7, - 'AND NO CHAIN' => 7, 'FOR EACH ROW' => 7, 'NATURAL JOIN' => 7, - 'PARTITION BY' => 7, 'SET PASSWORD' => 7, 'SQL SECURITY' => 7, - 'CHARACTER SET' => 7, 'IF NOT EXISTS' => 7, 'TERMINATED BY' => 7, - 'DATA DIRECTORY' => 7, 'UNION DISTINCT' => 7, - 'DEFAULT CHARSET' => 7, 'DEFAULT COLLATE' => 7, 'FULL OUTER JOIN' => 7, - 'INDEX DIRECTORY' => 7, 'LEFT OUTER JOIN' => 7, 'SUBPARTITION BY' => 7, - 'GENERATED ALWAYS' => 7, 'RIGHT OUTER JOIN' => 7, - 'NATURAL LEFT JOIN' => 7, 'START TRANSACTION' => 7, - 'LOCK IN SHARE MODE' => 7, 'NATURAL RIGHT JOIN' => 7, 'SELECT TRANSACTION' => 7, - 'DEFAULT CHARACTER SET' => 7, - 'NATURAL LEFT OUTER JOIN' => 7, - 'NATURAL RIGHT OUTER JOIN' => 7, 'WITH CONSISTENT SNAPSHOT' => 7, - - 'BIT' => 9, 'XML' => 9, - 'ENUM' => 9, 'JSON' => 9, 'TEXT' => 9, - 'ARRAY' => 9, - 'SERIAL' => 9, - 'BOOLEAN' => 9, - 'DATETIME' => 9, 'GEOMETRY' => 9, 'MULTISET' => 9, - 'MULTILINEPOINT' => 9, - 'MULTILINEPOLYGON' => 9, - - 'INT' => 11, 'SET' => 11, - 'BLOB' => 11, 'REAL' => 11, - 'FLOAT' => 11, - 'BIGINT' => 11, 'DOUBLE' => 11, - 'DECIMAL' => 11, 'INTEGER' => 11, 'NUMERIC' => 11, 'TINYINT' => 11, 'VARCHAR' => 11, - 'LONGBLOB' => 11, 'LONGTEXT' => 11, 'SMALLINT' => 11, 'TINYBLOB' => 11, - 'TINYTEXT' => 11, - 'CHARACTER' => 11, 'MEDIUMINT' => 11, 'VARBINARY' => 11, - 'MEDIUMBLOB' => 11, 'MEDIUMTEXT' => 11, - - 'BINARY VARYING' => 15, - - 'KEY' => 19, - 'INDEX' => 19, - 'UNIQUE' => 19, - 'SPATIAL' => 19, - 'FULLTEXT' => 19, - - 'INDEX KEY' => 23, - 'UNIQUE KEY' => 23, - 'FOREIGN KEY' => 23, 'PRIMARY KEY' => 23, 'SPATIAL KEY' => 23, - 'FULLTEXT KEY' => 23, 'UNIQUE INDEX' => 23, - 'SPATIAL INDEX' => 23, - 'FULLTEXT INDEX' => 23, - - 'X' => 33, 'Y' => 33, - 'LN' => 33, 'PI' => 33, - 'ABS' => 33, 'AVG' => 33, 'BIN' => 33, 'COS' => 33, 'COT' => 33, 'DAY' => 33, - 'ELT' => 33, 'EXP' => 33, 'HEX' => 33, 'LOG' => 33, 'MAX' => 33, 'MD5' => 33, - 'MID' => 33, 'MIN' => 33, 'NOW' => 33, 'OCT' => 33, 'ORD' => 33, 'POW' => 33, - 'SHA' => 33, 'SIN' => 33, 'STD' => 33, 'SUM' => 33, 'TAN' => 33, - 'ACOS' => 33, 'AREA' => 33, 'ASIN' => 33, 'ATAN' => 33, 'CAST' => 33, 'CEIL' => 33, - 'CONV' => 33, 'HOUR' => 33, 'LOG2' => 33, 'LPAD' => 33, 'RAND' => 33, 'RPAD' => 33, - 'SHA1' => 33, 'SHA2' => 33, 'SIGN' => 33, 'SQRT' => 33, 'SRID' => 33, 'ST_X' => 33, - 'ST_Y' => 33, 'TRIM' => 33, 'USER' => 33, 'UUID' => 33, 'WEEK' => 33, - 'ASCII' => 33, 'ASWKB' => 33, 'ASWKT' => 33, 'ATAN2' => 33, 'COUNT' => 33, - 'CRC32' => 33, 'FIELD' => 33, 'FLOOR' => 33, 'INSTR' => 33, 'LCASE' => 33, - 'LEAST' => 33, 'LOG10' => 33, 'LOWER' => 33, 'LTRIM' => 33, 'MONTH' => 33, - 'POWER' => 33, 'QUOTE' => 33, 'ROUND' => 33, 'RTRIM' => 33, 'SLEEP' => 33, - 'SPACE' => 33, 'UCASE' => 33, 'UNHEX' => 33, 'UPPER' => 33, - 'ASTEXT' => 33, 'BIT_OR' => 33, 'BUFFER' => 33, 'CONCAT' => 33, 'DECODE' => 33, - 'ENCODE' => 33, 'EQUALS' => 33, 'FORMAT' => 33, 'IFNULL' => 33, 'ISNULL' => 33, - 'LENGTH' => 33, 'LOCATE' => 33, 'MINUTE' => 33, 'NULLIF' => 33, 'POINTN' => 33, - 'SECOND' => 33, 'STDDEV' => 33, 'STRCMP' => 33, 'SUBSTR' => 33, 'WITHIN' => 33, - 'ADDDATE' => 33, 'ADDTIME' => 33, 'AGAINST' => 33, 'BIT_AND' => 33, 'BIT_XOR' => 33, - 'CEILING' => 33, 'CHARSET' => 33, 'CROSSES' => 33, 'CURDATE' => 33, 'CURTIME' => 33, - 'DAYNAME' => 33, 'DEGREES' => 33, 'ENCRYPT' => 33, 'EXTRACT' => 33, 'GLENGTH' => 33, - 'ISEMPTY' => 33, 'IS_IPV4' => 33, 'IS_IPV6' => 33, 'QUARTER' => 33, 'RADIANS' => 33, - 'REVERSE' => 33, 'SOUNDEX' => 33, 'ST_AREA' => 33, 'ST_SRID' => 33, 'SUBDATE' => 33, - 'SUBTIME' => 33, 'SYSDATE' => 33, 'TOUCHES' => 33, 'TO_DAYS' => 33, 'VAR_POP' => 33, - 'VERSION' => 33, 'WEEKDAY' => 33, - 'ASBINARY' => 33, 'CENTROID' => 33, 'COALESCE' => 33, 'COMPRESS' => 33, - 'CONTAINS' => 33, 'DATEDIFF' => 33, 'DATE_ADD' => 33, 'DATE_SUB' => 33, - 'DISJOINT' => 33, 'DISTANCE' => 33, 'ENDPOINT' => 33, 'ENVELOPE' => 33, - 'GET_LOCK' => 33, 'GREATEST' => 33, 'ISCLOSED' => 33, 'ISSIMPLE' => 33, - 'JSON_SET' => 33, 'MAKEDATE' => 33, 'MAKETIME' => 33, 'MAKE_SET' => 33, - 'MBREQUAL' => 33, 'OVERLAPS' => 33, 'PASSWORD' => 33, 'POSITION' => 33, - 'ST_ASWKB' => 33, 'ST_ASWKT' => 33, 'ST_UNION' => 33, 'TIMEDIFF' => 33, - 'TRUNCATE' => 33, 'VARIANCE' => 33, 'VAR_SAMP' => 33, 'YEARWEEK' => 33, - 'ANY_VALUE' => 33, 'BENCHMARK' => 33, 'BIT_COUNT' => 33, 'COLLATION' => 33, - 'CONCAT_WS' => 33, 'DAYOFWEEK' => 33, 'DAYOFYEAR' => 33, 'DIMENSION' => 33, - 'FROM_DAYS' => 33, 'GEOMETRYN' => 33, 'INET_ATON' => 33, 'INET_NTOA' => 33, - 'JSON_KEYS' => 33, 'JSON_TYPE' => 33, 'LOAD_FILE' => 33, 'MBRCOVERS' => 33, - 'MBREQUALS' => 33, 'MBRWITHIN' => 33, 'MONTHNAME' => 33, 'NUMPOINTS' => 33, - 'ROW_COUNT' => 33, 'ST_ASTEXT' => 33, 'ST_BUFFER' => 33, 'ST_EQUALS' => 33, - 'ST_LENGTH' => 33, 'ST_POINTN' => 33, 'ST_WITHIN' => 33, 'SUBSTRING' => 33, - 'TO_BASE64' => 33, 'UPDATEXML' => 33, - 'BIT_LENGTH' => 33, 'CONVERT_TZ' => 33, 'CONVEXHULL' => 33, 'DAYOFMONTH' => 33, - 'EXPORT_SET' => 33, 'FOUND_ROWS' => 33, 'GET_FORMAT' => 33, 'INET6_ATON' => 33, - 'INET6_NTOA' => 33, 'INTERSECTS' => 33, 'JSON_ARRAY' => 33, 'JSON_DEPTH' => 33, - 'JSON_MERGE' => 33, 'JSON_QUOTE' => 33, 'JSON_VALID' => 33, 'MBRTOUCHES' => 33, - 'MULTIPOINT' => 33, 'NAME_CONST' => 33, 'PERIOD_ADD' => 33, 'STARTPOINT' => 33, - 'STDDEV_POP' => 33, 'ST_CROSSES' => 33, 'ST_GEOHASH' => 33, 'ST_ISEMPTY' => 33, - 'ST_ISVALID' => 33, 'ST_TOUCHES' => 33, 'TO_SECONDS' => 33, 'UNCOMPRESS' => 33, - 'UUID_SHORT' => 33, 'WEEKOFYEAR' => 33, - 'AES_DECRYPT' => 33, 'AES_ENCRYPT' => 33, 'CHAR_LENGTH' => 33, 'DATE_FORMAT' => 33, - 'DES_DECRYPT' => 33, 'DES_ENCRYPT' => 33, 'FIND_IN_SET' => 33, 'FROM_BASE64' => 33, - 'GEOMFROMWKB' => 33, 'GTID_SUBSET' => 33, 'JSON_INSERT' => 33, 'JSON_LENGTH' => 33, - 'JSON_OBJECT' => 33, 'JSON_PRETTY' => 33, 'JSON_REMOVE' => 33, 'JSON_SEARCH' => 33, - 'LINEFROMWKB' => 33, 'MBRCONTAINS' => 33, 'MBRDISJOINT' => 33, 'MBROVERLAPS' => 33, - 'MICROSECOND' => 33, 'PERIOD_DIFF' => 33, 'POLYFROMWKB' => 33, 'SEC_TO_TIME' => 33, - 'STDDEV_SAMP' => 33, 'STR_TO_DATE' => 33, 'ST_ASBINARY' => 33, 'ST_CENTROID' => 33, - 'ST_CONTAINS' => 33, 'ST_DISJOINT' => 33, 'ST_DISTANCE' => 33, 'ST_ENDPOINT' => 33, - 'ST_ENVELOPE' => 33, 'ST_ISCLOSED' => 33, 'ST_ISSIMPLE' => 33, 'ST_OVERLAPS' => 33, - 'ST_SIMPLIFY' => 33, 'ST_VALIDATE' => 33, 'SYSTEM_USER' => 33, 'TIME_FORMAT' => 33, - 'TIME_TO_SEC' => 33, - 'COERCIBILITY' => 33, 'EXTERIORRING' => 33, 'EXTRACTVALUE' => 33, - 'GEOMETRYTYPE' => 33, 'GEOMFROMTEXT' => 33, 'GROUP_CONCAT' => 33, - 'IS_FREE_LOCK' => 33, 'IS_USED_LOCK' => 33, 'JSON_EXTRACT' => 33, - 'JSON_REPLACE' => 33, 'JSON_UNQUOTE' => 33, 'LINEFROMTEXT' => 33, - 'MBRCOVEREDBY' => 33, 'MLINEFROMWKB' => 33, 'MPOLYFROMWKB' => 33, - 'MULTIPOLYGON' => 33, 'OCTET_LENGTH' => 33, 'OLD_PASSWORD' => 33, - 'POINTFROMWKB' => 33, 'POLYFROMTEXT' => 33, 'RANDOM_BYTES' => 33, - 'RELEASE_LOCK' => 33, 'SESSION_USER' => 33, 'ST_ASGEOJSON' => 33, - 'ST_DIMENSION' => 33, 'ST_GEOMETRYN' => 33, 'ST_NUMPOINTS' => 33, - 'TIMESTAMPADD' => 33, - 'CONNECTION_ID' => 33, 'FROM_UNIXTIME' => 33, 'GTID_SUBTRACT' => 33, - 'INTERIORRINGN' => 33, 'JSON_CONTAINS' => 33, 'MBRINTERSECTS' => 33, - 'MLINEFROMTEXT' => 33, 'MPOINTFROMWKB' => 33, 'MPOLYFROMTEXT' => 33, - 'NUMGEOMETRIES' => 33, 'POINTFROMTEXT' => 33, 'ST_CONVEXHULL' => 33, - 'ST_DIFFERENCE' => 33, 'ST_INTERSECTS' => 33, 'ST_STARTPOINT' => 33, - 'TIMESTAMPDIFF' => 33, 'WEIGHT_STRING' => 33, - 'IS_IPV4_COMPAT' => 33, 'IS_IPV4_MAPPED' => 33, 'LAST_INSERT_ID' => 33, - 'MPOINTFROMTEXT' => 33, 'POLYGONFROMWKB' => 33, 'ST_GEOMFROMWKB' => 33, - 'ST_LINEFROMWKB' => 33, 'ST_POLYFROMWKB' => 33, 'UNIX_TIMESTAMP' => 33, - 'GEOMCOLLFROMWKB' => 33, 'MASTER_POS_WAIT' => 33, 'POLYGONFROMTEXT' => 33, - 'ST_EXTERIORRING' => 33, 'ST_GEOMETRYTYPE' => 33, 'ST_GEOMFROMTEXT' => 33, - 'ST_INTERSECTION' => 33, 'ST_LINEFROMTEXT' => 33, 'ST_MAKEENVELOPE' => 33, - 'ST_MLINEFROMWKB' => 33, 'ST_MPOLYFROMWKB' => 33, 'ST_POINTFROMWKB' => 33, - 'ST_POLYFROMTEXT' => 33, 'SUBSTRING_INDEX' => 33, - 'CHARACTER_LENGTH' => 33, 'GEOMCOLLFROMTEXT' => 33, 'GEOMETRYFROMTEXT' => 33, - 'JSON_MERGE_PATCH' => 33, 'NUMINTERIORRINGS' => 33, 'ST_INTERIORRINGN' => 33, - 'ST_MLINEFROMTEXT' => 33, 'ST_MPOINTFROMWKB' => 33, 'ST_MPOLYFROMTEXT' => 33, - 'ST_NUMGEOMETRIES' => 33, 'ST_POINTFROMTEXT' => 33, 'ST_SYMDIFFERENCE' => 33, - 'JSON_ARRAY_APPEND' => 33, 'JSON_ARRAY_INSERT' => 33, 'JSON_STORAGE_FREE' => 33, - 'JSON_STORAGE_SIZE' => 33, 'LINESTRINGFROMWKB' => 33, 'MULTIPOINTFROMWKB' => 33, - 'RELEASE_ALL_LOCKS' => 33, 'ST_LATFROMGEOHASH' => 33, 'ST_MPOINTFROMTEXT' => 33, - 'ST_POLYGONFROMWKB' => 33, - 'JSON_CONTAINS_PATH' => 33, 'MULTIPOINTFROMTEXT' => 33, 'ST_BUFFER_STRATEGY' => 33, - 'ST_DISTANCE_SPHERE' => 33, 'ST_GEOMCOLLFROMTXT' => 33, 'ST_GEOMCOLLFROMWKB' => 33, - 'ST_GEOMFROMGEOJSON' => 33, 'ST_LONGFROMGEOHASH' => 33, 'ST_POLYGONFROMTEXT' => 33, - 'JSON_MERGE_PRESERVE' => 33, 'MULTIPOLYGONFROMWKB' => 33, 'ST_GEOMCOLLFROMTEXT' => 33, - 'ST_GEOMETRYFROMTEXT' => 33, 'ST_NUMINTERIORRINGS' => 33, 'ST_POINTFROMGEOHASH' => 33, - 'UNCOMPRESSED_LENGTH' => 33, - 'MULTIPOLYGONFROMTEXT' => 33, 'ST_LINESTRINGFROMWKB' => 33, - 'ST_MULTIPOINTFROMWKB' => 33, - 'ST_MULTIPOINTFROMTEXT' => 33, - 'MULTILINESTRINGFROMWKB' => 33, 'ST_MULTIPOLYGONFROMWKB' => 33, - 'MULTILINESTRINGFROMTEXT' => 33, 'ST_MULTIPOLYGONFROMTEXT' => 33, - 'GEOMETRYCOLLECTIONFROMWKB' => 33, 'ST_MULTILINESTRINGFROMWKB' => 33, - 'GEOMETRYCOLLECTIONFROMTEXT' => 33, 'ST_MULTILINESTRINGFROMTEXT' => 33, - 'VALIDATE_PASSWORD_STRENGTH' => 33, 'WAIT_FOR_EXECUTED_GTID_SET' => 33, - 'ST_GEOMETRYCOLLECTIONFROMWKB' => 33, - 'ST_GEOMETRYCOLLECTIONFROMTEXT' => 33, - 'WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS' => 33, - - 'IF' => 35, 'IN' => 35, - 'MOD' => 35, - 'LEFT' => 35, - 'MATCH' => 35, 'RIGHT' => 35, - 'INSERT' => 35, 'REPEAT' => 35, 'SCHEMA' => 35, 'VALUES' => 35, - 'CONVERT' => 35, 'DEFAULT' => 35, 'REPLACE' => 35, - 'DATABASE' => 35, 'UTC_DATE' => 35, 'UTC_TIME' => 35, - 'LOCALTIME' => 35, - 'CURRENT_DATE' => 35, 'CURRENT_TIME' => 35, 'CURRENT_USER' => 35, - 'UTC_TIMESTAMP' => 35, - 'LOCALTIMESTAMP' => 35, - 'CURRENT_TIMESTAMP' => 35, - - 'NOT IN' => 39, - - 'DATE' => 41, 'TIME' => 41, 'YEAR' => 41, - 'POINT' => 41, - 'POLYGON' => 41, - 'TIMESTAMP' => 41, - 'LINESTRING' => 41, - 'MULTILINESTRING' => 41, - 'GEOMETRYCOLLECTION' => 41, - - 'CHAR' => 43, - 'BINARY' => 43, - 'INTERVAL' => 43, - ]; -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMariaDb100300.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMariaDb100300.php deleted file mode 100644 index c631731..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMariaDb100300.php +++ /dev/null @@ -1,361 +0,0 @@ - 1, 'DO' => 1, 'IO' => 1, 'NO' => 1, 'XA' => 1, - 'ANY' => 1, 'CPU' => 1, 'END' => 1, 'IPC' => 1, 'NDB' => 1, 'NEW' => 1, - 'ONE' => 1, 'ROW' => 1, 'XID' => 1, - 'BOOL' => 1, 'BYTE' => 1, 'CODE' => 1, 'CUBE' => 1, 'DATA' => 1, 'DISK' => 1, - 'ENDS' => 1, 'FAST' => 1, 'FILE' => 1, 'FULL' => 1, 'HASH' => 1, 'HELP' => 1, - 'HOST' => 1, 'LAST' => 1, 'LESS' => 1, 'LIST' => 1, 'LOGS' => 1, 'MODE' => 1, - 'NAME' => 1, 'NEXT' => 1, 'NONE' => 1, 'ONLY' => 1, 'OPEN' => 1, 'PAGE' => 1, - 'PORT' => 1, 'PREV' => 1, 'SLOW' => 1, 'SOME' => 1, 'STOP' => 1, 'THAN' => 1, - 'TYPE' => 1, 'VIEW' => 1, 'WAIT' => 1, 'WORK' => 1, 'X509' => 1, - 'AFTER' => 1, 'BEGIN' => 1, 'BLOCK' => 1, 'BTREE' => 1, 'CACHE' => 1, - 'CHAIN' => 1, 'CLOSE' => 1, 'ERROR' => 1, 'EVENT' => 1, 'EVERY' => 1, - 'FIRST' => 1, 'FIXED' => 1, 'FLUSH' => 1, 'FOUND' => 1, 'HOSTS' => 1, - 'LEVEL' => 1, 'LOCAL' => 1, 'LOCKS' => 1, 'MERGE' => 1, 'MUTEX' => 1, - 'NAMES' => 1, 'NCHAR' => 1, 'NEVER' => 1, 'OWNER' => 1, 'PHASE' => 1, - 'PROXY' => 1, 'QUERY' => 1, 'QUICK' => 1, 'RELAY' => 1, 'RESET' => 1, - 'RTREE' => 1, 'SHARE' => 1, 'SLAVE' => 1, 'START' => 1, 'SUPER' => 1, - 'SWAPS' => 1, 'TYPES' => 1, 'UNTIL' => 1, 'VALUE' => 1, - 'ACTION' => 1, 'ALWAYS' => 1, 'BACKUP' => 1, 'BINLOG' => 1, 'CIPHER' => 1, - 'CLIENT' => 1, 'COMMIT' => 1, 'ENABLE' => 1, 'ENGINE' => 1, 'ERRORS' => 1, - 'ESCAPE' => 1, 'EVENTS' => 1, 'EXPIRE' => 1, 'EXPORT' => 1, 'FAULTS' => 1, - 'FIELDS' => 1, 'FILTER' => 1, 'GLOBAL' => 1, 'GRANTS' => 1, 'IMPORT' => 1, - 'ISSUER' => 1, 'LEAVES' => 1, 'MASTER' => 1, 'MEDIUM' => 1, 'MEMORY' => 1, - 'MODIFY' => 1, 'NUMBER' => 1, 'OFFSET' => 1, 'PARSER' => 1, 'PLUGIN' => 1, - 'RELOAD' => 1, 'REMOVE' => 1, 'REPAIR' => 1, 'RESUME' => 1, 'ROLLUP' => 1, - 'SERVER' => 1, 'SIGNED' => 1, 'SIMPLE' => 1, 'SOCKET' => 1, 'SONAME' => 1, - 'SOUNDS' => 1, 'SOURCE' => 1, 'STARTS' => 1, 'STATUS' => 1, 'STRING' => 1, - 'TABLES' => 1, - 'ACCOUNT' => 1, 'ANALYSE' => 1, 'CHANGED' => 1, 'CHANNEL' => 1, 'COLUMNS' => 1, - 'COMMENT' => 1, 'COMPACT' => 1, 'CONTEXT' => 1, 'CURRENT' => 1, 'DEFINER' => 1, - 'DISABLE' => 1, 'DISCARD' => 1, 'DYNAMIC' => 1, 'ENGINES' => 1, 'EXECUTE' => 1, - 'FOLLOWS' => 1, 'GENERAL' => 1, 'HANDLER' => 1, 'INDEXES' => 1, 'INSTALL' => 1, - 'INVOKER' => 1, 'LOGFILE' => 1, 'MIGRATE' => 1, 'NO_WAIT' => 1, 'OPTIONS' => 1, - 'PARTIAL' => 1, 'PLUGINS' => 1, 'PREPARE' => 1, 'PROFILE' => 1, 'REBUILD' => 1, - 'RECOVER' => 1, 'RESTORE' => 1, 'RETURNS' => 1, 'ROUTINE' => 1, 'SESSION' => 1, - 'STACKED' => 1, 'STORAGE' => 1, 'SUBJECT' => 1, 'SUSPEND' => 1, 'UNICODE' => 1, - 'UNKNOWN' => 1, 'UPGRADE' => 1, 'USE_FRM' => 1, 'WITHOUT' => 1, 'WRAPPER' => 1, - 'CASCADED' => 1, 'CHECKSUM' => 1, 'DATAFILE' => 1, 'DUMPFILE' => 1, - 'EXCHANGE' => 1, 'EXTENDED' => 1, 'FUNCTION' => 1, 'LANGUAGE' => 1, - 'MAX_ROWS' => 1, 'MAX_SIZE' => 1, 'MIN_ROWS' => 1, 'NATIONAL' => 1, - 'NVARCHAR' => 1, 'PRECEDES' => 1, 'PRESERVE' => 1, 'PROFILES' => 1, - 'REDOFILE' => 1, 'RELAYLOG' => 1, 'ROLLBACK' => 1, 'SCHEDULE' => 1, - 'SECURITY' => 1, 'SEQUENCE' => 1, 'SHUTDOWN' => 1, 'SNAPSHOT' => 1, - 'SWITCHES' => 1, 'TRIGGERS' => 1, 'UNDOFILE' => 1, 'WARNINGS' => 1, - 'AGGREGATE' => 1, 'ALGORITHM' => 1, 'COMMITTED' => 1, 'DIRECTORY' => 1, - 'DUPLICATE' => 1, 'EXPANSION' => 1, 'IO_THREAD' => 1, 'ISOLATION' => 1, - 'NODEGROUP' => 1, 'PACK_KEYS' => 1, 'READ_ONLY' => 1, 'REDUNDANT' => 1, - 'SAVEPOINT' => 1, 'SQL_CACHE' => 1, 'TEMPORARY' => 1, 'TEMPTABLE' => 1, - 'UNDEFINED' => 1, 'UNINSTALL' => 1, 'VARIABLES' => 1, - 'COMPLETION' => 1, 'COMPRESSED' => 1, 'CONCURRENT' => 1, 'CONNECTION' => 1, - 'CONSISTENT' => 1, 'DEALLOCATE' => 1, 'IDENTIFIED' => 1, 'MASTER_SSL' => 1, - 'NDBCLUSTER' => 1, 'PARTITIONS' => 1, 'PERSISTENT' => 1, 'PLUGIN_DIR' => 1, - 'PRIVILEGES' => 1, 'REORGANIZE' => 1, 'REPEATABLE' => 1, 'ROW_FORMAT' => 1, - 'SQL_THREAD' => 1, 'TABLESPACE' => 1, 'TABLE_NAME' => 1, 'VALIDATION' => 1, - 'COLUMN_NAME' => 1, 'COMPRESSION' => 1, 'CURSOR_NAME' => 1, 'DIAGNOSTICS' => 1, - 'EXTENT_SIZE' => 1, 'MASTER_HOST' => 1, 'MASTER_PORT' => 1, 'MASTER_USER' => 1, - 'MYSQL_ERRNO' => 1, 'NONBLOCKING' => 1, 'PROCESSLIST' => 1, 'REPLICATION' => 1, - 'SCHEMA_NAME' => 1, 'SQL_TSI_DAY' => 1, 'TRANSACTION' => 1, 'UNCOMMITTED' => 1, - 'CATALOG_NAME' => 1, 'CLASS_ORIGIN' => 1, 'DEFAULT_AUTH' => 1, - 'DES_KEY_FILE' => 1, 'INITIAL_SIZE' => 1, 'MASTER_DELAY' => 1, - 'MESSAGE_TEXT' => 1, 'PARTITIONING' => 1, 'RELAY_THREAD' => 1, - 'SERIALIZABLE' => 1, 'SQL_NO_CACHE' => 1, 'SQL_TSI_HOUR' => 1, - 'SQL_TSI_WEEK' => 1, 'SQL_TSI_YEAR' => 1, 'SUBPARTITION' => 1, - 'COLUMN_FORMAT' => 1, 'INSERT_METHOD' => 1, 'MASTER_SSL_CA' => 1, - 'RELAY_LOG_POS' => 1, 'SQL_TSI_MONTH' => 1, 'SUBPARTITIONS' => 1, - 'AUTO_INCREMENT' => 1, 'AVG_ROW_LENGTH' => 1, 'KEY_BLOCK_SIZE' => 1, - 'MASTER_LOG_POS' => 1, 'MASTER_SSL_CRL' => 1, 'MASTER_SSL_KEY' => 1, - 'RELAY_LOG_FILE' => 1, 'SQL_TSI_MINUTE' => 1, 'SQL_TSI_SECOND' => 1, - 'TABLE_CHECKSUM' => 1, 'USER_RESOURCES' => 1, - 'AUTOEXTEND_SIZE' => 1, 'CONSTRAINT_NAME' => 1, 'DELAY_KEY_WRITE' => 1, - 'FILE_BLOCK_SIZE' => 1, 'MASTER_LOG_FILE' => 1, 'MASTER_PASSWORD' => 1, - 'MASTER_SSL_CERT' => 1, 'PARSE_GCOL_EXPR' => 1, 'REPLICATE_DO_DB' => 1, - 'SQL_AFTER_GTIDS' => 1, 'SQL_TSI_QUARTER' => 1, 'SUBCLASS_ORIGIN' => 1, - 'MASTER_SERVER_ID' => 1, 'REDO_BUFFER_SIZE' => 1, 'SQL_BEFORE_GTIDS' => 1, - 'STATS_PERSISTENT' => 1, 'UNDO_BUFFER_SIZE' => 1, - 'CONSTRAINT_SCHEMA' => 1, 'GROUP_REPLICATION' => 1, 'IGNORE_SERVER_IDS' => 1, - 'MASTER_SSL_CAPATH' => 1, 'MASTER_SSL_CIPHER' => 1, 'RETURNED_SQLSTATE' => 1, - 'SQL_BUFFER_RESULT' => 1, 'STATS_AUTO_RECALC' => 1, - 'CONSTRAINT_CATALOG' => 1, 'MASTER_RETRY_COUNT' => 1, 'MASTER_SSL_CRLPATH' => 1, - 'MAX_STATEMENT_TIME' => 1, 'REPLICATE_DO_TABLE' => 1, 'SQL_AFTER_MTS_GAPS' => 1, - 'STATS_SAMPLE_PAGES' => 1, - 'REPLICATE_IGNORE_DB' => 1, - 'MASTER_AUTO_POSITION' => 1, 'MASTER_CONNECT_RETRY' => 1, - 'MAX_QUERIES_PER_HOUR' => 1, 'MAX_UPDATES_PER_HOUR' => 1, - 'MAX_USER_CONNECTIONS' => 1, 'REPLICATE_REWRITE_DB' => 1, - 'REPLICATE_IGNORE_TABLE' => 1, - 'MASTER_HEARTBEAT_PERIOD' => 1, 'REPLICATE_WILD_DO_TABLE' => 1, - 'MAX_CONNECTIONS_PER_HOUR' => 1, - 'REPLICATE_WILD_IGNORE_TABLE' => 1, - - 'AS' => 3, 'BY' => 3, 'IS' => 3, 'ON' => 3, 'OR' => 3, 'TO' => 3, - 'ADD' => 3, 'ALL' => 3, 'AND' => 3, 'ASC' => 3, 'DEC' => 3, 'DIV' => 3, - 'FOR' => 3, 'GET' => 3, 'NOT' => 3, 'OUT' => 3, 'SQL' => 3, 'SSL' => 3, - 'USE' => 3, 'XOR' => 3, - 'BOTH' => 3, 'CALL' => 3, 'CASE' => 3, 'DESC' => 3, 'DROP' => 3, 'DUAL' => 3, - 'EACH' => 3, 'ELSE' => 3, 'EXIT' => 3, 'FROM' => 3, 'INT1' => 3, 'INT2' => 3, - 'INT3' => 3, 'INT4' => 3, 'INT8' => 3, 'INTO' => 3, 'JOIN' => 3, 'KEYS' => 3, - 'KILL' => 3, 'LIKE' => 3, 'LOAD' => 3, 'LOCK' => 3, 'LONG' => 3, 'LOOP' => 3, - 'NULL' => 3, 'READ' => 3, 'ROWS' => 3, 'SHOW' => 3, 'THEN' => 3, 'TRUE' => 3, - 'UNDO' => 3, 'WHEN' => 3, 'WITH' => 3, - 'ALTER' => 3, 'CHECK' => 3, 'CROSS' => 3, 'FALSE' => 3, 'FETCH' => 3, - 'FORCE' => 3, 'GRANT' => 3, 'GROUP' => 3, 'INNER' => 3, 'INOUT' => 3, - 'LEAVE' => 3, 'LIMIT' => 3, 'LINES' => 3, 'ORDER' => 3, 'OUTER' => 3, - 'PURGE' => 3, 'RANGE' => 3, 'READS' => 3, 'RLIKE' => 3, 'TABLE' => 3, - 'UNION' => 3, 'USAGE' => 3, 'USING' => 3, 'WHERE' => 3, 'WHILE' => 3, - 'WRITE' => 3, - 'BEFORE' => 3, 'CHANGE' => 3, 'COLUMN' => 3, 'CREATE' => 3, 'CURSOR' => 3, - 'DELETE' => 3, 'ELSEIF' => 3, 'EXCEPT' => 3, 'EXISTS' => 3, 'FLOAT4' => 3, - 'FLOAT8' => 3, 'HAVING' => 3, 'IGNORE' => 3, 'INFILE' => 3, 'LINEAR' => 3, - 'OPTION' => 3, 'REGEXP' => 3, 'RENAME' => 3, 'RETURN' => 3, 'REVOKE' => 3, - 'SELECT' => 3, 'SIGNAL' => 3, 'STORED' => 3, 'UNLOCK' => 3, 'UPDATE' => 3, - 'ANALYZE' => 3, 'BETWEEN' => 3, 'CASCADE' => 3, 'COLLATE' => 3, 'DECLARE' => 3, - 'DELAYED' => 3, 'ESCAPED' => 3, 'EXPLAIN' => 3, 'FOREIGN' => 3, 'ITERATE' => 3, - 'LEADING' => 3, 'NATURAL' => 3, 'OUTFILE' => 3, 'PRIMARY' => 3, 'RELEASE' => 3, - 'REQUIRE' => 3, 'SCHEMAS' => 3, 'TRIGGER' => 3, 'VARYING' => 3, 'VIRTUAL' => 3, - 'CONTINUE' => 3, 'DAY_HOUR' => 3, 'DESCRIBE' => 3, 'DISTINCT' => 3, - 'ENCLOSED' => 3, 'MAXVALUE' => 3, 'MODIFIES' => 3, 'OPTIMIZE' => 3, - 'RESIGNAL' => 3, 'RESTRICT' => 3, 'SPECIFIC' => 3, 'SQLSTATE' => 3, - 'STARTING' => 3, 'TRAILING' => 3, 'UNSIGNED' => 3, 'ZEROFILL' => 3, - 'CONDITION' => 3, 'DATABASES' => 3, 'GENERATED' => 3, 'INTERSECT' => 3, - 'MIDDLEINT' => 3, 'PARTITION' => 3, 'PRECISION' => 3, 'PROCEDURE' => 3, - 'RECURSIVE' => 3, 'SENSITIVE' => 3, 'SEPARATOR' => 3, - 'ACCESSIBLE' => 3, 'ASENSITIVE' => 3, 'CONSTRAINT' => 3, 'DAY_MINUTE' => 3, - 'DAY_SECOND' => 3, 'OPTIONALLY' => 3, 'READ_WRITE' => 3, 'REFERENCES' => 3, - 'SQLWARNING' => 3, 'TERMINATED' => 3, 'YEAR_MONTH' => 3, - 'DISTINCTROW' => 3, 'HOUR_MINUTE' => 3, 'HOUR_SECOND' => 3, 'INSENSITIVE' => 3, - 'MASTER_BIND' => 3, - 'LOW_PRIORITY' => 3, 'SQLEXCEPTION' => 3, 'VARCHARACTER' => 3, - 'DETERMINISTIC' => 3, 'HIGH_PRIORITY' => 3, 'MINUTE_SECOND' => 3, - 'STRAIGHT_JOIN' => 3, - 'IO_AFTER_GTIDS' => 3, 'SQL_BIG_RESULT' => 3, - 'DAY_MICROSECOND' => 3, 'IO_BEFORE_GTIDS' => 3, 'OPTIMIZER_COSTS' => 3, - 'HOUR_MICROSECOND' => 3, 'SQL_SMALL_RESULT' => 3, - 'MINUTE_MICROSECOND' => 3, 'NO_WRITE_TO_BINLOG' => 3, 'SECOND_MICROSECOND' => 3, - 'SQL_CALC_FOUND_ROWS' => 3, - 'MASTER_SSL_VERIFY_SERVER_CERT' => 3, - - 'GROUP BY' => 7, 'NOT NULL' => 7, 'ORDER BY' => 7, 'SET NULL' => 7, - 'AND CHAIN' => 7, 'FULL JOIN' => 7, 'IF EXISTS' => 7, 'LEFT JOIN' => 7, - 'LESS THAN' => 7, 'LOAD DATA' => 7, 'NO ACTION' => 7, 'ON DELETE' => 7, - 'ON UPDATE' => 7, 'UNION ALL' => 7, - 'CROSS JOIN' => 7, 'ESCAPED BY' => 7, 'FOR UPDATE' => 7, 'INNER JOIN' => 7, - 'LINEAR KEY' => 7, 'NO RELEASE' => 7, 'OR REPLACE' => 7, 'RIGHT JOIN' => 7, - 'ENCLOSED BY' => 7, 'LINEAR HASH' => 7, 'STARTING BY' => 7, - 'AND NO CHAIN' => 7, 'FOR EACH ROW' => 7, 'NATURAL JOIN' => 7, - 'PARTITION BY' => 7, 'SET PASSWORD' => 7, 'SQL SECURITY' => 7, - 'CHARACTER SET' => 7, 'IF NOT EXISTS' => 7, 'TERMINATED BY' => 7, - 'DATA DIRECTORY' => 7, 'UNION DISTINCT' => 7, - 'DEFAULT CHARSET' => 7, 'DEFAULT COLLATE' => 7, 'FULL OUTER JOIN' => 7, - 'INDEX DIRECTORY' => 7, 'LEFT OUTER JOIN' => 7, 'SUBPARTITION BY' => 7, - 'GENERATED ALWAYS' => 7, 'RIGHT OUTER JOIN' => 7, - 'NATURAL LEFT JOIN' => 7, 'START TRANSACTION' => 7, - 'LOCK IN SHARE MODE' => 7, 'NATURAL RIGHT JOIN' => 7, 'SELECT TRANSACTION' => 7, - 'DEFAULT CHARACTER SET' => 7, - 'NATURAL LEFT OUTER JOIN' => 7, - 'NATURAL RIGHT OUTER JOIN' => 7, 'WITH CONSISTENT SNAPSHOT' => 7, - - 'BIT' => 9, 'XML' => 9, - 'ENUM' => 9, 'JSON' => 9, 'TEXT' => 9, - 'ARRAY' => 9, - 'SERIAL' => 9, - 'BOOLEAN' => 9, - 'DATETIME' => 9, 'GEOMETRY' => 9, 'MULTISET' => 9, - 'MULTILINEPOINT' => 9, - 'MULTILINEPOLYGON' => 9, - - 'INT' => 11, 'SET' => 11, - 'BLOB' => 11, 'REAL' => 11, - 'FLOAT' => 11, - 'BIGINT' => 11, 'DOUBLE' => 11, - 'DECIMAL' => 11, 'INTEGER' => 11, 'NUMERIC' => 11, 'TINYINT' => 11, 'VARCHAR' => 11, - 'LONGBLOB' => 11, 'LONGTEXT' => 11, 'SMALLINT' => 11, 'TINYBLOB' => 11, - 'TINYTEXT' => 11, - 'CHARACTER' => 11, 'MEDIUMINT' => 11, 'VARBINARY' => 11, - 'MEDIUMBLOB' => 11, 'MEDIUMTEXT' => 11, - - 'BINARY VARYING' => 15, - - 'KEY' => 19, - 'INDEX' => 19, - 'UNIQUE' => 19, - 'SPATIAL' => 19, - 'FULLTEXT' => 19, - - 'INDEX KEY' => 23, - 'UNIQUE KEY' => 23, - 'FOREIGN KEY' => 23, 'PRIMARY KEY' => 23, 'SPATIAL KEY' => 23, - 'FULLTEXT KEY' => 23, 'UNIQUE INDEX' => 23, - 'SPATIAL INDEX' => 23, - 'FULLTEXT INDEX' => 23, - - 'X' => 33, 'Y' => 33, - 'LN' => 33, 'PI' => 33, - 'ABS' => 33, 'AVG' => 33, 'BIN' => 33, 'COS' => 33, 'COT' => 33, 'DAY' => 33, - 'ELT' => 33, 'EXP' => 33, 'HEX' => 33, 'LOG' => 33, 'MAX' => 33, 'MD5' => 33, - 'MID' => 33, 'MIN' => 33, 'NOW' => 33, 'OCT' => 33, 'ORD' => 33, 'POW' => 33, - 'SHA' => 33, 'SIN' => 33, 'STD' => 33, 'SUM' => 33, 'TAN' => 33, - 'ACOS' => 33, 'AREA' => 33, 'ASIN' => 33, 'ATAN' => 33, 'CAST' => 33, 'CEIL' => 33, - 'CONV' => 33, 'HOUR' => 33, 'LOG2' => 33, 'LPAD' => 33, 'RAND' => 33, 'RPAD' => 33, - 'SHA1' => 33, 'SHA2' => 33, 'SIGN' => 33, 'SQRT' => 33, 'SRID' => 33, 'ST_X' => 33, - 'ST_Y' => 33, 'TRIM' => 33, 'USER' => 33, 'UUID' => 33, 'WEEK' => 33, - 'ASCII' => 33, 'ASWKB' => 33, 'ASWKT' => 33, 'ATAN2' => 33, 'COUNT' => 33, - 'CRC32' => 33, 'FIELD' => 33, 'FLOOR' => 33, 'INSTR' => 33, 'LCASE' => 33, - 'LEAST' => 33, 'LOG10' => 33, 'LOWER' => 33, 'LTRIM' => 33, 'MONTH' => 33, - 'POWER' => 33, 'QUOTE' => 33, 'ROUND' => 33, 'RTRIM' => 33, 'SLEEP' => 33, - 'SPACE' => 33, 'UCASE' => 33, 'UNHEX' => 33, 'UPPER' => 33, - 'ASTEXT' => 33, 'BIT_OR' => 33, 'BUFFER' => 33, 'CONCAT' => 33, 'DECODE' => 33, - 'ENCODE' => 33, 'EQUALS' => 33, 'FORMAT' => 33, 'IFNULL' => 33, 'ISNULL' => 33, - 'LENGTH' => 33, 'LOCATE' => 33, 'MINUTE' => 33, 'NULLIF' => 33, 'POINTN' => 33, - 'SECOND' => 33, 'STDDEV' => 33, 'STRCMP' => 33, 'SUBSTR' => 33, 'WITHIN' => 33, - 'ADDDATE' => 33, 'ADDTIME' => 33, 'AGAINST' => 33, 'BIT_AND' => 33, 'BIT_XOR' => 33, - 'CEILING' => 33, 'CHARSET' => 33, 'CROSSES' => 33, 'CURDATE' => 33, 'CURTIME' => 33, - 'DAYNAME' => 33, 'DEGREES' => 33, 'ENCRYPT' => 33, 'EXTRACT' => 33, 'GLENGTH' => 33, - 'ISEMPTY' => 33, 'IS_IPV4' => 33, 'IS_IPV6' => 33, 'QUARTER' => 33, 'RADIANS' => 33, - 'REVERSE' => 33, 'SOUNDEX' => 33, 'ST_AREA' => 33, 'ST_SRID' => 33, 'SUBDATE' => 33, - 'SUBTIME' => 33, 'SYSDATE' => 33, 'TOUCHES' => 33, 'TO_DAYS' => 33, 'VAR_POP' => 33, - 'VERSION' => 33, 'WEEKDAY' => 33, - 'ASBINARY' => 33, 'CENTROID' => 33, 'COALESCE' => 33, 'COMPRESS' => 33, - 'CONTAINS' => 33, 'DATEDIFF' => 33, 'DATE_ADD' => 33, 'DATE_SUB' => 33, - 'DISJOINT' => 33, 'DISTANCE' => 33, 'ENDPOINT' => 33, 'ENVELOPE' => 33, - 'GET_LOCK' => 33, 'GREATEST' => 33, 'ISCLOSED' => 33, 'ISSIMPLE' => 33, - 'JSON_SET' => 33, 'MAKEDATE' => 33, 'MAKETIME' => 33, 'MAKE_SET' => 33, - 'MBREQUAL' => 33, 'OVERLAPS' => 33, 'PASSWORD' => 33, 'POSITION' => 33, - 'ST_ASWKB' => 33, 'ST_ASWKT' => 33, 'ST_UNION' => 33, 'TIMEDIFF' => 33, - 'TRUNCATE' => 33, 'VARIANCE' => 33, 'VAR_SAMP' => 33, 'YEARWEEK' => 33, - 'ANY_VALUE' => 33, 'BENCHMARK' => 33, 'BIT_COUNT' => 33, 'COLLATION' => 33, - 'CONCAT_WS' => 33, 'DAYOFWEEK' => 33, 'DAYOFYEAR' => 33, 'DIMENSION' => 33, - 'FROM_DAYS' => 33, 'GEOMETRYN' => 33, 'INET_ATON' => 33, 'INET_NTOA' => 33, - 'JSON_KEYS' => 33, 'JSON_TYPE' => 33, 'LOAD_FILE' => 33, 'MBRCOVERS' => 33, - 'MBREQUALS' => 33, 'MBRWITHIN' => 33, 'MONTHNAME' => 33, 'NUMPOINTS' => 33, - 'ROW_COUNT' => 33, 'ST_ASTEXT' => 33, 'ST_BUFFER' => 33, 'ST_EQUALS' => 33, - 'ST_LENGTH' => 33, 'ST_POINTN' => 33, 'ST_WITHIN' => 33, 'SUBSTRING' => 33, - 'TO_BASE64' => 33, 'UPDATEXML' => 33, - 'BIT_LENGTH' => 33, 'CONVERT_TZ' => 33, 'CONVEXHULL' => 33, 'DAYOFMONTH' => 33, - 'EXPORT_SET' => 33, 'FOUND_ROWS' => 33, 'GET_FORMAT' => 33, 'INET6_ATON' => 33, - 'INET6_NTOA' => 33, 'INTERSECTS' => 33, 'JSON_ARRAY' => 33, 'JSON_DEPTH' => 33, - 'JSON_MERGE' => 33, 'JSON_QUOTE' => 33, 'JSON_VALID' => 33, 'MBRTOUCHES' => 33, - 'MULTIPOINT' => 33, 'NAME_CONST' => 33, 'PERIOD_ADD' => 33, 'STARTPOINT' => 33, - 'STDDEV_POP' => 33, 'ST_CROSSES' => 33, 'ST_GEOHASH' => 33, 'ST_ISEMPTY' => 33, - 'ST_ISVALID' => 33, 'ST_TOUCHES' => 33, 'TO_SECONDS' => 33, 'UNCOMPRESS' => 33, - 'UUID_SHORT' => 33, 'WEEKOFYEAR' => 33, - 'AES_DECRYPT' => 33, 'AES_ENCRYPT' => 33, 'CHAR_LENGTH' => 33, 'DATE_FORMAT' => 33, - 'DES_DECRYPT' => 33, 'DES_ENCRYPT' => 33, 'FIND_IN_SET' => 33, 'FROM_BASE64' => 33, - 'GEOMFROMWKB' => 33, 'GTID_SUBSET' => 33, 'JSON_INSERT' => 33, 'JSON_LENGTH' => 33, - 'JSON_OBJECT' => 33, 'JSON_PRETTY' => 33, 'JSON_REMOVE' => 33, 'JSON_SEARCH' => 33, - 'LINEFROMWKB' => 33, 'MBRCONTAINS' => 33, 'MBRDISJOINT' => 33, 'MBROVERLAPS' => 33, - 'MICROSECOND' => 33, 'PERIOD_DIFF' => 33, 'POLYFROMWKB' => 33, 'SEC_TO_TIME' => 33, - 'STDDEV_SAMP' => 33, 'STR_TO_DATE' => 33, 'ST_ASBINARY' => 33, 'ST_CENTROID' => 33, - 'ST_CONTAINS' => 33, 'ST_DISJOINT' => 33, 'ST_DISTANCE' => 33, 'ST_ENDPOINT' => 33, - 'ST_ENVELOPE' => 33, 'ST_ISCLOSED' => 33, 'ST_ISSIMPLE' => 33, 'ST_OVERLAPS' => 33, - 'ST_SIMPLIFY' => 33, 'ST_VALIDATE' => 33, 'SYSTEM_USER' => 33, 'TIME_FORMAT' => 33, - 'TIME_TO_SEC' => 33, - 'COERCIBILITY' => 33, 'EXTERIORRING' => 33, 'EXTRACTVALUE' => 33, - 'GEOMETRYTYPE' => 33, 'GEOMFROMTEXT' => 33, 'GROUP_CONCAT' => 33, - 'IS_FREE_LOCK' => 33, 'IS_USED_LOCK' => 33, 'JSON_EXTRACT' => 33, - 'JSON_REPLACE' => 33, 'JSON_UNQUOTE' => 33, 'LINEFROMTEXT' => 33, - 'MBRCOVEREDBY' => 33, 'MLINEFROMWKB' => 33, 'MPOLYFROMWKB' => 33, - 'MULTIPOLYGON' => 33, 'OCTET_LENGTH' => 33, 'OLD_PASSWORD' => 33, - 'POINTFROMWKB' => 33, 'POLYFROMTEXT' => 33, 'RANDOM_BYTES' => 33, - 'RELEASE_LOCK' => 33, 'SESSION_USER' => 33, 'ST_ASGEOJSON' => 33, - 'ST_DIMENSION' => 33, 'ST_GEOMETRYN' => 33, 'ST_NUMPOINTS' => 33, - 'TIMESTAMPADD' => 33, - 'CONNECTION_ID' => 33, 'FROM_UNIXTIME' => 33, 'GTID_SUBTRACT' => 33, - 'INTERIORRINGN' => 33, 'JSON_CONTAINS' => 33, 'MBRINTERSECTS' => 33, - 'MLINEFROMTEXT' => 33, 'MPOINTFROMWKB' => 33, 'MPOLYFROMTEXT' => 33, - 'NUMGEOMETRIES' => 33, 'POINTFROMTEXT' => 33, 'ST_CONVEXHULL' => 33, - 'ST_DIFFERENCE' => 33, 'ST_INTERSECTS' => 33, 'ST_STARTPOINT' => 33, - 'TIMESTAMPDIFF' => 33, 'WEIGHT_STRING' => 33, - 'IS_IPV4_COMPAT' => 33, 'IS_IPV4_MAPPED' => 33, 'LAST_INSERT_ID' => 33, - 'MPOINTFROMTEXT' => 33, 'POLYGONFROMWKB' => 33, 'ST_GEOMFROMWKB' => 33, - 'ST_LINEFROMWKB' => 33, 'ST_POLYFROMWKB' => 33, 'UNIX_TIMESTAMP' => 33, - 'GEOMCOLLFROMWKB' => 33, 'MASTER_POS_WAIT' => 33, 'POLYGONFROMTEXT' => 33, - 'ST_EXTERIORRING' => 33, 'ST_GEOMETRYTYPE' => 33, 'ST_GEOMFROMTEXT' => 33, - 'ST_INTERSECTION' => 33, 'ST_LINEFROMTEXT' => 33, 'ST_MAKEENVELOPE' => 33, - 'ST_MLINEFROMWKB' => 33, 'ST_MPOLYFROMWKB' => 33, 'ST_POINTFROMWKB' => 33, - 'ST_POLYFROMTEXT' => 33, 'SUBSTRING_INDEX' => 33, - 'CHARACTER_LENGTH' => 33, 'GEOMCOLLFROMTEXT' => 33, 'GEOMETRYFROMTEXT' => 33, - 'JSON_MERGE_PATCH' => 33, 'NUMINTERIORRINGS' => 33, 'ST_INTERIORRINGN' => 33, - 'ST_MLINEFROMTEXT' => 33, 'ST_MPOINTFROMWKB' => 33, 'ST_MPOLYFROMTEXT' => 33, - 'ST_NUMGEOMETRIES' => 33, 'ST_POINTFROMTEXT' => 33, 'ST_SYMDIFFERENCE' => 33, - 'JSON_ARRAY_APPEND' => 33, 'JSON_ARRAY_INSERT' => 33, 'JSON_STORAGE_FREE' => 33, - 'JSON_STORAGE_SIZE' => 33, 'LINESTRINGFROMWKB' => 33, 'MULTIPOINTFROMWKB' => 33, - 'RELEASE_ALL_LOCKS' => 33, 'ST_LATFROMGEOHASH' => 33, 'ST_MPOINTFROMTEXT' => 33, - 'ST_POLYGONFROMWKB' => 33, - 'JSON_CONTAINS_PATH' => 33, 'MULTIPOINTFROMTEXT' => 33, 'ST_BUFFER_STRATEGY' => 33, - 'ST_DISTANCE_SPHERE' => 33, 'ST_GEOMCOLLFROMTXT' => 33, 'ST_GEOMCOLLFROMWKB' => 33, - 'ST_GEOMFROMGEOJSON' => 33, 'ST_LONGFROMGEOHASH' => 33, 'ST_POLYGONFROMTEXT' => 33, - 'JSON_MERGE_PRESERVE' => 33, 'MULTIPOLYGONFROMWKB' => 33, 'ST_GEOMCOLLFROMTEXT' => 33, - 'ST_GEOMETRYFROMTEXT' => 33, 'ST_NUMINTERIORRINGS' => 33, 'ST_POINTFROMGEOHASH' => 33, - 'UNCOMPRESSED_LENGTH' => 33, - 'MULTIPOLYGONFROMTEXT' => 33, 'ST_LINESTRINGFROMWKB' => 33, - 'ST_MULTIPOINTFROMWKB' => 33, - 'ST_MULTIPOINTFROMTEXT' => 33, - 'MULTILINESTRINGFROMWKB' => 33, 'ST_MULTIPOLYGONFROMWKB' => 33, - 'MULTILINESTRINGFROMTEXT' => 33, 'ST_MULTIPOLYGONFROMTEXT' => 33, - 'GEOMETRYCOLLECTIONFROMWKB' => 33, 'ST_MULTILINESTRINGFROMWKB' => 33, - 'GEOMETRYCOLLECTIONFROMTEXT' => 33, 'ST_MULTILINESTRINGFROMTEXT' => 33, - 'VALIDATE_PASSWORD_STRENGTH' => 33, 'WAIT_FOR_EXECUTED_GTID_SET' => 33, - 'ST_GEOMETRYCOLLECTIONFROMWKB' => 33, - 'ST_GEOMETRYCOLLECTIONFROMTEXT' => 33, - 'WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS' => 33, - - 'IF' => 35, 'IN' => 35, - 'MOD' => 35, - 'LEFT' => 35, - 'MATCH' => 35, 'RIGHT' => 35, - 'INSERT' => 35, 'REPEAT' => 35, 'SCHEMA' => 35, 'VALUES' => 35, - 'CONVERT' => 35, 'DEFAULT' => 35, 'REPLACE' => 35, - 'DATABASE' => 35, 'UTC_DATE' => 35, 'UTC_TIME' => 35, - 'LOCALTIME' => 35, - 'CURRENT_DATE' => 35, 'CURRENT_TIME' => 35, 'CURRENT_USER' => 35, - 'UTC_TIMESTAMP' => 35, - 'LOCALTIMESTAMP' => 35, - 'CURRENT_TIMESTAMP' => 35, - - 'NOT IN' => 39, - - 'DATE' => 41, 'TIME' => 41, 'YEAR' => 41, - 'POINT' => 41, - 'POLYGON' => 41, - 'TIMESTAMP' => 41, - 'LINESTRING' => 41, - 'MULTILINESTRING' => 41, - 'GEOMETRYCOLLECTION' => 41, - - 'CHAR' => 43, - 'BINARY' => 43, - 'INTERVAL' => 43, - ]; -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMySql50000.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMySql50000.php deleted file mode 100644 index 7621623..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMySql50000.php +++ /dev/null @@ -1,282 +0,0 @@ - 1, 'IO' => 1, 'NO' => 1, 'XA' => 1, - 'ANY' => 1, 'BDB' => 1, 'CPU' => 1, 'END' => 1, 'IPC' => 1, 'NDB' => 1, - 'NEW' => 1, 'ONE' => 1, 'ROW' => 1, - 'BOOL' => 1, 'BYTE' => 1, 'CODE' => 1, 'CUBE' => 1, 'DATA' => 1, 'FAST' => 1, - 'FILE' => 1, 'FULL' => 1, 'HASH' => 1, 'HELP' => 1, 'LAST' => 1, 'LOGS' => 1, - 'MODE' => 1, 'NAME' => 1, 'NEXT' => 1, 'NONE' => 1, 'OPEN' => 1, 'PAGE' => 1, - 'PREV' => 1, 'ROWS' => 1, 'SOME' => 1, 'STOP' => 1, 'TYPE' => 1, 'VIEW' => 1, - 'WORK' => 1, 'X509' => 1, - 'AFTER' => 1, 'BEGIN' => 1, 'BLOCK' => 1, 'BTREE' => 1, 'CACHE' => 1, - 'CHAIN' => 1, 'CLOSE' => 1, 'FIRST' => 1, 'FIXED' => 1, 'FLUSH' => 1, - 'FOUND' => 1, 'HOSTS' => 1, 'LEVEL' => 1, 'LOCAL' => 1, 'LOCKS' => 1, - 'MERGE' => 1, 'MUTEX' => 1, 'NAMES' => 1, 'NCHAR' => 1, 'PHASE' => 1, - 'QUERY' => 1, 'QUICK' => 1, 'RAID0' => 1, 'RESET' => 1, 'RTREE' => 1, - 'SHARE' => 1, 'SLAVE' => 1, 'START' => 1, 'SUPER' => 1, 'SWAPS' => 1, - 'TYPES' => 1, 'UNTIL' => 1, 'VALUE' => 1, - 'ACTION' => 1, 'BACKUP' => 1, 'BINLOG' => 1, 'CIPHER' => 1, 'CLIENT' => 1, - 'COMMIT' => 1, 'ENABLE' => 1, 'ENGINE' => 1, 'ERRORS' => 1, 'ESCAPE' => 1, - 'EVENTS' => 1, 'FAULTS' => 1, 'FIELDS' => 1, 'GLOBAL' => 1, 'GRANTS' => 1, - 'IMPORT' => 1, 'INNODB' => 1, 'ISSUER' => 1, 'LEAVES' => 1, 'MASTER' => 1, - 'MEDIUM' => 1, 'MEMORY' => 1, 'MODIFY' => 1, 'OFFSET' => 1, 'RELOAD' => 1, - 'REPAIR' => 1, 'RESUME' => 1, 'ROLLUP' => 1, 'SIGNED' => 1, 'SIMPLE' => 1, - 'SOUNDS' => 1, 'SOURCE' => 1, 'STATUS' => 1, 'STRING' => 1, 'TABLES' => 1, - 'CHANGED' => 1, 'COLUMNS' => 1, 'COMMENT' => 1, 'COMPACT' => 1, 'CONTEXT' => 1, - 'DEFINER' => 1, 'DISABLE' => 1, 'DISCARD' => 1, 'DYNAMIC' => 1, 'ENGINES' => 1, - 'EXECUTE' => 1, 'HANDLER' => 1, 'INDEXES' => 1, 'INVOKER' => 1, 'MIGRATE' => 1, - 'PARTIAL' => 1, 'PREPARE' => 1, 'PROFILE' => 1, 'RECOVER' => 1, 'RESTORE' => 1, - 'RETURNS' => 1, 'ROUTINE' => 1, 'SESSION' => 1, 'STORAGE' => 1, 'STRIPED' => 1, - 'SUBJECT' => 1, 'SUSPEND' => 1, 'UNICODE' => 1, 'UNKNOWN' => 1, 'UPGRADE' => 1, - 'USE_FRM' => 1, 'VIRTUAL' => 1, - 'CASCADED' => 1, 'CHECKSUM' => 1, 'DUMPFILE' => 1, 'EXTENDED' => 1, - 'FUNCTION' => 1, 'INNOBASE' => 1, 'LANGUAGE' => 1, 'MAX_ROWS' => 1, - 'MIN_ROWS' => 1, 'NATIONAL' => 1, 'NVARCHAR' => 1, 'ONE_SHOT' => 1, - 'PROFILES' => 1, 'ROLLBACK' => 1, 'SECURITY' => 1, 'SHUTDOWN' => 1, - 'SNAPSHOT' => 1, 'SWITCHES' => 1, 'TRIGGERS' => 1, 'WARNINGS' => 1, - 'AGGREGATE' => 1, 'ALGORITHM' => 1, 'COMMITTED' => 1, 'DIRECTORY' => 1, - 'DUPLICATE' => 1, 'EXPANSION' => 1, 'IO_THREAD' => 1, 'ISOLATION' => 1, - 'PACK_KEYS' => 1, 'RAID_TYPE' => 1, 'REDUNDANT' => 1, 'SAVEPOINT' => 1, - 'SQL_CACHE' => 1, 'TEMPORARY' => 1, 'TEMPTABLE' => 1, 'UNDEFINED' => 1, - 'VARIABLES' => 1, - 'BERKELEYDB' => 1, 'COMPRESSED' => 1, 'CONCURRENT' => 1, 'CONNECTION' => 1, - 'CONSISTENT' => 1, 'DEALLOCATE' => 1, 'IDENTIFIED' => 1, 'MASTER_SSL' => 1, - 'NDBCLUSTER' => 1, 'PARTITIONS' => 1, 'PERSISTENT' => 1, 'PRIVILEGES' => 1, - 'REPEATABLE' => 1, 'ROW_FORMAT' => 1, 'SQL_THREAD' => 1, 'TABLESPACE' => 1, - 'FRAC_SECOND' => 1, 'MASTER_HOST' => 1, 'MASTER_PORT' => 1, 'MASTER_USER' => 1, - 'PROCESSLIST' => 1, 'RAID_CHUNKS' => 1, 'REPLICATION' => 1, 'SQL_TSI_DAY' => 1, - 'TRANSACTION' => 1, 'UNCOMMITTED' => 1, - 'DES_KEY_FILE' => 1, 'RELAY_THREAD' => 1, 'SERIALIZABLE' => 1, - 'SQL_NO_CACHE' => 1, 'SQL_TSI_HOUR' => 1, 'SQL_TSI_WEEK' => 1, - 'SQL_TSI_YEAR' => 1, - 'INSERT_METHOD' => 1, 'MASTER_SSL_CA' => 1, 'RELAY_LOG_POS' => 1, - 'SQL_TSI_MONTH' => 1, 'SUBPARTITIONS' => 1, - 'AUTO_INCREMENT' => 1, 'AVG_ROW_LENGTH' => 1, 'MASTER_LOG_POS' => 1, - 'MASTER_SSL_KEY' => 1, 'RAID_CHUNKSIZE' => 1, 'RELAY_LOG_FILE' => 1, - 'SQL_TSI_MINUTE' => 1, 'SQL_TSI_SECOND' => 1, 'USER_RESOURCES' => 1, - 'DELAY_KEY_WRITE' => 1, 'MASTER_LOG_FILE' => 1, 'MASTER_PASSWORD' => 1, - 'MASTER_SSL_CERT' => 1, 'SQL_TSI_QUARTER' => 1, - 'MASTER_SERVER_ID' => 1, - 'MASTER_SSL_CAPATH' => 1, 'MASTER_SSL_CIPHER' => 1, 'SQL_BUFFER_RESULT' => 1, - 'SQL_TSI_FRAC_SECOND' => 1, - 'MASTER_CONNECT_RETRY' => 1, 'MAX_QUERIES_PER_HOUR' => 1, - 'MAX_UPDATES_PER_HOUR' => 1, 'MAX_USER_CONNECTIONS' => 1, - 'MAX_CONNECTIONS_PER_HOUR' => 1, - - 'AS' => 3, 'BY' => 3, 'IS' => 3, 'ON' => 3, 'OR' => 3, 'TO' => 3, - 'ADD' => 3, 'ALL' => 3, 'AND' => 3, 'ASC' => 3, 'DEC' => 3, 'DIV' => 3, - 'FOR' => 3, 'NOT' => 3, 'OUT' => 3, 'SQL' => 3, 'SSL' => 3, 'USE' => 3, - 'XOR' => 3, - 'BOTH' => 3, 'CALL' => 3, 'CASE' => 3, 'DESC' => 3, 'DROP' => 3, 'DUAL' => 3, - 'EACH' => 3, 'ELSE' => 3, 'EXIT' => 3, 'FROM' => 3, 'INT1' => 3, 'INT2' => 3, - 'INT3' => 3, 'INT4' => 3, 'INT8' => 3, 'INTO' => 3, 'JOIN' => 3, 'KEYS' => 3, - 'KILL' => 3, 'LIKE' => 3, 'LOAD' => 3, 'LOCK' => 3, 'LONG' => 3, 'LOOP' => 3, - 'NULL' => 3, 'READ' => 3, 'SHOW' => 3, 'THEN' => 3, 'TRUE' => 3, 'UNDO' => 3, - 'WHEN' => 3, 'WITH' => 3, - 'ALTER' => 3, 'CHECK' => 3, 'CROSS' => 3, 'FALSE' => 3, 'FETCH' => 3, - 'FORCE' => 3, 'GRANT' => 3, 'GROUP' => 3, 'INNER' => 3, 'INOUT' => 3, - 'LEAVE' => 3, 'LIMIT' => 3, 'LINES' => 3, 'ORDER' => 3, 'OUTER' => 3, - 'PURGE' => 3, 'READS' => 3, 'RLIKE' => 3, 'TABLE' => 3, 'UNION' => 3, - 'USAGE' => 3, 'USING' => 3, 'WHERE' => 3, 'WHILE' => 3, 'WRITE' => 3, - 'BEFORE' => 3, 'CHANGE' => 3, 'COLUMN' => 3, 'CREATE' => 3, 'CURSOR' => 3, - 'DELETE' => 3, 'ELSEIF' => 3, 'EXISTS' => 3, 'FLOAT4' => 3, 'FLOAT8' => 3, - 'HAVING' => 3, 'IGNORE' => 3, 'INFILE' => 3, 'OPTION' => 3, 'REGEXP' => 3, - 'RENAME' => 3, 'RETURN' => 3, 'REVOKE' => 3, 'SELECT' => 3, 'SONAME' => 3, - 'UNLOCK' => 3, 'UPDATE' => 3, - 'ANALYZE' => 3, 'BETWEEN' => 3, 'CASCADE' => 3, 'COLLATE' => 3, 'DECLARE' => 3, - 'DELAYED' => 3, 'ESCAPED' => 3, 'EXPLAIN' => 3, 'FOREIGN' => 3, 'ITERATE' => 3, - 'LEADING' => 3, 'NATURAL' => 3, 'OUTFILE' => 3, 'PRIMARY' => 3, 'RELEASE' => 3, - 'REQUIRE' => 3, 'SCHEMAS' => 3, 'TRIGGER' => 3, 'VARYING' => 3, - 'CONTINUE' => 3, 'DAY_HOUR' => 3, 'DESCRIBE' => 3, 'DISTINCT' => 3, - 'ENCLOSED' => 3, 'MODIFIES' => 3, 'OPTIMIZE' => 3, 'RESTRICT' => 3, - 'SPECIFIC' => 3, 'SQLSTATE' => 3, 'STARTING' => 3, 'TRAILING' => 3, - 'UNSIGNED' => 3, 'ZEROFILL' => 3, - 'CONDITION' => 3, 'DATABASES' => 3, 'MIDDLEINT' => 3, 'PRECISION' => 3, - 'PROCEDURE' => 3, 'SENSITIVE' => 3, 'SEPARATOR' => 3, - 'ASENSITIVE' => 3, 'CONSTRAINT' => 3, 'DAY_MINUTE' => 3, 'DAY_SECOND' => 3, - 'OPTIONALLY' => 3, 'REFERENCES' => 3, 'SQLWARNING' => 3, 'TERMINATED' => 3, - 'YEAR_MONTH' => 3, - 'DISTINCTROW' => 3, 'HOUR_MINUTE' => 3, 'HOUR_SECOND' => 3, 'INSENSITIVE' => 3, - 'LOW_PRIORITY' => 3, 'SQLEXCEPTION' => 3, 'VARCHARACTER' => 3, - 'DETERMINISTIC' => 3, 'HIGH_PRIORITY' => 3, 'MINUTE_SECOND' => 3, - 'STRAIGHT_JOIN' => 3, - 'SQL_BIG_RESULT' => 3, - 'DAY_MICROSECOND' => 3, - 'HOUR_MICROSECOND' => 3, 'SQL_SMALL_RESULT' => 3, - 'MINUTE_MICROSECOND' => 3, 'NO_WRITE_TO_BINLOG' => 3, 'SECOND_MICROSECOND' => 3, - 'SQL_CALC_FOUND_ROWS' => 3, - - 'GROUP BY' => 7, 'NOT NULL' => 7, 'ORDER BY' => 7, 'SET NULL' => 7, - 'AND CHAIN' => 7, 'FULL JOIN' => 7, 'IF EXISTS' => 7, 'LEFT JOIN' => 7, - 'LESS THAN' => 7, 'LOAD DATA' => 7, 'NO ACTION' => 7, 'ON DELETE' => 7, - 'ON UPDATE' => 7, 'UNION ALL' => 7, - 'CROSS JOIN' => 7, 'ESCAPED BY' => 7, 'FOR UPDATE' => 7, 'INNER JOIN' => 7, - 'LINEAR KEY' => 7, 'NO RELEASE' => 7, 'OR REPLACE' => 7, 'RIGHT JOIN' => 7, - 'ENCLOSED BY' => 7, 'LINEAR HASH' => 7, 'STARTING BY' => 7, - 'AND NO CHAIN' => 7, 'FOR EACH ROW' => 7, 'NATURAL JOIN' => 7, - 'PARTITION BY' => 7, 'SET PASSWORD' => 7, 'SQL SECURITY' => 7, - 'CHARACTER SET' => 7, 'IF NOT EXISTS' => 7, 'TERMINATED BY' => 7, - 'DATA DIRECTORY' => 7, 'UNION DISTINCT' => 7, - 'DEFAULT CHARSET' => 7, 'DEFAULT COLLATE' => 7, 'FULL OUTER JOIN' => 7, - 'INDEX DIRECTORY' => 7, 'LEFT OUTER JOIN' => 7, 'SUBPARTITION BY' => 7, - 'GENERATED ALWAYS' => 7, 'RIGHT OUTER JOIN' => 7, - 'NATURAL LEFT JOIN' => 7, 'START TRANSACTION' => 7, - 'LOCK IN SHARE MODE' => 7, 'NATURAL RIGHT JOIN' => 7, 'SELECT TRANSACTION' => 7, - 'DEFAULT CHARACTER SET' => 7, - 'NATURAL LEFT OUTER JOIN' => 7, - 'NATURAL RIGHT OUTER JOIN' => 7, 'WITH CONSISTENT SNAPSHOT' => 7, - - 'BIT' => 9, 'XML' => 9, - 'ENUM' => 9, 'JSON' => 9, 'TEXT' => 9, - 'ARRAY' => 9, - 'SERIAL' => 9, - 'BOOLEAN' => 9, - 'DATETIME' => 9, 'GEOMETRY' => 9, 'MULTISET' => 9, - 'MULTILINEPOINT' => 9, - 'MULTILINEPOLYGON' => 9, - - 'INT' => 11, 'SET' => 11, - 'BLOB' => 11, 'REAL' => 11, - 'FLOAT' => 11, - 'BIGINT' => 11, 'DOUBLE' => 11, - 'DECIMAL' => 11, 'INTEGER' => 11, 'NUMERIC' => 11, 'TINYINT' => 11, 'VARCHAR' => 11, - 'LONGBLOB' => 11, 'LONGTEXT' => 11, 'SMALLINT' => 11, 'TINYBLOB' => 11, - 'TINYTEXT' => 11, - 'CHARACTER' => 11, 'MEDIUMINT' => 11, 'VARBINARY' => 11, - 'MEDIUMBLOB' => 11, 'MEDIUMTEXT' => 11, - - 'BINARY VARYING' => 15, - - 'KEY' => 19, - 'INDEX' => 19, - 'UNIQUE' => 19, - 'SPATIAL' => 19, - 'FULLTEXT' => 19, - - 'INDEX KEY' => 23, - 'UNIQUE KEY' => 23, - 'FOREIGN KEY' => 23, 'PRIMARY KEY' => 23, 'SPATIAL KEY' => 23, - 'FULLTEXT KEY' => 23, 'UNIQUE INDEX' => 23, - 'SPATIAL INDEX' => 23, - 'FULLTEXT INDEX' => 23, - - 'X' => 33, 'Y' => 33, - 'LN' => 33, 'PI' => 33, - 'ABS' => 33, 'AVG' => 33, 'BIN' => 33, 'COS' => 33, 'COT' => 33, 'DAY' => 33, - 'ELT' => 33, 'EXP' => 33, 'HEX' => 33, 'LOG' => 33, 'MAX' => 33, 'MD5' => 33, - 'MID' => 33, 'MIN' => 33, 'NOW' => 33, 'OCT' => 33, 'ORD' => 33, 'POW' => 33, - 'SIN' => 33, 'STD' => 33, 'SUM' => 33, 'TAN' => 33, - 'ACOS' => 33, 'AREA' => 33, 'ASIN' => 33, 'ATAN' => 33, 'CAST' => 33, 'CEIL' => 33, - 'CONV' => 33, 'HOUR' => 33, 'LOG2' => 33, 'LPAD' => 33, 'RAND' => 33, 'RPAD' => 33, - 'SHA1' => 33, 'SIGN' => 33, 'SQRT' => 33, 'SRID' => 33, 'TRIM' => 33, 'USER' => 33, - 'UUID' => 33, 'WEEK' => 33, - 'ASCII' => 33, 'ATAN2' => 33, 'COUNT' => 33, 'CRC32' => 33, 'FIELD' => 33, - 'FLOOR' => 33, 'INSTR' => 33, 'LCASE' => 33, 'LEAST' => 33, 'LOG10' => 33, - 'LOWER' => 33, 'LTRIM' => 33, 'MONTH' => 33, 'POWER' => 33, 'QUOTE' => 33, - 'ROUND' => 33, 'RTRIM' => 33, 'SLEEP' => 33, 'SPACE' => 33, 'UCASE' => 33, - 'UNHEX' => 33, 'UPPER' => 33, - 'ASTEXT' => 33, 'BIT_OR' => 33, 'CONCAT' => 33, 'DECODE' => 33, 'ENCODE' => 33, - 'EQUALS' => 33, 'FORMAT' => 33, 'IFNULL' => 33, 'ISNULL' => 33, 'LENGTH' => 33, - 'LOCATE' => 33, 'MINUTE' => 33, 'NULLIF' => 33, 'POINTN' => 33, 'SECOND' => 33, - 'STDDEV' => 33, 'STRCMP' => 33, 'SUBSTR' => 33, 'WITHIN' => 33, - 'ADDDATE' => 33, 'ADDTIME' => 33, 'AGAINST' => 33, 'BIT_AND' => 33, 'BIT_XOR' => 33, - 'CEILING' => 33, 'CHARSET' => 33, 'CROSSES' => 33, 'CURDATE' => 33, 'CURTIME' => 33, - 'DAYNAME' => 33, 'DEGREES' => 33, 'ENCRYPT' => 33, 'EXTRACT' => 33, 'GLENGTH' => 33, - 'ISEMPTY' => 33, 'QUARTER' => 33, 'RADIANS' => 33, 'REVERSE' => 33, 'SOUNDEX' => 33, - 'SUBDATE' => 33, 'SUBTIME' => 33, 'SYSDATE' => 33, 'TOUCHES' => 33, 'TO_DAYS' => 33, - 'VAR_POP' => 33, 'VERSION' => 33, 'WEEKDAY' => 33, - 'ASBINARY' => 33, 'CENTROID' => 33, 'COALESCE' => 33, 'COMPRESS' => 33, - 'CONTAINS' => 33, 'DATEDIFF' => 33, 'DATE_ADD' => 33, 'DATE_SUB' => 33, - 'DISJOINT' => 33, 'ENDPOINT' => 33, 'ENVELOPE' => 33, 'GET_LOCK' => 33, - 'GREATEST' => 33, 'ISCLOSED' => 33, 'ISSIMPLE' => 33, 'MAKEDATE' => 33, - 'MAKETIME' => 33, 'MAKE_SET' => 33, 'MBREQUAL' => 33, 'OVERLAPS' => 33, - 'PASSWORD' => 33, 'POSITION' => 33, 'TIMEDIFF' => 33, 'TRUNCATE' => 33, - 'VARIANCE' => 33, 'VAR_SAMP' => 33, 'YEARWEEK' => 33, - 'BENCHMARK' => 33, 'BIT_COUNT' => 33, 'COLLATION' => 33, 'CONCAT_WS' => 33, - 'DAYOFWEEK' => 33, 'DAYOFYEAR' => 33, 'DIMENSION' => 33, 'FROM_DAYS' => 33, - 'GEOMETRYN' => 33, 'INET_ATON' => 33, 'INET_NTOA' => 33, 'LOAD_FILE' => 33, - 'MBRWITHIN' => 33, 'MONTHNAME' => 33, 'NUMPOINTS' => 33, 'ROW_COUNT' => 33, - 'SUBSTRING' => 33, - 'BIT_LENGTH' => 33, 'CONVERT_TZ' => 33, 'DAYOFMONTH' => 33, 'EXPORT_SET' => 33, - 'FOUND_ROWS' => 33, 'GET_FORMAT' => 33, 'INTERSECTS' => 33, 'MBRTOUCHES' => 33, - 'MULTIPOINT' => 33, 'NAME_CONST' => 33, 'PERIOD_ADD' => 33, 'STARTPOINT' => 33, - 'STDDEV_POP' => 33, 'UNCOMPRESS' => 33, 'WEEKOFYEAR' => 33, - 'AES_DECRYPT' => 33, 'AES_ENCRYPT' => 33, 'CHAR_LENGTH' => 33, 'DATE_FORMAT' => 33, - 'DES_DECRYPT' => 33, 'DES_ENCRYPT' => 33, 'FIND_IN_SET' => 33, 'GEOMFROMWKB' => 33, - 'LINEFROMWKB' => 33, 'MBRCONTAINS' => 33, 'MBRDISJOINT' => 33, 'MBROVERLAPS' => 33, - 'MICROSECOND' => 33, 'PERIOD_DIFF' => 33, 'POLYFROMWKB' => 33, 'SEC_TO_TIME' => 33, - 'STDDEV_SAMP' => 33, 'STR_TO_DATE' => 33, 'SYSTEM_USER' => 33, 'TIME_FORMAT' => 33, - 'TIME_TO_SEC' => 33, - 'COERCIBILITY' => 33, 'EXTERIORRING' => 33, 'GEOMETRYTYPE' => 33, - 'GEOMFROMTEXT' => 33, 'GROUP_CONCAT' => 33, 'IS_FREE_LOCK' => 33, - 'IS_USED_LOCK' => 33, 'LINEFROMTEXT' => 33, 'MLINEFROMWKB' => 33, - 'MPOLYFROMWKB' => 33, 'MULTIPOLYGON' => 33, 'OCTET_LENGTH' => 33, - 'OLD_PASSWORD' => 33, 'POINTFROMWKB' => 33, 'POLYFROMTEXT' => 33, - 'RELEASE_LOCK' => 33, 'SESSION_USER' => 33, 'TIMESTAMPADD' => 33, - 'CONNECTION_ID' => 33, 'FROM_UNIXTIME' => 33, 'INTERIORRINGN' => 33, - 'MBRINTERSECTS' => 33, 'MLINEFROMTEXT' => 33, 'MPOINTFROMWKB' => 33, - 'MPOLYFROMTEXT' => 33, 'NUMGEOMETRIES' => 33, 'POINTFROMTEXT' => 33, - 'TIMESTAMPDIFF' => 33, - 'LAST_INSERT_ID' => 33, 'MPOINTFROMTEXT' => 33, 'UNIX_TIMESTAMP' => 33, - 'GEOMCOLLFROMWKB' => 33, 'MASTER_POS_WAIT' => 33, 'SUBSTRING_INDEX' => 33, - 'CHARACTER_LENGTH' => 33, 'GEOMCOLLFROMTEXT' => 33, 'NUMINTERIORRINGS' => 33, - 'UNCOMPRESSED_LENGTH' => 33, - - 'IF' => 35, 'IN' => 35, - 'MOD' => 35, - 'LEFT' => 35, - 'MATCH' => 35, 'RIGHT' => 35, - 'INSERT' => 35, 'REPEAT' => 35, 'SCHEMA' => 35, 'VALUES' => 35, - 'CONVERT' => 35, 'DEFAULT' => 35, 'REPLACE' => 35, - 'DATABASE' => 35, 'UTC_DATE' => 35, 'UTC_TIME' => 35, - 'LOCALTIME' => 35, - 'CURRENT_DATE' => 35, 'CURRENT_TIME' => 35, 'CURRENT_USER' => 35, - 'UTC_TIMESTAMP' => 35, - 'LOCALTIMESTAMP' => 35, - 'CURRENT_TIMESTAMP' => 35, - - 'NOT IN' => 39, - - 'DATE' => 41, 'TIME' => 41, 'YEAR' => 41, - 'POINT' => 41, - 'POLYGON' => 41, - 'TIMESTAMP' => 41, - 'LINESTRING' => 41, - 'MULTILINESTRING' => 41, - 'GEOMETRYCOLLECTION' => 41, - - 'CHAR' => 43, - 'BINARY' => 43, - 'INTERVAL' => 43, - ]; -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMySql50100.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMySql50100.php deleted file mode 100644 index dbf8f86..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMySql50100.php +++ /dev/null @@ -1,307 +0,0 @@ - 1, 'DO' => 1, 'IO' => 1, 'NO' => 1, 'XA' => 1, - 'ANY' => 1, 'BDB' => 1, 'CPU' => 1, 'END' => 1, 'IPC' => 1, 'NDB' => 1, - 'NEW' => 1, 'ONE' => 1, 'ROW' => 1, - 'BOOL' => 1, 'BYTE' => 1, 'CODE' => 1, 'CUBE' => 1, 'DATA' => 1, 'DISK' => 1, - 'ENDS' => 1, 'FAST' => 1, 'FILE' => 1, 'FULL' => 1, 'GOTO' => 1, 'HASH' => 1, - 'HELP' => 1, 'HOST' => 1, 'LAST' => 1, 'LESS' => 1, 'LIST' => 1, 'LOGS' => 1, - 'MODE' => 1, 'NAME' => 1, 'NEXT' => 1, 'NONE' => 1, 'OPEN' => 1, 'PAGE' => 1, - 'PORT' => 1, 'PREV' => 1, 'ROWS' => 1, 'SOME' => 1, 'STOP' => 1, 'THAN' => 1, - 'TYPE' => 1, 'VIEW' => 1, 'WAIT' => 1, 'WORK' => 1, 'X509' => 1, - 'AFTER' => 1, 'BEGIN' => 1, 'BLOCK' => 1, 'BTREE' => 1, 'CACHE' => 1, - 'CHAIN' => 1, 'CLOSE' => 1, 'EVENT' => 1, 'EVERY' => 1, 'FIRST' => 1, - 'FIXED' => 1, 'FLUSH' => 1, 'FOUND' => 1, 'HOSTS' => 1, 'LABEL' => 1, - 'LEVEL' => 1, 'LOCAL' => 1, 'LOCKS' => 1, 'MERGE' => 1, 'MUTEX' => 1, - 'NAMES' => 1, 'NCHAR' => 1, 'OWNER' => 1, 'PHASE' => 1, 'QUERY' => 1, - 'QUICK' => 1, 'RAID0' => 1, 'RESET' => 1, 'RTREE' => 1, 'SHARE' => 1, - 'SLAVE' => 1, 'START' => 1, 'SUPER' => 1, 'SWAPS' => 1, 'TYPES' => 1, - 'UNTIL' => 1, 'VALUE' => 1, - 'ACTION' => 1, 'BACKUP' => 1, 'BINLOG' => 1, 'CIPHER' => 1, 'CLIENT' => 1, - 'COMMIT' => 1, 'ENABLE' => 1, 'ENGINE' => 1, 'ERRORS' => 1, 'ESCAPE' => 1, - 'EVENTS' => 1, 'FAULTS' => 1, 'FIELDS' => 1, 'GLOBAL' => 1, 'GRANTS' => 1, - 'IMPORT' => 1, 'INNODB' => 1, 'ISSUER' => 1, 'LEAVES' => 1, 'MASTER' => 1, - 'MEDIUM' => 1, 'MEMORY' => 1, 'MODIFY' => 1, 'OFFSET' => 1, 'PARSER' => 1, - 'PLUGIN' => 1, 'RELOAD' => 1, 'REMOVE' => 1, 'REPAIR' => 1, 'RESUME' => 1, - 'ROLLUP' => 1, 'SERVER' => 1, 'SIGNED' => 1, 'SIMPLE' => 1, 'SOCKET' => 1, - 'SONAME' => 1, 'SOUNDS' => 1, 'SOURCE' => 1, 'STARTS' => 1, 'STATUS' => 1, - 'STRING' => 1, 'TABLES' => 1, - 'AUTHORS' => 1, 'CHANGED' => 1, 'COLUMNS' => 1, 'COMMENT' => 1, 'COMPACT' => 1, - 'CONTEXT' => 1, 'DEFINER' => 1, 'DISABLE' => 1, 'DISCARD' => 1, 'DYNAMIC' => 1, - 'ENGINES' => 1, 'EXECUTE' => 1, 'HANDLER' => 1, 'INDEXES' => 1, 'INSTALL' => 1, - 'INVOKER' => 1, 'LOGFILE' => 1, 'MIGRATE' => 1, 'NO_WAIT' => 1, 'OPTIONS' => 1, - 'PARTIAL' => 1, 'PLUGINS' => 1, 'PREPARE' => 1, 'PROFILE' => 1, 'REBUILD' => 1, - 'RECOVER' => 1, 'RESTORE' => 1, 'RETURNS' => 1, 'ROUTINE' => 1, 'SESSION' => 1, - 'STORAGE' => 1, 'STRIPED' => 1, 'SUBJECT' => 1, 'SUSPEND' => 1, 'UNICODE' => 1, - 'UNKNOWN' => 1, 'UPGRADE' => 1, 'USE_FRM' => 1, 'VIRTUAL' => 1, 'WRAPPER' => 1, - 'CASCADED' => 1, 'CHECKSUM' => 1, 'DATAFILE' => 1, 'DUMPFILE' => 1, - 'EXTENDED' => 1, 'FUNCTION' => 1, 'INNOBASE' => 1, 'LANGUAGE' => 1, - 'MAXVALUE' => 1, 'MAX_ROWS' => 1, 'MAX_SIZE' => 1, 'MIN_ROWS' => 1, - 'NATIONAL' => 1, 'NVARCHAR' => 1, 'ONE_SHOT' => 1, 'PRESERVE' => 1, - 'PROFILES' => 1, 'REDOFILE' => 1, 'ROLLBACK' => 1, 'SCHEDULE' => 1, - 'SECURITY' => 1, 'SHUTDOWN' => 1, 'SNAPSHOT' => 1, 'SWITCHES' => 1, - 'TRIGGERS' => 1, 'UNDOFILE' => 1, 'WARNINGS' => 1, - 'AGGREGATE' => 1, 'ALGORITHM' => 1, 'COMMITTED' => 1, 'DIRECTORY' => 1, - 'DUPLICATE' => 1, 'EXPANSION' => 1, 'IO_THREAD' => 1, 'ISOLATION' => 1, - 'NODEGROUP' => 1, 'PACK_KEYS' => 1, 'PARTITION' => 1, 'RAID_TYPE' => 1, - 'READ_ONLY' => 1, 'REDUNDANT' => 1, 'SAVEPOINT' => 1, 'SCHEDULER' => 1, - 'SQL_CACHE' => 1, 'TEMPORARY' => 1, 'TEMPTABLE' => 1, 'UNDEFINED' => 1, - 'UNINSTALL' => 1, 'VARIABLES' => 1, - 'BERKELEYDB' => 1, 'COMPLETION' => 1, 'COMPRESSED' => 1, 'CONCURRENT' => 1, - 'CONNECTION' => 1, 'CONSISTENT' => 1, 'DEALLOCATE' => 1, 'IDENTIFIED' => 1, - 'MASTER_SSL' => 1, 'NDBCLUSTER' => 1, 'PARTITIONS' => 1, 'PERSISTENT' => 1, - 'PRIVILEGES' => 1, 'REORGANISE' => 1, 'REORGANIZE' => 1, 'REPEATABLE' => 1, - 'ROW_FORMAT' => 1, 'SQL_THREAD' => 1, 'TABLESPACE' => 1, - 'EXTENT_SIZE' => 1, 'FRAC_SECOND' => 1, 'MASTER_HOST' => 1, 'MASTER_PORT' => 1, - 'MASTER_USER' => 1, 'PROCESSLIST' => 1, 'RAID_CHUNKS' => 1, 'REPLICATION' => 1, - 'SQL_TSI_DAY' => 1, 'TRANSACTION' => 1, 'UNCOMMITTED' => 1, - 'CONTRIBUTORS' => 1, 'DES_KEY_FILE' => 1, 'INITIAL_SIZE' => 1, - 'PARTITIONING' => 1, 'RELAY_THREAD' => 1, 'SERIALIZABLE' => 1, - 'SQL_NO_CACHE' => 1, 'SQL_TSI_HOUR' => 1, 'SQL_TSI_WEEK' => 1, - 'SQL_TSI_YEAR' => 1, 'SUBPARTITION' => 1, - 'INSERT_METHOD' => 1, 'MASTER_SSL_CA' => 1, 'PAGE_CHECKSUM' => 1, - 'RELAY_LOG_POS' => 1, 'SQL_TSI_MONTH' => 1, 'SUBPARTITIONS' => 1, - 'TRANSACTIONAL' => 1, - 'AUTO_INCREMENT' => 1, 'AVG_ROW_LENGTH' => 1, 'KEY_BLOCK_SIZE' => 1, - 'MASTER_LOG_POS' => 1, 'MASTER_SSL_KEY' => 1, 'RAID_CHUNKSIZE' => 1, - 'RELAY_LOG_FILE' => 1, 'SQL_TSI_MINUTE' => 1, 'SQL_TSI_SECOND' => 1, - 'TABLE_CHECKSUM' => 1, 'USER_RESOURCES' => 1, - 'AUTOEXTEND_SIZE' => 1, 'DELAY_KEY_WRITE' => 1, 'MASTER_LOG_FILE' => 1, - 'MASTER_PASSWORD' => 1, 'MASTER_SSL_CERT' => 1, 'SQL_TSI_QUARTER' => 1, - 'MASTER_SERVER_ID' => 1, 'REDO_BUFFER_SIZE' => 1, 'UNDO_BUFFER_SIZE' => 1, - 'MASTER_SSL_CAPATH' => 1, 'MASTER_SSL_CIPHER' => 1, 'SQL_BUFFER_RESULT' => 1, - 'SQL_TSI_FRAC_SECOND' => 1, - 'MASTER_CONNECT_RETRY' => 1, 'MAX_QUERIES_PER_HOUR' => 1, - 'MAX_UPDATES_PER_HOUR' => 1, 'MAX_USER_CONNECTIONS' => 1, - 'MAX_CONNECTIONS_PER_HOUR' => 1, - - 'AS' => 3, 'BY' => 3, 'IS' => 3, 'ON' => 3, 'OR' => 3, 'TO' => 3, - 'ADD' => 3, 'ALL' => 3, 'AND' => 3, 'ASC' => 3, 'DEC' => 3, 'DIV' => 3, - 'FOR' => 3, 'NOT' => 3, 'OUT' => 3, 'SQL' => 3, 'SSL' => 3, 'USE' => 3, - 'XOR' => 3, - 'BOTH' => 3, 'CALL' => 3, 'CASE' => 3, 'DESC' => 3, 'DROP' => 3, 'DUAL' => 3, - 'EACH' => 3, 'ELSE' => 3, 'EXIT' => 3, 'FROM' => 3, 'INT1' => 3, 'INT2' => 3, - 'INT3' => 3, 'INT4' => 3, 'INT8' => 3, 'INTO' => 3, 'JOIN' => 3, 'KEYS' => 3, - 'KILL' => 3, 'LIKE' => 3, 'LOAD' => 3, 'LOCK' => 3, 'LONG' => 3, 'LOOP' => 3, - 'NULL' => 3, 'READ' => 3, 'SHOW' => 3, 'THEN' => 3, 'TRUE' => 3, 'UNDO' => 3, - 'WHEN' => 3, 'WITH' => 3, - 'ALTER' => 3, 'CHECK' => 3, 'CROSS' => 3, 'FALSE' => 3, 'FETCH' => 3, - 'FORCE' => 3, 'GRANT' => 3, 'GROUP' => 3, 'INNER' => 3, 'INOUT' => 3, - 'LEAVE' => 3, 'LIMIT' => 3, 'LINES' => 3, 'ORDER' => 3, 'OUTER' => 3, - 'PURGE' => 3, 'RANGE' => 3, 'READS' => 3, 'RLIKE' => 3, 'TABLE' => 3, - 'UNION' => 3, 'USAGE' => 3, 'USING' => 3, 'WHERE' => 3, 'WHILE' => 3, - 'WRITE' => 3, - 'BEFORE' => 3, 'CHANGE' => 3, 'COLUMN' => 3, 'CREATE' => 3, 'CURSOR' => 3, - 'DELETE' => 3, 'ELSEIF' => 3, 'EXISTS' => 3, 'FLOAT4' => 3, 'FLOAT8' => 3, - 'HAVING' => 3, 'IGNORE' => 3, 'INFILE' => 3, 'LINEAR' => 3, 'OPTION' => 3, - 'REGEXP' => 3, 'RENAME' => 3, 'RETURN' => 3, 'REVOKE' => 3, 'SELECT' => 3, - 'UNLOCK' => 3, 'UPDATE' => 3, - 'ANALYZE' => 3, 'BETWEEN' => 3, 'CASCADE' => 3, 'COLLATE' => 3, 'DECLARE' => 3, - 'DELAYED' => 3, 'ESCAPED' => 3, 'EXPLAIN' => 3, 'FOREIGN' => 3, 'ITERATE' => 3, - 'LEADING' => 3, 'NATURAL' => 3, 'OUTFILE' => 3, 'PRIMARY' => 3, 'RELEASE' => 3, - 'REQUIRE' => 3, 'SCHEMAS' => 3, 'TRIGGER' => 3, 'VARYING' => 3, - 'CONTINUE' => 3, 'DAY_HOUR' => 3, 'DESCRIBE' => 3, 'DISTINCT' => 3, - 'ENCLOSED' => 3, 'MODIFIES' => 3, 'OPTIMIZE' => 3, 'RESTRICT' => 3, - 'SPECIFIC' => 3, 'SQLSTATE' => 3, 'STARTING' => 3, 'TRAILING' => 3, - 'UNSIGNED' => 3, 'ZEROFILL' => 3, - 'CONDITION' => 3, 'DATABASES' => 3, 'MIDDLEINT' => 3, 'PRECISION' => 3, - 'PROCEDURE' => 3, 'SENSITIVE' => 3, 'SEPARATOR' => 3, - 'ACCESSIBLE' => 3, 'ASENSITIVE' => 3, 'CONSTRAINT' => 3, 'DAY_MINUTE' => 3, - 'DAY_SECOND' => 3, 'OPTIONALLY' => 3, 'READ_WRITE' => 3, 'REFERENCES' => 3, - 'SQLWARNING' => 3, 'TERMINATED' => 3, 'YEAR_MONTH' => 3, - 'DISTINCTROW' => 3, 'HOUR_MINUTE' => 3, 'HOUR_SECOND' => 3, 'INSENSITIVE' => 3, - 'LOW_PRIORITY' => 3, 'SQLEXCEPTION' => 3, 'VARCHARACTER' => 3, - 'DETERMINISTIC' => 3, 'HIGH_PRIORITY' => 3, 'MINUTE_SECOND' => 3, - 'STRAIGHT_JOIN' => 3, - 'SQL_BIG_RESULT' => 3, - 'DAY_MICROSECOND' => 3, - 'HOUR_MICROSECOND' => 3, 'SQL_SMALL_RESULT' => 3, - 'MINUTE_MICROSECOND' => 3, 'NO_WRITE_TO_BINLOG' => 3, 'SECOND_MICROSECOND' => 3, - 'SQL_CALC_FOUND_ROWS' => 3, - 'MASTER_SSL_VERIFY_SERVER_CERT' => 3, - - 'GROUP BY' => 7, 'NOT NULL' => 7, 'ORDER BY' => 7, 'SET NULL' => 7, - 'AND CHAIN' => 7, 'FULL JOIN' => 7, 'IF EXISTS' => 7, 'LEFT JOIN' => 7, - 'LESS THAN' => 7, 'LOAD DATA' => 7, 'NO ACTION' => 7, 'ON DELETE' => 7, - 'ON UPDATE' => 7, 'UNION ALL' => 7, - 'CROSS JOIN' => 7, 'ESCAPED BY' => 7, 'FOR UPDATE' => 7, 'INNER JOIN' => 7, - 'LINEAR KEY' => 7, 'NO RELEASE' => 7, 'OR REPLACE' => 7, 'RIGHT JOIN' => 7, - 'ENCLOSED BY' => 7, 'LINEAR HASH' => 7, 'STARTING BY' => 7, - 'AND NO CHAIN' => 7, 'FOR EACH ROW' => 7, 'NATURAL JOIN' => 7, - 'PARTITION BY' => 7, 'SET PASSWORD' => 7, 'SQL SECURITY' => 7, - 'CHARACTER SET' => 7, 'IF NOT EXISTS' => 7, 'TERMINATED BY' => 7, - 'DATA DIRECTORY' => 7, 'UNION DISTINCT' => 7, - 'DEFAULT CHARSET' => 7, 'DEFAULT COLLATE' => 7, 'FULL OUTER JOIN' => 7, - 'INDEX DIRECTORY' => 7, 'LEFT OUTER JOIN' => 7, 'SUBPARTITION BY' => 7, - 'GENERATED ALWAYS' => 7, 'RIGHT OUTER JOIN' => 7, - 'NATURAL LEFT JOIN' => 7, 'START TRANSACTION' => 7, - 'LOCK IN SHARE MODE' => 7, 'NATURAL RIGHT JOIN' => 7, 'SELECT TRANSACTION' => 7, - 'DEFAULT CHARACTER SET' => 7, - 'NATURAL LEFT OUTER JOIN' => 7, - 'NATURAL RIGHT OUTER JOIN' => 7, 'WITH CONSISTENT SNAPSHOT' => 7, - - 'BIT' => 9, 'XML' => 9, - 'ENUM' => 9, 'JSON' => 9, 'TEXT' => 9, - 'ARRAY' => 9, - 'SERIAL' => 9, - 'BOOLEAN' => 9, - 'DATETIME' => 9, 'GEOMETRY' => 9, 'MULTISET' => 9, - 'MULTILINEPOINT' => 9, - 'MULTILINEPOLYGON' => 9, - - 'INT' => 11, 'SET' => 11, - 'BLOB' => 11, 'REAL' => 11, - 'FLOAT' => 11, - 'BIGINT' => 11, 'DOUBLE' => 11, - 'DECIMAL' => 11, 'INTEGER' => 11, 'NUMERIC' => 11, 'TINYINT' => 11, 'VARCHAR' => 11, - 'LONGBLOB' => 11, 'LONGTEXT' => 11, 'SMALLINT' => 11, 'TINYBLOB' => 11, - 'TINYTEXT' => 11, - 'CHARACTER' => 11, 'MEDIUMINT' => 11, 'VARBINARY' => 11, - 'MEDIUMBLOB' => 11, 'MEDIUMTEXT' => 11, - - 'BINARY VARYING' => 15, - - 'KEY' => 19, - 'INDEX' => 19, - 'UNIQUE' => 19, - 'SPATIAL' => 19, - 'FULLTEXT' => 19, - - 'INDEX KEY' => 23, - 'UNIQUE KEY' => 23, - 'FOREIGN KEY' => 23, 'PRIMARY KEY' => 23, 'SPATIAL KEY' => 23, - 'FULLTEXT KEY' => 23, 'UNIQUE INDEX' => 23, - 'SPATIAL INDEX' => 23, - 'FULLTEXT INDEX' => 23, - - 'X' => 33, 'Y' => 33, - 'LN' => 33, 'PI' => 33, - 'ABS' => 33, 'AVG' => 33, 'BIN' => 33, 'COS' => 33, 'COT' => 33, 'DAY' => 33, - 'ELT' => 33, 'EXP' => 33, 'HEX' => 33, 'LOG' => 33, 'MAX' => 33, 'MD5' => 33, - 'MID' => 33, 'MIN' => 33, 'NOW' => 33, 'OCT' => 33, 'ORD' => 33, 'POW' => 33, - 'SHA' => 33, 'SIN' => 33, 'STD' => 33, 'SUM' => 33, 'TAN' => 33, - 'ACOS' => 33, 'AREA' => 33, 'ASIN' => 33, 'ATAN' => 33, 'CAST' => 33, 'CEIL' => 33, - 'CONV' => 33, 'HOUR' => 33, 'LOG2' => 33, 'LPAD' => 33, 'RAND' => 33, 'RPAD' => 33, - 'SHA1' => 33, 'SIGN' => 33, 'SQRT' => 33, 'SRID' => 33, 'TRIM' => 33, 'USER' => 33, - 'UUID' => 33, 'WEEK' => 33, - 'ASCII' => 33, 'ASWKB' => 33, 'ASWKT' => 33, 'ATAN2' => 33, 'COUNT' => 33, - 'CRC32' => 33, 'DECOD' => 33, 'FIELD' => 33, 'FLOOR' => 33, 'INSTR' => 33, - 'LCASE' => 33, 'LEAST' => 33, 'LOG10' => 33, 'LOWER' => 33, 'LTRIM' => 33, - 'MONTH' => 33, 'POWER' => 33, 'QUOTE' => 33, 'ROUND' => 33, 'RTRIM' => 33, - 'SLEEP' => 33, 'SPACE' => 33, 'UCASE' => 33, 'UNHEX' => 33, 'UPPER' => 33, - 'ASTEXT' => 33, 'BIT_OR' => 33, 'CONCAT' => 33, 'ENCODE' => 33, 'EQUALS' => 33, - 'FORMAT' => 33, 'IFNULL' => 33, 'ISNULL' => 33, 'LENGTH' => 33, 'LOCATE' => 33, - 'MINUTE' => 33, 'NULLIF' => 33, 'POINTN' => 33, 'SECOND' => 33, 'STDDEV' => 33, - 'STRCMP' => 33, 'SUBSTR' => 33, 'WITHIN' => 33, - 'ADDDATE' => 33, 'ADDTIME' => 33, 'AGAINST' => 33, 'BIT_AND' => 33, 'BIT_XOR' => 33, - 'CEILING' => 33, 'CHARSET' => 33, 'CROSSES' => 33, 'CURDATE' => 33, 'CURTIME' => 33, - 'DAYNAME' => 33, 'DEGREES' => 33, 'ENCRYPT' => 33, 'EXTRACT' => 33, 'GLENGTH' => 33, - 'ISEMPTY' => 33, 'QUARTER' => 33, 'RADIANS' => 33, 'REVERSE' => 33, 'SOUNDEX' => 33, - 'SUBDATE' => 33, 'SUBTIME' => 33, 'SYSDATE' => 33, 'TOUCHES' => 33, 'TO_DAYS' => 33, - 'VAR_POP' => 33, 'VERSION' => 33, 'WEEKDAY' => 33, - 'ASBINARY' => 33, 'CENTROID' => 33, 'COALESCE' => 33, 'COMPRESS' => 33, - 'CONTAINS' => 33, 'DATEDIFF' => 33, 'DATE_ADD' => 33, 'DATE_SUB' => 33, - 'DISJOINT' => 33, 'ENDPOINT' => 33, 'ENVELOPE' => 33, 'GET_LOCK' => 33, - 'GREATEST' => 33, 'ISCLOSED' => 33, 'ISSIMPLE' => 33, 'MAKEDATE' => 33, - 'MAKETIME' => 33, 'MAKE_SET' => 33, 'MBREQUAL' => 33, 'OVERLAPS' => 33, - 'PASSWORD' => 33, 'POSITION' => 33, 'TIMEDIFF' => 33, 'TRUNCATE' => 33, - 'VARIANCE' => 33, 'VAR_SAMP' => 33, 'YEARWEEK' => 33, - 'BENCHMARK' => 33, 'BIT_COUNT' => 33, 'COLLATION' => 33, 'CONCAT_WS' => 33, - 'DAYOFWEEK' => 33, 'DAYOFYEAR' => 33, 'DIMENSION' => 33, 'FROM_DAYS' => 33, - 'GEOMETRYN' => 33, 'INET_ATON' => 33, 'INET_NTOA' => 33, 'LOAD_FILE' => 33, - 'MBRWITHIN' => 33, 'MONTHNAME' => 33, 'NUMPOINTS' => 33, 'ROW_COUNT' => 33, - 'SUBSTRING' => 33, 'UPDATEXML' => 33, - 'BIT_LENGTH' => 33, 'CONVERT_TZ' => 33, 'DAYOFMONTH' => 33, 'EXPORT_SET' => 33, - 'FOUND_ROWS' => 33, 'GET_FORMAT' => 33, 'INTERSECTS' => 33, 'MBRTOUCHES' => 33, - 'MULTIPOINT' => 33, 'NAME_CONST' => 33, 'PERIOD_ADD' => 33, 'STARTPOINT' => 33, - 'STDDEV_POP' => 33, 'UNCOMPRESS' => 33, 'UUID_SHORT' => 33, 'WEEKOFYEAR' => 33, - 'AES_DECRYPT' => 33, 'AES_ENCRYPT' => 33, 'CHAR_LENGTH' => 33, 'DATE_FORMAT' => 33, - 'DES_DECRYPT' => 33, 'DES_ENCRYPT' => 33, 'FIND_IN_SET' => 33, 'GEOMFROMWKB' => 33, - 'LINEFROMWKB' => 33, 'MBRCONTAINS' => 33, 'MBRDISJOINT' => 33, 'MBROVERLAPS' => 33, - 'MICROSECOND' => 33, 'PERIOD_DIFF' => 33, 'POLYFROMWKB' => 33, 'SEC_TO_TIME' => 33, - 'STDDEV_SAMP' => 33, 'STR_TO_DATE' => 33, 'SYSTEM_USER' => 33, 'TIME_FORMAT' => 33, - 'TIME_TO_SEC' => 33, - 'COERCIBILITY' => 33, 'EXTERIORRING' => 33, 'EXTRACTVALUE' => 33, - 'GEOMETRYTYPE' => 33, 'GEOMFROMTEXT' => 33, 'GROUP_CONCAT' => 33, - 'IS_FREE_LOCK' => 33, 'IS_USED_LOCK' => 33, 'LINEFROMTEXT' => 33, - 'MLINEFROMWKB' => 33, 'MPOLYFROMWKB' => 33, 'MULTIPOLYGON' => 33, - 'OCTET_LENGTH' => 33, 'OLD_PASSWORD' => 33, 'POINTFROMWKB' => 33, - 'POLYFROMTEXT' => 33, 'RELEASE_LOCK' => 33, 'SESSION_USER' => 33, - 'TIMESTAMPADD' => 33, - 'CONNECTION_ID' => 33, 'FROM_UNIXTIME' => 33, 'INTERIORRINGN' => 33, - 'MBRINTERSECTS' => 33, 'MLINEFROMTEXT' => 33, 'MPOINTFROMWKB' => 33, - 'MPOLYFROMTEXT' => 33, 'NUMGEOMETRIES' => 33, 'POINTFROMTEXT' => 33, - 'TIMESTAMPDIFF' => 33, - 'LAST_INSERT_ID' => 33, 'MPOINTFROMTEXT' => 33, 'POLYGONFROMWKB' => 33, - 'UNIX_TIMESTAMP' => 33, - 'GEOMCOLLFROMWKB' => 33, 'MASTER_POS_WAIT' => 33, 'POLYGONFROMTEXT' => 33, - 'SUBSTRING_INDEX' => 33, - 'CHARACTER_LENGTH' => 33, 'GEOMCOLLFROMTEXT' => 33, 'GEOMETRYFROMTEXT' => 33, - 'NUMINTERIORRINGS' => 33, - 'LINESTRINGFROMWKB' => 33, 'MULTIPOINTFROMWKB' => 33, - 'MULTIPOINTFROMTEXT' => 33, - 'MULTIPOLYGONFROMWKB' => 33, 'UNCOMPRESSED_LENGTH' => 33, - 'MULTIPOLYGONFROMTEXT' => 33, - 'MULTILINESTRINGFROMWKB' => 33, - 'MULTILINESTRINGFROMTEXT' => 33, - 'GEOMETRYCOLLECTIONFROMWKB' => 33, - 'GEOMETRYCOLLECTIONFROMTEXT' => 33, - - 'IF' => 35, 'IN' => 35, - 'MOD' => 35, - 'LEFT' => 35, - 'MATCH' => 35, 'RIGHT' => 35, - 'INSERT' => 35, 'REPEAT' => 35, 'SCHEMA' => 35, 'VALUES' => 35, - 'CONVERT' => 35, 'DEFAULT' => 35, 'REPLACE' => 35, - 'DATABASE' => 35, 'UTC_DATE' => 35, 'UTC_TIME' => 35, - 'LOCALTIME' => 35, - 'CURRENT_DATE' => 35, 'CURRENT_TIME' => 35, 'CURRENT_USER' => 35, - 'UTC_TIMESTAMP' => 35, - 'LOCALTIMESTAMP' => 35, - 'CURRENT_TIMESTAMP' => 35, - - 'NOT IN' => 39, - - 'DATE' => 41, 'TIME' => 41, 'YEAR' => 41, - 'POINT' => 41, - 'POLYGON' => 41, - 'TIMESTAMP' => 41, - 'LINESTRING' => 41, - 'MULTILINESTRING' => 41, - 'GEOMETRYCOLLECTION' => 41, - - 'CHAR' => 43, - 'BINARY' => 43, - 'INTERVAL' => 43, - ]; -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMySql50500.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMySql50500.php deleted file mode 100644 index b5b0f26..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMySql50500.php +++ /dev/null @@ -1,312 +0,0 @@ - 1, 'DO' => 1, 'IO' => 1, 'NO' => 1, 'XA' => 1, - 'ANY' => 1, 'CPU' => 1, 'END' => 1, 'IPC' => 1, 'NDB' => 1, 'NEW' => 1, - 'ONE' => 1, 'ROW' => 1, - 'BOOL' => 1, 'BYTE' => 1, 'CODE' => 1, 'CUBE' => 1, 'DATA' => 1, 'DISK' => 1, - 'ENDS' => 1, 'FAST' => 1, 'FILE' => 1, 'FULL' => 1, 'HASH' => 1, 'HELP' => 1, - 'HOST' => 1, 'LAST' => 1, 'LESS' => 1, 'LIST' => 1, 'LOGS' => 1, 'MODE' => 1, - 'NAME' => 1, 'NEXT' => 1, 'NONE' => 1, 'OPEN' => 1, 'PAGE' => 1, 'PORT' => 1, - 'PREV' => 1, 'ROWS' => 1, 'SLOW' => 1, 'SOME' => 1, 'STOP' => 1, 'THAN' => 1, - 'TYPE' => 1, 'VIEW' => 1, 'WAIT' => 1, 'WORK' => 1, 'X509' => 1, - 'AFTER' => 1, 'BEGIN' => 1, 'BLOCK' => 1, 'BTREE' => 1, 'CACHE' => 1, - 'CHAIN' => 1, 'CLOSE' => 1, 'ERROR' => 1, 'EVENT' => 1, 'EVERY' => 1, - 'FIRST' => 1, 'FIXED' => 1, 'FLUSH' => 1, 'FOUND' => 1, 'HOSTS' => 1, - 'LEVEL' => 1, 'LOCAL' => 1, 'LOCKS' => 1, 'MERGE' => 1, 'MUTEX' => 1, - 'NAMES' => 1, 'NCHAR' => 1, 'OWNER' => 1, 'PHASE' => 1, 'PROXY' => 1, - 'QUERY' => 1, 'QUICK' => 1, 'RELAY' => 1, 'RESET' => 1, 'RTREE' => 1, - 'SHARE' => 1, 'SLAVE' => 1, 'START' => 1, 'SUPER' => 1, 'SWAPS' => 1, - 'TYPES' => 1, 'UNTIL' => 1, 'VALUE' => 1, - 'ACTION' => 1, 'BACKUP' => 1, 'BINLOG' => 1, 'CIPHER' => 1, 'CLIENT' => 1, - 'COMMIT' => 1, 'ENABLE' => 1, 'ENGINE' => 1, 'ERRORS' => 1, 'ESCAPE' => 1, - 'EVENTS' => 1, 'FAULTS' => 1, 'FIELDS' => 1, 'GLOBAL' => 1, 'GRANTS' => 1, - 'IMPORT' => 1, 'INNODB' => 1, 'ISSUER' => 1, 'LEAVES' => 1, 'MASTER' => 1, - 'MEDIUM' => 1, 'MEMORY' => 1, 'MODIFY' => 1, 'OFFSET' => 1, 'PARSER' => 1, - 'PLUGIN' => 1, 'RELOAD' => 1, 'REMOVE' => 1, 'REPAIR' => 1, 'RESUME' => 1, - 'ROLLUP' => 1, 'SERVER' => 1, 'SIGNED' => 1, 'SIMPLE' => 1, 'SOCKET' => 1, - 'SONAME' => 1, 'SOUNDS' => 1, 'SOURCE' => 1, 'STARTS' => 1, 'STATUS' => 1, - 'STRING' => 1, 'TABLES' => 1, - 'AUTHORS' => 1, 'CHANGED' => 1, 'COLUMNS' => 1, 'COMMENT' => 1, 'COMPACT' => 1, - 'CONTEXT' => 1, 'DEFINER' => 1, 'DISABLE' => 1, 'DISCARD' => 1, 'DYNAMIC' => 1, - 'ENGINES' => 1, 'EXECUTE' => 1, 'GENERAL' => 1, 'HANDLER' => 1, 'INDEXES' => 1, - 'INSTALL' => 1, 'INVOKER' => 1, 'LOGFILE' => 1, 'MIGRATE' => 1, 'NO_WAIT' => 1, - 'OPTIONS' => 1, 'PARTIAL' => 1, 'PLUGINS' => 1, 'PREPARE' => 1, 'PROFILE' => 1, - 'REBUILD' => 1, 'RECOVER' => 1, 'RESTORE' => 1, 'RETURNS' => 1, 'ROUTINE' => 1, - 'SESSION' => 1, 'STORAGE' => 1, 'SUBJECT' => 1, 'SUSPEND' => 1, 'UNICODE' => 1, - 'UNKNOWN' => 1, 'UPGRADE' => 1, 'USE_FRM' => 1, 'VIRTUAL' => 1, 'WRAPPER' => 1, - 'CASCADED' => 1, 'CHECKSUM' => 1, 'DATAFILE' => 1, 'DUMPFILE' => 1, - 'EXTENDED' => 1, 'FUNCTION' => 1, 'INNOBASE' => 1, 'LANGUAGE' => 1, - 'MAX_ROWS' => 1, 'MAX_SIZE' => 1, 'MIN_ROWS' => 1, 'NATIONAL' => 1, - 'NVARCHAR' => 1, 'ONE_SHOT' => 1, 'PRESERVE' => 1, 'PROFILES' => 1, - 'REDOFILE' => 1, 'RELAYLOG' => 1, 'ROLLBACK' => 1, 'SCHEDULE' => 1, - 'SECURITY' => 1, 'SHUTDOWN' => 1, 'SNAPSHOT' => 1, 'SWITCHES' => 1, - 'TRIGGERS' => 1, 'UNDOFILE' => 1, 'WARNINGS' => 1, - 'AGGREGATE' => 1, 'ALGORITHM' => 1, 'COMMITTED' => 1, 'DIRECTORY' => 1, - 'DUPLICATE' => 1, 'EXPANSION' => 1, 'IO_THREAD' => 1, 'ISOLATION' => 1, - 'NODEGROUP' => 1, 'PACK_KEYS' => 1, 'PARTITION' => 1, 'READ_ONLY' => 1, - 'REDUNDANT' => 1, 'SAVEPOINT' => 1, 'SQL_CACHE' => 1, 'TEMPORARY' => 1, - 'TEMPTABLE' => 1, 'UNDEFINED' => 1, 'UNINSTALL' => 1, 'VARIABLES' => 1, - 'COMPLETION' => 1, 'COMPRESSED' => 1, 'CONCURRENT' => 1, 'CONNECTION' => 1, - 'CONSISTENT' => 1, 'DEALLOCATE' => 1, 'IDENTIFIED' => 1, 'MASTER_SSL' => 1, - 'NDBCLUSTER' => 1, 'PARTITIONS' => 1, 'PERSISTENT' => 1, 'PRIVILEGES' => 1, - 'REORGANIZE' => 1, 'REPEATABLE' => 1, 'ROW_FORMAT' => 1, 'SQL_THREAD' => 1, - 'TABLESPACE' => 1, 'TABLE_NAME' => 1, - 'COLUMN_NAME' => 1, 'CURSOR_NAME' => 1, 'EXTENT_SIZE' => 1, 'FRAC_SECOND' => 1, - 'MASTER_HOST' => 1, 'MASTER_PORT' => 1, 'MASTER_USER' => 1, 'MYSQL_ERRNO' => 1, - 'PROCESSLIST' => 1, 'REPLICATION' => 1, 'SCHEMA_NAME' => 1, 'SQL_TSI_DAY' => 1, - 'TRANSACTION' => 1, 'UNCOMMITTED' => 1, - 'CATALOG_NAME' => 1, 'CLASS_ORIGIN' => 1, 'CONTRIBUTORS' => 1, - 'DES_KEY_FILE' => 1, 'INITIAL_SIZE' => 1, 'MESSAGE_TEXT' => 1, - 'PARTITIONING' => 1, 'RELAY_THREAD' => 1, 'SERIALIZABLE' => 1, - 'SQL_NO_CACHE' => 1, 'SQL_TSI_HOUR' => 1, 'SQL_TSI_WEEK' => 1, - 'SQL_TSI_YEAR' => 1, 'SUBPARTITION' => 1, - 'INSERT_METHOD' => 1, 'MASTER_SSL_CA' => 1, 'RELAY_LOG_POS' => 1, - 'SQL_TSI_MONTH' => 1, 'SUBPARTITIONS' => 1, - 'AUTO_INCREMENT' => 1, 'AVG_ROW_LENGTH' => 1, 'KEY_BLOCK_SIZE' => 1, - 'MASTER_LOG_POS' => 1, 'MASTER_SSL_KEY' => 1, 'RELAY_LOG_FILE' => 1, - 'SQL_TSI_MINUTE' => 1, 'SQL_TSI_SECOND' => 1, 'TABLE_CHECKSUM' => 1, - 'USER_RESOURCES' => 1, - 'AUTOEXTEND_SIZE' => 1, 'CONSTRAINT_NAME' => 1, 'DELAY_KEY_WRITE' => 1, - 'MASTER_LOG_FILE' => 1, 'MASTER_PASSWORD' => 1, 'MASTER_SSL_CERT' => 1, - 'SQL_TSI_QUARTER' => 1, 'SUBCLASS_ORIGIN' => 1, - 'MASTER_SERVER_ID' => 1, 'REDO_BUFFER_SIZE' => 1, 'UNDO_BUFFER_SIZE' => 1, - 'CONSTRAINT_SCHEMA' => 1, 'IGNORE_SERVER_IDS' => 1, 'MASTER_SSL_CAPATH' => 1, - 'MASTER_SSL_CIPHER' => 1, 'SQL_BUFFER_RESULT' => 1, - 'CONSTRAINT_CATALOG' => 1, - 'SQL_TSI_FRAC_SECOND' => 1, - 'MASTER_CONNECT_RETRY' => 1, 'MAX_QUERIES_PER_HOUR' => 1, - 'MAX_UPDATES_PER_HOUR' => 1, 'MAX_USER_CONNECTIONS' => 1, - 'MASTER_HEARTBEAT_PERIOD' => 1, - 'MAX_CONNECTIONS_PER_HOUR' => 1, - - 'AS' => 3, 'BY' => 3, 'IS' => 3, 'ON' => 3, 'OR' => 3, 'TO' => 3, - 'ADD' => 3, 'ALL' => 3, 'AND' => 3, 'ASC' => 3, 'DEC' => 3, 'DIV' => 3, - 'FOR' => 3, 'NOT' => 3, 'OUT' => 3, 'SQL' => 3, 'SSL' => 3, 'USE' => 3, - 'XOR' => 3, - 'BOTH' => 3, 'CALL' => 3, 'CASE' => 3, 'DESC' => 3, 'DROP' => 3, 'DUAL' => 3, - 'EACH' => 3, 'ELSE' => 3, 'EXIT' => 3, 'FROM' => 3, 'INT1' => 3, 'INT2' => 3, - 'INT3' => 3, 'INT4' => 3, 'INT8' => 3, 'INTO' => 3, 'JOIN' => 3, 'KEYS' => 3, - 'KILL' => 3, 'LIKE' => 3, 'LOAD' => 3, 'LOCK' => 3, 'LONG' => 3, 'LOOP' => 3, - 'NULL' => 3, 'READ' => 3, 'SHOW' => 3, 'THEN' => 3, 'TRUE' => 3, 'UNDO' => 3, - 'WHEN' => 3, 'WITH' => 3, - 'ALTER' => 3, 'CHECK' => 3, 'CROSS' => 3, 'FALSE' => 3, 'FETCH' => 3, - 'FORCE' => 3, 'GRANT' => 3, 'GROUP' => 3, 'INNER' => 3, 'INOUT' => 3, - 'LEAVE' => 3, 'LIMIT' => 3, 'LINES' => 3, 'ORDER' => 3, 'OUTER' => 3, - 'PURGE' => 3, 'RANGE' => 3, 'READS' => 3, 'RLIKE' => 3, 'TABLE' => 3, - 'UNION' => 3, 'USAGE' => 3, 'USING' => 3, 'WHERE' => 3, 'WHILE' => 3, - 'WRITE' => 3, - 'BEFORE' => 3, 'CHANGE' => 3, 'COLUMN' => 3, 'CREATE' => 3, 'CURSOR' => 3, - 'DELETE' => 3, 'ELSEIF' => 3, 'EXISTS' => 3, 'FLOAT4' => 3, 'FLOAT8' => 3, - 'HAVING' => 3, 'IGNORE' => 3, 'INFILE' => 3, 'LINEAR' => 3, 'OPTION' => 3, - 'REGEXP' => 3, 'RENAME' => 3, 'RETURN' => 3, 'REVOKE' => 3, 'SELECT' => 3, - 'SIGNAL' => 3, 'UNLOCK' => 3, 'UPDATE' => 3, - 'ANALYZE' => 3, 'BETWEEN' => 3, 'CASCADE' => 3, 'COLLATE' => 3, 'DECLARE' => 3, - 'DELAYED' => 3, 'ESCAPED' => 3, 'EXPLAIN' => 3, 'FOREIGN' => 3, 'ITERATE' => 3, - 'LEADING' => 3, 'NATURAL' => 3, 'OUTFILE' => 3, 'PRIMARY' => 3, 'RELEASE' => 3, - 'REQUIRE' => 3, 'SCHEMAS' => 3, 'TRIGGER' => 3, 'VARYING' => 3, - 'CONTINUE' => 3, 'DAY_HOUR' => 3, 'DESCRIBE' => 3, 'DISTINCT' => 3, - 'ENCLOSED' => 3, 'MAXVALUE' => 3, 'MODIFIES' => 3, 'OPTIMIZE' => 3, - 'RESIGNAL' => 3, 'RESTRICT' => 3, 'SPECIFIC' => 3, 'SQLSTATE' => 3, - 'STARTING' => 3, 'TRAILING' => 3, 'UNSIGNED' => 3, 'ZEROFILL' => 3, - 'CONDITION' => 3, 'DATABASES' => 3, 'MIDDLEINT' => 3, 'PRECISION' => 3, - 'PROCEDURE' => 3, 'SENSITIVE' => 3, 'SEPARATOR' => 3, - 'ACCESSIBLE' => 3, 'ASENSITIVE' => 3, 'CONSTRAINT' => 3, 'DAY_MINUTE' => 3, - 'DAY_SECOND' => 3, 'OPTIONALLY' => 3, 'READ_WRITE' => 3, 'REFERENCES' => 3, - 'SQLWARNING' => 3, 'TERMINATED' => 3, 'YEAR_MONTH' => 3, - 'DISTINCTROW' => 3, 'HOUR_MINUTE' => 3, 'HOUR_SECOND' => 3, 'INSENSITIVE' => 3, - 'LOW_PRIORITY' => 3, 'SQLEXCEPTION' => 3, 'VARCHARACTER' => 3, - 'DETERMINISTIC' => 3, 'HIGH_PRIORITY' => 3, 'MINUTE_SECOND' => 3, - 'STRAIGHT_JOIN' => 3, - 'SQL_BIG_RESULT' => 3, - 'DAY_MICROSECOND' => 3, - 'HOUR_MICROSECOND' => 3, 'SQL_SMALL_RESULT' => 3, - 'MINUTE_MICROSECOND' => 3, 'NO_WRITE_TO_BINLOG' => 3, 'SECOND_MICROSECOND' => 3, - 'SQL_CALC_FOUND_ROWS' => 3, - 'MASTER_SSL_VERIFY_SERVER_CERT' => 3, - - 'GROUP BY' => 7, 'NOT NULL' => 7, 'ORDER BY' => 7, 'SET NULL' => 7, - 'AND CHAIN' => 7, 'FULL JOIN' => 7, 'IF EXISTS' => 7, 'LEFT JOIN' => 7, - 'LESS THAN' => 7, 'LOAD DATA' => 7, 'NO ACTION' => 7, 'ON DELETE' => 7, - 'ON UPDATE' => 7, 'UNION ALL' => 7, - 'CROSS JOIN' => 7, 'ESCAPED BY' => 7, 'FOR UPDATE' => 7, 'INNER JOIN' => 7, - 'LINEAR KEY' => 7, 'NO RELEASE' => 7, 'OR REPLACE' => 7, 'RIGHT JOIN' => 7, - 'ENCLOSED BY' => 7, 'LINEAR HASH' => 7, 'STARTING BY' => 7, - 'AND NO CHAIN' => 7, 'FOR EACH ROW' => 7, 'NATURAL JOIN' => 7, - 'PARTITION BY' => 7, 'SET PASSWORD' => 7, 'SQL SECURITY' => 7, - 'CHARACTER SET' => 7, 'IF NOT EXISTS' => 7, 'TERMINATED BY' => 7, - 'DATA DIRECTORY' => 7, 'UNION DISTINCT' => 7, - 'DEFAULT CHARSET' => 7, 'DEFAULT COLLATE' => 7, 'FULL OUTER JOIN' => 7, - 'INDEX DIRECTORY' => 7, 'LEFT OUTER JOIN' => 7, 'SUBPARTITION BY' => 7, - 'GENERATED ALWAYS' => 7, 'RIGHT OUTER JOIN' => 7, - 'NATURAL LEFT JOIN' => 7, 'START TRANSACTION' => 7, - 'LOCK IN SHARE MODE' => 7, 'NATURAL RIGHT JOIN' => 7, 'SELECT TRANSACTION' => 7, - 'DEFAULT CHARACTER SET' => 7, - 'NATURAL LEFT OUTER JOIN' => 7, - 'NATURAL RIGHT OUTER JOIN' => 7, 'WITH CONSISTENT SNAPSHOT' => 7, - - 'BIT' => 9, 'XML' => 9, - 'ENUM' => 9, 'JSON' => 9, 'TEXT' => 9, - 'ARRAY' => 9, - 'SERIAL' => 9, - 'BOOLEAN' => 9, - 'DATETIME' => 9, 'GEOMETRY' => 9, 'MULTISET' => 9, - 'MULTILINEPOINT' => 9, - 'MULTILINEPOLYGON' => 9, - - 'INT' => 11, 'SET' => 11, - 'BLOB' => 11, 'REAL' => 11, - 'FLOAT' => 11, - 'BIGINT' => 11, 'DOUBLE' => 11, - 'DECIMAL' => 11, 'INTEGER' => 11, 'NUMERIC' => 11, 'TINYINT' => 11, 'VARCHAR' => 11, - 'LONGBLOB' => 11, 'LONGTEXT' => 11, 'SMALLINT' => 11, 'TINYBLOB' => 11, - 'TINYTEXT' => 11, - 'CHARACTER' => 11, 'MEDIUMINT' => 11, 'VARBINARY' => 11, - 'MEDIUMBLOB' => 11, 'MEDIUMTEXT' => 11, - - 'BINARY VARYING' => 15, - - 'KEY' => 19, - 'INDEX' => 19, - 'UNIQUE' => 19, - 'SPATIAL' => 19, - 'FULLTEXT' => 19, - - 'INDEX KEY' => 23, - 'UNIQUE KEY' => 23, - 'FOREIGN KEY' => 23, 'PRIMARY KEY' => 23, 'SPATIAL KEY' => 23, - 'FULLTEXT KEY' => 23, 'UNIQUE INDEX' => 23, - 'SPATIAL INDEX' => 23, - 'FULLTEXT INDEX' => 23, - - 'X' => 33, 'Y' => 33, - 'LN' => 33, 'PI' => 33, - 'ABS' => 33, 'AVG' => 33, 'BIN' => 33, 'COS' => 33, 'COT' => 33, 'DAY' => 33, - 'ELT' => 33, 'EXP' => 33, 'HEX' => 33, 'LOG' => 33, 'MAX' => 33, 'MD5' => 33, - 'MID' => 33, 'MIN' => 33, 'NOW' => 33, 'OCT' => 33, 'ORD' => 33, 'POW' => 33, - 'SHA' => 33, 'SIN' => 33, 'STD' => 33, 'SUM' => 33, 'TAN' => 33, - 'ACOS' => 33, 'AREA' => 33, 'ASIN' => 33, 'ATAN' => 33, 'CAST' => 33, 'CEIL' => 33, - 'CONV' => 33, 'HOUR' => 33, 'LOG2' => 33, 'LPAD' => 33, 'RAND' => 33, 'RPAD' => 33, - 'SHA1' => 33, 'SHA2' => 33, 'SIGN' => 33, 'SQRT' => 33, 'SRID' => 33, 'TRIM' => 33, - 'USER' => 33, 'UUID' => 33, 'WEEK' => 33, - 'ASCII' => 33, 'ASWKB' => 33, 'ASWKT' => 33, 'ATAN2' => 33, 'COUNT' => 33, - 'CRC32' => 33, 'FIELD' => 33, 'FLOOR' => 33, 'INSTR' => 33, 'LCASE' => 33, - 'LEAST' => 33, 'LOG10' => 33, 'LOWER' => 33, 'LTRIM' => 33, 'MONTH' => 33, - 'POWER' => 33, 'QUOTE' => 33, 'ROUND' => 33, 'RTRIM' => 33, 'SLEEP' => 33, - 'SPACE' => 33, 'UCASE' => 33, 'UNHEX' => 33, 'UPPER' => 33, - 'ASTEXT' => 33, 'BIT_OR' => 33, 'CONCAT' => 33, 'DECODE' => 33, 'ENCODE' => 33, - 'EQUALS' => 33, 'FORMAT' => 33, 'IFNULL' => 33, 'ISNULL' => 33, 'LENGTH' => 33, - 'LOCATE' => 33, 'MINUTE' => 33, 'NULLIF' => 33, 'POINTN' => 33, 'SECOND' => 33, - 'STDDEV' => 33, 'STRCMP' => 33, 'SUBSTR' => 33, 'WITHIN' => 33, - 'ADDDATE' => 33, 'ADDTIME' => 33, 'AGAINST' => 33, 'BIT_AND' => 33, 'BIT_XOR' => 33, - 'CEILING' => 33, 'CHARSET' => 33, 'CROSSES' => 33, 'CURDATE' => 33, 'CURTIME' => 33, - 'DAYNAME' => 33, 'DEGREES' => 33, 'ENCRYPT' => 33, 'EXTRACT' => 33, 'GLENGTH' => 33, - 'ISEMPTY' => 33, 'QUARTER' => 33, 'RADIANS' => 33, 'REVERSE' => 33, 'SOUNDEX' => 33, - 'SUBDATE' => 33, 'SUBTIME' => 33, 'SYSDATE' => 33, 'TOUCHES' => 33, 'TO_DAYS' => 33, - 'VAR_POP' => 33, 'VERSION' => 33, 'WEEKDAY' => 33, - 'ASBINARY' => 33, 'CENTROID' => 33, 'COALESCE' => 33, 'COMPRESS' => 33, - 'CONTAINS' => 33, 'DATEDIFF' => 33, 'DATE_ADD' => 33, 'DATE_SUB' => 33, - 'DISJOINT' => 33, 'ENDPOINT' => 33, 'ENVELOPE' => 33, 'GET_LOCK' => 33, - 'GREATEST' => 33, 'ISCLOSED' => 33, 'ISSIMPLE' => 33, 'MAKEDATE' => 33, - 'MAKETIME' => 33, 'MAKE_SET' => 33, 'MBREQUAL' => 33, 'OVERLAPS' => 33, - 'PASSWORD' => 33, 'POSITION' => 33, 'TIMEDIFF' => 33, 'TRUNCATE' => 33, - 'VARIANCE' => 33, 'VAR_SAMP' => 33, 'YEARWEEK' => 33, - 'BENCHMARK' => 33, 'BIT_COUNT' => 33, 'COLLATION' => 33, 'CONCAT_WS' => 33, - 'DAYOFWEEK' => 33, 'DAYOFYEAR' => 33, 'DIMENSION' => 33, 'FROM_DAYS' => 33, - 'GEOMETRYN' => 33, 'INET_ATON' => 33, 'INET_NTOA' => 33, 'LOAD_FILE' => 33, - 'MBRWITHIN' => 33, 'MONTHNAME' => 33, 'NUMPOINTS' => 33, 'ROW_COUNT' => 33, - 'SUBSTRING' => 33, 'UPDATEXML' => 33, - 'BIT_LENGTH' => 33, 'CONVERT_TZ' => 33, 'DAYOFMONTH' => 33, 'EXPORT_SET' => 33, - 'FOUND_ROWS' => 33, 'GET_FORMAT' => 33, 'INTERSECTS' => 33, 'MBRTOUCHES' => 33, - 'MULTIPOINT' => 33, 'NAME_CONST' => 33, 'PERIOD_ADD' => 33, 'STARTPOINT' => 33, - 'STDDEV_POP' => 33, 'TO_SECONDS' => 33, 'UNCOMPRESS' => 33, 'UUID_SHORT' => 33, - 'WEEKOFYEAR' => 33, - 'AES_DECRYPT' => 33, 'AES_ENCRYPT' => 33, 'CHAR_LENGTH' => 33, 'DATE_FORMAT' => 33, - 'DES_DECRYPT' => 33, 'DES_ENCRYPT' => 33, 'FIND_IN_SET' => 33, 'GEOMFROMWKB' => 33, - 'LINEFROMWKB' => 33, 'MBRCONTAINS' => 33, 'MBRDISJOINT' => 33, 'MBROVERLAPS' => 33, - 'MICROSECOND' => 33, 'PERIOD_DIFF' => 33, 'POLYFROMWKB' => 33, 'SEC_TO_TIME' => 33, - 'STDDEV_SAMP' => 33, 'STR_TO_DATE' => 33, 'SYSTEM_USER' => 33, 'TIME_FORMAT' => 33, - 'TIME_TO_SEC' => 33, - 'COERCIBILITY' => 33, 'EXTERIORRING' => 33, 'EXTRACTVALUE' => 33, - 'GEOMETRYTYPE' => 33, 'GEOMFROMTEXT' => 33, 'GROUP_CONCAT' => 33, - 'IS_FREE_LOCK' => 33, 'IS_USED_LOCK' => 33, 'LINEFROMTEXT' => 33, - 'MLINEFROMWKB' => 33, 'MPOLYFROMWKB' => 33, 'MULTIPOLYGON' => 33, - 'OCTET_LENGTH' => 33, 'OLD_PASSWORD' => 33, 'POINTFROMWKB' => 33, - 'POLYFROMTEXT' => 33, 'RELEASE_LOCK' => 33, 'SESSION_USER' => 33, - 'TIMESTAMPADD' => 33, - 'CONNECTION_ID' => 33, 'FROM_UNIXTIME' => 33, 'INTERIORRINGN' => 33, - 'MBRINTERSECTS' => 33, 'MLINEFROMTEXT' => 33, 'MPOINTFROMWKB' => 33, - 'MPOLYFROMTEXT' => 33, 'NUMGEOMETRIES' => 33, 'POINTFROMTEXT' => 33, - 'TIMESTAMPDIFF' => 33, - 'LAST_INSERT_ID' => 33, 'MPOINTFROMTEXT' => 33, 'POLYGONFROMWKB' => 33, - 'UNIX_TIMESTAMP' => 33, - 'GEOMCOLLFROMWKB' => 33, 'MASTER_POS_WAIT' => 33, 'POLYGONFROMTEXT' => 33, - 'SUBSTRING_INDEX' => 33, - 'CHARACTER_LENGTH' => 33, 'GEOMCOLLFROMTEXT' => 33, 'GEOMETRYFROMTEXT' => 33, - 'NUMINTERIORRINGS' => 33, - 'LINESTRINGFROMWKB' => 33, 'MULTIPOINTFROMWKB' => 33, - 'MULTIPOINTFROMTEXT' => 33, - 'MULTIPOLYGONFROMWKB' => 33, 'UNCOMPRESSED_LENGTH' => 33, - 'MULTIPOLYGONFROMTEXT' => 33, - 'MULTILINESTRINGFROMWKB' => 33, - 'MULTILINESTRINGFROMTEXT' => 33, - 'GEOMETRYCOLLECTIONFROMWKB' => 33, - 'GEOMETRYCOLLECTIONFROMTEXT' => 33, - - 'IF' => 35, 'IN' => 35, - 'MOD' => 35, - 'LEFT' => 35, - 'MATCH' => 35, 'RIGHT' => 35, - 'INSERT' => 35, 'REPEAT' => 35, 'SCHEMA' => 35, 'VALUES' => 35, - 'CONVERT' => 35, 'DEFAULT' => 35, 'REPLACE' => 35, - 'DATABASE' => 35, 'UTC_DATE' => 35, 'UTC_TIME' => 35, - 'LOCALTIME' => 35, - 'CURRENT_DATE' => 35, 'CURRENT_TIME' => 35, 'CURRENT_USER' => 35, - 'UTC_TIMESTAMP' => 35, - 'LOCALTIMESTAMP' => 35, - 'CURRENT_TIMESTAMP' => 35, - - 'NOT IN' => 39, - - 'DATE' => 41, 'TIME' => 41, 'YEAR' => 41, - 'POINT' => 41, - 'POLYGON' => 41, - 'TIMESTAMP' => 41, - 'LINESTRING' => 41, - 'MULTILINESTRING' => 41, - 'GEOMETRYCOLLECTION' => 41, - - 'CHAR' => 43, - 'BINARY' => 43, - 'INTERVAL' => 43, - ]; -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMySql50600.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMySql50600.php deleted file mode 100644 index f60ae05..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMySql50600.php +++ /dev/null @@ -1,341 +0,0 @@ - 1, 'DO' => 1, 'IO' => 1, 'NO' => 1, 'XA' => 1, - 'ANY' => 1, 'CPU' => 1, 'END' => 1, 'IPC' => 1, 'NDB' => 1, 'NEW' => 1, - 'ONE' => 1, 'ROW' => 1, - 'BOOL' => 1, 'BYTE' => 1, 'CODE' => 1, 'CUBE' => 1, 'DATA' => 1, 'DISK' => 1, - 'ENDS' => 1, 'FAST' => 1, 'FILE' => 1, 'FULL' => 1, 'HASH' => 1, 'HELP' => 1, - 'HOST' => 1, 'LAST' => 1, 'LESS' => 1, 'LIST' => 1, 'LOGS' => 1, 'MODE' => 1, - 'NAME' => 1, 'NEXT' => 1, 'NONE' => 1, 'ONLY' => 1, 'OPEN' => 1, 'PAGE' => 1, - 'PORT' => 1, 'PREV' => 1, 'ROWS' => 1, 'SLOW' => 1, 'SOME' => 1, 'STOP' => 1, - 'THAN' => 1, 'TYPE' => 1, 'VIEW' => 1, 'WAIT' => 1, 'WORK' => 1, 'X509' => 1, - 'AFTER' => 1, 'BEGIN' => 1, 'BLOCK' => 1, 'BTREE' => 1, 'CACHE' => 1, - 'CHAIN' => 1, 'CLOSE' => 1, 'ERROR' => 1, 'EVENT' => 1, 'EVERY' => 1, - 'FIRST' => 1, 'FIXED' => 1, 'FLUSH' => 1, 'FOUND' => 1, 'HOSTS' => 1, - 'LEVEL' => 1, 'LOCAL' => 1, 'LOCKS' => 1, 'MERGE' => 1, 'MUTEX' => 1, - 'NAMES' => 1, 'NCHAR' => 1, 'OWNER' => 1, 'PHASE' => 1, 'PROXY' => 1, - 'QUERY' => 1, 'QUICK' => 1, 'RELAY' => 1, 'RESET' => 1, 'RTREE' => 1, - 'SHARE' => 1, 'SLAVE' => 1, 'START' => 1, 'SUPER' => 1, 'SWAPS' => 1, - 'TYPES' => 1, 'UNTIL' => 1, 'VALUE' => 1, - 'ACTION' => 1, 'BACKUP' => 1, 'BINLOG' => 1, 'CIPHER' => 1, 'CLIENT' => 1, - 'COMMIT' => 1, 'ENABLE' => 1, 'ENGINE' => 1, 'ERRORS' => 1, 'ESCAPE' => 1, - 'EVENTS' => 1, 'EXPIRE' => 1, 'EXPORT' => 1, 'FAULTS' => 1, 'FIELDS' => 1, - 'GLOBAL' => 1, 'GRANTS' => 1, 'IMPORT' => 1, 'ISSUER' => 1, 'LEAVES' => 1, - 'MASTER' => 1, 'MEDIUM' => 1, 'MEMORY' => 1, 'MODIFY' => 1, 'NUMBER' => 1, - 'OFFSET' => 1, 'PARSER' => 1, 'PLUGIN' => 1, 'RELOAD' => 1, 'REMOVE' => 1, - 'REPAIR' => 1, 'RESUME' => 1, 'ROLLUP' => 1, 'SERVER' => 1, 'SIGNED' => 1, - 'SIMPLE' => 1, 'SOCKET' => 1, 'SONAME' => 1, 'SOUNDS' => 1, 'SOURCE' => 1, - 'STARTS' => 1, 'STATUS' => 1, 'STRING' => 1, 'TABLES' => 1, - 'ANALYSE' => 1, 'AUTHORS' => 1, 'CHANGED' => 1, 'COLUMNS' => 1, 'COMMENT' => 1, - 'COMPACT' => 1, 'CONTEXT' => 1, 'CURRENT' => 1, 'DEFINER' => 1, 'DISABLE' => 1, - 'DISCARD' => 1, 'DYNAMIC' => 1, 'ENGINES' => 1, 'EXECUTE' => 1, 'GENERAL' => 1, - 'HANDLER' => 1, 'INDEXES' => 1, 'INSTALL' => 1, 'INVOKER' => 1, 'LOGFILE' => 1, - 'MIGRATE' => 1, 'NO_WAIT' => 1, 'OPTIONS' => 1, 'PARTIAL' => 1, 'PLUGINS' => 1, - 'PREPARE' => 1, 'PROFILE' => 1, 'REBUILD' => 1, 'RECOVER' => 1, 'RESTORE' => 1, - 'RETURNS' => 1, 'ROUTINE' => 1, 'SESSION' => 1, 'STORAGE' => 1, 'SUBJECT' => 1, - 'SUSPEND' => 1, 'UNICODE' => 1, 'UNKNOWN' => 1, 'UPGRADE' => 1, 'USE_FRM' => 1, - 'VIRTUAL' => 1, 'WRAPPER' => 1, - 'CASCADED' => 1, 'CHECKSUM' => 1, 'DATAFILE' => 1, 'DUMPFILE' => 1, - 'EXCHANGE' => 1, 'EXTENDED' => 1, 'FUNCTION' => 1, 'LANGUAGE' => 1, - 'MAX_ROWS' => 1, 'MAX_SIZE' => 1, 'MIN_ROWS' => 1, 'NATIONAL' => 1, - 'NVARCHAR' => 1, 'ONE_SHOT' => 1, 'PRESERVE' => 1, 'PROFILES' => 1, - 'REDOFILE' => 1, 'RELAYLOG' => 1, 'ROLLBACK' => 1, 'SCHEDULE' => 1, - 'SECURITY' => 1, 'SHUTDOWN' => 1, 'SNAPSHOT' => 1, 'SWITCHES' => 1, - 'TRIGGERS' => 1, 'UNDOFILE' => 1, 'WARNINGS' => 1, - 'AGGREGATE' => 1, 'ALGORITHM' => 1, 'COMMITTED' => 1, 'DIRECTORY' => 1, - 'DUPLICATE' => 1, 'EXPANSION' => 1, 'IO_THREAD' => 1, 'ISOLATION' => 1, - 'NODEGROUP' => 1, 'PACK_KEYS' => 1, 'READ_ONLY' => 1, 'REDUNDANT' => 1, - 'SAVEPOINT' => 1, 'SQL_CACHE' => 1, 'TEMPORARY' => 1, 'TEMPTABLE' => 1, - 'UNDEFINED' => 1, 'UNINSTALL' => 1, 'VARIABLES' => 1, - 'COMPLETION' => 1, 'COMPRESSED' => 1, 'CONCURRENT' => 1, 'CONNECTION' => 1, - 'CONSISTENT' => 1, 'DEALLOCATE' => 1, 'IDENTIFIED' => 1, 'MASTER_SSL' => 1, - 'NDBCLUSTER' => 1, 'PARTITIONS' => 1, 'PERSISTENT' => 1, 'PLUGIN_DIR' => 1, - 'PRIVILEGES' => 1, 'REORGANIZE' => 1, 'REPEATABLE' => 1, 'ROW_FORMAT' => 1, - 'SQL_THREAD' => 1, 'TABLESPACE' => 1, 'TABLE_NAME' => 1, - 'COLUMN_NAME' => 1, 'CURSOR_NAME' => 1, 'DIAGNOSTICS' => 1, 'EXTENT_SIZE' => 1, - 'MASTER_HOST' => 1, 'MASTER_PORT' => 1, 'MASTER_USER' => 1, 'MYSQL_ERRNO' => 1, - 'PROCESSLIST' => 1, 'REPLICATION' => 1, 'SCHEMA_NAME' => 1, 'SQL_TSI_DAY' => 1, - 'TRANSACTION' => 1, 'UNCOMMITTED' => 1, - 'CATALOG_NAME' => 1, 'CLASS_ORIGIN' => 1, 'CONTRIBUTORS' => 1, - 'DEFAULT_AUTH' => 1, 'DES_KEY_FILE' => 1, 'INITIAL_SIZE' => 1, - 'MASTER_DELAY' => 1, 'MESSAGE_TEXT' => 1, 'PARTITIONING' => 1, - 'RELAY_THREAD' => 1, 'SERIALIZABLE' => 1, 'SQL_NO_CACHE' => 1, - 'SQL_TSI_HOUR' => 1, 'SQL_TSI_WEEK' => 1, 'SQL_TSI_YEAR' => 1, - 'SUBPARTITION' => 1, - 'COLUMN_FORMAT' => 1, 'INSERT_METHOD' => 1, 'MASTER_SSL_CA' => 1, - 'RELAY_LOG_POS' => 1, 'SQL_TSI_MONTH' => 1, 'SUBPARTITIONS' => 1, - 'AUTO_INCREMENT' => 1, 'AVG_ROW_LENGTH' => 1, 'KEY_BLOCK_SIZE' => 1, - 'MASTER_LOG_POS' => 1, 'MASTER_SSL_CRL' => 1, 'MASTER_SSL_KEY' => 1, - 'RELAY_LOG_FILE' => 1, 'SQL_TSI_MINUTE' => 1, 'SQL_TSI_SECOND' => 1, - 'TABLE_CHECKSUM' => 1, 'USER_RESOURCES' => 1, - 'AUTOEXTEND_SIZE' => 1, 'CONSTRAINT_NAME' => 1, 'DELAY_KEY_WRITE' => 1, - 'MASTER_LOG_FILE' => 1, 'MASTER_PASSWORD' => 1, 'MASTER_SSL_CERT' => 1, - 'SQL_AFTER_GTIDS' => 1, 'SQL_TSI_QUARTER' => 1, 'SUBCLASS_ORIGIN' => 1, - 'MASTER_SERVER_ID' => 1, 'REDO_BUFFER_SIZE' => 1, 'SQL_BEFORE_GTIDS' => 1, - 'STATS_PERSISTENT' => 1, 'UNDO_BUFFER_SIZE' => 1, - 'CONSTRAINT_SCHEMA' => 1, 'IGNORE_SERVER_IDS' => 1, 'MASTER_SSL_CAPATH' => 1, - 'MASTER_SSL_CIPHER' => 1, 'RETURNED_SQLSTATE' => 1, 'SQL_BUFFER_RESULT' => 1, - 'STATS_AUTO_RECALC' => 1, - 'CONSTRAINT_CATALOG' => 1, 'MASTER_RETRY_COUNT' => 1, 'MASTER_SSL_CRLPATH' => 1, - 'SQL_AFTER_MTS_GAPS' => 1, 'STATS_SAMPLE_PAGES' => 1, - 'MASTER_AUTO_POSITION' => 1, 'MASTER_CONNECT_RETRY' => 1, - 'MAX_QUERIES_PER_HOUR' => 1, 'MAX_UPDATES_PER_HOUR' => 1, - 'MAX_USER_CONNECTIONS' => 1, - 'MASTER_HEARTBEAT_PERIOD' => 1, - 'MAX_CONNECTIONS_PER_HOUR' => 1, - - 'AS' => 3, 'BY' => 3, 'IS' => 3, 'ON' => 3, 'OR' => 3, 'TO' => 3, - 'ADD' => 3, 'ALL' => 3, 'AND' => 3, 'ASC' => 3, 'DEC' => 3, 'DIV' => 3, - 'FOR' => 3, 'GET' => 3, 'NOT' => 3, 'OUT' => 3, 'SQL' => 3, 'SSL' => 3, - 'USE' => 3, 'XOR' => 3, - 'BOTH' => 3, 'CALL' => 3, 'CASE' => 3, 'DESC' => 3, 'DROP' => 3, 'DUAL' => 3, - 'EACH' => 3, 'ELSE' => 3, 'EXIT' => 3, 'FROM' => 3, 'INT1' => 3, 'INT2' => 3, - 'INT3' => 3, 'INT4' => 3, 'INT8' => 3, 'INTO' => 3, 'JOIN' => 3, 'KEYS' => 3, - 'KILL' => 3, 'LIKE' => 3, 'LOAD' => 3, 'LOCK' => 3, 'LONG' => 3, 'LOOP' => 3, - 'NULL' => 3, 'READ' => 3, 'SHOW' => 3, 'THEN' => 3, 'TRUE' => 3, 'UNDO' => 3, - 'WHEN' => 3, 'WITH' => 3, - 'ALTER' => 3, 'CHECK' => 3, 'CROSS' => 3, 'FALSE' => 3, 'FETCH' => 3, - 'FORCE' => 3, 'GRANT' => 3, 'GROUP' => 3, 'INNER' => 3, 'INOUT' => 3, - 'LEAVE' => 3, 'LIMIT' => 3, 'LINES' => 3, 'ORDER' => 3, 'OUTER' => 3, - 'PURGE' => 3, 'RANGE' => 3, 'READS' => 3, 'RLIKE' => 3, 'TABLE' => 3, - 'UNION' => 3, 'USAGE' => 3, 'USING' => 3, 'WHERE' => 3, 'WHILE' => 3, - 'WRITE' => 3, - 'BEFORE' => 3, 'CHANGE' => 3, 'COLUMN' => 3, 'CREATE' => 3, 'CURSOR' => 3, - 'DELETE' => 3, 'ELSEIF' => 3, 'EXISTS' => 3, 'FLOAT4' => 3, 'FLOAT8' => 3, - 'HAVING' => 3, 'IGNORE' => 3, 'INFILE' => 3, 'LINEAR' => 3, 'OPTION' => 3, - 'REGEXP' => 3, 'RENAME' => 3, 'RETURN' => 3, 'REVOKE' => 3, 'SELECT' => 3, - 'SIGNAL' => 3, 'UNLOCK' => 3, 'UPDATE' => 3, - 'ANALYZE' => 3, 'BETWEEN' => 3, 'CASCADE' => 3, 'COLLATE' => 3, 'DECLARE' => 3, - 'DELAYED' => 3, 'ESCAPED' => 3, 'EXPLAIN' => 3, 'FOREIGN' => 3, 'ITERATE' => 3, - 'LEADING' => 3, 'NATURAL' => 3, 'OUTFILE' => 3, 'PRIMARY' => 3, 'RELEASE' => 3, - 'REQUIRE' => 3, 'SCHEMAS' => 3, 'TRIGGER' => 3, 'VARYING' => 3, - 'CONTINUE' => 3, 'DAY_HOUR' => 3, 'DESCRIBE' => 3, 'DISTINCT' => 3, - 'ENCLOSED' => 3, 'MAXVALUE' => 3, 'MODIFIES' => 3, 'OPTIMIZE' => 3, - 'RESIGNAL' => 3, 'RESTRICT' => 3, 'SPECIFIC' => 3, 'SQLSTATE' => 3, - 'STARTING' => 3, 'TRAILING' => 3, 'UNSIGNED' => 3, 'ZEROFILL' => 3, - 'CONDITION' => 3, 'DATABASES' => 3, 'MIDDLEINT' => 3, 'PARTITION' => 3, - 'PRECISION' => 3, 'PROCEDURE' => 3, 'SENSITIVE' => 3, 'SEPARATOR' => 3, - 'ACCESSIBLE' => 3, 'ASENSITIVE' => 3, 'CONSTRAINT' => 3, 'DAY_MINUTE' => 3, - 'DAY_SECOND' => 3, 'OPTIONALLY' => 3, 'READ_WRITE' => 3, 'REFERENCES' => 3, - 'SQLWARNING' => 3, 'TERMINATED' => 3, 'YEAR_MONTH' => 3, - 'DISTINCTROW' => 3, 'HOUR_MINUTE' => 3, 'HOUR_SECOND' => 3, 'INSENSITIVE' => 3, - 'MASTER_BIND' => 3, - 'LOW_PRIORITY' => 3, 'SQLEXCEPTION' => 3, 'VARCHARACTER' => 3, - 'DETERMINISTIC' => 3, 'HIGH_PRIORITY' => 3, 'MINUTE_SECOND' => 3, - 'STRAIGHT_JOIN' => 3, - 'IO_AFTER_GTIDS' => 3, 'SQL_BIG_RESULT' => 3, - 'DAY_MICROSECOND' => 3, 'IO_BEFORE_GTIDS' => 3, - 'HOUR_MICROSECOND' => 3, 'SQL_SMALL_RESULT' => 3, - 'MINUTE_MICROSECOND' => 3, 'NO_WRITE_TO_BINLOG' => 3, 'SECOND_MICROSECOND' => 3, - 'SQL_CALC_FOUND_ROWS' => 3, - 'MASTER_SSL_VERIFY_SERVER_CERT' => 3, - - 'GROUP BY' => 7, 'NOT NULL' => 7, 'ORDER BY' => 7, 'SET NULL' => 7, - 'AND CHAIN' => 7, 'FULL JOIN' => 7, 'IF EXISTS' => 7, 'LEFT JOIN' => 7, - 'LESS THAN' => 7, 'LOAD DATA' => 7, 'NO ACTION' => 7, 'ON DELETE' => 7, - 'ON UPDATE' => 7, 'UNION ALL' => 7, - 'CROSS JOIN' => 7, 'ESCAPED BY' => 7, 'FOR UPDATE' => 7, 'INNER JOIN' => 7, - 'LINEAR KEY' => 7, 'NO RELEASE' => 7, 'OR REPLACE' => 7, 'RIGHT JOIN' => 7, - 'ENCLOSED BY' => 7, 'LINEAR HASH' => 7, 'STARTING BY' => 7, - 'AND NO CHAIN' => 7, 'FOR EACH ROW' => 7, 'NATURAL JOIN' => 7, - 'PARTITION BY' => 7, 'SET PASSWORD' => 7, 'SQL SECURITY' => 7, - 'CHARACTER SET' => 7, 'IF NOT EXISTS' => 7, 'TERMINATED BY' => 7, - 'DATA DIRECTORY' => 7, 'UNION DISTINCT' => 7, - 'DEFAULT CHARSET' => 7, 'DEFAULT COLLATE' => 7, 'FULL OUTER JOIN' => 7, - 'INDEX DIRECTORY' => 7, 'LEFT OUTER JOIN' => 7, 'SUBPARTITION BY' => 7, - 'GENERATED ALWAYS' => 7, 'RIGHT OUTER JOIN' => 7, - 'NATURAL LEFT JOIN' => 7, 'START TRANSACTION' => 7, - 'LOCK IN SHARE MODE' => 7, 'NATURAL RIGHT JOIN' => 7, 'SELECT TRANSACTION' => 7, - 'DEFAULT CHARACTER SET' => 7, - 'NATURAL LEFT OUTER JOIN' => 7, - 'NATURAL RIGHT OUTER JOIN' => 7, 'WITH CONSISTENT SNAPSHOT' => 7, - - 'BIT' => 9, 'XML' => 9, - 'ENUM' => 9, 'JSON' => 9, 'TEXT' => 9, - 'ARRAY' => 9, - 'SERIAL' => 9, - 'BOOLEAN' => 9, - 'DATETIME' => 9, 'GEOMETRY' => 9, 'MULTISET' => 9, - 'MULTILINEPOINT' => 9, - 'MULTILINEPOLYGON' => 9, - - 'INT' => 11, 'SET' => 11, - 'BLOB' => 11, 'REAL' => 11, - 'FLOAT' => 11, - 'BIGINT' => 11, 'DOUBLE' => 11, - 'DECIMAL' => 11, 'INTEGER' => 11, 'NUMERIC' => 11, 'TINYINT' => 11, 'VARCHAR' => 11, - 'LONGBLOB' => 11, 'LONGTEXT' => 11, 'SMALLINT' => 11, 'TINYBLOB' => 11, - 'TINYTEXT' => 11, - 'CHARACTER' => 11, 'MEDIUMINT' => 11, 'VARBINARY' => 11, - 'MEDIUMBLOB' => 11, 'MEDIUMTEXT' => 11, - - 'BINARY VARYING' => 15, - - 'KEY' => 19, - 'INDEX' => 19, - 'UNIQUE' => 19, - 'SPATIAL' => 19, - 'FULLTEXT' => 19, - - 'INDEX KEY' => 23, - 'UNIQUE KEY' => 23, - 'FOREIGN KEY' => 23, 'PRIMARY KEY' => 23, 'SPATIAL KEY' => 23, - 'FULLTEXT KEY' => 23, 'UNIQUE INDEX' => 23, - 'SPATIAL INDEX' => 23, - 'FULLTEXT INDEX' => 23, - - 'X' => 33, 'Y' => 33, - 'LN' => 33, 'PI' => 33, - 'ABS' => 33, 'AVG' => 33, 'BIN' => 33, 'COS' => 33, 'COT' => 33, 'DAY' => 33, - 'ELT' => 33, 'EXP' => 33, 'HEX' => 33, 'LOG' => 33, 'MAX' => 33, 'MD5' => 33, - 'MID' => 33, 'MIN' => 33, 'NOW' => 33, 'OCT' => 33, 'ORD' => 33, 'POW' => 33, - 'SHA' => 33, 'SIN' => 33, 'STD' => 33, 'SUM' => 33, 'TAN' => 33, - 'ACOS' => 33, 'AREA' => 33, 'ASIN' => 33, 'ATAN' => 33, 'CAST' => 33, 'CEIL' => 33, - 'CONV' => 33, 'HOUR' => 33, 'LOG2' => 33, 'LPAD' => 33, 'RAND' => 33, 'RPAD' => 33, - 'SHA1' => 33, 'SHA2' => 33, 'SIGN' => 33, 'SQRT' => 33, 'SRID' => 33, 'ST_X' => 33, - 'ST_Y' => 33, 'TRIM' => 33, 'USER' => 33, 'UUID' => 33, 'WEEK' => 33, - 'ASCII' => 33, 'ASWKB' => 33, 'ASWKT' => 33, 'ATAN2' => 33, 'COUNT' => 33, - 'CRC32' => 33, 'FIELD' => 33, 'FLOOR' => 33, 'INSTR' => 33, 'LCASE' => 33, - 'LEAST' => 33, 'LOG10' => 33, 'LOWER' => 33, 'LTRIM' => 33, 'MONTH' => 33, - 'POWER' => 33, 'QUOTE' => 33, 'ROUND' => 33, 'RTRIM' => 33, 'SLEEP' => 33, - 'SPACE' => 33, 'UCASE' => 33, 'UNHEX' => 33, 'UPPER' => 33, - 'ASTEXT' => 33, 'BIT_OR' => 33, 'BUFFER' => 33, 'CONCAT' => 33, 'DECODE' => 33, - 'ENCODE' => 33, 'EQUALS' => 33, 'FORMAT' => 33, 'IFNULL' => 33, 'ISNULL' => 33, - 'LENGTH' => 33, 'LOCATE' => 33, 'MINUTE' => 33, 'NULLIF' => 33, 'POINTN' => 33, - 'SECOND' => 33, 'STDDEV' => 33, 'STRCMP' => 33, 'SUBSTR' => 33, 'WITHIN' => 33, - 'ADDDATE' => 33, 'ADDTIME' => 33, 'AGAINST' => 33, 'BIT_AND' => 33, 'BIT_XOR' => 33, - 'CEILING' => 33, 'CHARSET' => 33, 'CROSSES' => 33, 'CURDATE' => 33, 'CURTIME' => 33, - 'DAYNAME' => 33, 'DEGREES' => 33, 'ENCRYPT' => 33, 'EXTRACT' => 33, 'GLENGTH' => 33, - 'ISEMPTY' => 33, 'IS_IPV4' => 33, 'IS_IPV6' => 33, 'QUARTER' => 33, 'RADIANS' => 33, - 'REVERSE' => 33, 'SOUNDEX' => 33, 'ST_AREA' => 33, 'ST_SRID' => 33, 'SUBDATE' => 33, - 'SUBTIME' => 33, 'SYSDATE' => 33, 'TOUCHES' => 33, 'TO_DAYS' => 33, 'VAR_POP' => 33, - 'VERSION' => 33, 'WEEKDAY' => 33, - 'ASBINARY' => 33, 'CENTROID' => 33, 'COALESCE' => 33, 'COMPRESS' => 33, - 'CONTAINS' => 33, 'DATEDIFF' => 33, 'DATE_ADD' => 33, 'DATE_SUB' => 33, - 'DISJOINT' => 33, 'ENDPOINT' => 33, 'ENVELOPE' => 33, 'GET_LOCK' => 33, - 'GREATEST' => 33, 'ISCLOSED' => 33, 'ISSIMPLE' => 33, 'MAKEDATE' => 33, - 'MAKETIME' => 33, 'MAKE_SET' => 33, 'MBREQUAL' => 33, 'OVERLAPS' => 33, - 'PASSWORD' => 33, 'POSITION' => 33, 'ST_ASWKB' => 33, 'ST_ASWKT' => 33, - 'ST_UNION' => 33, 'TIMEDIFF' => 33, 'TRUNCATE' => 33, 'VARIANCE' => 33, - 'VAR_SAMP' => 33, 'YEARWEEK' => 33, - 'BENCHMARK' => 33, 'BIT_COUNT' => 33, 'COLLATION' => 33, 'CONCAT_WS' => 33, - 'DAYOFWEEK' => 33, 'DAYOFYEAR' => 33, 'DIMENSION' => 33, 'FROM_DAYS' => 33, - 'GEOMETRYN' => 33, 'INET_ATON' => 33, 'INET_NTOA' => 33, 'LOAD_FILE' => 33, - 'MBRWITHIN' => 33, 'MONTHNAME' => 33, 'NUMPOINTS' => 33, 'ROW_COUNT' => 33, - 'ST_ASTEXT' => 33, 'ST_BUFFER' => 33, 'ST_EQUALS' => 33, 'ST_POINTN' => 33, - 'ST_WITHIN' => 33, 'SUBSTRING' => 33, 'TO_BASE64' => 33, 'UPDATEXML' => 33, - 'BIT_LENGTH' => 33, 'CONVERT_TZ' => 33, 'DAYOFMONTH' => 33, 'EXPORT_SET' => 33, - 'FOUND_ROWS' => 33, 'GET_FORMAT' => 33, 'INET6_ATON' => 33, 'INET6_NTOA' => 33, - 'INTERSECTS' => 33, 'MBRTOUCHES' => 33, 'MULTIPOINT' => 33, 'NAME_CONST' => 33, - 'PERIOD_ADD' => 33, 'STARTPOINT' => 33, 'STDDEV_POP' => 33, 'ST_CROSSES' => 33, - 'ST_ISEMPTY' => 33, 'ST_TOUCHES' => 33, 'TO_SECONDS' => 33, 'UNCOMPRESS' => 33, - 'UUID_SHORT' => 33, 'WEEKOFYEAR' => 33, - 'AES_DECRYPT' => 33, 'AES_ENCRYPT' => 33, 'CHAR_LENGTH' => 33, 'DATE_FORMAT' => 33, - 'DES_DECRYPT' => 33, 'DES_ENCRYPT' => 33, 'FIND_IN_SET' => 33, 'FROM_BASE64' => 33, - 'GEOMFROMWKB' => 33, 'GTID_SUBSET' => 33, 'LINEFROMWKB' => 33, 'MBRCONTAINS' => 33, - 'MBRDISJOINT' => 33, 'MBROVERLAPS' => 33, 'MICROSECOND' => 33, 'PERIOD_DIFF' => 33, - 'POLYFROMWKB' => 33, 'SEC_TO_TIME' => 33, 'STDDEV_SAMP' => 33, 'STR_TO_DATE' => 33, - 'ST_ASBINARY' => 33, 'ST_CENTROID' => 33, 'ST_CONTAINS' => 33, 'ST_DISJOINT' => 33, - 'ST_DISTANCE' => 33, 'ST_ENDPOINT' => 33, 'ST_ENVELOPE' => 33, 'ST_ISCLOSED' => 33, - 'ST_ISSIMPLE' => 33, 'ST_OVERLAPS' => 33, 'SYSTEM_USER' => 33, 'TIME_FORMAT' => 33, - 'TIME_TO_SEC' => 33, - 'COERCIBILITY' => 33, 'EXTERIORRING' => 33, 'EXTRACTVALUE' => 33, - 'GEOMETRYTYPE' => 33, 'GEOMFROMTEXT' => 33, 'GROUP_CONCAT' => 33, - 'IS_FREE_LOCK' => 33, 'IS_USED_LOCK' => 33, 'LINEFROMTEXT' => 33, - 'MLINEFROMWKB' => 33, 'MPOLYFROMWKB' => 33, 'MULTIPOLYGON' => 33, - 'OCTET_LENGTH' => 33, 'OLD_PASSWORD' => 33, 'POINTFROMWKB' => 33, - 'POLYFROMTEXT' => 33, 'RANDOM_BYTES' => 33, 'RELEASE_LOCK' => 33, - 'SESSION_USER' => 33, 'ST_DIMENSION' => 33, 'ST_GEOMETRYN' => 33, - 'ST_NUMPOINTS' => 33, 'TIMESTAMPADD' => 33, - 'CONNECTION_ID' => 33, 'CREATE_DIGEST' => 33, 'FROM_UNIXTIME' => 33, - 'GTID_SUBTRACT' => 33, 'INTERIORRINGN' => 33, 'MBRINTERSECTS' => 33, - 'MLINEFROMTEXT' => 33, 'MPOINTFROMWKB' => 33, 'MPOLYFROMTEXT' => 33, - 'NUMGEOMETRIES' => 33, 'POINTFROMTEXT' => 33, 'ST_DIFFERENCE' => 33, - 'ST_INTERSECTS' => 33, 'ST_STARTPOINT' => 33, 'TIMESTAMPDIFF' => 33, - 'WEIGHT_STRING' => 33, - 'IS_IPV4_COMPAT' => 33, 'IS_IPV4_MAPPED' => 33, 'LAST_INSERT_ID' => 33, - 'MPOINTFROMTEXT' => 33, 'POLYGONFROMWKB' => 33, 'ST_GEOMFROMWKB' => 33, - 'ST_LINEFROMWKB' => 33, 'ST_POLYFROMWKB' => 33, 'UNIX_TIMESTAMP' => 33, - 'ASYMMETRIC_SIGN' => 33, 'GEOMCOLLFROMWKB' => 33, 'MASTER_POS_WAIT' => 33, - 'POLYGONFROMTEXT' => 33, 'ST_EXTERIORRING' => 33, 'ST_GEOMETRYTYPE' => 33, - 'ST_GEOMFROMTEXT' => 33, 'ST_INTERSECTION' => 33, 'ST_LINEFROMTEXT' => 33, - 'ST_POINTFROMWKB' => 33, 'ST_POLYFROMTEXT' => 33, 'SUBSTRING_INDEX' => 33, - 'CHARACTER_LENGTH' => 33, 'GEOMCOLLFROMTEXT' => 33, 'GEOMETRYFROMTEXT' => 33, - 'NUMINTERIORRINGS' => 33, 'ST_INTERIORRINGN' => 33, 'ST_NUMGEOMETRIES' => 33, - 'ST_POINTFROMTEXT' => 33, 'ST_SYMDIFFERENCE' => 33, - 'ASYMMETRIC_DERIVE' => 33, 'ASYMMETRIC_VERIFY' => 33, 'LINESTRINGFROMWKB' => 33, - 'MULTIPOINTFROMWKB' => 33, 'ST_POLYGONFROMWKB' => 33, - 'ASYMMETRIC_DECRYPT' => 33, 'ASYMMETRIC_ENCRYPT' => 33, 'MULTIPOINTFROMTEXT' => 33, - 'ST_GEOMCOLLFROMTXT' => 33, 'ST_GEOMCOLLFROMWKB' => 33, 'ST_POLYGONFROMTEXT' => 33, - 'MULTIPOLYGONFROMWKB' => 33, 'ST_GEOMCOLLFROMTEXT' => 33, 'ST_GEOMETRYFROMTEXT' => 33, - 'ST_NUMINTERIORRINGS' => 33, 'UNCOMPRESSED_LENGTH' => 33, - 'CREATE_DH_PARAMETERS' => 33, 'MULTIPOLYGONFROMTEXT' => 33, - 'ST_LINESTRINGFROMWKB' => 33, - 'MULTILINESTRINGFROMWKB' => 33, - 'MULTILINESTRINGFROMTEXT' => 33, - 'CREATE_ASYMMETRIC_PUB_KEY' => 33, 'GEOMETRYCOLLECTIONFROMWKB' => 33, - 'CREATE_ASYMMETRIC_PRIV_KEY' => 33, 'GEOMETRYCOLLECTIONFROMTEXT' => 33, - 'VALIDATE_PASSWORD_STRENGTH' => 33, - 'SQL_THREAD_WAIT_AFTER_GTIDS' => 33, - 'ST_GEOMETRYCOLLECTIONFROMWKB' => 33, - 'ST_GEOMETRYCOLLECTIONFROMTEXT' => 33, - 'WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS' => 33, - - 'IF' => 35, 'IN' => 35, - 'MOD' => 35, - 'LEFT' => 35, - 'MATCH' => 35, 'RIGHT' => 35, - 'INSERT' => 35, 'REPEAT' => 35, 'SCHEMA' => 35, 'VALUES' => 35, - 'CONVERT' => 35, 'DEFAULT' => 35, 'REPLACE' => 35, - 'DATABASE' => 35, 'UTC_DATE' => 35, 'UTC_TIME' => 35, - 'LOCALTIME' => 35, - 'CURRENT_DATE' => 35, 'CURRENT_TIME' => 35, 'CURRENT_USER' => 35, - 'UTC_TIMESTAMP' => 35, - 'LOCALTIMESTAMP' => 35, - 'CURRENT_TIMESTAMP' => 35, - - 'NOT IN' => 39, - - 'DATE' => 41, 'TIME' => 41, 'YEAR' => 41, - 'POINT' => 41, - 'POLYGON' => 41, - 'TIMESTAMP' => 41, - 'LINESTRING' => 41, - 'MULTILINESTRING' => 41, - 'GEOMETRYCOLLECTION' => 41, - - 'CHAR' => 43, - 'BINARY' => 43, - 'INTERVAL' => 43, - ]; -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMySql50700.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMySql50700.php deleted file mode 100644 index 412c25b..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMySql50700.php +++ /dev/null @@ -1,361 +0,0 @@ - 1, 'DO' => 1, 'IO' => 1, 'NO' => 1, 'XA' => 1, - 'ANY' => 1, 'CPU' => 1, 'END' => 1, 'IPC' => 1, 'NDB' => 1, 'NEW' => 1, - 'ONE' => 1, 'ROW' => 1, 'XID' => 1, - 'BOOL' => 1, 'BYTE' => 1, 'CODE' => 1, 'CUBE' => 1, 'DATA' => 1, 'DISK' => 1, - 'ENDS' => 1, 'FAST' => 1, 'FILE' => 1, 'FULL' => 1, 'HASH' => 1, 'HELP' => 1, - 'HOST' => 1, 'LAST' => 1, 'LESS' => 1, 'LIST' => 1, 'LOGS' => 1, 'MODE' => 1, - 'NAME' => 1, 'NEXT' => 1, 'NONE' => 1, 'ONLY' => 1, 'OPEN' => 1, 'PAGE' => 1, - 'PORT' => 1, 'PREV' => 1, 'ROWS' => 1, 'SLOW' => 1, 'SOME' => 1, 'STOP' => 1, - 'THAN' => 1, 'TYPE' => 1, 'VIEW' => 1, 'WAIT' => 1, 'WORK' => 1, 'X509' => 1, - 'AFTER' => 1, 'BEGIN' => 1, 'BLOCK' => 1, 'BTREE' => 1, 'CACHE' => 1, - 'CHAIN' => 1, 'CLOSE' => 1, 'ERROR' => 1, 'EVENT' => 1, 'EVERY' => 1, - 'FIRST' => 1, 'FIXED' => 1, 'FLUSH' => 1, 'FOUND' => 1, 'HOSTS' => 1, - 'LEVEL' => 1, 'LOCAL' => 1, 'LOCKS' => 1, 'MERGE' => 1, 'MUTEX' => 1, - 'NAMES' => 1, 'NCHAR' => 1, 'NEVER' => 1, 'OWNER' => 1, 'PHASE' => 1, - 'PROXY' => 1, 'QUERY' => 1, 'QUICK' => 1, 'RELAY' => 1, 'RESET' => 1, - 'RTREE' => 1, 'SHARE' => 1, 'SLAVE' => 1, 'START' => 1, 'SUPER' => 1, - 'SWAPS' => 1, 'TYPES' => 1, 'UNTIL' => 1, 'VALUE' => 1, - 'ACTION' => 1, 'ALWAYS' => 1, 'BACKUP' => 1, 'BINLOG' => 1, 'CIPHER' => 1, - 'CLIENT' => 1, 'COMMIT' => 1, 'ENABLE' => 1, 'ENGINE' => 1, 'ERRORS' => 1, - 'ESCAPE' => 1, 'EVENTS' => 1, 'EXPIRE' => 1, 'EXPORT' => 1, 'FAULTS' => 1, - 'FIELDS' => 1, 'FILTER' => 1, 'GLOBAL' => 1, 'GRANTS' => 1, 'IMPORT' => 1, - 'ISSUER' => 1, 'LEAVES' => 1, 'MASTER' => 1, 'MEDIUM' => 1, 'MEMORY' => 1, - 'MODIFY' => 1, 'NUMBER' => 1, 'OFFSET' => 1, 'PARSER' => 1, 'PLUGIN' => 1, - 'RELOAD' => 1, 'REMOVE' => 1, 'REPAIR' => 1, 'RESUME' => 1, 'ROLLUP' => 1, - 'SERVER' => 1, 'SIGNED' => 1, 'SIMPLE' => 1, 'SOCKET' => 1, 'SONAME' => 1, - 'SOUNDS' => 1, 'SOURCE' => 1, 'STARTS' => 1, 'STATUS' => 1, 'STRING' => 1, - 'TABLES' => 1, - 'ACCOUNT' => 1, 'ANALYSE' => 1, 'CHANGED' => 1, 'CHANNEL' => 1, 'COLUMNS' => 1, - 'COMMENT' => 1, 'COMPACT' => 1, 'CONTEXT' => 1, 'CURRENT' => 1, 'DEFINER' => 1, - 'DISABLE' => 1, 'DISCARD' => 1, 'DYNAMIC' => 1, 'ENGINES' => 1, 'EXECUTE' => 1, - 'FOLLOWS' => 1, 'GENERAL' => 1, 'HANDLER' => 1, 'INDEXES' => 1, 'INSTALL' => 1, - 'INVOKER' => 1, 'LOGFILE' => 1, 'MIGRATE' => 1, 'NO_WAIT' => 1, 'OPTIONS' => 1, - 'PARTIAL' => 1, 'PLUGINS' => 1, 'PREPARE' => 1, 'PROFILE' => 1, 'REBUILD' => 1, - 'RECOVER' => 1, 'RESTORE' => 1, 'RETURNS' => 1, 'ROUTINE' => 1, 'SESSION' => 1, - 'STACKED' => 1, 'STORAGE' => 1, 'SUBJECT' => 1, 'SUSPEND' => 1, 'UNICODE' => 1, - 'UNKNOWN' => 1, 'UPGRADE' => 1, 'USE_FRM' => 1, 'WITHOUT' => 1, 'WRAPPER' => 1, - 'CASCADED' => 1, 'CHECKSUM' => 1, 'DATAFILE' => 1, 'DUMPFILE' => 1, - 'EXCHANGE' => 1, 'EXTENDED' => 1, 'FUNCTION' => 1, 'LANGUAGE' => 1, - 'MAX_ROWS' => 1, 'MAX_SIZE' => 1, 'MIN_ROWS' => 1, 'NATIONAL' => 1, - 'NVARCHAR' => 1, 'PRECEDES' => 1, 'PRESERVE' => 1, 'PROFILES' => 1, - 'REDOFILE' => 1, 'RELAYLOG' => 1, 'ROLLBACK' => 1, 'SCHEDULE' => 1, - 'SECURITY' => 1, 'SHUTDOWN' => 1, 'SNAPSHOT' => 1, 'SWITCHES' => 1, - 'TRIGGERS' => 1, 'UNDOFILE' => 1, 'WARNINGS' => 1, - 'AGGREGATE' => 1, 'ALGORITHM' => 1, 'COMMITTED' => 1, 'DIRECTORY' => 1, - 'DUPLICATE' => 1, 'EXPANSION' => 1, 'IO_THREAD' => 1, 'ISOLATION' => 1, - 'NODEGROUP' => 1, 'PACK_KEYS' => 1, 'READ_ONLY' => 1, 'REDUNDANT' => 1, - 'SAVEPOINT' => 1, 'SQL_CACHE' => 1, 'TEMPORARY' => 1, 'TEMPTABLE' => 1, - 'UNDEFINED' => 1, 'UNINSTALL' => 1, 'VARIABLES' => 1, - 'COMPLETION' => 1, 'COMPRESSED' => 1, 'CONCURRENT' => 1, 'CONNECTION' => 1, - 'CONSISTENT' => 1, 'DEALLOCATE' => 1, 'IDENTIFIED' => 1, 'MASTER_SSL' => 1, - 'NDBCLUSTER' => 1, 'PARTITIONS' => 1, 'PERSISTENT' => 1, 'PLUGIN_DIR' => 1, - 'PRIVILEGES' => 1, 'REORGANIZE' => 1, 'REPEATABLE' => 1, 'ROW_FORMAT' => 1, - 'SQL_THREAD' => 1, 'TABLESPACE' => 1, 'TABLE_NAME' => 1, 'VALIDATION' => 1, - 'COLUMN_NAME' => 1, 'COMPRESSION' => 1, 'CURSOR_NAME' => 1, 'DIAGNOSTICS' => 1, - 'EXTENT_SIZE' => 1, 'MASTER_HOST' => 1, 'MASTER_PORT' => 1, 'MASTER_USER' => 1, - 'MYSQL_ERRNO' => 1, 'NONBLOCKING' => 1, 'PROCESSLIST' => 1, 'REPLICATION' => 1, - 'SCHEMA_NAME' => 1, 'SQL_TSI_DAY' => 1, 'TRANSACTION' => 1, 'UNCOMMITTED' => 1, - 'CATALOG_NAME' => 1, 'CLASS_ORIGIN' => 1, 'DEFAULT_AUTH' => 1, - 'DES_KEY_FILE' => 1, 'INITIAL_SIZE' => 1, 'MASTER_DELAY' => 1, - 'MESSAGE_TEXT' => 1, 'PARTITIONING' => 1, 'RELAY_THREAD' => 1, - 'SERIALIZABLE' => 1, 'SQL_NO_CACHE' => 1, 'SQL_TSI_HOUR' => 1, - 'SQL_TSI_WEEK' => 1, 'SQL_TSI_YEAR' => 1, 'SUBPARTITION' => 1, - 'COLUMN_FORMAT' => 1, 'INSERT_METHOD' => 1, 'MASTER_SSL_CA' => 1, - 'RELAY_LOG_POS' => 1, 'SQL_TSI_MONTH' => 1, 'SUBPARTITIONS' => 1, - 'AUTO_INCREMENT' => 1, 'AVG_ROW_LENGTH' => 1, 'KEY_BLOCK_SIZE' => 1, - 'MASTER_LOG_POS' => 1, 'MASTER_SSL_CRL' => 1, 'MASTER_SSL_KEY' => 1, - 'RELAY_LOG_FILE' => 1, 'SQL_TSI_MINUTE' => 1, 'SQL_TSI_SECOND' => 1, - 'TABLE_CHECKSUM' => 1, 'USER_RESOURCES' => 1, - 'AUTOEXTEND_SIZE' => 1, 'CONSTRAINT_NAME' => 1, 'DELAY_KEY_WRITE' => 1, - 'FILE_BLOCK_SIZE' => 1, 'MASTER_LOG_FILE' => 1, 'MASTER_PASSWORD' => 1, - 'MASTER_SSL_CERT' => 1, 'PARSE_GCOL_EXPR' => 1, 'REPLICATE_DO_DB' => 1, - 'SQL_AFTER_GTIDS' => 1, 'SQL_TSI_QUARTER' => 1, 'SUBCLASS_ORIGIN' => 1, - 'MASTER_SERVER_ID' => 1, 'REDO_BUFFER_SIZE' => 1, 'SQL_BEFORE_GTIDS' => 1, - 'STATS_PERSISTENT' => 1, 'UNDO_BUFFER_SIZE' => 1, - 'CONSTRAINT_SCHEMA' => 1, 'GROUP_REPLICATION' => 1, 'IGNORE_SERVER_IDS' => 1, - 'MASTER_SSL_CAPATH' => 1, 'MASTER_SSL_CIPHER' => 1, 'RETURNED_SQLSTATE' => 1, - 'SQL_BUFFER_RESULT' => 1, 'STATS_AUTO_RECALC' => 1, - 'CONSTRAINT_CATALOG' => 1, 'MASTER_RETRY_COUNT' => 1, 'MASTER_SSL_CRLPATH' => 1, - 'MAX_STATEMENT_TIME' => 1, 'REPLICATE_DO_TABLE' => 1, 'SQL_AFTER_MTS_GAPS' => 1, - 'STATS_SAMPLE_PAGES' => 1, - 'REPLICATE_IGNORE_DB' => 1, - 'MASTER_AUTO_POSITION' => 1, 'MASTER_CONNECT_RETRY' => 1, - 'MAX_QUERIES_PER_HOUR' => 1, 'MAX_UPDATES_PER_HOUR' => 1, - 'MAX_USER_CONNECTIONS' => 1, 'REPLICATE_REWRITE_DB' => 1, - 'REPLICATE_IGNORE_TABLE' => 1, - 'MASTER_HEARTBEAT_PERIOD' => 1, 'REPLICATE_WILD_DO_TABLE' => 1, - 'MAX_CONNECTIONS_PER_HOUR' => 1, - 'REPLICATE_WILD_IGNORE_TABLE' => 1, - - 'AS' => 3, 'BY' => 3, 'IS' => 3, 'ON' => 3, 'OR' => 3, 'TO' => 3, - 'ADD' => 3, 'ALL' => 3, 'AND' => 3, 'ASC' => 3, 'DEC' => 3, 'DIV' => 3, - 'FOR' => 3, 'GET' => 3, 'NOT' => 3, 'OUT' => 3, 'SQL' => 3, 'SSL' => 3, - 'USE' => 3, 'XOR' => 3, - 'BOTH' => 3, 'CALL' => 3, 'CASE' => 3, 'DESC' => 3, 'DROP' => 3, 'DUAL' => 3, - 'EACH' => 3, 'ELSE' => 3, 'EXIT' => 3, 'FROM' => 3, 'INT1' => 3, 'INT2' => 3, - 'INT3' => 3, 'INT4' => 3, 'INT8' => 3, 'INTO' => 3, 'JOIN' => 3, 'KEYS' => 3, - 'KILL' => 3, 'LIKE' => 3, 'LOAD' => 3, 'LOCK' => 3, 'LONG' => 3, 'LOOP' => 3, - 'NULL' => 3, 'READ' => 3, 'SHOW' => 3, 'THEN' => 3, 'TRUE' => 3, 'UNDO' => 3, - 'WHEN' => 3, 'WITH' => 3, - 'ALTER' => 3, 'CHECK' => 3, 'CROSS' => 3, 'FALSE' => 3, 'FETCH' => 3, - 'FORCE' => 3, 'GRANT' => 3, 'GROUP' => 3, 'INNER' => 3, 'INOUT' => 3, - 'LEAVE' => 3, 'LIMIT' => 3, 'LINES' => 3, 'ORDER' => 3, 'OUTER' => 3, - 'PURGE' => 3, 'RANGE' => 3, 'READS' => 3, 'RLIKE' => 3, 'TABLE' => 3, - 'UNION' => 3, 'USAGE' => 3, 'USING' => 3, 'WHERE' => 3, 'WHILE' => 3, - 'WRITE' => 3, - 'BEFORE' => 3, 'CHANGE' => 3, 'COLUMN' => 3, 'CREATE' => 3, 'CURSOR' => 3, - 'DELETE' => 3, 'ELSEIF' => 3, 'EXISTS' => 3, 'FLOAT4' => 3, 'FLOAT8' => 3, - 'HAVING' => 3, 'IGNORE' => 3, 'INFILE' => 3, 'LINEAR' => 3, 'OPTION' => 3, - 'REGEXP' => 3, 'RENAME' => 3, 'RETURN' => 3, 'REVOKE' => 3, 'SELECT' => 3, - 'SIGNAL' => 3, 'STORED' => 3, 'UNLOCK' => 3, 'UPDATE' => 3, - 'ANALYZE' => 3, 'BETWEEN' => 3, 'CASCADE' => 3, 'COLLATE' => 3, 'DECLARE' => 3, - 'DELAYED' => 3, 'ESCAPED' => 3, 'EXPLAIN' => 3, 'FOREIGN' => 3, 'ITERATE' => 3, - 'LEADING' => 3, 'NATURAL' => 3, 'OUTFILE' => 3, 'PRIMARY' => 3, 'RELEASE' => 3, - 'REQUIRE' => 3, 'SCHEMAS' => 3, 'TRIGGER' => 3, 'VARYING' => 3, 'VIRTUAL' => 3, - 'CONTINUE' => 3, 'DAY_HOUR' => 3, 'DESCRIBE' => 3, 'DISTINCT' => 3, - 'ENCLOSED' => 3, 'MAXVALUE' => 3, 'MODIFIES' => 3, 'OPTIMIZE' => 3, - 'RESIGNAL' => 3, 'RESTRICT' => 3, 'SPECIFIC' => 3, 'SQLSTATE' => 3, - 'STARTING' => 3, 'TRAILING' => 3, 'UNSIGNED' => 3, 'ZEROFILL' => 3, - 'CONDITION' => 3, 'DATABASES' => 3, 'GENERATED' => 3, 'MIDDLEINT' => 3, - 'PARTITION' => 3, 'PRECISION' => 3, 'PROCEDURE' => 3, 'SENSITIVE' => 3, - 'SEPARATOR' => 3, - 'ACCESSIBLE' => 3, 'ASENSITIVE' => 3, 'CONSTRAINT' => 3, 'DAY_MINUTE' => 3, - 'DAY_SECOND' => 3, 'OPTIONALLY' => 3, 'READ_WRITE' => 3, 'REFERENCES' => 3, - 'SQLWARNING' => 3, 'TERMINATED' => 3, 'YEAR_MONTH' => 3, - 'DISTINCTROW' => 3, 'HOUR_MINUTE' => 3, 'HOUR_SECOND' => 3, 'INSENSITIVE' => 3, - 'MASTER_BIND' => 3, - 'LOW_PRIORITY' => 3, 'SQLEXCEPTION' => 3, 'VARCHARACTER' => 3, - 'DETERMINISTIC' => 3, 'HIGH_PRIORITY' => 3, 'MINUTE_SECOND' => 3, - 'STRAIGHT_JOIN' => 3, - 'IO_AFTER_GTIDS' => 3, 'SQL_BIG_RESULT' => 3, - 'DAY_MICROSECOND' => 3, 'IO_BEFORE_GTIDS' => 3, 'OPTIMIZER_COSTS' => 3, - 'HOUR_MICROSECOND' => 3, 'SQL_SMALL_RESULT' => 3, - 'MINUTE_MICROSECOND' => 3, 'NO_WRITE_TO_BINLOG' => 3, 'SECOND_MICROSECOND' => 3, - 'SQL_CALC_FOUND_ROWS' => 3, - 'MASTER_SSL_VERIFY_SERVER_CERT' => 3, - - 'GROUP BY' => 7, 'NOT NULL' => 7, 'ORDER BY' => 7, 'SET NULL' => 7, - 'AND CHAIN' => 7, 'FULL JOIN' => 7, 'IF EXISTS' => 7, 'LEFT JOIN' => 7, - 'LESS THAN' => 7, 'LOAD DATA' => 7, 'NO ACTION' => 7, 'ON DELETE' => 7, - 'ON UPDATE' => 7, 'UNION ALL' => 7, - 'CROSS JOIN' => 7, 'ESCAPED BY' => 7, 'FOR UPDATE' => 7, 'INNER JOIN' => 7, - 'LINEAR KEY' => 7, 'NO RELEASE' => 7, 'OR REPLACE' => 7, 'RIGHT JOIN' => 7, - 'ENCLOSED BY' => 7, 'LINEAR HASH' => 7, 'STARTING BY' => 7, - 'AND NO CHAIN' => 7, 'FOR EACH ROW' => 7, 'NATURAL JOIN' => 7, - 'PARTITION BY' => 7, 'SET PASSWORD' => 7, 'SQL SECURITY' => 7, - 'CHARACTER SET' => 7, 'IF NOT EXISTS' => 7, 'TERMINATED BY' => 7, - 'DATA DIRECTORY' => 7, 'UNION DISTINCT' => 7, - 'DEFAULT CHARSET' => 7, 'DEFAULT COLLATE' => 7, 'FULL OUTER JOIN' => 7, - 'INDEX DIRECTORY' => 7, 'LEFT OUTER JOIN' => 7, 'SUBPARTITION BY' => 7, - 'GENERATED ALWAYS' => 7, 'RIGHT OUTER JOIN' => 7, - 'NATURAL LEFT JOIN' => 7, 'START TRANSACTION' => 7, - 'LOCK IN SHARE MODE' => 7, 'NATURAL RIGHT JOIN' => 7, 'SELECT TRANSACTION' => 7, - 'DEFAULT CHARACTER SET' => 7, - 'NATURAL LEFT OUTER JOIN' => 7, - 'NATURAL RIGHT OUTER JOIN' => 7, 'WITH CONSISTENT SNAPSHOT' => 7, - - 'BIT' => 9, 'XML' => 9, - 'ENUM' => 9, 'JSON' => 9, 'TEXT' => 9, - 'ARRAY' => 9, - 'SERIAL' => 9, - 'BOOLEAN' => 9, - 'DATETIME' => 9, 'GEOMETRY' => 9, 'MULTISET' => 9, - 'MULTILINEPOINT' => 9, - 'MULTILINEPOLYGON' => 9, - - 'INT' => 11, 'SET' => 11, - 'BLOB' => 11, 'REAL' => 11, - 'FLOAT' => 11, - 'BIGINT' => 11, 'DOUBLE' => 11, - 'DECIMAL' => 11, 'INTEGER' => 11, 'NUMERIC' => 11, 'TINYINT' => 11, 'VARCHAR' => 11, - 'LONGBLOB' => 11, 'LONGTEXT' => 11, 'SMALLINT' => 11, 'TINYBLOB' => 11, - 'TINYTEXT' => 11, - 'CHARACTER' => 11, 'MEDIUMINT' => 11, 'VARBINARY' => 11, - 'MEDIUMBLOB' => 11, 'MEDIUMTEXT' => 11, - - 'BINARY VARYING' => 15, - - 'KEY' => 19, - 'INDEX' => 19, - 'UNIQUE' => 19, - 'SPATIAL' => 19, - 'FULLTEXT' => 19, - - 'INDEX KEY' => 23, - 'UNIQUE KEY' => 23, - 'FOREIGN KEY' => 23, 'PRIMARY KEY' => 23, 'SPATIAL KEY' => 23, - 'FULLTEXT KEY' => 23, 'UNIQUE INDEX' => 23, - 'SPATIAL INDEX' => 23, - 'FULLTEXT INDEX' => 23, - - 'X' => 33, 'Y' => 33, - 'LN' => 33, 'PI' => 33, - 'ABS' => 33, 'AVG' => 33, 'BIN' => 33, 'COS' => 33, 'COT' => 33, 'DAY' => 33, - 'ELT' => 33, 'EXP' => 33, 'HEX' => 33, 'LOG' => 33, 'MAX' => 33, 'MD5' => 33, - 'MID' => 33, 'MIN' => 33, 'NOW' => 33, 'OCT' => 33, 'ORD' => 33, 'POW' => 33, - 'SHA' => 33, 'SIN' => 33, 'STD' => 33, 'SUM' => 33, 'TAN' => 33, - 'ACOS' => 33, 'AREA' => 33, 'ASIN' => 33, 'ATAN' => 33, 'CAST' => 33, 'CEIL' => 33, - 'CONV' => 33, 'HOUR' => 33, 'LOG2' => 33, 'LPAD' => 33, 'RAND' => 33, 'RPAD' => 33, - 'SHA1' => 33, 'SHA2' => 33, 'SIGN' => 33, 'SQRT' => 33, 'SRID' => 33, 'ST_X' => 33, - 'ST_Y' => 33, 'TRIM' => 33, 'USER' => 33, 'UUID' => 33, 'WEEK' => 33, - 'ASCII' => 33, 'ASWKB' => 33, 'ASWKT' => 33, 'ATAN2' => 33, 'COUNT' => 33, - 'CRC32' => 33, 'FIELD' => 33, 'FLOOR' => 33, 'INSTR' => 33, 'LCASE' => 33, - 'LEAST' => 33, 'LOG10' => 33, 'LOWER' => 33, 'LTRIM' => 33, 'MONTH' => 33, - 'POWER' => 33, 'QUOTE' => 33, 'ROUND' => 33, 'RTRIM' => 33, 'SLEEP' => 33, - 'SPACE' => 33, 'UCASE' => 33, 'UNHEX' => 33, 'UPPER' => 33, - 'ASTEXT' => 33, 'BIT_OR' => 33, 'BUFFER' => 33, 'CONCAT' => 33, 'DECODE' => 33, - 'ENCODE' => 33, 'EQUALS' => 33, 'FORMAT' => 33, 'IFNULL' => 33, 'ISNULL' => 33, - 'LENGTH' => 33, 'LOCATE' => 33, 'MINUTE' => 33, 'NULLIF' => 33, 'POINTN' => 33, - 'SECOND' => 33, 'STDDEV' => 33, 'STRCMP' => 33, 'SUBSTR' => 33, 'WITHIN' => 33, - 'ADDDATE' => 33, 'ADDTIME' => 33, 'AGAINST' => 33, 'BIT_AND' => 33, 'BIT_XOR' => 33, - 'CEILING' => 33, 'CHARSET' => 33, 'CROSSES' => 33, 'CURDATE' => 33, 'CURTIME' => 33, - 'DAYNAME' => 33, 'DEGREES' => 33, 'ENCRYPT' => 33, 'EXTRACT' => 33, 'GLENGTH' => 33, - 'ISEMPTY' => 33, 'IS_IPV4' => 33, 'IS_IPV6' => 33, 'QUARTER' => 33, 'RADIANS' => 33, - 'REVERSE' => 33, 'SOUNDEX' => 33, 'ST_AREA' => 33, 'ST_SRID' => 33, 'SUBDATE' => 33, - 'SUBTIME' => 33, 'SYSDATE' => 33, 'TOUCHES' => 33, 'TO_DAYS' => 33, 'VAR_POP' => 33, - 'VERSION' => 33, 'WEEKDAY' => 33, - 'ASBINARY' => 33, 'CENTROID' => 33, 'COALESCE' => 33, 'COMPRESS' => 33, - 'CONTAINS' => 33, 'DATEDIFF' => 33, 'DATE_ADD' => 33, 'DATE_SUB' => 33, - 'DISJOINT' => 33, 'DISTANCE' => 33, 'ENDPOINT' => 33, 'ENVELOPE' => 33, - 'GET_LOCK' => 33, 'GREATEST' => 33, 'ISCLOSED' => 33, 'ISSIMPLE' => 33, - 'JSON_SET' => 33, 'MAKEDATE' => 33, 'MAKETIME' => 33, 'MAKE_SET' => 33, - 'MBREQUAL' => 33, 'OVERLAPS' => 33, 'PASSWORD' => 33, 'POSITION' => 33, - 'ST_ASWKB' => 33, 'ST_ASWKT' => 33, 'ST_UNION' => 33, 'TIMEDIFF' => 33, - 'TRUNCATE' => 33, 'VARIANCE' => 33, 'VAR_SAMP' => 33, 'YEARWEEK' => 33, - 'ANY_VALUE' => 33, 'BENCHMARK' => 33, 'BIT_COUNT' => 33, 'COLLATION' => 33, - 'CONCAT_WS' => 33, 'DAYOFWEEK' => 33, 'DAYOFYEAR' => 33, 'DIMENSION' => 33, - 'FROM_DAYS' => 33, 'GEOMETRYN' => 33, 'INET_ATON' => 33, 'INET_NTOA' => 33, - 'JSON_KEYS' => 33, 'JSON_TYPE' => 33, 'LOAD_FILE' => 33, 'MBRCOVERS' => 33, - 'MBREQUALS' => 33, 'MBRWITHIN' => 33, 'MONTHNAME' => 33, 'NUMPOINTS' => 33, - 'ROW_COUNT' => 33, 'ST_ASTEXT' => 33, 'ST_BUFFER' => 33, 'ST_EQUALS' => 33, - 'ST_LENGTH' => 33, 'ST_POINTN' => 33, 'ST_WITHIN' => 33, 'SUBSTRING' => 33, - 'TO_BASE64' => 33, 'UPDATEXML' => 33, - 'BIT_LENGTH' => 33, 'CONVERT_TZ' => 33, 'CONVEXHULL' => 33, 'DAYOFMONTH' => 33, - 'EXPORT_SET' => 33, 'FOUND_ROWS' => 33, 'GET_FORMAT' => 33, 'INET6_ATON' => 33, - 'INET6_NTOA' => 33, 'INTERSECTS' => 33, 'JSON_ARRAY' => 33, 'JSON_DEPTH' => 33, - 'JSON_MERGE' => 33, 'JSON_QUOTE' => 33, 'JSON_VALID' => 33, 'MBRTOUCHES' => 33, - 'MULTIPOINT' => 33, 'NAME_CONST' => 33, 'PERIOD_ADD' => 33, 'STARTPOINT' => 33, - 'STDDEV_POP' => 33, 'ST_CROSSES' => 33, 'ST_GEOHASH' => 33, 'ST_ISEMPTY' => 33, - 'ST_ISVALID' => 33, 'ST_TOUCHES' => 33, 'TO_SECONDS' => 33, 'UNCOMPRESS' => 33, - 'UUID_SHORT' => 33, 'WEEKOFYEAR' => 33, - 'AES_DECRYPT' => 33, 'AES_ENCRYPT' => 33, 'CHAR_LENGTH' => 33, 'DATE_FORMAT' => 33, - 'DES_DECRYPT' => 33, 'DES_ENCRYPT' => 33, 'FIND_IN_SET' => 33, 'FROM_BASE64' => 33, - 'GEOMFROMWKB' => 33, 'GTID_SUBSET' => 33, 'JSON_INSERT' => 33, 'JSON_LENGTH' => 33, - 'JSON_OBJECT' => 33, 'JSON_PRETTY' => 33, 'JSON_REMOVE' => 33, 'JSON_SEARCH' => 33, - 'LINEFROMWKB' => 33, 'MBRCONTAINS' => 33, 'MBRDISJOINT' => 33, 'MBROVERLAPS' => 33, - 'MICROSECOND' => 33, 'PERIOD_DIFF' => 33, 'POLYFROMWKB' => 33, 'SEC_TO_TIME' => 33, - 'STDDEV_SAMP' => 33, 'STR_TO_DATE' => 33, 'ST_ASBINARY' => 33, 'ST_CENTROID' => 33, - 'ST_CONTAINS' => 33, 'ST_DISJOINT' => 33, 'ST_DISTANCE' => 33, 'ST_ENDPOINT' => 33, - 'ST_ENVELOPE' => 33, 'ST_ISCLOSED' => 33, 'ST_ISSIMPLE' => 33, 'ST_OVERLAPS' => 33, - 'ST_SIMPLIFY' => 33, 'ST_VALIDATE' => 33, 'SYSTEM_USER' => 33, 'TIME_FORMAT' => 33, - 'TIME_TO_SEC' => 33, - 'COERCIBILITY' => 33, 'EXTERIORRING' => 33, 'EXTRACTVALUE' => 33, - 'GEOMETRYTYPE' => 33, 'GEOMFROMTEXT' => 33, 'GROUP_CONCAT' => 33, - 'IS_FREE_LOCK' => 33, 'IS_USED_LOCK' => 33, 'JSON_EXTRACT' => 33, - 'JSON_REPLACE' => 33, 'JSON_UNQUOTE' => 33, 'LINEFROMTEXT' => 33, - 'MBRCOVEREDBY' => 33, 'MLINEFROMWKB' => 33, 'MPOLYFROMWKB' => 33, - 'MULTIPOLYGON' => 33, 'OCTET_LENGTH' => 33, 'OLD_PASSWORD' => 33, - 'POINTFROMWKB' => 33, 'POLYFROMTEXT' => 33, 'RANDOM_BYTES' => 33, - 'RELEASE_LOCK' => 33, 'SESSION_USER' => 33, 'ST_ASGEOJSON' => 33, - 'ST_DIMENSION' => 33, 'ST_GEOMETRYN' => 33, 'ST_NUMPOINTS' => 33, - 'TIMESTAMPADD' => 33, - 'CONNECTION_ID' => 33, 'FROM_UNIXTIME' => 33, 'GTID_SUBTRACT' => 33, - 'INTERIORRINGN' => 33, 'JSON_CONTAINS' => 33, 'MBRINTERSECTS' => 33, - 'MLINEFROMTEXT' => 33, 'MPOINTFROMWKB' => 33, 'MPOLYFROMTEXT' => 33, - 'NUMGEOMETRIES' => 33, 'POINTFROMTEXT' => 33, 'ST_CONVEXHULL' => 33, - 'ST_DIFFERENCE' => 33, 'ST_INTERSECTS' => 33, 'ST_STARTPOINT' => 33, - 'TIMESTAMPDIFF' => 33, 'WEIGHT_STRING' => 33, - 'IS_IPV4_COMPAT' => 33, 'IS_IPV4_MAPPED' => 33, 'LAST_INSERT_ID' => 33, - 'MPOINTFROMTEXT' => 33, 'POLYGONFROMWKB' => 33, 'ST_GEOMFROMWKB' => 33, - 'ST_LINEFROMWKB' => 33, 'ST_POLYFROMWKB' => 33, 'UNIX_TIMESTAMP' => 33, - 'GEOMCOLLFROMWKB' => 33, 'MASTER_POS_WAIT' => 33, 'POLYGONFROMTEXT' => 33, - 'ST_EXTERIORRING' => 33, 'ST_GEOMETRYTYPE' => 33, 'ST_GEOMFROMTEXT' => 33, - 'ST_INTERSECTION' => 33, 'ST_LINEFROMTEXT' => 33, 'ST_MAKEENVELOPE' => 33, - 'ST_MLINEFROMWKB' => 33, 'ST_MPOLYFROMWKB' => 33, 'ST_POINTFROMWKB' => 33, - 'ST_POLYFROMTEXT' => 33, 'SUBSTRING_INDEX' => 33, - 'CHARACTER_LENGTH' => 33, 'GEOMCOLLFROMTEXT' => 33, 'GEOMETRYFROMTEXT' => 33, - 'JSON_MERGE_PATCH' => 33, 'NUMINTERIORRINGS' => 33, 'ST_INTERIORRINGN' => 33, - 'ST_MLINEFROMTEXT' => 33, 'ST_MPOINTFROMWKB' => 33, 'ST_MPOLYFROMTEXT' => 33, - 'ST_NUMGEOMETRIES' => 33, 'ST_POINTFROMTEXT' => 33, 'ST_SYMDIFFERENCE' => 33, - 'JSON_ARRAY_APPEND' => 33, 'JSON_ARRAY_INSERT' => 33, 'JSON_STORAGE_FREE' => 33, - 'JSON_STORAGE_SIZE' => 33, 'LINESTRINGFROMWKB' => 33, 'MULTIPOINTFROMWKB' => 33, - 'RELEASE_ALL_LOCKS' => 33, 'ST_LATFROMGEOHASH' => 33, 'ST_MPOINTFROMTEXT' => 33, - 'ST_POLYGONFROMWKB' => 33, - 'JSON_CONTAINS_PATH' => 33, 'MULTIPOINTFROMTEXT' => 33, 'ST_BUFFER_STRATEGY' => 33, - 'ST_DISTANCE_SPHERE' => 33, 'ST_GEOMCOLLFROMTXT' => 33, 'ST_GEOMCOLLFROMWKB' => 33, - 'ST_GEOMFROMGEOJSON' => 33, 'ST_LONGFROMGEOHASH' => 33, 'ST_POLYGONFROMTEXT' => 33, - 'JSON_MERGE_PRESERVE' => 33, 'MULTIPOLYGONFROMWKB' => 33, 'ST_GEOMCOLLFROMTEXT' => 33, - 'ST_GEOMETRYFROMTEXT' => 33, 'ST_NUMINTERIORRINGS' => 33, 'ST_POINTFROMGEOHASH' => 33, - 'UNCOMPRESSED_LENGTH' => 33, - 'MULTIPOLYGONFROMTEXT' => 33, 'ST_LINESTRINGFROMWKB' => 33, - 'ST_MULTIPOINTFROMWKB' => 33, - 'ST_MULTIPOINTFROMTEXT' => 33, - 'MULTILINESTRINGFROMWKB' => 33, 'ST_MULTIPOLYGONFROMWKB' => 33, - 'MULTILINESTRINGFROMTEXT' => 33, 'ST_MULTIPOLYGONFROMTEXT' => 33, - 'GEOMETRYCOLLECTIONFROMWKB' => 33, 'ST_MULTILINESTRINGFROMWKB' => 33, - 'GEOMETRYCOLLECTIONFROMTEXT' => 33, 'ST_MULTILINESTRINGFROMTEXT' => 33, - 'VALIDATE_PASSWORD_STRENGTH' => 33, 'WAIT_FOR_EXECUTED_GTID_SET' => 33, - 'ST_GEOMETRYCOLLECTIONFROMWKB' => 33, - 'ST_GEOMETRYCOLLECTIONFROMTEXT' => 33, - 'WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS' => 33, - - 'IF' => 35, 'IN' => 35, - 'MOD' => 35, - 'LEFT' => 35, - 'MATCH' => 35, 'RIGHT' => 35, - 'INSERT' => 35, 'REPEAT' => 35, 'SCHEMA' => 35, 'VALUES' => 35, - 'CONVERT' => 35, 'DEFAULT' => 35, 'REPLACE' => 35, - 'DATABASE' => 35, 'UTC_DATE' => 35, 'UTC_TIME' => 35, - 'LOCALTIME' => 35, - 'CURRENT_DATE' => 35, 'CURRENT_TIME' => 35, 'CURRENT_USER' => 35, - 'UTC_TIMESTAMP' => 35, - 'LOCALTIMESTAMP' => 35, - 'CURRENT_TIMESTAMP' => 35, - - 'NOT IN' => 39, - - 'DATE' => 41, 'TIME' => 41, 'YEAR' => 41, - 'POINT' => 41, - 'POLYGON' => 41, - 'TIMESTAMP' => 41, - 'LINESTRING' => 41, - 'MULTILINESTRING' => 41, - 'GEOMETRYCOLLECTION' => 41, - - 'CHAR' => 43, - 'BINARY' => 43, - 'INTERVAL' => 43, - ]; -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMySql80000.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMySql80000.php deleted file mode 100644 index bfc265f..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Contexts/ContextMySql80000.php +++ /dev/null @@ -1,361 +0,0 @@ - 1, 'DO' => 1, 'IO' => 1, 'NO' => 1, 'XA' => 1, - 'ANY' => 1, 'CPU' => 1, 'END' => 1, 'IPC' => 1, 'NDB' => 1, 'NEW' => 1, - 'ONE' => 1, 'ROW' => 1, 'XID' => 1, - 'BOOL' => 1, 'BYTE' => 1, 'CODE' => 1, 'CUBE' => 1, 'DATA' => 1, 'DISK' => 1, - 'ENDS' => 1, 'FAST' => 1, 'FILE' => 1, 'FULL' => 1, 'HASH' => 1, 'HELP' => 1, - 'HOST' => 1, 'LAST' => 1, 'LESS' => 1, 'LIST' => 1, 'LOGS' => 1, 'MODE' => 1, - 'NAME' => 1, 'NEXT' => 1, 'NONE' => 1, 'ONLY' => 1, 'OPEN' => 1, 'PAGE' => 1, - 'PORT' => 1, 'PREV' => 1, 'ROWS' => 1, 'SLOW' => 1, 'SOME' => 1, 'STOP' => 1, - 'THAN' => 1, 'TYPE' => 1, 'VIEW' => 1, 'WAIT' => 1, 'WORK' => 1, 'X509' => 1, - 'AFTER' => 1, 'BEGIN' => 1, 'BLOCK' => 1, 'BTREE' => 1, 'CACHE' => 1, - 'CHAIN' => 1, 'CLOSE' => 1, 'ERROR' => 1, 'EVENT' => 1, 'EVERY' => 1, - 'FIRST' => 1, 'FIXED' => 1, 'FLUSH' => 1, 'FOUND' => 1, 'HOSTS' => 1, - 'LEVEL' => 1, 'LOCAL' => 1, 'LOCKS' => 1, 'MERGE' => 1, 'MUTEX' => 1, - 'NAMES' => 1, 'NCHAR' => 1, 'NEVER' => 1, 'OWNER' => 1, 'PHASE' => 1, - 'PROXY' => 1, 'QUERY' => 1, 'QUICK' => 1, 'RELAY' => 1, 'RESET' => 1, - 'RTREE' => 1, 'SHARE' => 1, 'SLAVE' => 1, 'START' => 1, 'SUPER' => 1, - 'SWAPS' => 1, 'TYPES' => 1, 'UNTIL' => 1, 'VALUE' => 1, - 'ACTION' => 1, 'ALWAYS' => 1, 'BACKUP' => 1, 'BINLOG' => 1, 'CIPHER' => 1, - 'CLIENT' => 1, 'COMMIT' => 1, 'ENABLE' => 1, 'ENGINE' => 1, 'ERRORS' => 1, - 'ESCAPE' => 1, 'EVENTS' => 1, 'EXPIRE' => 1, 'EXPORT' => 1, 'FAULTS' => 1, - 'FIELDS' => 1, 'FILTER' => 1, 'GLOBAL' => 1, 'GRANTS' => 1, 'IMPORT' => 1, - 'ISSUER' => 1, 'LEAVES' => 1, 'MASTER' => 1, 'MEDIUM' => 1, 'MEMORY' => 1, - 'MODIFY' => 1, 'NUMBER' => 1, 'OFFSET' => 1, 'PARSER' => 1, 'PLUGIN' => 1, - 'RELOAD' => 1, 'REMOVE' => 1, 'REPAIR' => 1, 'RESUME' => 1, 'ROLLUP' => 1, - 'SERVER' => 1, 'SIGNED' => 1, 'SIMPLE' => 1, 'SOCKET' => 1, 'SONAME' => 1, - 'SOUNDS' => 1, 'SOURCE' => 1, 'STARTS' => 1, 'STATUS' => 1, 'STRING' => 1, - 'TABLES' => 1, - 'ACCOUNT' => 1, 'ANALYSE' => 1, 'CHANGED' => 1, 'CHANNEL' => 1, 'COLUMNS' => 1, - 'COMMENT' => 1, 'COMPACT' => 1, 'CONTEXT' => 1, 'CURRENT' => 1, 'DEFINER' => 1, - 'DISABLE' => 1, 'DISCARD' => 1, 'DYNAMIC' => 1, 'ENGINES' => 1, 'EXECUTE' => 1, - 'FOLLOWS' => 1, 'GENERAL' => 1, 'HANDLER' => 1, 'INDEXES' => 1, 'INSTALL' => 1, - 'INVOKER' => 1, 'LOGFILE' => 1, 'MIGRATE' => 1, 'NO_WAIT' => 1, 'OPTIONS' => 1, - 'PARTIAL' => 1, 'PLUGINS' => 1, 'PREPARE' => 1, 'PROFILE' => 1, 'REBUILD' => 1, - 'RECOVER' => 1, 'RESTORE' => 1, 'RETURNS' => 1, 'ROUTINE' => 1, 'SESSION' => 1, - 'STACKED' => 1, 'STORAGE' => 1, 'SUBJECT' => 1, 'SUSPEND' => 1, 'UNICODE' => 1, - 'UNKNOWN' => 1, 'UPGRADE' => 1, 'USE_FRM' => 1, 'WITHOUT' => 1, 'WRAPPER' => 1, - 'CASCADED' => 1, 'CHECKSUM' => 1, 'DATAFILE' => 1, 'DUMPFILE' => 1, - 'EXCHANGE' => 1, 'EXTENDED' => 1, 'FUNCTION' => 1, 'LANGUAGE' => 1, - 'MAX_ROWS' => 1, 'MAX_SIZE' => 1, 'MIN_ROWS' => 1, 'NATIONAL' => 1, - 'NVARCHAR' => 1, 'PRECEDES' => 1, 'PRESERVE' => 1, 'PROFILES' => 1, - 'REDOFILE' => 1, 'RELAYLOG' => 1, 'ROLLBACK' => 1, 'SCHEDULE' => 1, - 'SECURITY' => 1, 'SHUTDOWN' => 1, 'SNAPSHOT' => 1, 'SWITCHES' => 1, - 'TRIGGERS' => 1, 'UNDOFILE' => 1, 'WARNINGS' => 1, - 'AGGREGATE' => 1, 'ALGORITHM' => 1, 'COMMITTED' => 1, 'DIRECTORY' => 1, - 'DUPLICATE' => 1, 'EXPANSION' => 1, 'IO_THREAD' => 1, 'ISOLATION' => 1, - 'NODEGROUP' => 1, 'PACK_KEYS' => 1, 'READ_ONLY' => 1, 'REDUNDANT' => 1, - 'SAVEPOINT' => 1, 'SQL_CACHE' => 1, 'TEMPORARY' => 1, 'TEMPTABLE' => 1, - 'UNDEFINED' => 1, 'UNINSTALL' => 1, 'VARIABLES' => 1, - 'COMPLETION' => 1, 'COMPRESSED' => 1, 'CONCURRENT' => 1, 'CONNECTION' => 1, - 'CONSISTENT' => 1, 'DEALLOCATE' => 1, 'IDENTIFIED' => 1, 'MASTER_SSL' => 1, - 'NDBCLUSTER' => 1, 'PARTITIONS' => 1, 'PERSISTENT' => 1, 'PLUGIN_DIR' => 1, - 'PRIVILEGES' => 1, 'REORGANIZE' => 1, 'REPEATABLE' => 1, 'ROW_FORMAT' => 1, - 'SQL_THREAD' => 1, 'TABLESPACE' => 1, 'TABLE_NAME' => 1, 'VALIDATION' => 1, - 'COLUMN_NAME' => 1, 'COMPRESSION' => 1, 'CURSOR_NAME' => 1, 'DIAGNOSTICS' => 1, - 'EXTENT_SIZE' => 1, 'MASTER_HOST' => 1, 'MASTER_PORT' => 1, 'MASTER_USER' => 1, - 'MYSQL_ERRNO' => 1, 'NONBLOCKING' => 1, 'PROCESSLIST' => 1, 'REPLICATION' => 1, - 'SCHEMA_NAME' => 1, 'SQL_TSI_DAY' => 1, 'TRANSACTION' => 1, 'UNCOMMITTED' => 1, - 'CATALOG_NAME' => 1, 'CLASS_ORIGIN' => 1, 'DEFAULT_AUTH' => 1, - 'DES_KEY_FILE' => 1, 'INITIAL_SIZE' => 1, 'MASTER_DELAY' => 1, - 'MESSAGE_TEXT' => 1, 'PARTITIONING' => 1, 'RELAY_THREAD' => 1, - 'SERIALIZABLE' => 1, 'SQL_NO_CACHE' => 1, 'SQL_TSI_HOUR' => 1, - 'SQL_TSI_WEEK' => 1, 'SQL_TSI_YEAR' => 1, 'SUBPARTITION' => 1, - 'COLUMN_FORMAT' => 1, 'INSERT_METHOD' => 1, 'MASTER_SSL_CA' => 1, - 'RELAY_LOG_POS' => 1, 'SQL_TSI_MONTH' => 1, 'SUBPARTITIONS' => 1, - 'AUTO_INCREMENT' => 1, 'AVG_ROW_LENGTH' => 1, 'KEY_BLOCK_SIZE' => 1, - 'MASTER_LOG_POS' => 1, 'MASTER_SSL_CRL' => 1, 'MASTER_SSL_KEY' => 1, - 'RELAY_LOG_FILE' => 1, 'SQL_TSI_MINUTE' => 1, 'SQL_TSI_SECOND' => 1, - 'TABLE_CHECKSUM' => 1, 'USER_RESOURCES' => 1, - 'AUTOEXTEND_SIZE' => 1, 'CONSTRAINT_NAME' => 1, 'DELAY_KEY_WRITE' => 1, - 'FILE_BLOCK_SIZE' => 1, 'MASTER_LOG_FILE' => 1, 'MASTER_PASSWORD' => 1, - 'MASTER_SSL_CERT' => 1, 'PARSE_GCOL_EXPR' => 1, 'REPLICATE_DO_DB' => 1, - 'SQL_AFTER_GTIDS' => 1, 'SQL_TSI_QUARTER' => 1, 'SUBCLASS_ORIGIN' => 1, - 'MASTER_SERVER_ID' => 1, 'REDO_BUFFER_SIZE' => 1, 'SQL_BEFORE_GTIDS' => 1, - 'STATS_PERSISTENT' => 1, 'UNDO_BUFFER_SIZE' => 1, - 'CONSTRAINT_SCHEMA' => 1, 'GROUP_REPLICATION' => 1, 'IGNORE_SERVER_IDS' => 1, - 'MASTER_SSL_CAPATH' => 1, 'MASTER_SSL_CIPHER' => 1, 'RETURNED_SQLSTATE' => 1, - 'SQL_BUFFER_RESULT' => 1, 'STATS_AUTO_RECALC' => 1, - 'CONSTRAINT_CATALOG' => 1, 'MASTER_RETRY_COUNT' => 1, 'MASTER_SSL_CRLPATH' => 1, - 'MAX_STATEMENT_TIME' => 1, 'REPLICATE_DO_TABLE' => 1, 'SQL_AFTER_MTS_GAPS' => 1, - 'STATS_SAMPLE_PAGES' => 1, - 'REPLICATE_IGNORE_DB' => 1, - 'MASTER_AUTO_POSITION' => 1, 'MASTER_CONNECT_RETRY' => 1, - 'MAX_QUERIES_PER_HOUR' => 1, 'MAX_UPDATES_PER_HOUR' => 1, - 'MAX_USER_CONNECTIONS' => 1, 'REPLICATE_REWRITE_DB' => 1, - 'REPLICATE_IGNORE_TABLE' => 1, - 'MASTER_HEARTBEAT_PERIOD' => 1, 'REPLICATE_WILD_DO_TABLE' => 1, - 'MAX_CONNECTIONS_PER_HOUR' => 1, - 'REPLICATE_WILD_IGNORE_TABLE' => 1, - - 'AS' => 3, 'BY' => 3, 'IS' => 3, 'ON' => 3, 'OR' => 3, 'TO' => 3, - 'ADD' => 3, 'ALL' => 3, 'AND' => 3, 'ASC' => 3, 'DEC' => 3, 'DIV' => 3, - 'FOR' => 3, 'GET' => 3, 'NOT' => 3, 'OUT' => 3, 'SQL' => 3, 'SSL' => 3, - 'USE' => 3, 'XOR' => 3, - 'BOTH' => 3, 'CALL' => 3, 'CASE' => 3, 'DESC' => 3, 'DROP' => 3, 'DUAL' => 3, - 'EACH' => 3, 'ELSE' => 3, 'EXIT' => 3, 'FROM' => 3, 'INT1' => 3, 'INT2' => 3, - 'INT3' => 3, 'INT4' => 3, 'INT8' => 3, 'INTO' => 3, 'JOIN' => 3, 'KEYS' => 3, - 'KILL' => 3, 'LIKE' => 3, 'LOAD' => 3, 'LOCK' => 3, 'LONG' => 3, 'LOOP' => 3, - 'NULL' => 3, 'READ' => 3, 'SHOW' => 3, 'THEN' => 3, 'TRUE' => 3, 'UNDO' => 3, - 'WHEN' => 3, 'WITH' => 3, - 'ALTER' => 3, 'CHECK' => 3, 'CROSS' => 3, 'FALSE' => 3, 'FETCH' => 3, - 'FORCE' => 3, 'GRANT' => 3, 'GROUP' => 3, 'INNER' => 3, 'INOUT' => 3, - 'LEAVE' => 3, 'LIMIT' => 3, 'LINES' => 3, 'ORDER' => 3, 'OUTER' => 3, - 'PURGE' => 3, 'RANGE' => 3, 'READS' => 3, 'RLIKE' => 3, 'TABLE' => 3, - 'UNION' => 3, 'USAGE' => 3, 'USING' => 3, 'WHERE' => 3, 'WHILE' => 3, - 'WRITE' => 3, - 'BEFORE' => 3, 'CHANGE' => 3, 'COLUMN' => 3, 'CREATE' => 3, 'CURSOR' => 3, - 'DELETE' => 3, 'ELSEIF' => 3, 'EXISTS' => 3, 'FLOAT4' => 3, 'FLOAT8' => 3, - 'HAVING' => 3, 'IGNORE' => 3, 'INFILE' => 3, 'LINEAR' => 3, 'OPTION' => 3, - 'REGEXP' => 3, 'RENAME' => 3, 'RETURN' => 3, 'REVOKE' => 3, 'SELECT' => 3, - 'SIGNAL' => 3, 'STORED' => 3, 'UNLOCK' => 3, 'UPDATE' => 3, - 'ANALYZE' => 3, 'BETWEEN' => 3, 'CASCADE' => 3, 'COLLATE' => 3, 'DECLARE' => 3, - 'DELAYED' => 3, 'ESCAPED' => 3, 'EXPLAIN' => 3, 'FOREIGN' => 3, 'ITERATE' => 3, - 'LEADING' => 3, 'NATURAL' => 3, 'OUTFILE' => 3, 'PRIMARY' => 3, 'RELEASE' => 3, - 'REQUIRE' => 3, 'SCHEMAS' => 3, 'TRIGGER' => 3, 'VARYING' => 3, 'VIRTUAL' => 3, - 'CONTINUE' => 3, 'DAY_HOUR' => 3, 'DESCRIBE' => 3, 'DISTINCT' => 3, - 'ENCLOSED' => 3, 'MAXVALUE' => 3, 'MODIFIES' => 3, 'OPTIMIZE' => 3, - 'RESIGNAL' => 3, 'RESTRICT' => 3, 'SPECIFIC' => 3, 'SQLSTATE' => 3, - 'STARTING' => 3, 'TRAILING' => 3, 'UNSIGNED' => 3, 'ZEROFILL' => 3, - 'CONDITION' => 3, 'DATABASES' => 3, 'GENERATED' => 3, 'MIDDLEINT' => 3, - 'PARTITION' => 3, 'PRECISION' => 3, 'PROCEDURE' => 3, 'SENSITIVE' => 3, - 'SEPARATOR' => 3, - 'ACCESSIBLE' => 3, 'ASENSITIVE' => 3, 'CONSTRAINT' => 3, 'DAY_MINUTE' => 3, - 'DAY_SECOND' => 3, 'OPTIONALLY' => 3, 'READ_WRITE' => 3, 'REFERENCES' => 3, - 'SQLWARNING' => 3, 'TERMINATED' => 3, 'YEAR_MONTH' => 3, - 'DISTINCTROW' => 3, 'HOUR_MINUTE' => 3, 'HOUR_SECOND' => 3, 'INSENSITIVE' => 3, - 'MASTER_BIND' => 3, - 'LOW_PRIORITY' => 3, 'SQLEXCEPTION' => 3, 'VARCHARACTER' => 3, - 'DETERMINISTIC' => 3, 'HIGH_PRIORITY' => 3, 'MINUTE_SECOND' => 3, - 'STRAIGHT_JOIN' => 3, - 'IO_AFTER_GTIDS' => 3, 'SQL_BIG_RESULT' => 3, - 'DAY_MICROSECOND' => 3, 'IO_BEFORE_GTIDS' => 3, 'OPTIMIZER_COSTS' => 3, - 'HOUR_MICROSECOND' => 3, 'SQL_SMALL_RESULT' => 3, - 'MINUTE_MICROSECOND' => 3, 'NO_WRITE_TO_BINLOG' => 3, 'SECOND_MICROSECOND' => 3, - 'SQL_CALC_FOUND_ROWS' => 3, - 'MASTER_SSL_VERIFY_SERVER_CERT' => 3, - - 'GROUP BY' => 7, 'NOT NULL' => 7, 'ORDER BY' => 7, 'SET NULL' => 7, - 'AND CHAIN' => 7, 'FULL JOIN' => 7, 'IF EXISTS' => 7, 'LEFT JOIN' => 7, - 'LESS THAN' => 7, 'LOAD DATA' => 7, 'NO ACTION' => 7, 'ON DELETE' => 7, - 'ON UPDATE' => 7, 'UNION ALL' => 7, - 'CROSS JOIN' => 7, 'ESCAPED BY' => 7, 'FOR UPDATE' => 7, 'INNER JOIN' => 7, - 'LINEAR KEY' => 7, 'NO RELEASE' => 7, 'OR REPLACE' => 7, 'RIGHT JOIN' => 7, - 'ENCLOSED BY' => 7, 'LINEAR HASH' => 7, 'STARTING BY' => 7, - 'AND NO CHAIN' => 7, 'FOR EACH ROW' => 7, 'NATURAL JOIN' => 7, - 'PARTITION BY' => 7, 'SET PASSWORD' => 7, 'SQL SECURITY' => 7, - 'CHARACTER SET' => 7, 'IF NOT EXISTS' => 7, 'TERMINATED BY' => 7, - 'DATA DIRECTORY' => 7, 'UNION DISTINCT' => 7, - 'DEFAULT CHARSET' => 7, 'DEFAULT COLLATE' => 7, 'FULL OUTER JOIN' => 7, - 'INDEX DIRECTORY' => 7, 'LEFT OUTER JOIN' => 7, 'SUBPARTITION BY' => 7, - 'GENERATED ALWAYS' => 7, 'RIGHT OUTER JOIN' => 7, - 'NATURAL LEFT JOIN' => 7, 'START TRANSACTION' => 7, - 'LOCK IN SHARE MODE' => 7, 'NATURAL RIGHT JOIN' => 7, 'SELECT TRANSACTION' => 7, - 'DEFAULT CHARACTER SET' => 7, - 'NATURAL LEFT OUTER JOIN' => 7, - 'NATURAL RIGHT OUTER JOIN' => 7, 'WITH CONSISTENT SNAPSHOT' => 7, - - 'BIT' => 9, 'XML' => 9, - 'ENUM' => 9, 'JSON' => 9, 'TEXT' => 9, - 'ARRAY' => 9, - 'SERIAL' => 9, - 'BOOLEAN' => 9, - 'DATETIME' => 9, 'GEOMETRY' => 9, 'MULTISET' => 9, - 'MULTILINEPOINT' => 9, - 'MULTILINEPOLYGON' => 9, - - 'INT' => 11, 'SET' => 11, - 'BLOB' => 11, 'REAL' => 11, - 'FLOAT' => 11, - 'BIGINT' => 11, 'DOUBLE' => 11, - 'DECIMAL' => 11, 'INTEGER' => 11, 'NUMERIC' => 11, 'TINYINT' => 11, 'VARCHAR' => 11, - 'LONGBLOB' => 11, 'LONGTEXT' => 11, 'SMALLINT' => 11, 'TINYBLOB' => 11, - 'TINYTEXT' => 11, - 'CHARACTER' => 11, 'MEDIUMINT' => 11, 'VARBINARY' => 11, - 'MEDIUMBLOB' => 11, 'MEDIUMTEXT' => 11, - - 'BINARY VARYING' => 15, - - 'KEY' => 19, - 'INDEX' => 19, - 'UNIQUE' => 19, - 'SPATIAL' => 19, - 'FULLTEXT' => 19, - - 'INDEX KEY' => 23, - 'UNIQUE KEY' => 23, - 'FOREIGN KEY' => 23, 'PRIMARY KEY' => 23, 'SPATIAL KEY' => 23, - 'FULLTEXT KEY' => 23, 'UNIQUE INDEX' => 23, - 'SPATIAL INDEX' => 23, - 'FULLTEXT INDEX' => 23, - - 'X' => 33, 'Y' => 33, - 'LN' => 33, 'PI' => 33, - 'ABS' => 33, 'AVG' => 33, 'BIN' => 33, 'COS' => 33, 'COT' => 33, 'DAY' => 33, - 'ELT' => 33, 'EXP' => 33, 'HEX' => 33, 'LOG' => 33, 'MAX' => 33, 'MD5' => 33, - 'MID' => 33, 'MIN' => 33, 'NOW' => 33, 'OCT' => 33, 'ORD' => 33, 'POW' => 33, - 'SHA' => 33, 'SIN' => 33, 'STD' => 33, 'SUM' => 33, 'TAN' => 33, - 'ACOS' => 33, 'AREA' => 33, 'ASIN' => 33, 'ATAN' => 33, 'CAST' => 33, 'CEIL' => 33, - 'CONV' => 33, 'HOUR' => 33, 'LOG2' => 33, 'LPAD' => 33, 'RAND' => 33, 'RPAD' => 33, - 'SHA1' => 33, 'SHA2' => 33, 'SIGN' => 33, 'SQRT' => 33, 'SRID' => 33, 'ST_X' => 33, - 'ST_Y' => 33, 'TRIM' => 33, 'USER' => 33, 'UUID' => 33, 'WEEK' => 33, - 'ASCII' => 33, 'ASWKB' => 33, 'ASWKT' => 33, 'ATAN2' => 33, 'COUNT' => 33, - 'CRC32' => 33, 'FIELD' => 33, 'FLOOR' => 33, 'INSTR' => 33, 'LCASE' => 33, - 'LEAST' => 33, 'LOG10' => 33, 'LOWER' => 33, 'LTRIM' => 33, 'MONTH' => 33, - 'POWER' => 33, 'QUOTE' => 33, 'ROUND' => 33, 'RTRIM' => 33, 'SLEEP' => 33, - 'SPACE' => 33, 'UCASE' => 33, 'UNHEX' => 33, 'UPPER' => 33, - 'ASTEXT' => 33, 'BIT_OR' => 33, 'BUFFER' => 33, 'CONCAT' => 33, 'DECODE' => 33, - 'ENCODE' => 33, 'EQUALS' => 33, 'FORMAT' => 33, 'IFNULL' => 33, 'ISNULL' => 33, - 'LENGTH' => 33, 'LOCATE' => 33, 'MINUTE' => 33, 'NULLIF' => 33, 'POINTN' => 33, - 'SECOND' => 33, 'STDDEV' => 33, 'STRCMP' => 33, 'SUBSTR' => 33, 'WITHIN' => 33, - 'ADDDATE' => 33, 'ADDTIME' => 33, 'AGAINST' => 33, 'BIT_AND' => 33, 'BIT_XOR' => 33, - 'CEILING' => 33, 'CHARSET' => 33, 'CROSSES' => 33, 'CURDATE' => 33, 'CURTIME' => 33, - 'DAYNAME' => 33, 'DEGREES' => 33, 'ENCRYPT' => 33, 'EXTRACT' => 33, 'GLENGTH' => 33, - 'ISEMPTY' => 33, 'IS_IPV4' => 33, 'IS_IPV6' => 33, 'IS_UUID' => 33, 'QUARTER' => 33, - 'RADIANS' => 33, 'REVERSE' => 33, 'SOUNDEX' => 33, 'ST_AREA' => 33, 'ST_SRID' => 33, - 'SUBDATE' => 33, 'SUBTIME' => 33, 'SYSDATE' => 33, 'TOUCHES' => 33, 'TO_DAYS' => 33, - 'VAR_POP' => 33, 'VERSION' => 33, 'WEEKDAY' => 33, - 'ASBINARY' => 33, 'CENTROID' => 33, 'COALESCE' => 33, 'COMPRESS' => 33, - 'CONTAINS' => 33, 'DATEDIFF' => 33, 'DATE_ADD' => 33, 'DATE_SUB' => 33, - 'DISJOINT' => 33, 'DISTANCE' => 33, 'ENDPOINT' => 33, 'ENVELOPE' => 33, - 'GET_LOCK' => 33, 'GREATEST' => 33, 'ISCLOSED' => 33, 'ISSIMPLE' => 33, - 'JSON_SET' => 33, 'MAKEDATE' => 33, 'MAKETIME' => 33, 'MAKE_SET' => 33, - 'MBREQUAL' => 33, 'OVERLAPS' => 33, 'PASSWORD' => 33, 'POSITION' => 33, - 'ST_ASWKB' => 33, 'ST_ASWKT' => 33, 'ST_UNION' => 33, 'TIMEDIFF' => 33, - 'TRUNCATE' => 33, 'VARIANCE' => 33, 'VAR_SAMP' => 33, 'YEARWEEK' => 33, - 'ANY_VALUE' => 33, 'BENCHMARK' => 33, 'BIT_COUNT' => 33, 'COLLATION' => 33, - 'CONCAT_WS' => 33, 'DAYOFWEEK' => 33, 'DAYOFYEAR' => 33, 'DIMENSION' => 33, - 'FROM_DAYS' => 33, 'GEOMETRYN' => 33, 'INET_ATON' => 33, 'INET_NTOA' => 33, - 'JSON_KEYS' => 33, 'JSON_TYPE' => 33, 'LOAD_FILE' => 33, 'MBRCOVERS' => 33, - 'MBREQUALS' => 33, 'MBRWITHIN' => 33, 'MONTHNAME' => 33, 'NUMPOINTS' => 33, - 'ROW_COUNT' => 33, 'ST_ASTEXT' => 33, 'ST_BUFFER' => 33, 'ST_EQUALS' => 33, - 'ST_LENGTH' => 33, 'ST_POINTN' => 33, 'ST_WITHIN' => 33, 'SUBSTRING' => 33, - 'TO_BASE64' => 33, 'UPDATEXML' => 33, - 'BIT_LENGTH' => 33, 'CONVERT_TZ' => 33, 'CONVEXHULL' => 33, 'DAYOFMONTH' => 33, - 'EXPORT_SET' => 33, 'FOUND_ROWS' => 33, 'GET_FORMAT' => 33, 'INET6_ATON' => 33, - 'INET6_NTOA' => 33, 'INTERSECTS' => 33, 'JSON_ARRAY' => 33, 'JSON_DEPTH' => 33, - 'JSON_MERGE' => 33, 'JSON_QUOTE' => 33, 'JSON_VALID' => 33, 'MBRTOUCHES' => 33, - 'MULTIPOINT' => 33, 'NAME_CONST' => 33, 'PERIOD_ADD' => 33, 'STARTPOINT' => 33, - 'STDDEV_POP' => 33, 'ST_CROSSES' => 33, 'ST_GEOHASH' => 33, 'ST_ISEMPTY' => 33, - 'ST_ISVALID' => 33, 'ST_TOUCHES' => 33, 'TO_SECONDS' => 33, 'UNCOMPRESS' => 33, - 'UUID_SHORT' => 33, 'WEEKOFYEAR' => 33, - 'AES_DECRYPT' => 33, 'AES_ENCRYPT' => 33, 'BIN_TO_UUID' => 33, 'CHAR_LENGTH' => 33, - 'DATE_FORMAT' => 33, 'DES_DECRYPT' => 33, 'DES_ENCRYPT' => 33, 'FIND_IN_SET' => 33, - 'FROM_BASE64' => 33, 'GEOMFROMWKB' => 33, 'GTID_SUBSET' => 33, 'JSON_INSERT' => 33, - 'JSON_LENGTH' => 33, 'JSON_OBJECT' => 33, 'JSON_PRETTY' => 33, 'JSON_REMOVE' => 33, - 'JSON_SEARCH' => 33, 'LINEFROMWKB' => 33, 'MBRCONTAINS' => 33, 'MBRDISJOINT' => 33, - 'MBROVERLAPS' => 33, 'MICROSECOND' => 33, 'PERIOD_DIFF' => 33, 'POLYFROMWKB' => 33, - 'SEC_TO_TIME' => 33, 'STDDEV_SAMP' => 33, 'STR_TO_DATE' => 33, 'ST_ASBINARY' => 33, - 'ST_CENTROID' => 33, 'ST_CONTAINS' => 33, 'ST_DISJOINT' => 33, 'ST_DISTANCE' => 33, - 'ST_ENDPOINT' => 33, 'ST_ENVELOPE' => 33, 'ST_ISCLOSED' => 33, 'ST_ISSIMPLE' => 33, - 'ST_OVERLAPS' => 33, 'ST_SIMPLIFY' => 33, 'ST_VALIDATE' => 33, 'SYSTEM_USER' => 33, - 'TIME_FORMAT' => 33, 'TIME_TO_SEC' => 33, 'UUID_TO_BIN' => 33, - 'COERCIBILITY' => 33, 'EXTERIORRING' => 33, 'EXTRACTVALUE' => 33, - 'GEOMETRYTYPE' => 33, 'GEOMFROMTEXT' => 33, 'GROUP_CONCAT' => 33, - 'IS_FREE_LOCK' => 33, 'IS_USED_LOCK' => 33, 'JSON_EXTRACT' => 33, - 'JSON_REPLACE' => 33, 'JSON_UNQUOTE' => 33, 'LINEFROMTEXT' => 33, - 'MBRCOVEREDBY' => 33, 'MLINEFROMWKB' => 33, 'MPOLYFROMWKB' => 33, - 'MULTIPOLYGON' => 33, 'OCTET_LENGTH' => 33, 'OLD_PASSWORD' => 33, - 'POINTFROMWKB' => 33, 'POLYFROMTEXT' => 33, 'RANDOM_BYTES' => 33, - 'RELEASE_LOCK' => 33, 'SESSION_USER' => 33, 'ST_ASGEOJSON' => 33, - 'ST_DIMENSION' => 33, 'ST_GEOMETRYN' => 33, 'ST_NUMPOINTS' => 33, - 'TIMESTAMPADD' => 33, - 'CONNECTION_ID' => 33, 'FROM_UNIXTIME' => 33, 'GTID_SUBTRACT' => 33, - 'INTERIORRINGN' => 33, 'JSON_CONTAINS' => 33, 'MBRINTERSECTS' => 33, - 'MLINEFROMTEXT' => 33, 'MPOINTFROMWKB' => 33, 'MPOLYFROMTEXT' => 33, - 'NUMGEOMETRIES' => 33, 'POINTFROMTEXT' => 33, 'ST_CONVEXHULL' => 33, - 'ST_DIFFERENCE' => 33, 'ST_INTERSECTS' => 33, 'ST_STARTPOINT' => 33, - 'TIMESTAMPDIFF' => 33, 'WEIGHT_STRING' => 33, - 'IS_IPV4_COMPAT' => 33, 'IS_IPV4_MAPPED' => 33, 'LAST_INSERT_ID' => 33, - 'MPOINTFROMTEXT' => 33, 'POLYGONFROMWKB' => 33, 'ST_GEOMFROMWKB' => 33, - 'ST_LINEFROMWKB' => 33, 'ST_POLYFROMWKB' => 33, 'UNIX_TIMESTAMP' => 33, - 'GEOMCOLLFROMWKB' => 33, 'MASTER_POS_WAIT' => 33, 'POLYGONFROMTEXT' => 33, - 'ST_EXTERIORRING' => 33, 'ST_GEOMETRYTYPE' => 33, 'ST_GEOMFROMTEXT' => 33, - 'ST_INTERSECTION' => 33, 'ST_LINEFROMTEXT' => 33, 'ST_MAKEENVELOPE' => 33, - 'ST_MLINEFROMWKB' => 33, 'ST_MPOLYFROMWKB' => 33, 'ST_POINTFROMWKB' => 33, - 'ST_POLYFROMTEXT' => 33, 'SUBSTRING_INDEX' => 33, - 'CHARACTER_LENGTH' => 33, 'GEOMCOLLFROMTEXT' => 33, 'GEOMETRYFROMTEXT' => 33, - 'JSON_MERGE_PATCH' => 33, 'NUMINTERIORRINGS' => 33, 'ST_INTERIORRINGN' => 33, - 'ST_MLINEFROMTEXT' => 33, 'ST_MPOINTFROMWKB' => 33, 'ST_MPOLYFROMTEXT' => 33, - 'ST_NUMGEOMETRIES' => 33, 'ST_POINTFROMTEXT' => 33, 'ST_SYMDIFFERENCE' => 33, - 'JSON_ARRAY_APPEND' => 33, 'JSON_ARRAY_INSERT' => 33, 'JSON_STORAGE_FREE' => 33, - 'JSON_STORAGE_SIZE' => 33, 'LINESTRINGFROMWKB' => 33, 'MULTIPOINTFROMWKB' => 33, - 'RELEASE_ALL_LOCKS' => 33, 'ST_LATFROMGEOHASH' => 33, 'ST_MPOINTFROMTEXT' => 33, - 'ST_POLYGONFROMWKB' => 33, - 'JSON_CONTAINS_PATH' => 33, 'MULTIPOINTFROMTEXT' => 33, 'ST_BUFFER_STRATEGY' => 33, - 'ST_DISTANCE_SPHERE' => 33, 'ST_GEOMCOLLFROMTXT' => 33, 'ST_GEOMCOLLFROMWKB' => 33, - 'ST_GEOMFROMGEOJSON' => 33, 'ST_LONGFROMGEOHASH' => 33, 'ST_POLYGONFROMTEXT' => 33, - 'JSON_MERGE_PRESERVE' => 33, 'MULTIPOLYGONFROMWKB' => 33, 'ST_GEOMCOLLFROMTEXT' => 33, - 'ST_GEOMETRYFROMTEXT' => 33, 'ST_NUMINTERIORRINGS' => 33, 'ST_POINTFROMGEOHASH' => 33, - 'UNCOMPRESSED_LENGTH' => 33, - 'MULTIPOLYGONFROMTEXT' => 33, 'ST_LINESTRINGFROMWKB' => 33, - 'ST_MULTIPOINTFROMWKB' => 33, - 'ST_MULTIPOINTFROMTEXT' => 33, - 'MULTILINESTRINGFROMWKB' => 33, 'ST_MULTIPOLYGONFROMWKB' => 33, - 'MULTILINESTRINGFROMTEXT' => 33, 'ST_MULTIPOLYGONFROMTEXT' => 33, - 'GEOMETRYCOLLECTIONFROMWKB' => 33, 'ST_MULTILINESTRINGFROMWKB' => 33, - 'GEOMETRYCOLLECTIONFROMTEXT' => 33, 'ST_MULTILINESTRINGFROMTEXT' => 33, - 'VALIDATE_PASSWORD_STRENGTH' => 33, 'WAIT_FOR_EXECUTED_GTID_SET' => 33, - 'ST_GEOMETRYCOLLECTIONFROMWKB' => 33, - 'ST_GEOMETRYCOLLECTIONFROMTEXT' => 33, - 'WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS' => 33, - - 'IF' => 35, 'IN' => 35, - 'MOD' => 35, - 'LEFT' => 35, - 'MATCH' => 35, 'RIGHT' => 35, - 'INSERT' => 35, 'REPEAT' => 35, 'SCHEMA' => 35, 'VALUES' => 35, - 'CONVERT' => 35, 'DEFAULT' => 35, 'REPLACE' => 35, - 'DATABASE' => 35, 'UTC_DATE' => 35, 'UTC_TIME' => 35, - 'LOCALTIME' => 35, - 'CURRENT_DATE' => 35, 'CURRENT_TIME' => 35, 'CURRENT_USER' => 35, - 'UTC_TIMESTAMP' => 35, - 'LOCALTIMESTAMP' => 35, - 'CURRENT_TIMESTAMP' => 35, - - 'NOT IN' => 39, - - 'DATE' => 41, 'TIME' => 41, 'YEAR' => 41, - 'POINT' => 41, - 'POLYGON' => 41, - 'TIMESTAMP' => 41, - 'LINESTRING' => 41, - 'MULTILINESTRING' => 41, - 'GEOMETRYCOLLECTION' => 41, - - 'CHAR' => 43, - 'BINARY' => 43, - 'INTERVAL' => 43, - ]; -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Core.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Core.php deleted file mode 100644 index 1d3eeea..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Core.php +++ /dev/null @@ -1,49 +0,0 @@ -strict) { - throw $error; - } - $this->errors[] = $error; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Exceptions/LexerException.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Exceptions/LexerException.php deleted file mode 100644 index 9731575..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Exceptions/LexerException.php +++ /dev/null @@ -1,42 +0,0 @@ -ch = $ch; - $this->pos = $pos; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Exceptions/LoaderException.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Exceptions/LoaderException.php deleted file mode 100644 index 54b9234..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Exceptions/LoaderException.php +++ /dev/null @@ -1,33 +0,0 @@ -name = $name; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Exceptions/ParserException.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Exceptions/ParserException.php deleted file mode 100644 index ae63f07..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Exceptions/ParserException.php +++ /dev/null @@ -1,34 +0,0 @@ -token = $token; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Lexer.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Lexer.php deleted file mode 100644 index 2479410..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Lexer.php +++ /dev/null @@ -1,942 +0,0 @@ -list; - } - - /** - * @param string|UtfString $str the query to be lexed - * @param bool $strict whether strict mode should be - * enabled or not - * @param string $delimiter the delimiter to be used - */ - public function __construct($str, $strict = false, $delimiter = null) - { - // `strlen` is used instead of `mb_strlen` because the lexer needs to - // parse each byte of the input. - $len = $str instanceof UtfString ? $str->length() : strlen($str); - - // For multi-byte strings, a new instance of `UtfString` is - // initialized (only if `UtfString` usage is forced. - if (! $str instanceof UtfString && USE_UTF_STRINGS && $len !== mb_strlen($str, 'UTF-8')) { - $str = new UtfString($str); - } - - $this->str = $str; - $this->len = $str instanceof UtfString ? $str->length() : $len; - - $this->strict = $strict; - - // Setting the delimiter. - $this->setDelimiter( - ! empty($delimiter) ? $delimiter : static::$DEFAULT_DELIMITER - ); - - $this->lex(); - } - - /** - * Sets the delimiter. - * - * @param string $delimiter the new delimiter - */ - public function setDelimiter($delimiter) - { - $this->delimiter = $delimiter; - $this->delimiterLen = strlen($delimiter); - } - - /** - * Parses the string and extracts lexemes. - */ - public function lex() - { - // TODO: Sometimes, static::parse* functions make unnecessary calls to - // is* functions. For a better performance, some rules can be deduced - // from context. - // For example, in `parseBool` there is no need to compare the token - // every time with `true` and `false`. The first step would be to - // compare with 'true' only and just after that add another letter from - // context and compare again with `false`. - // Another example is `parseComment`. - - $list = new TokensList(); - - /** - * Last processed token. - * - * @var Token - */ - $lastToken = null; - - for ($this->last = 0, $lastIdx = 0; $this->last < $this->len; $lastIdx = ++$this->last) { - /** - * The new token. - * - * @var Token - */ - $token = null; - - foreach (static::$PARSER_METHODS as $method) { - if ($token = $this->$method()) { - break; - } - } - - if ($token === null) { - // @assert($this->last === $lastIdx); - $token = new Token($this->str[$this->last]); - $this->error( - 'Unexpected character.', - $this->str[$this->last], - $this->last - ); - } elseif ($lastToken !== null - && $token->type === Token::TYPE_SYMBOL - && $token->flags & Token::FLAG_SYMBOL_VARIABLE - && ( - $lastToken->type === Token::TYPE_STRING - || ( - $lastToken->type === Token::TYPE_SYMBOL - && $lastToken->flags & Token::FLAG_SYMBOL_BACKTICK - ) - ) - ) { - // Handles ```... FROM 'user'@'%' ...```. - $lastToken->token .= $token->token; - $lastToken->type = Token::TYPE_SYMBOL; - $lastToken->flags = Token::FLAG_SYMBOL_USER; - $lastToken->value .= '@' . $token->value; - continue; - } elseif ($lastToken !== null - && $token->type === Token::TYPE_KEYWORD - && $lastToken->type === Token::TYPE_OPERATOR - && $lastToken->value === '.' - ) { - // Handles ```... tbl.FROM ...```. In this case, FROM is not - // a reserved word. - $token->type = Token::TYPE_NONE; - $token->flags = 0; - $token->value = $token->token; - } - - $token->position = $lastIdx; - - $list->tokens[$list->count++] = $token; - - // Handling delimiters. - if ($token->type === Token::TYPE_NONE && $token->value === 'DELIMITER') { - if ($this->last + 1 >= $this->len) { - $this->error( - 'Expected whitespace(s) before delimiter.', - '', - $this->last + 1 - ); - continue; - } - - // Skipping last R (from `delimiteR`) and whitespaces between - // the keyword `DELIMITER` and the actual delimiter. - $pos = ++$this->last; - if (($token = $this->parseWhitespace()) !== null) { - $token->position = $pos; - $list->tokens[$list->count++] = $token; - } - - // Preparing the token that holds the new delimiter. - if ($this->last + 1 >= $this->len) { - $this->error( - 'Expected delimiter.', - '', - $this->last + 1 - ); - continue; - } - $pos = $this->last + 1; - - // Parsing the delimiter. - $this->delimiter = null; - $delimiterLen = 0; - while (++$this->last < $this->len && ! Context::isWhitespace($this->str[$this->last]) && $delimiterLen < 15) { - $this->delimiter .= $this->str[$this->last]; - ++$delimiterLen; - } - - if (empty($this->delimiter)) { - $this->error( - 'Expected delimiter.', - '', - $this->last - ); - $this->delimiter = ';'; - } - - --$this->last; - - // Saving the delimiter and its token. - $this->delimiterLen = strlen($this->delimiter); - $token = new Token($this->delimiter, Token::TYPE_DELIMITER); - $token->position = $pos; - $list->tokens[$list->count++] = $token; - } - - $lastToken = $token; - } - - // Adding a final delimiter to mark the ending. - $list->tokens[$list->count++] = new Token(null, Token::TYPE_DELIMITER); - - // Saving the tokens list. - $this->list = $list; - } - - /** - * Creates a new error log. - * - * @param string $msg the error message - * @param string $str the character that produced the error - * @param int $pos the position of the character - * @param int $code the code of the error - * - * @throws LexerException throws the exception, if strict mode is enabled. - */ - public function error($msg, $str = '', $pos = 0, $code = 0) - { - $error = new LexerException( - Translator::gettext($msg), - $str, - $pos, - $code - ); - parent::error($error); - } - - /** - * Parses a keyword. - * - * @return null|Token - */ - public function parseKeyword() - { - $token = ''; - - /** - * Value to be returned. - * - * @var Token - */ - $ret = null; - - /** - * The value of `$this->last` where `$token` ends in `$this->str`. - * - * @var int - */ - $iEnd = $this->last; - - /** - * Whether last parsed character is a whitespace. - * - * @var bool - */ - $lastSpace = false; - - for ($j = 1; $j < Context::KEYWORD_MAX_LENGTH && $this->last < $this->len; ++$j, ++$this->last) { - // Composed keywords shouldn't have more than one whitespace between - // keywords. - if (Context::isWhitespace($this->str[$this->last])) { - if ($lastSpace) { - --$j; // The size of the keyword didn't increase. - continue; - } - $lastSpace = true; - } else { - $lastSpace = false; - } - - $token .= $this->str[$this->last]; - if (($this->last + 1 === $this->len || Context::isSeparator($this->str[$this->last + 1])) - && $flags = Context::isKeyword($token) - ) { - $ret = new Token($token, Token::TYPE_KEYWORD, $flags); - $iEnd = $this->last; - - // We don't break so we find longest keyword. - // For example, `OR` and `ORDER` have a common prefix `OR`. - // If we stopped at `OR`, the parsing would be invalid. - } - } - - $this->last = $iEnd; - - return $ret; - } - - /** - * Parses a label. - * - * @return null|Token - */ - public function parseLabel() - { - $token = ''; - - /** - * Value to be returned. - * - * @var Token - */ - $ret = null; - - /** - * The value of `$this->last` where `$token` ends in `$this->str`. - * - * @var int - */ - $iEnd = $this->last; - for ($j = 1; $j < Context::LABEL_MAX_LENGTH && $this->last < $this->len; ++$j, ++$this->last) { - if ($this->str[$this->last] === ':' && $j > 1) { - // End of label - $token .= $this->str[$this->last]; - $ret = new Token($token, Token::TYPE_LABEL); - $iEnd = $this->last; - break; - } elseif (Context::isWhitespace($this->str[$this->last]) && $j > 1) { - // Whitespace between label and : - // The size of the keyword didn't increase. - --$j; - } elseif (Context::isSeparator($this->str[$this->last])) { - // Any other separator - break; - } - $token .= $this->str[$this->last]; - } - - $this->last = $iEnd; - - return $ret; - } - - /** - * Parses an operator. - * - * @return null|Token - */ - public function parseOperator() - { - $token = ''; - - /** - * Value to be returned. - * - * @var Token - */ - $ret = null; - - /** - * The value of `$this->last` where `$token` ends in `$this->str`. - * - * @var int - */ - $iEnd = $this->last; - - for ($j = 1; $j < Context::OPERATOR_MAX_LENGTH && $this->last < $this->len; ++$j, ++$this->last) { - $token .= $this->str[$this->last]; - if ($flags = Context::isOperator($token)) { - $ret = new Token($token, Token::TYPE_OPERATOR, $flags); - $iEnd = $this->last; - } - } - - $this->last = $iEnd; - - return $ret; - } - - /** - * Parses a whitespace. - * - * @return null|Token - */ - public function parseWhitespace() - { - $token = $this->str[$this->last]; - - if (! Context::isWhitespace($token)) { - return null; - } - - while (++$this->last < $this->len && Context::isWhitespace($this->str[$this->last])) { - $token .= $this->str[$this->last]; - } - - --$this->last; - - return new Token($token, Token::TYPE_WHITESPACE); - } - - /** - * Parses a comment. - * - * @return null|Token - */ - public function parseComment() - { - $iBak = $this->last; - $token = $this->str[$this->last]; - - // Bash style comments. (#comment\n) - if (Context::isComment($token)) { - while (++$this->last < $this->len - && $this->str[$this->last] !== "\n" - ) { - $token .= $this->str[$this->last]; - } - // Include trailing \n as whitespace token - if ($this->last < $this->len) { - --$this->last; - } - - return new Token($token, Token::TYPE_COMMENT, Token::FLAG_COMMENT_BASH); - } - - // C style comments. (/*comment*\/) - if (++$this->last < $this->len) { - $token .= $this->str[$this->last]; - if (Context::isComment($token)) { - $flags = Token::FLAG_COMMENT_C; - - // This comment already ended. It may be a part of a - // previous MySQL specific command. - if ($token === '*/') { - return new Token($token, Token::TYPE_COMMENT, $flags); - } - - // Checking if this is a MySQL-specific command. - if ($this->last + 1 < $this->len - && $this->str[$this->last + 1] === '!' - ) { - $flags |= Token::FLAG_COMMENT_MYSQL_CMD; - $token .= $this->str[++$this->last]; - - while (++$this->last < $this->len - && $this->str[$this->last] >= '0' - && $this->str[$this->last] <= '9' - ) { - $token .= $this->str[$this->last]; - } - --$this->last; - - // We split this comment and parse only its beginning - // here. - return new Token($token, Token::TYPE_COMMENT, $flags); - } - - // Parsing the comment. - while (++$this->last < $this->len - && ( - $this->str[$this->last - 1] !== '*' - || $this->str[$this->last] !== '/' - ) - ) { - $token .= $this->str[$this->last]; - } - - // Adding the ending. - if ($this->last < $this->len) { - $token .= $this->str[$this->last]; - } - - return new Token($token, Token::TYPE_COMMENT, $flags); - } - } - - // SQL style comments. (-- comment\n) - if (++$this->last < $this->len) { - $token .= $this->str[$this->last]; - $end = false; - } else { - --$this->last; - $end = true; - } - if (Context::isComment($token, $end)) { - // Checking if this comment did not end already (```--\n```). - if ($this->str[$this->last] !== "\n") { - while (++$this->last < $this->len - && $this->str[$this->last] !== "\n" - ) { - $token .= $this->str[$this->last]; - } - } - // Include trailing \n as whitespace token - if ($this->last < $this->len) { - --$this->last; - } - - return new Token($token, Token::TYPE_COMMENT, Token::FLAG_COMMENT_SQL); - } - - $this->last = $iBak; - - return null; - } - - /** - * Parses a boolean. - * - * @return null|Token - */ - public function parseBool() - { - if ($this->last + 3 >= $this->len) { - // At least `min(strlen('TRUE'), strlen('FALSE'))` characters are - // required. - return null; - } - - $iBak = $this->last; - $token = $this->str[$this->last] . $this->str[++$this->last] - . $this->str[++$this->last] . $this->str[++$this->last]; // _TRUE_ or _FALS_e - - if (Context::isBool($token)) { - return new Token($token, Token::TYPE_BOOL); - } elseif (++$this->last < $this->len) { - $token .= $this->str[$this->last]; // fals_E_ - if (Context::isBool($token)) { - return new Token($token, Token::TYPE_BOOL, 1); - } - } - - $this->last = $iBak; - - return null; - } - - /** - * Parses a number. - * - * @return null|Token - */ - public function parseNumber() - { - // A rudimentary state machine is being used to parse numbers due to - // the various forms of their notation. - // - // Below are the states of the machines and the conditions to change - // the state. - // - // 1 --------------------[ + or - ]-------------------> 1 - // 1 -------------------[ 0x or 0X ]------------------> 2 - // 1 --------------------[ 0 to 9 ]-------------------> 3 - // 1 -----------------------[ . ]---------------------> 4 - // 1 -----------------------[ b ]---------------------> 7 - // - // 2 --------------------[ 0 to F ]-------------------> 2 - // - // 3 --------------------[ 0 to 9 ]-------------------> 3 - // 3 -----------------------[ . ]---------------------> 4 - // 3 --------------------[ e or E ]-------------------> 5 - // - // 4 --------------------[ 0 to 9 ]-------------------> 4 - // 4 --------------------[ e or E ]-------------------> 5 - // - // 5 ---------------[ + or - or 0 to 9 ]--------------> 6 - // - // 7 -----------------------[ ' ]---------------------> 8 - // - // 8 --------------------[ 0 or 1 ]-------------------> 8 - // 8 -----------------------[ ' ]---------------------> 9 - // - // State 1 may be reached by negative numbers. - // State 2 is reached only by hex numbers. - // State 4 is reached only by float numbers. - // State 5 is reached only by numbers in approximate form. - // State 7 is reached only by numbers in bit representation. - // - // Valid final states are: 2, 3, 4 and 6. Any parsing that finished in a - // state other than these is invalid. - $iBak = $this->last; - $token = ''; - $flags = 0; - $state = 1; - for (; $this->last < $this->len; ++$this->last) { - if ($state === 1) { - if ($this->str[$this->last] === '-') { - $flags |= Token::FLAG_NUMBER_NEGATIVE; - } elseif ($this->last + 1 < $this->len - && $this->str[$this->last] === '0' - && ( - $this->str[$this->last + 1] === 'x' - || $this->str[$this->last + 1] === 'X' - ) - ) { - $token .= $this->str[$this->last++]; - $state = 2; - } elseif ($this->str[$this->last] >= '0' && $this->str[$this->last] <= '9') { - $state = 3; - } elseif ($this->str[$this->last] === '.') { - $state = 4; - } elseif ($this->str[$this->last] === 'b') { - $state = 7; - } elseif ($this->str[$this->last] !== '+') { - // `+` is a valid character in a number. - break; - } - } elseif ($state === 2) { - $flags |= Token::FLAG_NUMBER_HEX; - if (! ( - ($this->str[$this->last] >= '0' && $this->str[$this->last] <= '9') - || ($this->str[$this->last] >= 'A' && $this->str[$this->last] <= 'F') - || ($this->str[$this->last] >= 'a' && $this->str[$this->last] <= 'f') - ) - ) { - break; - } - } elseif ($state === 3) { - if ($this->str[$this->last] === '.') { - $state = 4; - } elseif ($this->str[$this->last] === 'e' || $this->str[$this->last] === 'E') { - $state = 5; - } elseif ($this->str[$this->last] < '0' || $this->str[$this->last] > '9') { - // Just digits and `.`, `e` and `E` are valid characters. - break; - } - } elseif ($state === 4) { - $flags |= Token::FLAG_NUMBER_FLOAT; - if ($this->str[$this->last] === 'e' || $this->str[$this->last] === 'E') { - $state = 5; - } elseif ($this->str[$this->last] < '0' || $this->str[$this->last] > '9') { - // Just digits, `e` and `E` are valid characters. - break; - } - } elseif ($state === 5) { - $flags |= Token::FLAG_NUMBER_APPROXIMATE; - if ($this->str[$this->last] === '+' || $this->str[$this->last] === '-' - || ($this->str[$this->last] >= '0' && $this->str[$this->last] <= '9') - ) { - $state = 6; - } else { - break; - } - } elseif ($state === 6) { - if ($this->str[$this->last] < '0' || $this->str[$this->last] > '9') { - // Just digits are valid characters. - break; - } - } elseif ($state === 7) { - $flags |= Token::FLAG_NUMBER_BINARY; - if ($this->str[$this->last] === '\'') { - $state = 8; - } else { - break; - } - } elseif ($state === 8) { - if ($this->str[$this->last] === '\'') { - $state = 9; - } elseif ($this->str[$this->last] !== '0' - && $this->str[$this->last] !== '1' - ) { - break; - } - } elseif ($state === 9) { - break; - } - $token .= $this->str[$this->last]; - } - if ($state === 2 || $state === 3 - || ($token !== '.' && $state === 4) - || $state === 6 || $state === 9 - ) { - --$this->last; - - return new Token($token, Token::TYPE_NUMBER, $flags); - } - $this->last = $iBak; - - return null; - } - - /** - * Parses a string. - * - * @param string $quote additional starting symbol - * - * @return null|Token - */ - public function parseString($quote = '') - { - $token = $this->str[$this->last]; - if (! ($flags = Context::isString($token)) && $token !== $quote) { - return null; - } - $quote = $token; - - while (++$this->last < $this->len) { - if ($this->last + 1 < $this->len - && ( - ($this->str[$this->last] === $quote && $this->str[$this->last + 1] === $quote) - || ($this->str[$this->last] === '\\' && $quote !== '`') - ) - ) { - $token .= $this->str[$this->last] . $this->str[++$this->last]; - } else { - if ($this->str[$this->last] === $quote) { - break; - } - $token .= $this->str[$this->last]; - } - } - - if ($this->last >= $this->len || $this->str[$this->last] !== $quote) { - $this->error( - sprintf( - Translator::gettext('Ending quote %1$s was expected.'), - $quote - ), - '', - $this->last - ); - } else { - $token .= $this->str[$this->last]; - } - - return new Token($token, Token::TYPE_STRING, $flags); - } - - /** - * Parses a symbol. - * - * @return null|Token - */ - public function parseSymbol() - { - $token = $this->str[$this->last]; - if (! ($flags = Context::isSymbol($token))) { - return null; - } - - if ($flags & Token::FLAG_SYMBOL_VARIABLE) { - if ($this->last + 1 < $this->len && $this->str[++$this->last] === '@') { - // This is a system variable (e.g. `@@hostname`). - $token .= $this->str[$this->last++]; - $flags |= Token::FLAG_SYMBOL_SYSTEM; - } - } elseif ($flags & Token::FLAG_SYMBOL_PARAMETER) { - if ($token !== '?' && $this->last + 1 < $this->len) { - ++$this->last; - } - } else { - $token = ''; - } - - $str = null; - - if ($this->last < $this->len) { - if (($str = $this->parseString('`')) === null) { - if (($str = $this->parseUnknown()) === null) { - $this->error( - 'Variable name was expected.', - $this->str[$this->last], - $this->last - ); - } - } - } - - if ($str !== null) { - $token .= $str->token; - } - - return new Token($token, Token::TYPE_SYMBOL, $flags); - } - - /** - * Parses unknown parts of the query. - * - * @return null|Token - */ - public function parseUnknown() - { - $token = $this->str[$this->last]; - if (Context::isSeparator($token)) { - return null; - } - - while (++$this->last < $this->len && ! Context::isSeparator($this->str[$this->last])) { - $token .= $this->str[$this->last]; - } - --$this->last; - - return new Token($token); - } - - /** - * Parses the delimiter of the query. - * - * @return null|Token - */ - public function parseDelimiter() - { - $idx = 0; - - while ($idx < $this->delimiterLen && $this->last + $idx < $this->len) { - if ($this->delimiter[$idx] !== $this->str[$this->last + $idx]) { - return null; - } - ++$idx; - } - - $this->last += $this->delimiterLen - 1; - - return new Token($this->delimiter, Token::TYPE_DELIMITER); - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Parser.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Parser.php deleted file mode 100644 index 902fa49..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Parser.php +++ /dev/null @@ -1,605 +0,0 @@ - 'PhpMyAdmin\\SqlParser\\Statements\\ExplainStatement', - 'DESC' => 'PhpMyAdmin\\SqlParser\\Statements\\ExplainStatement', - 'EXPLAIN' => 'PhpMyAdmin\\SqlParser\\Statements\\ExplainStatement', - 'FLUSH' => '', - 'GRANT' => '', - 'HELP' => '', - 'SET PASSWORD' => '', - 'STATUS' => '', - 'USE' => '', - - // Table Maintenance Statements - // https://dev.mysql.com/doc/refman/5.7/en/table-maintenance-sql.html - 'ANALYZE' => 'PhpMyAdmin\\SqlParser\\Statements\\AnalyzeStatement', - 'BACKUP' => 'PhpMyAdmin\\SqlParser\\Statements\\BackupStatement', - 'CHECK' => 'PhpMyAdmin\\SqlParser\\Statements\\CheckStatement', - 'CHECKSUM' => 'PhpMyAdmin\\SqlParser\\Statements\\ChecksumStatement', - 'OPTIMIZE' => 'PhpMyAdmin\\SqlParser\\Statements\\OptimizeStatement', - 'REPAIR' => 'PhpMyAdmin\\SqlParser\\Statements\\RepairStatement', - 'RESTORE' => 'PhpMyAdmin\\SqlParser\\Statements\\RestoreStatement', - - // Database Administration Statements - // https://dev.mysql.com/doc/refman/5.7/en/sql-syntax-server-administration.html - 'SET' => 'PhpMyAdmin\\SqlParser\\Statements\\SetStatement', - 'SHOW' => 'PhpMyAdmin\\SqlParser\\Statements\\ShowStatement', - - // Data Definition Statements. - // https://dev.mysql.com/doc/refman/5.7/en/sql-syntax-data-definition.html - 'ALTER' => 'PhpMyAdmin\\SqlParser\\Statements\\AlterStatement', - 'CREATE' => 'PhpMyAdmin\\SqlParser\\Statements\\CreateStatement', - 'DROP' => 'PhpMyAdmin\\SqlParser\\Statements\\DropStatement', - 'RENAME' => 'PhpMyAdmin\\SqlParser\\Statements\\RenameStatement', - 'TRUNCATE' => 'PhpMyAdmin\\SqlParser\\Statements\\TruncateStatement', - - // Data Manipulation Statements. - // https://dev.mysql.com/doc/refman/5.7/en/sql-syntax-data-manipulation.html - 'CALL' => 'PhpMyAdmin\\SqlParser\\Statements\\CallStatement', - 'DELETE' => 'PhpMyAdmin\\SqlParser\\Statements\\DeleteStatement', - 'DO' => '', - 'HANDLER' => '', - 'INSERT' => 'PhpMyAdmin\\SqlParser\\Statements\\InsertStatement', - 'LOAD DATA' => 'PhpMyAdmin\\SqlParser\\Statements\\LoadStatement', - 'REPLACE' => 'PhpMyAdmin\\SqlParser\\Statements\\ReplaceStatement', - 'SELECT' => 'PhpMyAdmin\\SqlParser\\Statements\\SelectStatement', - 'UPDATE' => 'PhpMyAdmin\\SqlParser\\Statements\\UpdateStatement', - - // Prepared Statements. - // https://dev.mysql.com/doc/refman/5.7/en/sql-syntax-prepared-statements.html - 'DEALLOCATE' => '', - 'EXECUTE' => '', - 'PREPARE' => '', - - // Transactional and Locking Statements - // https://dev.mysql.com/doc/refman/5.7/en/commit.html - 'BEGIN' => 'PhpMyAdmin\\SqlParser\\Statements\\TransactionStatement', - 'COMMIT' => 'PhpMyAdmin\\SqlParser\\Statements\\TransactionStatement', - 'ROLLBACK' => 'PhpMyAdmin\\SqlParser\\Statements\\TransactionStatement', - 'START TRANSACTION' => 'PhpMyAdmin\\SqlParser\\Statements\\TransactionStatement', - - 'PURGE' => 'PhpMyAdmin\\SqlParser\\Statements\\PurgeStatement', - - // Lock statements - // https://dev.mysql.com/doc/refman/5.7/en/lock-tables.html - 'LOCK' => 'PhpMyAdmin\\SqlParser\\Statements\\LockStatement', - 'UNLOCK' => 'PhpMyAdmin\\SqlParser\\Statements\\LockStatement', - ]; - - /** - * Array of classes that are used in parsing SQL components. - * - * @var array - */ - public static $KEYWORD_PARSERS = [ - // This is not a proper keyword and was added here to help the - // formatter. - 'PARTITION BY' => [], - 'SUBPARTITION BY' => [], - - // This is not a proper keyword and was added here to help the - // builder. - '_OPTIONS' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\OptionsArray', - 'field' => 'options', - ], - '_END_OPTIONS' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\OptionsArray', - 'field' => 'end_options', - ], - - 'INTERSECT' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\UnionKeyword', - 'field' => 'union', - ], - 'EXCEPT' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\UnionKeyword', - 'field' => 'union', - ], - 'UNION' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\UnionKeyword', - 'field' => 'union', - ], - 'UNION ALL' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\UnionKeyword', - 'field' => 'union', - ], - 'UNION DISTINCT' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\UnionKeyword', - 'field' => 'union', - ], - - // Actual clause parsers. - 'ALTER' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\Expression', - 'field' => 'table', - 'options' => ['parseField' => 'table'], - ], - 'ANALYZE' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray', - 'field' => 'tables', - 'options' => ['parseField' => 'table'], - ], - 'BACKUP' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray', - 'field' => 'tables', - 'options' => ['parseField' => 'table'], - ], - 'CALL' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\FunctionCall', - 'field' => 'call', - ], - 'CHECK' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray', - 'field' => 'tables', - 'options' => ['parseField' => 'table'], - ], - 'CHECKSUM' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray', - 'field' => 'tables', - 'options' => ['parseField' => 'table'], - ], - 'CROSS JOIN' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword', - 'field' => 'join', - ], - 'DROP' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray', - 'field' => 'fields', - 'options' => ['parseField' => 'table'], - ], - 'FORCE' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\IndexHint', - 'field' => 'index_hints', - ], - 'FROM' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray', - 'field' => 'from', - 'options' => ['field' => 'table'], - ], - 'GROUP BY' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\GroupKeyword', - 'field' => 'group', - ], - 'HAVING' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\Condition', - 'field' => 'having', - ], - 'IGNORE' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\IndexHint', - 'field' => 'index_hints', - ], - 'INTO' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\IntoKeyword', - 'field' => 'into', - ], - 'JOIN' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword', - 'field' => 'join', - ], - 'LEFT JOIN' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword', - 'field' => 'join', - ], - 'LEFT OUTER JOIN' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword', - 'field' => 'join', - ], - 'ON' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\Expression', - 'field' => 'table', - 'options' => ['parseField' => 'table'], - ], - 'RIGHT JOIN' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword', - 'field' => 'join', - ], - 'RIGHT OUTER JOIN' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword', - 'field' => 'join', - ], - 'INNER JOIN' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword', - 'field' => 'join', - ], - 'FULL JOIN' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword', - 'field' => 'join', - ], - 'FULL OUTER JOIN' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword', - 'field' => 'join', - ], - 'NATURAL JOIN' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword', - 'field' => 'join', - ], - 'NATURAL LEFT JOIN' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword', - 'field' => 'join', - ], - 'NATURAL RIGHT JOIN' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword', - 'field' => 'join', - ], - 'NATURAL LEFT OUTER JOIN' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword', - 'field' => 'join', - ], - 'NATURAL RIGHT OUTER JOIN' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword', - 'field' => 'join', - ], - 'STRAIGHT_JOIN' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword', - 'field' => 'join', - ], - 'LIMIT' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\Limit', - 'field' => 'limit', - ], - 'OPTIMIZE' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray', - 'field' => 'tables', - 'options' => ['parseField' => 'table'], - ], - 'ORDER BY' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\OrderKeyword', - 'field' => 'order', - ], - 'PARTITION' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\ArrayObj', - 'field' => 'partition', - ], - 'PROCEDURE' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\FunctionCall', - 'field' => 'procedure', - ], - 'RENAME' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\RenameOperation', - 'field' => 'renames', - ], - 'REPAIR' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray', - 'field' => 'tables', - 'options' => ['parseField' => 'table'], - ], - 'RESTORE' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray', - 'field' => 'tables', - 'options' => ['parseField' => 'table'], - ], - 'SET' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\SetOperation', - 'field' => 'set', - ], - 'SELECT' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray', - 'field' => 'expr', - ], - 'TRUNCATE' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\Expression', - 'field' => 'table', - 'options' => ['parseField' => 'table'], - ], - 'UPDATE' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray', - 'field' => 'tables', - 'options' => ['parseField' => 'table'], - ], - 'USE' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\IndexHint', - 'field' => 'index_hints', - ], - 'VALUE' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\Array2d', - 'field' => 'values', - ], - 'VALUES' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\Array2d', - 'field' => 'values', - ], - 'WHERE' => [ - 'class' => 'PhpMyAdmin\\SqlParser\\Components\\Condition', - 'field' => 'where', - ], - ]; - - /** - * The list of tokens that are parsed. - * - * @var TokensList - */ - public $list; - - /** - * List of statements parsed. - * - * @var Statement[] - */ - public $statements = []; - - /** - * The number of opened brackets. - * - * @var int - */ - public $brackets = 0; - - /** - * @param string|UtfString|TokensList $list the list of tokens to be parsed - * @param bool $strict whether strict mode should be enabled or not - */ - public function __construct($list = null, $strict = false) - { - if (is_string($list) || ($list instanceof UtfString)) { - $lexer = new Lexer($list, $strict); - $this->list = $lexer->list; - } elseif ($list instanceof TokensList) { - $this->list = $list; - } - - $this->strict = $strict; - - if ($list !== null) { - $this->parse(); - } - } - - /** - * Builds the parse trees. - */ - public function parse() - { - /** - * Last transaction. - * - * @var TransactionStatement - */ - $lastTransaction = null; - - /** - * Last parsed statement. - * - * @var Statement - */ - $lastStatement = null; - - /** - * Union's type or false for no union. - * - * @var bool|string - */ - $unionType = false; - - /** - * The index of the last token from the last statement. - * - * @var int - */ - $prevLastIdx = -1; - - /** - * The list of tokens. - * - * @var TokensList - */ - $list = &$this->list; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // `DELIMITER` is not an actual statement and it requires - // special handling. - if (($token->type === Token::TYPE_NONE) - && (strtoupper($token->token) === 'DELIMITER') - ) { - // Skipping to the end of this statement. - $list->getNextOfType(Token::TYPE_DELIMITER); - $prevLastIdx = $list->idx; - continue; - } - - // Counting the brackets around statements. - if ($token->value === '(') { - ++$this->brackets; - continue; - } - - // Statements can start with keywords only. - // Comments, whitespaces, etc. are ignored. - if ($token->type !== Token::TYPE_KEYWORD) { - if (($token->type !== Token::TYPE_COMMENT) - && ($token->type !== Token::TYPE_WHITESPACE) - && ($token->type !== Token::TYPE_OPERATOR) // `(` and `)` - && ($token->type !== Token::TYPE_DELIMITER) - ) { - $this->error( - 'Unexpected beginning of statement.', - $token - ); - } - continue; - } - - if (($token->keyword === 'UNION') || - ($token->keyword === 'UNION ALL') || - ($token->keyword === 'UNION DISTINCT') || - ($token->keyword === 'EXCEPT') || - ($token->keyword === 'INTERSECT') - ) { - $unionType = $token->keyword; - continue; - } - - // Checking if it is a known statement that can be parsed. - if (empty(static::$STATEMENT_PARSERS[$token->keyword])) { - if (! isset(static::$STATEMENT_PARSERS[$token->keyword])) { - // A statement is considered recognized if the parser - // is aware that it is a statement, but it does not have - // a parser for it yet. - $this->error( - 'Unrecognized statement type.', - $token - ); - } - // Skipping to the end of this statement. - $list->getNextOfType(Token::TYPE_DELIMITER); - $prevLastIdx = $list->idx; - continue; - } - - /** - * The name of the class that is used for parsing. - * - * @var string - */ - $class = static::$STATEMENT_PARSERS[$token->keyword]; - - /** - * Processed statement. - * - * @var Statement - */ - $statement = new $class($this, $this->list); - - // The first token that is a part of this token is the next token - // unprocessed by the previous statement. - // There might be brackets around statements and this shouldn't - // affect the parser - $statement->first = $prevLastIdx + 1; - - // Storing the index of the last token parsed and updating the old - // index. - $statement->last = $list->idx; - $prevLastIdx = $list->idx; - - // Handles unions. - if (! empty($unionType) - && ($lastStatement instanceof SelectStatement) - && ($statement instanceof SelectStatement) - ) { - /* - * This SELECT statement. - * - * @var SelectStatement $statement - */ - - /* - * Last SELECT statement. - * - * @var SelectStatement $lastStatement - */ - $lastStatement->union[] = [ - $unionType, - $statement, - ]; - - // if there are no no delimiting brackets, the `ORDER` and - // `LIMIT` keywords actually belong to the first statement. - $lastStatement->order = $statement->order; - $lastStatement->limit = $statement->limit; - $statement->order = []; - $statement->limit = null; - - // The statement actually ends where the last statement in - // union ends. - $lastStatement->last = $statement->last; - - $unionType = false; - - // Validate clause order - $statement->validateClauseOrder($this, $list); - continue; - } - - // Handles transactions. - if ($statement instanceof TransactionStatement) { - /* - * @var TransactionStatement - */ - if ($statement->type === TransactionStatement::TYPE_BEGIN) { - $lastTransaction = $statement; - $this->statements[] = $statement; - } elseif ($statement->type === TransactionStatement::TYPE_END) { - if ($lastTransaction === null) { - // Even though an error occurred, the query is being - // saved. - $this->statements[] = $statement; - $this->error( - 'No transaction was previously started.', - $token - ); - } else { - $lastTransaction->end = $statement; - } - $lastTransaction = null; - } - - // Validate clause order - $statement->validateClauseOrder($this, $list); - continue; - } - - // Validate clause order - $statement->validateClauseOrder($this, $list); - - // Finally, storing the statement. - if ($lastTransaction !== null) { - $lastTransaction->statements[] = $statement; - } else { - $this->statements[] = $statement; - } - $lastStatement = $statement; - } - } - - /** - * Creates a new error log. - * - * @param string $msg the error message - * @param Token $token the token that produced the error - * @param int $code the code of the error - * - * @throws ParserException throws the exception, if strict mode is enabled. - */ - public function error($msg, Token $token = null, $code = 0) - { - $error = new ParserException( - Translator::gettext($msg), - $token, - $code - ); - parent::error($error); - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statement.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statement.php deleted file mode 100644 index 6617da7..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statement.php +++ /dev/null @@ -1,554 +0,0 @@ -parse($parser, $list); - } - } - - /** - * Builds the string representation of this statement. - * - * @return string - */ - public function build() - { - /** - * Query to be returned. - * - * @var string - */ - $query = ''; - - /** - * Clauses which were built already. - * - * It is required to keep track of built clauses because some fields, - * for example `join` is used by multiple clauses (`JOIN`, `LEFT JOIN`, - * `LEFT OUTER JOIN`, etc.). The same happens for `VALUE` and `VALUES`. - * - * A clause is considered built just after fields' value - * (`$this->field`) was used in building. - * - * @var array - */ - $built = []; - - /** - * Statement's clauses. - * - * @var array - */ - $clauses = $this->getClauses(); - - foreach ($clauses as $clause) { - /** - * The name of the clause. - * - * @var string - */ - $name = $clause[0]; - - /** - * The type of the clause. - * - * @see self::$CLAUSES - * - * @var int - */ - $type = $clause[1]; - - /** - * The builder (parser) of this clause. - * - * @var Component - */ - $class = Parser::$KEYWORD_PARSERS[$name]['class']; - - /** - * The name of the field that is used as source for the builder. - * Same field is used to store the result of parsing. - * - * @var string - */ - $field = Parser::$KEYWORD_PARSERS[$name]['field']; - - // The field is empty, there is nothing to be built. - if (empty($this->$field)) { - continue; - } - - // Checking if this field was already built. - if ($type & 1) { - if (! empty($built[$field])) { - continue; - } - $built[$field] = true; - } - - // Checking if the name of the clause should be added. - if ($type & 2) { - $query = trim($query) . ' ' . $name; - } - - // Checking if the result of the builder should be added. - if ($type & 1) { - $query = trim($query) . ' ' . $class::build($this->$field); - } - } - - return $query; - } - - /** - * Parses the statements defined by the tokens list. - * - * @param Parser $parser the instance that requests parsing - * @param TokensList $list the list of tokens to be parsed - */ - public function parse(Parser $parser, TokensList $list) - { - /** - * Array containing all list of clauses parsed. - * This is used to check for duplicates. - * - * @var array - */ - $parsedClauses = []; - - // This may be corrected by the parser. - $this->first = $list->idx; - - /** - * Whether options were parsed or not. - * For statements that do not have any options this is set to `true` by - * default. - * - * @var bool - */ - $parsedOptions = empty(static::$OPTIONS); - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Checking if this closing bracket is the pair for a bracket - // outside the statement. - if (($token->value === ')') && ($parser->brackets > 0)) { - --$parser->brackets; - continue; - } - - // Only keywords are relevant here. Other parts of the query are - // processed in the functions below. - if ($token->type !== Token::TYPE_KEYWORD) { - if (($token->type !== Token::TYPE_COMMENT) - && ($token->type !== Token::TYPE_WHITESPACE) - ) { - $parser->error('Unexpected token.', $token); - } - continue; - } - - // Unions are parsed by the parser because they represent more than - // one statement. - if (($token->keyword === 'UNION') || - ($token->keyword === 'UNION ALL') || - ($token->keyword === 'UNION DISTINCT') || - ($token->keyword === 'EXCEPT') || - ($token->keyword === 'INTERSECT') - ) { - break; - } - - $lastIdx = $list->idx; - - // ON DUPLICATE KEY UPDATE ... - // has to be parsed in parent statement (INSERT or REPLACE) - // so look for it and break - if ($this instanceof Statements\SelectStatement - && $token->value === 'ON' - ) { - ++$list->idx; // Skip ON - - // look for ON DUPLICATE KEY UPDATE - $first = $list->getNextOfType(Token::TYPE_KEYWORD); - $second = $list->getNextOfType(Token::TYPE_KEYWORD); - $third = $list->getNextOfType(Token::TYPE_KEYWORD); - - if ($first && $second && $third - && $first->value === 'DUPLICATE' - && $second->value === 'KEY' - && $third->value === 'UPDATE' - ) { - $list->idx = $lastIdx; - break; - } - } - $list->idx = $lastIdx; - - /** - * The name of the class that is used for parsing. - * - * @var Component - */ - $class = null; - - /** - * The name of the field where the result of the parsing is stored. - * - * @var string - */ - $field = null; - - /** - * Parser's options. - * - * @var array - */ - $options = []; - - // Looking for duplicated clauses. - if (! empty(Parser::$KEYWORD_PARSERS[$token->value]) - || ! empty(Parser::$STATEMENT_PARSERS[$token->value]) - ) { - if (! empty($parsedClauses[$token->value])) { - $parser->error( - 'This type of clause was previously parsed.', - $token - ); - break; - } - $parsedClauses[$token->value] = true; - } - - // Checking if this is the beginning of a clause. - // Fix Issue #221: As `truncate` is not a keyword - // but it might be the beginning of a statement of truncate, - // so let the value use the keyword field for truncate type. - $token_value = in_array($token->keyword, ['TRUNCATE']) ? $token->keyword : $token->value; - if (! empty(Parser::$KEYWORD_PARSERS[$token_value]) && $list->idx < $list->count) { - $class = Parser::$KEYWORD_PARSERS[$token_value]['class']; - $field = Parser::$KEYWORD_PARSERS[$token_value]['field']; - if (! empty(Parser::$KEYWORD_PARSERS[$token_value]['options'])) { - $options = Parser::$KEYWORD_PARSERS[$token_value]['options']; - } - } - - // Checking if this is the beginning of the statement. - if (! empty(Parser::$STATEMENT_PARSERS[$token->keyword])) { - if (! empty(static::$CLAUSES) // Undefined for some statements. - && empty(static::$CLAUSES[$token->value]) - ) { - // Some keywords (e.g. `SET`) may be the beginning of a - // statement and a clause. - // If such keyword was found and it cannot be a clause of - // this statement it means it is a new statement, but no - // delimiter was found between them. - $parser->error( - 'A new statement was found, but no delimiter between it and the previous one.', - $token - ); - break; - } - if (! $parsedOptions) { - if (empty(static::$OPTIONS[$token->value])) { - // Skipping keyword because if it is not a option. - ++$list->idx; - } - $this->options = OptionsArray::parse( - $parser, - $list, - static::$OPTIONS - ); - $parsedOptions = true; - } - } elseif ($class === null) { - if ($this instanceof Statements\SelectStatement - && ($token->value === 'FOR UPDATE' - || $token->value === 'LOCK IN SHARE MODE') - ) { - // Handle special end options in Select statement - // See Statements\SelectStatement::$END_OPTIONS - $this->end_options = OptionsArray::parse( - $parser, - $list, - static::$END_OPTIONS - ); - } elseif ($this instanceof Statements\SetStatement - && ($token->value === 'COLLATE' - || $token->value === 'DEFAULT') - ) { - // Handle special end options in SET statement - // See Statements\SetStatement::$END_OPTIONS - $this->end_options = OptionsArray::parse( - $parser, - $list, - static::$END_OPTIONS - ); - } else { - // There is no parser for this keyword and isn't the beginning - // of a statement (so no options) either. - $parser->error('Unrecognized keyword.', $token); - continue; - } - } - - $this->before($parser, $list, $token); - - // Parsing this keyword. - if ($class !== null) { - // We can't parse keyword at the end of statement - if ($list->idx >= $list->count) { - $parser->error('Keyword at end of statement.', $token); - continue; - } - ++$list->idx; // Skipping keyword or last option. - $this->$field = $class::parse($parser, $list, $options); - } - - $this->after($parser, $list, $token); - - // #223 Here may make a patch, if last is delimiter, back one - if ($class !== null) { - if ((new $class()) instanceof FunctionCall) { - if ($list->offsetGet($list->idx)->type === Token::TYPE_DELIMITER) { - --$list->idx; - } - } - } - } - - // This may be corrected by the parser. - $this->last = --$list->idx; // Go back to last used token. - } - - /** - * Function called before the token is processed. - * - * @param Parser $parser the instance that requests parsing - * @param TokensList $list the list of tokens to be parsed - * @param Token $token the token that is being parsed - */ - public function before(Parser $parser, TokensList $list, Token $token) - { - } - - /** - * Function called after the token was processed. - * - * @param Parser $parser the instance that requests parsing - * @param TokensList $list the list of tokens to be parsed - * @param Token $token the token that is being parsed - */ - public function after(Parser $parser, TokensList $list, Token $token) - { - } - - /** - * Gets the clauses of this statement. - * - * @return array - */ - public function getClauses() - { - return static::$CLAUSES; - } - - /** - * Builds the string representation of this statement. - * - * @see static::build - * - * @return string - */ - public function __toString() - { - return $this->build(); - } - - /** - * Validates the order of the clauses in parsed statement - * Ideally this should be called after successfully - * completing the parsing of each statement. - * - * @param Parser $parser the instance that requests parsing - * @param TokensList $list the list of tokens to be parsed - * - * @return bool - */ - public function validateClauseOrder($parser, $list) - { - $clauses = array_flip(array_keys($this->getClauses())); - - if (empty($clauses) || count($clauses) === 0) { - return true; - } - - $minIdx = -1; - - /** - * For tracking JOIN clauses in a query - * = 0 - JOIN not found till now - * > 0 - Index of first JOIN clause in the statement. - * - * @var int - */ - $minJoin = 0; - - /** - * For tracking JOIN clauses in a query - * = 0 - JOIN not found till now - * > 0 - Index of last JOIN clause - * (which appears together with other JOINs) - * in the statement. - * - * @var int - */ - $maxJoin = 0; - - $error = 0; - $lastIdx = 0; - foreach ($clauses as $clauseType => $index) { - $clauseStartIdx = Utils\Query::getClauseStartOffset( - $this, - $list, - $clauseType - ); - - if ($clauseStartIdx !== -1 - && $this instanceof Statements\SelectStatement - && ($clauseType === 'FORCE' - || $clauseType === 'IGNORE' - || $clauseType === 'USE') - ) { - // TODO: ordering of clauses in a SELECT statement with - // Index hints is not supported - return true; - } - - // Handle ordering of Multiple Joins in a query - if ($clauseStartIdx !== -1) { - if ($minJoin === 0 && stripos($clauseType, 'JOIN')) { - // First JOIN clause is detected - $minJoin = $maxJoin = $clauseStartIdx; - } elseif ($minJoin !== 0 && ! stripos($clauseType, 'JOIN')) { - // After a previous JOIN clause, a non-JOIN clause has been detected - $maxJoin = $lastIdx; - } elseif ($maxJoin < $clauseStartIdx && stripos($clauseType, 'JOIN')) { - $error = 1; - } - } - - if ($clauseStartIdx !== -1 && $clauseStartIdx < $minIdx) { - if ($minJoin === 0 || $error === 1) { - $token = $list->tokens[$clauseStartIdx]; - $parser->error( - 'Unexpected ordering of clauses.', - $token - ); - - return false; - } - $minIdx = $clauseStartIdx; - } elseif ($clauseStartIdx !== -1) { - $minIdx = $clauseStartIdx; - } - - $lastIdx = $clauseStartIdx !== -1 ? $clauseStartIdx : $lastIdx; - } - - return true; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/AlterStatement.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/AlterStatement.php deleted file mode 100644 index a03b2fc..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/AlterStatement.php +++ /dev/null @@ -1,146 +0,0 @@ - 1, - 'OFFLINE' => 1, - 'IGNORE' => 2, - - 'DATABASE' => 3, - 'EVENT' => 3, - 'FUNCTION' => 3, - 'PROCEDURE' => 3, - 'SERVER' => 3, - 'TABLE' => 3, - 'TABLESPACE' => 3, - 'VIEW' => 3, - ]; - - /** - * @param Parser $parser the instance that requests parsing - * @param TokensList $list the list of tokens to be parsed - */ - public function parse(Parser $parser, TokensList $list) - { - ++$list->idx; // Skipping `ALTER`. - $this->options = OptionsArray::parse( - $parser, - $list, - static::$OPTIONS - ); - ++$list->idx; - - // Parsing affected table. - $this->table = Expression::parse( - $parser, - $list, - [ - 'parseField' => 'table', - 'breakOnAlias' => true, - ] - ); - ++$list->idx; // Skipping field. - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 -----------------[ alter operation ]-----------------> 1 - * - * 1 -------------------------[ , ]-----------------------> 0 - * - * @var int - */ - $state = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if ($state === 0) { - $options = []; - if ($this->options->has('DATABASE')) { - $options = AlterOperation::$DB_OPTIONS; - } elseif ($this->options->has('TABLE')) { - $options = AlterOperation::$TABLE_OPTIONS; - } elseif ($this->options->has('VIEW')) { - $options = AlterOperation::$VIEW_OPTIONS; - } - - $this->altered[] = AlterOperation::parse($parser, $list, $options); - $state = 1; - } elseif ($state === 1) { - if (($token->type === Token::TYPE_OPERATOR) && ($token->value === ',')) { - $state = 0; - } - } - } - } - - /** - * @return string - */ - public function build() - { - $tmp = []; - foreach ($this->altered as $altered) { - $tmp[] = $altered::build($altered); - } - - return 'ALTER ' . OptionsArray::build($this->options) - . ' ' . Expression::build($this->table) - . ' ' . implode(', ', $tmp); - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/AnalyzeStatement.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/AnalyzeStatement.php deleted file mode 100644 index b14b891..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/AnalyzeStatement.php +++ /dev/null @@ -1,38 +0,0 @@ - 1, - - 'NO_WRITE_TO_BINLOG' => 2, - 'LOCAL' => 3, - ]; - - /** - * Analyzed tables. - * - * @var Expression[] - */ - public $tables; -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/BackupStatement.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/BackupStatement.php deleted file mode 100644 index 3fab2de..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/BackupStatement.php +++ /dev/null @@ -1,32 +0,0 @@ - 1, - - 'NO_WRITE_TO_BINLOG' => 2, - 'LOCAL' => 3, - - 'TO' => [ - 4, - 'var', - ], - ]; -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/CallStatement.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/CallStatement.php deleted file mode 100644 index 6a3de69..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/CallStatement.php +++ /dev/null @@ -1,39 +0,0 @@ -call->name . '(' . ($this->call->parameters ? implode(',', $this->call->parameters->raw) : '') . ')'; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/CheckStatement.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/CheckStatement.php deleted file mode 100644 index c112f0a..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/CheckStatement.php +++ /dev/null @@ -1,31 +0,0 @@ - 1, - - 'FOR UPGRADE' => 2, - 'QUICK' => 3, - 'FAST' => 4, - 'MEDIUM' => 5, - 'EXTENDED' => 6, - 'CHANGED' => 7, - ]; -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/ChecksumStatement.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/ChecksumStatement.php deleted file mode 100644 index 259f287..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/ChecksumStatement.php +++ /dev/null @@ -1,27 +0,0 @@ - 1, - - 'QUICK' => 2, - 'EXTENDED' => 3, - ]; -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/CreateStatement.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/CreateStatement.php deleted file mode 100644 index 64ea57d..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/CreateStatement.php +++ /dev/null @@ -1,741 +0,0 @@ - 1, - - // CREATE VIEW - 'OR REPLACE' => 2, - 'ALGORITHM' => [ - 3, - 'var=', - ], - // `DEFINER` is also used for `CREATE FUNCTION / PROCEDURE` - 'DEFINER' => [ - 4, - 'expr=', - ], - 'SQL SECURITY' => [ - 5, - 'var', - ], - - 'DATABASE' => 6, - 'EVENT' => 6, - 'FUNCTION' => 6, - 'INDEX' => 6, - 'UNIQUE INDEX' => 6, - 'FULLTEXT INDEX' => 6, - 'SPATIAL INDEX' => 6, - 'PROCEDURE' => 6, - 'SERVER' => 6, - 'TABLE' => 6, - 'TABLESPACE' => 6, - 'TRIGGER' => 6, - 'USER' => 6, - 'VIEW' => 6, - 'SCHEMA' => 6, - - // CREATE TABLE - 'IF NOT EXISTS' => 7, - ]; - - /** - * All database options. - * - * @var array - */ - public static $DB_OPTIONS = [ - 'CHARACTER SET' => [ - 1, - 'var=', - ], - 'CHARSET' => [ - 1, - 'var=', - ], - 'DEFAULT CHARACTER SET' => [ - 1, - 'var=', - ], - 'DEFAULT CHARSET' => [ - 1, - 'var=', - ], - 'DEFAULT COLLATE' => [ - 2, - 'var=', - ], - 'COLLATE' => [ - 2, - 'var=', - ], - ]; - - /** - * All table options. - * - * @var array - */ - public static $TABLE_OPTIONS = [ - 'ENGINE' => [ - 1, - 'var=', - ], - 'AUTO_INCREMENT' => [ - 2, - 'var=', - ], - 'AVG_ROW_LENGTH' => [ - 3, - 'var', - ], - 'CHARACTER SET' => [ - 4, - 'var=', - ], - 'CHARSET' => [ - 4, - 'var=', - ], - 'DEFAULT CHARACTER SET' => [ - 4, - 'var=', - ], - 'DEFAULT CHARSET' => [ - 4, - 'var=', - ], - 'CHECKSUM' => [ - 5, - 'var', - ], - 'DEFAULT COLLATE' => [ - 6, - 'var=', - ], - 'COLLATE' => [ - 6, - 'var=', - ], - 'COMMENT' => [ - 7, - 'var=', - ], - 'CONNECTION' => [ - 8, - 'var', - ], - 'DATA DIRECTORY' => [ - 9, - 'var', - ], - 'DELAY_KEY_WRITE' => [ - 10, - 'var', - ], - 'INDEX DIRECTORY' => [ - 11, - 'var', - ], - 'INSERT_METHOD' => [ - 12, - 'var', - ], - 'KEY_BLOCK_SIZE' => [ - 13, - 'var', - ], - 'MAX_ROWS' => [ - 14, - 'var', - ], - 'MIN_ROWS' => [ - 15, - 'var', - ], - 'PACK_KEYS' => [ - 16, - 'var', - ], - 'PASSWORD' => [ - 17, - 'var', - ], - 'ROW_FORMAT' => [ - 18, - 'var', - ], - 'TABLESPACE' => [ - 19, - 'var', - ], - 'STORAGE' => [ - 20, - 'var', - ], - 'UNION' => [ - 21, - 'var', - ], - ]; - - /** - * All function options. - * - * @var array - */ - public static $FUNC_OPTIONS = [ - 'COMMENT' => [ - 1, - 'var=', - ], - 'LANGUAGE SQL' => 2, - 'DETERMINISTIC' => 3, - 'NOT DETERMINISTIC' => 3, - 'CONTAINS SQL' => 4, - 'NO SQL' => 4, - 'READS SQL DATA' => 4, - 'MODIFIES SQL DATA' => 4, - 'SQL SECURITY DEFINER' => [ - 5, - 'var', - ], - ]; - - /** - * All trigger options. - * - * @var array - */ - public static $TRIGGER_OPTIONS = [ - 'BEFORE' => 1, - 'AFTER' => 1, - 'INSERT' => 2, - 'UPDATE' => 2, - 'DELETE' => 2, - ]; - - /** - * The name of the entity that is created. - * - * Used by all `CREATE` statements. - * - * @var Expression - */ - public $name; - - /** - * The options of the entity (table, procedure, function, etc.). - * - * Used by `CREATE TABLE`, `CREATE FUNCTION` and `CREATE PROCEDURE`. - * - * @see static::$TABLE_OPTIONS - * @see static::$FUNC_OPTIONS - * @see static::$TRIGGER_OPTIONS - * - * @var OptionsArray - */ - public $entityOptions; - - /** - * If `CREATE TABLE`, a list of columns and keys. - * If `CREATE VIEW`, a list of columns. - * - * Used by `CREATE TABLE` and `CREATE VIEW`. - * - * @var CreateDefinition[]|ArrayObj - */ - public $fields; - - /** - * If `CREATE TABLE ... SELECT`. - * - * Used by `CREATE TABLE` - * - * @var SelectStatement - */ - public $select; - - /** - * If `CREATE TABLE ... LIKE`. - * - * Used by `CREATE TABLE` - * - * @var Expression - */ - public $like; - - /** - * Expression used for partitioning. - * - * @var string - */ - public $partitionBy; - - /** - * The number of partitions. - * - * @var int - */ - public $partitionsNum; - - /** - * Expression used for subpartitioning. - * - * @var string - */ - public $subpartitionBy; - - /** - * The number of subpartitions. - * - * @var int - */ - public $subpartitionsNum; - - /** - * The partition of the new table. - * - * @var PartitionDefinition[] - */ - public $partitions; - - /** - * If `CREATE TRIGGER` the name of the table. - * - * Used by `CREATE TRIGGER`. - * - * @var Expression - */ - public $table; - - /** - * The return data type of this routine. - * - * Used by `CREATE FUNCTION`. - * - * @var DataType - */ - public $return; - - /** - * The parameters of this routine. - * - * Used by `CREATE FUNCTION` and `CREATE PROCEDURE`. - * - * @var ParameterDefinition[] - */ - public $parameters; - - /** - * The body of this function or procedure. For views, it is the select - * statement that gets the. - * - * Used by `CREATE FUNCTION`, `CREATE PROCEDURE` and `CREATE VIEW`. - * - * @var Token[]|string - */ - public $body = []; - - /** - * @return string - */ - public function build() - { - $fields = ''; - if (! empty($this->fields)) { - if (is_array($this->fields)) { - $fields = CreateDefinition::build($this->fields) . ' '; - } elseif ($this->fields instanceof ArrayObj) { - $fields = ArrayObj::build($this->fields); - } - } - if ($this->options->has('DATABASE') || $this->options->has('SCHEMA')) { - return 'CREATE ' - . OptionsArray::build($this->options) . ' ' - . Expression::build($this->name) . ' ' - . OptionsArray::build($this->entityOptions); - } elseif ($this->options->has('TABLE')) { - if ($this->select !== null) { - return 'CREATE ' - . OptionsArray::build($this->options) . ' ' - . Expression::build($this->name) . ' ' - . $this->select->build(); - } elseif ($this->like !== null) { - return 'CREATE ' - . OptionsArray::build($this->options) . ' ' - . Expression::build($this->name) . ' LIKE ' - . Expression::build($this->like); - } else { - $partition = ''; - - if (! empty($this->partitionBy)) { - $partition .= "\nPARTITION BY " . $this->partitionBy; - } - if (! empty($this->partitionsNum)) { - $partition .= "\nPARTITIONS " . $this->partitionsNum; - } - if (! empty($this->subpartitionBy)) { - $partition .= "\nSUBPARTITION BY " . $this->subpartitionBy; - } - if (! empty($this->subpartitionsNum)) { - $partition .= "\nSUBPARTITIONS " . $this->subpartitionsNum; - } - if (! empty($this->partitions)) { - $partition .= "\n" . PartitionDefinition::build($this->partitions); - } - - return 'CREATE ' - . OptionsArray::build($this->options) . ' ' - . Expression::build($this->name) . ' ' - . $fields - . OptionsArray::build($this->entityOptions) - . $partition; - } - } elseif ($this->options->has('VIEW')) { - return 'CREATE ' - . OptionsArray::build($this->options) . ' ' - . Expression::build($this->name) . ' ' - . $fields . ' AS ' . TokensList::build($this->body) . ' ' - . OptionsArray::build($this->entityOptions); - } elseif ($this->options->has('TRIGGER')) { - return 'CREATE ' - . OptionsArray::build($this->options) . ' ' - . Expression::build($this->name) . ' ' - . OptionsArray::build($this->entityOptions) . ' ' - . 'ON ' . Expression::build($this->table) . ' ' - . 'FOR EACH ROW ' . TokensList::build($this->body); - } elseif ($this->options->has('PROCEDURE') - || $this->options->has('FUNCTION') - ) { - $tmp = ''; - if ($this->options->has('FUNCTION')) { - $tmp = 'RETURNS ' . DataType::build($this->return); - } - - return 'CREATE ' - . OptionsArray::build($this->options) . ' ' - . Expression::build($this->name) . ' ' - . ParameterDefinition::build($this->parameters) . ' ' - . $tmp . ' ' . TokensList::build($this->body); - } - - return 'CREATE ' - . OptionsArray::build($this->options) . ' ' - . Expression::build($this->name) . ' ' - . TokensList::build($this->body); - } - - /** - * @param Parser $parser the instance that requests parsing - * @param TokensList $list the list of tokens to be parsed - */ - public function parse(Parser $parser, TokensList $list) - { - ++$list->idx; // Skipping `CREATE`. - - // Parsing options. - $this->options = OptionsArray::parse($parser, $list, static::$OPTIONS); - ++$list->idx; // Skipping last option. - - $isDatabase = $this->options->has('DATABASE') || $this->options->has('SCHEMA'); - $fieldName = $isDatabase ? 'database' : 'table'; - - // Parsing the field name. - $this->name = Expression::parse( - $parser, - $list, - [ - 'parseField' => $fieldName, - 'breakOnAlias' => true, - ] - ); - - if (! isset($this->name) || ($this->name === '')) { - $parser->error( - 'The name of the entity was expected.', - $list->tokens[$list->idx] - ); - } else { - ++$list->idx; // Skipping field. - } - - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - $nextidx = $list->idx + 1; - while ($nextidx < $list->count && $list->tokens[$nextidx]->type === Token::TYPE_WHITESPACE) { - ++$nextidx; - } - - if ($isDatabase) { - $this->entityOptions = OptionsArray::parse( - $parser, - $list, - static::$DB_OPTIONS - ); - } elseif ($this->options->has('TABLE')) { - if (($token->type === Token::TYPE_KEYWORD) - && ($token->keyword === 'SELECT')) { - /* CREATE TABLE ... SELECT */ - $this->select = new SelectStatement($parser, $list); - } elseif (($token->type === Token::TYPE_KEYWORD) && ($token->keyword === 'AS') - && ($list->tokens[$nextidx]->type === Token::TYPE_KEYWORD) - && ($list->tokens[$nextidx]->value === 'SELECT')) { - /* CREATE TABLE ... AS SELECT */ - $list->idx = $nextidx; - $this->select = new SelectStatement($parser, $list); - } elseif ($token->type === Token::TYPE_KEYWORD - && $token->keyword === 'LIKE') { - /* CREATE TABLE `new_tbl` LIKE 'orig_tbl' */ - $list->idx = $nextidx; - $this->like = Expression::parse( - $parser, - $list, - [ - 'parseField' => 'table', - 'breakOnAlias' => true, - ] - ); - // The 'LIKE' keyword was found, but no table_name was found next to it - if ($this->like === null) { - $parser->error( - 'A table name was expected.', - $list->tokens[$list->idx] - ); - } - } else { - $this->fields = CreateDefinition::parse($parser, $list); - if (empty($this->fields)) { - $parser->error( - 'At least one column definition was expected.', - $list->tokens[$list->idx] - ); - } - ++$list->idx; - - $this->entityOptions = OptionsArray::parse( - $parser, - $list, - static::$TABLE_OPTIONS - ); - - /** - * The field that is being filled (`partitionBy` or - * `subpartitionBy`). - * - * @var string - */ - $field = null; - - /** - * The number of brackets. `false` means no bracket was found - * previously. At least one bracket is required to validate the - * expression. - * - * @var int|bool - */ - $brackets = false; - - /* - * Handles partitions. - */ - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping comments. - if ($token->type === Token::TYPE_COMMENT) { - continue; - } - - if (($token->type === Token::TYPE_KEYWORD) && ($token->keyword === 'PARTITION BY')) { - $field = 'partitionBy'; - $brackets = false; - } elseif (($token->type === Token::TYPE_KEYWORD) && ($token->keyword === 'SUBPARTITION BY')) { - $field = 'subpartitionBy'; - $brackets = false; - } elseif (($token->type === Token::TYPE_KEYWORD) && ($token->keyword === 'PARTITIONS')) { - $token = $list->getNextOfType(Token::TYPE_NUMBER); - --$list->idx; // `getNextOfType` also advances one position. - $this->partitionsNum = $token->value; - } elseif (($token->type === Token::TYPE_KEYWORD) && ($token->keyword === 'SUBPARTITIONS')) { - $token = $list->getNextOfType(Token::TYPE_NUMBER); - --$list->idx; // `getNextOfType` also advances one position. - $this->subpartitionsNum = $token->value; - } elseif (! empty($field)) { - /* - * Handling the content of `PARTITION BY` and `SUBPARTITION BY`. - */ - - // Counting brackets. - if ($token->type === Token::TYPE_OPERATOR) { - if ($token->value === '(') { - // This is used instead of `++$brackets` because, - // initially, `$brackets` is `false` cannot be - // incremented. - $brackets = $brackets + 1; - } elseif ($token->value === ')') { - --$brackets; - } - } - - // Building the expression used for partitioning. - $this->$field .= $token->type === Token::TYPE_WHITESPACE ? ' ' : $token->token; - - // Last bracket was read, the expression ended. - // Comparing with `0` and not `false`, because `false` means - // that no bracket was found and at least one must is - // required. - if ($brackets === 0) { - $this->$field = trim($this->$field); - $field = null; - } - } elseif (($token->type === Token::TYPE_OPERATOR) && ($token->value === '(')) { - if (! empty($this->partitionBy)) { - $this->partitions = ArrayObj::parse( - $parser, - $list, - [ - 'type' => 'PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition', - ] - ); - } - break; - } - } - } - } elseif ($this->options->has('PROCEDURE') - || $this->options->has('FUNCTION') - ) { - $this->parameters = ParameterDefinition::parse($parser, $list); - if ($this->options->has('FUNCTION')) { - $prev_token = $token; - $token = $list->getNextOfType(Token::TYPE_KEYWORD); - if ($token === null || $token->keyword !== 'RETURNS') { - $parser->error( - 'A "RETURNS" keyword was expected.', - $token ?? $prev_token - ); - } else { - ++$list->idx; - $this->return = DataType::parse( - $parser, - $list - ); - } - } - ++$list->idx; - - $this->entityOptions = OptionsArray::parse( - $parser, - $list, - static::$FUNC_OPTIONS - ); - ++$list->idx; - - for (; $list->idx < $list->count; ++$list->idx) { - $token = $list->tokens[$list->idx]; - $this->body[] = $token; - } - } elseif ($this->options->has('VIEW')) { - $token = $list->getNext(); // Skipping whitespaces and comments. - - // Parsing columns list. - if (($token->type === Token::TYPE_OPERATOR) && ($token->value === '(')) { - --$list->idx; // getNext() also goes forward one field. - $this->fields = ArrayObj::parse($parser, $list); - ++$list->idx; // Skipping last token from the array. - $list->getNext(); - } - - // Parsing the `AS` keyword. - for (; $list->idx < $list->count; ++$list->idx) { - $token = $list->tokens[$list->idx]; - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - $this->body[] = $token; - } - } elseif ($this->options->has('TRIGGER')) { - // Parsing the time and the event. - $this->entityOptions = OptionsArray::parse( - $parser, - $list, - static::$TRIGGER_OPTIONS - ); - ++$list->idx; - - $list->getNextOfTypeAndValue(Token::TYPE_KEYWORD, 'ON'); - ++$list->idx; // Skipping `ON`. - - // Parsing the name of the table. - $this->table = Expression::parse( - $parser, - $list, - [ - 'parseField' => 'table', - 'breakOnAlias' => true, - ] - ); - ++$list->idx; - - $list->getNextOfTypeAndValue(Token::TYPE_KEYWORD, 'FOR EACH ROW'); - ++$list->idx; // Skipping `FOR EACH ROW`. - - for (; $list->idx < $list->count; ++$list->idx) { - $token = $list->tokens[$list->idx]; - $this->body[] = $token; - } - } else { - for (; $list->idx < $list->count; ++$list->idx) { - $token = $list->tokens[$list->idx]; - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - $this->body[] = $token; - } - } - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/DeleteStatement.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/DeleteStatement.php deleted file mode 100644 index 57e100b..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/DeleteStatement.php +++ /dev/null @@ -1,375 +0,0 @@ - 1, - 'QUICK' => 2, - 'IGNORE' => 3, - ]; - - /** - * The clauses of this statement, in order. - * - * @see Statement::$CLAUSES - * - * @var array - */ - public static $CLAUSES = [ - 'DELETE' => [ - 'DELETE', - 2, - ], - // Used for options. - '_OPTIONS' => [ - '_OPTIONS', - 1, - ], - 'FROM' => [ - 'FROM', - 3, - ], - 'PARTITION' => [ - 'PARTITION', - 3, - ], - 'USING' => [ - 'USING', - 3, - ], - 'WHERE' => [ - 'WHERE', - 3, - ], - 'ORDER BY' => [ - 'ORDER BY', - 3, - ], - 'LIMIT' => [ - 'LIMIT', - 3, - ], - ]; - - /** - * Table(s) used as sources for this statement. - * - * @var Expression[] - */ - public $from; - - /** - * Joins. - * - * @var JoinKeyword[] - */ - public $join; - - /** - * Tables used as sources for this statement. - * - * @var Expression[] - */ - public $using; - - /** - * Columns used in this statement. - * - * @var Expression[] - */ - public $columns; - - /** - * Partitions used as source for this statement. - * - * @var ArrayObj - */ - public $partition; - - /** - * Conditions used for filtering each row of the result set. - * - * @var Condition[] - */ - public $where; - - /** - * Specifies the order of the rows in the result set. - * - * @var OrderKeyword[] - */ - public $order; - - /** - * Conditions used for limiting the size of the result set. - * - * @var Limit - */ - public $limit; - - /** - * @return string - */ - public function build() - { - $ret = 'DELETE ' . OptionsArray::build($this->options); - - if ($this->columns !== null && count($this->columns) > 0) { - $ret .= ' ' . ExpressionArray::build($this->columns); - } - if ($this->from !== null && count($this->from) > 0) { - $ret .= ' FROM ' . ExpressionArray::build($this->from); - } - if ($this->join !== null && count($this->join) > 0) { - $ret .= ' ' . JoinKeyword::build($this->join); - } - if ($this->using !== null && count($this->using) > 0) { - $ret .= ' USING ' . ExpressionArray::build($this->using); - } - if ($this->where !== null && count($this->where) > 0) { - $ret .= ' WHERE ' . Condition::build($this->where); - } - if ($this->order !== null && count($this->order) > 0) { - $ret .= ' ORDER BY ' . ExpressionArray::build($this->order); - } - if ($this->limit !== null && strlen((string) $this->limit) > 0) { - $ret .= ' LIMIT ' . Limit::build($this->limit); - } - - return $ret; - } - - /** - * @param Parser $parser the instance that requests parsing - * @param TokensList $list the list of tokens to be parsed - */ - public function parse(Parser $parser, TokensList $list) - { - ++$list->idx; // Skipping `DELETE`. - - // parse any options if provided - $this->options = OptionsArray::parse( - $parser, - $list, - static::$OPTIONS - ); - ++$list->idx; - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 ---------------------------------[ FROM ]----------------------------------> 2 - * 0 ------------------------------[ table[.*] ]--------------------------------> 1 - * 1 ---------------------------------[ FROM ]----------------------------------> 2 - * 2 --------------------------------[ USING ]----------------------------------> 3 - * 2 --------------------------------[ WHERE ]----------------------------------> 4 - * 2 --------------------------------[ ORDER ]----------------------------------> 5 - * 2 --------------------------------[ LIMIT ]----------------------------------> 6 - * - * @var int - */ - $state = 0; - - /** - * If the query is multi-table or not. - * - * @var bool - */ - $multiTable = false; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - if ($state === 0) { - if ($token->type === Token::TYPE_KEYWORD) { - if ($token->keyword !== 'FROM') { - $parser->error('Unexpected keyword.', $token); - break; - } else { - ++$list->idx; // Skip 'FROM' - $this->from = ExpressionArray::parse($parser, $list); - - $state = 2; - } - } else { - $this->columns = ExpressionArray::parse($parser, $list); - $state = 1; - } - } elseif ($state === 1) { - if ($token->type === Token::TYPE_KEYWORD) { - if ($token->keyword !== 'FROM') { - $parser->error('Unexpected keyword.', $token); - break; - } else { - ++$list->idx; // Skip 'FROM' - $this->from = ExpressionArray::parse($parser, $list); - - $state = 2; - } - } else { - $parser->error('Unexpected token.', $token); - break; - } - } elseif ($state === 2) { - if ($token->type === Token::TYPE_KEYWORD) { - if (stripos($token->keyword, 'JOIN') !== false) { - ++$list->idx; - $this->join = JoinKeyword::parse($parser, $list); - - // remain in state = 2 - } else { - switch ($token->keyword) { - case 'USING': - ++$list->idx; // Skip 'USING' - $this->using = ExpressionArray::parse($parser, $list); - $state = 3; - - $multiTable = true; - break; - case 'WHERE': - ++$list->idx; // Skip 'WHERE' - $this->where = Condition::parse($parser, $list); - $state = 4; - break; - case 'ORDER BY': - ++$list->idx; // Skip 'ORDER BY' - $this->order = OrderKeyword::parse($parser, $list); - $state = 5; - break; - case 'LIMIT': - ++$list->idx; // Skip 'LIMIT' - $this->limit = Limit::parse($parser, $list); - $state = 6; - break; - default: - $parser->error('Unexpected keyword.', $token); - break 2; - } - } - } - } elseif ($state === 3) { - if ($token->type === Token::TYPE_KEYWORD) { - if ($token->keyword === 'WHERE') { - ++$list->idx; // Skip 'WHERE' - $this->where = Condition::parse($parser, $list); - $state = 4; - } else { - $parser->error('Unexpected keyword.', $token); - break; - } - } else { - $parser->error('Unexpected token.', $token); - break; - } - } elseif ($state === 4) { - if ($multiTable === true - && $token->type === Token::TYPE_KEYWORD - ) { - $parser->error( - 'This type of clause is not valid in Multi-table queries.', - $token - ); - break; - } - - if ($token->type === Token::TYPE_KEYWORD) { - switch ($token->keyword) { - case 'ORDER BY': - ++$list->idx; // Skip 'ORDER BY' - $this->order = OrderKeyword::parse($parser, $list); - $state = 5; - break; - case 'LIMIT': - ++$list->idx; // Skip 'LIMIT' - $this->limit = Limit::parse($parser, $list); - $state = 6; - break; - default: - $parser->error('Unexpected keyword.', $token); - break 2; - } - } - } elseif ($state === 5) { - if ($token->type === Token::TYPE_KEYWORD) { - if ($token->keyword === 'LIMIT') { - ++$list->idx; // Skip 'LIMIT' - $this->limit = Limit::parse($parser, $list); - $state = 6; - } else { - $parser->error('Unexpected keyword.', $token); - break; - } - } - } - } - - if ($state >= 2) { - foreach ($this->from as $from_expr) { - $from_expr->database = $from_expr->table; - $from_expr->table = $from_expr->column; - $from_expr->column = null; - } - } - - --$list->idx; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/DropStatement.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/DropStatement.php deleted file mode 100644 index 202d5e0..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/DropStatement.php +++ /dev/null @@ -1,82 +0,0 @@ - 1, - 'EVENT' => 1, - 'FUNCTION' => 1, - 'INDEX' => 1, - 'LOGFILE' => 1, - 'PROCEDURE' => 1, - 'SCHEMA' => 1, - 'SERVER' => 1, - 'TABLE' => 1, - 'VIEW' => 1, - 'TABLESPACE' => 1, - 'TRIGGER' => 1, - 'USER' => 1, - - 'TEMPORARY' => 2, - 'IF EXISTS' => 3, - ]; - - /** - * The clauses of this statement, in order. - * - * @see Statement::$CLAUSES - * - * @var array - */ - public static $CLAUSES = [ - 'DROP' => [ - 'DROP', - 2, - ], - // Used for options. - '_OPTIONS' => [ - '_OPTIONS', - 1, - ], - // Used for select expressions. - 'DROP_' => [ - 'DROP', - 1, - ], - 'ON' => [ - 'ON', - 3, - ], - ]; - - /** - * Dropped elements. - * - * @var Expression[] - */ - public $fields; - - /** - * Table of the dropped index. - * - * @var Expression - */ - public $table; -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/ExplainStatement.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/ExplainStatement.php deleted file mode 100644 index 15e6add..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/ExplainStatement.php +++ /dev/null @@ -1,14 +0,0 @@ - 1, - 'DELAYED' => 2, - 'HIGH_PRIORITY' => 3, - 'IGNORE' => 4, - ]; - - /** - * Tables used as target for this statement. - * - * @var IntoKeyword - */ - public $into; - - /** - * Values to be inserted. - * - * @var ArrayObj[]|null - */ - public $values; - - /** - * If SET clause is present - * holds the SetOperation. - * - * @var SetOperation[] - */ - public $set; - - /** - * If SELECT clause is present - * holds the SelectStatement. - * - * @var SelectStatement - */ - public $select; - - /** - * If ON DUPLICATE KEY UPDATE clause is present - * holds the SetOperation. - * - * @var SetOperation[] - */ - public $onDuplicateSet; - - /** - * @return string - */ - public function build() - { - $ret = 'INSERT ' . $this->options; - $ret = trim($ret) . ' INTO ' . $this->into; - - if ($this->values !== null && count($this->values) > 0) { - $ret .= ' VALUES ' . Array2d::build($this->values); - } elseif ($this->set !== null && count($this->set) > 0) { - $ret .= ' SET ' . SetOperation::build($this->set); - } elseif ($this->select !== null && strlen((string) $this->select) > 0) { - $ret .= ' ' . $this->select->build(); - } - - if ($this->onDuplicateSet !== null && count($this->onDuplicateSet) > 0) { - $ret .= ' ON DUPLICATE KEY UPDATE ' . SetOperation::build($this->onDuplicateSet); - } - - return $ret; - } - - /** - * @param Parser $parser the instance that requests parsing - * @param TokensList $list the list of tokens to be parsed - */ - public function parse(Parser $parser, TokensList $list) - { - ++$list->idx; // Skipping `INSERT`. - - // parse any options if provided - $this->options = OptionsArray::parse( - $parser, - $list, - static::$OPTIONS - ); - ++$list->idx; - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 ---------------------------------[ INTO ]----------------------------------> 1 - * - * 1 -------------------------[ VALUES/VALUE/SET/SELECT ]-----------------------> 2 - * - * 2 -------------------------[ ON DUPLICATE KEY UPDATE ]-----------------------> 3 - * - * @var int - */ - $state = 0; - - /** - * For keeping track of semi-states on encountering - * ON DUPLICATE KEY UPDATE ... - */ - $miniState = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if ($state === 0) { - if ($token->type === Token::TYPE_KEYWORD - && $token->keyword !== 'INTO' - ) { - $parser->error('Unexpected keyword.', $token); - break; - } - - ++$list->idx; - $this->into = IntoKeyword::parse( - $parser, - $list, - ['fromInsert' => true] - ); - - $state = 1; - } elseif ($state === 1) { - if ($token->type === Token::TYPE_KEYWORD) { - if ($token->keyword === 'VALUE' - || $token->keyword === 'VALUES' - ) { - ++$list->idx; // skip VALUES - - $this->values = Array2d::parse($parser, $list); - } elseif ($token->keyword === 'SET') { - ++$list->idx; // skip SET - - $this->set = SetOperation::parse($parser, $list); - } elseif ($token->keyword === 'SELECT') { - $this->select = new SelectStatement($parser, $list); - } else { - $parser->error( - 'Unexpected keyword.', - $token - ); - break; - } - $state = 2; - $miniState = 1; - } else { - $parser->error( - 'Unexpected token.', - $token - ); - break; - } - } elseif ($state === 2) { - $lastCount = $miniState; - - if ($miniState === 1 && $token->keyword === 'ON') { - ++$miniState; - } elseif ($miniState === 2 && $token->keyword === 'DUPLICATE') { - ++$miniState; - } elseif ($miniState === 3 && $token->keyword === 'KEY') { - ++$miniState; - } elseif ($miniState === 4 && $token->keyword === 'UPDATE') { - ++$miniState; - } - - if ($lastCount === $miniState) { - $parser->error( - 'Unexpected token.', - $token - ); - break; - } - - if ($miniState === 5) { - ++$list->idx; - $this->onDuplicateSet = SetOperation::parse($parser, $list); - $state = 3; - } - } - } - - --$list->idx; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/LoadStatement.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/LoadStatement.php deleted file mode 100644 index 62ef50f..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/LoadStatement.php +++ /dev/null @@ -1,418 +0,0 @@ - 1, - 'CONCURRENT' => 1, - 'LOCAL' => 2, - ]; - - /** - * FIELDS/COLUMNS Options for `LOAD DATA...INFILE` statements. - * - * @var array - */ - public static $FIELDS_OPTIONS = [ - 'TERMINATED BY' => [ - 1, - 'expr', - ], - 'OPTIONALLY' => 2, - 'ENCLOSED BY' => [ - 3, - 'expr', - ], - 'ESCAPED BY' => [ - 4, - 'expr', - ], - ]; - - /** - * LINES Options for `LOAD DATA...INFILE` statements. - * - * @var array - */ - public static $LINES_OPTIONS = [ - 'STARTING BY' => [ - 1, - 'expr', - ], - 'TERMINATED BY' => [ - 2, - 'expr', - ], - ]; - - /** - * File name being used to load data. - * - * @var Expression - */ - public $file_name; - - /** - * Table used as destination for this statement. - * - * @var Expression - */ - public $table; - - /** - * Partitions used as source for this statement. - * - * @var ArrayObj - */ - public $partition; - - /** - * Character set used in this statement. - * - * @var Expression - */ - public $charset_name; - - /** - * Options for FIELDS/COLUMNS keyword. - * - * @see static::$FIELDS_OPTIONS - * - * @var OptionsArray - */ - public $fields_options; - - /** - * Whether to use `FIELDS` or `COLUMNS` while building. - * - * @var string - */ - public $fields_keyword; - - /** - * Options for OPTIONS keyword. - * - * @see static::$LINES_OPTIONS - * - * @var OptionsArray - */ - public $lines_options; - - /** - * Column names or user variables. - * - * @var Expression[] - */ - public $col_name_or_user_var; - - /** - * SET clause's updated values(optional). - * - * @var SetOperation[] - */ - public $set; - - /** - * Ignore 'number' LINES/ROWS. - * - * @var Expression - */ - public $ignore_number; - - /** - * REPLACE/IGNORE Keyword. - * - * @var string - */ - public $replace_ignore; - - /** - * LINES/ROWS Keyword. - * - * @var string - */ - public $lines_rows; - - /** - * @return string - */ - public function build() - { - $ret = 'LOAD DATA ' . $this->options - . ' INFILE ' . $this->file_name; - - if ($this->replace_ignore !== null) { - $ret .= ' ' . trim($this->replace_ignore); - } - - $ret .= ' INTO TABLE ' . $this->table; - - if ($this->partition !== null && strlen((string) $this->partition) > 0) { - $ret .= ' PARTITION ' . ArrayObj::build($this->partition); - } - - if ($this->charset_name !== null) { - $ret .= ' CHARACTER SET ' . $this->charset_name; - } - - if ($this->fields_keyword !== null) { - $ret .= ' ' . $this->fields_keyword . ' ' . $this->fields_options; - } - - if ($this->lines_options !== null && strlen((string) $this->lines_options) > 0) { - $ret .= ' LINES ' . $this->lines_options; - } - - if ($this->ignore_number !== null) { - $ret .= ' IGNORE ' . $this->ignore_number . ' ' . $this->lines_rows; - } - - if ($this->col_name_or_user_var !== null && count($this->col_name_or_user_var) > 0) { - $ret .= ' ' . ExpressionArray::build($this->col_name_or_user_var); - } - - if ($this->set !== null && count($this->set) > 0) { - $ret .= ' SET ' . SetOperation::build($this->set); - } - - return $ret; - } - - /** - * @param Parser $parser the instance that requests parsing - * @param TokensList $list the list of tokens to be parsed - */ - public function parse(Parser $parser, TokensList $list) - { - ++$list->idx; // Skipping `LOAD DATA`. - - // parse any options if provided - $this->options = OptionsArray::parse( - $parser, - $list, - static::$OPTIONS - ); - ++$list->idx; - - /** - * The state of the parser. - * - * @var int - */ - $state = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if ($state === 0) { - if ($token->type === Token::TYPE_KEYWORD - && $token->keyword !== 'INFILE' - ) { - $parser->error('Unexpected keyword.', $token); - break; - } elseif ($token->type !== Token::TYPE_KEYWORD) { - $parser->error('Unexpected token.', $token); - break; - } - - ++$list->idx; - $this->file_name = Expression::parse( - $parser, - $list, - ['parseField' => 'file'] - ); - $state = 1; - } elseif ($state === 1) { - if ($token->type === Token::TYPE_KEYWORD) { - if ($token->keyword === 'REPLACE' - || $token->keyword === 'IGNORE') { - $this->replace_ignore = trim($token->keyword); - } elseif ($token->keyword === 'INTO') { - $state = 2; - } - } - } elseif ($state === 2) { - if ($token->type === Token::TYPE_KEYWORD - && $token->keyword === 'TABLE' - ) { - ++$list->idx; - $this->table = Expression::parse($parser, $list, ['parseField' => 'table']); - $state = 3; - } else { - $parser->error('Unexpected token.', $token); - break; - } - } elseif ($state >= 3 && $state <= 7) { - if ($token->type === Token::TYPE_KEYWORD) { - $newState = $this->parseKeywordsAccordingToState( - $parser, - $list, - $state - ); - if ($newState === $state) { - // Avoid infinite loop - break; - } - } elseif ($token->type === Token::TYPE_OPERATOR - && $token->token === '(' - ) { - $this->col_name_or_user_var - = ExpressionArray::parse($parser, $list); - $state = 7; - } else { - $parser->error('Unexpected token.', $token); - break; - } - } - } - - --$list->idx; - } - - public function parseFileOptions(Parser $parser, TokensList $list, $keyword = 'FIELDS') - { - ++$list->idx; - - if ($keyword === 'FIELDS' || $keyword === 'COLUMNS') { - // parse field options - $this->fields_options = OptionsArray::parse( - $parser, - $list, - static::$FIELDS_OPTIONS - ); - - $this->fields_keyword = $keyword; - } else { - // parse line options - $this->lines_options = OptionsArray::parse( - $parser, - $list, - static::$LINES_OPTIONS - ); - } - } - - public function parseKeywordsAccordingToState($parser, $list, $state) - { - $token = $list->tokens[$list->idx]; - - switch ($state) { - case 3: - if ($token->keyword === 'PARTITION') { - ++$list->idx; - $this->partition = ArrayObj::parse($parser, $list); - $state = 4; - - return $state; - } - // no break - case 4: - if ($token->keyword === 'CHARACTER SET') { - ++$list->idx; - $this->charset_name = Expression::parse($parser, $list); - $state = 5; - - return $state; - } - // no break - case 5: - if ($token->keyword === 'FIELDS' - || $token->keyword === 'COLUMNS' - || $token->keyword === 'LINES' - ) { - $this->parseFileOptions($parser, $list, $token->value); - $state = 6; - - return $state; - } - // no break - case 6: - if ($token->keyword === 'IGNORE') { - ++$list->idx; - - $this->ignore_number = Expression::parse($parser, $list); - $nextToken = $list->getNextOfType(Token::TYPE_KEYWORD); - - if ($nextToken->type === Token::TYPE_KEYWORD - && (($nextToken->keyword === 'LINES') - || ($nextToken->keyword === 'ROWS')) - ) { - $this->lines_rows = $nextToken->token; - } - $state = 7; - - return $state; - } - // no break - case 7: - if ($token->keyword === 'SET') { - ++$list->idx; - $this->set = SetOperation::parse($parser, $list); - $state = 8; - - return $state; - } - // no break - default: - } - - return $state; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/LockStatement.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/LockStatement.php deleted file mode 100644 index 6444586..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/LockStatement.php +++ /dev/null @@ -1,124 +0,0 @@ -tokens[$list->idx]->value === 'UNLOCK') { - // this is in fact an UNLOCK statement - $this->isLock = false; - } - ++$list->idx; // Skipping `LOCK`. - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 ---------------- [ TABLES ] -----------------> 1 - * 1 -------------- [ lock_expr ] ----------------> 2 - * 2 ------------------ [ , ] --------------------> 1 - * - * @var int - */ - $state = 0; - - /** - * Previous parsed token - */ - $prevToken = null; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if ($state === 0) { - if ($token->type === Token::TYPE_KEYWORD) { - if ($token->keyword !== 'TABLES') { - $parser->error('Unexpected keyword.', $token); - break; - } - $state = 1; - continue; - } else { - $parser->error('Unexpected token.', $token); - break; - } - } elseif ($state === 1) { - if (! $this->isLock) { - // UNLOCK statement should not have any more tokens - $parser->error('Unexpected token.', $token); - break; - } - $this->locked[] = LockExpression::parse($parser, $list); - $state = 2; - } elseif ($state === 2) { - if ($token->value === ',') { - // move over to parsing next lock expression - $state = 1; - } - } - - $prevToken = $token; - } - - if ($state !== 2 && $prevToken != null) { - $parser->error('Unexpected end of LOCK statement.', $prevToken); - } - } - - /** - * @return string - */ - public function build() - { - return trim(($this->isLock ? 'LOCK' : 'UNLOCK') - . ' TABLES ' . LockExpression::build($this->locked)); - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/MaintenanceStatement.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/MaintenanceStatement.php deleted file mode 100644 index 273188f..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/MaintenanceStatement.php +++ /dev/null @@ -1,57 +0,0 @@ -idx; - $this->options->merge( - OptionsArray::parse( - $parser, - $list, - static::$OPTIONS - ) - ); - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/NotImplementedStatement.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/NotImplementedStatement.php deleted file mode 100644 index dae6f85..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/NotImplementedStatement.php +++ /dev/null @@ -1,57 +0,0 @@ -unknown as $token) { - $query .= $token->token; - } - - return $query; - } - - /** - * @param Parser $parser the instance that requests parsing - * @param TokensList $list the list of tokens to be parsed - */ - public function parse(Parser $parser, TokensList $list) - { - for (; $list->idx < $list->count; ++$list->idx) { - if ($list->tokens[$list->idx]->type === Token::TYPE_DELIMITER) { - break; - } - $this->unknown[] = $list->tokens[$list->idx]; - } - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/OptimizeStatement.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/OptimizeStatement.php deleted file mode 100644 index c9c4979..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/OptimizeStatement.php +++ /dev/null @@ -1,38 +0,0 @@ - 1, - - 'NO_WRITE_TO_BINLOG' => 2, - 'LOCAL' => 3, - ]; - - /** - * Optimized tables. - * - * @var Expression[] - */ - public $tables; -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/PurgeStatement.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/PurgeStatement.php deleted file mode 100644 index 1f74f42..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/PurgeStatement.php +++ /dev/null @@ -1,139 +0,0 @@ -log_type . ' LOGS ' - . ($this->end_option !== null ? ($this->end_option . ' ' . $this->end_expr) : ''); - return trim($ret); - } - - /** - * @param Parser $parser the instance that requests parsing - * @param TokensList $list the list of tokens to be parsed - */ - public function parse(Parser $parser, TokensList $list) - { - ++$list->idx; // Skipping `PURGE`. - - /** - * The state of the parser. - * - * @var int - */ - $state = 0; - - $prevToken = null; - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - switch ($state) { - case 0: - // parse `{ BINARY | MASTER }` - $this->log_type = self::parseExpectedKeyword($parser, $token, ['BINARY', 'MASTER']); - break; - case 1: - // parse `LOGS` - self::parseExpectedKeyword($parser, $token, ['LOGS']); - break; - case 2: - // parse `{ TO | BEFORE }` - $this->end_option = self::parseExpectedKeyword($parser, $token, ['TO', 'BEFORE']); - break; - case 3: - // parse `expr` - $this->end_expr = Expression::parse($parser, $list, []); - break; - default: - $parser->error('Unexpected token.', $token); - break; - } - $state++; - $prevToken = $token; - } - - // Only one possible end state - if ($state != 4) { - $parser->error('Unexpected token.', $prevToken); - } - } - - /** - * Parse expected keyword (or throw relevant error) - * - * @param Parser $parser the instance that requests parsing - * @param Token $token token to be parsed - * @param Array $expected_keywords array of possibly expected keywords at this point - */ - private static function parseExpectedKeyword($parser, $token, $expected_keywords) - { - if ($token->type === Token::TYPE_KEYWORD) { - if (in_array($token->keyword, $expected_keywords)) { - return $token->keyword; - } else { - $parser->error('Unexpected keyword', $token); - } - } else { - $parser->error('Unexpected token.', $token); - } - return null; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/RenameStatement.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/RenameStatement.php deleted file mode 100644 index 6e3d0ec..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/RenameStatement.php +++ /dev/null @@ -1,54 +0,0 @@ -type === Token::TYPE_KEYWORD) && ($token->keyword === 'RENAME')) { - // Checking if it is the beginning of the query. - $list->getNextOfTypeAndValue(Token::TYPE_KEYWORD, 'TABLE'); - } - } - - /** - * @return string - */ - public function build() - { - return 'RENAME TABLE ' . RenameOperation::build($this->renames); - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/RepairStatement.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/RepairStatement.php deleted file mode 100644 index ee96e3b..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/RepairStatement.php +++ /dev/null @@ -1,33 +0,0 @@ - 1, - - 'NO_WRITE_TO_BINLOG' => 2, - 'LOCAL' => 3, - - 'QUICK' => 4, - 'EXTENDED' => 5, - 'USE_FRM' => 6, - ]; -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/ReplaceStatement.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/ReplaceStatement.php deleted file mode 100644 index 132eef8..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/ReplaceStatement.php +++ /dev/null @@ -1,197 +0,0 @@ - 1, - 'DELAYED' => 1, - ]; - - /** - * Tables used as target for this statement. - * - * @var IntoKeyword - */ - public $into; - - /** - * Values to be replaced. - * - * @var Array2d - */ - public $values; - - /** - * If SET clause is present - * holds the SetOperation. - * - * @var SetOperation[] - */ - public $set; - - /** - * If SELECT clause is present - * holds the SelectStatement. - * - * @var SelectStatement - */ - public $select; - - /** - * @return string - */ - public function build() - { - $ret = 'REPLACE ' . $this->options; - $ret = trim($ret) . ' INTO ' . $this->into; - - if ($this->values !== null && count($this->values) > 0) { - $ret .= ' VALUES ' . Array2d::build($this->values); - } elseif ($this->set !== null && count($this->set) > 0) { - $ret .= ' SET ' . SetOperation::build($this->set); - } elseif ($this->select !== null && strlen((string) $this->select) > 0) { - $ret .= ' ' . $this->select->build(); - } - - return $ret; - } - - /** - * @param Parser $parser the instance that requests parsing - * @param TokensList $list the list of tokens to be parsed - */ - public function parse(Parser $parser, TokensList $list) - { - ++$list->idx; // Skipping `REPLACE`. - - // parse any options if provided - $this->options = OptionsArray::parse( - $parser, - $list, - static::$OPTIONS - ); - - ++$list->idx; - - /** - * The state of the parser. - * - * Below are the states of the parser. - * - * 0 ---------------------------------[ INTO ]----------------------------------> 1 - * - * 1 -------------------------[ VALUES/VALUE/SET/SELECT ]-----------------------> 2 - * - * @var int - */ - $state = 0; - - for (; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $token = $list->tokens[$list->idx]; - - // End of statement. - if ($token->type === Token::TYPE_DELIMITER) { - break; - } - - // Skipping whitespaces and comments. - if (($token->type === Token::TYPE_WHITESPACE) || ($token->type === Token::TYPE_COMMENT)) { - continue; - } - - if ($state === 0) { - if ($token->type === Token::TYPE_KEYWORD - && $token->keyword !== 'INTO' - ) { - $parser->error('Unexpected keyword.', $token); - break; - } - ++$list->idx; - $this->into = IntoKeyword::parse( - $parser, - $list, - ['fromReplace' => true] - ); - - $state = 1; - } elseif ($state === 1) { - if ($token->type === Token::TYPE_KEYWORD) { - if ($token->keyword === 'VALUE' - || $token->keyword === 'VALUES' - ) { - ++$list->idx; // skip VALUES - - $this->values = Array2d::parse($parser, $list); - } elseif ($token->keyword === 'SET') { - ++$list->idx; // skip SET - - $this->set = SetOperation::parse($parser, $list); - } elseif ($token->keyword === 'SELECT') { - $this->select = new SelectStatement($parser, $list); - } else { - $parser->error( - 'Unexpected keyword.', - $token - ); - break; - } - $state = 2; - } else { - $parser->error( - 'Unexpected token.', - $token - ); - break; - } - } - } - - --$list->idx; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/RestoreStatement.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/RestoreStatement.php deleted file mode 100644 index 72b2ea2..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/RestoreStatement.php +++ /dev/null @@ -1,29 +0,0 @@ - 1, - - 'FROM' => [ - 2, - 'var', - ], - ]; -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/SelectStatement.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/SelectStatement.php deleted file mode 100644 index 4fecd90..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/SelectStatement.php +++ /dev/null @@ -1,347 +0,0 @@ - 1, - 'DISTINCT' => 1, - 'DISTINCTROW' => 1, - 'HIGH_PRIORITY' => 2, - 'MAX_STATEMENT_TIME' => [ - 3, - 'var=', - ], - 'STRAIGHT_JOIN' => 4, - 'SQL_SMALL_RESULT' => 5, - 'SQL_BIG_RESULT' => 6, - 'SQL_BUFFER_RESULT' => 7, - 'SQL_CACHE' => 8, - 'SQL_NO_CACHE' => 8, - 'SQL_CALC_FOUND_ROWS' => 9, - ]; - - public static $END_OPTIONS = [ - 'FOR UPDATE' => 1, - 'LOCK IN SHARE MODE' => 1, - ]; - - /** - * The clauses of this statement, in order. - * - * @see Statement::$CLAUSES - * - * @var array - */ - public static $CLAUSES = [ - 'SELECT' => [ - 'SELECT', - 2, - ], - // Used for options. - '_OPTIONS' => [ - '_OPTIONS', - 1, - ], - // Used for selected expressions. - '_SELECT' => [ - 'SELECT', - 1, - ], - 'INTO' => [ - 'INTO', - 3, - ], - 'FROM' => [ - 'FROM', - 3, - ], - 'FORCE' => [ - 'FORCE', - 1, - ], - 'USE' => [ - 'USE', - 1, - ], - 'IGNORE' => [ - 'IGNORE', - 3, - ], - 'PARTITION' => [ - 'PARTITION', - 3, - ], - - 'JOIN' => [ - 'JOIN', - 1, - ], - 'FULL JOIN' => [ - 'FULL JOIN', - 1, - ], - 'INNER JOIN' => [ - 'INNER JOIN', - 1, - ], - 'LEFT JOIN' => [ - 'LEFT JOIN', - 1, - ], - 'LEFT OUTER JOIN' => [ - 'LEFT OUTER JOIN', - 1, - ], - 'RIGHT JOIN' => [ - 'RIGHT JOIN', - 1, - ], - 'RIGHT OUTER JOIN' => [ - 'RIGHT OUTER JOIN', - 1, - ], - 'NATURAL JOIN' => [ - 'NATURAL JOIN', - 1, - ], - 'NATURAL LEFT JOIN' => [ - 'NATURAL LEFT JOIN', - 1, - ], - 'NATURAL RIGHT JOIN' => [ - 'NATURAL RIGHT JOIN', - 1, - ], - 'NATURAL LEFT OUTER JOIN' => [ - 'NATURAL LEFT OUTER JOIN', - 1, - ], - 'NATURAL RIGHT OUTER JOIN' => [ - 'NATURAL RIGHT JOIN', - 1, - ], - - 'WHERE' => [ - 'WHERE', - 3, - ], - 'GROUP BY' => [ - 'GROUP BY', - 3, - ], - 'HAVING' => [ - 'HAVING', - 3, - ], - 'ORDER BY' => [ - 'ORDER BY', - 3, - ], - 'LIMIT' => [ - 'LIMIT', - 3, - ], - 'PROCEDURE' => [ - 'PROCEDURE', - 3, - ], - 'UNION' => [ - 'UNION', - 1, - ], - 'EXCEPT' => [ - 'EXCEPT', - 1, - ], - 'INTERSECT' => [ - 'INTERSECT', - 1, - ], - '_END_OPTIONS' => [ - '_END_OPTIONS', - 1, - ], - // These are available only when `UNION` is present. - // 'ORDER BY' => ['ORDER BY', 3], - // 'LIMIT' => ['LIMIT', 3], - ]; - - /** - * Expressions that are being selected by this statement. - * - * @var Expression[] - */ - public $expr = []; - - /** - * Tables used as sources for this statement. - * - * @var Expression[] - */ - public $from = []; - - /** - * Index hints - * - * @var IndexHint[] - */ - public $index_hints; - - /** - * Partitions used as source for this statement. - * - * @var ArrayObj - */ - public $partition; - - /** - * Conditions used for filtering each row of the result set. - * - * @var Condition[] - */ - public $where; - - /** - * Conditions used for grouping the result set. - * - * @var OrderKeyword[] - */ - public $group; - - /** - * Conditions used for filtering the result set. - * - * @var Condition[] - */ - public $having; - - /** - * Specifies the order of the rows in the result set. - * - * @var OrderKeyword[] - */ - public $order; - - /** - * Conditions used for limiting the size of the result set. - * - * @var Limit - */ - public $limit; - - /** - * Procedure that should process the data in the result set. - * - * @var FunctionCall - */ - public $procedure; - - /** - * Destination of this result set. - * - * @var IntoKeyword - */ - public $into; - - /** - * Joins. - * - * @var JoinKeyword[] - */ - public $join; - - /** - * Unions. - * - * @var SelectStatement[] - */ - public $union = []; - - /** - * The end options of this query. - * - * @see static::$END_OPTIONS - * - * @var OptionsArray - */ - public $end_options; - - /** - * Gets the clauses of this statement. - * - * @return array - */ - public function getClauses() - { - // This is a cheap fix for `SELECT` statements that contain `UNION`. - // The `ORDER BY` and `LIMIT` clauses should be at the end of the - // statement. - if (! empty($this->union)) { - $clauses = static::$CLAUSES; - unset($clauses['ORDER BY'], $clauses['LIMIT']); - $clauses['ORDER BY'] = [ - 'ORDER BY', - 3, - ]; - $clauses['LIMIT'] = [ - 'LIMIT', - 3, - ]; - - return $clauses; - } - - return static::$CLAUSES; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/SetStatement.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/SetStatement.php deleted file mode 100644 index 80a1dc7..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/SetStatement.php +++ /dev/null @@ -1,110 +0,0 @@ - [ - 'SET', - 3, - ], - '_END_OPTIONS' => [ - '_END_OPTIONS', - 1, - ], - ]; - - /** - * Possible exceptions in SET statment. - * - * @var array - */ - public static $OPTIONS = [ - 'CHARSET' => [ - 3, - 'var', - ], - 'CHARACTER SET' => [ - 3, - 'var', - ], - 'NAMES' => [ - 3, - 'var', - ], - 'PASSWORD' => [ - 3, - 'expr', - ], - 'SESSION' => 3, - 'GLOBAL' => 3, - 'PERSIST' => 3, - 'PERSIST_ONLY' => 3, - '@@SESSION' => 3, - '@@GLOBAL' => 3, - '@@PERSIST' => 3, - '@@PERSIST_ONLY' => 3, - ]; - - public static $END_OPTIONS = [ - 'COLLATE' => [ - 1, - 'var', - ], - 'DEFAULT' => 1, - ]; - - /** - * Options used in current statement. - * - * @var OptionsArray[] - */ - public $options; - - /** - * The end options of this query. - * - * @see static::$END_OPTIONS - * - * @var OptionsArray - */ - public $end_options; - - /** - * The updated values. - * - * @var SetOperation[] - */ - public $set; - - /** - * @return string - */ - public function build() - { - $ret = 'SET ' . OptionsArray::build($this->options) - . ' ' . SetOperation::build($this->set) - . ' ' . OptionsArray::build($this->end_options); - - return trim($ret); - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/ShowStatement.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/ShowStatement.php deleted file mode 100644 index 266b74e..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/ShowStatement.php +++ /dev/null @@ -1,62 +0,0 @@ - 1, - 'AUTHORS' => 2, - 'BINARY' => 2, - 'BINLOG' => 2, - 'CHARACTER' => 2, - 'CODE' => 2, - 'COLLATION' => 2, - 'COLUMNS' => 2, - 'CONTRIBUTORS' => 2, - 'DATABASE' => 2, - 'DATABASES' => 2, - 'ENGINE' => 2, - 'ENGINES' => 2, - 'ERRORS' => 2, - 'EVENT' => 2, - 'EVENTS' => 2, - 'FUNCTION' => 2, - 'GRANTS' => 2, - 'HOSTS' => 2, - 'INDEX' => 2, - 'INNODB' => 2, - 'LOGS' => 2, - 'MASTER' => 2, - 'OPEN' => 2, - 'PLUGINS' => 2, - 'PRIVILEGES' => 2, - 'PROCEDURE' => 2, - 'PROCESSLIST' => 2, - 'PROFILE' => 2, - 'PROFILES' => 2, - 'SCHEDULER' => 2, - 'SET' => 2, - 'SLAVE' => 2, - 'STATUS' => 2, - 'TABLE' => 2, - 'TABLES' => 2, - 'TRIGGER' => 2, - 'TRIGGERS' => 2, - 'VARIABLES' => 2, - 'VIEW' => 2, - 'WARNINGS' => 2, - ]; -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/TransactionStatement.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/TransactionStatement.php deleted file mode 100644 index f47f86f..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/TransactionStatement.php +++ /dev/null @@ -1,110 +0,0 @@ - 1, - 'BEGIN' => 1, - 'COMMIT' => 1, - 'ROLLBACK' => 1, - 'WITH CONSISTENT SNAPSHOT' => 2, - 'WORK' => 2, - 'AND NO CHAIN' => 3, - 'AND CHAIN' => 3, - 'RELEASE' => 4, - 'NO RELEASE' => 4, - ]; - - /** - * @param Parser $parser the instance that requests parsing - * @param TokensList $list the list of tokens to be parsed - */ - public function parse(Parser $parser, TokensList $list) - { - parent::parse($parser, $list); - - // Checks the type of this query. - if ($this->options->has('START TRANSACTION') - || $this->options->has('BEGIN') - ) { - $this->type = self::TYPE_BEGIN; - } elseif ($this->options->has('COMMIT') - || $this->options->has('ROLLBACK') - ) { - $this->type = self::TYPE_END; - } - } - - /** - * @return string - */ - public function build() - { - $ret = OptionsArray::build($this->options); - if ($this->type === self::TYPE_BEGIN) { - foreach ($this->statements as $statement) { - /* - * @var SelectStatement $statement - */ - $ret .= ';' . $statement->build(); - } - $ret .= ';' . $this->end->build(); - } - - return $ret; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/TruncateStatement.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/TruncateStatement.php deleted file mode 100644 index 9397573..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/TruncateStatement.php +++ /dev/null @@ -1,42 +0,0 @@ - 1, - ]; - - /** - * The name of the truncated table. - * - * @var Expression - */ - public $table; - - /** - * Special build method for truncate statement as Statement::build would return empty string. - * - * @return string - */ - public function build() - { - return 'TRUNCATE TABLE ' . $this->table . ';'; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/UpdateStatement.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/UpdateStatement.php deleted file mode 100644 index 82adeb1..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Statements/UpdateStatement.php +++ /dev/null @@ -1,117 +0,0 @@ - 1, - 'IGNORE' => 2, - ]; - - /** - * The clauses of this statement, in order. - * - * @see Statement::$CLAUSES - * - * @var array - */ - public static $CLAUSES = [ - 'UPDATE' => [ - 'UPDATE', - 2, - ], - // Used for options. - '_OPTIONS' => [ - '_OPTIONS', - 1, - ], - // Used for updated tables. - '_UPDATE' => [ - 'UPDATE', - 1, - ], - 'SET' => [ - 'SET', - 3, - ], - 'WHERE' => [ - 'WHERE', - 3, - ], - 'ORDER BY' => [ - 'ORDER BY', - 3, - ], - 'LIMIT' => [ - 'LIMIT', - 3, - ], - ]; - - /** - * Tables used as sources for this statement. - * - * @var Expression[] - */ - public $tables; - - /** - * The updated values. - * - * @var SetOperation[] - */ - public $set; - - /** - * Conditions used for filtering each row of the result set. - * - * @var Condition[] - */ - public $where; - - /** - * Specifies the order of the rows in the result set. - * - * @var OrderKeyword[] - */ - public $order; - - /** - * Conditions used for limiting the size of the result set. - * - * @var Limit - */ - public $limit; -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Token.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Token.php deleted file mode 100644 index 23d1645..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Token.php +++ /dev/null @@ -1,340 +0,0 @@ -, !==, etc. - * Bitwise operators: &, |, ^, etc. - * Assignment operators: =, +=, -=, etc. - * SQL specific operators: . (e.g. .. WHERE database.table ..), - * * (e.g. SELECT * FROM ..) - * - * @var int - */ - const TYPE_OPERATOR = 2; - - /** - * Spaces, tabs, new lines, etc. - * - * @var int - */ - const TYPE_WHITESPACE = 3; - - /** - * Any type of legal comment. - * - * Bash (#), C (/* *\/) or SQL (--) comments: - * - * -- SQL-comment - * - * #Bash-like comment - * - * /*C-like comment*\/ - * - * or: - * - * /*C-like - * comment*\/ - * - * Backslashes were added to respect PHP's comments syntax. - * - * @var int - */ - const TYPE_COMMENT = 4; - - /** - * Boolean values: true or false. - * - * @var int - */ - const TYPE_BOOL = 5; - - /** - * Numbers: 4, 0x8, 15.16, 23e42, etc. - * - * @var int - */ - const TYPE_NUMBER = 6; - - /** - * Literal strings: 'string', "test". - * Some of these strings are actually symbols. - * - * @var int - */ - const TYPE_STRING = 7; - - /** - * Database, table names, variables, etc. - * For example: ```SELECT `foo`, `bar` FROM `database`.`table`;```. - * - * @var int - */ - const TYPE_SYMBOL = 8; - - /** - * Delimits an unknown string. - * For example: ```SELECT * FROM test;```, `test` is a delimiter. - * - * @var int - */ - const TYPE_DELIMITER = 9; - - /** - * Labels in LOOP statement, ITERATE statement etc. - * For example (only for begin label): - * begin_label: BEGIN [statement_list] END [end_label] - * begin_label: LOOP [statement_list] END LOOP [end_label] - * begin_label: REPEAT [statement_list] ... END REPEAT [end_label] - * begin_label: WHILE ... DO [statement_list] END WHILE [end_label]. - * - * @var int - */ - const TYPE_LABEL = 10; - - // Flags that describe the tokens in more detail. - // All keywords must have flag 1 so `Context::isKeyword` method doesn't - // require strict comparison. - const FLAG_KEYWORD_RESERVED = 2; - const FLAG_KEYWORD_COMPOSED = 4; - const FLAG_KEYWORD_DATA_TYPE = 8; - const FLAG_KEYWORD_KEY = 16; - const FLAG_KEYWORD_FUNCTION = 32; - - // Numbers related flags. - const FLAG_NUMBER_HEX = 1; - const FLAG_NUMBER_FLOAT = 2; - const FLAG_NUMBER_APPROXIMATE = 4; - const FLAG_NUMBER_NEGATIVE = 8; - const FLAG_NUMBER_BINARY = 16; - - // Strings related flags. - const FLAG_STRING_SINGLE_QUOTES = 1; - const FLAG_STRING_DOUBLE_QUOTES = 2; - - // Comments related flags. - const FLAG_COMMENT_BASH = 1; - const FLAG_COMMENT_C = 2; - const FLAG_COMMENT_SQL = 4; - const FLAG_COMMENT_MYSQL_CMD = 8; - - // Operators related flags. - const FLAG_OPERATOR_ARITHMETIC = 1; - const FLAG_OPERATOR_LOGICAL = 2; - const FLAG_OPERATOR_BITWISE = 4; - const FLAG_OPERATOR_ASSIGNMENT = 8; - const FLAG_OPERATOR_SQL = 16; - - // Symbols related flags. - const FLAG_SYMBOL_VARIABLE = 1; - const FLAG_SYMBOL_BACKTICK = 2; - const FLAG_SYMBOL_USER = 4; - const FLAG_SYMBOL_SYSTEM = 8; - const FLAG_SYMBOL_PARAMETER = 16; - - /** - * The token it its raw string representation. - * - * @var string - */ - public $token; - - /** - * The value this token contains (i.e. token after some evaluation). - * - * @var mixed - */ - public $value; - - /** - * The keyword value this token contains, always uppercase. - * - * @var mixed - */ - public $keyword; - - /** - * The type of this token. - * - * @var int - */ - public $type; - - /** - * The flags of this token. - * - * @var int - */ - public $flags; - - /** - * The position in the initial string where this token started. - * - * The position is counted in chars, not bytes, so you should - * use mb_* functions to properly handle utf-8 multibyte chars. - * - * @var int - */ - public $position; - - /** - * @param string $token the value of the token - * @param int $type the type of the token - * @param int $flags the flags of the token - */ - public function __construct($token, $type = 0, $flags = 0) - { - $this->token = $token; - $this->type = $type; - $this->flags = $flags; - $this->keyword = null; - $this->value = $this->extract(); - } - - /** - * Does little processing to the token to extract a value. - * - * If no processing can be done it will return the initial string. - * - * @return mixed - */ - public function extract() - { - switch ($this->type) { - case self::TYPE_KEYWORD: - $this->keyword = strtoupper($this->token); - if (! ($this->flags & self::FLAG_KEYWORD_RESERVED)) { - // Unreserved keywords should stay the way they are because they - // might represent field names. - return $this->token; - } - - return $this->keyword; - case self::TYPE_WHITESPACE: - return ' '; - case self::TYPE_BOOL: - return strtoupper($this->token) === 'TRUE'; - case self::TYPE_NUMBER: - $ret = str_replace('--', '', $this->token); // e.g. ---42 === -42 - if ($this->flags & self::FLAG_NUMBER_HEX) { - if ($this->flags & self::FLAG_NUMBER_NEGATIVE) { - $ret = str_replace('-', '', $this->token); - sscanf($ret, '%x', $ret); - $ret = -$ret; - } else { - sscanf($ret, '%x', $ret); - } - } elseif (($this->flags & self::FLAG_NUMBER_APPROXIMATE) - || ($this->flags & self::FLAG_NUMBER_FLOAT) - ) { - sscanf($ret, '%f', $ret); - } else { - sscanf($ret, '%d', $ret); - } - - return $ret; - case self::TYPE_STRING: - // Trims quotes. - $str = $this->token; - $str = mb_substr($str, 1, -1, 'UTF-8'); - - // Removes surrounding quotes. - $quote = $this->token[0]; - $str = str_replace($quote . $quote, $quote, $str); - - // Finally unescapes the string. - // - // `stripcslashes` replaces escape sequences with their - // representation. - // - // NOTE: In MySQL, `\f` and `\v` have no representation, - // even they usually represent: form-feed and vertical tab. - $str = str_replace('\f', 'f', $str); - $str = str_replace('\v', 'v', $str); - $str = stripcslashes($str); - - return $str; - case self::TYPE_SYMBOL: - $str = $this->token; - if (isset($str[0]) && ($str[0] === '@')) { - // `mb_strlen($str)` must be used instead of `null` because - // in PHP 5.3- the `null` parameter isn't handled correctly. - $str = mb_substr( - $str, - ! empty($str[1]) && ($str[1] === '@') ? 2 : 1, - mb_strlen($str), - 'UTF-8' - ); - } - if (isset($str[0]) && ($str[0] === ':')) { - $str = mb_substr($str, 1, mb_strlen($str), 'UTF-8'); - } - if (isset($str[0]) && (($str[0] === '`') - || ($str[0] === '"') || ($str[0] === '\'')) - ) { - $quote = $str[0]; - $str = str_replace($quote . $quote, $quote, $str); - $str = mb_substr($str, 1, -1, 'UTF-8'); - } - - return $str; - } - - return $this->token; - } - - /** - * Converts the token into an inline token by replacing tabs and new lines. - * - * @return string - */ - public function getInlineToken() - { - return str_replace( - [ - "\r", - "\n", - "\t", - ], - [ - '\r', - '\n', - '\t', - ], - $this->token - ); - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/TokensList.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/TokensList.php deleted file mode 100644 index e8ff733..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/TokensList.php +++ /dev/null @@ -1,199 +0,0 @@ -tokens = $tokens; - if ($count === -1) { - $this->count = count($tokens); - } - } - } - - /** - * Builds an array of tokens by merging their raw value. - * - * @param string|Token[]|TokensList $list the tokens to be built - * - * @return string - */ - public static function build($list) - { - if (is_string($list)) { - return $list; - } - - if ($list instanceof self) { - $list = $list->tokens; - } - - $ret = ''; - if (is_array($list)) { - foreach ($list as $tok) { - $ret .= $tok->token; - } - } - - return $ret; - } - - /** - * Adds a new token. - * - * @param Token $token token to be added in list - */ - public function add(Token $token) - { - $this->tokens[$this->count++] = $token; - } - - /** - * Gets the next token. Skips any irrelevant token (whitespaces and - * comments). - * - * @return Token|null - */ - public function getNext() - { - for (; $this->idx < $this->count; ++$this->idx) { - if (($this->tokens[$this->idx]->type !== Token::TYPE_WHITESPACE) - && ($this->tokens[$this->idx]->type !== Token::TYPE_COMMENT) - ) { - return $this->tokens[$this->idx++]; - } - } - - return null; - } - - /** - * Gets the next token. - * - * @param int $type the type - * - * @return Token|null - */ - public function getNextOfType($type) - { - for (; $this->idx < $this->count; ++$this->idx) { - if ($this->tokens[$this->idx]->type === $type) { - return $this->tokens[$this->idx++]; - } - } - - return null; - } - - /** - * Gets the next token. - * - * @param int $type the type of the token - * @param string $value the value of the token - * - * @return Token|null - */ - public function getNextOfTypeAndValue($type, $value) - { - for (; $this->idx < $this->count; ++$this->idx) { - if (($this->tokens[$this->idx]->type === $type) - && ($this->tokens[$this->idx]->value === $value) - ) { - return $this->tokens[$this->idx++]; - } - } - - return null; - } - - /** - * Sets an value inside the container. - * - * @param int $offset the offset to be set - * @param Token $value the token to be saved - */ - public function offsetSet($offset, $value) - { - if ($offset === null) { - $this->tokens[$this->count++] = $value; - } else { - $this->tokens[$offset] = $value; - } - } - - /** - * Gets a value from the container. - * - * @param int $offset the offset to be returned - * - * @return Token - */ - public function offsetGet($offset) - { - return $offset < $this->count ? $this->tokens[$offset] : null; - } - - /** - * Checks if an offset was previously set. - * - * @param int $offset the offset to be checked - * - * @return bool - */ - public function offsetExists($offset) - { - return $offset < $this->count; - } - - /** - * Unsets the value of an offset. - * - * @param int $offset the offset to be unset - */ - public function offsetUnset($offset) - { - unset($this->tokens[$offset]); - --$this->count; - for ($i = $offset; $i < $this->count; ++$i) { - $this->tokens[$i] = $this->tokens[$i + 1]; - } - unset($this->tokens[$this->count]); - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Translator.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Translator.php deleted file mode 100644 index 36c519f..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Translator.php +++ /dev/null @@ -1,71 +0,0 @@ -setlocale( - self::$loader->detectlocale() - ); - - // Set default text domain - self::$loader->textdomain('sqlparser'); - - // Set path where to look for a domain - self::$loader->bindtextdomain('sqlparser', __DIR__ . '/../locale/'); - } - - if (self::$translator === null) { - // Get translator - self::$translator = self::$loader->getTranslator(); - } - } - - /** - * Translates a string. - * - * @param string $msgid String to be translated - * - * @return string translated string (or original, if not found) - */ - public static function gettext($msgid) - { - if (! class_exists('\PhpMyAdmin\MoTranslator\Loader', true)) { - return $msgid; - } - - self::load(); - - return self::$translator->gettext($msgid); - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/UtfString.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/UtfString.php deleted file mode 100644 index cb4187c..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/UtfString.php +++ /dev/null @@ -1,210 +0,0 @@ -str = $str; - $this->byteIdx = 0; - $this->charIdx = 0; - $this->byteLen = mb_strlen($str, '8bit'); - if (! mb_check_encoding($str, 'UTF-8')) { - $this->charLen = 0; - } else { - $this->charLen = mb_strlen($str, 'UTF-8'); - } - } - - /** - * Checks if the given offset exists. - * - * @param int $offset the offset to be checked - * - * @return bool - */ - public function offsetExists($offset) - { - return ($offset >= 0) && ($offset < $this->charLen); - } - - /** - * Gets the character at given offset. - * - * @param int $offset the offset to be returned - * - * @return string|null - */ - public function offsetGet($offset) - { - if (($offset < 0) || ($offset >= $this->charLen)) { - return null; - } - - $delta = $offset - $this->charIdx; - - if ($delta > 0) { - // Fast forwarding. - while ($delta-- > 0) { - $this->byteIdx += static::getCharLength($this->str[$this->byteIdx]); - ++$this->charIdx; - } - } elseif ($delta < 0) { - // Rewinding. - while ($delta++ < 0) { - do { - $byte = ord($this->str[--$this->byteIdx]); - } while (($byte >= 128) && ($byte < 192)); - --$this->charIdx; - } - } - - $bytesCount = static::getCharLength($this->str[$this->byteIdx]); - - $ret = ''; - for ($i = 0; $bytesCount-- > 0; ++$i) { - $ret .= $this->str[$this->byteIdx + $i]; - } - - return $ret; - } - - /** - * Sets the value of a character. - * - * @param int $offset the offset to be set - * @param string $value the value to be set - * - * @throws Exception not implemented. - */ - public function offsetSet($offset, $value) - { - throw new Exception('Not implemented.'); - } - - /** - * Unsets an index. - * - * @param int $offset the value to be unset - * - * @throws Exception not implemented. - */ - public function offsetUnset($offset) - { - throw new Exception('Not implemented.'); - } - - /** - * Gets the length of an UTF-8 character. - * - * According to RFC 3629, a UTF-8 character can have at most 4 bytes. - * However, this implementation supports UTF-8 characters containing up to 6 - * bytes. - * - * @see https://tools.ietf.org/html/rfc3629 - * - * @param string $byte the byte to be analyzed - * - * @return int - */ - public static function getCharLength($byte) - { - $byte = ord($byte); - if ($byte < 128) { - return 1; - } elseif ($byte < 224) { - return 2; - } elseif ($byte < 240) { - return 3; - } elseif ($byte < 248) { - return 4; - } elseif ($byte < 252) { - return 5; // unofficial - } - - return 6; // unofficial - } - - /** - * Returns the length in characters of the string. - * - * @return int - */ - public function length() - { - return $this->charLen; - } - - /** - * Returns the contained string. - * - * @return string - */ - public function __toString() - { - return $this->str; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/BufferedQuery.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/BufferedQuery.php deleted file mode 100644 index a2d6705..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/BufferedQuery.php +++ /dev/null @@ -1,406 +0,0 @@ -options = array_merge( - [ - /* - * The starting delimiter. - * - * @var string - */ - 'delimiter' => ';', - - /* - * Whether `DELIMITER` statements should be parsed. - * - * @var bool - */ - 'parse_delimiter' => false, - - /* - * Whether a delimiter should be added at the end of the - * statement. - * - * @var bool - */ - 'add_delimiter' => false, - ], - $options - ); - - $this->query = $query; - $this->setDelimiter($this->options['delimiter']); - } - - /** - * Sets the delimiter. - * - * Used to update the length of it too. - * - * @param string $delimiter - */ - public function setDelimiter($delimiter) - { - $this->delimiter = $delimiter; - $this->delimiterLen = strlen($delimiter); - } - - /** - * Extracts a statement from the buffer. - * - * @param bool $end whether the end of the buffer was reached - * - * @return string|false - */ - public function extract($end = false) - { - /** - * The last parsed position. - * - * This is statically defined because it is not used outside anywhere - * outside this method and there is probably a (minor) performance - * improvement to it. - * - * @var int - */ - static $i = 0; - - if (empty($this->query)) { - return false; - } - - /** - * The length of the buffer. - * - * @var int - */ - $len = strlen($this->query); - - /** - * The last index of the string that is going to be parsed. - * - * There must be a few characters left in the buffer so the parser can - * avoid confusing some symbols that may have multiple meanings. - * - * For example, if the buffer ends in `-` that may be an operator or the - * beginning of a comment. - * - * Another example if the buffer ends in `DELIMITE`. The parser is going - * to require a few more characters because that may be a part of the - * `DELIMITER` keyword or just a column named `DELIMITE`. - * - * Those extra characters are required only if there is more data - * expected (the end of the buffer was not reached). - * - * @var int - */ - $loopLen = $end ? $len : $len - 16; - - for (; $i < $loopLen; ++$i) { - /* - * Handling backslash. - * - * Even if the next character is a special character that should be - * treated differently, because of the preceding backslash, it will - * be ignored. - */ - if ((($this->status & static::STATUS_COMMENT) === 0) && ($this->query[$i] === '\\')) { - $this->current .= $this->query[$i] . $this->query[++$i]; - continue; - } - - /* - * Handling special parses statuses. - */ - if ($this->status === static::STATUS_STRING_SINGLE_QUOTES) { - // Single-quoted strings like 'foo'. - if ($this->query[$i] === '\'') { - $this->status = 0; - } - $this->current .= $this->query[$i]; - continue; - } elseif ($this->status === static::STATUS_STRING_DOUBLE_QUOTES) { - // Double-quoted strings like "bar". - if ($this->query[$i] === '"') { - $this->status = 0; - } - $this->current .= $this->query[$i]; - continue; - } elseif ($this->status === static::STATUS_STRING_BACKTICK) { - if ($this->query[$i] === '`') { - $this->status = 0; - } - $this->current .= $this->query[$i]; - continue; - } elseif (($this->status === static::STATUS_COMMENT_BASH) - || ($this->status === static::STATUS_COMMENT_SQL) - ) { - // Bash-like (#) or SQL-like (-- ) comments end in new line. - if ($this->query[$i] === "\n") { - $this->status = 0; - } - $this->current .= $this->query[$i]; - continue; - } elseif ($this->status === static::STATUS_COMMENT_C) { - // C-like comments end in */. - if (($this->query[$i - 1] === '*') && ($this->query[$i] === '/')) { - $this->status = 0; - } - $this->current .= $this->query[$i]; - continue; - } - - /* - * Checking if a string started. - */ - if ($this->query[$i] === '\'') { - $this->status = static::STATUS_STRING_SINGLE_QUOTES; - $this->current .= $this->query[$i]; - continue; - } elseif ($this->query[$i] === '"') { - $this->status = static::STATUS_STRING_DOUBLE_QUOTES; - $this->current .= $this->query[$i]; - continue; - } elseif ($this->query[$i] === '`') { - $this->status = static::STATUS_STRING_BACKTICK; - $this->current .= $this->query[$i]; - continue; - } - - /* - * Checking if a comment started. - */ - if ($this->query[$i] === '#') { - $this->status = static::STATUS_COMMENT_BASH; - $this->current .= $this->query[$i]; - continue; - } elseif ($i + 2 < $len) { - if (($this->query[$i] === '-') - && ($this->query[$i + 1] === '-') - && Context::isWhitespace($this->query[$i + 2])) { - $this->status = static::STATUS_COMMENT_SQL; - $this->current .= $this->query[$i]; - continue; - } elseif (($this->query[$i] === '/') - && ($this->query[$i + 1] === '*') - && ($this->query[$i + 2] !== '!')) { - $this->status = static::STATUS_COMMENT_C; - $this->current .= $this->query[$i]; - continue; - } - } - - /* - * Handling `DELIMITER` statement. - * - * The code below basically checks for - * `strtoupper(substr($this->query, $i, 9)) === 'DELIMITER'` - * - * This optimization makes the code about 3 times faster. - * - * `DELIMITER` is not being considered a keyword. The only context - * it has a special meaning is when it is the beginning of a - * statement. This is the reason for the last condition. - */ - if (($i + 9 < $len) - && (($this->query[$i] === 'D') || ($this->query[$i] === 'd')) - && (($this->query[$i + 1] === 'E') || ($this->query[$i + 1] === 'e')) - && (($this->query[$i + 2] === 'L') || ($this->query[$i + 2] === 'l')) - && (($this->query[$i + 3] === 'I') || ($this->query[$i + 3] === 'i')) - && (($this->query[$i + 4] === 'M') || ($this->query[$i + 4] === 'm')) - && (($this->query[$i + 5] === 'I') || ($this->query[$i + 5] === 'i')) - && (($this->query[$i + 6] === 'T') || ($this->query[$i + 6] === 't')) - && (($this->query[$i + 7] === 'E') || ($this->query[$i + 7] === 'e')) - && (($this->query[$i + 8] === 'R') || ($this->query[$i + 8] === 'r')) - && Context::isWhitespace($this->query[$i + 9]) - ) { - // Saving the current index to be able to revert any parsing - // done in this block. - $iBak = $i; - $i += 9; // Skipping `DELIMITER`. - - // Skipping whitespaces. - while (($i < $len) && Context::isWhitespace($this->query[$i])) { - ++$i; - } - - // Parsing the delimiter. - $delimiter = ''; - while (($i < $len) && (! Context::isWhitespace($this->query[$i]))) { - $delimiter .= $this->query[$i++]; - } - - // Checking if the delimiter definition ended. - if (($delimiter !== '') - && ((($i < $len) && Context::isWhitespace($this->query[$i])) - || (($i === $len) && $end)) - ) { - // Saving the delimiter. - $this->setDelimiter($delimiter); - - // Whether this statement should be returned or not. - $ret = ''; - if (! empty($this->options['parse_delimiter'])) { - // Appending the `DELIMITER` statement that was just - // found to the current statement. - $ret = trim( - $this->current . ' ' . substr($this->query, $iBak, $i - $iBak) - ); - } - - // Removing the statement that was just extracted from the - // query. - $this->query = substr($this->query, $i); - $i = 0; - - // Resetting the current statement. - $this->current = ''; - - return $ret; - } - - // Incomplete statement. Reverting - $i = $iBak; - - return false; - } - - /* - * Checking if the current statement finished. - * - * The first letter of the delimiter is being checked as an - * optimization. This code is almost as fast as the one above. - * - * There is no point in checking if two strings match if not even - * the first letter matches. - */ - if (($this->query[$i] === $this->delimiter[0]) - && (($this->delimiterLen === 1) - || (substr($this->query, $i, $this->delimiterLen) === $this->delimiter)) - ) { - // Saving the statement that just ended. - $ret = $this->current; - - // If needed, adds a delimiter at the end of the statement. - if (! empty($this->options['add_delimiter'])) { - $ret .= $this->delimiter; - } - - // Removing the statement that was just extracted from the - // query. - $this->query = substr($this->query, $i + $this->delimiterLen); - $i = 0; - - // Resetting the current statement. - $this->current = ''; - - // Returning the statement. - return trim($ret); - } - - /* - * Appending current character to current statement. - */ - $this->current .= $this->query[$i]; - } - - if ($end && ($i === $len)) { - // If the end of the buffer was reached, the buffer is emptied and - // the current statement that was extracted is returned. - $ret = $this->current; - - // Emptying the buffer. - $this->query = ''; - $i = 0; - - // Resetting the current statement. - $this->current = ''; - - // Returning the statement. - return trim($ret); - } - - return ''; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/CLI.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/CLI.php deleted file mode 100644 index 31eda8f..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/CLI.php +++ /dev/null @@ -1,225 +0,0 @@ -getopt( - 'hq:f:', - $longopts - ); - if ($params === false) { - return false; - } - $this->mergeLongOpts($params, $longopts); - if (! isset($params['f'])) { - $params['f'] = 'cli'; - } - if (! in_array($params['f'], ['html', 'cli', 'text'])) { - echo "ERROR: Invalid value for format!\n"; - - return false; - } - - return $params; - } - - public function runHighlight() - { - $params = $this->parseHighlight(); - if ($params === false) { - return 1; - } - if (isset($params['h'])) { - $this->usageHighlight(); - - return 0; - } - if (! isset($params['q'])) { - if ($stdIn = $this->readStdin()) { - $params['q'] = $stdIn; - } - } - if (isset($params['q'])) { - echo Formatter::format( - $params['q'], - ['type' => $params['f']] - ); - echo "\n"; - - return 0; - } - echo "ERROR: Missing parameters!\n"; - $this->usageHighlight(); - - return 1; - } - - public function usageLint() - { - echo "Usage: lint-query --query SQL\n"; - echo " cat file.sql | lint-query\n"; - } - - public function parseLint() - { - $longopts = [ - 'help', - 'query:', - 'context:', - ]; - $params = $this->getopt( - 'hq:c:', - $longopts - ); - $this->mergeLongOpts($params, $longopts); - - return $params; - } - - public function runLint() - { - $params = $this->parseLint(); - if ($params === false) { - return 1; - } - if (isset($params['h'])) { - $this->usageLint(); - - return 0; - } - if (isset($params['c'])) { - Context::load($params['c']); - } - if (! isset($params['q'])) { - if ($stdIn = $this->readStdin()) { - $params['q'] = $stdIn; - } - } - if (isset($params['q'])) { - $lexer = new Lexer($params['q'], false); - $parser = new Parser($lexer->list); - $errors = Error::get([$lexer, $parser]); - if (count($errors) === 0) { - return 0; - } - $output = Error::format($errors); - echo implode("\n", $output); - echo "\n"; - - return 10; - } - echo "ERROR: Missing parameters!\n"; - $this->usageLint(); - - return 1; - } - - public function usageTokenize() - { - echo "Usage: tokenize-query --query SQL\n"; - echo " cat file.sql | tokenize-query\n"; - } - - public function parseTokenize() - { - $longopts = [ - 'help', - 'query:', - ]; - $params = $this->getopt( - 'hq:', - $longopts - ); - $this->mergeLongOpts($params, $longopts); - - return $params; - } - - public function runTokenize() - { - $params = $this->parseTokenize(); - if ($params === false) { - return 1; - } - if (isset($params['h'])) { - $this->usageTokenize(); - - return 0; - } - if (! isset($params['q'])) { - if ($stdIn = $this->readStdin()) { - $params['q'] = $stdIn; - } - } - if (isset($params['q'])) { - $lexer = new Lexer($params['q'], false); - foreach ($lexer->list->tokens as $idx => $token) { - echo '[TOKEN ', $idx, "]\n"; - echo 'Type = ', $token->type, "\n"; - echo 'Flags = ', $token->flags, "\n"; - echo 'Value = '; - var_export($token->value); - echo "\n"; - echo 'Token = '; - var_export($token->token); - echo "\n"; - echo "\n"; - } - - return 0; - } - echo "ERROR: Missing parameters!\n"; - $this->usageTokenize(); - - return 1; - } - - public function readStdin() - { - stream_set_blocking(STDIN, false); - $stdin = stream_get_contents(STDIN); - // restore-default block-mode setting - stream_set_blocking(STDIN, true); - return $stdin; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Error.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Error.php deleted file mode 100644 index 789da0e..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Error.php +++ /dev/null @@ -1,96 +0,0 @@ -errors as $err) { - $ret[] = [ - $err->getMessage(), - $err->getCode(), - $err->ch, - $err->pos, - ]; - } - } elseif ($obj instanceof Parser) { - /** @var ParserException $err */ - foreach ($obj->errors as $err) { - $ret[] = [ - $err->getMessage(), - $err->getCode(), - $err->token->token, - $err->token->position, - ]; - } - } - } - - return $ret; - } - - /** - * Formats the specified errors. - * - * @param array $errors the errors to be formatted - * @param string $format The format of an error. - * '$1$d' is replaced by the position of this error. - * '$2$s' is replaced by the error message. - * '$3$d' is replaced by the error code. - * '$4$s' is replaced by the string that caused the - * issue. - * '$5$d' is replaced by the position of the string. - * - * @return array - */ - public static function format( - $errors, - $format = '#%1$d: %2$s (near "%4$s" at position %5$d)' - ) { - $ret = []; - - $i = 0; - foreach ($errors as $key => $err) { - $ret[$key] = sprintf( - $format, - ++$i, - $err[0], - $err[1], - htmlspecialchars((string) $err[2]), - $err[3] - ); - } - - return $ret; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Formatter.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Formatter.php deleted file mode 100644 index 017d5b1..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Formatter.php +++ /dev/null @@ -1,736 +0,0 @@ - true, - 'INSERT' => true, - ]; - - /** - * Clauses that must be inlined. - * - * These clauses usually are short and it's nicer to have them inline. - * - * @var array - */ - public static $INLINE_CLAUSES = [ - 'CREATE' => true, - 'INTO' => true, - 'LIMIT' => true, - 'PARTITION BY' => true, - 'PARTITION' => true, - 'PROCEDURE' => true, - 'SUBPARTITION BY' => true, - 'VALUES' => true, - ]; - - /** - * @param array $options the formatting options - */ - public function __construct(array $options = []) - { - $this->options = $this->getMergedOptions($options); - } - - /** - * The specified formatting options are merged with the default values. - * - * @param array $options - * - * @return array - */ - private function getMergedOptions(array $options) - { - $options = array_merge( - $this->getDefaultOptions(), - $options - ); - - if (isset($options['formats'])) { - $options['formats'] = self::mergeFormats($this->getDefaultFormats(), $options['formats']); - } else { - $options['formats'] = $this->getDefaultFormats(); - } - - if ($options['line_ending'] === null) { - $options['line_ending'] = $options['type'] === 'html' ? '
' : "\n"; - } - - if ($options['indentation'] === null) { - $options['indentation'] = $options['type'] === 'html' ? '    ' : ' '; - } - - // `parts_newline` requires `clause_newline` - $options['parts_newline'] &= $options['clause_newline']; - - return $options; - } - - /** - * The default formatting options. - * - * @return array - */ - protected function getDefaultOptions() - { - return [ - /* - * The format of the result. - * - * @var string The type ('text', 'cli' or 'html') - */ - 'type' => php_sapi_name() === 'cli' ? 'cli' : 'text', - - /* - * The line ending used. - * By default, for text this is "\n" and for HTML this is "
". - * - * @var string - */ - 'line_ending' => null, - - /* - * The string used for indentation. - * - * @var string - */ - 'indentation' => null, - - /* - * Whether comments should be removed or not. - * - * @var bool - */ - 'remove_comments' => false, - - /* - * Whether each clause should be on a new line. - * - * @var bool - */ - 'clause_newline' => true, - - /* - * Whether each part should be on a new line. - * Parts are delimited by brackets and commas. - * - * @var bool - */ - 'parts_newline' => true, - - /* - * Whether each part of each clause should be indented. - * - * @var bool - */ - 'indent_parts' => true, - ]; - } - - /** - * The styles used for HTML formatting. - * [$type, $flags, $span, $callback]. - * - * @return array - */ - protected function getDefaultFormats() - { - return [ - [ - 'type' => Token::TYPE_KEYWORD, - 'flags' => Token::FLAG_KEYWORD_RESERVED, - 'html' => 'class="sql-reserved"', - 'cli' => "\x1b[35m", - 'function' => 'strtoupper', - ], - [ - 'type' => Token::TYPE_KEYWORD, - 'flags' => 0, - 'html' => 'class="sql-keyword"', - 'cli' => "\x1b[95m", - 'function' => 'strtoupper', - ], - [ - 'type' => Token::TYPE_COMMENT, - 'flags' => 0, - 'html' => 'class="sql-comment"', - 'cli' => "\x1b[37m", - 'function' => '', - ], - [ - 'type' => Token::TYPE_BOOL, - 'flags' => 0, - 'html' => 'class="sql-atom"', - 'cli' => "\x1b[36m", - 'function' => 'strtoupper', - ], - [ - 'type' => Token::TYPE_NUMBER, - 'flags' => 0, - 'html' => 'class="sql-number"', - 'cli' => "\x1b[92m", - 'function' => 'strtolower', - ], - [ - 'type' => Token::TYPE_STRING, - 'flags' => 0, - 'html' => 'class="sql-string"', - 'cli' => "\x1b[91m", - 'function' => '', - ], - [ - 'type' => Token::TYPE_SYMBOL, - 'flags' => Token::FLAG_SYMBOL_PARAMETER, - 'html' => 'class="sql-parameter"', - 'cli' => "\x1b[31m", - 'function' => '', - ], - [ - 'type' => Token::TYPE_SYMBOL, - 'flags' => 0, - 'html' => 'class="sql-variable"', - 'cli' => "\x1b[36m", - 'function' => '', - ], - ]; - } - - private static function mergeFormats(array $formats, array $newFormats) - { - $added = []; - $integers = [ - 'flags', - 'type', - ]; - $strings = [ - 'html', - 'cli', - 'function', - ]; - - /* Sanitize the array so that we do not have to care later */ - foreach ($newFormats as $j => $new) { - foreach ($integers as $name) { - if (! isset($new[$name])) { - $newFormats[$j][$name] = 0; - } - } - foreach ($strings as $name) { - if (! isset($new[$name])) { - $newFormats[$j][$name] = ''; - } - } - } - - /* Process changes to existing formats */ - foreach ($formats as $i => $original) { - foreach ($newFormats as $j => $new) { - if ($new['type'] === $original['type'] - && $original['flags'] === $new['flags'] - ) { - $formats[$i] = $new; - $added[] = $j; - } - } - } - - /* Add not already handled formats */ - foreach ($newFormats as $j => $new) { - if (! in_array($j, $added)) { - $formats[] = $new; - } - } - - return $formats; - } - - /** - * Formats the given list of tokens. - * - * @param TokensList $list the list of tokens - * - * @return string - */ - public function formatList($list) - { - /** - * The query to be returned. - * - * @var string - */ - $ret = ''; - - /** - * The indentation level. - * - * @var int - */ - $indent = 0; - - /** - * Whether the line ended. - * - * @var bool - */ - $lineEnded = false; - - /** - * Whether current group is short (no linebreaks). - * - * @var bool - */ - $shortGroup = false; - - /** - * The name of the last clause. - * - * @var string - */ - $lastClause = ''; - - /** - * A stack that keeps track of the indentation level every time a new - * block is found. - * - * @var array - */ - $blocksIndentation = []; - - /** - * A stack that keeps track of the line endings every time a new block - * is found. - * - * @var array - */ - $blocksLineEndings = []; - - /** - * Whether clause's options were formatted. - * - * @var bool - */ - $formattedOptions = false; - - /** - * Previously parsed token. - * - * @var Token|null - */ - $prev = null; - - // In order to be able to format the queries correctly, the next token - // must be taken into consideration. The loop below uses two pointers, - // `$prev` and `$curr` which store two consecutive tokens. - // Actually, at every iteration the previous token is being used. - for ($list->idx = 0; $list->idx < $list->count; ++$list->idx) { - /** - * Token parsed at this moment. - * - * @var Token - */ - $curr = $list->tokens[$list->idx]; - if ($list->idx + 1 < $list->count) { - $next = $list->tokens[$list->idx + 1]; - } else { - $next = null; - } - - if ($curr->type === Token::TYPE_WHITESPACE) { - // Keep linebreaks before and after comments - if (strpos($curr->token, "\n") !== false && ( - ($prev !== null && $prev->type === Token::TYPE_COMMENT) || - ($next !== null && $next->type === Token::TYPE_COMMENT) - ) - ) { - $lineEnded = true; - } - // Whitespaces are skipped because the formatter adds its own. - continue; - } - - if ($curr->type === Token::TYPE_COMMENT && $this->options['remove_comments']) { - // Skip Comments if option `remove_comments` is enabled - continue; - } - - // Checking if pointers were initialized. - if ($prev !== null) { - // Checking if a new clause started. - if (static::isClause($prev) !== false) { - $lastClause = $prev->value; - $formattedOptions = false; - } - - // The options of a clause should stay on the same line and everything that follows. - if ($this->options['parts_newline'] - && ! $formattedOptions - && empty(self::$INLINE_CLAUSES[$lastClause]) - && ( - $curr->type !== Token::TYPE_KEYWORD - || ( - $curr->type === Token::TYPE_KEYWORD - && $curr->flags & Token::FLAG_KEYWORD_FUNCTION - ) - ) - ) { - $formattedOptions = true; - $lineEnded = true; - ++$indent; - } - - // Checking if this clause ended. - if ($isClause = static::isClause($curr)) { - if (($isClause === 2 || $this->options['clause_newline']) && empty(self::$SHORT_CLAUSES[$lastClause])) { - $lineEnded = true; - if ($this->options['parts_newline'] && $indent > 0) { - --$indent; - } - } - } - - // Inline JOINs - if (($prev->type === Token::TYPE_KEYWORD && isset(JoinKeyword::$JOINS[$prev->value])) - || (in_array($curr->value, ['ON', 'USING'], true) && isset(JoinKeyword::$JOINS[$list->tokens[$list->idx - 2]->value])) - || isset($list->tokens[$list->idx - 4], JoinKeyword::$JOINS[$list->tokens[$list->idx - 4]->value]) - || isset($list->tokens[$list->idx - 6], JoinKeyword::$JOINS[$list->tokens[$list->idx - 6]->value]) - ) { - $lineEnded = false; - } - - // Indenting BEGIN ... END blocks. - if ($prev->type === Token::TYPE_KEYWORD && $prev->keyword === 'BEGIN') { - $lineEnded = true; - $blocksIndentation[] = $indent; - ++$indent; - } elseif ($curr->type === Token::TYPE_KEYWORD && $curr->keyword === 'END') { - $lineEnded = true; - $indent = array_pop($blocksIndentation); - } - - // Formatting fragments delimited by comma. - if ($prev->type === Token::TYPE_OPERATOR && $prev->value === ',') { - // Fragments delimited by a comma are broken into multiple - // pieces only if the clause is not inlined or this fragment - // is between brackets that are on new line. - if (end($blocksLineEndings) === true - || ( - empty(self::$INLINE_CLAUSES[$lastClause]) - && ! $shortGroup - && $this->options['parts_newline'] - ) - ) { - $lineEnded = true; - } - } - - // Handling brackets. - // Brackets are indented only if the length of the fragment between - // them is longer than 30 characters. - if ($prev->type === Token::TYPE_OPERATOR && $prev->value === '(') { - $blocksIndentation[] = $indent; - $shortGroup = true; - if (static::getGroupLength($list) > 30) { - ++$indent; - $lineEnded = true; - $shortGroup = false; - } - $blocksLineEndings[] = $lineEnded; - } elseif ($curr->type === Token::TYPE_OPERATOR && $curr->value === ')') { - $indent = array_pop($blocksIndentation); - $lineEnded |= array_pop($blocksLineEndings); - $shortGroup = false; - } - - // Adding the token. - $ret .= $this->toString($prev); - - // Finishing the line. - if ($lineEnded) { - $ret .= $this->options['line_ending'] - . str_repeat($this->options['indentation'], (int) $indent); - - $lineEnded = false; - } else { - // If the line ended there is no point in adding whitespaces. - // Also, some tokens do not have spaces before or after them. - if (// A space after delimiters that are longer than 2 characters. - $prev->keyword === 'DELIMITER' - || ! ( - ($prev->type === Token::TYPE_OPERATOR && ($prev->value === '.' || $prev->value === '(')) - // No space after . ( - || ($curr->type === Token::TYPE_OPERATOR && ($curr->value === '.' || $curr->value === ',' || $curr->value === '(' || $curr->value === ')')) - // No space before . , ( ) - || $curr->type === Token::TYPE_DELIMITER && mb_strlen((string) $curr->value, 'UTF-8') < 2 - ) - ) { - $ret .= ' '; - } - } - } - - // Iteration finished, consider current token as previous. - $prev = $curr; - } - - if ($this->options['type'] === 'cli') { - return $ret . "\x1b[0m"; - } - - return $ret; - } - - public function escapeConsole($string) - { - return str_replace( - [ - "\x00", - "\x01", - "\x02", - "\x03", - "\x04", - "\x05", - "\x06", - "\x07", - "\x08", - "\x09", - "\x0A", - "\x0B", - "\x0C", - "\x0D", - "\x0E", - "\x0F", - "\x10", - "\x11", - "\x12", - "\x13", - "\x14", - "\x15", - "\x16", - "\x17", - "\x18", - "\x19", - "\x1A", - "\x1B", - "\x1C", - "\x1D", - "\x1E", - "\x1F", - ], - [ - '\x00', - '\x01', - '\x02', - '\x03', - '\x04', - '\x05', - '\x06', - '\x07', - '\x08', - '\x09', - '\x0A', - '\x0B', - '\x0C', - '\x0D', - '\x0E', - '\x0F', - '\x10', - '\x11', - '\x12', - '\x13', - '\x14', - '\x15', - '\x16', - '\x17', - '\x18', - '\x19', - '\x1A', - '\x1B', - '\x1C', - '\x1D', - '\x1E', - '\x1F', - ], - $string - ); - } - - /** - * Tries to print the query and returns the result. - * - * @param Token $token the token to be printed - * - * @return string - */ - public function toString($token) - { - $text = $token->token; - static $prev; - - foreach ($this->options['formats'] as $format) { - if ($token->type === $format['type'] - && ($token->flags & $format['flags']) === $format['flags'] - ) { - // Running transformation function. - if (! empty($format['function'])) { - $func = $format['function']; - $text = $func($text); - } - - // Formatting HTML. - if ($this->options['type'] === 'html') { - return '' . htmlspecialchars($text, ENT_NOQUOTES) . ''; - } elseif ($this->options['type'] === 'cli') { - if ($prev !== $format['cli']) { - $prev = $format['cli']; - - return $format['cli'] . $this->escapeConsole($text); - } - - return $this->escapeConsole($text); - } - - break; - } - } - - if ($this->options['type'] === 'cli') { - if ($prev !== "\x1b[39m") { - $prev = "\x1b[39m"; - - return "\x1b[39m" . $this->escapeConsole($text); - } - - return $this->escapeConsole($text); - } elseif ($this->options['type'] === 'html') { - return htmlspecialchars($text, ENT_NOQUOTES); - } - - return $text; - } - - /** - * Formats a query. - * - * @param string $query The query to be formatted - * @param array $options the formatting options - * - * @return string the formatted string - */ - public static function format($query, array $options = []) - { - $lexer = new Lexer($query); - $formatter = new self($options); - - return $formatter->formatList($lexer->list); - } - - /** - * Computes the length of a group. - * - * A group is delimited by a pair of brackets. - * - * @param TokensList $list the list of tokens - * - * @return int - */ - public static function getGroupLength($list) - { - /** - * The number of opening brackets found. - * This counter starts at one because by the time this function called, - * the list already advanced one position and the opening bracket was - * already parsed. - * - * @var int - */ - $count = 1; - - /** - * The length of this group. - * - * @var int - */ - $length = 0; - - for ($idx = $list->idx; $idx < $list->count; ++$idx) { - // Counting the brackets. - if ($list->tokens[$idx]->type === Token::TYPE_OPERATOR) { - if ($list->tokens[$idx]->value === '(') { - ++$count; - } elseif ($list->tokens[$idx]->value === ')') { - --$count; - if ($count === 0) { - break; - } - } - } - - // Keeping track of this group's length. - $length += mb_strlen((string) $list->tokens[$idx]->value, 'UTF-8'); - } - - return $length; - } - - /** - * Checks if a token is a statement or a clause inside a statement. - * - * @param Token $token the token to be checked - * - * @return int|bool - */ - public static function isClause($token) - { - if (($token->type === Token::TYPE_KEYWORD && isset(Parser::$STATEMENT_PARSERS[$token->keyword])) - || ($token->type === Token::TYPE_NONE && strtoupper($token->token) === 'DELIMITER') - ) { - return 2; - } elseif ($token->type === Token::TYPE_KEYWORD && isset(Parser::$KEYWORD_PARSERS[$token->keyword]) - ) { - return 1; - } - - return false; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Misc.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Misc.php deleted file mode 100644 index 6fcc831..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Misc.php +++ /dev/null @@ -1,104 +0,0 @@ -expr) - || empty($statement->from) - ) { - return []; - } - - $retval = []; - - $tables = []; - - /** - * Expressions that may contain aliases. - * These are extracted from `FROM` and `JOIN` keywords. - * - * @var Expression[] - */ - $expressions = $statement->from; - - // Adding expressions from JOIN. - if (! empty($statement->join)) { - foreach ($statement->join as $join) { - $expressions[] = $join->expr; - } - } - - foreach ($expressions as $expr) { - if (! isset($expr->table) || ($expr->table === '')) { - continue; - } - - $thisDb = isset($expr->database) && ($expr->database !== '') ? - $expr->database : $database; - - if (! isset($retval[$thisDb])) { - $retval[$thisDb] = [ - 'alias' => null, - 'tables' => [], - ]; - } - - if (! isset($retval[$thisDb]['tables'][$expr->table])) { - $retval[$thisDb]['tables'][$expr->table] = [ - 'alias' => isset($expr->alias) && ($expr->alias !== '') ? - $expr->alias : null, - 'columns' => [], - ]; - } - - if (! isset($tables[$thisDb])) { - $tables[$thisDb] = []; - } - $tables[$thisDb][$expr->alias] = $expr->table; - } - - foreach ($statement->expr as $expr) { - if (! isset($expr->column, $expr->alias) || ($expr->column === '') || ($expr->alias === '') - ) { - continue; - } - - $thisDb = isset($expr->database) && ($expr->database !== '') ? - $expr->database : $database; - - if (isset($expr->table) && ($expr->table !== '')) { - $thisTable = isset($tables[$thisDb][$expr->table]) ? - $tables[$thisDb][$expr->table] : $expr->table; - $retval[$thisDb]['tables'][$thisTable]['columns'][$expr->column] = $expr->alias; - } else { - foreach ($retval[$thisDb]['tables'] as &$table) { - $table['columns'][$expr->column] = $expr->alias; - } - } - } - - return $retval; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Query.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Query.php deleted file mode 100644 index e16d172..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Query.php +++ /dev/null @@ -1,871 +0,0 @@ - false, - - /* - * drop ... DATABASE ... - */ - 'drop_database' => false, - - /* - * ... GROUP BY ... - */ - 'group' => false, - - /* - * ... HAVING ... - */ - 'having' => false, - - /* - * INSERT ... - * or - * REPLACE ... - * or - * DELETE ... - */ - 'is_affected' => false, - - /* - * select ... PROCEDURE ANALYSE( ... ) ... - */ - 'is_analyse' => false, - - /* - * select COUNT( ... ) ... - */ - 'is_count' => false, - - /* - * DELETE ... - */ - 'is_delete' => false, // @deprecated; use `querytype` - - /* - * EXPLAIN ... - */ - 'is_explain' => false, // @deprecated; use `querytype` - - /* - * select ... INTO OUTFILE ... - */ - 'is_export' => false, - - /* - * select FUNC( ... ) ... - */ - 'is_func' => false, - - /* - * select ... GROUP BY ... - * or - * select ... HAVING ... - */ - 'is_group' => false, - - /* - * INSERT ... - * or - * REPLACE ... - * or - * LOAD DATA ... - */ - 'is_insert' => false, - - /* - * ANALYZE ... - * or - * CHECK ... - * or - * CHECKSUM ... - * or - * OPTIMIZE ... - * or - * REPAIR ... - */ - 'is_maint' => false, - - /* - * CALL ... - */ - 'is_procedure' => false, - - /* - * REPLACE ... - */ - 'is_replace' => false, // @deprecated; use `querytype` - - /* - * SELECT ... - */ - 'is_select' => false, // @deprecated; use `querytype` - - /* - * SHOW ... - */ - 'is_show' => false, // @deprecated; use `querytype` - - /* - * Contains a subquery. - */ - 'is_subquery' => false, - - /* - * ... JOIN ... - */ - 'join' => false, - - /* - * ... LIMIT ... - */ - 'limit' => false, - - /* - * TODO - */ - 'offset' => false, - - /* - * ... ORDER ... - */ - 'order' => false, - - /* - * The type of the query (which is usually the first keyword of - * the statement). - */ - 'querytype' => false, - - /* - * Whether a page reload is required. - */ - 'reload' => false, - - /* - * SELECT ... FROM ... - */ - 'select_from' => false, - - /* - * ... UNION ... - */ - 'union' => false, - ]; - - /** - * Gets an array with flags select statement has. - * - * @param SelectStatement $statement the statement to be processed - * @param array $flags flags set so far - * - * @return array - */ - private static function getFlagsSelect($statement, $flags) - { - $flags['querytype'] = 'SELECT'; - $flags['is_select'] = true; - - if (! empty($statement->from)) { - $flags['select_from'] = true; - } - - if ($statement->options->has('DISTINCT')) { - $flags['distinct'] = true; - } - - if (! empty($statement->group) || ! empty($statement->having)) { - $flags['is_group'] = true; - } - - if (! empty($statement->into) - && ($statement->into->type === 'OUTFILE') - ) { - $flags['is_export'] = true; - } - - $expressions = $statement->expr; - if (! empty($statement->join)) { - foreach ($statement->join as $join) { - $expressions[] = $join->expr; - } - } - - foreach ($expressions as $expr) { - if (! empty($expr->function)) { - if ($expr->function === 'COUNT') { - $flags['is_count'] = true; - } elseif (in_array($expr->function, static::$FUNCTIONS)) { - $flags['is_func'] = true; - } - } - if (! empty($expr->subquery)) { - $flags['is_subquery'] = true; - } - } - - if (! empty($statement->procedure) - && ($statement->procedure->name === 'ANALYSE') - ) { - $flags['is_analyse'] = true; - } - - if (! empty($statement->group)) { - $flags['group'] = true; - } - - if (! empty($statement->having)) { - $flags['having'] = true; - } - - if (! empty($statement->union)) { - $flags['union'] = true; - } - - if (! empty($statement->join)) { - $flags['join'] = true; - } - - return $flags; - } - - /** - * Gets an array with flags this statement has. - * - * @param Statement|null $statement the statement to be processed - * @param bool $all if `false`, false values will not be included - * - * @return array - */ - public static function getFlags($statement, $all = false) - { - $flags = ['querytype' => false]; - if ($all) { - $flags = self::$ALLFLAGS; - } - - if ($statement instanceof AlterStatement) { - $flags['querytype'] = 'ALTER'; - $flags['reload'] = true; - } elseif ($statement instanceof CreateStatement) { - $flags['querytype'] = 'CREATE'; - $flags['reload'] = true; - } elseif ($statement instanceof AnalyzeStatement) { - $flags['querytype'] = 'ANALYZE'; - $flags['is_maint'] = true; - } elseif ($statement instanceof CheckStatement) { - $flags['querytype'] = 'CHECK'; - $flags['is_maint'] = true; - } elseif ($statement instanceof ChecksumStatement) { - $flags['querytype'] = 'CHECKSUM'; - $flags['is_maint'] = true; - } elseif ($statement instanceof OptimizeStatement) { - $flags['querytype'] = 'OPTIMIZE'; - $flags['is_maint'] = true; - } elseif ($statement instanceof RepairStatement) { - $flags['querytype'] = 'REPAIR'; - $flags['is_maint'] = true; - } elseif ($statement instanceof CallStatement) { - $flags['querytype'] = 'CALL'; - $flags['is_procedure'] = true; - } elseif ($statement instanceof DeleteStatement) { - $flags['querytype'] = 'DELETE'; - $flags['is_delete'] = true; - $flags['is_affected'] = true; - } elseif ($statement instanceof DropStatement) { - $flags['querytype'] = 'DROP'; - $flags['reload'] = true; - - if ($statement->options->has('DATABASE') - || $statement->options->has('SCHEMA') - ) { - $flags['drop_database'] = true; - } - } elseif ($statement instanceof ExplainStatement) { - $flags['querytype'] = 'EXPLAIN'; - $flags['is_explain'] = true; - } elseif ($statement instanceof InsertStatement) { - $flags['querytype'] = 'INSERT'; - $flags['is_affected'] = true; - $flags['is_insert'] = true; - } elseif ($statement instanceof LoadStatement) { - $flags['querytype'] = 'LOAD'; - $flags['is_affected'] = true; - $flags['is_insert'] = true; - } elseif ($statement instanceof ReplaceStatement) { - $flags['querytype'] = 'REPLACE'; - $flags['is_affected'] = true; - $flags['is_replace'] = true; - $flags['is_insert'] = true; - } elseif ($statement instanceof SelectStatement) { - $flags = self::getFlagsSelect($statement, $flags); - } elseif ($statement instanceof ShowStatement) { - $flags['querytype'] = 'SHOW'; - $flags['is_show'] = true; - } elseif ($statement instanceof UpdateStatement) { - $flags['querytype'] = 'UPDATE'; - $flags['is_affected'] = true; - } elseif ($statement instanceof SetStatement) { - $flags['querytype'] = 'SET'; - } - - if (($statement instanceof SelectStatement) - || ($statement instanceof UpdateStatement) - || ($statement instanceof DeleteStatement) - ) { - if (! empty($statement->limit)) { - $flags['limit'] = true; - } - if (! empty($statement->order)) { - $flags['order'] = true; - } - } - - return $flags; - } - - /** - * Parses a query and gets all information about it. - * - * @param string $query the query to be parsed - * - * @return array The array returned is the one returned by - * `static::getFlags()`, with the following keys added: - * - parser - the parser used to analyze the query; - * - statement - the first statement resulted from parsing; - * - select_tables - the real name of the tables selected; - * if there are no table names in the `SELECT` - * expressions, the table names are fetched from the - * `FROM` expressions - * - select_expr - selected expressions - */ - public static function getAll($query) - { - $parser = new Parser($query); - - if (empty($parser->statements[0])) { - return static::getFlags(null, true); - } - - $statement = $parser->statements[0]; - - $ret = static::getFlags($statement, true); - - $ret['parser'] = $parser; - $ret['statement'] = $statement; - - if ($statement instanceof SelectStatement) { - $ret['select_tables'] = []; - $ret['select_expr'] = []; - - // Finding tables' aliases and their associated real names. - $tableAliases = []; - foreach ($statement->from as $expr) { - if (isset($expr->table, $expr->alias) && ($expr->table !== '') && ($expr->alias !== '') - ) { - $tableAliases[$expr->alias] = [ - $expr->table, - isset($expr->database) ? $expr->database : null, - ]; - } - } - - // Trying to find selected tables only from the select expression. - // Sometimes, this is not possible because the tables aren't defined - // explicitly (e.g. SELECT * FROM film, SELECT film_id FROM film). - foreach ($statement->expr as $expr) { - if (isset($expr->table) && ($expr->table !== '')) { - if (isset($tableAliases[$expr->table])) { - $arr = $tableAliases[$expr->table]; - } else { - $arr = [ - $expr->table, - isset($expr->database) && ($expr->database !== '') ? - $expr->database : null, - ]; - } - if (! in_array($arr, $ret['select_tables'])) { - $ret['select_tables'][] = $arr; - } - } else { - $ret['select_expr'][] = $expr->expr; - } - } - - // If no tables names were found in the SELECT clause or if there - // are expressions like * or COUNT(*), etc. tables names should be - // extracted from the FROM clause. - if (empty($ret['select_tables'])) { - foreach ($statement->from as $expr) { - if (isset($expr->table) && ($expr->table !== '')) { - $arr = [ - $expr->table, - isset($expr->database) && ($expr->database !== '') ? - $expr->database : null, - ]; - if (! in_array($arr, $ret['select_tables'])) { - $ret['select_tables'][] = $arr; - } - } - } - } - } - - return $ret; - } - - /** - * Gets a list of all tables used in this statement. - * - * @param Statement $statement statement to be scanned - * - * @return array - */ - public static function getTables($statement) - { - $expressions = []; - - if (($statement instanceof InsertStatement) - || ($statement instanceof ReplaceStatement) - ) { - $expressions = [$statement->into->dest]; - } elseif ($statement instanceof UpdateStatement) { - $expressions = $statement->tables; - } elseif (($statement instanceof SelectStatement) - || ($statement instanceof DeleteStatement) - ) { - $expressions = $statement->from; - } elseif (($statement instanceof AlterStatement) - || ($statement instanceof TruncateStatement) - ) { - $expressions = [$statement->table]; - } elseif ($statement instanceof DropStatement) { - if (! $statement->options->has('TABLE')) { - // No tables are dropped. - return []; - } - $expressions = $statement->fields; - } elseif ($statement instanceof RenameStatement) { - foreach ($statement->renames as $rename) { - $expressions[] = $rename->old; - } - } - - $ret = []; - foreach ($expressions as $expr) { - if (! empty($expr->table)) { - $expr->expr = null; // Force rebuild. - $expr->alias = null; // Aliases are not required. - $ret[] = Expression::build($expr); - } - } - - return $ret; - } - - /** - * Gets a specific clause. - * - * @param Statement $statement the parsed query that has to be modified - * @param TokensList $list the list of tokens - * @param string $clause the clause to be returned - * @param int|string $type The type of the search. - * If int, - * -1 for everything that was before - * 0 only for the clause - * 1 for everything after - * If string, the name of the first clause that - * should not be included. - * @param bool $skipFirst whether to skip the first keyword in clause - * - * @return string - */ - public static function getClause($statement, $list, $clause, $type = 0, $skipFirst = true) - { - /** - * The index of the current clause. - * - * @var int - */ - $currIdx = 0; - - /** - * The count of brackets. - * We keep track of them so we won't insert the clause in a subquery. - * - * @var int - */ - $brackets = 0; - - /** - * The string to be returned. - * - * @var string - */ - $ret = ''; - - /** - * The clauses of this type of statement and their index. - * - * @var array - */ - $clauses = array_flip(array_keys($statement->getClauses())); - - /** - * Lexer used for lexing the clause. - * - * @var Lexer - */ - $lexer = new Lexer($clause); - - /** - * The type of this clause. - * - * @var string - */ - $clauseType = $lexer->list->getNextOfType(Token::TYPE_KEYWORD)->keyword; - - /** - * The index of this clause. - * - * @var int - */ - $clauseIdx = isset($clauses[$clauseType]) ? $clauses[$clauseType] : -1; - - $firstClauseIdx = $clauseIdx; - $lastClauseIdx = $clauseIdx; - - // Determining the behavior of this function. - if ($type === -1) { - $firstClauseIdx = -1; // Something small enough. - $lastClauseIdx = $clauseIdx - 1; - } elseif ($type === 1) { - $firstClauseIdx = $clauseIdx + 1; - $lastClauseIdx = 10000; // Something big enough. - } elseif (is_string($type) && isset($clauses[$type])) { - if ($clauses[$type] > $clauseIdx) { - $firstClauseIdx = $clauseIdx + 1; - $lastClauseIdx = $clauses[$type] - 1; - } else { - $firstClauseIdx = $clauses[$type] + 1; - $lastClauseIdx = $clauseIdx - 1; - } - } - - // This option is unavailable for multiple clauses. - if ($type !== 0) { - $skipFirst = false; - } - - for ($i = $statement->first; $i <= $statement->last; ++$i) { - $token = $list->tokens[$i]; - - if ($token->type === Token::TYPE_COMMENT) { - continue; - } - - if ($token->type === Token::TYPE_OPERATOR) { - if ($token->value === '(') { - ++$brackets; - } elseif ($token->value === ')') { - --$brackets; - } - } - - if ($brackets === 0) { - // Checking if the section was changed. - if (($token->type === Token::TYPE_KEYWORD) - && isset($clauses[$token->keyword]) - && ($clauses[$token->keyword] >= $currIdx) - ) { - $currIdx = $clauses[$token->keyword]; - if ($skipFirst && ($currIdx === $clauseIdx)) { - // This token is skipped (not added to the old - // clause) because it will be replaced. - continue; - } - } - } - - if (($firstClauseIdx <= $currIdx) && ($currIdx <= $lastClauseIdx)) { - $ret .= $token->token; - } - } - - return trim($ret); - } - - /** - * Builds a query by rebuilding the statement from the tokens list supplied - * and replaces a clause. - * - * It is a very basic version of a query builder. - * - * @param Statement $statement the parsed query that has to be modified - * @param TokensList $list the list of tokens - * @param string $old The type of the clause that should be - * replaced. This can be an entire clause. - * @param string $new The new clause. If this parameter is omitted - * it is considered to be equal with `$old`. - * @param bool $onlyType whether only the type of the clause should - * be replaced or the entire clause - * - * @return string - */ - public static function replaceClause($statement, $list, $old, $new = null, $onlyType = false) - { - // TODO: Update the tokens list and the statement. - - if ($new === null) { - $new = $old; - } - - if ($onlyType) { - return static::getClause($statement, $list, $old, -1, false) . ' ' . - $new . ' ' . static::getClause($statement, $list, $old, 0) . ' ' . - static::getClause($statement, $list, $old, 1, false); - } - - return static::getClause($statement, $list, $old, -1, false) . ' ' . - $new . ' ' . static::getClause($statement, $list, $old, 1, false); - } - - /** - * Builds a query by rebuilding the statement from the tokens list supplied - * and replaces multiple clauses. - * - * @param Statement $statement the parsed query that has to be modified - * @param TokensList $list the list of tokens - * @param array $ops Clauses to be replaced. Contains multiple - * arrays having two values: [$old, $new]. - * Clauses must be sorted. - * - * @return string - */ - public static function replaceClauses($statement, $list, array $ops) - { - $count = count($ops); - - // Nothing to do. - if ($count === 0) { - return ''; - } - - /** - * Value to be returned. - * - * @var string - */ - $ret = ''; - - // If there is only one clause, `replaceClause()` should be used. - if ($count === 1) { - return static::replaceClause( - $statement, - $list, - $ops[0][0], - $ops[0][1] - ); - } - - // Adding everything before first replacement. - $ret .= static::getClause($statement, $list, $ops[0][0], -1) . ' '; - - // Doing replacements. - foreach ($ops as $i => $clause) { - $ret .= $clause[1] . ' '; - - // Adding everything between this and next replacement. - if ($i + 1 !== $count) { - $ret .= static::getClause($statement, $list, $clause[0], $ops[$i + 1][0]) . ' '; - } - } - - // Adding everything after the last replacement. - $ret .= static::getClause($statement, $list, $ops[$count - 1][0], 1); - - return $ret; - } - - /** - * Gets the first full statement in the query. - * - * @param string $query the query to be analyzed - * @param string $delimiter the delimiter to be used - * - * @return array array containing the first full query, the - * remaining part of the query and the last - * delimiter - */ - public static function getFirstStatement($query, $delimiter = null) - { - $lexer = new Lexer($query, false, $delimiter); - $list = $lexer->list; - - /** - * Whether a full statement was found. - * - * @var bool - */ - $fullStatement = false; - - /** - * The first full statement. - * - * @var string - */ - $statement = ''; - - for ($list->idx = 0; $list->idx < $list->count; ++$list->idx) { - $token = $list->tokens[$list->idx]; - - if ($token->type === Token::TYPE_COMMENT) { - continue; - } - - $statement .= $token->token; - - if (($token->type === Token::TYPE_DELIMITER) && ! empty($token->token)) { - $delimiter = $token->token; - $fullStatement = true; - break; - } - } - - // No statement was found so we return the entire query as being the - // remaining part. - if (! $fullStatement) { - return [ - null, - $query, - $delimiter, - ]; - } - - // At least one query was found so we have to build the rest of the - // remaining query. - $query = ''; - for (++$list->idx; $list->idx < $list->count; ++$list->idx) { - $query .= $list->tokens[$list->idx]->token; - } - - return [ - trim($statement), - $query, - $delimiter, - ]; - } - - /** - * Gets a starting offset of a specific clause. - * - * @param Statement $statement the parsed query that has to be modified - * @param TokensList $list the list of tokens - * @param string $clause the clause to be returned - * - * @return int - */ - public static function getClauseStartOffset($statement, $list, $clause) - { - /** - * The count of brackets. - * We keep track of them so we won't insert the clause in a subquery. - * - * @var int - */ - $brackets = 0; - - /** - * The clauses of this type of statement and their index. - * - * @var array - */ - $clauses = array_flip(array_keys($statement->getClauses())); - - for ($i = $statement->first; $i <= $statement->last; ++$i) { - $token = $list->tokens[$i]; - - if ($token->type === Token::TYPE_COMMENT) { - continue; - } - - if ($token->type === Token::TYPE_OPERATOR) { - if ($token->value === '(') { - ++$brackets; - } elseif ($token->value === ')') { - --$brackets; - } - } - - if ($brackets === 0) { - if (($token->type === Token::TYPE_KEYWORD) - && isset($clauses[$token->keyword]) - && ($clause === $token->keyword) - ) { - return $i; - } elseif ($token->keyword === 'UNION') { - return -1; - } - } - } - - return -1; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Routine.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Routine.php deleted file mode 100644 index 7c024c5..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Routine.php +++ /dev/null @@ -1,139 +0,0 @@ -list); - - if ($type === null) { - return [ - '', - '', - '', - '', - '', - ]; - } - - $options = []; - foreach ($type->options->options as $opt) { - $options[] = is_string($opt) ? $opt : $opt['value']; - } - - return [ - '', - '', - $type->name, - implode(',', $type->parameters), - implode(' ', $options), - ]; - } - - /** - * Parses a parameter of a routine. - * - * @param string $param parameter's definition - * - * @return array - */ - public static function getParameter($param) - { - $lexer = new Lexer('(' . $param . ')'); - - // A dummy parser is used for error reporting. - $param = ParameterDefinition::parse(new Parser(), $lexer->list); - - if (empty($param[0])) { - return [ - '', - '', - '', - '', - '', - ]; - } - - $param = $param[0]; - - $options = []; - foreach ($param->type->options->options as $opt) { - $options[] = is_string($opt) ? $opt : $opt['value']; - } - - return [ - empty($param->inOut) ? '' : $param->inOut, - $param->name, - $param->type->name, - implode(',', $param->type->parameters), - implode(' ', $options), - ]; - } - - /** - * Gets the parameters of a routine from the parse tree. - * - * @param CreateStatement $statement the statement to be processed - * - * @return array - */ - public static function getParameters($statement) - { - $retval = [ - 'num' => 0, - 'dir' => [], - 'name' => [], - 'type' => [], - 'length' => [], - 'length_arr' => [], - 'opts' => [], - ]; - - if (! empty($statement->parameters)) { - $idx = 0; - foreach ($statement->parameters as $param) { - $retval['dir'][$idx] = $param->inOut; - $retval['name'][$idx] = $param->name; - $retval['type'][$idx] = $param->type->name; - $retval['length'][$idx] = implode(',', $param->type->parameters); - $retval['length_arr'][$idx] = $param->type->parameters; - $retval['opts'][$idx] = []; - foreach ($param->type->options->options as $opt) { - $retval['opts'][$idx][] = is_string($opt) ? - $opt : $opt['value']; - } - $retval['opts'][$idx] = implode(' ', $retval['opts'][$idx]); - ++$idx; - } - - $retval['num'] = $idx; - } - - return $retval; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Table.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Table.php deleted file mode 100644 index 168061d..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Table.php +++ /dev/null @@ -1,131 +0,0 @@ -fields) - || (! is_array($statement->fields)) - || (! $statement->options->has('TABLE')) - ) { - return []; - } - - $ret = []; - - foreach ($statement->fields as $field) { - if (empty($field->key) || ($field->key->type !== 'FOREIGN KEY')) { - continue; - } - - $columns = []; - foreach ($field->key->columns as $column) { - $columns[] = $column['name']; - } - - $tmp = [ - 'constraint' => $field->name, - 'index_list' => $columns, - ]; - - if (! empty($field->references)) { - $tmp['ref_db_name'] = $field->references->table->database; - $tmp['ref_table_name'] = $field->references->table->table; - $tmp['ref_index_list'] = $field->references->columns; - - if ($opt = $field->references->options->has('ON UPDATE')) { - $tmp['on_update'] = str_replace(' ', '_', $opt); - } - - if ($opt = $field->references->options->has('ON DELETE')) { - $tmp['on_delete'] = str_replace(' ', '_', $opt); - } - - // if (($opt = $field->references->options->has('MATCH'))) { - // $tmp['match'] = str_replace(' ', '_', $opt); - // } - } - - $ret[] = $tmp; - } - - return $ret; - } - - /** - * Gets fields of the table. - * - * @param CreateStatement $statement the statement to be processed - * - * @return array - */ - public static function getFields($statement) - { - if (empty($statement->fields) - || (! is_array($statement->fields)) - || (! $statement->options->has('TABLE')) - ) { - return []; - } - - $ret = []; - - foreach ($statement->fields as $field) { - // Skipping keys. - if (empty($field->type)) { - continue; - } - - $ret[$field->name] = [ - 'type' => $field->type->name, - 'timestamp_not_null' => false, - ]; - - if ($field->options) { - if ($field->type->name === 'TIMESTAMP') { - if ($field->options->has('NOT NULL')) { - $ret[$field->name]['timestamp_not_null'] = true; - } - } - - if ($option = $field->options->has('DEFAULT')) { - $ret[$field->name]['default_value'] = $option; - if ($option === 'CURRENT_TIMESTAMP') { - $ret[$field->name]['default_current_timestamp'] = true; - } - } - - if ($option = $field->options->has('ON UPDATE')) { - if ($option === 'CURRENT_TIMESTAMP') { - $ret[$field->name]['on_update_current_timestamp'] = true; - } - } - - if ($option = $field->options->has('AS')) { - $ret[$field->name]['generated'] = true; - $ret[$field->name]['expr'] = $option; - } - } - } - - return $ret; - } -} diff --git a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Tokens.php b/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Tokens.php deleted file mode 100644 index e823114..0000000 --- a/srcs/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Utils/Tokens.php +++ /dev/null @@ -1,164 +0,0 @@ -token) - ) { - return false; - } - - // Value. - if (isset($pattern['value']) - && ($pattern['value'] !== $token->value) - ) { - return false; - } - - if (isset($pattern['value_str']) - && strcasecmp($pattern['value_str'], (string) $token->value) - ) { - return false; - } - - // Type. - if (isset($pattern['type']) - && ($pattern['type'] !== $token->type) - ) { - return false; - } - - // Flags. - if (isset($pattern['flags']) - && (($pattern['flags'] & $token->flags) === 0) - ) { - return false; - } - - return true; - } - - public static function replaceTokens($list, array $find, array $replace) - { - /** - * Whether the first parameter is a list. - * - * @var bool - */ - $isList = $list instanceof TokensList; - - // Parsing the tokens. - if (! $isList) { - $list = Lexer::getTokens($list); - } - - /** - * The list to be returned. - * - * @var array - */ - $newList = []; - - /** - * The length of the find pattern is calculated only once. - * - * @var int - */ - $findCount = count($find); - - /** - * The starting index of the pattern. - * - * @var int - */ - $i = 0; - - while ($i < $list->count) { - // A sequence may not start with a comment. - if ($list->tokens[$i]->type === Token::TYPE_COMMENT) { - $newList[] = $list->tokens[$i]; - ++$i; - continue; - } - - /** - * The index used to parse `$list->tokens`. - * - * This index might be running faster than `$k` because some tokens - * are skipped. - * - * @var int - */ - $j = $i; - - /** - * The index used to parse `$find`. - * - * This index might be running slower than `$j` because some tokens - * are skipped. - * - * @var int - */ - $k = 0; - - // Checking if the next tokens match the pattern described. - while (($j < $list->count) && ($k < $findCount)) { - // Comments are being skipped. - if ($list->tokens[$j]->type === Token::TYPE_COMMENT) { - ++$j; - } - - if (! static::match($list->tokens[$j], $find[$k])) { - // This token does not match the pattern. - break; - } - - // Going to next token and segment of find pattern. - ++$j; - ++$k; - } - - // Checking if the sequence was found. - if ($k === $findCount) { - // Inserting new tokens. - foreach ($replace as $token) { - $newList[] = $token; - } - - // Skipping next `$findCount` tokens. - $i = $j; - } else { - // Adding the same token. - $newList[] = $list->tokens[$i]; - ++$i; - } - } - - return $isList ? - new TokensList($newList) : TokensList::build($newList); - } -} diff --git a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/AUTHORS b/srcs/phpmyadmin/vendor/phpseclib/phpseclib/AUTHORS deleted file mode 100644 index a08b309..0000000 --- a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/AUTHORS +++ /dev/null @@ -1,6 +0,0 @@ -phpseclib Lead Developer: TerraFrost (Jim Wigginton) - -phpseclib Developers: monnerat (Patrick Monnerat) - bantu (Andreas Fischer) - petrich (Hans-Jürgen Petrich) - GrahamCampbell (Graham Campbell) diff --git a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/BACKERS.md b/srcs/phpmyadmin/vendor/phpseclib/phpseclib/BACKERS.md deleted file mode 100644 index e9f3784..0000000 --- a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/BACKERS.md +++ /dev/null @@ -1,7 +0,0 @@ -# Backers - -phpseclib ongoing development is made possible by [Tidelift](https://tidelift.com/subscription/pkg/packagist-phpseclib-phpseclib?utm_source=packagist-phpseclib-phpseclib&utm_medium=referral&utm_campaign=readme) and by contributions by users like you. Thank you. - -## Backers - -- Zane Hooper \ No newline at end of file diff --git a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/LICENSE b/srcs/phpmyadmin/vendor/phpseclib/phpseclib/LICENSE deleted file mode 100644 index e7214eb..0000000 --- a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2011-2019 TerraFrost and other contributors - -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. \ No newline at end of file diff --git a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/README.md b/srcs/phpmyadmin/vendor/phpseclib/phpseclib/README.md deleted file mode 100644 index ce201c9..0000000 --- a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/README.md +++ /dev/null @@ -1,87 +0,0 @@ -# phpseclib - PHP Secure Communications Library - -[![Build Status](https://travis-ci.org/phpseclib/phpseclib.svg?branch=2.0)](https://travis-ci.org/phpseclib/phpseclib) - -## Supporting phpseclib - -- [Become a backer or sponsor on Patreon](https://www.patreon.com/phpseclib) -- [One-time donation via PayPal or crypto-currencies](http://sourceforge.net/donate/index.php?group_id=198487) -- [Subscribe to Tidelift](https://tidelift.com/subscription/pkg/packagist-phpseclib-phpseclib?utm_source=packagist-phpseclib-phpseclib&utm_medium=referral&utm_campaign=readme) - -## Introduction - -MIT-licensed pure-PHP implementations of an arbitrary-precision integer -arithmetic library, fully PKCS#1 (v2.1) compliant RSA, DES, 3DES, RC4, Rijndael, -AES, Blowfish, Twofish, SSH-1, SSH-2, SFTP, and X.509 - -* [Browse Git](https://github.com/phpseclib/phpseclib) -* [Code Coverage Report](https://coverage.phpseclib.org/2.0/latest/) - -## Documentation - -* [Documentation / Manual](http://phpseclib.sourceforge.net/) -* [API Documentation](https://api.phpseclib.org/2.0/) (generated by Sami) - -## Branches - -### master - -* Development Branch -* Unstable API -* Do not use in production - -### 2.0 - -* Long term support (LTS) release -* Modernized version of 1.0 -* Minimum PHP version: 5.3.3 -* PSR-4 autoloading with namespace rooted at `\phpseclib` -* Install via Composer: `composer require phpseclib/phpseclib:~2.0` - -### 1.0 - -* Long term support (LTS) release -* PHP4 compatible -* Composer compatible (PSR-0 autoloading) -* Install using Composer: `composer require phpseclib/phpseclib:~1.0` -* Install using PEAR: See [phpseclib PEAR Channel Documentation](http://phpseclib.sourceforge.net/pear.htm) -* [Download 1.0.17 as ZIP](http://sourceforge.net/projects/phpseclib/files/phpseclib1.0.17.zip/download) - -## Security contact information - -To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure. - -## Support - -Need Support? - -* [Checkout Questions and Answers on Stack Overflow](http://stackoverflow.com/questions/tagged/phpseclib) -* [Create a Support Ticket on GitHub](https://github.com/phpseclib/phpseclib/issues/new) -* [Browse the Support Forum](http://www.frostjedi.com/phpbb/viewforum.php?f=46) (no longer in use) - -## Contributing - -1. Fork the Project - -2. Ensure you have Composer installed (see [Composer Download Instructions](https://getcomposer.org/download/)) - -3. Install Development Dependencies - - ``` sh - composer install - ``` - -4. Create a Feature Branch - -5. (Recommended) Run the Test Suite - - ``` sh - vendor/bin/phpunit - ``` -6. (Recommended) Check whether your code conforms to our Coding Standards by running - - ``` sh - vendor/bin/phing -f build/build.xml sniff - ``` - -7. Send us a Pull Request diff --git a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/appveyor.yml b/srcs/phpmyadmin/vendor/phpseclib/phpseclib/appveyor.yml deleted file mode 100644 index 210a903..0000000 --- a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/appveyor.yml +++ /dev/null @@ -1,27 +0,0 @@ -build: false -shallow_clone: false -platform: - - x86 - - x64 -clone_folder: C:\projects\phpseclib - -install: - - cinst -y OpenSSL.Light - - SET PATH=C:\Program Files\OpenSSL;%PATH% - - sc config wuauserv start= auto - - net start wuauserv - - cinst -y php --version 5.6.30 - - cd c:\tools\php56 - - copy php.ini-production php.ini - - echo date.timezone="UTC" >> php.ini - - echo extension_dir=ext >> php.ini - - echo extension=php_openssl.dll >> php.ini - - echo extension=php_gmp.dll >> php.ini - - cd C:\projects\phpseclib - - SET PATH=C:\tools\php56;%PATH% - - php.exe -r "readfile('http://getcomposer.org/installer');" | php.exe - - php.exe composer.phar install --prefer-source --no-interaction - -test_script: - - cd C:\projects\phpseclib - - vendor\bin\phpunit.bat tests/Windows32Test.php \ No newline at end of file diff --git a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/composer.json b/srcs/phpmyadmin/vendor/phpseclib/phpseclib/composer.json deleted file mode 100644 index b4e8a1c..0000000 --- a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/composer.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "name": "phpseclib/phpseclib", - "type": "library", - "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.", - "keywords": [ - "security", - "crypto", - "cryptography", - "encryption", - "signature", - "signing", - "rsa", - "aes", - "blowfish", - "twofish", - "ssh", - "sftp", - "x509", - "x.509", - "asn1", - "asn.1", - "BigInteger" - ], - "homepage": "http://phpseclib.sourceforge.net", - "license": "MIT", - "authors": [ - { - "name": "Jim Wigginton", - "email": "terrafrost@php.net", - "role": "Lead Developer" - }, - { - "name": "Patrick Monnerat", - "email": "pm@datasphere.ch", - "role": "Developer" - }, - { - "name": "Andreas Fischer", - "email": "bantu@phpbb.com", - "role": "Developer" - }, - { - "name": "Hans-Jürgen Petrich", - "email": "petrich@tronic-media.com", - "role": "Developer" - }, - { - "name": "Graham Campbell", - "email": "graham@alt-three.com", - "role": "Developer" - } - ], - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phing/phing": "~2.7", - "phpunit/phpunit": "^4.8.35|^5.7|^6.0", - "sami/sami": "~2.0", - "squizlabs/php_codesniffer": "~2.0" - }, - "suggest": { - "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.", - "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations.", - "ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.", - "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations." - }, - "autoload": { - "files": [ - "phpseclib/bootstrap.php" - ], - "psr-4": { - "phpseclib\\": "phpseclib/" - } - } -} diff --git a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/Crypt/AES.php b/srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/Crypt/AES.php deleted file mode 100644 index 7d8cb8b..0000000 --- a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/Crypt/AES.php +++ /dev/null @@ -1,126 +0,0 @@ - - * setKey('abcdefghijklmnop'); - * - * $size = 10 * 1024; - * $plaintext = ''; - * for ($i = 0; $i < $size; $i++) { - * $plaintext.= 'a'; - * } - * - * echo $aes->decrypt($aes->encrypt($plaintext)); - * ?> - * - * - * @category Crypt - * @package AES - * @author Jim Wigginton - * @copyright 2008 Jim Wigginton - * @license http://www.opensource.org/licenses/mit-license.html MIT License - * @link http://phpseclib.sourceforge.net - */ - -namespace phpseclib\Crypt; - -/** - * Pure-PHP implementation of AES. - * - * @package AES - * @author Jim Wigginton - * @access public - */ -class AES extends Rijndael -{ - /** - * Dummy function - * - * Since \phpseclib\Crypt\AES extends \phpseclib\Crypt\Rijndael, this function is, technically, available, but it doesn't do anything. - * - * @see \phpseclib\Crypt\Rijndael::setBlockLength() - * @access public - * @param int $length - */ - function setBlockLength($length) - { - return; - } - - /** - * Sets the key length - * - * Valid key lengths are 128, 192, and 256. If the length is less than 128, it will be rounded up to - * 128. If the length is greater than 128 and invalid, it will be rounded down to the closest valid amount. - * - * @see \phpseclib\Crypt\Rijndael:setKeyLength() - * @access public - * @param int $length - */ - function setKeyLength($length) - { - switch ($length) { - case 160: - $length = 192; - break; - case 224: - $length = 256; - } - parent::setKeyLength($length); - } - - /** - * Sets the key. - * - * Rijndael supports five different key lengths, AES only supports three. - * - * @see \phpseclib\Crypt\Rijndael:setKey() - * @see setKeyLength() - * @access public - * @param string $key - */ - function setKey($key) - { - parent::setKey($key); - - if (!$this->explicit_key_length) { - $length = strlen($key); - switch (true) { - case $length <= 16: - $this->key_length = 16; - break; - case $length <= 24: - $this->key_length = 24; - break; - default: - $this->key_length = 32; - } - $this->_setEngine(); - } - } -} diff --git a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/Crypt/Base.php b/srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/Crypt/Base.php deleted file mode 100644 index 03b176e..0000000 --- a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/Crypt/Base.php +++ /dev/null @@ -1,2708 +0,0 @@ - - * @author Hans-Juergen Petrich - * @copyright 2007 Jim Wigginton - * @license http://www.opensource.org/licenses/mit-license.html MIT License - * @link http://phpseclib.sourceforge.net - */ - -namespace phpseclib\Crypt; - -/** - * Base Class for all \phpseclib\Crypt\* cipher classes - * - * @package Base - * @author Jim Wigginton - * @author Hans-Juergen Petrich - */ -abstract class Base -{ - /**#@+ - * @access public - * @see \phpseclib\Crypt\Base::encrypt() - * @see \phpseclib\Crypt\Base::decrypt() - */ - /** - * Encrypt / decrypt using the Counter mode. - * - * Set to -1 since that's what Crypt/Random.php uses to index the CTR mode. - * - * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Counter_.28CTR.29 - */ - const MODE_CTR = -1; - /** - * Encrypt / decrypt using the Electronic Code Book mode. - * - * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29 - */ - const MODE_ECB = 1; - /** - * Encrypt / decrypt using the Code Book Chaining mode. - * - * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29 - */ - const MODE_CBC = 2; - /** - * Encrypt / decrypt using the Cipher Feedback mode. - * - * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher_feedback_.28CFB.29 - */ - const MODE_CFB = 3; - /** - * Encrypt / decrypt using the Cipher Feedback mode (8bit) - */ - const MODE_CFB8 = 38; - /** - * Encrypt / decrypt using the Output Feedback mode. - * - * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Output_feedback_.28OFB.29 - */ - const MODE_OFB = 4; - /** - * Encrypt / decrypt using streaming mode. - */ - const MODE_STREAM = 5; - /**#@-*/ - - /** - * Whirlpool available flag - * - * @see \phpseclib\Crypt\Base::_hashInlineCryptFunction() - * @var bool - * @access private - */ - static $WHIRLPOOL_AVAILABLE; - - /**#@+ - * @access private - * @see \phpseclib\Crypt\Base::__construct() - */ - /** - * Base value for the internal implementation $engine switch - */ - const ENGINE_INTERNAL = 1; - /** - * Base value for the mcrypt implementation $engine switch - */ - const ENGINE_MCRYPT = 2; - /** - * Base value for the mcrypt implementation $engine switch - */ - const ENGINE_OPENSSL = 3; - /**#@-*/ - - /** - * The Encryption Mode - * - * @see self::__construct() - * @var int - * @access private - */ - var $mode; - - /** - * The Block Length of the block cipher - * - * @var int - * @access private - */ - var $block_size = 16; - - /** - * The Key - * - * @see self::setKey() - * @var string - * @access private - */ - var $key = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; - - /** - * The Initialization Vector - * - * @see self::setIV() - * @var string - * @access private - */ - var $iv; - - /** - * A "sliding" Initialization Vector - * - * @see self::enableContinuousBuffer() - * @see self::_clearBuffers() - * @var string - * @access private - */ - var $encryptIV; - - /** - * A "sliding" Initialization Vector - * - * @see self::enableContinuousBuffer() - * @see self::_clearBuffers() - * @var string - * @access private - */ - var $decryptIV; - - /** - * Continuous Buffer status - * - * @see self::enableContinuousBuffer() - * @var bool - * @access private - */ - var $continuousBuffer = false; - - /** - * Encryption buffer for CTR, OFB and CFB modes - * - * @see self::encrypt() - * @see self::_clearBuffers() - * @var array - * @access private - */ - var $enbuffer; - - /** - * Decryption buffer for CTR, OFB and CFB modes - * - * @see self::decrypt() - * @see self::_clearBuffers() - * @var array - * @access private - */ - var $debuffer; - - /** - * mcrypt resource for encryption - * - * The mcrypt resource can be recreated every time something needs to be created or it can be created just once. - * Since mcrypt operates in continuous mode, by default, it'll need to be recreated when in non-continuous mode. - * - * @see self::encrypt() - * @var resource - * @access private - */ - var $enmcrypt; - - /** - * mcrypt resource for decryption - * - * The mcrypt resource can be recreated every time something needs to be created or it can be created just once. - * Since mcrypt operates in continuous mode, by default, it'll need to be recreated when in non-continuous mode. - * - * @see self::decrypt() - * @var resource - * @access private - */ - var $demcrypt; - - /** - * Does the enmcrypt resource need to be (re)initialized? - * - * @see \phpseclib\Crypt\Twofish::setKey() - * @see \phpseclib\Crypt\Twofish::setIV() - * @var bool - * @access private - */ - var $enchanged = true; - - /** - * Does the demcrypt resource need to be (re)initialized? - * - * @see \phpseclib\Crypt\Twofish::setKey() - * @see \phpseclib\Crypt\Twofish::setIV() - * @var bool - * @access private - */ - var $dechanged = true; - - /** - * mcrypt resource for CFB mode - * - * mcrypt's CFB mode, in (and only in) buffered context, - * is broken, so phpseclib implements the CFB mode by it self, - * even when the mcrypt php extension is available. - * - * In order to do the CFB-mode work (fast) phpseclib - * use a separate ECB-mode mcrypt resource. - * - * @link http://phpseclib.sourceforge.net/cfb-demo.phps - * @see self::encrypt() - * @see self::decrypt() - * @see self::_setupMcrypt() - * @var resource - * @access private - */ - var $ecb; - - /** - * Optimizing value while CFB-encrypting - * - * Only relevant if $continuousBuffer enabled - * and $engine == self::ENGINE_MCRYPT - * - * It's faster to re-init $enmcrypt if - * $buffer bytes > $cfb_init_len than - * using the $ecb resource furthermore. - * - * This value depends of the chosen cipher - * and the time it would be needed for it's - * initialization [by mcrypt_generic_init()] - * which, typically, depends on the complexity - * on its internaly Key-expanding algorithm. - * - * @see self::encrypt() - * @var int - * @access private - */ - var $cfb_init_len = 600; - - /** - * Does internal cipher state need to be (re)initialized? - * - * @see self::setKey() - * @see self::setIV() - * @see self::disableContinuousBuffer() - * @var bool - * @access private - */ - var $changed = true; - - /** - * Padding status - * - * @see self::enablePadding() - * @var bool - * @access private - */ - var $padding = true; - - /** - * Is the mode one that is paddable? - * - * @see self::__construct() - * @var bool - * @access private - */ - var $paddable = false; - - /** - * Holds which crypt engine internaly should be use, - * which will be determined automatically on __construct() - * - * Currently available $engines are: - * - self::ENGINE_OPENSSL (very fast, php-extension: openssl, extension_loaded('openssl') required) - * - self::ENGINE_MCRYPT (fast, php-extension: mcrypt, extension_loaded('mcrypt') required) - * - self::ENGINE_INTERNAL (slower, pure php-engine, no php-extension required) - * - * @see self::_setEngine() - * @see self::encrypt() - * @see self::decrypt() - * @var int - * @access private - */ - var $engine; - - /** - * Holds the preferred crypt engine - * - * @see self::_setEngine() - * @see self::setPreferredEngine() - * @var int - * @access private - */ - var $preferredEngine; - - /** - * The mcrypt specific name of the cipher - * - * Only used if $engine == self::ENGINE_MCRYPT - * - * @link http://www.php.net/mcrypt_module_open - * @link http://www.php.net/mcrypt_list_algorithms - * @see self::_setupMcrypt() - * @var string - * @access private - */ - var $cipher_name_mcrypt; - - /** - * The openssl specific name of the cipher - * - * Only used if $engine == self::ENGINE_OPENSSL - * - * @link http://www.php.net/openssl-get-cipher-methods - * @var string - * @access private - */ - var $cipher_name_openssl; - - /** - * The openssl specific name of the cipher in ECB mode - * - * If OpenSSL does not support the mode we're trying to use (CTR) - * it can still be emulated with ECB mode. - * - * @link http://www.php.net/openssl-get-cipher-methods - * @var string - * @access private - */ - var $cipher_name_openssl_ecb; - - /** - * The default salt used by setPassword() - * - * @see self::setPassword() - * @var string - * @access private - */ - var $password_default_salt = 'phpseclib/salt'; - - /** - * The name of the performance-optimized callback function - * - * Used by encrypt() / decrypt() - * only if $engine == self::ENGINE_INTERNAL - * - * @see self::encrypt() - * @see self::decrypt() - * @see self::_setupInlineCrypt() - * @see self::$use_inline_crypt - * @var Callback - * @access private - */ - var $inline_crypt; - - /** - * Holds whether performance-optimized $inline_crypt() can/should be used. - * - * @see self::encrypt() - * @see self::decrypt() - * @see self::inline_crypt - * @var mixed - * @access private - */ - var $use_inline_crypt; - - /** - * If OpenSSL can be used in ECB but not in CTR we can emulate CTR - * - * @see self::_openssl_ctr_process() - * @var bool - * @access private - */ - var $openssl_emulate_ctr = false; - - /** - * Determines what options are passed to openssl_encrypt/decrypt - * - * @see self::isValidEngine() - * @var mixed - * @access private - */ - var $openssl_options; - - /** - * Has the key length explicitly been set or should it be derived from the key, itself? - * - * @see self::setKeyLength() - * @var bool - * @access private - */ - var $explicit_key_length = false; - - /** - * Don't truncate / null pad key - * - * @see self::_clearBuffers() - * @var bool - * @access private - */ - var $skip_key_adjustment = false; - - /** - * Default Constructor. - * - * Determines whether or not the mcrypt extension should be used. - * - * $mode could be: - * - * - self::MODE_ECB - * - * - self::MODE_CBC - * - * - self::MODE_CTR - * - * - self::MODE_CFB - * - * - self::MODE_OFB - * - * If not explicitly set, self::MODE_CBC will be used. - * - * @param int $mode - * @access public - */ - function __construct($mode = self::MODE_CBC) - { - // $mode dependent settings - switch ($mode) { - case self::MODE_ECB: - $this->paddable = true; - $this->mode = self::MODE_ECB; - break; - case self::MODE_CTR: - case self::MODE_CFB: - case self::MODE_CFB8: - case self::MODE_OFB: - case self::MODE_STREAM: - $this->mode = $mode; - break; - case self::MODE_CBC: - default: - $this->paddable = true; - $this->mode = self::MODE_CBC; - } - - $this->_setEngine(); - - // Determining whether inline crypting can be used by the cipher - if ($this->use_inline_crypt !== false) { - $this->use_inline_crypt = version_compare(PHP_VERSION, '5.3.0') >= 0 || function_exists('create_function'); - } - } - - /** - * Sets the initialization vector. (optional) - * - * SetIV is not required when self::MODE_ECB (or ie for AES: \phpseclib\Crypt\AES::MODE_ECB) is being used. If not explicitly set, it'll be assumed - * to be all zero's. - * - * @access public - * @param string $iv - * @internal Can be overwritten by a sub class, but does not have to be - */ - function setIV($iv) - { - if ($this->mode == self::MODE_ECB) { - return; - } - - $this->iv = $iv; - $this->changed = true; - } - - /** - * Sets the key length. - * - * Keys with explicitly set lengths need to be treated accordingly - * - * @access public - * @param int $length - */ - function setKeyLength($length) - { - $this->explicit_key_length = true; - $this->changed = true; - $this->_setEngine(); - } - - /** - * Returns the current key length in bits - * - * @access public - * @return int - */ - function getKeyLength() - { - return $this->key_length << 3; - } - - /** - * Returns the current block length in bits - * - * @access public - * @return int - */ - function getBlockLength() - { - return $this->block_size << 3; - } - - /** - * Sets the key. - * - * The min/max length(s) of the key depends on the cipher which is used. - * If the key not fits the length(s) of the cipher it will paded with null bytes - * up to the closest valid key length. If the key is more than max length, - * we trim the excess bits. - * - * If the key is not explicitly set, it'll be assumed to be all null bytes. - * - * @access public - * @param string $key - * @internal Could, but not must, extend by the child Crypt_* class - */ - function setKey($key) - { - if (!$this->explicit_key_length) { - $this->setKeyLength(strlen($key) << 3); - $this->explicit_key_length = false; - } - - $this->key = $key; - $this->changed = true; - $this->_setEngine(); - } - - /** - * Sets the password. - * - * Depending on what $method is set to, setPassword()'s (optional) parameters are as follows: - * {@link http://en.wikipedia.org/wiki/PBKDF2 pbkdf2} or pbkdf1: - * $hash, $salt, $count, $dkLen - * - * Where $hash (default = sha1) currently supports the following hashes: see: Crypt/Hash.php - * - * @see Crypt/Hash.php - * @param string $password - * @param string $method - * @return bool - * @access public - * @internal Could, but not must, extend by the child Crypt_* class - */ - function setPassword($password, $method = 'pbkdf2') - { - $key = ''; - - switch ($method) { - default: // 'pbkdf2' or 'pbkdf1' - $func_args = func_get_args(); - - // Hash function - $hash = isset($func_args[2]) ? $func_args[2] : 'sha1'; - - // WPA and WPA2 use the SSID as the salt - $salt = isset($func_args[3]) ? $func_args[3] : $this->password_default_salt; - - // RFC2898#section-4.2 uses 1,000 iterations by default - // WPA and WPA2 use 4,096. - $count = isset($func_args[4]) ? $func_args[4] : 1000; - - // Keylength - if (isset($func_args[5])) { - $dkLen = $func_args[5]; - } else { - $dkLen = $method == 'pbkdf1' ? 2 * $this->key_length : $this->key_length; - } - - switch (true) { - case $method == 'pbkdf1': - $hashObj = new Hash(); - $hashObj->setHash($hash); - if ($dkLen > $hashObj->getLength()) { - user_error('Derived key too long'); - return false; - } - $t = $password . $salt; - for ($i = 0; $i < $count; ++$i) { - $t = $hashObj->hash($t); - } - $key = substr($t, 0, $dkLen); - - $this->setKey(substr($key, 0, $dkLen >> 1)); - $this->setIV(substr($key, $dkLen >> 1)); - - return true; - // Determining if php[>=5.5.0]'s hash_pbkdf2() function avail- and useable - case !function_exists('hash_pbkdf2'): - case !function_exists('hash_algos'): - case !in_array($hash, hash_algos()): - $i = 1; - $hmac = new Hash(); - $hmac->setHash($hash); - $hmac->setKey($password); - while (strlen($key) < $dkLen) { - $f = $u = $hmac->hash($salt . pack('N', $i++)); - for ($j = 2; $j <= $count; ++$j) { - $u = $hmac->hash($u); - $f^= $u; - } - $key.= $f; - } - $key = substr($key, 0, $dkLen); - break; - default: - $key = hash_pbkdf2($hash, $password, $salt, $count, $dkLen, true); - } - } - - $this->setKey($key); - - return true; - } - - /** - * Encrypts a message. - * - * $plaintext will be padded with additional bytes such that it's length is a multiple of the block size. Other cipher - * implementations may or may not pad in the same manner. Other common approaches to padding and the reasons why it's - * necessary are discussed in the following - * URL: - * - * {@link http://www.di-mgt.com.au/cryptopad.html http://www.di-mgt.com.au/cryptopad.html} - * - * An alternative to padding is to, separately, send the length of the file. This is what SSH, in fact, does. - * strlen($plaintext) will still need to be a multiple of the block size, however, arbitrary values can be added to make it that - * length. - * - * @see self::decrypt() - * @access public - * @param string $plaintext - * @return string $ciphertext - * @internal Could, but not must, extend by the child Crypt_* class - */ - function encrypt($plaintext) - { - if ($this->paddable) { - $plaintext = $this->_pad($plaintext); - } - - if ($this->engine === self::ENGINE_OPENSSL) { - if ($this->changed) { - $this->_clearBuffers(); - $this->changed = false; - } - switch ($this->mode) { - case self::MODE_STREAM: - return openssl_encrypt($plaintext, $this->cipher_name_openssl, $this->key, $this->openssl_options); - case self::MODE_ECB: - $result = @openssl_encrypt($plaintext, $this->cipher_name_openssl, $this->key, $this->openssl_options); - return !defined('OPENSSL_RAW_DATA') ? substr($result, 0, -$this->block_size) : $result; - case self::MODE_CBC: - $result = openssl_encrypt($plaintext, $this->cipher_name_openssl, $this->key, $this->openssl_options, $this->encryptIV); - if (!defined('OPENSSL_RAW_DATA')) { - $result = substr($result, 0, -$this->block_size); - } - if ($this->continuousBuffer) { - $this->encryptIV = substr($result, -$this->block_size); - } - return $result; - case self::MODE_CTR: - return $this->_openssl_ctr_process($plaintext, $this->encryptIV, $this->enbuffer); - case self::MODE_CFB: - // cfb loosely routines inspired by openssl's: - // {@link http://cvs.openssl.org/fileview?f=openssl/crypto/modes/cfb128.c&v=1.3.2.2.2.1} - $ciphertext = ''; - if ($this->continuousBuffer) { - $iv = &$this->encryptIV; - $pos = &$this->enbuffer['pos']; - } else { - $iv = $this->encryptIV; - $pos = 0; - } - $len = strlen($plaintext); - $i = 0; - if ($pos) { - $orig_pos = $pos; - $max = $this->block_size - $pos; - if ($len >= $max) { - $i = $max; - $len-= $max; - $pos = 0; - } else { - $i = $len; - $pos+= $len; - $len = 0; - } - // ie. $i = min($max, $len), $len-= $i, $pos+= $i, $pos%= $blocksize - $ciphertext = substr($iv, $orig_pos) ^ $plaintext; - $iv = substr_replace($iv, $ciphertext, $orig_pos, $i); - $plaintext = substr($plaintext, $i); - } - - $overflow = $len % $this->block_size; - - if ($overflow) { - $ciphertext.= openssl_encrypt(substr($plaintext, 0, -$overflow) . str_repeat("\0", $this->block_size), $this->cipher_name_openssl, $this->key, $this->openssl_options, $iv); - $iv = $this->_string_pop($ciphertext, $this->block_size); - - $size = $len - $overflow; - $block = $iv ^ substr($plaintext, -$overflow); - $iv = substr_replace($iv, $block, 0, $overflow); - $ciphertext.= $block; - $pos = $overflow; - } elseif ($len) { - $ciphertext = openssl_encrypt($plaintext, $this->cipher_name_openssl, $this->key, $this->openssl_options, $iv); - $iv = substr($ciphertext, -$this->block_size); - } - - return $ciphertext; - case self::MODE_CFB8: - $ciphertext = openssl_encrypt($plaintext, $this->cipher_name_openssl, $this->key, $this->openssl_options, $this->encryptIV); - if ($this->continuousBuffer) { - if (($len = strlen($ciphertext)) >= $this->block_size) { - $this->encryptIV = substr($ciphertext, -$this->block_size); - } else { - $this->encryptIV = substr($this->encryptIV, $len - $this->block_size) . substr($ciphertext, -$len); - } - } - return $ciphertext; - case self::MODE_OFB: - return $this->_openssl_ofb_process($plaintext, $this->encryptIV, $this->enbuffer); - } - } - - if ($this->engine === self::ENGINE_MCRYPT) { - if ($this->changed) { - $this->_setupMcrypt(); - $this->changed = false; - } - if ($this->enchanged) { - @mcrypt_generic_init($this->enmcrypt, $this->key, $this->encryptIV); - $this->enchanged = false; - } - - // re: {@link http://phpseclib.sourceforge.net/cfb-demo.phps} - // using mcrypt's default handing of CFB the above would output two different things. using phpseclib's - // rewritten CFB implementation the above outputs the same thing twice. - if ($this->mode == self::MODE_CFB && $this->continuousBuffer) { - $block_size = $this->block_size; - $iv = &$this->encryptIV; - $pos = &$this->enbuffer['pos']; - $len = strlen($plaintext); - $ciphertext = ''; - $i = 0; - if ($pos) { - $orig_pos = $pos; - $max = $block_size - $pos; - if ($len >= $max) { - $i = $max; - $len-= $max; - $pos = 0; - } else { - $i = $len; - $pos+= $len; - $len = 0; - } - $ciphertext = substr($iv, $orig_pos) ^ $plaintext; - $iv = substr_replace($iv, $ciphertext, $orig_pos, $i); - $this->enbuffer['enmcrypt_init'] = true; - } - if ($len >= $block_size) { - if ($this->enbuffer['enmcrypt_init'] === false || $len > $this->cfb_init_len) { - if ($this->enbuffer['enmcrypt_init'] === true) { - @mcrypt_generic_init($this->enmcrypt, $this->key, $iv); - $this->enbuffer['enmcrypt_init'] = false; - } - $ciphertext.= @mcrypt_generic($this->enmcrypt, substr($plaintext, $i, $len - $len % $block_size)); - $iv = substr($ciphertext, -$block_size); - $len%= $block_size; - } else { - while ($len >= $block_size) { - $iv = @mcrypt_generic($this->ecb, $iv) ^ substr($plaintext, $i, $block_size); - $ciphertext.= $iv; - $len-= $block_size; - $i+= $block_size; - } - } - } - - if ($len) { - $iv = @mcrypt_generic($this->ecb, $iv); - $block = $iv ^ substr($plaintext, -$len); - $iv = substr_replace($iv, $block, 0, $len); - $ciphertext.= $block; - $pos = $len; - } - - return $ciphertext; - } - - $ciphertext = @mcrypt_generic($this->enmcrypt, $plaintext); - - if (!$this->continuousBuffer) { - @mcrypt_generic_init($this->enmcrypt, $this->key, $this->encryptIV); - } - - return $ciphertext; - } - - if ($this->changed) { - $this->_setup(); - $this->changed = false; - } - if ($this->use_inline_crypt) { - $inline = $this->inline_crypt; - return $inline('encrypt', $this, $plaintext); - } - - $buffer = &$this->enbuffer; - $block_size = $this->block_size; - $ciphertext = ''; - switch ($this->mode) { - case self::MODE_ECB: - for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { - $ciphertext.= $this->_encryptBlock(substr($plaintext, $i, $block_size)); - } - break; - case self::MODE_CBC: - $xor = $this->encryptIV; - for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { - $block = substr($plaintext, $i, $block_size); - $block = $this->_encryptBlock($block ^ $xor); - $xor = $block; - $ciphertext.= $block; - } - if ($this->continuousBuffer) { - $this->encryptIV = $xor; - } - break; - case self::MODE_CTR: - $xor = $this->encryptIV; - if (strlen($buffer['ciphertext'])) { - for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { - $block = substr($plaintext, $i, $block_size); - if (strlen($block) > strlen($buffer['ciphertext'])) { - $buffer['ciphertext'].= $this->_encryptBlock($xor); - } - $this->_increment_str($xor); - $key = $this->_string_shift($buffer['ciphertext'], $block_size); - $ciphertext.= $block ^ $key; - } - } else { - for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { - $block = substr($plaintext, $i, $block_size); - $key = $this->_encryptBlock($xor); - $this->_increment_str($xor); - $ciphertext.= $block ^ $key; - } - } - if ($this->continuousBuffer) { - $this->encryptIV = $xor; - if ($start = strlen($plaintext) % $block_size) { - $buffer['ciphertext'] = substr($key, $start) . $buffer['ciphertext']; - } - } - break; - case self::MODE_CFB: - // cfb loosely routines inspired by openssl's: - // {@link http://cvs.openssl.org/fileview?f=openssl/crypto/modes/cfb128.c&v=1.3.2.2.2.1} - if ($this->continuousBuffer) { - $iv = &$this->encryptIV; - $pos = &$buffer['pos']; - } else { - $iv = $this->encryptIV; - $pos = 0; - } - $len = strlen($plaintext); - $i = 0; - if ($pos) { - $orig_pos = $pos; - $max = $block_size - $pos; - if ($len >= $max) { - $i = $max; - $len-= $max; - $pos = 0; - } else { - $i = $len; - $pos+= $len; - $len = 0; - } - // ie. $i = min($max, $len), $len-= $i, $pos+= $i, $pos%= $blocksize - $ciphertext = substr($iv, $orig_pos) ^ $plaintext; - $iv = substr_replace($iv, $ciphertext, $orig_pos, $i); - } - while ($len >= $block_size) { - $iv = $this->_encryptBlock($iv) ^ substr($plaintext, $i, $block_size); - $ciphertext.= $iv; - $len-= $block_size; - $i+= $block_size; - } - if ($len) { - $iv = $this->_encryptBlock($iv); - $block = $iv ^ substr($plaintext, $i); - $iv = substr_replace($iv, $block, 0, $len); - $ciphertext.= $block; - $pos = $len; - } - break; - case self::MODE_CFB8: - $ciphertext = ''; - $len = strlen($plaintext); - $iv = $this->encryptIV; - - for ($i = 0; $i < $len; ++$i) { - $ciphertext .= ($c = $plaintext[$i] ^ $this->_encryptBlock($iv)); - $iv = substr($iv, 1) . $c; - } - - if ($this->continuousBuffer) { - if ($len >= $block_size) { - $this->encryptIV = substr($ciphertext, -$block_size); - } else { - $this->encryptIV = substr($this->encryptIV, $len - $block_size) . substr($ciphertext, -$len); - } - } - break; - case self::MODE_OFB: - $xor = $this->encryptIV; - if (strlen($buffer['xor'])) { - for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { - $block = substr($plaintext, $i, $block_size); - if (strlen($block) > strlen($buffer['xor'])) { - $xor = $this->_encryptBlock($xor); - $buffer['xor'].= $xor; - } - $key = $this->_string_shift($buffer['xor'], $block_size); - $ciphertext.= $block ^ $key; - } - } else { - for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { - $xor = $this->_encryptBlock($xor); - $ciphertext.= substr($plaintext, $i, $block_size) ^ $xor; - } - $key = $xor; - } - if ($this->continuousBuffer) { - $this->encryptIV = $xor; - if ($start = strlen($plaintext) % $block_size) { - $buffer['xor'] = substr($key, $start) . $buffer['xor']; - } - } - break; - case self::MODE_STREAM: - $ciphertext = $this->_encryptBlock($plaintext); - break; - } - - return $ciphertext; - } - - /** - * Decrypts a message. - * - * If strlen($ciphertext) is not a multiple of the block size, null bytes will be added to the end of the string until - * it is. - * - * @see self::encrypt() - * @access public - * @param string $ciphertext - * @return string $plaintext - * @internal Could, but not must, extend by the child Crypt_* class - */ - function decrypt($ciphertext) - { - if ($this->paddable) { - // we pad with chr(0) since that's what mcrypt_generic does. to quote from {@link http://www.php.net/function.mcrypt-generic}: - // "The data is padded with "\0" to make sure the length of the data is n * blocksize." - $ciphertext = str_pad($ciphertext, strlen($ciphertext) + ($this->block_size - strlen($ciphertext) % $this->block_size) % $this->block_size, chr(0)); - } - - if ($this->engine === self::ENGINE_OPENSSL) { - if ($this->changed) { - $this->_clearBuffers(); - $this->changed = false; - } - switch ($this->mode) { - case self::MODE_STREAM: - $plaintext = openssl_decrypt($ciphertext, $this->cipher_name_openssl, $this->key, $this->openssl_options); - break; - case self::MODE_ECB: - if (!defined('OPENSSL_RAW_DATA')) { - $ciphertext.= @openssl_encrypt('', $this->cipher_name_openssl_ecb, $this->key, true); - } - $plaintext = openssl_decrypt($ciphertext, $this->cipher_name_openssl, $this->key, $this->openssl_options); - break; - case self::MODE_CBC: - if (!defined('OPENSSL_RAW_DATA')) { - $padding = str_repeat(chr($this->block_size), $this->block_size) ^ substr($ciphertext, -$this->block_size); - $ciphertext.= substr(@openssl_encrypt($padding, $this->cipher_name_openssl_ecb, $this->key, true), 0, $this->block_size); - $offset = 2 * $this->block_size; - } else { - $offset = $this->block_size; - } - $plaintext = openssl_decrypt($ciphertext, $this->cipher_name_openssl, $this->key, $this->openssl_options, $this->decryptIV); - if ($this->continuousBuffer) { - $this->decryptIV = substr($ciphertext, -$offset, $this->block_size); - } - break; - case self::MODE_CTR: - $plaintext = $this->_openssl_ctr_process($ciphertext, $this->decryptIV, $this->debuffer); - break; - case self::MODE_CFB: - // cfb loosely routines inspired by openssl's: - // {@link http://cvs.openssl.org/fileview?f=openssl/crypto/modes/cfb128.c&v=1.3.2.2.2.1} - $plaintext = ''; - if ($this->continuousBuffer) { - $iv = &$this->decryptIV; - $pos = &$this->buffer['pos']; - } else { - $iv = $this->decryptIV; - $pos = 0; - } - $len = strlen($ciphertext); - $i = 0; - if ($pos) { - $orig_pos = $pos; - $max = $this->block_size - $pos; - if ($len >= $max) { - $i = $max; - $len-= $max; - $pos = 0; - } else { - $i = $len; - $pos+= $len; - $len = 0; - } - // ie. $i = min($max, $len), $len-= $i, $pos+= $i, $pos%= $this->blocksize - $plaintext = substr($iv, $orig_pos) ^ $ciphertext; - $iv = substr_replace($iv, substr($ciphertext, 0, $i), $orig_pos, $i); - $ciphertext = substr($ciphertext, $i); - } - $overflow = $len % $this->block_size; - if ($overflow) { - $plaintext.= openssl_decrypt(substr($ciphertext, 0, -$overflow), $this->cipher_name_openssl, $this->key, $this->openssl_options, $iv); - if ($len - $overflow) { - $iv = substr($ciphertext, -$overflow - $this->block_size, -$overflow); - } - $iv = openssl_encrypt(str_repeat("\0", $this->block_size), $this->cipher_name_openssl, $this->key, $this->openssl_options, $iv); - $plaintext.= $iv ^ substr($ciphertext, -$overflow); - $iv = substr_replace($iv, substr($ciphertext, -$overflow), 0, $overflow); - $pos = $overflow; - } elseif ($len) { - $plaintext.= openssl_decrypt($ciphertext, $this->cipher_name_openssl, $this->key, $this->openssl_options, $iv); - $iv = substr($ciphertext, -$this->block_size); - } - break; - case self::MODE_CFB8: - $plaintext = openssl_decrypt($ciphertext, $this->cipher_name_openssl, $this->key, $this->openssl_options, $this->decryptIV); - if ($this->continuousBuffer) { - if (($len = strlen($ciphertext)) >= $this->block_size) { - $this->decryptIV = substr($ciphertext, -$this->block_size); - } else { - $this->decryptIV = substr($this->decryptIV, $len - $this->block_size) . substr($ciphertext, -$len); - } - } - break; - case self::MODE_OFB: - $plaintext = $this->_openssl_ofb_process($ciphertext, $this->decryptIV, $this->debuffer); - } - - return $this->paddable ? $this->_unpad($plaintext) : $plaintext; - } - - if ($this->engine === self::ENGINE_MCRYPT) { - $block_size = $this->block_size; - if ($this->changed) { - $this->_setupMcrypt(); - $this->changed = false; - } - if ($this->dechanged) { - @mcrypt_generic_init($this->demcrypt, $this->key, $this->decryptIV); - $this->dechanged = false; - } - - if ($this->mode == self::MODE_CFB && $this->continuousBuffer) { - $iv = &$this->decryptIV; - $pos = &$this->debuffer['pos']; - $len = strlen($ciphertext); - $plaintext = ''; - $i = 0; - if ($pos) { - $orig_pos = $pos; - $max = $block_size - $pos; - if ($len >= $max) { - $i = $max; - $len-= $max; - $pos = 0; - } else { - $i = $len; - $pos+= $len; - $len = 0; - } - // ie. $i = min($max, $len), $len-= $i, $pos+= $i, $pos%= $blocksize - $plaintext = substr($iv, $orig_pos) ^ $ciphertext; - $iv = substr_replace($iv, substr($ciphertext, 0, $i), $orig_pos, $i); - } - if ($len >= $block_size) { - $cb = substr($ciphertext, $i, $len - $len % $block_size); - $plaintext.= @mcrypt_generic($this->ecb, $iv . $cb) ^ $cb; - $iv = substr($cb, -$block_size); - $len%= $block_size; - } - if ($len) { - $iv = @mcrypt_generic($this->ecb, $iv); - $plaintext.= $iv ^ substr($ciphertext, -$len); - $iv = substr_replace($iv, substr($ciphertext, -$len), 0, $len); - $pos = $len; - } - - return $plaintext; - } - - $plaintext = @mdecrypt_generic($this->demcrypt, $ciphertext); - - if (!$this->continuousBuffer) { - @mcrypt_generic_init($this->demcrypt, $this->key, $this->decryptIV); - } - - return $this->paddable ? $this->_unpad($plaintext) : $plaintext; - } - - if ($this->changed) { - $this->_setup(); - $this->changed = false; - } - if ($this->use_inline_crypt) { - $inline = $this->inline_crypt; - return $inline('decrypt', $this, $ciphertext); - } - - $block_size = $this->block_size; - - $buffer = &$this->debuffer; - $plaintext = ''; - switch ($this->mode) { - case self::MODE_ECB: - for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { - $plaintext.= $this->_decryptBlock(substr($ciphertext, $i, $block_size)); - } - break; - case self::MODE_CBC: - $xor = $this->decryptIV; - for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { - $block = substr($ciphertext, $i, $block_size); - $plaintext.= $this->_decryptBlock($block) ^ $xor; - $xor = $block; - } - if ($this->continuousBuffer) { - $this->decryptIV = $xor; - } - break; - case self::MODE_CTR: - $xor = $this->decryptIV; - if (strlen($buffer['ciphertext'])) { - for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { - $block = substr($ciphertext, $i, $block_size); - if (strlen($block) > strlen($buffer['ciphertext'])) { - $buffer['ciphertext'].= $this->_encryptBlock($xor); - $this->_increment_str($xor); - } - $key = $this->_string_shift($buffer['ciphertext'], $block_size); - $plaintext.= $block ^ $key; - } - } else { - for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { - $block = substr($ciphertext, $i, $block_size); - $key = $this->_encryptBlock($xor); - $this->_increment_str($xor); - $plaintext.= $block ^ $key; - } - } - if ($this->continuousBuffer) { - $this->decryptIV = $xor; - if ($start = strlen($ciphertext) % $block_size) { - $buffer['ciphertext'] = substr($key, $start) . $buffer['ciphertext']; - } - } - break; - case self::MODE_CFB: - if ($this->continuousBuffer) { - $iv = &$this->decryptIV; - $pos = &$buffer['pos']; - } else { - $iv = $this->decryptIV; - $pos = 0; - } - $len = strlen($ciphertext); - $i = 0; - if ($pos) { - $orig_pos = $pos; - $max = $block_size - $pos; - if ($len >= $max) { - $i = $max; - $len-= $max; - $pos = 0; - } else { - $i = $len; - $pos+= $len; - $len = 0; - } - // ie. $i = min($max, $len), $len-= $i, $pos+= $i, $pos%= $blocksize - $plaintext = substr($iv, $orig_pos) ^ $ciphertext; - $iv = substr_replace($iv, substr($ciphertext, 0, $i), $orig_pos, $i); - } - while ($len >= $block_size) { - $iv = $this->_encryptBlock($iv); - $cb = substr($ciphertext, $i, $block_size); - $plaintext.= $iv ^ $cb; - $iv = $cb; - $len-= $block_size; - $i+= $block_size; - } - if ($len) { - $iv = $this->_encryptBlock($iv); - $plaintext.= $iv ^ substr($ciphertext, $i); - $iv = substr_replace($iv, substr($ciphertext, $i), 0, $len); - $pos = $len; - } - break; - case self::MODE_CFB8: - $plaintext = ''; - $len = strlen($ciphertext); - $iv = $this->decryptIV; - - for ($i = 0; $i < $len; ++$i) { - $plaintext .= $ciphertext[$i] ^ $this->_encryptBlock($iv); - $iv = substr($iv, 1) . $ciphertext[$i]; - } - - if ($this->continuousBuffer) { - if ($len >= $block_size) { - $this->decryptIV = substr($ciphertext, -$block_size); - } else { - $this->decryptIV = substr($this->decryptIV, $len - $block_size) . substr($ciphertext, -$len); - } - } - break; - case self::MODE_OFB: - $xor = $this->decryptIV; - if (strlen($buffer['xor'])) { - for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { - $block = substr($ciphertext, $i, $block_size); - if (strlen($block) > strlen($buffer['xor'])) { - $xor = $this->_encryptBlock($xor); - $buffer['xor'].= $xor; - } - $key = $this->_string_shift($buffer['xor'], $block_size); - $plaintext.= $block ^ $key; - } - } else { - for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { - $xor = $this->_encryptBlock($xor); - $plaintext.= substr($ciphertext, $i, $block_size) ^ $xor; - } - $key = $xor; - } - if ($this->continuousBuffer) { - $this->decryptIV = $xor; - if ($start = strlen($ciphertext) % $block_size) { - $buffer['xor'] = substr($key, $start) . $buffer['xor']; - } - } - break; - case self::MODE_STREAM: - $plaintext = $this->_decryptBlock($ciphertext); - break; - } - return $this->paddable ? $this->_unpad($plaintext) : $plaintext; - } - - /** - * OpenSSL CTR Processor - * - * PHP's OpenSSL bindings do not operate in continuous mode so we'll wrap around it. Since the keystream - * for CTR is the same for both encrypting and decrypting this function is re-used by both Base::encrypt() - * and Base::decrypt(). Also, OpenSSL doesn't implement CTR for all of it's symmetric ciphers so this - * function will emulate CTR with ECB when necessary. - * - * @see self::encrypt() - * @see self::decrypt() - * @param string $plaintext - * @param string $encryptIV - * @param array $buffer - * @return string - * @access private - */ - function _openssl_ctr_process($plaintext, &$encryptIV, &$buffer) - { - $ciphertext = ''; - - $block_size = $this->block_size; - $key = $this->key; - - if ($this->openssl_emulate_ctr) { - $xor = $encryptIV; - if (strlen($buffer['ciphertext'])) { - for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { - $block = substr($plaintext, $i, $block_size); - if (strlen($block) > strlen($buffer['ciphertext'])) { - $result = @openssl_encrypt($xor, $this->cipher_name_openssl_ecb, $key, $this->openssl_options); - $result = !defined('OPENSSL_RAW_DATA') ? substr($result, 0, -$this->block_size) : $result; - $buffer['ciphertext'].= $result; - } - $this->_increment_str($xor); - $otp = $this->_string_shift($buffer['ciphertext'], $block_size); - $ciphertext.= $block ^ $otp; - } - } else { - for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { - $block = substr($plaintext, $i, $block_size); - $otp = @openssl_encrypt($xor, $this->cipher_name_openssl_ecb, $key, $this->openssl_options); - $otp = !defined('OPENSSL_RAW_DATA') ? substr($otp, 0, -$this->block_size) : $otp; - $this->_increment_str($xor); - $ciphertext.= $block ^ $otp; - } - } - if ($this->continuousBuffer) { - $encryptIV = $xor; - if ($start = strlen($plaintext) % $block_size) { - $buffer['ciphertext'] = substr($key, $start) . $buffer['ciphertext']; - } - } - - return $ciphertext; - } - - if (strlen($buffer['ciphertext'])) { - $ciphertext = $plaintext ^ $this->_string_shift($buffer['ciphertext'], strlen($plaintext)); - $plaintext = substr($plaintext, strlen($ciphertext)); - - if (!strlen($plaintext)) { - return $ciphertext; - } - } - - $overflow = strlen($plaintext) % $block_size; - if ($overflow) { - $plaintext2 = $this->_string_pop($plaintext, $overflow); // ie. trim $plaintext to a multiple of $block_size and put rest of $plaintext in $plaintext2 - $encrypted = openssl_encrypt($plaintext . str_repeat("\0", $block_size), $this->cipher_name_openssl, $key, $this->openssl_options, $encryptIV); - $temp = $this->_string_pop($encrypted, $block_size); - $ciphertext.= $encrypted . ($plaintext2 ^ $temp); - if ($this->continuousBuffer) { - $buffer['ciphertext'] = substr($temp, $overflow); - $encryptIV = $temp; - } - } elseif (!strlen($buffer['ciphertext'])) { - $ciphertext.= openssl_encrypt($plaintext . str_repeat("\0", $block_size), $this->cipher_name_openssl, $key, $this->openssl_options, $encryptIV); - $temp = $this->_string_pop($ciphertext, $block_size); - if ($this->continuousBuffer) { - $encryptIV = $temp; - } - } - if ($this->continuousBuffer) { - if (!defined('OPENSSL_RAW_DATA')) { - $encryptIV.= @openssl_encrypt('', $this->cipher_name_openssl_ecb, $key, $this->openssl_options); - } - $encryptIV = openssl_decrypt($encryptIV, $this->cipher_name_openssl_ecb, $key, $this->openssl_options); - if ($overflow) { - $this->_increment_str($encryptIV); - } - } - - return $ciphertext; - } - - /** - * OpenSSL OFB Processor - * - * PHP's OpenSSL bindings do not operate in continuous mode so we'll wrap around it. Since the keystream - * for OFB is the same for both encrypting and decrypting this function is re-used by both Base::encrypt() - * and Base::decrypt(). - * - * @see self::encrypt() - * @see self::decrypt() - * @param string $plaintext - * @param string $encryptIV - * @param array $buffer - * @return string - * @access private - */ - function _openssl_ofb_process($plaintext, &$encryptIV, &$buffer) - { - if (strlen($buffer['xor'])) { - $ciphertext = $plaintext ^ $buffer['xor']; - $buffer['xor'] = substr($buffer['xor'], strlen($ciphertext)); - $plaintext = substr($plaintext, strlen($ciphertext)); - } else { - $ciphertext = ''; - } - - $block_size = $this->block_size; - - $len = strlen($plaintext); - $key = $this->key; - $overflow = $len % $block_size; - - if (strlen($plaintext)) { - if ($overflow) { - $ciphertext.= openssl_encrypt(substr($plaintext, 0, -$overflow) . str_repeat("\0", $block_size), $this->cipher_name_openssl, $key, $this->openssl_options, $encryptIV); - $xor = $this->_string_pop($ciphertext, $block_size); - if ($this->continuousBuffer) { - $encryptIV = $xor; - } - $ciphertext.= $this->_string_shift($xor, $overflow) ^ substr($plaintext, -$overflow); - if ($this->continuousBuffer) { - $buffer['xor'] = $xor; - } - } else { - $ciphertext = openssl_encrypt($plaintext, $this->cipher_name_openssl, $key, $this->openssl_options, $encryptIV); - if ($this->continuousBuffer) { - $encryptIV = substr($ciphertext, -$block_size) ^ substr($plaintext, -$block_size); - } - } - } - - return $ciphertext; - } - - /** - * phpseclib <-> OpenSSL Mode Mapper - * - * May need to be overwritten by classes extending this one in some cases - * - * @return int - * @access private - */ - function _openssl_translate_mode() - { - switch ($this->mode) { - case self::MODE_ECB: - return 'ecb'; - case self::MODE_CBC: - return 'cbc'; - case self::MODE_CTR: - return 'ctr'; - case self::MODE_CFB: - return 'cfb'; - case self::MODE_CFB8: - return 'cfb8'; - case self::MODE_OFB: - return 'ofb'; - } - } - - /** - * Pad "packets". - * - * Block ciphers working by encrypting between their specified [$this->]block_size at a time - * If you ever need to encrypt or decrypt something that isn't of the proper length, it becomes necessary to - * pad the input so that it is of the proper length. - * - * Padding is enabled by default. Sometimes, however, it is undesirable to pad strings. Such is the case in SSH, - * where "packets" are padded with random bytes before being encrypted. Unpad these packets and you risk stripping - * away characters that shouldn't be stripped away. (SSH knows how many bytes are added because the length is - * transmitted separately) - * - * @see self::disablePadding() - * @access public - */ - function enablePadding() - { - $this->padding = true; - } - - /** - * Do not pad packets. - * - * @see self::enablePadding() - * @access public - */ - function disablePadding() - { - $this->padding = false; - } - - /** - * Treat consecutive "packets" as if they are a continuous buffer. - * - * Say you have a 32-byte plaintext $plaintext. Using the default behavior, the two following code snippets - * will yield different outputs: - * - * - * echo $rijndael->encrypt(substr($plaintext, 0, 16)); - * echo $rijndael->encrypt(substr($plaintext, 16, 16)); - * - * - * echo $rijndael->encrypt($plaintext); - * - * - * The solution is to enable the continuous buffer. Although this will resolve the above discrepancy, it creates - * another, as demonstrated with the following: - * - * - * $rijndael->encrypt(substr($plaintext, 0, 16)); - * echo $rijndael->decrypt($rijndael->encrypt(substr($plaintext, 16, 16))); - * - * - * echo $rijndael->decrypt($rijndael->encrypt(substr($plaintext, 16, 16))); - * - * - * With the continuous buffer disabled, these would yield the same output. With it enabled, they yield different - * outputs. The reason is due to the fact that the initialization vector's change after every encryption / - * decryption round when the continuous buffer is enabled. When it's disabled, they remain constant. - * - * Put another way, when the continuous buffer is enabled, the state of the \phpseclib\Crypt\*() object changes after each - * encryption / decryption round, whereas otherwise, it'd remain constant. For this reason, it's recommended that - * continuous buffers not be used. They do offer better security and are, in fact, sometimes required (SSH uses them), - * however, they are also less intuitive and more likely to cause you problems. - * - * @see self::disableContinuousBuffer() - * @access public - * @internal Could, but not must, extend by the child Crypt_* class - */ - function enableContinuousBuffer() - { - if ($this->mode == self::MODE_ECB) { - return; - } - - $this->continuousBuffer = true; - - $this->_setEngine(); - } - - /** - * Treat consecutive packets as if they are a discontinuous buffer. - * - * The default behavior. - * - * @see self::enableContinuousBuffer() - * @access public - * @internal Could, but not must, extend by the child Crypt_* class - */ - function disableContinuousBuffer() - { - if ($this->mode == self::MODE_ECB) { - return; - } - if (!$this->continuousBuffer) { - return; - } - - $this->continuousBuffer = false; - $this->changed = true; - - $this->_setEngine(); - } - - /** - * Test for engine validity - * - * @see self::__construct() - * @param int $engine - * @access public - * @return bool - */ - function isValidEngine($engine) - { - switch ($engine) { - case self::ENGINE_OPENSSL: - if ($this->mode == self::MODE_STREAM && $this->continuousBuffer) { - return false; - } - $this->openssl_emulate_ctr = false; - $result = $this->cipher_name_openssl && - extension_loaded('openssl') && - // PHP 5.3.0 - 5.3.2 did not let you set IV's - version_compare(PHP_VERSION, '5.3.3', '>='); - if (!$result) { - return false; - } - - // prior to PHP 5.4.0 OPENSSL_RAW_DATA and OPENSSL_ZERO_PADDING were not defined. instead of expecting an integer - // $options openssl_encrypt expected a boolean $raw_data. - if (!defined('OPENSSL_RAW_DATA')) { - $this->openssl_options = true; - } else { - $this->openssl_options = OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING; - } - - $methods = openssl_get_cipher_methods(); - if (in_array($this->cipher_name_openssl, $methods)) { - return true; - } - // not all of openssl's symmetric cipher's support ctr. for those - // that don't we'll emulate it - switch ($this->mode) { - case self::MODE_CTR: - if (in_array($this->cipher_name_openssl_ecb, $methods)) { - $this->openssl_emulate_ctr = true; - return true; - } - } - return false; - case self::ENGINE_MCRYPT: - return $this->cipher_name_mcrypt && - extension_loaded('mcrypt') && - in_array($this->cipher_name_mcrypt, @mcrypt_list_algorithms()); - case self::ENGINE_INTERNAL: - return true; - } - - return false; - } - - /** - * Sets the preferred crypt engine - * - * Currently, $engine could be: - * - * - \phpseclib\Crypt\Base::ENGINE_OPENSSL [very fast] - * - * - \phpseclib\Crypt\Base::ENGINE_MCRYPT [fast] - * - * - \phpseclib\Crypt\Base::ENGINE_INTERNAL [slow] - * - * If the preferred crypt engine is not available the fastest available one will be used - * - * @see self::__construct() - * @param int $engine - * @access public - */ - function setPreferredEngine($engine) - { - switch ($engine) { - //case self::ENGINE_OPENSSL; - case self::ENGINE_MCRYPT: - case self::ENGINE_INTERNAL: - $this->preferredEngine = $engine; - break; - default: - $this->preferredEngine = self::ENGINE_OPENSSL; - } - - $this->_setEngine(); - } - - /** - * Returns the engine currently being utilized - * - * @see self::_setEngine() - * @access public - */ - function getEngine() - { - return $this->engine; - } - - /** - * Sets the engine as appropriate - * - * @see self::__construct() - * @access private - */ - function _setEngine() - { - $this->engine = null; - - $candidateEngines = array( - $this->preferredEngine, - self::ENGINE_OPENSSL, - self::ENGINE_MCRYPT - ); - foreach ($candidateEngines as $engine) { - if ($this->isValidEngine($engine)) { - $this->engine = $engine; - break; - } - } - if (!$this->engine) { - $this->engine = self::ENGINE_INTERNAL; - } - - if ($this->engine != self::ENGINE_MCRYPT && $this->enmcrypt) { - // Closing the current mcrypt resource(s). _mcryptSetup() will, if needed, - // (re)open them with the module named in $this->cipher_name_mcrypt - @mcrypt_module_close($this->enmcrypt); - @mcrypt_module_close($this->demcrypt); - $this->enmcrypt = null; - $this->demcrypt = null; - - if ($this->ecb) { - @mcrypt_module_close($this->ecb); - $this->ecb = null; - } - } - - $this->changed = true; - } - - /** - * Encrypts a block - * - * Note: Must be extended by the child \phpseclib\Crypt\* class - * - * @access private - * @param string $in - * @return string - */ - abstract function _encryptBlock($in); - - /** - * Decrypts a block - * - * Note: Must be extended by the child \phpseclib\Crypt\* class - * - * @access private - * @param string $in - * @return string - */ - abstract function _decryptBlock($in); - - /** - * Setup the key (expansion) - * - * Only used if $engine == self::ENGINE_INTERNAL - * - * Note: Must extend by the child \phpseclib\Crypt\* class - * - * @see self::_setup() - * @access private - */ - abstract function _setupKey(); - - /** - * Setup the self::ENGINE_INTERNAL $engine - * - * (re)init, if necessary, the internal cipher $engine and flush all $buffers - * Used (only) if $engine == self::ENGINE_INTERNAL - * - * _setup() will be called each time if $changed === true - * typically this happens when using one or more of following public methods: - * - * - setKey() - * - * - setIV() - * - * - disableContinuousBuffer() - * - * - First run of encrypt() / decrypt() with no init-settings - * - * @see self::setKey() - * @see self::setIV() - * @see self::disableContinuousBuffer() - * @access private - * @internal _setup() is always called before en/decryption. - * @internal Could, but not must, extend by the child Crypt_* class - */ - function _setup() - { - $this->_clearBuffers(); - $this->_setupKey(); - - if ($this->use_inline_crypt) { - $this->_setupInlineCrypt(); - } - } - - /** - * Setup the self::ENGINE_MCRYPT $engine - * - * (re)init, if necessary, the (ext)mcrypt resources and flush all $buffers - * Used (only) if $engine = self::ENGINE_MCRYPT - * - * _setupMcrypt() will be called each time if $changed === true - * typically this happens when using one or more of following public methods: - * - * - setKey() - * - * - setIV() - * - * - disableContinuousBuffer() - * - * - First run of encrypt() / decrypt() - * - * @see self::setKey() - * @see self::setIV() - * @see self::disableContinuousBuffer() - * @access private - * @internal Could, but not must, extend by the child Crypt_* class - */ - function _setupMcrypt() - { - $this->_clearBuffers(); - $this->enchanged = $this->dechanged = true; - - if (!isset($this->enmcrypt)) { - static $mcrypt_modes = array( - self::MODE_CTR => 'ctr', - self::MODE_ECB => MCRYPT_MODE_ECB, - self::MODE_CBC => MCRYPT_MODE_CBC, - self::MODE_CFB => 'ncfb', - self::MODE_CFB8 => MCRYPT_MODE_CFB, - self::MODE_OFB => MCRYPT_MODE_NOFB, - self::MODE_STREAM => MCRYPT_MODE_STREAM, - ); - - $this->demcrypt = @mcrypt_module_open($this->cipher_name_mcrypt, '', $mcrypt_modes[$this->mode], ''); - $this->enmcrypt = @mcrypt_module_open($this->cipher_name_mcrypt, '', $mcrypt_modes[$this->mode], ''); - - // we need the $ecb mcrypt resource (only) in MODE_CFB with enableContinuousBuffer() - // to workaround mcrypt's broken ncfb implementation in buffered mode - // see: {@link http://phpseclib.sourceforge.net/cfb-demo.phps} - if ($this->mode == self::MODE_CFB) { - $this->ecb = @mcrypt_module_open($this->cipher_name_mcrypt, '', MCRYPT_MODE_ECB, ''); - } - } // else should mcrypt_generic_deinit be called? - - if ($this->mode == self::MODE_CFB) { - @mcrypt_generic_init($this->ecb, $this->key, str_repeat("\0", $this->block_size)); - } - } - - /** - * Pads a string - * - * Pads a string using the RSA PKCS padding standards so that its length is a multiple of the blocksize. - * $this->block_size - (strlen($text) % $this->block_size) bytes are added, each of which is equal to - * chr($this->block_size - (strlen($text) % $this->block_size) - * - * If padding is disabled and $text is not a multiple of the blocksize, the string will be padded regardless - * and padding will, hence forth, be enabled. - * - * @see self::_unpad() - * @param string $text - * @access private - * @return string - */ - function _pad($text) - { - $length = strlen($text); - - if (!$this->padding) { - if ($length % $this->block_size == 0) { - return $text; - } else { - user_error("The plaintext's length ($length) is not a multiple of the block size ({$this->block_size})"); - $this->padding = true; - } - } - - $pad = $this->block_size - ($length % $this->block_size); - - return str_pad($text, $length + $pad, chr($pad)); - } - - /** - * Unpads a string. - * - * If padding is enabled and the reported padding length is invalid the encryption key will be assumed to be wrong - * and false will be returned. - * - * @see self::_pad() - * @param string $text - * @access private - * @return string - */ - function _unpad($text) - { - if (!$this->padding) { - return $text; - } - - $length = ord($text[strlen($text) - 1]); - - if (!$length || $length > $this->block_size) { - return false; - } - - return substr($text, 0, -$length); - } - - /** - * Clears internal buffers - * - * Clearing/resetting the internal buffers is done everytime - * after disableContinuousBuffer() or on cipher $engine (re)init - * ie after setKey() or setIV() - * - * @access public - * @internal Could, but not must, extend by the child Crypt_* class - */ - function _clearBuffers() - { - $this->enbuffer = $this->debuffer = array('ciphertext' => '', 'xor' => '', 'pos' => 0, 'enmcrypt_init' => true); - - // mcrypt's handling of invalid's $iv: - // $this->encryptIV = $this->decryptIV = strlen($this->iv) == $this->block_size ? $this->iv : str_repeat("\0", $this->block_size); - $this->encryptIV = $this->decryptIV = str_pad(substr($this->iv, 0, $this->block_size), $this->block_size, "\0"); - - if (!$this->skip_key_adjustment) { - $this->key = str_pad(substr($this->key, 0, $this->key_length), $this->key_length, "\0"); - } - } - - /** - * String Shift - * - * Inspired by array_shift - * - * @param string $string - * @param int $index - * @access private - * @return string - */ - function _string_shift(&$string, $index = 1) - { - $substr = substr($string, 0, $index); - $string = substr($string, $index); - return $substr; - } - - /** - * String Pop - * - * Inspired by array_pop - * - * @param string $string - * @param int $index - * @access private - * @return string - */ - function _string_pop(&$string, $index = 1) - { - $substr = substr($string, -$index); - $string = substr($string, 0, -$index); - return $substr; - } - - /** - * Increment the current string - * - * @see self::decrypt() - * @see self::encrypt() - * @param string $var - * @access private - */ - function _increment_str(&$var) - { - for ($i = 4; $i <= strlen($var); $i+= 4) { - $temp = substr($var, -$i, 4); - switch ($temp) { - case "\xFF\xFF\xFF\xFF": - $var = substr_replace($var, "\x00\x00\x00\x00", -$i, 4); - break; - case "\x7F\xFF\xFF\xFF": - $var = substr_replace($var, "\x80\x00\x00\x00", -$i, 4); - return; - default: - $temp = unpack('Nnum', $temp); - $var = substr_replace($var, pack('N', $temp['num'] + 1), -$i, 4); - return; - } - } - - $remainder = strlen($var) % 4; - - if ($remainder == 0) { - return; - } - - $temp = unpack('Nnum', str_pad(substr($var, 0, $remainder), 4, "\0", STR_PAD_LEFT)); - $temp = substr(pack('N', $temp['num'] + 1), -$remainder); - $var = substr_replace($var, $temp, 0, $remainder); - } - - /** - * Setup the performance-optimized function for de/encrypt() - * - * Stores the created (or existing) callback function-name - * in $this->inline_crypt - * - * Internally for phpseclib developers: - * - * _setupInlineCrypt() would be called only if: - * - * - $engine == self::ENGINE_INTERNAL and - * - * - $use_inline_crypt === true - * - * - each time on _setup(), after(!) _setupKey() - * - * - * This ensures that _setupInlineCrypt() has always a - * full ready2go initializated internal cipher $engine state - * where, for example, the keys allready expanded, - * keys/block_size calculated and such. - * - * It is, each time if called, the responsibility of _setupInlineCrypt(): - * - * - to set $this->inline_crypt to a valid and fully working callback function - * as a (faster) replacement for encrypt() / decrypt() - * - * - NOT to create unlimited callback functions (for memory reasons!) - * no matter how often _setupInlineCrypt() would be called. At some - * point of amount they must be generic re-useable. - * - * - the code of _setupInlineCrypt() it self, - * and the generated callback code, - * must be, in following order: - * - 100% safe - * - 100% compatible to encrypt()/decrypt() - * - using only php5+ features/lang-constructs/php-extensions if - * compatibility (down to php4) or fallback is provided - * - readable/maintainable/understandable/commented and... not-cryptic-styled-code :-) - * - >= 10% faster than encrypt()/decrypt() [which is, by the way, - * the reason for the existence of _setupInlineCrypt() :-)] - * - memory-nice - * - short (as good as possible) - * - * Note: - _setupInlineCrypt() is using _createInlineCryptFunction() to create the full callback function code. - * - In case of using inline crypting, _setupInlineCrypt() must extend by the child \phpseclib\Crypt\* class. - * - The following variable names are reserved: - * - $_* (all variable names prefixed with an underscore) - * - $self (object reference to it self. Do not use $this, but $self instead) - * - $in (the content of $in has to en/decrypt by the generated code) - * - The callback function should not use the 'return' statement, but en/decrypt'ing the content of $in only - * - * - * @see self::_setup() - * @see self::_createInlineCryptFunction() - * @see self::encrypt() - * @see self::decrypt() - * @access private - * @internal If a Crypt_* class providing inline crypting it must extend _setupInlineCrypt() - */ - function _setupInlineCrypt() - { - // If, for any reason, an extending \phpseclib\Crypt\Base() \phpseclib\Crypt\* class - // not using inline crypting then it must be ensured that: $this->use_inline_crypt = false - // ie in the class var declaration of $use_inline_crypt in general for the \phpseclib\Crypt\* class, - // in the constructor at object instance-time - // or, if it's runtime-specific, at runtime - - $this->use_inline_crypt = false; - } - - /** - * Creates the performance-optimized function for en/decrypt() - * - * Internally for phpseclib developers: - * - * _createInlineCryptFunction(): - * - * - merge the $cipher_code [setup'ed by _setupInlineCrypt()] - * with the current [$this->]mode of operation code - * - * - create the $inline function, which called by encrypt() / decrypt() - * as its replacement to speed up the en/decryption operations. - * - * - return the name of the created $inline callback function - * - * - used to speed up en/decryption - * - * - * - * The main reason why can speed up things [up to 50%] this way are: - * - * - using variables more effective then regular. - * (ie no use of expensive arrays but integers $k_0, $k_1 ... - * or even, for example, the pure $key[] values hardcoded) - * - * - avoiding 1000's of function calls of ie _encryptBlock() - * but inlining the crypt operations. - * in the mode of operation for() loop. - * - * - full loop unroll the (sometimes key-dependent) rounds - * avoiding this way ++$i counters and runtime-if's etc... - * - * The basic code architectur of the generated $inline en/decrypt() - * lambda function, in pseudo php, is: - * - * - * +----------------------------------------------------------------------------------------------+ - * | callback $inline = create_function: | - * | lambda_function_0001_crypt_ECB($action, $text) | - * | { | - * | INSERT PHP CODE OF: | - * | $cipher_code['init_crypt']; // general init code. | - * | // ie: $sbox'es declarations used for | - * | // encrypt and decrypt'ing. | - * | | - * | switch ($action) { | - * | case 'encrypt': | - * | INSERT PHP CODE OF: | - * | $cipher_code['init_encrypt']; // encrypt sepcific init code. | - * | ie: specified $key or $box | - * | declarations for encrypt'ing. | - * | | - * | foreach ($ciphertext) { | - * | $in = $block_size of $ciphertext; | - * | | - * | INSERT PHP CODE OF: | - * | $cipher_code['encrypt_block']; // encrypt's (string) $in, which is always: | - * | // strlen($in) == $this->block_size | - * | // here comes the cipher algorithm in action | - * | // for encryption. | - * | // $cipher_code['encrypt_block'] has to | - * | // encrypt the content of the $in variable | - * | | - * | $plaintext .= $in; | - * | } | - * | return $plaintext; | - * | | - * | case 'decrypt': | - * | INSERT PHP CODE OF: | - * | $cipher_code['init_decrypt']; // decrypt sepcific init code | - * | ie: specified $key or $box | - * | declarations for decrypt'ing. | - * | foreach ($plaintext) { | - * | $in = $block_size of $plaintext; | - * | | - * | INSERT PHP CODE OF: | - * | $cipher_code['decrypt_block']; // decrypt's (string) $in, which is always | - * | // strlen($in) == $this->block_size | - * | // here comes the cipher algorithm in action | - * | // for decryption. | - * | // $cipher_code['decrypt_block'] has to | - * | // decrypt the content of the $in variable | - * | $ciphertext .= $in; | - * | } | - * | return $ciphertext; | - * | } | - * | } | - * +----------------------------------------------------------------------------------------------+ - * - * - * See also the \phpseclib\Crypt\*::_setupInlineCrypt()'s for - * productive inline $cipher_code's how they works. - * - * Structure of: - * - * $cipher_code = array( - * 'init_crypt' => (string) '', // optional - * 'init_encrypt' => (string) '', // optional - * 'init_decrypt' => (string) '', // optional - * 'encrypt_block' => (string) '', // required - * 'decrypt_block' => (string) '' // required - * ); - * - * - * @see self::_setupInlineCrypt() - * @see self::encrypt() - * @see self::decrypt() - * @param array $cipher_code - * @access private - * @return string (the name of the created callback function) - */ - function _createInlineCryptFunction($cipher_code) - { - $block_size = $this->block_size; - - // optional - $init_crypt = isset($cipher_code['init_crypt']) ? $cipher_code['init_crypt'] : ''; - $init_encrypt = isset($cipher_code['init_encrypt']) ? $cipher_code['init_encrypt'] : ''; - $init_decrypt = isset($cipher_code['init_decrypt']) ? $cipher_code['init_decrypt'] : ''; - // required - $encrypt_block = $cipher_code['encrypt_block']; - $decrypt_block = $cipher_code['decrypt_block']; - - // Generating mode of operation inline code, - // merged with the $cipher_code algorithm - // for encrypt- and decryption. - switch ($this->mode) { - case self::MODE_ECB: - $encrypt = $init_encrypt . ' - $_ciphertext = ""; - $_plaintext_len = strlen($_text); - - for ($_i = 0; $_i < $_plaintext_len; $_i+= '.$block_size.') { - $in = substr($_text, $_i, '.$block_size.'); - '.$encrypt_block.' - $_ciphertext.= $in; - } - - return $_ciphertext; - '; - - $decrypt = $init_decrypt . ' - $_plaintext = ""; - $_text = str_pad($_text, strlen($_text) + ('.$block_size.' - strlen($_text) % '.$block_size.') % '.$block_size.', chr(0)); - $_ciphertext_len = strlen($_text); - - for ($_i = 0; $_i < $_ciphertext_len; $_i+= '.$block_size.') { - $in = substr($_text, $_i, '.$block_size.'); - '.$decrypt_block.' - $_plaintext.= $in; - } - - return $self->_unpad($_plaintext); - '; - break; - case self::MODE_CTR: - $encrypt = $init_encrypt . ' - $_ciphertext = ""; - $_plaintext_len = strlen($_text); - $_xor = $self->encryptIV; - $_buffer = &$self->enbuffer; - if (strlen($_buffer["ciphertext"])) { - for ($_i = 0; $_i < $_plaintext_len; $_i+= '.$block_size.') { - $_block = substr($_text, $_i, '.$block_size.'); - if (strlen($_block) > strlen($_buffer["ciphertext"])) { - $in = $_xor; - '.$encrypt_block.' - $self->_increment_str($_xor); - $_buffer["ciphertext"].= $in; - } - $_key = $self->_string_shift($_buffer["ciphertext"], '.$block_size.'); - $_ciphertext.= $_block ^ $_key; - } - } else { - for ($_i = 0; $_i < $_plaintext_len; $_i+= '.$block_size.') { - $_block = substr($_text, $_i, '.$block_size.'); - $in = $_xor; - '.$encrypt_block.' - $self->_increment_str($_xor); - $_key = $in; - $_ciphertext.= $_block ^ $_key; - } - } - if ($self->continuousBuffer) { - $self->encryptIV = $_xor; - if ($_start = $_plaintext_len % '.$block_size.') { - $_buffer["ciphertext"] = substr($_key, $_start) . $_buffer["ciphertext"]; - } - } - - return $_ciphertext; - '; - - $decrypt = $init_encrypt . ' - $_plaintext = ""; - $_ciphertext_len = strlen($_text); - $_xor = $self->decryptIV; - $_buffer = &$self->debuffer; - - if (strlen($_buffer["ciphertext"])) { - for ($_i = 0; $_i < $_ciphertext_len; $_i+= '.$block_size.') { - $_block = substr($_text, $_i, '.$block_size.'); - if (strlen($_block) > strlen($_buffer["ciphertext"])) { - $in = $_xor; - '.$encrypt_block.' - $self->_increment_str($_xor); - $_buffer["ciphertext"].= $in; - } - $_key = $self->_string_shift($_buffer["ciphertext"], '.$block_size.'); - $_plaintext.= $_block ^ $_key; - } - } else { - for ($_i = 0; $_i < $_ciphertext_len; $_i+= '.$block_size.') { - $_block = substr($_text, $_i, '.$block_size.'); - $in = $_xor; - '.$encrypt_block.' - $self->_increment_str($_xor); - $_key = $in; - $_plaintext.= $_block ^ $_key; - } - } - if ($self->continuousBuffer) { - $self->decryptIV = $_xor; - if ($_start = $_ciphertext_len % '.$block_size.') { - $_buffer["ciphertext"] = substr($_key, $_start) . $_buffer["ciphertext"]; - } - } - - return $_plaintext; - '; - break; - case self::MODE_CFB: - $encrypt = $init_encrypt . ' - $_ciphertext = ""; - $_buffer = &$self->enbuffer; - - if ($self->continuousBuffer) { - $_iv = &$self->encryptIV; - $_pos = &$_buffer["pos"]; - } else { - $_iv = $self->encryptIV; - $_pos = 0; - } - $_len = strlen($_text); - $_i = 0; - if ($_pos) { - $_orig_pos = $_pos; - $_max = '.$block_size.' - $_pos; - if ($_len >= $_max) { - $_i = $_max; - $_len-= $_max; - $_pos = 0; - } else { - $_i = $_len; - $_pos+= $_len; - $_len = 0; - } - $_ciphertext = substr($_iv, $_orig_pos) ^ $_text; - $_iv = substr_replace($_iv, $_ciphertext, $_orig_pos, $_i); - } - while ($_len >= '.$block_size.') { - $in = $_iv; - '.$encrypt_block.'; - $_iv = $in ^ substr($_text, $_i, '.$block_size.'); - $_ciphertext.= $_iv; - $_len-= '.$block_size.'; - $_i+= '.$block_size.'; - } - if ($_len) { - $in = $_iv; - '.$encrypt_block.' - $_iv = $in; - $_block = $_iv ^ substr($_text, $_i); - $_iv = substr_replace($_iv, $_block, 0, $_len); - $_ciphertext.= $_block; - $_pos = $_len; - } - return $_ciphertext; - '; - - $decrypt = $init_encrypt . ' - $_plaintext = ""; - $_buffer = &$self->debuffer; - - if ($self->continuousBuffer) { - $_iv = &$self->decryptIV; - $_pos = &$_buffer["pos"]; - } else { - $_iv = $self->decryptIV; - $_pos = 0; - } - $_len = strlen($_text); - $_i = 0; - if ($_pos) { - $_orig_pos = $_pos; - $_max = '.$block_size.' - $_pos; - if ($_len >= $_max) { - $_i = $_max; - $_len-= $_max; - $_pos = 0; - } else { - $_i = $_len; - $_pos+= $_len; - $_len = 0; - } - $_plaintext = substr($_iv, $_orig_pos) ^ $_text; - $_iv = substr_replace($_iv, substr($_text, 0, $_i), $_orig_pos, $_i); - } - while ($_len >= '.$block_size.') { - $in = $_iv; - '.$encrypt_block.' - $_iv = $in; - $cb = substr($_text, $_i, '.$block_size.'); - $_plaintext.= $_iv ^ $cb; - $_iv = $cb; - $_len-= '.$block_size.'; - $_i+= '.$block_size.'; - } - if ($_len) { - $in = $_iv; - '.$encrypt_block.' - $_iv = $in; - $_plaintext.= $_iv ^ substr($_text, $_i); - $_iv = substr_replace($_iv, substr($_text, $_i), 0, $_len); - $_pos = $_len; - } - - return $_plaintext; - '; - break; - case self::MODE_CFB8: - $encrypt = $init_encrypt . ' - $_ciphertext = ""; - $_len = strlen($_text); - $_iv = $self->encryptIV; - - for ($_i = 0; $_i < $_len; ++$_i) { - $in = $_iv; - '.$encrypt_block.' - $_ciphertext .= ($_c = $_text[$_i] ^ $in); - $_iv = substr($_iv, 1) . $_c; - } - - if ($self->continuousBuffer) { - if ($_len >= '.$block_size.') { - $self->encryptIV = substr($_ciphertext, -'.$block_size.'); - } else { - $self->encryptIV = substr($self->encryptIV, $_len - '.$block_size.') . substr($_ciphertext, -$_len); - } - } - - return $_ciphertext; - '; - $decrypt = $init_encrypt . ' - $_plaintext = ""; - $_len = strlen($_text); - $_iv = $self->decryptIV; - - for ($_i = 0; $_i < $_len; ++$_i) { - $in = $_iv; - '.$encrypt_block.' - $_plaintext .= $_text[$_i] ^ $in; - $_iv = substr($_iv, 1) . $_text[$_i]; - } - - if ($self->continuousBuffer) { - if ($_len >= '.$block_size.') { - $self->decryptIV = substr($_text, -'.$block_size.'); - } else { - $self->decryptIV = substr($self->decryptIV, $_len - '.$block_size.') . substr($_text, -$_len); - } - } - - return $_plaintext; - '; - break; - case self::MODE_OFB: - $encrypt = $init_encrypt . ' - $_ciphertext = ""; - $_plaintext_len = strlen($_text); - $_xor = $self->encryptIV; - $_buffer = &$self->enbuffer; - - if (strlen($_buffer["xor"])) { - for ($_i = 0; $_i < $_plaintext_len; $_i+= '.$block_size.') { - $_block = substr($_text, $_i, '.$block_size.'); - if (strlen($_block) > strlen($_buffer["xor"])) { - $in = $_xor; - '.$encrypt_block.' - $_xor = $in; - $_buffer["xor"].= $_xor; - } - $_key = $self->_string_shift($_buffer["xor"], '.$block_size.'); - $_ciphertext.= $_block ^ $_key; - } - } else { - for ($_i = 0; $_i < $_plaintext_len; $_i+= '.$block_size.') { - $in = $_xor; - '.$encrypt_block.' - $_xor = $in; - $_ciphertext.= substr($_text, $_i, '.$block_size.') ^ $_xor; - } - $_key = $_xor; - } - if ($self->continuousBuffer) { - $self->encryptIV = $_xor; - if ($_start = $_plaintext_len % '.$block_size.') { - $_buffer["xor"] = substr($_key, $_start) . $_buffer["xor"]; - } - } - return $_ciphertext; - '; - - $decrypt = $init_encrypt . ' - $_plaintext = ""; - $_ciphertext_len = strlen($_text); - $_xor = $self->decryptIV; - $_buffer = &$self->debuffer; - - if (strlen($_buffer["xor"])) { - for ($_i = 0; $_i < $_ciphertext_len; $_i+= '.$block_size.') { - $_block = substr($_text, $_i, '.$block_size.'); - if (strlen($_block) > strlen($_buffer["xor"])) { - $in = $_xor; - '.$encrypt_block.' - $_xor = $in; - $_buffer["xor"].= $_xor; - } - $_key = $self->_string_shift($_buffer["xor"], '.$block_size.'); - $_plaintext.= $_block ^ $_key; - } - } else { - for ($_i = 0; $_i < $_ciphertext_len; $_i+= '.$block_size.') { - $in = $_xor; - '.$encrypt_block.' - $_xor = $in; - $_plaintext.= substr($_text, $_i, '.$block_size.') ^ $_xor; - } - $_key = $_xor; - } - if ($self->continuousBuffer) { - $self->decryptIV = $_xor; - if ($_start = $_ciphertext_len % '.$block_size.') { - $_buffer["xor"] = substr($_key, $_start) . $_buffer["xor"]; - } - } - return $_plaintext; - '; - break; - case self::MODE_STREAM: - $encrypt = $init_encrypt . ' - $_ciphertext = ""; - '.$encrypt_block.' - return $_ciphertext; - '; - $decrypt = $init_decrypt . ' - $_plaintext = ""; - '.$decrypt_block.' - return $_plaintext; - '; - break; - // case self::MODE_CBC: - default: - $encrypt = $init_encrypt . ' - $_ciphertext = ""; - $_plaintext_len = strlen($_text); - - $in = $self->encryptIV; - - for ($_i = 0; $_i < $_plaintext_len; $_i+= '.$block_size.') { - $in = substr($_text, $_i, '.$block_size.') ^ $in; - '.$encrypt_block.' - $_ciphertext.= $in; - } - - if ($self->continuousBuffer) { - $self->encryptIV = $in; - } - - return $_ciphertext; - '; - - $decrypt = $init_decrypt . ' - $_plaintext = ""; - $_text = str_pad($_text, strlen($_text) + ('.$block_size.' - strlen($_text) % '.$block_size.') % '.$block_size.', chr(0)); - $_ciphertext_len = strlen($_text); - - $_iv = $self->decryptIV; - - for ($_i = 0; $_i < $_ciphertext_len; $_i+= '.$block_size.') { - $in = $_block = substr($_text, $_i, '.$block_size.'); - '.$decrypt_block.' - $_plaintext.= $in ^ $_iv; - $_iv = $_block; - } - - if ($self->continuousBuffer) { - $self->decryptIV = $_iv; - } - - return $self->_unpad($_plaintext); - '; - break; - } - - // Create the $inline function and return its name as string. Ready to run! - if (version_compare(PHP_VERSION, '5.3.0') >= 0) { - eval('$func = function ($_action, &$self, $_text) { ' . $init_crypt . 'if ($_action == "encrypt") { ' . $encrypt . ' } else { ' . $decrypt . ' } };'); - return $func; - } - - return create_function('$_action, &$self, $_text', $init_crypt . 'if ($_action == "encrypt") { ' . $encrypt . ' } else { ' . $decrypt . ' }'); - } - - /** - * Holds the lambda_functions table (classwide) - * - * Each name of the lambda function, created from - * _setupInlineCrypt() && _createInlineCryptFunction() - * is stored, classwide (!), here for reusing. - * - * The string-based index of $function is a classwide - * unique value representing, at least, the $mode of - * operation (or more... depends of the optimizing level) - * for which $mode the lambda function was created. - * - * @access private - * @return array &$functions - */ - function &_getLambdaFunctions() - { - static $functions = array(); - return $functions; - } - - /** - * Generates a digest from $bytes - * - * @see self::_setupInlineCrypt() - * @access private - * @param $bytes - * @return string - */ - function _hashInlineCryptFunction($bytes) - { - if (!isset(self::$WHIRLPOOL_AVAILABLE)) { - self::$WHIRLPOOL_AVAILABLE = extension_loaded('hash') && in_array('whirlpool', hash_algos()); - } - - $result = ''; - $hash = $bytes; - - switch (true) { - case self::$WHIRLPOOL_AVAILABLE: - foreach (str_split($bytes, 64) as $t) { - $hash = hash('whirlpool', $hash, true); - $result .= $t ^ $hash; - } - return $result . hash('whirlpool', $hash, true); - default: - $len = strlen($bytes); - for ($i = 0; $i < $len; $i+=20) { - $t = substr($bytes, $i, 20); - $hash = pack('H*', sha1($hash)); - $result .= $t ^ $hash; - } - return $result . pack('H*', sha1($hash)); - } - } - - /** - * Convert float to int - * - * On ARM CPUs converting floats to ints doesn't always work - * - * @access private - * @param string $x - * @return int - */ - function safe_intval($x) - { - switch (true) { - case is_int($x): - // PHP 5.3, per http://php.net/releases/5_3_0.php, introduced "more consistent float rounding" - case (php_uname('m') & "\xDF\xDF\xDF") != 'ARM': - return $x; - } - return (fmod($x, 0x80000000) & 0x7FFFFFFF) | - ((fmod(floor($x / 0x80000000), 2) & 1) << 31); - } - - /** - * eval()'able string for in-line float to int - * - * @access private - * @return string - */ - function safe_intval_inline() - { - switch (true) { - case defined('PHP_INT_SIZE') && PHP_INT_SIZE == 8: - case (php_uname('m') & "\xDF\xDF\xDF") != 'ARM': - return '%s'; - break; - default: - $safeint = '(is_int($temp = %s) ? $temp : (fmod($temp, 0x80000000) & 0x7FFFFFFF) | '; - return $safeint . '((fmod(floor($temp / 0x80000000), 2) & 1) << 31))'; - } - } -} diff --git a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/Crypt/Random.php b/srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/Crypt/Random.php deleted file mode 100644 index 01e34cc..0000000 --- a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/Crypt/Random.php +++ /dev/null @@ -1,274 +0,0 @@ - - * - * - * - * @category Crypt - * @package Random - * @author Jim Wigginton - * @copyright 2007 Jim Wigginton - * @license http://www.opensource.org/licenses/mit-license.html MIT License - * @link http://phpseclib.sourceforge.net - */ - -namespace phpseclib\Crypt; - -/** - * Pure-PHP Random Number Generator - * - * @package Random - * @author Jim Wigginton - * @access public - */ -class Random -{ - /** - * Generate a random string. - * - * Although microoptimizations are generally discouraged as they impair readability this function is ripe with - * microoptimizations because this function has the potential of being called a huge number of times. - * eg. for RSA key generation. - * - * @param int $length - * @return string - */ - static function string($length) - { - if (!$length) { - return ''; - } - - if (version_compare(PHP_VERSION, '7.0.0', '>=')) { - try { - return \random_bytes($length); - } catch (\Throwable $e) { - // If a sufficient source of randomness is unavailable, random_bytes() will throw an - // object that implements the Throwable interface (Exception, TypeError, Error). - // We don't actually need to do anything here. The string() method should just continue - // as normal. Note, however, that if we don't have a sufficient source of randomness for - // random_bytes(), most of the other calls here will fail too, so we'll end up using - // the PHP implementation. - } - } - - if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { - // method 1. prior to PHP 5.3 this would call rand() on windows hence the function_exists('class_alias') call. - // ie. class_alias is a function that was introduced in PHP 5.3 - if (extension_loaded('mcrypt') && function_exists('class_alias')) { - return @mcrypt_create_iv($length); - } - // method 2. openssl_random_pseudo_bytes was introduced in PHP 5.3.0 but prior to PHP 5.3.4 there was, - // to quote , "possible blocking behavior". as of 5.3.4 - // openssl_random_pseudo_bytes and mcrypt_create_iv do the exact same thing on Windows. ie. they both - // call php_win32_get_random_bytes(): - // - // https://github.com/php/php-src/blob/7014a0eb6d1611151a286c0ff4f2238f92c120d6/ext/openssl/openssl.c#L5008 - // https://github.com/php/php-src/blob/7014a0eb6d1611151a286c0ff4f2238f92c120d6/ext/mcrypt/mcrypt.c#L1392 - // - // php_win32_get_random_bytes() is defined thusly: - // - // https://github.com/php/php-src/blob/7014a0eb6d1611151a286c0ff4f2238f92c120d6/win32/winutil.c#L80 - // - // we're calling it, all the same, in the off chance that the mcrypt extension is not available - if (extension_loaded('openssl') && version_compare(PHP_VERSION, '5.3.4', '>=')) { - return openssl_random_pseudo_bytes($length); - } - } else { - // method 1. the fastest - if (extension_loaded('openssl')) { - return openssl_random_pseudo_bytes($length); - } - // method 2 - static $fp = true; - if ($fp === true) { - // warning's will be output unles the error suppression operator is used. errors such as - // "open_basedir restriction in effect", "Permission denied", "No such file or directory", etc. - $fp = @fopen('/dev/urandom', 'rb'); - } - if ($fp !== true && $fp !== false) { // surprisingly faster than !is_bool() or is_resource() - return fread($fp, $length); - } - // method 3. pretty much does the same thing as method 2 per the following url: - // https://github.com/php/php-src/blob/7014a0eb6d1611151a286c0ff4f2238f92c120d6/ext/mcrypt/mcrypt.c#L1391 - // surprisingly slower than method 2. maybe that's because mcrypt_create_iv does a bunch of error checking that we're - // not doing. regardless, this'll only be called if this PHP script couldn't open /dev/urandom due to open_basedir - // restrictions or some such - if (extension_loaded('mcrypt')) { - return @mcrypt_create_iv($length, MCRYPT_DEV_URANDOM); - } - } - // at this point we have no choice but to use a pure-PHP CSPRNG - - // cascade entropy across multiple PHP instances by fixing the session and collecting all - // environmental variables, including the previous session data and the current session - // data. - // - // mt_rand seeds itself by looking at the PID and the time, both of which are (relatively) - // easy to guess at. linux uses mouse clicks, keyboard timings, etc, as entropy sources, but - // PHP isn't low level to be able to use those as sources and on a web server there's not likely - // going to be a ton of keyboard or mouse action. web servers do have one thing that we can use - // however, a ton of people visiting the website. obviously you don't want to base your seeding - // soley on parameters a potential attacker sends but (1) not everything in $_SERVER is controlled - // by the user and (2) this isn't just looking at the data sent by the current user - it's based - // on the data sent by all users. one user requests the page and a hash of their info is saved. - // another user visits the page and the serialization of their data is utilized along with the - // server envirnment stuff and a hash of the previous http request data (which itself utilizes - // a hash of the session data before that). certainly an attacker should be assumed to have - // full control over his own http requests. he, however, is not going to have control over - // everyone's http requests. - static $crypto = false, $v; - if ($crypto === false) { - // save old session data - $old_session_id = session_id(); - $old_use_cookies = ini_get('session.use_cookies'); - $old_session_cache_limiter = session_cache_limiter(); - $_OLD_SESSION = isset($_SESSION) ? $_SESSION : false; - if ($old_session_id != '') { - session_write_close(); - } - - session_id(1); - ini_set('session.use_cookies', 0); - session_cache_limiter(''); - session_start(); - - $v = $seed = $_SESSION['seed'] = pack('H*', sha1( - (isset($_SERVER) ? phpseclib_safe_serialize($_SERVER) : '') . - (isset($_POST) ? phpseclib_safe_serialize($_POST) : '') . - (isset($_GET) ? phpseclib_safe_serialize($_GET) : '') . - (isset($_COOKIE) ? phpseclib_safe_serialize($_COOKIE) : '') . - phpseclib_safe_serialize($GLOBALS) . - phpseclib_safe_serialize($_SESSION) . - phpseclib_safe_serialize($_OLD_SESSION) - )); - if (!isset($_SESSION['count'])) { - $_SESSION['count'] = 0; - } - $_SESSION['count']++; - - session_write_close(); - - // restore old session data - if ($old_session_id != '') { - session_id($old_session_id); - session_start(); - ini_set('session.use_cookies', $old_use_cookies); - session_cache_limiter($old_session_cache_limiter); - } else { - if ($_OLD_SESSION !== false) { - $_SESSION = $_OLD_SESSION; - unset($_OLD_SESSION); - } else { - unset($_SESSION); - } - } - - // in SSH2 a shared secret and an exchange hash are generated through the key exchange process. - // the IV client to server is the hash of that "nonce" with the letter A and for the encryption key it's the letter C. - // if the hash doesn't produce enough a key or an IV that's long enough concat successive hashes of the - // original hash and the current hash. we'll be emulating that. for more info see the following URL: - // - // http://tools.ietf.org/html/rfc4253#section-7.2 - // - // see the is_string($crypto) part for an example of how to expand the keys - $key = pack('H*', sha1($seed . 'A')); - $iv = pack('H*', sha1($seed . 'C')); - - // ciphers are used as per the nist.gov link below. also, see this link: - // - // http://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_generator#Designs_based_on_cryptographic_primitives - switch (true) { - case class_exists('\phpseclib\Crypt\AES'): - $crypto = new AES(Base::MODE_CTR); - break; - case class_exists('\phpseclib\Crypt\Twofish'): - $crypto = new Twofish(Base::MODE_CTR); - break; - case class_exists('\phpseclib\Crypt\Blowfish'): - $crypto = new Blowfish(Base::MODE_CTR); - break; - case class_exists('\phpseclib\Crypt\TripleDES'): - $crypto = new TripleDES(Base::MODE_CTR); - break; - case class_exists('\phpseclib\Crypt\DES'): - $crypto = new DES(Base::MODE_CTR); - break; - case class_exists('\phpseclib\Crypt\RC4'): - $crypto = new RC4(); - break; - default: - user_error(__CLASS__ . ' requires at least one symmetric cipher be loaded'); - return false; - } - - $crypto->setKey($key); - $crypto->setIV($iv); - $crypto->enableContinuousBuffer(); - } - - //return $crypto->encrypt(str_repeat("\0", $length)); - - // the following is based off of ANSI X9.31: - // - // http://csrc.nist.gov/groups/STM/cavp/documents/rng/931rngext.pdf - // - // OpenSSL uses that same standard for it's random numbers: - // - // http://www.opensource.apple.com/source/OpenSSL/OpenSSL-38/openssl/fips-1.0/rand/fips_rand.c - // (do a search for "ANS X9.31 A.2.4") - $result = ''; - while (strlen($result) < $length) { - $i = $crypto->encrypt(microtime()); // strlen(microtime()) == 21 - $r = $crypto->encrypt($i ^ $v); // strlen($v) == 20 - $v = $crypto->encrypt($r ^ $i); // strlen($r) == 20 - $result.= $r; - } - return substr($result, 0, $length); - } -} - -if (!function_exists('phpseclib_safe_serialize')) { - /** - * Safely serialize variables - * - * If a class has a private __sleep() method it'll give a fatal error on PHP 5.2 and earlier. - * PHP 5.3 will emit a warning. - * - * @param mixed $arr - * @access public - */ - function phpseclib_safe_serialize(&$arr) - { - if (is_object($arr)) { - return ''; - } - if (!is_array($arr)) { - return serialize($arr); - } - // prevent circular array recursion - if (isset($arr['__phpseclib_marker'])) { - return ''; - } - $safearr = array(); - $arr['__phpseclib_marker'] = true; - foreach (array_keys($arr) as $key) { - // do not recurse on the '__phpseclib_marker' key itself, for smaller memory usage - if ($key !== '__phpseclib_marker') { - $safearr[$key] = phpseclib_safe_serialize($arr[$key]); - } - } - unset($arr['__phpseclib_marker']); - return serialize($safearr); - } -} diff --git a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php b/srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php deleted file mode 100644 index 3648a19..0000000 --- a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php +++ /dev/null @@ -1,936 +0,0 @@ - - * setKey('abcdefghijklmnop'); - * - * $size = 10 * 1024; - * $plaintext = ''; - * for ($i = 0; $i < $size; $i++) { - * $plaintext.= 'a'; - * } - * - * echo $rijndael->decrypt($rijndael->encrypt($plaintext)); - * ?> - * - * - * @category Crypt - * @package Rijndael - * @author Jim Wigginton - * @copyright 2008 Jim Wigginton - * @license http://www.opensource.org/licenses/mit-license.html MIT License - * @link http://phpseclib.sourceforge.net - */ - -namespace phpseclib\Crypt; - -/** - * Pure-PHP implementation of Rijndael. - * - * @package Rijndael - * @author Jim Wigginton - * @access public - */ -class Rijndael extends Base -{ - /** - * The mcrypt specific name of the cipher - * - * Mcrypt is useable for 128/192/256-bit $block_size/$key_length. For 160/224 not. - * \phpseclib\Crypt\Rijndael determines automatically whether mcrypt is useable - * or not for the current $block_size/$key_length. - * In case of, $cipher_name_mcrypt will be set dynamically at run time accordingly. - * - * @see \phpseclib\Crypt\Base::cipher_name_mcrypt - * @see \phpseclib\Crypt\Base::engine - * @see self::isValidEngine() - * @var string - * @access private - */ - var $cipher_name_mcrypt = 'rijndael-128'; - - /** - * The default salt used by setPassword() - * - * @see \phpseclib\Crypt\Base::password_default_salt - * @see \phpseclib\Crypt\Base::setPassword() - * @var string - * @access private - */ - var $password_default_salt = 'phpseclib'; - - /** - * The Key Schedule - * - * @see self::_setup() - * @var array - * @access private - */ - var $w; - - /** - * The Inverse Key Schedule - * - * @see self::_setup() - * @var array - * @access private - */ - var $dw; - - /** - * The Block Length divided by 32 - * - * @see self::setBlockLength() - * @var int - * @access private - * @internal The max value is 256 / 32 = 8, the min value is 128 / 32 = 4. Exists in conjunction with $block_size - * because the encryption / decryption / key schedule creation requires this number and not $block_size. We could - * derive this from $block_size or vice versa, but that'd mean we'd have to do multiple shift operations, so in lieu - * of that, we'll just precompute it once. - */ - var $Nb = 4; - - /** - * The Key Length (in bytes) - * - * @see self::setKeyLength() - * @var int - * @access private - * @internal The max value is 256 / 8 = 32, the min value is 128 / 8 = 16. Exists in conjunction with $Nk - * because the encryption / decryption / key schedule creation requires this number and not $key_length. We could - * derive this from $key_length or vice versa, but that'd mean we'd have to do multiple shift operations, so in lieu - * of that, we'll just precompute it once. - */ - var $key_length = 16; - - /** - * The Key Length divided by 32 - * - * @see self::setKeyLength() - * @var int - * @access private - * @internal The max value is 256 / 32 = 8, the min value is 128 / 32 = 4 - */ - var $Nk = 4; - - /** - * The Number of Rounds - * - * @var int - * @access private - * @internal The max value is 14, the min value is 10. - */ - var $Nr; - - /** - * Shift offsets - * - * @var array - * @access private - */ - var $c; - - /** - * Holds the last used key- and block_size information - * - * @var array - * @access private - */ - var $kl; - - /** - * Sets the key length. - * - * Valid key lengths are 128, 160, 192, 224, and 256. If the length is less than 128, it will be rounded up to - * 128. If the length is greater than 128 and invalid, it will be rounded down to the closest valid amount. - * - * Note: phpseclib extends Rijndael (and AES) for using 160- and 224-bit keys but they are officially not defined - * and the most (if not all) implementations are not able using 160/224-bit keys but round/pad them up to - * 192/256 bits as, for example, mcrypt will do. - * - * That said, if you want be compatible with other Rijndael and AES implementations, - * you should not setKeyLength(160) or setKeyLength(224). - * - * Additional: In case of 160- and 224-bit keys, phpseclib will/can, for that reason, not use - * the mcrypt php extension, even if available. - * This results then in slower encryption. - * - * @access public - * @param int $length - */ - function setKeyLength($length) - { - switch (true) { - case $length <= 128: - $this->key_length = 16; - break; - case $length <= 160: - $this->key_length = 20; - break; - case $length <= 192: - $this->key_length = 24; - break; - case $length <= 224: - $this->key_length = 28; - break; - default: - $this->key_length = 32; - } - - parent::setKeyLength($length); - } - - /** - * Sets the block length - * - * Valid block lengths are 128, 160, 192, 224, and 256. If the length is less than 128, it will be rounded up to - * 128. If the length is greater than 128 and invalid, it will be rounded down to the closest valid amount. - * - * @access public - * @param int $length - */ - function setBlockLength($length) - { - $length >>= 5; - if ($length > 8) { - $length = 8; - } elseif ($length < 4) { - $length = 4; - } - $this->Nb = $length; - $this->block_size = $length << 2; - $this->changed = true; - $this->_setEngine(); - } - - /** - * Test for engine validity - * - * This is mainly just a wrapper to set things up for \phpseclib\Crypt\Base::isValidEngine() - * - * @see \phpseclib\Crypt\Base::__construct() - * @param int $engine - * @access public - * @return bool - */ - function isValidEngine($engine) - { - switch ($engine) { - case self::ENGINE_OPENSSL: - if ($this->block_size != 16) { - return false; - } - $this->cipher_name_openssl_ecb = 'aes-' . ($this->key_length << 3) . '-ecb'; - $this->cipher_name_openssl = 'aes-' . ($this->key_length << 3) . '-' . $this->_openssl_translate_mode(); - break; - case self::ENGINE_MCRYPT: - $this->cipher_name_mcrypt = 'rijndael-' . ($this->block_size << 3); - if ($this->key_length % 8) { // is it a 160/224-bit key? - // mcrypt is not usable for them, only for 128/192/256-bit keys - return false; - } - } - - return parent::isValidEngine($engine); - } - - /** - * Encrypts a block - * - * @access private - * @param string $in - * @return string - */ - function _encryptBlock($in) - { - static $tables; - if (empty($tables)) { - $tables = &$this->_getTables(); - } - $t0 = $tables[0]; - $t1 = $tables[1]; - $t2 = $tables[2]; - $t3 = $tables[3]; - $sbox = $tables[4]; - - $state = array(); - $words = unpack('N*', $in); - - $c = $this->c; - $w = $this->w; - $Nb = $this->Nb; - $Nr = $this->Nr; - - // addRoundKey - $wc = $Nb - 1; - foreach ($words as $word) { - $state[] = $word ^ $w[++$wc]; - } - - // fips-197.pdf#page=19, "Figure 5. Pseudo Code for the Cipher", states that this loop has four components - - // subBytes, shiftRows, mixColumns, and addRoundKey. fips-197.pdf#page=30, "Implementation Suggestions Regarding - // Various Platforms" suggests that performs enhanced implementations are described in Rijndael-ammended.pdf. - // Rijndael-ammended.pdf#page=20, "Implementation aspects / 32-bit processor", discusses such an optimization. - // Unfortunately, the description given there is not quite correct. Per aes.spec.v316.pdf#page=19 [1], - // equation (7.4.7) is supposed to use addition instead of subtraction, so we'll do that here, as well. - - // [1] http://fp.gladman.plus.com/cryptography_technology/rijndael/aes.spec.v316.pdf - $temp = array(); - for ($round = 1; $round < $Nr; ++$round) { - $i = 0; // $c[0] == 0 - $j = $c[1]; - $k = $c[2]; - $l = $c[3]; - - while ($i < $Nb) { - $temp[$i] = $t0[$state[$i] >> 24 & 0x000000FF] ^ - $t1[$state[$j] >> 16 & 0x000000FF] ^ - $t2[$state[$k] >> 8 & 0x000000FF] ^ - $t3[$state[$l] & 0x000000FF] ^ - $w[++$wc]; - ++$i; - $j = ($j + 1) % $Nb; - $k = ($k + 1) % $Nb; - $l = ($l + 1) % $Nb; - } - $state = $temp; - } - - // subWord - for ($i = 0; $i < $Nb; ++$i) { - $state[$i] = $sbox[$state[$i] & 0x000000FF] | - ($sbox[$state[$i] >> 8 & 0x000000FF] << 8) | - ($sbox[$state[$i] >> 16 & 0x000000FF] << 16) | - ($sbox[$state[$i] >> 24 & 0x000000FF] << 24); - } - - // shiftRows + addRoundKey - $i = 0; // $c[0] == 0 - $j = $c[1]; - $k = $c[2]; - $l = $c[3]; - while ($i < $Nb) { - $temp[$i] = ($state[$i] & 0xFF000000) ^ - ($state[$j] & 0x00FF0000) ^ - ($state[$k] & 0x0000FF00) ^ - ($state[$l] & 0x000000FF) ^ - $w[$i]; - ++$i; - $j = ($j + 1) % $Nb; - $k = ($k + 1) % $Nb; - $l = ($l + 1) % $Nb; - } - - switch ($Nb) { - case 8: - return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5], $temp[6], $temp[7]); - case 7: - return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5], $temp[6]); - case 6: - return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5]); - case 5: - return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4]); - default: - return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3]); - } - } - - /** - * Decrypts a block - * - * @access private - * @param string $in - * @return string - */ - function _decryptBlock($in) - { - static $invtables; - if (empty($invtables)) { - $invtables = &$this->_getInvTables(); - } - $dt0 = $invtables[0]; - $dt1 = $invtables[1]; - $dt2 = $invtables[2]; - $dt3 = $invtables[3]; - $isbox = $invtables[4]; - - $state = array(); - $words = unpack('N*', $in); - - $c = $this->c; - $dw = $this->dw; - $Nb = $this->Nb; - $Nr = $this->Nr; - - // addRoundKey - $wc = $Nb - 1; - foreach ($words as $word) { - $state[] = $word ^ $dw[++$wc]; - } - - $temp = array(); - for ($round = $Nr - 1; $round > 0; --$round) { - $i = 0; // $c[0] == 0 - $j = $Nb - $c[1]; - $k = $Nb - $c[2]; - $l = $Nb - $c[3]; - - while ($i < $Nb) { - $temp[$i] = $dt0[$state[$i] >> 24 & 0x000000FF] ^ - $dt1[$state[$j] >> 16 & 0x000000FF] ^ - $dt2[$state[$k] >> 8 & 0x000000FF] ^ - $dt3[$state[$l] & 0x000000FF] ^ - $dw[++$wc]; - ++$i; - $j = ($j + 1) % $Nb; - $k = ($k + 1) % $Nb; - $l = ($l + 1) % $Nb; - } - $state = $temp; - } - - // invShiftRows + invSubWord + addRoundKey - $i = 0; // $c[0] == 0 - $j = $Nb - $c[1]; - $k = $Nb - $c[2]; - $l = $Nb - $c[3]; - - while ($i < $Nb) { - $word = ($state[$i] & 0xFF000000) | - ($state[$j] & 0x00FF0000) | - ($state[$k] & 0x0000FF00) | - ($state[$l] & 0x000000FF); - - $temp[$i] = $dw[$i] ^ ($isbox[$word & 0x000000FF] | - ($isbox[$word >> 8 & 0x000000FF] << 8) | - ($isbox[$word >> 16 & 0x000000FF] << 16) | - ($isbox[$word >> 24 & 0x000000FF] << 24)); - ++$i; - $j = ($j + 1) % $Nb; - $k = ($k + 1) % $Nb; - $l = ($l + 1) % $Nb; - } - - switch ($Nb) { - case 8: - return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5], $temp[6], $temp[7]); - case 7: - return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5], $temp[6]); - case 6: - return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5]); - case 5: - return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4]); - default: - return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3]); - } - } - - /** - * Setup the key (expansion) - * - * @see \phpseclib\Crypt\Base::_setupKey() - * @access private - */ - function _setupKey() - { - // Each number in $rcon is equal to the previous number multiplied by two in Rijndael's finite field. - // See http://en.wikipedia.org/wiki/Finite_field_arithmetic#Multiplicative_inverse - static $rcon = array(0, - 0x01000000, 0x02000000, 0x04000000, 0x08000000, 0x10000000, - 0x20000000, 0x40000000, 0x80000000, 0x1B000000, 0x36000000, - 0x6C000000, 0xD8000000, 0xAB000000, 0x4D000000, 0x9A000000, - 0x2F000000, 0x5E000000, 0xBC000000, 0x63000000, 0xC6000000, - 0x97000000, 0x35000000, 0x6A000000, 0xD4000000, 0xB3000000, - 0x7D000000, 0xFA000000, 0xEF000000, 0xC5000000, 0x91000000 - ); - - if (isset($this->kl['key']) && $this->key === $this->kl['key'] && $this->key_length === $this->kl['key_length'] && $this->block_size === $this->kl['block_size']) { - // already expanded - return; - } - $this->kl = array('key' => $this->key, 'key_length' => $this->key_length, 'block_size' => $this->block_size); - - $this->Nk = $this->key_length >> 2; - // see Rijndael-ammended.pdf#page=44 - $this->Nr = max($this->Nk, $this->Nb) + 6; - - // shift offsets for Nb = 5, 7 are defined in Rijndael-ammended.pdf#page=44, - // "Table 8: Shift offsets in Shiftrow for the alternative block lengths" - // shift offsets for Nb = 4, 6, 8 are defined in Rijndael-ammended.pdf#page=14, - // "Table 2: Shift offsets for different block lengths" - switch ($this->Nb) { - case 4: - case 5: - case 6: - $this->c = array(0, 1, 2, 3); - break; - case 7: - $this->c = array(0, 1, 2, 4); - break; - case 8: - $this->c = array(0, 1, 3, 4); - } - - $w = array_values(unpack('N*words', $this->key)); - - $length = $this->Nb * ($this->Nr + 1); - for ($i = $this->Nk; $i < $length; $i++) { - $temp = $w[$i - 1]; - if ($i % $this->Nk == 0) { - // according to , "the size of an integer is platform-dependent". - // on a 32-bit machine, it's 32-bits, and on a 64-bit machine, it's 64-bits. on a 32-bit machine, - // 0xFFFFFFFF << 8 == 0xFFFFFF00, but on a 64-bit machine, it equals 0xFFFFFFFF00. as such, doing 'and' - // with 0xFFFFFFFF (or 0xFFFFFF00) on a 32-bit machine is unnecessary, but on a 64-bit machine, it is. - $temp = (($temp << 8) & 0xFFFFFF00) | (($temp >> 24) & 0x000000FF); // rotWord - $temp = $this->_subWord($temp) ^ $rcon[$i / $this->Nk]; - } elseif ($this->Nk > 6 && $i % $this->Nk == 4) { - $temp = $this->_subWord($temp); - } - $w[$i] = $w[$i - $this->Nk] ^ $temp; - } - - // convert the key schedule from a vector of $Nb * ($Nr + 1) length to a matrix with $Nr + 1 rows and $Nb columns - // and generate the inverse key schedule. more specifically, - // according to (section 5.3.3), - // "The key expansion for the Inverse Cipher is defined as follows: - // 1. Apply the Key Expansion. - // 2. Apply InvMixColumn to all Round Keys except the first and the last one." - // also, see fips-197.pdf#page=27, "5.3.5 Equivalent Inverse Cipher" - list($dt0, $dt1, $dt2, $dt3) = $this->_getInvTables(); - $temp = $this->w = $this->dw = array(); - for ($i = $row = $col = 0; $i < $length; $i++, $col++) { - if ($col == $this->Nb) { - if ($row == 0) { - $this->dw[0] = $this->w[0]; - } else { - // subWord + invMixColumn + invSubWord = invMixColumn - $j = 0; - while ($j < $this->Nb) { - $dw = $this->_subWord($this->w[$row][$j]); - $temp[$j] = $dt0[$dw >> 24 & 0x000000FF] ^ - $dt1[$dw >> 16 & 0x000000FF] ^ - $dt2[$dw >> 8 & 0x000000FF] ^ - $dt3[$dw & 0x000000FF]; - $j++; - } - $this->dw[$row] = $temp; - } - - $col = 0; - $row++; - } - $this->w[$row][$col] = $w[$i]; - } - - $this->dw[$row] = $this->w[$row]; - - // Converting to 1-dim key arrays (both ascending) - $this->dw = array_reverse($this->dw); - $w = array_pop($this->w); - $dw = array_pop($this->dw); - foreach ($this->w as $r => $wr) { - foreach ($wr as $c => $wc) { - $w[] = $wc; - $dw[] = $this->dw[$r][$c]; - } - } - $this->w = $w; - $this->dw = $dw; - } - - /** - * Performs S-Box substitutions - * - * @access private - * @param int $word - */ - function _subWord($word) - { - static $sbox; - if (empty($sbox)) { - list(, , , , $sbox) = $this->_getTables(); - } - - return $sbox[$word & 0x000000FF] | - ($sbox[$word >> 8 & 0x000000FF] << 8) | - ($sbox[$word >> 16 & 0x000000FF] << 16) | - ($sbox[$word >> 24 & 0x000000FF] << 24); - } - - /** - * Provides the mixColumns and sboxes tables - * - * @see self::_encryptBlock() - * @see self::_setupInlineCrypt() - * @see self::_subWord() - * @access private - * @return array &$tables - */ - function &_getTables() - { - static $tables; - if (empty($tables)) { - // according to (section 5.2.1), - // precomputed tables can be used in the mixColumns phase. in that example, they're assigned t0...t3, so - // those are the names we'll use. - $t3 = array_map('intval', array( - // with array_map('intval', ...) we ensure we have only int's and not - // some slower floats converted by php automatically on high values - 0x6363A5C6, 0x7C7C84F8, 0x777799EE, 0x7B7B8DF6, 0xF2F20DFF, 0x6B6BBDD6, 0x6F6FB1DE, 0xC5C55491, - 0x30305060, 0x01010302, 0x6767A9CE, 0x2B2B7D56, 0xFEFE19E7, 0xD7D762B5, 0xABABE64D, 0x76769AEC, - 0xCACA458F, 0x82829D1F, 0xC9C94089, 0x7D7D87FA, 0xFAFA15EF, 0x5959EBB2, 0x4747C98E, 0xF0F00BFB, - 0xADADEC41, 0xD4D467B3, 0xA2A2FD5F, 0xAFAFEA45, 0x9C9CBF23, 0xA4A4F753, 0x727296E4, 0xC0C05B9B, - 0xB7B7C275, 0xFDFD1CE1, 0x9393AE3D, 0x26266A4C, 0x36365A6C, 0x3F3F417E, 0xF7F702F5, 0xCCCC4F83, - 0x34345C68, 0xA5A5F451, 0xE5E534D1, 0xF1F108F9, 0x717193E2, 0xD8D873AB, 0x31315362, 0x15153F2A, - 0x04040C08, 0xC7C75295, 0x23236546, 0xC3C35E9D, 0x18182830, 0x9696A137, 0x05050F0A, 0x9A9AB52F, - 0x0707090E, 0x12123624, 0x80809B1B, 0xE2E23DDF, 0xEBEB26CD, 0x2727694E, 0xB2B2CD7F, 0x75759FEA, - 0x09091B12, 0x83839E1D, 0x2C2C7458, 0x1A1A2E34, 0x1B1B2D36, 0x6E6EB2DC, 0x5A5AEEB4, 0xA0A0FB5B, - 0x5252F6A4, 0x3B3B4D76, 0xD6D661B7, 0xB3B3CE7D, 0x29297B52, 0xE3E33EDD, 0x2F2F715E, 0x84849713, - 0x5353F5A6, 0xD1D168B9, 0x00000000, 0xEDED2CC1, 0x20206040, 0xFCFC1FE3, 0xB1B1C879, 0x5B5BEDB6, - 0x6A6ABED4, 0xCBCB468D, 0xBEBED967, 0x39394B72, 0x4A4ADE94, 0x4C4CD498, 0x5858E8B0, 0xCFCF4A85, - 0xD0D06BBB, 0xEFEF2AC5, 0xAAAAE54F, 0xFBFB16ED, 0x4343C586, 0x4D4DD79A, 0x33335566, 0x85859411, - 0x4545CF8A, 0xF9F910E9, 0x02020604, 0x7F7F81FE, 0x5050F0A0, 0x3C3C4478, 0x9F9FBA25, 0xA8A8E34B, - 0x5151F3A2, 0xA3A3FE5D, 0x4040C080, 0x8F8F8A05, 0x9292AD3F, 0x9D9DBC21, 0x38384870, 0xF5F504F1, - 0xBCBCDF63, 0xB6B6C177, 0xDADA75AF, 0x21216342, 0x10103020, 0xFFFF1AE5, 0xF3F30EFD, 0xD2D26DBF, - 0xCDCD4C81, 0x0C0C1418, 0x13133526, 0xECEC2FC3, 0x5F5FE1BE, 0x9797A235, 0x4444CC88, 0x1717392E, - 0xC4C45793, 0xA7A7F255, 0x7E7E82FC, 0x3D3D477A, 0x6464ACC8, 0x5D5DE7BA, 0x19192B32, 0x737395E6, - 0x6060A0C0, 0x81819819, 0x4F4FD19E, 0xDCDC7FA3, 0x22226644, 0x2A2A7E54, 0x9090AB3B, 0x8888830B, - 0x4646CA8C, 0xEEEE29C7, 0xB8B8D36B, 0x14143C28, 0xDEDE79A7, 0x5E5EE2BC, 0x0B0B1D16, 0xDBDB76AD, - 0xE0E03BDB, 0x32325664, 0x3A3A4E74, 0x0A0A1E14, 0x4949DB92, 0x06060A0C, 0x24246C48, 0x5C5CE4B8, - 0xC2C25D9F, 0xD3D36EBD, 0xACACEF43, 0x6262A6C4, 0x9191A839, 0x9595A431, 0xE4E437D3, 0x79798BF2, - 0xE7E732D5, 0xC8C8438B, 0x3737596E, 0x6D6DB7DA, 0x8D8D8C01, 0xD5D564B1, 0x4E4ED29C, 0xA9A9E049, - 0x6C6CB4D8, 0x5656FAAC, 0xF4F407F3, 0xEAEA25CF, 0x6565AFCA, 0x7A7A8EF4, 0xAEAEE947, 0x08081810, - 0xBABAD56F, 0x787888F0, 0x25256F4A, 0x2E2E725C, 0x1C1C2438, 0xA6A6F157, 0xB4B4C773, 0xC6C65197, - 0xE8E823CB, 0xDDDD7CA1, 0x74749CE8, 0x1F1F213E, 0x4B4BDD96, 0xBDBDDC61, 0x8B8B860D, 0x8A8A850F, - 0x707090E0, 0x3E3E427C, 0xB5B5C471, 0x6666AACC, 0x4848D890, 0x03030506, 0xF6F601F7, 0x0E0E121C, - 0x6161A3C2, 0x35355F6A, 0x5757F9AE, 0xB9B9D069, 0x86869117, 0xC1C15899, 0x1D1D273A, 0x9E9EB927, - 0xE1E138D9, 0xF8F813EB, 0x9898B32B, 0x11113322, 0x6969BBD2, 0xD9D970A9, 0x8E8E8907, 0x9494A733, - 0x9B9BB62D, 0x1E1E223C, 0x87879215, 0xE9E920C9, 0xCECE4987, 0x5555FFAA, 0x28287850, 0xDFDF7AA5, - 0x8C8C8F03, 0xA1A1F859, 0x89898009, 0x0D0D171A, 0xBFBFDA65, 0xE6E631D7, 0x4242C684, 0x6868B8D0, - 0x4141C382, 0x9999B029, 0x2D2D775A, 0x0F0F111E, 0xB0B0CB7B, 0x5454FCA8, 0xBBBBD66D, 0x16163A2C - )); - - foreach ($t3 as $t3i) { - $t0[] = (($t3i << 24) & 0xFF000000) | (($t3i >> 8) & 0x00FFFFFF); - $t1[] = (($t3i << 16) & 0xFFFF0000) | (($t3i >> 16) & 0x0000FFFF); - $t2[] = (($t3i << 8) & 0xFFFFFF00) | (($t3i >> 24) & 0x000000FF); - } - - $tables = array( - // The Precomputed mixColumns tables t0 - t3 - $t0, - $t1, - $t2, - $t3, - // The SubByte S-Box - array( - 0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5, 0x30, 0x01, 0x67, 0x2B, 0xFE, 0xD7, 0xAB, 0x76, - 0xCA, 0x82, 0xC9, 0x7D, 0xFA, 0x59, 0x47, 0xF0, 0xAD, 0xD4, 0xA2, 0xAF, 0x9C, 0xA4, 0x72, 0xC0, - 0xB7, 0xFD, 0x93, 0x26, 0x36, 0x3F, 0xF7, 0xCC, 0x34, 0xA5, 0xE5, 0xF1, 0x71, 0xD8, 0x31, 0x15, - 0x04, 0xC7, 0x23, 0xC3, 0x18, 0x96, 0x05, 0x9A, 0x07, 0x12, 0x80, 0xE2, 0xEB, 0x27, 0xB2, 0x75, - 0x09, 0x83, 0x2C, 0x1A, 0x1B, 0x6E, 0x5A, 0xA0, 0x52, 0x3B, 0xD6, 0xB3, 0x29, 0xE3, 0x2F, 0x84, - 0x53, 0xD1, 0x00, 0xED, 0x20, 0xFC, 0xB1, 0x5B, 0x6A, 0xCB, 0xBE, 0x39, 0x4A, 0x4C, 0x58, 0xCF, - 0xD0, 0xEF, 0xAA, 0xFB, 0x43, 0x4D, 0x33, 0x85, 0x45, 0xF9, 0x02, 0x7F, 0x50, 0x3C, 0x9F, 0xA8, - 0x51, 0xA3, 0x40, 0x8F, 0x92, 0x9D, 0x38, 0xF5, 0xBC, 0xB6, 0xDA, 0x21, 0x10, 0xFF, 0xF3, 0xD2, - 0xCD, 0x0C, 0x13, 0xEC, 0x5F, 0x97, 0x44, 0x17, 0xC4, 0xA7, 0x7E, 0x3D, 0x64, 0x5D, 0x19, 0x73, - 0x60, 0x81, 0x4F, 0xDC, 0x22, 0x2A, 0x90, 0x88, 0x46, 0xEE, 0xB8, 0x14, 0xDE, 0x5E, 0x0B, 0xDB, - 0xE0, 0x32, 0x3A, 0x0A, 0x49, 0x06, 0x24, 0x5C, 0xC2, 0xD3, 0xAC, 0x62, 0x91, 0x95, 0xE4, 0x79, - 0xE7, 0xC8, 0x37, 0x6D, 0x8D, 0xD5, 0x4E, 0xA9, 0x6C, 0x56, 0xF4, 0xEA, 0x65, 0x7A, 0xAE, 0x08, - 0xBA, 0x78, 0x25, 0x2E, 0x1C, 0xA6, 0xB4, 0xC6, 0xE8, 0xDD, 0x74, 0x1F, 0x4B, 0xBD, 0x8B, 0x8A, - 0x70, 0x3E, 0xB5, 0x66, 0x48, 0x03, 0xF6, 0x0E, 0x61, 0x35, 0x57, 0xB9, 0x86, 0xC1, 0x1D, 0x9E, - 0xE1, 0xF8, 0x98, 0x11, 0x69, 0xD9, 0x8E, 0x94, 0x9B, 0x1E, 0x87, 0xE9, 0xCE, 0x55, 0x28, 0xDF, - 0x8C, 0xA1, 0x89, 0x0D, 0xBF, 0xE6, 0x42, 0x68, 0x41, 0x99, 0x2D, 0x0F, 0xB0, 0x54, 0xBB, 0x16 - ) - ); - } - return $tables; - } - - /** - * Provides the inverse mixColumns and inverse sboxes tables - * - * @see self::_decryptBlock() - * @see self::_setupInlineCrypt() - * @see self::_setupKey() - * @access private - * @return array &$tables - */ - function &_getInvTables() - { - static $tables; - if (empty($tables)) { - $dt3 = array_map('intval', array( - 0xF4A75051, 0x4165537E, 0x17A4C31A, 0x275E963A, 0xAB6BCB3B, 0x9D45F11F, 0xFA58ABAC, 0xE303934B, - 0x30FA5520, 0x766DF6AD, 0xCC769188, 0x024C25F5, 0xE5D7FC4F, 0x2ACBD7C5, 0x35448026, 0x62A38FB5, - 0xB15A49DE, 0xBA1B6725, 0xEA0E9845, 0xFEC0E15D, 0x2F7502C3, 0x4CF01281, 0x4697A38D, 0xD3F9C66B, - 0x8F5FE703, 0x929C9515, 0x6D7AEBBF, 0x5259DA95, 0xBE832DD4, 0x7421D358, 0xE0692949, 0xC9C8448E, - 0xC2896A75, 0x8E7978F4, 0x583E6B99, 0xB971DD27, 0xE14FB6BE, 0x88AD17F0, 0x20AC66C9, 0xCE3AB47D, - 0xDF4A1863, 0x1A3182E5, 0x51336097, 0x537F4562, 0x6477E0B1, 0x6BAE84BB, 0x81A01CFE, 0x082B94F9, - 0x48685870, 0x45FD198F, 0xDE6C8794, 0x7BF8B752, 0x73D323AB, 0x4B02E272, 0x1F8F57E3, 0x55AB2A66, - 0xEB2807B2, 0xB5C2032F, 0xC57B9A86, 0x3708A5D3, 0x2887F230, 0xBFA5B223, 0x036ABA02, 0x16825CED, - 0xCF1C2B8A, 0x79B492A7, 0x07F2F0F3, 0x69E2A14E, 0xDAF4CD65, 0x05BED506, 0x34621FD1, 0xA6FE8AC4, - 0x2E539D34, 0xF355A0A2, 0x8AE13205, 0xF6EB75A4, 0x83EC390B, 0x60EFAA40, 0x719F065E, 0x6E1051BD, - 0x218AF93E, 0xDD063D96, 0x3E05AEDD, 0xE6BD464D, 0x548DB591, 0xC45D0571, 0x06D46F04, 0x5015FF60, - 0x98FB2419, 0xBDE997D6, 0x4043CC89, 0xD99E7767, 0xE842BDB0, 0x898B8807, 0x195B38E7, 0xC8EEDB79, - 0x7C0A47A1, 0x420FE97C, 0x841EC9F8, 0x00000000, 0x80868309, 0x2BED4832, 0x1170AC1E, 0x5A724E6C, - 0x0EFFFBFD, 0x8538560F, 0xAED51E3D, 0x2D392736, 0x0FD9640A, 0x5CA62168, 0x5B54D19B, 0x362E3A24, - 0x0A67B10C, 0x57E70F93, 0xEE96D2B4, 0x9B919E1B, 0xC0C54F80, 0xDC20A261, 0x774B695A, 0x121A161C, - 0x93BA0AE2, 0xA02AE5C0, 0x22E0433C, 0x1B171D12, 0x090D0B0E, 0x8BC7ADF2, 0xB6A8B92D, 0x1EA9C814, - 0xF1198557, 0x75074CAF, 0x99DDBBEE, 0x7F60FDA3, 0x01269FF7, 0x72F5BC5C, 0x663BC544, 0xFB7E345B, - 0x4329768B, 0x23C6DCCB, 0xEDFC68B6, 0xE4F163B8, 0x31DCCAD7, 0x63851042, 0x97224013, 0xC6112084, - 0x4A247D85, 0xBB3DF8D2, 0xF93211AE, 0x29A16DC7, 0x9E2F4B1D, 0xB230F3DC, 0x8652EC0D, 0xC1E3D077, - 0xB3166C2B, 0x70B999A9, 0x9448FA11, 0xE9642247, 0xFC8CC4A8, 0xF03F1AA0, 0x7D2CD856, 0x3390EF22, - 0x494EC787, 0x38D1C1D9, 0xCAA2FE8C, 0xD40B3698, 0xF581CFA6, 0x7ADE28A5, 0xB78E26DA, 0xADBFA43F, - 0x3A9DE42C, 0x78920D50, 0x5FCC9B6A, 0x7E466254, 0x8D13C2F6, 0xD8B8E890, 0x39F75E2E, 0xC3AFF582, - 0x5D80BE9F, 0xD0937C69, 0xD52DA96F, 0x2512B3CF, 0xAC993BC8, 0x187DA710, 0x9C636EE8, 0x3BBB7BDB, - 0x267809CD, 0x5918F46E, 0x9AB701EC, 0x4F9AA883, 0x956E65E6, 0xFFE67EAA, 0xBCCF0821, 0x15E8E6EF, - 0xE79BD9BA, 0x6F36CE4A, 0x9F09D4EA, 0xB07CD629, 0xA4B2AF31, 0x3F23312A, 0xA59430C6, 0xA266C035, - 0x4EBC3774, 0x82CAA6FC, 0x90D0B0E0, 0xA7D81533, 0x04984AF1, 0xECDAF741, 0xCD500E7F, 0x91F62F17, - 0x4DD68D76, 0xEFB04D43, 0xAA4D54CC, 0x9604DFE4, 0xD1B5E39E, 0x6A881B4C, 0x2C1FB8C1, 0x65517F46, - 0x5EEA049D, 0x8C355D01, 0x877473FA, 0x0B412EFB, 0x671D5AB3, 0xDBD25292, 0x105633E9, 0xD647136D, - 0xD7618C9A, 0xA10C7A37, 0xF8148E59, 0x133C89EB, 0xA927EECE, 0x61C935B7, 0x1CE5EDE1, 0x47B13C7A, - 0xD2DF599C, 0xF2733F55, 0x14CE7918, 0xC737BF73, 0xF7CDEA53, 0xFDAA5B5F, 0x3D6F14DF, 0x44DB8678, - 0xAFF381CA, 0x68C43EB9, 0x24342C38, 0xA3405FC2, 0x1DC37216, 0xE2250CBC, 0x3C498B28, 0x0D9541FF, - 0xA8017139, 0x0CB3DE08, 0xB4E49CD8, 0x56C19064, 0xCB84617B, 0x32B670D5, 0x6C5C7448, 0xB85742D0 - )); - - foreach ($dt3 as $dt3i) { - $dt0[] = (($dt3i << 24) & 0xFF000000) | (($dt3i >> 8) & 0x00FFFFFF); - $dt1[] = (($dt3i << 16) & 0xFFFF0000) | (($dt3i >> 16) & 0x0000FFFF); - $dt2[] = (($dt3i << 8) & 0xFFFFFF00) | (($dt3i >> 24) & 0x000000FF); - }; - - $tables = array( - // The Precomputed inverse mixColumns tables dt0 - dt3 - $dt0, - $dt1, - $dt2, - $dt3, - // The inverse SubByte S-Box - array( - 0x52, 0x09, 0x6A, 0xD5, 0x30, 0x36, 0xA5, 0x38, 0xBF, 0x40, 0xA3, 0x9E, 0x81, 0xF3, 0xD7, 0xFB, - 0x7C, 0xE3, 0x39, 0x82, 0x9B, 0x2F, 0xFF, 0x87, 0x34, 0x8E, 0x43, 0x44, 0xC4, 0xDE, 0xE9, 0xCB, - 0x54, 0x7B, 0x94, 0x32, 0xA6, 0xC2, 0x23, 0x3D, 0xEE, 0x4C, 0x95, 0x0B, 0x42, 0xFA, 0xC3, 0x4E, - 0x08, 0x2E, 0xA1, 0x66, 0x28, 0xD9, 0x24, 0xB2, 0x76, 0x5B, 0xA2, 0x49, 0x6D, 0x8B, 0xD1, 0x25, - 0x72, 0xF8, 0xF6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xD4, 0xA4, 0x5C, 0xCC, 0x5D, 0x65, 0xB6, 0x92, - 0x6C, 0x70, 0x48, 0x50, 0xFD, 0xED, 0xB9, 0xDA, 0x5E, 0x15, 0x46, 0x57, 0xA7, 0x8D, 0x9D, 0x84, - 0x90, 0xD8, 0xAB, 0x00, 0x8C, 0xBC, 0xD3, 0x0A, 0xF7, 0xE4, 0x58, 0x05, 0xB8, 0xB3, 0x45, 0x06, - 0xD0, 0x2C, 0x1E, 0x8F, 0xCA, 0x3F, 0x0F, 0x02, 0xC1, 0xAF, 0xBD, 0x03, 0x01, 0x13, 0x8A, 0x6B, - 0x3A, 0x91, 0x11, 0x41, 0x4F, 0x67, 0xDC, 0xEA, 0x97, 0xF2, 0xCF, 0xCE, 0xF0, 0xB4, 0xE6, 0x73, - 0x96, 0xAC, 0x74, 0x22, 0xE7, 0xAD, 0x35, 0x85, 0xE2, 0xF9, 0x37, 0xE8, 0x1C, 0x75, 0xDF, 0x6E, - 0x47, 0xF1, 0x1A, 0x71, 0x1D, 0x29, 0xC5, 0x89, 0x6F, 0xB7, 0x62, 0x0E, 0xAA, 0x18, 0xBE, 0x1B, - 0xFC, 0x56, 0x3E, 0x4B, 0xC6, 0xD2, 0x79, 0x20, 0x9A, 0xDB, 0xC0, 0xFE, 0x78, 0xCD, 0x5A, 0xF4, - 0x1F, 0xDD, 0xA8, 0x33, 0x88, 0x07, 0xC7, 0x31, 0xB1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xEC, 0x5F, - 0x60, 0x51, 0x7F, 0xA9, 0x19, 0xB5, 0x4A, 0x0D, 0x2D, 0xE5, 0x7A, 0x9F, 0x93, 0xC9, 0x9C, 0xEF, - 0xA0, 0xE0, 0x3B, 0x4D, 0xAE, 0x2A, 0xF5, 0xB0, 0xC8, 0xEB, 0xBB, 0x3C, 0x83, 0x53, 0x99, 0x61, - 0x17, 0x2B, 0x04, 0x7E, 0xBA, 0x77, 0xD6, 0x26, 0xE1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0C, 0x7D - ) - ); - } - return $tables; - } - - /** - * Setup the performance-optimized function for de/encrypt() - * - * @see \phpseclib\Crypt\Base::_setupInlineCrypt() - * @access private - */ - function _setupInlineCrypt() - { - // Note: _setupInlineCrypt() will be called only if $this->changed === true - // So here we are'nt under the same heavy timing-stress as we are in _de/encryptBlock() or de/encrypt(). - // However...the here generated function- $code, stored as php callback in $this->inline_crypt, must work as fast as even possible. - - $lambda_functions =& self::_getLambdaFunctions(); - - // We create max. 10 hi-optimized code for memory reason. Means: For each $key one ultra fast inline-crypt function. - // (Currently, for Crypt_Rijndael/AES, one generated $lambda_function cost on php5.5@32bit ~80kb unfreeable mem and ~130kb on php5.5@64bit) - // After that, we'll still create very fast optimized code but not the hi-ultimative code, for each $mode one. - $gen_hi_opt_code = (bool)(count($lambda_functions) < 10); - - // Generation of a uniqe hash for our generated code - $code_hash = "Crypt_Rijndael, {$this->mode}, {$this->Nr}, {$this->Nb}"; - if ($gen_hi_opt_code) { - $code_hash = str_pad($code_hash, 32) . $this->_hashInlineCryptFunction($this->key); - } - - if (!isset($lambda_functions[$code_hash])) { - switch (true) { - case $gen_hi_opt_code: - // The hi-optimized $lambda_functions will use the key-words hardcoded for better performance. - $w = $this->w; - $dw = $this->dw; - $init_encrypt = ''; - $init_decrypt = ''; - break; - default: - for ($i = 0, $cw = count($this->w); $i < $cw; ++$i) { - $w[] = '$w[' . $i . ']'; - $dw[] = '$dw[' . $i . ']'; - } - $init_encrypt = '$w = $self->w;'; - $init_decrypt = '$dw = $self->dw;'; - } - - $Nr = $this->Nr; - $Nb = $this->Nb; - $c = $this->c; - - // Generating encrypt code: - $init_encrypt.= ' - static $tables; - if (empty($tables)) { - $tables = &$self->_getTables(); - } - $t0 = $tables[0]; - $t1 = $tables[1]; - $t2 = $tables[2]; - $t3 = $tables[3]; - $sbox = $tables[4]; - '; - - $s = 'e'; - $e = 's'; - $wc = $Nb - 1; - - // Preround: addRoundKey - $encrypt_block = '$in = unpack("N*", $in);'."\n"; - for ($i = 0; $i < $Nb; ++$i) { - $encrypt_block .= '$s'.$i.' = $in['.($i + 1).'] ^ '.$w[++$wc].";\n"; - } - - // Mainrounds: shiftRows + subWord + mixColumns + addRoundKey - for ($round = 1; $round < $Nr; ++$round) { - list($s, $e) = array($e, $s); - for ($i = 0; $i < $Nb; ++$i) { - $encrypt_block.= - '$'.$e.$i.' = - $t0[($'.$s.$i .' >> 24) & 0xff] ^ - $t1[($'.$s.(($i + $c[1]) % $Nb).' >> 16) & 0xff] ^ - $t2[($'.$s.(($i + $c[2]) % $Nb).' >> 8) & 0xff] ^ - $t3[ $'.$s.(($i + $c[3]) % $Nb).' & 0xff] ^ - '.$w[++$wc].";\n"; - } - } - - // Finalround: subWord + shiftRows + addRoundKey - for ($i = 0; $i < $Nb; ++$i) { - $encrypt_block.= - '$'.$e.$i.' = - $sbox[ $'.$e.$i.' & 0xff] | - ($sbox[($'.$e.$i.' >> 8) & 0xff] << 8) | - ($sbox[($'.$e.$i.' >> 16) & 0xff] << 16) | - ($sbox[($'.$e.$i.' >> 24) & 0xff] << 24);'."\n"; - } - $encrypt_block .= '$in = pack("N*"'."\n"; - for ($i = 0; $i < $Nb; ++$i) { - $encrypt_block.= ', - ($'.$e.$i .' & '.((int)0xFF000000).') ^ - ($'.$e.(($i + $c[1]) % $Nb).' & 0x00FF0000 ) ^ - ($'.$e.(($i + $c[2]) % $Nb).' & 0x0000FF00 ) ^ - ($'.$e.(($i + $c[3]) % $Nb).' & 0x000000FF ) ^ - '.$w[$i]."\n"; - } - $encrypt_block .= ');'; - - // Generating decrypt code: - $init_decrypt.= ' - static $invtables; - if (empty($invtables)) { - $invtables = &$self->_getInvTables(); - } - $dt0 = $invtables[0]; - $dt1 = $invtables[1]; - $dt2 = $invtables[2]; - $dt3 = $invtables[3]; - $isbox = $invtables[4]; - '; - - $s = 'e'; - $e = 's'; - $wc = $Nb - 1; - - // Preround: addRoundKey - $decrypt_block = '$in = unpack("N*", $in);'."\n"; - for ($i = 0; $i < $Nb; ++$i) { - $decrypt_block .= '$s'.$i.' = $in['.($i + 1).'] ^ '.$dw[++$wc].';'."\n"; - } - - // Mainrounds: shiftRows + subWord + mixColumns + addRoundKey - for ($round = 1; $round < $Nr; ++$round) { - list($s, $e) = array($e, $s); - for ($i = 0; $i < $Nb; ++$i) { - $decrypt_block.= - '$'.$e.$i.' = - $dt0[($'.$s.$i .' >> 24) & 0xff] ^ - $dt1[($'.$s.(($Nb + $i - $c[1]) % $Nb).' >> 16) & 0xff] ^ - $dt2[($'.$s.(($Nb + $i - $c[2]) % $Nb).' >> 8) & 0xff] ^ - $dt3[ $'.$s.(($Nb + $i - $c[3]) % $Nb).' & 0xff] ^ - '.$dw[++$wc].";\n"; - } - } - - // Finalround: subWord + shiftRows + addRoundKey - for ($i = 0; $i < $Nb; ++$i) { - $decrypt_block.= - '$'.$e.$i.' = - $isbox[ $'.$e.$i.' & 0xff] | - ($isbox[($'.$e.$i.' >> 8) & 0xff] << 8) | - ($isbox[($'.$e.$i.' >> 16) & 0xff] << 16) | - ($isbox[($'.$e.$i.' >> 24) & 0xff] << 24);'."\n"; - } - $decrypt_block .= '$in = pack("N*"'."\n"; - for ($i = 0; $i < $Nb; ++$i) { - $decrypt_block.= ', - ($'.$e.$i. ' & '.((int)0xFF000000).') ^ - ($'.$e.(($Nb + $i - $c[1]) % $Nb).' & 0x00FF0000 ) ^ - ($'.$e.(($Nb + $i - $c[2]) % $Nb).' & 0x0000FF00 ) ^ - ($'.$e.(($Nb + $i - $c[3]) % $Nb).' & 0x000000FF ) ^ - '.$dw[$i]."\n"; - } - $decrypt_block .= ');'; - - $lambda_functions[$code_hash] = $this->_createInlineCryptFunction( - array( - 'init_crypt' => '', - 'init_encrypt' => $init_encrypt, - 'init_decrypt' => $init_decrypt, - 'encrypt_block' => $encrypt_block, - 'decrypt_block' => $decrypt_block - ) - ); - } - $this->inline_crypt = $lambda_functions[$code_hash]; - } -} diff --git a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/bootstrap.php b/srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/bootstrap.php deleted file mode 100644 index 0da0999..0000000 --- a/srcs/phpmyadmin/vendor/phpseclib/phpseclib/phpseclib/bootstrap.php +++ /dev/null @@ -1,16 +0,0 @@ - - Latest Stable Version - License - Code Quality - Build -

-

- Downloads - Coverage - StyleCI - PHP -

- -### QRCode For Google2FA - -This is package is [Goole2FA](https://github.com/antonioribeiro/google2fa) integrated with a QRCode generator, providing an easy way to plot QRCode for your two factor authentication. For documentation related to Google2FA, please check the [documentation of the main package](https://github.com/antonioribeiro/google2fa). - -## Requirements - -- PHP 5.4+ - -## Installing - -Use Composer to install it: - -``` -composer require pragmarx/google2fa-qrcode -``` - -## Using It - -### Instantiate it directly - -```php -use PragmaRX\Google2FAQRCode\Google2FA; - -$google2fa = new Google2FA(); - -return $google2fa->generateSecretKey(); -``` - -## Generating QRCodes - -The securer way of creating QRCode is to do it yourself or using a library. First you have to install the BaconQrCode package, as stated above, then you just have to generate the inline string using: - -```php -$inlineUrl = $google2fa->getQRCodeInline( - $companyName, - $companyEmail, - $secretKey -); -``` - -And use it in your blade template this way: - -```html - -``` - -```php -$secretKey = $google2fa->generateSecretKey(16, $userId); -``` - -## Show the QR Code to your user, via Google Apis - -It's insecure to use it via Google Apis, so you have to enable it before using it. - -```php -$google2fa->setAllowInsecureCallToGoogleApis(true); - -$google2fa_url = $google2fa->getQRCodeGoogleUrl( - 'YourCompany', - $user->email, - $user->google2fa_secret -); - -/// and in your view: - - -``` - -And they should see and scan the QR code to their applications: - -![QRCode](https://chart.googleapis.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth%3A%2F%2Ftotp%2FPragmaRX%3Aacr%2Bpragmarx%40antoniocarlosribeiro.com%3Fsecret%3DADUMJO5634NPDEKW%26issuer%3DPragmaRX) - -And to verify, you just have to: - -```php -$secret = $request->input('secret'); - -$valid = $google2fa->verifyKey($user->google2fa_secret, $secret); -``` - -## Tests - -The package tests were written with [PHPUnit](https://phpunit.de/). - -## Authors - -- [Antonio Carlos Ribeiro](http://twitter.com/iantonioribeiro) -- [All Contributors](https://github.com/antonioribeiro/google2fa/graphs/contributors) - -## License - -Google2FAQRCode is licensed under the MIT License - see the [LICENSE](LICENSE.md) file for details. - -## Contributing - -Pull requests and issues are more than welcome. diff --git a/srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/composer.json b/srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/composer.json deleted file mode 100644 index 61fbb7c..0000000 --- a/srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/composer.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "pragmarx/google2fa-qrcode", - "description": "QR Code package for Google2FA", - "keywords": ["authentication", "two factor authentication", "google2fa", "2fa", "QRCode", "qr code"], - "license": "MIT", - "authors": [ - { - "name": "Antonio Carlos Ribeiro", - "email": "acr@antoniocarlosribeiro.com", - "role": "Creator & Designer" - } - ], - "require": { - "php": ">=5.4", - "pragmarx/google2fa": ">=4.0", - "bacon/bacon-qr-code": "~1.0|~2.0" - }, - "require-dev": { - "phpunit/phpunit": "~4|~5|~6|~7", - "khanamiryan/qrcode-detector-decoder": "^1.0" - }, - "autoload": { - "psr-4": { - "PragmaRX\\Google2FAQRCode\\": "src/", - "PragmaRX\\Google2FAQRCode\\Tests\\": "tests/" - } - }, - "extra": { - "component": "package", - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "minimum-stability": "dev", - "prefer-stable": true -} diff --git a/srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/composer.lock b/srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/composer.lock deleted file mode 100644 index 288d67a..0000000 --- a/srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/composer.lock +++ /dev/null @@ -1,1903 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", - "This file is @generated automatically" - ], - "content-hash": "f78415814ce04fef409e8941a568f6a7", - "packages": [ - { - "name": "bacon/bacon-qr-code", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/Bacon/BaconQrCode.git", - "reference": "eaac909da3ccc32b748a65b127acd8918f58d9b0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/eaac909da3ccc32b748a65b127acd8918f58d9b0", - "reference": "eaac909da3ccc32b748a65b127acd8918f58d9b0", - "shasum": "" - }, - "require": { - "dasprid/enum": "^1.0", - "ext-iconv": "*", - "php": "^7.1" - }, - "require-dev": { - "phly/keep-a-changelog": "^1.4", - "phpunit/phpunit": "^6.4", - "squizlabs/php_codesniffer": "^3.1" - }, - "suggest": { - "ext-imagick": "to generate QR code images" - }, - "type": "library", - "autoload": { - "psr-4": { - "BaconQrCode\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], - "authors": [ - { - "name": "Ben Scholzen 'DASPRiD'", - "email": "mail@dasprids.de", - "homepage": "http://www.dasprids.de", - "role": "Developer" - } - ], - "description": "BaconQrCode is a QR code generator for PHP.", - "homepage": "https://github.com/Bacon/BaconQrCode", - "time": "2018-04-25T17:53:56+00:00" - }, - { - "name": "dasprid/enum", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/DASPRiD/Enum.git", - "reference": "631ef6e638e9494b0310837fa531bedd908fc22b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/DASPRiD/Enum/zipball/631ef6e638e9494b0310837fa531bedd908fc22b", - "reference": "631ef6e638e9494b0310837fa531bedd908fc22b", - "shasum": "" - }, - "require-dev": { - "phpunit/phpunit": "^6.4", - "squizlabs/php_codesniffer": "^3.1" - }, - "type": "library", - "autoload": { - "psr-4": { - "DASPRiD\\Enum\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], - "authors": [ - { - "name": "Ben Scholzen 'DASPRiD'", - "email": "mail@dasprids.de", - "homepage": "https://dasprids.de/" - } - ], - "description": "PHP 7.1 enum implementation", - "keywords": [ - "enum", - "map" - ], - "time": "2017-10-25T22:45:27+00:00" - }, - { - "name": "paragonie/constant_time_encoding", - "version": "v2.2.3", - "source": { - "type": "git", - "url": "https://github.com/paragonie/constant_time_encoding.git", - "reference": "55af0dc01992b4d0da7f6372e2eac097bbbaffdb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/55af0dc01992b4d0da7f6372e2eac097bbbaffdb", - "reference": "55af0dc01992b4d0da7f6372e2eac097bbbaffdb", - "shasum": "" - }, - "require": { - "php": "^7" - }, - "require-dev": { - "phpunit/phpunit": "^6|^7", - "vimeo/psalm": "^1|^2" - }, - "type": "library", - "autoload": { - "psr-4": { - "ParagonIE\\ConstantTime\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com", - "role": "Maintainer" - }, - { - "name": "Steve 'Sc00bz' Thomas", - "email": "steve@tobtu.com", - "homepage": "https://www.tobtu.com", - "role": "Original Developer" - } - ], - "description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)", - "keywords": [ - "base16", - "base32", - "base32_decode", - "base32_encode", - "base64", - "base64_decode", - "base64_encode", - "bin2hex", - "encoding", - "hex", - "hex2bin", - "rfc4648" - ], - "time": "2019-01-03T20:26:31+00:00" - }, - { - "name": "paragonie/random_compat", - "version": "v9.99.99", - "source": { - "type": "git", - "url": "https://github.com/paragonie/random_compat.git", - "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", - "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", - "shasum": "" - }, - "require": { - "php": "^7" - }, - "require-dev": { - "phpunit/phpunit": "4.*|5.*", - "vimeo/psalm": "^1" - }, - "suggest": { - "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." - }, - "type": "library", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com" - } - ], - "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", - "keywords": [ - "csprng", - "polyfill", - "pseudorandom", - "random" - ], - "time": "2018-07-02T15:55:56+00:00" - }, - { - "name": "pragmarx/google2fa", - "version": "v5.0.0", - "source": { - "type": "git", - "url": "https://github.com/antonioribeiro/google2fa.git", - "reference": "17c969c82f427dd916afe4be50bafc6299aef1b4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/antonioribeiro/google2fa/zipball/17c969c82f427dd916afe4be50bafc6299aef1b4", - "reference": "17c969c82f427dd916afe4be50bafc6299aef1b4", - "shasum": "" - }, - "require": { - "paragonie/constant_time_encoding": "~1.0|~2.0", - "paragonie/random_compat": ">=1", - "php": ">=5.4", - "symfony/polyfill-php56": "~1.2" - }, - "require-dev": { - "phpunit/phpunit": "~4|~5|~6" - }, - "type": "library", - "extra": { - "component": "package", - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "psr-4": { - "PragmaRX\\Google2FA\\": "src/", - "PragmaRX\\Google2FA\\Tests\\": "tests/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Antonio Carlos Ribeiro", - "email": "acr@antoniocarlosribeiro.com", - "role": "Creator & Designer" - } - ], - "description": "A One Time Password Authentication package, compatible with Google Authenticator.", - "keywords": [ - "2fa", - "Authentication", - "Two Factor Authentication", - "google2fa" - ], - "time": "2019-03-19T22:44:16+00:00" - }, - { - "name": "symfony/polyfill-php56", - "version": "v1.10.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php56.git", - "reference": "ff208829fe1aa48ab9af356992bb7199fed551af" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/ff208829fe1aa48ab9af356992bb7199fed551af", - "reference": "ff208829fe1aa48ab9af356992bb7199fed551af", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "symfony/polyfill-util": "~1.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.9-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php56\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "time": "2018-09-21T06:26:08+00:00" - }, - { - "name": "symfony/polyfill-util", - "version": "v1.10.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-util.git", - "reference": "3b58903eae668d348a7126f999b0da0f2f93611c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/3b58903eae668d348a7126f999b0da0f2f93611c", - "reference": "3b58903eae668d348a7126f999b0da0f2f93611c", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.9-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Util\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony utilities for portability of PHP codes", - "homepage": "https://symfony.com", - "keywords": [ - "compat", - "compatibility", - "polyfill", - "shim" - ], - "time": "2018-09-30T16:36:12+00:00" - } - ], - "packages-dev": [ - { - "name": "doctrine/instantiator", - "version": "1.1.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", - "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "require-dev": { - "athletic/athletic": "~0.1.8", - "ext-pdo": "*", - "ext-phar": "*", - "phpunit/phpunit": "^6.2.3", - "squizlabs/php_codesniffer": "^3.0.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://github.com/doctrine/instantiator", - "keywords": [ - "constructor", - "instantiate" - ], - "time": "2017-07-22T11:58:36+00:00" - }, - { - "name": "khanamiryan/qrcode-detector-decoder", - "version": "1.0.2", - "source": { - "type": "git", - "url": "https://github.com/khanamiryan/php-qrcode-detector-decoder.git", - "reference": "a75482d3bc804e3f6702332bfda6cccbb0dfaa76" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/khanamiryan/php-qrcode-detector-decoder/zipball/a75482d3bc804e3f6702332bfda6cccbb0dfaa76", - "reference": "a75482d3bc804e3f6702332bfda6cccbb0dfaa76", - "shasum": "" - }, - "require": { - "php": "^5.6|^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7" - }, - "type": "library", - "autoload": { - "psr-4": { - "Zxing\\": "lib/" - }, - "files": [ - "lib/Common/customFunctions.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ashot Khanamiryan", - "email": "a.khanamiryan@gmail.com", - "homepage": "https://github.com/khanamiryan", - "role": "Developer" - } - ], - "description": "QR code decoder / reader", - "homepage": "https://github.com/khanamiryan/php-qrcode-detector-decoder/", - "keywords": [ - "barcode", - "qr", - "zxing" - ], - "time": "2018-04-26T11:41:33+00:00" - }, - { - "name": "myclabs/deep-copy", - "version": "1.8.1", - "source": { - "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8", - "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "replace": { - "myclabs/deep-copy": "self.version" - }, - "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^7.1" - }, - "type": "library", - "autoload": { - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - }, - "files": [ - "src/DeepCopy/deep_copy.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Create deep copies (clones) of your objects", - "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" - ], - "time": "2018-06-11T23:09:50+00:00" - }, - { - "name": "phar-io/manifest", - "version": "1.0.3", - "source": { - "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", - "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-phar": "*", - "phar-io/version": "^2.0", - "php": "^5.6 || ^7.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "time": "2018-07-08T19:23:20+00:00" - }, - { - "name": "phar-io/version", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", - "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Library for handling version information and constraints", - "time": "2018-07-08T19:19:57+00:00" - }, - { - "name": "phpdocumentor/reflection-common", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", - "shasum": "" - }, - "require": { - "php": ">=5.5" - }, - "require-dev": { - "phpunit/phpunit": "^4.6" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" - ], - "time": "2017-09-11T18:02:19+00:00" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "4.3.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "94fd0001232e47129dd3504189fa1c7225010d08" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08", - "reference": "94fd0001232e47129dd3504189fa1c7225010d08", - "shasum": "" - }, - "require": { - "php": "^7.0", - "phpdocumentor/reflection-common": "^1.0.0", - "phpdocumentor/type-resolver": "^0.4.0", - "webmozart/assert": "^1.0" - }, - "require-dev": { - "doctrine/instantiator": "~1.0.5", - "mockery/mockery": "^1.0", - "phpunit/phpunit": "^6.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2017-11-30T07:14:17+00:00" - }, - { - "name": "phpdocumentor/type-resolver", - "version": "0.4.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", - "shasum": "" - }, - "require": { - "php": "^5.5 || ^7.0", - "phpdocumentor/reflection-common": "^1.0" - }, - "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^5.2||^4.8.24" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "time": "2017-07-14T14:27:02+00:00" - }, - { - "name": "phpspec/prophecy", - "version": "1.8.0", - "source": { - "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06", - "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", - "sebastian/comparator": "^1.1|^2.0|^3.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0" - }, - "require-dev": { - "phpspec/phpspec": "^2.5|^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.8.x-dev" - } - }, - "autoload": { - "psr-0": { - "Prophecy\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, - { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" - } - ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ], - "time": "2018-08-05T17:53:17+00:00" - }, - { - "name": "phpunit/php-code-coverage", - "version": "6.1.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", - "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-xmlwriter": "*", - "php": "^7.1", - "phpunit/php-file-iterator": "^2.0", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^3.0", - "sebastian/code-unit-reverse-lookup": "^1.0.1", - "sebastian/environment": "^3.1 || ^4.0", - "sebastian/version": "^2.0.1", - "theseer/tokenizer": "^1.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.0" - }, - "suggest": { - "ext-xdebug": "^2.6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": [ - "coverage", - "testing", - "xunit" - ], - "time": "2018-10-31T16:06:48+00:00" - }, - { - "name": "phpunit/php-file-iterator", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "050bedf145a257b1ff02746c31894800e5122946" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946", - "reference": "050bedf145a257b1ff02746c31894800e5122946", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", - "keywords": [ - "filesystem", - "iterator" - ], - "time": "2018-09-13T20:33:42+00:00" - }, - { - "name": "phpunit/php-text-template", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ], - "time": "2015-06-21T13:50:34+00:00" - }, - { - "name": "phpunit/php-timer", - "version": "2.1.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "8b389aebe1b8b0578430bda0c7c95a829608e059" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/8b389aebe1b8b0578430bda0c7c95a829608e059", - "reference": "8b389aebe1b8b0578430bda0c7c95a829608e059", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ], - "time": "2019-02-20T10:12:59+00:00" - }, - { - "name": "phpunit/php-token-stream", - "version": "3.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "c99e3be9d3e85f60646f152f9002d46ed7770d18" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/c99e3be9d3e85f60646f152f9002d46ed7770d18", - "reference": "c99e3be9d3e85f60646f152f9002d46ed7770d18", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": "^7.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", - "keywords": [ - "tokenizer" - ], - "time": "2018-10-30T05:52:18+00:00" - }, - { - "name": "phpunit/phpunit", - "version": "7.5.7", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "eb343b86753d26de07ecba7868fa983104361948" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/eb343b86753d26de07ecba7868fa983104361948", - "reference": "eb343b86753d26de07ecba7868fa983104361948", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.1", - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "myclabs/deep-copy": "^1.7", - "phar-io/manifest": "^1.0.2", - "phar-io/version": "^2.0", - "php": "^7.1", - "phpspec/prophecy": "^1.7", - "phpunit/php-code-coverage": "^6.0.7", - "phpunit/php-file-iterator": "^2.0.1", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-timer": "^2.1", - "sebastian/comparator": "^3.0", - "sebastian/diff": "^3.0", - "sebastian/environment": "^4.0", - "sebastian/exporter": "^3.1", - "sebastian/global-state": "^2.0", - "sebastian/object-enumerator": "^3.0.3", - "sebastian/resource-operations": "^2.0", - "sebastian/version": "^2.0.1" - }, - "conflict": { - "phpunit/phpunit-mock-objects": "*" - }, - "require-dev": { - "ext-pdo": "*" - }, - "suggest": { - "ext-soap": "*", - "ext-xdebug": "*", - "phpunit/php-invoker": "^2.0" - }, - "bin": [ - "phpunit" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "7.5-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ], - "time": "2019-03-16T07:31:17+00:00" - }, - { - "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "time": "2017-03-04T06:30:41+00:00" - }, - { - "name": "sebastian/comparator", - "version": "3.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da", - "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da", - "shasum": "" - }, - "require": { - "php": "^7.1", - "sebastian/diff": "^3.0", - "sebastian/exporter": "^3.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], - "time": "2018-07-12T15:12:46+00:00" - }, - { - "name": "sebastian/diff", - "version": "3.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29", - "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.5 || ^8.0", - "symfony/process": "^2 || ^3.3 || ^4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff", - "udiff", - "unidiff", - "unified diff" - ], - "time": "2019-02-04T06:01:07+00:00" - }, - { - "name": "sebastian/environment", - "version": "4.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "6fda8ce1974b62b14935adc02a9ed38252eca656" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/6fda8ce1974b62b14935adc02a9ed38252eca656", - "reference": "6fda8ce1974b62b14935adc02a9ed38252eca656", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.5" - }, - "suggest": { - "ext-posix": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" - ], - "time": "2019-02-01T05:27:49+00:00" - }, - { - "name": "sebastian/exporter", - "version": "3.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "234199f4528de6d12aaa58b612e98f7d36adb937" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937", - "reference": "234199f4528de6d12aaa58b612e98f7d36adb937", - "shasum": "" - }, - "require": { - "php": "^7.0", - "sebastian/recursion-context": "^3.0" - }, - "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ], - "time": "2017-04-03T13:19:02+00:00" - }, - { - "name": "sebastian/global-state", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "suggest": { - "ext-uopz": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" - ], - "time": "2017-04-27T15:39:26+00:00" - }, - { - "name": "sebastian/object-enumerator", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "shasum": "" - }, - "require": { - "php": "^7.0", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2017-08-03T12:35:26+00:00" - }, - { - "name": "sebastian/object-reflector", - "version": "1.1.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "773f97c67f28de00d397be301821b06708fca0be" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", - "reference": "773f97c67f28de00d397be301821b06708fca0be", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "time": "2017-03-29T09:07:27+00:00" - }, - { - "name": "sebastian/recursion-context", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2017-03-03T06:23:57+00:00" - }, - { - "name": "sebastian/resource-operations", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9", - "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "time": "2018-10-04T04:07:39+00:00" - }, - { - "name": "sebastian/version", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", - "shasum": "" - }, - "require": { - "php": ">=5.6" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "time": "2016-10-03T07:35:21+00:00" - }, - { - "name": "symfony/polyfill-ctype", - "version": "v1.10.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "e3d826245268269cd66f8326bd8bc066687b4a19" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19", - "reference": "e3d826245268269cd66f8326bd8bc066687b4a19", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.9-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - }, - { - "name": "Gert de Pagter", - "email": "backendtea@gmail.com" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], - "time": "2018-08-06T14:22:27+00:00" - }, - { - "name": "theseer/tokenizer", - "version": "1.1.0", - "source": { - "type": "git", - "url": "https://github.com/theseer/tokenizer.git", - "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/cb2f008f3f05af2893a87208fe6a6c4985483f8b", - "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": "^7.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - } - ], - "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "time": "2017-04-07T12:08:54+00:00" - }, - { - "name": "webmozart/assert", - "version": "1.4.0", - "source": { - "type": "git", - "url": "https://github.com/webmozart/assert.git", - "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9", - "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9", - "shasum": "" - }, - "require": { - "php": "^5.3.3 || ^7.0", - "symfony/polyfill-ctype": "^1.8" - }, - "require-dev": { - "phpunit/phpunit": "^4.6", - "sebastian/version": "^1.0.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3-dev" - } - }, - "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ], - "time": "2018-12-25T11:19:39+00:00" - } - ], - "aliases": [], - "minimum-stability": "dev", - "stability-flags": [], - "prefer-stable": true, - "prefer-lowest": false, - "platform": { - "php": ">=5.4" - }, - "platform-dev": [] -} diff --git a/srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/phpunit.xml b/srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/phpunit.xml deleted file mode 100644 index 79ac51d..0000000 --- a/srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/phpunit.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - ./tests - - - - - - - - - - - - ./src - - - - diff --git a/srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/src/Google2FA.php b/srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/src/Google2FA.php deleted file mode 100644 index a4d6340..0000000 --- a/srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/src/Google2FA.php +++ /dev/null @@ -1,134 +0,0 @@ -getBaconQRCodeVersion() === 1) { - if ($imageBackEnd instanceof RendererInterface) { - $this->imageBackEnd = $imageBackEnd; - } else { - $this->imageBackEnd = new Png(); - } - } else { - if ($imageBackEnd instanceof ImageBackEndInterface) { - $this->imageBackEnd = $imageBackEnd; - } else { - $this->imageBackEnd = new ImagickImageBackEnd(); - } - } - } - - /** - * Generates a QR code data url to display inline. - * - * @param string $company - * @param string $holder - * @param string $secret - * @param int $size - * @param string $encoding Default to UTF-8 - * - * @return string - */ - public function getQRCodeInline($company, $holder, $secret, $size = 200, $encoding = 'utf-8') - { - return $this->getBaconQRCodeVersion() === 1 - ? $this->getQRCodeInlineV1($company, $holder, $secret, $size, $encoding) - : $this->getQRCodeInlineV2($company, $holder, $secret, $size, $encoding); - } - - /** - * Generates a QR code data url to display inline for Bacon QRCode v1 - * - * @param string $company - * @param string $holder - * @param string $secret - * @param int $size - * @param string $encoding Default to UTF-8 - * - * @return string - */ - public function getQRCodeInlineV1($company, $holder, $secret, $size = 200, $encoding = 'utf-8') - { - $url = $this->getQRCodeUrl($company, $holder, $secret); - - $renderer = $this->imageBackEnd; - $renderer->setWidth($size); - $renderer->setHeight($size); - - $bacon = new BaconQrCodeWriter($renderer); - $data = $bacon->writeString($url, $encoding); - - if ($this->imageBackEnd instanceof Png) { - return 'data:image/png;base64,'.base64_encode($data); - } - return $data; - } - - /** - * Generates a QR code data url to display inline for Bacon QRCode v2 - * - * @param string $company - * @param string $holder - * @param string $secret - * @param int $size - * @param string $encoding Default to UTF-8 - * - * @return string - */ - public function getQRCodeInlineV2($company, $holder, $secret, $size = 200, $encoding = 'utf-8') - { - $renderer = new ImageRenderer( - (new RendererStyle($size))->withSize($size), - $this->imageBackEnd - ); - - $bacon = new Writer($renderer); - - $data = $bacon->writeString( - $this->getQRCodeUrl($company, $holder, $secret), - $encoding - ); - - if ($this->imageBackEnd instanceof ImagickImageBackEnd) { - return 'data:image/png;base64,'.base64_encode($data); - } - - return $data; - } - - /** - * Get Bacon QRCode current version - * - * @return int - */ - public function getBaconQRCodeVersion() - { - return class_exists('BaconQrCode\Renderer\Image\Png') && class_exists('BaconQrCode\Writer') - ? 1 - : 2; - } -} diff --git a/srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/tests/.gitkeep b/srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/tests/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/tests/Constants.php b/srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/tests/Constants.php deleted file mode 100644 index c5970ef..0000000 --- a/srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/tests/Constants.php +++ /dev/null @@ -1,14 +0,0 @@ -google2fa = new Google2FA(); - } - - public function readQRCode($data) - { - list(, $data) = explode(';', $data); - - list(, $data) = explode(',', $data); - - return rawurldecode((new QrReader(base64_decode($data), QrReader::SOURCE_TYPE_BLOB))->text()); - } - - public function testQrcodeInline() - { - $this->assertEquals( - static::OTP_URL, - $this->readQRCode($this->google2fa->getQRCodeInline('PragmaRX', static::EMAIL, Constants::SECRET)) - ); - - if ($this->google2fa->getBaconQRCodeVersion() === 1) { - $google2fa = new Google2FA(new Png()); - $this->assertEquals( - static::OTP_URL, - $this->readQRCode($google2fa->getQRCodeInline('PragmaRX', static::EMAIL, Constants::SECRET)) - ); - } else { - $google2fa = new Google2FA(new ImagickImageBackEnd()); - $this->assertEquals( - static::OTP_URL, - $this->readQRCode($google2fa->getQRCodeInline('PragmaRX', static::EMAIL, Constants::SECRET)) - ); - } - } -} diff --git a/srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/tests/bootstrap.php b/srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/tests/bootstrap.php deleted file mode 100644 index 56032ea..0000000 --- a/srcs/phpmyadmin/vendor/pragmarx/google2fa-qrcode/tests/bootstrap.php +++ /dev/null @@ -1,42 +0,0 @@ - - Google API for QR generator is turned off. -

- -All version of that package prior to 5.0.0 are deprecated. Please upgrade and check documentation regarding [QRCode generation](https://github.com/antonioribeiro/google2fa#generating-qrcodes). - -# Google2FA - -

- Latest Stable Version - License - Code Quality - Build -

-

- Downloads - Coverage - StyleCI - PHP -

- -### Google Two-Factor Authentication for PHP Package - -Google2FA is a PHP implementation of the Google Two-Factor Authentication Module, supporting the HMAC-Based One-time Password (HOTP) algorithm specified in [RFC 4226](https://tools.ietf.org/html/rfc4226) and the Time-based One-time Password (TOTP) algorithm specified in [RFC 6238](https://tools.ietf.org/html/rfc6238). - -This package is agnostic, but there's a [Laravel bridge](https://github.com/antonioribeiro/google2fa-laravel). - -### QRCode - -This package does not generate QRCodes for 2FA. - -If you are looking for Google Two-Factor Authentication, but also need to generate QRCode for it, you can use the [Google2FA QRCode package](https://github.com/antonioribeiro/google2fa-qrcode), which integrates this package and also generates QRCodes using the BaconQRCode library, or check options on how to do it yourself [here in the docs](#qr-code-packages). - -## Demos, Example & Playground - -Please check the [Google2FA Package Playground](http://pragmarx.com/playground/google2fa). - -![playground](docs/playground.jpg) - -Here's an demo app showing how to use Google2FA: [google2fa-example](https://github.com/antonioribeiro/google2fa-example). - -You can scan the QR code on [this (old) demo page](https://antoniocarlosribeiro.com/technology/google2fa) with a Google Authenticator app and view the code changing (almost) in real time. - -## Requirements - -- PHP 5.4+ - -## Installing - -Use Composer to install it: - - composer require pragmarx/google2fa - -To generate inline QRCodes, you'll need to install a QR code generator, e.g. [BaconQrCode](https://github.com/Bacon/BaconQrCode): - - composer require bacon/bacon-qr-code - -## Using It - -### Instantiate it directly - -```php -use PragmaRX\Google2FA\Google2FA; - -$google2fa = new Google2FA(); - -return $google2fa->generateSecretKey(); -``` - -## How To Generate And Use Two Factor Authentication - -Generate a secret key for your user and save it: - -```php -$user->google2fa_secret = $google2fa->generateSecretKey(); -``` - -## Generating QRCodes - -The securer way of creating QRCode is to do it yourself or using a library. First you have to install a QR code generator e.g. BaconQrCode, as stated above, then you just have to generate the QR code url using: - -```php -$qrCodeUrl = $google2fa->getQRCodeUrl( - $companyName, - $companyEmail, - $secretKey -); -``` - -Once you have the QR code url, you can feed it to your preferred QR code generator. - -```php -// Use your own QR Code generator to generate a data URL: -$google2fa_url = custom_generate_qrcode_url($qrCodeUrl); - -/// and in your view: - - -``` - -And to verify, you just have to: - -```php -$secret = $request->input('secret'); - -$valid = $google2fa->verifyKey($user->google2fa_secret, $secret); -``` - -## QR Code Packages - -This package suggests the use of [Bacon/QRCode](https://github.com/Bacon/BaconQrCode) because -it is known as a good QR Code package, but you can use it with any other package, for -instance [Google2FA QRCode](https://github.com/antonioribeiro/google2fa-qrcode), -[Simple QrCode](https://www.simplesoftware.io/docs/simple-qrcode) -or [Endroid QR Code](https://github.com/endroid/qr-code), all of them use -[Bacon/QRCode](https://github.com/Bacon/BaconQrCode) to produce QR Codes. - -Usually you'll need a 2FA URL, so you just have to use the URL generator: - -```php -$google2fa->getQRCodeUrl($companyName, $companyEmail, $secretKey) -``` - -### Examples of Usage - -#### [Google2FA QRCode](https://github.com/antonioribeiro/google2fa-qrcode) - -Get a QRCode to be used inline: - -```php -$google2fa = (new \PragmaRX\Google2FAQRCode\Google2FA()); - -$inlineUrl = $google2fa->getQRCodeInline( - 'Company Name', - 'company@email.com', - $google2fa->generateSecretKey() -); -``` - -And use in your template: - -```php - -``` - -#### [Simple QrCode](https://www.simplesoftware.io/docs/simple-qrcode) - -```php -
- {!! QrCode::size(100)->generate($google2fa->getQRCodeUrl($companyName, $companyEmail, $secretKey)); !!} -

Scan me to return to the original page.

-
-``` - -#### [Endroid QR Code Generator](https://github.com/endroid/qr-code) - -Generate the data URL - -```php - -$qrCode = new \Endroid\QrCode\QrCode($value); -$qrCode->setSize(100); -$google2fa_url = $qrCode->writeDataUri(); -``` - -And in your view - -```php -
- {!! $google2fa_url !!} -

Scan me to return to the original page.

-
-``` - -#### [Bacon/QRCode](https://github.com/Bacon/BaconQrCode) - -```php -getQRCodeUrl( - 'pragmarx', - 'google2fa@pragmarx.com', - $google2fa->generateSecretKey() -); - -$writer = new Writer( - new ImageRenderer( - new RendererStyle(400), - new ImagickImageBackEnd() - ) -); - -$qrcode_image = base64_encode($writer->writeString($g2faUrl)); -``` - -And show it as an image: - -```php - -``` - -## Server Time - -It's really important that you keep your server time in sync with some NTP server, on Ubuntu you can add this to the crontab: - -```bash -sudo service ntp stop -sudo ntpd -gq -sudo service ntp start -``` - -## Validation Window - -To avoid problems with clocks that are slightly out of sync, we do not check against the current key only but also consider `$window` keys each from the past and future. You can pass `$window` as optional third parameter to `verifyKey`, it defaults to `4`. A new key is generated every 30 seconds, so this window includes keys from the previous two and next two minutes. - -```php -$secret = $request->input('secret'); - -$window = 8; // 8 keys (respectively 4 minutes) past and future - -$valid = $google2fa->verifyKey($user->google2fa_secret, $secret, $window); -``` - -An attacker might be able to watch the user entering his credentials and one time key. -Without further precautions, the key remains valid until it is no longer within the window of the server time. In order to prevent usage of a one time key that has already been used, you can utilize the `verifyKeyNewer` function. - -```php -$secret = $request->input('secret'); - -$timestamp = $google2fa->verifyKeyNewer($user->google2fa_secret, $secret, $user->google2fa_ts); - -if ($timestamp !== false) { - $user->update(['google2fa_ts' => $timestamp]); - // successful -} else { - // failed -} -``` - -Note that `$timestamp` either `false` (if the key is invalid or has been used before) or the provided key's unix timestamp divided by the key regeneration period of 30 seconds. - -## Using a Bigger and Prefixing the Secret Key - -Although the probability of collision of a 16 bytes (128 bits) random string is very low, you can harden it by: - -#### Use a bigger key - -```php -$secretKey = $google2fa->generateSecretKey(32); // defaults to 16 bytes -``` - -#### You can prefix your secret keys - -You may prefix your secret keys, but you have to understand that, as your secret key must have length in power of 2, your prefix will have to have a complementary size. So if your key is 16 bytes long, if you add a prefix it must be also 16 bytes long, but as your prefixes will be converted to base 32, the max length of your prefix is 10 bytes. So, those are the sizes you can use in your prefixes: - -``` -1, 2, 5, 10, 20, 40, 80... -``` - -And it can be used like so: - -```php -$prefix = strpad($userId, 10, 'X'); - -$secretKey = $google2fa->generateSecretKey(16, $prefix); -``` - -#### Window - -The Window property defines how long a OTP will work, or how many cycles it will last. A key has a 30 seconds cycle, setting the window to 0 will make the key lasts for those 30 seconds, setting it to 2 will make it last for 120 seconds. This is how you set the window: - -```php -$secretKey = $google2fa->setWindow(4); -``` - -But you can also set the window while checking the key. If you need to set a window of 4 during key verification, this is how you do: - -```php -$isValid = $google2fa->verifyKey($seed, $key, 4); -``` - -#### Key Regeneration Interval - -You can change key regeneration interval, which defaults to 30 seconds, but remember that this is a default value on most authentication apps, like Google Authenticator, which will, basically, make your app out of sync with them. - -```php -$google2fa->setKeyRegeneration(40); -``` - -## Google Authenticator secret key compatibility - -To be compatible with Google Authenticator, your (converted to base 32) secret key length must be at least 8 chars and be a power of 2: 8, 16, 32, 64... - -So, to prevent errors, you can do something like this while generating it: - -```php -$secretKey = '123456789'; - -$secretKey = str_pad($secretKey, pow(2,ceil(log(strlen($secretKey),2))), 'X'); -``` - -And it will generate - -``` -123456789XXXXXXX -``` - -By default, this package will enforce compatibility, but, if Google Authenticator is not a target, you can disable it by doing - -```php -$google2fa->setEnforceGoogleAuthenticatorCompatibility(false); -``` - -## Google Authenticator Apps: - -To use the two factor authentication, your user will have to install a Google Authenticator compatible app, those are some of the currently available: - -* [Authy for iOS, Android, Chrome, OS X](https://www.authy.com/) -* [FreeOTP for iOS, Android and Pebble](https://apps.getpebble.com/en_US/application/52f1a4c3c4117252f9000bb8) -* [Google Authenticator for iOS](https://itunes.apple.com/us/app/google-authenticator/id388497605?mt=8) -* [Google Authenticator for Android](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) -* [Google Authenticator (port) on Windows Store](https://www.microsoft.com/en-us/store/p/google-authenticator/9wzdncrdnkrf) -* [Microsoft Authenticator for Windows Phone](https://www.microsoft.com/en-us/store/apps/authenticator/9wzdncrfj3rj) -* [LastPass Authenticator for iOS, Android, OS X, Windows](https://lastpass.com/auth/) -* [1Password for iOS, Android, OS X, Windows](https://1password.com) - -## Tests - -The package tests were written with [PHPUnit](https://phpunit.de/). - -## Authors - -- [Antonio Carlos Ribeiro](http://twitter.com/iantonioribeiro) -- [Phil (Orginal author of this class)](https://www.idontplaydarts.com/static/ga.php_.txt) -- [All Contributors](https://github.com/antonioribeiro/google2fa/graphs/contributors) - -## License - -Google2FA is licensed under the MIT License - see the [LICENSE](LICENSE.md) file for details. - -## Contributing - -Pull requests and issues are more than welcome. diff --git a/srcs/phpmyadmin/vendor/pragmarx/google2fa/RELICENSED.md b/srcs/phpmyadmin/vendor/pragmarx/google2fa/RELICENSED.md deleted file mode 100644 index 28e582d..0000000 --- a/srcs/phpmyadmin/vendor/pragmarx/google2fa/RELICENSED.md +++ /dev/null @@ -1,29 +0,0 @@ -# Package Relicensed - -As per [Issue #100](https://github.com/antonioribeiro/google2fa/issues/100) the relicensing of this package from GPLv3 to MIT was approved by the original developer of the Google2FA class (Phil) and the majority of the contributors, by contributions, of this package. - -# Original License - -``` php -/** - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * PHP Google two-factor authentication module. - * - * See https://www.idontplaydarts.com/2011/07/google-totp-two-factor-authentication-for-php/ - * for more details - * - * @author Phil - **/ -``` diff --git a/srcs/phpmyadmin/vendor/pragmarx/google2fa/composer.json b/srcs/phpmyadmin/vendor/pragmarx/google2fa/composer.json deleted file mode 100644 index 3e39337..0000000 --- a/srcs/phpmyadmin/vendor/pragmarx/google2fa/composer.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "pragmarx/google2fa", - "description": "A One Time Password Authentication package, compatible with Google Authenticator.", - "keywords": [ - "authentication", - "two factor authentication", - "google2fa", - "2fa" - ], - "license": "MIT", - "authors": [ - { - "name": "Antonio Carlos Ribeiro", - "email": "acr@antoniocarlosribeiro.com", - "role": "Creator & Designer" - } - ], - "require": { - "php": ">=5.4", - "paragonie/constant_time_encoding": "~1.0|~2.0", - "paragonie/random_compat": ">=1", - "symfony/polyfill-php56": "~1.2" - }, - "require-dev": { - "phpunit/phpunit": "~4|~5|~6|~7|~8" - }, - "autoload": { - "psr-4": { - "PragmaRX\\Google2FA\\": "src/", - "PragmaRX\\Google2FA\\Tests\\": "tests/" - } - }, - "extra": { - "component": "package", - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "minimum-stability": "dev", - "prefer-stable": true -} diff --git a/srcs/phpmyadmin/vendor/pragmarx/google2fa/composer.lock b/srcs/phpmyadmin/vendor/pragmarx/google2fa/composer.lock deleted file mode 100644 index 47dc98c..0000000 --- a/srcs/phpmyadmin/vendor/pragmarx/google2fa/composer.lock +++ /dev/null @@ -1,1755 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", - "This file is @generated automatically" - ], - "content-hash": "10981c3ff06d22f2c3baee01bee773d0", - "packages": [ - { - "name": "paragonie/constant_time_encoding", - "version": "v2.2.3", - "source": { - "type": "git", - "url": "https://github.com/paragonie/constant_time_encoding.git", - "reference": "55af0dc01992b4d0da7f6372e2eac097bbbaffdb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/55af0dc01992b4d0da7f6372e2eac097bbbaffdb", - "reference": "55af0dc01992b4d0da7f6372e2eac097bbbaffdb", - "shasum": "" - }, - "require": { - "php": "^7" - }, - "require-dev": { - "phpunit/phpunit": "^6|^7", - "vimeo/psalm": "^1|^2" - }, - "type": "library", - "autoload": { - "psr-4": { - "ParagonIE\\ConstantTime\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com", - "role": "Maintainer" - }, - { - "name": "Steve 'Sc00bz' Thomas", - "email": "steve@tobtu.com", - "homepage": "https://www.tobtu.com", - "role": "Original Developer" - } - ], - "description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)", - "keywords": [ - "base16", - "base32", - "base32_decode", - "base32_encode", - "base64", - "base64_decode", - "base64_encode", - "bin2hex", - "encoding", - "hex", - "hex2bin", - "rfc4648" - ], - "time": "2019-01-03T20:26:31+00:00" - }, - { - "name": "paragonie/random_compat", - "version": "v9.99.99", - "source": { - "type": "git", - "url": "https://github.com/paragonie/random_compat.git", - "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", - "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", - "shasum": "" - }, - "require": { - "php": "^7" - }, - "require-dev": { - "phpunit/phpunit": "4.*|5.*", - "vimeo/psalm": "^1" - }, - "suggest": { - "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." - }, - "type": "library", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com" - } - ], - "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", - "keywords": [ - "csprng", - "polyfill", - "pseudorandom", - "random" - ], - "time": "2018-07-02T15:55:56+00:00" - }, - { - "name": "symfony/polyfill-php56", - "version": "v1.12.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php56.git", - "reference": "0e3b212e96a51338639d8ce175c046d7729c3403" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/0e3b212e96a51338639d8ce175c046d7729c3403", - "reference": "0e3b212e96a51338639d8ce175c046d7729c3403", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "symfony/polyfill-util": "~1.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.12-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php56\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "time": "2019-08-06T08:03:45+00:00" - }, - { - "name": "symfony/polyfill-util", - "version": "v1.12.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-util.git", - "reference": "4317de1386717b4c22caed7725350a8887ab205c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/4317de1386717b4c22caed7725350a8887ab205c", - "reference": "4317de1386717b4c22caed7725350a8887ab205c", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.12-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Util\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony utilities for portability of PHP codes", - "homepage": "https://symfony.com", - "keywords": [ - "compat", - "compatibility", - "polyfill", - "shim" - ], - "time": "2019-08-06T08:03:45+00:00" - } - ], - "packages-dev": [ - { - "name": "doctrine/instantiator", - "version": "1.2.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "a2c590166b2133a4633738648b6b064edae0814a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/a2c590166b2133a4633738648b6b064edae0814a", - "reference": "a2c590166b2133a4633738648b6b064edae0814a", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "require-dev": { - "doctrine/coding-standard": "^6.0", - "ext-pdo": "*", - "ext-phar": "*", - "phpbench/phpbench": "^0.13", - "phpstan/phpstan-phpunit": "^0.11", - "phpstan/phpstan-shim": "^0.11", - "phpunit/phpunit": "^7.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", - "keywords": [ - "constructor", - "instantiate" - ], - "time": "2019-03-17T17:37:11+00:00" - }, - { - "name": "myclabs/deep-copy", - "version": "1.9.3", - "source": { - "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/007c053ae6f31bba39dfa19a7726f56e9763bbea", - "reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "replace": { - "myclabs/deep-copy": "self.version" - }, - "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^7.1" - }, - "type": "library", - "autoload": { - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - }, - "files": [ - "src/DeepCopy/deep_copy.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Create deep copies (clones) of your objects", - "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" - ], - "time": "2019-08-09T12:45:53+00:00" - }, - { - "name": "phar-io/manifest", - "version": "1.0.3", - "source": { - "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", - "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-phar": "*", - "phar-io/version": "^2.0", - "php": "^5.6 || ^7.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "time": "2018-07-08T19:23:20+00:00" - }, - { - "name": "phar-io/version", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", - "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Library for handling version information and constraints", - "time": "2018-07-08T19:19:57+00:00" - }, - { - "name": "phpdocumentor/reflection-common", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", - "shasum": "" - }, - "require": { - "php": ">=5.5" - }, - "require-dev": { - "phpunit/phpunit": "^4.6" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" - ], - "time": "2017-09-11T18:02:19+00:00" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "4.3.1", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c", - "reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c", - "shasum": "" - }, - "require": { - "php": "^7.0", - "phpdocumentor/reflection-common": "^1.0.0", - "phpdocumentor/type-resolver": "^0.4.0", - "webmozart/assert": "^1.0" - }, - "require-dev": { - "doctrine/instantiator": "~1.0.5", - "mockery/mockery": "^1.0", - "phpunit/phpunit": "^6.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2019-04-30T17:48:53+00:00" - }, - { - "name": "phpdocumentor/type-resolver", - "version": "0.4.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", - "shasum": "" - }, - "require": { - "php": "^5.5 || ^7.0", - "phpdocumentor/reflection-common": "^1.0" - }, - "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^5.2||^4.8.24" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "time": "2017-07-14T14:27:02+00:00" - }, - { - "name": "phpspec/prophecy", - "version": "1.8.1", - "source": { - "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "1927e75f4ed19131ec9bcc3b002e07fb1173ee76" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/1927e75f4ed19131ec9bcc3b002e07fb1173ee76", - "reference": "1927e75f4ed19131ec9bcc3b002e07fb1173ee76", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", - "sebastian/comparator": "^1.1|^2.0|^3.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0" - }, - "require-dev": { - "phpspec/phpspec": "^2.5|^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.8.x-dev" - } - }, - "autoload": { - "psr-4": { - "Prophecy\\": "src/Prophecy" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, - { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" - } - ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ], - "time": "2019-06-13T12:50:23+00:00" - }, - { - "name": "phpunit/php-code-coverage", - "version": "7.0.7", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "7743bbcfff2a907e9ee4a25be13d0f8ec5e73800" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/7743bbcfff2a907e9ee4a25be13d0f8ec5e73800", - "reference": "7743bbcfff2a907e9ee4a25be13d0f8ec5e73800", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-xmlwriter": "*", - "php": "^7.2", - "phpunit/php-file-iterator": "^2.0.2", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^3.1.0", - "sebastian/code-unit-reverse-lookup": "^1.0.1", - "sebastian/environment": "^4.2.2", - "sebastian/version": "^2.0.1", - "theseer/tokenizer": "^1.1.3" - }, - "require-dev": { - "phpunit/phpunit": "^8.2.2" - }, - "suggest": { - "ext-xdebug": "^2.7.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "7.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": [ - "coverage", - "testing", - "xunit" - ], - "time": "2019-07-25T05:31:54+00:00" - }, - { - "name": "phpunit/php-file-iterator", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "050bedf145a257b1ff02746c31894800e5122946" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946", - "reference": "050bedf145a257b1ff02746c31894800e5122946", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", - "keywords": [ - "filesystem", - "iterator" - ], - "time": "2018-09-13T20:33:42+00:00" - }, - { - "name": "phpunit/php-text-template", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ], - "time": "2015-06-21T13:50:34+00:00" - }, - { - "name": "phpunit/php-timer", - "version": "2.1.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "1038454804406b0b5f5f520358e78c1c2f71501e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e", - "reference": "1038454804406b0b5f5f520358e78c1c2f71501e", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ], - "time": "2019-06-07T04:22:29+00:00" - }, - { - "name": "phpunit/php-token-stream", - "version": "3.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "e899757bb3df5ff6e95089132f32cd59aac2220a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/e899757bb3df5ff6e95089132f32cd59aac2220a", - "reference": "e899757bb3df5ff6e95089132f32cd59aac2220a", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": "^7.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", - "keywords": [ - "tokenizer" - ], - "time": "2019-07-25T05:29:42+00:00" - }, - { - "name": "phpunit/phpunit", - "version": "8.3.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "e31cce0cf4499c0ccdbbb211a3280d36ab341e36" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e31cce0cf4499c0ccdbbb211a3280d36ab341e36", - "reference": "e31cce0cf4499c0ccdbbb211a3280d36ab341e36", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.2.0", - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.9.1", - "phar-io/manifest": "^1.0.3", - "phar-io/version": "^2.0.1", - "php": "^7.2", - "phpspec/prophecy": "^1.8.1", - "phpunit/php-code-coverage": "^7.0.7", - "phpunit/php-file-iterator": "^2.0.2", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-timer": "^2.1.2", - "sebastian/comparator": "^3.0.2", - "sebastian/diff": "^3.0.2", - "sebastian/environment": "^4.2.2", - "sebastian/exporter": "^3.1.0", - "sebastian/global-state": "^3.0.0", - "sebastian/object-enumerator": "^3.0.3", - "sebastian/resource-operations": "^2.0.1", - "sebastian/type": "^1.1.3", - "sebastian/version": "^2.0.1" - }, - "require-dev": { - "ext-pdo": "*" - }, - "suggest": { - "ext-soap": "*", - "ext-xdebug": "*", - "phpunit/php-invoker": "^2.0.0" - }, - "bin": [ - "phpunit" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "8.3-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ], - "time": "2019-08-11T06:56:55+00:00" - }, - { - "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "time": "2017-03-04T06:30:41+00:00" - }, - { - "name": "sebastian/comparator", - "version": "3.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da", - "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da", - "shasum": "" - }, - "require": { - "php": "^7.1", - "sebastian/diff": "^3.0", - "sebastian/exporter": "^3.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], - "time": "2018-07-12T15:12:46+00:00" - }, - { - "name": "sebastian/diff", - "version": "3.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29", - "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.5 || ^8.0", - "symfony/process": "^2 || ^3.3 || ^4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff", - "udiff", - "unidiff", - "unified diff" - ], - "time": "2019-02-04T06:01:07+00:00" - }, - { - "name": "sebastian/environment", - "version": "4.2.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/f2a2c8e1c97c11ace607a7a667d73d47c19fe404", - "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.5" - }, - "suggest": { - "ext-posix": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.2-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" - ], - "time": "2019-05-05T09:05:15+00:00" - }, - { - "name": "sebastian/exporter", - "version": "3.1.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "06a9a5947f47b3029d76118eb5c22802e5869687" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/06a9a5947f47b3029d76118eb5c22802e5869687", - "reference": "06a9a5947f47b3029d76118eb5c22802e5869687", - "shasum": "" - }, - "require": { - "php": "^7.0", - "sebastian/recursion-context": "^3.0" - }, - "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ], - "time": "2019-08-11T12:43:14+00:00" - }, - { - "name": "sebastian/global-state", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", - "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", - "shasum": "" - }, - "require": { - "php": "^7.2", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" - }, - "require-dev": { - "ext-dom": "*", - "phpunit/phpunit": "^8.0" - }, - "suggest": { - "ext-uopz": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" - ], - "time": "2019-02-01T05:30:01+00:00" - }, - { - "name": "sebastian/object-enumerator", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "shasum": "" - }, - "require": { - "php": "^7.0", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2017-08-03T12:35:26+00:00" - }, - { - "name": "sebastian/object-reflector", - "version": "1.1.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "773f97c67f28de00d397be301821b06708fca0be" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", - "reference": "773f97c67f28de00d397be301821b06708fca0be", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "time": "2017-03-29T09:07:27+00:00" - }, - { - "name": "sebastian/recursion-context", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2017-03-03T06:23:57+00:00" - }, - { - "name": "sebastian/resource-operations", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9", - "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "time": "2018-10-04T04:07:39+00:00" - }, - { - "name": "sebastian/type", - "version": "1.1.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/type.git", - "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/3aaaa15fa71d27650d62a948be022fe3b48541a3", - "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3", - "shasum": "" - }, - "require": { - "php": "^7.2" - }, - "require-dev": { - "phpunit/phpunit": "^8.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the types of the PHP type system", - "homepage": "https://github.com/sebastianbergmann/type", - "time": "2019-07-02T08:10:15+00:00" - }, - { - "name": "sebastian/version", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", - "shasum": "" - }, - "require": { - "php": ">=5.6" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "time": "2016-10-03T07:35:21+00:00" - }, - { - "name": "symfony/polyfill-ctype", - "version": "v1.12.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "550ebaac289296ce228a706d0867afc34687e3f4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/550ebaac289296ce228a706d0867afc34687e3f4", - "reference": "550ebaac289296ce228a706d0867afc34687e3f4", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.12-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], - "time": "2019-08-06T08:03:45+00:00" - }, - { - "name": "theseer/tokenizer", - "version": "1.1.3", - "source": { - "type": "git", - "url": "https://github.com/theseer/tokenizer.git", - "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9", - "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": "^7.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "role": "Developer", - "email": "arne@blankerts.de" - } - ], - "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "time": "2019-06-13T22:48:21+00:00" - }, - { - "name": "webmozart/assert", - "version": "1.5.0", - "source": { - "type": "git", - "url": "https://github.com/webmozart/assert.git", - "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/88e6d84706d09a236046d686bbea96f07b3a34f4", - "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4", - "shasum": "" - }, - "require": { - "php": "^5.3.3 || ^7.0", - "symfony/polyfill-ctype": "^1.8" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.36 || ^7.5.13" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3-dev" - } - }, - "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ], - "time": "2019-08-24T08:43:50+00:00" - } - ], - "aliases": [], - "minimum-stability": "dev", - "stability-flags": [], - "prefer-stable": true, - "prefer-lowest": false, - "platform": { - "php": ">=5.4" - }, - "platform-dev": [] -} diff --git a/srcs/phpmyadmin/vendor/pragmarx/google2fa/docs/playground.jpg b/srcs/phpmyadmin/vendor/pragmarx/google2fa/docs/playground.jpg deleted file mode 100644 index 0561403..0000000 Binary files a/srcs/phpmyadmin/vendor/pragmarx/google2fa/docs/playground.jpg and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/pragmarx/google2fa/phpunit.xml b/srcs/phpmyadmin/vendor/pragmarx/google2fa/phpunit.xml deleted file mode 100644 index 79ac51d..0000000 --- a/srcs/phpmyadmin/vendor/pragmarx/google2fa/phpunit.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - ./tests - - - - - - - - - - - - ./src - - - - diff --git a/srcs/phpmyadmin/vendor/pragmarx/google2fa/src/Exceptions/Contracts/Google2FA.php b/srcs/phpmyadmin/vendor/pragmarx/google2fa/src/Exceptions/Contracts/Google2FA.php deleted file mode 100644 index b9d5c15..0000000 --- a/srcs/phpmyadmin/vendor/pragmarx/google2fa/src/Exceptions/Contracts/Google2FA.php +++ /dev/null @@ -1,7 +0,0 @@ -getWindow($window); - $startingTimestamp++ - ) { - if ( - hash_equals($this->oathHotp($secret, $startingTimestamp), $key) - ) { - return $oldTimestamp === Constants::ARGUMENT_NOT_SET - ? true - : $startingTimestamp; - } - } - - return false; - } - - /** - * Generate a digit secret key in base32 format. - * - * @param int $length - * @param string $prefix - * - * @throws Exceptions\InvalidCharactersException - * @throws Exceptions\IncompatibleWithGoogleAuthenticatorException - * - * @return string - */ - public function generateSecretKey($length = 16, $prefix = '') - { - return $this->generateBase32RandomKey($length, $prefix); - } - - /** - * Get the current one time password for a key. - * - * @param $secret - * - * @throws \PragmaRX\Google2FA\Exceptions\SecretKeyTooShortException - * @throws \PragmaRX\Google2FA\Exceptions\InvalidCharactersException - * @throws \PragmaRX\Google2FA\Exceptions\IncompatibleWithGoogleAuthenticatorException - * - * @return string - */ - public function getCurrentOtp($secret) - { - return $this->oathHotp($secret, $this->getTimestamp()); - } - - /** - * Get key regeneration. - * - * @return mixed - */ - public function getKeyRegeneration() - { - return $this->keyRegeneration; - } - - /** - * Get OTP length. - * - * @return mixed - */ - public function getOneTimePasswordLength() - { - return $this->oneTimePasswordLength; - } - - /** - * Get secret. - * - * @param string|null $secret - * - * @return mixed - */ - public function getSecret($secret = null) - { - return is_null($secret) ? $this->secret : $secret; - } - - /** - * Returns the current Unix Timestamp divided by the $keyRegeneration - * period. - * - * @return int - **/ - public function getTimestamp() - { - return (int) floor(microtime(true) / $this->keyRegeneration); - } - - /** - * Get the OTP window. - * - * @param null|int $window - * - * @return mixed - */ - public function getWindow($window = null) - { - return is_null($window) ? $this->window : $window; - } - - /** - * Make a window based starting timestamp. - * - * @param $window - * @param $timestamp - * @param $oldTimestamp - * - * @return mixed - */ - private function makeStartingTimestamp($window, $timestamp, $oldTimestamp) - { - return $oldTimestamp === Constants::ARGUMENT_NOT_SET - ? $timestamp - $this->getWindow($window) - : max($timestamp - $this->getWindow($window), $oldTimestamp + 1); - } - - /** - * Get/use a starting timestamp for key verification. - * - * @param string|int|null $timestamp - * - * @return int - */ - protected function makeTimestamp($timestamp = null) - { - if (is_null($timestamp)) { - return $this->getTimestamp(); - } - - return (int) $timestamp; - } - - /** - * Takes the secret key and the timestamp and returns the one time - * password. - * - * @param string $secret - Secret key in binary form. - * @param int $counter - Timestamp as returned by getTimestamp. - * - * @throws \PragmaRX\Google2FA\Exceptions\SecretKeyTooShortException - * @throws \PragmaRX\Google2FA\Exceptions\InvalidCharactersException - * @throws Exceptions\IncompatibleWithGoogleAuthenticatorException - * - * @return string - */ - public function oathHotp($secret, $counter) - { - $secret = $this->base32Decode($this->getSecret($secret)); - - if (strlen($secret) < 8) { - throw new SecretKeyTooShortException(); - } - - // Counter must be 64-bit int - $bin_counter = pack('N*', 0, $counter); - - $hash = hash_hmac('sha1', $bin_counter, $secret, true); - - return str_pad( - $this->oathTruncate($hash), - $this->getOneTimePasswordLength(), - '0', - STR_PAD_LEFT - ); - } - - /** - * Extracts the OTP from the SHA1 hash. - * - * @param string $hash - * - * @return int - **/ - public function oathTruncate($hash) - { - $offset = ord($hash[19]) & 0xf; - - $temp = unpack('N', substr($hash, $offset, 4)); - - return substr( - $temp[1] & 0x7fffffff, - -$this->getOneTimePasswordLength() - ); - } - - /** - * Remove invalid chars from a base 32 string. - * - * @param $string - * - * @return mixed - */ - public function removeInvalidChars($string) - { - return preg_replace( - '/[^' . Constants::VALID_FOR_B32 . ']/', - '', - $string - ); - } - - /** - * Setter for the enforce Google Authenticator compatibility property. - * - * @param mixed $enforceGoogleAuthenticatorCompatibility - * - * @return $this - */ - public function setEnforceGoogleAuthenticatorCompatibility( - $enforceGoogleAuthenticatorCompatibility - ) { - $this->enforceGoogleAuthenticatorCompatibility = $enforceGoogleAuthenticatorCompatibility; - - return $this; - } - - /** - * Set key regeneration. - * - * @param mixed $keyRegeneration - */ - public function setKeyRegeneration($keyRegeneration) - { - $this->keyRegeneration = $keyRegeneration; - } - - /** - * Set OTP length. - * - * @param mixed $oneTimePasswordLength - */ - public function setOneTimePasswordLength($oneTimePasswordLength) - { - $this->oneTimePasswordLength = $oneTimePasswordLength; - } - - /** - * Set secret. - * - * @param mixed $secret - */ - public function setSecret($secret) - { - $this->secret = $secret; - } - - /** - * Set the OTP window. - * - * @param mixed $window - */ - public function setWindow($window) - { - $this->window = $window; - } - - /** - * Verifies a user inputted key against the current timestamp. Checks $window - * keys either side of the timestamp. - * - * @param string $key - User specified key - * @param null|string $secret - * @param null|int $window - * @param null|int $timestamp - * @param null|string|int $oldTimestamp - * - * @throws \PragmaRX\Google2FA\Exceptions\SecretKeyTooShortException - * @throws \PragmaRX\Google2FA\Exceptions\InvalidCharactersException - * @throws \PragmaRX\Google2FA\Exceptions\IncompatibleWithGoogleAuthenticatorException - * - * @return bool|int - */ - public function verify( - $key, - $secret = null, - $window = null, - $timestamp = null, - $oldTimestamp = Constants::ARGUMENT_NOT_SET - ) { - return $this->verifyKey( - $secret, - $key, - $window, - $timestamp, - $oldTimestamp - ); - } - - /** - * Verifies a user inputted key against the current timestamp. Checks $window - * keys either side of the timestamp. - * - * @param string $secret - * @param string $key - User specified key - * @param null|int $window - * @param null|int $timestamp - * @param null|string|int $oldTimestamp - * - * @throws \PragmaRX\Google2FA\Exceptions\SecretKeyTooShortException - * @throws \PragmaRX\Google2FA\Exceptions\InvalidCharactersException - * @throws \PragmaRX\Google2FA\Exceptions\IncompatibleWithGoogleAuthenticatorException - * - * @return bool|int - */ - public function verifyKey( - $secret, - $key, - $window = null, - $timestamp = null, - $oldTimestamp = Constants::ARGUMENT_NOT_SET - ) { - $timestamp = $this->makeTimestamp($timestamp); - - return $this->findValidOTP( - $secret, - $key, - $window, - $this->makeStartingTimestamp($window, $timestamp, $oldTimestamp), - $timestamp, - $oldTimestamp - ); - } - - /** - * Verifies a user inputted key against the current timestamp. Checks $window - * keys either side of the timestamp, but ensures that the given key is newer than - * the given oldTimestamp. Useful if you need to ensure that a single key cannot - * be used twice. - * - * @param string $secret - * @param string $key - User specified key - * @param int $oldTimestamp - The timestamp from the last verified key - * @param int|null $window - * @param int|null $timestamp - * - * @throws \PragmaRX\Google2FA\Exceptions\SecretKeyTooShortException - * @throws \PragmaRX\Google2FA\Exceptions\InvalidCharactersException - * @throws \PragmaRX\Google2FA\Exceptions\IncompatibleWithGoogleAuthenticatorException - * - * @return bool|int - false (not verified) or the timestamp of the verified key - */ - public function verifyKeyNewer( - $secret, - $key, - $oldTimestamp, - $window = null, - $timestamp = null - ) { - return $this->verifyKey( - $secret, - $key, - $window, - $timestamp, - $oldTimestamp - ); - } -} diff --git a/srcs/phpmyadmin/vendor/pragmarx/google2fa/src/Support/Base32.php b/srcs/phpmyadmin/vendor/pragmarx/google2fa/src/Support/Base32.php deleted file mode 100644 index ce5cbb6..0000000 --- a/srcs/phpmyadmin/vendor/pragmarx/google2fa/src/Support/Base32.php +++ /dev/null @@ -1,202 +0,0 @@ -toBase32($prefix) : ''; - - $secret = $this->strPadBase32($secret, $length); - - $this->validateSecret($secret); - - return $secret; - } - - /** - * Decodes a base32 string into a binary string. - * - * @param string $b32 - * - * @throws InvalidCharactersException - * @throws IncompatibleWithGoogleAuthenticatorException - * - * @return int - */ - public function base32Decode($b32) - { - $b32 = strtoupper($b32); - - $this->validateSecret($b32); - - return ParagonieBase32::decodeUpper($b32); - } - - /** - * Check if the string length is power of two. - * - * @param $b32 - * @return bool - */ - protected function isCharCountNotAPowerOfTwo($b32): bool - { - return (strlen($b32) & (strlen($b32) - 1)) !== 0; - } - - /** - * Pad string with random base 32 chars. - * - * @param $string - * @param $length - * - * @throws \Exception - * - * @return string - */ - private function strPadBase32($string, $length) - { - for ($i = 0; $i < $length; $i++) { - $string .= substr( - Constants::VALID_FOR_B32_SCRAMBLED, - $this->getRandomNumber(), - 1 - ); - } - - return $string; - } - - /** - * Encode a string to Base32. - * - * @param $string - * - * @return mixed - */ - public function toBase32($string) - { - $encoded = ParagonieBase32::encodeUpper($string); - - return str_replace('=', '', $encoded); - } - - /** - * Get a random number. - * - * @param $from - * @param $to - * - * @throws \Exception - * - * @return int - */ - protected function getRandomNumber($from = 0, $to = 31) - { - return random_int($from, $to); - } - - /** - * Validate the secret. - * - * @param $b32 - * - * @throws IncompatibleWithGoogleAuthenticatorException - * @throws InvalidCharactersException - */ - protected function validateSecret($b32) - { - $this->checkForValidCharacters($b32); - - $this->checkGoogleAuthenticatorCompatibility($b32); - - $this->checkIsBigEnough($b32); - } - - /** - * Check if the secret key is compatible with Google Authenticator. - * - * @param $b32 - * - * @throws IncompatibleWithGoogleAuthenticatorException - */ - protected function checkGoogleAuthenticatorCompatibility($b32) - { - if ( - $this->enforceGoogleAuthenticatorCompatibility && - $this->isCharCountNotAPowerOfTwo($b32) // Google Authenticator requires it to be a power of 2 base32 length string - ) { - throw new IncompatibleWithGoogleAuthenticatorException(); - } - } - - /** - * Check if all secret key characters are valid. - * - * @param $b32 - * - * @throws InvalidCharactersException - */ - protected function checkForValidCharacters($b32) - { - if ( - preg_replace('/[^' . Constants::VALID_FOR_B32 . ']/', '', $b32) !== - $b32 - ) { - throw new InvalidCharactersException(); - } - } - - /** - * Check if secret key length is big enough - * - * @param $b32 - * - * @throws InvalidCharactersException - */ - protected function checkIsBigEnough($b32) - { - // Minimum = 128 bits - // Recommended = 160 bits - // Compatible with Google Authenticator = 256 bits - - if ( - $this->charCountBits($b32) < 128 - ) { - throw new SecretKeyTooShortException(); - } - } -} diff --git a/srcs/phpmyadmin/vendor/pragmarx/google2fa/src/Support/Constants.php b/srcs/phpmyadmin/vendor/pragmarx/google2fa/src/Support/Constants.php deleted file mode 100644 index ba37e62..0000000 --- a/srcs/phpmyadmin/vendor/pragmarx/google2fa/src/Support/Constants.php +++ /dev/null @@ -1,21 +0,0 @@ -google2fa = new Google2FA(); - } - - public function testIsInitializable() - { - $this->assertInstanceOf( - 'PragmaRX\Google2FA\Google2FA', - $this->google2fa - ); - } - - public function testGeneratesAValidSecretKey() - { - $this->assertEquals(16, strlen($this->google2fa->generateSecretKey())); - - $this->assertEquals( - 32, - strlen($this->google2fa->generateSecretKey(32)) - ); - - $this->assertStringStartsWith( - 'MFXHI', - $this->google2fa->generateSecretKey(59, 'ant') - ); - - $this->assertStringStartsWith( - 'MFXHI', - $this->google2fa->generateSecretKey(59, 'ant') - ); - - $this->assertEquals( - $key = $this->google2fa->generateSecretKey(), - preg_replace( - '/[^' . Google2FAConstants::VALID_FOR_B32 . ']/', - '', - $key - ) - ); - } - - public function testGeneratesASecretKeysCompatibleWithGoogleAuthenticator() - { - $this->assertEquals($size = 16, strlen($this->google2fa->setEnforceGoogleAuthenticatorCompatibility(true)->generateSecretKey($size))); /// minimum = 128 bits - $this->assertEquals($size = 20, strlen($this->google2fa->setEnforceGoogleAuthenticatorCompatibility(false)->generateSecretKey($size))); /// recommended = 160 bits - not compatible - $this->assertEquals($size = 32, strlen($this->google2fa->setEnforceGoogleAuthenticatorCompatibility(true)->generateSecretKey($size))); /// recommended = 256 bits - compatible - $this->assertEquals($size = 64, strlen($this->google2fa->setEnforceGoogleAuthenticatorCompatibility(true)->generateSecretKey($size))); - $this->assertEquals($size = 128, strlen($this->google2fa->setEnforceGoogleAuthenticatorCompatibility(true)->generateSecretKey($size))); - } - - public function testGeneratesASecretKeysGenerationSize() - { - // 128 bits are allowed - $this->assertEquals($size = 16, strlen($this->google2fa->generateSecretKey($size))); /// minimum = 128 bits - - // anything below 128 bits are NOT allowed - $this->expectException(\PragmaRX\Google2FA\Exceptions\SecretKeyTooShortException::class); - - $this->assertEquals($size = 2, strlen($this->google2fa->generateSecretKey($size))); /// minimum = 128 bits - $this->assertEquals($size = 4, strlen($this->google2fa->generateSecretKey($size))); /// minimum = 128 bits - $this->assertEquals($size = 8, strlen($this->google2fa->generateSecretKey($size))); /// minimum = 128 bits - } - - public function testGeneratesASecretKeysNotCompatibleWithGoogleAuthenticator() - { - $this->expectException(\PragmaRX\Google2FA\Exceptions\IncompatibleWithGoogleAuthenticatorException::class); - $this->assertEquals($size = 15, strlen($this->google2fa->setEnforceGoogleAuthenticatorCompatibility(true)->generateSecretKey($size))); - - $this->expectException(\PragmaRX\Google2FA\Exceptions\IncompatibleWithGoogleAuthenticatorException::class); - $this->assertEquals($size = 17, strlen($this->google2fa->setEnforceGoogleAuthenticatorCompatibility(true)->generateSecretKey($size))); - - $this->expectException(\PragmaRX\Google2FA\Exceptions\IncompatibleWithGoogleAuthenticatorException::class); - $this->assertEquals($size = 21, strlen($this->google2fa->setEnforceGoogleAuthenticatorCompatibility(true)->generateSecretKey($size))); - } - - public function testConvertsInvalidCharsToBase32() - { - $converted = $this->google2fa->generateBase32RandomKey( - 16, - '1234' . - chr(250) . - chr(251) . - chr(252) . - chr(253) . - chr(254) . - chr(255) - ); - - $valid = preg_replace( - '/[^' . Google2FAConstants::VALID_FOR_B32 . ']/', - '', - $converted - ); - - $this->assertEquals($converted, $valid); - } - - public function testGetsValidTimestamps() - { - $ts = $this->google2fa->getTimestamp(); - - $this->assertLessThanOrEqual(PHP_INT_MAX, $ts); - - $this->assertGreaterThanOrEqual(~PHP_INT_MAX, $ts); - } - - public function testDecodesBase32Strings() - { - $result = - chr(0) . - chr(232) . - chr(196) . - chr(187) . - chr(190) . - chr(223) . - chr(26) . - chr(241) . - chr(145) . - chr(86); - - $this->assertEquals( - $result, - $this->google2fa->base32Decode(Constants::SECRET) - ); - } - - public function testCreatesAOneTimePassword() - { - $this->assertEquals( - 6, - strlen($this->google2fa->getCurrentOtp(Constants::SECRET)) - ); - } - - public function testVerifiesKeys() - { - // $ts 26213400 with KEY_REGENERATION 30 seconds is - // timestamp 786402000, which is 1994-12-02 21:00:00 UTC - - $this->assertTrue( - $this->google2fa->verifyKey( - Constants::SECRET, - '558854', - 2, - 26213400 - ) - ); // 26213398 - $this->assertTrue( - $this->google2fa->verifyKey( - Constants::SECRET, - '981084', - 2, - 26213400 - ) - ); // 26213399 - $this->assertTrue( - $this->google2fa->verifyKey( - Constants::SECRET, - '512396', - 2, - 26213400 - ) - ); // 26213400 - $this->assertTrue( - $this->google2fa->verifyKey( - Constants::SECRET, - '410272', - 2, - 26213400 - ) - ); // 26213401 - $this->assertTrue( - $this->google2fa->verifyKey( - Constants::SECRET, - '239815', - 2, - 26213400 - ) - ); // 26213402 - - $this->assertFalse( - $this->google2fa->verifyKey( - Constants::SECRET, - '313366', - 2, - 26213400 - ) - ); // 26213403 - $this->assertFalse( - $this->google2fa->verifyKey( - Constants::SECRET, - '093183', - 2, - 26213400 - ) - ); // 26213397 - } - - public function testVerifiesKeysNewer() - { - $this->assertFalse( - $this->google2fa->verifyKeyNewer( - Constants::SECRET, - '512396', - 26213401, - 2, - 26213400 - ) - ); - $this->assertFalse( - $this->google2fa->verifyKeyNewer( - Constants::SECRET, - '410272', - 26213401, - 2, - 26213400 - ) - ); - $this->assertEquals( - 26213402, - $this->google2fa->verifyKeyNewer( - Constants::SECRET, - '239815', - 26213401, - 2, - 26213400 - ) - ); - $this->assertFalse( - $this->google2fa->verifyKeyNewer( - Constants::SECRET, - '313366', - 26213401, - 2, - 26213400 - ) - ); - - $this->assertEquals( - 26213400, - $this->google2fa->verifyKeyNewer( - Constants::SECRET, - '512396', - null, - 2, - 26213400 - ) - ); - $this->assertEquals( - 26213401, - $this->google2fa->verifyKeyNewer( - Constants::SECRET, - '410272', - null, - 2, - 26213400 - ) - ); - $this->assertEquals( - 26213402, - $this->google2fa->verifyKeyNewer( - Constants::SECRET, - '239815', - null, - 2, - 26213400 - ) - ); - $this->assertFalse( - $this->google2fa->verifyKeyNewer( - Constants::SECRET, - '313366', - null, - 2, - 26213400 - ) - ); - } - - public function testRemovesInvalidCharsFromSecret() - { - $this->assertEquals( - Constants::SECRET, - $this->google2fa->removeInvalidChars(Constants::SECRET . '!1-@@@') - ); - } - - public function testConvertsToBase32() - { - $this->assertEquals( - 'KBZGCZ3NMFJFQ', - $this->google2fa->toBase32('PragmaRX') - ); - } - - public function testSetsTheWindow() - { - $this->google2fa->setWindow(6); - - $this->assertEquals(6, $this->google2fa->getWindow()); - - $this->assertEquals(1, $this->google2fa->getWindow(1)); - - $this->google2fa->setWindow(0); - - $this->assertFalse( - $this->google2fa->verifyKey( - Constants::SECRET, - '558854', - null, - 26213400 - ) - ); - - $this->google2fa->setWindow(2); - - $this->assertTrue( - $this->google2fa->verifyKey( - Constants::SECRET, - '558854', - null, - 26213400 - ) - ); - $this->assertTrue( - $this->google2fa->verifyKey( - Constants::SECRET, - '558854', - null, - 26213399 - ) - ); - $this->assertTrue( - $this->google2fa->verifyKey( - Constants::SECRET, - '558854', - null, - 26213398 - ) - ); - $this->assertTrue( - $this->google2fa->verifyKey( - Constants::SECRET, - '558854', - null, - 26213396 - ) - ); - $this->assertFalse( - $this->google2fa->verifyKey( - Constants::SECRET, - '558854', - null, - 26213395 - ) - ); - } - - public function testSetsTheSecret() - { - $this->assertFalse( - $this->google2fa->verify('558854', Constants::WRONG_SECRET) - ); - - $this->google2fa->setWindow(2); - - $this->assertTrue( - $this->google2fa->verify( - '558854', - Constants::SECRET, - null, - 26213400 - ) - ); - - $this->google2fa->setSecret(Constants::SECRET); - - $this->assertTrue( - $this->google2fa->verify('558854', null, null, 26213400) - ); - } - - public function testGetsKeyRegeneration() - { - $this->google2fa->setKeyRegeneration(11); - - $this->assertEquals(11, $this->google2fa->getKeyRegeneration()); - } - - public function testGetsOtpLength() - { - $this->google2fa->setOneTimePasswordLength(7); - - $this->assertEquals(7, $this->google2fa->getOneTimePasswordLength()); - } - - public function testGeneratesPasswordsInManyDifferentSizes() - { - $this->google2fa->setWindow(2); - - $this->google2fa->setOneTimePasswordLength(6); - - $this->assertTrue( - $this->google2fa->verifyKey( - Constants::SECRET, - '558854', - null, - 26213400 - ) - ); - - $this->google2fa->setOneTimePasswordLength(7); - - $this->assertTrue( - $this->google2fa->verifyKey( - Constants::SECRET, - '8981084', - null, - 26213400 - ) - ); - } - - public function testShortSecretKey() - { - $this->expectException(\PragmaRX\Google2FA\Exceptions\SecretKeyTooShortException::class); - - $this->google2fa->setEnforceGoogleAuthenticatorCompatibility(false); - - $this->google2fa->verifyKey( - Constants::SHORT_SECRET, - '558854', - null, - 26213400 - ); - } - - public function testValidateKey() - { - $this->expectException(\PragmaRX\Google2FA\Exceptions\InvalidCharactersException::class); - - $this->assertTrue( - is_numeric($this->google2fa->getCurrentOtp(Constants::SECRET)) - ); - - $this->google2fa->setEnforceGoogleAuthenticatorCompatibility(false); - - $this->google2fa->getCurrentOtp(Constants::INVALID_SECRET); - } - - public function testThrowsBaseException() - { - $this->expectException(\PragmaRX\Google2FA\Exceptions\Google2FAException::class); - - $this->throwSecretKeyTooShortException(); - } - - public function testThrowsBaseExceptionContract() - { - $this->expectException(\PragmaRX\Google2FA\Exceptions\Contracts\Google2FA::class); - - $this->throwSecretKeyTooShortException(); - } - - public function testThrowsSecretKeyTooShortException() - { - $this->expectException(\PragmaRX\Google2FA\Exceptions\SecretKeyTooShortException::class); - - $this->throwSecretKeyTooShortException(); - } - - public function testThrowsSecretKeyTooShortExceptionContract() - { - $this->expectException(\PragmaRX\Google2FA\Exceptions\Contracts\SecretKeyTooShort::class); - - $this->throwSecretKeyTooShortException(); - } - - public function testThrowsIncompatibleWithGoogleAuthenticatorExceptionInterface() - { - $this->expectException(\PragmaRX\Google2FA\Exceptions\Contracts\IncompatibleWithGoogleAuthenticator::class); - - $this->throwIncompatibleWithGoogleAuthenticatorException(); - } - - public function throwSecretKeyTooShortException() - { - $this->google2fa->setEnforceGoogleAuthenticatorCompatibility(false); - - $this->google2fa->verifyKey( - Constants::SHORT_SECRET, // <------------- BUG - '558854', - null, - 26213400 - ); - } - - public function throwIncompatibleWithGoogleAuthenticatorException() - { - $this->google2fa - ->setEnforceGoogleAuthenticatorCompatibility(true) - ->generateSecretKey(17); - - $this->assertEquals( - 17, - strlen( - $this->google2fa - ->setEnforceGoogleAuthenticatorCompatibility(false) - ->generateSecretKey(17) - ) - ); - } -} diff --git a/srcs/phpmyadmin/vendor/pragmarx/google2fa/tests/bootstrap.php b/srcs/phpmyadmin/vendor/pragmarx/google2fa/tests/bootstrap.php deleted file mode 100644 index b55a9ca..0000000 --- a/srcs/phpmyadmin/vendor/pragmarx/google2fa/tests/bootstrap.php +++ /dev/null @@ -1,42 +0,0 @@ -=5.3.0" - }, - "autoload": { - "psr-4": { - "Psr\\Cache\\": "src/" - } - }, - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - } -} diff --git a/srcs/phpmyadmin/vendor/psr/cache/src/CacheException.php b/srcs/phpmyadmin/vendor/psr/cache/src/CacheException.php deleted file mode 100644 index e27f22f..0000000 --- a/srcs/phpmyadmin/vendor/psr/cache/src/CacheException.php +++ /dev/null @@ -1,10 +0,0 @@ -=5.3.0" - }, - "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" - } - }, - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - } -} diff --git a/srcs/phpmyadmin/vendor/psr/container/src/ContainerExceptionInterface.php b/srcs/phpmyadmin/vendor/psr/container/src/ContainerExceptionInterface.php deleted file mode 100644 index d35c6b4..0000000 --- a/srcs/phpmyadmin/vendor/psr/container/src/ContainerExceptionInterface.php +++ /dev/null @@ -1,13 +0,0 @@ -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 array $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 array $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 array $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 array $context - * - * @return void - */ - public function warning($message, array $context = array()) - { - $this->log(LogLevel::WARNING, $message, $context); - } - - /** - * Normal but significant events. - * - * @param string $message - * @param array $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 array $context - * - * @return void - */ - public function info($message, array $context = array()) - { - $this->log(LogLevel::INFO, $message, $context); - } - - /** - * Detailed debug information. - * - * @param string $message - * @param array $context - * - * @return void - */ - public function debug($message, array $context = array()) - { - $this->log(LogLevel::DEBUG, $message, $context); - } -} diff --git a/srcs/phpmyadmin/vendor/psr/log/Psr/Log/InvalidArgumentException.php b/srcs/phpmyadmin/vendor/psr/log/Psr/Log/InvalidArgumentException.php deleted file mode 100644 index 67f852d..0000000 --- a/srcs/phpmyadmin/vendor/psr/log/Psr/Log/InvalidArgumentException.php +++ /dev/null @@ -1,7 +0,0 @@ -logger = $logger; - } -} diff --git a/srcs/phpmyadmin/vendor/psr/log/Psr/Log/LoggerInterface.php b/srcs/phpmyadmin/vendor/psr/log/Psr/Log/LoggerInterface.php deleted file mode 100644 index e695046..0000000 --- a/srcs/phpmyadmin/vendor/psr/log/Psr/Log/LoggerInterface.php +++ /dev/null @@ -1,125 +0,0 @@ -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 array $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 array $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 array $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 array $context - * - * @return void - */ - public function warning($message, array $context = array()) - { - $this->log(LogLevel::WARNING, $message, $context); - } - - /** - * Normal but significant events. - * - * @param string $message - * @param array $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 array $context - * - * @return void - */ - public function info($message, array $context = array()) - { - $this->log(LogLevel::INFO, $message, $context); - } - - /** - * Detailed debug information. - * - * @param string $message - * @param array $context - * - * @return void - */ - public function debug($message, array $context = array()) - { - $this->log(LogLevel::DEBUG, $message, $context); - } - - /** - * Logs with an arbitrary level. - * - * @param mixed $level - * @param string $message - * @param array $context - * - * @return void - * - * @throws \Psr\Log\InvalidArgumentException - */ - abstract public function log($level, $message, array $context = array()); -} diff --git a/srcs/phpmyadmin/vendor/psr/log/Psr/Log/NullLogger.php b/srcs/phpmyadmin/vendor/psr/log/Psr/Log/NullLogger.php deleted file mode 100644 index c8f7293..0000000 --- a/srcs/phpmyadmin/vendor/psr/log/Psr/Log/NullLogger.php +++ /dev/null @@ -1,30 +0,0 @@ -logger) { }` - * blocks. - */ -class NullLogger extends AbstractLogger -{ - /** - * Logs with an arbitrary level. - * - * @param mixed $level - * @param string $message - * @param array $context - * - * @return void - * - * @throws \Psr\Log\InvalidArgumentException - */ - public function log($level, $message, array $context = array()) - { - // noop - } -} diff --git a/srcs/phpmyadmin/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php b/srcs/phpmyadmin/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php deleted file mode 100644 index 9ecb6c4..0000000 --- a/srcs/phpmyadmin/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php +++ /dev/null @@ -1,146 +0,0 @@ - ". - * - * 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()); - } -} - -class DummyTest -{ - public function __toString() - { - return 'DummyTest'; - } -} diff --git a/srcs/phpmyadmin/vendor/psr/log/Psr/Log/Test/TestLogger.php b/srcs/phpmyadmin/vendor/psr/log/Psr/Log/Test/TestLogger.php deleted file mode 100644 index 1be3230..0000000 --- a/srcs/phpmyadmin/vendor/psr/log/Psr/Log/Test/TestLogger.php +++ /dev/null @@ -1,147 +0,0 @@ - $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 = []; - } -} diff --git a/srcs/phpmyadmin/vendor/psr/log/README.md b/srcs/phpmyadmin/vendor/psr/log/README.md deleted file mode 100644 index a9f20c4..0000000 --- a/srcs/phpmyadmin/vendor/psr/log/README.md +++ /dev/null @@ -1,58 +0,0 @@ -PSR Log -======= - -This repository holds all interfaces/classes/traits related to -[PSR-3](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md). - -Note that this is not a logger of its own. It is merely an interface that -describes a logger. See the specification for more details. - -Installation ------------- - -```bash -composer require psr/log -``` - -Usage ------ - -If you need a logger, you can use the interface like this: - -```php -logger = $logger; - } - - public function doSomething() - { - if ($this->logger) { - $this->logger->info('Doing work'); - } - - try { - $this->doSomethingElse(); - } catch (Exception $exception) { - $this->logger->error('Oh no!', array('exception' => $exception)); - } - - // do something useful - } -} -``` - -You can then pick one of the implementations of the interface to get a logger. - -If you want to implement the interface, you can require this package and -implement `Psr\Log\LoggerInterface` in your code. Please read the -[specification text](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md) -for details. diff --git a/srcs/phpmyadmin/vendor/psr/log/composer.json b/srcs/phpmyadmin/vendor/psr/log/composer.json deleted file mode 100644 index 3f6d4ee..0000000 --- a/srcs/phpmyadmin/vendor/psr/log/composer.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "psr/log", - "description": "Common interface for logging libraries", - "keywords": ["psr", "psr-3", "log"], - "homepage": "https://github.com/php-fig/log", - "license": "MIT", - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "require": { - "php": ">=5.3.0" - }, - "autoload": { - "psr-4": { - "Psr\\Log\\": "Psr/Log/" - } - }, - "extra": { - "branch-alias": { - "dev-master": "1.1.x-dev" - } - } -} diff --git a/srcs/phpmyadmin/vendor/samyoul/u2f-php-server/LICENCE.md b/srcs/phpmyadmin/vendor/samyoul/u2f-php-server/LICENCE.md deleted file mode 100644 index 8199846..0000000 --- a/srcs/phpmyadmin/vendor/samyoul/u2f-php-server/LICENCE.md +++ /dev/null @@ -1,25 +0,0 @@ -BSD 2-Clause License - -Copyright (c) 2016, Samyoul -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/srcs/phpmyadmin/vendor/samyoul/u2f-php-server/README.md b/srcs/phpmyadmin/vendor/samyoul/u2f-php-server/README.md deleted file mode 100644 index 2f17a1f..0000000 --- a/srcs/phpmyadmin/vendor/samyoul/u2f-php-server/README.md +++ /dev/null @@ -1,473 +0,0 @@ -# U2F-php-server - -[![Latest Stable Version](https://img.shields.io/packagist/v/samyoul/u2f-php-server.svg?style=flat-square)](https://packagist.org/packages/samyoul/u2f-php-server) -[![License](https://img.shields.io/badge/license-BSD_2_Clause-brightgreen.svg?style=flat-square)](LICENCE.md) - -Server-side handling of FIDO U2F registration and authentication for PHP. - -Securing your online accounts and doing your bit to protect your data is extremely important and increasingly more so as hackers get more sophisticated. -FIDO's U2F enables you to add a simple unobtrusive method of 2nd factor authentication, allowing users of your service and/or application to link a hardware key to their account. - -## The Family of U2F php Libraries - -**Base Library** - -https://github.com/Samyoul/U2F-php-server - -**Fido Test Suite (UTD)** - -https://github.com/Samyoul/U2F-php-UTD - -**Frameworks** - -*Laravel* https://github.com/Samyoul/U2F-Laravel-server - -*Yii* https://github.com/Samyoul/U2F-Yii-server - -*CodeIgniter* https://github.com/Samyoul/U2F-CodeIgniter-server - - -## Contents - -1. [Installation](#installation) -2. [Requirements](#requirements) - 1. [OpenSSL](#openssl) - 1. [Clientside Magic](#client-side-the-magic-javascript-bit-of-talking-with-a-usb-device) - 1. [HTTPS and SSL](#https-and-ssl) -3. [Terminology](#terminology) -4. [Recommended Datastore Structure](#recommended-datastore-structure) -5. [Process Workflow](#process-workflow) - 1. [Registration Process Flow](#registration-process-flow) - 1. [Authentication Process Flow](#authentication-process-flow) -6. [Example Code](#example-code) - 1. [Compatibility Check](#compatibility-code) - 1. [Registration Code](#registration-code) - 1. [Authentication Code](#authentication-code) -7. [Frameworks](#frameworks) - 1. [Laravel](#laravel-framework) - 1. [Yii](#yii-framework) - 1. [CodeIgniter](#codeigniter-framework) -8. [Licence](#licence) -9. [Credits](#credits) - -## Installation - -`composer require samyoul/u2f-php-server` - -## Requirements - -A few **things you need** to know before working with this: - -1. [**_OpenSSL_**](#openssl) You need at least OpenSSL 1.0.0 or higher. -2. [**_Client-side Handling_**](#client-side) You need to be able to communicate with a some kind of device. -3. [**_A HTTPS URL_**](#https-and-ssl) This is very important, without HTTPS U2F simply will not work. -4. [**_A Datastore_**](#recommended-datastore-structure) You need some kind of datastore for all your U2F registered users (although if you have a system with user authentication I'm presuming you've got this one sorted). - -### OpenSSL - -This repository requires OpenSSL 1.0.0 or higher. For further details on installing OpenSSL please refer to the php manual http://php.net/manual/en/openssl.installation.php . - -Also see [Compatibility Code](#compatibility-code), to check if you have the correct version of OpenSSL installed, and are unsure how else to check. - -### Client-side (The magic JavaScript Bit of talking with a USB device) - -My presumption is that if you are looking to add U2F authentication to a php system, then you'll probably are also looking for some client-side handling. You've got a U2F enabled USB device and you want to get the USB device speaking with the browser and then with your server running php. - -1. Google already have this bit sorted : https://github.com/google/u2f-ref-code/blob/master/u2f-gae-demo/war/js/u2f-api.js -2. [Mastahyeti](https://github.com/mastahyeti) has created a repo dedicated to Google's JavaScript Client-side API : https://github.com/mastahyeti/u2f-api - -### HTTPS and SSL - -For U2F to work your website/service must use a HTTPS URL. Without a HTTPS URL your code won't work, so get one for your localhost, get one for your production. https://letsencrypt.org/ -Basically encrypt everything. - - -## Terminology - -**_HID_** : _Human Interface Device_, like A USB Device [like these things](https://www.google.co.uk/search?q=fido+usb+key&safe=off&tbm=isch) - -## Recommended Datastore Structure - -You don't need to follow this structure exactly, but you will need to associate your Registration data with a user. You'll also need to store the key handle, public key and the certificate, counter isn't 100% essential but it makes your application more secure. - - -|Name|Type|Description| -|---|---|---| -|id|integer primary key|| -|user_id|integer|| -|key_handle|varchar(255)|| -|public_key|varchar(255)|| -|certificate|text|| -|counter|integer|| - -TODO the descriptions - -## Process Workflow - -### Registration Process Flow - -1. User navigates to a 2nd factor authentication page in your application. - -... TODO add the rest of the registration process flow ... - -### Authentication Process Flow - -1. User navigates to their login page as they usually would, submits username and password. -1. Server received POST request authentication data, normal username + password validation occurs -1. On successful authentication, the application checks 2nd factor authentication is required. We're going to presume it is, otherwise the user would just be logged in at this stage. -1. Application gets the user's registered signatures from the application datastore: `$registrations`. -1. Application gets its ID, usually the domain the application is accessible from: `$appId` -1. Application makes a `U2F::makeAuthentication($registrations, $appId)` call, the method returns an array of `SignRequest` objects: `$authenticationRequest`. -1. Application JSON encodes the array and passes the data to the view -1. When the browser loads the page the JavaScript fires the `u2f.sign(authenticationRequest, function(data){ // Callback logic })` function -1. The view will use JavaScript / Browser to poll the host machine's ports for a FIDO U2F device -1. Once the HID has been found the JavaScript / Browser will send the sign request with data. -1. The HID will prompt the user to authorise the sign request -1. On success the HID returns authentication data -1. The JavaScript receives the HID's returned data and passes it to the server -1. The application takes the returned data passes it to the `U2F::authenticate($authenticationRequest, $registrations, $authenticationResponse)` method -1. If the method returns a registration and doesn't throw an Exception, authentication is complete. -1. Set the user's session, inform the user of the success, and redirect them. - -## Example Code - -For a full working code example for this repository please see [the dedicated example repository](https://github.com/Samyoul/U2F-php-server-examples) - -You can also install it with the following: - -```bash -$ git clone https://github.com/Samyoul/U2F-php-server-examples.git -$ cd u2f-php-server-examples -$ composer install -``` - - -1. [Compatibility Code](#compatibility-code) -2. [Registration Code](#registration-code) - 1. [Step 1: Starting](#registration-step-1) - 1. [Step 2: Talking to the HID](#registration-step-2) - 1. [Step 3: Validation & Storage](#registration-step-3) -3. [Authentication Code]() - 1. [Step 1: Starting]() - 1. [Step 2: Talking to the HID]() - 1. [Step 3: Validation]() - ---- - -### Compatibility Code - -You'll only ever need to use this method call once per installation and only in the context of debugging if the class is giving you unexpected errors. This method call will check your OpenSSL version and ensure it is at least 1.0.0 . - -```php - - - U2F Key Registration - - -

U2F Registration

-

Please enter your FIDO U2F device into your computer's USB port. Then confirm registration on the device.

- -
-
- -
-
- - - - - -``` - -#### Registration Step 3: -**Validation and Key Storage** - -This is the last stage of registration. Validate the registration response data against the original request data. - -```php -storeRegistration($validatedRegistration); - - // Then let your user know what happened - $userMessage = "Success"; -} catch( Exception $e ) { - $userMessage = "We had an error: ". $e->getMessage(); -} - -//Fictitious view. -echo View::make('template/location/u2f-registration-result.html', compact('userMessage')); -``` - ---- - -### Authentication Code - -#### Authentication Step 1: -**Starting the authentication process:** - -We assume that user has successfully authenticated and has previously registered to use FIDO U2F. - -```php -U2FRegistrations(); - -// This can be anything, but usually easier if you choose your applications domain and top level domain. -$appId = "yourdomain.tld"; - -// Call the U2F makeAuthentication method, passing in the user's registration(s) and the app ID -$authenticationRequest = U2F::makeAuthentication($registrations, $appId); - -// Store the request for later -$_SESSION['authenticationRequest'] = $authenticationRequest; - -// now pass the data to a fictitious view. -echo View::make('template/location/u2f-authentication.html', compact("authenticationRequest")); -``` - -#### Authentication Step 2: -**Client-side, Talking To The USB** - -Non-AJAX client-side authentication of U2F key token. AJAX can of course be used in your application, but it is easier to demonstrate a linear process without AJAX and callbacks. - - -```html - - - U2F Key Authentication - - -

U2F Authentication

-

Please enter your FIDO U2F device into your computer's USB port. Then confirm authentication on the device.

- -
-
- -
-
- - - - - -``` - -#### Authentication Step 3: -**Validation** - -This is the last stage of authentication. Validate the authentication response data against the original request data. - -```php -U2FRegistrations(); - -try { - - // Validate the authentication response against the registration request. - // The output are the credentials you need to store for U2F authentication. - $validatedAuthentication = U2F::authenticate( - $_SESSION['authenticationRequest'], - $registrations, - json_decode($_POST['u2f_authentication_response']) - ); - - // Fictitious function representing the updating of the U2F token count integer. - $user->updateU2FRegistrationCount($validatedAuthentication); - - // Then let your user know what happened - $userMessage = "Success"; -} catch( Exception $e ) { - $userMessage = "We had an error: ". $e->getMessage(); -} - -//Fictitious view. -echo View::make('template/location/u2f-authentication-result.html', compact('userMessage')); -``` - ---- - -Again, if you want to just download some example code to play with just install the full working code examples written for this repository please see [the dedicated example repository](https://github.com/Samyoul/U2F-php-server-examples) - -You can also install it with the following: - -```bash -$ git clone https://github.com/Samyoul/U2F-php-server-examples.git -$ cd u2f-php-server-examples -$ composer install -``` - -## Frameworks - -### Laravel Framework - -See the dedicated repository : https://github.com/Samyoul/U2F-Laravel-server - -Installation: - -`composer require u2f-laravel-server` - -### Yii Framework - -See the dedicated repository : https://github.com/Samyoul/U2F-Yii-server - -Installation: - -`composer require u2f-yii-server` - -### CodeIgniter Framework - -See the dedicated repository : https://github.com/Samyoul/U2F-CodeIgniter-server - -Installation: - -`composer require u2f-codeigniter-server` - -### Can't see yours? - -**Your favourite php framework not in this list? Get coding and submit a pull request and get your framework extension included here.** - -## Licence - -The repository is licensed under a BSD license. [Read details here](https://github.com/Samyoul/U2F-php-server/blob/master/LICENCE.md) - -## Credits - -This repo was originally based on the Yubico php-u2flib-server https://github.com/Yubico/php-u2flib-server diff --git a/srcs/phpmyadmin/vendor/samyoul/u2f-php-server/composer.json b/srcs/phpmyadmin/vendor/samyoul/u2f-php-server/composer.json deleted file mode 100644 index 8da2271..0000000 --- a/srcs/phpmyadmin/vendor/samyoul/u2f-php-server/composer.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "samyoul/u2f-php-server", - "description": "Server side handling class for FIDO U2F registration and authentication", - "license":"BSD-2-Clause", - "authors": [ - { - "name": "Samuel Hawksby-Robinson", - "email": "samuel@samyoul.com" - } - ], - "require": { - "ext-openssl":"*" - }, - "autoload": { - "psr-4": { "Samyoul\\U2F\\U2FServer\\": ["src/"] } - } -} diff --git a/srcs/phpmyadmin/vendor/samyoul/u2f-php-server/src/Registration.php b/srcs/phpmyadmin/vendor/samyoul/u2f-php-server/src/Registration.php deleted file mode 100644 index dbc1c9a..0000000 --- a/srcs/phpmyadmin/vendor/samyoul/u2f-php-server/src/Registration.php +++ /dev/null @@ -1,81 +0,0 @@ -keyHandle = $keyHandle; - } - - /** - * @param string $publicKey - */ - public function setPublicKey($publicKey) - { - $this->publicKey = $publicKey; - } - - /** - * @param string $certificate - */ - public function setCertificate($certificate) - { - $this->certificate = $certificate; - } - - /** - * @return string - */ - public function getKeyHandle() - { - return $this->keyHandle; - } - - /** - * @return string - */ - public function getPublicKey() - { - return $this->publicKey; - } - - /** - * @return string - */ - public function getCertificate() - { - return $this->certificate; - } - - /** - * @return string - */ - public function getCounter() - { - return $this->counter; - } -} \ No newline at end of file diff --git a/srcs/phpmyadmin/vendor/samyoul/u2f-php-server/src/RegistrationRequest.php b/srcs/phpmyadmin/vendor/samyoul/u2f-php-server/src/RegistrationRequest.php deleted file mode 100644 index 5204d4b..0000000 --- a/srcs/phpmyadmin/vendor/samyoul/u2f-php-server/src/RegistrationRequest.php +++ /dev/null @@ -1,56 +0,0 @@ -challenge = $challenge; - $this->appId = $appId; - } - - public function version() - { - return $this->version; - } - - public function challenge() - { - return $this->challenge; - } - - public function appId() - { - return $this->appId; - } - - public function jsonSerialize() - { - return [ - 'version' => $this->version, - 'challenge' => $this->challenge, - 'appId' => $this->appId, - ]; - } - -} \ No newline at end of file diff --git a/srcs/phpmyadmin/vendor/samyoul/u2f-php-server/src/SignRequest.php b/srcs/phpmyadmin/vendor/samyoul/u2f-php-server/src/SignRequest.php deleted file mode 100644 index 8a825aa..0000000 --- a/srcs/phpmyadmin/vendor/samyoul/u2f-php-server/src/SignRequest.php +++ /dev/null @@ -1,75 +0,0 @@ -challenge = $parameters['challenge']; - $this->keyHandle = $parameters['keyHandle']; - $this->appId = $parameters['appId']; - } - - /** - * @return string - */ - public function version() - { - return $this->version; - } - - /** - * @return string - */ - public function challenge() - { - return $this->challenge; - } - - /** - * @return string - */ - public function keyHandle() - { - return $this->keyHandle; - } - - /** - * @return string - */ - public function appId() - { - return $this->appId; - } - - public function jsonSerialize() - { - return [ - 'version' => $this->version, - 'challenge' => $this->challenge, - 'keyHandle' => $this->keyHandle, - 'appId' => $this->appId, - ]; - } - -} \ No newline at end of file diff --git a/srcs/phpmyadmin/vendor/samyoul/u2f-php-server/src/U2FException.php b/srcs/phpmyadmin/vendor/samyoul/u2f-php-server/src/U2FException.php deleted file mode 100644 index 03c5eaf..0000000 --- a/srcs/phpmyadmin/vendor/samyoul/u2f-php-server/src/U2FException.php +++ /dev/null @@ -1,60 +0,0 @@ - $request, - "signatures" => $signatures - ]; - } - - /** - * Called to verify and unpack a registration message. - * - * @param RegistrationRequest $request this is a reply to - * @param object $response response from a user - * @param string $attestDir - * @param bool $includeCert set to true if the attestation certificate should be - * included in the returned Registration object - * @return Registration - * @throws U2FException - */ - public static function register(RegistrationRequest $request, $response, $attestDir = null, $includeCert = true) - { - // Parameter Checks - if( !is_object( $request ) ) { - throw new \InvalidArgumentException('$request of register() method only accepts object.'); - } - - if( !is_object( $response ) ) { - throw new \InvalidArgumentException('$response of register() method only accepts object.'); - } - - if( property_exists( $response, 'errorCode') && $response->errorCode !== 0 ) { - throw new U2FException( - 'User-agent returned error. Error code: ' . $response->errorCode, - U2FException::BAD_UA_RETURNING - ); - } - - if( !is_bool( $includeCert ) ) { - throw new \InvalidArgumentException('$include_cert of register() method only accepts boolean.'); - } - - // Unpack the registration data coming from the client-side token - $rawRegistration = static::base64u_decode($response->registrationData); - $registrationData = array_values(unpack('C*', $rawRegistration)); - $clientData = static::base64u_decode($response->clientData); - $clientToken = json_decode($clientData); - - // Check Client's challenge matches the original request's challenge - if($clientToken->challenge !== $request->challenge()) { - throw new U2FException( - 'Registration challenge does not match', - U2FException::UNMATCHED_CHALLENGE - ); - } - - // Begin validating and building the registration - $registration = new Registration(); - $offset = 1; - $pubKey = substr($rawRegistration, $offset, static::PUBKEY_LEN); - $offset += static::PUBKEY_LEN; - - // Validate and set the public key - if(static::publicKeyToPem($pubKey) === null) { - throw new U2FException( - 'Decoding of public key failed', - U2FException::PUBKEY_DECODE - ); - } - $registration->setPublicKey(base64_encode($pubKey)); - - // Build and set the key handle. - $keyHandleLength = $registrationData[$offset++]; - $keyHandle = substr($rawRegistration, $offset, $keyHandleLength); - $offset += $keyHandleLength; - $registration->setKeyHandle(static::base64u_encode($keyHandle)); - - // Build certificate - // Set certificate length - // Note: length of certificate is stored in byte 3 and 4 (excluding the first 4 bytes) - $certLength = 4; - $certLength += ($registrationData[$offset + 2] << 8); - $certLength += $registrationData[$offset + 3]; - - // Write the certificate from the returning registration data - $rawCert = static::fixSignatureUnusedBits(substr($rawRegistration, $offset, $certLength)); - $offset += $certLength; - $pemCert = "-----BEGIN CERTIFICATE-----\r\n"; - $pemCert .= chunk_split(base64_encode($rawCert), 64); - $pemCert .= "-----END CERTIFICATE-----"; - if($includeCert) { - $registration->setCertificate( base64_encode($rawCert) ); - } - - // If we've set the attestDir, check the given certificate can be used. - if($attestDir) { - if(openssl_x509_checkpurpose($pemCert, -1, static::get_certs($attestDir)) !== true) { - throw new U2FException( - 'Attestation certificate can not be validated', - U2FException::ATTESTATION_VERIFICATION - ); - } - } - - // Attempt to extract public key from the certificate, if we can't something went wrong in making it. - if(!openssl_pkey_get_public($pemCert)) { - throw new U2FException( - 'Decoding of public key failed', - U2FException::PUBKEY_DECODE - ); - } - - // Generate signature from the remaining part of the raw registration data - $signature = substr($rawRegistration, $offset); - - // Build a verification string from the components we've made in this function - $dataToVerify = chr(0); - $dataToVerify .= hash('sha256', $request->appId(), true); - $dataToVerify .= hash('sha256', $clientData, true); - $dataToVerify .= $keyHandle; - $dataToVerify .= $pubKey; - - // Verify our data against the signature and the certificate, on success return the registration object - if(openssl_verify($dataToVerify, $signature, $pemCert, 'sha256') === 1) { - return $registration; - } else { - throw new U2FException( - 'Attestation signature does not match', - U2FException::ATTESTATION_SIGNATURE - ); - } - } - - /** - * Called to get an authentication request. - * - * @param array $registrations An array of the registrations to create authentication requests for. - * @param string $appId Application id for the running application, Basically the app's URL - * @return array An array of SignRequest - * @throws \InvalidArgumentException - */ - public static function makeAuthentication(array $registrations, $appId) - { - $signatures = []; - $challenge = static::createChallenge(); - foreach ($registrations as $reg) { - if( !is_object( $reg ) ) { - throw new \InvalidArgumentException('$registrations of makeAuthentication() method only accepts array of object.'); - } - - $signatures[] = new SignRequest([ - 'appId' => $appId, - 'keyHandle' => $reg->keyHandle, - 'challenge' => $challenge, - ]); - } - return $signatures; - } - - /** - * Called to verify an authentication response - * - * @param array $requests An array of outstanding authentication requests - * @param array $registrations An array of current registrations - * @param object $response A response from the authenticator - * @return \stdClass - * @throws U2FException - * - * The Registration object returned on success contains an updated counter - * that should be saved for future authentications. - * If the Error returned is ERR_COUNTER_TOO_LOW this is an indication of - * token cloning or similar and appropriate action should be taken. - */ - public static function authenticate(array $requests, array $registrations, $response) - { - // Parameter checks - if( !is_object( $response ) ) { - throw new \InvalidArgumentException('$response of authenticate() method only accepts object.'); - } - - if( property_exists( $response, 'errorCode') && $response->errorCode !== 0 ) { - throw new U2FException( - 'User-agent returned error. Error code: ' . $response->errorCode, - U2FException::BAD_UA_RETURNING - ); - } - - // Set default values to null, so we get fails by default - /** @var object|null $req */ - $req = null; - - /** @var object|null $reg */ - $reg = null; - - // Extract client response data - $clientData = static::base64u_decode($response->clientData); - $decodedClient = json_decode($clientData); - - // Check we have a match among the requests and the response - foreach ($requests as $req) { - if( !is_object( $req ) ) { - throw new \InvalidArgumentException('$requests of authenticate() method only accepts an array of objects.'); - } - - if($req->keyHandle() === $response->keyHandle && $req->challenge() === $decodedClient->challenge) { - break; - } - - $req = null; - } - if($req === null) { - throw new U2FException( - 'No matching request found', - U2FException::NO_MATCHING_REQUEST - ); - } - - // Check for a match for the response among a list of registrations - foreach ($registrations as $reg) { - if( !is_object( $reg ) ) { - throw new \InvalidArgumentException('$registrations of authenticate() method only accepts an array of objects.'); - } - - if($reg->keyHandle === $response->keyHandle) { - break; - } - $reg = null; - } - if($reg === null) { - throw new U2FException( - 'No matching registration found', - U2FException::NO_MATCHING_REGISTRATION - ); - } - - // On Success, check we have a valid public key - $pemKey = static::publicKeyToPem(static::base64u_decode($reg->publicKey)); - if($pemKey === null) { - throw new U2FException( - 'Decoding of public key failed', - U2FException::PUBKEY_DECODE - ); - } - - // Build signature and data from response - $signData = static::base64u_decode($response->signatureData); - $dataToVerify = hash('sha256', $req->appId(), true); - $dataToVerify .= substr($signData, 0, 5); - $dataToVerify .= hash('sha256', $clientData, true); - $signature = substr($signData, 5); - - // Verify the response data against the public key - if(openssl_verify($dataToVerify, $signature, $pemKey, 'sha256') === 1) { - $ctr = unpack("Nctr", substr($signData, 1, 4)); - $counter = $ctr['ctr']; - /* TODO: wrap-around should be handled somehow.. */ - if($counter > $reg->counter) { - $reg->counter = $counter; - return $reg; - } else { - throw new U2FException( - 'Counter too low.', - U2FException::COUNTER_TOO_LOW - ); - } - } else { - throw new U2FException( - 'Authentication failed', - U2FException::AUTHENTICATION_FAILURE - ); - } - } - - /** - * @param string $attestDir - * @return array - */ - private static function get_certs($attestDir) - { - $files = []; - $dir = $attestDir; - if($dir && $handle = opendir($dir)) { - while(false !== ($entry = readdir($handle))) { - if(is_file("$dir/$entry")) { - $files[] = "$dir/$entry"; - } - } - closedir($handle); - } - return $files; - } - - /** - * @param string $data - * @return string - */ - private static function base64u_encode($data) - { - return trim(strtr(base64_encode($data), '+/', '-_'), '='); - } - - /** - * @param string $data - * @return string - */ - private static function base64u_decode($data) - { - return base64_decode(strtr($data, '-_', '+/')); - } - - /** - * @param string $key - * @return null|string - */ - private static function publicKeyToPem($key) - { - if(strlen($key) !== static::PUBKEY_LEN || $key[0] !== "\x04") { - return null; - } - - /* - * Convert the public key to binary DER format first - * Using the ECC SubjectPublicKeyInfo OIDs from RFC 5480 - * - * SEQUENCE(2 elem) 30 59 - * SEQUENCE(2 elem) 30 13 - * OID1.2.840.10045.2.1 (id-ecPublicKey) 06 07 2a 86 48 ce 3d 02 01 - * OID1.2.840.10045.3.1.7 (secp256r1) 06 08 2a 86 48 ce 3d 03 01 07 - * BIT STRING(520 bit) 03 42 ..key.. - */ - $der = "\x30\x59\x30\x13\x06\x07\x2a\x86\x48\xce\x3d\x02\x01"; - $der .= "\x06\x08\x2a\x86\x48\xce\x3d\x03\x01\x07\x03\x42"; - $der .= "\0".$key; - - $pem = "-----BEGIN PUBLIC KEY-----\r\n"; - $pem .= chunk_split(base64_encode($der), 64); - $pem .= "-----END PUBLIC KEY-----"; - - return $pem; - } - - /** - * @return string - * @throws U2FException - */ - private static function createChallenge() - { - $challenge = openssl_random_pseudo_bytes(32, $crypto_strong ); - if( $crypto_strong !== true ) { - throw new U2FException( - 'Unable to obtain a good source of randomness', - U2FException::BAD_RANDOM - ); - } - - $challenge = static::base64u_encode( $challenge ); - - return $challenge; - } - - /** - * Fixes a certificate where the signature contains unused bits. - * - * @param string $cert - * @return mixed - */ - private static function fixSignatureUnusedBits($cert) - { - if(in_array(hash('sha256', $cert), static::$FIXCERTS)) { - $cert[strlen($cert) - 257] = "\0"; - } - return $cert; - } - -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache-contracts/CacheInterface.php b/srcs/phpmyadmin/vendor/symfony/cache-contracts/CacheInterface.php deleted file mode 100644 index 4b1686b..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache-contracts/CacheInterface.php +++ /dev/null @@ -1,57 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Contracts\Cache; - -use Psr\Cache\CacheItemInterface; -use Psr\Cache\InvalidArgumentException; - -/** - * Covers most simple to advanced caching needs. - * - * @author Nicolas Grekas - */ -interface CacheInterface -{ - /** - * Fetches a value from the pool or computes it if not found. - * - * On cache misses, a callback is called that should return the missing value. - * This callback is given a PSR-6 CacheItemInterface instance corresponding to the - * requested key, that could be used e.g. for expiration control. It could also - * be an ItemInterface instance when its additional features are needed. - * - * @param string $key The key of the item to retrieve from the cache - * @param callable|CallbackInterface $callback Should return the computed value for the given key/item - * @param float|null $beta A float that, as it grows, controls the likeliness of triggering - * early expiration. 0 disables it, INF forces immediate expiration. - * The default (or providing null) is implementation dependent but should - * typically be 1.0, which should provide optimal stampede protection. - * See https://en.wikipedia.org/wiki/Cache_stampede#Probabilistic_early_expiration - * @param array &$metadata The metadata of the cached item {@see ItemInterface::getMetadata()} - * - * @return mixed The value corresponding to the provided key - * - * @throws InvalidArgumentException When $key is not valid or when $beta is negative - */ - public function get(string $key, callable $callback, float $beta = null, array &$metadata = null); - - /** - * Removes an item from the pool. - * - * @param string $key The key to delete - * - * @throws InvalidArgumentException When $key is not valid - * - * @return bool True if the item was successfully removed, false if there was any error - */ - public function delete(string $key): bool; -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache-contracts/CacheTrait.php b/srcs/phpmyadmin/vendor/symfony/cache-contracts/CacheTrait.php deleted file mode 100644 index 355ea29..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache-contracts/CacheTrait.php +++ /dev/null @@ -1,76 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Contracts\Cache; - -use Psr\Cache\CacheItemPoolInterface; -use Psr\Cache\InvalidArgumentException; -use Psr\Log\LoggerInterface; - -/** - * An implementation of CacheInterface for PSR-6 CacheItemPoolInterface classes. - * - * @author Nicolas Grekas - */ -trait CacheTrait -{ - /** - * {@inheritdoc} - */ - public function get(string $key, callable $callback, float $beta = null, array &$metadata = null) - { - return $this->doGet($this, $key, $callback, $beta, $metadata); - } - - /** - * {@inheritdoc} - */ - public function delete(string $key): bool - { - return $this->deleteItem($key); - } - - private function doGet(CacheItemPoolInterface $pool, string $key, callable $callback, ?float $beta, array &$metadata = null, LoggerInterface $logger = null) - { - if (0 > $beta = $beta ?? 1.0) { - throw new class(sprintf('Argument "$beta" provided to "%s::get()" must be a positive number, %f given.', \get_class($this), $beta)) extends \InvalidArgumentException implements InvalidArgumentException { - }; - } - - $item = $pool->getItem($key); - $recompute = !$item->isHit() || INF === $beta; - $metadata = $item instanceof ItemInterface ? $item->getMetadata() : []; - - if (!$recompute && $metadata) { - $expiry = $metadata[ItemInterface::METADATA_EXPIRY] ?? false; - $ctime = $metadata[ItemInterface::METADATA_CTIME] ?? false; - - if ($recompute = $ctime && $expiry && $expiry <= ($now = microtime(true)) - $ctime / 1000 * $beta * log(random_int(1, PHP_INT_MAX) / PHP_INT_MAX)) { - // force applying defaultLifetime to expiry - $item->expiresAt(null); - $logger && $logger->info('Item "{key}" elected for early recomputation {delta}s before its expiration', [ - 'key' => $key, - 'delta' => sprintf('%.1f', $expiry - $now), - ]); - } - } - - if ($recompute) { - $save = true; - $item->set($callback($item, $save)); - if ($save) { - $pool->save($item); - } - } - - return $item->get(); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache-contracts/CallbackInterface.php b/srcs/phpmyadmin/vendor/symfony/cache-contracts/CallbackInterface.php deleted file mode 100644 index 7dae2aa..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache-contracts/CallbackInterface.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Contracts\Cache; - -use Psr\Cache\CacheItemInterface; - -/** - * Computes and returns the cached value of an item. - * - * @author Nicolas Grekas - */ -interface CallbackInterface -{ - /** - * @param CacheItemInterface|ItemInterface $item The item to compute the value for - * @param bool &$save Should be set to false when the value should not be saved in the pool - * - * @return mixed The computed value for the passed item - */ - public function __invoke(CacheItemInterface $item, bool &$save); -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache-contracts/ItemInterface.php b/srcs/phpmyadmin/vendor/symfony/cache-contracts/ItemInterface.php deleted file mode 100644 index cbd7226..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache-contracts/ItemInterface.php +++ /dev/null @@ -1,65 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Contracts\Cache; - -use Psr\Cache\CacheException; -use Psr\Cache\CacheItemInterface; -use Psr\Cache\InvalidArgumentException; - -/** - * Augments PSR-6's CacheItemInterface with support for tags and metadata. - * - * @author Nicolas Grekas - */ -interface ItemInterface extends CacheItemInterface -{ - /** - * References the Unix timestamp stating when the item will expire. - */ - const METADATA_EXPIRY = 'expiry'; - - /** - * References the time the item took to be created, in milliseconds. - */ - const METADATA_CTIME = 'ctime'; - - /** - * References the list of tags that were assigned to the item, as string[]. - */ - const METADATA_TAGS = 'tags'; - - /** - * Reserved characters that cannot be used in a key or tag. - */ - const RESERVED_CHARACTERS = '{}()/\@:'; - - /** - * Adds a tag to a cache item. - * - * Tags are strings that follow the same validation rules as keys. - * - * @param string|string[] $tags A tag or array of tags - * - * @return $this - * - * @throws InvalidArgumentException When $tag is not valid - * @throws CacheException When the item comes from a pool that is not tag-aware - */ - public function tag($tags): self; - - /** - * Returns a list of metadata info that were saved alongside with the cached value. - * - * See ItemInterface::METADATA_* consts for keys potentially found in the returned array. - */ - public function getMetadata(): array; -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache-contracts/LICENSE b/srcs/phpmyadmin/vendor/symfony/cache-contracts/LICENSE deleted file mode 100644 index 3f853aa..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache-contracts/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2018-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. diff --git a/srcs/phpmyadmin/vendor/symfony/cache-contracts/README.md b/srcs/phpmyadmin/vendor/symfony/cache-contracts/README.md deleted file mode 100644 index 58c589e..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache-contracts/README.md +++ /dev/null @@ -1,9 +0,0 @@ -Symfony Cache Contracts -======================= - -A set of abstractions extracted out of the Symfony components. - -Can be used to build on semantics that the Symfony components proved useful - and -that already have battle tested implementations. - -See https://github.com/symfony/contracts/blob/master/README.md for more information. diff --git a/srcs/phpmyadmin/vendor/symfony/cache-contracts/TagAwareCacheInterface.php b/srcs/phpmyadmin/vendor/symfony/cache-contracts/TagAwareCacheInterface.php deleted file mode 100644 index 7c4cf11..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache-contracts/TagAwareCacheInterface.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Contracts\Cache; - -use Psr\Cache\InvalidArgumentException; - -/** - * Allows invalidating cached items using tags. - * - * @author Nicolas Grekas - */ -interface TagAwareCacheInterface extends CacheInterface -{ - /** - * Invalidates cached items using tags. - * - * When implemented on a PSR-6 pool, invalidation should not apply - * to deferred items. Instead, they should be committed as usual. - * This allows replacing old tagged values by new ones without - * race conditions. - * - * @param string[] $tags An array of tags to invalidate - * - * @return bool True on success - * - * @throws InvalidArgumentException When $tags is not valid - */ - public function invalidateTags(array $tags); -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache-contracts/composer.json b/srcs/phpmyadmin/vendor/symfony/cache-contracts/composer.json deleted file mode 100644 index 4e0bd1a..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache-contracts/composer.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "symfony/cache-contracts", - "type": "library", - "description": "Generic abstractions related to caching", - "keywords": ["abstractions", "contracts", "decoupling", "interfaces", "interoperability", "standards"], - "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.3", - "psr/cache": "^1.0" - }, - "suggest": { - "symfony/cache-implementation": "" - }, - "autoload": { - "psr-4": { "Symfony\\Contracts\\Cache\\": "" } - }, - "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/AbstractAdapter.php b/srcs/phpmyadmin/vendor/symfony/cache/Adapter/AbstractAdapter.php deleted file mode 100644 index 98b42a4..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/AbstractAdapter.php +++ /dev/null @@ -1,203 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Psr\Log\LoggerAwareInterface; -use Psr\Log\LoggerInterface; -use Psr\Log\NullLogger; -use Symfony\Component\Cache\CacheItem; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\ResettableInterface; -use Symfony\Component\Cache\Traits\AbstractAdapterTrait; -use Symfony\Component\Cache\Traits\ContractsTrait; -use Symfony\Contracts\Cache\CacheInterface; - -/** - * @author Nicolas Grekas - */ -abstract class AbstractAdapter implements AdapterInterface, CacheInterface, LoggerAwareInterface, ResettableInterface -{ - /** - * @internal - */ - protected const NS_SEPARATOR = ':'; - - use AbstractAdapterTrait; - use ContractsTrait; - - private static $apcuSupported; - private static $phpFilesSupported; - - protected function __construct(string $namespace = '', int $defaultLifetime = 0) - { - $this->namespace = '' === $namespace ? '' : CacheItem::validateKey($namespace).static::NS_SEPARATOR; - if (null !== $this->maxIdLength && \strlen($namespace) > $this->maxIdLength - 24) { - throw new InvalidArgumentException(sprintf('Namespace must be %d chars max, %d given ("%s")', $this->maxIdLength - 24, \strlen($namespace), $namespace)); - } - $this->createCacheItem = \Closure::bind( - static function ($key, $value, $isHit) use ($defaultLifetime) { - $item = new CacheItem(); - $item->key = $key; - $item->value = $v = $value; - $item->isHit = $isHit; - $item->defaultLifetime = $defaultLifetime; - // Detect wrapped values that encode for their expiry and creation duration - // For compactness, these values are packed in the key of an array using - // magic numbers in the form 9D-..-..-..-..-00-..-..-..-5F - if (\is_array($v) && 1 === \count($v) && 10 === \strlen($k = key($v)) && "\x9D" === $k[0] && "\0" === $k[5] && "\x5F" === $k[9]) { - $item->value = $v[$k]; - $v = unpack('Ve/Nc', substr($k, 1, -1)); - $item->metadata[CacheItem::METADATA_EXPIRY] = $v['e'] + CacheItem::METADATA_EXPIRY_OFFSET; - $item->metadata[CacheItem::METADATA_CTIME] = $v['c']; - } - - return $item; - }, - null, - CacheItem::class - ); - $getId = \Closure::fromCallable([$this, 'getId']); - $this->mergeByLifetime = \Closure::bind( - static function ($deferred, $namespace, &$expiredIds) use ($getId) { - $byLifetime = []; - $now = microtime(true); - $expiredIds = []; - - foreach ($deferred as $key => $item) { - $key = (string) $key; - if (null === $item->expiry) { - $ttl = 0 < $item->defaultLifetime ? $item->defaultLifetime : 0; - } elseif (0 >= $ttl = (int) (0.1 + $item->expiry - $now)) { - $expiredIds[] = $getId($key); - continue; - } - if (isset(($metadata = $item->newMetadata)[CacheItem::METADATA_TAGS])) { - unset($metadata[CacheItem::METADATA_TAGS]); - } - // For compactness, expiry and creation duration are packed in the key of an array, using magic numbers as separators - $byLifetime[$ttl][$getId($key)] = $metadata ? ["\x9D".pack('VN', (int) (0.1 + $metadata[self::METADATA_EXPIRY] - self::METADATA_EXPIRY_OFFSET), $metadata[self::METADATA_CTIME])."\x5F" => $item->value] : $item->value; - } - - return $byLifetime; - }, - null, - CacheItem::class - ); - } - - /** - * Returns the best possible adapter that your runtime supports. - * - * Using ApcuAdapter makes system caches compatible with read-only filesystems. - * - * @param string $namespace - * @param int $defaultLifetime - * @param string $version - * @param string $directory - * - * @return AdapterInterface - */ - public static function createSystemCache($namespace, $defaultLifetime, $version, $directory, LoggerInterface $logger = null) - { - $opcache = new PhpFilesAdapter($namespace, $defaultLifetime, $directory, true); - if (null !== $logger) { - $opcache->setLogger($logger); - } - - if (!self::$apcuSupported = self::$apcuSupported ?? ApcuAdapter::isSupported()) { - return $opcache; - } - - $apcu = new ApcuAdapter($namespace, (int) $defaultLifetime / 5, $version); - if ('cli' === \PHP_SAPI && !filter_var(ini_get('apc.enable_cli'), FILTER_VALIDATE_BOOLEAN)) { - $apcu->setLogger(new NullLogger()); - } elseif (null !== $logger) { - $apcu->setLogger($logger); - } - - return new ChainAdapter([$apcu, $opcache]); - } - - public static function createConnection($dsn, array $options = []) - { - if (!\is_string($dsn)) { - throw new InvalidArgumentException(sprintf('The %s() method expect argument #1 to be string, %s given.', __METHOD__, \gettype($dsn))); - } - if (0 === strpos($dsn, 'redis:') || 0 === strpos($dsn, 'rediss:')) { - return RedisAdapter::createConnection($dsn, $options); - } - if (0 === strpos($dsn, 'memcached:')) { - return MemcachedAdapter::createConnection($dsn, $options); - } - - throw new InvalidArgumentException(sprintf('Unsupported DSN: %s.', $dsn)); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function commit() - { - $ok = true; - $byLifetime = $this->mergeByLifetime; - $byLifetime = $byLifetime($this->deferred, $this->namespace, $expiredIds); - $retry = $this->deferred = []; - - if ($expiredIds) { - $this->doDelete($expiredIds); - } - foreach ($byLifetime as $lifetime => $values) { - try { - $e = $this->doSave($values, $lifetime); - } catch (\Exception $e) { - } - if (true === $e || [] === $e) { - continue; - } - if (\is_array($e) || 1 === \count($values)) { - foreach (\is_array($e) ? $e : array_keys($values) as $id) { - $ok = false; - $v = $values[$id]; - $type = \is_object($v) ? \get_class($v) : \gettype($v); - $message = sprintf('Failed to save key "{key}" of type %s%s', $type, $e instanceof \Exception ? ': '.$e->getMessage() : '.'); - CacheItem::log($this->logger, $message, ['key' => substr($id, \strlen($this->namespace)), 'exception' => $e instanceof \Exception ? $e : null]); - } - } else { - foreach ($values as $id => $v) { - $retry[$lifetime][] = $id; - } - } - } - - // When bulk-save failed, retry each item individually - foreach ($retry as $lifetime => $ids) { - foreach ($ids as $id) { - try { - $v = $byLifetime[$lifetime][$id]; - $e = $this->doSave([$id => $v], $lifetime); - } catch (\Exception $e) { - } - if (true === $e || [] === $e) { - continue; - } - $ok = false; - $type = \is_object($v) ? \get_class($v) : \gettype($v); - $message = sprintf('Failed to save key "{key}" of type %s%s', $type, $e instanceof \Exception ? ': '.$e->getMessage() : '.'); - CacheItem::log($this->logger, $message, ['key' => substr($id, \strlen($this->namespace)), 'exception' => $e instanceof \Exception ? $e : null]); - } - } - - return $ok; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/AbstractTagAwareAdapter.php b/srcs/phpmyadmin/vendor/symfony/cache/Adapter/AbstractTagAwareAdapter.php deleted file mode 100644 index 10aca3b..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/AbstractTagAwareAdapter.php +++ /dev/null @@ -1,323 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Psr\Log\LoggerAwareInterface; -use Symfony\Component\Cache\CacheItem; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\ResettableInterface; -use Symfony\Component\Cache\Traits\AbstractAdapterTrait; -use Symfony\Component\Cache\Traits\ContractsTrait; -use Symfony\Contracts\Cache\TagAwareCacheInterface; - -/** - * Abstract for native TagAware adapters. - * - * To keep info on tags, the tags are both serialized as part of cache value and provided as tag ids - * to Adapters on operations when needed for storage to doSave(), doDelete() & doInvalidate(). - * - * @author Nicolas Grekas - * @author André Rømcke - * - * @internal - */ -abstract class AbstractTagAwareAdapter implements TagAwareAdapterInterface, TagAwareCacheInterface, LoggerAwareInterface, ResettableInterface -{ - use AbstractAdapterTrait; - use ContractsTrait; - - private const TAGS_PREFIX = "\0tags\0"; - - protected function __construct(string $namespace = '', int $defaultLifetime = 0) - { - $this->namespace = '' === $namespace ? '' : CacheItem::validateKey($namespace).':'; - if (null !== $this->maxIdLength && \strlen($namespace) > $this->maxIdLength - 24) { - throw new InvalidArgumentException(sprintf('Namespace must be %d chars max, %d given ("%s")', $this->maxIdLength - 24, \strlen($namespace), $namespace)); - } - $this->createCacheItem = \Closure::bind( - static function ($key, $value, $isHit) use ($defaultLifetime) { - $item = new CacheItem(); - $item->key = $key; - $item->defaultLifetime = $defaultLifetime; - $item->isTaggable = true; - // If structure does not match what we expect return item as is (no value and not a hit) - if (!\is_array($value) || !\array_key_exists('value', $value)) { - return $item; - } - $item->isHit = $isHit; - // Extract value, tags and meta data from the cache value - $item->value = $value['value']; - $item->metadata[CacheItem::METADATA_TAGS] = $value['tags'] ?? []; - if (isset($value['meta'])) { - // For compactness these values are packed, & expiry is offset to reduce size - $v = unpack('Ve/Nc', $value['meta']); - $item->metadata[CacheItem::METADATA_EXPIRY] = $v['e'] + CacheItem::METADATA_EXPIRY_OFFSET; - $item->metadata[CacheItem::METADATA_CTIME] = $v['c']; - } - - return $item; - }, - null, - CacheItem::class - ); - $getId = \Closure::fromCallable([$this, 'getId']); - $tagPrefix = self::TAGS_PREFIX; - $this->mergeByLifetime = \Closure::bind( - static function ($deferred, &$expiredIds) use ($getId, $tagPrefix) { - $byLifetime = []; - $now = microtime(true); - $expiredIds = []; - - foreach ($deferred as $key => $item) { - $key = (string) $key; - if (null === $item->expiry) { - $ttl = 0 < $item->defaultLifetime ? $item->defaultLifetime : 0; - } elseif (0 >= $ttl = (int) (0.1 + $item->expiry - $now)) { - $expiredIds[] = $getId($key); - continue; - } - // Store Value and Tags on the cache value - if (isset(($metadata = $item->newMetadata)[CacheItem::METADATA_TAGS])) { - $value = ['value' => $item->value, 'tags' => $metadata[CacheItem::METADATA_TAGS]]; - unset($metadata[CacheItem::METADATA_TAGS]); - } else { - $value = ['value' => $item->value, 'tags' => []]; - } - - if ($metadata) { - // For compactness, expiry and creation duration are packed, using magic numbers as separators - $value['meta'] = pack('VN', (int) (0.1 + $metadata[self::METADATA_EXPIRY] - self::METADATA_EXPIRY_OFFSET), $metadata[self::METADATA_CTIME]); - } - - // Extract tag changes, these should be removed from values in doSave() - $value['tag-operations'] = ['add' => [], 'remove' => []]; - $oldTags = $item->metadata[CacheItem::METADATA_TAGS] ?? []; - foreach (array_diff($value['tags'], $oldTags) as $addedTag) { - $value['tag-operations']['add'][] = $getId($tagPrefix.$addedTag); - } - foreach (array_diff($oldTags, $value['tags']) as $removedTag) { - $value['tag-operations']['remove'][] = $getId($tagPrefix.$removedTag); - } - - $byLifetime[$ttl][$getId($key)] = $value; - } - - return $byLifetime; - }, - null, - CacheItem::class - ); - } - - /** - * Persists several cache items immediately. - * - * @param array $values The values to cache, indexed by their cache identifier - * @param int $lifetime The lifetime of the cached values, 0 for persisting until manual cleaning - * @param array[] $addTagData Hash where key is tag id, and array value is list of cache id's to add to tag - * @param array[] $removeTagData Hash where key is tag id, and array value is list of cache id's to remove to tag - * - * @return array The identifiers that failed to be cached or a boolean stating if caching succeeded or not - */ - abstract protected function doSave(array $values, ?int $lifetime, array $addTagData = [], array $removeTagData = []): array; - - /** - * Removes multiple items from the pool and their corresponding tags. - * - * @param array $ids An array of identifiers that should be removed from the pool - * - * @return bool True if the items were successfully removed, false otherwise - */ - abstract protected function doDelete(array $ids); - - /** - * Removes relations between tags and deleted items. - * - * @param array $tagData Array of tag => key identifiers that should be removed from the pool - */ - abstract protected function doDeleteTagRelations(array $tagData): bool; - - /** - * Invalidates cached items using tags. - * - * @param string[] $tagIds An array of tags to invalidate, key is tag and value is tag id - * - * @return bool True on success - */ - abstract protected function doInvalidate(array $tagIds): bool; - - /** - * Delete items and yields the tags they were bound to. - */ - protected function doDeleteYieldTags(array $ids): iterable - { - foreach ($this->doFetch($ids) as $id => $value) { - yield $id => \is_array($value) && \is_array($value['tags'] ?? null) ? $value['tags'] : []; - } - - $this->doDelete($ids); - } - - /** - * {@inheritdoc} - */ - public function commit(): bool - { - $ok = true; - $byLifetime = $this->mergeByLifetime; - $byLifetime = $byLifetime($this->deferred, $expiredIds); - $retry = $this->deferred = []; - - if ($expiredIds) { - // Tags are not cleaned up in this case, however that is done on invalidateTags(). - $this->doDelete($expiredIds); - } - foreach ($byLifetime as $lifetime => $values) { - try { - $values = $this->extractTagData($values, $addTagData, $removeTagData); - $e = $this->doSave($values, $lifetime, $addTagData, $removeTagData); - } catch (\Exception $e) { - } - if (true === $e || [] === $e) { - continue; - } - if (\is_array($e) || 1 === \count($values)) { - foreach (\is_array($e) ? $e : array_keys($values) as $id) { - $ok = false; - $v = $values[$id]; - $type = \is_object($v) ? \get_class($v) : \gettype($v); - $message = sprintf('Failed to save key "{key}" of type %s%s', $type, $e instanceof \Exception ? ': '.$e->getMessage() : '.'); - CacheItem::log($this->logger, $message, ['key' => substr($id, \strlen($this->namespace)), 'exception' => $e instanceof \Exception ? $e : null]); - } - } else { - foreach ($values as $id => $v) { - $retry[$lifetime][] = $id; - } - } - } - - // When bulk-save failed, retry each item individually - foreach ($retry as $lifetime => $ids) { - foreach ($ids as $id) { - try { - $v = $byLifetime[$lifetime][$id]; - $values = $this->extractTagData([$id => $v], $addTagData, $removeTagData); - $e = $this->doSave($values, $lifetime, $addTagData, $removeTagData); - } catch (\Exception $e) { - } - if (true === $e || [] === $e) { - continue; - } - $ok = false; - $type = \is_object($v) ? \get_class($v) : \gettype($v); - $message = sprintf('Failed to save key "{key}" of type %s%s', $type, $e instanceof \Exception ? ': '.$e->getMessage() : '.'); - CacheItem::log($this->logger, $message, ['key' => substr($id, \strlen($this->namespace)), 'exception' => $e instanceof \Exception ? $e : null]); - } - } - - return $ok; - } - - /** - * {@inheritdoc} - */ - public function deleteItems(array $keys): bool - { - if (!$keys) { - return true; - } - - $ok = true; - $ids = []; - $tagData = []; - - foreach ($keys as $key) { - $ids[$key] = $this->getId($key); - unset($this->deferred[$key]); - } - - try { - foreach ($this->doDeleteYieldTags(array_values($ids)) as $id => $tags) { - foreach ($tags as $tag) { - $tagData[$this->getId(self::TAGS_PREFIX.$tag)][] = $id; - } - } - } catch (\Exception $e) { - $ok = false; - } - - try { - if ((!$tagData || $this->doDeleteTagRelations($tagData)) && $ok) { - return true; - } - } catch (\Exception $e) { - } - - // When bulk-delete failed, retry each item individually - foreach ($ids as $key => $id) { - try { - $e = null; - if ($this->doDelete([$id])) { - continue; - } - } catch (\Exception $e) { - } - $message = 'Failed to delete key "{key}"'.($e instanceof \Exception ? ': '.$e->getMessage() : '.'); - CacheItem::log($this->logger, $message, ['key' => $key, 'exception' => $e]); - $ok = false; - } - - return $ok; - } - - /** - * {@inheritdoc} - */ - public function invalidateTags(array $tags) - { - if (empty($tags)) { - return false; - } - - $tagIds = []; - foreach (array_unique($tags) as $tag) { - $tagIds[] = $this->getId(self::TAGS_PREFIX.$tag); - } - - if ($this->doInvalidate($tagIds)) { - return true; - } - - return false; - } - - /** - * Extracts tags operation data from $values set in mergeByLifetime, and returns values without it. - */ - private function extractTagData(array $values, ?array &$addTagData, ?array &$removeTagData): array - { - $addTagData = $removeTagData = []; - foreach ($values as $id => $value) { - foreach ($value['tag-operations']['add'] as $tag => $tagId) { - $addTagData[$tagId][] = $id; - } - - foreach ($value['tag-operations']['remove'] as $tag => $tagId) { - $removeTagData[$tagId][] = $id; - } - - unset($values[$id]['tag-operations']); - } - - return $values; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/AdapterInterface.php b/srcs/phpmyadmin/vendor/symfony/cache/Adapter/AdapterInterface.php deleted file mode 100644 index c40ae42..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/AdapterInterface.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Psr\Cache\CacheItemPoolInterface; -use Symfony\Component\Cache\CacheItem; - -/** - * Interface for adapters managing instances of Symfony's CacheItem. - * - * @author Kévin Dunglas - */ -interface AdapterInterface extends CacheItemPoolInterface -{ - /** - * {@inheritdoc} - * - * @return CacheItem - */ - public function getItem($key); - - /** - * {@inheritdoc} - * - * @return \Traversable|CacheItem[] - */ - public function getItems(array $keys = []); - - /** - * {@inheritdoc} - * - * @param string $prefix - * - * @return bool - */ - public function clear(/*string $prefix = ''*/); -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/ApcuAdapter.php b/srcs/phpmyadmin/vendor/symfony/cache/Adapter/ApcuAdapter.php deleted file mode 100644 index 7db3956..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/ApcuAdapter.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Symfony\Component\Cache\Traits\ApcuTrait; - -class ApcuAdapter extends AbstractAdapter -{ - use ApcuTrait; - - /** - * @throws CacheException if APCu is not enabled - */ - public function __construct(string $namespace = '', int $defaultLifetime = 0, string $version = null) - { - $this->init($namespace, $defaultLifetime, $version); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/ArrayAdapter.php b/srcs/phpmyadmin/vendor/symfony/cache/Adapter/ArrayAdapter.php deleted file mode 100644 index d93dcbd..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/ArrayAdapter.php +++ /dev/null @@ -1,171 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Psr\Cache\CacheItemInterface; -use Psr\Log\LoggerAwareInterface; -use Symfony\Component\Cache\CacheItem; -use Symfony\Component\Cache\ResettableInterface; -use Symfony\Component\Cache\Traits\ArrayTrait; -use Symfony\Contracts\Cache\CacheInterface; - -/** - * @author Nicolas Grekas - */ -class ArrayAdapter implements AdapterInterface, CacheInterface, LoggerAwareInterface, ResettableInterface -{ - use ArrayTrait; - - private $createCacheItem; - - /** - * @param bool $storeSerialized Disabling serialization can lead to cache corruptions when storing mutable values but increases performance otherwise - */ - public function __construct(int $defaultLifetime = 0, bool $storeSerialized = true) - { - $this->storeSerialized = $storeSerialized; - $this->createCacheItem = \Closure::bind( - static function ($key, $value, $isHit) use ($defaultLifetime) { - $item = new CacheItem(); - $item->key = $key; - $item->value = $value; - $item->isHit = $isHit; - $item->defaultLifetime = $defaultLifetime; - - return $item; - }, - null, - CacheItem::class - ); - } - - /** - * {@inheritdoc} - */ - public function get(string $key, callable $callback, float $beta = null, array &$metadata = null) - { - $item = $this->getItem($key); - $metadata = $item->getMetadata(); - - // ArrayAdapter works in memory, we don't care about stampede protection - if (INF === $beta || !$item->isHit()) { - $save = true; - $this->save($item->set($callback($item, $save))); - } - - return $item->get(); - } - - /** - * {@inheritdoc} - */ - public function getItem($key) - { - if (!$isHit = $this->hasItem($key)) { - $this->values[$key] = $value = null; - } else { - $value = $this->storeSerialized ? $this->unfreeze($key, $isHit) : $this->values[$key]; - } - $f = $this->createCacheItem; - - return $f($key, $value, $isHit); - } - - /** - * {@inheritdoc} - */ - public function getItems(array $keys = []) - { - foreach ($keys as $key) { - if (!\is_string($key) || !isset($this->expiries[$key])) { - CacheItem::validateKey($key); - } - } - - return $this->generateItems($keys, microtime(true), $this->createCacheItem); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function deleteItems(array $keys) - { - foreach ($keys as $key) { - $this->deleteItem($key); - } - - return true; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function save(CacheItemInterface $item) - { - if (!$item instanceof CacheItem) { - return false; - } - $item = (array) $item; - $key = $item["\0*\0key"]; - $value = $item["\0*\0value"]; - $expiry = $item["\0*\0expiry"]; - - if (null !== $expiry && $expiry <= microtime(true)) { - $this->deleteItem($key); - - return true; - } - if ($this->storeSerialized && null === $value = $this->freeze($value, $key)) { - return false; - } - if (null === $expiry && 0 < $item["\0*\0defaultLifetime"]) { - $expiry = microtime(true) + $item["\0*\0defaultLifetime"]; - } - - $this->values[$key] = $value; - $this->expiries[$key] = null !== $expiry ? $expiry : PHP_INT_MAX; - - return true; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function saveDeferred(CacheItemInterface $item) - { - return $this->save($item); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function commit() - { - return true; - } - - /** - * {@inheritdoc} - */ - public function delete(string $key): bool - { - return $this->deleteItem($key); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/ChainAdapter.php b/srcs/phpmyadmin/vendor/symfony/cache/Adapter/ChainAdapter.php deleted file mode 100644 index 63e97a8..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/ChainAdapter.php +++ /dev/null @@ -1,332 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Psr\Cache\CacheItemInterface; -use Psr\Cache\CacheItemPoolInterface; -use Symfony\Component\Cache\CacheItem; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\PruneableInterface; -use Symfony\Component\Cache\ResettableInterface; -use Symfony\Component\Cache\Traits\ContractsTrait; -use Symfony\Contracts\Cache\CacheInterface; -use Symfony\Contracts\Service\ResetInterface; - -/** - * Chains several adapters together. - * - * Cached items are fetched from the first adapter having them in its data store. - * They are saved and deleted in all adapters at once. - * - * @author Kévin Dunglas - */ -class ChainAdapter implements AdapterInterface, CacheInterface, PruneableInterface, ResettableInterface -{ - use ContractsTrait; - - private $adapters = []; - private $adapterCount; - private $syncItem; - - /** - * @param CacheItemPoolInterface[] $adapters The ordered list of adapters used to fetch cached items - * @param int $defaultLifetime The default lifetime of items propagated from lower adapters to upper ones - */ - public function __construct(array $adapters, int $defaultLifetime = 0) - { - if (!$adapters) { - throw new InvalidArgumentException('At least one adapter must be specified.'); - } - - foreach ($adapters as $adapter) { - if (!$adapter instanceof CacheItemPoolInterface) { - throw new InvalidArgumentException(sprintf('The class "%s" does not implement the "%s" interface.', \get_class($adapter), CacheItemPoolInterface::class)); - } - - if ($adapter instanceof AdapterInterface) { - $this->adapters[] = $adapter; - } else { - $this->adapters[] = new ProxyAdapter($adapter); - } - } - $this->adapterCount = \count($this->adapters); - - $this->syncItem = \Closure::bind( - static function ($sourceItem, $item, $sourceMetadata = null) use ($defaultLifetime) { - $sourceItem->isTaggable = false; - $sourceMetadata = $sourceMetadata ?? $sourceItem->metadata; - unset($sourceMetadata[CacheItem::METADATA_TAGS]); - - $item->value = $sourceItem->value; - $item->expiry = $sourceMetadata[CacheItem::METADATA_EXPIRY] ?? $sourceItem->expiry; - $item->isHit = $sourceItem->isHit; - $item->metadata = $item->newMetadata = $sourceItem->metadata = $sourceMetadata; - - if (0 < $sourceItem->defaultLifetime && $sourceItem->defaultLifetime < $defaultLifetime) { - $defaultLifetime = $sourceItem->defaultLifetime; - } - if (0 < $defaultLifetime && ($item->defaultLifetime <= 0 || $defaultLifetime < $item->defaultLifetime)) { - $item->defaultLifetime = $defaultLifetime; - } - - return $item; - }, - null, - CacheItem::class - ); - } - - /** - * {@inheritdoc} - */ - public function get(string $key, callable $callback, float $beta = null, array &$metadata = null) - { - $lastItem = null; - $i = 0; - $wrap = function (CacheItem $item = null) use ($key, $callback, $beta, &$wrap, &$i, &$lastItem, &$metadata) { - $adapter = $this->adapters[$i]; - if (isset($this->adapters[++$i])) { - $callback = $wrap; - $beta = INF === $beta ? INF : 0; - } - if ($adapter instanceof CacheInterface) { - $value = $adapter->get($key, $callback, $beta, $metadata); - } else { - $value = $this->doGet($adapter, $key, $callback, $beta, $metadata); - } - if (null !== $item) { - ($this->syncItem)($lastItem = $lastItem ?? $item, $item, $metadata); - } - - return $value; - }; - - return $wrap(); - } - - /** - * {@inheritdoc} - */ - public function getItem($key) - { - $syncItem = $this->syncItem; - $misses = []; - - foreach ($this->adapters as $i => $adapter) { - $item = $adapter->getItem($key); - - if ($item->isHit()) { - while (0 <= --$i) { - $this->adapters[$i]->save($syncItem($item, $misses[$i])); - } - - return $item; - } - - $misses[$i] = $item; - } - - return $item; - } - - /** - * {@inheritdoc} - */ - public function getItems(array $keys = []) - { - return $this->generateItems($this->adapters[0]->getItems($keys), 0); - } - - private function generateItems(iterable $items, int $adapterIndex) - { - $missing = []; - $misses = []; - $nextAdapterIndex = $adapterIndex + 1; - $nextAdapter = isset($this->adapters[$nextAdapterIndex]) ? $this->adapters[$nextAdapterIndex] : null; - - foreach ($items as $k => $item) { - if (!$nextAdapter || $item->isHit()) { - yield $k => $item; - } else { - $missing[] = $k; - $misses[$k] = $item; - } - } - - if ($missing) { - $syncItem = $this->syncItem; - $adapter = $this->adapters[$adapterIndex]; - $items = $this->generateItems($nextAdapter->getItems($missing), $nextAdapterIndex); - - foreach ($items as $k => $item) { - if ($item->isHit()) { - $adapter->save($syncItem($item, $misses[$k])); - } - - yield $k => $item; - } - } - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function hasItem($key) - { - foreach ($this->adapters as $adapter) { - if ($adapter->hasItem($key)) { - return true; - } - } - - return false; - } - - /** - * {@inheritdoc} - * - * @param string $prefix - * - * @return bool - */ - public function clear(/*string $prefix = ''*/) - { - $prefix = 0 < \func_num_args() ? (string) func_get_arg(0) : ''; - $cleared = true; - $i = $this->adapterCount; - - while ($i--) { - if ($this->adapters[$i] instanceof AdapterInterface) { - $cleared = $this->adapters[$i]->clear($prefix) && $cleared; - } else { - $cleared = $this->adapters[$i]->clear() && $cleared; - } - } - - return $cleared; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function deleteItem($key) - { - $deleted = true; - $i = $this->adapterCount; - - while ($i--) { - $deleted = $this->adapters[$i]->deleteItem($key) && $deleted; - } - - return $deleted; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function deleteItems(array $keys) - { - $deleted = true; - $i = $this->adapterCount; - - while ($i--) { - $deleted = $this->adapters[$i]->deleteItems($keys) && $deleted; - } - - return $deleted; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function save(CacheItemInterface $item) - { - $saved = true; - $i = $this->adapterCount; - - while ($i--) { - $saved = $this->adapters[$i]->save($item) && $saved; - } - - return $saved; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function saveDeferred(CacheItemInterface $item) - { - $saved = true; - $i = $this->adapterCount; - - while ($i--) { - $saved = $this->adapters[$i]->saveDeferred($item) && $saved; - } - - return $saved; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function commit() - { - $committed = true; - $i = $this->adapterCount; - - while ($i--) { - $committed = $this->adapters[$i]->commit() && $committed; - } - - return $committed; - } - - /** - * {@inheritdoc} - */ - public function prune() - { - $pruned = true; - - foreach ($this->adapters as $adapter) { - if ($adapter instanceof PruneableInterface) { - $pruned = $adapter->prune() && $pruned; - } - } - - return $pruned; - } - - /** - * {@inheritdoc} - */ - public function reset() - { - foreach ($this->adapters as $adapter) { - if ($adapter instanceof ResetInterface) { - $adapter->reset(); - } - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/DoctrineAdapter.php b/srcs/phpmyadmin/vendor/symfony/cache/Adapter/DoctrineAdapter.php deleted file mode 100644 index 75ae4cb..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/DoctrineAdapter.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Doctrine\Common\Cache\CacheProvider; -use Symfony\Component\Cache\Traits\DoctrineTrait; - -class DoctrineAdapter extends AbstractAdapter -{ - use DoctrineTrait; - - public function __construct(CacheProvider $provider, string $namespace = '', int $defaultLifetime = 0) - { - parent::__construct('', $defaultLifetime); - $this->provider = $provider; - $provider->setNamespace($namespace); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/FilesystemAdapter.php b/srcs/phpmyadmin/vendor/symfony/cache/Adapter/FilesystemAdapter.php deleted file mode 100644 index 7185dd4..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/FilesystemAdapter.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Symfony\Component\Cache\Marshaller\DefaultMarshaller; -use Symfony\Component\Cache\Marshaller\MarshallerInterface; -use Symfony\Component\Cache\PruneableInterface; -use Symfony\Component\Cache\Traits\FilesystemTrait; - -class FilesystemAdapter extends AbstractAdapter implements PruneableInterface -{ - use FilesystemTrait; - - public function __construct(string $namespace = '', int $defaultLifetime = 0, string $directory = null, MarshallerInterface $marshaller = null) - { - $this->marshaller = $marshaller ?? new DefaultMarshaller(); - parent::__construct('', $defaultLifetime); - $this->init($namespace, $directory); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/FilesystemTagAwareAdapter.php b/srcs/phpmyadmin/vendor/symfony/cache/Adapter/FilesystemTagAwareAdapter.php deleted file mode 100644 index d9a1ad3..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/FilesystemTagAwareAdapter.php +++ /dev/null @@ -1,239 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Symfony\Component\Cache\Marshaller\MarshallerInterface; -use Symfony\Component\Cache\Marshaller\TagAwareMarshaller; -use Symfony\Component\Cache\PruneableInterface; -use Symfony\Component\Cache\Traits\FilesystemTrait; - -/** - * Stores tag id <> cache id relationship as a symlink, and lookup on invalidation calls. - * - * @author Nicolas Grekas - * @author André Rømcke - */ -class FilesystemTagAwareAdapter extends AbstractTagAwareAdapter implements PruneableInterface -{ - use FilesystemTrait { - doClear as private doClearCache; - doSave as private doSaveCache; - } - - /** - * Folder used for tag symlinks. - */ - private const TAG_FOLDER = 'tags'; - - public function __construct(string $namespace = '', int $defaultLifetime = 0, string $directory = null, MarshallerInterface $marshaller = null) - { - $this->marshaller = new TagAwareMarshaller($marshaller); - parent::__construct('', $defaultLifetime); - $this->init($namespace, $directory); - } - - /** - * {@inheritdoc} - */ - protected function doClear($namespace) - { - $ok = $this->doClearCache($namespace); - - if ('' !== $namespace) { - return $ok; - } - - set_error_handler(static function () {}); - $chars = '+-ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; - - try { - foreach ($this->scanHashDir($this->directory.self::TAG_FOLDER.\DIRECTORY_SEPARATOR) as $dir) { - if (rename($dir, $renamed = substr_replace($dir, bin2hex(random_bytes(4)), -8))) { - $dir = $renamed.\DIRECTORY_SEPARATOR; - } else { - $dir .= \DIRECTORY_SEPARATOR; - $renamed = null; - } - - for ($i = 0; $i < 38; ++$i) { - if (!file_exists($dir.$chars[$i])) { - continue; - } - for ($j = 0; $j < 38; ++$j) { - if (!file_exists($d = $dir.$chars[$i].\DIRECTORY_SEPARATOR.$chars[$j])) { - continue; - } - foreach (scandir($d, SCANDIR_SORT_NONE) ?: [] as $link) { - if ('.' !== $link && '..' !== $link && (null !== $renamed || !realpath($d.\DIRECTORY_SEPARATOR.$link))) { - unlink($d.\DIRECTORY_SEPARATOR.$link); - } - } - null === $renamed ?: rmdir($d); - } - null === $renamed ?: rmdir($dir.$chars[$i]); - } - null === $renamed ?: rmdir($renamed); - } - } finally { - restore_error_handler(); - } - - return $ok; - } - - /** - * {@inheritdoc} - */ - protected function doSave(array $values, ?int $lifetime, array $addTagData = [], array $removeTagData = []): array - { - $failed = $this->doSaveCache($values, $lifetime); - - // Add Tags as symlinks - foreach ($addTagData as $tagId => $ids) { - $tagFolder = $this->getTagFolder($tagId); - foreach ($ids as $id) { - if ($failed && \in_array($id, $failed, true)) { - continue; - } - - $file = $this->getFile($id); - - if (!@symlink($file, $this->getFile($id, true, $tagFolder))) { - @unlink($file); - $failed[] = $id; - } - } - } - - // Unlink removed Tags - foreach ($removeTagData as $tagId => $ids) { - $tagFolder = $this->getTagFolder($tagId); - foreach ($ids as $id) { - if ($failed && \in_array($id, $failed, true)) { - continue; - } - - @unlink($this->getFile($id, false, $tagFolder)); - } - } - - return $failed; - } - - /** - * {@inheritdoc} - */ - protected function doDeleteYieldTags(array $ids): iterable - { - foreach ($ids as $id) { - $file = $this->getFile($id); - if (!file_exists($file) || !$h = @fopen($file, 'rb')) { - continue; - } - - if ((\PHP_VERSION_ID >= 70300 || '\\' !== \DIRECTORY_SEPARATOR) && !@unlink($file)) { - fclose($h); - continue; - } - - $meta = explode("\n", fread($h, 4096), 3)[2] ?? ''; - - // detect the compact format used in marshall() using magic numbers in the form 9D-..-..-..-..-00-..-..-..-5F - if (13 < \strlen($meta) && "\x9D" === $meta[0] && "\0" === $meta[5] && "\x5F" === $meta[9]) { - $meta[9] = "\0"; - $tagLen = unpack('Nlen', $meta, 9)['len']; - $meta = substr($meta, 13, $tagLen); - - if (0 < $tagLen -= \strlen($meta)) { - $meta .= fread($h, $tagLen); - } - - try { - yield $id => '' === $meta ? [] : $this->marshaller->unmarshall($meta); - } catch (\Exception $e) { - yield $id => []; - } - } - - fclose($h); - - if (\PHP_VERSION_ID < 70300 && '\\' === \DIRECTORY_SEPARATOR) { - @unlink($file); - } - } - } - - /** - * {@inheritdoc} - */ - protected function doDeleteTagRelations(array $tagData): bool - { - foreach ($tagData as $tagId => $idList) { - $tagFolder = $this->getTagFolder($tagId); - foreach ($idList as $id) { - @unlink($this->getFile($id, false, $tagFolder)); - } - } - - return true; - } - - /** - * {@inheritdoc} - */ - protected function doInvalidate(array $tagIds): bool - { - foreach ($tagIds as $tagId) { - if (!file_exists($tagFolder = $this->getTagFolder($tagId))) { - continue; - } - - set_error_handler(static function () {}); - - try { - if (rename($tagFolder, $renamed = substr_replace($tagFolder, bin2hex(random_bytes(4)), -9))) { - $tagFolder = $renamed.\DIRECTORY_SEPARATOR; - } else { - $renamed = null; - } - - foreach ($this->scanHashDir($tagFolder) as $itemLink) { - unlink(realpath($itemLink) ?: $itemLink); - unlink($itemLink); - } - - if (null === $renamed) { - continue; - } - - $chars = '+-ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; - - for ($i = 0; $i < 38; ++$i) { - for ($j = 0; $j < 38; ++$j) { - rmdir($tagFolder.$chars[$i].\DIRECTORY_SEPARATOR.$chars[$j]); - } - rmdir($tagFolder.$chars[$i]); - } - rmdir($renamed); - } finally { - restore_error_handler(); - } - } - - return true; - } - - private function getTagFolder(string $tagId): string - { - return $this->getFile($tagId, false, $this->directory.self::TAG_FOLDER.\DIRECTORY_SEPARATOR).\DIRECTORY_SEPARATOR; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/MemcachedAdapter.php b/srcs/phpmyadmin/vendor/symfony/cache/Adapter/MemcachedAdapter.php deleted file mode 100644 index b678bb5..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/MemcachedAdapter.php +++ /dev/null @@ -1,37 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Symfony\Component\Cache\Marshaller\MarshallerInterface; -use Symfony\Component\Cache\Traits\MemcachedTrait; - -class MemcachedAdapter extends AbstractAdapter -{ - use MemcachedTrait; - - protected $maxIdLength = 250; - - /** - * Using a MemcachedAdapter with a TagAwareAdapter for storing tags is discouraged. - * Using a RedisAdapter is recommended instead. If you cannot do otherwise, be aware that: - * - the Memcached::OPT_BINARY_PROTOCOL must be enabled - * (that's the default when using MemcachedAdapter::createConnection()); - * - tags eviction by Memcached's LRU algorithm will break by-tags invalidation; - * your Memcached memory should be large enough to never trigger LRU. - * - * Using a MemcachedAdapter as a pure items store is fine. - */ - public function __construct(\Memcached $client, string $namespace = '', int $defaultLifetime = 0, MarshallerInterface $marshaller = null) - { - $this->init($client, $namespace, $defaultLifetime, $marshaller); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/NullAdapter.php b/srcs/phpmyadmin/vendor/symfony/cache/Adapter/NullAdapter.php deleted file mode 100644 index a2fdd36..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/NullAdapter.php +++ /dev/null @@ -1,156 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Psr\Cache\CacheItemInterface; -use Symfony\Component\Cache\CacheItem; -use Symfony\Contracts\Cache\CacheInterface; - -/** - * @author Titouan Galopin - */ -class NullAdapter implements AdapterInterface, CacheInterface -{ - private $createCacheItem; - - public function __construct() - { - $this->createCacheItem = \Closure::bind( - function ($key) { - $item = new CacheItem(); - $item->key = $key; - $item->isHit = false; - - return $item; - }, - $this, - CacheItem::class - ); - } - - /** - * {@inheritdoc} - */ - public function get(string $key, callable $callback, float $beta = null, array &$metadata = null) - { - $save = true; - - return $callback(($this->createCacheItem)($key), $save); - } - - /** - * {@inheritdoc} - */ - public function getItem($key) - { - $f = $this->createCacheItem; - - return $f($key); - } - - /** - * {@inheritdoc} - */ - public function getItems(array $keys = []) - { - return $this->generateItems($keys); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function hasItem($key) - { - return false; - } - - /** - * {@inheritdoc} - * - * @param string $prefix - * - * @return bool - */ - public function clear(/*string $prefix = ''*/) - { - return true; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function deleteItem($key) - { - return true; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function deleteItems(array $keys) - { - return true; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function save(CacheItemInterface $item) - { - return false; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function saveDeferred(CacheItemInterface $item) - { - return false; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function commit() - { - return false; - } - - /** - * {@inheritdoc} - */ - public function delete(string $key): bool - { - return $this->deleteItem($key); - } - - private function generateItems(array $keys) - { - $f = $this->createCacheItem; - - foreach ($keys as $key) { - yield $key => $f($key); - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/PdoAdapter.php b/srcs/phpmyadmin/vendor/symfony/cache/Adapter/PdoAdapter.php deleted file mode 100644 index d118736..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/PdoAdapter.php +++ /dev/null @@ -1,54 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Doctrine\DBAL\Connection; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\Marshaller\MarshallerInterface; -use Symfony\Component\Cache\PruneableInterface; -use Symfony\Component\Cache\Traits\PdoTrait; - -class PdoAdapter extends AbstractAdapter implements PruneableInterface -{ - use PdoTrait; - - protected $maxIdLength = 255; - - /** - * You can either pass an existing database connection as PDO instance or - * a Doctrine DBAL Connection or a DSN string that will be used to - * lazy-connect to the database when the cache is actually used. - * - * When a Doctrine DBAL Connection is passed, the cache table is created - * automatically when possible. Otherwise, use the createTable() method. - * - * List of available options: - * * db_table: The name of the table [default: cache_items] - * * db_id_col: The column where to store the cache id [default: item_id] - * * db_data_col: The column where to store the cache data [default: item_data] - * * db_lifetime_col: The column where to store the lifetime [default: item_lifetime] - * * db_time_col: The column where to store the timestamp [default: item_time] - * * db_username: The username when lazy-connect [default: ''] - * * db_password: The password when lazy-connect [default: ''] - * * db_connection_options: An array of driver-specific connection options [default: []] - * - * @param \PDO|Connection|string $connOrDsn a \PDO or Connection instance or DSN string or null - * - * @throws InvalidArgumentException When first argument is not PDO nor Connection nor string - * @throws InvalidArgumentException When PDO error mode is not PDO::ERRMODE_EXCEPTION - * @throws InvalidArgumentException When namespace contains invalid characters - */ - public function __construct($connOrDsn, string $namespace = '', int $defaultLifetime = 0, array $options = [], MarshallerInterface $marshaller = null) - { - $this->init($connOrDsn, $namespace, $defaultLifetime, $options, $marshaller); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/PhpArrayAdapter.php b/srcs/phpmyadmin/vendor/symfony/cache/Adapter/PhpArrayAdapter.php deleted file mode 100644 index b4f13d1..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/PhpArrayAdapter.php +++ /dev/null @@ -1,332 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Psr\Cache\CacheItemInterface; -use Psr\Cache\CacheItemPoolInterface; -use Symfony\Component\Cache\CacheItem; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\PruneableInterface; -use Symfony\Component\Cache\ResettableInterface; -use Symfony\Component\Cache\Traits\ContractsTrait; -use Symfony\Component\Cache\Traits\PhpArrayTrait; -use Symfony\Contracts\Cache\CacheInterface; - -/** - * Caches items at warm up time using a PHP array that is stored in shared memory by OPCache since PHP 7.0. - * Warmed up items are read-only and run-time discovered items are cached using a fallback adapter. - * - * @author Titouan Galopin - * @author Nicolas Grekas - */ -class PhpArrayAdapter implements AdapterInterface, CacheInterface, PruneableInterface, ResettableInterface -{ - use PhpArrayTrait; - use ContractsTrait; - - private $createCacheItem; - - /** - * @param string $file The PHP file were values are cached - * @param AdapterInterface $fallbackPool A pool to fallback on when an item is not hit - */ - public function __construct(string $file, AdapterInterface $fallbackPool) - { - $this->file = $file; - $this->pool = $fallbackPool; - $this->createCacheItem = \Closure::bind( - static function ($key, $value, $isHit) { - $item = new CacheItem(); - $item->key = $key; - $item->value = $value; - $item->isHit = $isHit; - - return $item; - }, - null, - CacheItem::class - ); - } - - /** - * This adapter takes advantage of how PHP stores arrays in its latest versions. - * - * @param string $file The PHP file were values are cached - * @param CacheItemPoolInterface $fallbackPool A pool to fallback on when an item is not hit - * - * @return CacheItemPoolInterface - */ - public static function create($file, CacheItemPoolInterface $fallbackPool) - { - if (!$fallbackPool instanceof AdapterInterface) { - $fallbackPool = new ProxyAdapter($fallbackPool); - } - - return new static($file, $fallbackPool); - } - - /** - * {@inheritdoc} - */ - public function get(string $key, callable $callback, float $beta = null, array &$metadata = null) - { - if (null === $this->values) { - $this->initialize(); - } - if (!isset($this->keys[$key])) { - get_from_pool: - if ($this->pool instanceof CacheInterface) { - return $this->pool->get($key, $callback, $beta, $metadata); - } - - return $this->doGet($this->pool, $key, $callback, $beta, $metadata); - } - $value = $this->values[$this->keys[$key]]; - - if ('N;' === $value) { - return null; - } - try { - if ($value instanceof \Closure) { - return $value(); - } - } catch (\Throwable $e) { - unset($this->keys[$key]); - goto get_from_pool; - } - - return $value; - } - - /** - * {@inheritdoc} - */ - public function getItem($key) - { - if (!\is_string($key)) { - throw new InvalidArgumentException(sprintf('Cache key must be string, "%s" given.', \is_object($key) ? \get_class($key) : \gettype($key))); - } - if (null === $this->values) { - $this->initialize(); - } - if (!isset($this->keys[$key])) { - return $this->pool->getItem($key); - } - - $value = $this->values[$this->keys[$key]]; - $isHit = true; - - if ('N;' === $value) { - $value = null; - } elseif ($value instanceof \Closure) { - try { - $value = $value(); - } catch (\Throwable $e) { - $value = null; - $isHit = false; - } - } - - $f = $this->createCacheItem; - - return $f($key, $value, $isHit); - } - - /** - * {@inheritdoc} - */ - public function getItems(array $keys = []) - { - foreach ($keys as $key) { - if (!\is_string($key)) { - throw new InvalidArgumentException(sprintf('Cache key must be string, "%s" given.', \is_object($key) ? \get_class($key) : \gettype($key))); - } - } - if (null === $this->values) { - $this->initialize(); - } - - return $this->generateItems($keys); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function hasItem($key) - { - if (!\is_string($key)) { - throw new InvalidArgumentException(sprintf('Cache key must be string, "%s" given.', \is_object($key) ? \get_class($key) : \gettype($key))); - } - if (null === $this->values) { - $this->initialize(); - } - - return isset($this->keys[$key]) || $this->pool->hasItem($key); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function deleteItem($key) - { - if (!\is_string($key)) { - throw new InvalidArgumentException(sprintf('Cache key must be string, "%s" given.', \is_object($key) ? \get_class($key) : \gettype($key))); - } - if (null === $this->values) { - $this->initialize(); - } - - return !isset($this->keys[$key]) && $this->pool->deleteItem($key); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function deleteItems(array $keys) - { - $deleted = true; - $fallbackKeys = []; - - foreach ($keys as $key) { - if (!\is_string($key)) { - throw new InvalidArgumentException(sprintf('Cache key must be string, "%s" given.', \is_object($key) ? \get_class($key) : \gettype($key))); - } - - if (isset($this->keys[$key])) { - $deleted = false; - } else { - $fallbackKeys[] = $key; - } - } - if (null === $this->values) { - $this->initialize(); - } - - if ($fallbackKeys) { - $deleted = $this->pool->deleteItems($fallbackKeys) && $deleted; - } - - return $deleted; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function save(CacheItemInterface $item) - { - if (null === $this->values) { - $this->initialize(); - } - - return !isset($this->keys[$item->getKey()]) && $this->pool->save($item); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function saveDeferred(CacheItemInterface $item) - { - if (null === $this->values) { - $this->initialize(); - } - - return !isset($this->keys[$item->getKey()]) && $this->pool->saveDeferred($item); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function commit() - { - return $this->pool->commit(); - } - - private function generateItems(array $keys): \Generator - { - $f = $this->createCacheItem; - $fallbackKeys = []; - - foreach ($keys as $key) { - if (isset($this->keys[$key])) { - $value = $this->values[$this->keys[$key]]; - - if ('N;' === $value) { - yield $key => $f($key, null, true); - } elseif ($value instanceof \Closure) { - try { - yield $key => $f($key, $value(), true); - } catch (\Throwable $e) { - yield $key => $f($key, null, false); - } - } else { - yield $key => $f($key, $value, true); - } - } else { - $fallbackKeys[] = $key; - } - } - - if ($fallbackKeys) { - yield from $this->pool->getItems($fallbackKeys); - } - } - - /** - * @throws \ReflectionException When $class is not found and is required - * - * @internal to be removed in Symfony 5.0 - */ - public static function throwOnRequiredClass($class) - { - $e = new \ReflectionException("Class $class does not exist"); - $trace = debug_backtrace(); - $autoloadFrame = [ - 'function' => 'spl_autoload_call', - 'args' => [$class], - ]; - $i = 1 + array_search($autoloadFrame, $trace, true); - - if (isset($trace[$i]['function']) && !isset($trace[$i]['class'])) { - switch ($trace[$i]['function']) { - case 'get_class_methods': - case 'get_class_vars': - case 'get_parent_class': - case 'is_a': - case 'is_subclass_of': - case 'class_exists': - case 'class_implements': - case 'class_parents': - case 'trait_exists': - case 'defined': - case 'interface_exists': - case 'method_exists': - case 'property_exists': - case 'is_callable': - return; - } - } - - throw $e; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/PhpFilesAdapter.php b/srcs/phpmyadmin/vendor/symfony/cache/Adapter/PhpFilesAdapter.php deleted file mode 100644 index 10938a0..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/PhpFilesAdapter.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Symfony\Component\Cache\Exception\CacheException; -use Symfony\Component\Cache\PruneableInterface; -use Symfony\Component\Cache\Traits\PhpFilesTrait; - -class PhpFilesAdapter extends AbstractAdapter implements PruneableInterface -{ - use PhpFilesTrait; - - /** - * @param $appendOnly Set to `true` to gain extra performance when the items stored in this pool never expire. - * Doing so is encouraged because it fits perfectly OPcache's memory model. - * - * @throws CacheException if OPcache is not enabled - */ - public function __construct(string $namespace = '', int $defaultLifetime = 0, string $directory = null, bool $appendOnly = false) - { - $this->appendOnly = $appendOnly; - self::$startTime = self::$startTime ?? $_SERVER['REQUEST_TIME'] ?? time(); - parent::__construct('', $defaultLifetime); - $this->init($namespace, $directory); - $this->includeHandler = static function ($type, $msg, $file, $line) { - throw new \ErrorException($msg, 0, $type, $file, $line); - }; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/ProxyAdapter.php b/srcs/phpmyadmin/vendor/symfony/cache/Adapter/ProxyAdapter.php deleted file mode 100644 index bccafb3..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/ProxyAdapter.php +++ /dev/null @@ -1,269 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Psr\Cache\CacheItemInterface; -use Psr\Cache\CacheItemPoolInterface; -use Symfony\Component\Cache\CacheItem; -use Symfony\Component\Cache\PruneableInterface; -use Symfony\Component\Cache\ResettableInterface; -use Symfony\Component\Cache\Traits\ContractsTrait; -use Symfony\Component\Cache\Traits\ProxyTrait; -use Symfony\Contracts\Cache\CacheInterface; - -/** - * @author Nicolas Grekas - */ -class ProxyAdapter implements AdapterInterface, CacheInterface, PruneableInterface, ResettableInterface -{ - use ProxyTrait; - use ContractsTrait; - - private $namespace; - private $namespaceLen; - private $createCacheItem; - private $setInnerItem; - private $poolHash; - - public function __construct(CacheItemPoolInterface $pool, string $namespace = '', int $defaultLifetime = 0) - { - $this->pool = $pool; - $this->poolHash = $poolHash = spl_object_hash($pool); - $this->namespace = '' === $namespace ? '' : CacheItem::validateKey($namespace); - $this->namespaceLen = \strlen($namespace); - $this->createCacheItem = \Closure::bind( - static function ($key, $innerItem) use ($defaultLifetime, $poolHash) { - $item = new CacheItem(); - $item->key = $key; - - if (null === $innerItem) { - return $item; - } - - $item->value = $v = $innerItem->get(); - $item->isHit = $innerItem->isHit(); - $item->innerItem = $innerItem; - $item->defaultLifetime = $defaultLifetime; - $item->poolHash = $poolHash; - - // Detect wrapped values that encode for their expiry and creation duration - // For compactness, these values are packed in the key of an array using - // magic numbers in the form 9D-..-..-..-..-00-..-..-..-5F - if (\is_array($v) && 1 === \count($v) && 10 === \strlen($k = key($v)) && "\x9D" === $k[0] && "\0" === $k[5] && "\x5F" === $k[9]) { - $item->value = $v[$k]; - $v = unpack('Ve/Nc', substr($k, 1, -1)); - $item->metadata[CacheItem::METADATA_EXPIRY] = $v['e'] + CacheItem::METADATA_EXPIRY_OFFSET; - $item->metadata[CacheItem::METADATA_CTIME] = $v['c']; - } elseif ($innerItem instanceof CacheItem) { - $item->metadata = $innerItem->metadata; - } - $innerItem->set(null); - - return $item; - }, - null, - CacheItem::class - ); - $this->setInnerItem = \Closure::bind( - /** - * @param array $item A CacheItem cast to (array); accessing protected properties requires adding the "\0*\0" PHP prefix - */ - static function (CacheItemInterface $innerItem, array $item) { - // Tags are stored separately, no need to account for them when considering this item's newly set metadata - if (isset(($metadata = $item["\0*\0newMetadata"])[CacheItem::METADATA_TAGS])) { - unset($metadata[CacheItem::METADATA_TAGS]); - } - if ($metadata) { - // For compactness, expiry and creation duration are packed in the key of an array, using magic numbers as separators - $item["\0*\0value"] = ["\x9D".pack('VN', (int) (0.1 + $metadata[self::METADATA_EXPIRY] - self::METADATA_EXPIRY_OFFSET), $metadata[self::METADATA_CTIME])."\x5F" => $item["\0*\0value"]]; - } - $innerItem->set($item["\0*\0value"]); - $innerItem->expiresAt(null !== $item["\0*\0expiry"] ? \DateTime::createFromFormat('U.u', sprintf('%.6f', $item["\0*\0expiry"])) : null); - }, - null, - CacheItem::class - ); - } - - /** - * {@inheritdoc} - */ - public function get(string $key, callable $callback, float $beta = null, array &$metadata = null) - { - if (!$this->pool instanceof CacheInterface) { - return $this->doGet($this, $key, $callback, $beta, $metadata); - } - - return $this->pool->get($this->getId($key), function ($innerItem, bool &$save) use ($key, $callback) { - $item = ($this->createCacheItem)($key, $innerItem); - $item->set($value = $callback($item, $save)); - ($this->setInnerItem)($innerItem, (array) $item); - - return $value; - }, $beta, $metadata); - } - - /** - * {@inheritdoc} - */ - public function getItem($key) - { - $f = $this->createCacheItem; - $item = $this->pool->getItem($this->getId($key)); - - return $f($key, $item); - } - - /** - * {@inheritdoc} - */ - public function getItems(array $keys = []) - { - if ($this->namespaceLen) { - foreach ($keys as $i => $key) { - $keys[$i] = $this->getId($key); - } - } - - return $this->generateItems($this->pool->getItems($keys)); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function hasItem($key) - { - return $this->pool->hasItem($this->getId($key)); - } - - /** - * {@inheritdoc} - * - * @param string $prefix - * - * @return bool - */ - public function clear(/*string $prefix = ''*/) - { - $prefix = 0 < \func_num_args() ? (string) func_get_arg(0) : ''; - - if ($this->pool instanceof AdapterInterface) { - return $this->pool->clear($this->namespace.$prefix); - } - - return $this->pool->clear(); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function deleteItem($key) - { - return $this->pool->deleteItem($this->getId($key)); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function deleteItems(array $keys) - { - if ($this->namespaceLen) { - foreach ($keys as $i => $key) { - $keys[$i] = $this->getId($key); - } - } - - return $this->pool->deleteItems($keys); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function save(CacheItemInterface $item) - { - return $this->doSave($item, __FUNCTION__); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function saveDeferred(CacheItemInterface $item) - { - return $this->doSave($item, __FUNCTION__); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function commit() - { - return $this->pool->commit(); - } - - private function doSave(CacheItemInterface $item, string $method) - { - if (!$item instanceof CacheItem) { - return false; - } - $item = (array) $item; - if (null === $item["\0*\0expiry"] && 0 < $item["\0*\0defaultLifetime"]) { - $item["\0*\0expiry"] = microtime(true) + $item["\0*\0defaultLifetime"]; - } - - if ($item["\0*\0poolHash"] === $this->poolHash && $item["\0*\0innerItem"]) { - $innerItem = $item["\0*\0innerItem"]; - } elseif ($this->pool instanceof AdapterInterface) { - // this is an optimization specific for AdapterInterface implementations - // so we can save a round-trip to the backend by just creating a new item - $f = $this->createCacheItem; - $innerItem = $f($this->namespace.$item["\0*\0key"], null); - } else { - $innerItem = $this->pool->getItem($this->namespace.$item["\0*\0key"]); - } - - ($this->setInnerItem)($innerItem, $item); - - return $this->pool->$method($innerItem); - } - - private function generateItems(iterable $items) - { - $f = $this->createCacheItem; - - foreach ($items as $key => $item) { - if ($this->namespaceLen) { - $key = substr($key, $this->namespaceLen); - } - - yield $key => $f($key, $item); - } - } - - private function getId($key): string - { - CacheItem::validateKey($key); - - return $this->namespace.$key; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/Psr16Adapter.php b/srcs/phpmyadmin/vendor/symfony/cache/Adapter/Psr16Adapter.php deleted file mode 100644 index bb38871..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/Psr16Adapter.php +++ /dev/null @@ -1,86 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Psr\SimpleCache\CacheInterface; -use Symfony\Component\Cache\PruneableInterface; -use Symfony\Component\Cache\ResettableInterface; -use Symfony\Component\Cache\Traits\ProxyTrait; - -/** - * Turns a PSR-16 cache into a PSR-6 one. - * - * @author Nicolas Grekas - */ -class Psr16Adapter extends AbstractAdapter implements PruneableInterface, ResettableInterface -{ - /** - * @internal - */ - protected const NS_SEPARATOR = '_'; - - use ProxyTrait; - - private $miss; - - public function __construct(CacheInterface $pool, string $namespace = '', int $defaultLifetime = 0) - { - parent::__construct($namespace, $defaultLifetime); - - $this->pool = $pool; - $this->miss = new \stdClass(); - } - - /** - * {@inheritdoc} - */ - protected function doFetch(array $ids) - { - foreach ($this->pool->getMultiple($ids, $this->miss) as $key => $value) { - if ($this->miss !== $value) { - yield $key => $value; - } - } - } - - /** - * {@inheritdoc} - */ - protected function doHave($id) - { - return $this->pool->has($id); - } - - /** - * {@inheritdoc} - */ - protected function doClear($namespace) - { - return $this->pool->clear(); - } - - /** - * {@inheritdoc} - */ - protected function doDelete(array $ids) - { - return $this->pool->deleteMultiple($ids); - } - - /** - * {@inheritdoc} - */ - protected function doSave(array $values, $lifetime) - { - return $this->pool->setMultiple($values, 0 === $lifetime ? null : $lifetime); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/RedisAdapter.php b/srcs/phpmyadmin/vendor/symfony/cache/Adapter/RedisAdapter.php deleted file mode 100644 index 5c49f7a..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/RedisAdapter.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Symfony\Component\Cache\Marshaller\MarshallerInterface; -use Symfony\Component\Cache\Traits\RedisTrait; - -class RedisAdapter extends AbstractAdapter -{ - use RedisTrait; - - /** - * @param \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface $redisClient The redis client - * @param string $namespace The default namespace - * @param int $defaultLifetime The default lifetime - */ - public function __construct($redisClient, string $namespace = '', int $defaultLifetime = 0, MarshallerInterface $marshaller = null) - { - $this->init($redisClient, $namespace, $defaultLifetime, $marshaller); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/RedisTagAwareAdapter.php b/srcs/phpmyadmin/vendor/symfony/cache/Adapter/RedisTagAwareAdapter.php deleted file mode 100644 index 1dbce4b..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/RedisTagAwareAdapter.php +++ /dev/null @@ -1,292 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Predis\Connection\Aggregate\ClusterInterface; -use Predis\Connection\Aggregate\PredisCluster; -use Predis\Response\Status; -use Symfony\Component\Cache\CacheItem; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\Marshaller\DeflateMarshaller; -use Symfony\Component\Cache\Marshaller\MarshallerInterface; -use Symfony\Component\Cache\Marshaller\TagAwareMarshaller; -use Symfony\Component\Cache\Traits\RedisTrait; - -/** - * Stores tag id <> cache id relationship as a Redis Set, lookup on invalidation using RENAME+SMEMBERS. - * - * Set (tag relation info) is stored without expiry (non-volatile), while cache always gets an expiry (volatile) even - * if not set by caller. Thus if you configure redis with the right eviction policy you can be safe this tag <> cache - * relationship survives eviction (cache cleanup when Redis runs out of memory). - * - * Requirements: - * - Client: PHP Redis or Predis - * Note: Due to lack of RENAME support it is NOT recommended to use Cluster on Predis, instead use phpredis. - * - Server: Redis 2.8+ - * Configured with any `volatile-*` eviction policy, OR `noeviction` if it will NEVER fill up memory - * - * Design limitations: - * - Max 4 billion cache keys per cache tag as limited by Redis Set datatype. - * E.g. If you use a "all" items tag for expiry instead of clear(), that limits you to 4 billion cache items also. - * - * @see https://redis.io/topics/lru-cache#eviction-policies Documentation for Redis eviction policies. - * @see https://redis.io/topics/data-types#sets Documentation for Redis Set datatype. - * - * @author Nicolas Grekas - * @author André Rømcke - */ -class RedisTagAwareAdapter extends AbstractTagAwareAdapter -{ - use RedisTrait; - - /** - * Limits for how many keys are deleted in batch. - */ - private const BULK_DELETE_LIMIT = 10000; - - /** - * On cache items without a lifetime set, we set it to 100 days. This is to make sure cache items are - * preferred to be evicted over tag Sets, if eviction policy is configured according to requirements. - */ - private const DEFAULT_CACHE_TTL = 8640000; - - /** - * @var string|null detected eviction policy used on Redis server - */ - private $redisEvictionPolicy; - - /** - * @param \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface $redisClient The redis client - * @param string $namespace The default namespace - * @param int $defaultLifetime The default lifetime - */ - public function __construct($redisClient, string $namespace = '', int $defaultLifetime = 0, MarshallerInterface $marshaller = null) - { - if ($redisClient instanceof \Predis\ClientInterface && $redisClient->getConnection() instanceof ClusterInterface && !$redisClient->getConnection() instanceof PredisCluster) { - throw new InvalidArgumentException(sprintf('Unsupported Predis cluster connection: only "%s" is, "%s" given.', PredisCluster::class, \get_class($redisClient->getConnection()))); - } - - if (\defined('Redis::OPT_COMPRESSION') && ($redisClient instanceof \Redis || $redisClient instanceof \RedisArray || $redisClient instanceof \RedisCluster)) { - $compression = $redisClient->getOption(\Redis::OPT_COMPRESSION); - - foreach (\is_array($compression) ? $compression : [$compression] as $c) { - if (\Redis::COMPRESSION_NONE !== $c) { - throw new InvalidArgumentException(sprintf('phpredis compression must be disabled when using "%s", use "%s" instead.', \get_class($this), DeflateMarshaller::class)); - } - } - } - - $this->init($redisClient, $namespace, $defaultLifetime, new TagAwareMarshaller($marshaller)); - } - - /** - * {@inheritdoc} - */ - protected function doSave(array $values, ?int $lifetime, array $addTagData = [], array $delTagData = []): array - { - $eviction = $this->getRedisEvictionPolicy(); - if ('noeviction' !== $eviction && 0 !== strpos($eviction, 'volatile-')) { - CacheItem::log($this->logger, sprintf('Redis maxmemory-policy setting "%s" is *not* supported by RedisTagAwareAdapter, use "noeviction" or "volatile-*" eviction policies', $eviction)); - - return false; - } - - // serialize values - if (!$serialized = $this->marshaller->marshall($values, $failed)) { - return $failed; - } - - // While pipeline isn't supported on RedisCluster, other setups will at least benefit from doing this in one op - $results = $this->pipeline(static function () use ($serialized, $lifetime, $addTagData, $delTagData, $failed) { - // Store cache items, force a ttl if none is set, as there is no MSETEX we need to set each one - foreach ($serialized as $id => $value) { - yield 'setEx' => [ - $id, - 0 >= $lifetime ? self::DEFAULT_CACHE_TTL : $lifetime, - $value, - ]; - } - - // Add and Remove Tags - foreach ($addTagData as $tagId => $ids) { - if (!$failed || $ids = array_diff($ids, $failed)) { - yield 'sAdd' => array_merge([$tagId], $ids); - } - } - - foreach ($delTagData as $tagId => $ids) { - if (!$failed || $ids = array_diff($ids, $failed)) { - yield 'sRem' => array_merge([$tagId], $ids); - } - } - }); - - foreach ($results as $id => $result) { - // Skip results of SADD/SREM operations, they'll be 1 or 0 depending on if set value already existed or not - if (is_numeric($result)) { - continue; - } - // setEx results - if (true !== $result && (!$result instanceof Status || Status::get('OK') !== $result)) { - $failed[] = $id; - } - } - - return $failed; - } - - /** - * {@inheritdoc} - */ - protected function doDeleteYieldTags(array $ids): iterable - { - $lua = <<<'EOLUA' - local v = redis.call('GET', KEYS[1]) - redis.call('DEL', KEYS[1]) - - if not v or v:len() <= 13 or v:byte(1) ~= 0x9D or v:byte(6) ~= 0 or v:byte(10) ~= 0x5F then - return '' - end - - return v:sub(14, 13 + v:byte(13) + v:byte(12) * 256 + v:byte(11) * 65536) -EOLUA; - - if ($this->redis instanceof \Predis\ClientInterface) { - $evalArgs = [$lua, 1, &$id]; - } else { - $evalArgs = [$lua, [&$id], 1]; - } - - $results = $this->pipeline(function () use ($ids, &$id, $evalArgs) { - foreach ($ids as $id) { - yield 'eval' => $evalArgs; - } - }); - - foreach ($results as $id => $result) { - try { - yield $id => !\is_string($result) || '' === $result ? [] : $this->marshaller->unmarshall($result); - } catch (\Exception $e) { - yield $id => []; - } - } - } - - /** - * {@inheritdoc} - */ - protected function doDeleteTagRelations(array $tagData): bool - { - $this->pipeline(static function () use ($tagData) { - foreach ($tagData as $tagId => $idList) { - array_unshift($idList, $tagId); - yield 'sRem' => $idList; - } - })->rewind(); - - return true; - } - - /** - * {@inheritdoc} - */ - protected function doInvalidate(array $tagIds): bool - { - if (!$this->redis instanceof \Predis\ClientInterface || !$this->redis->getConnection() instanceof PredisCluster) { - $movedTagSetIds = $this->renameKeys($this->redis, $tagIds); - } else { - $clusterConnection = $this->redis->getConnection(); - $tagIdsByConnection = new \SplObjectStorage(); - $movedTagSetIds = []; - - foreach ($tagIds as $id) { - $connection = $clusterConnection->getConnectionByKey($id); - $slot = $tagIdsByConnection[$connection] ?? $tagIdsByConnection[$connection] = new \ArrayObject(); - $slot[] = $id; - } - - foreach ($tagIdsByConnection as $connection) { - $slot = $tagIdsByConnection[$connection]; - $movedTagSetIds = array_merge($movedTagSetIds, $this->renameKeys(new $this->redis($connection, $this->redis->getOptions()), $slot->getArrayCopy())); - } - } - - // No Sets found - if (!$movedTagSetIds) { - return false; - } - - // Now safely take the time to read the keys in each set and collect ids we need to delete - $tagIdSets = $this->pipeline(static function () use ($movedTagSetIds) { - foreach ($movedTagSetIds as $movedTagId) { - yield 'sMembers' => [$movedTagId]; - } - }); - - // Return combination of the temporary Tag Set ids and their values (cache ids) - $ids = array_merge($movedTagSetIds, ...iterator_to_array($tagIdSets, false)); - - // Delete cache in chunks to avoid overloading the connection - foreach (array_chunk(array_unique($ids), self::BULK_DELETE_LIMIT) as $chunkIds) { - $this->doDelete($chunkIds); - } - - return true; - } - - /** - * Renames several keys in order to be able to operate on them without risk of race conditions. - * - * Filters out keys that do not exist before returning new keys. - * - * @see https://redis.io/commands/rename - * @see https://redis.io/topics/cluster-spec#keys-hash-tags - * - * @return array Filtered list of the valid moved keys (only those that existed) - */ - private function renameKeys($redis, array $ids): array - { - $newIds = []; - $uniqueToken = bin2hex(random_bytes(10)); - - $results = $this->pipeline(static function () use ($ids, $uniqueToken) { - foreach ($ids as $id) { - yield 'rename' => [$id, '{'.$id.'}'.$uniqueToken]; - } - }, $redis); - - foreach ($results as $id => $result) { - if (true === $result || ($result instanceof Status && Status::get('OK') === $result)) { - // Only take into account if ok (key existed), will be false on phpredis if it did not exist - $newIds[] = '{'.$id.'}'.$uniqueToken; - } - } - - return $newIds; - } - - private function getRedisEvictionPolicy(): string - { - if (null !== $this->redisEvictionPolicy) { - return $this->redisEvictionPolicy; - } - - foreach ($this->getHosts() as $host) { - $info = $host->info('Memory'); - $info = isset($info['Memory']) ? $info['Memory'] : $info; - - return $this->redisEvictionPolicy = $info['maxmemory_policy']; - } - - return $this->redisEvictionPolicy = ''; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/SimpleCacheAdapter.php b/srcs/phpmyadmin/vendor/symfony/cache/Adapter/SimpleCacheAdapter.php deleted file mode 100644 index d0d42e5..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/SimpleCacheAdapter.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -@trigger_error(sprintf('The "%s" class is @deprecated since Symfony 4.3, use "Psr16Adapter" instead.', SimpleCacheAdapter::class), E_USER_DEPRECATED); - -/** - * @deprecated since Symfony 4.3, use Psr16Adapter instead. - */ -class SimpleCacheAdapter extends Psr16Adapter -{ -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/TagAwareAdapter.php b/srcs/phpmyadmin/vendor/symfony/cache/Adapter/TagAwareAdapter.php deleted file mode 100644 index 7c0ee30..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/TagAwareAdapter.php +++ /dev/null @@ -1,429 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Psr\Cache\CacheItemInterface; -use Psr\Cache\InvalidArgumentException; -use Symfony\Component\Cache\CacheItem; -use Symfony\Component\Cache\PruneableInterface; -use Symfony\Component\Cache\ResettableInterface; -use Symfony\Component\Cache\Traits\ContractsTrait; -use Symfony\Component\Cache\Traits\ProxyTrait; -use Symfony\Contracts\Cache\TagAwareCacheInterface; - -/** - * @author Nicolas Grekas - */ -class TagAwareAdapter implements TagAwareAdapterInterface, TagAwareCacheInterface, PruneableInterface, ResettableInterface -{ - const TAGS_PREFIX = "\0tags\0"; - - use ProxyTrait; - use ContractsTrait; - - private $deferred = []; - private $createCacheItem; - private $setCacheItemTags; - private $getTagsByKey; - private $invalidateTags; - private $tags; - private $knownTagVersions = []; - private $knownTagVersionsTtl; - - public function __construct(AdapterInterface $itemsPool, AdapterInterface $tagsPool = null, float $knownTagVersionsTtl = 0.15) - { - $this->pool = $itemsPool; - $this->tags = $tagsPool ?: $itemsPool; - $this->knownTagVersionsTtl = $knownTagVersionsTtl; - $this->createCacheItem = \Closure::bind( - static function ($key, $value, CacheItem $protoItem) { - $item = new CacheItem(); - $item->key = $key; - $item->value = $value; - $item->defaultLifetime = $protoItem->defaultLifetime; - $item->expiry = $protoItem->expiry; - $item->poolHash = $protoItem->poolHash; - - return $item; - }, - null, - CacheItem::class - ); - $this->setCacheItemTags = \Closure::bind( - static function (CacheItem $item, $key, array &$itemTags) { - $item->isTaggable = true; - if (!$item->isHit) { - return $item; - } - if (isset($itemTags[$key])) { - foreach ($itemTags[$key] as $tag => $version) { - $item->metadata[CacheItem::METADATA_TAGS][$tag] = $tag; - } - unset($itemTags[$key]); - } else { - $item->value = null; - $item->isHit = false; - } - - return $item; - }, - null, - CacheItem::class - ); - $this->getTagsByKey = \Closure::bind( - static function ($deferred) { - $tagsByKey = []; - foreach ($deferred as $key => $item) { - $tagsByKey[$key] = $item->newMetadata[CacheItem::METADATA_TAGS] ?? []; - } - - return $tagsByKey; - }, - null, - CacheItem::class - ); - $this->invalidateTags = \Closure::bind( - static function (AdapterInterface $tagsAdapter, array $tags) { - foreach ($tags as $v) { - $v->defaultLifetime = 0; - $v->expiry = null; - $tagsAdapter->saveDeferred($v); - } - - return $tagsAdapter->commit(); - }, - null, - CacheItem::class - ); - } - - /** - * {@inheritdoc} - */ - public function invalidateTags(array $tags) - { - $ok = true; - $tagsByKey = []; - $invalidatedTags = []; - foreach ($tags as $tag) { - CacheItem::validateKey($tag); - $invalidatedTags[$tag] = 0; - } - - if ($this->deferred) { - $items = $this->deferred; - foreach ($items as $key => $item) { - if (!$this->pool->saveDeferred($item)) { - unset($this->deferred[$key]); - $ok = false; - } - } - - $f = $this->getTagsByKey; - $tagsByKey = $f($items); - $this->deferred = []; - } - - $tagVersions = $this->getTagVersions($tagsByKey, $invalidatedTags); - $f = $this->createCacheItem; - - foreach ($tagsByKey as $key => $tags) { - $this->pool->saveDeferred($f(static::TAGS_PREFIX.$key, array_intersect_key($tagVersions, $tags), $items[$key])); - } - $ok = $this->pool->commit() && $ok; - - if ($invalidatedTags) { - $f = $this->invalidateTags; - $ok = $f($this->tags, $invalidatedTags) && $ok; - } - - return $ok; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function hasItem($key) - { - if ($this->deferred) { - $this->commit(); - } - if (!$this->pool->hasItem($key)) { - return false; - } - - $itemTags = $this->pool->getItem(static::TAGS_PREFIX.$key); - - if (!$itemTags->isHit()) { - return false; - } - - if (!$itemTags = $itemTags->get()) { - return true; - } - - foreach ($this->getTagVersions([$itemTags]) as $tag => $version) { - if ($itemTags[$tag] !== $version && 1 !== $itemTags[$tag] - $version) { - return false; - } - } - - return true; - } - - /** - * {@inheritdoc} - */ - public function getItem($key) - { - foreach ($this->getItems([$key]) as $item) { - return $item; - } - - return null; - } - - /** - * {@inheritdoc} - */ - public function getItems(array $keys = []) - { - if ($this->deferred) { - $this->commit(); - } - $tagKeys = []; - - foreach ($keys as $key) { - if ('' !== $key && \is_string($key)) { - $key = static::TAGS_PREFIX.$key; - $tagKeys[$key] = $key; - } - } - - try { - $items = $this->pool->getItems($tagKeys + $keys); - } catch (InvalidArgumentException $e) { - $this->pool->getItems($keys); // Should throw an exception - - throw $e; - } - - return $this->generateItems($items, $tagKeys); - } - - /** - * {@inheritdoc} - * - * @param string $prefix - * - * @return bool - */ - public function clear(/*string $prefix = ''*/) - { - $prefix = 0 < \func_num_args() ? (string) func_get_arg(0) : ''; - - if ('' !== $prefix) { - foreach ($this->deferred as $key => $item) { - if (0 === strpos($key, $prefix)) { - unset($this->deferred[$key]); - } - } - } else { - $this->deferred = []; - } - - if ($this->pool instanceof AdapterInterface) { - return $this->pool->clear($prefix); - } - - return $this->pool->clear(); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function deleteItem($key) - { - return $this->deleteItems([$key]); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function deleteItems(array $keys) - { - foreach ($keys as $key) { - if ('' !== $key && \is_string($key)) { - $keys[] = static::TAGS_PREFIX.$key; - } - } - - return $this->pool->deleteItems($keys); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function save(CacheItemInterface $item) - { - if (!$item instanceof CacheItem) { - return false; - } - $this->deferred[$item->getKey()] = $item; - - return $this->commit(); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function saveDeferred(CacheItemInterface $item) - { - if (!$item instanceof CacheItem) { - return false; - } - $this->deferred[$item->getKey()] = $item; - - return true; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function commit() - { - return $this->invalidateTags([]); - } - - public function __sleep() - { - throw new \BadMethodCallException('Cannot serialize '.__CLASS__); - } - - public function __wakeup() - { - throw new \BadMethodCallException('Cannot unserialize '.__CLASS__); - } - - public function __destruct() - { - $this->commit(); - } - - private function generateItems(iterable $items, array $tagKeys) - { - $bufferedItems = $itemTags = []; - $f = $this->setCacheItemTags; - - foreach ($items as $key => $item) { - if (!$tagKeys) { - yield $key => $f($item, static::TAGS_PREFIX.$key, $itemTags); - continue; - } - if (!isset($tagKeys[$key])) { - $bufferedItems[$key] = $item; - continue; - } - - unset($tagKeys[$key]); - - if ($item->isHit()) { - $itemTags[$key] = $item->get() ?: []; - } - - if (!$tagKeys) { - $tagVersions = $this->getTagVersions($itemTags); - - foreach ($itemTags as $key => $tags) { - foreach ($tags as $tag => $version) { - if ($tagVersions[$tag] !== $version && 1 !== $version - $tagVersions[$tag]) { - unset($itemTags[$key]); - continue 2; - } - } - } - $tagVersions = $tagKeys = null; - - foreach ($bufferedItems as $key => $item) { - yield $key => $f($item, static::TAGS_PREFIX.$key, $itemTags); - } - $bufferedItems = null; - } - } - } - - private function getTagVersions(array $tagsByKey, array &$invalidatedTags = []) - { - $tagVersions = $invalidatedTags; - - foreach ($tagsByKey as $tags) { - $tagVersions += $tags; - } - - if (!$tagVersions) { - return []; - } - - if (!$fetchTagVersions = 1 !== \func_num_args()) { - foreach ($tagsByKey as $tags) { - foreach ($tags as $tag => $version) { - if ($tagVersions[$tag] > $version) { - $tagVersions[$tag] = $version; - } - } - } - } - - $now = microtime(true); - $tags = []; - foreach ($tagVersions as $tag => $version) { - $tags[$tag.static::TAGS_PREFIX] = $tag; - if ($fetchTagVersions || !isset($this->knownTagVersions[$tag])) { - $fetchTagVersions = true; - continue; - } - $version -= $this->knownTagVersions[$tag][1]; - if ((0 !== $version && 1 !== $version) || $now - $this->knownTagVersions[$tag][0] >= $this->knownTagVersionsTtl) { - // reuse previously fetched tag versions up to the ttl, unless we are storing items or a potential miss arises - $fetchTagVersions = true; - } else { - $this->knownTagVersions[$tag][1] += $version; - } - } - - if (!$fetchTagVersions) { - return $tagVersions; - } - - foreach ($this->tags->getItems(array_keys($tags)) as $tag => $version) { - $tagVersions[$tag = $tags[$tag]] = $version->get() ?: 0; - if (isset($invalidatedTags[$tag])) { - $invalidatedTags[$tag] = $version->set(++$tagVersions[$tag]); - } - $this->knownTagVersions[$tag] = [$now, $tagVersions[$tag]]; - } - - return $tagVersions; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/TagAwareAdapterInterface.php b/srcs/phpmyadmin/vendor/symfony/cache/Adapter/TagAwareAdapterInterface.php deleted file mode 100644 index 340048c..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/TagAwareAdapterInterface.php +++ /dev/null @@ -1,33 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Psr\Cache\InvalidArgumentException; - -/** - * Interface for invalidating cached items using tags. - * - * @author Nicolas Grekas - */ -interface TagAwareAdapterInterface extends AdapterInterface -{ - /** - * Invalidates cached items using tags. - * - * @param string[] $tags An array of tags to invalidate - * - * @return bool True on success - * - * @throws InvalidArgumentException When $tags is not valid - */ - public function invalidateTags(array $tags); -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/TraceableAdapter.php b/srcs/phpmyadmin/vendor/symfony/cache/Adapter/TraceableAdapter.php deleted file mode 100644 index 7e9dac8..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/TraceableAdapter.php +++ /dev/null @@ -1,302 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Psr\Cache\CacheItemInterface; -use Symfony\Component\Cache\CacheItem; -use Symfony\Component\Cache\PruneableInterface; -use Symfony\Component\Cache\ResettableInterface; -use Symfony\Contracts\Cache\CacheInterface; -use Symfony\Contracts\Service\ResetInterface; - -/** - * An adapter that collects data about all cache calls. - * - * @author Aaron Scherer - * @author Tobias Nyholm - * @author Nicolas Grekas - */ -class TraceableAdapter implements AdapterInterface, CacheInterface, PruneableInterface, ResettableInterface -{ - protected $pool; - private $calls = []; - - public function __construct(AdapterInterface $pool) - { - $this->pool = $pool; - } - - /** - * {@inheritdoc} - */ - public function get(string $key, callable $callback, float $beta = null, array &$metadata = null) - { - if (!$this->pool instanceof CacheInterface) { - throw new \BadMethodCallException(sprintf('Cannot call "%s::get()": this class doesn\'t implement "%s".', \get_class($this->pool), CacheInterface::class)); - } - - $isHit = true; - $callback = function (CacheItem $item, bool &$save) use ($callback, &$isHit) { - $isHit = $item->isHit(); - - return $callback($item, $save); - }; - - $event = $this->start(__FUNCTION__); - try { - $value = $this->pool->get($key, $callback, $beta, $metadata); - $event->result[$key] = \is_object($value) ? \get_class($value) : \gettype($value); - } finally { - $event->end = microtime(true); - } - if ($isHit) { - ++$event->hits; - } else { - ++$event->misses; - } - - return $value; - } - - /** - * {@inheritdoc} - */ - public function getItem($key) - { - $event = $this->start(__FUNCTION__); - try { - $item = $this->pool->getItem($key); - } finally { - $event->end = microtime(true); - } - if ($event->result[$key] = $item->isHit()) { - ++$event->hits; - } else { - ++$event->misses; - } - - return $item; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function hasItem($key) - { - $event = $this->start(__FUNCTION__); - try { - return $event->result[$key] = $this->pool->hasItem($key); - } finally { - $event->end = microtime(true); - } - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function deleteItem($key) - { - $event = $this->start(__FUNCTION__); - try { - return $event->result[$key] = $this->pool->deleteItem($key); - } finally { - $event->end = microtime(true); - } - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function save(CacheItemInterface $item) - { - $event = $this->start(__FUNCTION__); - try { - return $event->result[$item->getKey()] = $this->pool->save($item); - } finally { - $event->end = microtime(true); - } - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function saveDeferred(CacheItemInterface $item) - { - $event = $this->start(__FUNCTION__); - try { - return $event->result[$item->getKey()] = $this->pool->saveDeferred($item); - } finally { - $event->end = microtime(true); - } - } - - /** - * {@inheritdoc} - */ - public function getItems(array $keys = []) - { - $event = $this->start(__FUNCTION__); - try { - $result = $this->pool->getItems($keys); - } finally { - $event->end = microtime(true); - } - $f = function () use ($result, $event) { - $event->result = []; - foreach ($result as $key => $item) { - if ($event->result[$key] = $item->isHit()) { - ++$event->hits; - } else { - ++$event->misses; - } - yield $key => $item; - } - }; - - return $f(); - } - - /** - * {@inheritdoc} - * - * @param string $prefix - * - * @return bool - */ - public function clear(/*string $prefix = ''*/) - { - $prefix = 0 < \func_num_args() ? (string) func_get_arg(0) : ''; - $event = $this->start(__FUNCTION__); - try { - if ($this->pool instanceof AdapterInterface) { - return $event->result = $this->pool->clear($prefix); - } - - return $event->result = $this->pool->clear(); - } finally { - $event->end = microtime(true); - } - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function deleteItems(array $keys) - { - $event = $this->start(__FUNCTION__); - $event->result['keys'] = $keys; - try { - return $event->result['result'] = $this->pool->deleteItems($keys); - } finally { - $event->end = microtime(true); - } - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function commit() - { - $event = $this->start(__FUNCTION__); - try { - return $event->result = $this->pool->commit(); - } finally { - $event->end = microtime(true); - } - } - - /** - * {@inheritdoc} - */ - public function prune() - { - if (!$this->pool instanceof PruneableInterface) { - return false; - } - $event = $this->start(__FUNCTION__); - try { - return $event->result = $this->pool->prune(); - } finally { - $event->end = microtime(true); - } - } - - /** - * {@inheritdoc} - */ - public function reset() - { - if (!$this->pool instanceof ResetInterface) { - return; - } - $event = $this->start(__FUNCTION__); - try { - $this->pool->reset(); - } finally { - $event->end = microtime(true); - } - } - - /** - * {@inheritdoc} - */ - public function delete(string $key): bool - { - $event = $this->start(__FUNCTION__); - try { - return $event->result[$key] = $this->pool->deleteItem($key); - } finally { - $event->end = microtime(true); - } - } - - public function getCalls() - { - return $this->calls; - } - - public function clearCalls() - { - $this->calls = []; - } - - protected function start($name) - { - $this->calls[] = $event = new TraceableAdapterEvent(); - $event->name = $name; - $event->start = microtime(true); - - return $event; - } -} - -class TraceableAdapterEvent -{ - public $name; - public $start; - public $end; - public $result; - public $hits = 0; - public $misses = 0; -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/TraceableTagAwareAdapter.php b/srcs/phpmyadmin/vendor/symfony/cache/Adapter/TraceableTagAwareAdapter.php deleted file mode 100644 index 69461b8..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Adapter/TraceableTagAwareAdapter.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Adapter; - -use Symfony\Contracts\Cache\TagAwareCacheInterface; - -/** - * @author Robin Chalas - */ -class TraceableTagAwareAdapter extends TraceableAdapter implements TagAwareAdapterInterface, TagAwareCacheInterface -{ - public function __construct(TagAwareAdapterInterface $pool) - { - parent::__construct($pool); - } - - /** - * {@inheritdoc} - */ - public function invalidateTags(array $tags) - { - $event = $this->start(__FUNCTION__); - try { - return $event->result = $this->pool->invalidateTags($tags); - } finally { - $event->end = microtime(true); - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/CHANGELOG.md b/srcs/phpmyadmin/vendor/symfony/cache/CHANGELOG.md deleted file mode 100644 index 435eaf3..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/CHANGELOG.md +++ /dev/null @@ -1,73 +0,0 @@ -CHANGELOG -========= - -4.4.0 ------ - - * added support for connecting to Redis Sentinel clusters - * added argument `$prefix` to `AdapterInterface::clear()` - * improved `RedisTagAwareAdapter` to support Redis server >= 2.8 and up to 4B items per tag - * added `TagAwareMarshaller` for optimized data storage when using `AbstractTagAwareAdapter` - * added `DeflateMarshaller` to compress serialized values - * removed support for phpredis 4 `compression` - * [BC BREAK] `RedisTagAwareAdapter` is not compatible with `RedisCluster` from `Predis` anymore, use `phpredis` instead - * Marked the `CacheDataCollector` class as `@final`. - -4.3.0 ------ - - * removed `psr/simple-cache` dependency, run `composer require psr/simple-cache` if you need it - * deprecated all PSR-16 adapters, use `Psr16Cache` or `Symfony\Contracts\Cache\CacheInterface` implementations instead - * deprecated `SimpleCacheAdapter`, use `Psr16Adapter` instead - -4.2.0 ------ - - * added support for connecting to Redis clusters via DSN - * added support for configuring multiple Memcached servers via DSN - * added `MarshallerInterface` and `DefaultMarshaller` to allow changing the serializer and provide one that automatically uses igbinary when available - * implemented `CacheInterface`, which provides stampede protection via probabilistic early expiration and should become the preferred way to use a cache - * added sub-second expiry accuracy for backends that support it - * added support for phpredis 4 `compression` and `tcp_keepalive` options - * added automatic table creation when using Doctrine DBAL with PDO-based backends - * throw `LogicException` when `CacheItem::tag()` is called on an item coming from a non tag-aware pool - * deprecated `CacheItem::getPreviousTags()`, use `CacheItem::getMetadata()` instead - * deprecated the `AbstractAdapter::unserialize()` and `AbstractCache::unserialize()` methods - * added `CacheCollectorPass` (originally in `FrameworkBundle`) - * added `CachePoolClearerPass` (originally in `FrameworkBundle`) - * added `CachePoolPass` (originally in `FrameworkBundle`) - * added `CachePoolPrunerPass` (originally in `FrameworkBundle`) - -3.4.0 ------ - - * added using options from Memcached DSN - * added PruneableInterface so PSR-6 or PSR-16 cache implementations can declare support for manual stale cache pruning - * added prune logic to FilesystemTrait, PhpFilesTrait, PdoTrait, TagAwareAdapter and ChainTrait - * now FilesystemAdapter, PhpFilesAdapter, FilesystemCache, PhpFilesCache, PdoAdapter, PdoCache, ChainAdapter, and - ChainCache implement PruneableInterface and support manual stale cache pruning - -3.3.0 ------ - - * added CacheItem::getPreviousTags() to get bound tags coming from the pool storage if any - * added PSR-16 "Simple Cache" implementations for all existing PSR-6 adapters - * added Psr6Cache and SimpleCacheAdapter for bidirectional interoperability between PSR-6 and PSR-16 - * added MemcachedAdapter (PSR-6) and MemcachedCache (PSR-16) - * added TraceableAdapter (PSR-6) and TraceableCache (PSR-16) - -3.2.0 ------ - - * added TagAwareAdapter for tags-based invalidation - * added PdoAdapter with PDO and Doctrine DBAL support - * added PhpArrayAdapter and PhpFilesAdapter for OPcache-backed shared memory storage (PHP 7+ only) - * added NullAdapter - -3.1.0 ------ - - * added the component with strict PSR-6 implementations - * added ApcuAdapter, ArrayAdapter, FilesystemAdapter and RedisAdapter - * added AbstractAdapter, ChainAdapter and ProxyAdapter - * added DoctrineAdapter and DoctrineProvider for bidirectional interoperability with Doctrine Cache diff --git a/srcs/phpmyadmin/vendor/symfony/cache/CacheItem.php b/srcs/phpmyadmin/vendor/symfony/cache/CacheItem.php deleted file mode 100644 index 3abd50e..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/CacheItem.php +++ /dev/null @@ -1,202 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache; - -use Psr\Log\LoggerInterface; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\Exception\LogicException; -use Symfony\Contracts\Cache\ItemInterface; - -/** - * @author Nicolas Grekas - */ -final class CacheItem implements ItemInterface -{ - private const METADATA_EXPIRY_OFFSET = 1527506807; - - protected $key; - protected $value; - protected $isHit = false; - protected $expiry; - protected $defaultLifetime; - protected $metadata = []; - protected $newMetadata = []; - protected $innerItem; - protected $poolHash; - protected $isTaggable = false; - - /** - * {@inheritdoc} - */ - public function getKey(): string - { - return $this->key; - } - - /** - * {@inheritdoc} - */ - public function get() - { - return $this->value; - } - - /** - * {@inheritdoc} - */ - public function isHit(): bool - { - return $this->isHit; - } - - /** - * {@inheritdoc} - * - * @return $this - */ - public function set($value): self - { - $this->value = $value; - - return $this; - } - - /** - * {@inheritdoc} - * - * @return $this - */ - public function expiresAt($expiration): self - { - if (null === $expiration) { - $this->expiry = $this->defaultLifetime > 0 ? microtime(true) + $this->defaultLifetime : null; - } elseif ($expiration instanceof \DateTimeInterface) { - $this->expiry = (float) $expiration->format('U.u'); - } else { - throw new InvalidArgumentException(sprintf('Expiration date must implement DateTimeInterface or be null, "%s" given', \is_object($expiration) ? \get_class($expiration) : \gettype($expiration))); - } - - return $this; - } - - /** - * {@inheritdoc} - * - * @return $this - */ - public function expiresAfter($time): self - { - if (null === $time) { - $this->expiry = $this->defaultLifetime > 0 ? microtime(true) + $this->defaultLifetime : null; - } elseif ($time instanceof \DateInterval) { - $this->expiry = microtime(true) + \DateTime::createFromFormat('U', 0)->add($time)->format('U.u'); - } elseif (\is_int($time)) { - $this->expiry = $time + microtime(true); - } else { - throw new InvalidArgumentException(sprintf('Expiration date must be an integer, a DateInterval or null, "%s" given', \is_object($time) ? \get_class($time) : \gettype($time))); - } - - return $this; - } - - /** - * {@inheritdoc} - */ - public function tag($tags): ItemInterface - { - if (!$this->isTaggable) { - throw new LogicException(sprintf('Cache item "%s" comes from a non tag-aware pool: you cannot tag it.', $this->key)); - } - if (!is_iterable($tags)) { - $tags = [$tags]; - } - foreach ($tags as $tag) { - if (!\is_string($tag)) { - throw new InvalidArgumentException(sprintf('Cache tag must be string, "%s" given', \is_object($tag) ? \get_class($tag) : \gettype($tag))); - } - if (isset($this->newMetadata[self::METADATA_TAGS][$tag])) { - continue; - } - if ('' === $tag) { - throw new InvalidArgumentException('Cache tag length must be greater than zero'); - } - if (false !== strpbrk($tag, self::RESERVED_CHARACTERS)) { - throw new InvalidArgumentException(sprintf('Cache tag "%s" contains reserved characters %s', $tag, self::RESERVED_CHARACTERS)); - } - $this->newMetadata[self::METADATA_TAGS][$tag] = $tag; - } - - return $this; - } - - /** - * {@inheritdoc} - */ - public function getMetadata(): array - { - return $this->metadata; - } - - /** - * Returns the list of tags bound to the value coming from the pool storage if any. - * - * @deprecated since Symfony 4.2, use the "getMetadata()" method instead. - */ - public function getPreviousTags(): array - { - @trigger_error(sprintf('The "%s()" method is deprecated since Symfony 4.2, use the "getMetadata()" method instead.', __METHOD__), E_USER_DEPRECATED); - - return $this->metadata[self::METADATA_TAGS] ?? []; - } - - /** - * Validates a cache key according to PSR-6. - * - * @param string $key The key to validate - * - * @throws InvalidArgumentException When $key is not valid - */ - public static function validateKey($key): string - { - if (!\is_string($key)) { - throw new InvalidArgumentException(sprintf('Cache key must be string, "%s" given', \is_object($key) ? \get_class($key) : \gettype($key))); - } - if ('' === $key) { - throw new InvalidArgumentException('Cache key length must be greater than zero'); - } - if (false !== strpbrk($key, self::RESERVED_CHARACTERS)) { - throw new InvalidArgumentException(sprintf('Cache key "%s" contains reserved characters %s', $key, self::RESERVED_CHARACTERS)); - } - - return $key; - } - - /** - * Internal logging helper. - * - * @internal - */ - public static function log(?LoggerInterface $logger, string $message, array $context = []) - { - if ($logger) { - $logger->warning($message, $context); - } else { - $replace = []; - foreach ($context as $k => $v) { - if (is_scalar($v)) { - $replace['{'.$k.'}'] = $v; - } - } - @trigger_error(strtr($message, $replace), E_USER_WARNING); - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/DataCollector/CacheDataCollector.php b/srcs/phpmyadmin/vendor/symfony/cache/DataCollector/CacheDataCollector.php deleted file mode 100644 index c63cd32..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/DataCollector/CacheDataCollector.php +++ /dev/null @@ -1,194 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\DataCollector; - -use Symfony\Component\Cache\Adapter\TraceableAdapter; -use Symfony\Component\Cache\Adapter\TraceableAdapterEvent; -use Symfony\Component\HttpFoundation\Request; -use Symfony\Component\HttpFoundation\Response; -use Symfony\Component\HttpKernel\DataCollector\DataCollector; -use Symfony\Component\HttpKernel\DataCollector\LateDataCollectorInterface; - -/** - * @author Aaron Scherer - * @author Tobias Nyholm - * - * @final since Symfony 4.4 - */ -class CacheDataCollector extends DataCollector implements LateDataCollectorInterface -{ - /** - * @var TraceableAdapter[] - */ - private $instances = []; - - /** - * @param string $name - */ - public function addInstance($name, TraceableAdapter $instance) - { - $this->instances[$name] = $instance; - } - - /** - * {@inheritdoc} - * - * @param \Throwable|null $exception - */ - public function collect(Request $request, Response $response/*, \Throwable $exception = null*/) - { - $empty = ['calls' => [], 'config' => [], 'options' => [], 'statistics' => []]; - $this->data = ['instances' => $empty, 'total' => $empty]; - foreach ($this->instances as $name => $instance) { - $this->data['instances']['calls'][$name] = $instance->getCalls(); - } - - $this->data['instances']['statistics'] = $this->calculateStatistics(); - $this->data['total']['statistics'] = $this->calculateTotalStatistics(); - } - - public function reset() - { - $this->data = []; - foreach ($this->instances as $instance) { - $instance->clearCalls(); - } - } - - public function lateCollect() - { - $this->data = $this->cloneVar($this->data); - } - - /** - * {@inheritdoc} - */ - public function getName() - { - return 'cache'; - } - - /** - * Method returns amount of logged Cache reads: "get" calls. - * - * @return array - */ - public function getStatistics() - { - return $this->data['instances']['statistics']; - } - - /** - * Method returns the statistic totals. - * - * @return array - */ - public function getTotals() - { - return $this->data['total']['statistics']; - } - - /** - * Method returns all logged Cache call objects. - * - * @return mixed - */ - public function getCalls() - { - return $this->data['instances']['calls']; - } - - private function calculateStatistics(): array - { - $statistics = []; - foreach ($this->data['instances']['calls'] as $name => $calls) { - $statistics[$name] = [ - 'calls' => 0, - 'time' => 0, - 'reads' => 0, - 'writes' => 0, - 'deletes' => 0, - 'hits' => 0, - 'misses' => 0, - ]; - /** @var TraceableAdapterEvent $call */ - foreach ($calls as $call) { - ++$statistics[$name]['calls']; - $statistics[$name]['time'] += $call->end - $call->start; - if ('get' === $call->name) { - ++$statistics[$name]['reads']; - if ($call->hits) { - ++$statistics[$name]['hits']; - } else { - ++$statistics[$name]['misses']; - ++$statistics[$name]['writes']; - } - } elseif ('getItem' === $call->name) { - ++$statistics[$name]['reads']; - if ($call->hits) { - ++$statistics[$name]['hits']; - } else { - ++$statistics[$name]['misses']; - } - } elseif ('getItems' === $call->name) { - $statistics[$name]['reads'] += $call->hits + $call->misses; - $statistics[$name]['hits'] += $call->hits; - $statistics[$name]['misses'] += $call->misses; - } elseif ('hasItem' === $call->name) { - ++$statistics[$name]['reads']; - if (false === $call->result) { - ++$statistics[$name]['misses']; - } else { - ++$statistics[$name]['hits']; - } - } elseif ('save' === $call->name) { - ++$statistics[$name]['writes']; - } elseif ('deleteItem' === $call->name) { - ++$statistics[$name]['deletes']; - } - } - if ($statistics[$name]['reads']) { - $statistics[$name]['hit_read_ratio'] = round(100 * $statistics[$name]['hits'] / $statistics[$name]['reads'], 2); - } else { - $statistics[$name]['hit_read_ratio'] = null; - } - } - - return $statistics; - } - - private function calculateTotalStatistics(): array - { - $statistics = $this->getStatistics(); - $totals = [ - 'calls' => 0, - 'time' => 0, - 'reads' => 0, - 'writes' => 0, - 'deletes' => 0, - 'hits' => 0, - 'misses' => 0, - ]; - foreach ($statistics as $name => $values) { - foreach ($totals as $key => $value) { - $totals[$key] += $statistics[$name][$key]; - } - } - if ($totals['reads']) { - $totals['hit_read_ratio'] = round(100 * $totals['hits'] / $totals['reads'], 2); - } else { - $totals['hit_read_ratio'] = null; - } - - return $totals; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/DependencyInjection/CacheCollectorPass.php b/srcs/phpmyadmin/vendor/symfony/cache/DependencyInjection/CacheCollectorPass.php deleted file mode 100644 index 6193d34..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/DependencyInjection/CacheCollectorPass.php +++ /dev/null @@ -1,72 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\DependencyInjection; - -use Symfony\Component\Cache\Adapter\TagAwareAdapterInterface; -use Symfony\Component\Cache\Adapter\TraceableAdapter; -use Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter; -use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Reference; - -/** - * Inject a data collector to all the cache services to be able to get detailed statistics. - * - * @author Tobias Nyholm - */ -class CacheCollectorPass implements CompilerPassInterface -{ - private $dataCollectorCacheId; - private $cachePoolTag; - private $cachePoolRecorderInnerSuffix; - - public function __construct(string $dataCollectorCacheId = 'data_collector.cache', string $cachePoolTag = 'cache.pool', string $cachePoolRecorderInnerSuffix = '.recorder_inner') - { - $this->dataCollectorCacheId = $dataCollectorCacheId; - $this->cachePoolTag = $cachePoolTag; - $this->cachePoolRecorderInnerSuffix = $cachePoolRecorderInnerSuffix; - } - - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - if (!$container->hasDefinition($this->dataCollectorCacheId)) { - return; - } - - $collectorDefinition = $container->getDefinition($this->dataCollectorCacheId); - foreach ($container->findTaggedServiceIds($this->cachePoolTag) as $id => $attributes) { - $definition = $container->getDefinition($id); - if ($definition->isAbstract()) { - continue; - } - - $recorder = new Definition(is_subclass_of($definition->getClass(), TagAwareAdapterInterface::class) ? TraceableTagAwareAdapter::class : TraceableAdapter::class); - $recorder->setTags($definition->getTags()); - $recorder->setPublic($definition->isPublic()); - $recorder->setArguments([new Reference($innerId = $id.$this->cachePoolRecorderInnerSuffix)]); - - $definition->setTags([]); - $definition->setPublic(false); - - $container->setDefinition($innerId, $definition); - $container->setDefinition($id, $recorder); - - // Tell the collector to add the new instance - $collectorDefinition->addMethodCall('addInstance', [$id, new Reference($id)]); - $collectorDefinition->setPublic(false); - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/DependencyInjection/CachePoolClearerPass.php b/srcs/phpmyadmin/vendor/symfony/cache/DependencyInjection/CachePoolClearerPass.php deleted file mode 100644 index 3ca89a3..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/DependencyInjection/CachePoolClearerPass.php +++ /dev/null @@ -1,48 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\DependencyInjection; - -use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Reference; - -/** - * @author Nicolas Grekas - */ -class CachePoolClearerPass implements CompilerPassInterface -{ - private $cachePoolClearerTag; - - public function __construct(string $cachePoolClearerTag = 'cache.pool.clearer') - { - $this->cachePoolClearerTag = $cachePoolClearerTag; - } - - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - $container->getParameterBag()->remove('cache.prefix.seed'); - - foreach ($container->findTaggedServiceIds($this->cachePoolClearerTag) as $id => $attr) { - $clearer = $container->getDefinition($id); - $pools = []; - foreach ($clearer->getArgument(0) as $name => $ref) { - if ($container->hasDefinition($ref)) { - $pools[$name] = new Reference($ref); - } - } - $clearer->replaceArgument(0, $pools); - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/DependencyInjection/CachePoolPass.php b/srcs/phpmyadmin/vendor/symfony/cache/DependencyInjection/CachePoolPass.php deleted file mode 100644 index 35bf5e7..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/DependencyInjection/CachePoolPass.php +++ /dev/null @@ -1,222 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\DependencyInjection; - -use Symfony\Component\Cache\Adapter\AbstractAdapter; -use Symfony\Component\Cache\Adapter\ArrayAdapter; -use Symfony\Component\Cache\Adapter\ChainAdapter; -use Symfony\Component\DependencyInjection\ChildDefinition; -use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Reference; - -/** - * @author Nicolas Grekas - */ -class CachePoolPass implements CompilerPassInterface -{ - private $cachePoolTag; - private $kernelResetTag; - private $cacheClearerId; - private $cachePoolClearerTag; - private $cacheSystemClearerId; - private $cacheSystemClearerTag; - - public function __construct(string $cachePoolTag = 'cache.pool', string $kernelResetTag = 'kernel.reset', string $cacheClearerId = 'cache.global_clearer', string $cachePoolClearerTag = 'cache.pool.clearer', string $cacheSystemClearerId = 'cache.system_clearer', string $cacheSystemClearerTag = 'kernel.cache_clearer') - { - $this->cachePoolTag = $cachePoolTag; - $this->kernelResetTag = $kernelResetTag; - $this->cacheClearerId = $cacheClearerId; - $this->cachePoolClearerTag = $cachePoolClearerTag; - $this->cacheSystemClearerId = $cacheSystemClearerId; - $this->cacheSystemClearerTag = $cacheSystemClearerTag; - } - - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - if ($container->hasParameter('cache.prefix.seed')) { - $seed = '.'.$container->getParameterBag()->resolveValue($container->getParameter('cache.prefix.seed')); - } else { - $seed = '_'.$container->getParameter('kernel.project_dir'); - } - $seed .= '.'.$container->getParameter('kernel.container_class'); - - $pools = []; - $clearers = []; - $attributes = [ - 'provider', - 'name', - 'namespace', - 'default_lifetime', - 'reset', - ]; - foreach ($container->findTaggedServiceIds($this->cachePoolTag) as $id => $tags) { - $adapter = $pool = $container->getDefinition($id); - if ($pool->isAbstract()) { - continue; - } - $class = $adapter->getClass(); - while ($adapter instanceof ChildDefinition) { - $adapter = $container->findDefinition($adapter->getParent()); - $class = $class ?: $adapter->getClass(); - if ($t = $adapter->getTag($this->cachePoolTag)) { - $tags[0] += $t[0]; - } - } - $name = $tags[0]['name'] ?? $id; - if (!isset($tags[0]['namespace'])) { - $namespaceSeed = $seed; - if (null !== $class) { - $namespaceSeed .= '.'.$class; - } - - $tags[0]['namespace'] = $this->getNamespace($namespaceSeed, $name); - } - if (isset($tags[0]['clearer'])) { - $clearer = $tags[0]['clearer']; - while ($container->hasAlias($clearer)) { - $clearer = (string) $container->getAlias($clearer); - } - } else { - $clearer = null; - } - unset($tags[0]['clearer'], $tags[0]['name']); - - if (isset($tags[0]['provider'])) { - $tags[0]['provider'] = new Reference(static::getServiceProvider($container, $tags[0]['provider'])); - } - - if (ChainAdapter::class === $class) { - $adapters = []; - foreach ($adapter->getArgument(0) as $provider => $adapter) { - $chainedPool = $adapter = new ChildDefinition($adapter); - $chainedTags = [\is_int($provider) ? [] : ['provider' => $provider]]; - $chainedClass = ''; - - while ($adapter instanceof ChildDefinition) { - $adapter = $container->findDefinition($adapter->getParent()); - $chainedClass = $chainedClass ?: $adapter->getClass(); - if ($t = $adapter->getTag($this->cachePoolTag)) { - $chainedTags[0] += $t[0]; - } - } - - if (ChainAdapter::class === $chainedClass) { - throw new InvalidArgumentException(sprintf('Invalid service "%s": chain of adapters cannot reference another chain, found "%s".', $id, $chainedPool->getParent())); - } - - $i = 0; - - if (isset($chainedTags[0]['provider'])) { - $chainedPool->replaceArgument($i++, new Reference(static::getServiceProvider($container, $chainedTags[0]['provider']))); - } - - if (isset($tags[0]['namespace']) && ArrayAdapter::class !== $adapter->getClass()) { - $chainedPool->replaceArgument($i++, $tags[0]['namespace']); - } - - if (isset($tags[0]['default_lifetime'])) { - $chainedPool->replaceArgument($i++, $tags[0]['default_lifetime']); - } - - $adapters[] = $chainedPool; - } - - $pool->replaceArgument(0, $adapters); - unset($tags[0]['provider'], $tags[0]['namespace']); - $i = 1; - } else { - $i = 0; - } - - foreach ($attributes as $attr) { - if (!isset($tags[0][$attr])) { - // no-op - } elseif ('reset' === $attr) { - if ($tags[0][$attr]) { - $pool->addTag($this->kernelResetTag, ['method' => $tags[0][$attr]]); - } - } elseif ('namespace' !== $attr || ArrayAdapter::class !== $class) { - $pool->replaceArgument($i++, $tags[0][$attr]); - } - unset($tags[0][$attr]); - } - if (!empty($tags[0])) { - throw new InvalidArgumentException(sprintf('Invalid "%s" tag for service "%s": accepted attributes are "clearer", "provider", "name", "namespace", "default_lifetime" and "reset", found "%s".', $this->cachePoolTag, $id, implode('", "', array_keys($tags[0])))); - } - - if (null !== $clearer) { - $clearers[$clearer][$name] = new Reference($id, $container::IGNORE_ON_UNINITIALIZED_REFERENCE); - } - - $pools[$name] = new Reference($id, $container::IGNORE_ON_UNINITIALIZED_REFERENCE); - } - - $notAliasedCacheClearerId = $this->cacheClearerId; - while ($container->hasAlias($this->cacheClearerId)) { - $this->cacheClearerId = (string) $container->getAlias($this->cacheClearerId); - } - if ($container->hasDefinition($this->cacheClearerId)) { - $clearers[$notAliasedCacheClearerId] = $pools; - } - - foreach ($clearers as $id => $pools) { - $clearer = $container->getDefinition($id); - if ($clearer instanceof ChildDefinition) { - $clearer->replaceArgument(0, $pools); - } else { - $clearer->setArgument(0, $pools); - } - $clearer->addTag($this->cachePoolClearerTag); - - if ($this->cacheSystemClearerId === $id) { - $clearer->addTag($this->cacheSystemClearerTag); - } - } - - if ($container->hasDefinition('console.command.cache_pool_list')) { - $container->getDefinition('console.command.cache_pool_list')->replaceArgument(0, array_keys($pools)); - } - } - - private function getNamespace(string $seed, string $id) - { - return substr(str_replace('/', '-', base64_encode(hash('sha256', $id.$seed, true))), 0, 10); - } - - /** - * @internal - */ - public static function getServiceProvider(ContainerBuilder $container, $name) - { - $container->resolveEnvPlaceholders($name, null, $usedEnvs); - - if ($usedEnvs || preg_match('#^[a-z]++:#', $name)) { - $dsn = $name; - - if (!$container->hasDefinition($name = '.cache_connection.'.ContainerBuilder::hash($dsn))) { - $definition = new Definition(AbstractAdapter::class); - $definition->setPublic(false); - $definition->setFactory([AbstractAdapter::class, 'createConnection']); - $definition->setArguments([$dsn, ['lazy' => true]]); - $container->setDefinition($name, $definition); - } - } - - return $name; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/DependencyInjection/CachePoolPrunerPass.php b/srcs/phpmyadmin/vendor/symfony/cache/DependencyInjection/CachePoolPrunerPass.php deleted file mode 100644 index e569962..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/DependencyInjection/CachePoolPrunerPass.php +++ /dev/null @@ -1,60 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\DependencyInjection; - -use Symfony\Component\Cache\PruneableInterface; -use Symfony\Component\DependencyInjection\Argument\IteratorArgument; -use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Reference; - -/** - * @author Rob Frawley 2nd - */ -class CachePoolPrunerPass implements CompilerPassInterface -{ - private $cacheCommandServiceId; - private $cachePoolTag; - - public function __construct(string $cacheCommandServiceId = 'console.command.cache_pool_prune', string $cachePoolTag = 'cache.pool') - { - $this->cacheCommandServiceId = $cacheCommandServiceId; - $this->cachePoolTag = $cachePoolTag; - } - - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - if (!$container->hasDefinition($this->cacheCommandServiceId)) { - return; - } - - $services = []; - - foreach ($container->findTaggedServiceIds($this->cachePoolTag) as $id => $tags) { - $class = $container->getParameterBag()->resolveValue($container->getDefinition($id)->getClass()); - - if (!$reflection = $container->getReflectionClass($class)) { - throw new InvalidArgumentException(sprintf('Class "%s" used for service "%s" cannot be found.', $class, $id)); - } - - if ($reflection->implementsInterface(PruneableInterface::class)) { - $services[$id] = new Reference($id); - } - } - - $container->getDefinition($this->cacheCommandServiceId)->replaceArgument(0, new IteratorArgument($services)); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/DoctrineProvider.php b/srcs/phpmyadmin/vendor/symfony/cache/DoctrineProvider.php deleted file mode 100644 index d7e0bca..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/DoctrineProvider.php +++ /dev/null @@ -1,114 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache; - -use Doctrine\Common\Cache\CacheProvider; -use Psr\Cache\CacheItemPoolInterface; -use Symfony\Contracts\Service\ResetInterface; - -/** - * @author Nicolas Grekas - */ -class DoctrineProvider extends CacheProvider implements PruneableInterface, ResettableInterface -{ - private $pool; - - public function __construct(CacheItemPoolInterface $pool) - { - $this->pool = $pool; - } - - /** - * {@inheritdoc} - */ - public function prune() - { - return $this->pool instanceof PruneableInterface && $this->pool->prune(); - } - - /** - * {@inheritdoc} - */ - public function reset() - { - if ($this->pool instanceof ResetInterface) { - $this->pool->reset(); - } - $this->setNamespace($this->getNamespace()); - } - - /** - * {@inheritdoc} - */ - protected function doFetch($id) - { - $item = $this->pool->getItem(rawurlencode($id)); - - return $item->isHit() ? $item->get() : false; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - protected function doContains($id) - { - return $this->pool->hasItem(rawurlencode($id)); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - protected function doSave($id, $data, $lifeTime = 0) - { - $item = $this->pool->getItem(rawurlencode($id)); - - if (0 < $lifeTime) { - $item->expiresAfter($lifeTime); - } - - return $this->pool->save($item->set($data)); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - protected function doDelete($id) - { - return $this->pool->deleteItem(rawurlencode($id)); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - protected function doFlush() - { - return $this->pool->clear(); - } - - /** - * {@inheritdoc} - * - * @return array|null - */ - protected function doGetStats() - { - return null; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Exception/CacheException.php b/srcs/phpmyadmin/vendor/symfony/cache/Exception/CacheException.php deleted file mode 100644 index d2e975b..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Exception/CacheException.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Exception; - -use Psr\Cache\CacheException as Psr6CacheInterface; -use Psr\SimpleCache\CacheException as SimpleCacheInterface; - -if (interface_exists(SimpleCacheInterface::class)) { - class CacheException extends \Exception implements Psr6CacheInterface, SimpleCacheInterface - { - } -} else { - class CacheException extends \Exception implements Psr6CacheInterface - { - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Exception/InvalidArgumentException.php b/srcs/phpmyadmin/vendor/symfony/cache/Exception/InvalidArgumentException.php deleted file mode 100644 index 7f9584a..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Exception/InvalidArgumentException.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Exception; - -use Psr\Cache\InvalidArgumentException as Psr6CacheInterface; -use Psr\SimpleCache\InvalidArgumentException as SimpleCacheInterface; - -if (interface_exists(SimpleCacheInterface::class)) { - class InvalidArgumentException extends \InvalidArgumentException implements Psr6CacheInterface, SimpleCacheInterface - { - } -} else { - class InvalidArgumentException extends \InvalidArgumentException implements Psr6CacheInterface - { - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Exception/LogicException.php b/srcs/phpmyadmin/vendor/symfony/cache/Exception/LogicException.php deleted file mode 100644 index 9ffa7ed..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Exception/LogicException.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Exception; - -use Psr\Cache\CacheException as Psr6CacheInterface; -use Psr\SimpleCache\CacheException as SimpleCacheInterface; - -if (interface_exists(SimpleCacheInterface::class)) { - class LogicException extends \LogicException implements Psr6CacheInterface, SimpleCacheInterface - { - } -} else { - class LogicException extends \LogicException implements Psr6CacheInterface - { - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/LICENSE b/srcs/phpmyadmin/vendor/symfony/cache/LICENSE deleted file mode 100644 index 3c464ca..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2016-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. diff --git a/srcs/phpmyadmin/vendor/symfony/cache/LockRegistry.php b/srcs/phpmyadmin/vendor/symfony/cache/LockRegistry.php deleted file mode 100644 index 80601be..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/LockRegistry.php +++ /dev/null @@ -1,154 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache; - -use Psr\Log\LoggerInterface; -use Symfony\Contracts\Cache\CacheInterface; -use Symfony\Contracts\Cache\ItemInterface; - -/** - * LockRegistry is used internally by existing adapters to protect against cache stampede. - * - * It does so by wrapping the computation of items in a pool of locks. - * Foreach each apps, there can be at most 20 concurrent processes that - * compute items at the same time and only one per cache-key. - * - * @author Nicolas Grekas - */ -final class LockRegistry -{ - private static $openedFiles = []; - private static $lockedFiles = []; - - /** - * The number of items in this list controls the max number of concurrent processes. - */ - private static $files = [ - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'AbstractAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'AbstractTagAwareAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'AdapterInterface.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'ApcuAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'ArrayAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'ChainAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'DoctrineAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'FilesystemAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'FilesystemTagAwareAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'MemcachedAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'NullAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'PdoAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'PhpArrayAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'PhpFilesAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'ProxyAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'Psr16Adapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'RedisAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'RedisTagAwareAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'SimpleCacheAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'TagAwareAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'TagAwareAdapterInterface.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'TraceableAdapter.php', - __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'TraceableTagAwareAdapter.php', - ]; - - /** - * Defines a set of existing files that will be used as keys to acquire locks. - * - * @return array The previously defined set of files - */ - public static function setFiles(array $files): array - { - $previousFiles = self::$files; - self::$files = $files; - - foreach (self::$openedFiles as $file) { - if ($file) { - flock($file, LOCK_UN); - fclose($file); - } - } - self::$openedFiles = self::$lockedFiles = []; - - return $previousFiles; - } - - public static function compute(callable $callback, ItemInterface $item, bool &$save, CacheInterface $pool, \Closure $setMetadata = null, LoggerInterface $logger = null) - { - $key = self::$files ? crc32($item->getKey()) % \count(self::$files) : -1; - - if ($key < 0 || (self::$lockedFiles[$key] ?? false) || !$lock = self::open($key)) { - return $callback($item, $save); - } - - while (true) { - try { - // race to get the lock in non-blocking mode - $locked = flock($lock, LOCK_EX | LOCK_NB, $wouldBlock); - - if ($locked || !$wouldBlock) { - $logger && $logger->info(sprintf('Lock %s, now computing item "{key}"', $locked ? 'acquired' : 'not supported'), ['key' => $item->getKey()]); - self::$lockedFiles[$key] = true; - - $value = $callback($item, $save); - - if ($save) { - if ($setMetadata) { - $setMetadata($item); - } - - $pool->save($item->set($value)); - $save = false; - } - - return $value; - } - // if we failed the race, retry locking in blocking mode to wait for the winner - $logger && $logger->info('Item "{key}" is locked, waiting for it to be released', ['key' => $item->getKey()]); - flock($lock, LOCK_SH); - } finally { - flock($lock, LOCK_UN); - unset(self::$lockedFiles[$key]); - } - static $signalingException, $signalingCallback; - $signalingException = $signalingException ?? unserialize("O:9:\"Exception\":1:{s:16:\"\0Exception\0trace\";a:0:{}}"); - $signalingCallback = $signalingCallback ?? function () use ($signalingException) { throw $signalingException; }; - - try { - $value = $pool->get($item->getKey(), $signalingCallback, 0); - $logger && $logger->info('Item "{key}" retrieved after lock was released', ['key' => $item->getKey()]); - $save = false; - - return $value; - } catch (\Exception $e) { - if ($signalingException !== $e) { - throw $e; - } - $logger && $logger->info('Item "{key}" not found while lock was released, now retrying', ['key' => $item->getKey()]); - } - } - - return null; - } - - private static function open(int $key) - { - if (null !== $h = self::$openedFiles[$key] ?? null) { - return $h; - } - set_error_handler(function () {}); - try { - $h = fopen(self::$files[$key], 'r+'); - } finally { - restore_error_handler(); - } - - return self::$openedFiles[$key] = $h ?: @fopen(self::$files[$key], 'r'); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Marshaller/DefaultMarshaller.php b/srcs/phpmyadmin/vendor/symfony/cache/Marshaller/DefaultMarshaller.php deleted file mode 100644 index 8056090..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Marshaller/DefaultMarshaller.php +++ /dev/null @@ -1,99 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Marshaller; - -use Symfony\Component\Cache\Exception\CacheException; - -/** - * Serializes/unserializes values using igbinary_serialize() if available, serialize() otherwise. - * - * @author Nicolas Grekas - */ -class DefaultMarshaller implements MarshallerInterface -{ - private $useIgbinarySerialize = true; - - public function __construct(bool $useIgbinarySerialize = null) - { - if (null === $useIgbinarySerialize) { - $useIgbinarySerialize = \extension_loaded('igbinary') && \PHP_VERSION_ID < 70400; - } elseif ($useIgbinarySerialize && (!\extension_loaded('igbinary') || \PHP_VERSION_ID >= 70400)) { - throw new CacheException('The "igbinary" PHP extension is not '.(\PHP_VERSION_ID >= 70400 ? 'compatible with PHP 7.4.' : 'loaded.')); - } - $this->useIgbinarySerialize = $useIgbinarySerialize; - } - - /** - * {@inheritdoc} - */ - public function marshall(array $values, ?array &$failed): array - { - $serialized = $failed = []; - - foreach ($values as $id => $value) { - try { - if ($this->useIgbinarySerialize) { - $serialized[$id] = igbinary_serialize($value); - } else { - $serialized[$id] = serialize($value); - } - } catch (\Exception $e) { - $failed[] = $id; - } - } - - return $serialized; - } - - /** - * {@inheritdoc} - */ - public function unmarshall(string $value) - { - if ('b:0;' === $value) { - return false; - } - if ('N;' === $value) { - return null; - } - static $igbinaryNull; - if ($value === ($igbinaryNull ?? $igbinaryNull = \extension_loaded('igbinary') && \PHP_VERSION_ID < 70400 ? igbinary_serialize(null) : false)) { - return null; - } - $unserializeCallbackHandler = ini_set('unserialize_callback_func', __CLASS__.'::handleUnserializeCallback'); - try { - if (':' === ($value[1] ?? ':')) { - if (false !== $value = unserialize($value)) { - return $value; - } - } elseif (false === $igbinaryNull) { - throw new \RuntimeException('Failed to unserialize values, did you forget to install the "igbinary" extension?'); - } elseif (null !== $value = igbinary_unserialize($value)) { - return $value; - } - - throw new \DomainException(error_get_last() ? error_get_last()['message'] : 'Failed to unserialize values.'); - } catch (\Error $e) { - throw new \ErrorException($e->getMessage(), $e->getCode(), E_ERROR, $e->getFile(), $e->getLine()); - } finally { - ini_set('unserialize_callback_func', $unserializeCallbackHandler); - } - } - - /** - * @internal - */ - public static function handleUnserializeCallback($class) - { - throw new \DomainException('Class not found: '.$class); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Marshaller/DeflateMarshaller.php b/srcs/phpmyadmin/vendor/symfony/cache/Marshaller/DeflateMarshaller.php deleted file mode 100644 index 5544806..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Marshaller/DeflateMarshaller.php +++ /dev/null @@ -1,53 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Marshaller; - -use Symfony\Component\Cache\Exception\CacheException; - -/** - * Compresses values using gzdeflate(). - * - * @author Nicolas Grekas - */ -class DeflateMarshaller implements MarshallerInterface -{ - private $marshaller; - - public function __construct(MarshallerInterface $marshaller) - { - if (!\function_exists('gzdeflate')) { - throw new CacheException('The "zlib" PHP extension is not loaded.'); - } - - $this->marshaller = $marshaller; - } - - /** - * {@inheritdoc} - */ - public function marshall(array $values, ?array &$failed): array - { - return array_map('gzdeflate', $this->marshaller->marshall($values, $failed)); - } - - /** - * {@inheritdoc} - */ - public function unmarshall(string $value) - { - if (false !== $inflatedValue = @gzinflate($value)) { - $value = $inflatedValue; - } - - return $this->marshaller->unmarshall($value); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Marshaller/MarshallerInterface.php b/srcs/phpmyadmin/vendor/symfony/cache/Marshaller/MarshallerInterface.php deleted file mode 100644 index cdd6c40..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Marshaller/MarshallerInterface.php +++ /dev/null @@ -1,40 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Marshaller; - -/** - * Serializes/unserializes PHP values. - * - * Implementations of this interface MUST deal with errors carefully. They MUST - * also deal with forward and backward compatibility at the storage format level. - * - * @author Nicolas Grekas - */ -interface MarshallerInterface -{ - /** - * Serializes a list of values. - * - * When serialization fails for a specific value, no exception should be - * thrown. Instead, its key should be listed in $failed. - */ - public function marshall(array $values, ?array &$failed): array; - - /** - * Unserializes a single value and throws an exception if anything goes wrong. - * - * @return mixed - * - * @throws \Exception Whenever unserialization fails - */ - public function unmarshall(string $value); -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Marshaller/TagAwareMarshaller.php b/srcs/phpmyadmin/vendor/symfony/cache/Marshaller/TagAwareMarshaller.php deleted file mode 100644 index 5d1e303..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Marshaller/TagAwareMarshaller.php +++ /dev/null @@ -1,89 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Marshaller; - -/** - * A marshaller optimized for data structures generated by AbstractTagAwareAdapter. - * - * @author Nicolas Grekas - */ -class TagAwareMarshaller implements MarshallerInterface -{ - private $marshaller; - - public function __construct(MarshallerInterface $marshaller = null) - { - $this->marshaller = $marshaller ?? new DefaultMarshaller(); - } - - /** - * {@inheritdoc} - */ - public function marshall(array $values, ?array &$failed): array - { - $failed = $notSerialized = $serialized = []; - - foreach ($values as $id => $value) { - if (\is_array($value) && \is_array($value['tags'] ?? null) && \array_key_exists('value', $value) && \count($value) === 2 + (\is_string($value['meta'] ?? null) && 8 === \strlen($value['meta']))) { - // if the value is an array with keys "tags", "value" and "meta", use a compact serialization format - // magic numbers in the form 9D-..-..-..-..-00-..-..-..-5F allow detecting this format quickly in unmarshall() - - $v = $this->marshaller->marshall($value, $f); - - if ($f) { - $f = []; - $failed[] = $id; - } else { - if ([] === $value['tags']) { - $v['tags'] = ''; - } - - $serialized[$id] = "\x9D".($value['meta'] ?? "\0\0\0\0\0\0\0\0").pack('N', \strlen($v['tags'])).$v['tags'].$v['value']; - $serialized[$id][9] = "\x5F"; - } - } else { - // other arbitratry values are serialized using the decorated marshaller below - $notSerialized[$id] = $value; - } - } - - if ($notSerialized) { - $serialized += $this->marshaller->marshall($notSerialized, $f); - $failed = array_merge($failed, $f); - } - - return $serialized; - } - - /** - * {@inheritdoc} - */ - public function unmarshall(string $value) - { - // detect the compact format used in marshall() using magic numbers in the form 9D-..-..-..-..-00-..-..-..-5F - if (13 >= \strlen($value) || "\x9D" !== $value[0] || "\0" !== $value[5] || "\x5F" !== $value[9]) { - return $this->marshaller->unmarshall($value); - } - - // data consists of value, tags and metadata which we need to unpack - $meta = substr($value, 1, 12); - $meta[8] = "\0"; - $tagLen = unpack('Nlen', $meta, 8)['len']; - $meta = substr($meta, 0, 8); - - return [ - 'value' => $this->marshaller->unmarshall(substr($value, 13 + $tagLen)), - 'tags' => $tagLen ? $this->marshaller->unmarshall(substr($value, 13, $tagLen)) : [], - 'meta' => "\0\0\0\0\0\0\0\0" === $meta ? null : $meta, - ]; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/PruneableInterface.php b/srcs/phpmyadmin/vendor/symfony/cache/PruneableInterface.php deleted file mode 100644 index 4261525..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/PruneableInterface.php +++ /dev/null @@ -1,23 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache; - -/** - * Interface extends psr-6 and psr-16 caches to allow for pruning (deletion) of all expired cache items. - */ -interface PruneableInterface -{ - /** - * @return bool - */ - public function prune(); -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Psr16Cache.php b/srcs/phpmyadmin/vendor/symfony/cache/Psr16Cache.php deleted file mode 100644 index 6501516..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Psr16Cache.php +++ /dev/null @@ -1,277 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache; - -use Psr\Cache\CacheException as Psr6CacheException; -use Psr\Cache\CacheItemPoolInterface; -use Psr\SimpleCache\CacheException as SimpleCacheException; -use Psr\SimpleCache\CacheInterface; -use Symfony\Component\Cache\Adapter\AdapterInterface; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\Traits\ProxyTrait; - -/** - * Turns a PSR-6 cache into a PSR-16 one. - * - * @author Nicolas Grekas - */ -class Psr16Cache implements CacheInterface, PruneableInterface, ResettableInterface -{ - use ProxyTrait; - - private const METADATA_EXPIRY_OFFSET = 1527506807; - - private $createCacheItem; - private $cacheItemPrototype; - - public function __construct(CacheItemPoolInterface $pool) - { - $this->pool = $pool; - - if (!$pool instanceof AdapterInterface) { - return; - } - $cacheItemPrototype = &$this->cacheItemPrototype; - $createCacheItem = \Closure::bind( - static function ($key, $value, $allowInt = false) use (&$cacheItemPrototype) { - $item = clone $cacheItemPrototype; - $item->key = $allowInt && \is_int($key) ? (string) $key : CacheItem::validateKey($key); - $item->value = $value; - $item->isHit = false; - - return $item; - }, - null, - CacheItem::class - ); - $this->createCacheItem = function ($key, $value, $allowInt = false) use ($createCacheItem) { - if (null === $this->cacheItemPrototype) { - $this->get($allowInt && \is_int($key) ? (string) $key : $key); - } - $this->createCacheItem = $createCacheItem; - - return $createCacheItem($key, null, $allowInt)->set($value); - }; - } - - /** - * {@inheritdoc} - */ - public function get($key, $default = null) - { - try { - $item = $this->pool->getItem($key); - } catch (SimpleCacheException $e) { - throw $e; - } catch (Psr6CacheException $e) { - throw new InvalidArgumentException($e->getMessage(), $e->getCode(), $e); - } - if (null === $this->cacheItemPrototype) { - $this->cacheItemPrototype = clone $item; - $this->cacheItemPrototype->set(null); - } - - return $item->isHit() ? $item->get() : $default; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function set($key, $value, $ttl = null) - { - try { - if (null !== $f = $this->createCacheItem) { - $item = $f($key, $value); - } else { - $item = $this->pool->getItem($key)->set($value); - } - } catch (SimpleCacheException $e) { - throw $e; - } catch (Psr6CacheException $e) { - throw new InvalidArgumentException($e->getMessage(), $e->getCode(), $e); - } - if (null !== $ttl) { - $item->expiresAfter($ttl); - } - - return $this->pool->save($item); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function delete($key) - { - try { - return $this->pool->deleteItem($key); - } catch (SimpleCacheException $e) { - throw $e; - } catch (Psr6CacheException $e) { - throw new InvalidArgumentException($e->getMessage(), $e->getCode(), $e); - } - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function clear() - { - return $this->pool->clear(); - } - - /** - * {@inheritdoc} - * - * @return iterable - */ - public function getMultiple($keys, $default = null) - { - if ($keys instanceof \Traversable) { - $keys = iterator_to_array($keys, false); - } elseif (!\is_array($keys)) { - throw new InvalidArgumentException(sprintf('Cache keys must be array or Traversable, "%s" given', \is_object($keys) ? \get_class($keys) : \gettype($keys))); - } - - try { - $items = $this->pool->getItems($keys); - } catch (SimpleCacheException $e) { - throw $e; - } catch (Psr6CacheException $e) { - throw new InvalidArgumentException($e->getMessage(), $e->getCode(), $e); - } - $values = []; - - if (!$this->pool instanceof AdapterInterface) { - foreach ($items as $key => $item) { - $values[$key] = $item->isHit() ? $item->get() : $default; - } - - return $values; - } - - foreach ($items as $key => $item) { - if (!$item->isHit()) { - $values[$key] = $default; - continue; - } - $values[$key] = $item->get(); - - if (!$metadata = $item->getMetadata()) { - continue; - } - unset($metadata[CacheItem::METADATA_TAGS]); - - if ($metadata) { - $values[$key] = ["\x9D".pack('VN', (int) (0.1 + $metadata[CacheItem::METADATA_EXPIRY] - self::METADATA_EXPIRY_OFFSET), $metadata[CacheItem::METADATA_CTIME])."\x5F" => $values[$key]]; - } - } - - return $values; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function setMultiple($values, $ttl = null) - { - $valuesIsArray = \is_array($values); - if (!$valuesIsArray && !$values instanceof \Traversable) { - throw new InvalidArgumentException(sprintf('Cache values must be array or Traversable, "%s" given', \is_object($values) ? \get_class($values) : \gettype($values))); - } - $items = []; - - try { - if (null !== $f = $this->createCacheItem) { - $valuesIsArray = false; - foreach ($values as $key => $value) { - $items[$key] = $f($key, $value, true); - } - } elseif ($valuesIsArray) { - $items = []; - foreach ($values as $key => $value) { - $items[] = (string) $key; - } - $items = $this->pool->getItems($items); - } else { - foreach ($values as $key => $value) { - if (\is_int($key)) { - $key = (string) $key; - } - $items[$key] = $this->pool->getItem($key)->set($value); - } - } - } catch (SimpleCacheException $e) { - throw $e; - } catch (Psr6CacheException $e) { - throw new InvalidArgumentException($e->getMessage(), $e->getCode(), $e); - } - $ok = true; - - foreach ($items as $key => $item) { - if ($valuesIsArray) { - $item->set($values[$key]); - } - if (null !== $ttl) { - $item->expiresAfter($ttl); - } - $ok = $this->pool->saveDeferred($item) && $ok; - } - - return $this->pool->commit() && $ok; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function deleteMultiple($keys) - { - if ($keys instanceof \Traversable) { - $keys = iterator_to_array($keys, false); - } elseif (!\is_array($keys)) { - throw new InvalidArgumentException(sprintf('Cache keys must be array or Traversable, "%s" given', \is_object($keys) ? \get_class($keys) : \gettype($keys))); - } - - try { - return $this->pool->deleteItems($keys); - } catch (SimpleCacheException $e) { - throw $e; - } catch (Psr6CacheException $e) { - throw new InvalidArgumentException($e->getMessage(), $e->getCode(), $e); - } - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function has($key) - { - try { - return $this->pool->hasItem($key); - } catch (SimpleCacheException $e) { - throw $e; - } catch (Psr6CacheException $e) { - throw new InvalidArgumentException($e->getMessage(), $e->getCode(), $e); - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/README.md b/srcs/phpmyadmin/vendor/symfony/cache/README.md deleted file mode 100644 index c4ab752..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/README.md +++ /dev/null @@ -1,18 +0,0 @@ -Symfony PSR-6 implementation for caching -======================================== - -This component provides an extended [PSR-6](http://www.php-fig.org/psr/psr-6/) -implementation for adding cache to your applications. It is designed to have a -low overhead so that caching is fastest. It ships with a few caching adapters -for the most widespread and suited to caching backends. It also provides a -`doctrine/cache` proxy adapter to cover more advanced caching needs and a proxy -adapter for greater interoperability between PSR-6 implementations. - -Resources ---------- - - * [Documentation](https://symfony.com/doc/current/components/cache.html) - * [Contributing](https://symfony.com/doc/current/contributing/index.html) - * [Report issues](https://github.com/symfony/symfony/issues) and - [send Pull Requests](https://github.com/symfony/symfony/pulls) - in the [main Symfony repository](https://github.com/symfony/symfony) diff --git a/srcs/phpmyadmin/vendor/symfony/cache/ResettableInterface.php b/srcs/phpmyadmin/vendor/symfony/cache/ResettableInterface.php deleted file mode 100644 index 7b0a853..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/ResettableInterface.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache; - -use Symfony\Contracts\Service\ResetInterface; - -/** - * Resets a pool's local state. - */ -interface ResettableInterface extends ResetInterface -{ -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Simple/AbstractCache.php b/srcs/phpmyadmin/vendor/symfony/cache/Simple/AbstractCache.php deleted file mode 100644 index b3477e9..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Simple/AbstractCache.php +++ /dev/null @@ -1,199 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Simple; - -use Psr\Log\LoggerAwareInterface; -use Psr\SimpleCache\CacheInterface as Psr16CacheInterface; -use Symfony\Component\Cache\Adapter\AbstractAdapter; -use Symfony\Component\Cache\CacheItem; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\ResettableInterface; -use Symfony\Component\Cache\Traits\AbstractTrait; -use Symfony\Contracts\Cache\CacheInterface; - -@trigger_error(sprintf('The "%s" class is deprecated since Symfony 4.3, use "%s" and type-hint for "%s" instead.', AbstractCache::class, AbstractAdapter::class, CacheInterface::class), E_USER_DEPRECATED); - -/** - * @deprecated since Symfony 4.3, use AbstractAdapter and type-hint for CacheInterface instead. - */ -abstract class AbstractCache implements Psr16CacheInterface, LoggerAwareInterface, ResettableInterface -{ - /** - * @internal - */ - protected const NS_SEPARATOR = ':'; - - use AbstractTrait { - deleteItems as private; - AbstractTrait::deleteItem as delete; - AbstractTrait::hasItem as has; - } - - private $defaultLifetime; - - protected function __construct(string $namespace = '', int $defaultLifetime = 0) - { - $this->defaultLifetime = max(0, $defaultLifetime); - $this->namespace = '' === $namespace ? '' : CacheItem::validateKey($namespace).':'; - if (null !== $this->maxIdLength && \strlen($namespace) > $this->maxIdLength - 24) { - throw new InvalidArgumentException(sprintf('Namespace must be %d chars max, %d given ("%s")', $this->maxIdLength - 24, \strlen($namespace), $namespace)); - } - } - - /** - * {@inheritdoc} - */ - public function get($key, $default = null) - { - $id = $this->getId($key); - - try { - foreach ($this->doFetch([$id]) as $value) { - return $value; - } - } catch (\Exception $e) { - CacheItem::log($this->logger, 'Failed to fetch key "{key}": '.$e->getMessage(), ['key' => $key, 'exception' => $e]); - } - - return $default; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function set($key, $value, $ttl = null) - { - CacheItem::validateKey($key); - - return $this->setMultiple([$key => $value], $ttl); - } - - /** - * {@inheritdoc} - * - * @return iterable - */ - public function getMultiple($keys, $default = null) - { - if ($keys instanceof \Traversable) { - $keys = iterator_to_array($keys, false); - } elseif (!\is_array($keys)) { - throw new InvalidArgumentException(sprintf('Cache keys must be array or Traversable, "%s" given', \is_object($keys) ? \get_class($keys) : \gettype($keys))); - } - $ids = []; - - foreach ($keys as $key) { - $ids[] = $this->getId($key); - } - try { - $values = $this->doFetch($ids); - } catch (\Exception $e) { - CacheItem::log($this->logger, 'Failed to fetch values: '.$e->getMessage(), ['keys' => $keys, 'exception' => $e]); - $values = []; - } - $ids = array_combine($ids, $keys); - - return $this->generateValues($values, $ids, $default); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function setMultiple($values, $ttl = null) - { - if (!\is_array($values) && !$values instanceof \Traversable) { - throw new InvalidArgumentException(sprintf('Cache values must be array or Traversable, "%s" given', \is_object($values) ? \get_class($values) : \gettype($values))); - } - $valuesById = []; - - foreach ($values as $key => $value) { - if (\is_int($key)) { - $key = (string) $key; - } - $valuesById[$this->getId($key)] = $value; - } - if (false === $ttl = $this->normalizeTtl($ttl)) { - return $this->doDelete(array_keys($valuesById)); - } - - try { - $e = $this->doSave($valuesById, $ttl); - } catch (\Exception $e) { - } - if (true === $e || [] === $e) { - return true; - } - $keys = []; - foreach (\is_array($e) ? $e : array_keys($valuesById) as $id) { - $keys[] = substr($id, \strlen($this->namespace)); - } - $message = 'Failed to save values'.($e instanceof \Exception ? ': '.$e->getMessage() : '.'); - CacheItem::log($this->logger, $message, ['keys' => $keys, 'exception' => $e instanceof \Exception ? $e : null]); - - return false; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function deleteMultiple($keys) - { - if ($keys instanceof \Traversable) { - $keys = iterator_to_array($keys, false); - } elseif (!\is_array($keys)) { - throw new InvalidArgumentException(sprintf('Cache keys must be array or Traversable, "%s" given', \is_object($keys) ? \get_class($keys) : \gettype($keys))); - } - - return $this->deleteItems($keys); - } - - private function normalizeTtl($ttl) - { - if (null === $ttl) { - return $this->defaultLifetime; - } - if ($ttl instanceof \DateInterval) { - $ttl = (int) \DateTime::createFromFormat('U', 0)->add($ttl)->format('U'); - } - if (\is_int($ttl)) { - return 0 < $ttl ? $ttl : false; - } - - throw new InvalidArgumentException(sprintf('Expiration date must be an integer, a DateInterval or null, "%s" given', \is_object($ttl) ? \get_class($ttl) : \gettype($ttl))); - } - - private function generateValues(iterable $values, array &$keys, $default): iterable - { - try { - foreach ($values as $id => $value) { - if (!isset($keys[$id])) { - $id = key($keys); - } - $key = $keys[$id]; - unset($keys[$id]); - yield $key => $value; - } - } catch (\Exception $e) { - CacheItem::log($this->logger, 'Failed to fetch values: '.$e->getMessage(), ['keys' => array_values($keys), 'exception' => $e]); - } - - foreach ($keys as $key) { - yield $key => $default; - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Simple/ApcuCache.php b/srcs/phpmyadmin/vendor/symfony/cache/Simple/ApcuCache.php deleted file mode 100644 index f1eb946..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Simple/ApcuCache.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Simple; - -use Symfony\Component\Cache\Adapter\ApcuAdapter; -use Symfony\Component\Cache\Traits\ApcuTrait; -use Symfony\Contracts\Cache\CacheInterface; - -@trigger_error(sprintf('The "%s" class is deprecated since Symfony 4.3, use "%s" and type-hint for "%s" instead.', ApcuCache::class, ApcuAdapter::class, CacheInterface::class), E_USER_DEPRECATED); - -/** - * @deprecated since Symfony 4.3, use ApcuAdapter and type-hint for CacheInterface instead. - */ -class ApcuCache extends AbstractCache -{ - use ApcuTrait; - - public function __construct(string $namespace = '', int $defaultLifetime = 0, string $version = null) - { - $this->init($namespace, $defaultLifetime, $version); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Simple/ArrayCache.php b/srcs/phpmyadmin/vendor/symfony/cache/Simple/ArrayCache.php deleted file mode 100644 index 7174825..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Simple/ArrayCache.php +++ /dev/null @@ -1,167 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Simple; - -use Psr\Log\LoggerAwareInterface; -use Psr\SimpleCache\CacheInterface as Psr16CacheInterface; -use Symfony\Component\Cache\Adapter\ArrayAdapter; -use Symfony\Component\Cache\CacheItem; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\ResettableInterface; -use Symfony\Component\Cache\Traits\ArrayTrait; -use Symfony\Contracts\Cache\CacheInterface; - -@trigger_error(sprintf('The "%s" class is deprecated since Symfony 4.3, use "%s" and type-hint for "%s" instead.', ArrayCache::class, ArrayAdapter::class, CacheInterface::class), E_USER_DEPRECATED); - -/** - * @deprecated since Symfony 4.3, use ArrayAdapter and type-hint for CacheInterface instead. - */ -class ArrayCache implements Psr16CacheInterface, LoggerAwareInterface, ResettableInterface -{ - use ArrayTrait { - ArrayTrait::deleteItem as delete; - ArrayTrait::hasItem as has; - } - - private $defaultLifetime; - - /** - * @param bool $storeSerialized Disabling serialization can lead to cache corruptions when storing mutable values but increases performance otherwise - */ - public function __construct(int $defaultLifetime = 0, bool $storeSerialized = true) - { - $this->defaultLifetime = $defaultLifetime; - $this->storeSerialized = $storeSerialized; - } - - /** - * {@inheritdoc} - */ - public function get($key, $default = null) - { - if (!\is_string($key) || !isset($this->expiries[$key])) { - CacheItem::validateKey($key); - } - if (!$isHit = isset($this->expiries[$key]) && ($this->expiries[$key] > microtime(true) || !$this->delete($key))) { - $this->values[$key] = null; - - return $default; - } - if (!$this->storeSerialized) { - return $this->values[$key]; - } - $value = $this->unfreeze($key, $isHit); - - return $isHit ? $value : $default; - } - - /** - * {@inheritdoc} - * - * @return iterable - */ - public function getMultiple($keys, $default = null) - { - if ($keys instanceof \Traversable) { - $keys = iterator_to_array($keys, false); - } elseif (!\is_array($keys)) { - throw new InvalidArgumentException(sprintf('Cache keys must be array or Traversable, "%s" given', \is_object($keys) ? \get_class($keys) : \gettype($keys))); - } - foreach ($keys as $key) { - if (!\is_string($key) || !isset($this->expiries[$key])) { - CacheItem::validateKey($key); - } - } - - return $this->generateItems($keys, microtime(true), function ($k, $v, $hit) use ($default) { return $hit ? $v : $default; }); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function deleteMultiple($keys) - { - if (!\is_array($keys) && !$keys instanceof \Traversable) { - throw new InvalidArgumentException(sprintf('Cache keys must be array or Traversable, "%s" given', \is_object($keys) ? \get_class($keys) : \gettype($keys))); - } - foreach ($keys as $key) { - $this->delete($key); - } - - return true; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function set($key, $value, $ttl = null) - { - if (!\is_string($key)) { - CacheItem::validateKey($key); - } - - return $this->setMultiple([$key => $value], $ttl); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function setMultiple($values, $ttl = null) - { - if (!\is_array($values) && !$values instanceof \Traversable) { - throw new InvalidArgumentException(sprintf('Cache values must be array or Traversable, "%s" given', \is_object($values) ? \get_class($values) : \gettype($values))); - } - $valuesArray = []; - - foreach ($values as $key => $value) { - if (!\is_int($key) && !(\is_string($key) && isset($this->expiries[$key]))) { - CacheItem::validateKey($key); - } - $valuesArray[$key] = $value; - } - if (false === $ttl = $this->normalizeTtl($ttl)) { - return $this->deleteMultiple(array_keys($valuesArray)); - } - $expiry = 0 < $ttl ? microtime(true) + $ttl : PHP_INT_MAX; - - foreach ($valuesArray as $key => $value) { - if ($this->storeSerialized && null === $value = $this->freeze($value, $key)) { - return false; - } - $this->values[$key] = $value; - $this->expiries[$key] = $expiry; - } - - return true; - } - - private function normalizeTtl($ttl) - { - if (null === $ttl) { - return $this->defaultLifetime; - } - if ($ttl instanceof \DateInterval) { - $ttl = (int) \DateTime::createFromFormat('U', 0)->add($ttl)->format('U'); - } - if (\is_int($ttl)) { - return 0 < $ttl ? $ttl : false; - } - - throw new InvalidArgumentException(sprintf('Expiration date must be an integer, a DateInterval or null, "%s" given', \is_object($ttl) ? \get_class($ttl) : \gettype($ttl))); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Simple/ChainCache.php b/srcs/phpmyadmin/vendor/symfony/cache/Simple/ChainCache.php deleted file mode 100644 index 57a169f..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Simple/ChainCache.php +++ /dev/null @@ -1,271 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Simple; - -use Psr\SimpleCache\CacheInterface as Psr16CacheInterface; -use Symfony\Component\Cache\Adapter\ChainAdapter; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\PruneableInterface; -use Symfony\Component\Cache\ResettableInterface; -use Symfony\Contracts\Cache\CacheInterface; -use Symfony\Contracts\Service\ResetInterface; - -@trigger_error(sprintf('The "%s" class is deprecated since Symfony 4.3, use "%s" and type-hint for "%s" instead.', ChainCache::class, ChainAdapter::class, CacheInterface::class), E_USER_DEPRECATED); - -/** - * Chains several caches together. - * - * Cached items are fetched from the first cache having them in its data store. - * They are saved and deleted in all caches at once. - * - * @deprecated since Symfony 4.3, use ChainAdapter and type-hint for CacheInterface instead. - */ -class ChainCache implements Psr16CacheInterface, PruneableInterface, ResettableInterface -{ - private $miss; - private $caches = []; - private $defaultLifetime; - private $cacheCount; - - /** - * @param Psr16CacheInterface[] $caches The ordered list of caches used to fetch cached items - * @param int $defaultLifetime The lifetime of items propagated from lower caches to upper ones - */ - public function __construct(array $caches, int $defaultLifetime = 0) - { - if (!$caches) { - throw new InvalidArgumentException('At least one cache must be specified.'); - } - - foreach ($caches as $cache) { - if (!$cache instanceof Psr16CacheInterface) { - throw new InvalidArgumentException(sprintf('The class "%s" does not implement the "%s" interface.', \get_class($cache), Psr16CacheInterface::class)); - } - } - - $this->miss = new \stdClass(); - $this->caches = array_values($caches); - $this->cacheCount = \count($this->caches); - $this->defaultLifetime = 0 < $defaultLifetime ? $defaultLifetime : null; - } - - /** - * {@inheritdoc} - */ - public function get($key, $default = null) - { - $miss = null !== $default && \is_object($default) ? $default : $this->miss; - - foreach ($this->caches as $i => $cache) { - $value = $cache->get($key, $miss); - - if ($miss !== $value) { - while (0 <= --$i) { - $this->caches[$i]->set($key, $value, $this->defaultLifetime); - } - - return $value; - } - } - - return $default; - } - - /** - * {@inheritdoc} - * - * @return iterable - */ - public function getMultiple($keys, $default = null) - { - $miss = null !== $default && \is_object($default) ? $default : $this->miss; - - return $this->generateItems($this->caches[0]->getMultiple($keys, $miss), 0, $miss, $default); - } - - private function generateItems(iterable $values, int $cacheIndex, $miss, $default): iterable - { - $missing = []; - $nextCacheIndex = $cacheIndex + 1; - $nextCache = isset($this->caches[$nextCacheIndex]) ? $this->caches[$nextCacheIndex] : null; - - foreach ($values as $k => $value) { - if ($miss !== $value) { - yield $k => $value; - } elseif (!$nextCache) { - yield $k => $default; - } else { - $missing[] = $k; - } - } - - if ($missing) { - $cache = $this->caches[$cacheIndex]; - $values = $this->generateItems($nextCache->getMultiple($missing, $miss), $nextCacheIndex, $miss, $default); - - foreach ($values as $k => $value) { - if ($miss !== $value) { - $cache->set($k, $value, $this->defaultLifetime); - yield $k => $value; - } else { - yield $k => $default; - } - } - } - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function has($key) - { - foreach ($this->caches as $cache) { - if ($cache->has($key)) { - return true; - } - } - - return false; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function clear() - { - $cleared = true; - $i = $this->cacheCount; - - while ($i--) { - $cleared = $this->caches[$i]->clear() && $cleared; - } - - return $cleared; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function delete($key) - { - $deleted = true; - $i = $this->cacheCount; - - while ($i--) { - $deleted = $this->caches[$i]->delete($key) && $deleted; - } - - return $deleted; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function deleteMultiple($keys) - { - if ($keys instanceof \Traversable) { - $keys = iterator_to_array($keys, false); - } - $deleted = true; - $i = $this->cacheCount; - - while ($i--) { - $deleted = $this->caches[$i]->deleteMultiple($keys) && $deleted; - } - - return $deleted; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function set($key, $value, $ttl = null) - { - $saved = true; - $i = $this->cacheCount; - - while ($i--) { - $saved = $this->caches[$i]->set($key, $value, $ttl) && $saved; - } - - return $saved; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function setMultiple($values, $ttl = null) - { - if ($values instanceof \Traversable) { - $valuesIterator = $values; - $values = function () use ($valuesIterator, &$values) { - $generatedValues = []; - - foreach ($valuesIterator as $key => $value) { - yield $key => $value; - $generatedValues[$key] = $value; - } - - $values = $generatedValues; - }; - $values = $values(); - } - $saved = true; - $i = $this->cacheCount; - - while ($i--) { - $saved = $this->caches[$i]->setMultiple($values, $ttl) && $saved; - } - - return $saved; - } - - /** - * {@inheritdoc} - */ - public function prune() - { - $pruned = true; - - foreach ($this->caches as $cache) { - if ($cache instanceof PruneableInterface) { - $pruned = $cache->prune() && $pruned; - } - } - - return $pruned; - } - - /** - * {@inheritdoc} - */ - public function reset() - { - foreach ($this->caches as $cache) { - if ($cache instanceof ResetInterface) { - $cache->reset(); - } - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Simple/DoctrineCache.php b/srcs/phpmyadmin/vendor/symfony/cache/Simple/DoctrineCache.php deleted file mode 100644 index 6a6d003..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Simple/DoctrineCache.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Simple; - -use Doctrine\Common\Cache\CacheProvider; -use Symfony\Component\Cache\Adapter\DoctrineAdapter; -use Symfony\Component\Cache\Traits\DoctrineTrait; -use Symfony\Contracts\Cache\CacheInterface; - -@trigger_error(sprintf('The "%s" class is deprecated since Symfony 4.3, use "%s" and type-hint for "%s" instead.', DoctrineCache::class, DoctrineAdapter::class, CacheInterface::class), E_USER_DEPRECATED); - -/** - * @deprecated since Symfony 4.3, use DoctrineAdapter and type-hint for CacheInterface instead. - */ -class DoctrineCache extends AbstractCache -{ - use DoctrineTrait; - - public function __construct(CacheProvider $provider, string $namespace = '', int $defaultLifetime = 0) - { - parent::__construct('', $defaultLifetime); - $this->provider = $provider; - $provider->setNamespace($namespace); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Simple/FilesystemCache.php b/srcs/phpmyadmin/vendor/symfony/cache/Simple/FilesystemCache.php deleted file mode 100644 index 8891abd..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Simple/FilesystemCache.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Simple; - -use Symfony\Component\Cache\Adapter\FilesystemAdapter; -use Symfony\Component\Cache\Marshaller\DefaultMarshaller; -use Symfony\Component\Cache\Marshaller\MarshallerInterface; -use Symfony\Component\Cache\PruneableInterface; -use Symfony\Component\Cache\Traits\FilesystemTrait; -use Symfony\Contracts\Cache\CacheInterface; - -@trigger_error(sprintf('The "%s" class is deprecated since Symfony 4.3, use "%s" and type-hint for "%s" instead.', FilesystemCache::class, FilesystemAdapter::class, CacheInterface::class), E_USER_DEPRECATED); - -/** - * @deprecated since Symfony 4.3, use FilesystemAdapter and type-hint for CacheInterface instead. - */ -class FilesystemCache extends AbstractCache implements PruneableInterface -{ - use FilesystemTrait; - - public function __construct(string $namespace = '', int $defaultLifetime = 0, string $directory = null, MarshallerInterface $marshaller = null) - { - $this->marshaller = $marshaller ?? new DefaultMarshaller(); - parent::__construct('', $defaultLifetime); - $this->init($namespace, $directory); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Simple/MemcachedCache.php b/srcs/phpmyadmin/vendor/symfony/cache/Simple/MemcachedCache.php deleted file mode 100644 index e193411..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Simple/MemcachedCache.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Simple; - -use Symfony\Component\Cache\Adapter\MemcachedAdapter; -use Symfony\Component\Cache\Marshaller\MarshallerInterface; -use Symfony\Component\Cache\Traits\MemcachedTrait; -use Symfony\Contracts\Cache\CacheInterface; - -@trigger_error(sprintf('The "%s" class is deprecated since Symfony 4.3, use "%s" and type-hint for "%s" instead.', MemcachedCache::class, MemcachedAdapter::class, CacheInterface::class), E_USER_DEPRECATED); - -/** - * @deprecated since Symfony 4.3, use MemcachedAdapter and type-hint for CacheInterface instead. - */ -class MemcachedCache extends AbstractCache -{ - use MemcachedTrait; - - protected $maxIdLength = 250; - - public function __construct(\Memcached $client, string $namespace = '', int $defaultLifetime = 0, MarshallerInterface $marshaller = null) - { - $this->init($client, $namespace, $defaultLifetime, $marshaller); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Simple/NullCache.php b/srcs/phpmyadmin/vendor/symfony/cache/Simple/NullCache.php deleted file mode 100644 index 35600fc..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Simple/NullCache.php +++ /dev/null @@ -1,104 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Simple; - -use Psr\SimpleCache\CacheInterface as Psr16CacheInterface; -use Symfony\Component\Cache\Adapter\NullAdapter; -use Symfony\Contracts\Cache\CacheInterface; - -@trigger_error(sprintf('The "%s" class is deprecated since Symfony 4.3, use "%s" and type-hint for "%s" instead.', NullCache::class, NullAdapter::class, CacheInterface::class), E_USER_DEPRECATED); - -/** - * @deprecated since Symfony 4.3, use NullAdapter and type-hint for CacheInterface instead. - */ -class NullCache implements Psr16CacheInterface -{ - /** - * {@inheritdoc} - */ - public function get($key, $default = null) - { - return $default; - } - - /** - * {@inheritdoc} - * - * @return iterable - */ - public function getMultiple($keys, $default = null) - { - foreach ($keys as $key) { - yield $key => $default; - } - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function has($key) - { - return false; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function clear() - { - return true; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function delete($key) - { - return true; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function deleteMultiple($keys) - { - return true; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function set($key, $value, $ttl = null) - { - return false; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function setMultiple($values, $ttl = null) - { - return false; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Simple/PdoCache.php b/srcs/phpmyadmin/vendor/symfony/cache/Simple/PdoCache.php deleted file mode 100644 index 07849e9..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Simple/PdoCache.php +++ /dev/null @@ -1,59 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Simple; - -use Symfony\Component\Cache\Adapter\PdoAdapter; -use Symfony\Component\Cache\Marshaller\MarshallerInterface; -use Symfony\Component\Cache\PruneableInterface; -use Symfony\Component\Cache\Traits\PdoTrait; -use Symfony\Contracts\Cache\CacheInterface; - -@trigger_error(sprintf('The "%s" class is deprecated since Symfony 4.3, use "%s" and type-hint for "%s" instead.', PdoCache::class, PdoAdapter::class, CacheInterface::class), E_USER_DEPRECATED); - -/** - * @deprecated since Symfony 4.3, use PdoAdapter and type-hint for CacheInterface instead. - */ -class PdoCache extends AbstractCache implements PruneableInterface -{ - use PdoTrait; - - protected $maxIdLength = 255; - - /** - * You can either pass an existing database connection as PDO instance or - * a Doctrine DBAL Connection or a DSN string that will be used to - * lazy-connect to the database when the cache is actually used. - * - * When a Doctrine DBAL Connection is passed, the cache table is created - * automatically when possible. Otherwise, use the createTable() method. - * - * List of available options: - * * db_table: The name of the table [default: cache_items] - * * db_id_col: The column where to store the cache id [default: item_id] - * * db_data_col: The column where to store the cache data [default: item_data] - * * db_lifetime_col: The column where to store the lifetime [default: item_lifetime] - * * db_time_col: The column where to store the timestamp [default: item_time] - * * db_username: The username when lazy-connect [default: ''] - * * db_password: The password when lazy-connect [default: ''] - * * db_connection_options: An array of driver-specific connection options [default: []] - * - * @param \PDO|Connection|string $connOrDsn a \PDO or Connection instance or DSN string or null - * - * @throws InvalidArgumentException When first argument is not PDO nor Connection nor string - * @throws InvalidArgumentException When PDO error mode is not PDO::ERRMODE_EXCEPTION - * @throws InvalidArgumentException When namespace contains invalid characters - */ - public function __construct($connOrDsn, string $namespace = '', int $defaultLifetime = 0, array $options = [], MarshallerInterface $marshaller = null) - { - $this->init($connOrDsn, $namespace, $defaultLifetime, $options, $marshaller); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Simple/PhpArrayCache.php b/srcs/phpmyadmin/vendor/symfony/cache/Simple/PhpArrayCache.php deleted file mode 100644 index 3711f46..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Simple/PhpArrayCache.php +++ /dev/null @@ -1,256 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Simple; - -use Psr\SimpleCache\CacheInterface as Psr16CacheInterface; -use Symfony\Component\Cache\Adapter\PhpArrayAdapter; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\PruneableInterface; -use Symfony\Component\Cache\ResettableInterface; -use Symfony\Component\Cache\Traits\PhpArrayTrait; -use Symfony\Contracts\Cache\CacheInterface; - -@trigger_error(sprintf('The "%s" class is deprecated since Symfony 4.3, use "%s" and type-hint for "%s" instead.', PhpArrayCache::class, PhpArrayAdapter::class, CacheInterface::class), E_USER_DEPRECATED); - -/** - * @deprecated since Symfony 4.3, use PhpArrayAdapter and type-hint for CacheInterface instead. - */ -class PhpArrayCache implements Psr16CacheInterface, PruneableInterface, ResettableInterface -{ - use PhpArrayTrait; - - /** - * @param string $file The PHP file were values are cached - * @param Psr16CacheInterface $fallbackPool A pool to fallback on when an item is not hit - */ - public function __construct(string $file, Psr16CacheInterface $fallbackPool) - { - $this->file = $file; - $this->pool = $fallbackPool; - } - - /** - * This adapter takes advantage of how PHP stores arrays in its latest versions. - * - * @param string $file The PHP file were values are cached - * @param CacheInterface $fallbackPool A pool to fallback on when an item is not hit - * - * @return Psr16CacheInterface - */ - public static function create($file, Psr16CacheInterface $fallbackPool) - { - return new static($file, $fallbackPool); - } - - /** - * {@inheritdoc} - */ - public function get($key, $default = null) - { - if (!\is_string($key)) { - throw new InvalidArgumentException(sprintf('Cache key must be string, "%s" given.', \is_object($key) ? \get_class($key) : \gettype($key))); - } - if (null === $this->values) { - $this->initialize(); - } - if (!isset($this->keys[$key])) { - return $this->pool->get($key, $default); - } - $value = $this->values[$this->keys[$key]]; - - if ('N;' === $value) { - return null; - } - if ($value instanceof \Closure) { - try { - return $value(); - } catch (\Throwable $e) { - return $default; - } - } - - return $value; - } - - /** - * {@inheritdoc} - * - * @return iterable - */ - public function getMultiple($keys, $default = null) - { - if ($keys instanceof \Traversable) { - $keys = iterator_to_array($keys, false); - } elseif (!\is_array($keys)) { - throw new InvalidArgumentException(sprintf('Cache keys must be array or Traversable, "%s" given', \is_object($keys) ? \get_class($keys) : \gettype($keys))); - } - foreach ($keys as $key) { - if (!\is_string($key)) { - throw new InvalidArgumentException(sprintf('Cache key must be string, "%s" given.', \is_object($key) ? \get_class($key) : \gettype($key))); - } - } - if (null === $this->values) { - $this->initialize(); - } - - return $this->generateItems($keys, $default); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function has($key) - { - if (!\is_string($key)) { - throw new InvalidArgumentException(sprintf('Cache key must be string, "%s" given.', \is_object($key) ? \get_class($key) : \gettype($key))); - } - if (null === $this->values) { - $this->initialize(); - } - - return isset($this->keys[$key]) || $this->pool->has($key); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function delete($key) - { - if (!\is_string($key)) { - throw new InvalidArgumentException(sprintf('Cache key must be string, "%s" given.', \is_object($key) ? \get_class($key) : \gettype($key))); - } - if (null === $this->values) { - $this->initialize(); - } - - return !isset($this->keys[$key]) && $this->pool->delete($key); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function deleteMultiple($keys) - { - if (!\is_array($keys) && !$keys instanceof \Traversable) { - throw new InvalidArgumentException(sprintf('Cache keys must be array or Traversable, "%s" given', \is_object($keys) ? \get_class($keys) : \gettype($keys))); - } - - $deleted = true; - $fallbackKeys = []; - - foreach ($keys as $key) { - if (!\is_string($key)) { - throw new InvalidArgumentException(sprintf('Cache key must be string, "%s" given.', \is_object($key) ? \get_class($key) : \gettype($key))); - } - - if (isset($this->keys[$key])) { - $deleted = false; - } else { - $fallbackKeys[] = $key; - } - } - if (null === $this->values) { - $this->initialize(); - } - - if ($fallbackKeys) { - $deleted = $this->pool->deleteMultiple($fallbackKeys) && $deleted; - } - - return $deleted; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function set($key, $value, $ttl = null) - { - if (!\is_string($key)) { - throw new InvalidArgumentException(sprintf('Cache key must be string, "%s" given.', \is_object($key) ? \get_class($key) : \gettype($key))); - } - if (null === $this->values) { - $this->initialize(); - } - - return !isset($this->keys[$key]) && $this->pool->set($key, $value, $ttl); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function setMultiple($values, $ttl = null) - { - if (!\is_array($values) && !$values instanceof \Traversable) { - throw new InvalidArgumentException(sprintf('Cache values must be array or Traversable, "%s" given', \is_object($values) ? \get_class($values) : \gettype($values))); - } - - $saved = true; - $fallbackValues = []; - - foreach ($values as $key => $value) { - if (!\is_string($key) && !\is_int($key)) { - throw new InvalidArgumentException(sprintf('Cache key must be string, "%s" given.', \is_object($key) ? \get_class($key) : \gettype($key))); - } - - if (isset($this->keys[$key])) { - $saved = false; - } else { - $fallbackValues[$key] = $value; - } - } - - if ($fallbackValues) { - $saved = $this->pool->setMultiple($fallbackValues, $ttl) && $saved; - } - - return $saved; - } - - private function generateItems(array $keys, $default): iterable - { - $fallbackKeys = []; - - foreach ($keys as $key) { - if (isset($this->keys[$key])) { - $value = $this->values[$this->keys[$key]]; - - if ('N;' === $value) { - yield $key => null; - } elseif ($value instanceof \Closure) { - try { - yield $key => $value(); - } catch (\Throwable $e) { - yield $key => $default; - } - } else { - yield $key => $value; - } - } else { - $fallbackKeys[] = $key; - } - } - - if ($fallbackKeys) { - yield from $this->pool->getMultiple($fallbackKeys, $default); - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Simple/PhpFilesCache.php b/srcs/phpmyadmin/vendor/symfony/cache/Simple/PhpFilesCache.php deleted file mode 100644 index 060244a..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Simple/PhpFilesCache.php +++ /dev/null @@ -1,45 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Simple; - -use Symfony\Component\Cache\Adapter\PhpFilesAdapter; -use Symfony\Component\Cache\Exception\CacheException; -use Symfony\Component\Cache\PruneableInterface; -use Symfony\Component\Cache\Traits\PhpFilesTrait; -use Symfony\Contracts\Cache\CacheInterface; - -@trigger_error(sprintf('The "%s" class is deprecated since Symfony 4.3, use "%s" and type-hint for "%s" instead.', PhpFilesCache::class, PhpFilesAdapter::class, CacheInterface::class), E_USER_DEPRECATED); - -/** - * @deprecated since Symfony 4.3, use PhpFilesAdapter and type-hint for CacheInterface instead. - */ -class PhpFilesCache extends AbstractCache implements PruneableInterface -{ - use PhpFilesTrait; - - /** - * @param $appendOnly Set to `true` to gain extra performance when the items stored in this pool never expire. - * Doing so is encouraged because it fits perfectly OPcache's memory model. - * - * @throws CacheException if OPcache is not enabled - */ - public function __construct(string $namespace = '', int $defaultLifetime = 0, string $directory = null, bool $appendOnly = false) - { - $this->appendOnly = $appendOnly; - self::$startTime = self::$startTime ?? $_SERVER['REQUEST_TIME'] ?? time(); - parent::__construct('', $defaultLifetime); - $this->init($namespace, $directory); - $this->includeHandler = static function ($type, $msg, $file, $line) { - throw new \ErrorException($msg, 0, $type, $file, $line); - }; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Simple/Psr6Cache.php b/srcs/phpmyadmin/vendor/symfony/cache/Simple/Psr6Cache.php deleted file mode 100644 index 090f48c..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Simple/Psr6Cache.php +++ /dev/null @@ -1,23 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Simple; - -use Symfony\Component\Cache\Psr16Cache; - -@trigger_error(sprintf('The "%s" class is deprecated since Symfony 4.3, use "%s" instead.', Psr6Cache::class, Psr16Cache::class), E_USER_DEPRECATED); - -/** - * @deprecated since Symfony 4.3, use Psr16Cache instead. - */ -class Psr6Cache extends Psr16Cache -{ -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Simple/RedisCache.php b/srcs/phpmyadmin/vendor/symfony/cache/Simple/RedisCache.php deleted file mode 100644 index 9655a75..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Simple/RedisCache.php +++ /dev/null @@ -1,35 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Simple; - -use Symfony\Component\Cache\Adapter\RedisAdapter; -use Symfony\Component\Cache\Marshaller\MarshallerInterface; -use Symfony\Component\Cache\Traits\RedisTrait; -use Symfony\Contracts\Cache\CacheInterface; - -@trigger_error(sprintf('The "%s" class is deprecated since Symfony 4.3, use "%s" and type-hint for "%s" instead.', RedisCache::class, RedisAdapter::class, CacheInterface::class), E_USER_DEPRECATED); - -/** - * @deprecated since Symfony 4.3, use RedisAdapter and type-hint for CacheInterface instead. - */ -class RedisCache extends AbstractCache -{ - use RedisTrait; - - /** - * @param \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface $redisClient - */ - public function __construct($redisClient, string $namespace = '', int $defaultLifetime = 0, MarshallerInterface $marshaller = null) - { - $this->init($redisClient, $namespace, $defaultLifetime, $marshaller); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Simple/TraceableCache.php b/srcs/phpmyadmin/vendor/symfony/cache/Simple/TraceableCache.php deleted file mode 100644 index eac77ba..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Simple/TraceableCache.php +++ /dev/null @@ -1,257 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Simple; - -use Psr\SimpleCache\CacheInterface as Psr16CacheInterface; -use Symfony\Component\Cache\PruneableInterface; -use Symfony\Component\Cache\ResettableInterface; -use Symfony\Contracts\Cache\CacheInterface; -use Symfony\Contracts\Service\ResetInterface; - -@trigger_error(sprintf('The "%s" class is deprecated since Symfony 4.3, use "%s" and type-hint for "%s" instead.', TraceableCache::class, TraceableAdapter::class, CacheInterface::class), E_USER_DEPRECATED); - -/** - * @deprecated since Symfony 4.3, use TraceableAdapter and type-hint for CacheInterface instead. - */ -class TraceableCache implements Psr16CacheInterface, PruneableInterface, ResettableInterface -{ - private $pool; - private $miss; - private $calls = []; - - public function __construct(Psr16CacheInterface $pool) - { - $this->pool = $pool; - $this->miss = new \stdClass(); - } - - /** - * {@inheritdoc} - */ - public function get($key, $default = null) - { - $miss = null !== $default && \is_object($default) ? $default : $this->miss; - $event = $this->start(__FUNCTION__); - try { - $value = $this->pool->get($key, $miss); - } finally { - $event->end = microtime(true); - } - if ($event->result[$key] = $miss !== $value) { - ++$event->hits; - } else { - ++$event->misses; - $value = $default; - } - - return $value; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function has($key) - { - $event = $this->start(__FUNCTION__); - try { - return $event->result[$key] = $this->pool->has($key); - } finally { - $event->end = microtime(true); - } - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function delete($key) - { - $event = $this->start(__FUNCTION__); - try { - return $event->result[$key] = $this->pool->delete($key); - } finally { - $event->end = microtime(true); - } - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function set($key, $value, $ttl = null) - { - $event = $this->start(__FUNCTION__); - try { - return $event->result[$key] = $this->pool->set($key, $value, $ttl); - } finally { - $event->end = microtime(true); - } - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function setMultiple($values, $ttl = null) - { - $event = $this->start(__FUNCTION__); - $event->result['keys'] = []; - - if ($values instanceof \Traversable) { - $values = function () use ($values, $event) { - foreach ($values as $k => $v) { - $event->result['keys'][] = $k; - yield $k => $v; - } - }; - $values = $values(); - } elseif (\is_array($values)) { - $event->result['keys'] = array_keys($values); - } - - try { - return $event->result['result'] = $this->pool->setMultiple($values, $ttl); - } finally { - $event->end = microtime(true); - } - } - - /** - * {@inheritdoc} - * - * @return iterable - */ - public function getMultiple($keys, $default = null) - { - $miss = null !== $default && \is_object($default) ? $default : $this->miss; - $event = $this->start(__FUNCTION__); - try { - $result = $this->pool->getMultiple($keys, $miss); - } finally { - $event->end = microtime(true); - } - $f = function () use ($result, $event, $miss, $default) { - $event->result = []; - foreach ($result as $key => $value) { - if ($event->result[$key] = $miss !== $value) { - ++$event->hits; - } else { - ++$event->misses; - $value = $default; - } - yield $key => $value; - } - }; - - return $f(); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function clear() - { - $event = $this->start(__FUNCTION__); - try { - return $event->result = $this->pool->clear(); - } finally { - $event->end = microtime(true); - } - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function deleteMultiple($keys) - { - $event = $this->start(__FUNCTION__); - if ($keys instanceof \Traversable) { - $keys = $event->result['keys'] = iterator_to_array($keys, false); - } else { - $event->result['keys'] = $keys; - } - try { - return $event->result['result'] = $this->pool->deleteMultiple($keys); - } finally { - $event->end = microtime(true); - } - } - - /** - * {@inheritdoc} - */ - public function prune() - { - if (!$this->pool instanceof PruneableInterface) { - return false; - } - $event = $this->start(__FUNCTION__); - try { - return $event->result = $this->pool->prune(); - } finally { - $event->end = microtime(true); - } - } - - /** - * {@inheritdoc} - */ - public function reset() - { - if (!$this->pool instanceof ResetInterface) { - return; - } - $event = $this->start(__FUNCTION__); - try { - $this->pool->reset(); - } finally { - $event->end = microtime(true); - } - } - - public function getCalls() - { - try { - return $this->calls; - } finally { - $this->calls = []; - } - } - - private function start(string $name): TraceableCacheEvent - { - $this->calls[] = $event = new TraceableCacheEvent(); - $event->name = $name; - $event->start = microtime(true); - - return $event; - } -} - -class TraceableCacheEvent -{ - public $name; - public $start; - public $end; - public $result; - public $hits = 0; - public $misses = 0; -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Traits/AbstractAdapterTrait.php b/srcs/phpmyadmin/vendor/symfony/cache/Traits/AbstractAdapterTrait.php deleted file mode 100644 index 8bf9354..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Traits/AbstractAdapterTrait.php +++ /dev/null @@ -1,155 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -use Psr\Cache\CacheItemInterface; -use Symfony\Component\Cache\CacheItem; - -/** - * @author Nicolas Grekas - * - * @internal - */ -trait AbstractAdapterTrait -{ - use AbstractTrait; - - /** - * @var \Closure needs to be set by class, signature is function(string , mixed , bool ) - */ - private $createCacheItem; - - /** - * @var \Closure needs to be set by class, signature is function(array , string , array <&expiredIds>) - */ - private $mergeByLifetime; - - /** - * {@inheritdoc} - */ - public function getItem($key) - { - if ($this->deferred) { - $this->commit(); - } - $id = $this->getId($key); - - $f = $this->createCacheItem; - $isHit = false; - $value = null; - - try { - foreach ($this->doFetch([$id]) as $value) { - $isHit = true; - } - - return $f($key, $value, $isHit); - } catch (\Exception $e) { - CacheItem::log($this->logger, 'Failed to fetch key "{key}": '.$e->getMessage(), ['key' => $key, 'exception' => $e]); - } - - return $f($key, null, false); - } - - /** - * {@inheritdoc} - */ - public function getItems(array $keys = []) - { - if ($this->deferred) { - $this->commit(); - } - $ids = []; - - foreach ($keys as $key) { - $ids[] = $this->getId($key); - } - try { - $items = $this->doFetch($ids); - } catch (\Exception $e) { - CacheItem::log($this->logger, 'Failed to fetch items: '.$e->getMessage(), ['keys' => $keys, 'exception' => $e]); - $items = []; - } - $ids = array_combine($ids, $keys); - - return $this->generateItems($items, $ids); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function save(CacheItemInterface $item) - { - if (!$item instanceof CacheItem) { - return false; - } - $this->deferred[$item->getKey()] = $item; - - return $this->commit(); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function saveDeferred(CacheItemInterface $item) - { - if (!$item instanceof CacheItem) { - return false; - } - $this->deferred[$item->getKey()] = $item; - - return true; - } - - public function __sleep() - { - throw new \BadMethodCallException('Cannot serialize '.__CLASS__); - } - - public function __wakeup() - { - throw new \BadMethodCallException('Cannot unserialize '.__CLASS__); - } - - public function __destruct() - { - if ($this->deferred) { - $this->commit(); - } - } - - private function generateItems(iterable $items, array &$keys): iterable - { - $f = $this->createCacheItem; - - try { - foreach ($items as $id => $value) { - if (!isset($keys[$id])) { - $id = key($keys); - } - $key = $keys[$id]; - unset($keys[$id]); - yield $key => $f($key, $value, true); - } - } catch (\Exception $e) { - CacheItem::log($this->logger, 'Failed to fetch items: '.$e->getMessage(), ['keys' => array_values($keys), 'exception' => $e]); - } - - foreach ($keys as $key) { - yield $key => $f($key, null, false); - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Traits/AbstractTrait.php b/srcs/phpmyadmin/vendor/symfony/cache/Traits/AbstractTrait.php deleted file mode 100644 index f9a1d8f..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Traits/AbstractTrait.php +++ /dev/null @@ -1,295 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -use Psr\Log\LoggerAwareTrait; -use Symfony\Component\Cache\CacheItem; - -/** - * @author Nicolas Grekas - * - * @internal - */ -trait AbstractTrait -{ - use LoggerAwareTrait; - - private $namespace; - private $namespaceVersion = ''; - private $versioningIsEnabled = false; - private $deferred = []; - private $ids = []; - - /** - * @var int|null The maximum length to enforce for identifiers or null when no limit applies - */ - protected $maxIdLength; - - /** - * Fetches several cache items. - * - * @param array $ids The cache identifiers to fetch - * - * @return array|\Traversable The corresponding values found in the cache - */ - abstract protected function doFetch(array $ids); - - /** - * Confirms if the cache contains specified cache item. - * - * @param string $id The identifier for which to check existence - * - * @return bool True if item exists in the cache, false otherwise - */ - abstract protected function doHave($id); - - /** - * Deletes all items in the pool. - * - * @param string $namespace The prefix used for all identifiers managed by this pool - * - * @return bool True if the pool was successfully cleared, false otherwise - */ - abstract protected function doClear($namespace); - - /** - * Removes multiple items from the pool. - * - * @param array $ids An array of identifiers that should be removed from the pool - * - * @return bool True if the items were successfully removed, false otherwise - */ - abstract protected function doDelete(array $ids); - - /** - * Persists several cache items immediately. - * - * @param array $values The values to cache, indexed by their cache identifier - * @param int $lifetime The lifetime of the cached values, 0 for persisting until manual cleaning - * - * @return array|bool The identifiers that failed to be cached or a boolean stating if caching succeeded or not - */ - abstract protected function doSave(array $values, $lifetime); - - /** - * {@inheritdoc} - * - * @return bool - */ - public function hasItem($key) - { - $id = $this->getId($key); - - if (isset($this->deferred[$key])) { - $this->commit(); - } - - try { - return $this->doHave($id); - } catch (\Exception $e) { - CacheItem::log($this->logger, 'Failed to check if key "{key}" is cached: '.$e->getMessage(), ['key' => $key, 'exception' => $e]); - - return false; - } - } - - /** - * {@inheritdoc} - * - * @param string $prefix - * - * @return bool - */ - public function clear(/*string $prefix = ''*/) - { - $prefix = 0 < \func_num_args() ? (string) func_get_arg(0) : ''; - $this->deferred = []; - if ($cleared = $this->versioningIsEnabled) { - $namespaceVersion = substr_replace(base64_encode(pack('V', mt_rand())), static::NS_SEPARATOR, 5); - try { - $cleared = $this->doSave([static::NS_SEPARATOR.$this->namespace => $namespaceVersion], 0); - } catch (\Exception $e) { - $cleared = false; - } - if ($cleared = true === $cleared || [] === $cleared) { - $this->namespaceVersion = $namespaceVersion; - $this->ids = []; - } - } - - try { - return $this->doClear($this->namespace.$prefix) || $cleared; - } catch (\Exception $e) { - CacheItem::log($this->logger, 'Failed to clear the cache: '.$e->getMessage(), ['exception' => $e]); - - return false; - } - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function deleteItem($key) - { - return $this->deleteItems([$key]); - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function deleteItems(array $keys) - { - $ids = []; - - foreach ($keys as $key) { - $ids[$key] = $this->getId($key); - unset($this->deferred[$key]); - } - - try { - if ($this->doDelete($ids)) { - return true; - } - } catch (\Exception $e) { - } - - $ok = true; - - // When bulk-delete failed, retry each item individually - foreach ($ids as $key => $id) { - try { - $e = null; - if ($this->doDelete([$id])) { - continue; - } - } catch (\Exception $e) { - } - $message = 'Failed to delete key "{key}"'.($e instanceof \Exception ? ': '.$e->getMessage() : '.'); - CacheItem::log($this->logger, $message, ['key' => $key, 'exception' => $e]); - $ok = false; - } - - return $ok; - } - - /** - * Enables/disables versioning of items. - * - * When versioning is enabled, clearing the cache is atomic and doesn't require listing existing keys to proceed, - * but old keys may need garbage collection and extra round-trips to the back-end are required. - * - * Calling this method also clears the memoized namespace version and thus forces a resynchonization of it. - * - * @param bool $enable - * - * @return bool the previous state of versioning - */ - public function enableVersioning($enable = true) - { - $wasEnabled = $this->versioningIsEnabled; - $this->versioningIsEnabled = (bool) $enable; - $this->namespaceVersion = ''; - $this->ids = []; - - return $wasEnabled; - } - - /** - * {@inheritdoc} - */ - public function reset() - { - if ($this->deferred) { - $this->commit(); - } - $this->namespaceVersion = ''; - $this->ids = []; - } - - /** - * Like the native unserialize() function but throws an exception if anything goes wrong. - * - * @param string $value - * - * @return mixed - * - * @throws \Exception - * - * @deprecated since Symfony 4.2, use DefaultMarshaller instead. - */ - protected static function unserialize($value) - { - @trigger_error(sprintf('The "%s::unserialize()" method is deprecated since Symfony 4.2, use DefaultMarshaller instead.', __CLASS__), E_USER_DEPRECATED); - - if ('b:0;' === $value) { - return false; - } - $unserializeCallbackHandler = ini_set('unserialize_callback_func', __CLASS__.'::handleUnserializeCallback'); - try { - if (false !== $value = unserialize($value)) { - return $value; - } - throw new \DomainException('Failed to unserialize cached value'); - } catch (\Error $e) { - throw new \ErrorException($e->getMessage(), $e->getCode(), E_ERROR, $e->getFile(), $e->getLine()); - } finally { - ini_set('unserialize_callback_func', $unserializeCallbackHandler); - } - } - - private function getId($key): string - { - if ($this->versioningIsEnabled && '' === $this->namespaceVersion) { - $this->ids = []; - $this->namespaceVersion = '1'.static::NS_SEPARATOR; - try { - foreach ($this->doFetch([static::NS_SEPARATOR.$this->namespace]) as $v) { - $this->namespaceVersion = $v; - } - if ('1'.static::NS_SEPARATOR === $this->namespaceVersion) { - $this->namespaceVersion = substr_replace(base64_encode(pack('V', time())), static::NS_SEPARATOR, 5); - $this->doSave([static::NS_SEPARATOR.$this->namespace => $this->namespaceVersion], 0); - } - } catch (\Exception $e) { - } - } - - if (\is_string($key) && isset($this->ids[$key])) { - return $this->namespace.$this->namespaceVersion.$this->ids[$key]; - } - CacheItem::validateKey($key); - $this->ids[$key] = $key; - - if (null === $this->maxIdLength) { - return $this->namespace.$this->namespaceVersion.$key; - } - if (\strlen($id = $this->namespace.$this->namespaceVersion.$key) > $this->maxIdLength) { - // Use MD5 to favor speed over security, which is not an issue here - $this->ids[$key] = $id = substr_replace(base64_encode(hash('md5', $key, true)), static::NS_SEPARATOR, -(\strlen($this->namespaceVersion) + 2)); - $id = $this->namespace.$this->namespaceVersion.$id; - } - - return $id; - } - - /** - * @internal - */ - public static function handleUnserializeCallback($class) - { - throw new \DomainException('Class not found: '.$class); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Traits/ApcuTrait.php b/srcs/phpmyadmin/vendor/symfony/cache/Traits/ApcuTrait.php deleted file mode 100644 index c55def6..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Traits/ApcuTrait.php +++ /dev/null @@ -1,121 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -use Symfony\Component\Cache\CacheItem; -use Symfony\Component\Cache\Exception\CacheException; - -/** - * @author Nicolas Grekas - * - * @internal - */ -trait ApcuTrait -{ - public static function isSupported() - { - return \function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN); - } - - private function init(string $namespace, int $defaultLifetime, ?string $version) - { - if (!static::isSupported()) { - throw new CacheException('APCu is not enabled'); - } - if ('cli' === \PHP_SAPI) { - ini_set('apc.use_request_time', 0); - } - parent::__construct($namespace, $defaultLifetime); - - if (null !== $version) { - CacheItem::validateKey($version); - - if (!apcu_exists($version.'@'.$namespace)) { - $this->doClear($namespace); - apcu_add($version.'@'.$namespace, null); - } - } - } - - /** - * {@inheritdoc} - */ - protected function doFetch(array $ids) - { - $unserializeCallbackHandler = ini_set('unserialize_callback_func', __CLASS__.'::handleUnserializeCallback'); - try { - $values = []; - foreach (apcu_fetch($ids, $ok) ?: [] as $k => $v) { - if (null !== $v || $ok) { - $values[$k] = $v; - } - } - - return $values; - } catch (\Error $e) { - throw new \ErrorException($e->getMessage(), $e->getCode(), E_ERROR, $e->getFile(), $e->getLine()); - } finally { - ini_set('unserialize_callback_func', $unserializeCallbackHandler); - } - } - - /** - * {@inheritdoc} - */ - protected function doHave($id) - { - return apcu_exists($id); - } - - /** - * {@inheritdoc} - */ - protected function doClear($namespace) - { - return isset($namespace[0]) && class_exists('APCuIterator', false) && ('cli' !== \PHP_SAPI || filter_var(ini_get('apc.enable_cli'), FILTER_VALIDATE_BOOLEAN)) - ? apcu_delete(new \APCuIterator(sprintf('/^%s/', preg_quote($namespace, '/')), APC_ITER_KEY)) - : apcu_clear_cache(); - } - - /** - * {@inheritdoc} - */ - protected function doDelete(array $ids) - { - foreach ($ids as $id) { - apcu_delete($id); - } - - return true; - } - - /** - * {@inheritdoc} - */ - protected function doSave(array $values, $lifetime) - { - try { - if (false === $failures = apcu_store($values, null, $lifetime)) { - $failures = $values; - } - - return array_keys($failures); - } catch (\Throwable $e) { - if (1 === \count($values)) { - // Workaround https://github.com/krakjoe/apcu/issues/170 - apcu_delete(key($values)); - } - - throw $e; - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Traits/ArrayTrait.php b/srcs/phpmyadmin/vendor/symfony/cache/Traits/ArrayTrait.php deleted file mode 100644 index 21872c5..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Traits/ArrayTrait.php +++ /dev/null @@ -1,183 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -use Psr\Log\LoggerAwareTrait; -use Symfony\Component\Cache\CacheItem; - -/** - * @author Nicolas Grekas - * - * @internal - */ -trait ArrayTrait -{ - use LoggerAwareTrait; - - private $storeSerialized; - private $values = []; - private $expiries = []; - - /** - * Returns all cached values, with cache miss as null. - * - * @return array - */ - public function getValues() - { - if (!$this->storeSerialized) { - return $this->values; - } - - $values = $this->values; - foreach ($values as $k => $v) { - if (null === $v || 'N;' === $v) { - continue; - } - if (!\is_string($v) || !isset($v[2]) || ':' !== $v[1]) { - $values[$k] = serialize($v); - } - } - - return $values; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function hasItem($key) - { - if (\is_string($key) && isset($this->expiries[$key]) && $this->expiries[$key] > microtime(true)) { - return true; - } - CacheItem::validateKey($key); - - return isset($this->expiries[$key]) && !$this->deleteItem($key); - } - - /** - * {@inheritdoc} - * - * @param string $prefix - * - * @return bool - */ - public function clear(/*string $prefix = ''*/) - { - $prefix = 0 < \func_num_args() ? (string) func_get_arg(0) : ''; - - if ('' !== $prefix) { - foreach ($this->values as $key => $value) { - if (0 === strpos($key, $prefix)) { - unset($this->values[$key], $this->expiries[$key]); - } - } - } else { - $this->values = $this->expiries = []; - } - - return true; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function deleteItem($key) - { - if (!\is_string($key) || !isset($this->expiries[$key])) { - CacheItem::validateKey($key); - } - unset($this->values[$key], $this->expiries[$key]); - - return true; - } - - /** - * {@inheritdoc} - */ - public function reset() - { - $this->clear(); - } - - private function generateItems(array $keys, float $now, callable $f): iterable - { - foreach ($keys as $i => $key) { - if (!$isHit = isset($this->expiries[$key]) && ($this->expiries[$key] > $now || !$this->deleteItem($key))) { - $this->values[$key] = $value = null; - } else { - $value = $this->storeSerialized ? $this->unfreeze($key, $isHit) : $this->values[$key]; - } - unset($keys[$i]); - - yield $key => $f($key, $value, $isHit); - } - - foreach ($keys as $key) { - yield $key => $f($key, null, false); - } - } - - private function freeze($value, $key) - { - if (null === $value) { - return 'N;'; - } - if (\is_string($value)) { - // Serialize strings if they could be confused with serialized objects or arrays - if ('N;' === $value || (isset($value[2]) && ':' === $value[1])) { - return serialize($value); - } - } elseif (!is_scalar($value)) { - try { - $serialized = serialize($value); - } catch (\Exception $e) { - $type = \is_object($value) ? \get_class($value) : \gettype($value); - $message = sprintf('Failed to save key "{key}" of type %s: %s', $type, $e->getMessage()); - CacheItem::log($this->logger, $message, ['key' => $key, 'exception' => $e]); - - return null; - } - // Keep value serialized if it contains any objects or any internal references - if ('C' === $serialized[0] || 'O' === $serialized[0] || preg_match('/;[OCRr]:[1-9]/', $serialized)) { - return $serialized; - } - } - - return $value; - } - - private function unfreeze(string $key, bool &$isHit) - { - if ('N;' === $value = $this->values[$key]) { - return null; - } - if (\is_string($value) && isset($value[2]) && ':' === $value[1]) { - try { - $value = unserialize($value); - } catch (\Exception $e) { - CacheItem::log($this->logger, 'Failed to unserialize key "{key}": '.$e->getMessage(), ['key' => $key, 'exception' => $e]); - $value = false; - } - if (false === $value) { - $this->values[$key] = $value = null; - $isHit = false; - } - } - - return $value; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Traits/ContractsTrait.php b/srcs/phpmyadmin/vendor/symfony/cache/Traits/ContractsTrait.php deleted file mode 100644 index c5827c3..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Traits/ContractsTrait.php +++ /dev/null @@ -1,97 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -use Psr\Log\LoggerInterface; -use Symfony\Component\Cache\Adapter\AdapterInterface; -use Symfony\Component\Cache\CacheItem; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\LockRegistry; -use Symfony\Contracts\Cache\CacheInterface; -use Symfony\Contracts\Cache\CacheTrait; -use Symfony\Contracts\Cache\ItemInterface; - -/** - * @author Nicolas Grekas - * - * @internal - */ -trait ContractsTrait -{ - use CacheTrait { - doGet as private contractsGet; - } - - private $callbackWrapper = [LockRegistry::class, 'compute']; - private $computing = []; - - /** - * Wraps the callback passed to ->get() in a callable. - * - * @return callable the previous callback wrapper - */ - public function setCallbackWrapper(?callable $callbackWrapper): callable - { - $previousWrapper = $this->callbackWrapper; - $this->callbackWrapper = $callbackWrapper ?? function (callable $callback, ItemInterface $item, bool &$save, CacheInterface $pool, \Closure $setMetadata, ?LoggerInterface $logger) { - return $callback($item, $save); - }; - - return $previousWrapper; - } - - private function doGet(AdapterInterface $pool, string $key, callable $callback, ?float $beta, array &$metadata = null) - { - if (0 > $beta = $beta ?? 1.0) { - throw new InvalidArgumentException(sprintf('Argument "$beta" provided to "%s::get()" must be a positive number, %f given.', \get_class($this), $beta)); - } - - static $setMetadata; - - $setMetadata = $setMetadata ?? \Closure::bind( - static function (CacheItem $item, float $startTime, ?array &$metadata) { - if ($item->expiry > $endTime = microtime(true)) { - $item->newMetadata[CacheItem::METADATA_EXPIRY] = $metadata[CacheItem::METADATA_EXPIRY] = $item->expiry; - $item->newMetadata[CacheItem::METADATA_CTIME] = $metadata[CacheItem::METADATA_CTIME] = (int) ceil(1000 * ($endTime - $startTime)); - } else { - unset($metadata[CacheItem::METADATA_EXPIRY], $metadata[CacheItem::METADATA_CTIME]); - } - }, - null, - CacheItem::class - ); - - return $this->contractsGet($pool, $key, function (CacheItem $item, bool &$save) use ($pool, $callback, $setMetadata, &$metadata, $key) { - // don't wrap nor save recursive calls - if (isset($this->computing[$key])) { - $value = $callback($item, $save); - $save = false; - - return $value; - } - - $this->computing[$key] = $key; - $startTime = microtime(true); - - try { - $value = ($this->callbackWrapper)($callback, $item, $save, $pool, function (CacheItem $item) use ($setMetadata, $startTime, &$metadata) { - $setMetadata($item, $startTime, $metadata); - }, $this->logger ?? null); - $setMetadata($item, $startTime, $metadata); - - return $value; - } finally { - unset($this->computing[$key]); - } - }, $beta, $metadata, $this->logger ?? null); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Traits/DoctrineTrait.php b/srcs/phpmyadmin/vendor/symfony/cache/Traits/DoctrineTrait.php deleted file mode 100644 index c87ecab..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Traits/DoctrineTrait.php +++ /dev/null @@ -1,98 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -/** - * @author Nicolas Grekas - * - * @internal - */ -trait DoctrineTrait -{ - private $provider; - - /** - * {@inheritdoc} - */ - public function reset() - { - parent::reset(); - $this->provider->setNamespace($this->provider->getNamespace()); - } - - /** - * {@inheritdoc} - */ - protected function doFetch(array $ids) - { - $unserializeCallbackHandler = ini_set('unserialize_callback_func', parent::class.'::handleUnserializeCallback'); - try { - return $this->provider->fetchMultiple($ids); - } catch (\Error $e) { - $trace = $e->getTrace(); - - if (isset($trace[0]['function']) && !isset($trace[0]['class'])) { - switch ($trace[0]['function']) { - case 'unserialize': - case 'apcu_fetch': - case 'apc_fetch': - throw new \ErrorException($e->getMessage(), $e->getCode(), E_ERROR, $e->getFile(), $e->getLine()); - } - } - - throw $e; - } finally { - ini_set('unserialize_callback_func', $unserializeCallbackHandler); - } - } - - /** - * {@inheritdoc} - */ - protected function doHave($id) - { - return $this->provider->contains($id); - } - - /** - * {@inheritdoc} - */ - protected function doClear($namespace) - { - $namespace = $this->provider->getNamespace(); - - return isset($namespace[0]) - ? $this->provider->deleteAll() - : $this->provider->flushAll(); - } - - /** - * {@inheritdoc} - */ - protected function doDelete(array $ids) - { - $ok = true; - foreach ($ids as $id) { - $ok = $this->provider->delete($id) && $ok; - } - - return $ok; - } - - /** - * {@inheritdoc} - */ - protected function doSave(array $values, $lifetime) - { - return $this->provider->saveMultiple($values, $lifetime); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Traits/FilesystemCommonTrait.php b/srcs/phpmyadmin/vendor/symfony/cache/Traits/FilesystemCommonTrait.php deleted file mode 100644 index d828982..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Traits/FilesystemCommonTrait.php +++ /dev/null @@ -1,183 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -use Symfony\Component\Cache\Exception\InvalidArgumentException; - -/** - * @author Nicolas Grekas - * - * @internal - */ -trait FilesystemCommonTrait -{ - private $directory; - private $tmp; - - private function init(string $namespace, ?string $directory) - { - if (!isset($directory[0])) { - $directory = sys_get_temp_dir().\DIRECTORY_SEPARATOR.'symfony-cache'; - } else { - $directory = realpath($directory) ?: $directory; - } - if (isset($namespace[0])) { - if (preg_match('#[^-+_.A-Za-z0-9]#', $namespace, $match)) { - throw new InvalidArgumentException(sprintf('Namespace contains "%s" but only characters in [-+_.A-Za-z0-9] are allowed.', $match[0])); - } - $directory .= \DIRECTORY_SEPARATOR.$namespace; - } - if (!file_exists($directory)) { - @mkdir($directory, 0777, true); - } - $directory .= \DIRECTORY_SEPARATOR; - // On Windows the whole path is limited to 258 chars - if ('\\' === \DIRECTORY_SEPARATOR && \strlen($directory) > 234) { - throw new InvalidArgumentException(sprintf('Cache directory too long (%s)', $directory)); - } - - $this->directory = $directory; - } - - /** - * {@inheritdoc} - */ - protected function doClear($namespace) - { - $ok = true; - - foreach ($this->scanHashDir($this->directory) as $file) { - if ('' !== $namespace && 0 !== strpos($this->getFileKey($file), $namespace)) { - continue; - } - - $ok = ($this->doUnlink($file) || !file_exists($file)) && $ok; - } - - return $ok; - } - - /** - * {@inheritdoc} - */ - protected function doDelete(array $ids) - { - $ok = true; - - foreach ($ids as $id) { - $file = $this->getFile($id); - $ok = (!file_exists($file) || $this->doUnlink($file) || !file_exists($file)) && $ok; - } - - return $ok; - } - - protected function doUnlink($file) - { - return @unlink($file); - } - - private function write(string $file, string $data, int $expiresAt = null) - { - set_error_handler(__CLASS__.'::throwError'); - try { - if (null === $this->tmp) { - $this->tmp = $this->directory.uniqid('', true); - } - file_put_contents($this->tmp, $data); - - if (null !== $expiresAt) { - touch($this->tmp, $expiresAt); - } - - return rename($this->tmp, $file); - } finally { - restore_error_handler(); - } - } - - private function getFile(string $id, bool $mkdir = false, string $directory = null) - { - // Use MD5 to favor speed over security, which is not an issue here - $hash = str_replace('/', '-', base64_encode(hash('md5', static::class.$id, true))); - $dir = ($directory ?? $this->directory).strtoupper($hash[0].\DIRECTORY_SEPARATOR.$hash[1].\DIRECTORY_SEPARATOR); - - if ($mkdir && !file_exists($dir)) { - @mkdir($dir, 0777, true); - } - - return $dir.substr($hash, 2, 20); - } - - private function getFileKey(string $file): string - { - return ''; - } - - private function scanHashDir(string $directory): \Generator - { - if (!file_exists($directory)) { - return; - } - - $chars = '+-ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; - - for ($i = 0; $i < 38; ++$i) { - if (!file_exists($directory.$chars[$i])) { - continue; - } - - for ($j = 0; $j < 38; ++$j) { - if (!file_exists($dir = $directory.$chars[$i].\DIRECTORY_SEPARATOR.$chars[$j])) { - continue; - } - - foreach (@scandir($dir, SCANDIR_SORT_NONE) ?: [] as $file) { - if ('.' !== $file && '..' !== $file) { - yield $dir.\DIRECTORY_SEPARATOR.$file; - } - } - } - } - } - - /** - * @internal - */ - public static function throwError($type, $message, $file, $line) - { - throw new \ErrorException($message, 0, $type, $file, $line); - } - - /** - * @return array - */ - public function __sleep() - { - throw new \BadMethodCallException('Cannot serialize '.__CLASS__); - } - - public function __wakeup() - { - throw new \BadMethodCallException('Cannot unserialize '.__CLASS__); - } - - public function __destruct() - { - if (method_exists(parent::class, '__destruct')) { - parent::__destruct(); - } - if (null !== $this->tmp && file_exists($this->tmp)) { - unlink($this->tmp); - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Traits/FilesystemTrait.php b/srcs/phpmyadmin/vendor/symfony/cache/Traits/FilesystemTrait.php deleted file mode 100644 index 185eb00..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Traits/FilesystemTrait.php +++ /dev/null @@ -1,124 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -use Symfony\Component\Cache\Exception\CacheException; - -/** - * @author Nicolas Grekas - * @author Rob Frawley 2nd - * - * @internal - */ -trait FilesystemTrait -{ - use FilesystemCommonTrait; - - private $marshaller; - - /** - * @return bool - */ - public function prune() - { - $time = time(); - $pruned = true; - - foreach ($this->scanHashDir($this->directory) as $file) { - if (!$h = @fopen($file, 'rb')) { - continue; - } - - if (($expiresAt = (int) fgets($h)) && $time >= $expiresAt) { - fclose($h); - $pruned = @unlink($file) && !file_exists($file) && $pruned; - } else { - fclose($h); - } - } - - return $pruned; - } - - /** - * {@inheritdoc} - */ - protected function doFetch(array $ids) - { - $values = []; - $now = time(); - - foreach ($ids as $id) { - $file = $this->getFile($id); - if (!file_exists($file) || !$h = @fopen($file, 'rb')) { - continue; - } - if (($expiresAt = (int) fgets($h)) && $now >= $expiresAt) { - fclose($h); - @unlink($file); - } else { - $i = rawurldecode(rtrim(fgets($h))); - $value = stream_get_contents($h); - fclose($h); - if ($i === $id) { - $values[$id] = $this->marshaller->unmarshall($value); - } - } - } - - return $values; - } - - /** - * {@inheritdoc} - */ - protected function doHave($id) - { - $file = $this->getFile($id); - - return file_exists($file) && (@filemtime($file) > time() || $this->doFetch([$id])); - } - - /** - * {@inheritdoc} - */ - protected function doSave(array $values, $lifetime) - { - $expiresAt = $lifetime ? (time() + $lifetime) : 0; - $values = $this->marshaller->marshall($values, $failed); - - foreach ($values as $id => $value) { - if (!$this->write($this->getFile($id, true), $expiresAt."\n".rawurlencode($id)."\n".$value, $expiresAt)) { - $failed[] = $id; - } - } - - if ($failed && !is_writable($this->directory)) { - throw new CacheException(sprintf('Cache directory is not writable (%s)', $this->directory)); - } - - return $failed; - } - - private function getFileKey(string $file): string - { - if (!$h = @fopen($file, 'rb')) { - return ''; - } - - fgets($h); // expiry - $encodedKey = fgets($h); - fclose($h); - - return rawurldecode(rtrim($encodedKey)); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Traits/MemcachedTrait.php b/srcs/phpmyadmin/vendor/symfony/cache/Traits/MemcachedTrait.php deleted file mode 100644 index 070eb0e..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Traits/MemcachedTrait.php +++ /dev/null @@ -1,325 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -use Symfony\Component\Cache\Exception\CacheException; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\Marshaller\DefaultMarshaller; -use Symfony\Component\Cache\Marshaller\MarshallerInterface; - -/** - * @author Rob Frawley 2nd - * @author Nicolas Grekas - * - * @internal - */ -trait MemcachedTrait -{ - private static $defaultClientOptions = [ - 'persistent_id' => null, - 'username' => null, - 'password' => null, - \Memcached::OPT_SERIALIZER => \Memcached::SERIALIZER_PHP, - ]; - - private $marshaller; - private $client; - private $lazyClient; - - public static function isSupported() - { - return \extension_loaded('memcached') && version_compare(phpversion('memcached'), '2.2.0', '>='); - } - - private function init(\Memcached $client, string $namespace, int $defaultLifetime, ?MarshallerInterface $marshaller) - { - if (!static::isSupported()) { - throw new CacheException('Memcached >= 2.2.0 is required'); - } - if ('Memcached' === \get_class($client)) { - $opt = $client->getOption(\Memcached::OPT_SERIALIZER); - if (\Memcached::SERIALIZER_PHP !== $opt && \Memcached::SERIALIZER_IGBINARY !== $opt) { - throw new CacheException('MemcachedAdapter: "serializer" option must be "php" or "igbinary".'); - } - $this->maxIdLength -= \strlen($client->getOption(\Memcached::OPT_PREFIX_KEY)); - $this->client = $client; - } else { - $this->lazyClient = $client; - } - - parent::__construct($namespace, $defaultLifetime); - $this->enableVersioning(); - $this->marshaller = $marshaller ?? new DefaultMarshaller(); - } - - /** - * Creates a Memcached instance. - * - * By default, the binary protocol, no block, and libketama compatible options are enabled. - * - * Examples for servers: - * - 'memcached://user:pass@localhost?weight=33' - * - [['localhost', 11211, 33]] - * - * @param array[]|string|string[] $servers An array of servers, a DSN, or an array of DSNs - * - * @return \Memcached - * - * @throws \ErrorException When invalid options or servers are provided - */ - public static function createConnection($servers, array $options = []) - { - if (\is_string($servers)) { - $servers = [$servers]; - } elseif (!\is_array($servers)) { - throw new InvalidArgumentException(sprintf('MemcachedAdapter::createClient() expects array or string as first argument, %s given.', \gettype($servers))); - } - if (!static::isSupported()) { - throw new CacheException('Memcached >= 2.2.0 is required'); - } - set_error_handler(function ($type, $msg, $file, $line) { throw new \ErrorException($msg, 0, $type, $file, $line); }); - try { - $options += static::$defaultClientOptions; - $client = new \Memcached($options['persistent_id']); - $username = $options['username']; - $password = $options['password']; - - // parse any DSN in $servers - foreach ($servers as $i => $dsn) { - if (\is_array($dsn)) { - continue; - } - if (0 !== strpos($dsn, 'memcached:')) { - throw new InvalidArgumentException(sprintf('Invalid Memcached DSN: %s does not start with "memcached:"', $dsn)); - } - $params = preg_replace_callback('#^memcached:(//)?(?:([^@]*+)@)?#', function ($m) use (&$username, &$password) { - if (!empty($m[2])) { - list($username, $password) = explode(':', $m[2], 2) + [1 => null]; - } - - return 'file:'.($m[1] ?? ''); - }, $dsn); - if (false === $params = parse_url($params)) { - throw new InvalidArgumentException(sprintf('Invalid Memcached DSN: %s', $dsn)); - } - $query = $hosts = []; - if (isset($params['query'])) { - parse_str($params['query'], $query); - - if (isset($query['host'])) { - if (!\is_array($hosts = $query['host'])) { - throw new InvalidArgumentException(sprintf('Invalid Memcached DSN: %s', $dsn)); - } - foreach ($hosts as $host => $weight) { - if (false === $port = strrpos($host, ':')) { - $hosts[$host] = [$host, 11211, (int) $weight]; - } else { - $hosts[$host] = [substr($host, 0, $port), (int) substr($host, 1 + $port), (int) $weight]; - } - } - $hosts = array_values($hosts); - unset($query['host']); - } - if ($hosts && !isset($params['host']) && !isset($params['path'])) { - unset($servers[$i]); - $servers = array_merge($servers, $hosts); - continue; - } - } - if (!isset($params['host']) && !isset($params['path'])) { - throw new InvalidArgumentException(sprintf('Invalid Memcached DSN: %s', $dsn)); - } - if (isset($params['path']) && preg_match('#/(\d+)$#', $params['path'], $m)) { - $params['weight'] = $m[1]; - $params['path'] = substr($params['path'], 0, -\strlen($m[0])); - } - $params += [ - 'host' => isset($params['host']) ? $params['host'] : $params['path'], - 'port' => isset($params['host']) ? 11211 : null, - 'weight' => 0, - ]; - if ($query) { - $params += $query; - $options = $query + $options; - } - - $servers[$i] = [$params['host'], $params['port'], $params['weight']]; - - if ($hosts) { - $servers = array_merge($servers, $hosts); - } - } - - // set client's options - unset($options['persistent_id'], $options['username'], $options['password'], $options['weight'], $options['lazy']); - $options = array_change_key_case($options, CASE_UPPER); - $client->setOption(\Memcached::OPT_BINARY_PROTOCOL, true); - $client->setOption(\Memcached::OPT_NO_BLOCK, true); - $client->setOption(\Memcached::OPT_TCP_NODELAY, true); - if (!\array_key_exists('LIBKETAMA_COMPATIBLE', $options) && !\array_key_exists(\Memcached::OPT_LIBKETAMA_COMPATIBLE, $options)) { - $client->setOption(\Memcached::OPT_LIBKETAMA_COMPATIBLE, true); - } - foreach ($options as $name => $value) { - if (\is_int($name)) { - continue; - } - if ('HASH' === $name || 'SERIALIZER' === $name || 'DISTRIBUTION' === $name) { - $value = \constant('Memcached::'.$name.'_'.strtoupper($value)); - } - $opt = \constant('Memcached::OPT_'.$name); - - unset($options[$name]); - $options[$opt] = $value; - } - $client->setOptions($options); - - // set client's servers, taking care of persistent connections - if (!$client->isPristine()) { - $oldServers = []; - foreach ($client->getServerList() as $server) { - $oldServers[] = [$server['host'], $server['port']]; - } - - $newServers = []; - foreach ($servers as $server) { - if (1 < \count($server)) { - $server = array_values($server); - unset($server[2]); - $server[1] = (int) $server[1]; - } - $newServers[] = $server; - } - - if ($oldServers !== $newServers) { - $client->resetServerList(); - $client->addServers($servers); - } - } else { - $client->addServers($servers); - } - - if (null !== $username || null !== $password) { - if (!method_exists($client, 'setSaslAuthData')) { - trigger_error('Missing SASL support: the memcached extension must be compiled with --enable-memcached-sasl.'); - } - $client->setSaslAuthData($username, $password); - } - - return $client; - } finally { - restore_error_handler(); - } - } - - /** - * {@inheritdoc} - */ - protected function doSave(array $values, $lifetime) - { - if (!$values = $this->marshaller->marshall($values, $failed)) { - return $failed; - } - - if ($lifetime && $lifetime > 30 * 86400) { - $lifetime += time(); - } - - $encodedValues = []; - foreach ($values as $key => $value) { - $encodedValues[rawurlencode($key)] = $value; - } - - return $this->checkResultCode($this->getClient()->setMulti($encodedValues, $lifetime)) ? $failed : false; - } - - /** - * {@inheritdoc} - */ - protected function doFetch(array $ids) - { - try { - $encodedIds = array_map('rawurlencode', $ids); - - $encodedResult = $this->checkResultCode($this->getClient()->getMulti($encodedIds)); - - $result = []; - foreach ($encodedResult as $key => $value) { - $result[rawurldecode($key)] = $this->marshaller->unmarshall($value); - } - - return $result; - } catch (\Error $e) { - throw new \ErrorException($e->getMessage(), $e->getCode(), E_ERROR, $e->getFile(), $e->getLine()); - } - } - - /** - * {@inheritdoc} - */ - protected function doHave($id) - { - return false !== $this->getClient()->get(rawurlencode($id)) || $this->checkResultCode(\Memcached::RES_SUCCESS === $this->client->getResultCode()); - } - - /** - * {@inheritdoc} - */ - protected function doDelete(array $ids) - { - $ok = true; - $encodedIds = array_map('rawurlencode', $ids); - foreach ($this->checkResultCode($this->getClient()->deleteMulti($encodedIds)) as $result) { - if (\Memcached::RES_SUCCESS !== $result && \Memcached::RES_NOTFOUND !== $result) { - $ok = false; - break; - } - } - - return $ok; - } - - /** - * {@inheritdoc} - */ - protected function doClear($namespace) - { - return '' === $namespace && $this->getClient()->flush(); - } - - private function checkResultCode($result) - { - $code = $this->client->getResultCode(); - - if (\Memcached::RES_SUCCESS === $code || \Memcached::RES_NOTFOUND === $code) { - return $result; - } - - throw new CacheException(sprintf('MemcachedAdapter client error: %s.', strtolower($this->client->getResultMessage()))); - } - - private function getClient(): \Memcached - { - if ($this->client) { - return $this->client; - } - - $opt = $this->lazyClient->getOption(\Memcached::OPT_SERIALIZER); - if (\Memcached::SERIALIZER_PHP !== $opt && \Memcached::SERIALIZER_IGBINARY !== $opt) { - throw new CacheException('MemcachedAdapter: "serializer" option must be "php" or "igbinary".'); - } - if ('' !== $prefix = (string) $this->lazyClient->getOption(\Memcached::OPT_PREFIX_KEY)) { - throw new CacheException(sprintf('MemcachedAdapter: "prefix_key" option must be empty when using proxified connections, "%s" given.', $prefix)); - } - - return $this->client = $this->lazyClient; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Traits/PdoTrait.php b/srcs/phpmyadmin/vendor/symfony/cache/Traits/PdoTrait.php deleted file mode 100644 index 3ee1f8c..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Traits/PdoTrait.php +++ /dev/null @@ -1,445 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -use Doctrine\DBAL\Connection; -use Doctrine\DBAL\DBALException; -use Doctrine\DBAL\Driver\ServerInfoAwareConnection; -use Doctrine\DBAL\DriverManager; -use Doctrine\DBAL\Exception\TableNotFoundException; -use Doctrine\DBAL\Schema\Schema; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\Marshaller\DefaultMarshaller; -use Symfony\Component\Cache\Marshaller\MarshallerInterface; - -/** - * @internal - */ -trait PdoTrait -{ - private $marshaller; - private $conn; - private $dsn; - private $driver; - private $serverVersion; - private $table = 'cache_items'; - private $idCol = 'item_id'; - private $dataCol = 'item_data'; - private $lifetimeCol = 'item_lifetime'; - private $timeCol = 'item_time'; - private $username = ''; - private $password = ''; - private $connectionOptions = []; - private $namespace; - - private function init($connOrDsn, string $namespace, int $defaultLifetime, array $options, ?MarshallerInterface $marshaller) - { - if (isset($namespace[0]) && preg_match('#[^-+.A-Za-z0-9]#', $namespace, $match)) { - throw new InvalidArgumentException(sprintf('Namespace contains "%s" but only characters in [-+.A-Za-z0-9] are allowed.', $match[0])); - } - - if ($connOrDsn instanceof \PDO) { - if (\PDO::ERRMODE_EXCEPTION !== $connOrDsn->getAttribute(\PDO::ATTR_ERRMODE)) { - throw new InvalidArgumentException(sprintf('"%s" requires PDO error mode attribute be set to throw Exceptions (i.e. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION))', __CLASS__)); - } - - $this->conn = $connOrDsn; - } elseif ($connOrDsn instanceof Connection) { - $this->conn = $connOrDsn; - } elseif (\is_string($connOrDsn)) { - $this->dsn = $connOrDsn; - } else { - throw new InvalidArgumentException(sprintf('"%s" requires PDO or Doctrine\DBAL\Connection instance or DSN string as first argument, "%s" given.', __CLASS__, \is_object($connOrDsn) ? \get_class($connOrDsn) : \gettype($connOrDsn))); - } - - $this->table = isset($options['db_table']) ? $options['db_table'] : $this->table; - $this->idCol = isset($options['db_id_col']) ? $options['db_id_col'] : $this->idCol; - $this->dataCol = isset($options['db_data_col']) ? $options['db_data_col'] : $this->dataCol; - $this->lifetimeCol = isset($options['db_lifetime_col']) ? $options['db_lifetime_col'] : $this->lifetimeCol; - $this->timeCol = isset($options['db_time_col']) ? $options['db_time_col'] : $this->timeCol; - $this->username = isset($options['db_username']) ? $options['db_username'] : $this->username; - $this->password = isset($options['db_password']) ? $options['db_password'] : $this->password; - $this->connectionOptions = isset($options['db_connection_options']) ? $options['db_connection_options'] : $this->connectionOptions; - $this->namespace = $namespace; - $this->marshaller = $marshaller ?? new DefaultMarshaller(); - - parent::__construct($namespace, $defaultLifetime); - } - - /** - * Creates the table to store cache items which can be called once for setup. - * - * Cache ID are saved in a column of maximum length 255. Cache data is - * saved in a BLOB. - * - * @throws \PDOException When the table already exists - * @throws DBALException When the table already exists - * @throws \DomainException When an unsupported PDO driver is used - */ - public function createTable() - { - // connect if we are not yet - $conn = $this->getConnection(); - - if ($conn instanceof Connection) { - $types = [ - 'mysql' => 'binary', - 'sqlite' => 'text', - 'pgsql' => 'string', - 'oci' => 'string', - 'sqlsrv' => 'string', - ]; - if (!isset($types[$this->driver])) { - throw new \DomainException(sprintf('Creating the cache table is currently not implemented for PDO driver "%s".', $this->driver)); - } - - $schema = new Schema(); - $table = $schema->createTable($this->table); - $table->addColumn($this->idCol, $types[$this->driver], ['length' => 255]); - $table->addColumn($this->dataCol, 'blob', ['length' => 16777215]); - $table->addColumn($this->lifetimeCol, 'integer', ['unsigned' => true, 'notnull' => false]); - $table->addColumn($this->timeCol, 'integer', ['unsigned' => true]); - $table->setPrimaryKey([$this->idCol]); - - foreach ($schema->toSql($conn->getDatabasePlatform()) as $sql) { - $conn->exec($sql); - } - - return; - } - - switch ($this->driver) { - case 'mysql': - // We use varbinary for the ID column because it prevents unwanted conversions: - // - character set conversions between server and client - // - trailing space removal - // - case-insensitivity - // - language processing like é == e - $sql = "CREATE TABLE $this->table ($this->idCol VARBINARY(255) NOT NULL PRIMARY KEY, $this->dataCol MEDIUMBLOB NOT NULL, $this->lifetimeCol INTEGER UNSIGNED, $this->timeCol INTEGER UNSIGNED NOT NULL) COLLATE utf8_bin, ENGINE = InnoDB"; - break; - case 'sqlite': - $sql = "CREATE TABLE $this->table ($this->idCol TEXT NOT NULL PRIMARY KEY, $this->dataCol BLOB NOT NULL, $this->lifetimeCol INTEGER, $this->timeCol INTEGER NOT NULL)"; - break; - case 'pgsql': - $sql = "CREATE TABLE $this->table ($this->idCol VARCHAR(255) NOT NULL PRIMARY KEY, $this->dataCol BYTEA NOT NULL, $this->lifetimeCol INTEGER, $this->timeCol INTEGER NOT NULL)"; - break; - case 'oci': - $sql = "CREATE TABLE $this->table ($this->idCol VARCHAR2(255) NOT NULL PRIMARY KEY, $this->dataCol BLOB NOT NULL, $this->lifetimeCol INTEGER, $this->timeCol INTEGER NOT NULL)"; - break; - case 'sqlsrv': - $sql = "CREATE TABLE $this->table ($this->idCol VARCHAR(255) NOT NULL PRIMARY KEY, $this->dataCol VARBINARY(MAX) NOT NULL, $this->lifetimeCol INTEGER, $this->timeCol INTEGER NOT NULL)"; - break; - default: - throw new \DomainException(sprintf('Creating the cache table is currently not implemented for PDO driver "%s".', $this->driver)); - } - - $conn->exec($sql); - } - - /** - * {@inheritdoc} - */ - public function prune() - { - $deleteSql = "DELETE FROM $this->table WHERE $this->lifetimeCol + $this->timeCol <= :time"; - - if ('' !== $this->namespace) { - $deleteSql .= " AND $this->idCol LIKE :namespace"; - } - - try { - $delete = $this->getConnection()->prepare($deleteSql); - } catch (TableNotFoundException $e) { - return true; - } catch (\PDOException $e) { - return true; - } - $delete->bindValue(':time', time(), \PDO::PARAM_INT); - - if ('' !== $this->namespace) { - $delete->bindValue(':namespace', sprintf('%s%%', $this->namespace), \PDO::PARAM_STR); - } - try { - return $delete->execute(); - } catch (TableNotFoundException $e) { - return true; - } catch (\PDOException $e) { - return true; - } - } - - /** - * {@inheritdoc} - */ - protected function doFetch(array $ids) - { - $now = time(); - $expired = []; - - $sql = str_pad('', (\count($ids) << 1) - 1, '?,'); - $sql = "SELECT $this->idCol, CASE WHEN $this->lifetimeCol IS NULL OR $this->lifetimeCol + $this->timeCol > ? THEN $this->dataCol ELSE NULL END FROM $this->table WHERE $this->idCol IN ($sql)"; - $stmt = $this->getConnection()->prepare($sql); - $stmt->bindValue($i = 1, $now, \PDO::PARAM_INT); - foreach ($ids as $id) { - $stmt->bindValue(++$i, $id); - } - $stmt->execute(); - - while ($row = $stmt->fetch(\PDO::FETCH_NUM)) { - if (null === $row[1]) { - $expired[] = $row[0]; - } else { - yield $row[0] => $this->marshaller->unmarshall(\is_resource($row[1]) ? stream_get_contents($row[1]) : $row[1]); - } - } - - if ($expired) { - $sql = str_pad('', (\count($expired) << 1) - 1, '?,'); - $sql = "DELETE FROM $this->table WHERE $this->lifetimeCol + $this->timeCol <= ? AND $this->idCol IN ($sql)"; - $stmt = $this->getConnection()->prepare($sql); - $stmt->bindValue($i = 1, $now, \PDO::PARAM_INT); - foreach ($expired as $id) { - $stmt->bindValue(++$i, $id); - } - $stmt->execute(); - } - } - - /** - * {@inheritdoc} - */ - protected function doHave($id) - { - $sql = "SELECT 1 FROM $this->table WHERE $this->idCol = :id AND ($this->lifetimeCol IS NULL OR $this->lifetimeCol + $this->timeCol > :time)"; - $stmt = $this->getConnection()->prepare($sql); - - $stmt->bindValue(':id', $id); - $stmt->bindValue(':time', time(), \PDO::PARAM_INT); - $stmt->execute(); - - return (bool) $stmt->fetchColumn(); - } - - /** - * {@inheritdoc} - */ - protected function doClear($namespace) - { - $conn = $this->getConnection(); - - if ('' === $namespace) { - if ('sqlite' === $this->driver) { - $sql = "DELETE FROM $this->table"; - } else { - $sql = "TRUNCATE TABLE $this->table"; - } - } else { - $sql = "DELETE FROM $this->table WHERE $this->idCol LIKE '$namespace%'"; - } - - try { - $conn->exec($sql); - } catch (TableNotFoundException $e) { - } catch (\PDOException $e) { - } - - return true; - } - - /** - * {@inheritdoc} - */ - protected function doDelete(array $ids) - { - $sql = str_pad('', (\count($ids) << 1) - 1, '?,'); - $sql = "DELETE FROM $this->table WHERE $this->idCol IN ($sql)"; - try { - $stmt = $this->getConnection()->prepare($sql); - $stmt->execute(array_values($ids)); - } catch (TableNotFoundException $e) { - } catch (\PDOException $e) { - } - - return true; - } - - /** - * {@inheritdoc} - */ - protected function doSave(array $values, $lifetime) - { - if (!$values = $this->marshaller->marshall($values, $failed)) { - return $failed; - } - - $conn = $this->getConnection(); - $driver = $this->driver; - $insertSql = "INSERT INTO $this->table ($this->idCol, $this->dataCol, $this->lifetimeCol, $this->timeCol) VALUES (:id, :data, :lifetime, :time)"; - - switch (true) { - case 'mysql' === $driver: - $sql = $insertSql." ON DUPLICATE KEY UPDATE $this->dataCol = VALUES($this->dataCol), $this->lifetimeCol = VALUES($this->lifetimeCol), $this->timeCol = VALUES($this->timeCol)"; - break; - case 'oci' === $driver: - // DUAL is Oracle specific dummy table - $sql = "MERGE INTO $this->table USING DUAL ON ($this->idCol = ?) ". - "WHEN NOT MATCHED THEN INSERT ($this->idCol, $this->dataCol, $this->lifetimeCol, $this->timeCol) VALUES (?, ?, ?, ?) ". - "WHEN MATCHED THEN UPDATE SET $this->dataCol = ?, $this->lifetimeCol = ?, $this->timeCol = ?"; - break; - case 'sqlsrv' === $driver && version_compare($this->getServerVersion(), '10', '>='): - // MERGE is only available since SQL Server 2008 and must be terminated by semicolon - // It also requires HOLDLOCK according to http://weblogs.sqlteam.com/dang/archive/2009/01/31/UPSERT-Race-Condition-With-MERGE.aspx - $sql = "MERGE INTO $this->table WITH (HOLDLOCK) USING (SELECT 1 AS dummy) AS src ON ($this->idCol = ?) ". - "WHEN NOT MATCHED THEN INSERT ($this->idCol, $this->dataCol, $this->lifetimeCol, $this->timeCol) VALUES (?, ?, ?, ?) ". - "WHEN MATCHED THEN UPDATE SET $this->dataCol = ?, $this->lifetimeCol = ?, $this->timeCol = ?;"; - break; - case 'sqlite' === $driver: - $sql = 'INSERT OR REPLACE'.substr($insertSql, 6); - break; - case 'pgsql' === $driver && version_compare($this->getServerVersion(), '9.5', '>='): - $sql = $insertSql." ON CONFLICT ($this->idCol) DO UPDATE SET ($this->dataCol, $this->lifetimeCol, $this->timeCol) = (EXCLUDED.$this->dataCol, EXCLUDED.$this->lifetimeCol, EXCLUDED.$this->timeCol)"; - break; - default: - $driver = null; - $sql = "UPDATE $this->table SET $this->dataCol = :data, $this->lifetimeCol = :lifetime, $this->timeCol = :time WHERE $this->idCol = :id"; - break; - } - - $now = time(); - $lifetime = $lifetime ?: null; - try { - $stmt = $conn->prepare($sql); - } catch (TableNotFoundException $e) { - if (!$conn->isTransactionActive() || \in_array($this->driver, ['pgsql', 'sqlite', 'sqlsrv'], true)) { - $this->createTable(); - } - $stmt = $conn->prepare($sql); - } catch (\PDOException $e) { - if (!$conn->inTransaction() || \in_array($this->driver, ['pgsql', 'sqlite', 'sqlsrv'], true)) { - $this->createTable(); - } - $stmt = $conn->prepare($sql); - } - - if ('sqlsrv' === $driver || 'oci' === $driver) { - $stmt->bindParam(1, $id); - $stmt->bindParam(2, $id); - $stmt->bindParam(3, $data, \PDO::PARAM_LOB); - $stmt->bindValue(4, $lifetime, \PDO::PARAM_INT); - $stmt->bindValue(5, $now, \PDO::PARAM_INT); - $stmt->bindParam(6, $data, \PDO::PARAM_LOB); - $stmt->bindValue(7, $lifetime, \PDO::PARAM_INT); - $stmt->bindValue(8, $now, \PDO::PARAM_INT); - } else { - $stmt->bindParam(':id', $id); - $stmt->bindParam(':data', $data, \PDO::PARAM_LOB); - $stmt->bindValue(':lifetime', $lifetime, \PDO::PARAM_INT); - $stmt->bindValue(':time', $now, \PDO::PARAM_INT); - } - if (null === $driver) { - $insertStmt = $conn->prepare($insertSql); - - $insertStmt->bindParam(':id', $id); - $insertStmt->bindParam(':data', $data, \PDO::PARAM_LOB); - $insertStmt->bindValue(':lifetime', $lifetime, \PDO::PARAM_INT); - $insertStmt->bindValue(':time', $now, \PDO::PARAM_INT); - } - - foreach ($values as $id => $data) { - try { - $stmt->execute(); - } catch (TableNotFoundException $e) { - if (!$conn->isTransactionActive() || \in_array($this->driver, ['pgsql', 'sqlite', 'sqlsrv'], true)) { - $this->createTable(); - } - $stmt->execute(); - } catch (\PDOException $e) { - if (!$conn->inTransaction() || \in_array($this->driver, ['pgsql', 'sqlite', 'sqlsrv'], true)) { - $this->createTable(); - } - $stmt->execute(); - } - if (null === $driver && !$stmt->rowCount()) { - try { - $insertStmt->execute(); - } catch (DBALException $e) { - } catch (\PDOException $e) { - // A concurrent write won, let it be - } - } - } - - return $failed; - } - - /** - * @return \PDO|Connection - */ - private function getConnection() - { - if (null === $this->conn) { - if (strpos($this->dsn, '://')) { - if (!class_exists(DriverManager::class)) { - throw new InvalidArgumentException(sprintf('Failed to parse the DSN "%s". Try running "composer require doctrine/dbal".', $this->dsn)); - } - $this->conn = DriverManager::getConnection(['url' => $this->dsn]); - } else { - $this->conn = new \PDO($this->dsn, $this->username, $this->password, $this->connectionOptions); - $this->conn->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); - } - } - if (null === $this->driver) { - if ($this->conn instanceof \PDO) { - $this->driver = $this->conn->getAttribute(\PDO::ATTR_DRIVER_NAME); - } else { - switch ($this->driver = $this->conn->getDriver()->getName()) { - case 'mysqli': - case 'pdo_mysql': - case 'drizzle_pdo_mysql': - $this->driver = 'mysql'; - break; - case 'pdo_sqlite': - $this->driver = 'sqlite'; - break; - case 'pdo_pgsql': - $this->driver = 'pgsql'; - break; - case 'oci8': - case 'pdo_oracle': - $this->driver = 'oci'; - break; - case 'pdo_sqlsrv': - $this->driver = 'sqlsrv'; - break; - } - } - } - - return $this->conn; - } - - private function getServerVersion(): string - { - if (null === $this->serverVersion) { - $conn = $this->conn instanceof \PDO ? $this->conn : $this->conn->getWrappedConnection(); - if ($conn instanceof \PDO) { - $this->serverVersion = $conn->getAttribute(\PDO::ATTR_SERVER_VERSION); - } elseif ($conn instanceof ServerInfoAwareConnection) { - $this->serverVersion = $conn->getServerVersion(); - } else { - $this->serverVersion = '0'; - } - } - - return $this->serverVersion; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Traits/PhpArrayTrait.php b/srcs/phpmyadmin/vendor/symfony/cache/Traits/PhpArrayTrait.php deleted file mode 100644 index 6e7c72c..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Traits/PhpArrayTrait.php +++ /dev/null @@ -1,169 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -use Symfony\Component\Cache\Adapter\AdapterInterface; -use Symfony\Component\Cache\CacheItem; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\VarExporter\VarExporter; - -/** - * @author Titouan Galopin - * @author Nicolas Grekas - * - * @internal - */ -trait PhpArrayTrait -{ - use ProxyTrait; - - private $file; - private $keys; - private $values; - - private static $valuesCache = []; - - /** - * Store an array of cached values. - * - * @param array $values The cached values - */ - public function warmUp(array $values) - { - if (file_exists($this->file)) { - if (!is_file($this->file)) { - throw new InvalidArgumentException(sprintf('Cache path exists and is not a file: %s.', $this->file)); - } - - if (!is_writable($this->file)) { - throw new InvalidArgumentException(sprintf('Cache file is not writable: %s.', $this->file)); - } - } else { - $directory = \dirname($this->file); - - if (!is_dir($directory) && !@mkdir($directory, 0777, true)) { - throw new InvalidArgumentException(sprintf('Cache directory does not exist and cannot be created: %s.', $directory)); - } - - if (!is_writable($directory)) { - throw new InvalidArgumentException(sprintf('Cache directory is not writable: %s.', $directory)); - } - } - - $dumpedValues = ''; - $dumpedMap = []; - $dump = <<<'EOF' - $value) { - CacheItem::validateKey(\is_int($key) ? (string) $key : $key); - $isStaticValue = true; - - if (null === $value) { - $value = "'N;'"; - } elseif (\is_object($value) || \is_array($value)) { - try { - $value = VarExporter::export($value, $isStaticValue); - } catch (\Exception $e) { - throw new InvalidArgumentException(sprintf('Cache key "%s" has non-serializable %s value.', $key, \is_object($value) ? \get_class($value) : 'array'), 0, $e); - } - } elseif (\is_string($value)) { - // Wrap "N;" in a closure to not confuse it with an encoded `null` - if ('N;' === $value) { - $isStaticValue = false; - } - $value = var_export($value, true); - } elseif (!is_scalar($value)) { - throw new InvalidArgumentException(sprintf('Cache key "%s" has non-serializable %s value.', $key, \gettype($value))); - } else { - $value = var_export($value, true); - } - - if (!$isStaticValue) { - $value = str_replace("\n", "\n ", $value); - $value = "static function () {\n return {$value};\n}"; - } - $hash = hash('md5', $value); - - if (null === $id = $dumpedMap[$hash] ?? null) { - $id = $dumpedMap[$hash] = \count($dumpedMap); - $dumpedValues .= "{$id} => {$value},\n"; - } - - $dump .= var_export($key, true)." => {$id},\n"; - } - - $dump .= "\n], [\n\n{$dumpedValues}\n]];\n"; - - $tmpFile = uniqid($this->file, true); - - file_put_contents($tmpFile, $dump); - @chmod($tmpFile, 0666 & ~umask()); - unset($serialized, $value, $dump); - - @rename($tmpFile, $this->file); - unset(self::$valuesCache[$this->file]); - - $this->initialize(); - } - - /** - * {@inheritdoc} - * - * @param string $prefix - * - * @return bool - */ - public function clear(/*string $prefix = ''*/) - { - $prefix = 0 < \func_num_args() ? (string) func_get_arg(0) : ''; - $this->keys = $this->values = []; - - $cleared = @unlink($this->file) || !file_exists($this->file); - unset(self::$valuesCache[$this->file]); - - if ($this->pool instanceof AdapterInterface) { - return $this->pool->clear($prefix) && $cleared; - } - - return $this->pool->clear() && $cleared; - } - - /** - * Load the cache file. - */ - private function initialize() - { - if (isset(self::$valuesCache[$this->file])) { - $values = self::$valuesCache[$this->file]; - } elseif (!file_exists($this->file)) { - $this->keys = $this->values = []; - - return; - } else { - $values = self::$valuesCache[$this->file] = (include $this->file) ?: [[], []]; - } - - if (2 !== \count($values) || !isset($values[0], $values[1])) { - $this->keys = $this->values = []; - } else { - list($this->keys, $this->values) = $values; - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Traits/PhpFilesTrait.php b/srcs/phpmyadmin/vendor/symfony/cache/Traits/PhpFilesTrait.php deleted file mode 100644 index 05b9d88..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Traits/PhpFilesTrait.php +++ /dev/null @@ -1,313 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -use Symfony\Component\Cache\Exception\CacheException; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\VarExporter\VarExporter; - -/** - * @author Piotr Stankowski - * @author Nicolas Grekas - * @author Rob Frawley 2nd - * - * @internal - */ -trait PhpFilesTrait -{ - use FilesystemCommonTrait { - doClear as private doCommonClear; - doDelete as private doCommonDelete; - } - - private $includeHandler; - private $appendOnly; - private $values = []; - private $files = []; - - private static $startTime; - private static $valuesCache = []; - - public static function isSupported() - { - self::$startTime = self::$startTime ?? $_SERVER['REQUEST_TIME'] ?? time(); - - return \function_exists('opcache_invalidate') && filter_var(ini_get('opcache.enable'), FILTER_VALIDATE_BOOLEAN) && (!\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) || filter_var(ini_get('opcache.enable_cli'), FILTER_VALIDATE_BOOLEAN)); - } - - /** - * @return bool - */ - public function prune() - { - $time = time(); - $pruned = true; - $getExpiry = true; - - set_error_handler($this->includeHandler); - try { - foreach ($this->scanHashDir($this->directory) as $file) { - try { - if (\is_array($expiresAt = include $file)) { - $expiresAt = $expiresAt[0]; - } - } catch (\ErrorException $e) { - $expiresAt = $time; - } - - if ($time >= $expiresAt) { - $pruned = $this->doUnlink($file) && !file_exists($file) && $pruned; - } - } - } finally { - restore_error_handler(); - } - - return $pruned; - } - - /** - * {@inheritdoc} - */ - protected function doFetch(array $ids) - { - if ($this->appendOnly) { - $now = 0; - $missingIds = []; - } else { - $now = time(); - $missingIds = $ids; - $ids = []; - } - $values = []; - - begin: - $getExpiry = false; - - foreach ($ids as $id) { - if (null === $value = $this->values[$id] ?? null) { - $missingIds[] = $id; - } elseif ('N;' === $value) { - $values[$id] = null; - } elseif (!\is_object($value)) { - $values[$id] = $value; - } elseif (!$value instanceof LazyValue) { - $values[$id] = $value(); - } elseif (false === $values[$id] = include $value->file) { - unset($values[$id], $this->values[$id]); - $missingIds[] = $id; - } - if (!$this->appendOnly) { - unset($this->values[$id]); - } - } - - if (!$missingIds) { - return $values; - } - - set_error_handler($this->includeHandler); - try { - $getExpiry = true; - - foreach ($missingIds as $k => $id) { - try { - $file = $this->files[$id] ?? $this->files[$id] = $this->getFile($id); - - if (isset(self::$valuesCache[$file])) { - [$expiresAt, $this->values[$id]] = self::$valuesCache[$file]; - } elseif (\is_array($expiresAt = include $file)) { - if ($this->appendOnly) { - self::$valuesCache[$file] = $expiresAt; - } - - [$expiresAt, $this->values[$id]] = $expiresAt; - } elseif ($now < $expiresAt) { - $this->values[$id] = new LazyValue($file); - } - - if ($now >= $expiresAt) { - unset($this->values[$id], $missingIds[$k], self::$valuesCache[$file]); - } - } catch (\ErrorException $e) { - unset($missingIds[$k]); - } - } - } finally { - restore_error_handler(); - } - - $ids = $missingIds; - $missingIds = []; - goto begin; - } - - /** - * {@inheritdoc} - */ - protected function doHave($id) - { - if ($this->appendOnly && isset($this->values[$id])) { - return true; - } - - set_error_handler($this->includeHandler); - try { - $file = $this->files[$id] ?? $this->files[$id] = $this->getFile($id); - $getExpiry = true; - - if (isset(self::$valuesCache[$file])) { - [$expiresAt, $value] = self::$valuesCache[$file]; - } elseif (\is_array($expiresAt = include $file)) { - if ($this->appendOnly) { - self::$valuesCache[$file] = $expiresAt; - } - - [$expiresAt, $value] = $expiresAt; - } elseif ($this->appendOnly) { - $value = new LazyValue($file); - } - } catch (\ErrorException $e) { - return false; - } finally { - restore_error_handler(); - } - if ($this->appendOnly) { - $now = 0; - $this->values[$id] = $value; - } else { - $now = time(); - } - - return $now < $expiresAt; - } - - /** - * {@inheritdoc} - */ - protected function doSave(array $values, $lifetime) - { - $ok = true; - $expiry = $lifetime ? time() + $lifetime : 'PHP_INT_MAX'; - $allowCompile = self::isSupported(); - - foreach ($values as $key => $value) { - unset($this->values[$key]); - $isStaticValue = true; - if (null === $value) { - $value = "'N;'"; - } elseif (\is_object($value) || \is_array($value)) { - try { - $value = VarExporter::export($value, $isStaticValue); - } catch (\Exception $e) { - throw new InvalidArgumentException(sprintf('Cache key "%s" has non-serializable %s value.', $key, \is_object($value) ? \get_class($value) : 'array'), 0, $e); - } - } elseif (\is_string($value)) { - // Wrap "N;" in a closure to not confuse it with an encoded `null` - if ('N;' === $value) { - $isStaticValue = false; - } - $value = var_export($value, true); - } elseif (!is_scalar($value)) { - throw new InvalidArgumentException(sprintf('Cache key "%s" has non-serializable %s value.', $key, \gettype($value))); - } else { - $value = var_export($value, true); - } - - $encodedKey = rawurlencode($key); - - if ($isStaticValue) { - $value = "return [{$expiry}, {$value}];"; - } elseif ($this->appendOnly) { - $value = "return [{$expiry}, static function () { return {$value}; }];"; - } else { - // We cannot use a closure here because of https://bugs.php.net/76982 - $value = str_replace('\Symfony\Component\VarExporter\Internal\\', '', $value); - $value = "namespace Symfony\Component\VarExporter\Internal;\n\nreturn \$getExpiry ? {$expiry} : {$value};"; - } - - $file = $this->files[$key] = $this->getFile($key, true); - // Since OPcache only compiles files older than the script execution start, set the file's mtime in the past - $ok = $this->write($file, "directory)) { - throw new CacheException(sprintf('Cache directory is not writable (%s)', $this->directory)); - } - - return $ok; - } - - /** - * {@inheritdoc} - */ - protected function doClear($namespace) - { - $this->values = []; - - return $this->doCommonClear($namespace); - } - - /** - * {@inheritdoc} - */ - protected function doDelete(array $ids) - { - foreach ($ids as $id) { - unset($this->values[$id]); - } - - return $this->doCommonDelete($ids); - } - - protected function doUnlink($file) - { - unset(self::$valuesCache[$file]); - - if (self::isSupported()) { - @opcache_invalidate($file, true); - } - - return @unlink($file); - } - - private function getFileKey(string $file): string - { - if (!$h = @fopen($file, 'rb')) { - return ''; - } - - $encodedKey = substr(fgets($h), 8); - fclose($h); - - return rawurldecode(rtrim($encodedKey)); - } -} - -/** - * @internal - */ -class LazyValue -{ - public $file; - - public function __construct(string $file) - { - $this->file = $file; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Traits/ProxyTrait.php b/srcs/phpmyadmin/vendor/symfony/cache/Traits/ProxyTrait.php deleted file mode 100644 index c86f360..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Traits/ProxyTrait.php +++ /dev/null @@ -1,43 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -use Symfony\Component\Cache\PruneableInterface; -use Symfony\Contracts\Service\ResetInterface; - -/** - * @author Nicolas Grekas - * - * @internal - */ -trait ProxyTrait -{ - private $pool; - - /** - * {@inheritdoc} - */ - public function prune() - { - return $this->pool instanceof PruneableInterface && $this->pool->prune(); - } - - /** - * {@inheritdoc} - */ - public function reset() - { - if ($this->pool instanceof ResetInterface) { - $this->pool->reset(); - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Traits/RedisClusterProxy.php b/srcs/phpmyadmin/vendor/symfony/cache/Traits/RedisClusterProxy.php deleted file mode 100644 index b4cef59..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Traits/RedisClusterProxy.php +++ /dev/null @@ -1,63 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -/** - * @author Alessandro Chitolina - * - * @internal - */ -class RedisClusterProxy -{ - private $redis; - private $initializer; - - public function __construct(\Closure $initializer) - { - $this->initializer = $initializer; - } - - public function __call($method, array $args) - { - $this->redis ?: $this->redis = $this->initializer->__invoke(); - - return $this->redis->{$method}(...$args); - } - - public function hscan($strKey, &$iIterator, $strPattern = null, $iCount = null) - { - $this->redis ?: $this->redis = $this->initializer->__invoke(); - - return $this->redis->hscan($strKey, $iIterator, $strPattern, $iCount); - } - - public function scan(&$iIterator, $strPattern = null, $iCount = null) - { - $this->redis ?: $this->redis = $this->initializer->__invoke(); - - return $this->redis->scan($iIterator, $strPattern, $iCount); - } - - public function sscan($strKey, &$iIterator, $strPattern = null, $iCount = null) - { - $this->redis ?: $this->redis = $this->initializer->__invoke(); - - return $this->redis->sscan($strKey, $iIterator, $strPattern, $iCount); - } - - public function zscan($strKey, &$iIterator, $strPattern = null, $iCount = null) - { - $this->redis ?: $this->redis = $this->initializer->__invoke(); - - return $this->redis->zscan($strKey, $iIterator, $strPattern, $iCount); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Traits/RedisProxy.php b/srcs/phpmyadmin/vendor/symfony/cache/Traits/RedisProxy.php deleted file mode 100644 index 2b0b857..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Traits/RedisProxy.php +++ /dev/null @@ -1,65 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -/** - * @author Nicolas Grekas - * - * @internal - */ -class RedisProxy -{ - private $redis; - private $initializer; - private $ready = false; - - public function __construct(\Redis $redis, \Closure $initializer) - { - $this->redis = $redis; - $this->initializer = $initializer; - } - - public function __call($method, array $args) - { - $this->ready ?: $this->ready = $this->initializer->__invoke($this->redis); - - return $this->redis->{$method}(...$args); - } - - public function hscan($strKey, &$iIterator, $strPattern = null, $iCount = null) - { - $this->ready ?: $this->ready = $this->initializer->__invoke($this->redis); - - return $this->redis->hscan($strKey, $iIterator, $strPattern, $iCount); - } - - public function scan(&$iIterator, $strPattern = null, $iCount = null) - { - $this->ready ?: $this->ready = $this->initializer->__invoke($this->redis); - - return $this->redis->scan($iIterator, $strPattern, $iCount); - } - - public function sscan($strKey, &$iIterator, $strPattern = null, $iCount = null) - { - $this->ready ?: $this->ready = $this->initializer->__invoke($this->redis); - - return $this->redis->sscan($strKey, $iIterator, $strPattern, $iCount); - } - - public function zscan($strKey, &$iIterator, $strPattern = null, $iCount = null) - { - $this->ready ?: $this->ready = $this->initializer->__invoke($this->redis); - - return $this->redis->zscan($strKey, $iIterator, $strPattern, $iCount); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/Traits/RedisTrait.php b/srcs/phpmyadmin/vendor/symfony/cache/Traits/RedisTrait.php deleted file mode 100644 index 9b65ccb..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/Traits/RedisTrait.php +++ /dev/null @@ -1,511 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -use Predis\Connection\Aggregate\ClusterInterface; -use Predis\Connection\Aggregate\RedisCluster; -use Predis\Response\Status; -use Symfony\Component\Cache\Exception\CacheException; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\Marshaller\DefaultMarshaller; -use Symfony\Component\Cache\Marshaller\MarshallerInterface; - -/** - * @author Aurimas Niekis - * @author Nicolas Grekas - * - * @internal - */ -trait RedisTrait -{ - private static $defaultConnectionOptions = [ - 'class' => null, - 'persistent' => 0, - 'persistent_id' => null, - 'timeout' => 30, - 'read_timeout' => 0, - 'retry_interval' => 0, - 'tcp_keepalive' => 0, - 'lazy' => null, - 'redis_cluster' => false, - 'redis_sentinel' => null, - 'dbindex' => 0, - 'failover' => 'none', - ]; - private $redis; - private $marshaller; - - /** - * @param \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface $redisClient - */ - private function init($redisClient, string $namespace, int $defaultLifetime, ?MarshallerInterface $marshaller) - { - parent::__construct($namespace, $defaultLifetime); - - if (preg_match('#[^-+_.A-Za-z0-9]#', $namespace, $match)) { - throw new InvalidArgumentException(sprintf('RedisAdapter namespace contains "%s" but only characters in [-+_.A-Za-z0-9] are allowed.', $match[0])); - } - - if (!$redisClient instanceof \Redis && !$redisClient instanceof \RedisArray && !$redisClient instanceof \RedisCluster && !$redisClient instanceof \Predis\ClientInterface && !$redisClient instanceof RedisProxy && !$redisClient instanceof RedisClusterProxy) { - throw new InvalidArgumentException(sprintf('%s() expects parameter 1 to be Redis, RedisArray, RedisCluster or Predis\ClientInterface, %s given.', __METHOD__, \is_object($redisClient) ? \get_class($redisClient) : \gettype($redisClient))); - } - - if ($redisClient instanceof \Predis\ClientInterface && $redisClient->getOptions()->exceptions) { - $options = clone $redisClient->getOptions(); - \Closure::bind(function () { $this->options['exceptions'] = false; }, $options, $options)(); - $redisClient = new $redisClient($redisClient->getConnection(), $options); - } - - $this->redis = $redisClient; - $this->marshaller = $marshaller ?? new DefaultMarshaller(); - } - - /** - * Creates a Redis connection using a DSN configuration. - * - * Example DSN: - * - redis://localhost - * - redis://example.com:1234 - * - redis://secret@example.com/13 - * - redis:///var/run/redis.sock - * - redis://secret@/var/run/redis.sock/13 - * - * @param string $dsn - * @param array $options See self::$defaultConnectionOptions - * - * @throws InvalidArgumentException when the DSN is invalid - * - * @return \Redis|\RedisCluster|\Predis\ClientInterface According to the "class" option - */ - public static function createConnection($dsn, array $options = []) - { - if (0 === strpos($dsn, 'redis:')) { - $scheme = 'redis'; - } elseif (0 === strpos($dsn, 'rediss:')) { - $scheme = 'rediss'; - } else { - throw new InvalidArgumentException(sprintf('Invalid Redis DSN: %s does not start with "redis:" or "rediss".', $dsn)); - } - - if (!\extension_loaded('redis') && !class_exists(\Predis\Client::class)) { - throw new CacheException(sprintf('Cannot find the "redis" extension nor the "predis/predis" package: %s', $dsn)); - } - - $params = preg_replace_callback('#^'.$scheme.':(//)?(?:(?:[^:@]*+:)?([^@]*+)@)?#', function ($m) use (&$auth) { - if (isset($m[2])) { - $auth = $m[2]; - } - - return 'file:'.($m[1] ?? ''); - }, $dsn); - - if (false === $params = parse_url($params)) { - throw new InvalidArgumentException(sprintf('Invalid Redis DSN: %s', $dsn)); - } - - $query = $hosts = []; - - if (isset($params['query'])) { - parse_str($params['query'], $query); - - if (isset($query['host'])) { - if (!\is_array($hosts = $query['host'])) { - throw new InvalidArgumentException(sprintf('Invalid Redis DSN: %s', $dsn)); - } - foreach ($hosts as $host => $parameters) { - if (\is_string($parameters)) { - parse_str($parameters, $parameters); - } - if (false === $i = strrpos($host, ':')) { - $hosts[$host] = ['scheme' => 'tcp', 'host' => $host, 'port' => 6379] + $parameters; - } elseif ($port = (int) substr($host, 1 + $i)) { - $hosts[$host] = ['scheme' => 'tcp', 'host' => substr($host, 0, $i), 'port' => $port] + $parameters; - } else { - $hosts[$host] = ['scheme' => 'unix', 'path' => substr($host, 0, $i)] + $parameters; - } - } - $hosts = array_values($hosts); - } - } - - if (isset($params['host']) || isset($params['path'])) { - if (!isset($params['dbindex']) && isset($params['path']) && preg_match('#/(\d+)$#', $params['path'], $m)) { - $params['dbindex'] = $m[1]; - $params['path'] = substr($params['path'], 0, -\strlen($m[0])); - } - - if (isset($params['host'])) { - array_unshift($hosts, ['scheme' => 'tcp', 'host' => $params['host'], 'port' => $params['port'] ?? 6379]); - } else { - array_unshift($hosts, ['scheme' => 'unix', 'path' => $params['path']]); - } - } - - if (!$hosts) { - throw new InvalidArgumentException(sprintf('Invalid Redis DSN: %s', $dsn)); - } - - if (isset($params['redis_sentinel']) && !class_exists(\Predis\Client::class)) { - throw new CacheException(sprintf('Redis Sentinel support requires the "predis/predis" package: %s', $dsn)); - } - - $params += $query + $options + self::$defaultConnectionOptions; - - if (null === $params['class'] && !isset($params['redis_sentinel']) && \extension_loaded('redis')) { - $class = $params['redis_cluster'] ? \RedisCluster::class : (1 < \count($hosts) ? \RedisArray::class : \Redis::class); - } else { - $class = null === $params['class'] ? \Predis\Client::class : $params['class']; - } - - if (is_a($class, \Redis::class, true)) { - $connect = $params['persistent'] || $params['persistent_id'] ? 'pconnect' : 'connect'; - $redis = new $class(); - - $initializer = function ($redis) use ($connect, $params, $dsn, $auth, $hosts) { - try { - @$redis->{$connect}($hosts[0]['host'] ?? $hosts[0]['path'], $hosts[0]['port'] ?? null, $params['timeout'], (string) $params['persistent_id'], $params['retry_interval']); - } catch (\RedisException $e) { - throw new InvalidArgumentException(sprintf('Redis connection failed (%s): %s', $e->getMessage(), $dsn)); - } - - set_error_handler(function ($type, $msg) use (&$error) { $error = $msg; }); - $isConnected = $redis->isConnected(); - restore_error_handler(); - if (!$isConnected) { - $error = preg_match('/^Redis::p?connect\(\): (.*)/', $error, $error) ? sprintf(' (%s)', $error[1]) : ''; - throw new InvalidArgumentException(sprintf('Redis connection failed%s: %s', $error, $dsn)); - } - - if ((null !== $auth && !$redis->auth($auth)) - || ($params['dbindex'] && !$redis->select($params['dbindex'])) - || ($params['read_timeout'] && !$redis->setOption(\Redis::OPT_READ_TIMEOUT, $params['read_timeout'])) - ) { - $e = preg_replace('/^ERR /', '', $redis->getLastError()); - throw new InvalidArgumentException(sprintf('Redis connection failed (%s): %s', $e, $dsn)); - } - - if (0 < $params['tcp_keepalive'] && \defined('Redis::OPT_TCP_KEEPALIVE')) { - $redis->setOption(\Redis::OPT_TCP_KEEPALIVE, $params['tcp_keepalive']); - } - - return true; - }; - - if ($params['lazy']) { - $redis = new RedisProxy($redis, $initializer); - } else { - $initializer($redis); - } - } elseif (is_a($class, \RedisArray::class, true)) { - foreach ($hosts as $i => $host) { - $hosts[$i] = 'tcp' === $host['scheme'] ? $host['host'].':'.$host['port'] : $host['path']; - } - $params['lazy_connect'] = $params['lazy'] ?? true; - $params['connect_timeout'] = $params['timeout']; - - try { - $redis = new $class($hosts, $params); - } catch (\RedisClusterException $e) { - throw new InvalidArgumentException(sprintf('Redis connection failed (%s): %s', $e->getMessage(), $dsn)); - } - - if (0 < $params['tcp_keepalive'] && \defined('Redis::OPT_TCP_KEEPALIVE')) { - $redis->setOption(\Redis::OPT_TCP_KEEPALIVE, $params['tcp_keepalive']); - } - } elseif (is_a($class, \RedisCluster::class, true)) { - $initializer = function () use ($class, $params, $dsn, $hosts) { - foreach ($hosts as $i => $host) { - $hosts[$i] = 'tcp' === $host['scheme'] ? $host['host'].':'.$host['port'] : $host['path']; - } - - try { - $redis = new $class(null, $hosts, $params['timeout'], $params['read_timeout'], (bool) $params['persistent']); - } catch (\RedisClusterException $e) { - throw new InvalidArgumentException(sprintf('Redis connection failed (%s): %s', $e->getMessage(), $dsn)); - } - - if (0 < $params['tcp_keepalive'] && \defined('Redis::OPT_TCP_KEEPALIVE')) { - $redis->setOption(\Redis::OPT_TCP_KEEPALIVE, $params['tcp_keepalive']); - } - switch ($params['failover']) { - case 'error': $redis->setOption(\RedisCluster::OPT_SLAVE_FAILOVER, \RedisCluster::FAILOVER_ERROR); break; - case 'distribute': $redis->setOption(\RedisCluster::OPT_SLAVE_FAILOVER, \RedisCluster::FAILOVER_DISTRIBUTE); break; - case 'slaves': $redis->setOption(\RedisCluster::OPT_SLAVE_FAILOVER, \RedisCluster::FAILOVER_DISTRIBUTE_SLAVES); break; - } - - return $redis; - }; - - $redis = $params['lazy'] ? new RedisClusterProxy($initializer) : $initializer(); - } elseif (is_a($class, \Predis\ClientInterface::class, true)) { - if ($params['redis_cluster']) { - $params['cluster'] = 'redis'; - if (isset($params['redis_sentinel'])) { - throw new InvalidArgumentException(sprintf('Cannot use both "redis_cluster" and "redis_sentinel" at the same time: %s', $dsn)); - } - } elseif (isset($params['redis_sentinel'])) { - $params['replication'] = 'sentinel'; - $params['service'] = $params['redis_sentinel']; - } - $params += ['parameters' => []]; - $params['parameters'] += [ - 'persistent' => $params['persistent'], - 'timeout' => $params['timeout'], - 'read_write_timeout' => $params['read_timeout'], - 'tcp_nodelay' => true, - ]; - if ($params['dbindex']) { - $params['parameters']['database'] = $params['dbindex']; - } - if (null !== $auth) { - $params['parameters']['password'] = $auth; - } - if (1 === \count($hosts) && !($params['redis_cluster'] || $params['redis_sentinel'])) { - $hosts = $hosts[0]; - } elseif (\in_array($params['failover'], ['slaves', 'distribute'], true) && !isset($params['replication'])) { - $params['replication'] = true; - $hosts[0] += ['alias' => 'master']; - } - $params['exceptions'] = false; - - $redis = new $class($hosts, array_diff_key($params, self::$defaultConnectionOptions)); - if (isset($params['redis_sentinel'])) { - $redis->getConnection()->setSentinelTimeout($params['timeout']); - } - } elseif (class_exists($class, false)) { - throw new InvalidArgumentException(sprintf('"%s" is not a subclass of "Redis", "RedisArray", "RedisCluster" nor "Predis\ClientInterface".', $class)); - } else { - throw new InvalidArgumentException(sprintf('Class "%s" does not exist.', $class)); - } - - return $redis; - } - - /** - * {@inheritdoc} - */ - protected function doFetch(array $ids) - { - if (!$ids) { - return []; - } - - $result = []; - - if ($this->redis instanceof \Predis\ClientInterface && $this->redis->getConnection() instanceof ClusterInterface) { - $values = $this->pipeline(function () use ($ids) { - foreach ($ids as $id) { - yield 'get' => [$id]; - } - }); - } else { - $values = $this->redis->mget($ids); - - if (!\is_array($values) || \count($values) !== \count($ids)) { - return []; - } - - $values = array_combine($ids, $values); - } - - foreach ($values as $id => $v) { - if ($v) { - $result[$id] = $this->marshaller->unmarshall($v); - } - } - - return $result; - } - - /** - * {@inheritdoc} - */ - protected function doHave($id) - { - return (bool) $this->redis->exists($id); - } - - /** - * {@inheritdoc} - */ - protected function doClear($namespace) - { - $cleared = true; - if ($this->redis instanceof \Predis\ClientInterface) { - $evalArgs = [0, $namespace]; - } else { - $evalArgs = [[$namespace], 0]; - } - - foreach ($this->getHosts() as $host) { - if (!isset($namespace[0])) { - $cleared = $host->flushDb() && $cleared; - continue; - } - - $info = $host->info('Server'); - $info = isset($info['Server']) ? $info['Server'] : $info; - - if (!version_compare($info['redis_version'], '2.8', '>=')) { - // As documented in Redis documentation (http://redis.io/commands/keys) using KEYS - // can hang your server when it is executed against large databases (millions of items). - // Whenever you hit this scale, you should really consider upgrading to Redis 2.8 or above. - $cleared = $host->eval("local keys=redis.call('KEYS',ARGV[1]..'*') for i=1,#keys,5000 do redis.call('DEL',unpack(keys,i,math.min(i+4999,#keys))) end return 1", $evalArgs[0], $evalArgs[1]) && $cleared; - continue; - } - - $cursor = null; - do { - $keys = $host instanceof \Predis\ClientInterface ? $host->scan($cursor, 'MATCH', $namespace.'*', 'COUNT', 1000) : $host->scan($cursor, $namespace.'*', 1000); - if (isset($keys[1]) && \is_array($keys[1])) { - $cursor = $keys[0]; - $keys = $keys[1]; - } - if ($keys) { - $this->doDelete($keys); - } - } while ($cursor = (int) $cursor); - } - - return $cleared; - } - - /** - * {@inheritdoc} - */ - protected function doDelete(array $ids) - { - if (!$ids) { - return true; - } - - if ($this->redis instanceof \Predis\ClientInterface && $this->redis->getConnection() instanceof ClusterInterface) { - $this->pipeline(function () use ($ids) { - foreach ($ids as $id) { - yield 'del' => [$id]; - } - })->rewind(); - } else { - $this->redis->del($ids); - } - - return true; - } - - /** - * {@inheritdoc} - */ - protected function doSave(array $values, $lifetime) - { - if (!$values = $this->marshaller->marshall($values, $failed)) { - return $failed; - } - - $results = $this->pipeline(function () use ($values, $lifetime) { - foreach ($values as $id => $value) { - if (0 >= $lifetime) { - yield 'set' => [$id, $value]; - } else { - yield 'setEx' => [$id, $lifetime, $value]; - } - } - }); - - foreach ($results as $id => $result) { - if (true !== $result && (!$result instanceof Status || Status::get('OK') !== $result)) { - $failed[] = $id; - } - } - - return $failed; - } - - private function pipeline(\Closure $generator, $redis = null): \Generator - { - $ids = []; - $redis = $redis ?? $this->redis; - - if ($redis instanceof RedisClusterProxy || $redis instanceof \RedisCluster || ($redis instanceof \Predis\ClientInterface && $redis->getConnection() instanceof RedisCluster)) { - // phpredis & predis don't support pipelining with RedisCluster - // see https://github.com/phpredis/phpredis/blob/develop/cluster.markdown#pipelining - // see https://github.com/nrk/predis/issues/267#issuecomment-123781423 - $results = []; - foreach ($generator() as $command => $args) { - $results[] = $redis->{$command}(...$args); - $ids[] = 'eval' === $command ? ($redis instanceof \Predis\ClientInterface ? $args[2] : $args[1][0]) : $args[0]; - } - } elseif ($redis instanceof \Predis\ClientInterface) { - $results = $redis->pipeline(static function ($redis) use ($generator, &$ids) { - foreach ($generator() as $command => $args) { - $redis->{$command}(...$args); - $ids[] = 'eval' === $command ? $args[2] : $args[0]; - } - }); - } elseif ($redis instanceof \RedisArray) { - $connections = $results = $ids = []; - foreach ($generator() as $command => $args) { - $id = 'eval' === $command ? $args[1][0] : $args[0]; - if (!isset($connections[$h = $redis->_target($id)])) { - $connections[$h] = [$redis->_instance($h), -1]; - $connections[$h][0]->multi(\Redis::PIPELINE); - } - $connections[$h][0]->{$command}(...$args); - $results[] = [$h, ++$connections[$h][1]]; - $ids[] = $id; - } - foreach ($connections as $h => $c) { - $connections[$h] = $c[0]->exec(); - } - foreach ($results as $k => list($h, $c)) { - $results[$k] = $connections[$h][$c]; - } - } else { - $redis->multi(\Redis::PIPELINE); - foreach ($generator() as $command => $args) { - $redis->{$command}(...$args); - $ids[] = 'eval' === $command ? $args[1][0] : $args[0]; - } - $results = $redis->exec(); - } - - foreach ($ids as $k => $id) { - yield $id => $results[$k]; - } - } - - private function getHosts(): array - { - $hosts = [$this->redis]; - if ($this->redis instanceof \Predis\ClientInterface) { - $connection = $this->redis->getConnection(); - if ($connection instanceof ClusterInterface && $connection instanceof \Traversable) { - $hosts = []; - foreach ($connection as $c) { - $hosts[] = new \Predis\Client($c); - } - } - } elseif ($this->redis instanceof \RedisArray) { - $hosts = []; - foreach ($this->redis->_hosts() as $host) { - $hosts[] = $this->redis->_instance($host); - } - } elseif ($this->redis instanceof RedisClusterProxy || $this->redis instanceof \RedisCluster) { - $hosts = []; - foreach ($this->redis->_masters() as $host) { - $hosts[] = $h = new \Redis(); - $h->connect($host[0], $host[1]); - } - } - - return $hosts; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/cache/composer.json b/srcs/phpmyadmin/vendor/symfony/cache/composer.json deleted file mode 100644 index 0f0033c..0000000 --- a/srcs/phpmyadmin/vendor/symfony/cache/composer.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "name": "symfony/cache", - "type": "library", - "description": "Symfony Cache component with PSR-6, PSR-16, and tags", - "keywords": ["caching", "psr6"], - "homepage": "https://symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "provide": { - "psr/cache-implementation": "1.0", - "psr/simple-cache-implementation": "1.0", - "symfony/cache-implementation": "1.0" - }, - "require": { - "php": "^7.1.3", - "psr/cache": "~1.0", - "psr/log": "~1.0", - "symfony/cache-contracts": "^1.1.7|^2", - "symfony/service-contracts": "^1.1|^2", - "symfony/var-exporter": "^4.2|^5.0" - }, - "require-dev": { - "cache/integration-tests": "dev-master", - "doctrine/cache": "~1.6", - "doctrine/dbal": "~2.5", - "predis/predis": "~1.1", - "psr/simple-cache": "^1.0", - "symfony/config": "^4.2|^5.0", - "symfony/dependency-injection": "^3.4|^4.1|^5.0", - "symfony/var-dumper": "^4.4|^5.0" - }, - "conflict": { - "doctrine/dbal": "<2.5", - "symfony/dependency-injection": "<3.4", - "symfony/http-kernel": "<4.4", - "symfony/var-dumper": "<4.4" - }, - "autoload": { - "psr-4": { "Symfony\\Component\\Cache\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/CHANGELOG.md b/srcs/phpmyadmin/vendor/symfony/config/CHANGELOG.md deleted file mode 100644 index a650e10..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/CHANGELOG.md +++ /dev/null @@ -1,108 +0,0 @@ -CHANGELOG -========= - -4.4.0 ------ - - * added a way to exclude patterns of resources from being imported by the `import()` method - -4.3.0 ------ - - * deprecated using environment variables with `cannotBeEmpty()` if the value is validated with `validate()` - * made `Resource\*` classes final and not implement `Serializable` anymore - * deprecated the `root()` method in `TreeBuilder`, pass the root node information to the constructor instead - -4.2.0 ------ - - * deprecated constructing a `TreeBuilder` without passing root node information - * renamed `FileLoaderLoadException` to `LoaderLoadException` - -4.1.0 ------ - - * added `setPathSeparator` method to `NodeBuilder` class - * added third `$pathSeparator` constructor argument to `BaseNode` - * the `Processor` class has been made final - -4.0.0 ------ - - * removed `ConfigCachePass` - -3.4.0 ------ - - * added `setDeprecated()` method to indicate a deprecated node - * added `XmlUtils::parse()` method to parse an XML string - * deprecated `ConfigCachePass` - -3.3.0 ------ - - * added `ReflectionClassResource` class - * added second `$exists` constructor argument to `ClassExistenceResource` - * made `ClassExistenceResource` work with interfaces and traits - * added `ConfigCachePass` (originally in FrameworkBundle) - * added `castToArray()` helper to turn any config value into an array - -3.0.0 ------ - - * removed `ReferenceDumper` class - * removed the `ResourceInterface::isFresh()` method - * removed `BCResourceInterfaceChecker` class - * removed `ResourceInterface::getResource()` method - -2.8.0 ------ - -The edge case of defining just one value for nodes of type Enum is now allowed: - -```php -$rootNode - ->children() - ->enumNode('variable') - ->values(['value']) - ->end() - ->end() -; -``` - -Before: `InvalidArgumentException` (variable must contain at least two -distinct elements). -After: the code will work as expected and it will restrict the values of the -`variable` option to just `value`. - - * deprecated the `ResourceInterface::isFresh()` method. If you implement custom resource types and they - can be validated that way, make them implement the new `SelfCheckingResourceInterface`. - * deprecated the getResource() method in ResourceInterface. You can still call this method - on concrete classes implementing the interface, but it does not make sense at the interface - level as you need to know about the particular type of resource at hand to understand the - semantics of the returned value. - -2.7.0 ------ - - * added `ConfigCacheInterface`, `ConfigCacheFactoryInterface` and a basic `ConfigCacheFactory` - implementation to delegate creation of ConfigCache instances - -2.2.0 ------ - - * added `ArrayNodeDefinition::canBeEnabled()` and `ArrayNodeDefinition::canBeDisabled()` - to ease configuration when some sections are respectively disabled / enabled - by default. - * added a `normalizeKeys()` method for array nodes (to avoid key normalization) - * added numerical type handling for config definitions - * added convenience methods for optional configuration sections to `ArrayNodeDefinition` - * added a utils class for XML manipulations - -2.1.0 ------ - - * added a way to add documentation on configuration - * implemented `Serializable` on resources - * `LoaderResolverInterface` is now used instead of `LoaderResolver` for type - hinting diff --git a/srcs/phpmyadmin/vendor/symfony/config/ConfigCache.php b/srcs/phpmyadmin/vendor/symfony/config/ConfigCache.php deleted file mode 100644 index 053059b..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/ConfigCache.php +++ /dev/null @@ -1,62 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config; - -use Symfony\Component\Config\Resource\SelfCheckingResourceChecker; - -/** - * ConfigCache caches arbitrary content in files on disk. - * - * When in debug mode, those metadata resources that implement - * \Symfony\Component\Config\Resource\SelfCheckingResourceInterface will - * be used to check cache freshness. - * - * @author Fabien Potencier - * @author Matthias Pigulla - */ -class ConfigCache extends ResourceCheckerConfigCache -{ - private $debug; - - /** - * @param string $file The absolute cache path - * @param bool $debug Whether debugging is enabled or not - */ - public function __construct(string $file, bool $debug) - { - $this->debug = $debug; - - $checkers = []; - if (true === $this->debug) { - $checkers = [new SelfCheckingResourceChecker()]; - } - - parent::__construct($file, $checkers); - } - - /** - * Checks if the cache is still fresh. - * - * This implementation always returns true when debug is off and the - * cache file exists. - * - * @return bool true if the cache is fresh, false otherwise - */ - public function isFresh() - { - if (!$this->debug && is_file($this->getPath())) { - return true; - } - - return parent::isFresh(); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/ConfigCacheFactory.php b/srcs/phpmyadmin/vendor/symfony/config/ConfigCacheFactory.php deleted file mode 100644 index bfb70cb..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/ConfigCacheFactory.php +++ /dev/null @@ -1,51 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config; - -/** - * Basic implementation of ConfigCacheFactoryInterface that - * creates an instance of the default ConfigCache. - * - * This factory and/or cache do not support cache validation - * by means of ResourceChecker instances (that is, service-based). - * - * @author Matthias Pigulla - */ -class ConfigCacheFactory implements ConfigCacheFactoryInterface -{ - private $debug; - - /** - * @param bool $debug The debug flag to pass to ConfigCache - */ - public function __construct(bool $debug) - { - $this->debug = $debug; - } - - /** - * {@inheritdoc} - */ - public function cache($file, $callback) - { - if (!\is_callable($callback)) { - throw new \InvalidArgumentException(sprintf('Invalid type for callback argument. Expected callable, but got "%s".', \gettype($callback))); - } - - $cache = new ConfigCache($file, $this->debug); - if (!$cache->isFresh()) { - $callback($cache); - } - - return $cache; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/ConfigCacheFactoryInterface.php b/srcs/phpmyadmin/vendor/symfony/config/ConfigCacheFactoryInterface.php deleted file mode 100644 index 8e80142..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/ConfigCacheFactoryInterface.php +++ /dev/null @@ -1,32 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config; - -/** - * Interface for a ConfigCache factory. This factory creates - * an instance of ConfigCacheInterface and initializes the - * cache if necessary. - * - * @author Matthias Pigulla - */ -interface ConfigCacheFactoryInterface -{ - /** - * Creates a cache instance and (re-)initializes it if necessary. - * - * @param string $file The absolute cache file path - * @param callable $callable The callable to be executed when the cache needs to be filled (i. e. is not fresh). The cache will be passed as the only parameter to this callback - * - * @return ConfigCacheInterface The cache instance - */ - public function cache($file, $callable); -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/ConfigCacheInterface.php b/srcs/phpmyadmin/vendor/symfony/config/ConfigCacheInterface.php deleted file mode 100644 index 7c47ad7..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/ConfigCacheInterface.php +++ /dev/null @@ -1,49 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config; - -use Symfony\Component\Config\Resource\ResourceInterface; - -/** - * Interface for ConfigCache. - * - * @author Matthias Pigulla - */ -interface ConfigCacheInterface -{ - /** - * Gets the cache file path. - * - * @return string The cache file path - */ - public function getPath(); - - /** - * Checks if the cache is still fresh. - * - * This check should take the metadata passed to the write() method into consideration. - * - * @return bool Whether the cache is still fresh - */ - public function isFresh(); - - /** - * Writes the given content into the cache file. Metadata will be stored - * independently and can be used to check cache freshness at a later time. - * - * @param string $content The content to write into the cache - * @param ResourceInterface[]|null $metadata An array of ResourceInterface instances - * - * @throws \RuntimeException When the cache file cannot be written - */ - public function write($content, array $metadata = null); -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/ArrayNode.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/ArrayNode.php deleted file mode 100644 index 3b2ace7..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/ArrayNode.php +++ /dev/null @@ -1,416 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition; - -use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; -use Symfony\Component\Config\Definition\Exception\InvalidTypeException; -use Symfony\Component\Config\Definition\Exception\UnsetKeyException; - -/** - * Represents an Array node in the config tree. - * - * @author Johannes M. Schmitt - */ -class ArrayNode extends BaseNode implements PrototypeNodeInterface -{ - protected $xmlRemappings = []; - protected $children = []; - protected $allowFalse = false; - protected $allowNewKeys = true; - protected $addIfNotSet = false; - protected $performDeepMerging = true; - protected $ignoreExtraKeys = false; - protected $removeExtraKeys = true; - protected $normalizeKeys = true; - - public function setNormalizeKeys($normalizeKeys) - { - $this->normalizeKeys = (bool) $normalizeKeys; - } - - /** - * {@inheritdoc} - * - * Namely, you mostly have foo_bar in YAML while you have foo-bar in XML. - * After running this method, all keys are normalized to foo_bar. - * - * If you have a mixed key like foo-bar_moo, it will not be altered. - * The key will also not be altered if the target key already exists. - */ - protected function preNormalize($value) - { - if (!$this->normalizeKeys || !\is_array($value)) { - return $value; - } - - $normalized = []; - - foreach ($value as $k => $v) { - if (false !== strpos($k, '-') && false === strpos($k, '_') && !\array_key_exists($normalizedKey = str_replace('-', '_', $k), $value)) { - $normalized[$normalizedKey] = $v; - } else { - $normalized[$k] = $v; - } - } - - return $normalized; - } - - /** - * Retrieves the children of this node. - * - * @return array The children - */ - public function getChildren() - { - return $this->children; - } - - /** - * Sets the xml remappings that should be performed. - * - * @param array $remappings An array of the form [[string, string]] - */ - public function setXmlRemappings(array $remappings) - { - $this->xmlRemappings = $remappings; - } - - /** - * Gets the xml remappings that should be performed. - * - * @return array an array of the form [[string, string]] - */ - public function getXmlRemappings() - { - return $this->xmlRemappings; - } - - /** - * Sets whether to add default values for this array if it has not been - * defined in any of the configuration files. - * - * @param bool $boolean - */ - public function setAddIfNotSet($boolean) - { - $this->addIfNotSet = (bool) $boolean; - } - - /** - * Sets whether false is allowed as value indicating that the array should be unset. - * - * @param bool $allow - */ - public function setAllowFalse($allow) - { - $this->allowFalse = (bool) $allow; - } - - /** - * Sets whether new keys can be defined in subsequent configurations. - * - * @param bool $allow - */ - public function setAllowNewKeys($allow) - { - $this->allowNewKeys = (bool) $allow; - } - - /** - * Sets if deep merging should occur. - * - * @param bool $boolean - */ - public function setPerformDeepMerging($boolean) - { - $this->performDeepMerging = (bool) $boolean; - } - - /** - * Whether extra keys should just be ignored without an exception. - * - * @param bool $boolean To allow extra keys - * @param bool $remove To remove extra keys - */ - public function setIgnoreExtraKeys($boolean, $remove = true) - { - $this->ignoreExtraKeys = (bool) $boolean; - $this->removeExtraKeys = $this->ignoreExtraKeys && $remove; - } - - /** - * {@inheritdoc} - */ - public function setName($name) - { - $this->name = $name; - } - - /** - * {@inheritdoc} - */ - public function hasDefaultValue() - { - return $this->addIfNotSet; - } - - /** - * {@inheritdoc} - */ - public function getDefaultValue() - { - if (!$this->hasDefaultValue()) { - throw new \RuntimeException(sprintf('The node at path "%s" has no default value.', $this->getPath())); - } - - $defaults = []; - foreach ($this->children as $name => $child) { - if ($child->hasDefaultValue()) { - $defaults[$name] = $child->getDefaultValue(); - } - } - - return $defaults; - } - - /** - * Adds a child node. - * - * @throws \InvalidArgumentException when the child node has no name - * @throws \InvalidArgumentException when the child node's name is not unique - */ - public function addChild(NodeInterface $node) - { - $name = $node->getName(); - if (!\strlen($name)) { - throw new \InvalidArgumentException('Child nodes must be named.'); - } - if (isset($this->children[$name])) { - throw new \InvalidArgumentException(sprintf('A child node named "%s" already exists.', $name)); - } - - $this->children[$name] = $node; - } - - /** - * Finalizes the value of this node. - * - * @param mixed $value - * - * @return mixed The finalised value - * - * @throws UnsetKeyException - * @throws InvalidConfigurationException if the node doesn't have enough children - */ - protected function finalizeValue($value) - { - if (false === $value) { - throw new UnsetKeyException(sprintf('Unsetting key for path "%s", value: %s', $this->getPath(), json_encode($value))); - } - - foreach ($this->children as $name => $child) { - if (!\array_key_exists($name, $value)) { - if ($child->isRequired()) { - $ex = new InvalidConfigurationException(sprintf('The child node "%s" at path "%s" must be configured.', $name, $this->getPath())); - $ex->setPath($this->getPath()); - - throw $ex; - } - - if ($child->hasDefaultValue()) { - $value[$name] = $child->getDefaultValue(); - } - - continue; - } - - if ($child->isDeprecated()) { - @trigger_error($child->getDeprecationMessage($name, $this->getPath()), E_USER_DEPRECATED); - } - - try { - $value[$name] = $child->finalize($value[$name]); - } catch (UnsetKeyException $e) { - unset($value[$name]); - } - } - - return $value; - } - - /** - * Validates the type of the value. - * - * @param mixed $value - * - * @throws InvalidTypeException - */ - protected function validateType($value) - { - if (!\is_array($value) && (!$this->allowFalse || false !== $value)) { - $ex = new InvalidTypeException(sprintf('Invalid type for path "%s". Expected array, but got %s', $this->getPath(), \gettype($value))); - if ($hint = $this->getInfo()) { - $ex->addHint($hint); - } - $ex->setPath($this->getPath()); - - throw $ex; - } - } - - /** - * Normalizes the value. - * - * @param mixed $value The value to normalize - * - * @return mixed The normalized value - * - * @throws InvalidConfigurationException - */ - protected function normalizeValue($value) - { - if (false === $value) { - return $value; - } - - $value = $this->remapXml($value); - - $normalized = []; - foreach ($value as $name => $val) { - if (isset($this->children[$name])) { - try { - $normalized[$name] = $this->children[$name]->normalize($val); - } catch (UnsetKeyException $e) { - } - unset($value[$name]); - } elseif (!$this->removeExtraKeys) { - $normalized[$name] = $val; - } - } - - // if extra fields are present, throw exception - if (\count($value) && !$this->ignoreExtraKeys) { - $proposals = array_keys($this->children); - sort($proposals); - $guesses = []; - - foreach (array_keys($value) as $subject) { - $minScore = INF; - foreach ($proposals as $proposal) { - $distance = levenshtein($subject, $proposal); - if ($distance <= $minScore && $distance < 3) { - $guesses[$proposal] = $distance; - $minScore = $distance; - } - } - } - - $msg = sprintf('Unrecognized option%s "%s" under "%s"', 1 === \count($value) ? '' : 's', implode(', ', array_keys($value)), $this->getPath()); - - if (\count($guesses)) { - asort($guesses); - $msg .= sprintf('. Did you mean "%s"?', implode('", "', array_keys($guesses))); - } else { - $msg .= sprintf('. Available option%s %s "%s".', 1 === \count($proposals) ? '' : 's', 1 === \count($proposals) ? 'is' : 'are', implode('", "', $proposals)); - } - - $ex = new InvalidConfigurationException($msg); - $ex->setPath($this->getPath()); - - throw $ex; - } - - return $normalized; - } - - /** - * Remaps multiple singular values to a single plural value. - * - * @param array $value The source values - * - * @return array The remapped values - */ - protected function remapXml($value) - { - foreach ($this->xmlRemappings as list($singular, $plural)) { - if (!isset($value[$singular])) { - continue; - } - - $value[$plural] = Processor::normalizeConfig($value, $singular, $plural); - unset($value[$singular]); - } - - return $value; - } - - /** - * Merges values together. - * - * @param mixed $leftSide The left side to merge - * @param mixed $rightSide The right side to merge - * - * @return mixed The merged values - * - * @throws InvalidConfigurationException - * @throws \RuntimeException - */ - protected function mergeValues($leftSide, $rightSide) - { - if (false === $rightSide) { - // if this is still false after the last config has been merged the - // finalization pass will take care of removing this key entirely - return false; - } - - if (false === $leftSide || !$this->performDeepMerging) { - return $rightSide; - } - - foreach ($rightSide as $k => $v) { - // no conflict - if (!\array_key_exists($k, $leftSide)) { - if (!$this->allowNewKeys) { - $ex = new InvalidConfigurationException(sprintf('You are not allowed to define new elements for path "%s". Please define all elements for this path in one config file. If you are trying to overwrite an element, make sure you redefine it with the same name.', $this->getPath())); - $ex->setPath($this->getPath()); - - throw $ex; - } - - $leftSide[$k] = $v; - continue; - } - - if (!isset($this->children[$k])) { - if (!$this->ignoreExtraKeys || $this->removeExtraKeys) { - throw new \RuntimeException('merge() expects a normalized config array.'); - } - - $leftSide[$k] = $v; - continue; - } - - $leftSide[$k] = $this->children[$k]->merge($leftSide[$k], $v); - } - - return $leftSide; - } - - /** - * {@inheritdoc} - */ - protected function allowPlaceholders(): bool - { - return false; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/BaseNode.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/BaseNode.php deleted file mode 100644 index 076d175..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/BaseNode.php +++ /dev/null @@ -1,559 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition; - -use Symfony\Component\Config\Definition\Exception\Exception; -use Symfony\Component\Config\Definition\Exception\ForbiddenOverwriteException; -use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; -use Symfony\Component\Config\Definition\Exception\InvalidTypeException; -use Symfony\Component\Config\Definition\Exception\UnsetKeyException; - -/** - * The base node class. - * - * @author Johannes M. Schmitt - */ -abstract class BaseNode implements NodeInterface -{ - const DEFAULT_PATH_SEPARATOR = '.'; - - private static $placeholderUniquePrefix; - private static $placeholders = []; - - protected $name; - protected $parent; - protected $normalizationClosures = []; - protected $finalValidationClosures = []; - protected $allowOverwrite = true; - protected $required = false; - protected $deprecationMessage = null; - protected $equivalentValues = []; - protected $attributes = []; - protected $pathSeparator; - - private $handlingPlaceholder; - - /** - * @throws \InvalidArgumentException if the name contains a period - */ - public function __construct(?string $name, NodeInterface $parent = null, string $pathSeparator = self::DEFAULT_PATH_SEPARATOR) - { - if (false !== strpos($name = (string) $name, $pathSeparator)) { - throw new \InvalidArgumentException('The name must not contain "'.$pathSeparator.'".'); - } - - $this->name = $name; - $this->parent = $parent; - $this->pathSeparator = $pathSeparator; - } - - /** - * Register possible (dummy) values for a dynamic placeholder value. - * - * Matching configuration values will be processed with a provided value, one by one. After a provided value is - * successfully processed the configuration value is returned as is, thus preserving the placeholder. - * - * @internal - */ - public static function setPlaceholder(string $placeholder, array $values): void - { - if (!$values) { - throw new \InvalidArgumentException('At least one value must be provided.'); - } - - self::$placeholders[$placeholder] = $values; - } - - /** - * Sets a common prefix for dynamic placeholder values. - * - * Matching configuration values will be skipped from being processed and are returned as is, thus preserving the - * placeholder. An exact match provided by {@see setPlaceholder()} might take precedence. - * - * @internal - */ - public static function setPlaceholderUniquePrefix(string $prefix): void - { - self::$placeholderUniquePrefix = $prefix; - } - - /** - * Resets all current placeholders available. - * - * @internal - */ - public static function resetPlaceholders(): void - { - self::$placeholderUniquePrefix = null; - self::$placeholders = []; - } - - /** - * @param string $key - */ - public function setAttribute($key, $value) - { - $this->attributes[$key] = $value; - } - - /** - * @param string $key - * - * @return mixed - */ - public function getAttribute($key, $default = null) - { - return isset($this->attributes[$key]) ? $this->attributes[$key] : $default; - } - - /** - * @param string $key - * - * @return bool - */ - public function hasAttribute($key) - { - return isset($this->attributes[$key]); - } - - /** - * @return array - */ - public function getAttributes() - { - return $this->attributes; - } - - public function setAttributes(array $attributes) - { - $this->attributes = $attributes; - } - - /** - * @param string $key - */ - public function removeAttribute($key) - { - unset($this->attributes[$key]); - } - - /** - * Sets an info message. - * - * @param string $info - */ - public function setInfo($info) - { - $this->setAttribute('info', $info); - } - - /** - * Returns info message. - * - * @return string|null The info text - */ - public function getInfo() - { - return $this->getAttribute('info'); - } - - /** - * Sets the example configuration for this node. - * - * @param string|array $example - */ - public function setExample($example) - { - $this->setAttribute('example', $example); - } - - /** - * Retrieves the example configuration for this node. - * - * @return string|array|null The example - */ - public function getExample() - { - return $this->getAttribute('example'); - } - - /** - * Adds an equivalent value. - * - * @param mixed $originalValue - * @param mixed $equivalentValue - */ - public function addEquivalentValue($originalValue, $equivalentValue) - { - $this->equivalentValues[] = [$originalValue, $equivalentValue]; - } - - /** - * Set this node as required. - * - * @param bool $boolean Required node - */ - public function setRequired($boolean) - { - $this->required = (bool) $boolean; - } - - /** - * Sets this node as deprecated. - * - * You can use %node% and %path% placeholders in your message to display, - * respectively, the node name and its complete path. - * - * @param string|null $message Deprecated message - */ - public function setDeprecated($message) - { - $this->deprecationMessage = $message; - } - - /** - * Sets if this node can be overridden. - * - * @param bool $allow - */ - public function setAllowOverwrite($allow) - { - $this->allowOverwrite = (bool) $allow; - } - - /** - * Sets the closures used for normalization. - * - * @param \Closure[] $closures An array of Closures used for normalization - */ - public function setNormalizationClosures(array $closures) - { - $this->normalizationClosures = $closures; - } - - /** - * Sets the closures used for final validation. - * - * @param \Closure[] $closures An array of Closures used for final validation - */ - public function setFinalValidationClosures(array $closures) - { - $this->finalValidationClosures = $closures; - } - - /** - * {@inheritdoc} - */ - public function isRequired() - { - return $this->required; - } - - /** - * Checks if this node is deprecated. - * - * @return bool - */ - public function isDeprecated() - { - return null !== $this->deprecationMessage; - } - - /** - * Returns the deprecated message. - * - * @param string $node the configuration node name - * @param string $path the path of the node - * - * @return string - */ - public function getDeprecationMessage($node, $path) - { - return strtr($this->deprecationMessage, ['%node%' => $node, '%path%' => $path]); - } - - /** - * {@inheritdoc} - */ - public function getName() - { - return $this->name; - } - - /** - * {@inheritdoc} - */ - public function getPath() - { - if (null !== $this->parent) { - return $this->parent->getPath().$this->pathSeparator.$this->name; - } - - return $this->name; - } - - /** - * {@inheritdoc} - */ - final public function merge($leftSide, $rightSide) - { - if (!$this->allowOverwrite) { - throw new ForbiddenOverwriteException(sprintf('Configuration path "%s" cannot be overwritten. You have to define all options for this path, and any of its sub-paths in one configuration section.', $this->getPath())); - } - - if ($leftSide !== $leftPlaceholders = self::resolvePlaceholderValue($leftSide)) { - foreach ($leftPlaceholders as $leftPlaceholder) { - $this->handlingPlaceholder = $leftSide; - try { - $this->merge($leftPlaceholder, $rightSide); - } finally { - $this->handlingPlaceholder = null; - } - } - - return $rightSide; - } - - if ($rightSide !== $rightPlaceholders = self::resolvePlaceholderValue($rightSide)) { - foreach ($rightPlaceholders as $rightPlaceholder) { - $this->handlingPlaceholder = $rightSide; - try { - $this->merge($leftSide, $rightPlaceholder); - } finally { - $this->handlingPlaceholder = null; - } - } - - return $rightSide; - } - - $this->doValidateType($leftSide); - $this->doValidateType($rightSide); - - return $this->mergeValues($leftSide, $rightSide); - } - - /** - * {@inheritdoc} - */ - final public function normalize($value) - { - $value = $this->preNormalize($value); - - // run custom normalization closures - foreach ($this->normalizationClosures as $closure) { - $value = $closure($value); - } - - // resolve placeholder value - if ($value !== $placeholders = self::resolvePlaceholderValue($value)) { - foreach ($placeholders as $placeholder) { - $this->handlingPlaceholder = $value; - try { - $this->normalize($placeholder); - } finally { - $this->handlingPlaceholder = null; - } - } - - return $value; - } - - // replace value with their equivalent - foreach ($this->equivalentValues as $data) { - if ($data[0] === $value) { - $value = $data[1]; - } - } - - // validate type - $this->doValidateType($value); - - // normalize value - return $this->normalizeValue($value); - } - - /** - * Normalizes the value before any other normalization is applied. - * - * @param mixed $value - * - * @return mixed The normalized array value - */ - protected function preNormalize($value) - { - return $value; - } - - /** - * Returns parent node for this node. - * - * @return NodeInterface|null - */ - public function getParent() - { - return $this->parent; - } - - /** - * {@inheritdoc} - */ - final public function finalize($value) - { - if ($value !== $placeholders = self::resolvePlaceholderValue($value)) { - foreach ($placeholders as $placeholder) { - $this->handlingPlaceholder = $value; - try { - $this->finalize($placeholder); - } finally { - $this->handlingPlaceholder = null; - } - } - - return $value; - } - - $this->doValidateType($value); - - $value = $this->finalizeValue($value); - - // Perform validation on the final value if a closure has been set. - // The closure is also allowed to return another value. - foreach ($this->finalValidationClosures as $closure) { - try { - $value = $closure($value); - } catch (Exception $e) { - if ($e instanceof UnsetKeyException && null !== $this->handlingPlaceholder) { - continue; - } - - throw $e; - } catch (\Exception $e) { - throw new InvalidConfigurationException(sprintf('Invalid configuration for path "%s": %s', $this->getPath(), $e->getMessage()), $e->getCode(), $e); - } - } - - return $value; - } - - /** - * Validates the type of a Node. - * - * @param mixed $value The value to validate - * - * @throws InvalidTypeException when the value is invalid - */ - abstract protected function validateType($value); - - /** - * Normalizes the value. - * - * @param mixed $value The value to normalize - * - * @return mixed The normalized value - */ - abstract protected function normalizeValue($value); - - /** - * Merges two values together. - * - * @param mixed $leftSide - * @param mixed $rightSide - * - * @return mixed The merged value - */ - abstract protected function mergeValues($leftSide, $rightSide); - - /** - * Finalizes a value. - * - * @param mixed $value The value to finalize - * - * @return mixed The finalized value - */ - abstract protected function finalizeValue($value); - - /** - * Tests if placeholder values are allowed for this node. - */ - protected function allowPlaceholders(): bool - { - return true; - } - - /** - * Tests if a placeholder is being handled currently. - */ - protected function isHandlingPlaceholder(): bool - { - return null !== $this->handlingPlaceholder; - } - - /** - * Gets allowed dynamic types for this node. - */ - protected function getValidPlaceholderTypes(): array - { - return []; - } - - private static function resolvePlaceholderValue($value) - { - if (\is_string($value)) { - if (isset(self::$placeholders[$value])) { - return self::$placeholders[$value]; - } - - if (self::$placeholderUniquePrefix && 0 === strpos($value, self::$placeholderUniquePrefix)) { - return []; - } - } - - return $value; - } - - private function doValidateType($value): void - { - if (null !== $this->handlingPlaceholder && !$this->allowPlaceholders()) { - $e = new InvalidTypeException(sprintf('A dynamic value is not compatible with a "%s" node type at path "%s".', \get_class($this), $this->getPath())); - $e->setPath($this->getPath()); - - throw $e; - } - - if (null === $this->handlingPlaceholder || null === $value) { - $this->validateType($value); - - return; - } - - $knownTypes = array_keys(self::$placeholders[$this->handlingPlaceholder]); - $validTypes = $this->getValidPlaceholderTypes(); - - if ($validTypes && array_diff($knownTypes, $validTypes)) { - $e = new InvalidTypeException(sprintf( - 'Invalid type for path "%s". Expected %s, but got %s.', - $this->getPath(), - 1 === \count($validTypes) ? '"'.reset($validTypes).'"' : 'one of "'.implode('", "', $validTypes).'"', - 1 === \count($knownTypes) ? '"'.reset($knownTypes).'"' : 'one of "'.implode('", "', $knownTypes).'"' - )); - if ($hint = $this->getInfo()) { - $e->addHint($hint); - } - $e->setPath($this->getPath()); - - throw $e; - } - - $this->validateType($value); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/BooleanNode.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/BooleanNode.php deleted file mode 100644 index c43c46f..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/BooleanNode.php +++ /dev/null @@ -1,55 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition; - -use Symfony\Component\Config\Definition\Exception\InvalidTypeException; - -/** - * This node represents a Boolean value in the config tree. - * - * @author Johannes M. Schmitt - */ -class BooleanNode extends ScalarNode -{ - /** - * {@inheritdoc} - */ - protected function validateType($value) - { - if (!\is_bool($value)) { - $ex = new InvalidTypeException(sprintf('Invalid type for path "%s". Expected boolean, but got %s.', $this->getPath(), \gettype($value))); - if ($hint = $this->getInfo()) { - $ex->addHint($hint); - } - $ex->setPath($this->getPath()); - - throw $ex; - } - } - - /** - * {@inheritdoc} - */ - protected function isValueEmpty($value) - { - // a boolean value cannot be empty - return false; - } - - /** - * {@inheritdoc} - */ - protected function getValidPlaceholderTypes(): array - { - return ['bool']; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/ArrayNodeDefinition.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/ArrayNodeDefinition.php deleted file mode 100644 index e40d97b..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/ArrayNodeDefinition.php +++ /dev/null @@ -1,548 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -use Symfony\Component\Config\Definition\ArrayNode; -use Symfony\Component\Config\Definition\Exception\InvalidDefinitionException; -use Symfony\Component\Config\Definition\PrototypedArrayNode; - -/** - * This class provides a fluent interface for defining an array node. - * - * @author Johannes M. Schmitt - */ -class ArrayNodeDefinition extends NodeDefinition implements ParentNodeDefinitionInterface -{ - protected $performDeepMerging = true; - protected $ignoreExtraKeys = false; - protected $removeExtraKeys = true; - protected $children = []; - protected $prototype; - protected $atLeastOne = false; - protected $allowNewKeys = true; - protected $key; - protected $removeKeyItem; - protected $addDefaults = false; - protected $addDefaultChildren = false; - protected $nodeBuilder; - protected $normalizeKeys = true; - - /** - * {@inheritdoc} - */ - public function __construct(?string $name, NodeParentInterface $parent = null) - { - parent::__construct($name, $parent); - - $this->nullEquivalent = []; - $this->trueEquivalent = []; - } - - /** - * {@inheritdoc} - */ - public function setBuilder(NodeBuilder $builder) - { - $this->nodeBuilder = $builder; - } - - /** - * {@inheritdoc} - */ - public function children() - { - return $this->getNodeBuilder(); - } - - /** - * Sets a prototype for child nodes. - * - * @param string $type The type of node - * - * @return NodeDefinition - */ - public function prototype($type) - { - return $this->prototype = $this->getNodeBuilder()->node(null, $type)->setParent($this); - } - - /** - * @return VariableNodeDefinition - */ - public function variablePrototype() - { - return $this->prototype('variable'); - } - - /** - * @return ScalarNodeDefinition - */ - public function scalarPrototype() - { - return $this->prototype('scalar'); - } - - /** - * @return BooleanNodeDefinition - */ - public function booleanPrototype() - { - return $this->prototype('boolean'); - } - - /** - * @return IntegerNodeDefinition - */ - public function integerPrototype() - { - return $this->prototype('integer'); - } - - /** - * @return FloatNodeDefinition - */ - public function floatPrototype() - { - return $this->prototype('float'); - } - - /** - * @return ArrayNodeDefinition - */ - public function arrayPrototype() - { - return $this->prototype('array'); - } - - /** - * @return EnumNodeDefinition - */ - public function enumPrototype() - { - return $this->prototype('enum'); - } - - /** - * Adds the default value if the node is not set in the configuration. - * - * This method is applicable to concrete nodes only (not to prototype nodes). - * If this function has been called and the node is not set during the finalization - * phase, it's default value will be derived from its children default values. - * - * @return $this - */ - public function addDefaultsIfNotSet() - { - $this->addDefaults = true; - - return $this; - } - - /** - * Adds children with a default value when none are defined. - * - * This method is applicable to prototype nodes only. - * - * @param int|string|array|null $children The number of children|The child name|The children names to be added - * - * @return $this - */ - public function addDefaultChildrenIfNoneSet($children = null) - { - $this->addDefaultChildren = $children; - - return $this; - } - - /** - * Requires the node to have at least one element. - * - * This method is applicable to prototype nodes only. - * - * @return $this - */ - public function requiresAtLeastOneElement() - { - $this->atLeastOne = true; - - return $this; - } - - /** - * Disallows adding news keys in a subsequent configuration. - * - * If used all keys have to be defined in the same configuration file. - * - * @return $this - */ - public function disallowNewKeysInSubsequentConfigs() - { - $this->allowNewKeys = false; - - return $this; - } - - /** - * Sets a normalization rule for XML configurations. - * - * @param string $singular The key to remap - * @param string $plural The plural of the key for irregular plurals - * - * @return $this - */ - public function fixXmlConfig($singular, $plural = null) - { - $this->normalization()->remap($singular, $plural); - - return $this; - } - - /** - * Sets the attribute which value is to be used as key. - * - * This is useful when you have an indexed array that should be an - * associative array. You can select an item from within the array - * to be the key of the particular item. For example, if "id" is the - * "key", then: - * - * [ - * ['id' => 'my_name', 'foo' => 'bar'], - * ]; - * - * becomes - * - * [ - * 'my_name' => ['foo' => 'bar'], - * ]; - * - * If you'd like "'id' => 'my_name'" to still be present in the resulting - * array, then you can set the second argument of this method to false. - * - * This method is applicable to prototype nodes only. - * - * @param string $name The name of the key - * @param bool $removeKeyItem Whether or not the key item should be removed - * - * @return $this - */ - public function useAttributeAsKey($name, $removeKeyItem = true) - { - $this->key = $name; - $this->removeKeyItem = $removeKeyItem; - - return $this; - } - - /** - * Sets whether the node can be unset. - * - * @param bool $allow - * - * @return $this - */ - public function canBeUnset($allow = true) - { - $this->merge()->allowUnset($allow); - - return $this; - } - - /** - * Adds an "enabled" boolean to enable the current section. - * - * By default, the section is disabled. If any configuration is specified then - * the node will be automatically enabled: - * - * enableableArrayNode: {enabled: true, ...} # The config is enabled & default values get overridden - * enableableArrayNode: ~ # The config is enabled & use the default values - * enableableArrayNode: true # The config is enabled & use the default values - * enableableArrayNode: {other: value, ...} # The config is enabled & default values get overridden - * enableableArrayNode: {enabled: false, ...} # The config is disabled - * enableableArrayNode: false # The config is disabled - * - * @return $this - */ - public function canBeEnabled() - { - $this - ->addDefaultsIfNotSet() - ->treatFalseLike(['enabled' => false]) - ->treatTrueLike(['enabled' => true]) - ->treatNullLike(['enabled' => true]) - ->beforeNormalization() - ->ifArray() - ->then(function ($v) { - $v['enabled'] = isset($v['enabled']) ? $v['enabled'] : true; - - return $v; - }) - ->end() - ->children() - ->booleanNode('enabled') - ->defaultFalse() - ; - - return $this; - } - - /** - * Adds an "enabled" boolean to enable the current section. - * - * By default, the section is enabled. - * - * @return $this - */ - public function canBeDisabled() - { - $this - ->addDefaultsIfNotSet() - ->treatFalseLike(['enabled' => false]) - ->treatTrueLike(['enabled' => true]) - ->treatNullLike(['enabled' => true]) - ->children() - ->booleanNode('enabled') - ->defaultTrue() - ; - - return $this; - } - - /** - * Disables the deep merging of the node. - * - * @return $this - */ - public function performNoDeepMerging() - { - $this->performDeepMerging = false; - - return $this; - } - - /** - * Allows extra config keys to be specified under an array without - * throwing an exception. - * - * Those config values are ignored and removed from the resulting - * array. This should be used only in special cases where you want - * to send an entire configuration array through a special tree that - * processes only part of the array. - * - * @param bool $remove Whether to remove the extra keys - * - * @return $this - */ - public function ignoreExtraKeys($remove = true) - { - $this->ignoreExtraKeys = true; - $this->removeExtraKeys = $remove; - - return $this; - } - - /** - * Sets key normalization. - * - * @param bool $bool Whether to enable key normalization - * - * @return $this - */ - public function normalizeKeys($bool) - { - $this->normalizeKeys = (bool) $bool; - - return $this; - } - - /** - * {@inheritdoc} - */ - public function append(NodeDefinition $node) - { - $this->children[$node->name] = $node->setParent($this); - - return $this; - } - - /** - * Returns a node builder to be used to add children and prototype. - * - * @return NodeBuilder The node builder - */ - protected function getNodeBuilder() - { - if (null === $this->nodeBuilder) { - $this->nodeBuilder = new NodeBuilder(); - } - - return $this->nodeBuilder->setParent($this); - } - - /** - * {@inheritdoc} - */ - protected function createNode() - { - if (null === $this->prototype) { - $node = new ArrayNode($this->name, $this->parent, $this->pathSeparator); - - $this->validateConcreteNode($node); - - $node->setAddIfNotSet($this->addDefaults); - - foreach ($this->children as $child) { - $child->parent = $node; - $node->addChild($child->getNode()); - } - } else { - $node = new PrototypedArrayNode($this->name, $this->parent, $this->pathSeparator); - - $this->validatePrototypeNode($node); - - if (null !== $this->key) { - $node->setKeyAttribute($this->key, $this->removeKeyItem); - } - - if (true === $this->atLeastOne || false === $this->allowEmptyValue) { - $node->setMinNumberOfElements(1); - } - - if ($this->default) { - $node->setDefaultValue($this->defaultValue); - } - - if (false !== $this->addDefaultChildren) { - $node->setAddChildrenIfNoneSet($this->addDefaultChildren); - if ($this->prototype instanceof static && null === $this->prototype->prototype) { - $this->prototype->addDefaultsIfNotSet(); - } - } - - $this->prototype->parent = $node; - $node->setPrototype($this->prototype->getNode()); - } - - $node->setAllowNewKeys($this->allowNewKeys); - $node->addEquivalentValue(null, $this->nullEquivalent); - $node->addEquivalentValue(true, $this->trueEquivalent); - $node->addEquivalentValue(false, $this->falseEquivalent); - $node->setPerformDeepMerging($this->performDeepMerging); - $node->setRequired($this->required); - $node->setDeprecated($this->deprecationMessage); - $node->setIgnoreExtraKeys($this->ignoreExtraKeys, $this->removeExtraKeys); - $node->setNormalizeKeys($this->normalizeKeys); - - if (null !== $this->normalization) { - $node->setNormalizationClosures($this->normalization->before); - $node->setXmlRemappings($this->normalization->remappings); - } - - if (null !== $this->merge) { - $node->setAllowOverwrite($this->merge->allowOverwrite); - $node->setAllowFalse($this->merge->allowFalse); - } - - if (null !== $this->validation) { - $node->setFinalValidationClosures($this->validation->rules); - } - - return $node; - } - - /** - * Validate the configuration of a concrete node. - * - * @throws InvalidDefinitionException - */ - protected function validateConcreteNode(ArrayNode $node) - { - $path = $node->getPath(); - - if (null !== $this->key) { - throw new InvalidDefinitionException(sprintf('->useAttributeAsKey() is not applicable to concrete nodes at path "%s"', $path)); - } - - if (false === $this->allowEmptyValue) { - throw new InvalidDefinitionException(sprintf('->cannotBeEmpty() is not applicable to concrete nodes at path "%s"', $path)); - } - - if (true === $this->atLeastOne) { - throw new InvalidDefinitionException(sprintf('->requiresAtLeastOneElement() is not applicable to concrete nodes at path "%s"', $path)); - } - - if ($this->default) { - throw new InvalidDefinitionException(sprintf('->defaultValue() is not applicable to concrete nodes at path "%s"', $path)); - } - - if (false !== $this->addDefaultChildren) { - throw new InvalidDefinitionException(sprintf('->addDefaultChildrenIfNoneSet() is not applicable to concrete nodes at path "%s"', $path)); - } - } - - /** - * Validate the configuration of a prototype node. - * - * @throws InvalidDefinitionException - */ - protected function validatePrototypeNode(PrototypedArrayNode $node) - { - $path = $node->getPath(); - - if ($this->addDefaults) { - throw new InvalidDefinitionException(sprintf('->addDefaultsIfNotSet() is not applicable to prototype nodes at path "%s"', $path)); - } - - if (false !== $this->addDefaultChildren) { - if ($this->default) { - throw new InvalidDefinitionException(sprintf('A default value and default children might not be used together at path "%s"', $path)); - } - - if (null !== $this->key && (null === $this->addDefaultChildren || \is_int($this->addDefaultChildren) && $this->addDefaultChildren > 0)) { - throw new InvalidDefinitionException(sprintf('->addDefaultChildrenIfNoneSet() should set default children names as ->useAttributeAsKey() is used at path "%s"', $path)); - } - - if (null === $this->key && (\is_string($this->addDefaultChildren) || \is_array($this->addDefaultChildren))) { - throw new InvalidDefinitionException(sprintf('->addDefaultChildrenIfNoneSet() might not set default children names as ->useAttributeAsKey() is not used at path "%s"', $path)); - } - } - } - - /** - * @return NodeDefinition[] - */ - public function getChildNodeDefinitions() - { - return $this->children; - } - - /** - * Finds a node defined by the given $nodePath. - * - * @param string $nodePath The path of the node to find. e.g "doctrine.orm.mappings" - */ - public function find(string $nodePath): NodeDefinition - { - $firstPathSegment = (false === $pathSeparatorPos = strpos($nodePath, $this->pathSeparator)) - ? $nodePath - : substr($nodePath, 0, $pathSeparatorPos); - - if (null === $node = ($this->children[$firstPathSegment] ?? null)) { - throw new \RuntimeException(sprintf('Node with name "%s" does not exist in the current node "%s".', $firstPathSegment, $this->name)); - } - - if (false === $pathSeparatorPos) { - return $node; - } - - return $node->find(substr($nodePath, $pathSeparatorPos + \strlen($this->pathSeparator))); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/BooleanNodeDefinition.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/BooleanNodeDefinition.php deleted file mode 100644 index d193242..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/BooleanNodeDefinition.php +++ /dev/null @@ -1,53 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -use Symfony\Component\Config\Definition\BooleanNode; -use Symfony\Component\Config\Definition\Exception\InvalidDefinitionException; - -/** - * This class provides a fluent interface for defining a node. - * - * @author Johannes M. Schmitt - */ -class BooleanNodeDefinition extends ScalarNodeDefinition -{ - /** - * {@inheritdoc} - */ - public function __construct(?string $name, NodeParentInterface $parent = null) - { - parent::__construct($name, $parent); - - $this->nullEquivalent = true; - } - - /** - * Instantiate a Node. - * - * @return BooleanNode The node - */ - protected function instantiateNode() - { - return new BooleanNode($this->name, $this->parent, $this->pathSeparator); - } - - /** - * {@inheritdoc} - * - * @throws InvalidDefinitionException - */ - public function cannotBeEmpty() - { - throw new InvalidDefinitionException('->cannotBeEmpty() is not applicable to BooleanNodeDefinition.'); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/BuilderAwareInterface.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/BuilderAwareInterface.php deleted file mode 100644 index f30b873..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/BuilderAwareInterface.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -/** - * An interface that can be implemented by nodes which build other nodes. - * - * @author Roland Franssen - */ -interface BuilderAwareInterface -{ - /** - * Sets a custom children builder. - */ - public function setBuilder(NodeBuilder $builder); -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/EnumNodeDefinition.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/EnumNodeDefinition.php deleted file mode 100644 index 9a9c096..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/EnumNodeDefinition.php +++ /dev/null @@ -1,56 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -use Symfony\Component\Config\Definition\EnumNode; - -/** - * Enum Node Definition. - * - * @author Johannes M. Schmitt - */ -class EnumNodeDefinition extends ScalarNodeDefinition -{ - private $values; - - /** - * @return $this - */ - public function values(array $values) - { - $values = array_unique($values); - - if (empty($values)) { - throw new \InvalidArgumentException('->values() must be called with at least one value.'); - } - - $this->values = $values; - - return $this; - } - - /** - * Instantiate a Node. - * - * @return EnumNode The node - * - * @throws \RuntimeException - */ - protected function instantiateNode() - { - if (null === $this->values) { - throw new \RuntimeException('You must call ->values() on enum nodes.'); - } - - return new EnumNode($this->name, $this->parent, $this->values, $this->pathSeparator); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/ExprBuilder.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/ExprBuilder.php deleted file mode 100644 index 05949d2..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/ExprBuilder.php +++ /dev/null @@ -1,248 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -use Symfony\Component\Config\Definition\Exception\UnsetKeyException; - -/** - * This class builds an if expression. - * - * @author Johannes M. Schmitt - * @author Christophe Coevoet - */ -class ExprBuilder -{ - protected $node; - public $ifPart; - public $thenPart; - - public function __construct(NodeDefinition $node) - { - $this->node = $node; - } - - /** - * Marks the expression as being always used. - * - * @return $this - */ - public function always(\Closure $then = null) - { - $this->ifPart = function ($v) { return true; }; - - if (null !== $then) { - $this->thenPart = $then; - } - - return $this; - } - - /** - * Sets a closure to use as tests. - * - * The default one tests if the value is true. - * - * @return $this - */ - public function ifTrue(\Closure $closure = null) - { - if (null === $closure) { - $closure = function ($v) { return true === $v; }; - } - - $this->ifPart = $closure; - - return $this; - } - - /** - * Tests if the value is a string. - * - * @return $this - */ - public function ifString() - { - $this->ifPart = function ($v) { return \is_string($v); }; - - return $this; - } - - /** - * Tests if the value is null. - * - * @return $this - */ - public function ifNull() - { - $this->ifPart = function ($v) { return null === $v; }; - - return $this; - } - - /** - * Tests if the value is empty. - * - * @return ExprBuilder - */ - public function ifEmpty() - { - $this->ifPart = function ($v) { return empty($v); }; - - return $this; - } - - /** - * Tests if the value is an array. - * - * @return $this - */ - public function ifArray() - { - $this->ifPart = function ($v) { return \is_array($v); }; - - return $this; - } - - /** - * Tests if the value is in an array. - * - * @return $this - */ - public function ifInArray(array $array) - { - $this->ifPart = function ($v) use ($array) { return \in_array($v, $array, true); }; - - return $this; - } - - /** - * Tests if the value is not in an array. - * - * @return $this - */ - public function ifNotInArray(array $array) - { - $this->ifPart = function ($v) use ($array) { return !\in_array($v, $array, true); }; - - return $this; - } - - /** - * Transforms variables of any type into an array. - * - * @return $this - */ - public function castToArray() - { - $this->ifPart = function ($v) { return !\is_array($v); }; - $this->thenPart = function ($v) { return [$v]; }; - - return $this; - } - - /** - * Sets the closure to run if the test pass. - * - * @return $this - */ - public function then(\Closure $closure) - { - $this->thenPart = $closure; - - return $this; - } - - /** - * Sets a closure returning an empty array. - * - * @return $this - */ - public function thenEmptyArray() - { - $this->thenPart = function ($v) { return []; }; - - return $this; - } - - /** - * Sets a closure marking the value as invalid at processing time. - * - * if you want to add the value of the node in your message just use a %s placeholder. - * - * @param string $message - * - * @return $this - * - * @throws \InvalidArgumentException - */ - public function thenInvalid($message) - { - $this->thenPart = function ($v) use ($message) { throw new \InvalidArgumentException(sprintf($message, json_encode($v))); }; - - return $this; - } - - /** - * Sets a closure unsetting this key of the array at processing time. - * - * @return $this - * - * @throws UnsetKeyException - */ - public function thenUnset() - { - $this->thenPart = function ($v) { throw new UnsetKeyException('Unsetting key'); }; - - return $this; - } - - /** - * Returns the related node. - * - * @return NodeDefinition|ArrayNodeDefinition|VariableNodeDefinition - * - * @throws \RuntimeException - */ - public function end() - { - if (null === $this->ifPart) { - throw new \RuntimeException('You must specify an if part.'); - } - if (null === $this->thenPart) { - throw new \RuntimeException('You must specify a then part.'); - } - - return $this->node; - } - - /** - * Builds the expressions. - * - * @param ExprBuilder[] $expressions An array of ExprBuilder instances to build - * - * @return array - */ - public static function buildExpressions(array $expressions) - { - foreach ($expressions as $k => $expr) { - if ($expr instanceof self) { - $if = $expr->ifPart; - $then = $expr->thenPart; - $expressions[$k] = function ($v) use ($if, $then) { - return $if($v) ? $then($v) : $v; - }; - } - } - - return $expressions; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/FloatNodeDefinition.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/FloatNodeDefinition.php deleted file mode 100644 index 7b74271..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/FloatNodeDefinition.php +++ /dev/null @@ -1,32 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -use Symfony\Component\Config\Definition\FloatNode; - -/** - * This class provides a fluent interface for defining a float node. - * - * @author Jeanmonod David - */ -class FloatNodeDefinition extends NumericNodeDefinition -{ - /** - * Instantiates a Node. - * - * @return FloatNode The node - */ - protected function instantiateNode() - { - return new FloatNode($this->name, $this->parent, $this->min, $this->max, $this->pathSeparator); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/IntegerNodeDefinition.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/IntegerNodeDefinition.php deleted file mode 100644 index 0472a98..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/IntegerNodeDefinition.php +++ /dev/null @@ -1,32 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -use Symfony\Component\Config\Definition\IntegerNode; - -/** - * This class provides a fluent interface for defining an integer node. - * - * @author Jeanmonod David - */ -class IntegerNodeDefinition extends NumericNodeDefinition -{ - /** - * Instantiates a Node. - * - * @return IntegerNode The node - */ - protected function instantiateNode() - { - return new IntegerNode($this->name, $this->parent, $this->min, $this->max, $this->pathSeparator); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/MergeBuilder.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/MergeBuilder.php deleted file mode 100644 index 105e2d6..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/MergeBuilder.php +++ /dev/null @@ -1,67 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -/** - * This class builds merge conditions. - * - * @author Johannes M. Schmitt - */ -class MergeBuilder -{ - protected $node; - public $allowFalse = false; - public $allowOverwrite = true; - - public function __construct(NodeDefinition $node) - { - $this->node = $node; - } - - /** - * Sets whether the node can be unset. - * - * @param bool $allow - * - * @return $this - */ - public function allowUnset($allow = true) - { - $this->allowFalse = $allow; - - return $this; - } - - /** - * Sets whether the node can be overwritten. - * - * @param bool $deny Whether the overwriting is forbidden or not - * - * @return $this - */ - public function denyOverwrite($deny = true) - { - $this->allowOverwrite = !$deny; - - return $this; - } - - /** - * Returns the related node. - * - * @return NodeDefinition|ArrayNodeDefinition|VariableNodeDefinition - */ - public function end() - { - return $this->node; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/NodeBuilder.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/NodeBuilder.php deleted file mode 100644 index be059f5..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/NodeBuilder.php +++ /dev/null @@ -1,238 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -/** - * This class provides a fluent interface for building a node. - * - * @author Johannes M. Schmitt - */ -class NodeBuilder implements NodeParentInterface -{ - protected $parent; - protected $nodeMapping; - - public function __construct() - { - $this->nodeMapping = [ - 'variable' => VariableNodeDefinition::class, - 'scalar' => ScalarNodeDefinition::class, - 'boolean' => BooleanNodeDefinition::class, - 'integer' => IntegerNodeDefinition::class, - 'float' => FloatNodeDefinition::class, - 'array' => ArrayNodeDefinition::class, - 'enum' => EnumNodeDefinition::class, - ]; - } - - /** - * Set the parent node. - * - * @return $this - */ - public function setParent(ParentNodeDefinitionInterface $parent = null) - { - $this->parent = $parent; - - return $this; - } - - /** - * Creates a child array node. - * - * @param string $name The name of the node - * - * @return ArrayNodeDefinition The child node - */ - public function arrayNode($name) - { - return $this->node($name, 'array'); - } - - /** - * Creates a child scalar node. - * - * @param string $name The name of the node - * - * @return ScalarNodeDefinition The child node - */ - public function scalarNode($name) - { - return $this->node($name, 'scalar'); - } - - /** - * Creates a child Boolean node. - * - * @param string $name The name of the node - * - * @return BooleanNodeDefinition The child node - */ - public function booleanNode($name) - { - return $this->node($name, 'boolean'); - } - - /** - * Creates a child integer node. - * - * @param string $name The name of the node - * - * @return IntegerNodeDefinition The child node - */ - public function integerNode($name) - { - return $this->node($name, 'integer'); - } - - /** - * Creates a child float node. - * - * @param string $name The name of the node - * - * @return FloatNodeDefinition The child node - */ - public function floatNode($name) - { - return $this->node($name, 'float'); - } - - /** - * Creates a child EnumNode. - * - * @param string $name - * - * @return EnumNodeDefinition - */ - public function enumNode($name) - { - return $this->node($name, 'enum'); - } - - /** - * Creates a child variable node. - * - * @param string $name The name of the node - * - * @return VariableNodeDefinition The builder of the child node - */ - public function variableNode($name) - { - return $this->node($name, 'variable'); - } - - /** - * Returns the parent node. - * - * @return NodeDefinition&ParentNodeDefinitionInterface The parent node - */ - public function end() - { - return $this->parent; - } - - /** - * Creates a child node. - * - * @param string|null $name The name of the node - * @param string $type The type of the node - * - * @return NodeDefinition The child node - * - * @throws \RuntimeException When the node type is not registered - * @throws \RuntimeException When the node class is not found - */ - public function node($name, $type) - { - $class = $this->getNodeClass($type); - - $node = new $class($name); - - $this->append($node); - - return $node; - } - - /** - * Appends a node definition. - * - * Usage: - * - * $node = new ArrayNodeDefinition('name') - * ->children() - * ->scalarNode('foo')->end() - * ->scalarNode('baz')->end() - * ->append($this->getBarNodeDefinition()) - * ->end() - * ; - * - * @return $this - */ - public function append(NodeDefinition $node) - { - if ($node instanceof BuilderAwareInterface) { - $builder = clone $this; - $builder->setParent(null); - $node->setBuilder($builder); - } - - if (null !== $this->parent) { - $this->parent->append($node); - // Make this builder the node parent to allow for a fluid interface - $node->setParent($this); - } - - return $this; - } - - /** - * Adds or overrides a node Type. - * - * @param string $type The name of the type - * @param string $class The fully qualified name the node definition class - * - * @return $this - */ - public function setNodeClass($type, $class) - { - $this->nodeMapping[strtolower($type)] = $class; - - return $this; - } - - /** - * Returns the class name of the node definition. - * - * @param string $type The node type - * - * @return string The node definition class name - * - * @throws \RuntimeException When the node type is not registered - * @throws \RuntimeException When the node class is not found - */ - protected function getNodeClass($type) - { - $type = strtolower($type); - - if (!isset($this->nodeMapping[$type])) { - throw new \RuntimeException(sprintf('The node type "%s" is not registered.', $type)); - } - - $class = $this->nodeMapping[$type]; - - if (!class_exists($class)) { - throw new \RuntimeException(sprintf('The node class "%s" does not exist.', $class)); - } - - return $class; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/NodeDefinition.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/NodeDefinition.php deleted file mode 100644 index dc2e5e3..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/NodeDefinition.php +++ /dev/null @@ -1,373 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -use Symfony\Component\Config\Definition\BaseNode; -use Symfony\Component\Config\Definition\Exception\InvalidDefinitionException; -use Symfony\Component\Config\Definition\NodeInterface; - -/** - * This class provides a fluent interface for defining a node. - * - * @author Johannes M. Schmitt - */ -abstract class NodeDefinition implements NodeParentInterface -{ - protected $name; - protected $normalization; - protected $validation; - protected $defaultValue; - protected $default = false; - protected $required = false; - protected $deprecationMessage = null; - protected $merge; - protected $allowEmptyValue = true; - protected $nullEquivalent; - protected $trueEquivalent = true; - protected $falseEquivalent = false; - protected $pathSeparator = BaseNode::DEFAULT_PATH_SEPARATOR; - protected $parent; - protected $attributes = []; - - public function __construct(?string $name, NodeParentInterface $parent = null) - { - $this->parent = $parent; - $this->name = $name; - } - - /** - * Sets the parent node. - * - * @return $this - */ - public function setParent(NodeParentInterface $parent) - { - $this->parent = $parent; - - return $this; - } - - /** - * Sets info message. - * - * @param string $info The info text - * - * @return $this - */ - public function info($info) - { - return $this->attribute('info', $info); - } - - /** - * Sets example configuration. - * - * @param string|array $example - * - * @return $this - */ - public function example($example) - { - return $this->attribute('example', $example); - } - - /** - * Sets an attribute on the node. - * - * @param string $key - * @param mixed $value - * - * @return $this - */ - public function attribute($key, $value) - { - $this->attributes[$key] = $value; - - return $this; - } - - /** - * Returns the parent node. - * - * @return NodeParentInterface|NodeBuilder|NodeDefinition|ArrayNodeDefinition|VariableNodeDefinition|null The builder of the parent node - */ - public function end() - { - return $this->parent; - } - - /** - * Creates the node. - * - * @param bool $forceRootNode Whether to force this node as the root node - * - * @return NodeInterface - */ - public function getNode($forceRootNode = false) - { - if ($forceRootNode) { - $this->parent = null; - } - - if (null !== $this->normalization) { - $this->normalization->before = ExprBuilder::buildExpressions($this->normalization->before); - } - - if (null !== $this->validation) { - $this->validation->rules = ExprBuilder::buildExpressions($this->validation->rules); - } - - $node = $this->createNode(); - $node->setAttributes($this->attributes); - - return $node; - } - - /** - * Sets the default value. - * - * @param mixed $value The default value - * - * @return $this - */ - public function defaultValue($value) - { - $this->default = true; - $this->defaultValue = $value; - - return $this; - } - - /** - * Sets the node as required. - * - * @return $this - */ - public function isRequired() - { - $this->required = true; - - return $this; - } - - /** - * Sets the node as deprecated. - * - * You can use %node% and %path% placeholders in your message to display, - * respectively, the node name and its complete path. - * - * @param string $message Deprecation message - * - * @return $this - */ - public function setDeprecated($message = 'The child node "%node%" at path "%path%" is deprecated.') - { - $this->deprecationMessage = $message; - - return $this; - } - - /** - * Sets the equivalent value used when the node contains null. - * - * @param mixed $value - * - * @return $this - */ - public function treatNullLike($value) - { - $this->nullEquivalent = $value; - - return $this; - } - - /** - * Sets the equivalent value used when the node contains true. - * - * @param mixed $value - * - * @return $this - */ - public function treatTrueLike($value) - { - $this->trueEquivalent = $value; - - return $this; - } - - /** - * Sets the equivalent value used when the node contains false. - * - * @param mixed $value - * - * @return $this - */ - public function treatFalseLike($value) - { - $this->falseEquivalent = $value; - - return $this; - } - - /** - * Sets null as the default value. - * - * @return $this - */ - public function defaultNull() - { - return $this->defaultValue(null); - } - - /** - * Sets true as the default value. - * - * @return $this - */ - public function defaultTrue() - { - return $this->defaultValue(true); - } - - /** - * Sets false as the default value. - * - * @return $this - */ - public function defaultFalse() - { - return $this->defaultValue(false); - } - - /** - * Sets an expression to run before the normalization. - * - * @return ExprBuilder - */ - public function beforeNormalization() - { - return $this->normalization()->before(); - } - - /** - * Denies the node value being empty. - * - * @return $this - */ - public function cannotBeEmpty() - { - $this->allowEmptyValue = false; - - return $this; - } - - /** - * Sets an expression to run for the validation. - * - * The expression receives the value of the node and must return it. It can - * modify it. - * An exception should be thrown when the node is not valid. - * - * @return ExprBuilder - */ - public function validate() - { - return $this->validation()->rule(); - } - - /** - * Sets whether the node can be overwritten. - * - * @param bool $deny Whether the overwriting is forbidden or not - * - * @return $this - */ - public function cannotBeOverwritten($deny = true) - { - $this->merge()->denyOverwrite($deny); - - return $this; - } - - /** - * Gets the builder for validation rules. - * - * @return ValidationBuilder - */ - protected function validation() - { - if (null === $this->validation) { - $this->validation = new ValidationBuilder($this); - } - - return $this->validation; - } - - /** - * Gets the builder for merging rules. - * - * @return MergeBuilder - */ - protected function merge() - { - if (null === $this->merge) { - $this->merge = new MergeBuilder($this); - } - - return $this->merge; - } - - /** - * Gets the builder for normalization rules. - * - * @return NormalizationBuilder - */ - protected function normalization() - { - if (null === $this->normalization) { - $this->normalization = new NormalizationBuilder($this); - } - - return $this->normalization; - } - - /** - * Instantiate and configure the node according to this definition. - * - * @return NodeInterface The node instance - * - * @throws InvalidDefinitionException When the definition is invalid - */ - abstract protected function createNode(); - - /** - * Set PathSeparator to use. - * - * @return $this - */ - public function setPathSeparator(string $separator) - { - if ($this instanceof ParentNodeDefinitionInterface) { - if (method_exists($this, 'getChildNodeDefinitions')) { - foreach ($this->getChildNodeDefinitions() as $child) { - $child->setPathSeparator($separator); - } - } else { - @trigger_error(sprintf('Not implementing the "%s::getChildNodeDefinitions()" method in "%s" is deprecated since Symfony 4.1.', ParentNodeDefinitionInterface::class, \get_class($this)), E_USER_DEPRECATED); - } - } - - $this->pathSeparator = $separator; - - return $this; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/NodeParentInterface.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/NodeParentInterface.php deleted file mode 100644 index 305e993..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/NodeParentInterface.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -/** - * An interface that must be implemented by all node parents. - * - * @author Victor Berchet - */ -interface NodeParentInterface -{ -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/NormalizationBuilder.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/NormalizationBuilder.php deleted file mode 100644 index d3cdca9..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/NormalizationBuilder.php +++ /dev/null @@ -1,60 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -/** - * This class builds normalization conditions. - * - * @author Johannes M. Schmitt - */ -class NormalizationBuilder -{ - protected $node; - public $before = []; - public $remappings = []; - - public function __construct(NodeDefinition $node) - { - $this->node = $node; - } - - /** - * Registers a key to remap to its plural form. - * - * @param string $key The key to remap - * @param string $plural The plural of the key in case of irregular plural - * - * @return $this - */ - public function remap($key, $plural = null) - { - $this->remappings[] = [$key, null === $plural ? $key.'s' : $plural]; - - return $this; - } - - /** - * Registers a closure to run before the normalization or an expression builder to build it if null is provided. - * - * @return ExprBuilder|$this - */ - public function before(\Closure $closure = null) - { - if (null !== $closure) { - $this->before[] = $closure; - - return $this; - } - - return $this->before[] = new ExprBuilder($this->node); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/NumericNodeDefinition.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/NumericNodeDefinition.php deleted file mode 100644 index 0d0207c..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/NumericNodeDefinition.php +++ /dev/null @@ -1,73 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -use Symfony\Component\Config\Definition\Exception\InvalidDefinitionException; - -/** - * Abstract class that contains common code of integer and float node definitions. - * - * @author David Jeanmonod - */ -abstract class NumericNodeDefinition extends ScalarNodeDefinition -{ - protected $min; - protected $max; - - /** - * Ensures that the value is smaller than the given reference. - * - * @param mixed $max - * - * @return $this - * - * @throws \InvalidArgumentException when the constraint is inconsistent - */ - public function max($max) - { - if (isset($this->min) && $this->min > $max) { - throw new \InvalidArgumentException(sprintf('You cannot define a max(%s) as you already have a min(%s)', $max, $this->min)); - } - $this->max = $max; - - return $this; - } - - /** - * Ensures that the value is bigger than the given reference. - * - * @param mixed $min - * - * @return $this - * - * @throws \InvalidArgumentException when the constraint is inconsistent - */ - public function min($min) - { - if (isset($this->max) && $this->max < $min) { - throw new \InvalidArgumentException(sprintf('You cannot define a min(%s) as you already have a max(%s)', $min, $this->max)); - } - $this->min = $min; - - return $this; - } - - /** - * {@inheritdoc} - * - * @throws InvalidDefinitionException - */ - public function cannotBeEmpty() - { - throw new InvalidDefinitionException('->cannotBeEmpty() is not applicable to NumericNodeDefinition.'); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/ParentNodeDefinitionInterface.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/ParentNodeDefinitionInterface.php deleted file mode 100644 index c6328c2..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/ParentNodeDefinitionInterface.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -/** - * An interface that must be implemented by nodes which can have children. - * - * @author Victor Berchet - * - * @method NodeDefinition[] getChildNodeDefinitions() Gets the child node definitions - not implementing it is deprecated since Symfony 4.2 - */ -interface ParentNodeDefinitionInterface extends BuilderAwareInterface -{ - /** - * Returns a builder to add children nodes. - * - * @return NodeBuilder - */ - public function children(); - - /** - * Appends a node definition. - * - * Usage: - * - * $node = $parentNode - * ->children() - * ->scalarNode('foo')->end() - * ->scalarNode('baz')->end() - * ->append($this->getBarNodeDefinition()) - * ->end() - * ; - * - * @return $this - */ - public function append(NodeDefinition $node); -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/ScalarNodeDefinition.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/ScalarNodeDefinition.php deleted file mode 100644 index 428f612..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/ScalarNodeDefinition.php +++ /dev/null @@ -1,32 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -use Symfony\Component\Config\Definition\ScalarNode; - -/** - * This class provides a fluent interface for defining a node. - * - * @author Johannes M. Schmitt - */ -class ScalarNodeDefinition extends VariableNodeDefinition -{ - /** - * Instantiate a Node. - * - * @return ScalarNode The node - */ - protected function instantiateNode() - { - return new ScalarNode($this->name, $this->parent, $this->pathSeparator); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/TreeBuilder.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/TreeBuilder.php deleted file mode 100644 index 83f2c59..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/TreeBuilder.php +++ /dev/null @@ -1,106 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -use Symfony\Component\Config\Definition\Exception\TreeWithoutRootNodeException; -use Symfony\Component\Config\Definition\NodeInterface; - -/** - * This is the entry class for building a config tree. - * - * @author Johannes M. Schmitt - */ -class TreeBuilder implements NodeParentInterface -{ - protected $tree; - protected $root; - - public function __construct(string $name = null, string $type = 'array', NodeBuilder $builder = null) - { - if (null === $name) { - @trigger_error('A tree builder without a root node is deprecated since Symfony 4.2 and will not be supported anymore in 5.0.', E_USER_DEPRECATED); - } else { - $builder = $builder ?: new NodeBuilder(); - $this->root = $builder->node($name, $type)->setParent($this); - } - } - - /** - * Creates the root node. - * - * @param string $name The name of the root node - * @param string $type The type of the root node - * - * @return ArrayNodeDefinition|NodeDefinition The root node (as an ArrayNodeDefinition when the type is 'array') - * - * @throws \RuntimeException When the node type is not supported - * - * @deprecated since Symfony 4.3, pass the root name to the constructor instead - */ - public function root($name, $type = 'array', NodeBuilder $builder = null) - { - @trigger_error(sprintf('The "%s()" method called for the "%s" configuration is deprecated since Symfony 4.3, pass the root name to the constructor instead.', __METHOD__, $name), E_USER_DEPRECATED); - - $builder = $builder ?: new NodeBuilder(); - - return $this->root = $builder->node($name, $type)->setParent($this); - } - - /** - * @return NodeDefinition|ArrayNodeDefinition The root node (as an ArrayNodeDefinition when the type is 'array') - */ - public function getRootNode(): NodeDefinition - { - if (null === $this->root) { - throw new \RuntimeException(sprintf('Calling %s() before creating the root node is not supported, migrate to the new constructor signature instead.', __METHOD__)); - } - - return $this->root; - } - - /** - * Builds the tree. - * - * @return NodeInterface - * - * @throws \RuntimeException - */ - public function buildTree() - { - $this->assertTreeHasRootNode(); - if (null !== $this->tree) { - return $this->tree; - } - - return $this->tree = $this->root->getNode(true); - } - - public function setPathSeparator(string $separator) - { - $this->assertTreeHasRootNode(); - - // unset last built as changing path separator changes all nodes - $this->tree = null; - - $this->root->setPathSeparator($separator); - } - - /** - * @throws \RuntimeException if root node is not defined - */ - private function assertTreeHasRootNode() - { - if (null === $this->root) { - throw new TreeWithoutRootNodeException('The configuration tree has no root node.'); - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/ValidationBuilder.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/ValidationBuilder.php deleted file mode 100644 index 4efc726..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/ValidationBuilder.php +++ /dev/null @@ -1,44 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -/** - * This class builds validation conditions. - * - * @author Christophe Coevoet - */ -class ValidationBuilder -{ - protected $node; - public $rules = []; - - public function __construct(NodeDefinition $node) - { - $this->node = $node; - } - - /** - * Registers a closure to run as normalization or an expression builder to build it if null is provided. - * - * @return ExprBuilder|$this - */ - public function rule(\Closure $closure = null) - { - if (null !== $closure) { - $this->rules[] = $closure; - - return $this; - } - - return $this->rules[] = new ExprBuilder($this->node); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/VariableNodeDefinition.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/VariableNodeDefinition.php deleted file mode 100644 index 39a564f..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/Builder/VariableNodeDefinition.php +++ /dev/null @@ -1,65 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Builder; - -use Symfony\Component\Config\Definition\VariableNode; - -/** - * This class provides a fluent interface for defining a node. - * - * @author Johannes M. Schmitt - */ -class VariableNodeDefinition extends NodeDefinition -{ - /** - * Instantiate a Node. - * - * @return VariableNode The node - */ - protected function instantiateNode() - { - return new VariableNode($this->name, $this->parent, $this->pathSeparator); - } - - /** - * {@inheritdoc} - */ - protected function createNode() - { - $node = $this->instantiateNode(); - - if (null !== $this->normalization) { - $node->setNormalizationClosures($this->normalization->before); - } - - if (null !== $this->merge) { - $node->setAllowOverwrite($this->merge->allowOverwrite); - } - - if (true === $this->default) { - $node->setDefaultValue($this->defaultValue); - } - - $node->setAllowEmptyValue($this->allowEmptyValue); - $node->addEquivalentValue(null, $this->nullEquivalent); - $node->addEquivalentValue(true, $this->trueEquivalent); - $node->addEquivalentValue(false, $this->falseEquivalent); - $node->setRequired($this->required); - $node->setDeprecated($this->deprecationMessage); - - if (null !== $this->validation) { - $node->setFinalValidationClosures($this->validation->rules); - } - - return $node; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/ConfigurationInterface.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/ConfigurationInterface.php deleted file mode 100644 index d6456ed..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/ConfigurationInterface.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition; - -/** - * Configuration interface. - * - * @author Victor Berchet - */ -interface ConfigurationInterface -{ - /** - * Generates the configuration tree builder. - * - * @return \Symfony\Component\Config\Definition\Builder\TreeBuilder The tree builder - */ - public function getConfigTreeBuilder(); -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/Dumper/XmlReferenceDumper.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/Dumper/XmlReferenceDumper.php deleted file mode 100644 index ff8c353..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/Dumper/XmlReferenceDumper.php +++ /dev/null @@ -1,302 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Dumper; - -use Symfony\Component\Config\Definition\ArrayNode; -use Symfony\Component\Config\Definition\ConfigurationInterface; -use Symfony\Component\Config\Definition\EnumNode; -use Symfony\Component\Config\Definition\NodeInterface; -use Symfony\Component\Config\Definition\PrototypedArrayNode; - -/** - * Dumps a XML reference configuration for the given configuration/node instance. - * - * @author Wouter J - */ -class XmlReferenceDumper -{ - private $reference; - - public function dump(ConfigurationInterface $configuration, $namespace = null) - { - return $this->dumpNode($configuration->getConfigTreeBuilder()->buildTree(), $namespace); - } - - public function dumpNode(NodeInterface $node, $namespace = null) - { - $this->reference = ''; - $this->writeNode($node, 0, true, $namespace); - $ref = $this->reference; - $this->reference = null; - - return $ref; - } - - private function writeNode(NodeInterface $node, int $depth = 0, bool $root = false, string $namespace = null) - { - $rootName = ($root ? 'config' : $node->getName()); - $rootNamespace = ($namespace ?: ($root ? 'http://example.org/schema/dic/'.$node->getName() : null)); - - // xml remapping - if ($node->getParent()) { - $remapping = array_filter($node->getParent()->getXmlRemappings(), function ($mapping) use ($rootName) { - return $rootName === $mapping[1]; - }); - - if (\count($remapping)) { - list($singular) = current($remapping); - $rootName = $singular; - } - } - $rootName = str_replace('_', '-', $rootName); - - $rootAttributes = []; - $rootAttributeComments = []; - $rootChildren = []; - $rootComments = []; - - if ($node instanceof ArrayNode) { - $children = $node->getChildren(); - - // comments about the root node - if ($rootInfo = $node->getInfo()) { - $rootComments[] = $rootInfo; - } - - if ($rootNamespace) { - $rootComments[] = 'Namespace: '.$rootNamespace; - } - - // render prototyped nodes - if ($node instanceof PrototypedArrayNode) { - $prototype = $node->getPrototype(); - - $info = 'prototype'; - if (null !== $prototype->getInfo()) { - $info .= ': '.$prototype->getInfo(); - } - array_unshift($rootComments, $info); - - if ($key = $node->getKeyAttribute()) { - $rootAttributes[$key] = str_replace('-', ' ', $rootName).' '.$key; - } - - if ($prototype instanceof PrototypedArrayNode) { - $prototype->setName($key); - $children = [$key => $prototype]; - } elseif ($prototype instanceof ArrayNode) { - $children = $prototype->getChildren(); - } else { - if ($prototype->hasDefaultValue()) { - $prototypeValue = $prototype->getDefaultValue(); - } else { - switch (\get_class($prototype)) { - case 'Symfony\Component\Config\Definition\ScalarNode': - $prototypeValue = 'scalar value'; - break; - - case 'Symfony\Component\Config\Definition\FloatNode': - case 'Symfony\Component\Config\Definition\IntegerNode': - $prototypeValue = 'numeric value'; - break; - - case 'Symfony\Component\Config\Definition\BooleanNode': - $prototypeValue = 'true|false'; - break; - - case 'Symfony\Component\Config\Definition\EnumNode': - $prototypeValue = implode('|', array_map('json_encode', $prototype->getValues())); - break; - - default: - $prototypeValue = 'value'; - } - } - } - } - - // get attributes and elements - foreach ($children as $child) { - if (!$child instanceof ArrayNode) { - // get attributes - - // metadata - $name = str_replace('_', '-', $child->getName()); - $value = '%%%%not_defined%%%%'; // use a string which isn't used in the normal world - - // comments - $comments = []; - if ($info = $child->getInfo()) { - $comments[] = $info; - } - - if ($example = $child->getExample()) { - $comments[] = 'Example: '.$example; - } - - if ($child->isRequired()) { - $comments[] = 'Required'; - } - - if ($child->isDeprecated()) { - $comments[] = sprintf('Deprecated (%s)', $child->getDeprecationMessage($child->getName(), $node->getPath())); - } - - if ($child instanceof EnumNode) { - $comments[] = 'One of '.implode('; ', array_map('json_encode', $child->getValues())); - } - - if (\count($comments)) { - $rootAttributeComments[$name] = implode(";\n", $comments); - } - - // default values - if ($child->hasDefaultValue()) { - $value = $child->getDefaultValue(); - } - - // append attribute - $rootAttributes[$name] = $value; - } else { - // get elements - $rootChildren[] = $child; - } - } - } - - // render comments - - // root node comment - if (\count($rootComments)) { - foreach ($rootComments as $comment) { - $this->writeLine('', $depth); - } - } - - // attribute comments - if (\count($rootAttributeComments)) { - foreach ($rootAttributeComments as $attrName => $comment) { - $commentDepth = $depth + 4 + \strlen($attrName) + 2; - $commentLines = explode("\n", $comment); - $multiline = (\count($commentLines) > 1); - $comment = implode(PHP_EOL.str_repeat(' ', $commentDepth), $commentLines); - - if ($multiline) { - $this->writeLine('', $depth); - } else { - $this->writeLine('', $depth); - } - } - } - - // render start tag + attributes - $rootIsVariablePrototype = isset($prototypeValue); - $rootIsEmptyTag = (0 === \count($rootChildren) && !$rootIsVariablePrototype); - $rootOpenTag = '<'.$rootName; - if (1 >= ($attributesCount = \count($rootAttributes))) { - if (1 === $attributesCount) { - $rootOpenTag .= sprintf(' %s="%s"', current(array_keys($rootAttributes)), $this->writeValue(current($rootAttributes))); - } - - $rootOpenTag .= $rootIsEmptyTag ? ' />' : '>'; - - if ($rootIsVariablePrototype) { - $rootOpenTag .= $prototypeValue.''; - } - - $this->writeLine($rootOpenTag, $depth); - } else { - $this->writeLine($rootOpenTag, $depth); - - $i = 1; - - foreach ($rootAttributes as $attrName => $attrValue) { - $attr = sprintf('%s="%s"', $attrName, $this->writeValue($attrValue)); - - $this->writeLine($attr, $depth + 4); - - if ($attributesCount === $i++) { - $this->writeLine($rootIsEmptyTag ? '/>' : '>', $depth); - - if ($rootIsVariablePrototype) { - $rootOpenTag .= $prototypeValue.''; - } - } - } - } - - // render children tags - foreach ($rootChildren as $child) { - $this->writeLine(''); - $this->writeNode($child, $depth + 4); - } - - // render end tag - if (!$rootIsEmptyTag && !$rootIsVariablePrototype) { - $this->writeLine(''); - - $rootEndTag = ''; - $this->writeLine($rootEndTag, $depth); - } - } - - /** - * Outputs a single config reference line. - */ - private function writeLine(string $text, int $indent = 0) - { - $indent = \strlen($text) + $indent; - $format = '%'.$indent.'s'; - - $this->reference .= sprintf($format, $text).PHP_EOL; - } - - /** - * Renders the string conversion of the value. - * - * @param mixed $value - */ - private function writeValue($value): string - { - if ('%%%%not_defined%%%%' === $value) { - return ''; - } - - if (\is_string($value) || is_numeric($value)) { - return $value; - } - - if (false === $value) { - return 'false'; - } - - if (true === $value) { - return 'true'; - } - - if (null === $value) { - return 'null'; - } - - if (empty($value)) { - return ''; - } - - if (\is_array($value)) { - return implode(',', $value); - } - - return ''; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/Dumper/YamlReferenceDumper.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/Dumper/YamlReferenceDumper.php deleted file mode 100644 index c53481b..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/Dumper/YamlReferenceDumper.php +++ /dev/null @@ -1,242 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Dumper; - -use Symfony\Component\Config\Definition\ArrayNode; -use Symfony\Component\Config\Definition\ConfigurationInterface; -use Symfony\Component\Config\Definition\EnumNode; -use Symfony\Component\Config\Definition\NodeInterface; -use Symfony\Component\Config\Definition\PrototypedArrayNode; -use Symfony\Component\Config\Definition\ScalarNode; -use Symfony\Component\Yaml\Inline; - -/** - * Dumps a Yaml reference configuration for the given configuration/node instance. - * - * @author Kevin Bond - */ -class YamlReferenceDumper -{ - private $reference; - - public function dump(ConfigurationInterface $configuration) - { - return $this->dumpNode($configuration->getConfigTreeBuilder()->buildTree()); - } - - public function dumpAtPath(ConfigurationInterface $configuration, $path) - { - $rootNode = $node = $configuration->getConfigTreeBuilder()->buildTree(); - - foreach (explode('.', $path) as $step) { - if (!$node instanceof ArrayNode) { - throw new \UnexpectedValueException(sprintf('Unable to find node at path "%s.%s"', $rootNode->getName(), $path)); - } - - /** @var NodeInterface[] $children */ - $children = $node instanceof PrototypedArrayNode ? $this->getPrototypeChildren($node) : $node->getChildren(); - - foreach ($children as $child) { - if ($child->getName() === $step) { - $node = $child; - - continue 2; - } - } - - throw new \UnexpectedValueException(sprintf('Unable to find node at path "%s.%s"', $rootNode->getName(), $path)); - } - - return $this->dumpNode($node); - } - - public function dumpNode(NodeInterface $node) - { - $this->reference = ''; - $this->writeNode($node); - $ref = $this->reference; - $this->reference = null; - - return $ref; - } - - private function writeNode(NodeInterface $node, NodeInterface $parentNode = null, int $depth = 0, bool $prototypedArray = false) - { - $comments = []; - $default = ''; - $defaultArray = null; - $children = null; - $example = $node->getExample(); - - // defaults - if ($node instanceof ArrayNode) { - $children = $node->getChildren(); - - if ($node instanceof PrototypedArrayNode) { - $children = $this->getPrototypeChildren($node); - } - - if (!$children) { - if ($node->hasDefaultValue() && \count($defaultArray = $node->getDefaultValue())) { - $default = ''; - } elseif (!\is_array($example)) { - $default = '[]'; - } - } - } elseif ($node instanceof EnumNode) { - $comments[] = 'One of '.implode('; ', array_map('json_encode', $node->getValues())); - $default = $node->hasDefaultValue() ? Inline::dump($node->getDefaultValue()) : '~'; - } else { - $default = '~'; - - if ($node->hasDefaultValue()) { - $default = $node->getDefaultValue(); - - if (\is_array($default)) { - if (\count($defaultArray = $node->getDefaultValue())) { - $default = ''; - } elseif (!\is_array($example)) { - $default = '[]'; - } - } else { - $default = Inline::dump($default); - } - } - } - - // required? - if ($node->isRequired()) { - $comments[] = 'Required'; - } - - // deprecated? - if ($node->isDeprecated()) { - $comments[] = sprintf('Deprecated (%s)', $node->getDeprecationMessage($node->getName(), $parentNode ? $parentNode->getPath() : $node->getPath())); - } - - // example - if ($example && !\is_array($example)) { - $comments[] = 'Example: '.$example; - } - - $default = '' != (string) $default ? ' '.$default : ''; - $comments = \count($comments) ? '# '.implode(', ', $comments) : ''; - - $key = $prototypedArray ? '-' : $node->getName().':'; - $text = rtrim(sprintf('%-21s%s %s', $key, $default, $comments), ' '); - - if ($info = $node->getInfo()) { - $this->writeLine(''); - // indenting multi-line info - $info = str_replace("\n", sprintf("\n%".($depth * 4).'s# ', ' '), $info); - $this->writeLine('# '.$info, $depth * 4); - } - - $this->writeLine($text, $depth * 4); - - // output defaults - if ($defaultArray) { - $this->writeLine(''); - - $message = \count($defaultArray) > 1 ? 'Defaults' : 'Default'; - - $this->writeLine('# '.$message.':', $depth * 4 + 4); - - $this->writeArray($defaultArray, $depth + 1); - } - - if (\is_array($example)) { - $this->writeLine(''); - - $message = \count($example) > 1 ? 'Examples' : 'Example'; - - $this->writeLine('# '.$message.':', $depth * 4 + 4); - - $this->writeArray($example, $depth + 1); - } - - if ($children) { - foreach ($children as $childNode) { - $this->writeNode($childNode, $node, $depth + 1, $node instanceof PrototypedArrayNode && !$node->getKeyAttribute()); - } - } - } - - /** - * Outputs a single config reference line. - */ - private function writeLine(string $text, int $indent = 0) - { - $indent = \strlen($text) + $indent; - $format = '%'.$indent.'s'; - - $this->reference .= sprintf($format, $text)."\n"; - } - - private function writeArray(array $array, int $depth) - { - $isIndexed = array_values($array) === $array; - - foreach ($array as $key => $value) { - if (\is_array($value)) { - $val = ''; - } else { - $val = $value; - } - - if ($isIndexed) { - $this->writeLine('- '.$val, $depth * 4); - } else { - $this->writeLine(sprintf('%-20s %s', $key.':', $val), $depth * 4); - } - - if (\is_array($value)) { - $this->writeArray($value, $depth + 1); - } - } - } - - private function getPrototypeChildren(PrototypedArrayNode $node): array - { - $prototype = $node->getPrototype(); - $key = $node->getKeyAttribute(); - - // Do not expand prototype if it isn't an array node nor uses attribute as key - if (!$key && !$prototype instanceof ArrayNode) { - return $node->getChildren(); - } - - if ($prototype instanceof ArrayNode) { - $keyNode = new ArrayNode($key, $node); - $children = $prototype->getChildren(); - - if ($prototype instanceof PrototypedArrayNode && $prototype->getKeyAttribute()) { - $children = $this->getPrototypeChildren($prototype); - } - - // add children - foreach ($children as $childNode) { - $keyNode->addChild($childNode); - } - } else { - $keyNode = new ScalarNode($key, $node); - } - - $info = 'Prototype'; - if (null !== $prototype->getInfo()) { - $info .= ': '.$prototype->getInfo(); - } - $keyNode->setInfo($info); - - return [$key => $keyNode]; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/EnumNode.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/EnumNode.php deleted file mode 100644 index 23fc508..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/EnumNode.php +++ /dev/null @@ -1,62 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition; - -use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; - -/** - * Node which only allows a finite set of values. - * - * @author Johannes M. Schmitt - */ -class EnumNode extends ScalarNode -{ - private $values; - - public function __construct(?string $name, NodeInterface $parent = null, array $values = [], string $pathSeparator = BaseNode::DEFAULT_PATH_SEPARATOR) - { - $values = array_unique($values); - if (empty($values)) { - throw new \InvalidArgumentException('$values must contain at least one element.'); - } - - parent::__construct($name, $parent, $pathSeparator); - $this->values = $values; - } - - public function getValues() - { - return $this->values; - } - - protected function finalizeValue($value) - { - $value = parent::finalizeValue($value); - - if (!\in_array($value, $this->values, true)) { - $ex = new InvalidConfigurationException(sprintf('The value %s is not allowed for path "%s". Permissible values: %s', json_encode($value), $this->getPath(), implode(', ', array_map('json_encode', $this->values)))); - $ex->setPath($this->getPath()); - - throw $ex; - } - - return $value; - } - - /** - * {@inheritdoc} - */ - protected function allowPlaceholders(): bool - { - return false; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/DuplicateKeyException.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/DuplicateKeyException.php deleted file mode 100644 index 48dd932..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/DuplicateKeyException.php +++ /dev/null @@ -1,22 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Exception; - -/** - * This exception is thrown whenever the key of an array is not unique. This can - * only be the case if the configuration is coming from an XML file. - * - * @author Johannes M. Schmitt - */ -class DuplicateKeyException extends InvalidConfigurationException -{ -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/Exception.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/Exception.php deleted file mode 100644 index 8933a49..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/Exception.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Exception; - -/** - * Base exception for all configuration exceptions. - * - * @author Johannes M. Schmitt - */ -class Exception extends \RuntimeException -{ -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/ForbiddenOverwriteException.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/ForbiddenOverwriteException.php deleted file mode 100644 index 726c07f..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/ForbiddenOverwriteException.php +++ /dev/null @@ -1,22 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Exception; - -/** - * This exception is thrown when a configuration path is overwritten from a - * subsequent configuration file, but the entry node specifically forbids this. - * - * @author Johannes M. Schmitt - */ -class ForbiddenOverwriteException extends InvalidConfigurationException -{ -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/InvalidConfigurationException.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/InvalidConfigurationException.php deleted file mode 100644 index 3dbc57b..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/InvalidConfigurationException.php +++ /dev/null @@ -1,49 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Exception; - -/** - * A very general exception which can be thrown whenever non of the more specific - * exceptions is suitable. - * - * @author Johannes M. Schmitt - */ -class InvalidConfigurationException extends Exception -{ - private $path; - private $containsHints = false; - - public function setPath($path) - { - $this->path = $path; - } - - public function getPath() - { - return $this->path; - } - - /** - * Adds extra information that is suffixed to the original exception message. - * - * @param string $hint - */ - public function addHint($hint) - { - if (!$this->containsHints) { - $this->message .= "\nHint: ".$hint; - $this->containsHints = true; - } else { - $this->message .= ', '.$hint; - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/InvalidDefinitionException.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/InvalidDefinitionException.php deleted file mode 100644 index 98310da..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/InvalidDefinitionException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Exception; - -/** - * Thrown when an error is detected in a node Definition. - * - * @author Victor Berchet - */ -class InvalidDefinitionException extends Exception -{ -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/InvalidTypeException.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/InvalidTypeException.php deleted file mode 100644 index d7ca8c9..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/InvalidTypeException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Exception; - -/** - * This exception is thrown if an invalid type is encountered. - * - * @author Johannes M. Schmitt - */ -class InvalidTypeException extends InvalidConfigurationException -{ -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/TreeWithoutRootNodeException.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/TreeWithoutRootNodeException.php deleted file mode 100644 index 04406fc..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/TreeWithoutRootNodeException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Exception; - -/** - * @author Roland Franssen - * - * @internal - */ -class TreeWithoutRootNodeException extends \RuntimeException -{ -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/UnsetKeyException.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/UnsetKeyException.php deleted file mode 100644 index 863181a..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/Exception/UnsetKeyException.php +++ /dev/null @@ -1,22 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition\Exception; - -/** - * This exception is usually not encountered by the end-user, but only used - * internally to signal the parent scope to unset a key. - * - * @author Johannes M. Schmitt - */ -class UnsetKeyException extends Exception -{ -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/FloatNode.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/FloatNode.php deleted file mode 100644 index 8e229ed..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/FloatNode.php +++ /dev/null @@ -1,51 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition; - -use Symfony\Component\Config\Definition\Exception\InvalidTypeException; - -/** - * This node represents a float value in the config tree. - * - * @author Jeanmonod David - */ -class FloatNode extends NumericNode -{ - /** - * {@inheritdoc} - */ - protected function validateType($value) - { - // Integers are also accepted, we just cast them - if (\is_int($value)) { - $value = (float) $value; - } - - if (!\is_float($value)) { - $ex = new InvalidTypeException(sprintf('Invalid type for path "%s". Expected float, but got %s.', $this->getPath(), \gettype($value))); - if ($hint = $this->getInfo()) { - $ex->addHint($hint); - } - $ex->setPath($this->getPath()); - - throw $ex; - } - } - - /** - * {@inheritdoc} - */ - protected function getValidPlaceholderTypes(): array - { - return ['float']; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/IntegerNode.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/IntegerNode.php deleted file mode 100644 index e8c6a81..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/IntegerNode.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition; - -use Symfony\Component\Config\Definition\Exception\InvalidTypeException; - -/** - * This node represents an integer value in the config tree. - * - * @author Jeanmonod David - */ -class IntegerNode extends NumericNode -{ - /** - * {@inheritdoc} - */ - protected function validateType($value) - { - if (!\is_int($value)) { - $ex = new InvalidTypeException(sprintf('Invalid type for path "%s". Expected int, but got %s.', $this->getPath(), \gettype($value))); - if ($hint = $this->getInfo()) { - $ex->addHint($hint); - } - $ex->setPath($this->getPath()); - - throw $ex; - } - } - - /** - * {@inheritdoc} - */ - protected function getValidPlaceholderTypes(): array - { - return ['int']; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/NodeInterface.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/NodeInterface.php deleted file mode 100644 index 45f1f68..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/NodeInterface.php +++ /dev/null @@ -1,100 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition; - -use Symfony\Component\Config\Definition\Exception\ForbiddenOverwriteException; -use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; -use Symfony\Component\Config\Definition\Exception\InvalidTypeException; - -/** - * Common Interface among all nodes. - * - * In most cases, it is better to inherit from BaseNode instead of implementing - * this interface yourself. - * - * @author Johannes M. Schmitt - */ -interface NodeInterface -{ - /** - * Returns the name of the node. - * - * @return string The name of the node - */ - public function getName(); - - /** - * Returns the path of the node. - * - * @return string The node path - */ - public function getPath(); - - /** - * Returns true when the node is required. - * - * @return bool If the node is required - */ - public function isRequired(); - - /** - * Returns true when the node has a default value. - * - * @return bool If the node has a default value - */ - public function hasDefaultValue(); - - /** - * Returns the default value of the node. - * - * @return mixed The default value - * - * @throws \RuntimeException if the node has no default value - */ - public function getDefaultValue(); - - /** - * Normalizes a value. - * - * @param mixed $value The value to normalize - * - * @return mixed The normalized value - * - * @throws InvalidTypeException if the value type is invalid - */ - public function normalize($value); - - /** - * Merges two values together. - * - * @param mixed $leftSide - * @param mixed $rightSide - * - * @return mixed The merged value - * - * @throws ForbiddenOverwriteException if the configuration path cannot be overwritten - * @throws InvalidTypeException if the value type is invalid - */ - public function merge($leftSide, $rightSide); - - /** - * Finalizes a value. - * - * @param mixed $value The value to finalize - * - * @return mixed The finalized value - * - * @throws InvalidTypeException if the value type is invalid - * @throws InvalidConfigurationException if the value is invalid configuration - */ - public function finalize($value); -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/NumericNode.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/NumericNode.php deleted file mode 100644 index 19c96e8..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/NumericNode.php +++ /dev/null @@ -1,64 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition; - -use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; - -/** - * This node represents a numeric value in the config tree. - * - * @author David Jeanmonod - */ -class NumericNode extends ScalarNode -{ - protected $min; - protected $max; - - public function __construct(?string $name, NodeInterface $parent = null, $min = null, $max = null, string $pathSeparator = BaseNode::DEFAULT_PATH_SEPARATOR) - { - parent::__construct($name, $parent, $pathSeparator); - $this->min = $min; - $this->max = $max; - } - - /** - * {@inheritdoc} - */ - protected function finalizeValue($value) - { - $value = parent::finalizeValue($value); - - $errorMsg = null; - if (isset($this->min) && $value < $this->min) { - $errorMsg = sprintf('The value %s is too small for path "%s". Should be greater than or equal to %s', $value, $this->getPath(), $this->min); - } - if (isset($this->max) && $value > $this->max) { - $errorMsg = sprintf('The value %s is too big for path "%s". Should be less than or equal to %s', $value, $this->getPath(), $this->max); - } - if (isset($errorMsg)) { - $ex = new InvalidConfigurationException($errorMsg); - $ex->setPath($this->getPath()); - throw $ex; - } - - return $value; - } - - /** - * {@inheritdoc} - */ - protected function isValueEmpty($value) - { - // a numeric value cannot be empty - return false; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/Processor.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/Processor.php deleted file mode 100644 index a878b90..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/Processor.php +++ /dev/null @@ -1,97 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition; - -/** - * This class is the entry point for config normalization/merging/finalization. - * - * @author Johannes M. Schmitt - * - * @final since version 4.1 - */ -class Processor -{ - /** - * Processes an array of configurations. - * - * @param array $configs An array of configuration items to process - * - * @return array The processed configuration - */ - public function process(NodeInterface $configTree, array $configs) - { - $currentConfig = []; - foreach ($configs as $config) { - $config = $configTree->normalize($config); - $currentConfig = $configTree->merge($currentConfig, $config); - } - - return $configTree->finalize($currentConfig); - } - - /** - * Processes an array of configurations. - * - * @param array $configs An array of configuration items to process - * - * @return array The processed configuration - */ - public function processConfiguration(ConfigurationInterface $configuration, array $configs) - { - return $this->process($configuration->getConfigTreeBuilder()->buildTree(), $configs); - } - - /** - * Normalizes a configuration entry. - * - * This method returns a normalize configuration array for a given key - * to remove the differences due to the original format (YAML and XML mainly). - * - * Here is an example. - * - * The configuration in XML: - * - * twig.extension.foo - * twig.extension.bar - * - * And the same configuration in YAML: - * - * extensions: ['twig.extension.foo', 'twig.extension.bar'] - * - * @param array $config A config array - * @param string $key The key to normalize - * @param string $plural The plural form of the key if it is irregular - * - * @return array - */ - public static function normalizeConfig($config, $key, $plural = null) - { - if (null === $plural) { - $plural = $key.'s'; - } - - if (isset($config[$plural])) { - return $config[$plural]; - } - - if (isset($config[$key])) { - if (\is_string($config[$key]) || !\is_int(key($config[$key]))) { - // only one - return [$config[$key]]; - } - - return $config[$key]; - } - - return []; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/PrototypeNodeInterface.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/PrototypeNodeInterface.php deleted file mode 100644 index 8bbb84d..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/PrototypeNodeInterface.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition; - -/** - * This interface must be implemented by nodes which can be used as prototypes. - * - * @author Johannes M. Schmitt - */ -interface PrototypeNodeInterface extends NodeInterface -{ - /** - * Sets the name of the node. - * - * @param string $name The name of the node - */ - public function setName($name); -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/PrototypedArrayNode.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/PrototypedArrayNode.php deleted file mode 100644 index 72d8fa0..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/PrototypedArrayNode.php +++ /dev/null @@ -1,375 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition; - -use Symfony\Component\Config\Definition\Exception\DuplicateKeyException; -use Symfony\Component\Config\Definition\Exception\Exception; -use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; -use Symfony\Component\Config\Definition\Exception\UnsetKeyException; - -/** - * Represents a prototyped Array node in the config tree. - * - * @author Johannes M. Schmitt - */ -class PrototypedArrayNode extends ArrayNode -{ - protected $prototype; - protected $keyAttribute; - protected $removeKeyAttribute = false; - protected $minNumberOfElements = 0; - protected $defaultValue = []; - protected $defaultChildren; - /** - * @var NodeInterface[] An array of the prototypes of the simplified value children - */ - private $valuePrototypes = []; - - /** - * Sets the minimum number of elements that a prototype based node must - * contain. By default this is zero, meaning no elements. - * - * @param int $number - */ - public function setMinNumberOfElements($number) - { - $this->minNumberOfElements = $number; - } - - /** - * Sets the attribute which value is to be used as key. - * - * This is useful when you have an indexed array that should be an - * associative array. You can select an item from within the array - * to be the key of the particular item. For example, if "id" is the - * "key", then: - * - * [ - * ['id' => 'my_name', 'foo' => 'bar'], - * ]; - * - * becomes - * - * [ - * 'my_name' => ['foo' => 'bar'], - * ]; - * - * If you'd like "'id' => 'my_name'" to still be present in the resulting - * array, then you can set the second argument of this method to false. - * - * @param string $attribute The name of the attribute which value is to be used as a key - * @param bool $remove Whether or not to remove the key - */ - public function setKeyAttribute($attribute, $remove = true) - { - $this->keyAttribute = $attribute; - $this->removeKeyAttribute = $remove; - } - - /** - * Retrieves the name of the attribute which value should be used as key. - * - * @return string|null The name of the attribute - */ - public function getKeyAttribute() - { - return $this->keyAttribute; - } - - /** - * Sets the default value of this node. - * - * @param string $value - * - * @throws \InvalidArgumentException if the default value is not an array - */ - public function setDefaultValue($value) - { - if (!\is_array($value)) { - throw new \InvalidArgumentException($this->getPath().': the default value of an array node has to be an array.'); - } - - $this->defaultValue = $value; - } - - /** - * {@inheritdoc} - */ - public function hasDefaultValue() - { - return true; - } - - /** - * Adds default children when none are set. - * - * @param int|string|array|null $children The number of children|The child name|The children names to be added - */ - public function setAddChildrenIfNoneSet($children = ['defaults']) - { - if (null === $children) { - $this->defaultChildren = ['defaults']; - } else { - $this->defaultChildren = \is_int($children) && $children > 0 ? range(1, $children) : (array) $children; - } - } - - /** - * {@inheritdoc} - * - * The default value could be either explicited or derived from the prototype - * default value. - */ - public function getDefaultValue() - { - if (null !== $this->defaultChildren) { - $default = $this->prototype->hasDefaultValue() ? $this->prototype->getDefaultValue() : []; - $defaults = []; - foreach (array_values($this->defaultChildren) as $i => $name) { - $defaults[null === $this->keyAttribute ? $i : $name] = $default; - } - - return $defaults; - } - - return $this->defaultValue; - } - - /** - * Sets the node prototype. - */ - public function setPrototype(PrototypeNodeInterface $node) - { - $this->prototype = $node; - } - - /** - * Retrieves the prototype. - * - * @return PrototypeNodeInterface The prototype - */ - public function getPrototype() - { - return $this->prototype; - } - - /** - * Disable adding concrete children for prototyped nodes. - * - * @throws Exception - */ - public function addChild(NodeInterface $node) - { - throw new Exception('A prototyped array node can not have concrete children.'); - } - - /** - * Finalizes the value of this node. - * - * @param mixed $value - * - * @return mixed The finalized value - * - * @throws UnsetKeyException - * @throws InvalidConfigurationException if the node doesn't have enough children - */ - protected function finalizeValue($value) - { - if (false === $value) { - throw new UnsetKeyException(sprintf('Unsetting key for path "%s", value: %s', $this->getPath(), json_encode($value))); - } - - foreach ($value as $k => $v) { - $prototype = $this->getPrototypeForChild($k); - try { - $value[$k] = $prototype->finalize($v); - } catch (UnsetKeyException $e) { - unset($value[$k]); - } - } - - if (\count($value) < $this->minNumberOfElements) { - $ex = new InvalidConfigurationException(sprintf('The path "%s" should have at least %d element(s) defined.', $this->getPath(), $this->minNumberOfElements)); - $ex->setPath($this->getPath()); - - throw $ex; - } - - return $value; - } - - /** - * Normalizes the value. - * - * @param mixed $value The value to normalize - * - * @return mixed The normalized value - * - * @throws InvalidConfigurationException - * @throws DuplicateKeyException - */ - protected function normalizeValue($value) - { - if (false === $value) { - return $value; - } - - $value = $this->remapXml($value); - - $isAssoc = array_keys($value) !== range(0, \count($value) - 1); - $normalized = []; - foreach ($value as $k => $v) { - if (null !== $this->keyAttribute && \is_array($v)) { - if (!isset($v[$this->keyAttribute]) && \is_int($k) && !$isAssoc) { - $ex = new InvalidConfigurationException(sprintf('The attribute "%s" must be set for path "%s".', $this->keyAttribute, $this->getPath())); - $ex->setPath($this->getPath()); - - throw $ex; - } elseif (isset($v[$this->keyAttribute])) { - $k = $v[$this->keyAttribute]; - - // remove the key attribute when required - if ($this->removeKeyAttribute) { - unset($v[$this->keyAttribute]); - } - - // if only "value" is left - if (array_keys($v) === ['value']) { - $v = $v['value']; - if ($this->prototype instanceof ArrayNode && ($children = $this->prototype->getChildren()) && \array_key_exists('value', $children)) { - $valuePrototype = current($this->valuePrototypes) ?: clone $children['value']; - $valuePrototype->parent = $this; - $originalClosures = $this->prototype->normalizationClosures; - if (\is_array($originalClosures)) { - $valuePrototypeClosures = $valuePrototype->normalizationClosures; - $valuePrototype->normalizationClosures = \is_array($valuePrototypeClosures) ? array_merge($originalClosures, $valuePrototypeClosures) : $originalClosures; - } - $this->valuePrototypes[$k] = $valuePrototype; - } - } - } - - if (\array_key_exists($k, $normalized)) { - $ex = new DuplicateKeyException(sprintf('Duplicate key "%s" for path "%s".', $k, $this->getPath())); - $ex->setPath($this->getPath()); - - throw $ex; - } - } - - $prototype = $this->getPrototypeForChild($k); - if (null !== $this->keyAttribute || $isAssoc) { - $normalized[$k] = $prototype->normalize($v); - } else { - $normalized[] = $prototype->normalize($v); - } - } - - return $normalized; - } - - /** - * Merges values together. - * - * @param mixed $leftSide The left side to merge - * @param mixed $rightSide The right side to merge - * - * @return mixed The merged values - * - * @throws InvalidConfigurationException - * @throws \RuntimeException - */ - protected function mergeValues($leftSide, $rightSide) - { - if (false === $rightSide) { - // if this is still false after the last config has been merged the - // finalization pass will take care of removing this key entirely - return false; - } - - if (false === $leftSide || !$this->performDeepMerging) { - return $rightSide; - } - - foreach ($rightSide as $k => $v) { - // prototype, and key is irrelevant, append the element - if (null === $this->keyAttribute) { - $leftSide[] = $v; - continue; - } - - // no conflict - if (!\array_key_exists($k, $leftSide)) { - if (!$this->allowNewKeys) { - $ex = new InvalidConfigurationException(sprintf('You are not allowed to define new elements for path "%s". Please define all elements for this path in one config file.', $this->getPath())); - $ex->setPath($this->getPath()); - - throw $ex; - } - - $leftSide[$k] = $v; - continue; - } - - $prototype = $this->getPrototypeForChild($k); - $leftSide[$k] = $prototype->merge($leftSide[$k], $v); - } - - return $leftSide; - } - - /** - * Returns a prototype for the child node that is associated to $key in the value array. - * For general child nodes, this will be $this->prototype. - * But if $this->removeKeyAttribute is true and there are only two keys in the child node: - * one is same as this->keyAttribute and the other is 'value', then the prototype will be different. - * - * For example, assume $this->keyAttribute is 'name' and the value array is as follows: - * - * [ - * [ - * 'name' => 'name001', - * 'value' => 'value001' - * ] - * ] - * - * Now, the key is 0 and the child node is: - * - * [ - * 'name' => 'name001', - * 'value' => 'value001' - * ] - * - * When normalizing the value array, the 'name' element will removed from the child node - * and its value becomes the new key of the child node: - * - * [ - * 'name001' => ['value' => 'value001'] - * ] - * - * Now only 'value' element is left in the child node which can be further simplified into a string: - * - * ['name001' => 'value001'] - * - * Now, the key becomes 'name001' and the child node becomes 'value001' and - * the prototype of child node 'name001' should be a ScalarNode instead of an ArrayNode instance. - * - * @return mixed The prototype instance - */ - private function getPrototypeForChild(string $key) - { - $prototype = isset($this->valuePrototypes[$key]) ? $this->valuePrototypes[$key] : $this->prototype; - $prototype->setName($key); - - return $prototype; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/ScalarNode.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/ScalarNode.php deleted file mode 100644 index 5ad28ec..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/ScalarNode.php +++ /dev/null @@ -1,67 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition; - -use Symfony\Component\Config\Definition\Exception\InvalidTypeException; - -/** - * This node represents a scalar value in the config tree. - * - * The following values are considered scalars: - * * booleans - * * strings - * * null - * * integers - * * floats - * - * @author Johannes M. Schmitt - */ -class ScalarNode extends VariableNode -{ - /** - * {@inheritdoc} - */ - protected function validateType($value) - { - if (!is_scalar($value) && null !== $value) { - $ex = new InvalidTypeException(sprintf('Invalid type for path "%s". Expected scalar, but got %s.', $this->getPath(), \gettype($value))); - if ($hint = $this->getInfo()) { - $ex->addHint($hint); - } - $ex->setPath($this->getPath()); - - throw $ex; - } - } - - /** - * {@inheritdoc} - */ - protected function isValueEmpty($value) - { - // assume environment variables are never empty (which in practice is likely to be true during runtime) - // not doing so breaks many configs that are valid today - if ($this->isHandlingPlaceholder()) { - return false; - } - - return null === $value || '' === $value; - } - - /** - * {@inheritdoc} - */ - protected function getValidPlaceholderTypes(): array - { - return ['bool', 'int', 'float', 'string']; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Definition/VariableNode.php b/srcs/phpmyadmin/vendor/symfony/config/Definition/VariableNode.php deleted file mode 100644 index ad70d6e..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Definition/VariableNode.php +++ /dev/null @@ -1,143 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Definition; - -use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; - -/** - * This node represents a value of variable type in the config tree. - * - * This node is intended for values of arbitrary type. - * Any PHP type is accepted as a value. - * - * @author Jeremy Mikola - */ -class VariableNode extends BaseNode implements PrototypeNodeInterface -{ - protected $defaultValueSet = false; - protected $defaultValue; - protected $allowEmptyValue = true; - - public function setDefaultValue($value) - { - $this->defaultValueSet = true; - $this->defaultValue = $value; - } - - /** - * {@inheritdoc} - */ - public function hasDefaultValue() - { - return $this->defaultValueSet; - } - - /** - * {@inheritdoc} - */ - public function getDefaultValue() - { - $v = $this->defaultValue; - - return $v instanceof \Closure ? $v() : $v; - } - - /** - * Sets if this node is allowed to have an empty value. - * - * @param bool $boolean True if this entity will accept empty values - */ - public function setAllowEmptyValue($boolean) - { - $this->allowEmptyValue = (bool) $boolean; - } - - /** - * {@inheritdoc} - */ - public function setName($name) - { - $this->name = $name; - } - - /** - * {@inheritdoc} - */ - protected function validateType($value) - { - } - - /** - * {@inheritdoc} - */ - protected function finalizeValue($value) - { - // deny environment variables only when using custom validators - // this avoids ever passing an empty value to final validation closures - if (!$this->allowEmptyValue && $this->isHandlingPlaceholder() && $this->finalValidationClosures) { - @trigger_error(sprintf('Setting path "%s" to an environment variable is deprecated since Symfony 4.3. Remove "cannotBeEmpty()", "validate()" or include a prefix/suffix value instead.', $this->getPath()), E_USER_DEPRECATED); -// $e = new InvalidConfigurationException(sprintf('The path "%s" cannot contain an environment variable when empty values are not allowed by definition and are validated.', $this->getPath())); -// if ($hint = $this->getInfo()) { -// $e->addHint($hint); -// } -// $e->setPath($this->getPath()); -// -// throw $e; - } - - if (!$this->allowEmptyValue && $this->isValueEmpty($value)) { - $ex = new InvalidConfigurationException(sprintf('The path "%s" cannot contain an empty value, but got %s.', $this->getPath(), json_encode($value))); - if ($hint = $this->getInfo()) { - $ex->addHint($hint); - } - $ex->setPath($this->getPath()); - - throw $ex; - } - - return $value; - } - - /** - * {@inheritdoc} - */ - protected function normalizeValue($value) - { - return $value; - } - - /** - * {@inheritdoc} - */ - protected function mergeValues($leftSide, $rightSide) - { - return $rightSide; - } - - /** - * Evaluates if the given value is to be treated as empty. - * - * By default, PHP's empty() function is used to test for emptiness. This - * method may be overridden by subtypes to better match their understanding - * of empty data. - * - * @param mixed $value - * - * @return bool - * - * @see finalizeValue() - */ - protected function isValueEmpty($value) - { - return empty($value); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Exception/FileLoaderImportCircularReferenceException.php b/srcs/phpmyadmin/vendor/symfony/config/Exception/FileLoaderImportCircularReferenceException.php deleted file mode 100644 index 8c5e736..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Exception/FileLoaderImportCircularReferenceException.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Exception; - -/** - * Exception class for when a circular reference is detected when importing resources. - * - * @author Fabien Potencier - */ -class FileLoaderImportCircularReferenceException extends LoaderLoadException -{ - public function __construct(array $resources, int $code = null, \Throwable $previous = null) - { - $message = sprintf('Circular reference detected in "%s" ("%s" > "%s").', $this->varToString($resources[0]), implode('" > "', $resources), $resources[0]); - - \Exception::__construct($message, $code, $previous); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Exception/FileLoaderLoadException.php b/srcs/phpmyadmin/vendor/symfony/config/Exception/FileLoaderLoadException.php deleted file mode 100644 index 16beec5..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Exception/FileLoaderLoadException.php +++ /dev/null @@ -1,111 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Exception; - -/** - * Exception class for when a resource cannot be loaded or imported. - * - * @author Ryan Weaver - * - * @deprecated since Symfony 4.2, use LoaderLoadException instead. - */ -class FileLoaderLoadException extends \Exception -{ - /** - * @param string $resource The resource that could not be imported - * @param string $sourceResource The original resource importing the new resource - * @param int $code The error code - * @param \Throwable $previous A previous exception - * @param string $type The type of resource - */ - public function __construct(string $resource, string $sourceResource = null, int $code = null, \Throwable $previous = null, string $type = null) - { - $message = ''; - if ($previous) { - // Include the previous exception, to help the user see what might be the underlying cause - - // Trim the trailing period of the previous message. We only want 1 period remove so no rtrim... - if ('.' === substr($previous->getMessage(), -1)) { - $trimmedMessage = substr($previous->getMessage(), 0, -1); - $message .= sprintf('%s', $trimmedMessage).' in '; - } else { - $message .= sprintf('%s', $previous->getMessage()).' in '; - } - $message .= $resource.' '; - - // show tweaked trace to complete the human readable sentence - if (null === $sourceResource) { - $message .= sprintf('(which is loaded in resource "%s")', $resource); - } else { - $message .= sprintf('(which is being imported from "%s")', $sourceResource); - } - $message .= '.'; - - // if there's no previous message, present it the default way - } elseif (null === $sourceResource) { - $message .= sprintf('Cannot load resource "%s".', $resource); - } else { - $message .= sprintf('Cannot import resource "%s" from "%s".', $resource, $sourceResource); - } - - // Is the resource located inside a bundle? - if ('@' === $resource[0]) { - $parts = explode(\DIRECTORY_SEPARATOR, $resource); - $bundle = substr($parts[0], 1); - $message .= sprintf(' Make sure the "%s" bundle is correctly registered and loaded in the application kernel class.', $bundle); - $message .= sprintf(' If the bundle is registered, make sure the bundle path "%s" is not empty.', $resource); - } elseif (null !== $type) { - // maybe there is no loader for this specific type - if ('annotation' === $type) { - $message .= ' Make sure annotations are installed and enabled.'; - } else { - $message .= sprintf(' Make sure there is a loader supporting the "%s" type.', $type); - } - } - - parent::__construct($message, $code, $previous); - } - - protected function varToString($var) - { - if (\is_object($var)) { - return sprintf('Object(%s)', \get_class($var)); - } - - if (\is_array($var)) { - $a = []; - foreach ($var as $k => $v) { - $a[] = sprintf('%s => %s', $k, $this->varToString($v)); - } - - return sprintf('Array(%s)', implode(', ', $a)); - } - - if (\is_resource($var)) { - return sprintf('Resource(%s)', get_resource_type($var)); - } - - if (null === $var) { - return 'null'; - } - - if (false === $var) { - return 'false'; - } - - if (true === $var) { - return 'true'; - } - - return (string) $var; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Exception/FileLocatorFileNotFoundException.php b/srcs/phpmyadmin/vendor/symfony/config/Exception/FileLocatorFileNotFoundException.php deleted file mode 100644 index 3ee4b93..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Exception/FileLocatorFileNotFoundException.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Exception; - -/** - * File locator exception if a file does not exist. - * - * @author Leo Feyer - */ -class FileLocatorFileNotFoundException extends \InvalidArgumentException -{ - private $paths; - - public function __construct(string $message = '', int $code = 0, \Throwable $previous = null, array $paths = []) - { - parent::__construct($message, $code, $previous); - - $this->paths = $paths; - } - - public function getPaths() - { - return $this->paths; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Exception/LoaderLoadException.php b/srcs/phpmyadmin/vendor/symfony/config/Exception/LoaderLoadException.php deleted file mode 100644 index 41a959d..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Exception/LoaderLoadException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Exception; - -/** - * Exception class for when a resource cannot be loaded or imported. - * - * @author Ryan Weaver - */ -class LoaderLoadException extends FileLoaderLoadException -{ -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/FileLocator.php b/srcs/phpmyadmin/vendor/symfony/config/FileLocator.php deleted file mode 100644 index ce856a8..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/FileLocator.php +++ /dev/null @@ -1,94 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config; - -use Symfony\Component\Config\Exception\FileLocatorFileNotFoundException; - -/** - * FileLocator uses an array of pre-defined paths to find files. - * - * @author Fabien Potencier - */ -class FileLocator implements FileLocatorInterface -{ - protected $paths; - - /** - * @param string|string[] $paths A path or an array of paths where to look for resources - */ - public function __construct($paths = []) - { - $this->paths = (array) $paths; - } - - /** - * {@inheritdoc} - */ - public function locate($name, $currentPath = null, $first = true) - { - if ('' == $name) { - throw new \InvalidArgumentException('An empty file name is not valid to be located.'); - } - - if ($this->isAbsolutePath($name)) { - if (!file_exists($name)) { - throw new FileLocatorFileNotFoundException(sprintf('The file "%s" does not exist.', $name), 0, null, [$name]); - } - - return $name; - } - - $paths = $this->paths; - - if (null !== $currentPath) { - array_unshift($paths, $currentPath); - } - - $paths = array_unique($paths); - $filepaths = $notfound = []; - - foreach ($paths as $path) { - if (@file_exists($file = $path.\DIRECTORY_SEPARATOR.$name)) { - if (true === $first) { - return $file; - } - $filepaths[] = $file; - } else { - $notfound[] = $file; - } - } - - if (!$filepaths) { - throw new FileLocatorFileNotFoundException(sprintf('The file "%s" does not exist (in: %s).', $name, implode(', ', $paths)), 0, null, $notfound); - } - - return $filepaths; - } - - /** - * Returns whether the file path is an absolute path. - */ - private function isAbsolutePath(string $file): bool - { - if ('/' === $file[0] || '\\' === $file[0] - || (\strlen($file) > 3 && ctype_alpha($file[0]) - && ':' === $file[1] - && ('\\' === $file[2] || '/' === $file[2]) - ) - || null !== parse_url($file, PHP_URL_SCHEME) - ) { - return true; - } - - return false; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/FileLocatorInterface.php b/srcs/phpmyadmin/vendor/symfony/config/FileLocatorInterface.php deleted file mode 100644 index cf3c2e5..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/FileLocatorInterface.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config; - -use Symfony\Component\Config\Exception\FileLocatorFileNotFoundException; - -/** - * @author Fabien Potencier - */ -interface FileLocatorInterface -{ - /** - * Returns a full path for a given file name. - * - * @param string $name The file name to locate - * @param string|null $currentPath The current path - * @param bool $first Whether to return the first occurrence or an array of filenames - * - * @return string|array The full path to the file or an array of file paths - * - * @throws \InvalidArgumentException If $name is empty - * @throws FileLocatorFileNotFoundException If a file is not found - */ - public function locate($name, $currentPath = null, $first = true); -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/LICENSE b/srcs/phpmyadmin/vendor/symfony/config/LICENSE deleted file mode 100644 index a677f43..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2004-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. diff --git a/srcs/phpmyadmin/vendor/symfony/config/Loader/DelegatingLoader.php b/srcs/phpmyadmin/vendor/symfony/config/Loader/DelegatingLoader.php deleted file mode 100644 index e40e57d..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Loader/DelegatingLoader.php +++ /dev/null @@ -1,50 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Loader; - -use Symfony\Component\Config\Exception\LoaderLoadException; - -/** - * DelegatingLoader delegates loading to other loaders using a loader resolver. - * - * This loader acts as an array of LoaderInterface objects - each having - * a chance to load a given resource (handled by the resolver) - * - * @author Fabien Potencier - */ -class DelegatingLoader extends Loader -{ - public function __construct(LoaderResolverInterface $resolver) - { - $this->resolver = $resolver; - } - - /** - * {@inheritdoc} - */ - public function load($resource, $type = null) - { - if (false === $loader = $this->resolver->resolve($resource, $type)) { - throw new LoaderLoadException($resource, null, null, null, $type); - } - - return $loader->load($resource, $type); - } - - /** - * {@inheritdoc} - */ - public function supports($resource, $type = null) - { - return false !== $this->resolver->resolve($resource, $type); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Loader/FileLoader.php b/srcs/phpmyadmin/vendor/symfony/config/Loader/FileLoader.php deleted file mode 100644 index 828ac67..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Loader/FileLoader.php +++ /dev/null @@ -1,186 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Loader; - -use Symfony\Component\Config\Exception\FileLoaderImportCircularReferenceException; -use Symfony\Component\Config\Exception\FileLocatorFileNotFoundException; -use Symfony\Component\Config\Exception\LoaderLoadException; -use Symfony\Component\Config\FileLocatorInterface; -use Symfony\Component\Config\Resource\FileExistenceResource; -use Symfony\Component\Config\Resource\GlobResource; - -/** - * FileLoader is the abstract class used by all built-in loaders that are file based. - * - * @author Fabien Potencier - */ -abstract class FileLoader extends Loader -{ - protected static $loading = []; - - protected $locator; - - private $currentDir; - - public function __construct(FileLocatorInterface $locator) - { - $this->locator = $locator; - } - - /** - * Sets the current directory. - * - * @param string $dir - */ - public function setCurrentDir($dir) - { - $this->currentDir = $dir; - } - - /** - * Returns the file locator used by this loader. - * - * @return FileLocatorInterface - */ - public function getLocator() - { - return $this->locator; - } - - /** - * Imports a resource. - * - * @param mixed $resource A Resource - * @param string|null $type The resource type or null if unknown - * @param bool $ignoreErrors Whether to ignore import errors or not - * @param string|null $sourceResource The original resource importing the new resource - * @param string|string[]|null $exclude Glob patterns to exclude from the import - * - * @return mixed - * - * @throws LoaderLoadException - * @throws FileLoaderImportCircularReferenceException - * @throws FileLocatorFileNotFoundException - */ - public function import($resource, $type = null, $ignoreErrors = false, $sourceResource = null/*, $exclude = null*/) - { - if (\func_num_args() < 5 && __CLASS__ !== \get_class($this) && 0 !== strpos(\get_class($this), 'Symfony\Component\\') && __CLASS__ !== (new \ReflectionMethod($this, __FUNCTION__))->getDeclaringClass()->getName() && !$this instanceof \PHPUnit\Framework\MockObject\MockObject && !$this instanceof \Prophecy\Prophecy\ProphecySubjectInterface) { - @trigger_error(sprintf('The "%s()" method will have a new "$exclude = null" argument in version 5.0, not defining it is deprecated since Symfony 4.4.', __METHOD__), E_USER_DEPRECATED); - } - $exclude = \func_num_args() >= 5 ? func_get_arg(4) : null; - - if (\is_string($resource) && \strlen($resource) !== $i = strcspn($resource, '*?{[')) { - $excluded = []; - foreach ((array) $exclude as $pattern) { - foreach ($this->glob($pattern, true, $_, false, true) as $path => $info) { - // normalize Windows slashes - $excluded[str_replace('\\', '/', $path)] = true; - } - } - - $ret = []; - $isSubpath = 0 !== $i && false !== strpos(substr($resource, 0, $i), '/'); - foreach ($this->glob($resource, false, $_, $ignoreErrors || !$isSubpath, false, $excluded) as $path => $info) { - if (null !== $res = $this->doImport($path, $type, $ignoreErrors, $sourceResource)) { - $ret[] = $res; - } - $isSubpath = true; - } - - if ($isSubpath) { - return isset($ret[1]) ? $ret : (isset($ret[0]) ? $ret[0] : null); - } - } - - return $this->doImport($resource, $type, $ignoreErrors, $sourceResource); - } - - /** - * @internal - */ - protected function glob(string $pattern, bool $recursive, &$resource = null, bool $ignoreErrors = false, bool $forExclusion = false, array $excluded = []) - { - if (\strlen($pattern) === $i = strcspn($pattern, '*?{[')) { - $prefix = $pattern; - $pattern = ''; - } elseif (0 === $i || false === strpos(substr($pattern, 0, $i), '/')) { - $prefix = '.'; - $pattern = '/'.$pattern; - } else { - $prefix = \dirname(substr($pattern, 0, 1 + $i)); - $pattern = substr($pattern, \strlen($prefix)); - } - - try { - $prefix = $this->locator->locate($prefix, $this->currentDir, true); - } catch (FileLocatorFileNotFoundException $e) { - if (!$ignoreErrors) { - throw $e; - } - - $resource = []; - foreach ($e->getPaths() as $path) { - $resource[] = new FileExistenceResource($path); - } - - return; - } - $resource = new GlobResource($prefix, $pattern, $recursive, $forExclusion, $excluded); - - yield from $resource; - } - - private function doImport($resource, string $type = null, bool $ignoreErrors = false, $sourceResource = null) - { - try { - $loader = $this->resolve($resource, $type); - - if ($loader instanceof self && null !== $this->currentDir) { - $resource = $loader->getLocator()->locate($resource, $this->currentDir, false); - } - - $resources = \is_array($resource) ? $resource : [$resource]; - for ($i = 0; $i < $resourcesCount = \count($resources); ++$i) { - if (isset(self::$loading[$resources[$i]])) { - if ($i == $resourcesCount - 1) { - throw new FileLoaderImportCircularReferenceException(array_keys(self::$loading)); - } - } else { - $resource = $resources[$i]; - break; - } - } - self::$loading[$resource] = true; - - try { - $ret = $loader->load($resource, $type); - } finally { - unset(self::$loading[$resource]); - } - - return $ret; - } catch (FileLoaderImportCircularReferenceException $e) { - throw $e; - } catch (\Exception $e) { - if (!$ignoreErrors) { - // prevent embedded imports from nesting multiple exceptions - if ($e instanceof LoaderLoadException) { - throw $e; - } - - throw new LoaderLoadException($resource, $sourceResource, null, $e, $type); - } - } - - return null; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Loader/GlobFileLoader.php b/srcs/phpmyadmin/vendor/symfony/config/Loader/GlobFileLoader.php deleted file mode 100644 index f432b45..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Loader/GlobFileLoader.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Loader; - -/** - * GlobFileLoader loads files from a glob pattern. - * - * @author Fabien Potencier - */ -class GlobFileLoader extends FileLoader -{ - /** - * {@inheritdoc} - */ - public function load($resource, $type = null) - { - return $this->import($resource); - } - - /** - * {@inheritdoc} - */ - public function supports($resource, $type = null) - { - return 'glob' === $type; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Loader/Loader.php b/srcs/phpmyadmin/vendor/symfony/config/Loader/Loader.php deleted file mode 100644 index 698ab40..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Loader/Loader.php +++ /dev/null @@ -1,78 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Loader; - -use Symfony\Component\Config\Exception\LoaderLoadException; - -/** - * Loader is the abstract class used by all built-in loaders. - * - * @author Fabien Potencier - */ -abstract class Loader implements LoaderInterface -{ - protected $resolver; - - /** - * {@inheritdoc} - */ - public function getResolver() - { - return $this->resolver; - } - - /** - * {@inheritdoc} - */ - public function setResolver(LoaderResolverInterface $resolver) - { - $this->resolver = $resolver; - } - - /** - * Imports a resource. - * - * @param mixed $resource A resource - * @param string|null $type The resource type or null if unknown - * - * @return mixed - */ - public function import($resource, $type = null) - { - return $this->resolve($resource, $type)->load($resource, $type); - } - - /** - * Finds a loader able to load an imported resource. - * - * @param mixed $resource A resource - * @param string|null $type The resource type or null if unknown - * - * @return $this|LoaderInterface - * - * @throws LoaderLoadException If no loader is found - */ - public function resolve($resource, $type = null) - { - if ($this->supports($resource, $type)) { - return $this; - } - - $loader = null === $this->resolver ? false : $this->resolver->resolve($resource, $type); - - if (false === $loader) { - throw new LoaderLoadException($resource, null, null, null, $type); - } - - return $loader; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Loader/LoaderInterface.php b/srcs/phpmyadmin/vendor/symfony/config/Loader/LoaderInterface.php deleted file mode 100644 index dfca9dd..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Loader/LoaderInterface.php +++ /dev/null @@ -1,52 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Loader; - -/** - * LoaderInterface is the interface implemented by all loader classes. - * - * @author Fabien Potencier - */ -interface LoaderInterface -{ - /** - * Loads a resource. - * - * @param mixed $resource The resource - * @param string|null $type The resource type or null if unknown - * - * @throws \Exception If something went wrong - */ - public function load($resource, $type = null); - - /** - * Returns whether this class supports the given resource. - * - * @param mixed $resource A resource - * @param string|null $type The resource type or null if unknown - * - * @return bool True if this class supports the given resource, false otherwise - */ - public function supports($resource, $type = null); - - /** - * Gets the loader resolver. - * - * @return LoaderResolverInterface A LoaderResolverInterface instance - */ - public function getResolver(); - - /** - * Sets the loader resolver. - */ - public function setResolver(LoaderResolverInterface $resolver); -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Loader/LoaderResolver.php b/srcs/phpmyadmin/vendor/symfony/config/Loader/LoaderResolver.php deleted file mode 100644 index c99efda..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Loader/LoaderResolver.php +++ /dev/null @@ -1,68 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Loader; - -/** - * LoaderResolver selects a loader for a given resource. - * - * A resource can be anything (e.g. a full path to a config file or a Closure). - * Each loader determines whether it can load a resource and how. - * - * @author Fabien Potencier - */ -class LoaderResolver implements LoaderResolverInterface -{ - /** - * @var LoaderInterface[] An array of LoaderInterface objects - */ - private $loaders = []; - - /** - * @param LoaderInterface[] $loaders An array of loaders - */ - public function __construct(array $loaders = []) - { - foreach ($loaders as $loader) { - $this->addLoader($loader); - } - } - - /** - * {@inheritdoc} - */ - public function resolve($resource, $type = null) - { - foreach ($this->loaders as $loader) { - if ($loader->supports($resource, $type)) { - return $loader; - } - } - - return false; - } - - public function addLoader(LoaderInterface $loader) - { - $this->loaders[] = $loader; - $loader->setResolver($this); - } - - /** - * Returns the registered loaders. - * - * @return LoaderInterface[] An array of LoaderInterface instances - */ - public function getLoaders() - { - return $this->loaders; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Loader/LoaderResolverInterface.php b/srcs/phpmyadmin/vendor/symfony/config/Loader/LoaderResolverInterface.php deleted file mode 100644 index 40f1a1a..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Loader/LoaderResolverInterface.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Loader; - -/** - * LoaderResolverInterface selects a loader for a given resource. - * - * @author Fabien Potencier - */ -interface LoaderResolverInterface -{ - /** - * Returns a loader able to load the resource. - * - * @param mixed $resource A resource - * @param string|null $type The resource type or null if unknown - * - * @return LoaderInterface|false The loader or false if none is able to load the resource - */ - public function resolve($resource, $type = null); -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/README.md b/srcs/phpmyadmin/vendor/symfony/config/README.md deleted file mode 100644 index bf400da..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/README.md +++ /dev/null @@ -1,15 +0,0 @@ -Config Component -================ - -The Config component provides several classes to help you find, load, combine, -autofill and validate configuration values of any kind, whatever their source -may be (YAML, XML, INI files, or for instance a database). - -Resources ---------- - - * [Documentation](https://symfony.com/doc/current/components/config/index.html) - * [Contributing](https://symfony.com/doc/current/contributing/index.html) - * [Report issues](https://github.com/symfony/symfony/issues) and - [send Pull Requests](https://github.com/symfony/symfony/pulls) - in the [main Symfony repository](https://github.com/symfony/symfony) diff --git a/srcs/phpmyadmin/vendor/symfony/config/Resource/ClassExistenceResource.php b/srcs/phpmyadmin/vendor/symfony/config/Resource/ClassExistenceResource.php deleted file mode 100644 index 77cd8e5..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Resource/ClassExistenceResource.php +++ /dev/null @@ -1,231 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Resource; - -/** - * ClassExistenceResource represents a class existence. - * Freshness is only evaluated against resource existence. - * - * The resource must be a fully-qualified class name. - * - * @author Fabien Potencier - * - * @final since Symfony 4.3 - */ -class ClassExistenceResource implements SelfCheckingResourceInterface -{ - private $resource; - private $exists; - - private static $autoloadLevel = 0; - private static $autoloadedClass; - private static $existsCache = []; - - /** - * @param string $resource The fully-qualified class name - * @param bool|null $exists Boolean when the existency check has already been done - */ - public function __construct(string $resource, bool $exists = null) - { - $this->resource = $resource; - if (null !== $exists) { - $this->exists = [(bool) $exists, null]; - } - } - - /** - * {@inheritdoc} - */ - public function __toString() - { - return $this->resource; - } - - /** - * @return string The file path to the resource - */ - public function getResource() - { - return $this->resource; - } - - /** - * {@inheritdoc} - * - * @throws \ReflectionException when a parent class/interface/trait is not found - */ - public function isFresh($timestamp) - { - $loaded = class_exists($this->resource, false) || interface_exists($this->resource, false) || trait_exists($this->resource, false); - - if (null !== $exists = &self::$existsCache[$this->resource]) { - if ($loaded) { - $exists = [true, null]; - } elseif (0 >= $timestamp && !$exists[0] && null !== $exists[1]) { - throw new \ReflectionException($exists[1]); - } - } elseif ([false, null] === $exists = [$loaded, null]) { - if (!self::$autoloadLevel++) { - spl_autoload_register(__CLASS__.'::throwOnRequiredClass'); - } - $autoloadedClass = self::$autoloadedClass; - self::$autoloadedClass = ltrim($this->resource, '\\'); - - try { - $exists[0] = class_exists($this->resource) || interface_exists($this->resource, false) || trait_exists($this->resource, false); - } catch (\Exception $e) { - $exists[1] = $e->getMessage(); - - try { - self::throwOnRequiredClass($this->resource, $e); - } catch (\ReflectionException $e) { - if (0 >= $timestamp) { - throw $e; - } - } - } catch (\Throwable $e) { - $exists[1] = $e->getMessage(); - } finally { - self::$autoloadedClass = $autoloadedClass; - if (!--self::$autoloadLevel) { - spl_autoload_unregister(__CLASS__.'::throwOnRequiredClass'); - } - } - } - - if (null === $this->exists) { - $this->exists = $exists; - } - - return $this->exists[0] xor !$exists[0]; - } - - /** - * @internal - */ - public function __sleep(): array - { - if (null === $this->exists) { - $this->isFresh(0); - } - - return ['resource', 'exists']; - } - - /** - * @internal - */ - public function __wakeup() - { - if (\is_bool($this->exists)) { - $this->exists = [$this->exists, null]; - } - } - - /** - * Throws a reflection exception when the passed class does not exist but is required. - * - * A class is considered "not required" when it's loaded as part of a "class_exists" or similar check. - * - * This function can be used as an autoload function to throw a reflection - * exception if the class was not found by previous autoload functions. - * - * A previous exception can be passed. In this case, the class is considered as being - * required totally, so if it doesn't exist, a reflection exception is always thrown. - * If it exists, the previous exception is rethrown. - * - * @throws \ReflectionException - * - * @internal - */ - public static function throwOnRequiredClass($class, \Exception $previous = null) - { - // If the passed class is the resource being checked, we shouldn't throw. - if (null === $previous && self::$autoloadedClass === $class) { - return; - } - - if (class_exists($class, false) || interface_exists($class, false) || trait_exists($class, false)) { - if (null !== $previous) { - throw $previous; - } - - return; - } - - if ($previous instanceof \ReflectionException) { - throw $previous; - } - - $message = sprintf('Class "%s" not found.', $class); - - if (self::$autoloadedClass !== $class) { - $message = substr_replace($message, sprintf(' while loading "%s"', self::$autoloadedClass), -1, 0); - } - - if (null !== $previous) { - $message = $previous->getMessage(); - } - - $e = new \ReflectionException($message, 0, $previous); - - if (null !== $previous) { - throw $e; - } - - $trace = debug_backtrace(); - $autoloadFrame = [ - 'function' => 'spl_autoload_call', - 'args' => [$class], - ]; - - if (false === $i = array_search($autoloadFrame, $trace, true)) { - throw $e; - } - - if (isset($trace[++$i]['function']) && !isset($trace[$i]['class'])) { - switch ($trace[$i]['function']) { - case 'get_class_methods': - case 'get_class_vars': - case 'get_parent_class': - case 'is_a': - case 'is_subclass_of': - case 'class_exists': - case 'class_implements': - case 'class_parents': - case 'trait_exists': - case 'defined': - case 'interface_exists': - case 'method_exists': - case 'property_exists': - case 'is_callable': - return; - } - - $props = [ - 'file' => isset($trace[$i]['file']) ? $trace[$i]['file'] : null, - 'line' => isset($trace[$i]['line']) ? $trace[$i]['line'] : null, - 'trace' => \array_slice($trace, 1 + $i), - ]; - - foreach ($props as $p => $v) { - if (null !== $v) { - $r = new \ReflectionProperty('Exception', $p); - $r->setAccessible(true); - $r->setValue($e, $v); - } - } - } - - throw $e; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Resource/ComposerResource.php b/srcs/phpmyadmin/vendor/symfony/config/Resource/ComposerResource.php deleted file mode 100644 index 822766b..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Resource/ComposerResource.php +++ /dev/null @@ -1,70 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Resource; - -/** - * ComposerResource tracks the PHP version and Composer dependencies. - * - * @author Nicolas Grekas - * - * @final since Symfony 4.3 - */ -class ComposerResource implements SelfCheckingResourceInterface -{ - private $vendors; - - private static $runtimeVendors; - - public function __construct() - { - self::refresh(); - $this->vendors = self::$runtimeVendors; - } - - public function getVendors() - { - return array_keys($this->vendors); - } - - /** - * {@inheritdoc} - */ - public function __toString() - { - return __CLASS__; - } - - /** - * {@inheritdoc} - */ - public function isFresh($timestamp) - { - self::refresh(); - - return array_values(self::$runtimeVendors) === array_values($this->vendors); - } - - private static function refresh() - { - self::$runtimeVendors = []; - - foreach (get_declared_classes() as $class) { - if ('C' === $class[0] && 0 === strpos($class, 'ComposerAutoloaderInit')) { - $r = new \ReflectionClass($class); - $v = \dirname($r->getFileName(), 2); - if (file_exists($v.'/composer/installed.json')) { - self::$runtimeVendors[$v] = @filemtime($v.'/composer/installed.json'); - } - } - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Resource/DirectoryResource.php b/srcs/phpmyadmin/vendor/symfony/config/Resource/DirectoryResource.php deleted file mode 100644 index 3d703db..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Resource/DirectoryResource.php +++ /dev/null @@ -1,108 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Resource; - -/** - * DirectoryResource represents a resources stored in a subdirectory tree. - * - * @author Fabien Potencier - * - * @final since Symfony 4.3 - */ -class DirectoryResource implements SelfCheckingResourceInterface -{ - private $resource; - private $pattern; - - /** - * @param string $resource The file path to the resource - * @param string|null $pattern A pattern to restrict monitored files - * - * @throws \InvalidArgumentException - */ - public function __construct(string $resource, string $pattern = null) - { - $this->resource = realpath($resource) ?: (file_exists($resource) ? $resource : false); - $this->pattern = $pattern; - - if (false === $this->resource || !is_dir($this->resource)) { - throw new \InvalidArgumentException(sprintf('The directory "%s" does not exist.', $resource)); - } - } - - /** - * {@inheritdoc} - */ - public function __toString() - { - return md5(serialize([$this->resource, $this->pattern])); - } - - /** - * @return string The file path to the resource - */ - public function getResource() - { - return $this->resource; - } - - /** - * Returns the pattern to restrict monitored files. - * - * @return string|null - */ - public function getPattern() - { - return $this->pattern; - } - - /** - * {@inheritdoc} - */ - public function isFresh($timestamp) - { - if (!is_dir($this->resource)) { - return false; - } - - if ($timestamp < filemtime($this->resource)) { - return false; - } - - foreach (new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($this->resource), \RecursiveIteratorIterator::SELF_FIRST) as $file) { - // if regex filtering is enabled only check matching files - if ($this->pattern && $file->isFile() && !preg_match($this->pattern, $file->getBasename())) { - continue; - } - - // always monitor directories for changes, except the .. entries - // (otherwise deleted files wouldn't get detected) - if ($file->isDir() && '/..' === substr($file, -3)) { - continue; - } - - // for broken links - try { - $fileMTime = $file->getMTime(); - } catch (\RuntimeException $e) { - continue; - } - - // early return if a file's mtime exceeds the passed timestamp - if ($timestamp < $fileMTime) { - return false; - } - } - - return true; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Resource/FileExistenceResource.php b/srcs/phpmyadmin/vendor/symfony/config/Resource/FileExistenceResource.php deleted file mode 100644 index 5723416..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Resource/FileExistenceResource.php +++ /dev/null @@ -1,62 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Resource; - -/** - * FileExistenceResource represents a resource stored on the filesystem. - * Freshness is only evaluated against resource creation or deletion. - * - * The resource can be a file or a directory. - * - * @author Charles-Henri Bruyand - * - * @final since Symfony 4.3 - */ -class FileExistenceResource implements SelfCheckingResourceInterface -{ - private $resource; - - private $exists; - - /** - * @param string $resource The file path to the resource - */ - public function __construct(string $resource) - { - $this->resource = $resource; - $this->exists = file_exists($resource); - } - - /** - * {@inheritdoc} - */ - public function __toString() - { - return $this->resource; - } - - /** - * @return string The file path to the resource - */ - public function getResource() - { - return $this->resource; - } - - /** - * {@inheritdoc} - */ - public function isFresh($timestamp) - { - return file_exists($this->resource) === $this->exists; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Resource/FileResource.php b/srcs/phpmyadmin/vendor/symfony/config/Resource/FileResource.php deleted file mode 100644 index 95fe8a0..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Resource/FileResource.php +++ /dev/null @@ -1,67 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Resource; - -/** - * FileResource represents a resource stored on the filesystem. - * - * The resource can be a file or a directory. - * - * @author Fabien Potencier - * - * @final since Symfony 4.3 - */ -class FileResource implements SelfCheckingResourceInterface -{ - /** - * @var string|false - */ - private $resource; - - /** - * @param string $resource The file path to the resource - * - * @throws \InvalidArgumentException - */ - public function __construct(string $resource) - { - $this->resource = realpath($resource) ?: (file_exists($resource) ? $resource : false); - - if (false === $this->resource) { - throw new \InvalidArgumentException(sprintf('The file "%s" does not exist.', $resource)); - } - } - - /** - * {@inheritdoc} - */ - public function __toString() - { - return $this->resource; - } - - /** - * @return string The canonicalized, absolute path to the resource - */ - public function getResource() - { - return $this->resource; - } - - /** - * {@inheritdoc} - */ - public function isFresh($timestamp) - { - return false !== ($filemtime = @filemtime($this->resource)) && $filemtime <= $timestamp; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Resource/GlobResource.php b/srcs/phpmyadmin/vendor/symfony/config/Resource/GlobResource.php deleted file mode 100644 index 9f6e0d8..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Resource/GlobResource.php +++ /dev/null @@ -1,233 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Resource; - -use Symfony\Component\Finder\Finder; -use Symfony\Component\Finder\Glob; - -/** - * GlobResource represents a set of resources stored on the filesystem. - * - * Only existence/removal is tracked (not mtimes.) - * - * @author Nicolas Grekas - * - * @final since Symfony 4.3 - */ -class GlobResource implements \IteratorAggregate, SelfCheckingResourceInterface -{ - private $prefix; - private $pattern; - private $recursive; - private $hash; - private $forExclusion; - private $excludedPrefixes; - private $globBrace; - - /** - * @param string $prefix A directory prefix - * @param string $pattern A glob pattern - * @param bool $recursive Whether directories should be scanned recursively or not - * - * @throws \InvalidArgumentException - */ - public function __construct(string $prefix, string $pattern, bool $recursive, bool $forExclusion = false, array $excludedPrefixes = []) - { - ksort($excludedPrefixes); - $this->prefix = realpath($prefix) ?: (file_exists($prefix) ? $prefix : false); - $this->pattern = $pattern; - $this->recursive = $recursive; - $this->forExclusion = $forExclusion; - $this->excludedPrefixes = $excludedPrefixes; - $this->globBrace = \defined('GLOB_BRACE') ? GLOB_BRACE : 0; - - if (false === $this->prefix) { - throw new \InvalidArgumentException(sprintf('The path "%s" does not exist.', $prefix)); - } - } - - public function getPrefix() - { - return $this->prefix; - } - - /** - * {@inheritdoc} - */ - public function __toString() - { - return 'glob.'.$this->prefix.(int) $this->recursive.$this->pattern.(int) $this->forExclusion.implode("\0", $this->excludedPrefixes); - } - - /** - * {@inheritdoc} - */ - public function isFresh($timestamp) - { - $hash = $this->computeHash(); - - if (null === $this->hash) { - $this->hash = $hash; - } - - return $this->hash === $hash; - } - - /** - * @internal - */ - public function __sleep(): array - { - if (null === $this->hash) { - $this->hash = $this->computeHash(); - } - - return ['prefix', 'pattern', 'recursive', 'hash', 'forExclusion', 'excludedPrefixes']; - } - - /** - * @return \Traversable - */ - public function getIterator() - { - if (!file_exists($this->prefix) || (!$this->recursive && '' === $this->pattern)) { - return; - } - $prefix = str_replace('\\', '/', $this->prefix); - $paths = null; - - if (0 !== strpos($this->prefix, 'phar://') && false === strpos($this->pattern, '/**/')) { - if ($this->globBrace || false === strpos($this->pattern, '{')) { - $paths = glob($this->prefix.$this->pattern, GLOB_NOSORT | $this->globBrace); - } elseif (false === strpos($this->pattern, '\\') || !preg_match('/\\\\[,{}]/', $this->pattern)) { - foreach ($this->expandGlob($this->pattern) as $p) { - $paths[] = glob($this->prefix.$p, GLOB_NOSORT); - } - $paths = array_merge(...$paths); - } - } - - if (null !== $paths) { - sort($paths); - foreach ($paths as $path) { - if ($this->excludedPrefixes) { - $normalizedPath = str_replace('\\', '/', $path); - do { - if (isset($this->excludedPrefixes[$dirPath = $normalizedPath])) { - continue 2; - } - } while ($prefix !== $dirPath && $dirPath !== $normalizedPath = \dirname($dirPath)); - } - - if (is_file($path)) { - yield $path => new \SplFileInfo($path); - } - if (!is_dir($path)) { - continue; - } - if ($this->forExclusion) { - yield $path => new \SplFileInfo($path); - continue; - } - if (!$this->recursive || isset($this->excludedPrefixes[str_replace('\\', '/', $path)])) { - continue; - } - $files = iterator_to_array(new \RecursiveIteratorIterator( - new \RecursiveCallbackFilterIterator( - new \RecursiveDirectoryIterator($path, \FilesystemIterator::SKIP_DOTS | \FilesystemIterator::FOLLOW_SYMLINKS), - function (\SplFileInfo $file, $path) { - return !isset($this->excludedPrefixes[str_replace('\\', '/', $path)]) && '.' !== $file->getBasename()[0]; - } - ), - \RecursiveIteratorIterator::LEAVES_ONLY - )); - uasort($files, 'strnatcmp'); - - foreach ($files as $path => $info) { - if ($info->isFile()) { - yield $path => $info; - } - } - } - - return; - } - - if (!class_exists(Finder::class)) { - throw new \LogicException(sprintf('Extended glob pattern "%s" cannot be used as the Finder component is not installed.', $this->pattern)); - } - - $finder = new Finder(); - $regex = Glob::toRegex($this->pattern); - if ($this->recursive) { - $regex = substr_replace($regex, '(/|$)', -2, 1); - } - - $prefixLen = \strlen($this->prefix); - foreach ($finder->followLinks()->sortByName()->in($this->prefix) as $path => $info) { - $normalizedPath = str_replace('\\', '/', $path); - if (!preg_match($regex, substr($normalizedPath, $prefixLen)) || !$info->isFile()) { - continue; - } - if ($this->excludedPrefixes) { - do { - if (isset($this->excludedPrefixes[$dirPath = $normalizedPath])) { - continue 2; - } - } while ($prefix !== $dirPath && $dirPath !== $normalizedPath = \dirname($dirPath)); - } - - yield $path => $info; - } - } - - private function computeHash(): string - { - $hash = hash_init('md5'); - - foreach ($this->getIterator() as $path => $info) { - hash_update($hash, $path."\n"); - } - - return hash_final($hash); - } - - private function expandGlob(string $pattern): array - { - $segments = preg_split('/\{([^{}]*+)\}/', $pattern, -1, PREG_SPLIT_DELIM_CAPTURE); - $paths = [$segments[0]]; - $patterns = []; - - for ($i = 1; $i < \count($segments); $i += 2) { - $patterns = []; - - foreach (explode(',', $segments[$i]) as $s) { - foreach ($paths as $p) { - $patterns[] = $p.$s.$segments[1 + $i]; - } - } - - $paths = $patterns; - } - - $j = 0; - foreach ($patterns as $i => $p) { - if (false !== strpos($p, '{')) { - $p = $this->expandGlob($p); - array_splice($paths, $i + $j, 1, $p); - $j += \count($p) - 1; - } - } - - return $paths; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Resource/ReflectionClassResource.php b/srcs/phpmyadmin/vendor/symfony/config/Resource/ReflectionClassResource.php deleted file mode 100644 index 48fdcd6..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Resource/ReflectionClassResource.php +++ /dev/null @@ -1,221 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Resource; - -use Symfony\Component\DependencyInjection\ServiceSubscriberInterface as LegacyServiceSubscriberInterface; -use Symfony\Component\EventDispatcher\EventSubscriberInterface; -use Symfony\Component\Messenger\Handler\MessageSubscriberInterface; -use Symfony\Contracts\Service\ServiceSubscriberInterface; - -/** - * @author Nicolas Grekas - * - * @final since Symfony 4.3 - */ -class ReflectionClassResource implements SelfCheckingResourceInterface -{ - private $files = []; - private $className; - private $classReflector; - private $excludedVendors = []; - private $hash; - - public function __construct(\ReflectionClass $classReflector, array $excludedVendors = []) - { - $this->className = $classReflector->name; - $this->classReflector = $classReflector; - $this->excludedVendors = $excludedVendors; - } - - public function isFresh($timestamp) - { - if (null === $this->hash) { - $this->hash = $this->computeHash(); - $this->loadFiles($this->classReflector); - } - - foreach ($this->files as $file => $v) { - if (false === $filemtime = @filemtime($file)) { - return false; - } - - if ($filemtime > $timestamp) { - return $this->hash === $this->computeHash(); - } - } - - return true; - } - - public function __toString() - { - return 'reflection.'.$this->className; - } - - /** - * @internal - */ - public function __sleep(): array - { - if (null === $this->hash) { - $this->hash = $this->computeHash(); - $this->loadFiles($this->classReflector); - } - - return ['files', 'className', 'hash']; - } - - private function loadFiles(\ReflectionClass $class) - { - foreach ($class->getInterfaces() as $v) { - $this->loadFiles($v); - } - do { - $file = $class->getFileName(); - if (false !== $file && file_exists($file)) { - foreach ($this->excludedVendors as $vendor) { - if (0 === strpos($file, $vendor) && false !== strpbrk(substr($file, \strlen($vendor), 1), '/'.\DIRECTORY_SEPARATOR)) { - $file = false; - break; - } - } - if ($file) { - $this->files[$file] = null; - } - } - foreach ($class->getTraits() as $v) { - $this->loadFiles($v); - } - } while ($class = $class->getParentClass()); - } - - private function computeHash(): string - { - if (null === $this->classReflector) { - try { - $this->classReflector = new \ReflectionClass($this->className); - } catch (\ReflectionException $e) { - // the class does not exist anymore - return false; - } - } - $hash = hash_init('md5'); - - foreach ($this->generateSignature($this->classReflector) as $info) { - hash_update($hash, $info); - } - - return hash_final($hash); - } - - private function generateSignature(\ReflectionClass $class): iterable - { - yield $class->getDocComment(); - yield (int) $class->isFinal(); - yield (int) $class->isAbstract(); - - if ($class->isTrait()) { - yield print_r(class_uses($class->name), true); - } else { - yield print_r(class_parents($class->name), true); - yield print_r(class_implements($class->name), true); - yield print_r($class->getConstants(), true); - } - - if (!$class->isInterface()) { - $defaults = $class->getDefaultProperties(); - - foreach ($class->getProperties(\ReflectionProperty::IS_PUBLIC | \ReflectionProperty::IS_PROTECTED) as $p) { - yield $p->getDocComment().$p; - yield print_r(isset($defaults[$p->name]) && !\is_object($defaults[$p->name]) ? $defaults[$p->name] : null, true); - } - } - - foreach ($class->getMethods(\ReflectionMethod::IS_PUBLIC | \ReflectionMethod::IS_PROTECTED) as $m) { - $defaults = []; - $parametersWithUndefinedConstants = []; - foreach ($m->getParameters() as $p) { - if (!$p->isDefaultValueAvailable()) { - $defaults[$p->name] = null; - - continue; - } - - if (!$p->isDefaultValueConstant() || \defined($p->getDefaultValueConstantName())) { - $defaults[$p->name] = $p->getDefaultValue(); - - continue; - } - - $defaults[$p->name] = $p->getDefaultValueConstantName(); - $parametersWithUndefinedConstants[$p->name] = true; - } - - if (!$parametersWithUndefinedConstants) { - yield preg_replace('/^ @@.*/m', '', $m); - } else { - $stack = [ - $m->getDocComment(), - $m->getName(), - $m->isAbstract(), - $m->isFinal(), - $m->isStatic(), - $m->isPublic(), - $m->isPrivate(), - $m->isProtected(), - $m->returnsReference(), - $m->hasReturnType() ? $m->getReturnType()->getName() : '', - ]; - - foreach ($m->getParameters() as $p) { - if (!isset($parametersWithUndefinedConstants[$p->name])) { - $stack[] = (string) $p; - } else { - $stack[] = $p->isOptional(); - $stack[] = $p->hasType() ? $p->getType()->getName() : ''; - $stack[] = $p->isPassedByReference(); - $stack[] = $p->isVariadic(); - $stack[] = $p->getName(); - } - } - - yield implode(',', $stack); - } - - yield print_r($defaults, true); - } - - if ($class->isAbstract() || $class->isInterface() || $class->isTrait()) { - return; - } - - if (interface_exists(EventSubscriberInterface::class, false) && $class->isSubclassOf(EventSubscriberInterface::class)) { - yield EventSubscriberInterface::class; - yield print_r($class->name::getSubscribedEvents(), true); - } - - if (interface_exists(MessageSubscriberInterface::class, false) && $class->isSubclassOf(MessageSubscriberInterface::class)) { - yield MessageSubscriberInterface::class; - foreach ($class->name::getHandledMessages() as $key => $value) { - yield $key.print_r($value, true); - } - } - - if (interface_exists(LegacyServiceSubscriberInterface::class, false) && $class->isSubclassOf(LegacyServiceSubscriberInterface::class)) { - yield LegacyServiceSubscriberInterface::class; - yield print_r([$class->name, 'getSubscribedServices'](), true); - } elseif (interface_exists(ServiceSubscriberInterface::class, false) && $class->isSubclassOf(ServiceSubscriberInterface::class)) { - yield ServiceSubscriberInterface::class; - yield print_r($class->name::getSubscribedServices(), true); - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Resource/ResourceInterface.php b/srcs/phpmyadmin/vendor/symfony/config/Resource/ResourceInterface.php deleted file mode 100644 index d98fd42..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Resource/ResourceInterface.php +++ /dev/null @@ -1,33 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Resource; - -/** - * ResourceInterface is the interface that must be implemented by all Resource classes. - * - * @author Fabien Potencier - */ -interface ResourceInterface -{ - /** - * Returns a string representation of the Resource. - * - * This method is necessary to allow for resource de-duplication, for example by means - * of array_unique(). The string returned need not have a particular meaning, but has - * to be identical for different ResourceInterface instances referring to the same - * resource; and it should be unlikely to collide with that of other, unrelated - * resource instances. - * - * @return string A string representation unique to the underlying Resource - */ - public function __toString(); -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Resource/SelfCheckingResourceChecker.php b/srcs/phpmyadmin/vendor/symfony/config/Resource/SelfCheckingResourceChecker.php deleted file mode 100644 index d72203b..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Resource/SelfCheckingResourceChecker.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Resource; - -use Symfony\Component\Config\ResourceCheckerInterface; - -/** - * Resource checker for instances of SelfCheckingResourceInterface. - * - * As these resources perform the actual check themselves, we can provide - * this class as a standard way of validating them. - * - * @author Matthias Pigulla - */ -class SelfCheckingResourceChecker implements ResourceCheckerInterface -{ - public function supports(ResourceInterface $metadata) - { - return $metadata instanceof SelfCheckingResourceInterface; - } - - public function isFresh(ResourceInterface $resource, $timestamp) - { - /* @var SelfCheckingResourceInterface $resource */ - return $resource->isFresh($timestamp); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Resource/SelfCheckingResourceInterface.php b/srcs/phpmyadmin/vendor/symfony/config/Resource/SelfCheckingResourceInterface.php deleted file mode 100644 index b3260f2..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Resource/SelfCheckingResourceInterface.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Resource; - -/** - * Interface for Resources that can check for freshness autonomously, - * without special support from external services. - * - * @author Matthias Pigulla - */ -interface SelfCheckingResourceInterface extends ResourceInterface -{ - /** - * Returns true if the resource has not been updated since the given timestamp. - * - * @param int $timestamp The last time the resource was loaded - * - * @return bool True if the resource has not been updated, false otherwise - */ - public function isFresh($timestamp); -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/ResourceCheckerConfigCache.php b/srcs/phpmyadmin/vendor/symfony/config/ResourceCheckerConfigCache.php deleted file mode 100644 index ac4adb7..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/ResourceCheckerConfigCache.php +++ /dev/null @@ -1,188 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config; - -use Symfony\Component\Config\Resource\ResourceInterface; -use Symfony\Component\Filesystem\Exception\IOException; -use Symfony\Component\Filesystem\Filesystem; - -/** - * ResourceCheckerConfigCache uses instances of ResourceCheckerInterface - * to check whether cached data is still fresh. - * - * @author Matthias Pigulla - */ -class ResourceCheckerConfigCache implements ConfigCacheInterface -{ - /** - * @var string - */ - private $file; - - /** - * @var iterable|ResourceCheckerInterface[] - */ - private $resourceCheckers; - - /** - * @param string $file The absolute cache path - * @param iterable|ResourceCheckerInterface[] $resourceCheckers The ResourceCheckers to use for the freshness check - */ - public function __construct(string $file, iterable $resourceCheckers = []) - { - $this->file = $file; - $this->resourceCheckers = $resourceCheckers; - } - - /** - * {@inheritdoc} - */ - public function getPath() - { - return $this->file; - } - - /** - * Checks if the cache is still fresh. - * - * This implementation will make a decision solely based on the ResourceCheckers - * passed in the constructor. - * - * The first ResourceChecker that supports a given resource is considered authoritative. - * Resources with no matching ResourceChecker will silently be ignored and considered fresh. - * - * @return bool true if the cache is fresh, false otherwise - */ - public function isFresh() - { - if (!is_file($this->file)) { - return false; - } - - if ($this->resourceCheckers instanceof \Traversable && !$this->resourceCheckers instanceof \Countable) { - $this->resourceCheckers = iterator_to_array($this->resourceCheckers); - } - - if (!\count($this->resourceCheckers)) { - return true; // shortcut - if we don't have any checkers we don't need to bother with the meta file at all - } - - $metadata = $this->getMetaFile(); - - if (!is_file($metadata)) { - return false; - } - - $meta = $this->safelyUnserialize($metadata); - - if (false === $meta) { - return false; - } - - $time = filemtime($this->file); - - foreach ($meta as $resource) { - /* @var ResourceInterface $resource */ - foreach ($this->resourceCheckers as $checker) { - if (!$checker->supports($resource)) { - continue; // next checker - } - if ($checker->isFresh($resource, $time)) { - break; // no need to further check this resource - } - - return false; // cache is stale - } - // no suitable checker found, ignore this resource - } - - return true; - } - - /** - * Writes cache. - * - * @param string $content The content to write in the cache - * @param ResourceInterface[] $metadata An array of metadata - * - * @throws \RuntimeException When cache file can't be written - */ - public function write($content, array $metadata = null) - { - $mode = 0666; - $umask = umask(); - $filesystem = new Filesystem(); - $filesystem->dumpFile($this->file, $content); - try { - $filesystem->chmod($this->file, $mode, $umask); - } catch (IOException $e) { - // discard chmod failure (some filesystem may not support it) - } - - if (null !== $metadata) { - $filesystem->dumpFile($this->getMetaFile(), serialize($metadata)); - try { - $filesystem->chmod($this->getMetaFile(), $mode, $umask); - } catch (IOException $e) { - // discard chmod failure (some filesystem may not support it) - } - } - - if (\function_exists('opcache_invalidate') && filter_var(ini_get('opcache.enable'), FILTER_VALIDATE_BOOLEAN)) { - @opcache_invalidate($this->file, true); - } - } - - /** - * Gets the meta file path. - */ - private function getMetaFile(): string - { - return $this->file.'.meta'; - } - - private function safelyUnserialize(string $file) - { - $meta = false; - $content = file_get_contents($file); - $signalingException = new \UnexpectedValueException(); - $prevUnserializeHandler = ini_set('unserialize_callback_func', self::class.'::handleUnserializeCallback'); - $prevErrorHandler = set_error_handler(function ($type, $msg, $file, $line, $context = []) use (&$prevErrorHandler, $signalingException) { - if (__FILE__ === $file) { - throw $signalingException; - } - - return $prevErrorHandler ? $prevErrorHandler($type, $msg, $file, $line, $context) : false; - }); - - try { - $meta = unserialize($content); - } catch (\Throwable $e) { - if ($e !== $signalingException) { - throw $e; - } - } finally { - restore_error_handler(); - ini_set('unserialize_callback_func', $prevUnserializeHandler); - } - - return $meta; - } - - /** - * @internal - */ - public static function handleUnserializeCallback($class) - { - trigger_error('Class not found: '.$class); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/ResourceCheckerConfigCacheFactory.php b/srcs/phpmyadmin/vendor/symfony/config/ResourceCheckerConfigCacheFactory.php deleted file mode 100644 index 0338635..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/ResourceCheckerConfigCacheFactory.php +++ /dev/null @@ -1,48 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config; - -/** - * A ConfigCacheFactory implementation that validates the - * cache with an arbitrary set of ResourceCheckers. - * - * @author Matthias Pigulla - */ -class ResourceCheckerConfigCacheFactory implements ConfigCacheFactoryInterface -{ - private $resourceCheckers = []; - - /** - * @param iterable|ResourceCheckerInterface[] $resourceCheckers - */ - public function __construct(iterable $resourceCheckers = []) - { - $this->resourceCheckers = $resourceCheckers; - } - - /** - * {@inheritdoc} - */ - public function cache($file, $callback) - { - if (!\is_callable($callback)) { - throw new \InvalidArgumentException(sprintf('Invalid type for callback argument. Expected callable, but got "%s".', \gettype($callback))); - } - - $cache = new ResourceCheckerConfigCache($file, $this->resourceCheckers); - if (!$cache->isFresh()) { - $callback($cache); - } - - return $cache; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/ResourceCheckerInterface.php b/srcs/phpmyadmin/vendor/symfony/config/ResourceCheckerInterface.php deleted file mode 100644 index ac0d402..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/ResourceCheckerInterface.php +++ /dev/null @@ -1,45 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config; - -use Symfony\Component\Config\Resource\ResourceInterface; - -/** - * Interface for ResourceCheckers. - * - * When a ResourceCheckerConfigCache instance is checked for freshness, all its associated - * metadata resources are passed to ResourceCheckers. The ResourceCheckers - * can then inspect the resources and decide whether the cache can be considered - * fresh or not. - * - * @author Matthias Pigulla - * @author Benjamin Klotz - */ -interface ResourceCheckerInterface -{ - /** - * Queries the ResourceChecker whether it can validate a given - * resource or not. - * - * @return bool True if the ResourceChecker can handle this resource type, false if not - */ - public function supports(ResourceInterface $metadata); - - /** - * Validates the resource. - * - * @param int $timestamp The timestamp at which the cache associated with this resource was created - * - * @return bool True if the resource has not changed since the given timestamp, false otherwise - */ - public function isFresh(ResourceInterface $resource, $timestamp); -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Util/Exception/InvalidXmlException.php b/srcs/phpmyadmin/vendor/symfony/config/Util/Exception/InvalidXmlException.php deleted file mode 100644 index a335bbd..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Util/Exception/InvalidXmlException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Util\Exception; - -/** - * Exception class for when XML parsing with an XSD schema file path or a callable validator produces errors unrelated - * to the actual XML parsing. - * - * @author Ole Rößner - */ -class InvalidXmlException extends XmlParsingException -{ -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Util/Exception/XmlParsingException.php b/srcs/phpmyadmin/vendor/symfony/config/Util/Exception/XmlParsingException.php deleted file mode 100644 index 9bceed6..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Util/Exception/XmlParsingException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Util\Exception; - -/** - * Exception class for when XML cannot be parsed properly. - * - * @author Ole Rößner - */ -class XmlParsingException extends \InvalidArgumentException -{ -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/Util/XmlUtils.php b/srcs/phpmyadmin/vendor/symfony/config/Util/XmlUtils.php deleted file mode 100644 index 6688d93..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/Util/XmlUtils.php +++ /dev/null @@ -1,269 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Config\Util; - -use Symfony\Component\Config\Util\Exception\InvalidXmlException; -use Symfony\Component\Config\Util\Exception\XmlParsingException; - -/** - * XMLUtils is a bunch of utility methods to XML operations. - * - * This class contains static methods only and is not meant to be instantiated. - * - * @author Fabien Potencier - * @author Martin Hasoň - * @author Ole Rößner - */ -class XmlUtils -{ - /** - * This class should not be instantiated. - */ - private function __construct() - { - } - - /** - * Parses an XML string. - * - * @param string $content An XML string - * @param string|callable|null $schemaOrCallable An XSD schema file path, a callable, or null to disable validation - * - * @return \DOMDocument - * - * @throws XmlParsingException When parsing of XML file returns error - * @throws InvalidXmlException When parsing of XML with schema or callable produces any errors unrelated to the XML parsing itself - * @throws \RuntimeException When DOM extension is missing - */ - public static function parse($content, $schemaOrCallable = null) - { - if (!\extension_loaded('dom')) { - throw new \LogicException('Extension DOM is required.'); - } - - $internalErrors = libxml_use_internal_errors(true); - $disableEntities = libxml_disable_entity_loader(true); - libxml_clear_errors(); - - $dom = new \DOMDocument(); - $dom->validateOnParse = true; - if (!$dom->loadXML($content, LIBXML_NONET | (\defined('LIBXML_COMPACT') ? LIBXML_COMPACT : 0))) { - libxml_disable_entity_loader($disableEntities); - - throw new XmlParsingException(implode("\n", static::getXmlErrors($internalErrors))); - } - - $dom->normalizeDocument(); - - libxml_use_internal_errors($internalErrors); - libxml_disable_entity_loader($disableEntities); - - foreach ($dom->childNodes as $child) { - if (XML_DOCUMENT_TYPE_NODE === $child->nodeType) { - throw new XmlParsingException('Document types are not allowed.'); - } - } - - if (null !== $schemaOrCallable) { - $internalErrors = libxml_use_internal_errors(true); - libxml_clear_errors(); - - $e = null; - if (\is_callable($schemaOrCallable)) { - try { - $valid = $schemaOrCallable($dom, $internalErrors); - } catch (\Exception $e) { - $valid = false; - } - } elseif (!\is_array($schemaOrCallable) && is_file((string) $schemaOrCallable)) { - $schemaSource = file_get_contents((string) $schemaOrCallable); - $valid = @$dom->schemaValidateSource($schemaSource); - } else { - libxml_use_internal_errors($internalErrors); - - throw new XmlParsingException('The schemaOrCallable argument has to be a valid path to XSD file or callable.'); - } - - if (!$valid) { - $messages = static::getXmlErrors($internalErrors); - if (empty($messages)) { - throw new InvalidXmlException('The XML is not valid.', 0, $e); - } - throw new XmlParsingException(implode("\n", $messages), 0, $e); - } - } - - libxml_clear_errors(); - libxml_use_internal_errors($internalErrors); - - return $dom; - } - - /** - * Loads an XML file. - * - * @param string $file An XML file path - * @param string|callable|null $schemaOrCallable An XSD schema file path, a callable, or null to disable validation - * - * @return \DOMDocument - * - * @throws \InvalidArgumentException When loading of XML file returns error - * @throws XmlParsingException When XML parsing returns any errors - * @throws \RuntimeException When DOM extension is missing - */ - public static function loadFile($file, $schemaOrCallable = null) - { - $content = @file_get_contents($file); - if ('' === trim($content)) { - throw new \InvalidArgumentException(sprintf('File %s does not contain valid XML, it is empty.', $file)); - } - - try { - return static::parse($content, $schemaOrCallable); - } catch (InvalidXmlException $e) { - throw new XmlParsingException(sprintf('The XML file "%s" is not valid.', $file), 0, $e->getPrevious()); - } - } - - /** - * Converts a \DOMElement object to a PHP array. - * - * The following rules applies during the conversion: - * - * * Each tag is converted to a key value or an array - * if there is more than one "value" - * - * * The content of a tag is set under a "value" key (bar) - * if the tag also has some nested tags - * - * * The attributes are converted to keys () - * - * * The nested-tags are converted to keys (bar) - * - * @param \DOMElement $element A \DOMElement instance - * @param bool $checkPrefix Check prefix in an element or an attribute name - * - * @return mixed - */ - public static function convertDomElementToArray(\DOMElement $element, $checkPrefix = true) - { - $prefix = (string) $element->prefix; - $empty = true; - $config = []; - foreach ($element->attributes as $name => $node) { - if ($checkPrefix && !\in_array((string) $node->prefix, ['', $prefix], true)) { - continue; - } - $config[$name] = static::phpize($node->value); - $empty = false; - } - - $nodeValue = false; - foreach ($element->childNodes as $node) { - if ($node instanceof \DOMText) { - if ('' !== trim($node->nodeValue)) { - $nodeValue = trim($node->nodeValue); - $empty = false; - } - } elseif ($checkPrefix && $prefix != (string) $node->prefix) { - continue; - } elseif (!$node instanceof \DOMComment) { - $value = static::convertDomElementToArray($node, $checkPrefix); - - $key = $node->localName; - if (isset($config[$key])) { - if (!\is_array($config[$key]) || !\is_int(key($config[$key]))) { - $config[$key] = [$config[$key]]; - } - $config[$key][] = $value; - } else { - $config[$key] = $value; - } - - $empty = false; - } - } - - if (false !== $nodeValue) { - $value = static::phpize($nodeValue); - if (\count($config)) { - $config['value'] = $value; - } else { - $config = $value; - } - } - - return !$empty ? $config : null; - } - - /** - * Converts an xml value to a PHP type. - * - * @param mixed $value - * - * @return mixed - */ - public static function phpize($value) - { - $value = (string) $value; - $lowercaseValue = strtolower($value); - - switch (true) { - case 'null' === $lowercaseValue: - return null; - case ctype_digit($value): - $raw = $value; - $cast = (int) $value; - - return '0' == $value[0] ? octdec($value) : (((string) $raw === (string) $cast) ? $cast : $raw); - case isset($value[1]) && '-' === $value[0] && ctype_digit(substr($value, 1)): - $raw = $value; - $cast = (int) $value; - - return '0' == $value[1] ? octdec($value) : (((string) $raw === (string) $cast) ? $cast : $raw); - case 'true' === $lowercaseValue: - return true; - case 'false' === $lowercaseValue: - return false; - case isset($value[1]) && '0b' == $value[0].$value[1] && preg_match('/^0b[01]*$/', $value): - return bindec($value); - case is_numeric($value): - return '0x' === $value[0].$value[1] ? hexdec($value) : (float) $value; - case preg_match('/^0x[0-9a-f]++$/i', $value): - return hexdec($value); - case preg_match('/^[+-]?[0-9]+(\.[0-9]+)?$/', $value): - return (float) $value; - default: - return $value; - } - } - - protected static function getXmlErrors($internalErrors) - { - $errors = []; - foreach (libxml_get_errors() as $error) { - $errors[] = sprintf('[%s %s] %s (in %s - line %d, column %d)', - LIBXML_ERR_WARNING == $error->level ? 'WARNING' : 'ERROR', - $error->code, - trim($error->message), - $error->file ?: 'n/a', - $error->line, - $error->column - ); - } - - libxml_clear_errors(); - libxml_use_internal_errors($internalErrors); - - return $errors; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/config/composer.json b/srcs/phpmyadmin/vendor/symfony/config/composer.json deleted file mode 100644 index 78433bb..0000000 --- a/srcs/phpmyadmin/vendor/symfony/config/composer.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "symfony/config", - "type": "library", - "description": "Symfony Config Component", - "keywords": [], - "homepage": "https://symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "require": { - "php": "^7.1.3", - "symfony/filesystem": "^3.4|^4.0|^5.0", - "symfony/polyfill-ctype": "~1.8" - }, - "require-dev": { - "symfony/event-dispatcher": "^3.4|^4.0|^5.0", - "symfony/finder": "^3.4|^4.0|^5.0", - "symfony/messenger": "^4.1|^5.0", - "symfony/service-contracts": "^1.1|^2", - "symfony/yaml": "^3.4|^4.0|^5.0" - }, - "conflict": { - "symfony/finder": "<3.4" - }, - "suggest": { - "symfony/yaml": "To use the yaml reference dumper" - }, - "autoload": { - "psr-4": { "Symfony\\Component\\Config\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Alias.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Alias.php deleted file mode 100644 index 3e74fd9..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Alias.php +++ /dev/null @@ -1,137 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; - -class Alias -{ - private $id; - private $public; - private $private; - private $deprecated; - private $deprecationTemplate; - - private static $defaultDeprecationTemplate = 'The "%alias_id%" service alias is deprecated. You should stop using it, as it will be removed in the future.'; - - public function __construct(string $id, bool $public = true) - { - $this->id = $id; - $this->public = $public; - $this->private = 2 > \func_num_args(); - $this->deprecated = false; - } - - /** - * Checks if this DI Alias should be public or not. - * - * @return bool - */ - public function isPublic() - { - return $this->public; - } - - /** - * Sets if this Alias is public. - * - * @param bool $boolean If this Alias should be public - * - * @return $this - */ - public function setPublic($boolean) - { - $this->public = (bool) $boolean; - $this->private = false; - - return $this; - } - - /** - * Sets if this Alias is private. - * - * When set, the "private" state has a higher precedence than "public". - * In version 3.4, a "private" alias always remains publicly accessible, - * but triggers a deprecation notice when accessed from the container, - * so that the alias can be made really private in 4.0. - * - * @param bool $boolean - * - * @return $this - */ - public function setPrivate($boolean) - { - $this->private = (bool) $boolean; - - return $this; - } - - /** - * Whether this alias is private. - * - * @return bool - */ - public function isPrivate() - { - return $this->private; - } - - /** - * Whether this alias is deprecated, that means it should not be referenced - * anymore. - * - * @param bool $status Whether this alias is deprecated, defaults to true - * @param string $template Optional template message to use if the alias is deprecated - * - * @return $this - * - * @throws InvalidArgumentException when the message template is invalid - */ - public function setDeprecated($status = true, $template = null) - { - if (null !== $template) { - if (preg_match('#[\r\n]|\*/#', $template)) { - throw new InvalidArgumentException('Invalid characters found in deprecation template.'); - } - - if (false === strpos($template, '%alias_id%')) { - throw new InvalidArgumentException('The deprecation template must contain the "%alias_id%" placeholder.'); - } - - $this->deprecationTemplate = $template; - } - - $this->deprecated = (bool) $status; - - return $this; - } - - public function isDeprecated(): bool - { - return $this->deprecated; - } - - public function getDeprecationMessage(string $id): string - { - return str_replace('%alias_id%', $id, $this->deprecationTemplate ?: self::$defaultDeprecationTemplate); - } - - /** - * Returns the Id of this alias. - * - * @return string The alias id - */ - public function __toString() - { - return $this->id; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/ArgumentInterface.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/ArgumentInterface.php deleted file mode 100644 index b46eb77..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/ArgumentInterface.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Argument; - -/** - * Represents a complex argument containing nested values. - * - * @author Titouan Galopin - */ -interface ArgumentInterface -{ - /** - * @return array - */ - public function getValues(); - - public function setValues(array $values); -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/BoundArgument.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/BoundArgument.php deleted file mode 100644 index 6005926..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/BoundArgument.php +++ /dev/null @@ -1,62 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Argument; - -/** - * @author Guilhem Niot - */ -final class BoundArgument implements ArgumentInterface -{ - const SERVICE_BINDING = 0; - const DEFAULTS_BINDING = 1; - const INSTANCEOF_BINDING = 2; - - private static $sequence = 0; - - private $value; - private $identifier; - private $used; - private $type; - private $file; - - public function __construct($value, bool $trackUsage = true, int $type = 0, string $file = null) - { - $this->value = $value; - if ($trackUsage) { - $this->identifier = ++self::$sequence; - } else { - $this->used = true; - } - $this->type = $type; - $this->file = $file; - } - - /** - * {@inheritdoc} - */ - public function getValues(): array - { - return [$this->value, $this->identifier, $this->used, $this->type, $this->file]; - } - - /** - * {@inheritdoc} - */ - public function setValues(array $values) - { - if (5 === \count($values)) { - list($this->value, $this->identifier, $this->used, $this->type, $this->file) = $values; - } else { - list($this->value, $this->identifier, $this->used) = $values; - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/IteratorArgument.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/IteratorArgument.php deleted file mode 100644 index d413678..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/IteratorArgument.php +++ /dev/null @@ -1,22 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Argument; - -/** - * Represents a collection of values to lazily iterate over. - * - * @author Titouan Galopin - */ -class IteratorArgument implements ArgumentInterface -{ - use ReferenceSetArgumentTrait; -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/ReferenceSetArgumentTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/ReferenceSetArgumentTrait.php deleted file mode 100644 index 6f8d5d9..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/ReferenceSetArgumentTrait.php +++ /dev/null @@ -1,54 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Argument; - -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Reference; - -/** - * @author Titouan Galopin - * @author Nicolas Grekas - */ -trait ReferenceSetArgumentTrait -{ - private $values; - - /** - * @param Reference[] $values - */ - public function __construct(array $values) - { - $this->setValues($values); - } - - /** - * @return Reference[] The values in the set - */ - public function getValues() - { - return $this->values; - } - - /** - * @param Reference[] $values The service references to put in the set - */ - public function setValues(array $values) - { - foreach ($values as $k => $v) { - if (null !== $v && !$v instanceof Reference) { - throw new InvalidArgumentException(sprintf('A %s must hold only Reference instances, "%s" given.', __CLASS__, \is_object($v) ? \get_class($v) : \gettype($v))); - } - } - - $this->values = $values; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/RewindableGenerator.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/RewindableGenerator.php deleted file mode 100644 index 41fec78..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/RewindableGenerator.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Argument; - -/** - * @internal - */ -class RewindableGenerator implements \IteratorAggregate, \Countable -{ - private $generator; - private $count; - - /** - * @param int|callable $count - */ - public function __construct(callable $generator, $count) - { - $this->generator = $generator; - $this->count = $count; - } - - public function getIterator(): \Traversable - { - $g = $this->generator; - - return $g(); - } - - public function count(): int - { - if (\is_callable($count = $this->count)) { - $this->count = $count(); - } - - return $this->count; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/ServiceClosureArgument.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/ServiceClosureArgument.php deleted file mode 100644 index 6331aff..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/ServiceClosureArgument.php +++ /dev/null @@ -1,50 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Argument; - -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Reference; - -/** - * Represents a service wrapped in a memoizing closure. - * - * @author Nicolas Grekas - */ -class ServiceClosureArgument implements ArgumentInterface -{ - private $values; - - public function __construct(Reference $reference) - { - $this->values = [$reference]; - } - - /** - * {@inheritdoc} - */ - public function getValues() - { - return $this->values; - } - - /** - * {@inheritdoc} - */ - public function setValues(array $values) - { - if ([0] !== array_keys($values) || !($values[0] instanceof Reference || null === $values[0])) { - throw new InvalidArgumentException('A ServiceClosureArgument must hold one and only one Reference.'); - } - - $this->values = $values; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/ServiceLocator.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/ServiceLocator.php deleted file mode 100644 index 2001a95..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/ServiceLocator.php +++ /dev/null @@ -1,50 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Argument; - -use Symfony\Component\DependencyInjection\ServiceLocator as BaseServiceLocator; - -/** - * @author Nicolas Grekas - * - * @internal - */ -class ServiceLocator extends BaseServiceLocator -{ - private $factory; - private $serviceMap; - private $serviceTypes; - - public function __construct(\Closure $factory, array $serviceMap, array $serviceTypes = null) - { - $this->factory = $factory; - $this->serviceMap = $serviceMap; - $this->serviceTypes = $serviceTypes; - parent::__construct($serviceMap); - } - - /** - * {@inheritdoc} - */ - public function get($id) - { - return isset($this->serviceMap[$id]) ? ($this->factory)(...$this->serviceMap[$id]) : parent::get($id); - } - - /** - * {@inheritdoc} - */ - public function getProvidedServices(): array - { - return $this->serviceTypes ?? $this->serviceTypes = array_map(function () { return '?'; }, $this->serviceMap); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/ServiceLocatorArgument.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/ServiceLocatorArgument.php deleted file mode 100644 index fcbf478..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/ServiceLocatorArgument.php +++ /dev/null @@ -1,44 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Argument; - -use Symfony\Component\DependencyInjection\Reference; - -/** - * Represents a closure acting as a service locator. - * - * @author Nicolas Grekas - */ -class ServiceLocatorArgument implements ArgumentInterface -{ - use ReferenceSetArgumentTrait; - - private $taggedIteratorArgument; - - /** - * @param Reference[]|TaggedIteratorArgument $values - */ - public function __construct($values = []) - { - if ($values instanceof TaggedIteratorArgument) { - $this->taggedIteratorArgument = $values; - $this->values = []; - } else { - $this->setValues($values); - } - } - - public function getTaggedIteratorArgument(): ?TaggedIteratorArgument - { - return $this->taggedIteratorArgument; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/TaggedIteratorArgument.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/TaggedIteratorArgument.php deleted file mode 100644 index d1d5f6d..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Argument/TaggedIteratorArgument.php +++ /dev/null @@ -1,73 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Argument; - -/** - * Represents a collection of services found by tag name to lazily iterate over. - * - * @author Roland Franssen - */ -class TaggedIteratorArgument extends IteratorArgument -{ - private $tag; - private $indexAttribute; - private $defaultIndexMethod; - private $defaultPriorityMethod; - private $needsIndexes = false; - - /** - * @param string $tag The name of the tag identifying the target services - * @param string|null $indexAttribute The name of the attribute that defines the key referencing each service in the tagged collection - * @param string|null $defaultIndexMethod The static method that should be called to get each service's key when their tag doesn't define the previous attribute - * @param bool $needsIndexes Whether indexes are required and should be generated when computing the map - * @param string|null $defaultPriorityMethod The static method that should be called to get each service's priority when their tag doesn't define the "priority" attribute - */ - public function __construct(string $tag, string $indexAttribute = null, string $defaultIndexMethod = null, bool $needsIndexes = false, string $defaultPriorityMethod = null) - { - parent::__construct([]); - - if (null === $indexAttribute && $needsIndexes) { - $indexAttribute = preg_match('/[^.]++$/', $tag, $m) ? $m[0] : $tag; - } - - $this->tag = $tag; - $this->indexAttribute = $indexAttribute; - $this->defaultIndexMethod = $defaultIndexMethod ?: ('getDefault'.str_replace(' ', '', ucwords(preg_replace('/[^a-zA-Z0-9\x7f-\xff]++/', ' ', $indexAttribute ?? ''))).'Name'); - $this->needsIndexes = $needsIndexes; - $this->defaultPriorityMethod = $defaultPriorityMethod ?: ('getDefault'.str_replace(' ', '', ucwords(preg_replace('/[^a-zA-Z0-9\x7f-\xff]++/', ' ', $indexAttribute ?? ''))).'Priority'); - } - - public function getTag() - { - return $this->tag; - } - - public function getIndexAttribute(): ?string - { - return $this->indexAttribute; - } - - public function getDefaultIndexMethod(): ?string - { - return $this->defaultIndexMethod; - } - - public function needsIndexes(): bool - { - return $this->needsIndexes; - } - - public function getDefaultPriorityMethod(): ?string - { - return $this->defaultPriorityMethod; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/CHANGELOG.md b/srcs/phpmyadmin/vendor/symfony/dependency-injection/CHANGELOG.md deleted file mode 100644 index b514ce1..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/CHANGELOG.md +++ /dev/null @@ -1,236 +0,0 @@ -CHANGELOG -========= - -4.4.0 ------ - - * added `CheckTypeDeclarationsPass` to check injected parameters type during compilation - * added support for opcache.preload by generating a preloading script in the cache folder - * added support for dumping the container in one file instead of many files - * deprecated support for short factories and short configurators in Yaml - * added `tagged_iterator` alias for `tagged` which might be deprecated in a future version - * deprecated passing an instance of `Symfony\Component\DependencyInjection\Parameter` as class name to `Symfony\Component\DependencyInjection\Definition` - * added support for binding iterable and tagged services - * made singly-implemented interfaces detection be scoped by file - * added ability to define a static priority method for tagged service - * added support for improved syntax to define method calls in Yaml - * made the `%env(base64:...)%` processor able to decode base64url - * added ability to choose behavior of decorations on non existent decorated services - -4.3.0 ------ - - * added `%env(trim:...)%` processor to trim a string value - * added `%env(default:param_name:...)%` processor to fallback to a parameter or to null when using `%env(default::...)%` - * added `%env(url:...)%` processor to convert an URL or DNS into an array of components - * added `%env(query_string:...)%` processor to convert a query string into an array of key values - * added support for deprecating aliases - * made `ContainerParametersResource` final and not implement `Serializable` anymore - * added `ReverseContainer`: a container that turns services back to their ids - * added ability to define an index for a tagged collection - * added ability to define an index for services in an injected service locator argument - * made `ServiceLocator` implement `ServiceProviderInterface` - * deprecated support for non-string default env() parameters - * added `%env(require:...)%` processor to `require()` a PHP file and use the value returned from it - -4.2.0 ------ - - * added `ContainerBuilder::registerAliasForArgument()` to support autowiring by type+name - * added support for binding by type+name - * added `ServiceSubscriberTrait` to ease implementing `ServiceSubscriberInterface` using methods' return types - * added `ServiceLocatorArgument` and `!service_locator` config tag for creating optimized service-locators - * added support for autoconfiguring bindings - * added `%env(key:...)%` processor to fetch a specific key from an array - * deprecated `ServiceSubscriberInterface`, use the same interface from the `Symfony\Contracts\Service` namespace instead - * deprecated `ResettableContainerInterface`, use `Symfony\Contracts\Service\ResetInterface` instead - -4.1.0 ------ - - * added support for variadics in named arguments - * added PSR-11 `ContainerBagInterface` and its `ContainerBag` implementation to access parameters as-a-service - * added support for service's decorators autowiring - * deprecated the `TypedReference::canBeAutoregistered()` and `TypedReference::getRequiringClass()` methods - * environment variables are validated when used in extension configuration - * deprecated support for auto-discovered extension configuration class which does not implement `ConfigurationInterface` - -4.0.0 ------ - - * Relying on service auto-registration while autowiring is not supported anymore. - Explicitly inject your dependencies or create services whose ids are - their fully-qualified class name. - - Before: - - ```php - namespace App\Controller; - - use App\Mailer; - - class DefaultController - { - public function __construct(Mailer $mailer) { - // ... - } - - // ... - } - ``` - ```yml - services: - App\Controller\DefaultController: - autowire: true - ``` - - After: - - ```php - // same PHP code - ``` - ```yml - services: - App\Controller\DefaultController: - autowire: true - - # or - # App\Controller\DefaultController: - # arguments: { $mailer: "@App\Mailer" } - - App\Mailer: - autowire: true - ``` - * removed autowiring services based on the types they implement - * added a third `$methodName` argument to the `getProxyFactoryCode()` method - of the `DumperInterface` - * removed support for autowiring types - * removed `Container::isFrozen` - * removed support for dumping an ucompiled container in `PhpDumper` - * removed support for generating a dumped `Container` without populating the method map - * removed support for case insensitive service identifiers - * removed the `DefinitionDecorator` class, replaced by `ChildDefinition` - * removed the `AutowireServiceResource` class and related `AutowirePass::createResourceForClass()` method - * removed `LoggingFormatter`, `Compiler::getLoggingFormatter()` and `addLogMessage()` class and methods, use the `ContainerBuilder::log()` method instead - * removed `FactoryReturnTypePass` - * removed `ContainerBuilder::addClassResource()`, use the `addObjectResource()` or the `getReflectionClass()` method instead. - * removed support for top-level anonymous services - * removed silent behavior for unused attributes and elements - * removed support for setting and accessing private services in `Container` - * removed support for setting pre-defined services in `Container` - * removed support for case insensitivity of parameter names - * removed `AutowireExceptionPass` and `AutowirePass::getAutowiringExceptions()`, use `Definition::addError()` and the `DefinitionErrorExceptionPass` instead - -3.4.0 ------ - - * moved the `ExtensionCompilerPass` to before-optimization passes with priority -1000 - * deprecated "public-by-default" definitions and aliases, the new default will be "private" in 4.0 - * added `EnvVarProcessorInterface` and corresponding "container.env_var_processor" tag for processing env vars - * added support for ignore-on-uninitialized references - * deprecated service auto-registration while autowiring - * deprecated the ability to check for the initialization of a private service with the `Container::initialized()` method - * deprecated support for top-level anonymous services in XML - * deprecated case insensitivity of parameter names - * deprecated the `ResolveDefinitionTemplatesPass` class in favor of `ResolveChildDefinitionsPass` - * added `TaggedIteratorArgument` with YAML (`!tagged foo`) and XML (``) support - * deprecated `AutowireExceptionPass` and `AutowirePass::getAutowiringExceptions()`, use `Definition::addError()` and the `DefinitionErrorExceptionPass` instead - - -3.3.0 ------ - - * deprecated autowiring services based on the types they implement; - rename (or alias) your services to their FQCN id to make them autowirable - * added "ServiceSubscriberInterface" - to allow for per-class explicit service-locator definitions - * added "container.service_locator" tag for defining service-locator services - * added anonymous services support in YAML configuration files using the `!service` tag. - * added "TypedReference" and "ServiceClosureArgument" for creating service-locator services - * added `ServiceLocator` - a PSR-11 container holding a set of services to be lazily loaded - * added "instanceof" section for local interface-defined configs - * added prototype services for PSR4-based discovery and registration - * added `ContainerBuilder::getReflectionClass()` for retrieving and tracking reflection class info - * deprecated `ContainerBuilder::getClassResource()`, use `ContainerBuilder::getReflectionClass()` or `ContainerBuilder::addObjectResource()` instead - * added `ContainerBuilder::fileExists()` for checking and tracking file or directory existence - * deprecated autowiring-types, use aliases instead - * added support for omitting the factory class name in a service definition if the definition class is set - * deprecated case insensitivity of service identifiers - * added "iterator" argument type for lazy iteration over a set of values and services - * added file-wide configurable defaults for service attributes "public", "tags", - "autowire" and "autoconfigure" - * made the "class" attribute optional, using the "id" as fallback - * using the `PhpDumper` with an uncompiled `ContainerBuilder` is deprecated and - will not be supported anymore in 4.0 - * deprecated the `DefinitionDecorator` class in favor of `ChildDefinition` - * allow config files to be loaded using a glob pattern - * [BC BREAK] the `NullDumper` class is now final - -3.2.0 ------ - - * allowed to prioritize compiler passes by introducing a third argument to `PassConfig::addPass()`, to `Compiler::addPass` and to `ContainerBuilder::addCompilerPass()` - * added support for PHP constants in YAML configuration files - * deprecated the ability to set or unset a private service with the `Container::set()` method - * deprecated the ability to check for the existence of a private service with the `Container::has()` method - * deprecated the ability to request a private service with the `Container::get()` method - * deprecated support for generating a dumped `Container` without populating the method map - -3.0.0 ------ - - * removed all deprecated codes from 2.x versions - -2.8.0 ------ - - * deprecated the abstract ContainerAware class in favor of ContainerAwareTrait - * deprecated IntrospectableContainerInterface, to be merged with ContainerInterface in 3.0 - * allowed specifying a directory to recursively load all configuration files it contains - * deprecated the concept of scopes - * added `Definition::setShared()` and `Definition::isShared()` - * added ResettableContainerInterface to be able to reset the container to release memory on shutdown - * added a way to define the priority of service decoration - * added support for service autowiring - -2.7.0 ------ - - * deprecated synchronized services - -2.6.0 ------ - - * added new factory syntax and deprecated the old one - -2.5.0 ------ - -* added DecoratorServicePass and a way to override a service definition (Definition::setDecoratedService()) -* deprecated SimpleXMLElement class. - -2.4.0 ------ - - * added support for expressions in service definitions - * added ContainerAwareTrait to add default container aware behavior to a class - -2.2.0 ------ - - * added Extension::isConfigEnabled() to ease working with enableable configurations - * added an Extension base class with sensible defaults to be used in conjunction - with the Config component. - * added PrependExtensionInterface (to be able to allow extensions to prepend - application configuration settings for any Bundle) - -2.1.0 ------ - - * added IntrospectableContainerInterface (to be able to check if a service - has been initialized or not) - * added ConfigurationExtensionInterface - * added Definition::clearTag() - * component exceptions that inherit base SPL classes are now used exclusively - (this includes dumped containers) - * [BC BREAK] fixed unescaping of class arguments, method - ParameterBag::unescapeValue() was made public diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ChildDefinition.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/ChildDefinition.php deleted file mode 100644 index 7718f72..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ChildDefinition.php +++ /dev/null @@ -1,124 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -use Symfony\Component\DependencyInjection\Exception\BadMethodCallException; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\OutOfBoundsException; - -/** - * This definition extends another definition. - * - * @author Johannes M. Schmitt - */ -class ChildDefinition extends Definition -{ - private $parent; - - /** - * @param string $parent The id of Definition instance to decorate - */ - public function __construct(string $parent) - { - $this->parent = $parent; - $this->setPrivate(false); - } - - /** - * Returns the Definition to inherit from. - * - * @return string - */ - public function getParent() - { - return $this->parent; - } - - /** - * Sets the Definition to inherit from. - * - * @param string $parent - * - * @return $this - */ - public function setParent($parent) - { - $this->parent = $parent; - - return $this; - } - - /** - * Gets an argument to pass to the service constructor/factory method. - * - * If replaceArgument() has been used to replace an argument, this method - * will return the replacement value. - * - * @param int|string $index - * - * @return mixed The argument value - * - * @throws OutOfBoundsException When the argument does not exist - */ - public function getArgument($index) - { - if (\array_key_exists('index_'.$index, $this->arguments)) { - return $this->arguments['index_'.$index]; - } - - return parent::getArgument($index); - } - - /** - * You should always use this method when overwriting existing arguments - * of the parent definition. - * - * If you directly call setArguments() keep in mind that you must follow - * certain conventions when you want to overwrite the arguments of the - * parent definition, otherwise your arguments will only be appended. - * - * @param int|string $index - * @param mixed $value - * - * @return $this - * - * @throws InvalidArgumentException when $index isn't an integer - */ - public function replaceArgument($index, $value) - { - if (\is_int($index)) { - $this->arguments['index_'.$index] = $value; - } elseif (0 === strpos($index, '$')) { - $this->arguments[$index] = $value; - } else { - throw new InvalidArgumentException('The argument must be an existing index or the name of a constructor\'s parameter.'); - } - - return $this; - } - - /** - * @internal - */ - public function setAutoconfigured($autoconfigured): self - { - throw new BadMethodCallException('A ChildDefinition cannot be autoconfigured.'); - } - - /** - * @internal - */ - public function setInstanceofConditionals(array $instanceof): self - { - throw new BadMethodCallException('A ChildDefinition cannot have instanceof conditionals set on it.'); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AbstractRecursivePass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AbstractRecursivePass.php deleted file mode 100644 index ad3cb52..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AbstractRecursivePass.php +++ /dev/null @@ -1,228 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Argument\ArgumentInterface; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\LogicException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\ExpressionLanguage; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\ExpressionLanguage\Expression; - -/** - * @author Nicolas Grekas - */ -abstract class AbstractRecursivePass implements CompilerPassInterface -{ - /** - * @var ContainerBuilder - */ - protected $container; - protected $currentId; - - private $processExpressions = false; - private $expressionLanguage; - private $inExpression = false; - - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - $this->container = $container; - - try { - $this->processValue($container->getDefinitions(), true); - } finally { - $this->container = null; - } - } - - protected function enableExpressionProcessing() - { - $this->processExpressions = true; - } - - protected function inExpression(bool $reset = true): bool - { - $inExpression = $this->inExpression; - if ($reset) { - $this->inExpression = false; - } - - return $inExpression; - } - - /** - * Processes a value found in a definition tree. - * - * @param mixed $value - * @param bool $isRoot - * - * @return mixed The processed value - */ - protected function processValue($value, $isRoot = false) - { - if (\is_array($value)) { - foreach ($value as $k => $v) { - if ($isRoot) { - $this->currentId = $k; - } - if ($v !== $processedValue = $this->processValue($v, $isRoot)) { - $value[$k] = $processedValue; - } - } - } elseif ($value instanceof ArgumentInterface) { - $value->setValues($this->processValue($value->getValues())); - } elseif ($value instanceof Expression && $this->processExpressions) { - $this->getExpressionLanguage()->compile((string) $value, ['this' => 'container']); - } elseif ($value instanceof Definition) { - $value->setArguments($this->processValue($value->getArguments())); - $value->setProperties($this->processValue($value->getProperties())); - $value->setMethodCalls($this->processValue($value->getMethodCalls())); - - $changes = $value->getChanges(); - if (isset($changes['factory'])) { - $value->setFactory($this->processValue($value->getFactory())); - } - if (isset($changes['configurator'])) { - $value->setConfigurator($this->processValue($value->getConfigurator())); - } - } - - return $value; - } - - /** - * @param bool $required - * - * @return \ReflectionFunctionAbstract|null - * - * @throws RuntimeException - */ - protected function getConstructor(Definition $definition, $required) - { - if ($definition->isSynthetic()) { - return null; - } - - if (\is_string($factory = $definition->getFactory())) { - if (!\function_exists($factory)) { - throw new RuntimeException(sprintf('Invalid service "%s": function "%s" does not exist.', $this->currentId, $factory)); - } - $r = new \ReflectionFunction($factory); - if (false !== $r->getFileName() && file_exists($r->getFileName())) { - $this->container->fileExists($r->getFileName()); - } - - return $r; - } - - if ($factory) { - list($class, $method) = $factory; - if ($class instanceof Reference) { - $class = $this->container->findDefinition((string) $class)->getClass(); - } elseif ($class instanceof Definition) { - $class = $class->getClass(); - } elseif (null === $class) { - $class = $definition->getClass(); - } - - if ('__construct' === $method) { - throw new RuntimeException(sprintf('Invalid service "%s": "__construct()" cannot be used as a factory method.', $this->currentId)); - } - - return $this->getReflectionMethod(new Definition($class), $method); - } - - $class = $definition->getClass(); - - try { - if (!$r = $this->container->getReflectionClass($class)) { - throw new RuntimeException(sprintf('Invalid service "%s": class "%s" does not exist.', $this->currentId, $class)); - } - } catch (\ReflectionException $e) { - throw new RuntimeException(sprintf('Invalid service "%s": %s.', $this->currentId, lcfirst(rtrim($e->getMessage(), '.')))); - } - if (!$r = $r->getConstructor()) { - if ($required) { - throw new RuntimeException(sprintf('Invalid service "%s": class%s has no constructor.', $this->currentId, sprintf($class !== $this->currentId ? ' "%s"' : '', $class))); - } - } elseif (!$r->isPublic()) { - throw new RuntimeException(sprintf('Invalid service "%s": %s must be public.', $this->currentId, sprintf($class !== $this->currentId ? 'constructor of class "%s"' : 'its constructor', $class))); - } - - return $r; - } - - /** - * @param string $method - * - * @throws RuntimeException - * - * @return \ReflectionFunctionAbstract - */ - protected function getReflectionMethod(Definition $definition, $method) - { - if ('__construct' === $method) { - return $this->getConstructor($definition, true); - } - - if (!$class = $definition->getClass()) { - throw new RuntimeException(sprintf('Invalid service "%s": the class is not set.', $this->currentId)); - } - - if (!$r = $this->container->getReflectionClass($class)) { - throw new RuntimeException(sprintf('Invalid service "%s": class "%s" does not exist.', $this->currentId, $class)); - } - - if (!$r->hasMethod($method)) { - throw new RuntimeException(sprintf('Invalid service "%s": method "%s()" does not exist.', $this->currentId, $class !== $this->currentId ? $class.'::'.$method : $method)); - } - - $r = $r->getMethod($method); - if (!$r->isPublic()) { - throw new RuntimeException(sprintf('Invalid service "%s": method "%s()" must be public.', $this->currentId, $class !== $this->currentId ? $class.'::'.$method : $method)); - } - - return $r; - } - - private function getExpressionLanguage(): ExpressionLanguage - { - if (null === $this->expressionLanguage) { - if (!class_exists(ExpressionLanguage::class)) { - throw new LogicException('Unable to use expressions as the Symfony ExpressionLanguage component is not installed.'); - } - - $providers = $this->container->getExpressionLanguageProviders(); - $this->expressionLanguage = new ExpressionLanguage(null, $providers, function (string $arg): string { - if ('""' === substr_replace($arg, '', 1, -1)) { - $id = stripcslashes(substr($arg, 1, -1)); - $this->inExpression = true; - $arg = $this->processValue(new Reference($id)); - $this->inExpression = false; - if (!$arg instanceof Reference) { - throw new RuntimeException(sprintf('"%s::processValue()" must return a Reference when processing an expression, %s returned for service("%s").', \get_class($this), \is_object($arg) ? \get_class($arg) : \gettype($arg), $id)); - } - $arg = sprintf('"%s"', $arg); - } - - return sprintf('$this->get(%s)', $arg); - }); - } - - return $this->expressionLanguage; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AnalyzeServiceReferencesPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AnalyzeServiceReferencesPass.php deleted file mode 100644 index 59a27ae..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AnalyzeServiceReferencesPass.php +++ /dev/null @@ -1,192 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Argument\ArgumentInterface; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Reference; - -/** - * Run this pass before passes that need to know more about the relation of - * your services. - * - * This class will populate the ServiceReferenceGraph with information. You can - * retrieve the graph in other passes from the compiler. - * - * @author Johannes M. Schmitt - * @author Nicolas Grekas - */ -class AnalyzeServiceReferencesPass extends AbstractRecursivePass implements RepeatablePassInterface -{ - private $graph; - private $currentDefinition; - private $onlyConstructorArguments; - private $hasProxyDumper; - private $lazy; - private $byConstructor; - private $definitions; - private $aliases; - - /** - * @param bool $onlyConstructorArguments Sets this Service Reference pass to ignore method calls - */ - public function __construct(bool $onlyConstructorArguments = false, bool $hasProxyDumper = true) - { - $this->onlyConstructorArguments = $onlyConstructorArguments; - $this->hasProxyDumper = $hasProxyDumper; - $this->enableExpressionProcessing(); - } - - /** - * {@inheritdoc} - */ - public function setRepeatedPass(RepeatedPass $repeatedPass) - { - @trigger_error(sprintf('The "%s()" method is deprecated since Symfony 4.2.', __METHOD__), E_USER_DEPRECATED); - } - - /** - * Processes a ContainerBuilder object to populate the service reference graph. - */ - public function process(ContainerBuilder $container) - { - $this->container = $container; - $this->graph = $container->getCompiler()->getServiceReferenceGraph(); - $this->graph->clear(); - $this->lazy = false; - $this->byConstructor = false; - $this->definitions = $container->getDefinitions(); - $this->aliases = $container->getAliases(); - - foreach ($this->aliases as $id => $alias) { - $targetId = $this->getDefinitionId((string) $alias); - $this->graph->connect($id, $alias, $targetId, null !== $targetId ? $this->container->getDefinition($targetId) : null, null); - } - - try { - parent::process($container); - } finally { - $this->aliases = $this->definitions = []; - } - } - - protected function processValue($value, $isRoot = false) - { - $lazy = $this->lazy; - $inExpression = $this->inExpression(); - - if ($value instanceof ArgumentInterface) { - $this->lazy = true; - parent::processValue($value->getValues()); - $this->lazy = $lazy; - - return $value; - } - if ($value instanceof Reference) { - $targetId = $this->getDefinitionId((string) $value); - $targetDefinition = null !== $targetId ? $this->container->getDefinition($targetId) : null; - - $this->graph->connect( - $this->currentId, - $this->currentDefinition, - $targetId, - $targetDefinition, - $value, - $this->lazy || ($this->hasProxyDumper && $targetDefinition && $targetDefinition->isLazy()), - ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE === $value->getInvalidBehavior(), - $this->byConstructor - ); - - if ($inExpression) { - $this->graph->connect( - '.internal.reference_in_expression', - null, - $targetId, - $targetDefinition, - $value, - $this->lazy || ($targetDefinition && $targetDefinition->isLazy()), - true - ); - } - - return $value; - } - if (!$value instanceof Definition) { - return parent::processValue($value, $isRoot); - } - if ($isRoot) { - if ($value->isSynthetic() || $value->isAbstract()) { - return $value; - } - $this->currentDefinition = $value; - } elseif ($this->currentDefinition === $value) { - return $value; - } - $this->lazy = false; - - $byConstructor = $this->byConstructor; - $this->byConstructor = $isRoot || $byConstructor; - $this->processValue($value->getFactory()); - $this->processValue($value->getArguments()); - - $properties = $value->getProperties(); - $setters = $value->getMethodCalls(); - - // Any references before a "wither" are part of the constructor-instantiation graph - $lastWitherIndex = null; - foreach ($setters as $k => $call) { - if ($call[2] ?? false) { - $lastWitherIndex = $k; - } - } - - if (null !== $lastWitherIndex) { - $this->processValue($properties); - $setters = $properties = []; - - foreach ($value->getMethodCalls() as $k => $call) { - if (null === $lastWitherIndex) { - $setters[] = $call; - continue; - } - - if ($lastWitherIndex === $k) { - $lastWitherIndex = null; - } - - $this->processValue($call); - } - } - - $this->byConstructor = $byConstructor; - - if (!$this->onlyConstructorArguments) { - $this->processValue($properties); - $this->processValue($setters); - $this->processValue($value->getConfigurator()); - } - $this->lazy = $lazy; - - return $value; - } - - private function getDefinitionId(string $id): ?string - { - while (isset($this->aliases[$id])) { - $id = (string) $this->aliases[$id]; - } - - return isset($this->definitions[$id]) ? $id : null; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AutoAliasServicePass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AutoAliasServicePass.php deleted file mode 100644 index 0342068..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AutoAliasServicePass.php +++ /dev/null @@ -1,41 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Alias; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; - -/** - * Sets a service to be an alias of another one, given a format pattern. - */ -class AutoAliasServicePass implements CompilerPassInterface -{ - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - foreach ($container->findTaggedServiceIds('auto_alias') as $serviceId => $tags) { - foreach ($tags as $tag) { - if (!isset($tag['format'])) { - throw new InvalidArgumentException(sprintf('Missing tag information "format" on auto_alias service "%s".', $serviceId)); - } - - $aliasId = $container->getParameterBag()->resolveValue($tag['format']); - if ($container->hasDefinition($aliasId) || $container->hasAlias($aliasId)) { - $container->setAlias($serviceId, new Alias($aliasId, true)); - } - } - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AutowirePass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AutowirePass.php deleted file mode 100644 index 8d46fd6..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AutowirePass.php +++ /dev/null @@ -1,475 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\Config\Resource\ClassExistenceResource; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\AutowiringFailedException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\LazyProxy\ProxyHelper; -use Symfony\Component\DependencyInjection\TypedReference; - -/** - * Inspects existing service definitions and wires the autowired ones using the type hints of their classes. - * - * @author Kévin Dunglas - * @author Nicolas Grekas - */ -class AutowirePass extends AbstractRecursivePass -{ - private $types; - private $ambiguousServiceTypes; - private $lastFailure; - private $throwOnAutowiringException; - private $decoratedClass; - private $decoratedId; - private $methodCalls; - private $getPreviousValue; - private $decoratedMethodIndex; - private $decoratedMethodArgumentIndex; - private $typesClone; - - public function __construct(bool $throwOnAutowireException = true) - { - $this->throwOnAutowiringException = $throwOnAutowireException; - } - - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - try { - $this->typesClone = clone $this; - parent::process($container); - } finally { - $this->decoratedClass = null; - $this->decoratedId = null; - $this->methodCalls = null; - $this->getPreviousValue = null; - $this->decoratedMethodIndex = null; - $this->decoratedMethodArgumentIndex = null; - $this->typesClone = null; - } - } - - /** - * {@inheritdoc} - */ - protected function processValue($value, $isRoot = false) - { - try { - return $this->doProcessValue($value, $isRoot); - } catch (AutowiringFailedException $e) { - if ($this->throwOnAutowiringException) { - throw $e; - } - - $this->container->getDefinition($this->currentId)->addError($e->getMessageCallback() ?? $e->getMessage()); - - return parent::processValue($value, $isRoot); - } - } - - /** - * @return mixed - */ - private function doProcessValue($value, bool $isRoot = false) - { - if ($value instanceof TypedReference) { - if ($ref = $this->getAutowiredReference($value)) { - return $ref; - } - if (ContainerBuilder::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE === $value->getInvalidBehavior()) { - $message = $this->createTypeNotFoundMessageCallback($value, 'it'); - - // since the error message varies by referenced id and $this->currentId, so should the id of the dummy errored definition - $this->container->register($id = sprintf('.errored.%s.%s', $this->currentId, (string) $value), $value->getType()) - ->addError($message); - - return new TypedReference($id, $value->getType(), $value->getInvalidBehavior(), $value->getName()); - } - } - $value = parent::processValue($value, $isRoot); - - if (!$value instanceof Definition || !$value->isAutowired() || $value->isAbstract() || !$value->getClass()) { - return $value; - } - if (!$reflectionClass = $this->container->getReflectionClass($value->getClass(), false)) { - $this->container->log($this, sprintf('Skipping service "%s": Class or interface "%s" cannot be loaded.', $this->currentId, $value->getClass())); - - return $value; - } - - $this->methodCalls = $value->getMethodCalls(); - - try { - $constructor = $this->getConstructor($value, false); - } catch (RuntimeException $e) { - throw new AutowiringFailedException($this->currentId, $e->getMessage(), 0, $e); - } - - if ($constructor) { - array_unshift($this->methodCalls, [$constructor, $value->getArguments()]); - } - - $this->methodCalls = $this->autowireCalls($reflectionClass, $isRoot); - - if ($constructor) { - list(, $arguments) = array_shift($this->methodCalls); - - if ($arguments !== $value->getArguments()) { - $value->setArguments($arguments); - } - } - - if ($this->methodCalls !== $value->getMethodCalls()) { - $value->setMethodCalls($this->methodCalls); - } - - return $value; - } - - private function autowireCalls(\ReflectionClass $reflectionClass, bool $isRoot): array - { - $this->decoratedId = null; - $this->decoratedClass = null; - $this->getPreviousValue = null; - - if ($isRoot && ($definition = $this->container->getDefinition($this->currentId)) && $this->container->has($this->decoratedId = $definition->innerServiceId)) { - $this->decoratedClass = $this->container->findDefinition($this->decoratedId)->getClass(); - } - - foreach ($this->methodCalls as $i => $call) { - $this->decoratedMethodIndex = $i; - list($method, $arguments) = $call; - - if ($method instanceof \ReflectionFunctionAbstract) { - $reflectionMethod = $method; - } else { - $definition = new Definition($reflectionClass->name); - try { - $reflectionMethod = $this->getReflectionMethod($definition, $method); - } catch (RuntimeException $e) { - if ($definition->getFactory()) { - continue; - } - throw $e; - } - } - - $arguments = $this->autowireMethod($reflectionMethod, $arguments); - - if ($arguments !== $call[1]) { - $this->methodCalls[$i][1] = $arguments; - } - } - - return $this->methodCalls; - } - - /** - * Autowires the constructor or a method. - * - * @return array The autowired arguments - * - * @throws AutowiringFailedException - */ - private function autowireMethod(\ReflectionFunctionAbstract $reflectionMethod, array $arguments): array - { - $class = $reflectionMethod instanceof \ReflectionMethod ? $reflectionMethod->class : $this->currentId; - $method = $reflectionMethod->name; - $parameters = $reflectionMethod->getParameters(); - if ($reflectionMethod->isVariadic()) { - array_pop($parameters); - } - - foreach ($parameters as $index => $parameter) { - if (\array_key_exists($index, $arguments) && '' !== $arguments[$index]) { - continue; - } - - $type = ProxyHelper::getTypeHint($reflectionMethod, $parameter, true); - - if (!$type) { - if (isset($arguments[$index])) { - continue; - } - - // no default value? Then fail - if (!$parameter->isDefaultValueAvailable()) { - // For core classes, isDefaultValueAvailable() can - // be false when isOptional() returns true. If the - // argument *is* optional, allow it to be missing - if ($parameter->isOptional()) { - continue; - } - $type = ProxyHelper::getTypeHint($reflectionMethod, $parameter, false); - $type = $type ? sprintf('is type-hinted "%s"', ltrim($type, '\\')) : 'has no type-hint'; - - throw new AutowiringFailedException($this->currentId, sprintf('Cannot autowire service "%s": argument "$%s" of method "%s()" %s, you should configure its value explicitly.', $this->currentId, $parameter->name, $class !== $this->currentId ? $class.'::'.$method : $method, $type)); - } - - // specifically pass the default value - $arguments[$index] = $parameter->getDefaultValue(); - - continue; - } - - $getValue = function () use ($type, $parameter, $class, $method) { - if (!$value = $this->getAutowiredReference($ref = new TypedReference($type, $type, ContainerBuilder::EXCEPTION_ON_INVALID_REFERENCE, $parameter->name))) { - $failureMessage = $this->createTypeNotFoundMessageCallback($ref, sprintf('argument "$%s" of method "%s()"', $parameter->name, $class !== $this->currentId ? $class.'::'.$method : $method)); - - if ($parameter->isDefaultValueAvailable()) { - $value = $parameter->getDefaultValue(); - } elseif (!$parameter->allowsNull()) { - throw new AutowiringFailedException($this->currentId, $failureMessage); - } - } - - return $value; - }; - - if ($this->decoratedClass && $isDecorated = is_a($this->decoratedClass, $type, true)) { - if ($this->getPreviousValue) { - // The inner service is injected only if there is only 1 argument matching the type of the decorated class - // across all arguments of all autowired methods. - // If a second matching argument is found, the default behavior is restored. - - $getPreviousValue = $this->getPreviousValue; - $this->methodCalls[$this->decoratedMethodIndex][1][$this->decoratedMethodArgumentIndex] = $getPreviousValue(); - $this->decoratedClass = null; // Prevent further checks - } else { - $arguments[$index] = new TypedReference($this->decoratedId, $this->decoratedClass); - $this->getPreviousValue = $getValue; - $this->decoratedMethodArgumentIndex = $index; - - continue; - } - } - - $arguments[$index] = $getValue(); - } - - if ($parameters && !isset($arguments[++$index])) { - while (0 <= --$index) { - $parameter = $parameters[$index]; - if (!$parameter->isDefaultValueAvailable() || $parameter->getDefaultValue() !== $arguments[$index]) { - break; - } - unset($arguments[$index]); - } - } - - // it's possible index 1 was set, then index 0, then 2, etc - // make sure that we re-order so they're injected as expected - ksort($arguments); - - return $arguments; - } - - /** - * Returns a reference to the service matching the given type, if any. - */ - private function getAutowiredReference(TypedReference $reference): ?TypedReference - { - $this->lastFailure = null; - $type = $reference->getType(); - - if ($type !== (string) $reference) { - return $reference; - } - - if (null !== $name = $reference->getName()) { - if ($this->container->has($alias = $type.' $'.$name) && !$this->container->findDefinition($alias)->isAbstract()) { - return new TypedReference($alias, $type, $reference->getInvalidBehavior()); - } - - if ($this->container->has($name) && !$this->container->findDefinition($name)->isAbstract()) { - foreach ($this->container->getAliases() as $id => $alias) { - if ($name === (string) $alias && 0 === strpos($id, $type.' $')) { - return new TypedReference($name, $type, $reference->getInvalidBehavior()); - } - } - } - } - - if ($this->container->has($type) && !$this->container->findDefinition($type)->isAbstract()) { - return new TypedReference($type, $type, $reference->getInvalidBehavior()); - } - - return null; - } - - /** - * Populates the list of available types. - */ - private function populateAvailableTypes(ContainerBuilder $container) - { - $this->types = []; - $this->ambiguousServiceTypes = []; - - foreach ($container->getDefinitions() as $id => $definition) { - $this->populateAvailableType($container, $id, $definition); - } - } - - /** - * Populates the list of available types for a given definition. - */ - private function populateAvailableType(ContainerBuilder $container, string $id, Definition $definition) - { - // Never use abstract services - if ($definition->isAbstract()) { - return; - } - - if ('' === $id || '.' === $id[0] || $definition->isDeprecated() || !$reflectionClass = $container->getReflectionClass($definition->getClass(), false)) { - return; - } - - foreach ($reflectionClass->getInterfaces() as $reflectionInterface) { - $this->set($reflectionInterface->name, $id); - } - - do { - $this->set($reflectionClass->name, $id); - } while ($reflectionClass = $reflectionClass->getParentClass()); - } - - /** - * Associates a type and a service id if applicable. - */ - private function set(string $type, string $id) - { - // is this already a type/class that is known to match multiple services? - if (isset($this->ambiguousServiceTypes[$type])) { - $this->ambiguousServiceTypes[$type][] = $id; - - return; - } - - // check to make sure the type doesn't match multiple services - if (!isset($this->types[$type]) || $this->types[$type] === $id) { - $this->types[$type] = $id; - - return; - } - - // keep an array of all services matching this type - if (!isset($this->ambiguousServiceTypes[$type])) { - $this->ambiguousServiceTypes[$type] = [$this->types[$type]]; - unset($this->types[$type]); - } - $this->ambiguousServiceTypes[$type][] = $id; - } - - private function createTypeNotFoundMessageCallback(TypedReference $reference, string $label): callable - { - if (null === $this->typesClone->container) { - $this->typesClone->container = new ContainerBuilder($this->container->getParameterBag()); - $this->typesClone->container->setAliases($this->container->getAliases()); - $this->typesClone->container->setDefinitions($this->container->getDefinitions()); - $this->typesClone->container->setResourceTracking(false); - } - $currentId = $this->currentId; - - return (function () use ($reference, $label, $currentId) { - return $this->createTypeNotFoundMessage($reference, $label, $currentId); - })->bindTo($this->typesClone); - } - - private function createTypeNotFoundMessage(TypedReference $reference, string $label, string $currentId): string - { - if (!$r = $this->container->getReflectionClass($type = $reference->getType(), false)) { - // either $type does not exist or a parent class does not exist - try { - $resource = new ClassExistenceResource($type, false); - // isFresh() will explode ONLY if a parent class/trait does not exist - $resource->isFresh(0); - $parentMsg = false; - } catch (\ReflectionException $e) { - $parentMsg = $e->getMessage(); - } - - $message = sprintf('has type "%s" but this class %s.', $type, $parentMsg ? sprintf('is missing a parent class (%s)', $parentMsg) : 'was not found'); - } else { - $alternatives = $this->createTypeAlternatives($this->container, $reference); - $message = $this->container->has($type) ? 'this service is abstract' : 'no such service exists'; - $message = sprintf('references %s "%s" but %s.%s', $r->isInterface() ? 'interface' : 'class', $type, $message, $alternatives); - - if ($r->isInterface() && !$alternatives) { - $message .= ' Did you create a class that implements this interface?'; - } - } - - $message = sprintf('Cannot autowire service "%s": %s %s', $currentId, $label, $message); - - if (null !== $this->lastFailure) { - $message = $this->lastFailure."\n".$message; - $this->lastFailure = null; - } - - return $message; - } - - private function createTypeAlternatives(ContainerBuilder $container, TypedReference $reference): string - { - // try suggesting available aliases first - if ($message = $this->getAliasesSuggestionForType($container, $type = $reference->getType())) { - return ' '.$message; - } - if (null === $this->ambiguousServiceTypes) { - $this->populateAvailableTypes($container); - } - - $servicesAndAliases = $container->getServiceIds(); - if (!$container->has($type) && false !== $key = array_search(strtolower($type), array_map('strtolower', $servicesAndAliases))) { - return sprintf(' Did you mean "%s"?', $servicesAndAliases[$key]); - } elseif (isset($this->ambiguousServiceTypes[$type])) { - $message = sprintf('one of these existing services: "%s"', implode('", "', $this->ambiguousServiceTypes[$type])); - } elseif (isset($this->types[$type])) { - $message = sprintf('the existing "%s" service', $this->types[$type]); - } else { - return ''; - } - - return sprintf(' You should maybe alias this %s to %s.', class_exists($type, false) ? 'class' : 'interface', $message); - } - - private function getAliasesSuggestionForType(ContainerBuilder $container, string $type): ?string - { - $aliases = []; - foreach (class_parents($type) + class_implements($type) as $parent) { - if ($container->has($parent) && !$container->findDefinition($parent)->isAbstract()) { - $aliases[] = $parent; - } - } - - if (1 < $len = \count($aliases)) { - $message = 'Try changing the type-hint to one of its parents: '; - for ($i = 0, --$len; $i < $len; ++$i) { - $message .= sprintf('%s "%s", ', class_exists($aliases[$i], false) ? 'class' : 'interface', $aliases[$i]); - } - $message .= sprintf('or %s "%s".', class_exists($aliases[$i], false) ? 'class' : 'interface', $aliases[$i]); - - return $message; - } - - if ($aliases) { - return sprintf('Try changing the type-hint to "%s" instead.', $aliases[0]); - } - - return null; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AutowireRequiredMethodsPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AutowireRequiredMethodsPass.php deleted file mode 100644 index 20d3113..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AutowireRequiredMethodsPass.php +++ /dev/null @@ -1,84 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Definition; - -/** - * Looks for definitions with autowiring enabled and registers their corresponding "@required" methods as setters. - * - * @author Nicolas Grekas - */ -class AutowireRequiredMethodsPass extends AbstractRecursivePass -{ - /** - * {@inheritdoc} - */ - protected function processValue($value, $isRoot = false) - { - $value = parent::processValue($value, $isRoot); - - if (!$value instanceof Definition || !$value->isAutowired() || $value->isAbstract() || !$value->getClass()) { - return $value; - } - if (!$reflectionClass = $this->container->getReflectionClass($value->getClass(), false)) { - return $value; - } - - $alreadyCalledMethods = []; - $withers = []; - - foreach ($value->getMethodCalls() as list($method)) { - $alreadyCalledMethods[strtolower($method)] = true; - } - - foreach ($reflectionClass->getMethods() as $reflectionMethod) { - $r = $reflectionMethod; - - if ($r->isConstructor() || isset($alreadyCalledMethods[strtolower($r->name)])) { - continue; - } - - while (true) { - if (false !== $doc = $r->getDocComment()) { - if (false !== stripos($doc, '@required') && preg_match('#(?:^/\*\*|\n\s*+\*)\s*+@required(?:\s|\*/$)#i', $doc)) { - if (preg_match('#(?:^/\*\*|\n\s*+\*)\s*+@return\s++static[\s\*]#i', $doc)) { - $withers[] = [$reflectionMethod->name, [], true]; - } else { - $value->addMethodCall($reflectionMethod->name, []); - } - break; - } - if (false === stripos($doc, '@inheritdoc') || !preg_match('#(?:^/\*\*|\n\s*+\*)\s*+(?:\{@inheritdoc\}|@inheritdoc)(?:\s|\*/$)#i', $doc)) { - break; - } - } - try { - $r = $r->getPrototype(); - } catch (\ReflectionException $e) { - break; // method has no prototype - } - } - } - - if ($withers) { - // Prepend withers to prevent creating circular loops - $setters = $value->getMethodCalls(); - $value->setMethodCalls($withers); - foreach ($setters as $call) { - $value->addMethodCall($call[0], $call[1], $call[2] ?? false); - } - } - - return $value; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckArgumentsValidityPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckArgumentsValidityPass.php deleted file mode 100644 index d289c05..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckArgumentsValidityPass.php +++ /dev/null @@ -1,87 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; - -/** - * Checks if arguments of methods are properly configured. - * - * @author Kévin Dunglas - * @author Nicolas Grekas - */ -class CheckArgumentsValidityPass extends AbstractRecursivePass -{ - private $throwExceptions; - - public function __construct(bool $throwExceptions = true) - { - $this->throwExceptions = $throwExceptions; - } - - /** - * {@inheritdoc} - */ - protected function processValue($value, $isRoot = false) - { - if (!$value instanceof Definition) { - return parent::processValue($value, $isRoot); - } - - $i = 0; - foreach ($value->getArguments() as $k => $v) { - if ($k !== $i++) { - if (!\is_int($k)) { - $msg = sprintf('Invalid constructor argument for service "%s": integer expected but found string "%s". Check your service definition.', $this->currentId, $k); - $value->addError($msg); - if ($this->throwExceptions) { - throw new RuntimeException($msg); - } - - break; - } - - $msg = sprintf('Invalid constructor argument %d for service "%s": argument %d must be defined before. Check your service definition.', 1 + $k, $this->currentId, $i); - $value->addError($msg); - if ($this->throwExceptions) { - throw new RuntimeException($msg); - } - } - } - - foreach ($value->getMethodCalls() as $methodCall) { - $i = 0; - foreach ($methodCall[1] as $k => $v) { - if ($k !== $i++) { - if (!\is_int($k)) { - $msg = sprintf('Invalid argument for method call "%s" of service "%s": integer expected but found string "%s". Check your service definition.', $methodCall[0], $this->currentId, $k); - $value->addError($msg); - if ($this->throwExceptions) { - throw new RuntimeException($msg); - } - - break; - } - - $msg = sprintf('Invalid argument %d for method call "%s" of service "%s": argument %d must be defined before. Check your service definition.', 1 + $k, $methodCall[0], $this->currentId, $i); - $value->addError($msg); - if ($this->throwExceptions) { - throw new RuntimeException($msg); - } - } - } - } - - return null; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckCircularReferencesPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckCircularReferencesPass.php deleted file mode 100644 index 55d911c..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckCircularReferencesPass.php +++ /dev/null @@ -1,78 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException; - -/** - * Checks your services for circular references. - * - * References from method calls are ignored since we might be able to resolve - * these references depending on the order in which services are called. - * - * Circular reference from method calls will only be detected at run-time. - * - * @author Johannes M. Schmitt - */ -class CheckCircularReferencesPass implements CompilerPassInterface -{ - private $currentPath; - private $checkedNodes; - - /** - * Checks the ContainerBuilder object for circular references. - */ - public function process(ContainerBuilder $container) - { - $graph = $container->getCompiler()->getServiceReferenceGraph(); - - $this->checkedNodes = []; - foreach ($graph->getNodes() as $id => $node) { - $this->currentPath = [$id]; - - $this->checkOutEdges($node->getOutEdges()); - } - } - - /** - * Checks for circular references. - * - * @param ServiceReferenceGraphEdge[] $edges An array of Edges - * - * @throws ServiceCircularReferenceException when a circular reference is found - */ - private function checkOutEdges(array $edges) - { - foreach ($edges as $edge) { - $node = $edge->getDestNode(); - $id = $node->getId(); - - if (empty($this->checkedNodes[$id])) { - // Don't check circular references for lazy edges - if (!$node->getValue() || (!$edge->isLazy() && !$edge->isWeak())) { - $searchKey = array_search($id, $this->currentPath); - $this->currentPath[] = $id; - - if (false !== $searchKey) { - throw new ServiceCircularReferenceException($id, \array_slice($this->currentPath, $searchKey)); - } - - $this->checkOutEdges($node->getOutEdges()); - } - - $this->checkedNodes[$id] = true; - array_pop($this->currentPath); - } - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckDefinitionValidityPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckDefinitionValidityPass.php deleted file mode 100644 index bb87f47..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckDefinitionValidityPass.php +++ /dev/null @@ -1,90 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Exception\EnvParameterException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\Loader\FileLoader; - -/** - * This pass validates each definition individually only taking the information - * into account which is contained in the definition itself. - * - * Later passes can rely on the following, and specifically do not need to - * perform these checks themselves: - * - * - non synthetic, non abstract services always have a class set - * - synthetic services are always public - * - * @author Johannes M. Schmitt - */ -class CheckDefinitionValidityPass implements CompilerPassInterface -{ - /** - * Processes the ContainerBuilder to validate the Definition. - * - * @throws RuntimeException When the Definition is invalid - */ - public function process(ContainerBuilder $container) - { - foreach ($container->getDefinitions() as $id => $definition) { - // synthetic service is public - if ($definition->isSynthetic() && !$definition->isPublic()) { - throw new RuntimeException(sprintf('A synthetic service ("%s") must be public.', $id)); - } - - // non-synthetic, non-abstract service has class - if (!$definition->isAbstract() && !$definition->isSynthetic() && !$definition->getClass() && (!$definition->getFactory() || !preg_match(FileLoader::ANONYMOUS_ID_REGEXP, $id))) { - if ($definition->getFactory()) { - throw new RuntimeException(sprintf('Please add the class to service "%s" even if it is constructed by a factory since we might need to add method calls based on compile-time checks.', $id)); - } - if (class_exists($id) || interface_exists($id, false)) { - if (0 === strpos($id, '\\') && 1 < substr_count($id, '\\')) { - throw new RuntimeException(sprintf('The definition for "%s" has no class attribute, and appears to reference a class or interface. Please specify the class attribute explicitly or remove the leading backslash by renaming the service to "%s" to get rid of this error.', $id, substr($id, 1))); - } - - throw new RuntimeException(sprintf('The definition for "%s" has no class attribute, and appears to reference a class or interface in the global namespace. Leaving out the "class" attribute is only allowed for namespaced classes. Please specify the class attribute explicitly to get rid of this error.', $id)); - } - - throw new RuntimeException(sprintf('The definition for "%s" has no class. If you intend to inject this service dynamically at runtime, please mark it as synthetic=true. If this is an abstract definition solely used by child definitions, please add abstract=true, otherwise specify a class to get rid of this error.', $id)); - } - - // tag attribute values must be scalars - foreach ($definition->getTags() as $name => $tags) { - foreach ($tags as $attributes) { - foreach ($attributes as $attribute => $value) { - if (!is_scalar($value) && null !== $value) { - throw new RuntimeException(sprintf('A "tags" attribute must be of a scalar-type for service "%s", tag "%s", attribute "%s".', $id, $name, $attribute)); - } - } - } - } - - if ($definition->isPublic() && !$definition->isPrivate()) { - $resolvedId = $container->resolveEnvPlaceholders($id, null, $usedEnvs); - if (null !== $usedEnvs) { - throw new EnvParameterException([$resolvedId], null, 'A service name ("%s") cannot contain dynamic values.'); - } - } - } - - foreach ($container->getAliases() as $id => $alias) { - if ($alias->isPublic() && !$alias->isPrivate()) { - $resolvedId = $container->resolveEnvPlaceholders($id, null, $usedEnvs); - if (null !== $usedEnvs) { - throw new EnvParameterException([$resolvedId], null, 'An alias name ("%s") cannot contain dynamic values.'); - } - } - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php deleted file mode 100644 index eef7158..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php +++ /dev/null @@ -1,88 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; -use Symfony\Component\DependencyInjection\Reference; - -/** - * Checks that all references are pointing to a valid service. - * - * @author Johannes M. Schmitt - */ -class CheckExceptionOnInvalidReferenceBehaviorPass extends AbstractRecursivePass -{ - private $serviceLocatorContextIds = []; - - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - $this->serviceLocatorContextIds = []; - foreach ($container->findTaggedServiceIds('container.service_locator_context') as $id => $tags) { - $this->serviceLocatorContextIds[$id] = $tags[0]['id']; - $container->getDefinition($id)->clearTag('container.service_locator_context'); - } - - try { - return parent::process($container); - } finally { - $this->serviceLocatorContextIds = []; - } - } - - protected function processValue($value, $isRoot = false) - { - if (!$value instanceof Reference) { - return parent::processValue($value, $isRoot); - } - if (ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE < $value->getInvalidBehavior() || $this->container->has($id = (string) $value)) { - return $value; - } - - $currentId = $this->currentId; - $graph = $this->container->getCompiler()->getServiceReferenceGraph(); - - if (isset($this->serviceLocatorContextIds[$currentId])) { - $currentId = $this->serviceLocatorContextIds[$currentId]; - $locator = $this->container->getDefinition($this->currentId)->getFactory()[0]; - - foreach ($locator->getArgument(0) as $k => $v) { - if ($v->getValues()[0] === $value) { - if ($k !== $id) { - $currentId = $k.'" in the container provided to "'.$currentId; - } - throw new ServiceNotFoundException($id, $currentId); - } - } - } - - if ('.' === $currentId[0] && $graph->hasNode($currentId)) { - foreach ($graph->getNode($currentId)->getInEdges() as $edge) { - if (!$edge->getValue() instanceof Reference || ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE < $edge->getValue()->getInvalidBehavior()) { - continue; - } - $sourceId = $edge->getSourceNode()->getId(); - - if ('.' !== $sourceId[0]) { - $currentId = $sourceId; - break; - } - } - } - - throw new ServiceNotFoundException($id, $currentId); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckReferenceValidityPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckReferenceValidityPass.php deleted file mode 100644 index 8f2a3bd..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckReferenceValidityPass.php +++ /dev/null @@ -1,43 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\Reference; - -/** - * Checks the validity of references. - * - * The following checks are performed by this pass: - * - target definitions are not abstract - * - * @author Johannes M. Schmitt - */ -class CheckReferenceValidityPass extends AbstractRecursivePass -{ - protected function processValue($value, $isRoot = false) - { - if ($isRoot && $value instanceof Definition && ($value->isSynthetic() || $value->isAbstract())) { - return $value; - } - if ($value instanceof Reference && $this->container->hasDefinition((string) $value)) { - $targetDefinition = $this->container->getDefinition((string) $value); - - if ($targetDefinition->isAbstract()) { - throw new RuntimeException(sprintf('The definition "%s" has a reference to an abstract definition "%s". Abstract definitions cannot be the target of references.', $this->currentId, $value)); - } - } - - return parent::processValue($value, $isRoot); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckTypeDeclarationsPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckTypeDeclarationsPass.php deleted file mode 100644 index 0743cbb..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckTypeDeclarationsPass.php +++ /dev/null @@ -1,245 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Argument\IteratorArgument; -use Symfony\Component\DependencyInjection\Container; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\EnvNotFoundException; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\InvalidParameterTypeException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\ExpressionLanguage; -use Symfony\Component\DependencyInjection\Parameter; -use Symfony\Component\DependencyInjection\ParameterBag\EnvPlaceholderParameterBag; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\DependencyInjection\ServiceLocator; -use Symfony\Component\ExpressionLanguage\Expression; - -/** - * Checks whether injected parameters are compatible with type declarations. - * - * This pass should be run after all optimization passes. - * - * It can be added either: - * * before removing passes to check all services even if they are not currently used, - * * after removing passes to check only services are used in the app. - * - * @author Nicolas Grekas - * @author Julien Maulny - */ -final class CheckTypeDeclarationsPass extends AbstractRecursivePass -{ - private const SCALAR_TYPES = ['int', 'float', 'bool', 'string']; - - private $autoload; - private $skippedIds; - - private $expressionLanguage; - - /** - * @param bool $autoload Whether services who's class in not loaded should be checked or not. - * Defaults to false to save loading code during compilation. - * @param array $skippedIds An array indexed by the service ids to skip - */ - public function __construct(bool $autoload = false, array $skippedIds = []) - { - $this->autoload = $autoload; - $this->skippedIds = $skippedIds; - } - - /** - * {@inheritdoc} - */ - protected function processValue($value, $isRoot = false) - { - if (isset($this->skippedIds[$this->currentId])) { - return $value; - } - - if (!$value instanceof Definition || $value->hasErrors()) { - return parent::processValue($value, $isRoot); - } - - if (!$this->autoload && !class_exists($class = $value->getClass(), false) && !interface_exists($class, false)) { - return parent::processValue($value, $isRoot); - } - - if (ServiceLocator::class === $value->getClass()) { - return parent::processValue($value, $isRoot); - } - - if ($constructor = $this->getConstructor($value, false)) { - $this->checkTypeDeclarations($value, $constructor, $value->getArguments()); - } - - foreach ($value->getMethodCalls() as $methodCall) { - try { - $reflectionMethod = $this->getReflectionMethod($value, $methodCall[0]); - } catch (RuntimeException $e) { - if ($value->getFactory()) { - continue; - } - - throw $e; - } - - $this->checkTypeDeclarations($value, $reflectionMethod, $methodCall[1]); - } - - return parent::processValue($value, $isRoot); - } - - /** - * @throws InvalidArgumentException When not enough parameters are defined for the method - */ - private function checkTypeDeclarations(Definition $checkedDefinition, \ReflectionFunctionAbstract $reflectionFunction, array $values): void - { - $numberOfRequiredParameters = $reflectionFunction->getNumberOfRequiredParameters(); - - if (\count($values) < $numberOfRequiredParameters) { - throw new InvalidArgumentException(sprintf('Invalid definition for service "%s": "%s::%s()" requires %d arguments, %d passed.', $this->currentId, $reflectionFunction->class, $reflectionFunction->name, $numberOfRequiredParameters, \count($values))); - } - - $reflectionParameters = $reflectionFunction->getParameters(); - $checksCount = min($reflectionFunction->getNumberOfParameters(), \count($values)); - - $envPlaceholderUniquePrefix = $this->container->getParameterBag() instanceof EnvPlaceholderParameterBag ? $this->container->getParameterBag()->getEnvPlaceholderUniquePrefix() : null; - - for ($i = 0; $i < $checksCount; ++$i) { - if (!$reflectionParameters[$i]->hasType() || $reflectionParameters[$i]->isVariadic()) { - continue; - } - - $this->checkType($checkedDefinition, $values[$i], $reflectionParameters[$i], $envPlaceholderUniquePrefix); - } - - if ($reflectionFunction->isVariadic() && ($lastParameter = end($reflectionParameters))->hasType()) { - $variadicParameters = \array_slice($values, $lastParameter->getPosition()); - - foreach ($variadicParameters as $variadicParameter) { - $this->checkType($checkedDefinition, $variadicParameter, $lastParameter, $envPlaceholderUniquePrefix); - } - } - } - - /** - * @throws InvalidParameterTypeException When a parameter is not compatible with the declared type - */ - private function checkType(Definition $checkedDefinition, $value, \ReflectionParameter $parameter, ?string $envPlaceholderUniquePrefix): void - { - $type = $parameter->getType()->getName(); - - if ($value instanceof Reference) { - if (!$this->container->has($value = (string) $value)) { - return; - } - - if ('service_container' === $value && is_a($type, Container::class, true)) { - return; - } - - $value = $this->container->findDefinition($value); - } - - if ('self' === $type) { - $type = $parameter->getDeclaringClass()->getName(); - } - - if ('static' === $type) { - $type = $checkedDefinition->getClass(); - } - - if ($value instanceof Definition) { - $class = $value->getClass(); - - if (!$class || (!$this->autoload && !class_exists($class, false) && !interface_exists($class, false))) { - return; - } - - if ('callable' === $type && method_exists($class, '__invoke')) { - return; - } - - if ('iterable' === $type && is_subclass_of($class, 'Traversable')) { - return; - } - - if ('object' === $type) { - return; - } - - if (is_a($class, $type, true)) { - return; - } - - throw new InvalidParameterTypeException($this->currentId, $class, $parameter); - } - - if ($value instanceof Parameter) { - $value = $this->container->getParameter($value); - } elseif ($value instanceof Expression) { - $value = $this->getExpressionLanguage()->evaluate($value, ['container' => $this->container]); - } elseif (\is_string($value)) { - if ('%' === ($value[0] ?? '') && preg_match('/^%([^%]+)%$/', $value, $match)) { - // Only array parameters are not inlined when dumped. - $value = []; - } elseif ($envPlaceholderUniquePrefix && false !== strpos($value, 'env_')) { - // If the value is an env placeholder that is either mixed with a string or with another env placeholder, then its resolved value will always be a string, so we don't need to resolve it. - // We don't need to change the value because it is already a string. - if ('' === preg_replace('/'.$envPlaceholderUniquePrefix.'_\w+_[a-f0-9]{32}/U', '', $value, -1, $c) && 1 === $c) { - try { - $value = $this->container->resolveEnvPlaceholders($value, true); - } catch (EnvNotFoundException | RuntimeException $e) { - // If an env placeholder cannot be resolved, we skip the validation. - return; - } - } - } - } - - if (null === $value && $parameter->allowsNull()) { - return; - } - - if (\in_array($type, self::SCALAR_TYPES, true) && is_scalar($value)) { - return; - } - - if ('callable' === $type && \is_array($value) && isset($value[0]) && ($value[0] instanceof Reference || $value[0] instanceof Definition)) { - return; - } - - if ('iterable' === $type && (\is_array($value) || $value instanceof \Traversable || $value instanceof IteratorArgument)) { - return; - } - - if ('Traversable' === $type && ($value instanceof \Traversable || $value instanceof IteratorArgument)) { - return; - } - - $checkFunction = sprintf('is_%s', $parameter->getType()->getName()); - - if (!$parameter->getType()->isBuiltin() || !$checkFunction($value)) { - throw new InvalidParameterTypeException($this->currentId, \is_object($value) ? \get_class($value) : \gettype($value), $parameter); - } - } - - private function getExpressionLanguage(): ExpressionLanguage - { - if (null === $this->expressionLanguage) { - $this->expressionLanguage = new ExpressionLanguage(null, $this->container->getExpressionLanguageProviders()); - } - - return $this->expressionLanguage; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/Compiler.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/Compiler.php deleted file mode 100644 index 14dedf0..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/Compiler.php +++ /dev/null @@ -1,119 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Exception\EnvParameterException; - -/** - * This class is used to remove circular dependencies between individual passes. - * - * @author Johannes M. Schmitt - */ -class Compiler -{ - private $passConfig; - private $log = []; - private $serviceReferenceGraph; - - public function __construct() - { - $this->passConfig = new PassConfig(); - $this->serviceReferenceGraph = new ServiceReferenceGraph(); - } - - /** - * Returns the PassConfig. - * - * @return PassConfig The PassConfig instance - */ - public function getPassConfig() - { - return $this->passConfig; - } - - /** - * Returns the ServiceReferenceGraph. - * - * @return ServiceReferenceGraph The ServiceReferenceGraph instance - */ - public function getServiceReferenceGraph() - { - return $this->serviceReferenceGraph; - } - - /** - * Adds a pass to the PassConfig. - * - * @param string $type The type of the pass - * @param int $priority Used to sort the passes - */ - public function addPass(CompilerPassInterface $pass, $type = PassConfig::TYPE_BEFORE_OPTIMIZATION, int $priority = 0) - { - $this->passConfig->addPass($pass, $type, $priority); - } - - /** - * @final - */ - public function log(CompilerPassInterface $pass, string $message) - { - if (false !== strpos($message, "\n")) { - $message = str_replace("\n", "\n".\get_class($pass).': ', trim($message)); - } - - $this->log[] = \get_class($pass).': '.$message; - } - - /** - * Returns the log. - * - * @return array Log array - */ - public function getLog() - { - return $this->log; - } - - /** - * Run the Compiler and process all Passes. - */ - public function compile(ContainerBuilder $container) - { - try { - foreach ($this->passConfig->getPasses() as $pass) { - $pass->process($container); - } - } catch (\Exception $e) { - $usedEnvs = []; - $prev = $e; - - do { - $msg = $prev->getMessage(); - - if ($msg !== $resolvedMsg = $container->resolveEnvPlaceholders($msg, null, $usedEnvs)) { - $r = new \ReflectionProperty($prev, 'message'); - $r->setAccessible(true); - $r->setValue($prev, $resolvedMsg); - } - } while ($prev = $prev->getPrevious()); - - if ($usedEnvs) { - $e = new EnvParameterException($usedEnvs, $e); - } - - throw $e; - } finally { - $this->getServiceReferenceGraph()->clear(); - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CompilerPassInterface.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CompilerPassInterface.php deleted file mode 100644 index 3085006..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CompilerPassInterface.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerBuilder; - -/** - * Interface that must be implemented by compilation passes. - * - * @author Johannes M. Schmitt - */ -interface CompilerPassInterface -{ - /** - * You can modify the container here before it is dumped to PHP code. - */ - public function process(ContainerBuilder $container); -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/DecoratorServicePass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/DecoratorServicePass.php deleted file mode 100644 index da909ae..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/DecoratorServicePass.php +++ /dev/null @@ -1,89 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Alias; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; -use Symfony\Component\DependencyInjection\Reference; - -/** - * Overwrites a service but keeps the overridden one. - * - * @author Christophe Coevoet - * @author Fabien Potencier - * @author Diego Saint Esteben - */ -class DecoratorServicePass implements CompilerPassInterface -{ - public function process(ContainerBuilder $container) - { - $definitions = new \SplPriorityQueue(); - $order = PHP_INT_MAX; - - foreach ($container->getDefinitions() as $id => $definition) { - if (!$decorated = $definition->getDecoratedService()) { - continue; - } - $definitions->insert([$id, $definition], [$decorated[2], --$order]); - } - $decoratingDefinitions = []; - - foreach ($definitions as list($id, $definition)) { - $decoratedService = $definition->getDecoratedService(); - list($inner, $renamedId) = $decoratedService; - $invalidBehavior = $decoratedService[3] ?? ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - - $definition->setDecoratedService(null); - - if (!$renamedId) { - $renamedId = $id.'.inner'; - } - $definition->innerServiceId = $renamedId; - $definition->decorationOnInvalid = $invalidBehavior; - - // we create a new alias/service for the service we are replacing - // to be able to reference it in the new one - if ($container->hasAlias($inner)) { - $alias = $container->getAlias($inner); - $public = $alias->isPublic(); - $private = $alias->isPrivate(); - $container->setAlias($renamedId, new Alias((string) $alias, false)); - } elseif ($container->hasDefinition($inner)) { - $decoratedDefinition = $container->getDefinition($inner); - $public = $decoratedDefinition->isPublic(); - $private = $decoratedDefinition->isPrivate(); - $decoratedDefinition->setPublic(false); - $container->setDefinition($renamedId, $decoratedDefinition); - $decoratingDefinitions[$inner] = $decoratedDefinition; - } elseif (ContainerInterface::IGNORE_ON_INVALID_REFERENCE === $invalidBehavior) { - $container->removeDefinition($id); - continue; - } elseif (ContainerInterface::NULL_ON_INVALID_REFERENCE === $invalidBehavior) { - $public = $definition->isPublic(); - $private = $definition->isPrivate(); - } else { - throw new ServiceNotFoundException($inner, $id); - } - - if (isset($decoratingDefinitions[$inner])) { - $decoratingDefinition = $decoratingDefinitions[$inner]; - $definition->setTags(array_merge($decoratingDefinition->getTags(), $definition->getTags())); - $decoratingDefinition->setTags([]); - $decoratingDefinitions[$inner] = $definition; - } - - $container->setAlias($inner, $id)->setPublic($public)->setPrivate($private); - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/DefinitionErrorExceptionPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/DefinitionErrorExceptionPass.php deleted file mode 100644 index 5ee0ff1..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/DefinitionErrorExceptionPass.php +++ /dev/null @@ -1,56 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\Reference; - -/** - * Throws an exception for any Definitions that have errors and still exist. - * - * @author Ryan Weaver - */ -class DefinitionErrorExceptionPass extends AbstractRecursivePass -{ - /** - * {@inheritdoc} - */ - protected function processValue($value, $isRoot = false) - { - if (!$value instanceof Definition || !$value->hasErrors()) { - return parent::processValue($value, $isRoot); - } - - if ($isRoot && !$value->isPublic()) { - $graph = $this->container->getCompiler()->getServiceReferenceGraph(); - $runtimeException = false; - foreach ($graph->getNode($this->currentId)->getInEdges() as $edge) { - if (!$edge->getValue() instanceof Reference || ContainerInterface::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE !== $edge->getValue()->getInvalidBehavior()) { - $runtimeException = false; - break; - } - $runtimeException = true; - } - if ($runtimeException) { - return parent::processValue($value, $isRoot); - } - } - - // only show the first error so the user can focus on it - $errors = $value->getErrors(); - $message = reset($errors); - - throw new RuntimeException($message); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ExtensionCompilerPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ExtensionCompilerPass.php deleted file mode 100644 index 27e5048..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ExtensionCompilerPass.php +++ /dev/null @@ -1,37 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerBuilder; - -/** - * A pass to automatically process extensions if they implement - * CompilerPassInterface. - * - * @author Wouter J - */ -class ExtensionCompilerPass implements CompilerPassInterface -{ - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - foreach ($container->getExtensions() as $extension) { - if (!$extension instanceof CompilerPassInterface) { - continue; - } - - $extension->process($container); - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/InlineServiceDefinitionsPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/InlineServiceDefinitionsPass.php deleted file mode 100644 index ac3b4fe..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/InlineServiceDefinitionsPass.php +++ /dev/null @@ -1,231 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Argument\ArgumentInterface; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException; -use Symfony\Component\DependencyInjection\Reference; - -/** - * Inline service definitions where this is possible. - * - * @author Johannes M. Schmitt - */ -class InlineServiceDefinitionsPass extends AbstractRecursivePass implements RepeatablePassInterface -{ - private $analyzingPass; - private $repeatedPass; - private $cloningIds = []; - private $connectedIds = []; - private $notInlinedIds = []; - private $inlinedIds = []; - private $graph; - - public function __construct(AnalyzeServiceReferencesPass $analyzingPass = null) - { - $this->analyzingPass = $analyzingPass; - } - - /** - * {@inheritdoc} - */ - public function setRepeatedPass(RepeatedPass $repeatedPass) - { - @trigger_error(sprintf('The "%s()" method is deprecated since Symfony 4.2.', __METHOD__), E_USER_DEPRECATED); - $this->repeatedPass = $repeatedPass; - } - - public function process(ContainerBuilder $container) - { - $this->container = $container; - if ($this->analyzingPass) { - $analyzedContainer = new ContainerBuilder(); - $analyzedContainer->setAliases($container->getAliases()); - $analyzedContainer->setDefinitions($container->getDefinitions()); - foreach ($container->getExpressionLanguageProviders() as $provider) { - $analyzedContainer->addExpressionLanguageProvider($provider); - } - } else { - $analyzedContainer = $container; - } - try { - $remainingInlinedIds = []; - $this->connectedIds = $this->notInlinedIds = $container->getDefinitions(); - do { - if ($this->analyzingPass) { - $analyzedContainer->setDefinitions(array_intersect_key($analyzedContainer->getDefinitions(), $this->connectedIds)); - $this->analyzingPass->process($analyzedContainer); - } - $this->graph = $analyzedContainer->getCompiler()->getServiceReferenceGraph(); - $notInlinedIds = $this->notInlinedIds; - $this->connectedIds = $this->notInlinedIds = $this->inlinedIds = []; - - foreach ($analyzedContainer->getDefinitions() as $id => $definition) { - if (!$this->graph->hasNode($id)) { - continue; - } - foreach ($this->graph->getNode($id)->getOutEdges() as $edge) { - if (isset($notInlinedIds[$edge->getSourceNode()->getId()])) { - $this->currentId = $id; - $this->processValue($definition, true); - break; - } - } - } - - foreach ($this->inlinedIds as $id => $isPublicOrNotShared) { - if ($isPublicOrNotShared) { - $remainingInlinedIds[$id] = $id; - } else { - $container->removeDefinition($id); - $analyzedContainer->removeDefinition($id); - } - } - } while ($this->inlinedIds && $this->analyzingPass); - - if ($this->inlinedIds && $this->repeatedPass) { - $this->repeatedPass->setRepeat(); - } - - foreach ($remainingInlinedIds as $id) { - $definition = $container->getDefinition($id); - - if (!$definition->isShared() && !$definition->isPublic()) { - $container->removeDefinition($id); - } - } - } finally { - $this->container = null; - $this->connectedIds = $this->notInlinedIds = $this->inlinedIds = []; - $this->graph = null; - } - } - - /** - * {@inheritdoc} - */ - protected function processValue($value, $isRoot = false) - { - if ($value instanceof ArgumentInterface) { - // Reference found in ArgumentInterface::getValues() are not inlineable - return $value; - } - - if ($value instanceof Definition && $this->cloningIds) { - if ($value->isShared()) { - return $value; - } - $value = clone $value; - } - - if (!$value instanceof Reference) { - return parent::processValue($value, $isRoot); - } elseif (!$this->container->hasDefinition($id = (string) $value)) { - return $value; - } - - $definition = $this->container->getDefinition($id); - - if (!$this->isInlineableDefinition($id, $definition)) { - return $value; - } - - $this->container->log($this, sprintf('Inlined service "%s" to "%s".', $id, $this->currentId)); - $this->inlinedIds[$id] = $definition->isPublic() || !$definition->isShared(); - $this->notInlinedIds[$this->currentId] = true; - - if ($definition->isShared()) { - return $definition; - } - - if (isset($this->cloningIds[$id])) { - $ids = array_keys($this->cloningIds); - $ids[] = $id; - - throw new ServiceCircularReferenceException($id, \array_slice($ids, array_search($id, $ids))); - } - - $this->cloningIds[$id] = true; - try { - return $this->processValue($definition); - } finally { - unset($this->cloningIds[$id]); - } - } - - /** - * Checks if the definition is inlineable. - */ - private function isInlineableDefinition(string $id, Definition $definition): bool - { - if ($definition->hasErrors() || $definition->isDeprecated() || $definition->isLazy() || $definition->isSynthetic()) { - return false; - } - - if (!$definition->isShared()) { - if (!$this->graph->hasNode($id)) { - return true; - } - - foreach ($this->graph->getNode($id)->getInEdges() as $edge) { - $srcId = $edge->getSourceNode()->getId(); - $this->connectedIds[$srcId] = true; - if ($edge->isWeak() || $edge->isLazy()) { - return false; - } - } - - return true; - } - - if ($definition->isPublic()) { - return false; - } - - if (!$this->graph->hasNode($id)) { - return true; - } - - if ($this->currentId == $id) { - return false; - } - $this->connectedIds[$id] = true; - - $srcIds = []; - $srcCount = 0; - $isReferencedByConstructor = false; - foreach ($this->graph->getNode($id)->getInEdges() as $edge) { - $isReferencedByConstructor = $isReferencedByConstructor || $edge->isReferencedByConstructor(); - $srcId = $edge->getSourceNode()->getId(); - $this->connectedIds[$srcId] = true; - if ($edge->isWeak() || $edge->isLazy()) { - return false; - } - $srcIds[$srcId] = true; - ++$srcCount; - } - - if (1 !== \count($srcIds)) { - $this->notInlinedIds[$id] = true; - - return false; - } - - if ($srcCount > 1 && \is_array($factory = $definition->getFactory()) && ($factory[0] instanceof Reference || $factory[0] instanceof Definition)) { - return false; - } - - return $this->container->getDefinition($srcId)->isShared(); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/MergeExtensionConfigurationPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/MergeExtensionConfigurationPass.php deleted file mode 100644 index 264dd80..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/MergeExtensionConfigurationPass.php +++ /dev/null @@ -1,220 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\Config\Definition\BaseNode; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Exception\LogicException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\Extension\ConfigurationExtensionInterface; -use Symfony\Component\DependencyInjection\Extension\Extension; -use Symfony\Component\DependencyInjection\Extension\ExtensionInterface; -use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface; -use Symfony\Component\DependencyInjection\ParameterBag\EnvPlaceholderParameterBag; -use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; - -/** - * Merges extension configs into the container builder. - * - * @author Fabien Potencier - */ -class MergeExtensionConfigurationPass implements CompilerPassInterface -{ - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - $parameters = $container->getParameterBag()->all(); - $definitions = $container->getDefinitions(); - $aliases = $container->getAliases(); - $exprLangProviders = $container->getExpressionLanguageProviders(); - $configAvailable = class_exists(BaseNode::class); - - foreach ($container->getExtensions() as $extension) { - if ($extension instanceof PrependExtensionInterface) { - $extension->prepend($container); - } - } - - foreach ($container->getExtensions() as $name => $extension) { - if (!$config = $container->getExtensionConfig($name)) { - // this extension was not called - continue; - } - $resolvingBag = $container->getParameterBag(); - if ($resolvingBag instanceof EnvPlaceholderParameterBag && $extension instanceof Extension) { - // create a dedicated bag so that we can track env vars per-extension - $resolvingBag = new MergeExtensionConfigurationParameterBag($resolvingBag); - if ($configAvailable) { - BaseNode::setPlaceholderUniquePrefix($resolvingBag->getEnvPlaceholderUniquePrefix()); - } - } - $config = $resolvingBag->resolveValue($config); - - try { - $tmpContainer = new MergeExtensionConfigurationContainerBuilder($extension, $resolvingBag); - $tmpContainer->setResourceTracking($container->isTrackingResources()); - $tmpContainer->addObjectResource($extension); - if ($extension instanceof ConfigurationExtensionInterface && null !== $configuration = $extension->getConfiguration($config, $tmpContainer)) { - $tmpContainer->addObjectResource($configuration); - } - - foreach ($exprLangProviders as $provider) { - $tmpContainer->addExpressionLanguageProvider($provider); - } - - $extension->load($config, $tmpContainer); - } catch (\Exception $e) { - if ($resolvingBag instanceof MergeExtensionConfigurationParameterBag) { - $container->getParameterBag()->mergeEnvPlaceholders($resolvingBag); - } - - throw $e; - } finally { - if ($configAvailable) { - BaseNode::resetPlaceholders(); - } - } - - if ($resolvingBag instanceof MergeExtensionConfigurationParameterBag) { - // don't keep track of env vars that are *overridden* when configs are merged - $resolvingBag->freezeAfterProcessing($extension, $tmpContainer); - } - - $container->merge($tmpContainer); - $container->getParameterBag()->add($parameters); - } - - $container->addDefinitions($definitions); - $container->addAliases($aliases); - } -} - -/** - * @internal - */ -class MergeExtensionConfigurationParameterBag extends EnvPlaceholderParameterBag -{ - private $processedEnvPlaceholders; - - public function __construct(parent $parameterBag) - { - parent::__construct($parameterBag->all()); - $this->mergeEnvPlaceholders($parameterBag); - } - - public function freezeAfterProcessing(Extension $extension, ContainerBuilder $container) - { - if (!$config = $extension->getProcessedConfigs()) { - // Extension::processConfiguration() wasn't called, we cannot know how configs were merged - return; - } - $this->processedEnvPlaceholders = []; - - // serialize config and container to catch env vars nested in object graphs - $config = serialize($config).serialize($container->getDefinitions()).serialize($container->getAliases()).serialize($container->getParameterBag()->all()); - - foreach (parent::getEnvPlaceholders() as $env => $placeholders) { - foreach ($placeholders as $placeholder) { - if (false !== stripos($config, $placeholder)) { - $this->processedEnvPlaceholders[$env] = $placeholders; - break; - } - } - } - } - - /** - * {@inheritdoc} - */ - public function getEnvPlaceholders(): array - { - return null !== $this->processedEnvPlaceholders ? $this->processedEnvPlaceholders : parent::getEnvPlaceholders(); - } - - public function getUnusedEnvPlaceholders(): array - { - return null === $this->processedEnvPlaceholders ? [] : array_diff_key(parent::getEnvPlaceholders(), $this->processedEnvPlaceholders); - } -} - -/** - * A container builder preventing using methods that wouldn't have any effect from extensions. - * - * @internal - */ -class MergeExtensionConfigurationContainerBuilder extends ContainerBuilder -{ - private $extensionClass; - - public function __construct(ExtensionInterface $extension, ParameterBagInterface $parameterBag = null) - { - parent::__construct($parameterBag); - - $this->extensionClass = \get_class($extension); - } - - /** - * {@inheritdoc} - */ - public function addCompilerPass(CompilerPassInterface $pass, $type = PassConfig::TYPE_BEFORE_OPTIMIZATION, int $priority = 0): self - { - throw new LogicException(sprintf('You cannot add compiler pass "%s" from extension "%s". Compiler passes must be registered before the container is compiled.', \get_class($pass), $this->extensionClass)); - } - - /** - * {@inheritdoc} - */ - public function registerExtension(ExtensionInterface $extension) - { - throw new LogicException(sprintf('You cannot register extension "%s" from "%s". Extensions must be registered before the container is compiled.', \get_class($extension), $this->extensionClass)); - } - - /** - * {@inheritdoc} - */ - public function compile(bool $resolveEnvPlaceholders = false) - { - throw new LogicException(sprintf('Cannot compile the container in extension "%s".', $this->extensionClass)); - } - - /** - * {@inheritdoc} - */ - public function resolveEnvPlaceholders($value, $format = null, array &$usedEnvs = null) - { - if (true !== $format || !\is_string($value)) { - return parent::resolveEnvPlaceholders($value, $format, $usedEnvs); - } - - $bag = $this->getParameterBag(); - $value = $bag->resolveValue($value); - - if (!$bag instanceof EnvPlaceholderParameterBag) { - return parent::resolveEnvPlaceholders($value, $format, $usedEnvs); - } - - foreach ($bag->getEnvPlaceholders() as $env => $placeholders) { - if (false === strpos($env, ':')) { - continue; - } - foreach ($placeholders as $placeholder) { - if (false !== stripos($value, $placeholder)) { - throw new RuntimeException(sprintf('Using a cast in "env(%s)" is incompatible with resolution at compile time in "%s". The logic in the extension should be moved to a compiler pass, or an env parameter with no cast should be used instead.', $env, $this->extensionClass)); - } - } - } - - return parent::resolveEnvPlaceholders($value, $format, $usedEnvs); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/PassConfig.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/PassConfig.php deleted file mode 100644 index 8cc328e..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/PassConfig.php +++ /dev/null @@ -1,269 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; - -/** - * Compiler Pass Configuration. - * - * This class has a default configuration embedded. - * - * @author Johannes M. Schmitt - */ -class PassConfig -{ - const TYPE_AFTER_REMOVING = 'afterRemoving'; - const TYPE_BEFORE_OPTIMIZATION = 'beforeOptimization'; - const TYPE_BEFORE_REMOVING = 'beforeRemoving'; - const TYPE_OPTIMIZE = 'optimization'; - const TYPE_REMOVE = 'removing'; - - private $mergePass; - private $afterRemovingPasses = []; - private $beforeOptimizationPasses = []; - private $beforeRemovingPasses = []; - private $optimizationPasses; - private $removingPasses; - - public function __construct() - { - $this->mergePass = new MergeExtensionConfigurationPass(); - - $this->beforeOptimizationPasses = [ - 100 => [ - new ResolveClassPass(), - new ResolveInstanceofConditionalsPass(), - new RegisterEnvVarProcessorsPass(), - ], - -1000 => [new ExtensionCompilerPass()], - ]; - - $this->optimizationPasses = [[ - new ValidateEnvPlaceholdersPass(), - new ResolveChildDefinitionsPass(), - new RegisterServiceSubscribersPass(), - new ResolveParameterPlaceHoldersPass(false), - new ResolveFactoryClassPass(), - new ResolveNamedArgumentsPass(), - new AutowireRequiredMethodsPass(), - new ResolveBindingsPass(), - new ServiceLocatorTagPass(), - new DecoratorServicePass(), - new CheckDefinitionValidityPass(), - new AutowirePass(false), - new ResolveTaggedIteratorArgumentPass(), - new ResolveServiceSubscribersPass(), - new ResolveReferencesToAliasesPass(), - new ResolveInvalidReferencesPass(), - new AnalyzeServiceReferencesPass(true), - new CheckCircularReferencesPass(), - new CheckReferenceValidityPass(), - new CheckArgumentsValidityPass(false), - ]]; - - $this->beforeRemovingPasses = [ - -100 => [ - new ResolvePrivatesPass(), - ], - ]; - - $this->removingPasses = [[ - new RemovePrivateAliasesPass(), - new ReplaceAliasByActualDefinitionPass(), - new RemoveAbstractDefinitionsPass(), - new RemoveUnusedDefinitionsPass(), - new InlineServiceDefinitionsPass(new AnalyzeServiceReferencesPass()), - new AnalyzeServiceReferencesPass(), - new DefinitionErrorExceptionPass(), - ]]; - - $this->afterRemovingPasses = [[ - new CheckExceptionOnInvalidReferenceBehaviorPass(), - new ResolveHotPathPass(), - ]]; - } - - /** - * Returns all passes in order to be processed. - * - * @return CompilerPassInterface[] - */ - public function getPasses() - { - return array_merge( - [$this->mergePass], - $this->getBeforeOptimizationPasses(), - $this->getOptimizationPasses(), - $this->getBeforeRemovingPasses(), - $this->getRemovingPasses(), - $this->getAfterRemovingPasses() - ); - } - - /** - * Adds a pass. - * - * @param string $type The pass type - * @param int $priority Used to sort the passes - * - * @throws InvalidArgumentException when a pass type doesn't exist - */ - public function addPass(CompilerPassInterface $pass, $type = self::TYPE_BEFORE_OPTIMIZATION, int $priority = 0) - { - $property = $type.'Passes'; - if (!isset($this->$property)) { - throw new InvalidArgumentException(sprintf('Invalid type "%s".', $type)); - } - - $passes = &$this->$property; - - if (!isset($passes[$priority])) { - $passes[$priority] = []; - } - $passes[$priority][] = $pass; - } - - /** - * Gets all passes for the AfterRemoving pass. - * - * @return CompilerPassInterface[] - */ - public function getAfterRemovingPasses() - { - return $this->sortPasses($this->afterRemovingPasses); - } - - /** - * Gets all passes for the BeforeOptimization pass. - * - * @return CompilerPassInterface[] - */ - public function getBeforeOptimizationPasses() - { - return $this->sortPasses($this->beforeOptimizationPasses); - } - - /** - * Gets all passes for the BeforeRemoving pass. - * - * @return CompilerPassInterface[] - */ - public function getBeforeRemovingPasses() - { - return $this->sortPasses($this->beforeRemovingPasses); - } - - /** - * Gets all passes for the Optimization pass. - * - * @return CompilerPassInterface[] - */ - public function getOptimizationPasses() - { - return $this->sortPasses($this->optimizationPasses); - } - - /** - * Gets all passes for the Removing pass. - * - * @return CompilerPassInterface[] - */ - public function getRemovingPasses() - { - return $this->sortPasses($this->removingPasses); - } - - /** - * Gets the Merge pass. - * - * @return CompilerPassInterface - */ - public function getMergePass() - { - return $this->mergePass; - } - - public function setMergePass(CompilerPassInterface $pass) - { - $this->mergePass = $pass; - } - - /** - * Sets the AfterRemoving passes. - * - * @param CompilerPassInterface[] $passes - */ - public function setAfterRemovingPasses(array $passes) - { - $this->afterRemovingPasses = [$passes]; - } - - /** - * Sets the BeforeOptimization passes. - * - * @param CompilerPassInterface[] $passes - */ - public function setBeforeOptimizationPasses(array $passes) - { - $this->beforeOptimizationPasses = [$passes]; - } - - /** - * Sets the BeforeRemoving passes. - * - * @param CompilerPassInterface[] $passes - */ - public function setBeforeRemovingPasses(array $passes) - { - $this->beforeRemovingPasses = [$passes]; - } - - /** - * Sets the Optimization passes. - * - * @param CompilerPassInterface[] $passes - */ - public function setOptimizationPasses(array $passes) - { - $this->optimizationPasses = [$passes]; - } - - /** - * Sets the Removing passes. - * - * @param CompilerPassInterface[] $passes - */ - public function setRemovingPasses(array $passes) - { - $this->removingPasses = [$passes]; - } - - /** - * Sort passes by priority. - * - * @param array $passes CompilerPassInterface instances with their priority as key - * - * @return CompilerPassInterface[] - */ - private function sortPasses(array $passes): array - { - if (0 === \count($passes)) { - return []; - } - - krsort($passes); - - // Flatten the array - return array_merge(...$passes); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/PriorityTaggedServiceTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/PriorityTaggedServiceTrait.php deleted file mode 100644 index 9b3760b..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/PriorityTaggedServiceTrait.php +++ /dev/null @@ -1,138 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\DependencyInjection\TypedReference; - -/** - * Trait that allows a generic method to find and sort service by priority option in the tag. - * - * @author Iltar van der Berg - */ -trait PriorityTaggedServiceTrait -{ - /** - * Finds all services with the given tag name and order them by their priority. - * - * The order of additions must be respected for services having the same priority, - * and knowing that the \SplPriorityQueue class does not respect the FIFO method, - * we should not use that class. - * - * @see https://bugs.php.net/53710 - * @see https://bugs.php.net/60926 - * - * @param string|TaggedIteratorArgument $tagName - * - * @return Reference[] - */ - private function findAndSortTaggedServices($tagName, ContainerBuilder $container): array - { - $indexAttribute = $defaultIndexMethod = $needsIndexes = $defaultPriorityMethod = null; - - if ($tagName instanceof TaggedIteratorArgument) { - $indexAttribute = $tagName->getIndexAttribute(); - $defaultIndexMethod = $tagName->getDefaultIndexMethod(); - $needsIndexes = $tagName->needsIndexes(); - $defaultPriorityMethod = $tagName->getDefaultPriorityMethod(); - $tagName = $tagName->getTag(); - } - - $services = []; - - foreach ($container->findTaggedServiceIds($tagName, true) as $serviceId => $attributes) { - $class = $r = null; - $priority = 0; - if (isset($attributes[0]['priority'])) { - $priority = $attributes[0]['priority']; - } elseif ($defaultPriorityMethod) { - $class = $container->getDefinition($serviceId)->getClass(); - $class = $container->getParameterBag()->resolveValue($class) ?: null; - - if (($r = $container->getReflectionClass($class)) && $r->hasMethod($defaultPriorityMethod)) { - if (!($rm = $r->getMethod($defaultPriorityMethod))->isStatic()) { - throw new InvalidArgumentException(sprintf('Method "%s::%s()" should be static: tag "%s" on service "%s".', $class, $defaultPriorityMethod, $tagName, $serviceId)); - } - - if (!$rm->isPublic()) { - throw new InvalidArgumentException(sprintf('Method "%s::%s()" should be public: tag "%s" on service "%s".', $class, $defaultPriorityMethod, $tagName, $serviceId)); - } - - $priority = $rm->invoke(null); - - if (!\is_int($priority)) { - throw new InvalidArgumentException(sprintf('Method "%s::%s()" should return an integer, got %s: tag "%s" on service "%s".', $class, $defaultPriorityMethod, \gettype($priority), $tagName, $serviceId)); - } - } - } - - if (null === $indexAttribute && !$needsIndexes) { - $services[$priority][] = new Reference($serviceId); - - continue; - } - - if (!$class) { - $class = $container->getDefinition($serviceId)->getClass(); - $class = $container->getParameterBag()->resolveValue($class) ?: null; - } - - if (null !== $indexAttribute && isset($attributes[0][$indexAttribute])) { - $services[$priority][$attributes[0][$indexAttribute]] = new TypedReference($serviceId, $class, ContainerBuilder::EXCEPTION_ON_INVALID_REFERENCE, $attributes[0][$indexAttribute]); - - continue; - } - - if (!$r && !$r = $container->getReflectionClass($class)) { - throw new InvalidArgumentException(sprintf('Class "%s" used for service "%s" cannot be found.', $class, $serviceId)); - } - - $class = $r->name; - - if (!$r->hasMethod($defaultIndexMethod)) { - if ($needsIndexes) { - $services[$priority][$serviceId] = new TypedReference($serviceId, $class); - - continue; - } - - throw new InvalidArgumentException(sprintf('Method "%s::%s()" not found: tag "%s" on service "%s" is missing "%s" attribute.', $class, $defaultIndexMethod, $tagName, $serviceId, $indexAttribute)); - } - - if (!($rm = $r->getMethod($defaultIndexMethod))->isStatic()) { - throw new InvalidArgumentException(sprintf('Method "%s::%s()" should be static: tag "%s" on service "%s" is missing "%s" attribute.', $class, $defaultIndexMethod, $tagName, $serviceId, $indexAttribute)); - } - - if (!$rm->isPublic()) { - throw new InvalidArgumentException(sprintf('Method "%s::%s()" should be public: tag "%s" on service "%s" is missing "%s" attribute.', $class, $defaultIndexMethod, $tagName, $serviceId, $indexAttribute)); - } - - $key = $rm->invoke(null); - - if (!\is_string($key)) { - throw new InvalidArgumentException(sprintf('Method "%s::%s()" should return a string, got %s: tag "%s" on service "%s" is missing "%s" attribute.', $class, $defaultIndexMethod, \gettype($key), $tagName, $serviceId, $indexAttribute)); - } - - $services[$priority][$key] = new TypedReference($serviceId, $class, ContainerBuilder::EXCEPTION_ON_INVALID_REFERENCE, $key); - } - - if ($services) { - krsort($services); - $services = array_merge(...$services); - } - - return $services; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RegisterEnvVarProcessorsPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RegisterEnvVarProcessorsPass.php deleted file mode 100644 index a9a133b..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RegisterEnvVarProcessorsPass.php +++ /dev/null @@ -1,75 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\EnvVarProcessor; -use Symfony\Component\DependencyInjection\EnvVarProcessorInterface; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\ParameterBag\EnvPlaceholderParameterBag; -use Symfony\Component\DependencyInjection\Reference; - -/** - * Creates the container.env_var_processors_locator service. - * - * @author Nicolas Grekas - */ -class RegisterEnvVarProcessorsPass implements CompilerPassInterface -{ - private static $allowedTypes = ['array', 'bool', 'float', 'int', 'string']; - - public function process(ContainerBuilder $container) - { - $bag = $container->getParameterBag(); - $types = []; - $processors = []; - foreach ($container->findTaggedServiceIds('container.env_var_processor') as $id => $tags) { - if (!$r = $container->getReflectionClass($class = $container->getDefinition($id)->getClass())) { - throw new InvalidArgumentException(sprintf('Class "%s" used for service "%s" cannot be found.', $class, $id)); - } elseif (!$r->isSubclassOf(EnvVarProcessorInterface::class)) { - throw new InvalidArgumentException(sprintf('Service "%s" must implement interface "%s".', $id, EnvVarProcessorInterface::class)); - } - foreach ($class::getProvidedTypes() as $prefix => $type) { - $processors[$prefix] = new Reference($id); - $types[$prefix] = self::validateProvidedTypes($type, $class); - } - } - - if ($bag instanceof EnvPlaceholderParameterBag) { - foreach (EnvVarProcessor::getProvidedTypes() as $prefix => $type) { - if (!isset($types[$prefix])) { - $types[$prefix] = self::validateProvidedTypes($type, EnvVarProcessor::class); - } - } - $bag->setProvidedTypes($types); - } - - if ($processors) { - $container->setAlias('container.env_var_processors_locator', (string) ServiceLocatorTagPass::register($container, $processors)) - ->setPublic(true) - ; - } - } - - private static function validateProvidedTypes(string $types, string $class): array - { - $types = explode('|', $types); - - foreach ($types as $type) { - if (!\in_array($type, self::$allowedTypes)) { - throw new InvalidArgumentException(sprintf('Invalid type "%s" returned by "%s::getProvidedTypes()", expected one of "%s".', $type, $class, implode('", "', self::$allowedTypes))); - } - } - - return $types; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RegisterReverseContainerPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RegisterReverseContainerPass.php deleted file mode 100644 index 571eab3..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RegisterReverseContainerPass.php +++ /dev/null @@ -1,66 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Reference; - -/** - * @author Nicolas Grekas - */ -class RegisterReverseContainerPass implements CompilerPassInterface -{ - private $beforeRemoving; - private $serviceId; - private $tagName; - - public function __construct(bool $beforeRemoving, string $serviceId = 'reverse_container', string $tagName = 'container.reversible') - { - $this->beforeRemoving = $beforeRemoving; - $this->serviceId = $serviceId; - $this->tagName = $tagName; - } - - public function process(ContainerBuilder $container) - { - if (!$container->hasDefinition($this->serviceId)) { - return; - } - - $refType = $this->beforeRemoving ? ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE : ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - $services = []; - foreach ($container->findTaggedServiceIds($this->tagName) as $id => $tags) { - $services[$id] = new Reference($id, $refType); - } - - if ($this->beforeRemoving) { - // prevent inlining of the reverse container - $services[$this->serviceId] = new Reference($this->serviceId, $refType); - } - $locator = $container->getDefinition($this->serviceId)->getArgument(1); - - if ($locator instanceof Reference) { - $locator = $container->getDefinition((string) $locator); - } - if ($locator instanceof Definition) { - foreach ($services as $id => $ref) { - $services[$id] = new ServiceClosureArgument($ref); - } - $locator->replaceArgument(0, $services); - } else { - $locator->setValues($services); - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RegisterServiceSubscribersPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RegisterServiceSubscribersPass.php deleted file mode 100644 index 14bf000..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RegisterServiceSubscribersPass.php +++ /dev/null @@ -1,122 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Psr\Container\ContainerInterface as PsrContainerInterface; -use Symfony\Component\DependencyInjection\Argument\BoundArgument; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\DependencyInjection\TypedReference; -use Symfony\Contracts\Service\ServiceProviderInterface; -use Symfony\Contracts\Service\ServiceSubscriberInterface; - -/** - * Compiler pass to register tagged services that require a service locator. - * - * @author Nicolas Grekas - */ -class RegisterServiceSubscribersPass extends AbstractRecursivePass -{ - protected function processValue($value, $isRoot = false) - { - if (!$value instanceof Definition || $value->isAbstract() || $value->isSynthetic() || !$value->hasTag('container.service_subscriber')) { - return parent::processValue($value, $isRoot); - } - - $serviceMap = []; - $autowire = $value->isAutowired(); - - foreach ($value->getTag('container.service_subscriber') as $attributes) { - if (!$attributes) { - $autowire = true; - continue; - } - ksort($attributes); - if ([] !== array_diff(array_keys($attributes), ['id', 'key'])) { - throw new InvalidArgumentException(sprintf('The "container.service_subscriber" tag accepts only the "key" and "id" attributes, "%s" given for service "%s".', implode('", "', array_keys($attributes)), $this->currentId)); - } - if (!\array_key_exists('id', $attributes)) { - throw new InvalidArgumentException(sprintf('Missing "id" attribute on "container.service_subscriber" tag with key="%s" for service "%s".', $attributes['key'], $this->currentId)); - } - if (!\array_key_exists('key', $attributes)) { - $attributes['key'] = $attributes['id']; - } - if (isset($serviceMap[$attributes['key']])) { - continue; - } - $serviceMap[$attributes['key']] = new Reference($attributes['id']); - } - $class = $value->getClass(); - - if (!$r = $this->container->getReflectionClass($class)) { - throw new InvalidArgumentException(sprintf('Class "%s" used for service "%s" cannot be found.', $class, $this->currentId)); - } - if (!$r->isSubclassOf(ServiceSubscriberInterface::class)) { - throw new InvalidArgumentException(sprintf('Service "%s" must implement interface "%s".', $this->currentId, ServiceSubscriberInterface::class)); - } - $class = $r->name; - - $subscriberMap = []; - - foreach ($class::getSubscribedServices() as $key => $type) { - if (!\is_string($type) || !preg_match('/^\??[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+(?:\\\\[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+)*+$/', $type)) { - throw new InvalidArgumentException(sprintf('"%s::getSubscribedServices()" must return valid PHP types for service "%s" key "%s", "%s" returned.', $class, $this->currentId, $key, \is_string($type) ? $type : \gettype($type))); - } - if ($optionalBehavior = '?' === $type[0]) { - $type = substr($type, 1); - $optionalBehavior = ContainerInterface::IGNORE_ON_INVALID_REFERENCE; - } - if (\is_int($name = $key)) { - $key = $type; - $name = null; - } - if (!isset($serviceMap[$key])) { - if (!$autowire) { - throw new InvalidArgumentException(sprintf('Service "%s" misses a "container.service_subscriber" tag with "key"/"id" attributes corresponding to entry "%s" as returned by "%s::getSubscribedServices()".', $this->currentId, $key, $class)); - } - $serviceMap[$key] = new Reference($type); - } - - if (false !== $i = strpos($name, '::get')) { - $name = lcfirst(substr($name, 5 + $i)); - } elseif (false !== strpos($name, '::')) { - $name = null; - } - - if (null !== $name && !$this->container->has($name) && !$this->container->has($type.' $'.$name)) { - $camelCaseName = lcfirst(str_replace(' ', '', ucwords(preg_replace('/[^a-zA-Z0-9\x7f-\xff]++/', ' ', $name)))); - $name = $this->container->has($type.' $'.$camelCaseName) ? $camelCaseName : $name; - } - - $subscriberMap[$key] = new TypedReference((string) $serviceMap[$key], $type, $optionalBehavior ?: ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE, $name); - unset($serviceMap[$key]); - } - - if ($serviceMap = array_keys($serviceMap)) { - $message = sprintf(1 < \count($serviceMap) ? 'keys "%s" do' : 'key "%s" does', str_replace('%', '%%', implode('", "', $serviceMap))); - throw new InvalidArgumentException(sprintf('Service %s not exist in the map returned by "%s::getSubscribedServices()" for service "%s".', $message, $class, $this->currentId)); - } - - $locatorRef = ServiceLocatorTagPass::register($this->container, $subscriberMap, $this->currentId); - - $value->addTag('container.service_subscriber.locator', ['id' => (string) $locatorRef]); - - $value->setBindings([ - PsrContainerInterface::class => new BoundArgument($locatorRef, false), - ServiceProviderInterface::class => new BoundArgument($locatorRef, false), - ] + $value->getBindings()); - - return parent::processValue($value); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RemoveAbstractDefinitionsPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RemoveAbstractDefinitionsPass.php deleted file mode 100644 index 04b6852..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RemoveAbstractDefinitionsPass.php +++ /dev/null @@ -1,33 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerBuilder; - -/** - * Removes abstract Definitions. - */ -class RemoveAbstractDefinitionsPass implements CompilerPassInterface -{ - /** - * Removes abstract definitions from the ContainerBuilder. - */ - public function process(ContainerBuilder $container) - { - foreach ($container->getDefinitions() as $id => $definition) { - if ($definition->isAbstract()) { - $container->removeDefinition($id); - $container->log($this, sprintf('Removed service "%s"; reason: abstract.', $id)); - } - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RemovePrivateAliasesPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RemovePrivateAliasesPass.php deleted file mode 100644 index 75b36d2..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RemovePrivateAliasesPass.php +++ /dev/null @@ -1,39 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerBuilder; - -/** - * Remove private aliases from the container. They were only used to establish - * dependencies between services, and these dependencies have been resolved in - * one of the previous passes. - * - * @author Johannes M. Schmitt - */ -class RemovePrivateAliasesPass implements CompilerPassInterface -{ - /** - * Removes private aliases from the ContainerBuilder. - */ - public function process(ContainerBuilder $container) - { - foreach ($container->getAliases() as $id => $alias) { - if ($alias->isPublic()) { - continue; - } - - $container->removeAlias($id); - $container->log($this, sprintf('Removed service "%s"; reason: private alias.', $id)); - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RemoveUnusedDefinitionsPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RemoveUnusedDefinitionsPass.php deleted file mode 100644 index 287af23..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RemoveUnusedDefinitionsPass.php +++ /dev/null @@ -1,98 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Reference; - -/** - * Removes unused service definitions from the container. - * - * @author Johannes M. Schmitt - * @author Nicolas Grekas - */ -class RemoveUnusedDefinitionsPass extends AbstractRecursivePass implements RepeatablePassInterface -{ - private $connectedIds = []; - - /** - * {@inheritdoc} - */ - public function setRepeatedPass(RepeatedPass $repeatedPass) - { - @trigger_error(sprintf('The "%s()" method is deprecated since Symfony 4.2.', __METHOD__), E_USER_DEPRECATED); - } - - /** - * Processes the ContainerBuilder to remove unused definitions. - */ - public function process(ContainerBuilder $container) - { - try { - $this->enableExpressionProcessing(); - $this->container = $container; - $connectedIds = []; - $aliases = $container->getAliases(); - - foreach ($aliases as $id => $alias) { - if ($alias->isPublic()) { - $this->connectedIds[] = (string) $aliases[$id]; - } - } - - foreach ($container->getDefinitions() as $id => $definition) { - if ($definition->isPublic()) { - $connectedIds[$id] = true; - $this->processValue($definition); - } - } - - while ($this->connectedIds) { - $ids = $this->connectedIds; - $this->connectedIds = []; - foreach ($ids as $id) { - if (!isset($connectedIds[$id]) && $container->hasDefinition($id)) { - $connectedIds[$id] = true; - $this->processValue($container->getDefinition($id)); - } - } - } - - foreach ($container->getDefinitions() as $id => $definition) { - if (!isset($connectedIds[$id])) { - $container->removeDefinition($id); - $container->resolveEnvPlaceholders(!$definition->hasErrors() ? serialize($definition) : $definition); - $container->log($this, sprintf('Removed service "%s"; reason: unused.', $id)); - } - } - } finally { - $this->container = null; - $this->connectedIds = []; - } - } - - /** - * {@inheritdoc} - */ - protected function processValue($value, $isRoot = false) - { - if (!$value instanceof Reference) { - return parent::processValue($value, $isRoot); - } - - if (ContainerBuilder::IGNORE_ON_UNINITIALIZED_REFERENCE !== $value->getInvalidBehavior()) { - $this->connectedIds[] = (string) $value; - } - - return $value; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RepeatablePassInterface.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RepeatablePassInterface.php deleted file mode 100644 index 11a5b0d..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RepeatablePassInterface.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -/** - * Interface that must be implemented by passes that are run as part of an - * RepeatedPass. - * - * @author Johannes M. Schmitt - * - * @deprecated since Symfony 4.2. - */ -interface RepeatablePassInterface extends CompilerPassInterface -{ - public function setRepeatedPass(RepeatedPass $repeatedPass); -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RepeatedPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RepeatedPass.php deleted file mode 100644 index b8add1b..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RepeatedPass.php +++ /dev/null @@ -1,83 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -@trigger_error(sprintf('The "%s" class is deprecated since Symfony 4.2.', RepeatedPass::class), E_USER_DEPRECATED); - -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; - -/** - * A pass that might be run repeatedly. - * - * @author Johannes M. Schmitt - * - * @deprecated since Symfony 4.2. - */ -class RepeatedPass implements CompilerPassInterface -{ - /** - * @var bool - */ - private $repeat = false; - - private $passes; - - /** - * @param RepeatablePassInterface[] $passes An array of RepeatablePassInterface objects - * - * @throws InvalidArgumentException when the passes don't implement RepeatablePassInterface - */ - public function __construct(array $passes) - { - foreach ($passes as $pass) { - if (!$pass instanceof RepeatablePassInterface) { - throw new InvalidArgumentException('$passes must be an array of RepeatablePassInterface.'); - } - - $pass->setRepeatedPass($this); - } - - $this->passes = $passes; - } - - /** - * Process the repeatable passes that run more than once. - */ - public function process(ContainerBuilder $container) - { - do { - $this->repeat = false; - foreach ($this->passes as $pass) { - $pass->process($container); - } - } while ($this->repeat); - } - - /** - * Sets if the pass should repeat. - */ - public function setRepeat() - { - $this->repeat = true; - } - - /** - * Returns the passes. - * - * @return RepeatablePassInterface[] An array of RepeatablePassInterface objects - */ - public function getPasses() - { - return $this->passes; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ReplaceAliasByActualDefinitionPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ReplaceAliasByActualDefinitionPass.php deleted file mode 100644 index 9981096..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ReplaceAliasByActualDefinitionPass.php +++ /dev/null @@ -1,94 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; -use Symfony\Component\DependencyInjection\Reference; - -/** - * Replaces aliases with actual service definitions, effectively removing these - * aliases. - * - * @author Johannes M. Schmitt - */ -class ReplaceAliasByActualDefinitionPass extends AbstractRecursivePass -{ - private $replacements; - - /** - * Process the Container to replace aliases with service definitions. - * - * @throws InvalidArgumentException if the service definition does not exist - */ - public function process(ContainerBuilder $container) - { - // First collect all alias targets that need to be replaced - $seenAliasTargets = []; - $replacements = []; - foreach ($container->getAliases() as $definitionId => $target) { - $targetId = (string) $target; - // Special case: leave this target alone - if ('service_container' === $targetId) { - continue; - } - // Check if target needs to be replaces - if (isset($replacements[$targetId])) { - $container->setAlias($definitionId, $replacements[$targetId])->setPublic($target->isPublic())->setPrivate($target->isPrivate()); - } - // No need to process the same target twice - if (isset($seenAliasTargets[$targetId])) { - continue; - } - // Process new target - $seenAliasTargets[$targetId] = true; - try { - $definition = $container->getDefinition($targetId); - } catch (ServiceNotFoundException $e) { - if ('' !== $e->getId() && '@' === $e->getId()[0]) { - throw new ServiceNotFoundException($e->getId(), $e->getSourceId(), null, [substr($e->getId(), 1)]); - } - - throw $e; - } - if ($definition->isPublic()) { - continue; - } - // Remove private definition and schedule for replacement - $definition->setPublic(!$target->isPrivate()); - $definition->setPrivate($target->isPrivate()); - $container->setDefinition($definitionId, $definition); - $container->removeDefinition($targetId); - $replacements[$targetId] = $definitionId; - } - $this->replacements = $replacements; - - parent::process($container); - $this->replacements = []; - } - - /** - * {@inheritdoc} - */ - protected function processValue($value, $isRoot = false) - { - if ($value instanceof Reference && isset($this->replacements[$referenceId = (string) $value])) { - // Perform the replacement - $newId = $this->replacements[$referenceId]; - $value = new Reference($newId, $value->getInvalidBehavior()); - $this->container->log($this, sprintf('Changed reference of service "%s" previously pointing to "%s" to "%s".', $this->currentId, $referenceId, $newId)); - } - - return parent::processValue($value, $isRoot); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveBindingsPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveBindingsPass.php deleted file mode 100644 index e76c43b..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveBindingsPass.php +++ /dev/null @@ -1,227 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Argument\BoundArgument; -use Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; -use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\LazyProxy\ProxyHelper; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\DependencyInjection\TypedReference; - -/** - * @author Guilhem Niot - */ -class ResolveBindingsPass extends AbstractRecursivePass -{ - private $usedBindings = []; - private $unusedBindings = []; - private $errorMessages = []; - - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - $this->usedBindings = $container->getRemovedBindingIds(); - - try { - parent::process($container); - - foreach ($this->unusedBindings as list($key, $serviceId, $bindingType, $file)) { - $argumentType = $argumentName = $message = null; - - if (false !== strpos($key, ' ')) { - list($argumentType, $argumentName) = explode(' ', $key, 2); - } elseif ('$' === $key[0]) { - $argumentName = $key; - } else { - $argumentType = $key; - } - - if ($argumentType) { - $message .= sprintf('of type "%s" ', $argumentType); - } - - if ($argumentName) { - $message .= sprintf('named "%s" ', $argumentName); - } - - if (BoundArgument::DEFAULTS_BINDING === $bindingType) { - $message .= 'under "_defaults"'; - } elseif (BoundArgument::INSTANCEOF_BINDING === $bindingType) { - $message .= 'under "_instanceof"'; - } else { - $message .= sprintf('for service "%s"', $serviceId); - } - - if ($file) { - $message .= sprintf(' in file "%s"', $file); - } - - $message = sprintf('A binding is configured for an argument %s, but no corresponding argument has been found. It may be unused and should be removed, or it may have a typo.', $message); - - if ($this->errorMessages) { - $message .= sprintf("\nCould be related to%s:", 1 < \count($this->errorMessages) ? ' one of' : ''); - } - foreach ($this->errorMessages as $m) { - $message .= "\n - ".$m; - } - throw new InvalidArgumentException($message); - } - } finally { - $this->usedBindings = []; - $this->unusedBindings = []; - $this->errorMessages = []; - } - } - - /** - * {@inheritdoc} - */ - protected function processValue($value, $isRoot = false) - { - if ($value instanceof TypedReference && $value->getType() === (string) $value) { - // Already checked - $bindings = $this->container->getDefinition($this->currentId)->getBindings(); - $name = $value->getName(); - - if (isset($name, $bindings[$name = $value.' $'.$name])) { - return $this->getBindingValue($bindings[$name]); - } - - if (isset($bindings[$value->getType()])) { - return $this->getBindingValue($bindings[$value->getType()]); - } - - return parent::processValue($value, $isRoot); - } - - if (!$value instanceof Definition || !$bindings = $value->getBindings()) { - return parent::processValue($value, $isRoot); - } - - foreach ($bindings as $key => $binding) { - list($bindingValue, $bindingId, $used, $bindingType, $file) = $binding->getValues(); - if ($used) { - $this->usedBindings[$bindingId] = true; - unset($this->unusedBindings[$bindingId]); - } elseif (!isset($this->usedBindings[$bindingId])) { - $this->unusedBindings[$bindingId] = [$key, $this->currentId, $bindingType, $file]; - } - - if (preg_match('/^(?:(?:array|bool|float|int|string) )?\$/', $key)) { - continue; - } - - if (null !== $bindingValue && !$bindingValue instanceof Reference && !$bindingValue instanceof Definition && !$bindingValue instanceof TaggedIteratorArgument && !$bindingValue instanceof ServiceLocatorArgument) { - throw new InvalidArgumentException(sprintf('Invalid value for binding key "%s" for service "%s": expected null, %s, %s, %s or ServiceLocatorArgument, %s given.', $key, $this->currentId, Reference::class, Definition::class, TaggedIteratorArgument::class, \gettype($bindingValue))); - } - } - - if ($value->isAbstract()) { - return parent::processValue($value, $isRoot); - } - - $calls = $value->getMethodCalls(); - - try { - if ($constructor = $this->getConstructor($value, false)) { - $calls[] = [$constructor, $value->getArguments()]; - } - } catch (RuntimeException $e) { - $this->errorMessages[] = $e->getMessage(); - $this->container->getDefinition($this->currentId)->addError($e->getMessage()); - - return parent::processValue($value, $isRoot); - } - - foreach ($calls as $i => $call) { - list($method, $arguments) = $call; - - if ($method instanceof \ReflectionFunctionAbstract) { - $reflectionMethod = $method; - } else { - try { - $reflectionMethod = $this->getReflectionMethod($value, $method); - } catch (RuntimeException $e) { - if ($value->getFactory()) { - continue; - } - throw $e; - } - } - - foreach ($reflectionMethod->getParameters() as $key => $parameter) { - if (\array_key_exists($key, $arguments) && '' !== $arguments[$key]) { - continue; - } - - $typeHint = ProxyHelper::getTypeHint($reflectionMethod, $parameter); - - if (\array_key_exists($k = ltrim($typeHint, '\\').' $'.$parameter->name, $bindings)) { - $arguments[$key] = $this->getBindingValue($bindings[$k]); - - continue; - } - - if (\array_key_exists('$'.$parameter->name, $bindings)) { - $arguments[$key] = $this->getBindingValue($bindings['$'.$parameter->name]); - - continue; - } - - if (!$typeHint || '\\' !== $typeHint[0] || !isset($bindings[$typeHint = substr($typeHint, 1)])) { - continue; - } - - $arguments[$key] = $this->getBindingValue($bindings[$typeHint]); - } - - if ($arguments !== $call[1]) { - ksort($arguments); - $calls[$i][1] = $arguments; - } - } - - if ($constructor) { - list(, $arguments) = array_pop($calls); - - if ($arguments !== $value->getArguments()) { - $value->setArguments($arguments); - } - } - - if ($calls !== $value->getMethodCalls()) { - $value->setMethodCalls($calls); - } - - return parent::processValue($value, $isRoot); - } - - /** - * @return mixed - */ - private function getBindingValue(BoundArgument $binding) - { - list($bindingValue, $bindingId) = $binding->getValues(); - - $this->usedBindings[$bindingId] = true; - unset($this->unusedBindings[$bindingId]); - - return $bindingValue; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveChildDefinitionsPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveChildDefinitionsPass.php deleted file mode 100644 index 453e3f6..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveChildDefinitionsPass.php +++ /dev/null @@ -1,190 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ChildDefinition; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\ExceptionInterface; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException; - -/** - * This replaces all ChildDefinition instances with their equivalent fully - * merged Definition instance. - * - * @author Johannes M. Schmitt - * @author Nicolas Grekas - */ -class ResolveChildDefinitionsPass extends AbstractRecursivePass -{ - private $currentPath; - - protected function processValue($value, $isRoot = false) - { - if (!$value instanceof Definition) { - return parent::processValue($value, $isRoot); - } - if ($isRoot) { - // yes, we are specifically fetching the definition from the - // container to ensure we are not operating on stale data - $value = $this->container->getDefinition($this->currentId); - } - if ($value instanceof ChildDefinition) { - $this->currentPath = []; - $value = $this->resolveDefinition($value); - if ($isRoot) { - $this->container->setDefinition($this->currentId, $value); - } - } - - return parent::processValue($value, $isRoot); - } - - /** - * Resolves the definition. - * - * @throws RuntimeException When the definition is invalid - */ - private function resolveDefinition(ChildDefinition $definition): Definition - { - try { - return $this->doResolveDefinition($definition); - } catch (ServiceCircularReferenceException $e) { - throw $e; - } catch (ExceptionInterface $e) { - $r = new \ReflectionProperty($e, 'message'); - $r->setAccessible(true); - $r->setValue($e, sprintf('Service "%s": %s', $this->currentId, $e->getMessage())); - - throw $e; - } - } - - private function doResolveDefinition(ChildDefinition $definition): Definition - { - if (!$this->container->has($parent = $definition->getParent())) { - throw new RuntimeException(sprintf('Parent definition "%s" does not exist.', $parent)); - } - - $searchKey = array_search($parent, $this->currentPath); - $this->currentPath[] = $parent; - - if (false !== $searchKey) { - throw new ServiceCircularReferenceException($parent, \array_slice($this->currentPath, $searchKey)); - } - - $parentDef = $this->container->findDefinition($parent); - if ($parentDef instanceof ChildDefinition) { - $id = $this->currentId; - $this->currentId = $parent; - $parentDef = $this->resolveDefinition($parentDef); - $this->container->setDefinition($parent, $parentDef); - $this->currentId = $id; - } - - $this->container->log($this, sprintf('Resolving inheritance for "%s" (parent: %s).', $this->currentId, $parent)); - $def = new Definition(); - - // merge in parent definition - // purposely ignored attributes: abstract, shared, tags, autoconfigured - $def->setClass($parentDef->getClass()); - $def->setArguments($parentDef->getArguments()); - $def->setMethodCalls($parentDef->getMethodCalls()); - $def->setProperties($parentDef->getProperties()); - if ($parentDef->isDeprecated()) { - $def->setDeprecated(true, $parentDef->getDeprecationMessage('%service_id%')); - } - $def->setFactory($parentDef->getFactory()); - $def->setConfigurator($parentDef->getConfigurator()); - $def->setFile($parentDef->getFile()); - $def->setPublic($parentDef->isPublic()); - $def->setLazy($parentDef->isLazy()); - $def->setAutowired($parentDef->isAutowired()); - $def->setChanges($parentDef->getChanges()); - - $def->setBindings($definition->getBindings() + $parentDef->getBindings()); - - // overwrite with values specified in the decorator - $changes = $definition->getChanges(); - if (isset($changes['class'])) { - $def->setClass($definition->getClass()); - } - if (isset($changes['factory'])) { - $def->setFactory($definition->getFactory()); - } - if (isset($changes['configurator'])) { - $def->setConfigurator($definition->getConfigurator()); - } - if (isset($changes['file'])) { - $def->setFile($definition->getFile()); - } - if (isset($changes['public'])) { - $def->setPublic($definition->isPublic()); - } else { - $def->setPrivate($definition->isPrivate() || $parentDef->isPrivate()); - } - if (isset($changes['lazy'])) { - $def->setLazy($definition->isLazy()); - } - if (isset($changes['deprecated'])) { - $def->setDeprecated($definition->isDeprecated(), $definition->getDeprecationMessage('%service_id%')); - } - if (isset($changes['autowired'])) { - $def->setAutowired($definition->isAutowired()); - } - if (isset($changes['shared'])) { - $def->setShared($definition->isShared()); - } - if (isset($changes['decorated_service'])) { - $decoratedService = $definition->getDecoratedService(); - if (null === $decoratedService) { - $def->setDecoratedService($decoratedService); - } else { - $def->setDecoratedService($decoratedService[0], $decoratedService[1], $decoratedService[2], $decoratedService[3] ?? ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE); - } - } - - // merge arguments - foreach ($definition->getArguments() as $k => $v) { - if (is_numeric($k)) { - $def->addArgument($v); - } elseif (0 === strpos($k, 'index_')) { - $def->replaceArgument((int) substr($k, \strlen('index_')), $v); - } else { - $def->setArgument($k, $v); - } - } - - // merge properties - foreach ($definition->getProperties() as $k => $v) { - $def->setProperty($k, $v); - } - - // append method calls - if ($calls = $definition->getMethodCalls()) { - $def->setMethodCalls(array_merge($def->getMethodCalls(), $calls)); - } - - $def->addError($parentDef); - $def->addError($definition); - - // these attributes are always taken from the child - $def->setAbstract($definition->isAbstract()); - $def->setTags($definition->getTags()); - // autoconfigure is never taken from parent (on purpose) - // and it's not legal on an instanceof - $def->setAutoconfigured($definition->isAutoconfigured()); - - return $def; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveClassPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveClassPass.php deleted file mode 100644 index 5932472..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveClassPass.php +++ /dev/null @@ -1,40 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ChildDefinition; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; - -/** - * @author Nicolas Grekas - */ -class ResolveClassPass implements CompilerPassInterface -{ - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - foreach ($container->getDefinitions() as $id => $definition) { - if ($definition->isSynthetic() || null !== $definition->getClass()) { - continue; - } - if (preg_match('/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+(?:\\\\[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+)++$/', $id)) { - if ($definition instanceof ChildDefinition && !class_exists($id)) { - throw new InvalidArgumentException(sprintf('Service definition "%s" has a parent but no class, and its name looks like a FQCN. Either the class is missing or you want to inherit it from the parent service. To resolve this ambiguity, please rename this service to a non-FQCN (e.g. using dots), or create the missing class.', $id)); - } - $definition->setClass($id); - } - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveEnvPlaceholdersPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveEnvPlaceholdersPass.php deleted file mode 100644 index 9e1edd4..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveEnvPlaceholdersPass.php +++ /dev/null @@ -1,44 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Definition; - -/** - * Replaces env var placeholders by their current values. - */ -class ResolveEnvPlaceholdersPass extends AbstractRecursivePass -{ - protected function processValue($value, $isRoot = false) - { - if (\is_string($value)) { - return $this->container->resolveEnvPlaceholders($value, true); - } - if ($value instanceof Definition) { - $changes = $value->getChanges(); - if (isset($changes['class'])) { - $value->setClass($this->container->resolveEnvPlaceholders($value->getClass(), true)); - } - if (isset($changes['file'])) { - $value->setFile($this->container->resolveEnvPlaceholders($value->getFile(), true)); - } - } - - $value = parent::processValue($value, $isRoot); - - if ($value && \is_array($value) && !$isRoot) { - $value = array_combine($this->container->resolveEnvPlaceholders(array_keys($value), true), $value); - } - - return $value; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveFactoryClassPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveFactoryClassPass.php deleted file mode 100644 index 848da7f..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveFactoryClassPass.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; - -/** - * @author Maxime Steinhausser - */ -class ResolveFactoryClassPass extends AbstractRecursivePass -{ - /** - * {@inheritdoc} - */ - protected function processValue($value, $isRoot = false) - { - if ($value instanceof Definition && \is_array($factory = $value->getFactory()) && null === $factory[0]) { - if (null === $class = $value->getClass()) { - throw new RuntimeException(sprintf('The "%s" service is defined to be created by a factory, but is missing the factory class. Did you forget to define the factory or service class?', $this->currentId)); - } - - $factory[0] = $class; - $value->setFactory($factory); - } - - return parent::processValue($value, $isRoot); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveHotPathPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveHotPathPass.php deleted file mode 100644 index bfdd91c..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveHotPathPass.php +++ /dev/null @@ -1,71 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Argument\ArgumentInterface; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Reference; - -/** - * Propagate "container.hot_path" tags to referenced services. - * - * @author Nicolas Grekas - */ -class ResolveHotPathPass extends AbstractRecursivePass -{ - private $tagName; - private $resolvedIds = []; - - public function __construct(string $tagName = 'container.hot_path') - { - $this->tagName = $tagName; - } - - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - try { - parent::process($container); - $container->getDefinition('service_container')->clearTag($this->tagName); - } finally { - $this->resolvedIds = []; - } - } - - /** - * {@inheritdoc} - */ - protected function processValue($value, $isRoot = false) - { - if ($value instanceof ArgumentInterface) { - return $value; - } - if ($value instanceof Definition && $isRoot && (isset($this->resolvedIds[$this->currentId]) || !$value->hasTag($this->tagName) || $value->isDeprecated())) { - return $value->isDeprecated() ? $value->clearTag($this->tagName) : $value; - } - if ($value instanceof Reference && ContainerBuilder::IGNORE_ON_UNINITIALIZED_REFERENCE !== $value->getInvalidBehavior() && $this->container->has($id = (string) $value)) { - $definition = $this->container->findDefinition($id); - if (!$definition->hasTag($this->tagName) && !$definition->isDeprecated()) { - $this->resolvedIds[$id] = true; - $definition->addTag($this->tagName); - parent::processValue($definition, false); - } - - return $value; - } - - return parent::processValue($value, $isRoot); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveInstanceofConditionalsPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveInstanceofConditionalsPass.php deleted file mode 100644 index 96afb03..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveInstanceofConditionalsPass.php +++ /dev/null @@ -1,168 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ChildDefinition; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; - -/** - * Applies instanceof conditionals to definitions. - * - * @author Nicolas Grekas - */ -class ResolveInstanceofConditionalsPass implements CompilerPassInterface -{ - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - foreach ($container->getAutoconfiguredInstanceof() as $interface => $definition) { - if ($definition->getArguments()) { - throw new InvalidArgumentException(sprintf('Autoconfigured instanceof for type "%s" defines arguments but these are not supported and should be removed.', $interface)); - } - } - - foreach ($container->getDefinitions() as $id => $definition) { - if ($definition instanceof ChildDefinition) { - // don't apply "instanceof" to children: it will be applied to their parent - continue; - } - $container->setDefinition($id, $this->processDefinition($container, $id, $definition)); - } - } - - private function processDefinition(ContainerBuilder $container, string $id, Definition $definition): Definition - { - $instanceofConditionals = $definition->getInstanceofConditionals(); - $autoconfiguredInstanceof = $definition->isAutoconfigured() ? $container->getAutoconfiguredInstanceof() : []; - if (!$instanceofConditionals && !$autoconfiguredInstanceof) { - return $definition; - } - - if (!$class = $container->getParameterBag()->resolveValue($definition->getClass())) { - return $definition; - } - - $conditionals = $this->mergeConditionals($autoconfiguredInstanceof, $instanceofConditionals, $container); - - $definition->setInstanceofConditionals([]); - $parent = $shared = null; - $instanceofTags = []; - $instanceofCalls = []; - $instanceofBindings = []; - $reflectionClass = null; - - foreach ($conditionals as $interface => $instanceofDefs) { - if ($interface !== $class && !(null === $reflectionClass ? $reflectionClass = ($container->getReflectionClass($class, false) ?: false) : $reflectionClass)) { - continue; - } - - if ($interface !== $class && !is_subclass_of($class, $interface)) { - continue; - } - - foreach ($instanceofDefs as $key => $instanceofDef) { - /** @var ChildDefinition $instanceofDef */ - $instanceofDef = clone $instanceofDef; - $instanceofDef->setAbstract(true)->setParent($parent ?: '.abstract.instanceof.'.$id); - $parent = '.instanceof.'.$interface.'.'.$key.'.'.$id; - $container->setDefinition($parent, $instanceofDef); - $instanceofTags[] = $instanceofDef->getTags(); - $instanceofBindings = $instanceofDef->getBindings() + $instanceofBindings; - - foreach ($instanceofDef->getMethodCalls() as $methodCall) { - $instanceofCalls[] = $methodCall; - } - - $instanceofDef->setTags([]); - $instanceofDef->setMethodCalls([]); - $instanceofDef->setBindings([]); - - if (isset($instanceofDef->getChanges()['shared'])) { - $shared = $instanceofDef->isShared(); - } - } - } - - if ($parent) { - $bindings = $definition->getBindings(); - $abstract = $container->setDefinition('.abstract.instanceof.'.$id, $definition); - - // cast Definition to ChildDefinition - $definition->setBindings([]); - $definition = serialize($definition); - $definition = substr_replace($definition, '53', 2, 2); - $definition = substr_replace($definition, 'Child', 44, 0); - /** @var ChildDefinition $definition */ - $definition = unserialize($definition); - $definition->setParent($parent); - - if (null !== $shared && !isset($definition->getChanges()['shared'])) { - $definition->setShared($shared); - } - - // Don't add tags to service decorators - if (null === $definition->getDecoratedService()) { - $i = \count($instanceofTags); - while (0 <= --$i) { - foreach ($instanceofTags[$i] as $k => $v) { - foreach ($v as $v) { - if ($definition->hasTag($k) && \in_array($v, $definition->getTag($k))) { - continue; - } - $definition->addTag($k, $v); - } - } - } - } - - $definition->setMethodCalls(array_merge($instanceofCalls, $definition->getMethodCalls())); - $definition->setBindings($bindings + $instanceofBindings); - - // reset fields with "merge" behavior - $abstract - ->setBindings([]) - ->setArguments([]) - ->setMethodCalls([]) - ->setDecoratedService(null) - ->setTags([]) - ->setAbstract(true); - } - - return $definition; - } - - private function mergeConditionals(array $autoconfiguredInstanceof, array $instanceofConditionals, ContainerBuilder $container): array - { - // make each value an array of ChildDefinition - $conditionals = array_map(function ($childDef) { return [$childDef]; }, $autoconfiguredInstanceof); - - foreach ($instanceofConditionals as $interface => $instanceofDef) { - // make sure the interface/class exists (but don't validate automaticInstanceofConditionals) - if (!$container->getReflectionClass($interface)) { - throw new RuntimeException(sprintf('"%s" is set as an "instanceof" conditional, but it does not exist.', $interface)); - } - - if (!isset($autoconfiguredInstanceof[$interface])) { - $conditionals[$interface] = []; - } - - $conditionals[$interface][] = $instanceofDef; - } - - return $conditionals; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveInvalidReferencesPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveInvalidReferencesPass.php deleted file mode 100644 index 948de42..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveInvalidReferencesPass.php +++ /dev/null @@ -1,136 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Argument\ArgumentInterface; -use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\DependencyInjection\TypedReference; - -/** - * Emulates the invalid behavior if the reference is not found within the - * container. - * - * @author Johannes M. Schmitt - */ -class ResolveInvalidReferencesPass implements CompilerPassInterface -{ - private $container; - private $signalingException; - private $currentId; - - /** - * Process the ContainerBuilder to resolve invalid references. - */ - public function process(ContainerBuilder $container) - { - $this->container = $container; - $this->signalingException = new RuntimeException('Invalid reference.'); - - try { - foreach ($container->getDefinitions() as $this->currentId => $definition) { - $this->processValue($definition); - } - } finally { - $this->container = $this->signalingException = null; - } - } - - /** - * Processes arguments to determine invalid references. - * - * @return mixed - * - * @throws RuntimeException When an invalid reference is found - */ - private function processValue($value, int $rootLevel = 0, int $level = 0) - { - if ($value instanceof ServiceClosureArgument) { - $value->setValues($this->processValue($value->getValues(), 1, 1)); - } elseif ($value instanceof ArgumentInterface) { - $value->setValues($this->processValue($value->getValues(), $rootLevel, 1 + $level)); - } elseif ($value instanceof Definition) { - if ($value->isSynthetic() || $value->isAbstract()) { - return $value; - } - $value->setArguments($this->processValue($value->getArguments(), 0)); - $value->setProperties($this->processValue($value->getProperties(), 1)); - $value->setMethodCalls($this->processValue($value->getMethodCalls(), 2)); - } elseif (\is_array($value)) { - $i = 0; - - foreach ($value as $k => $v) { - try { - if (false !== $i && $k !== $i++) { - $i = false; - } - if ($v !== $processedValue = $this->processValue($v, $rootLevel, 1 + $level)) { - $value[$k] = $processedValue; - } - } catch (RuntimeException $e) { - if ($rootLevel < $level || ($rootLevel && !$level)) { - unset($value[$k]); - } elseif ($rootLevel) { - throw $e; - } else { - $value[$k] = null; - } - } - } - - // Ensure numerically indexed arguments have sequential numeric keys. - if (false !== $i) { - $value = array_values($value); - } - } elseif ($value instanceof Reference) { - if ($this->container->has($id = (string) $value)) { - return $value; - } - - $currentDefinition = $this->container->getDefinition($this->currentId); - - // resolve decorated service behavior depending on decorator service - if ($currentDefinition->innerServiceId === $id && ContainerInterface::NULL_ON_INVALID_REFERENCE === $currentDefinition->decorationOnInvalid) { - return null; - } - - $invalidBehavior = $value->getInvalidBehavior(); - - if (ContainerInterface::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE === $invalidBehavior && $value instanceof TypedReference && !$this->container->has($id)) { - $e = new ServiceNotFoundException($id, $this->currentId); - - // since the error message varies by $id and $this->currentId, so should the id of the dummy errored definition - $this->container->register($id = sprintf('.errored.%s.%s', $this->currentId, $id), $value->getType()) - ->addError($e->getMessage()); - - return new TypedReference($id, $value->getType(), $value->getInvalidBehavior()); - } - - // resolve invalid behavior - if (ContainerInterface::NULL_ON_INVALID_REFERENCE === $invalidBehavior) { - $value = null; - } elseif (ContainerInterface::IGNORE_ON_INVALID_REFERENCE === $invalidBehavior) { - if (0 < $level || $rootLevel) { - throw $this->signalingException; - } - $value = null; - } - } - - return $value; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveNamedArgumentsPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveNamedArgumentsPass.php deleted file mode 100644 index 6004cc3..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveNamedArgumentsPass.php +++ /dev/null @@ -1,112 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\LazyProxy\ProxyHelper; -use Symfony\Component\DependencyInjection\Reference; - -/** - * Resolves named arguments to their corresponding numeric index. - * - * @author Kévin Dunglas - */ -class ResolveNamedArgumentsPass extends AbstractRecursivePass -{ - /** - * {@inheritdoc} - */ - protected function processValue($value, $isRoot = false) - { - if (!$value instanceof Definition) { - return parent::processValue($value, $isRoot); - } - - $calls = $value->getMethodCalls(); - $calls[] = ['__construct', $value->getArguments()]; - - foreach ($calls as $i => $call) { - list($method, $arguments) = $call; - $parameters = null; - $resolvedArguments = []; - - foreach ($arguments as $key => $argument) { - if (\is_int($key)) { - $resolvedArguments[$key] = $argument; - continue; - } - - if (null === $parameters) { - $r = $this->getReflectionMethod($value, $method); - $class = $r instanceof \ReflectionMethod ? $r->class : $this->currentId; - $method = $r->getName(); - $parameters = $r->getParameters(); - } - - if (isset($key[0]) && '$' !== $key[0] && !class_exists($key) && !interface_exists($key, false)) { - throw new InvalidArgumentException(sprintf('Invalid service "%s": did you forget to add the "$" prefix to argument "%s"?', $this->currentId, $key)); - } - - if (isset($key[0]) && '$' === $key[0]) { - foreach ($parameters as $j => $p) { - if ($key === '$'.$p->name) { - if ($p->isVariadic() && \is_array($argument)) { - foreach ($argument as $variadicArgument) { - $resolvedArguments[$j++] = $variadicArgument; - } - } else { - $resolvedArguments[$j] = $argument; - } - - continue 2; - } - } - - throw new InvalidArgumentException(sprintf('Invalid service "%s": method "%s()" has no argument named "%s". Check your service definition.', $this->currentId, $class !== $this->currentId ? $class.'::'.$method : $method, $key)); - } - - if (null !== $argument && !$argument instanceof Reference && !$argument instanceof Definition) { - throw new InvalidArgumentException(sprintf('Invalid service "%s": the value of argument "%s" of method "%s()" must be null, an instance of %s or an instance of %s, %s given.', $this->currentId, $key, $class !== $this->currentId ? $class.'::'.$method : $method, Reference::class, Definition::class, \gettype($argument))); - } - - $typeFound = false; - foreach ($parameters as $j => $p) { - if (!\array_key_exists($j, $resolvedArguments) && ProxyHelper::getTypeHint($r, $p, true) === $key) { - $resolvedArguments[$j] = $argument; - $typeFound = true; - } - } - - if (!$typeFound) { - throw new InvalidArgumentException(sprintf('Invalid service "%s": method "%s()" has no argument type-hinted as "%s". Check your service definition.', $this->currentId, $class !== $this->currentId ? $class.'::'.$method : $method, $key)); - } - } - - if ($resolvedArguments !== $call[1]) { - ksort($resolvedArguments); - $calls[$i][1] = $resolvedArguments; - } - } - - list(, $arguments) = array_pop($calls); - - if ($arguments !== $value->getArguments()) { - $value->setArguments($arguments); - } - if ($calls !== $value->getMethodCalls()) { - $value->setMethodCalls($calls); - } - - return parent::processValue($value, $isRoot); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveParameterPlaceHoldersPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveParameterPlaceHoldersPass.php deleted file mode 100644 index 2dec13f..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveParameterPlaceHoldersPass.php +++ /dev/null @@ -1,87 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException; - -/** - * Resolves all parameter placeholders "%somevalue%" to their real values. - * - * @author Johannes M. Schmitt - */ -class ResolveParameterPlaceHoldersPass extends AbstractRecursivePass -{ - private $bag; - private $resolveArrays; - - public function __construct(bool $resolveArrays = true) - { - $this->resolveArrays = $resolveArrays; - } - - /** - * {@inheritdoc} - * - * @throws ParameterNotFoundException - */ - public function process(ContainerBuilder $container) - { - $this->bag = $container->getParameterBag(); - - try { - parent::process($container); - - $aliases = []; - foreach ($container->getAliases() as $name => $target) { - $this->currentId = $name; - $aliases[$this->bag->resolveValue($name)] = $target; - } - $container->setAliases($aliases); - } catch (ParameterNotFoundException $e) { - $e->setSourceId($this->currentId); - - throw $e; - } - - $this->bag->resolve(); - $this->bag = null; - } - - protected function processValue($value, $isRoot = false) - { - if (\is_string($value)) { - $v = $this->bag->resolveValue($value); - - return $this->resolveArrays || !$v || !\is_array($v) ? $v : $value; - } - if ($value instanceof Definition) { - $value->setBindings($this->processValue($value->getBindings())); - $changes = $value->getChanges(); - if (isset($changes['class'])) { - $value->setClass($this->bag->resolveValue($value->getClass())); - } - if (isset($changes['file'])) { - $value->setFile($this->bag->resolveValue($value->getFile())); - } - } - - $value = parent::processValue($value, $isRoot); - - if ($value && \is_array($value)) { - $value = array_combine($this->bag->resolveValue(array_keys($value)), $value); - } - - return $value; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolvePrivatesPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolvePrivatesPass.php deleted file mode 100644 index 1bd9934..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolvePrivatesPass.php +++ /dev/null @@ -1,40 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerBuilder; - -/** - * @author Nicolas Grekas - */ -class ResolvePrivatesPass implements CompilerPassInterface -{ - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - foreach ($container->getDefinitions() as $id => $definition) { - if ($definition->isPrivate()) { - $definition->setPublic(false); - $definition->setPrivate(true); - } - } - - foreach ($container->getAliases() as $id => $alias) { - if ($alias->isPrivate()) { - $alias->setPublic(false); - $alias->setPrivate(true); - } - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveReferencesToAliasesPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveReferencesToAliasesPass.php deleted file mode 100644 index bf9ea2b..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveReferencesToAliasesPass.php +++ /dev/null @@ -1,80 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException; -use Symfony\Component\DependencyInjection\Reference; - -/** - * Replaces all references to aliases with references to the actual service. - * - * @author Johannes M. Schmitt - */ -class ResolveReferencesToAliasesPass extends AbstractRecursivePass -{ - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - parent::process($container); - - foreach ($container->getAliases() as $id => $alias) { - $aliasId = (string) $alias; - $this->currentId = $id; - - if ($aliasId !== $defId = $this->getDefinitionId($aliasId, $container)) { - $container->setAlias($id, $defId)->setPublic($alias->isPublic())->setPrivate($alias->isPrivate()); - } - } - } - - /** - * {@inheritdoc} - */ - protected function processValue($value, $isRoot = false) - { - if (!$value instanceof Reference) { - return parent::processValue($value, $isRoot); - } - - $defId = $this->getDefinitionId($id = (string) $value, $this->container); - - return $defId !== $id ? new Reference($defId, $value->getInvalidBehavior()) : $value; - } - - private function getDefinitionId(string $id, ContainerBuilder $container): string - { - if (!$container->hasAlias($id)) { - return $id; - } - - $alias = $container->getAlias($id); - - if ($alias->isDeprecated()) { - @trigger_error(sprintf('%s. It is being referenced by the "%s" %s.', rtrim($alias->getDeprecationMessage($id), '. '), $this->currentId, $container->hasDefinition($this->currentId) ? 'service' : 'alias'), E_USER_DEPRECATED); - } - - $seen = []; - do { - if (isset($seen[$id])) { - throw new ServiceCircularReferenceException($id, array_merge(array_keys($seen), [$id])); - } - - $seen[$id] = true; - $id = (string) $container->getAlias($id); - } while ($container->hasAlias($id)); - - return $id; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveServiceSubscribersPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveServiceSubscribersPass.php deleted file mode 100644 index 399f349..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveServiceSubscribersPass.php +++ /dev/null @@ -1,52 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Psr\Container\ContainerInterface; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Contracts\Service\ServiceProviderInterface; - -/** - * Compiler pass to inject their service locator to service subscribers. - * - * @author Nicolas Grekas - */ -class ResolveServiceSubscribersPass extends AbstractRecursivePass -{ - private $serviceLocator; - - protected function processValue($value, $isRoot = false) - { - if ($value instanceof Reference && $this->serviceLocator && \in_array((string) $value, [ContainerInterface::class, ServiceProviderInterface::class], true)) { - return new Reference($this->serviceLocator); - } - - if (!$value instanceof Definition) { - return parent::processValue($value, $isRoot); - } - - $serviceLocator = $this->serviceLocator; - $this->serviceLocator = null; - - if ($value->hasTag('container.service_subscriber.locator')) { - $this->serviceLocator = $value->getTag('container.service_subscriber.locator')[0]['id']; - $value->clearTag('container.service_subscriber.locator'); - } - - try { - return parent::processValue($value); - } finally { - $this->serviceLocator = $serviceLocator; - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveTaggedIteratorArgumentPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveTaggedIteratorArgumentPass.php deleted file mode 100644 index a430572..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveTaggedIteratorArgumentPass.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; - -/** - * Resolves all TaggedIteratorArgument arguments. - * - * @author Roland Franssen - */ -class ResolveTaggedIteratorArgumentPass extends AbstractRecursivePass -{ - use PriorityTaggedServiceTrait; - - /** - * {@inheritdoc} - */ - protected function processValue($value, $isRoot = false) - { - if (!$value instanceof TaggedIteratorArgument) { - return parent::processValue($value, $isRoot); - } - - $value->setValues($this->findAndSortTaggedServices($value, $this->container)); - - return $value; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceLocatorTagPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceLocatorTagPass.php deleted file mode 100644 index 5fdbe56..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceLocatorTagPass.php +++ /dev/null @@ -1,135 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Alias; -use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\DependencyInjection\ServiceLocator; - -/** - * Applies the "container.service_locator" tag by wrapping references into ServiceClosureArgument instances. - * - * @author Nicolas Grekas - */ -final class ServiceLocatorTagPass extends AbstractRecursivePass -{ - use PriorityTaggedServiceTrait; - - protected function processValue($value, $isRoot = false) - { - if ($value instanceof ServiceLocatorArgument) { - if ($value->getTaggedIteratorArgument()) { - $value->setValues($this->findAndSortTaggedServices($value->getTaggedIteratorArgument(), $this->container)); - } - - return self::register($this->container, $value->getValues()); - } - - if (!$value instanceof Definition || !$value->hasTag('container.service_locator')) { - return parent::processValue($value, $isRoot); - } - - if (!$value->getClass()) { - $value->setClass(ServiceLocator::class); - } - - $arguments = $value->getArguments(); - if (!isset($arguments[0]) || !\is_array($arguments[0])) { - throw new InvalidArgumentException(sprintf('Invalid definition for service "%s": an array of references is expected as first argument when the "container.service_locator" tag is set.', $this->currentId)); - } - - $i = 0; - - foreach ($arguments[0] as $k => $v) { - if ($v instanceof ServiceClosureArgument) { - continue; - } - if (!$v instanceof Reference) { - throw new InvalidArgumentException(sprintf('Invalid definition for service "%s": an array of references is expected as first argument when the "container.service_locator" tag is set, "%s" found for key "%s".', $this->currentId, \is_object($v) ? \get_class($v) : \gettype($v), $k)); - } - - if ($i === $k) { - unset($arguments[0][$k]); - - $k = (string) $v; - ++$i; - } elseif (\is_int($k)) { - $i = null; - } - $arguments[0][$k] = new ServiceClosureArgument($v); - } - ksort($arguments[0]); - - $value->setArguments($arguments); - - $id = '.service_locator.'.ContainerBuilder::hash($value); - - if ($isRoot) { - if ($id !== $this->currentId) { - $this->container->setAlias($id, new Alias($this->currentId, false)); - } - - return $value; - } - - $this->container->setDefinition($id, $value->setPublic(false)); - - return new Reference($id); - } - - /** - * @param Reference[] $refMap - */ - public static function register(ContainerBuilder $container, array $refMap, string $callerId = null): Reference - { - foreach ($refMap as $id => $ref) { - if (!$ref instanceof Reference) { - throw new InvalidArgumentException(sprintf('Invalid service locator definition: only services can be referenced, "%s" found for key "%s". Inject parameter values using constructors instead.', \is_object($ref) ? \get_class($ref) : \gettype($ref), $id)); - } - $refMap[$id] = new ServiceClosureArgument($ref); - } - ksort($refMap); - - $locator = (new Definition(ServiceLocator::class)) - ->addArgument($refMap) - ->setPublic(false) - ->addTag('container.service_locator'); - - if (null !== $callerId && $container->hasDefinition($callerId)) { - $locator->setBindings($container->getDefinition($callerId)->getBindings()); - } - - if (!$container->hasDefinition($id = '.service_locator.'.ContainerBuilder::hash($locator))) { - $container->setDefinition($id, $locator); - } - - if (null !== $callerId) { - $locatorId = $id; - // Locators are shared when they hold the exact same list of factories; - // to have them specialized per consumer service, we use a cloning factory - // to derivate customized instances from the prototype one. - $container->register($id .= '.'.$callerId, ServiceLocator::class) - ->setPublic(false) - ->setFactory([new Reference($locatorId), 'withContext']) - ->addTag('container.service_locator_context', ['id' => $callerId]) - ->addArgument($callerId) - ->addArgument(new Reference('service_container')); - } - - return new Reference($id); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraph.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraph.php deleted file mode 100644 index 308abc6..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraph.php +++ /dev/null @@ -1,98 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; - -/** - * This is a directed graph of your services. - * - * This information can be used by your compiler passes instead of collecting - * it themselves which improves performance quite a lot. - * - * @author Johannes M. Schmitt - * - * @final - */ -class ServiceReferenceGraph -{ - /** - * @var ServiceReferenceGraphNode[] - */ - private $nodes = []; - - public function hasNode(string $id): bool - { - return isset($this->nodes[$id]); - } - - /** - * Gets a node by identifier. - * - * @throws InvalidArgumentException if no node matches the supplied identifier - */ - public function getNode(string $id): ServiceReferenceGraphNode - { - if (!isset($this->nodes[$id])) { - throw new InvalidArgumentException(sprintf('There is no node with id "%s".', $id)); - } - - return $this->nodes[$id]; - } - - /** - * Returns all nodes. - * - * @return ServiceReferenceGraphNode[] - */ - public function getNodes(): array - { - return $this->nodes; - } - - /** - * Clears all nodes. - */ - public function clear() - { - foreach ($this->nodes as $node) { - $node->clear(); - } - $this->nodes = []; - } - - /** - * Connects 2 nodes together in the Graph. - */ - public function connect(?string $sourceId, $sourceValue, ?string $destId, $destValue = null, $reference = null, bool $lazy = false, bool $weak = false, bool $byConstructor = false) - { - if (null === $sourceId || null === $destId) { - return; - } - - $sourceNode = $this->createNode($sourceId, $sourceValue); - $destNode = $this->createNode($destId, $destValue); - $edge = new ServiceReferenceGraphEdge($sourceNode, $destNode, $reference, $lazy, $weak, $byConstructor); - - $sourceNode->addOutEdge($edge); - $destNode->addInEdge($edge); - } - - private function createNode(string $id, $value): ServiceReferenceGraphNode - { - if (isset($this->nodes[$id]) && $this->nodes[$id]->getValue() === $value) { - return $this->nodes[$id]; - } - - return $this->nodes[$id] = new ServiceReferenceGraphNode($id, $value); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphEdge.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphEdge.php deleted file mode 100644 index 9861456..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphEdge.php +++ /dev/null @@ -1,99 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -/** - * Represents an edge in your service graph. - * - * Value is typically a reference. - * - * @author Johannes M. Schmitt - */ -class ServiceReferenceGraphEdge -{ - private $sourceNode; - private $destNode; - private $value; - private $lazy; - private $weak; - private $byConstructor; - - public function __construct(ServiceReferenceGraphNode $sourceNode, ServiceReferenceGraphNode $destNode, $value = null, bool $lazy = false, bool $weak = false, bool $byConstructor = false) - { - $this->sourceNode = $sourceNode; - $this->destNode = $destNode; - $this->value = $value; - $this->lazy = $lazy; - $this->weak = $weak; - $this->byConstructor = $byConstructor; - } - - /** - * Returns the value of the edge. - * - * @return mixed - */ - public function getValue() - { - return $this->value; - } - - /** - * Returns the source node. - * - * @return ServiceReferenceGraphNode - */ - public function getSourceNode() - { - return $this->sourceNode; - } - - /** - * Returns the destination node. - * - * @return ServiceReferenceGraphNode - */ - public function getDestNode() - { - return $this->destNode; - } - - /** - * Returns true if the edge is lazy, meaning it's a dependency not requiring direct instantiation. - * - * @return bool - */ - public function isLazy() - { - return $this->lazy; - } - - /** - * Returns true if the edge is weak, meaning it shouldn't prevent removing the target service. - * - * @return bool - */ - public function isWeak() - { - return $this->weak; - } - - /** - * Returns true if the edge links with a constructor argument. - * - * @return bool - */ - public function isReferencedByConstructor() - { - return $this->byConstructor; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphNode.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphNode.php deleted file mode 100644 index fec1424..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphNode.php +++ /dev/null @@ -1,118 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\DependencyInjection\Alias; -use Symfony\Component\DependencyInjection\Definition; - -/** - * Represents a node in your service graph. - * - * Value is typically a definition, or an alias. - * - * @author Johannes M. Schmitt - */ -class ServiceReferenceGraphNode -{ - private $id; - private $inEdges = []; - private $outEdges = []; - private $value; - - /** - * @param string $id The node identifier - * @param mixed $value The node value - */ - public function __construct(string $id, $value) - { - $this->id = $id; - $this->value = $value; - } - - public function addInEdge(ServiceReferenceGraphEdge $edge) - { - $this->inEdges[] = $edge; - } - - public function addOutEdge(ServiceReferenceGraphEdge $edge) - { - $this->outEdges[] = $edge; - } - - /** - * Checks if the value of this node is an Alias. - * - * @return bool True if the value is an Alias instance - */ - public function isAlias() - { - return $this->value instanceof Alias; - } - - /** - * Checks if the value of this node is a Definition. - * - * @return bool True if the value is a Definition instance - */ - public function isDefinition() - { - return $this->value instanceof Definition; - } - - /** - * Returns the identifier. - * - * @return string - */ - public function getId() - { - return $this->id; - } - - /** - * Returns the in edges. - * - * @return ServiceReferenceGraphEdge[] - */ - public function getInEdges() - { - return $this->inEdges; - } - - /** - * Returns the out edges. - * - * @return ServiceReferenceGraphEdge[] - */ - public function getOutEdges() - { - return $this->outEdges; - } - - /** - * Returns the value of this Node. - * - * @return mixed The value - */ - public function getValue() - { - return $this->value; - } - - /** - * Clears all edges. - */ - public function clear() - { - $this->inEdges = $this->outEdges = []; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ValidateEnvPlaceholdersPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ValidateEnvPlaceholdersPass.php deleted file mode 100644 index 8fd84fa..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ValidateEnvPlaceholdersPass.php +++ /dev/null @@ -1,120 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Compiler; - -use Symfony\Component\Config\Definition\BaseNode; -use Symfony\Component\Config\Definition\Exception\TreeWithoutRootNodeException; -use Symfony\Component\Config\Definition\Processor; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Extension\ConfigurationExtensionInterface; -use Symfony\Component\DependencyInjection\ParameterBag\EnvPlaceholderParameterBag; -use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag; - -/** - * Validates environment variable placeholders used in extension configuration with dummy values. - * - * @author Roland Franssen - */ -class ValidateEnvPlaceholdersPass implements CompilerPassInterface -{ - private static $typeFixtures = ['array' => [], 'bool' => false, 'float' => 0.0, 'int' => 0, 'string' => '']; - - private $extensionConfig = []; - - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - $this->extensionConfig = []; - - if (!class_exists(BaseNode::class) || !$extensions = $container->getExtensions()) { - return; - } - - $resolvingBag = $container->getParameterBag(); - if (!$resolvingBag instanceof EnvPlaceholderParameterBag) { - return; - } - - $defaultBag = new ParameterBag($resolvingBag->all()); - $envTypes = $resolvingBag->getProvidedTypes(); - try { - foreach ($resolvingBag->getEnvPlaceholders() + $resolvingBag->getUnusedEnvPlaceholders() as $env => $placeholders) { - $values = []; - if (false === $i = strpos($env, ':')) { - $default = $defaultBag->has("env($env)") ? $defaultBag->get("env($env)") : self::$typeFixtures['string']; - $defaultType = null !== $default ? self::getType($default) : 'string'; - $values[$defaultType] = $default; - } else { - $prefix = substr($env, 0, $i); - foreach ($envTypes[$prefix] ?? ['string'] as $type) { - $values[$type] = self::$typeFixtures[$type] ?? null; - } - } - foreach ($placeholders as $placeholder) { - BaseNode::setPlaceholder($placeholder, $values); - } - } - - $processor = new Processor(); - - foreach ($extensions as $name => $extension) { - if (!$extension instanceof ConfigurationExtensionInterface || !$config = array_filter($container->getExtensionConfig($name))) { - // this extension has no semantic configuration or was not called - continue; - } - - $config = $resolvingBag->resolveValue($config); - - if (null === $configuration = $extension->getConfiguration($config, $container)) { - continue; - } - - try { - $this->extensionConfig[$name] = $processor->processConfiguration($configuration, $config); - } catch (TreeWithoutRootNodeException $e) { - } - } - } finally { - BaseNode::resetPlaceholders(); - } - - $resolvingBag->clearUnusedEnvPlaceholders(); - } - - /** - * @internal - */ - public function getExtensionConfig(): array - { - try { - return $this->extensionConfig; - } finally { - $this->extensionConfig = []; - } - } - - private static function getType($value): string - { - switch ($type = \gettype($value)) { - case 'boolean': - return 'bool'; - case 'double': - return 'float'; - case 'integer': - return 'int'; - } - - return $type; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Config/ContainerParametersResource.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Config/ContainerParametersResource.php deleted file mode 100644 index e9a4fff..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Config/ContainerParametersResource.php +++ /dev/null @@ -1,50 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Config; - -use Symfony\Component\Config\Resource\ResourceInterface; - -/** - * Tracks container parameters. - * - * @author Maxime Steinhausser - * - * @final since Symfony 4.3 - */ -class ContainerParametersResource implements ResourceInterface -{ - private $parameters; - - /** - * @param array $parameters The container parameters to track - */ - public function __construct(array $parameters) - { - $this->parameters = $parameters; - } - - /** - * {@inheritdoc} - */ - public function __toString() - { - return 'container_parameters_'.md5(serialize($this->parameters)); - } - - /** - * @return array Tracked parameters - */ - public function getParameters() - { - return $this->parameters; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Config/ContainerParametersResourceChecker.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Config/ContainerParametersResourceChecker.php deleted file mode 100644 index 6ed77e3..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Config/ContainerParametersResourceChecker.php +++ /dev/null @@ -1,52 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Config; - -use Symfony\Component\Config\Resource\ResourceInterface; -use Symfony\Component\Config\ResourceCheckerInterface; -use Symfony\Component\DependencyInjection\ContainerInterface; - -/** - * @author Maxime Steinhausser - */ -class ContainerParametersResourceChecker implements ResourceCheckerInterface -{ - /** @var ContainerInterface */ - private $container; - - public function __construct(ContainerInterface $container) - { - $this->container = $container; - } - - /** - * {@inheritdoc} - */ - public function supports(ResourceInterface $metadata) - { - return $metadata instanceof ContainerParametersResource; - } - - /** - * {@inheritdoc} - */ - public function isFresh(ResourceInterface $resource, $timestamp) - { - foreach ($resource->getParameters() as $key => $value) { - if (!$this->container->hasParameter($key) || $this->container->getParameter($key) !== $value) { - return false; - } - } - - return true; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Container.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Container.php deleted file mode 100644 index 00bacd2..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Container.php +++ /dev/null @@ -1,456 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -use Symfony\Component\DependencyInjection\Exception\EnvNotFoundException; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\ParameterCircularReferenceException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException; -use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; -use Symfony\Component\DependencyInjection\ParameterBag\EnvPlaceholderParameterBag; -use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag; -use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; -use Symfony\Contracts\Service\ResetInterface; - -/** - * Container is a dependency injection container. - * - * It gives access to object instances (services). - * Services and parameters are simple key/pair stores. - * The container can have four possible behaviors when a service - * does not exist (or is not initialized for the last case): - * - * * EXCEPTION_ON_INVALID_REFERENCE: Throws an exception (the default) - * * NULL_ON_INVALID_REFERENCE: Returns null - * * IGNORE_ON_INVALID_REFERENCE: Ignores the wrapping command asking for the reference - * (for instance, ignore a setter if the service does not exist) - * * IGNORE_ON_UNINITIALIZED_REFERENCE: Ignores/returns null for uninitialized services or invalid references - * - * @author Fabien Potencier - * @author Johannes M. Schmitt - */ -class Container implements ResettableContainerInterface -{ - protected $parameterBag; - protected $services = []; - protected $privates = []; - protected $fileMap = []; - protected $methodMap = []; - protected $factories = []; - protected $aliases = []; - protected $loading = []; - protected $resolving = []; - protected $syntheticIds = []; - - private $envCache = []; - private $compiled = false; - private $getEnv; - - public function __construct(ParameterBagInterface $parameterBag = null) - { - $this->parameterBag = $parameterBag ?: new EnvPlaceholderParameterBag(); - } - - /** - * Compiles the container. - * - * This method does two things: - * - * * Parameter values are resolved; - * * The parameter bag is frozen. - */ - public function compile() - { - $this->parameterBag->resolve(); - - $this->parameterBag = new FrozenParameterBag($this->parameterBag->all()); - - $this->compiled = true; - } - - /** - * Returns true if the container is compiled. - * - * @return bool - */ - public function isCompiled() - { - return $this->compiled; - } - - /** - * Gets the service container parameter bag. - * - * @return ParameterBagInterface A ParameterBagInterface instance - */ - public function getParameterBag() - { - return $this->parameterBag; - } - - /** - * Gets a parameter. - * - * @param string $name The parameter name - * - * @return mixed The parameter value - * - * @throws InvalidArgumentException if the parameter is not defined - */ - public function getParameter($name) - { - return $this->parameterBag->get($name); - } - - /** - * Checks if a parameter exists. - * - * @param string $name The parameter name - * - * @return bool The presence of parameter in container - */ - public function hasParameter($name) - { - return $this->parameterBag->has($name); - } - - /** - * Sets a parameter. - * - * @param string $name The parameter name - * @param mixed $value The parameter value - */ - public function setParameter($name, $value) - { - $this->parameterBag->set($name, $value); - } - - /** - * Sets a service. - * - * Setting a synthetic service to null resets it: has() returns false and get() - * behaves in the same way as if the service was never created. - * - * @param string $id The service identifier - * @param object|null $service The service instance - */ - public function set($id, $service) - { - // Runs the internal initializer; used by the dumped container to include always-needed files - if (isset($this->privates['service_container']) && $this->privates['service_container'] instanceof \Closure) { - $initialize = $this->privates['service_container']; - unset($this->privates['service_container']); - $initialize(); - } - - if ('service_container' === $id) { - throw new InvalidArgumentException('You cannot set service "service_container".'); - } - - if (!(isset($this->fileMap[$id]) || isset($this->methodMap[$id]))) { - if (isset($this->syntheticIds[$id]) || !isset($this->getRemovedIds()[$id])) { - // no-op - } elseif (null === $service) { - throw new InvalidArgumentException(sprintf('The "%s" service is private, you cannot unset it.', $id)); - } else { - throw new InvalidArgumentException(sprintf('The "%s" service is private, you cannot replace it.', $id)); - } - } elseif (isset($this->services[$id])) { - throw new InvalidArgumentException(sprintf('The "%s" service is already initialized, you cannot replace it.', $id)); - } - - if (isset($this->aliases[$id])) { - unset($this->aliases[$id]); - } - - if (null === $service) { - unset($this->services[$id]); - - return; - } - - $this->services[$id] = $service; - } - - /** - * Returns true if the given service is defined. - * - * @param string $id The service identifier - * - * @return bool true if the service is defined, false otherwise - */ - public function has($id) - { - if (isset($this->aliases[$id])) { - $id = $this->aliases[$id]; - } - if (isset($this->services[$id])) { - return true; - } - if ('service_container' === $id) { - return true; - } - - return isset($this->fileMap[$id]) || isset($this->methodMap[$id]); - } - - /** - * Gets a service. - * - * @param string $id The service identifier - * @param int $invalidBehavior The behavior when the service does not exist - * - * @return object|null The associated service - * - * @throws ServiceCircularReferenceException When a circular reference is detected - * @throws ServiceNotFoundException When the service is not defined - * @throws \Exception if an exception has been thrown when the service has been resolved - * - * @see Reference - */ - public function get($id, $invalidBehavior = /* self::EXCEPTION_ON_INVALID_REFERENCE */ 1) - { - $service = $this->services[$id] - ?? $this->services[$id = $this->aliases[$id] ?? $id] - ?? ('service_container' === $id ? $this : ($this->factories[$id] ?? [$this, 'make'])($id, $invalidBehavior)); - - if (!\is_object($service) && null !== $service) { - @trigger_error(sprintf('Non-object services are deprecated since Symfony 4.4, please fix the "%s" service which is of type "%s" right now.', $id, \gettype($service)), E_USER_DEPRECATED); - } - - return $service; - } - - /** - * Creates a service. - * - * As a separate method to allow "get()" to use the really fast `??` operator. - */ - private function make(string $id, int $invalidBehavior) - { - if (isset($this->loading[$id])) { - throw new ServiceCircularReferenceException($id, array_merge(array_keys($this->loading), [$id])); - } - - $this->loading[$id] = true; - - try { - if (isset($this->fileMap[$id])) { - return /* self::IGNORE_ON_UNINITIALIZED_REFERENCE */ 4 === $invalidBehavior ? null : $this->load($this->fileMap[$id]); - } elseif (isset($this->methodMap[$id])) { - return /* self::IGNORE_ON_UNINITIALIZED_REFERENCE */ 4 === $invalidBehavior ? null : $this->{$this->methodMap[$id]}(); - } - } catch (\Exception $e) { - unset($this->services[$id]); - - throw $e; - } finally { - unset($this->loading[$id]); - } - - if (/* self::EXCEPTION_ON_INVALID_REFERENCE */ 1 === $invalidBehavior) { - if (!$id) { - throw new ServiceNotFoundException($id); - } - if (isset($this->syntheticIds[$id])) { - throw new ServiceNotFoundException($id, null, null, [], sprintf('The "%s" service is synthetic, it needs to be set at boot time before it can be used.', $id)); - } - if (isset($this->getRemovedIds()[$id])) { - throw new ServiceNotFoundException($id, null, null, [], sprintf('The "%s" service or alias has been removed or inlined when the container was compiled. You should either make it public, or stop using the container directly and use dependency injection instead.', $id)); - } - - $alternatives = []; - foreach ($this->getServiceIds() as $knownId) { - if ('' === $knownId || '.' === $knownId[0]) { - continue; - } - $lev = levenshtein($id, $knownId); - if ($lev <= \strlen($id) / 3 || false !== strpos($knownId, $id)) { - $alternatives[] = $knownId; - } - } - - throw new ServiceNotFoundException($id, null, null, $alternatives); - } - - return null; - } - - /** - * Returns true if the given service has actually been initialized. - * - * @param string $id The service identifier - * - * @return bool true if service has already been initialized, false otherwise - */ - public function initialized($id) - { - if (isset($this->aliases[$id])) { - $id = $this->aliases[$id]; - } - - if ('service_container' === $id) { - return false; - } - - return isset($this->services[$id]); - } - - /** - * {@inheritdoc} - */ - public function reset() - { - $services = $this->services + $this->privates; - $this->services = $this->factories = $this->privates = []; - - foreach ($services as $service) { - try { - if ($service instanceof ResetInterface) { - $service->reset(); - } - } catch (\Throwable $e) { - continue; - } - } - } - - /** - * Gets all service ids. - * - * @return string[] An array of all defined service ids - */ - public function getServiceIds() - { - return array_map('strval', array_unique(array_merge(['service_container'], array_keys($this->fileMap), array_keys($this->methodMap), array_keys($this->aliases), array_keys($this->services)))); - } - - /** - * Gets service ids that existed at compile time. - * - * @return array - */ - public function getRemovedIds() - { - return []; - } - - /** - * Camelizes a string. - * - * @param string $id A string to camelize - * - * @return string The camelized string - */ - public static function camelize($id) - { - return strtr(ucwords(strtr($id, ['_' => ' ', '.' => '_ ', '\\' => '_ '])), [' ' => '']); - } - - /** - * A string to underscore. - * - * @param string $id The string to underscore - * - * @return string The underscored string - */ - public static function underscore($id) - { - return strtolower(preg_replace(['/([A-Z]+)([A-Z][a-z])/', '/([a-z\d])([A-Z])/'], ['\\1_\\2', '\\1_\\2'], str_replace('_', '.', $id))); - } - - /** - * Creates a service by requiring its factory file. - */ - protected function load($file) - { - return require $file; - } - - /** - * Fetches a variable from the environment. - * - * @param string $name The name of the environment variable - * - * @return mixed The value to use for the provided environment variable name - * - * @throws EnvNotFoundException When the environment variable is not found and has no default value - */ - protected function getEnv($name) - { - if (isset($this->resolving[$envName = "env($name)"])) { - throw new ParameterCircularReferenceException(array_keys($this->resolving)); - } - if (isset($this->envCache[$name]) || \array_key_exists($name, $this->envCache)) { - return $this->envCache[$name]; - } - if (!$this->has($id = 'container.env_var_processors_locator')) { - $this->set($id, new ServiceLocator([])); - } - if (!$this->getEnv) { - $this->getEnv = new \ReflectionMethod($this, __FUNCTION__); - $this->getEnv->setAccessible(true); - $this->getEnv = $this->getEnv->getClosure($this); - } - $processors = $this->get($id); - - if (false !== $i = strpos($name, ':')) { - $prefix = substr($name, 0, $i); - $localName = substr($name, 1 + $i); - } else { - $prefix = 'string'; - $localName = $name; - } - $processor = $processors->has($prefix) ? $processors->get($prefix) : new EnvVarProcessor($this); - - $this->resolving[$envName] = true; - try { - return $this->envCache[$name] = $processor->getEnv($prefix, $localName, $this->getEnv); - } finally { - unset($this->resolving[$envName]); - } - } - - /** - * @param string|false $registry - * @param string|bool $load - * - * @return mixed - * - * @internal - */ - final protected function getService($registry, string $id, ?string $method, $load) - { - if ('service_container' === $id) { - return $this; - } - if (\is_string($load)) { - throw new RuntimeException($load); - } - if (null === $method) { - return false !== $registry ? $this->{$registry}[$id] ?? null : null; - } - if (false !== $registry) { - return $this->{$registry}[$id] ?? $this->{$registry}[$id] = $load ? $this->load($method) : $this->{$method}(); - } - if (!$load) { - return $this->{$method}(); - } - - return ($factory = $this->factories[$id] ?? $this->factories['service_container'][$id] ?? null) ? $factory() : $this->load($method); - } - - private function __clone() - { - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ContainerAwareInterface.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/ContainerAwareInterface.php deleted file mode 100644 index e7b9d57..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ContainerAwareInterface.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -/** - * ContainerAwareInterface should be implemented by classes that depends on a Container. - * - * @author Fabien Potencier - */ -interface ContainerAwareInterface -{ - /** - * Sets the container. - */ - public function setContainer(ContainerInterface $container = null); -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ContainerAwareTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/ContainerAwareTrait.php deleted file mode 100644 index ee1ea2c..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ContainerAwareTrait.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -/** - * ContainerAware trait. - * - * @author Fabien Potencier - */ -trait ContainerAwareTrait -{ - /** - * @var ContainerInterface - */ - protected $container; - - public function setContainer(ContainerInterface $container = null) - { - $this->container = $container; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ContainerBuilder.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/ContainerBuilder.php deleted file mode 100644 index 247a021..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ContainerBuilder.php +++ /dev/null @@ -1,1672 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -use Psr\Container\ContainerInterface as PsrContainerInterface; -use Symfony\Component\Config\Resource\ClassExistenceResource; -use Symfony\Component\Config\Resource\ComposerResource; -use Symfony\Component\Config\Resource\DirectoryResource; -use Symfony\Component\Config\Resource\FileExistenceResource; -use Symfony\Component\Config\Resource\FileResource; -use Symfony\Component\Config\Resource\GlobResource; -use Symfony\Component\Config\Resource\ReflectionClassResource; -use Symfony\Component\Config\Resource\ResourceInterface; -use Symfony\Component\DependencyInjection\Argument\IteratorArgument; -use Symfony\Component\DependencyInjection\Argument\RewindableGenerator; -use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use Symfony\Component\DependencyInjection\Argument\ServiceLocator; -use Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; -use Symfony\Component\DependencyInjection\Compiler\Compiler; -use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; -use Symfony\Component\DependencyInjection\Compiler\PassConfig; -use Symfony\Component\DependencyInjection\Compiler\ResolveEnvPlaceholdersPass; -use Symfony\Component\DependencyInjection\Exception\BadMethodCallException; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\LogicException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException; -use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; -use Symfony\Component\DependencyInjection\Extension\ExtensionInterface; -use Symfony\Component\DependencyInjection\LazyProxy\Instantiator\InstantiatorInterface; -use Symfony\Component\DependencyInjection\LazyProxy\Instantiator\RealServiceInstantiator; -use Symfony\Component\DependencyInjection\ParameterBag\EnvPlaceholderParameterBag; -use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag; -use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; -use Symfony\Component\ExpressionLanguage\Expression; -use Symfony\Component\ExpressionLanguage\ExpressionFunctionProviderInterface; - -/** - * ContainerBuilder is a DI container that provides an API to easily describe services. - * - * @author Fabien Potencier - */ -class ContainerBuilder extends Container implements TaggedContainerInterface -{ - /** - * @var ExtensionInterface[] - */ - private $extensions = []; - - /** - * @var ExtensionInterface[] - */ - private $extensionsByNs = []; - - /** - * @var Definition[] - */ - private $definitions = []; - - /** - * @var Alias[] - */ - private $aliasDefinitions = []; - - /** - * @var ResourceInterface[] - */ - private $resources = []; - - private $extensionConfigs = []; - - /** - * @var Compiler - */ - private $compiler; - - private $trackResources; - - /** - * @var InstantiatorInterface|null - */ - private $proxyInstantiator; - - /** - * @var ExpressionLanguage|null - */ - private $expressionLanguage; - - /** - * @var ExpressionFunctionProviderInterface[] - */ - private $expressionLanguageProviders = []; - - /** - * @var string[] with tag names used by findTaggedServiceIds - */ - private $usedTags = []; - - /** - * @var string[][] a map of env var names to their placeholders - */ - private $envPlaceholders = []; - - /** - * @var int[] a map of env vars to their resolution counter - */ - private $envCounters = []; - - /** - * @var string[] the list of vendor directories - */ - private $vendors; - - private $autoconfiguredInstanceof = []; - - private $removedIds = []; - - private $removedBindingIds = []; - - private static $internalTypes = [ - 'int' => true, - 'float' => true, - 'string' => true, - 'bool' => true, - 'resource' => true, - 'object' => true, - 'array' => true, - 'null' => true, - 'callable' => true, - 'iterable' => true, - 'mixed' => true, - ]; - - public function __construct(ParameterBagInterface $parameterBag = null) - { - parent::__construct($parameterBag); - - $this->trackResources = interface_exists('Symfony\Component\Config\Resource\ResourceInterface'); - $this->setDefinition('service_container', (new Definition(ContainerInterface::class))->setSynthetic(true)->setPublic(true)); - $this->setAlias(PsrContainerInterface::class, new Alias('service_container', false)); - $this->setAlias(ContainerInterface::class, new Alias('service_container', false)); - } - - /** - * @var \ReflectionClass[] a list of class reflectors - */ - private $classReflectors; - - /** - * Sets the track resources flag. - * - * If you are not using the loaders and therefore don't want - * to depend on the Config component, set this flag to false. - * - * @param bool $track True if you want to track resources, false otherwise - */ - public function setResourceTracking($track) - { - $this->trackResources = (bool) $track; - } - - /** - * Checks if resources are tracked. - * - * @return bool true If resources are tracked, false otherwise - */ - public function isTrackingResources() - { - return $this->trackResources; - } - - /** - * Sets the instantiator to be used when fetching proxies. - */ - public function setProxyInstantiator(InstantiatorInterface $proxyInstantiator) - { - $this->proxyInstantiator = $proxyInstantiator; - } - - public function registerExtension(ExtensionInterface $extension) - { - $this->extensions[$extension->getAlias()] = $extension; - - if (false !== $extension->getNamespace()) { - $this->extensionsByNs[$extension->getNamespace()] = $extension; - } - } - - /** - * Returns an extension by alias or namespace. - * - * @param string $name An alias or a namespace - * - * @return ExtensionInterface An extension instance - * - * @throws LogicException if the extension is not registered - */ - public function getExtension($name) - { - if (isset($this->extensions[$name])) { - return $this->extensions[$name]; - } - - if (isset($this->extensionsByNs[$name])) { - return $this->extensionsByNs[$name]; - } - - throw new LogicException(sprintf('Container extension "%s" is not registered', $name)); - } - - /** - * Returns all registered extensions. - * - * @return ExtensionInterface[] An array of ExtensionInterface - */ - public function getExtensions() - { - return $this->extensions; - } - - /** - * Checks if we have an extension. - * - * @param string $name The name of the extension - * - * @return bool If the extension exists - */ - public function hasExtension($name) - { - return isset($this->extensions[$name]) || isset($this->extensionsByNs[$name]); - } - - /** - * Returns an array of resources loaded to build this configuration. - * - * @return ResourceInterface[] An array of resources - */ - public function getResources() - { - return array_values($this->resources); - } - - /** - * @return $this - */ - public function addResource(ResourceInterface $resource) - { - if (!$this->trackResources) { - return $this; - } - - if ($resource instanceof GlobResource && $this->inVendors($resource->getPrefix())) { - return $this; - } - - $this->resources[(string) $resource] = $resource; - - return $this; - } - - /** - * Sets the resources for this configuration. - * - * @param ResourceInterface[] $resources An array of resources - * - * @return $this - */ - public function setResources(array $resources) - { - if (!$this->trackResources) { - return $this; - } - - $this->resources = $resources; - - return $this; - } - - /** - * Adds the object class hierarchy as resources. - * - * @param object|string $object An object instance or class name - * - * @return $this - */ - public function addObjectResource($object) - { - if ($this->trackResources) { - if (\is_object($object)) { - $object = \get_class($object); - } - if (!isset($this->classReflectors[$object])) { - $this->classReflectors[$object] = new \ReflectionClass($object); - } - $class = $this->classReflectors[$object]; - - foreach ($class->getInterfaceNames() as $name) { - if (null === $interface = &$this->classReflectors[$name]) { - $interface = new \ReflectionClass($name); - } - $file = $interface->getFileName(); - if (false !== $file && file_exists($file)) { - $this->fileExists($file); - } - } - do { - $file = $class->getFileName(); - if (false !== $file && file_exists($file)) { - $this->fileExists($file); - } - foreach ($class->getTraitNames() as $name) { - $this->addObjectResource($name); - } - } while ($class = $class->getParentClass()); - } - - return $this; - } - - /** - * Retrieves the requested reflection class and registers it for resource tracking. - * - * @throws \ReflectionException when a parent class/interface/trait is not found and $throw is true - * - * @final - */ - public function getReflectionClass(?string $class, bool $throw = true): ?\ReflectionClass - { - if (!$class = $this->getParameterBag()->resolveValue($class)) { - return null; - } - - if (isset(self::$internalTypes[$class])) { - return null; - } - - $resource = $classReflector = null; - - try { - if (isset($this->classReflectors[$class])) { - $classReflector = $this->classReflectors[$class]; - } elseif (class_exists(ClassExistenceResource::class)) { - $resource = new ClassExistenceResource($class, false); - $classReflector = $resource->isFresh(0) ? false : new \ReflectionClass($class); - } else { - $classReflector = class_exists($class) ? new \ReflectionClass($class) : false; - } - } catch (\ReflectionException $e) { - if ($throw) { - throw $e; - } - } - - if ($this->trackResources) { - if (!$classReflector) { - $this->addResource($resource ?: new ClassExistenceResource($class, false)); - } elseif (!$classReflector->isInternal()) { - $path = $classReflector->getFileName(); - - if (!$this->inVendors($path)) { - $this->addResource(new ReflectionClassResource($classReflector, $this->vendors)); - } - } - $this->classReflectors[$class] = $classReflector; - } - - return $classReflector ?: null; - } - - /** - * Checks whether the requested file or directory exists and registers the result for resource tracking. - * - * @param string $path The file or directory path for which to check the existence - * @param bool|string $trackContents Whether to track contents of the given resource. If a string is passed, - * it will be used as pattern for tracking contents of the requested directory - * - * @final - */ - public function fileExists(string $path, $trackContents = true): bool - { - $exists = file_exists($path); - - if (!$this->trackResources || $this->inVendors($path)) { - return $exists; - } - - if (!$exists) { - $this->addResource(new FileExistenceResource($path)); - - return $exists; - } - - if (is_dir($path)) { - if ($trackContents) { - $this->addResource(new DirectoryResource($path, \is_string($trackContents) ? $trackContents : null)); - } else { - $this->addResource(new GlobResource($path, '/*', false)); - } - } elseif ($trackContents) { - $this->addResource(new FileResource($path)); - } - - return $exists; - } - - /** - * Loads the configuration for an extension. - * - * @param string $extension The extension alias or namespace - * @param array $values An array of values that customizes the extension - * - * @return $this - * - * @throws BadMethodCallException When this ContainerBuilder is compiled - * @throws \LogicException if the extension is not registered - */ - public function loadFromExtension($extension, array $values = null) - { - if ($this->isCompiled()) { - throw new BadMethodCallException('Cannot load from an extension on a compiled container.'); - } - - if (\func_num_args() < 2) { - $values = []; - } - - $namespace = $this->getExtension($extension)->getAlias(); - - $this->extensionConfigs[$namespace][] = $values; - - return $this; - } - - /** - * Adds a compiler pass. - * - * @param string $type The type of compiler pass - * @param int $priority Used to sort the passes - * - * @return $this - */ - public function addCompilerPass(CompilerPassInterface $pass, $type = PassConfig::TYPE_BEFORE_OPTIMIZATION, int $priority = 0) - { - $this->getCompiler()->addPass($pass, $type, $priority); - - $this->addObjectResource($pass); - - return $this; - } - - /** - * Returns the compiler pass config which can then be modified. - * - * @return PassConfig The compiler pass config - */ - public function getCompilerPassConfig() - { - return $this->getCompiler()->getPassConfig(); - } - - /** - * Returns the compiler. - * - * @return Compiler The compiler - */ - public function getCompiler() - { - if (null === $this->compiler) { - $this->compiler = new Compiler(); - } - - return $this->compiler; - } - - /** - * Sets a service. - * - * @param string $id The service identifier - * @param object|null $service The service instance - * - * @throws BadMethodCallException When this ContainerBuilder is compiled - */ - public function set($id, $service) - { - if (!\is_object($service) && null !== $service) { - @trigger_error(sprintf('Non-object services are deprecated since Symfony 4.4, setting the "%s" service to a value of type "%s" should be avoided.', $id, \gettype($service)), E_USER_DEPRECATED); - } - - $id = (string) $id; - - if ($this->isCompiled() && (isset($this->definitions[$id]) && !$this->definitions[$id]->isSynthetic())) { - // setting a synthetic service on a compiled container is alright - throw new BadMethodCallException(sprintf('Setting service "%s" for an unknown or non-synthetic service definition on a compiled container is not allowed.', $id)); - } - - unset($this->definitions[$id], $this->aliasDefinitions[$id], $this->removedIds[$id]); - - parent::set($id, $service); - } - - /** - * Removes a service definition. - * - * @param string $id The service identifier - */ - public function removeDefinition($id) - { - if (isset($this->definitions[$id = (string) $id])) { - unset($this->definitions[$id]); - $this->removedIds[$id] = true; - } - } - - /** - * Returns true if the given service is defined. - * - * @param string $id The service identifier - * - * @return bool true if the service is defined, false otherwise - */ - public function has($id) - { - $id = (string) $id; - - return isset($this->definitions[$id]) || isset($this->aliasDefinitions[$id]) || parent::has($id); - } - - /** - * Gets a service. - * - * @param string $id The service identifier - * @param int $invalidBehavior The behavior when the service does not exist - * - * @return object|null The associated service - * - * @throws InvalidArgumentException when no definitions are available - * @throws ServiceCircularReferenceException When a circular reference is detected - * @throws ServiceNotFoundException When the service is not defined - * @throws \Exception - * - * @see Reference - */ - public function get($id, $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE) - { - if ($this->isCompiled() && isset($this->removedIds[$id = (string) $id]) && ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE >= $invalidBehavior) { - return parent::get($id); - } - - $service = $this->doGet($id, $invalidBehavior); - - if (!\is_object($service) && null !== $service) { - @trigger_error(sprintf('Non-object services are deprecated since Symfony 4.4, please fix the "%s" service which is of type "%s" right now.', $id, \gettype($service)), E_USER_DEPRECATED); - } - - return $service; - } - - private function doGet(string $id, int $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE, array &$inlineServices = null, bool $isConstructorArgument = false) - { - if (isset($inlineServices[$id])) { - return $inlineServices[$id]; - } - if (null === $inlineServices) { - $isConstructorArgument = true; - $inlineServices = []; - } - try { - if (ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE === $invalidBehavior) { - return parent::get($id, $invalidBehavior); - } - if ($service = parent::get($id, ContainerInterface::NULL_ON_INVALID_REFERENCE)) { - return $service; - } - } catch (ServiceCircularReferenceException $e) { - if ($isConstructorArgument) { - throw $e; - } - } - - if (!isset($this->definitions[$id]) && isset($this->aliasDefinitions[$id])) { - $alias = $this->aliasDefinitions[$id]; - - if ($alias->isDeprecated()) { - @trigger_error($alias->getDeprecationMessage($id), E_USER_DEPRECATED); - } - - return $this->doGet((string) $alias, $invalidBehavior, $inlineServices, $isConstructorArgument); - } - - try { - $definition = $this->getDefinition($id); - } catch (ServiceNotFoundException $e) { - if (ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE < $invalidBehavior) { - return null; - } - - throw $e; - } - - if ($definition->hasErrors() && $e = $definition->getErrors()) { - throw new RuntimeException(reset($e)); - } - - if ($isConstructorArgument) { - $this->loading[$id] = true; - } - - try { - return $this->createService($definition, $inlineServices, $isConstructorArgument, $id); - } finally { - if ($isConstructorArgument) { - unset($this->loading[$id]); - } - } - } - - /** - * Merges a ContainerBuilder with the current ContainerBuilder configuration. - * - * Service definitions overrides the current defined ones. - * - * But for parameters, they are overridden by the current ones. It allows - * the parameters passed to the container constructor to have precedence - * over the loaded ones. - * - * $container = new ContainerBuilder(new ParameterBag(['foo' => 'bar'])); - * $loader = new LoaderXXX($container); - * $loader->load('resource_name'); - * $container->register('foo', 'stdClass'); - * - * In the above example, even if the loaded resource defines a foo - * parameter, the value will still be 'bar' as defined in the ContainerBuilder - * constructor. - * - * @throws BadMethodCallException When this ContainerBuilder is compiled - */ - public function merge(self $container) - { - if ($this->isCompiled()) { - throw new BadMethodCallException('Cannot merge on a compiled container.'); - } - - $this->addDefinitions($container->getDefinitions()); - $this->addAliases($container->getAliases()); - $this->getParameterBag()->add($container->getParameterBag()->all()); - - if ($this->trackResources) { - foreach ($container->getResources() as $resource) { - $this->addResource($resource); - } - } - - foreach ($this->extensions as $name => $extension) { - if (!isset($this->extensionConfigs[$name])) { - $this->extensionConfigs[$name] = []; - } - - $this->extensionConfigs[$name] = array_merge($this->extensionConfigs[$name], $container->getExtensionConfig($name)); - } - - if ($this->getParameterBag() instanceof EnvPlaceholderParameterBag && $container->getParameterBag() instanceof EnvPlaceholderParameterBag) { - $envPlaceholders = $container->getParameterBag()->getEnvPlaceholders(); - $this->getParameterBag()->mergeEnvPlaceholders($container->getParameterBag()); - } else { - $envPlaceholders = []; - } - - foreach ($container->envCounters as $env => $count) { - if (!$count && !isset($envPlaceholders[$env])) { - continue; - } - if (!isset($this->envCounters[$env])) { - $this->envCounters[$env] = $count; - } else { - $this->envCounters[$env] += $count; - } - } - - foreach ($container->getAutoconfiguredInstanceof() as $interface => $childDefinition) { - if (isset($this->autoconfiguredInstanceof[$interface])) { - throw new InvalidArgumentException(sprintf('"%s" has already been autoconfigured and merge() does not support merging autoconfiguration for the same class/interface.', $interface)); - } - - $this->autoconfiguredInstanceof[$interface] = $childDefinition; - } - } - - /** - * Returns the configuration array for the given extension. - * - * @param string $name The name of the extension - * - * @return array An array of configuration - */ - public function getExtensionConfig($name) - { - if (!isset($this->extensionConfigs[$name])) { - $this->extensionConfigs[$name] = []; - } - - return $this->extensionConfigs[$name]; - } - - /** - * Prepends a config array to the configs of the given extension. - * - * @param string $name The name of the extension - * @param array $config The config to set - */ - public function prependExtensionConfig($name, array $config) - { - if (!isset($this->extensionConfigs[$name])) { - $this->extensionConfigs[$name] = []; - } - - array_unshift($this->extensionConfigs[$name], $config); - } - - /** - * Compiles the container. - * - * This method passes the container to compiler - * passes whose job is to manipulate and optimize - * the container. - * - * The main compiler passes roughly do four things: - * - * * The extension configurations are merged; - * * Parameter values are resolved; - * * The parameter bag is frozen; - * * Extension loading is disabled. - * - * @param bool $resolveEnvPlaceholders Whether %env()% parameters should be resolved using the current - * env vars or be replaced by uniquely identifiable placeholders. - * Set to "true" when you want to use the current ContainerBuilder - * directly, keep to "false" when the container is dumped instead. - */ - public function compile(bool $resolveEnvPlaceholders = false) - { - $compiler = $this->getCompiler(); - - if ($this->trackResources) { - foreach ($compiler->getPassConfig()->getPasses() as $pass) { - $this->addObjectResource($pass); - } - } - $bag = $this->getParameterBag(); - - if ($resolveEnvPlaceholders && $bag instanceof EnvPlaceholderParameterBag) { - $compiler->addPass(new ResolveEnvPlaceholdersPass(), PassConfig::TYPE_AFTER_REMOVING, -1000); - } - - $compiler->compile($this); - - foreach ($this->definitions as $id => $definition) { - if ($this->trackResources && $definition->isLazy()) { - $this->getReflectionClass($definition->getClass()); - } - } - - $this->extensionConfigs = []; - - if ($bag instanceof EnvPlaceholderParameterBag) { - if ($resolveEnvPlaceholders) { - $this->parameterBag = new ParameterBag($this->resolveEnvPlaceholders($bag->all(), true)); - } - - $this->envPlaceholders = $bag->getEnvPlaceholders(); - } - - parent::compile(); - - foreach ($this->definitions + $this->aliasDefinitions as $id => $definition) { - if (!$definition->isPublic() || $definition->isPrivate()) { - $this->removedIds[$id] = true; - } - } - } - - /** - * {@inheritdoc} - */ - public function getServiceIds() - { - return array_map('strval', array_unique(array_merge(array_keys($this->getDefinitions()), array_keys($this->aliasDefinitions), parent::getServiceIds()))); - } - - /** - * Gets removed service or alias ids. - * - * @return array - */ - public function getRemovedIds() - { - return $this->removedIds; - } - - /** - * Adds the service aliases. - */ - public function addAliases(array $aliases) - { - foreach ($aliases as $alias => $id) { - $this->setAlias($alias, $id); - } - } - - /** - * Sets the service aliases. - */ - public function setAliases(array $aliases) - { - $this->aliasDefinitions = []; - $this->addAliases($aliases); - } - - /** - * Sets an alias for an existing service. - * - * @param string $alias The alias to create - * @param string|Alias $id The service to alias - * - * @return Alias - * - * @throws InvalidArgumentException if the id is not a string or an Alias - * @throws InvalidArgumentException if the alias is for itself - */ - public function setAlias($alias, $id) - { - $alias = (string) $alias; - - if ('' === $alias || '\\' === $alias[-1] || \strlen($alias) !== strcspn($alias, "\0\r\n'")) { - throw new InvalidArgumentException(sprintf('Invalid alias id: "%s"', $alias)); - } - - if (\is_string($id)) { - $id = new Alias($id); - } elseif (!$id instanceof Alias) { - throw new InvalidArgumentException('$id must be a string, or an Alias object.'); - } - - if ($alias === (string) $id) { - throw new InvalidArgumentException(sprintf('An alias can not reference itself, got a circular reference on "%s".', $alias)); - } - - unset($this->definitions[$alias], $this->removedIds[$alias]); - - return $this->aliasDefinitions[$alias] = $id; - } - - /** - * Removes an alias. - * - * @param string $alias The alias to remove - */ - public function removeAlias($alias) - { - if (isset($this->aliasDefinitions[$alias = (string) $alias])) { - unset($this->aliasDefinitions[$alias]); - $this->removedIds[$alias] = true; - } - } - - /** - * Returns true if an alias exists under the given identifier. - * - * @param string $id The service identifier - * - * @return bool true if the alias exists, false otherwise - */ - public function hasAlias($id) - { - return isset($this->aliasDefinitions[$id = (string) $id]); - } - - /** - * Gets all defined aliases. - * - * @return Alias[] An array of aliases - */ - public function getAliases() - { - return $this->aliasDefinitions; - } - - /** - * Gets an alias. - * - * @param string $id The service identifier - * - * @return Alias An Alias instance - * - * @throws InvalidArgumentException if the alias does not exist - */ - public function getAlias($id) - { - $id = (string) $id; - - if (!isset($this->aliasDefinitions[$id])) { - throw new InvalidArgumentException(sprintf('The service alias "%s" does not exist.', $id)); - } - - return $this->aliasDefinitions[$id]; - } - - /** - * Registers a service definition. - * - * This methods allows for simple registration of service definition - * with a fluid interface. - * - * @param string $id The service identifier - * @param string|null $class The service class - * - * @return Definition A Definition instance - */ - public function register($id, $class = null) - { - return $this->setDefinition($id, new Definition($class)); - } - - /** - * Registers an autowired service definition. - * - * This method implements a shortcut for using setDefinition() with - * an autowired definition. - * - * @param string $id The service identifier - * @param string|null $class The service class - * - * @return Definition The created definition - */ - public function autowire($id, $class = null) - { - return $this->setDefinition($id, (new Definition($class))->setAutowired(true)); - } - - /** - * Adds the service definitions. - * - * @param Definition[] $definitions An array of service definitions - */ - public function addDefinitions(array $definitions) - { - foreach ($definitions as $id => $definition) { - $this->setDefinition($id, $definition); - } - } - - /** - * Sets the service definitions. - * - * @param Definition[] $definitions An array of service definitions - */ - public function setDefinitions(array $definitions) - { - $this->definitions = []; - $this->addDefinitions($definitions); - } - - /** - * Gets all service definitions. - * - * @return Definition[] An array of Definition instances - */ - public function getDefinitions() - { - return $this->definitions; - } - - /** - * Sets a service definition. - * - * @param string $id The service identifier - * - * @return Definition the service definition - * - * @throws BadMethodCallException When this ContainerBuilder is compiled - */ - public function setDefinition($id, Definition $definition) - { - if ($this->isCompiled()) { - throw new BadMethodCallException('Adding definition to a compiled container is not allowed'); - } - - $id = (string) $id; - - if ('' === $id || '\\' === $id[-1] || \strlen($id) !== strcspn($id, "\0\r\n'")) { - throw new InvalidArgumentException(sprintf('Invalid service id: "%s"', $id)); - } - - unset($this->aliasDefinitions[$id], $this->removedIds[$id]); - - return $this->definitions[$id] = $definition; - } - - /** - * Returns true if a service definition exists under the given identifier. - * - * @param string $id The service identifier - * - * @return bool true if the service definition exists, false otherwise - */ - public function hasDefinition($id) - { - return isset($this->definitions[(string) $id]); - } - - /** - * Gets a service definition. - * - * @param string $id The service identifier - * - * @return Definition A Definition instance - * - * @throws ServiceNotFoundException if the service definition does not exist - */ - public function getDefinition($id) - { - $id = (string) $id; - - if (!isset($this->definitions[$id])) { - throw new ServiceNotFoundException($id); - } - - return $this->definitions[$id]; - } - - /** - * Gets a service definition by id or alias. - * - * The method "unaliases" recursively to return a Definition instance. - * - * @param string $id The service identifier or alias - * - * @return Definition A Definition instance - * - * @throws ServiceNotFoundException if the service definition does not exist - */ - public function findDefinition($id) - { - $id = (string) $id; - - $seen = []; - while (isset($this->aliasDefinitions[$id])) { - $id = (string) $this->aliasDefinitions[$id]; - - if (isset($seen[$id])) { - $seen = array_values($seen); - $seen = \array_slice($seen, array_search($id, $seen)); - $seen[] = $id; - - throw new ServiceCircularReferenceException($id, $seen); - } - - $seen[$id] = $id; - } - - return $this->getDefinition($id); - } - - /** - * Creates a service for a service definition. - * - * @return mixed The service described by the service definition - * - * @throws RuntimeException When the factory definition is incomplete - * @throws RuntimeException When the service is a synthetic service - * @throws InvalidArgumentException When configure callable is not callable - */ - private function createService(Definition $definition, array &$inlineServices, bool $isConstructorArgument = false, string $id = null, bool $tryProxy = true) - { - if (null === $id && isset($inlineServices[$h = spl_object_hash($definition)])) { - return $inlineServices[$h]; - } - - if ($definition instanceof ChildDefinition) { - throw new RuntimeException(sprintf('Constructing service "%s" from a parent definition is not supported at build time.', $id)); - } - - if ($definition->isSynthetic()) { - throw new RuntimeException(sprintf('You have requested a synthetic service ("%s"). The DIC does not know how to construct this service.', $id)); - } - - if ($definition->isDeprecated()) { - @trigger_error($definition->getDeprecationMessage($id), E_USER_DEPRECATED); - } - - if ($tryProxy && $definition->isLazy() && !$tryProxy = !($proxy = $this->proxyInstantiator) || $proxy instanceof RealServiceInstantiator) { - $proxy = $proxy->instantiateProxy( - $this, - $definition, - $id, function () use ($definition, &$inlineServices, $id) { - return $this->createService($definition, $inlineServices, true, $id, false); - } - ); - $this->shareService($definition, $proxy, $id, $inlineServices); - - return $proxy; - } - - $parameterBag = $this->getParameterBag(); - - if (null !== $definition->getFile()) { - require_once $parameterBag->resolveValue($definition->getFile()); - } - - $arguments = $this->doResolveServices($parameterBag->unescapeValue($parameterBag->resolveValue($definition->getArguments())), $inlineServices, $isConstructorArgument); - - if (null !== $factory = $definition->getFactory()) { - if (\is_array($factory)) { - $factory = [$this->doResolveServices($parameterBag->resolveValue($factory[0]), $inlineServices, $isConstructorArgument), $factory[1]]; - } elseif (!\is_string($factory)) { - throw new RuntimeException(sprintf('Cannot create service "%s" because of invalid factory', $id)); - } - } - - if (null !== $id && $definition->isShared() && isset($this->services[$id]) && ($tryProxy || !$definition->isLazy())) { - return $this->services[$id]; - } - - if (null !== $factory) { - $service = $factory(...$arguments); - - if (!$definition->isDeprecated() && \is_array($factory) && \is_string($factory[0])) { - $r = new \ReflectionClass($factory[0]); - - if (0 < strpos($r->getDocComment(), "\n * @deprecated ")) { - @trigger_error(sprintf('The "%s" service relies on the deprecated "%s" factory class. It should either be deprecated or its factory upgraded.', $id, $r->name), E_USER_DEPRECATED); - } - } - } else { - $r = new \ReflectionClass($parameterBag->resolveValue($definition->getClass())); - - $service = null === $r->getConstructor() ? $r->newInstance() : $r->newInstanceArgs($arguments); - - if (!$definition->isDeprecated() && 0 < strpos($r->getDocComment(), "\n * @deprecated ")) { - @trigger_error(sprintf('The "%s" service relies on the deprecated "%s" class. It should either be deprecated or its implementation upgraded.', $id, $r->name), E_USER_DEPRECATED); - } - } - - $lastWitherIndex = null; - foreach ($definition->getMethodCalls() as $k => $call) { - if ($call[2] ?? false) { - $lastWitherIndex = $k; - } - } - - if (null === $lastWitherIndex && ($tryProxy || !$definition->isLazy())) { - // share only if proxying failed, or if not a proxy, and if no withers are found - $this->shareService($definition, $service, $id, $inlineServices); - } - - $properties = $this->doResolveServices($parameterBag->unescapeValue($parameterBag->resolveValue($definition->getProperties())), $inlineServices); - foreach ($properties as $name => $value) { - $service->$name = $value; - } - - foreach ($definition->getMethodCalls() as $k => $call) { - $service = $this->callMethod($service, $call, $inlineServices); - - if ($lastWitherIndex === $k && ($tryProxy || !$definition->isLazy())) { - // share only if proxying failed, or if not a proxy, and this is the last wither - $this->shareService($definition, $service, $id, $inlineServices); - } - } - - if ($callable = $definition->getConfigurator()) { - if (\is_array($callable)) { - $callable[0] = $parameterBag->resolveValue($callable[0]); - - if ($callable[0] instanceof Reference) { - $callable[0] = $this->doGet((string) $callable[0], $callable[0]->getInvalidBehavior(), $inlineServices); - } elseif ($callable[0] instanceof Definition) { - $callable[0] = $this->createService($callable[0], $inlineServices); - } - } - - if (!\is_callable($callable)) { - throw new InvalidArgumentException(sprintf('The configure callable for class "%s" is not a callable.', \get_class($service))); - } - - $callable($service); - } - - return $service; - } - - /** - * Replaces service references by the real service instance and evaluates expressions. - * - * @param mixed $value A value - * - * @return mixed The same value with all service references replaced by - * the real service instances and all expressions evaluated - */ - public function resolveServices($value) - { - return $this->doResolveServices($value); - } - - private function doResolveServices($value, array &$inlineServices = [], bool $isConstructorArgument = false) - { - if (\is_array($value)) { - foreach ($value as $k => $v) { - $value[$k] = $this->doResolveServices($v, $inlineServices, $isConstructorArgument); - } - } elseif ($value instanceof ServiceClosureArgument) { - $reference = $value->getValues()[0]; - $value = function () use ($reference) { - return $this->resolveServices($reference); - }; - } elseif ($value instanceof IteratorArgument) { - $value = new RewindableGenerator(function () use ($value) { - foreach ($value->getValues() as $k => $v) { - foreach (self::getServiceConditionals($v) as $s) { - if (!$this->has($s)) { - continue 2; - } - } - foreach (self::getInitializedConditionals($v) as $s) { - if (!$this->doGet($s, ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE)) { - continue 2; - } - } - - yield $k => $this->resolveServices($v); - } - }, function () use ($value): int { - $count = 0; - foreach ($value->getValues() as $v) { - foreach (self::getServiceConditionals($v) as $s) { - if (!$this->has($s)) { - continue 2; - } - } - foreach (self::getInitializedConditionals($v) as $s) { - if (!$this->doGet($s, ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE)) { - continue 2; - } - } - - ++$count; - } - - return $count; - }); - } elseif ($value instanceof ServiceLocatorArgument) { - $refs = $types = []; - foreach ($value->getValues() as $k => $v) { - if ($v) { - $refs[$k] = [$v]; - $types[$k] = $v instanceof TypedReference ? $v->getType() : '?'; - } - } - $value = new ServiceLocator(\Closure::fromCallable([$this, 'resolveServices']), $refs, $types); - } elseif ($value instanceof Reference) { - $value = $this->doGet((string) $value, $value->getInvalidBehavior(), $inlineServices, $isConstructorArgument); - } elseif ($value instanceof Definition) { - $value = $this->createService($value, $inlineServices, $isConstructorArgument); - } elseif ($value instanceof Parameter) { - $value = $this->getParameter((string) $value); - } elseif ($value instanceof Expression) { - $value = $this->getExpressionLanguage()->evaluate($value, ['container' => $this]); - } - - return $value; - } - - /** - * Returns service ids for a given tag. - * - * Example: - * - * $container->register('foo')->addTag('my.tag', ['hello' => 'world']); - * - * $serviceIds = $container->findTaggedServiceIds('my.tag'); - * foreach ($serviceIds as $serviceId => $tags) { - * foreach ($tags as $tag) { - * echo $tag['hello']; - * } - * } - * - * @param string $name - * @param bool $throwOnAbstract - * - * @return array An array of tags with the tagged service as key, holding a list of attribute arrays - */ - public function findTaggedServiceIds($name, $throwOnAbstract = false) - { - $this->usedTags[] = $name; - $tags = []; - foreach ($this->getDefinitions() as $id => $definition) { - if ($definition->hasTag($name)) { - if ($throwOnAbstract && $definition->isAbstract()) { - throw new InvalidArgumentException(sprintf('The service "%s" tagged "%s" must not be abstract.', $id, $name)); - } - $tags[$id] = $definition->getTag($name); - } - } - - return $tags; - } - - /** - * Returns all tags the defined services use. - * - * @return array An array of tags - */ - public function findTags() - { - $tags = []; - foreach ($this->getDefinitions() as $id => $definition) { - $tags = array_merge(array_keys($definition->getTags()), $tags); - } - - return array_unique($tags); - } - - /** - * Returns all tags not queried by findTaggedServiceIds. - * - * @return string[] An array of tags - */ - public function findUnusedTags() - { - return array_values(array_diff($this->findTags(), $this->usedTags)); - } - - public function addExpressionLanguageProvider(ExpressionFunctionProviderInterface $provider) - { - $this->expressionLanguageProviders[] = $provider; - } - - /** - * @return ExpressionFunctionProviderInterface[] - */ - public function getExpressionLanguageProviders() - { - return $this->expressionLanguageProviders; - } - - /** - * Returns a ChildDefinition that will be used for autoconfiguring the interface/class. - * - * @param string $interface The class or interface to match - * - * @return ChildDefinition - */ - public function registerForAutoconfiguration($interface) - { - if (!isset($this->autoconfiguredInstanceof[$interface])) { - $this->autoconfiguredInstanceof[$interface] = new ChildDefinition(''); - } - - return $this->autoconfiguredInstanceof[$interface]; - } - - /** - * Registers an autowiring alias that only binds to a specific argument name. - * - * The argument name is derived from $name if provided (from $id otherwise) - * using camel case: "foo.bar" or "foo_bar" creates an alias bound to - * "$fooBar"-named arguments with $type as type-hint. Such arguments will - * receive the service $id when autowiring is used. - */ - public function registerAliasForArgument(string $id, string $type, string $name = null): Alias - { - $name = lcfirst(str_replace(' ', '', ucwords(preg_replace('/[^a-zA-Z0-9\x7f-\xff]++/', ' ', $name ?? $id)))); - - if (!preg_match('/^[a-zA-Z_\x7f-\xff]/', $name)) { - throw new InvalidArgumentException(sprintf('Invalid argument name "%s" for service "%s": the first character must be a letter.', $name, $id)); - } - - return $this->setAlias($type.' $'.$name, $id); - } - - /** - * Returns an array of ChildDefinition[] keyed by interface. - * - * @return ChildDefinition[] - */ - public function getAutoconfiguredInstanceof() - { - return $this->autoconfiguredInstanceof; - } - - /** - * Resolves env parameter placeholders in a string or an array. - * - * @param mixed $value The value to resolve - * @param string|true|null $format A sprintf() format returning the replacement for each env var name or - * null to resolve back to the original "%env(VAR)%" format or - * true to resolve to the actual values of the referenced env vars - * @param array &$usedEnvs Env vars found while resolving are added to this array - * - * @return mixed The value with env parameters resolved if a string or an array is passed - */ - public function resolveEnvPlaceholders($value, $format = null, array &$usedEnvs = null) - { - if (null === $format) { - $format = '%%env(%s)%%'; - } - - $bag = $this->getParameterBag(); - if (true === $format) { - $value = $bag->resolveValue($value); - } - - if ($value instanceof Definition) { - $value = (array) $value; - } - - if (\is_array($value)) { - $result = []; - foreach ($value as $k => $v) { - $result[\is_string($k) ? $this->resolveEnvPlaceholders($k, $format, $usedEnvs) : $k] = $this->resolveEnvPlaceholders($v, $format, $usedEnvs); - } - - return $result; - } - - if (!\is_string($value) || 38 > \strlen($value)) { - return $value; - } - $envPlaceholders = $bag instanceof EnvPlaceholderParameterBag ? $bag->getEnvPlaceholders() : $this->envPlaceholders; - - $completed = false; - foreach ($envPlaceholders as $env => $placeholders) { - foreach ($placeholders as $placeholder) { - if (false !== stripos($value, $placeholder)) { - if (true === $format) { - $resolved = $bag->escapeValue($this->getEnv($env)); - } else { - $resolved = sprintf($format, $env); - } - if ($placeholder === $value) { - $value = $resolved; - $completed = true; - } else { - if (!\is_string($resolved) && !is_numeric($resolved)) { - throw new RuntimeException(sprintf('A string value must be composed of strings and/or numbers, but found parameter "env(%s)" of type %s inside string value "%s".', $env, \gettype($resolved), $this->resolveEnvPlaceholders($value))); - } - $value = str_ireplace($placeholder, $resolved, $value); - } - $usedEnvs[$env] = $env; - $this->envCounters[$env] = isset($this->envCounters[$env]) ? 1 + $this->envCounters[$env] : 1; - - if ($completed) { - break 2; - } - } - } - } - - return $value; - } - - /** - * Get statistics about env usage. - * - * @return int[] The number of time each env vars has been resolved - */ - public function getEnvCounters() - { - $bag = $this->getParameterBag(); - $envPlaceholders = $bag instanceof EnvPlaceholderParameterBag ? $bag->getEnvPlaceholders() : $this->envPlaceholders; - - foreach ($envPlaceholders as $env => $placeholders) { - if (!isset($this->envCounters[$env])) { - $this->envCounters[$env] = 0; - } - } - - return $this->envCounters; - } - - /** - * @final - */ - public function log(CompilerPassInterface $pass, string $message) - { - $this->getCompiler()->log($pass, $this->resolveEnvPlaceholders($message)); - } - - /** - * Gets removed binding ids. - * - * @internal - */ - public function getRemovedBindingIds(): array - { - return $this->removedBindingIds; - } - - /** - * Removes bindings for a service. - * - * @internal - */ - public function removeBindings(string $id) - { - if ($this->hasDefinition($id)) { - foreach ($this->getDefinition($id)->getBindings() as $key => $binding) { - list(, $bindingId) = $binding->getValues(); - $this->removedBindingIds[(int) $bindingId] = true; - } - } - } - - /** - * Returns the Service Conditionals. - * - * @param mixed $value An array of conditionals to return - * - * @internal - */ - public static function getServiceConditionals($value): array - { - $services = []; - - if (\is_array($value)) { - foreach ($value as $v) { - $services = array_unique(array_merge($services, self::getServiceConditionals($v))); - } - } elseif ($value instanceof Reference && ContainerInterface::IGNORE_ON_INVALID_REFERENCE === $value->getInvalidBehavior()) { - $services[] = (string) $value; - } - - return $services; - } - - /** - * Returns the initialized conditionals. - * - * @param mixed $value An array of conditionals to return - * - * @internal - */ - public static function getInitializedConditionals($value): array - { - $services = []; - - if (\is_array($value)) { - foreach ($value as $v) { - $services = array_unique(array_merge($services, self::getInitializedConditionals($v))); - } - } elseif ($value instanceof Reference && ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE === $value->getInvalidBehavior()) { - $services[] = (string) $value; - } - - return $services; - } - - /** - * Computes a reasonably unique hash of a value. - * - * @param mixed $value A serializable value - * - * @return string - */ - public static function hash($value) - { - $hash = substr(base64_encode(hash('sha256', serialize($value), true)), 0, 7); - - return str_replace(['/', '+'], ['.', '_'], $hash); - } - - /** - * {@inheritdoc} - */ - protected function getEnv($name) - { - $value = parent::getEnv($name); - $bag = $this->getParameterBag(); - - if (!\is_string($value) || !$bag instanceof EnvPlaceholderParameterBag) { - return $value; - } - - $envPlaceholders = $bag->getEnvPlaceholders(); - if (isset($envPlaceholders[$name][$value])) { - $bag = new ParameterBag($bag->all()); - - return $bag->unescapeValue($bag->get("env($name)")); - } - foreach ($envPlaceholders as $env => $placeholders) { - if (isset($placeholders[$value])) { - return $this->getEnv($env); - } - } - - $this->resolving["env($name)"] = true; - try { - return $bag->unescapeValue($this->resolveEnvPlaceholders($bag->escapeValue($value), true)); - } finally { - unset($this->resolving["env($name)"]); - } - } - - private function callMethod($service, array $call, array &$inlineServices) - { - foreach (self::getServiceConditionals($call[1]) as $s) { - if (!$this->has($s)) { - return $service; - } - } - foreach (self::getInitializedConditionals($call[1]) as $s) { - if (!$this->doGet($s, ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE, $inlineServices)) { - return $service; - } - } - - $result = $service->{$call[0]}(...$this->doResolveServices($this->getParameterBag()->unescapeValue($this->getParameterBag()->resolveValue($call[1])), $inlineServices)); - - return empty($call[2]) ? $service : $result; - } - - /** - * Shares a given service in the container. - * - * @param mixed $service - */ - private function shareService(Definition $definition, $service, ?string $id, array &$inlineServices) - { - $inlineServices[null !== $id ? $id : spl_object_hash($definition)] = $service; - - if (null !== $id && $definition->isShared()) { - $this->services[$id] = $service; - unset($this->loading[$id]); - } - } - - private function getExpressionLanguage(): ExpressionLanguage - { - if (null === $this->expressionLanguage) { - if (!class_exists('Symfony\Component\ExpressionLanguage\ExpressionLanguage')) { - throw new LogicException('Unable to use expressions as the Symfony ExpressionLanguage component is not installed.'); - } - $this->expressionLanguage = new ExpressionLanguage(null, $this->expressionLanguageProviders); - } - - return $this->expressionLanguage; - } - - private function inVendors(string $path): bool - { - if (null === $this->vendors) { - $resource = new ComposerResource(); - $this->vendors = $resource->getVendors(); - $this->addResource($resource); - } - $path = realpath($path) ?: $path; - - foreach ($this->vendors as $vendor) { - if (0 === strpos($path, $vendor) && false !== strpbrk(substr($path, \strlen($vendor), 1), '/'.\DIRECTORY_SEPARATOR)) { - return true; - } - } - - return false; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ContainerInterface.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/ContainerInterface.php deleted file mode 100644 index 0a7f018..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ContainerInterface.php +++ /dev/null @@ -1,101 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -use Psr\Container\ContainerInterface as PsrContainerInterface; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException; -use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; - -/** - * ContainerInterface is the interface implemented by service container classes. - * - * @author Fabien Potencier - * @author Johannes M. Schmitt - */ -interface ContainerInterface extends PsrContainerInterface -{ - const RUNTIME_EXCEPTION_ON_INVALID_REFERENCE = 0; - const EXCEPTION_ON_INVALID_REFERENCE = 1; - const NULL_ON_INVALID_REFERENCE = 2; - const IGNORE_ON_INVALID_REFERENCE = 3; - const IGNORE_ON_UNINITIALIZED_REFERENCE = 4; - - /** - * Sets a service. - * - * @param string $id The service identifier - * @param object|null $service The service instance - */ - public function set($id, $service); - - /** - * Gets a service. - * - * @param string $id The service identifier - * @param int $invalidBehavior The behavior when the service does not exist - * - * @return object|null The associated service - * - * @throws ServiceCircularReferenceException When a circular reference is detected - * @throws ServiceNotFoundException When the service is not defined - * - * @see Reference - */ - public function get($id, $invalidBehavior = self::EXCEPTION_ON_INVALID_REFERENCE); - - /** - * Returns true if the given service is defined. - * - * @param string $id The service identifier - * - * @return bool true if the service is defined, false otherwise - */ - public function has($id); - - /** - * Check for whether or not a service has been initialized. - * - * @param string $id - * - * @return bool true if the service has been initialized, false otherwise - */ - public function initialized($id); - - /** - * Gets a parameter. - * - * @param string $name The parameter name - * - * @return mixed The parameter value - * - * @throws InvalidArgumentException if the parameter is not defined - */ - public function getParameter($name); - - /** - * Checks if a parameter exists. - * - * @param string $name The parameter name - * - * @return bool The presence of parameter in container - */ - public function hasParameter($name); - - /** - * Sets a parameter. - * - * @param string $name The parameter name - * @param mixed $value The parameter value - */ - public function setParameter($name, $value); -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Definition.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Definition.php deleted file mode 100644 index e2bc713..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Definition.php +++ /dev/null @@ -1,940 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -use Symfony\Component\DependencyInjection\Argument\BoundArgument; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\OutOfBoundsException; - -/** - * Definition represents a service definition. - * - * @author Fabien Potencier - */ -class Definition -{ - private $class; - private $file; - private $factory; - private $shared = true; - private $deprecated = false; - private $deprecationTemplate; - private $properties = []; - private $calls = []; - private $instanceof = []; - private $autoconfigured = false; - private $configurator; - private $tags = []; - private $public = true; - private $private = true; - private $synthetic = false; - private $abstract = false; - private $lazy = false; - private $decoratedService; - private $autowired = false; - private $changes = []; - private $bindings = []; - private $errors = []; - - protected $arguments = []; - - private static $defaultDeprecationTemplate = 'The "%service_id%" service is deprecated. You should stop using it, as it will be removed in the future.'; - - /** - * @internal - * - * Used to store the name of the inner id when using service decoration together with autowiring - */ - public $innerServiceId; - - /** - * @internal - * - * Used to store the behavior to follow when using service decoration and the decorated service is invalid - */ - public $decorationOnInvalid; - - /** - * @param string|null $class The service class - * @param array $arguments An array of arguments to pass to the service constructor - */ - public function __construct($class = null, array $arguments = []) - { - if (null !== $class) { - $this->setClass($class); - } - $this->arguments = $arguments; - } - - /** - * Returns all changes tracked for the Definition object. - * - * @return array An array of changes for this Definition - */ - public function getChanges() - { - return $this->changes; - } - - /** - * Sets the tracked changes for the Definition object. - * - * @param array $changes An array of changes for this Definition - * - * @return $this - */ - public function setChanges(array $changes) - { - $this->changes = $changes; - - return $this; - } - - /** - * Sets a factory. - * - * @param string|array|Reference $factory A PHP function, reference or an array containing a class/Reference and a method to call - * - * @return $this - */ - public function setFactory($factory) - { - $this->changes['factory'] = true; - - if (\is_string($factory) && false !== strpos($factory, '::')) { - $factory = explode('::', $factory, 2); - } elseif ($factory instanceof Reference) { - $factory = [$factory, '__invoke']; - } - - $this->factory = $factory; - - return $this; - } - - /** - * Gets the factory. - * - * @return string|array|null The PHP function or an array containing a class/Reference and a method to call - */ - public function getFactory() - { - return $this->factory; - } - - /** - * Sets the service that this service is decorating. - * - * @param string|null $id The decorated service id, use null to remove decoration - * @param string|null $renamedId The new decorated service id - * @param int $priority The priority of decoration - * @param int $invalidBehavior The behavior to adopt when decorated is invalid - * - * @return $this - * - * @throws InvalidArgumentException in case the decorated service id and the new decorated service id are equals - */ - public function setDecoratedService($id, $renamedId = null, $priority = 0/*, int $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE*/) - { - if ($renamedId && $id === $renamedId) { - throw new InvalidArgumentException(sprintf('The decorated service inner name for "%s" must be different than the service name itself.', $id)); - } - - $invalidBehavior = 3 < \func_num_args() ? (int) func_get_arg(3) : ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - - $this->changes['decorated_service'] = true; - - if (null === $id) { - $this->decoratedService = null; - } else { - $this->decoratedService = [$id, $renamedId, (int) $priority]; - - if (ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE !== $invalidBehavior) { - $this->decoratedService[] = $invalidBehavior; - } - } - - return $this; - } - - /** - * Gets the service that this service is decorating. - * - * @return array|null An array composed of the decorated service id, the new id for it and the priority of decoration, null if no service is decorated - */ - public function getDecoratedService() - { - return $this->decoratedService; - } - - /** - * Sets the service class. - * - * @param string $class The service class - * - * @return $this - */ - public function setClass($class) - { - if ($class instanceof Parameter) { - @trigger_error(sprintf('Passing an instance of %s as class name to %s in deprecated in Symfony 4.4 and will result in a TypeError in 5.0. Please pass the string "%%%s%%" instead.', Parameter::class, __CLASS__, (string) $class), E_USER_DEPRECATED); - } - if (null !== $class && !\is_string($class)) { - @trigger_error(sprintf('The class name passed to %s is expected to be a string. Passing a %s is deprecated in Symfony 4.4 and will result in a TypeError in 5.0.', __CLASS__, \is_object($class) ? \get_class($class) : \gettype($class)), E_USER_DEPRECATED); - } - - $this->changes['class'] = true; - - $this->class = $class; - - return $this; - } - - /** - * Gets the service class. - * - * @return string|null The service class - */ - public function getClass() - { - return $this->class; - } - - /** - * Sets the arguments to pass to the service constructor/factory method. - * - * @return $this - */ - public function setArguments(array $arguments) - { - $this->arguments = $arguments; - - return $this; - } - - /** - * Sets the properties to define when creating the service. - * - * @return $this - */ - public function setProperties(array $properties) - { - $this->properties = $properties; - - return $this; - } - - /** - * Gets the properties to define when creating the service. - * - * @return array - */ - public function getProperties() - { - return $this->properties; - } - - /** - * Sets a specific property. - * - * @param string $name - * @param mixed $value - * - * @return $this - */ - public function setProperty($name, $value) - { - $this->properties[$name] = $value; - - return $this; - } - - /** - * Adds an argument to pass to the service constructor/factory method. - * - * @param mixed $argument An argument - * - * @return $this - */ - public function addArgument($argument) - { - $this->arguments[] = $argument; - - return $this; - } - - /** - * Replaces a specific argument. - * - * @param int|string $index - * @param mixed $argument - * - * @return $this - * - * @throws OutOfBoundsException When the replaced argument does not exist - */ - public function replaceArgument($index, $argument) - { - if (0 === \count($this->arguments)) { - throw new OutOfBoundsException('Cannot replace arguments if none have been configured yet.'); - } - - if (\is_int($index) && ($index < 0 || $index > \count($this->arguments) - 1)) { - throw new OutOfBoundsException(sprintf('The index "%d" is not in the range [0, %d].', $index, \count($this->arguments) - 1)); - } - - if (!\array_key_exists($index, $this->arguments)) { - throw new OutOfBoundsException(sprintf('The argument "%s" doesn\'t exist.', $index)); - } - - $this->arguments[$index] = $argument; - - return $this; - } - - /** - * Sets a specific argument. - * - * @param int|string $key - * @param mixed $value - * - * @return $this - */ - public function setArgument($key, $value) - { - $this->arguments[$key] = $value; - - return $this; - } - - /** - * Gets the arguments to pass to the service constructor/factory method. - * - * @return array The array of arguments - */ - public function getArguments() - { - return $this->arguments; - } - - /** - * Gets an argument to pass to the service constructor/factory method. - * - * @param int|string $index - * - * @return mixed The argument value - * - * @throws OutOfBoundsException When the argument does not exist - */ - public function getArgument($index) - { - if (!\array_key_exists($index, $this->arguments)) { - throw new OutOfBoundsException(sprintf('The argument "%s" doesn\'t exist.', $index)); - } - - return $this->arguments[$index]; - } - - /** - * Sets the methods to call after service initialization. - * - * @return $this - */ - public function setMethodCalls(array $calls = []) - { - $this->calls = []; - foreach ($calls as $call) { - $this->addMethodCall($call[0], $call[1], $call[2] ?? false); - } - - return $this; - } - - /** - * Adds a method to call after service initialization. - * - * @param string $method The method name to call - * @param array $arguments An array of arguments to pass to the method call - * @param bool $returnsClone Whether the call returns the service instance or not - * - * @return $this - * - * @throws InvalidArgumentException on empty $method param - */ - public function addMethodCall($method, array $arguments = []/*, bool $returnsClone = false*/) - { - if (empty($method)) { - throw new InvalidArgumentException('Method name cannot be empty.'); - } - $this->calls[] = 2 < \func_num_args() && func_get_arg(2) ? [$method, $arguments, true] : [$method, $arguments]; - - return $this; - } - - /** - * Removes a method to call after service initialization. - * - * @param string $method The method name to remove - * - * @return $this - */ - public function removeMethodCall($method) - { - foreach ($this->calls as $i => $call) { - if ($call[0] === $method) { - unset($this->calls[$i]); - break; - } - } - - return $this; - } - - /** - * Check if the current definition has a given method to call after service initialization. - * - * @param string $method The method name to search for - * - * @return bool - */ - public function hasMethodCall($method) - { - foreach ($this->calls as $call) { - if ($call[0] === $method) { - return true; - } - } - - return false; - } - - /** - * Gets the methods to call after service initialization. - * - * @return array An array of method calls - */ - public function getMethodCalls() - { - return $this->calls; - } - - /** - * Sets the definition templates to conditionally apply on the current definition, keyed by parent interface/class. - * - * @param ChildDefinition[] $instanceof - * - * @return $this - */ - public function setInstanceofConditionals(array $instanceof) - { - $this->instanceof = $instanceof; - - return $this; - } - - /** - * Gets the definition templates to conditionally apply on the current definition, keyed by parent interface/class. - * - * @return ChildDefinition[] - */ - public function getInstanceofConditionals() - { - return $this->instanceof; - } - - /** - * Sets whether or not instanceof conditionals should be prepended with a global set. - * - * @param bool $autoconfigured - * - * @return $this - */ - public function setAutoconfigured($autoconfigured) - { - $this->changes['autoconfigured'] = true; - - $this->autoconfigured = $autoconfigured; - - return $this; - } - - /** - * @return bool - */ - public function isAutoconfigured() - { - return $this->autoconfigured; - } - - /** - * Sets tags for this definition. - * - * @return $this - */ - public function setTags(array $tags) - { - $this->tags = $tags; - - return $this; - } - - /** - * Returns all tags. - * - * @return array An array of tags - */ - public function getTags() - { - return $this->tags; - } - - /** - * Gets a tag by name. - * - * @param string $name The tag name - * - * @return array An array of attributes - */ - public function getTag($name) - { - return isset($this->tags[$name]) ? $this->tags[$name] : []; - } - - /** - * Adds a tag for this definition. - * - * @param string $name The tag name - * @param array $attributes An array of attributes - * - * @return $this - */ - public function addTag($name, array $attributes = []) - { - $this->tags[$name][] = $attributes; - - return $this; - } - - /** - * Whether this definition has a tag with the given name. - * - * @param string $name - * - * @return bool - */ - public function hasTag($name) - { - return isset($this->tags[$name]); - } - - /** - * Clears all tags for a given name. - * - * @param string $name The tag name - * - * @return $this - */ - public function clearTag($name) - { - unset($this->tags[$name]); - - return $this; - } - - /** - * Clears the tags for this definition. - * - * @return $this - */ - public function clearTags() - { - $this->tags = []; - - return $this; - } - - /** - * Sets a file to require before creating the service. - * - * @param string $file A full pathname to include - * - * @return $this - */ - public function setFile($file) - { - $this->changes['file'] = true; - - $this->file = $file; - - return $this; - } - - /** - * Gets the file to require before creating the service. - * - * @return string|null The full pathname to include - */ - public function getFile() - { - return $this->file; - } - - /** - * Sets if the service must be shared or not. - * - * @param bool $shared Whether the service must be shared or not - * - * @return $this - */ - public function setShared($shared) - { - $this->changes['shared'] = true; - - $this->shared = (bool) $shared; - - return $this; - } - - /** - * Whether this service is shared. - * - * @return bool - */ - public function isShared() - { - return $this->shared; - } - - /** - * Sets the visibility of this service. - * - * @param bool $boolean - * - * @return $this - */ - public function setPublic($boolean) - { - $this->changes['public'] = true; - - $this->public = (bool) $boolean; - $this->private = false; - - return $this; - } - - /** - * Whether this service is public facing. - * - * @return bool - */ - public function isPublic() - { - return $this->public; - } - - /** - * Sets if this service is private. - * - * When set, the "private" state has a higher precedence than "public". - * In version 3.4, a "private" service always remains publicly accessible, - * but triggers a deprecation notice when accessed from the container, - * so that the service can be made really private in 4.0. - * - * @param bool $boolean - * - * @return $this - */ - public function setPrivate($boolean) - { - $this->private = (bool) $boolean; - - return $this; - } - - /** - * Whether this service is private. - * - * @return bool - */ - public function isPrivate() - { - return $this->private; - } - - /** - * Sets the lazy flag of this service. - * - * @param bool $lazy - * - * @return $this - */ - public function setLazy($lazy) - { - $this->changes['lazy'] = true; - - $this->lazy = (bool) $lazy; - - return $this; - } - - /** - * Whether this service is lazy. - * - * @return bool - */ - public function isLazy() - { - return $this->lazy; - } - - /** - * Sets whether this definition is synthetic, that is not constructed by the - * container, but dynamically injected. - * - * @param bool $boolean - * - * @return $this - */ - public function setSynthetic($boolean) - { - $this->synthetic = (bool) $boolean; - - return $this; - } - - /** - * Whether this definition is synthetic, that is not constructed by the - * container, but dynamically injected. - * - * @return bool - */ - public function isSynthetic() - { - return $this->synthetic; - } - - /** - * Whether this definition is abstract, that means it merely serves as a - * template for other definitions. - * - * @param bool $boolean - * - * @return $this - */ - public function setAbstract($boolean) - { - $this->abstract = (bool) $boolean; - - return $this; - } - - /** - * Whether this definition is abstract, that means it merely serves as a - * template for other definitions. - * - * @return bool - */ - public function isAbstract() - { - return $this->abstract; - } - - /** - * Whether this definition is deprecated, that means it should not be called - * anymore. - * - * @param bool $status - * @param string $template Template message to use if the definition is deprecated - * - * @return $this - * - * @throws InvalidArgumentException when the message template is invalid - */ - public function setDeprecated($status = true, $template = null) - { - if (null !== $template) { - if (preg_match('#[\r\n]|\*/#', $template)) { - throw new InvalidArgumentException('Invalid characters found in deprecation template.'); - } - - if (false === strpos($template, '%service_id%')) { - throw new InvalidArgumentException('The deprecation template must contain the "%service_id%" placeholder.'); - } - - $this->deprecationTemplate = $template; - } - - $this->changes['deprecated'] = true; - - $this->deprecated = (bool) $status; - - return $this; - } - - /** - * Whether this definition is deprecated, that means it should not be called - * anymore. - * - * @return bool - */ - public function isDeprecated() - { - return $this->deprecated; - } - - /** - * Message to use if this definition is deprecated. - * - * @param string $id Service id relying on this definition - * - * @return string - */ - public function getDeprecationMessage($id) - { - return str_replace('%service_id%', $id, $this->deprecationTemplate ?: self::$defaultDeprecationTemplate); - } - - /** - * Sets a configurator to call after the service is fully initialized. - * - * @param string|array|Reference $configurator A PHP function, reference or an array containing a class/Reference and a method to call - * - * @return $this - */ - public function setConfigurator($configurator) - { - $this->changes['configurator'] = true; - - if (\is_string($configurator) && false !== strpos($configurator, '::')) { - $configurator = explode('::', $configurator, 2); - } elseif ($configurator instanceof Reference) { - $configurator = [$configurator, '__invoke']; - } - - $this->configurator = $configurator; - - return $this; - } - - /** - * Gets the configurator to call after the service is fully initialized. - * - * @return callable|array|null - */ - public function getConfigurator() - { - return $this->configurator; - } - - /** - * Is the definition autowired? - * - * @return bool - */ - public function isAutowired() - { - return $this->autowired; - } - - /** - * Enables/disables autowiring. - * - * @param bool $autowired - * - * @return $this - */ - public function setAutowired($autowired) - { - $this->changes['autowired'] = true; - - $this->autowired = (bool) $autowired; - - return $this; - } - - /** - * Gets bindings. - * - * @return array|BoundArgument[] - */ - public function getBindings() - { - return $this->bindings; - } - - /** - * Sets bindings. - * - * Bindings map $named or FQCN arguments to values that should be - * injected in the matching parameters (of the constructor, of methods - * called and of controller actions). - * - * @return $this - */ - public function setBindings(array $bindings) - { - foreach ($bindings as $key => $binding) { - if (0 < strpos($key, '$') && $key !== $k = preg_replace('/[ \t]*\$/', ' $', $key)) { - unset($bindings[$key]); - $bindings[$key = $k] = $binding; - } - if (!$binding instanceof BoundArgument) { - $bindings[$key] = new BoundArgument($binding); - } - } - - $this->bindings = $bindings; - - return $this; - } - - /** - * Add an error that occurred when building this Definition. - * - * @param string|\Closure|self $error - * - * @return $this - */ - public function addError($error) - { - if ($error instanceof self) { - $this->errors = array_merge($this->errors, $error->errors); - } else { - $this->errors[] = $error; - } - - return $this; - } - - /** - * Returns any errors that occurred while building this Definition. - * - * @return array - */ - public function getErrors() - { - foreach ($this->errors as $i => $error) { - if ($error instanceof \Closure) { - $this->errors[$i] = (string) $error(); - } elseif (!\is_string($error)) { - $this->errors[$i] = (string) $error; - } - } - - return $this->errors; - } - - public function hasErrors(): bool - { - return (bool) $this->errors; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Dumper/Dumper.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Dumper/Dumper.php deleted file mode 100644 index e7407b0..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Dumper/Dumper.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Dumper; - -use Symfony\Component\DependencyInjection\ContainerBuilder; - -/** - * Dumper is the abstract class for all built-in dumpers. - * - * @author Fabien Potencier - */ -abstract class Dumper implements DumperInterface -{ - protected $container; - - public function __construct(ContainerBuilder $container) - { - $this->container = $container; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Dumper/DumperInterface.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Dumper/DumperInterface.php deleted file mode 100644 index 8abc192..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Dumper/DumperInterface.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Dumper; - -/** - * DumperInterface is the interface implemented by service container dumper classes. - * - * @author Fabien Potencier - */ -interface DumperInterface -{ - /** - * Dumps the service container. - * - * @return string|array The representation of the service container - */ - public function dump(array $options = []); -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Dumper/GraphvizDumper.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Dumper/GraphvizDumper.php deleted file mode 100644 index c21dd91..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Dumper/GraphvizDumper.php +++ /dev/null @@ -1,251 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Dumper; - -use Symfony\Component\DependencyInjection\Argument\ArgumentInterface; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException; -use Symfony\Component\DependencyInjection\Parameter; -use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag; -use Symfony\Component\DependencyInjection\Reference; - -/** - * GraphvizDumper dumps a service container as a graphviz file. - * - * You can convert the generated dot file with the dot utility (http://www.graphviz.org/): - * - * dot -Tpng container.dot > foo.png - * - * @author Fabien Potencier - */ -class GraphvizDumper extends Dumper -{ - private $nodes; - private $edges; - private $options = [ - 'graph' => ['ratio' => 'compress'], - 'node' => ['fontsize' => 11, 'fontname' => 'Arial', 'shape' => 'record'], - 'edge' => ['fontsize' => 9, 'fontname' => 'Arial', 'color' => 'grey', 'arrowhead' => 'open', 'arrowsize' => 0.5], - 'node.instance' => ['fillcolor' => '#9999ff', 'style' => 'filled'], - 'node.definition' => ['fillcolor' => '#eeeeee'], - 'node.missing' => ['fillcolor' => '#ff9999', 'style' => 'filled'], - ]; - - /** - * Dumps the service container as a graphviz graph. - * - * Available options: - * - * * graph: The default options for the whole graph - * * node: The default options for nodes - * * edge: The default options for edges - * * node.instance: The default options for services that are defined directly by object instances - * * node.definition: The default options for services that are defined via service definition instances - * * node.missing: The default options for missing services - * - * @return string The dot representation of the service container - */ - public function dump(array $options = []) - { - foreach (['graph', 'node', 'edge', 'node.instance', 'node.definition', 'node.missing'] as $key) { - if (isset($options[$key])) { - $this->options[$key] = array_merge($this->options[$key], $options[$key]); - } - } - - $this->nodes = $this->findNodes(); - - $this->edges = []; - foreach ($this->container->getDefinitions() as $id => $definition) { - $this->edges[$id] = array_merge( - $this->findEdges($id, $definition->getArguments(), true, ''), - $this->findEdges($id, $definition->getProperties(), false, '') - ); - - foreach ($definition->getMethodCalls() as $call) { - $this->edges[$id] = array_merge( - $this->edges[$id], - $this->findEdges($id, $call[1], false, $call[0].'()') - ); - } - } - - return $this->container->resolveEnvPlaceholders($this->startDot().$this->addNodes().$this->addEdges().$this->endDot(), '__ENV_%s__'); - } - - private function addNodes(): string - { - $code = ''; - foreach ($this->nodes as $id => $node) { - $aliases = $this->getAliases($id); - - $code .= sprintf(" node_%s [label=\"%s\\n%s\\n\", shape=%s%s];\n", $this->dotize($id), $id.($aliases ? ' ('.implode(', ', $aliases).')' : ''), $node['class'], $this->options['node']['shape'], $this->addAttributes($node['attributes'])); - } - - return $code; - } - - private function addEdges(): string - { - $code = ''; - foreach ($this->edges as $id => $edges) { - foreach ($edges as $edge) { - $code .= sprintf(" node_%s -> node_%s [label=\"%s\" style=\"%s\"%s];\n", $this->dotize($id), $this->dotize($edge['to']), $edge['name'], $edge['required'] ? 'filled' : 'dashed', $edge['lazy'] ? ' color="#9999ff"' : ''); - } - } - - return $code; - } - - /** - * Finds all edges belonging to a specific service id. - */ - private function findEdges(string $id, array $arguments, bool $required, string $name, bool $lazy = false): array - { - $edges = []; - foreach ($arguments as $argument) { - if ($argument instanceof Parameter) { - $argument = $this->container->hasParameter($argument) ? $this->container->getParameter($argument) : null; - } elseif (\is_string($argument) && preg_match('/^%([^%]+)%$/', $argument, $match)) { - $argument = $this->container->hasParameter($match[1]) ? $this->container->getParameter($match[1]) : null; - } - - if ($argument instanceof Reference) { - $lazyEdge = $lazy; - - if (!$this->container->has((string) $argument)) { - $this->nodes[(string) $argument] = ['name' => $name, 'required' => $required, 'class' => '', 'attributes' => $this->options['node.missing']]; - } elseif ('service_container' !== (string) $argument) { - $lazyEdge = $lazy || $this->container->getDefinition((string) $argument)->isLazy(); - } - - $edges[] = ['name' => $name, 'required' => $required, 'to' => $argument, 'lazy' => $lazyEdge]; - } elseif ($argument instanceof ArgumentInterface) { - $edges = array_merge($edges, $this->findEdges($id, $argument->getValues(), $required, $name, true)); - } elseif ($argument instanceof Definition) { - $edges = array_merge($edges, - $this->findEdges($id, $argument->getArguments(), $required, ''), - $this->findEdges($id, $argument->getProperties(), false, '') - ); - foreach ($argument->getMethodCalls() as $call) { - $edges = array_merge($edges, $this->findEdges($id, $call[1], false, $call[0].'()')); - } - } elseif (\is_array($argument)) { - $edges = array_merge($edges, $this->findEdges($id, $argument, $required, $name, $lazy)); - } - } - - return $edges; - } - - private function findNodes(): array - { - $nodes = []; - - $container = $this->cloneContainer(); - - foreach ($container->getDefinitions() as $id => $definition) { - $class = $definition->getClass(); - - if ('\\' === substr($class, 0, 1)) { - $class = substr($class, 1); - } - - try { - $class = $this->container->getParameterBag()->resolveValue($class); - } catch (ParameterNotFoundException $e) { - } - - $nodes[$id] = ['class' => str_replace('\\', '\\\\', $class), 'attributes' => array_merge($this->options['node.definition'], ['style' => $definition->isShared() ? 'filled' : 'dotted'])]; - $container->setDefinition($id, new Definition('stdClass')); - } - - foreach ($container->getServiceIds() as $id) { - if (\array_key_exists($id, $container->getAliases())) { - continue; - } - - if (!$container->hasDefinition($id)) { - $nodes[$id] = ['class' => str_replace('\\', '\\\\', \get_class($container->get($id))), 'attributes' => $this->options['node.instance']]; - } - } - - return $nodes; - } - - private function cloneContainer(): ContainerBuilder - { - $parameterBag = new ParameterBag($this->container->getParameterBag()->all()); - - $container = new ContainerBuilder($parameterBag); - $container->setDefinitions($this->container->getDefinitions()); - $container->setAliases($this->container->getAliases()); - $container->setResources($this->container->getResources()); - foreach ($this->container->getExtensions() as $extension) { - $container->registerExtension($extension); - } - - return $container; - } - - private function startDot(): string - { - return sprintf("digraph sc {\n %s\n node [%s];\n edge [%s];\n\n", - $this->addOptions($this->options['graph']), - $this->addOptions($this->options['node']), - $this->addOptions($this->options['edge']) - ); - } - - private function endDot(): string - { - return "}\n"; - } - - private function addAttributes(array $attributes): string - { - $code = []; - foreach ($attributes as $k => $v) { - $code[] = sprintf('%s="%s"', $k, $v); - } - - return $code ? ', '.implode(', ', $code) : ''; - } - - private function addOptions(array $options): string - { - $code = []; - foreach ($options as $k => $v) { - $code[] = sprintf('%s="%s"', $k, $v); - } - - return implode(' ', $code); - } - - private function dotize(string $id): string - { - return preg_replace('/\W/i', '_', $id); - } - - private function getAliases(string $id): array - { - $aliases = []; - foreach ($this->container->getAliases() as $alias => $origin) { - if ($id == $origin) { - $aliases[] = $alias; - } - } - - return $aliases; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Dumper/PhpDumper.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Dumper/PhpDumper.php deleted file mode 100644 index 15d5c09..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Dumper/PhpDumper.php +++ /dev/null @@ -1,2062 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Dumper; - -use Composer\Autoload\ClassLoader; -use Symfony\Component\Debug\DebugClassLoader as LegacyDebugClassLoader; -use Symfony\Component\DependencyInjection\Argument\ArgumentInterface; -use Symfony\Component\DependencyInjection\Argument\IteratorArgument; -use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use Symfony\Component\DependencyInjection\Argument\ServiceLocator; -use Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; -use Symfony\Component\DependencyInjection\Compiler\AnalyzeServiceReferencesPass; -use Symfony\Component\DependencyInjection\Compiler\CheckCircularReferencesPass; -use Symfony\Component\DependencyInjection\Compiler\ServiceReferenceGraphNode; -use Symfony\Component\DependencyInjection\Container; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\EnvParameterException; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\LogicException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException; -use Symfony\Component\DependencyInjection\ExpressionLanguage; -use Symfony\Component\DependencyInjection\LazyProxy\PhpDumper\DumperInterface as ProxyDumper; -use Symfony\Component\DependencyInjection\LazyProxy\PhpDumper\NullDumper; -use Symfony\Component\DependencyInjection\Loader\FileLoader; -use Symfony\Component\DependencyInjection\Parameter; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\DependencyInjection\ServiceLocator as BaseServiceLocator; -use Symfony\Component\DependencyInjection\TypedReference; -use Symfony\Component\DependencyInjection\Variable; -use Symfony\Component\ErrorHandler\DebugClassLoader; -use Symfony\Component\ExpressionLanguage\Expression; -use Symfony\Component\HttpKernel\Kernel; - -/** - * PhpDumper dumps a service container as a PHP class. - * - * @author Fabien Potencier - * @author Johannes M. Schmitt - */ -class PhpDumper extends Dumper -{ - /** - * Characters that might appear in the generated variable name as first character. - */ - const FIRST_CHARS = 'abcdefghijklmnopqrstuvwxyz'; - - /** - * Characters that might appear in the generated variable name as any but the first character. - */ - const NON_FIRST_CHARS = 'abcdefghijklmnopqrstuvwxyz0123456789_'; - - private $definitionVariables; - private $referenceVariables; - private $variableCount; - private $inlinedDefinitions; - private $serviceCalls; - private $reservedVariables = ['instance', 'class', 'this']; - private $expressionLanguage; - private $targetDirRegex; - private $targetDirMaxMatches; - private $docStar; - private $serviceIdToMethodNameMap; - private $usedMethodNames; - private $namespace; - private $asFiles; - private $hotPathTag; - private $inlineFactories; - private $inlineRequires; - private $inlinedRequires = []; - private $circularReferences = []; - private $singleUsePrivateIds = []; - private $addThrow = false; - private $addGetService = false; - private $locatedIds = []; - private $serviceLocatorTag; - private $exportedVariables = []; - private $baseClass; - - /** - * @var ProxyDumper - */ - private $proxyDumper; - - /** - * {@inheritdoc} - */ - public function __construct(ContainerBuilder $container) - { - if (!$container->isCompiled()) { - throw new LogicException('Cannot dump an uncompiled container.'); - } - - parent::__construct($container); - } - - /** - * Sets the dumper to be used when dumping proxies in the generated container. - */ - public function setProxyDumper(ProxyDumper $proxyDumper) - { - $this->proxyDumper = $proxyDumper; - } - - /** - * Dumps the service container as a PHP class. - * - * Available options: - * - * * class: The class name - * * base_class: The base class name - * * namespace: The class namespace - * * as_files: To split the container in several files - * - * @return string|array A PHP class representing the service container or an array of PHP files if the "as_files" option is set - * - * @throws EnvParameterException When an env var exists but has not been dumped - */ - public function dump(array $options = []) - { - $this->locatedIds = []; - $this->targetDirRegex = null; - $this->inlinedRequires = []; - $this->exportedVariables = []; - $options = array_merge([ - 'class' => 'ProjectServiceContainer', - 'base_class' => 'Container', - 'namespace' => '', - 'as_files' => false, - 'debug' => true, - 'hot_path_tag' => 'container.hot_path', - 'inline_factories_parameter' => 'container.dumper.inline_factories', - 'inline_class_loader_parameter' => 'container.dumper.inline_class_loader', - 'service_locator_tag' => 'container.service_locator', - 'build_time' => time(), - ], $options); - - $this->addThrow = $this->addGetService = false; - $this->namespace = $options['namespace']; - $this->asFiles = $options['as_files']; - $this->hotPathTag = $options['hot_path_tag']; - $this->inlineFactories = $this->asFiles && $options['inline_factories_parameter'] && $this->container->hasParameter($options['inline_factories_parameter']) && $this->container->getParameter($options['inline_factories_parameter']); - $this->inlineRequires = $options['inline_class_loader_parameter'] && $this->container->hasParameter($options['inline_class_loader_parameter']) && $this->container->getParameter($options['inline_class_loader_parameter']); - $this->serviceLocatorTag = $options['service_locator_tag']; - - if (0 !== strpos($baseClass = $options['base_class'], '\\') && 'Container' !== $baseClass) { - $baseClass = sprintf('%s\%s', $options['namespace'] ? '\\'.$options['namespace'] : '', $baseClass); - $this->baseClass = $baseClass; - } elseif ('Container' === $baseClass) { - $this->baseClass = Container::class; - } else { - $this->baseClass = $baseClass; - } - - $this->initializeMethodNamesMap('Container' === $baseClass ? Container::class : $baseClass); - - if ($this->getProxyDumper() instanceof NullDumper) { - (new AnalyzeServiceReferencesPass(true, false))->process($this->container); - try { - (new CheckCircularReferencesPass())->process($this->container); - } catch (ServiceCircularReferenceException $e) { - $path = $e->getPath(); - end($path); - $path[key($path)] .= '". Try running "composer require symfony/proxy-manager-bridge'; - - throw new ServiceCircularReferenceException($e->getServiceId(), $path); - } - } - - (new AnalyzeServiceReferencesPass(false, !$this->getProxyDumper() instanceof NullDumper))->process($this->container); - $checkedNodes = []; - $this->circularReferences = []; - $this->singleUsePrivateIds = []; - foreach ($this->container->getCompiler()->getServiceReferenceGraph()->getNodes() as $id => $node) { - if (!$node->getValue() instanceof Definition) { - continue; - } - if (!isset($checkedNodes[$id])) { - $this->analyzeCircularReferences($id, $node->getOutEdges(), $checkedNodes); - } - if ($this->isSingleUsePrivateNode($node)) { - $this->singleUsePrivateIds[$id] = $id; - } - } - $this->container->getCompiler()->getServiceReferenceGraph()->clear(); - $checkedNodes = []; - $this->singleUsePrivateIds = array_diff_key($this->singleUsePrivateIds, $this->circularReferences); - - $this->docStar = $options['debug'] ? '*' : ''; - - if (!empty($options['file']) && is_dir($dir = \dirname($options['file']))) { - // Build a regexp where the first root dirs are mandatory, - // but every other sub-dir is optional up to the full path in $dir - // Mandate at least 1 root dir and not more than 5 optional dirs. - - $dir = explode(\DIRECTORY_SEPARATOR, realpath($dir)); - $i = \count($dir); - - if (2 + (int) ('\\' === \DIRECTORY_SEPARATOR) <= $i) { - $regex = ''; - $lastOptionalDir = $i > 8 ? $i - 5 : (2 + (int) ('\\' === \DIRECTORY_SEPARATOR)); - $this->targetDirMaxMatches = $i - $lastOptionalDir; - - while (--$i >= $lastOptionalDir) { - $regex = sprintf('(%s%s)?', preg_quote(\DIRECTORY_SEPARATOR.$dir[$i], '#'), $regex); - } - - do { - $regex = preg_quote(\DIRECTORY_SEPARATOR.$dir[$i], '#').$regex; - } while (0 < --$i); - - $this->targetDirRegex = '#'.preg_quote($dir[0], '#').$regex.'#'; - } - } - - $proxyClasses = $this->inlineFactories ? $this->generateProxyClasses() : null; - - $code = - $this->startClass($options['class'], $baseClass, $preload). - $this->addServices($services). - $this->addDeprecatedAliases(). - $this->addDefaultParametersMethod() - ; - - $proxyClasses = $proxyClasses ?? $this->generateProxyClasses(); - - if ($this->addGetService) { - $code = preg_replace( - "/(\r?\n\r?\n public function __construct.+?\\{\r?\n)/s", - "\n private \$getService;$1 \$this->getService = \\Closure::fromCallable([\$this, 'getService']);\n", - $code, - 1 - ); - } - - if ($this->asFiles) { - $fileStart = <<container->getRemovedIds(); - foreach ($this->container->getDefinitions() as $id => $definition) { - if (!$definition->isPublic()) { - $ids[$id] = true; - } - } - if ($ids = array_keys($ids)) { - sort($ids); - $c = "doExport($id)." => true,\n"; - } - $files['removed-ids.php'] = $c."];\n"; - } - - if (!$this->inlineFactories) { - foreach ($this->generateServiceFiles($services) as $file => $c) { - $files[$file] = $fileStart.$c; - } - foreach ($proxyClasses as $file => $c) { - $files[$file] = "endClass(); - - if ($this->inlineFactories) { - foreach ($proxyClasses as $c) { - $code .= $c; - } - } - - $files[$options['class'].'.php'] = $code; - $hash = ucfirst(strtr(ContainerBuilder::hash($files), '._', 'xx')); - $code = []; - - foreach ($files as $file => $c) { - $code["Container{$hash}/{$file}"] = $c; - } - array_pop($code); - $code["Container{$hash}/{$options['class']}.php"] = substr_replace($files[$options['class'].'.php'], "namespace ? "\nnamespace {$this->namespace};\n" : ''; - $time = $options['build_time']; - $id = hash('crc32', $hash.$time); - $this->asFiles = false; - - if ($preload && null !== $autoloadFile = $this->getAutoloadFile()) { - $autoloadFile = substr($this->export($autoloadFile), 2, -1); - - $code[$options['class'].'.preload.php'] = <<= 7.4 when preloading is desired - -use Symfony\Component\DependencyInjection\Dumper\Preloader; - -require $autoloadFile; -require __DIR__.'/Container{$hash}/{$options['class']}.php'; - -\$classes = []; - -EOF; - - foreach ($preload as $class) { - $code[$options['class'].'.preload.php'] .= sprintf("\$classes[] = '%s';\n", $class); - } - - $code[$options['class'].'.preload.php'] .= <<<'EOF' - -Preloader::preload($classes); - -EOF; - } - - $code[$options['class'].'.php'] = << '$hash', - 'container.build_id' => '$id', - 'container.build_time' => $time, -], __DIR__.\\DIRECTORY_SEPARATOR.'Container{$hash}'); - -EOF; - } else { - $code .= $this->endClass(); - foreach ($proxyClasses as $c) { - $code .= $c; - } - } - - $this->targetDirRegex = null; - $this->inlinedRequires = []; - $this->circularReferences = []; - $this->locatedIds = []; - $this->exportedVariables = []; - - $unusedEnvs = []; - foreach ($this->container->getEnvCounters() as $env => $use) { - if (!$use) { - $unusedEnvs[] = $env; - } - } - if ($unusedEnvs) { - throw new EnvParameterException($unusedEnvs, null, 'Environment variables "%s" are never used. Please, check your container\'s configuration.'); - } - - return $code; - } - - /** - * Retrieves the currently set proxy dumper or instantiates one. - */ - private function getProxyDumper(): ProxyDumper - { - if (!$this->proxyDumper) { - $this->proxyDumper = new NullDumper(); - } - - return $this->proxyDumper; - } - - private function analyzeCircularReferences(string $sourceId, array $edges, array &$checkedNodes, array &$currentPath = [], bool $byConstructor = true) - { - $checkedNodes[$sourceId] = true; - $currentPath[$sourceId] = $byConstructor; - - foreach ($edges as $edge) { - $node = $edge->getDestNode(); - $id = $node->getId(); - - if (!$node->getValue() instanceof Definition || $sourceId === $id || $edge->isLazy() || $edge->isWeak()) { - // no-op - } elseif (isset($currentPath[$id])) { - $this->addCircularReferences($id, $currentPath, $edge->isReferencedByConstructor()); - } elseif (!isset($checkedNodes[$id])) { - $this->analyzeCircularReferences($id, $node->getOutEdges(), $checkedNodes, $currentPath, $edge->isReferencedByConstructor()); - } elseif (isset($this->circularReferences[$id])) { - $this->connectCircularReferences($id, $currentPath, $edge->isReferencedByConstructor()); - } - } - unset($currentPath[$sourceId]); - } - - private function connectCircularReferences(string $sourceId, array &$currentPath, bool $byConstructor, array &$subPath = []) - { - $currentPath[$sourceId] = $subPath[$sourceId] = $byConstructor; - - foreach ($this->circularReferences[$sourceId] as $id => $byConstructor) { - if (isset($currentPath[$id])) { - $this->addCircularReferences($id, $currentPath, $byConstructor); - } elseif (!isset($subPath[$id]) && isset($this->circularReferences[$id])) { - $this->connectCircularReferences($id, $currentPath, $byConstructor, $subPath); - } - } - unset($currentPath[$sourceId], $subPath[$sourceId]); - } - - private function addCircularReferences(string $id, array $currentPath, bool $byConstructor) - { - $currentPath[$id] = $byConstructor; - $circularRefs = []; - - foreach (array_reverse($currentPath) as $parentId => $v) { - $byConstructor = $byConstructor && $v; - $circularRefs[] = $parentId; - - if ($parentId === $id) { - break; - } - } - - $currentId = $id; - foreach ($circularRefs as $parentId) { - if (empty($this->circularReferences[$parentId][$currentId])) { - $this->circularReferences[$parentId][$currentId] = $byConstructor; - } - - $currentId = $parentId; - } - } - - private function collectLineage(string $class, array &$lineage) - { - if (isset($lineage[$class])) { - return; - } - if (!$r = $this->container->getReflectionClass($class, false)) { - return; - } - if (is_a($class, $this->baseClass, true)) { - return; - } - $file = $r->getFileName(); - if (!$file || $this->doExport($file) === $exportedFile = $this->export($file)) { - return; - } - - $lineage[$class] = substr($exportedFile, 1, -1); - - if ($parent = $r->getParentClass()) { - $this->collectLineage($parent->name, $lineage); - } - - foreach ($r->getInterfaces() as $parent) { - $this->collectLineage($parent->name, $lineage); - } - - foreach ($r->getTraits() as $parent) { - $this->collectLineage($parent->name, $lineage); - } - - unset($lineage[$class]); - $lineage[$class] = substr($exportedFile, 1, -1); - } - - private function generateProxyClasses(): array - { - $proxyClasses = []; - $alreadyGenerated = []; - $definitions = $this->container->getDefinitions(); - $strip = '' === $this->docStar && method_exists('Symfony\Component\HttpKernel\Kernel', 'stripComments'); - $proxyDumper = $this->getProxyDumper(); - ksort($definitions); - foreach ($definitions as $definition) { - if (!$proxyDumper->isProxyCandidate($definition)) { - continue; - } - if (isset($alreadyGenerated[$class = $definition->getClass()])) { - continue; - } - $alreadyGenerated[$class] = true; - // register class' reflector for resource tracking - $this->container->getReflectionClass($class); - if ("\n" === $proxyCode = "\n".$proxyDumper->getProxyCode($definition)) { - continue; - } - - if ($this->inlineRequires) { - $lineage = []; - $this->collectLineage($class, $lineage); - - $code = ''; - foreach (array_diff_key(array_flip($lineage), $this->inlinedRequires) as $file => $class) { - if ($this->inlineFactories) { - $this->inlinedRequires[$file] = true; - } - $code .= sprintf("include_once %s;\n", $file); - } - - $proxyCode = $code.$proxyCode; - } - - if ($strip) { - $proxyCode = "inlineRequires ? substr($proxyCode, \strlen($code)) : $proxyCode, 3)[1])] = $proxyCode; - } - - return $proxyClasses; - } - - private function addServiceInclude(string $cId, Definition $definition): string - { - $code = ''; - - if ($this->inlineRequires && (!$this->isHotPath($definition) || $this->getProxyDumper()->isProxyCandidate($definition))) { - $lineage = []; - foreach ($this->inlinedDefinitions as $def) { - if (!$def->isDeprecated() && \is_string($class = \is_array($factory = $def->getFactory()) && \is_string($factory[0]) ? $factory[0] : $def->getClass())) { - $this->collectLineage($class, $lineage); - } - } - - foreach ($this->serviceCalls as $id => list($callCount, $behavior)) { - if ('service_container' !== $id && $id !== $cId - && ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE !== $behavior - && $this->container->has($id) - && $this->isTrivialInstance($def = $this->container->findDefinition($id)) - && \is_string($class = \is_array($factory = $def->getFactory()) && \is_string($factory[0]) ? $factory[0] : $def->getClass()) - ) { - $this->collectLineage($class, $lineage); - } - } - - foreach (array_diff_key(array_flip($lineage), $this->inlinedRequires) as $file => $class) { - $code .= sprintf(" include_once %s;\n", $file); - } - } - - foreach ($this->inlinedDefinitions as $def) { - if ($file = $def->getFile()) { - $file = $this->dumpValue($file); - $file = '(' === $file[0] ? substr($file, 1, -1) : $file; - $code .= sprintf(" include_once %s;\n", $file); - } - } - - if ('' !== $code) { - $code .= "\n"; - } - - return $code; - } - - /** - * @throws InvalidArgumentException - * @throws RuntimeException - */ - private function addServiceInstance(string $id, Definition $definition, bool $isSimpleInstance): string - { - $class = $this->dumpValue($definition->getClass()); - - if (0 === strpos($class, "'") && false === strpos($class, '$') && !preg_match('/^\'(?:\\\{2})?[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(?:\\\{2}[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)*\'$/', $class)) { - throw new InvalidArgumentException(sprintf('"%s" is not a valid class name for the "%s" service.', $class, $id)); - } - - $isProxyCandidate = $this->getProxyDumper()->isProxyCandidate($definition); - $instantiation = ''; - - $lastWitherIndex = null; - foreach ($definition->getMethodCalls() as $k => $call) { - if ($call[2] ?? false) { - $lastWitherIndex = $k; - } - } - - if (!$isProxyCandidate && $definition->isShared() && !isset($this->singleUsePrivateIds[$id]) && null === $lastWitherIndex) { - $instantiation = sprintf('$this->%s[%s] = %s', $this->container->getDefinition($id)->isPublic() ? 'services' : 'privates', $this->doExport($id), $isSimpleInstance ? '' : '$instance'); - } elseif (!$isSimpleInstance) { - $instantiation = '$instance'; - } - - $return = ''; - if ($isSimpleInstance) { - $return = 'return '; - } else { - $instantiation .= ' = '; - } - - return $this->addNewInstance($definition, ' '.$return.$instantiation, $id); - } - - private function isTrivialInstance(Definition $definition): bool - { - if ($definition->hasErrors()) { - return true; - } - if ($definition->isSynthetic() || $definition->getFile() || $definition->getMethodCalls() || $definition->getProperties() || $definition->getConfigurator()) { - return false; - } - if ($definition->isDeprecated() || $definition->isLazy() || $definition->getFactory() || 3 < \count($definition->getArguments())) { - return false; - } - - foreach ($definition->getArguments() as $arg) { - if (!$arg || $arg instanceof Parameter) { - continue; - } - if (\is_array($arg) && 3 >= \count($arg)) { - foreach ($arg as $k => $v) { - if ($this->dumpValue($k) !== $this->dumpValue($k, false)) { - return false; - } - if (!$v || $v instanceof Parameter) { - continue; - } - if ($v instanceof Reference && $this->container->has($id = (string) $v) && $this->container->findDefinition($id)->isSynthetic()) { - continue; - } - if (!is_scalar($v) || $this->dumpValue($v) !== $this->dumpValue($v, false)) { - return false; - } - } - } elseif ($arg instanceof Reference && $this->container->has($id = (string) $arg) && $this->container->findDefinition($id)->isSynthetic()) { - continue; - } elseif (!is_scalar($arg) || $this->dumpValue($arg) !== $this->dumpValue($arg, false)) { - return false; - } - } - - return true; - } - - private function addServiceMethodCalls(Definition $definition, string $variableName, ?string $sharedNonLazyId): string - { - $lastWitherIndex = null; - foreach ($definition->getMethodCalls() as $k => $call) { - if ($call[2] ?? false) { - $lastWitherIndex = $k; - } - } - - $calls = ''; - foreach ($definition->getMethodCalls() as $k => $call) { - $arguments = []; - foreach ($call[1] as $value) { - $arguments[] = $this->dumpValue($value); - } - - $witherAssignation = ''; - - if ($call[2] ?? false) { - if (null !== $sharedNonLazyId && $lastWitherIndex === $k) { - $witherAssignation = sprintf('$this->%s[\'%s\'] = ', $definition->isPublic() ? 'services' : 'privates', $sharedNonLazyId); - } - $witherAssignation .= sprintf('$%s = ', $variableName); - } - - $calls .= $this->wrapServiceConditionals($call[1], sprintf(" %s\$%s->%s(%s);\n", $witherAssignation, $variableName, $call[0], implode(', ', $arguments))); - } - - return $calls; - } - - private function addServiceProperties(Definition $definition, string $variableName = 'instance'): string - { - $code = ''; - foreach ($definition->getProperties() as $name => $value) { - $code .= sprintf(" \$%s->%s = %s;\n", $variableName, $name, $this->dumpValue($value)); - } - - return $code; - } - - private function addServiceConfigurator(Definition $definition, string $variableName = 'instance'): string - { - if (!$callable = $definition->getConfigurator()) { - return ''; - } - - if (\is_array($callable)) { - if ($callable[0] instanceof Reference - || ($callable[0] instanceof Definition && $this->definitionVariables->contains($callable[0])) - ) { - return sprintf(" %s->%s(\$%s);\n", $this->dumpValue($callable[0]), $callable[1], $variableName); - } - - $class = $this->dumpValue($callable[0]); - // If the class is a string we can optimize away - if (0 === strpos($class, "'") && false === strpos($class, '$')) { - return sprintf(" %s::%s(\$%s);\n", $this->dumpLiteralClass($class), $callable[1], $variableName); - } - - if (0 === strpos($class, 'new ')) { - return sprintf(" (%s)->%s(\$%s);\n", $this->dumpValue($callable[0]), $callable[1], $variableName); - } - - return sprintf(" [%s, '%s'](\$%s);\n", $this->dumpValue($callable[0]), $callable[1], $variableName); - } - - return sprintf(" %s(\$%s);\n", $callable, $variableName); - } - - private function addService(string $id, Definition $definition): array - { - $this->definitionVariables = new \SplObjectStorage(); - $this->referenceVariables = []; - $this->variableCount = 0; - $this->referenceVariables[$id] = new Variable('instance'); - - $return = []; - - if ($class = $definition->getClass()) { - $class = $class instanceof Parameter ? '%'.$class.'%' : $this->container->resolveEnvPlaceholders($class); - $return[] = sprintf(0 === strpos($class, '%') ? '@return object A %1$s instance' : '@return \%s', ltrim($class, '\\')); - } elseif ($definition->getFactory()) { - $factory = $definition->getFactory(); - if (\is_string($factory)) { - $return[] = sprintf('@return object An instance returned by %s()', $factory); - } elseif (\is_array($factory) && (\is_string($factory[0]) || $factory[0] instanceof Definition || $factory[0] instanceof Reference)) { - $class = $factory[0] instanceof Definition ? $factory[0]->getClass() : (string) $factory[0]; - $class = $class instanceof Parameter ? '%'.$class.'%' : $this->container->resolveEnvPlaceholders($class); - $return[] = sprintf('@return object An instance returned by %s::%s()', $class, $factory[1]); - } - } - - if ($definition->isDeprecated()) { - if ($return && 0 === strpos($return[\count($return) - 1], '@return')) { - $return[] = ''; - } - - $return[] = sprintf('@deprecated %s', $definition->getDeprecationMessage($id)); - } - - $return = str_replace("\n * \n", "\n *\n", implode("\n * ", $return)); - $return = $this->container->resolveEnvPlaceholders($return); - - $shared = $definition->isShared() ? ' shared' : ''; - $public = $definition->isPublic() ? 'public' : 'private'; - $autowired = $definition->isAutowired() ? ' autowired' : ''; - - if ($definition->isLazy()) { - $lazyInitialization = '$lazyLoad = true'; - } else { - $lazyInitialization = ''; - } - - $asFile = $this->asFiles && !$this->inlineFactories && !$this->isHotPath($definition); - $methodName = $this->generateMethodName($id); - if ($asFile) { - $file = $methodName.'.php'; - $code = " // Returns the $public '$id'$shared$autowired service.\n\n"; - } else { - $file = null; - $code = <<docStar} - * Gets the $public '$id'$shared$autowired service. - * - * $return -EOF; - $code = str_replace('*/', ' ', $code).<<serviceCalls = []; - $this->inlinedDefinitions = $this->getDefinitionsFromArguments([$definition], null, $this->serviceCalls); - - if ($definition->isDeprecated()) { - $code .= sprintf(" @trigger_error(%s, E_USER_DEPRECATED);\n\n", $this->export($definition->getDeprecationMessage($id))); - } - - if ($this->getProxyDumper()->isProxyCandidate($definition)) { - $factoryCode = $asFile ? ($definition->isShared() ? "\$this->load('%s.php', false)" : '$this->factories[%2$s](false)') : '$this->%s(false)'; - $code .= $this->getProxyDumper()->getProxyFactoryCode($definition, $id, sprintf($factoryCode, $methodName, $this->doExport($id))); - } - - $code .= $this->addServiceInclude($id, $definition); - $code .= $this->addInlineService($id, $definition); - - if ($asFile) { - $code = implode("\n", array_map(function ($line) { return $line ? substr($line, 8) : $line; }, explode("\n", $code))); - } else { - $code .= " }\n"; - } - - $this->definitionVariables = $this->inlinedDefinitions = null; - $this->referenceVariables = $this->serviceCalls = null; - - return [$file, $code]; - } - - private function addInlineVariables(string $id, Definition $definition, array $arguments, bool $forConstructor): string - { - $code = ''; - - foreach ($arguments as $argument) { - if (\is_array($argument)) { - $code .= $this->addInlineVariables($id, $definition, $argument, $forConstructor); - } elseif ($argument instanceof Reference) { - $code .= $this->addInlineReference($id, $definition, $argument, $forConstructor); - } elseif ($argument instanceof Definition) { - $code .= $this->addInlineService($id, $definition, $argument, $forConstructor); - } - } - - return $code; - } - - private function addInlineReference(string $id, Definition $definition, string $targetId, bool $forConstructor): string - { - while ($this->container->hasAlias($targetId)) { - $targetId = (string) $this->container->getAlias($targetId); - } - - list($callCount, $behavior) = $this->serviceCalls[$targetId]; - - if ($id === $targetId) { - return $this->addInlineService($id, $definition, $definition); - } - - if ('service_container' === $targetId || isset($this->referenceVariables[$targetId])) { - return ''; - } - - $hasSelfRef = isset($this->circularReferences[$id][$targetId]) && !isset($this->definitionVariables[$definition]); - - if ($hasSelfRef && !$forConstructor && !$forConstructor = !$this->circularReferences[$id][$targetId]) { - $code = $this->addInlineService($id, $definition, $definition); - } else { - $code = ''; - } - - if (isset($this->referenceVariables[$targetId]) || (2 > $callCount && (!$hasSelfRef || !$forConstructor))) { - return $code; - } - - $name = $this->getNextVariableName(); - $this->referenceVariables[$targetId] = new Variable($name); - - $reference = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE >= $behavior ? new Reference($targetId, $behavior) : null; - $code .= sprintf(" \$%s = %s;\n", $name, $this->getServiceCall($targetId, $reference)); - - if (!$hasSelfRef || !$forConstructor) { - return $code; - } - - $code .= sprintf(<<<'EOTXT' - - if (isset($this->%s[%s])) { - return $this->%1$s[%2$s]; - } - -EOTXT - , - $this->container->getDefinition($id)->isPublic() ? 'services' : 'privates', - $this->doExport($id) - ); - - return $code; - } - - private function addInlineService(string $id, Definition $definition, Definition $inlineDef = null, bool $forConstructor = true): string - { - $code = ''; - - if ($isSimpleInstance = $isRootInstance = null === $inlineDef) { - foreach ($this->serviceCalls as $targetId => list($callCount, $behavior, $byConstructor)) { - if ($byConstructor && isset($this->circularReferences[$id][$targetId]) && !$this->circularReferences[$id][$targetId]) { - $code .= $this->addInlineReference($id, $definition, $targetId, $forConstructor); - } - } - } - - if (isset($this->definitionVariables[$inlineDef = $inlineDef ?: $definition])) { - return $code; - } - - $arguments = [$inlineDef->getArguments(), $inlineDef->getFactory()]; - - $code .= $this->addInlineVariables($id, $definition, $arguments, $forConstructor); - - if ($arguments = array_filter([$inlineDef->getProperties(), $inlineDef->getMethodCalls(), $inlineDef->getConfigurator()])) { - $isSimpleInstance = false; - } elseif ($definition !== $inlineDef && 2 > $this->inlinedDefinitions[$inlineDef]) { - return $code; - } - - if (isset($this->definitionVariables[$inlineDef])) { - $isSimpleInstance = false; - } else { - $name = $definition === $inlineDef ? 'instance' : $this->getNextVariableName(); - $this->definitionVariables[$inlineDef] = new Variable($name); - $code .= '' !== $code ? "\n" : ''; - - if ('instance' === $name) { - $code .= $this->addServiceInstance($id, $definition, $isSimpleInstance); - } else { - $code .= $this->addNewInstance($inlineDef, ' $'.$name.' = ', $id); - } - - if ('' !== $inline = $this->addInlineVariables($id, $definition, $arguments, false)) { - $code .= "\n".$inline."\n"; - } elseif ($arguments && 'instance' === $name) { - $code .= "\n"; - } - - $code .= $this->addServiceProperties($inlineDef, $name); - $code .= $this->addServiceMethodCalls($inlineDef, $name, !$this->getProxyDumper()->isProxyCandidate($inlineDef) && $inlineDef->isShared() && !isset($this->singleUsePrivateIds[$id]) ? $id : null); - $code .= $this->addServiceConfigurator($inlineDef, $name); - } - - if ($isRootInstance && !$isSimpleInstance) { - $code .= "\n return \$instance;\n"; - } - - return $code; - } - - private function addServices(array &$services = null): string - { - $publicServices = $privateServices = ''; - $definitions = $this->container->getDefinitions(); - ksort($definitions); - foreach ($definitions as $id => $definition) { - $services[$id] = $definition->isSynthetic() ? null : $this->addService($id, $definition); - } - - foreach ($definitions as $id => $definition) { - if (!(list($file, $code) = $services[$id]) || null !== $file) { - continue; - } - if ($definition->isPublic()) { - $publicServices .= $code; - } elseif (!$this->isTrivialInstance($definition) || isset($this->locatedIds[$id])) { - $privateServices .= $code; - } - } - - return $publicServices.$privateServices; - } - - private function generateServiceFiles(array $services): iterable - { - $definitions = $this->container->getDefinitions(); - ksort($definitions); - foreach ($definitions as $id => $definition) { - if ((list($file, $code) = $services[$id]) && null !== $file && ($definition->isPublic() || !$this->isTrivialInstance($definition) || isset($this->locatedIds[$id]))) { - if (!$definition->isShared()) { - $i = strpos($code, "\n\ninclude_once "); - if (false !== $i && false !== $i = strpos($code, "\n\n", 2 + $i)) { - $code = [substr($code, 0, 2 + $i), substr($code, 2 + $i)]; - } else { - $code = ["\n", $code]; - } - $code[1] = implode("\n", array_map(function ($line) { return $line ? ' '.$line : $line; }, explode("\n", $code[1]))); - $factory = sprintf('$this->factories%s[%s]', $definition->isPublic() ? '' : "['service_container']", $this->doExport($id)); - $lazyloadInitialization = $definition->isLazy() ? '$lazyLoad = true' : ''; - - $code[1] = sprintf("%s = function (%s) {\n%s};\n\nreturn %1\$s();\n", $factory, $lazyloadInitialization, $code[1]); - $code = $code[0].$code[1]; - } - - yield $file => $code; - } - } - } - - private function addNewInstance(Definition $definition, string $return = '', string $id = null): string - { - $tail = $return ? ";\n" : ''; - - if (BaseServiceLocator::class === $definition->getClass() && $definition->hasTag($this->serviceLocatorTag)) { - $arguments = []; - foreach ($definition->getArgument(0) as $k => $argument) { - $arguments[$k] = $argument->getValues()[0]; - } - - return $return.$this->dumpValue(new ServiceLocatorArgument($arguments)).$tail; - } - - $arguments = []; - foreach ($definition->getArguments() as $value) { - $arguments[] = $this->dumpValue($value); - } - - if (null !== $definition->getFactory()) { - $callable = $definition->getFactory(); - - if (\is_array($callable)) { - if (!preg_match('/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$/', $callable[1])) { - throw new RuntimeException(sprintf('Cannot dump definition because of invalid factory method (%s)', $callable[1] ?: 'n/a')); - } - - if ($callable[0] instanceof Reference - || ($callable[0] instanceof Definition && $this->definitionVariables->contains($callable[0]))) { - return $return.sprintf('%s->%s(%s)', $this->dumpValue($callable[0]), $callable[1], $arguments ? implode(', ', $arguments) : '').$tail; - } - - $class = $this->dumpValue($callable[0]); - // If the class is a string we can optimize away - if (0 === strpos($class, "'") && false === strpos($class, '$')) { - if ("''" === $class) { - throw new RuntimeException(sprintf('Cannot dump definition: %s service is defined to be created by a factory but is missing the service reference, did you forget to define the factory service id or class?', $id ? 'The "'.$id.'"' : 'inline')); - } - - return $return.sprintf('%s::%s(%s)', $this->dumpLiteralClass($class), $callable[1], $arguments ? implode(', ', $arguments) : '').$tail; - } - - if (0 === strpos($class, 'new ')) { - return $return.sprintf('(%s)->%s(%s)', $class, $callable[1], $arguments ? implode(', ', $arguments) : '').$tail; - } - - return $return.sprintf("[%s, '%s'](%s)", $class, $callable[1], $arguments ? implode(', ', $arguments) : '').$tail; - } - - return $return.sprintf('%s(%s)', $this->dumpLiteralClass($this->dumpValue($callable)), $arguments ? implode(', ', $arguments) : '').$tail; - } - - if (null === $class = $definition->getClass()) { - throw new RuntimeException('Cannot dump definitions which have no class nor factory.'); - } - - return $return.sprintf('new %s(%s)', $this->dumpLiteralClass($this->dumpValue($class)), implode(', ', $arguments)).$tail; - } - - private function startClass(string $class, string $baseClass, ?array &$preload): string - { - $namespaceLine = !$this->asFiles && $this->namespace ? "\nnamespace {$this->namespace};\n" : ''; - - $code = <<docStar} - * This class has been auto-generated - * by the Symfony Dependency Injection Component. - * - * @final - */ -class $class extends $baseClass -{ - private \$parameters = []; - - public function __construct() - { - -EOF; - if ($this->asFiles) { - $code = str_replace('$parameters', "\$buildParameters;\n private \$containerDir;\n private \$parameters", $code); - $code = str_replace('__construct()', '__construct(array $buildParameters = [], $containerDir = __DIR__)', $code); - $code .= " \$this->buildParameters = \$buildParameters;\n"; - $code .= " \$this->containerDir = \$containerDir;\n"; - - if (null !== $this->targetDirRegex) { - $code = str_replace('$parameters', "\$targetDir;\n private \$parameters", $code); - $code .= ' $this->targetDir = \\dirname($containerDir);'."\n"; - } - } - - if (Container::class !== $this->baseClass) { - $r = $this->container->getReflectionClass($this->baseClass, false); - if (null !== $r - && (null !== $constructor = $r->getConstructor()) - && 0 === $constructor->getNumberOfRequiredParameters() - && Container::class !== $constructor->getDeclaringClass()->name - ) { - $code .= " parent::__construct();\n"; - $code .= " \$this->parameterBag = null;\n\n"; - } - } - - if ($this->container->getParameterBag()->all()) { - $code .= " \$this->parameters = \$this->getDefaultParameters();\n\n"; - } - $code .= " \$this->services = \$this->privates = [];\n"; - - $code .= $this->addSyntheticIds(); - $code .= $this->addMethodMap(); - $code .= $this->asFiles && !$this->inlineFactories ? $this->addFileMap() : ''; - $code .= $this->addAliases(); - $code .= $this->addInlineRequires($preload); - $code .= <<addRemovedIds(); - - if ($this->asFiles && !$this->inlineFactories) { - $code .= <<containerDir.\\DIRECTORY_SEPARATOR.\$file; - } - -EOF; - } - - $proxyDumper = $this->getProxyDumper(); - foreach ($this->container->getDefinitions() as $definition) { - if (!$proxyDumper->isProxyCandidate($definition)) { - continue; - } - if ($this->asFiles && !$this->inlineFactories) { - $proxyLoader = '$this->load("{$class}.php")'; - } elseif ($this->namespace || $this->inlineFactories) { - $proxyLoader = 'class_alias(__NAMESPACE__."\\\\$class", $class, false)'; - } else { - $proxyLoader = ''; - } - if ($proxyLoader) { - $proxyLoader = "class_exists(\$class, false) || {$proxyLoader};\n\n "; - } - $code .= <<container->getDefinitions(); - ksort($definitions); - foreach ($definitions as $id => $definition) { - if ($definition->isSynthetic() && 'service_container' !== $id) { - $code .= ' '.$this->doExport($id)." => true,\n"; - } - } - - return $code ? " \$this->syntheticIds = [\n{$code} ];\n" : ''; - } - - private function addRemovedIds(): string - { - $ids = $this->container->getRemovedIds(); - foreach ($this->container->getDefinitions() as $id => $definition) { - if (!$definition->isPublic()) { - $ids[$id] = true; - } - } - if (!$ids) { - return ''; - } - if ($this->asFiles) { - $code = "require \$this->containerDir.\\DIRECTORY_SEPARATOR.'removed-ids.php'"; - } else { - $code = ''; - $ids = array_keys($ids); - sort($ids); - foreach ($ids as $id) { - if (preg_match(FileLoader::ANONYMOUS_ID_REGEXP, $id)) { - continue; - } - $code .= ' '.$this->doExport($id)." => true,\n"; - } - - $code = "[\n{$code} ]"; - } - - return <<container->getDefinitions(); - ksort($definitions); - foreach ($definitions as $id => $definition) { - if (!$definition->isSynthetic() && $definition->isPublic() && (!$this->asFiles || $this->inlineFactories || $this->isHotPath($definition))) { - $code .= ' '.$this->doExport($id).' => '.$this->doExport($this->generateMethodName($id)).",\n"; - } - } - - $aliases = $this->container->getAliases(); - foreach ($aliases as $alias => $id) { - if (!$id->isDeprecated()) { - continue; - } - $code .= ' '.$this->doExport($alias).' => '.$this->doExport($this->generateMethodName($alias)).",\n"; - } - - return $code ? " \$this->methodMap = [\n{$code} ];\n" : ''; - } - - private function addFileMap(): string - { - $code = ''; - $definitions = $this->container->getDefinitions(); - ksort($definitions); - foreach ($definitions as $id => $definition) { - if (!$definition->isSynthetic() && $definition->isPublic() && !$this->isHotPath($definition)) { - $code .= sprintf(" %s => '%s.php',\n", $this->doExport($id), $this->generateMethodName($id)); - } - } - - return $code ? " \$this->fileMap = [\n{$code} ];\n" : ''; - } - - private function addAliases(): string - { - if (!$aliases = $this->container->getAliases()) { - return "\n \$this->aliases = [];\n"; - } - - $code = " \$this->aliases = [\n"; - ksort($aliases); - foreach ($aliases as $alias => $id) { - if ($id->isDeprecated()) { - continue; - } - - $id = (string) $id; - while (isset($aliases[$id])) { - $id = (string) $aliases[$id]; - } - $code .= ' '.$this->doExport($alias).' => '.$this->doExport($id).",\n"; - } - - return $code." ];\n"; - } - - private function addDeprecatedAliases(): string - { - $code = ''; - $aliases = $this->container->getAliases(); - foreach ($aliases as $alias => $definition) { - if (!$definition->isDeprecated()) { - continue; - } - $public = $definition->isPublic() ? 'public' : 'private'; - $id = (string) $definition; - $methodNameAlias = $this->generateMethodName($alias); - $idExported = $this->export($id); - $messageExported = $this->export($definition->getDeprecationMessage($alias)); - $code .= <<docStar} - * Gets the $public '$alias' alias. - * - * @return object The "$id" service. - */ - protected function {$methodNameAlias}() - { - @trigger_error($messageExported, E_USER_DEPRECATED); - - return \$this->get($idExported); - } - -EOF; - } - - return $code; - } - - private function addInlineRequires(?array &$preload): string - { - if (!$this->hotPathTag || !$this->inlineRequires) { - return ''; - } - - $lineage = []; - - foreach ($this->container->findTaggedServiceIds($this->hotPathTag) as $id => $tags) { - $definition = $this->container->getDefinition($id); - - if ($this->getProxyDumper()->isProxyCandidate($definition)) { - continue; - } - - $inlinedDefinitions = $this->getDefinitionsFromArguments([$definition]); - - foreach ($inlinedDefinitions as $def) { - if (\is_string($class = \is_array($factory = $def->getFactory()) && \is_string($factory[0]) ? $factory[0] : $def->getClass())) { - $preload[$class] = $class; - $this->collectLineage($class, $lineage); - } - } - } - - $code = ''; - - foreach ($lineage as $file) { - if (!isset($this->inlinedRequires[$file])) { - $this->inlinedRequires[$file] = true; - $code .= sprintf("\n include_once %s;", $file); - } - } - - return $code ? sprintf("\n \$this->privates['service_container'] = function () {%s\n };\n", $code) : ''; - } - - private function addDefaultParametersMethod(): string - { - if (!$this->container->getParameterBag()->all()) { - return ''; - } - - $php = []; - $dynamicPhp = []; - - foreach ($this->container->getParameterBag()->all() as $key => $value) { - if ($key !== $resolvedKey = $this->container->resolveEnvPlaceholders($key)) { - throw new InvalidArgumentException(sprintf('Parameter name cannot use env parameters: %s.', $resolvedKey)); - } - $export = $this->exportParameters([$value]); - $export = explode('0 => ', substr(rtrim($export, " ]\n"), 2, -1), 2); - - if (preg_match("/\\\$this->(?:getEnv\('(?:\w++:)*+\w++'\)|targetDir\.'')/", $export[1])) { - $dynamicPhp[$key] = sprintf('%scase %s: $value = %s; break;', $export[0], $this->export($key), $export[1]); - } else { - $php[] = sprintf('%s%s => %s,', $export[0], $this->export($key), $export[1]); - } - } - $parameters = sprintf("[\n%s\n%s]", implode("\n", $php), str_repeat(' ', 8)); - - $code = <<<'EOF' - - public function getParameter($name) - { - $name = (string) $name; - if (isset($this->buildParameters[$name])) { - return $this->buildParameters[$name]; - } - - if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters))) { - throw new InvalidArgumentException(sprintf('The parameter "%s" must be defined.', $name)); - } - if (isset($this->loadedDynamicParameters[$name])) { - return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name); - } - - return $this->parameters[$name]; - } - - public function hasParameter($name): bool - { - $name = (string) $name; - if (isset($this->buildParameters[$name])) { - return true; - } - - return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters); - } - - public function setParameter($name, $value): void - { - throw new LogicException('Impossible to call set() on a frozen ParameterBag.'); - } - - public function getParameterBag(): ParameterBagInterface - { - if (null === $this->parameterBag) { - $parameters = $this->parameters; - foreach ($this->loadedDynamicParameters as $name => $loaded) { - $parameters[$name] = $loaded ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name); - } - foreach ($this->buildParameters as $name => $value) { - $parameters[$name] = $value; - } - $this->parameterBag = new FrozenParameterBag($parameters); - } - - return $this->parameterBag; - } - -EOF; - if (!$this->asFiles) { - $code = preg_replace('/^.*buildParameters.*\n.*\n.*\n/m', '', $code); - } - - if ($dynamicPhp) { - $loadedDynamicParameters = $this->exportParameters(array_combine(array_keys($dynamicPhp), array_fill(0, \count($dynamicPhp), false)), '', 8); - $getDynamicParameter = <<<'EOF' - switch ($name) { -%s - default: throw new InvalidArgumentException(sprintf('The dynamic parameter "%%s" must be defined.', $name)); - } - $this->loadedDynamicParameters[$name] = true; - - return $this->dynamicParameters[$name] = $value; -EOF; - $getDynamicParameter = sprintf($getDynamicParameter, implode("\n", $dynamicPhp)); - } else { - $loadedDynamicParameters = '[]'; - $getDynamicParameter = str_repeat(' ', 8).'throw new InvalidArgumentException(sprintf(\'The dynamic parameter "%s" must be defined.\', $name));'; - } - - $code .= << $value) { - if (\is_array($value)) { - $value = $this->exportParameters($value, $path.'/'.$key, $indent + 4); - } elseif ($value instanceof ArgumentInterface) { - throw new InvalidArgumentException(sprintf('You cannot dump a container with parameters that contain special arguments. "%s" found in "%s".', \get_class($value), $path.'/'.$key)); - } elseif ($value instanceof Variable) { - throw new InvalidArgumentException(sprintf('You cannot dump a container with parameters that contain variable references. Variable "%s" found in "%s".', $value, $path.'/'.$key)); - } elseif ($value instanceof Definition) { - throw new InvalidArgumentException(sprintf('You cannot dump a container with parameters that contain service definitions. Definition for "%s" found in "%s".', $value->getClass(), $path.'/'.$key)); - } elseif ($value instanceof Reference) { - throw new InvalidArgumentException(sprintf('You cannot dump a container with parameters that contain references to other services (reference to service "%s" found in "%s").', $value, $path.'/'.$key)); - } elseif ($value instanceof Expression) { - throw new InvalidArgumentException(sprintf('You cannot dump a container with parameters that contain expressions. Expression "%s" found in "%s".', $value, $path.'/'.$key)); - } else { - $value = $this->export($value); - } - - $php[] = sprintf('%s%s => %s,', str_repeat(' ', $indent), $this->export($key), $value); - } - - return sprintf("[\n%s\n%s]", implode("\n", $php), str_repeat(' ', $indent - 4)); - } - - private function endClass(): string - { - if ($this->addThrow) { - return <<<'EOF' - - protected function throw($message) - { - throw new RuntimeException($message); - } -} - -EOF; - } - - return <<<'EOF' -} - -EOF; - } - - private function wrapServiceConditionals($value, string $code): string - { - if (!$condition = $this->getServiceConditionals($value)) { - return $code; - } - - // re-indent the wrapped code - $code = implode("\n", array_map(function ($line) { return $line ? ' '.$line : $line; }, explode("\n", $code))); - - return sprintf(" if (%s) {\n%s }\n", $condition, $code); - } - - private function getServiceConditionals($value): string - { - $conditions = []; - foreach (ContainerBuilder::getInitializedConditionals($value) as $service) { - if (!$this->container->hasDefinition($service)) { - return 'false'; - } - $conditions[] = sprintf('isset($this->%s[%s])', $this->container->getDefinition($service)->isPublic() ? 'services' : 'privates', $this->doExport($service)); - } - foreach (ContainerBuilder::getServiceConditionals($value) as $service) { - if ($this->container->hasDefinition($service) && !$this->container->getDefinition($service)->isPublic()) { - continue; - } - - $conditions[] = sprintf('$this->has(%s)', $this->doExport($service)); - } - - if (!$conditions) { - return ''; - } - - return implode(' && ', $conditions); - } - - private function getDefinitionsFromArguments(array $arguments, \SplObjectStorage $definitions = null, array &$calls = [], bool $byConstructor = null): \SplObjectStorage - { - if (null === $definitions) { - $definitions = new \SplObjectStorage(); - } - - foreach ($arguments as $argument) { - if (\is_array($argument)) { - $this->getDefinitionsFromArguments($argument, $definitions, $calls, $byConstructor); - } elseif ($argument instanceof Reference) { - $id = (string) $argument; - - while ($this->container->hasAlias($id)) { - $id = (string) $this->container->getAlias($id); - } - - if (!isset($calls[$id])) { - $calls[$id] = [0, $argument->getInvalidBehavior(), $byConstructor]; - } else { - $calls[$id][1] = min($calls[$id][1], $argument->getInvalidBehavior()); - } - - ++$calls[$id][0]; - } elseif (!$argument instanceof Definition) { - // no-op - } elseif (isset($definitions[$argument])) { - $definitions[$argument] = 1 + $definitions[$argument]; - } else { - $definitions[$argument] = 1; - $arguments = [$argument->getArguments(), $argument->getFactory()]; - $this->getDefinitionsFromArguments($arguments, $definitions, $calls, null === $byConstructor || $byConstructor); - $arguments = [$argument->getProperties(), $argument->getMethodCalls(), $argument->getConfigurator()]; - $this->getDefinitionsFromArguments($arguments, $definitions, $calls, null !== $byConstructor && $byConstructor); - } - } - - return $definitions; - } - - /** - * @throws RuntimeException - */ - private function dumpValue($value, bool $interpolate = true): string - { - if (\is_array($value)) { - if ($value && $interpolate && false !== $param = array_search($value, $this->container->getParameterBag()->all(), true)) { - return $this->dumpValue("%$param%"); - } - $code = []; - foreach ($value as $k => $v) { - $code[] = sprintf('%s => %s', $this->dumpValue($k, $interpolate), $this->dumpValue($v, $interpolate)); - } - - return sprintf('[%s]', implode(', ', $code)); - } elseif ($value instanceof ArgumentInterface) { - $scope = [$this->definitionVariables, $this->referenceVariables]; - $this->definitionVariables = $this->referenceVariables = null; - - try { - if ($value instanceof ServiceClosureArgument) { - $value = $value->getValues()[0]; - $code = $this->dumpValue($value, $interpolate); - - $returnedType = ''; - if ($value instanceof TypedReference) { - $returnedType = sprintf(': %s\%s', ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE >= $value->getInvalidBehavior() ? '' : '?', $value->getType()); - } - - $code = sprintf('return %s;', $code); - - return sprintf("function ()%s {\n %s\n }", $returnedType, $code); - } - - if ($value instanceof IteratorArgument) { - $operands = [0]; - $code = []; - $code[] = 'new RewindableGenerator(function () {'; - - if (!$values = $value->getValues()) { - $code[] = ' return new \EmptyIterator();'; - } else { - $countCode = []; - $countCode[] = 'function () {'; - - foreach ($values as $k => $v) { - ($c = $this->getServiceConditionals($v)) ? $operands[] = "(int) ($c)" : ++$operands[0]; - $v = $this->wrapServiceConditionals($v, sprintf(" yield %s => %s;\n", $this->dumpValue($k, $interpolate), $this->dumpValue($v, $interpolate))); - foreach (explode("\n", $v) as $v) { - if ($v) { - $code[] = ' '.$v; - } - } - } - - $countCode[] = sprintf(' return %s;', implode(' + ', $operands)); - $countCode[] = ' }'; - } - - $code[] = sprintf(' }, %s)', \count($operands) > 1 ? implode("\n", $countCode) : $operands[0]); - - return implode("\n", $code); - } - - if ($value instanceof ServiceLocatorArgument) { - $serviceMap = ''; - $serviceTypes = ''; - foreach ($value->getValues() as $k => $v) { - if (!$v) { - continue; - } - $definition = $this->container->findDefinition($id = (string) $v); - $load = !($definition->hasErrors() && $e = $definition->getErrors()) ? $this->asFiles && !$this->inlineFactories && !$this->isHotPath($definition) : reset($e); - $serviceMap .= sprintf("\n %s => [%s, %s, %s, %s],", - $this->export($k), - $this->export($definition->isShared() ? ($definition->isPublic() ? 'services' : 'privates') : false), - $this->doExport($id), - $this->export(ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE !== $v->getInvalidBehavior() && !\is_string($load) ? $this->generateMethodName($id).($load ? '.php' : '') : null), - $this->export($load) - ); - $serviceTypes .= sprintf("\n %s => %s,", $this->export($k), $this->export($v instanceof TypedReference ? $v->getType() : '?')); - $this->locatedIds[$id] = true; - } - $this->addGetService = true; - - return sprintf('new \%s($this->getService, [%s%s], [%s%s])', ServiceLocator::class, $serviceMap, $serviceMap ? "\n " : '', $serviceTypes, $serviceTypes ? "\n " : ''); - } - } finally { - list($this->definitionVariables, $this->referenceVariables) = $scope; - } - } elseif ($value instanceof Definition) { - if ($value->hasErrors() && $e = $value->getErrors()) { - $this->addThrow = true; - - return sprintf('$this->throw(%s)', $this->export(reset($e))); - } - if (null !== $this->definitionVariables && $this->definitionVariables->contains($value)) { - return $this->dumpValue($this->definitionVariables[$value], $interpolate); - } - if ($value->getMethodCalls()) { - throw new RuntimeException('Cannot dump definitions which have method calls.'); - } - if ($value->getProperties()) { - throw new RuntimeException('Cannot dump definitions which have properties.'); - } - if (null !== $value->getConfigurator()) { - throw new RuntimeException('Cannot dump definitions which have a configurator.'); - } - - return $this->addNewInstance($value); - } elseif ($value instanceof Variable) { - return '$'.$value; - } elseif ($value instanceof Reference) { - $id = (string) $value; - - while ($this->container->hasAlias($id)) { - $id = (string) $this->container->getAlias($id); - } - - if (null !== $this->referenceVariables && isset($this->referenceVariables[$id])) { - return $this->dumpValue($this->referenceVariables[$id], $interpolate); - } - - return $this->getServiceCall($id, $value); - } elseif ($value instanceof Expression) { - return $this->getExpressionLanguage()->compile((string) $value, ['this' => 'container']); - } elseif ($value instanceof Parameter) { - return $this->dumpParameter($value); - } elseif (true === $interpolate && \is_string($value)) { - if (preg_match('/^%([^%]+)%$/', $value, $match)) { - // we do this to deal with non string values (Boolean, integer, ...) - // the preg_replace_callback converts them to strings - return $this->dumpParameter($match[1]); - } else { - $replaceParameters = function ($match) { - return "'.".$this->dumpParameter($match[2]).".'"; - }; - - $code = str_replace('%%', '%', preg_replace_callback('/(?export($value))); - - return $code; - } - } elseif (\is_object($value) || \is_resource($value)) { - throw new RuntimeException('Unable to dump a service container if a parameter is an object or a resource.'); - } - - return $this->export($value); - } - - /** - * Dumps a string to a literal (aka PHP Code) class value. - * - * @throws RuntimeException - */ - private function dumpLiteralClass(string $class): string - { - if (false !== strpos($class, '$')) { - return sprintf('${($_ = %s) && false ?: "_"}', $class); - } - if (0 !== strpos($class, "'") || !preg_match('/^\'(?:\\\{2})?[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(?:\\\{2}[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)*\'$/', $class)) { - throw new RuntimeException(sprintf('Cannot dump definition because of invalid class name (%s)', $class ?: 'n/a')); - } - - $class = substr(str_replace('\\\\', '\\', $class), 1, -1); - - return 0 === strpos($class, '\\') ? $class : '\\'.$class; - } - - private function dumpParameter(string $name): string - { - if ($this->container->hasParameter($name)) { - $value = $this->container->getParameter($name); - $dumpedValue = $this->dumpValue($value, false); - - if (!$value || !\is_array($value)) { - return $dumpedValue; - } - - if (!preg_match("/\\\$this->(?:getEnv\('(?:\w++:)*+\w++'\)|targetDir\.'')/", $dumpedValue)) { - return sprintf('$this->parameters[%s]', $this->doExport($name)); - } - } - - return sprintf('$this->getParameter(%s)', $this->doExport($name)); - } - - private function getServiceCall(string $id, Reference $reference = null): string - { - while ($this->container->hasAlias($id)) { - $id = (string) $this->container->getAlias($id); - } - - if ('service_container' === $id) { - return '$this'; - } - - if ($this->container->hasDefinition($id) && $definition = $this->container->getDefinition($id)) { - if ($definition->isSynthetic()) { - $code = sprintf('$this->get(%s%s)', $this->doExport($id), null !== $reference ? ', '.$reference->getInvalidBehavior() : ''); - } elseif (null !== $reference && ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE === $reference->getInvalidBehavior()) { - $code = 'null'; - if (!$definition->isShared()) { - return $code; - } - } elseif ($this->isTrivialInstance($definition)) { - if ($definition->hasErrors() && $e = $definition->getErrors()) { - $this->addThrow = true; - - return sprintf('$this->throw(%s)', $this->export(reset($e))); - } - $code = $this->addNewInstance($definition, '', $id); - if ($definition->isShared() && !isset($this->singleUsePrivateIds[$id])) { - $code = sprintf('$this->%s[%s] = %s', $definition->isPublic() ? 'services' : 'privates', $this->doExport($id), $code); - } - $code = "($code)"; - } elseif ($this->asFiles && !$this->inlineFactories && !$this->isHotPath($definition)) { - $code = sprintf("\$this->load('%s.php')", $this->generateMethodName($id)); - if (!$definition->isShared()) { - $factory = sprintf('$this->factories%s[%s]', $definition->isPublic() ? '' : "['service_container']", $this->doExport($id)); - $code = sprintf('(isset(%s) ? %1$s() : %s)', $factory, $code); - } - } else { - $code = sprintf('$this->%s()', $this->generateMethodName($id)); - } - if ($definition->isShared() && !isset($this->singleUsePrivateIds[$id])) { - $code = sprintf('($this->%s[%s] ?? %s)', $definition->isPublic() ? 'services' : 'privates', $this->doExport($id), $code); - } - - return $code; - } - if (null !== $reference && ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE === $reference->getInvalidBehavior()) { - return 'null'; - } - if (null !== $reference && ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE < $reference->getInvalidBehavior()) { - $code = sprintf('$this->get(%s, /* ContainerInterface::NULL_ON_INVALID_REFERENCE */ %d)', $this->doExport($id), ContainerInterface::NULL_ON_INVALID_REFERENCE); - } else { - $code = sprintf('$this->get(%s)', $this->doExport($id)); - } - - return sprintf('($this->services[%s] ?? %s)', $this->doExport($id), $code); - } - - /** - * Initializes the method names map to avoid conflicts with the Container methods. - */ - private function initializeMethodNamesMap(string $class) - { - $this->serviceIdToMethodNameMap = []; - $this->usedMethodNames = []; - - if ($reflectionClass = $this->container->getReflectionClass($class)) { - foreach ($reflectionClass->getMethods() as $method) { - $this->usedMethodNames[strtolower($method->getName())] = true; - } - } - } - - /** - * @throws InvalidArgumentException - */ - private function generateMethodName(string $id): string - { - if (isset($this->serviceIdToMethodNameMap[$id])) { - return $this->serviceIdToMethodNameMap[$id]; - } - - $i = strrpos($id, '\\'); - $name = Container::camelize(false !== $i && isset($id[1 + $i]) ? substr($id, 1 + $i) : $id); - $name = preg_replace('/[^a-zA-Z0-9_\x7f-\xff]/', '', $name); - $methodName = 'get'.$name.'Service'; - $suffix = 1; - - while (isset($this->usedMethodNames[strtolower($methodName)])) { - ++$suffix; - $methodName = 'get'.$name.$suffix.'Service'; - } - - $this->serviceIdToMethodNameMap[$id] = $methodName; - $this->usedMethodNames[strtolower($methodName)] = true; - - return $methodName; - } - - private function getNextVariableName(): string - { - $firstChars = self::FIRST_CHARS; - $firstCharsLength = \strlen($firstChars); - $nonFirstChars = self::NON_FIRST_CHARS; - $nonFirstCharsLength = \strlen($nonFirstChars); - - while (true) { - $name = ''; - $i = $this->variableCount; - - if ('' === $name) { - $name .= $firstChars[$i % $firstCharsLength]; - $i = (int) ($i / $firstCharsLength); - } - - while ($i > 0) { - --$i; - $name .= $nonFirstChars[$i % $nonFirstCharsLength]; - $i = (int) ($i / $nonFirstCharsLength); - } - - ++$this->variableCount; - - // check that the name is not reserved - if (\in_array($name, $this->reservedVariables, true)) { - continue; - } - - return $name; - } - } - - private function getExpressionLanguage(): ExpressionLanguage - { - if (null === $this->expressionLanguage) { - if (!class_exists('Symfony\Component\ExpressionLanguage\ExpressionLanguage')) { - throw new LogicException('Unable to use expressions as the Symfony ExpressionLanguage component is not installed.'); - } - $providers = $this->container->getExpressionLanguageProviders(); - $this->expressionLanguage = new ExpressionLanguage(null, $providers, function ($arg) { - $id = '""' === substr_replace($arg, '', 1, -1) ? stripcslashes(substr($arg, 1, -1)) : null; - - if (null !== $id && ($this->container->hasAlias($id) || $this->container->hasDefinition($id))) { - return $this->getServiceCall($id); - } - - return sprintf('$this->get(%s)', $arg); - }); - - if ($this->container->isTrackingResources()) { - foreach ($providers as $provider) { - $this->container->addObjectResource($provider); - } - } - } - - return $this->expressionLanguage; - } - - private function isHotPath(Definition $definition): bool - { - return $this->hotPathTag && $definition->hasTag($this->hotPathTag) && !$definition->isDeprecated(); - } - - private function isSingleUsePrivateNode(ServiceReferenceGraphNode $node): bool - { - if ($node->getValue()->isPublic()) { - return false; - } - $ids = []; - foreach ($node->getInEdges() as $edge) { - if (!$value = $edge->getSourceNode()->getValue()) { - continue; - } - if ($edge->isLazy() || !$value instanceof Definition || !$value->isShared()) { - return false; - } - $ids[$edge->getSourceNode()->getId()] = true; - } - - return 1 === \count($ids); - } - - /** - * @return mixed - */ - private function export($value) - { - if (null !== $this->targetDirRegex && \is_string($value) && preg_match($this->targetDirRegex, $value, $matches, PREG_OFFSET_CAPTURE)) { - $prefix = $matches[0][1] ? $this->doExport(substr($value, 0, $matches[0][1]), true).'.' : ''; - $suffix = $matches[0][1] + \strlen($matches[0][0]); - $suffix = isset($value[$suffix]) ? '.'.$this->doExport(substr($value, $suffix), true) : ''; - $dirname = $this->asFiles ? '$this->containerDir' : '__DIR__'; - $offset = 1 + $this->targetDirMaxMatches - \count($matches); - - if (0 < $offset) { - $dirname = sprintf('\dirname(__DIR__, %d)', $offset + (int) $this->asFiles); - } elseif ($this->asFiles) { - $dirname = "\$this->targetDir.''"; // empty string concatenation on purpose - } - - if ($prefix || $suffix) { - return sprintf('(%s%s%s)', $prefix, $dirname, $suffix); - } - - return $dirname; - } - - return $this->doExport($value, true); - } - - /** - * @return mixed - */ - private function doExport($value, bool $resolveEnv = false) - { - $shouldCacheValue = $resolveEnv && \is_string($value); - if ($shouldCacheValue && isset($this->exportedVariables[$value])) { - return $this->exportedVariables[$value]; - } - if (\is_string($value) && false !== strpos($value, "\n")) { - $cleanParts = explode("\n", $value); - $cleanParts = array_map(function ($part) { return var_export($part, true); }, $cleanParts); - $export = implode('."\n".', $cleanParts); - } else { - $export = var_export($value, true); - } - - if ($resolveEnv && "'" === $export[0] && $export !== $resolvedExport = $this->container->resolveEnvPlaceholders($export, "'.\$this->getEnv('string:%s').'")) { - $export = $resolvedExport; - if (".''" === substr($export, -3)) { - $export = substr($export, 0, -3); - if ("'" === $export[1]) { - $export = substr_replace($export, '', 18, 7); - } - } - if ("'" === $export[1]) { - $export = substr($export, 3); - } - } - - if ($shouldCacheValue) { - $this->exportedVariables[$value] = $export; - } - - return $export; - } - - private function getAutoloadFile(): ?string - { - if (null === $this->targetDirRegex) { - return null; - } - - foreach (spl_autoload_functions() as $autoloader) { - if (!\is_array($autoloader)) { - continue; - } - - if ($autoloader[0] instanceof DebugClassLoader || $autoloader[0] instanceof LegacyDebugClassLoader) { - $autoloader = $autoloader[0]->getClassLoader(); - } - - if (!\is_array($autoloader) || !$autoloader[0] instanceof ClassLoader || !$autoloader[0]->findFile(__CLASS__)) { - continue; - } - - foreach (get_declared_classes() as $class) { - if (0 === strpos($class, 'ComposerAutoloaderInit') && $class::getLoader() === $autoloader[0]) { - $file = \dirname((new \ReflectionClass($class))->getFileName(), 2).'/autoload.php'; - - if (preg_match($this->targetDirRegex.'A', $file)) { - return $file; - } - } - } - } - - return null; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Dumper/Preloader.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Dumper/Preloader.php deleted file mode 100644 index abb7d90..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Dumper/Preloader.php +++ /dev/null @@ -1,100 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Dumper; - -/** - * @author Nicolas Grekas - * - * @internal - */ -class Preloader -{ - public static function preload(array $classes) - { - set_error_handler(function ($t, $m, $f, $l) { - if (error_reporting() & $t) { - if (__FILE__ !== $f) { - throw new \ErrorException($m, 0, $t, $f, $l); - } - - throw new \ReflectionException($m); - } - }); - - $prev = []; - $preloaded = []; - - try { - while ($prev !== $classes) { - $prev = $classes; - foreach ($classes as $c) { - if (!isset($preloaded[$c])) { - self::doPreload($c, $preloaded); - } - } - $classes = array_merge(get_declared_classes(), get_declared_interfaces(), get_declared_traits()); - } - } finally { - restore_error_handler(); - } - } - - private static function doPreload(string $class, array &$preloaded) - { - if (isset($preloaded[$class]) || \in_array($class, ['self', 'static', 'parent'], true)) { - return; - } - - $preloaded[$class] = true; - - try { - $r = new \ReflectionClass($class); - - if ($r->isInternal()) { - return; - } - - $r->getConstants(); - $r->getDefaultProperties(); - - if (\PHP_VERSION_ID >= 70400) { - foreach ($r->getProperties(\ReflectionProperty::IS_PUBLIC) as $p) { - if (($t = $p->getType()) && !$t->isBuiltin()) { - self::doPreload($t->getName(), $preloaded); - } - } - } - - foreach ($r->getMethods(\ReflectionMethod::IS_PUBLIC) as $m) { - foreach ($m->getParameters() as $p) { - if ($p->isDefaultValueAvailable() && $p->isDefaultValueConstant()) { - $c = $p->getDefaultValueConstantName(); - - if ($i = strpos($c, '::')) { - self::doPreload(substr($c, 0, $i), $preloaded); - } - } - - if (($t = $p->getType()) && !$t->isBuiltin()) { - self::doPreload($t->getName(), $preloaded); - } - } - - if (($t = $m->getReturnType()) && !$t->isBuiltin()) { - self::doPreload($t->getName(), $preloaded); - } - } - } catch (\ReflectionException $e) { - // ignore missing classes - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Dumper/XmlDumper.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Dumper/XmlDumper.php deleted file mode 100644 index fb5d827..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Dumper/XmlDumper.php +++ /dev/null @@ -1,374 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Dumper; - -use Symfony\Component\DependencyInjection\Alias; -use Symfony\Component\DependencyInjection\Argument\IteratorArgument; -use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; -use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\Parameter; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\ExpressionLanguage\Expression; - -/** - * XmlDumper dumps a service container as an XML string. - * - * @author Fabien Potencier - * @author Martin Hasoň - */ -class XmlDumper extends Dumper -{ - /** - * @var \DOMDocument - */ - private $document; - - /** - * Dumps the service container as an XML string. - * - * @return string An xml string representing of the service container - */ - public function dump(array $options = []) - { - $this->document = new \DOMDocument('1.0', 'utf-8'); - $this->document->formatOutput = true; - - $container = $this->document->createElementNS('http://symfony.com/schema/dic/services', 'container'); - $container->setAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance'); - $container->setAttribute('xsi:schemaLocation', 'http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd'); - - $this->addParameters($container); - $this->addServices($container); - - $this->document->appendChild($container); - $xml = $this->document->saveXML(); - $this->document = null; - - return $this->container->resolveEnvPlaceholders($xml); - } - - private function addParameters(\DOMElement $parent) - { - $data = $this->container->getParameterBag()->all(); - if (!$data) { - return; - } - - if ($this->container->isCompiled()) { - $data = $this->escape($data); - } - - $parameters = $this->document->createElement('parameters'); - $parent->appendChild($parameters); - $this->convertParameters($data, 'parameter', $parameters); - } - - private function addMethodCalls(array $methodcalls, \DOMElement $parent) - { - foreach ($methodcalls as $methodcall) { - $call = $this->document->createElement('call'); - $call->setAttribute('method', $methodcall[0]); - if (\count($methodcall[1])) { - $this->convertParameters($methodcall[1], 'argument', $call); - } - if ($methodcall[2] ?? false) { - $call->setAttribute('returns-clone', 'true'); - } - $parent->appendChild($call); - } - } - - private function addService(Definition $definition, ?string $id, \DOMElement $parent) - { - $service = $this->document->createElement('service'); - if (null !== $id) { - $service->setAttribute('id', $id); - } - if ($class = $definition->getClass()) { - if ('\\' === substr($class, 0, 1)) { - $class = substr($class, 1); - } - - $service->setAttribute('class', $class); - } - if (!$definition->isShared()) { - $service->setAttribute('shared', 'false'); - } - if (!$definition->isPrivate()) { - $service->setAttribute('public', $definition->isPublic() ? 'true' : 'false'); - } - if ($definition->isSynthetic()) { - $service->setAttribute('synthetic', 'true'); - } - if ($definition->isLazy()) { - $service->setAttribute('lazy', 'true'); - } - if (null !== $decoratedService = $definition->getDecoratedService()) { - list($decorated, $renamedId, $priority) = $decoratedService; - $service->setAttribute('decorates', $decorated); - - $decorationOnInvalid = $decoratedService[3] ?? ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - if (\in_array($decorationOnInvalid, [ContainerInterface::IGNORE_ON_INVALID_REFERENCE, ContainerInterface::NULL_ON_INVALID_REFERENCE], true)) { - $invalidBehavior = ContainerInterface::NULL_ON_INVALID_REFERENCE === $decorationOnInvalid ? 'null' : 'ignore'; - $service->setAttribute('decoration-on-invalid', $invalidBehavior); - } - if (null !== $renamedId) { - $service->setAttribute('decoration-inner-name', $renamedId); - } - if (0 !== $priority) { - $service->setAttribute('decoration-priority', $priority); - } - } - - foreach ($definition->getTags() as $name => $tags) { - foreach ($tags as $attributes) { - $tag = $this->document->createElement('tag'); - $tag->setAttribute('name', $name); - foreach ($attributes as $key => $value) { - $tag->setAttribute($key, $value); - } - $service->appendChild($tag); - } - } - - if ($definition->getFile()) { - $file = $this->document->createElement('file'); - $file->appendChild($this->document->createTextNode($definition->getFile())); - $service->appendChild($file); - } - - if ($parameters = $definition->getArguments()) { - $this->convertParameters($parameters, 'argument', $service); - } - - if ($parameters = $definition->getProperties()) { - $this->convertParameters($parameters, 'property', $service, 'name'); - } - - $this->addMethodCalls($definition->getMethodCalls(), $service); - - if ($callable = $definition->getFactory()) { - $factory = $this->document->createElement('factory'); - - if (\is_array($callable) && $callable[0] instanceof Definition) { - $this->addService($callable[0], null, $factory); - $factory->setAttribute('method', $callable[1]); - } elseif (\is_array($callable)) { - if (null !== $callable[0]) { - $factory->setAttribute($callable[0] instanceof Reference ? 'service' : 'class', $callable[0]); - } - $factory->setAttribute('method', $callable[1]); - } else { - $factory->setAttribute('function', $callable); - } - $service->appendChild($factory); - } - - if ($definition->isDeprecated()) { - $deprecated = $this->document->createElement('deprecated'); - $deprecated->appendChild($this->document->createTextNode($definition->getDeprecationMessage('%service_id%'))); - - $service->appendChild($deprecated); - } - - if ($definition->isAutowired()) { - $service->setAttribute('autowire', 'true'); - } - - if ($definition->isAutoconfigured()) { - $service->setAttribute('autoconfigure', 'true'); - } - - if ($definition->isAbstract()) { - $service->setAttribute('abstract', 'true'); - } - - if ($callable = $definition->getConfigurator()) { - $configurator = $this->document->createElement('configurator'); - - if (\is_array($callable) && $callable[0] instanceof Definition) { - $this->addService($callable[0], null, $configurator); - $configurator->setAttribute('method', $callable[1]); - } elseif (\is_array($callable)) { - $configurator->setAttribute($callable[0] instanceof Reference ? 'service' : 'class', $callable[0]); - $configurator->setAttribute('method', $callable[1]); - } else { - $configurator->setAttribute('function', $callable); - } - $service->appendChild($configurator); - } - - $parent->appendChild($service); - } - - private function addServiceAlias(string $alias, Alias $id, \DOMElement $parent) - { - $service = $this->document->createElement('service'); - $service->setAttribute('id', $alias); - $service->setAttribute('alias', $id); - if (!$id->isPrivate()) { - $service->setAttribute('public', $id->isPublic() ? 'true' : 'false'); - } - - if ($id->isDeprecated()) { - $deprecated = $this->document->createElement('deprecated'); - $deprecated->appendChild($this->document->createTextNode($id->getDeprecationMessage('%alias_id%'))); - - $service->appendChild($deprecated); - } - - $parent->appendChild($service); - } - - private function addServices(\DOMElement $parent) - { - $definitions = $this->container->getDefinitions(); - if (!$definitions) { - return; - } - - $services = $this->document->createElement('services'); - foreach ($definitions as $id => $definition) { - $this->addService($definition, $id, $services); - } - - $aliases = $this->container->getAliases(); - foreach ($aliases as $alias => $id) { - while (isset($aliases[(string) $id])) { - $id = $aliases[(string) $id]; - } - $this->addServiceAlias($alias, $id, $services); - } - $parent->appendChild($services); - } - - private function convertParameters(array $parameters, string $type, \DOMElement $parent, string $keyAttribute = 'key') - { - $withKeys = array_keys($parameters) !== range(0, \count($parameters) - 1); - foreach ($parameters as $key => $value) { - $element = $this->document->createElement($type); - if ($withKeys) { - $element->setAttribute($keyAttribute, $key); - } - - if ($value instanceof ServiceClosureArgument) { - $value = $value->getValues()[0]; - } - if (\is_array($tag = $value)) { - $element->setAttribute('type', 'collection'); - $this->convertParameters($value, $type, $element, 'key'); - } elseif ($value instanceof TaggedIteratorArgument || ($value instanceof ServiceLocatorArgument && $tag = $value->getTaggedIteratorArgument())) { - $element->setAttribute('type', $value instanceof TaggedIteratorArgument ? 'tagged_iterator' : 'tagged_locator'); - $element->setAttribute('tag', $tag->getTag()); - - if (null !== $tag->getIndexAttribute()) { - $element->setAttribute('index-by', $tag->getIndexAttribute()); - - if (null !== $tag->getDefaultIndexMethod()) { - $element->setAttribute('default-index-method', $tag->getDefaultIndexMethod()); - } - if (null !== $tag->getDefaultPriorityMethod()) { - $element->setAttribute('default-priority-method', $tag->getDefaultPriorityMethod()); - } - } - } elseif ($value instanceof IteratorArgument) { - $element->setAttribute('type', 'iterator'); - $this->convertParameters($value->getValues(), $type, $element, 'key'); - } elseif ($value instanceof ServiceLocatorArgument) { - $element->setAttribute('type', 'service_locator'); - $this->convertParameters($value->getValues(), $type, $element, 'key'); - } elseif ($value instanceof Reference) { - $element->setAttribute('type', 'service'); - $element->setAttribute('id', (string) $value); - $behavior = $value->getInvalidBehavior(); - if (ContainerInterface::NULL_ON_INVALID_REFERENCE == $behavior) { - $element->setAttribute('on-invalid', 'null'); - } elseif (ContainerInterface::IGNORE_ON_INVALID_REFERENCE == $behavior) { - $element->setAttribute('on-invalid', 'ignore'); - } elseif (ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE == $behavior) { - $element->setAttribute('on-invalid', 'ignore_uninitialized'); - } - } elseif ($value instanceof Definition) { - $element->setAttribute('type', 'service'); - $this->addService($value, null, $element); - } elseif ($value instanceof Expression) { - $element->setAttribute('type', 'expression'); - $text = $this->document->createTextNode(self::phpToXml((string) $value)); - $element->appendChild($text); - } elseif (\is_string($value) && !preg_match('/^[^\x00-\x08\x0B\x0E-\x1A\x1C-\x1F\x7F]*+$/u', $value)) { - $element->setAttribute('type', 'binary'); - $text = $this->document->createTextNode(self::phpToXml(base64_encode($value))); - $element->appendChild($text); - } else { - if (\in_array($value, ['null', 'true', 'false'], true)) { - $element->setAttribute('type', 'string'); - } - - if (\is_string($value) && (is_numeric($value) || preg_match('/^0b[01]*$/', $value) || preg_match('/^0x[0-9a-f]++$/i', $value))) { - $element->setAttribute('type', 'string'); - } - - $text = $this->document->createTextNode(self::phpToXml($value)); - $element->appendChild($text); - } - $parent->appendChild($element); - } - } - - /** - * Escapes arguments. - */ - private function escape(array $arguments): array - { - $args = []; - foreach ($arguments as $k => $v) { - if (\is_array($v)) { - $args[$k] = $this->escape($v); - } elseif (\is_string($v)) { - $args[$k] = str_replace('%', '%%', $v); - } else { - $args[$k] = $v; - } - } - - return $args; - } - - /** - * Converts php types to xml types. - * - * @param mixed $value Value to convert - * - * @throws RuntimeException When trying to dump object or resource - */ - public static function phpToXml($value): string - { - switch (true) { - case null === $value: - return 'null'; - case true === $value: - return 'true'; - case false === $value: - return 'false'; - case $value instanceof Parameter: - return '%'.$value.'%'; - case \is_object($value) || \is_resource($value): - throw new RuntimeException('Unable to dump a service container if a parameter is an object or a resource.'); - default: - return (string) $value; - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Dumper/YamlDumper.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Dumper/YamlDumper.php deleted file mode 100644 index ccb68ee..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Dumper/YamlDumper.php +++ /dev/null @@ -1,349 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Dumper; - -use Symfony\Component\DependencyInjection\Alias; -use Symfony\Component\DependencyInjection\Argument\ArgumentInterface; -use Symfony\Component\DependencyInjection\Argument\IteratorArgument; -use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; -use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\LogicException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\Parameter; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\ExpressionLanguage\Expression; -use Symfony\Component\Yaml\Dumper as YmlDumper; -use Symfony\Component\Yaml\Parser; -use Symfony\Component\Yaml\Tag\TaggedValue; -use Symfony\Component\Yaml\Yaml; - -/** - * YamlDumper dumps a service container as a YAML string. - * - * @author Fabien Potencier - */ -class YamlDumper extends Dumper -{ - private $dumper; - - /** - * Dumps the service container as an YAML string. - * - * @return string A YAML string representing of the service container - */ - public function dump(array $options = []) - { - if (!class_exists('Symfony\Component\Yaml\Dumper')) { - throw new LogicException('Unable to dump the container as the Symfony Yaml Component is not installed.'); - } - - if (null === $this->dumper) { - $this->dumper = new YmlDumper(); - } - - return $this->container->resolveEnvPlaceholders($this->addParameters()."\n".$this->addServices()); - } - - private function addService(string $id, Definition $definition): string - { - $code = " $id:\n"; - if ($class = $definition->getClass()) { - if ('\\' === substr($class, 0, 1)) { - $class = substr($class, 1); - } - - $code .= sprintf(" class: %s\n", $this->dumper->dump($class)); - } - - if (!$definition->isPrivate()) { - $code .= sprintf(" public: %s\n", $definition->isPublic() ? 'true' : 'false'); - } - - $tagsCode = ''; - foreach ($definition->getTags() as $name => $tags) { - foreach ($tags as $attributes) { - $att = []; - foreach ($attributes as $key => $value) { - $att[] = sprintf('%s: %s', $this->dumper->dump($key), $this->dumper->dump($value)); - } - $att = $att ? ', '.implode(', ', $att) : ''; - - $tagsCode .= sprintf(" - { name: %s%s }\n", $this->dumper->dump($name), $att); - } - } - if ($tagsCode) { - $code .= " tags:\n".$tagsCode; - } - - if ($definition->getFile()) { - $code .= sprintf(" file: %s\n", $this->dumper->dump($definition->getFile())); - } - - if ($definition->isSynthetic()) { - $code .= " synthetic: true\n"; - } - - if ($definition->isDeprecated()) { - $code .= sprintf(" deprecated: %s\n", $this->dumper->dump($definition->getDeprecationMessage('%service_id%'))); - } - - if ($definition->isAutowired()) { - $code .= " autowire: true\n"; - } - - if ($definition->isAutoconfigured()) { - $code .= " autoconfigure: true\n"; - } - - if ($definition->isAbstract()) { - $code .= " abstract: true\n"; - } - - if ($definition->isLazy()) { - $code .= " lazy: true\n"; - } - - if ($definition->getArguments()) { - $code .= sprintf(" arguments: %s\n", $this->dumper->dump($this->dumpValue($definition->getArguments()), 0)); - } - - if ($definition->getProperties()) { - $code .= sprintf(" properties: %s\n", $this->dumper->dump($this->dumpValue($definition->getProperties()), 0)); - } - - if ($definition->getMethodCalls()) { - $code .= sprintf(" calls:\n%s\n", $this->dumper->dump($this->dumpValue($definition->getMethodCalls()), 1, 12)); - } - - if (!$definition->isShared()) { - $code .= " shared: false\n"; - } - - if (null !== $decoratedService = $definition->getDecoratedService()) { - list($decorated, $renamedId, $priority) = $decoratedService; - $code .= sprintf(" decorates: %s\n", $decorated); - if (null !== $renamedId) { - $code .= sprintf(" decoration_inner_name: %s\n", $renamedId); - } - if (0 !== $priority) { - $code .= sprintf(" decoration_priority: %s\n", $priority); - } - - $decorationOnInvalid = $decoratedService[3] ?? ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - if (\in_array($decorationOnInvalid, [ContainerInterface::IGNORE_ON_INVALID_REFERENCE, ContainerInterface::NULL_ON_INVALID_REFERENCE])) { - $invalidBehavior = ContainerInterface::NULL_ON_INVALID_REFERENCE === $decorationOnInvalid ? 'null' : 'ignore'; - $code .= sprintf(" decoration_on_invalid: %s\n", $invalidBehavior); - } - } - - if ($callable = $definition->getFactory()) { - $code .= sprintf(" factory: %s\n", $this->dumper->dump($this->dumpCallable($callable), 0)); - } - - if ($callable = $definition->getConfigurator()) { - $code .= sprintf(" configurator: %s\n", $this->dumper->dump($this->dumpCallable($callable), 0)); - } - - return $code; - } - - private function addServiceAlias(string $alias, Alias $id): string - { - $deprecated = $id->isDeprecated() ? sprintf(" deprecated: %s\n", $id->getDeprecationMessage('%alias_id%')) : ''; - - if ($id->isPrivate()) { - return sprintf(" %s: '@%s'\n%s", $alias, $id, $deprecated); - } - - return sprintf(" %s:\n alias: %s\n public: %s\n%s", $alias, $id, $id->isPublic() ? 'true' : 'false', $deprecated); - } - - private function addServices(): string - { - if (!$this->container->getDefinitions()) { - return ''; - } - - $code = "services:\n"; - foreach ($this->container->getDefinitions() as $id => $definition) { - $code .= $this->addService($id, $definition); - } - - $aliases = $this->container->getAliases(); - foreach ($aliases as $alias => $id) { - while (isset($aliases[(string) $id])) { - $id = $aliases[(string) $id]; - } - $code .= $this->addServiceAlias($alias, $id); - } - - return $code; - } - - private function addParameters(): string - { - if (!$this->container->getParameterBag()->all()) { - return ''; - } - - $parameters = $this->prepareParameters($this->container->getParameterBag()->all(), $this->container->isCompiled()); - - return $this->dumper->dump(['parameters' => $parameters], 2); - } - - /** - * Dumps callable to YAML format. - * - * @param mixed $callable - * - * @return mixed - */ - private function dumpCallable($callable) - { - if (\is_array($callable)) { - if ($callable[0] instanceof Reference) { - $callable = [$this->getServiceCall((string) $callable[0], $callable[0]), $callable[1]]; - } else { - $callable = [$callable[0], $callable[1]]; - } - } - - return $callable; - } - - /** - * Dumps the value to YAML format. - * - * @return mixed - * - * @throws RuntimeException When trying to dump object or resource - */ - private function dumpValue($value) - { - if ($value instanceof ServiceClosureArgument) { - $value = $value->getValues()[0]; - } - if ($value instanceof ArgumentInterface) { - $tag = $value; - - if ($value instanceof TaggedIteratorArgument || ($value instanceof ServiceLocatorArgument && $tag = $value->getTaggedIteratorArgument())) { - if (null === $tag->getIndexAttribute()) { - $content = $tag->getTag(); - } else { - $content = [ - 'tag' => $tag->getTag(), - 'index_by' => $tag->getIndexAttribute(), - ]; - - if (null !== $tag->getDefaultIndexMethod()) { - $content['default_index_method'] = $tag->getDefaultIndexMethod(); - } - if (null !== $tag->getDefaultPriorityMethod()) { - $content['default_priority_method'] = $tag->getDefaultPriorityMethod(); - } - } - - return new TaggedValue($value instanceof TaggedIteratorArgument ? 'tagged_iterator' : 'tagged_locator', $content); - } - - if ($value instanceof IteratorArgument) { - $tag = 'iterator'; - } elseif ($value instanceof ServiceLocatorArgument) { - $tag = 'service_locator'; - } else { - throw new RuntimeException(sprintf('Unspecified Yaml tag for type "%s".', \get_class($value))); - } - - return new TaggedValue($tag, $this->dumpValue($value->getValues())); - } - - if (\is_array($value)) { - $code = []; - foreach ($value as $k => $v) { - $code[$k] = $this->dumpValue($v); - } - - return $code; - } elseif ($value instanceof Reference) { - return $this->getServiceCall((string) $value, $value); - } elseif ($value instanceof Parameter) { - return $this->getParameterCall((string) $value); - } elseif ($value instanceof Expression) { - return $this->getExpressionCall((string) $value); - } elseif ($value instanceof Definition) { - return new TaggedValue('service', (new Parser())->parse("_:\n".$this->addService('_', $value), Yaml::PARSE_CUSTOM_TAGS)['_']['_']); - } elseif (\is_object($value) || \is_resource($value)) { - throw new RuntimeException('Unable to dump a service container if a parameter is an object or a resource.'); - } - - return $value; - } - - private function getServiceCall(string $id, Reference $reference = null): string - { - if (null !== $reference) { - switch ($reference->getInvalidBehavior()) { - case ContainerInterface::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE: break; - case ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE: break; - case ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE: return sprintf('@!%s', $id); - default: return sprintf('@?%s', $id); - } - } - - return sprintf('@%s', $id); - } - - private function getParameterCall(string $id): string - { - return sprintf('%%%s%%', $id); - } - - private function getExpressionCall(string $expression): string - { - return sprintf('@=%s', $expression); - } - - private function prepareParameters(array $parameters, bool $escape = true): array - { - $filtered = []; - foreach ($parameters as $key => $value) { - if (\is_array($value)) { - $value = $this->prepareParameters($value, $escape); - } elseif ($value instanceof Reference || \is_string($value) && 0 === strpos($value, '@')) { - $value = '@'.$value; - } - - $filtered[$key] = $value; - } - - return $escape ? $this->escape($filtered) : $filtered; - } - - private function escape(array $arguments): array - { - $args = []; - foreach ($arguments as $k => $v) { - if (\is_array($v)) { - $args[$k] = $this->escape($v); - } elseif (\is_string($v)) { - $args[$k] = str_replace('%', '%%', $v); - } else { - $args[$k] = $v; - } - } - - return $args; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/EnvVarLoaderInterface.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/EnvVarLoaderInterface.php deleted file mode 100644 index 0c547f8..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/EnvVarLoaderInterface.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -/** - * EnvVarLoaderInterface objects return key/value pairs that are added to the list of available env vars. - * - * @author Nicolas Grekas - */ -interface EnvVarLoaderInterface -{ - /** - * @return string[] Key/value pairs that can be accessed using the regular "%env()%" syntax - */ - public function loadEnvVars(): array; -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/EnvVarProcessor.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/EnvVarProcessor.php deleted file mode 100644 index 724187b..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/EnvVarProcessor.php +++ /dev/null @@ -1,280 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -use Symfony\Component\DependencyInjection\Exception\EnvNotFoundException; -use Symfony\Component\DependencyInjection\Exception\ParameterCircularReferenceException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; - -/** - * @author Nicolas Grekas - */ -class EnvVarProcessor implements EnvVarProcessorInterface -{ - private $container; - private $loaders; - private $loadedVars = []; - - /** - * @param EnvVarLoaderInterface[] $loaders - */ - public function __construct(ContainerInterface $container, \Traversable $loaders = null) - { - $this->container = $container; - $this->loaders = new \IteratorIterator($loaders ?? new \ArrayIterator()); - $this->loaders = $this->loaders->getInnerIterator(); - } - - /** - * {@inheritdoc} - */ - public static function getProvidedTypes() - { - return [ - 'base64' => 'string', - 'bool' => 'bool', - 'const' => 'bool|int|float|string|array', - 'csv' => 'array', - 'file' => 'string', - 'float' => 'float', - 'int' => 'int', - 'json' => 'array', - 'key' => 'bool|int|float|string|array', - 'url' => 'array', - 'query_string' => 'array', - 'resolve' => 'string', - 'default' => 'bool|int|float|string|array', - 'string' => 'string', - 'trim' => 'string', - 'require' => 'bool|int|float|string|array', - ]; - } - - /** - * {@inheritdoc} - */ - public function getEnv($prefix, $name, \Closure $getEnv) - { - $i = strpos($name, ':'); - - if ('key' === $prefix) { - if (false === $i) { - throw new RuntimeException(sprintf('Invalid env "key:%s": a key specifier should be provided.', $name)); - } - - $next = substr($name, $i + 1); - $key = substr($name, 0, $i); - $array = $getEnv($next); - - if (!\is_array($array)) { - throw new RuntimeException(sprintf('Resolved value of "%s" did not result in an array value.', $next)); - } - - if (!isset($array[$key]) && !\array_key_exists($key, $array)) { - throw new EnvNotFoundException(sprintf('Key "%s" not found in "%s" (resolved from "%s").', $key, json_encode($array), $next)); - } - - return $array[$key]; - } - - if ('default' === $prefix) { - if (false === $i) { - throw new RuntimeException(sprintf('Invalid env "default:%s": a fallback parameter should be provided.', $name)); - } - - $next = substr($name, $i + 1); - $default = substr($name, 0, $i); - - if ('' !== $default && !$this->container->hasParameter($default)) { - throw new RuntimeException(sprintf('Invalid env fallback in "default:%s": parameter "%s" not found.', $name, $default)); - } - - try { - $env = $getEnv($next); - - if ('' !== $env && null !== $env) { - return $env; - } - } catch (EnvNotFoundException $e) { - // no-op - } - - return '' === $default ? null : $this->container->getParameter($default); - } - - if ('file' === $prefix || 'require' === $prefix) { - if (!is_scalar($file = $getEnv($name))) { - throw new RuntimeException(sprintf('Invalid file name: env var "%s" is non-scalar.', $name)); - } - if (!file_exists($file)) { - throw new EnvNotFoundException(sprintf('File "%s" not found (resolved from "%s").', $file, $name)); - } - - if ('file' === $prefix) { - return file_get_contents($file); - } else { - return require $file; - } - } - - if (false !== $i || 'string' !== $prefix) { - if (null === $env = $getEnv($name)) { - return null; - } - } elseif (isset($_ENV[$name])) { - $env = $_ENV[$name]; - } elseif (isset($_SERVER[$name]) && 0 !== strpos($name, 'HTTP_')) { - $env = $_SERVER[$name]; - } elseif (false === ($env = getenv($name)) || null === $env) { // null is a possible value because of thread safety issues - foreach ($this->loadedVars as $vars) { - if (false !== $env = ($vars[$name] ?? false)) { - break; - } - } - - $loaders = $this->loaders; - $this->loaders = new \ArrayIterator(); - - try { - while ((false === $env || null === $env) && $loaders->valid()) { - $loader = $loaders->current(); - $loaders->next(); - $this->loadedVars[] = $vars = $loader->loadEnvVars(); - $env = $vars[$name] ?? false; - } - } catch (ParameterCircularReferenceException $e) { - // skip loaders that need an env var that is not defined - } finally { - $this->loaders = $loaders; - } - - if (false === $env || null === $env) { - if (!$this->container->hasParameter("env($name)")) { - throw new EnvNotFoundException(sprintf('Environment variable not found: "%s".', $name)); - } - - if (null === $env = $this->container->getParameter("env($name)")) { - return null; - } - } - } - - if (!is_scalar($env)) { - throw new RuntimeException(sprintf('Non-scalar env var "%s" cannot be cast to %s.', $name, $prefix)); - } - - if ('string' === $prefix) { - return (string) $env; - } - - if ('bool' === $prefix) { - return (bool) (filter_var($env, FILTER_VALIDATE_BOOLEAN) ?: filter_var($env, FILTER_VALIDATE_INT) ?: filter_var($env, FILTER_VALIDATE_FLOAT)); - } - - if ('int' === $prefix) { - if (false === $env = filter_var($env, FILTER_VALIDATE_INT) ?: filter_var($env, FILTER_VALIDATE_FLOAT)) { - throw new RuntimeException(sprintf('Non-numeric env var "%s" cannot be cast to int.', $name)); - } - - return (int) $env; - } - - if ('float' === $prefix) { - if (false === $env = filter_var($env, FILTER_VALIDATE_FLOAT)) { - throw new RuntimeException(sprintf('Non-numeric env var "%s" cannot be cast to float.', $name)); - } - - return (float) $env; - } - - if ('const' === $prefix) { - if (!\defined($env)) { - throw new RuntimeException(sprintf('Env var "%s" maps to undefined constant "%s".', $name, $env)); - } - - return \constant($env); - } - - if ('base64' === $prefix) { - return base64_decode(strtr($env, '-_', '+/')); - } - - if ('json' === $prefix) { - $env = json_decode($env, true); - - if (JSON_ERROR_NONE !== json_last_error()) { - throw new RuntimeException(sprintf('Invalid JSON in env var "%s": '.json_last_error_msg(), $name)); - } - - if (null !== $env && !\is_array($env)) { - throw new RuntimeException(sprintf('Invalid JSON env var "%s": array or null expected, %s given.', $name, \gettype($env))); - } - - return $env; - } - - if ('url' === $prefix) { - $parsedEnv = parse_url($env); - - if (false === $parsedEnv) { - throw new RuntimeException(sprintf('Invalid URL in env var "%s"', $name)); - } - if (!isset($parsedEnv['scheme'], $parsedEnv['host'])) { - throw new RuntimeException(sprintf('Invalid URL env var "%s": schema and host expected, %s given.', $name, $env)); - } - $parsedEnv += [ - 'port' => null, - 'user' => null, - 'pass' => null, - 'path' => null, - 'query' => null, - 'fragment' => null, - ]; - - // remove the '/' separator - $parsedEnv['path'] = '/' === $parsedEnv['path'] ? null : substr($parsedEnv['path'], 1); - - return $parsedEnv; - } - - if ('query_string' === $prefix) { - $queryString = parse_url($env, PHP_URL_QUERY) ?: $env; - parse_str($queryString, $result); - - return $result; - } - - if ('resolve' === $prefix) { - return preg_replace_callback('/%%|%([^%\s]+)%/', function ($match) use ($name) { - if (!isset($match[1])) { - return '%'; - } - $value = $this->container->getParameter($match[1]); - if (!is_scalar($value)) { - throw new RuntimeException(sprintf('Parameter "%s" found when resolving env var "%s" must be scalar, "%s" given.', $match[1], $name, \gettype($value))); - } - - return $value; - }, $env); - } - - if ('csv' === $prefix) { - return str_getcsv($env, ',', '"', \PHP_VERSION_ID >= 70400 ? '' : '\\'); - } - - if ('trim' === $prefix) { - return trim($env); - } - - throw new RuntimeException(sprintf('Unsupported env var prefix "%s".', $prefix)); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/EnvVarProcessorInterface.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/EnvVarProcessorInterface.php deleted file mode 100644 index 654fe55..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/EnvVarProcessorInterface.php +++ /dev/null @@ -1,40 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -use Symfony\Component\DependencyInjection\Exception\RuntimeException; - -/** - * The EnvVarProcessorInterface is implemented by objects that manage environment-like variables. - * - * @author Nicolas Grekas - */ -interface EnvVarProcessorInterface -{ - /** - * Returns the value of the given variable as managed by the current instance. - * - * @param string $prefix The namespace of the variable - * @param string $name The name of the variable within the namespace - * @param \Closure $getEnv A closure that allows fetching more env vars - * - * @return mixed - * - * @throws RuntimeException on error - */ - public function getEnv($prefix, $name, \Closure $getEnv); - - /** - * @return string[] The PHP-types managed by getEnv(), keyed by prefixes - */ - public static function getProvidedTypes(); -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/AutowiringFailedException.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/AutowiringFailedException.php deleted file mode 100644 index c203b85..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/AutowiringFailedException.php +++ /dev/null @@ -1,72 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Exception; - -/** - * Thrown when a definition cannot be autowired. - */ -class AutowiringFailedException extends RuntimeException -{ - private $serviceId; - private $messageCallback; - - public function __construct(string $serviceId, $message = '', int $code = 0, \Throwable $previous = null) - { - $this->serviceId = $serviceId; - - if ($message instanceof \Closure && \function_exists('xdebug_is_enabled') && xdebug_is_enabled()) { - $message = $message(); - } - - if (!$message instanceof \Closure) { - parent::__construct($message, $code, $previous); - - return; - } - - $this->messageCallback = $message; - parent::__construct('', $code, $previous); - - $this->message = new class($this->message, $this->messageCallback) { - private $message; - private $messageCallback; - - public function __construct(&$message, &$messageCallback) - { - $this->message = &$message; - $this->messageCallback = &$messageCallback; - } - - public function __toString(): string - { - $messageCallback = $this->messageCallback; - $this->messageCallback = null; - - try { - return $this->message = $messageCallback(); - } catch (\Throwable $e) { - return $this->message = $e->getMessage(); - } - } - }; - } - - public function getMessageCallback(): ?\Closure - { - return $this->messageCallback; - } - - public function getServiceId() - { - return $this->serviceId; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/BadMethodCallException.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/BadMethodCallException.php deleted file mode 100644 index 959238e..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/BadMethodCallException.php +++ /dev/null @@ -1,19 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Exception; - -/** - * Base BadMethodCallException for Dependency Injection component. - */ -class BadMethodCallException extends \BadMethodCallException implements ExceptionInterface -{ -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/EnvNotFoundException.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/EnvNotFoundException.php deleted file mode 100644 index 04ac848..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/EnvNotFoundException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Exception; - -/** - * This exception is thrown when an environment variable is not found. - * - * @author Nicolas Grekas - */ -class EnvNotFoundException extends InvalidArgumentException -{ -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/EnvParameterException.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/EnvParameterException.php deleted file mode 100644 index 48b5e48..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/EnvParameterException.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Exception; - -/** - * This exception wraps exceptions whose messages contain a reference to an env parameter. - * - * @author Nicolas Grekas - */ -class EnvParameterException extends InvalidArgumentException -{ - public function __construct(array $envs, \Throwable $previous = null, string $message = 'Incompatible use of dynamic environment variables "%s" found in parameters.') - { - parent::__construct(sprintf($message, implode('", "', $envs)), 0, $previous); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/ExceptionInterface.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/ExceptionInterface.php deleted file mode 100644 index 6202df7..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/ExceptionInterface.php +++ /dev/null @@ -1,24 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Exception; - -use Psr\Container\ContainerExceptionInterface; - -/** - * Base ExceptionInterface for Dependency Injection component. - * - * @author Fabien Potencier - * @author Bulat Shakirzyanov - */ -interface ExceptionInterface extends ContainerExceptionInterface, \Throwable -{ -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/InvalidArgumentException.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/InvalidArgumentException.php deleted file mode 100644 index 119bb7d..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/InvalidArgumentException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Exception; - -/** - * Base InvalidArgumentException for Dependency Injection component. - * - * @author Bulat Shakirzyanov - */ -class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface -{ -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/InvalidParameterTypeException.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/InvalidParameterTypeException.php deleted file mode 100644 index 206561f..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/InvalidParameterTypeException.php +++ /dev/null @@ -1,26 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Exception; - -/** - * Thrown when trying to inject a parameter into a constructor/method with an incompatible type. - * - * @author Nicolas Grekas - * @author Julien Maulny - */ -class InvalidParameterTypeException extends InvalidArgumentException -{ - public function __construct(string $serviceId, string $type, \ReflectionParameter $parameter) - { - parent::__construct(sprintf('Invalid definition for service "%s": argument %d of "%s::%s" accepts "%s", "%s" passed.', $serviceId, 1 + $parameter->getPosition(), $parameter->getDeclaringClass()->getName(), $parameter->getDeclaringFunction()->getName(), $parameter->getType()->getName(), $type)); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/LogicException.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/LogicException.php deleted file mode 100644 index 17a070c..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/LogicException.php +++ /dev/null @@ -1,19 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Exception; - -/** - * Base LogicException for Dependency Injection component. - */ -class LogicException extends \LogicException implements ExceptionInterface -{ -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/OutOfBoundsException.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/OutOfBoundsException.php deleted file mode 100644 index a61f143..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/OutOfBoundsException.php +++ /dev/null @@ -1,19 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Exception; - -/** - * Base OutOfBoundsException for Dependency Injection component. - */ -class OutOfBoundsException extends \OutOfBoundsException implements ExceptionInterface -{ -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/ParameterCircularReferenceException.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/ParameterCircularReferenceException.php deleted file mode 100644 index 2450ccb..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/ParameterCircularReferenceException.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Exception; - -/** - * This exception is thrown when a circular reference in a parameter is detected. - * - * @author Fabien Potencier - */ -class ParameterCircularReferenceException extends RuntimeException -{ - private $parameters; - - public function __construct(array $parameters, \Throwable $previous = null) - { - parent::__construct(sprintf('Circular reference detected for parameter "%s" ("%s" > "%s").', $parameters[0], implode('" > "', $parameters), $parameters[0]), 0, $previous); - - $this->parameters = $parameters; - } - - public function getParameters() - { - return $this->parameters; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/ParameterNotFoundException.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/ParameterNotFoundException.php deleted file mode 100644 index 7c0c5e3..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/ParameterNotFoundException.php +++ /dev/null @@ -1,100 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Exception; - -use Psr\Container\NotFoundExceptionInterface; - -/** - * This exception is thrown when a non-existent parameter is used. - * - * @author Fabien Potencier - */ -class ParameterNotFoundException extends InvalidArgumentException implements NotFoundExceptionInterface -{ - private $key; - private $sourceId; - private $sourceKey; - private $alternatives; - private $nonNestedAlternative; - - /** - * @param string $key The requested parameter key - * @param string $sourceId The service id that references the non-existent parameter - * @param string $sourceKey The parameter key that references the non-existent parameter - * @param \Throwable $previous The previous exception - * @param string[] $alternatives Some parameter name alternatives - * @param string|null $nonNestedAlternative The alternative parameter name when the user expected dot notation for nested parameters - */ - public function __construct(string $key, string $sourceId = null, string $sourceKey = null, \Throwable $previous = null, array $alternatives = [], string $nonNestedAlternative = null) - { - $this->key = $key; - $this->sourceId = $sourceId; - $this->sourceKey = $sourceKey; - $this->alternatives = $alternatives; - $this->nonNestedAlternative = $nonNestedAlternative; - - parent::__construct('', 0, $previous); - - $this->updateRepr(); - } - - public function updateRepr() - { - if (null !== $this->sourceId) { - $this->message = sprintf('The service "%s" has a dependency on a non-existent parameter "%s".', $this->sourceId, $this->key); - } elseif (null !== $this->sourceKey) { - $this->message = sprintf('The parameter "%s" has a dependency on a non-existent parameter "%s".', $this->sourceKey, $this->key); - } else { - $this->message = sprintf('You have requested a non-existent parameter "%s".', $this->key); - } - - if ($this->alternatives) { - if (1 == \count($this->alternatives)) { - $this->message .= ' Did you mean this: "'; - } else { - $this->message .= ' Did you mean one of these: "'; - } - $this->message .= implode('", "', $this->alternatives).'"?'; - } elseif (null !== $this->nonNestedAlternative) { - $this->message .= ' You cannot access nested array items, do you want to inject "'.$this->nonNestedAlternative.'" instead?'; - } - } - - public function getKey() - { - return $this->key; - } - - public function getSourceId() - { - return $this->sourceId; - } - - public function getSourceKey() - { - return $this->sourceKey; - } - - public function setSourceId($sourceId) - { - $this->sourceId = $sourceId; - - $this->updateRepr(); - } - - public function setSourceKey($sourceKey) - { - $this->sourceKey = $sourceKey; - - $this->updateRepr(); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/RuntimeException.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/RuntimeException.php deleted file mode 100644 index 5c24541..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/RuntimeException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Exception; - -/** - * Base RuntimeException for Dependency Injection component. - * - * @author Johannes M. Schmitt - */ -class RuntimeException extends \RuntimeException implements ExceptionInterface -{ -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/ServiceCircularReferenceException.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/ServiceCircularReferenceException.php deleted file mode 100644 index a38671b..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/ServiceCircularReferenceException.php +++ /dev/null @@ -1,41 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Exception; - -/** - * This exception is thrown when a circular reference is detected. - * - * @author Johannes M. Schmitt - */ -class ServiceCircularReferenceException extends RuntimeException -{ - private $serviceId; - private $path; - - public function __construct(string $serviceId, array $path, \Throwable $previous = null) - { - parent::__construct(sprintf('Circular reference detected for service "%s", path: "%s".', $serviceId, implode(' -> ', $path)), 0, $previous); - - $this->serviceId = $serviceId; - $this->path = $path; - } - - public function getServiceId() - { - return $this->serviceId; - } - - public function getPath() - { - return $this->path; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/ServiceNotFoundException.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/ServiceNotFoundException.php deleted file mode 100644 index f91afae..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Exception/ServiceNotFoundException.php +++ /dev/null @@ -1,67 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Exception; - -use Psr\Container\NotFoundExceptionInterface; - -/** - * This exception is thrown when a non-existent service is requested. - * - * @author Johannes M. Schmitt - */ -class ServiceNotFoundException extends InvalidArgumentException implements NotFoundExceptionInterface -{ - private $id; - private $sourceId; - private $alternatives; - - public function __construct(string $id, string $sourceId = null, \Throwable $previous = null, array $alternatives = [], string $msg = null) - { - if (null !== $msg) { - // no-op - } elseif (null === $sourceId) { - $msg = sprintf('You have requested a non-existent service "%s".', $id); - } else { - $msg = sprintf('The service "%s" has a dependency on a non-existent service "%s".', $sourceId, $id); - } - - if ($alternatives) { - if (1 == \count($alternatives)) { - $msg .= ' Did you mean this: "'; - } else { - $msg .= ' Did you mean one of these: "'; - } - $msg .= implode('", "', $alternatives).'"?'; - } - - parent::__construct($msg, 0, $previous); - - $this->id = $id; - $this->sourceId = $sourceId; - $this->alternatives = $alternatives; - } - - public function getId() - { - return $this->id; - } - - public function getSourceId() - { - return $this->sourceId; - } - - public function getAlternatives() - { - return $this->alternatives; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ExpressionLanguage.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/ExpressionLanguage.php deleted file mode 100644 index 961c737..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ExpressionLanguage.php +++ /dev/null @@ -1,40 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -use Psr\Cache\CacheItemPoolInterface; -use Symfony\Component\ExpressionLanguage\ExpressionLanguage as BaseExpressionLanguage; - -if (!class_exists(BaseExpressionLanguage::class)) { - return; -} - -/** - * Adds some function to the default ExpressionLanguage. - * - * @author Fabien Potencier - * - * @see ExpressionLanguageProvider - */ -class ExpressionLanguage extends BaseExpressionLanguage -{ - /** - * {@inheritdoc} - */ - public function __construct(CacheItemPoolInterface $cache = null, array $providers = [], callable $serviceCompiler = null) - { - // prepend the default provider to let users override it easily - array_unshift($providers, new ExpressionLanguageProvider($serviceCompiler)); - - parent::__construct($cache, $providers); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ExpressionLanguageProvider.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/ExpressionLanguageProvider.php deleted file mode 100644 index 9198ca0..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ExpressionLanguageProvider.php +++ /dev/null @@ -1,50 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -use Symfony\Component\ExpressionLanguage\ExpressionFunction; -use Symfony\Component\ExpressionLanguage\ExpressionFunctionProviderInterface; - -/** - * Define some ExpressionLanguage functions. - * - * To get a service, use service('request'). - * To get a parameter, use parameter('kernel.debug'). - * - * @author Fabien Potencier - */ -class ExpressionLanguageProvider implements ExpressionFunctionProviderInterface -{ - private $serviceCompiler; - - public function __construct(callable $serviceCompiler = null) - { - $this->serviceCompiler = $serviceCompiler; - } - - public function getFunctions() - { - return [ - new ExpressionFunction('service', $this->serviceCompiler ?: function ($arg) { - return sprintf('$this->get(%s)', $arg); - }, function (array $variables, $value) { - return $variables['container']->get($value); - }), - - new ExpressionFunction('parameter', function ($arg) { - return sprintf('$this->getParameter(%s)', $arg); - }, function (array $variables, $value) { - return $variables['container']->getParameter($value); - }), - ]; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/ConfigurationExtensionInterface.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/ConfigurationExtensionInterface.php deleted file mode 100644 index c3bd842..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/ConfigurationExtensionInterface.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Extension; - -use Symfony\Component\Config\Definition\ConfigurationInterface; -use Symfony\Component\DependencyInjection\ContainerBuilder; - -/** - * ConfigurationExtensionInterface is the interface implemented by container extension classes. - * - * @author Kevin Bond - */ -interface ConfigurationExtensionInterface -{ - /** - * Returns extension configuration. - * - * @return ConfigurationInterface|null The configuration or null - */ - public function getConfiguration(array $config, ContainerBuilder $container); -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/Extension.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/Extension.php deleted file mode 100644 index 21580f6..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/Extension.php +++ /dev/null @@ -1,141 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Extension; - -use Symfony\Component\Config\Definition\ConfigurationInterface; -use Symfony\Component\Config\Definition\Processor; -use Symfony\Component\DependencyInjection\Container; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Exception\BadMethodCallException; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; - -/** - * Provides useful features shared by many extensions. - * - * @author Fabien Potencier - */ -abstract class Extension implements ExtensionInterface, ConfigurationExtensionInterface -{ - private $processedConfigs = []; - - /** - * {@inheritdoc} - */ - public function getXsdValidationBasePath() - { - return false; - } - - /** - * {@inheritdoc} - */ - public function getNamespace() - { - return 'http://example.org/schema/dic/'.$this->getAlias(); - } - - /** - * Returns the recommended alias to use in XML. - * - * This alias is also the mandatory prefix to use when using YAML. - * - * This convention is to remove the "Extension" postfix from the class - * name and then lowercase and underscore the result. So: - * - * AcmeHelloExtension - * - * becomes - * - * acme_hello - * - * This can be overridden in a sub-class to specify the alias manually. - * - * @return string The alias - * - * @throws BadMethodCallException When the extension name does not follow conventions - */ - public function getAlias() - { - $className = \get_class($this); - if ('Extension' != substr($className, -9)) { - throw new BadMethodCallException('This extension does not follow the naming convention; you must overwrite the getAlias() method.'); - } - $classBaseName = substr(strrchr($className, '\\'), 1, -9); - - return Container::underscore($classBaseName); - } - - /** - * {@inheritdoc} - */ - public function getConfiguration(array $config, ContainerBuilder $container) - { - $class = \get_class($this); - - if (false !== strpos($class, "\0")) { - return null; // ignore anonymous classes - } - - $class = substr_replace($class, '\Configuration', strrpos($class, '\\')); - $class = $container->getReflectionClass($class); - - if (!$class) { - return null; - } - - if (!$class->implementsInterface(ConfigurationInterface::class)) { - @trigger_error(sprintf('Not implementing "%s" in the extension configuration class "%s" is deprecated since Symfony 4.1.', ConfigurationInterface::class, $class->getName()), E_USER_DEPRECATED); - //throw new LogicException(sprintf('The extension configuration class "%s" must implement "%s".', $class->getName(), ConfigurationInterface::class)); - - return null; - } - - if (!($constructor = $class->getConstructor()) || !$constructor->getNumberOfRequiredParameters()) { - return $class->newInstance(); - } - - return null; - } - - final protected function processConfiguration(ConfigurationInterface $configuration, array $configs): array - { - $processor = new Processor(); - - return $this->processedConfigs[] = $processor->processConfiguration($configuration, $configs); - } - - /** - * @internal - */ - final public function getProcessedConfigs(): array - { - try { - return $this->processedConfigs; - } finally { - $this->processedConfigs = []; - } - } - - /** - * @return bool Whether the configuration is enabled - * - * @throws InvalidArgumentException When the config is not enableable - */ - protected function isConfigEnabled(ContainerBuilder $container, array $config) - { - if (!\array_key_exists('enabled', $config)) { - throw new InvalidArgumentException("The config array has no 'enabled' key."); - } - - return (bool) $container->getParameterBag()->resolveValue($config['enabled']); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/ExtensionInterface.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/ExtensionInterface.php deleted file mode 100644 index 6a7a2cf..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/ExtensionInterface.php +++ /dev/null @@ -1,52 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Extension; - -use Symfony\Component\DependencyInjection\ContainerBuilder; - -/** - * ExtensionInterface is the interface implemented by container extension classes. - * - * @author Fabien Potencier - */ -interface ExtensionInterface -{ - /** - * Loads a specific configuration. - * - * @throws \InvalidArgumentException When provided tag is not defined in this extension - */ - public function load(array $configs, ContainerBuilder $container); - - /** - * Returns the namespace to be used for this extension (XML namespace). - * - * @return string The XML namespace - */ - public function getNamespace(); - - /** - * Returns the base path for the XSD files. - * - * @return string|false - */ - public function getXsdValidationBasePath(); - - /** - * Returns the recommended alias to use in XML. - * - * This alias is also the mandatory prefix to use when using YAML. - * - * @return string The alias - */ - public function getAlias(); -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/PrependExtensionInterface.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/PrependExtensionInterface.php deleted file mode 100644 index 5bd18d7..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/PrependExtensionInterface.php +++ /dev/null @@ -1,22 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Extension; - -use Symfony\Component\DependencyInjection\ContainerBuilder; - -interface PrependExtensionInterface -{ - /** - * Allow an extension to prepend the extension configurations. - */ - public function prepend(ContainerBuilder $container); -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/LICENSE b/srcs/phpmyadmin/vendor/symfony/dependency-injection/LICENSE deleted file mode 100644 index a677f43..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2004-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. diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/LazyProxy/Instantiator/InstantiatorInterface.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/LazyProxy/Instantiator/InstantiatorInterface.php deleted file mode 100644 index 96104e4..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/LazyProxy/Instantiator/InstantiatorInterface.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\LazyProxy\Instantiator; - -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Definition; - -/** - * Lazy proxy instantiator, capable of instantiating a proxy given a container, the - * service definitions and a callback that produces the real service instance. - * - * @author Marco Pivetta - */ -interface InstantiatorInterface -{ - /** - * Instantiates a proxy object. - * - * @param string $id Identifier of the requested service - * @param callable $realInstantiator Zero-argument callback that is capable of producing the real service instance - * - * @return object - */ - public function instantiateProxy(ContainerInterface $container, Definition $definition, $id, $realInstantiator); -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/LazyProxy/Instantiator/RealServiceInstantiator.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/LazyProxy/Instantiator/RealServiceInstantiator.php deleted file mode 100644 index 2e36704..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/LazyProxy/Instantiator/RealServiceInstantiator.php +++ /dev/null @@ -1,33 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\LazyProxy\Instantiator; - -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Definition; - -/** - * {@inheritdoc} - * - * Noop proxy instantiator - produces the real service instead of a proxy instance. - * - * @author Marco Pivetta - */ -class RealServiceInstantiator implements InstantiatorInterface -{ - /** - * {@inheritdoc} - */ - public function instantiateProxy(ContainerInterface $container, Definition $definition, $id, $realInstantiator) - { - return $realInstantiator(); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/DumperInterface.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/DumperInterface.php deleted file mode 100644 index f592e6c..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/DumperInterface.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\LazyProxy\PhpDumper; - -use Symfony\Component\DependencyInjection\Definition; - -/** - * Lazy proxy dumper capable of generating the instantiation logic PHP code for proxied services. - * - * @author Marco Pivetta - */ -interface DumperInterface -{ - /** - * Inspects whether the given definitions should produce proxy instantiation logic in the dumped container. - * - * @return bool - */ - public function isProxyCandidate(Definition $definition); - - /** - * Generates the code to be used to instantiate a proxy in the dumped factory code. - * - * @param string $id Service identifier - * @param string $factoryCode The code to execute to create the service - * - * @return string - */ - public function getProxyFactoryCode(Definition $definition, $id, $factoryCode); - - /** - * Generates the code for the lazy proxy. - * - * @return string - */ - public function getProxyCode(Definition $definition); -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/NullDumper.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/NullDumper.php deleted file mode 100644 index ebc6a5d..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/NullDumper.php +++ /dev/null @@ -1,48 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\LazyProxy\PhpDumper; - -use Symfony\Component\DependencyInjection\Definition; - -/** - * Null dumper, negates any proxy code generation for any given service definition. - * - * @author Marco Pivetta - * - * @final - */ -class NullDumper implements DumperInterface -{ - /** - * {@inheritdoc} - */ - public function isProxyCandidate(Definition $definition): bool - { - return false; - } - - /** - * {@inheritdoc} - */ - public function getProxyFactoryCode(Definition $definition, $id, $factoryCode = null): string - { - return ''; - } - - /** - * {@inheritdoc} - */ - public function getProxyCode(Definition $definition): string - { - return ''; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/LazyProxy/ProxyHelper.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/LazyProxy/ProxyHelper.php deleted file mode 100644 index e5611bc..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/LazyProxy/ProxyHelper.php +++ /dev/null @@ -1,56 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\LazyProxy; - -/** - * @author Nicolas Grekas - * - * @internal - */ -class ProxyHelper -{ - /** - * @return string|null The FQCN or builtin name of the type hint, or null when the type hint references an invalid self|parent context - */ - public static function getTypeHint(\ReflectionFunctionAbstract $r, \ReflectionParameter $p = null, bool $noBuiltin = false): ?string - { - if ($p instanceof \ReflectionParameter) { - $type = $p->getType(); - } else { - $type = $r->getReturnType(); - } - if (!$type) { - return null; - } - if (!\is_string($type)) { - $name = $type->getName(); - - if ($type->isBuiltin()) { - return $noBuiltin ? null : $name; - } - } - $lcName = strtolower($name); - $prefix = $noBuiltin ? '' : '\\'; - - if ('self' !== $lcName && 'parent' !== $lcName) { - return $prefix.$name; - } - if (!$r instanceof \ReflectionMethod) { - return null; - } - if ('self' === $lcName) { - return $prefix.$r->getDeclaringClass()->name; - } - - return ($parent = $r->getDeclaringClass()->getParentClass()) ? $prefix.$parent->name : null; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/ClosureLoader.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/ClosureLoader.php deleted file mode 100644 index 939dd7c..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/ClosureLoader.php +++ /dev/null @@ -1,48 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader; - -use Symfony\Component\Config\Loader\Loader; -use Symfony\Component\DependencyInjection\ContainerBuilder; - -/** - * ClosureLoader loads service definitions from a PHP closure. - * - * The Closure has access to the container as its first argument. - * - * @author Fabien Potencier - */ -class ClosureLoader extends Loader -{ - private $container; - - public function __construct(ContainerBuilder $container) - { - $this->container = $container; - } - - /** - * {@inheritdoc} - */ - public function load($resource, $type = null) - { - $resource($this->container); - } - - /** - * {@inheritdoc} - */ - public function supports($resource, $type = null) - { - return $resource instanceof \Closure; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/AbstractConfigurator.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/AbstractConfigurator.php deleted file mode 100644 index c29ca7f..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/AbstractConfigurator.php +++ /dev/null @@ -1,87 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator; - -use Symfony\Component\DependencyInjection\Argument\ArgumentInterface; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Parameter; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\ExpressionLanguage\Expression; - -abstract class AbstractConfigurator -{ - const FACTORY = 'unknown'; - - /** @internal */ - protected $definition; - - public function __call($method, $args) - { - if (method_exists($this, 'set'.$method)) { - return $this->{'set'.$method}(...$args); - } - - throw new \BadMethodCallException(sprintf('Call to undefined method %s::%s()', \get_class($this), $method)); - } - - /** - * Checks that a value is valid, optionally replacing Definition and Reference configurators by their configure value. - * - * @param mixed $value - * @param bool $allowServices whether Definition and Reference are allowed; by default, only scalars and arrays are - * - * @return mixed the value, optionally cast to a Definition/Reference - */ - public static function processValue($value, $allowServices = false) - { - if (\is_array($value)) { - foreach ($value as $k => $v) { - $value[$k] = static::processValue($v, $allowServices); - } - - return $value; - } - - if ($value instanceof ReferenceConfigurator) { - return new Reference($value->id, $value->invalidBehavior); - } - - if ($value instanceof InlineServiceConfigurator) { - $def = $value->definition; - $value->definition = null; - - return $def; - } - - if ($value instanceof self) { - throw new InvalidArgumentException(sprintf('"%s()" can be used only at the root of service configuration files.', $value::FACTORY)); - } - - switch (true) { - case null === $value: - case is_scalar($value): - return $value; - - case $value instanceof ArgumentInterface: - case $value instanceof Definition: - case $value instanceof Expression: - case $value instanceof Parameter: - case $value instanceof Reference: - if ($allowServices) { - return $value; - } - } - - throw new InvalidArgumentException(sprintf('Cannot use values of type "%s" in service configuration files.', \is_object($value) ? \get_class($value) : \gettype($value))); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/AbstractServiceConfigurator.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/AbstractServiceConfigurator.php deleted file mode 100644 index 9d3305e..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/AbstractServiceConfigurator.php +++ /dev/null @@ -1,93 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator; - -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; - -abstract class AbstractServiceConfigurator extends AbstractConfigurator -{ - protected $parent; - protected $id; - private $defaultTags = []; - - public function __construct(ServicesConfigurator $parent, Definition $definition, string $id = null, array $defaultTags = []) - { - $this->parent = $parent; - $this->definition = $definition; - $this->id = $id; - $this->defaultTags = $defaultTags; - } - - public function __destruct() - { - // default tags should be added last - foreach ($this->defaultTags as $name => $attributes) { - foreach ($attributes as $attributes) { - $this->definition->addTag($name, $attributes); - } - } - $this->defaultTags = []; - } - - /** - * Registers a service. - */ - final public function set(string $id, string $class = null): ServiceConfigurator - { - $this->__destruct(); - - return $this->parent->set($id, $class); - } - - /** - * Creates an alias. - */ - final public function alias(string $id, string $referencedId): AliasConfigurator - { - $this->__destruct(); - - return $this->parent->alias($id, $referencedId); - } - - /** - * Registers a PSR-4 namespace using a glob pattern. - */ - final public function load(string $namespace, string $resource): PrototypeConfigurator - { - $this->__destruct(); - - return $this->parent->load($namespace, $resource); - } - - /** - * Gets an already defined service definition. - * - * @throws ServiceNotFoundException if the service definition does not exist - */ - final public function get(string $id): ServiceConfigurator - { - $this->__destruct(); - - return $this->parent->get($id); - } - - /** - * Registers a service. - */ - final public function __invoke(string $id, string $class = null): ServiceConfigurator - { - $this->__destruct(); - - return $this->parent->set($id, $class); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/AliasConfigurator.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/AliasConfigurator.php deleted file mode 100644 index cb00f58..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/AliasConfigurator.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator; - -use Symfony\Component\DependencyInjection\Alias; - -/** - * @author Nicolas Grekas - */ -class AliasConfigurator extends AbstractServiceConfigurator -{ - const FACTORY = 'alias'; - - use Traits\PublicTrait; - - public function __construct(ServicesConfigurator $parent, Alias $alias) - { - $this->parent = $parent; - $this->definition = $alias; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ContainerConfigurator.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ContainerConfigurator.php deleted file mode 100644 index 712d8c9..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ContainerConfigurator.php +++ /dev/null @@ -1,144 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator; - -use Symfony\Component\DependencyInjection\Argument\IteratorArgument; -use Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; -use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Extension\ExtensionInterface; -use Symfony\Component\DependencyInjection\Loader\PhpFileLoader; -use Symfony\Component\ExpressionLanguage\Expression; - -/** - * @author Nicolas Grekas - */ -class ContainerConfigurator extends AbstractConfigurator -{ - const FACTORY = 'container'; - - private $container; - private $loader; - private $instanceof; - private $path; - private $file; - private $anonymousCount = 0; - - public function __construct(ContainerBuilder $container, PhpFileLoader $loader, array &$instanceof, string $path, string $file) - { - $this->container = $container; - $this->loader = $loader; - $this->instanceof = &$instanceof; - $this->path = $path; - $this->file = $file; - } - - final public function extension(string $namespace, array $config) - { - if (!$this->container->hasExtension($namespace)) { - $extensions = array_filter(array_map(function (ExtensionInterface $ext) { return $ext->getAlias(); }, $this->container->getExtensions())); - throw new InvalidArgumentException(sprintf('There is no extension able to load the configuration for "%s" (in %s). Looked for namespace "%s", found %s', $namespace, $this->file, $namespace, $extensions ? sprintf('"%s"', implode('", "', $extensions)) : 'none')); - } - - $this->container->loadFromExtension($namespace, static::processValue($config)); - } - - final public function import(string $resource, string $type = null, $ignoreErrors = false) - { - $this->loader->setCurrentDir(\dirname($this->path)); - $this->loader->import($resource, $type, $ignoreErrors, $this->file); - } - - final public function parameters(): ParametersConfigurator - { - return new ParametersConfigurator($this->container); - } - - final public function services(): ServicesConfigurator - { - return new ServicesConfigurator($this->container, $this->loader, $this->instanceof, $this->path, $this->anonymousCount); - } -} - -/** - * Creates a service reference. - */ -function ref(string $id): ReferenceConfigurator -{ - return new ReferenceConfigurator($id); -} - -/** - * Creates an inline service. - */ -function inline(string $class = null): InlineServiceConfigurator -{ - return new InlineServiceConfigurator(new Definition($class)); -} - -/** - * Creates a service locator. - * - * @param ReferenceConfigurator[] $values - */ -function service_locator(array $values): ServiceLocatorArgument -{ - return new ServiceLocatorArgument(AbstractConfigurator::processValue($values, true)); -} - -/** - * Creates a lazy iterator. - * - * @param ReferenceConfigurator[] $values - */ -function iterator(array $values): IteratorArgument -{ - return new IteratorArgument(AbstractConfigurator::processValue($values, true)); -} - -/** - * Creates a lazy iterator by tag name. - * - * @deprecated since Symfony 4.4, to be removed in 5.0, use "tagged_iterator" instead. - */ -function tagged(string $tag, string $indexAttribute = null, string $defaultIndexMethod = null): TaggedIteratorArgument -{ - @trigger_error(__NAMESPACE__.'\tagged() is deprecated since Symfony 4.4 and will be removed in 5.0, use '.__NAMESPACE__.'\tagged_iterator() instead.', E_USER_DEPRECATED); - - return new TaggedIteratorArgument($tag, $indexAttribute, $defaultIndexMethod); -} - -/** - * Creates a lazy iterator by tag name. - */ -function tagged_iterator(string $tag, string $indexAttribute = null, string $defaultIndexMethod = null, string $defaultPriorityMethod = null): TaggedIteratorArgument -{ - return new TaggedIteratorArgument($tag, $indexAttribute, $defaultIndexMethod, false, $defaultPriorityMethod); -} - -/** - * Creates a service locator by tag name. - */ -function tagged_locator(string $tag, string $indexAttribute = null, string $defaultIndexMethod = null): ServiceLocatorArgument -{ - return new ServiceLocatorArgument(new TaggedIteratorArgument($tag, $indexAttribute, $defaultIndexMethod, true)); -} - -/** - * Creates an expression. - */ -function expr(string $expression): Expression -{ - return new Expression($expression); -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/DefaultsConfigurator.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/DefaultsConfigurator.php deleted file mode 100644 index cd9088f..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/DefaultsConfigurator.php +++ /dev/null @@ -1,69 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator; - -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; - -/** - * @author Nicolas Grekas - */ -class DefaultsConfigurator extends AbstractServiceConfigurator -{ - const FACTORY = 'defaults'; - - use Traits\AutoconfigureTrait; - use Traits\AutowireTrait; - use Traits\BindTrait; - use Traits\PublicTrait; - - private $path; - - public function __construct(ServicesConfigurator $parent, Definition $definition, string $path = null) - { - parent::__construct($parent, $definition, null, []); - - $this->path = $path; - } - - /** - * Adds a tag for this definition. - * - * @return $this - * - * @throws InvalidArgumentException when an invalid tag name or attribute is provided - */ - final public function tag(string $name, array $attributes = []): self - { - if ('' === $name) { - throw new InvalidArgumentException('The tag name in "_defaults" must be a non-empty string.'); - } - - foreach ($attributes as $attribute => $value) { - if (null !== $value && !is_scalar($value)) { - throw new InvalidArgumentException(sprintf('Tag "%s", attribute "%s" in "_defaults" must be of a scalar-type.', $name, $attribute)); - } - } - - $this->definition->addTag($name, $attributes); - - return $this; - } - - /** - * Defines an instanceof-conditional to be applied to following service definitions. - */ - final public function instanceof(string $fqcn): InstanceofConfigurator - { - return $this->parent->instanceof($fqcn); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/InlineServiceConfigurator.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/InlineServiceConfigurator.php deleted file mode 100644 index 362b374..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/InlineServiceConfigurator.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator; - -use Symfony\Component\DependencyInjection\Definition; - -/** - * @author Nicolas Grekas - */ -class InlineServiceConfigurator extends AbstractConfigurator -{ - const FACTORY = 'inline'; - - use Traits\ArgumentTrait; - use Traits\AutowireTrait; - use Traits\BindTrait; - use Traits\FactoryTrait; - use Traits\FileTrait; - use Traits\LazyTrait; - use Traits\ParentTrait; - use Traits\TagTrait; - - public function __construct(Definition $definition) - { - $this->definition = $definition; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/InstanceofConfigurator.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/InstanceofConfigurator.php deleted file mode 100644 index f75e176..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/InstanceofConfigurator.php +++ /dev/null @@ -1,49 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator; - -use Symfony\Component\DependencyInjection\Definition; - -/** - * @author Nicolas Grekas - */ -class InstanceofConfigurator extends AbstractServiceConfigurator -{ - const FACTORY = 'instanceof'; - - use Traits\AutowireTrait; - use Traits\CallTrait; - use Traits\ConfiguratorTrait; - use Traits\LazyTrait; - use Traits\PropertyTrait; - use Traits\PublicTrait; - use Traits\ShareTrait; - use Traits\TagTrait; - use Traits\BindTrait; - - private $path; - - public function __construct(ServicesConfigurator $parent, Definition $definition, string $id, string $path = null) - { - parent::__construct($parent, $definition, $id, []); - - $this->path = $path; - } - - /** - * Defines an instanceof-conditional to be applied to following service definitions. - */ - final public function instanceof(string $fqcn): self - { - return $this->parent->instanceof($fqcn); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ParametersConfigurator.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ParametersConfigurator.php deleted file mode 100644 index a88d28e..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ParametersConfigurator.php +++ /dev/null @@ -1,51 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator; - -use Symfony\Component\DependencyInjection\ContainerBuilder; - -/** - * @author Nicolas Grekas - */ -class ParametersConfigurator extends AbstractConfigurator -{ - const FACTORY = 'parameters'; - - private $container; - - public function __construct(ContainerBuilder $container) - { - $this->container = $container; - } - - /** - * Creates a parameter. - * - * @return $this - */ - final public function set(string $name, $value): self - { - $this->container->setParameter($name, static::processValue($value, true)); - - return $this; - } - - /** - * Creates a parameter. - * - * @return $this - */ - final public function __invoke(string $name, $value): self - { - return $this->set($name, $value); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/PrototypeConfigurator.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/PrototypeConfigurator.php deleted file mode 100644 index 3cd56e0..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/PrototypeConfigurator.php +++ /dev/null @@ -1,84 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator; - -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Loader\PhpFileLoader; - -/** - * @author Nicolas Grekas - */ -class PrototypeConfigurator extends AbstractServiceConfigurator -{ - const FACTORY = 'load'; - - use Traits\AbstractTrait; - use Traits\ArgumentTrait; - use Traits\AutoconfigureTrait; - use Traits\AutowireTrait; - use Traits\BindTrait; - use Traits\CallTrait; - use Traits\ConfiguratorTrait; - use Traits\DeprecateTrait; - use Traits\FactoryTrait; - use Traits\LazyTrait; - use Traits\ParentTrait; - use Traits\PropertyTrait; - use Traits\PublicTrait; - use Traits\ShareTrait; - use Traits\TagTrait; - - private $loader; - private $resource; - private $excludes; - private $allowParent; - - public function __construct(ServicesConfigurator $parent, PhpFileLoader $loader, Definition $defaults, string $namespace, string $resource, bool $allowParent) - { - $definition = new Definition(); - $definition->setPublic($defaults->isPublic()); - $definition->setAutowired($defaults->isAutowired()); - $definition->setAutoconfigured($defaults->isAutoconfigured()); - $definition->setBindings($defaults->getBindings()); - $definition->setChanges([]); - - $this->loader = $loader; - $this->resource = $resource; - $this->allowParent = $allowParent; - - parent::__construct($parent, $definition, $namespace, $defaults->getTags()); - } - - public function __destruct() - { - parent::__destruct(); - - if ($this->loader) { - $this->loader->registerClasses($this->definition, $this->id, $this->resource, $this->excludes); - } - $this->loader = null; - } - - /** - * Excludes files from registration using glob patterns. - * - * @param string[]|string $excludes - * - * @return $this - */ - final public function exclude($excludes): self - { - $this->excludes = (array) $excludes; - - return $this; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ReferenceConfigurator.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ReferenceConfigurator.php deleted file mode 100644 index fa04253..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ReferenceConfigurator.php +++ /dev/null @@ -1,69 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator; - -use Symfony\Component\DependencyInjection\ContainerInterface; - -/** - * @author Nicolas Grekas - */ -class ReferenceConfigurator extends AbstractConfigurator -{ - /** @internal */ - protected $id; - - /** @internal */ - protected $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - - public function __construct(string $id) - { - $this->id = $id; - } - - /** - * @return $this - */ - final public function ignoreOnInvalid(): self - { - $this->invalidBehavior = ContainerInterface::IGNORE_ON_INVALID_REFERENCE; - - return $this; - } - - /** - * @return $this - */ - final public function nullOnInvalid(): self - { - $this->invalidBehavior = ContainerInterface::NULL_ON_INVALID_REFERENCE; - - return $this; - } - - /** - * @return $this - */ - final public function ignoreOnUninitialized(): self - { - $this->invalidBehavior = ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE; - - return $this; - } - - /** - * @return string - */ - public function __toString() - { - return $this->id; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ServiceConfigurator.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ServiceConfigurator.php deleted file mode 100644 index f1a6af7..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ServiceConfigurator.php +++ /dev/null @@ -1,72 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator; - -use Symfony\Component\DependencyInjection\ChildDefinition; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; - -/** - * @author Nicolas Grekas - */ -class ServiceConfigurator extends AbstractServiceConfigurator -{ - const FACTORY = 'services'; - - use Traits\AbstractTrait; - use Traits\ArgumentTrait; - use Traits\AutoconfigureTrait; - use Traits\AutowireTrait; - use Traits\BindTrait; - use Traits\CallTrait; - use Traits\ClassTrait; - use Traits\ConfiguratorTrait; - use Traits\DecorateTrait; - use Traits\DeprecateTrait; - use Traits\FactoryTrait; - use Traits\FileTrait; - use Traits\LazyTrait; - use Traits\ParentTrait; - use Traits\PropertyTrait; - use Traits\PublicTrait; - use Traits\ShareTrait; - use Traits\SyntheticTrait; - use Traits\TagTrait; - - private $container; - private $instanceof; - private $allowParent; - private $path; - - public function __construct(ContainerBuilder $container, array $instanceof, bool $allowParent, ServicesConfigurator $parent, Definition $definition, $id, array $defaultTags, string $path = null) - { - $this->container = $container; - $this->instanceof = $instanceof; - $this->allowParent = $allowParent; - $this->path = $path; - - parent::__construct($parent, $definition, $id, $defaultTags); - } - - public function __destruct() - { - parent::__destruct(); - - $this->container->removeBindings($this->id); - - if (!$this->definition instanceof ChildDefinition) { - $this->container->setDefinition($this->id, $this->definition->setInstanceofConditionals($this->instanceof)); - } else { - $this->container->setDefinition($this->id, $this->definition); - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ServicesConfigurator.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ServicesConfigurator.php deleted file mode 100644 index f0fdde8..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ServicesConfigurator.php +++ /dev/null @@ -1,147 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator; - -use Symfony\Component\DependencyInjection\Alias; -use Symfony\Component\DependencyInjection\ChildDefinition; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; -use Symfony\Component\DependencyInjection\Loader\PhpFileLoader; - -/** - * @author Nicolas Grekas - */ -class ServicesConfigurator extends AbstractConfigurator -{ - const FACTORY = 'services'; - - private $defaults; - private $container; - private $loader; - private $instanceof; - private $path; - private $anonymousHash; - private $anonymousCount; - - public function __construct(ContainerBuilder $container, PhpFileLoader $loader, array &$instanceof, string $path = null, int &$anonymousCount = 0) - { - $this->defaults = new Definition(); - $this->container = $container; - $this->loader = $loader; - $this->instanceof = &$instanceof; - $this->path = $path; - $this->anonymousHash = ContainerBuilder::hash($path ?: mt_rand()); - $this->anonymousCount = &$anonymousCount; - $instanceof = []; - } - - /** - * Defines a set of defaults for following service definitions. - */ - final public function defaults(): DefaultsConfigurator - { - return new DefaultsConfigurator($this, $this->defaults = new Definition(), $this->path); - } - - /** - * Defines an instanceof-conditional to be applied to following service definitions. - */ - final public function instanceof(string $fqcn): InstanceofConfigurator - { - $this->instanceof[$fqcn] = $definition = new ChildDefinition(''); - - return new InstanceofConfigurator($this, $definition, $fqcn, $this->path); - } - - /** - * Registers a service. - * - * @param string|null $id The service id, or null to create an anonymous service - * @param string|null $class The class of the service, or null when $id is also the class name - */ - final public function set(?string $id, string $class = null): ServiceConfigurator - { - $defaults = $this->defaults; - $allowParent = !$defaults->getChanges() && empty($this->instanceof); - - $definition = new Definition(); - - if (null === $id) { - if (!$class) { - throw new \LogicException('Anonymous services must have a class name.'); - } - - $id = sprintf('.%d_%s', ++$this->anonymousCount, preg_replace('/^.*\\\\/', '', $class).'~'.$this->anonymousHash); - $definition->setPublic(false); - } else { - $definition->setPublic($defaults->isPublic()); - } - - $definition->setAutowired($defaults->isAutowired()); - $definition->setAutoconfigured($defaults->isAutoconfigured()); - $definition->setBindings($defaults->getBindings()); - $definition->setChanges([]); - - $configurator = new ServiceConfigurator($this->container, $this->instanceof, $allowParent, $this, $definition, $id, $defaults->getTags(), $this->path); - - return null !== $class ? $configurator->class($class) : $configurator; - } - - /** - * Creates an alias. - */ - final public function alias(string $id, string $referencedId): AliasConfigurator - { - $ref = static::processValue($referencedId, true); - $alias = new Alias((string) $ref, $this->defaults->isPublic()); - $this->container->setAlias($id, $alias); - - return new AliasConfigurator($this, $alias); - } - - /** - * Registers a PSR-4 namespace using a glob pattern. - */ - final public function load(string $namespace, string $resource): PrototypeConfigurator - { - $allowParent = !$this->defaults->getChanges() && empty($this->instanceof); - - return new PrototypeConfigurator($this, $this->loader, $this->defaults, $namespace, $resource, $allowParent); - } - - /** - * Gets an already defined service definition. - * - * @throws ServiceNotFoundException if the service definition does not exist - */ - final public function get(string $id): ServiceConfigurator - { - $allowParent = !$this->defaults->getChanges() && empty($this->instanceof); - $definition = $this->container->getDefinition($id); - - return new ServiceConfigurator($this->container, $definition->getInstanceofConditionals(), $allowParent, $this, $definition, $id, []); - } - - /** - * Registers a service. - */ - final public function __invoke(string $id, string $class = null): ServiceConfigurator - { - return $this->set($id, $class); - } - - public function __destruct() - { - $this->loader->registerAliasesForSinglyImplementedInterfaces(); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AbstractTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AbstractTrait.php deleted file mode 100644 index 82ba21d..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AbstractTrait.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait AbstractTrait -{ - /** - * Whether this definition is abstract, that means it merely serves as a - * template for other definitions. - * - * @return $this - */ - final public function abstract(bool $abstract = true): self - { - $this->definition->setAbstract($abstract); - - return $this; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ArgumentTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ArgumentTrait.php deleted file mode 100644 index 5c9a475..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ArgumentTrait.php +++ /dev/null @@ -1,42 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait ArgumentTrait -{ - /** - * Sets the arguments to pass to the service constructor/factory method. - * - * @return $this - */ - final public function args(array $arguments): self - { - $this->definition->setArguments(static::processValue($arguments, true)); - - return $this; - } - - /** - * Sets one argument to pass to the service constructor/factory method. - * - * @param string|int $key - * @param mixed $value - * - * @return $this - */ - final public function arg($key, $value): self - { - $this->definition->setArgument($key, static::processValue($value, true)); - - return $this; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutoconfigureTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutoconfigureTrait.php deleted file mode 100644 index 836f458..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutoconfigureTrait.php +++ /dev/null @@ -1,35 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -use Symfony\Component\DependencyInjection\ChildDefinition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; - -trait AutoconfigureTrait -{ - /** - * Sets whether or not instanceof conditionals should be prepended with a global set. - * - * @return $this - * - * @throws InvalidArgumentException when a parent is already set - */ - final public function autoconfigure(bool $autoconfigured = true): self - { - if ($autoconfigured && $this->definition instanceof ChildDefinition) { - throw new InvalidArgumentException(sprintf('The service "%s" cannot have a "parent" and also have "autoconfigure". Try disabling autoconfiguration for the service.', $this->id)); - } - $this->definition->setAutoconfigured($autoconfigured); - - return $this; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutowireTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutowireTrait.php deleted file mode 100644 index 2837a02..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutowireTrait.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait AutowireTrait -{ - /** - * Enables/disables autowiring. - * - * @return $this - */ - final public function autowire(bool $autowired = true): self - { - $this->definition->setAutowired($autowired); - - return $this; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/BindTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/BindTrait.php deleted file mode 100644 index 1328494..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/BindTrait.php +++ /dev/null @@ -1,47 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -use Symfony\Component\DependencyInjection\Argument\BoundArgument; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Loader\Configurator\DefaultsConfigurator; -use Symfony\Component\DependencyInjection\Loader\Configurator\InstanceofConfigurator; -use Symfony\Component\DependencyInjection\Reference; - -trait BindTrait -{ - /** - * Sets bindings. - * - * Bindings map $named or FQCN arguments to values that should be - * injected in the matching parameters (of the constructor, of methods - * called and of controller actions). - * - * @param string $nameOrFqcn A parameter name with its "$" prefix, or a FQCN - * @param mixed $valueOrRef The value or reference to bind - * - * @return $this - */ - final public function bind(string $nameOrFqcn, $valueOrRef): self - { - $valueOrRef = static::processValue($valueOrRef, true); - if (!preg_match('/^(?:(?:array|bool|float|int|string)[ \t]*+)?\$/', $nameOrFqcn) && !$valueOrRef instanceof Reference) { - throw new InvalidArgumentException(sprintf('Invalid binding for service "%s": named arguments must start with a "$", and FQCN must map to references. Neither applies to binding "%s".', $this->id, $nameOrFqcn)); - } - $bindings = $this->definition->getBindings(); - $type = $this instanceof DefaultsConfigurator ? BoundArgument::DEFAULTS_BINDING : ($this instanceof InstanceofConfigurator ? BoundArgument::INSTANCEOF_BINDING : BoundArgument::SERVICE_BINDING); - $bindings[$nameOrFqcn] = new BoundArgument($valueOrRef, true, $type, $this->path ?? null); - $this->definition->setBindings($bindings); - - return $this; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/CallTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/CallTrait.php deleted file mode 100644 index 28f92d2..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/CallTrait.php +++ /dev/null @@ -1,35 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; - -trait CallTrait -{ - /** - * Adds a method to call after service initialization. - * - * @param string $method The method name to call - * @param array $arguments An array of arguments to pass to the method call - * @param bool $returnsClone Whether the call returns the service instance or not - * - * @return $this - * - * @throws InvalidArgumentException on empty $method param - */ - final public function call(string $method, array $arguments = [], bool $returnsClone = false): self - { - $this->definition->addMethodCall($method, static::processValue($arguments, true), $returnsClone); - - return $this; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ClassTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ClassTrait.php deleted file mode 100644 index 20da791..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ClassTrait.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait ClassTrait -{ - /** - * Sets the service class. - * - * @return $this - */ - final public function class(?string $class): self - { - $this->definition->setClass($class); - - return $this; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ConfiguratorTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ConfiguratorTrait.php deleted file mode 100644 index 25d363c..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ConfiguratorTrait.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait ConfiguratorTrait -{ - /** - * Sets a configurator to call after the service is fully initialized. - * - * @param string|array $configurator A PHP callable reference - * - * @return $this - */ - final public function configurator($configurator): self - { - $this->definition->setConfigurator(static::processValue($configurator, true)); - - return $this; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DecorateTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DecorateTrait.php deleted file mode 100644 index 222cf75..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DecorateTrait.php +++ /dev/null @@ -1,37 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; - -trait DecorateTrait -{ - /** - * Sets the service that this service is decorating. - * - * @param string|null $id The decorated service id, use null to remove decoration - * @param string|null $renamedId The new decorated service id - * @param int $priority The priority of decoration - * @param int $invalidBehavior The behavior to adopt when decorated is invalid - * - * @return $this - * - * @throws InvalidArgumentException in case the decorated service id and the new decorated service id are equals - */ - final public function decorate(?string $id, string $renamedId = null, int $priority = 0, int $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE): self - { - $this->definition->setDecoratedService($id, $renamedId, $priority, $invalidBehavior); - - return $this; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DeprecateTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DeprecateTrait.php deleted file mode 100644 index b2d5b0e..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DeprecateTrait.php +++ /dev/null @@ -1,33 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; - -trait DeprecateTrait -{ - /** - * Whether this definition is deprecated, that means it should not be called anymore. - * - * @param string $template Template message to use if the definition is deprecated - * - * @return $this - * - * @throws InvalidArgumentException when the message template is invalid - */ - final public function deprecate(string $template = null): self - { - $this->definition->setDeprecated(true, $template); - - return $this; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FactoryTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FactoryTrait.php deleted file mode 100644 index 3834d72..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FactoryTrait.php +++ /dev/null @@ -1,37 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; - -trait FactoryTrait -{ - /** - * Sets a factory. - * - * @param string|array $factory A PHP callable reference - * - * @return $this - */ - final public function factory($factory): self - { - if (\is_string($factory) && 1 === substr_count($factory, ':')) { - $factoryParts = explode(':', $factory); - - throw new InvalidArgumentException(sprintf('Invalid factory "%s": the "service:method" notation is not available when using PHP-based DI configuration. Use "[ref(\'%s\'), \'%s\']" instead.', $factory, $factoryParts[0], $factoryParts[1])); - } - - $this->definition->setFactory(static::processValue($factory, true)); - - return $this; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FileTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FileTrait.php deleted file mode 100644 index 5f42aef..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FileTrait.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait FileTrait -{ - /** - * Sets a file to require before creating the service. - * - * @return $this - */ - final public function file(string $file): self - { - $this->definition->setFile($file); - - return $this; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/LazyTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/LazyTrait.php deleted file mode 100644 index 2829def..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/LazyTrait.php +++ /dev/null @@ -1,32 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait LazyTrait -{ - /** - * Sets the lazy flag of this service. - * - * @param bool|string $lazy A FQCN to derivate the lazy proxy from or `true` to make it extend from the definition's class - * - * @return $this - */ - final public function lazy($lazy = true): self - { - $this->definition->setLazy((bool) $lazy); - if (\is_string($lazy)) { - $this->definition->addTag('proxy', ['interface' => $lazy]); - } - - return $this; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ParentTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ParentTrait.php deleted file mode 100644 index 7488a38..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ParentTrait.php +++ /dev/null @@ -1,50 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -use Symfony\Component\DependencyInjection\ChildDefinition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; - -trait ParentTrait -{ - /** - * Sets the Definition to inherit from. - * - * @return $this - * - * @throws InvalidArgumentException when parent cannot be set - */ - final public function parent(string $parent): self - { - if (!$this->allowParent) { - throw new InvalidArgumentException(sprintf('A parent cannot be defined when either "_instanceof" or "_defaults" are also defined for service prototype "%s".', $this->id)); - } - - if ($this->definition instanceof ChildDefinition) { - $this->definition->setParent($parent); - } elseif ($this->definition->isAutoconfigured()) { - throw new InvalidArgumentException(sprintf('The service "%s" cannot have a "parent" and also have "autoconfigure". Try disabling autoconfiguration for the service.', $this->id)); - } elseif ($this->definition->getBindings()) { - throw new InvalidArgumentException(sprintf('The service "%s" cannot have a "parent" and also "bind" arguments.', $this->id)); - } else { - // cast Definition to ChildDefinition - $definition = serialize($this->definition); - $definition = substr_replace($definition, '53', 2, 2); - $definition = substr_replace($definition, 'Child', 44, 0); - $definition = unserialize($definition); - - $this->definition = $definition->setParent($parent); - } - - return $this; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PropertyTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PropertyTrait.php deleted file mode 100644 index 10fdcfb..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PropertyTrait.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait PropertyTrait -{ - /** - * Sets a specific property. - * - * @return $this - */ - final public function property(string $name, $value): self - { - $this->definition->setProperty($name, static::processValue($value, true)); - - return $this; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PublicTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PublicTrait.php deleted file mode 100644 index f15756c..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PublicTrait.php +++ /dev/null @@ -1,35 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait PublicTrait -{ - /** - * @return $this - */ - final public function public(): self - { - $this->definition->setPublic(true); - - return $this; - } - - /** - * @return $this - */ - final public function private(): self - { - $this->definition->setPublic(false); - - return $this; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ShareTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ShareTrait.php deleted file mode 100644 index 16fde0f..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ShareTrait.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait ShareTrait -{ - /** - * Sets if the service must be shared or not. - * - * @return $this - */ - final public function share(bool $shared = true): self - { - $this->definition->setShared($shared); - - return $this; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/SyntheticTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/SyntheticTrait.php deleted file mode 100644 index cb08b11..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/SyntheticTrait.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait SyntheticTrait -{ - /** - * Sets whether this definition is synthetic, that is not constructed by the - * container, but dynamically injected. - * - * @return $this - */ - final public function synthetic(bool $synthetic = true): self - { - $this->definition->setSynthetic($synthetic); - - return $this; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/TagTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/TagTrait.php deleted file mode 100644 index f4d5f00..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/TagTrait.php +++ /dev/null @@ -1,39 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; - -trait TagTrait -{ - /** - * Adds a tag for this definition. - * - * @return $this - */ - final public function tag(string $name, array $attributes = []): self - { - if ('' === $name) { - throw new InvalidArgumentException(sprintf('The tag name for service "%s" must be a non-empty string.', $this->id)); - } - - foreach ($attributes as $attribute => $value) { - if (!is_scalar($value) && null !== $value) { - throw new InvalidArgumentException(sprintf('A tag attribute must be of a scalar-type for service "%s", tag "%s", attribute "%s".', $this->id, $name, $attribute)); - } - } - - $this->definition->addTag($name, $attributes); - - return $this; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/DirectoryLoader.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/DirectoryLoader.php deleted file mode 100644 index a57cac3..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/DirectoryLoader.php +++ /dev/null @@ -1,54 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader; - -/** - * DirectoryLoader is a recursive loader to go through directories. - * - * @author Sebastien Lavoie - */ -class DirectoryLoader extends FileLoader -{ - /** - * {@inheritdoc} - */ - public function load($file, $type = null) - { - $file = rtrim($file, '/'); - $path = $this->locator->locate($file); - $this->container->fileExists($path, false); - - foreach (scandir($path) as $dir) { - if ('.' !== $dir[0]) { - if (is_dir($path.'/'.$dir)) { - $dir .= '/'; // append / to allow recursion - } - - $this->setCurrentDir($path); - - $this->import($dir, null, false, $path); - } - } - } - - /** - * {@inheritdoc} - */ - public function supports($resource, $type = null) - { - if ('directory' === $type) { - return true; - } - - return null === $type && \is_string($resource) && '/' === substr($resource, -1); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/FileLoader.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/FileLoader.php deleted file mode 100644 index d6f6fae..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/FileLoader.php +++ /dev/null @@ -1,227 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader; - -use Symfony\Component\Config\Exception\FileLocatorFileNotFoundException; -use Symfony\Component\Config\Exception\LoaderLoadException; -use Symfony\Component\Config\FileLocatorInterface; -use Symfony\Component\Config\Loader\FileLoader as BaseFileLoader; -use Symfony\Component\Config\Loader\Loader; -use Symfony\Component\Config\Resource\GlobResource; -use Symfony\Component\DependencyInjection\ChildDefinition; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; - -/** - * FileLoader is the abstract class used by all built-in loaders that are file based. - * - * @author Fabien Potencier - */ -abstract class FileLoader extends BaseFileLoader -{ - public const ANONYMOUS_ID_REGEXP = '/^\.\d+_[^~]*+~[._a-zA-Z\d]{7}$/'; - - protected $container; - protected $isLoadingInstanceof = false; - protected $instanceof = []; - protected $interfaces = []; - protected $singlyImplemented = []; - protected $autoRegisterAliasesForSinglyImplementedInterfaces = true; - - public function __construct(ContainerBuilder $container, FileLocatorInterface $locator) - { - $this->container = $container; - - parent::__construct($locator); - } - - /** - * {@inheritdoc} - * - * @param bool|string $ignoreErrors Whether errors should be ignored; pass "not_found" to ignore only when the loaded resource is not found - * @param string|string[]|null $exclude Glob patterns to exclude from the import - */ - public function import($resource, $type = null, $ignoreErrors = false, $sourceResource = null/*, $exclude = null*/) - { - $args = \func_get_args(); - - if ($ignoreNotFound = 'not_found' === $ignoreErrors) { - $args[2] = false; - } elseif (!\is_bool($ignoreErrors)) { - @trigger_error(sprintf('Invalid argument $ignoreErrors provided to %s::import(): boolean or "not_found" expected, %s given.', \get_class($this), \gettype($ignoreErrors)), E_USER_DEPRECATED); - $args[2] = (bool) $ignoreErrors; - } - - try { - parent::import(...$args); - } catch (LoaderLoadException $e) { - if (!$ignoreNotFound || !($prev = $e->getPrevious()) instanceof FileLocatorFileNotFoundException) { - throw $e; - } - - foreach ($prev->getTrace() as $frame) { - if ('import' === ($frame['function'] ?? null) && is_a($frame['class'] ?? '', Loader::class, true)) { - break; - } - } - - if (__FILE__ !== $frame['file']) { - throw $e; - } - } - } - - /** - * Registers a set of classes as services using PSR-4 for discovery. - * - * @param Definition $prototype A definition to use as template - * @param string $namespace The namespace prefix of classes in the scanned directory - * @param string $resource The directory to look for classes, glob-patterns allowed - * @param string|string[]|null $exclude A globbed path of files to exclude or an array of globbed paths of files to exclude - */ - public function registerClasses(Definition $prototype, $namespace, $resource, $exclude = null) - { - if ('\\' !== substr($namespace, -1)) { - throw new InvalidArgumentException(sprintf('Namespace prefix must end with a "\\": %s.', $namespace)); - } - if (!preg_match('/^(?:[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+\\\\)++$/', $namespace)) { - throw new InvalidArgumentException(sprintf('Namespace is not a valid PSR-4 prefix: %s.', $namespace)); - } - - $classes = $this->findClasses($namespace, $resource, (array) $exclude); - // prepare for deep cloning - $serializedPrototype = serialize($prototype); - - foreach ($classes as $class => $errorMessage) { - if (interface_exists($class, false)) { - $this->interfaces[] = $class; - } else { - $this->setDefinition($class, $definition = unserialize($serializedPrototype)); - if (null !== $errorMessage) { - $definition->addError($errorMessage); - - continue; - } - foreach (class_implements($class, false) as $interface) { - $this->singlyImplemented[$interface] = ($this->singlyImplemented[$interface] ?? $class) !== $class ? false : $class; - } - } - } - - if ($this->autoRegisterAliasesForSinglyImplementedInterfaces) { - $this->registerAliasesForSinglyImplementedInterfaces(); - } - } - - public function registerAliasesForSinglyImplementedInterfaces() - { - foreach ($this->interfaces as $interface) { - if (!empty($this->singlyImplemented[$interface]) && !$this->container->has($interface)) { - $this->container->setAlias($interface, $this->singlyImplemented[$interface])->setPublic(false); - } - } - - $this->interfaces = $this->singlyImplemented = []; - } - - /** - * Registers a definition in the container with its instanceof-conditionals. - * - * @param string $id - */ - protected function setDefinition($id, Definition $definition) - { - $this->container->removeBindings($id); - - if ($this->isLoadingInstanceof) { - if (!$definition instanceof ChildDefinition) { - throw new InvalidArgumentException(sprintf('Invalid type definition "%s": ChildDefinition expected, "%s" given.', $id, \get_class($definition))); - } - $this->instanceof[$id] = $definition; - } else { - $this->container->setDefinition($id, $definition instanceof ChildDefinition ? $definition : $definition->setInstanceofConditionals($this->instanceof)); - } - } - - private function findClasses(string $namespace, string $pattern, array $excludePatterns): array - { - $parameterBag = $this->container->getParameterBag(); - - $excludePaths = []; - $excludePrefix = null; - $excludePatterns = $parameterBag->unescapeValue($parameterBag->resolveValue($excludePatterns)); - foreach ($excludePatterns as $excludePattern) { - foreach ($this->glob($excludePattern, true, $resource, false, true) as $path => $info) { - if (null === $excludePrefix) { - $excludePrefix = $resource->getPrefix(); - } - - // normalize Windows slashes - $excludePaths[str_replace('\\', '/', $path)] = true; - } - } - - $pattern = $parameterBag->unescapeValue($parameterBag->resolveValue($pattern)); - $classes = []; - $extRegexp = '/\\.php$/'; - $prefixLen = null; - foreach ($this->glob($pattern, true, $resource, false, false, $excludePaths) as $path => $info) { - if (null === $prefixLen) { - $prefixLen = \strlen($resource->getPrefix()); - - if ($excludePrefix && 0 !== strpos($excludePrefix, $resource->getPrefix())) { - throw new InvalidArgumentException(sprintf('Invalid "exclude" pattern when importing classes for "%s": make sure your "exclude" pattern (%s) is a subset of the "resource" pattern (%s)', $namespace, $excludePattern, $pattern)); - } - } - - if (isset($excludePaths[str_replace('\\', '/', $path)])) { - continue; - } - - if (!preg_match($extRegexp, $path, $m) || !$info->isReadable()) { - continue; - } - $class = $namespace.ltrim(str_replace('/', '\\', substr($path, $prefixLen, -\strlen($m[0]))), '\\'); - - if (!preg_match('/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+(?:\\\\[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+)*+$/', $class)) { - continue; - } - - try { - $r = $this->container->getReflectionClass($class); - } catch (\ReflectionException $e) { - $classes[$class] = $e->getMessage(); - continue; - } - // check to make sure the expected class exists - if (!$r) { - throw new InvalidArgumentException(sprintf('Expected to find class "%s" in file "%s" while importing services from resource "%s", but it was not found! Check the namespace prefix used with the resource.', $class, $path, $pattern)); - } - - if ($r->isInstantiable() || $r->isInterface()) { - $classes[$class] = null; - } - } - - // track only for new & removed files - if ($resource instanceof GlobResource) { - $this->container->addResource($resource); - } else { - foreach ($resource as $path) { - $this->container->fileExists($path, false); - } - } - - return $classes; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/GlobFileLoader.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/GlobFileLoader.php deleted file mode 100644 index 4b25610..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/GlobFileLoader.php +++ /dev/null @@ -1,40 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader; - -/** - * GlobFileLoader loads files from a glob pattern. - * - * @author Nicolas Grekas - */ -class GlobFileLoader extends FileLoader -{ - /** - * {@inheritdoc} - */ - public function load($resource, $type = null) - { - foreach ($this->glob($resource, false, $globResource) as $path => $info) { - $this->import($path); - } - - $this->container->addResource($globResource); - } - - /** - * {@inheritdoc} - */ - public function supports($resource, $type = null) - { - return 'glob' === $type; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/IniFileLoader.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/IniFileLoader.php deleted file mode 100644 index 40137b1..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/IniFileLoader.php +++ /dev/null @@ -1,97 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader; - -use Symfony\Component\Config\Util\XmlUtils; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; - -/** - * IniFileLoader loads parameters from INI files. - * - * @author Fabien Potencier - */ -class IniFileLoader extends FileLoader -{ - /** - * {@inheritdoc} - */ - public function load($resource, $type = null) - { - $path = $this->locator->locate($resource); - - $this->container->fileExists($path); - - // first pass to catch parsing errors - $result = parse_ini_file($path, true); - if (false === $result || [] === $result) { - throw new InvalidArgumentException(sprintf('The "%s" file is not valid.', $resource)); - } - - // real raw parsing - $result = parse_ini_file($path, true, INI_SCANNER_RAW); - - if (isset($result['parameters']) && \is_array($result['parameters'])) { - foreach ($result['parameters'] as $key => $value) { - $this->container->setParameter($key, $this->phpize($value)); - } - } - } - - /** - * {@inheritdoc} - */ - public function supports($resource, $type = null) - { - if (!\is_string($resource)) { - return false; - } - - if (null === $type && 'ini' === pathinfo($resource, PATHINFO_EXTENSION)) { - return true; - } - - return 'ini' === $type; - } - - /** - * Note that the following features are not supported: - * * strings with escaped quotes are not supported "foo\"bar"; - * * string concatenation ("foo" "bar"). - * - * @return mixed - */ - private function phpize(string $value) - { - // trim on the right as comments removal keep whitespaces - if ($value !== $v = rtrim($value)) { - $value = '""' === substr_replace($v, '', 1, -1) ? substr($v, 1, -1) : $v; - } - $lowercaseValue = strtolower($value); - - switch (true) { - case \defined($value): - return \constant($value); - case 'yes' === $lowercaseValue || 'on' === $lowercaseValue: - return true; - case 'no' === $lowercaseValue || 'off' === $lowercaseValue || 'none' === $lowercaseValue: - return false; - case isset($value[1]) && ( - ("'" === $value[0] && "'" === $value[\strlen($value) - 1]) || - ('"' === $value[0] && '"' === $value[\strlen($value) - 1]) - ): - // quoted string - return substr($value, 1, -1); - default: - return XmlUtils::phpize($value); - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/PhpFileLoader.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/PhpFileLoader.php deleted file mode 100644 index f1477ec..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/PhpFileLoader.php +++ /dev/null @@ -1,80 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader; - -use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; - -/** - * PhpFileLoader loads service definitions from a PHP file. - * - * The PHP file is required and the $container variable can be - * used within the file to change the container. - * - * @author Fabien Potencier - */ -class PhpFileLoader extends FileLoader -{ - protected $autoRegisterAliasesForSinglyImplementedInterfaces = false; - - /** - * {@inheritdoc} - */ - public function load($resource, $type = null) - { - // the container and loader variables are exposed to the included file below - $container = $this->container; - $loader = $this; - - $path = $this->locator->locate($resource); - $this->setCurrentDir(\dirname($path)); - $this->container->fileExists($path); - - // the closure forbids access to the private scope in the included file - $load = \Closure::bind(function ($path) use ($container, $loader, $resource, $type) { - return include $path; - }, $this, ProtectedPhpFileLoader::class); - - try { - $callback = $load($path); - - if (\is_object($callback) && \is_callable($callback)) { - $callback(new ContainerConfigurator($this->container, $this, $this->instanceof, $path, $resource), $this->container, $this); - } - } finally { - $this->instanceof = []; - $this->registerAliasesForSinglyImplementedInterfaces(); - } - } - - /** - * {@inheritdoc} - */ - public function supports($resource, $type = null) - { - if (!\is_string($resource)) { - return false; - } - - if (null === $type && 'php' === pathinfo($resource, PATHINFO_EXTENSION)) { - return true; - } - - return 'php' === $type; - } -} - -/** - * @internal - */ -final class ProtectedPhpFileLoader extends PhpFileLoader -{ -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/XmlFileLoader.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/XmlFileLoader.php deleted file mode 100644 index 41a9f0a..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/XmlFileLoader.php +++ /dev/null @@ -1,728 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader; - -use Symfony\Component\Config\Util\XmlUtils; -use Symfony\Component\DependencyInjection\Alias; -use Symfony\Component\DependencyInjection\Argument\BoundArgument; -use Symfony\Component\DependencyInjection\Argument\IteratorArgument; -use Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; -use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; -use Symfony\Component\DependencyInjection\ChildDefinition; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\Extension\ExtensionInterface; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\ExpressionLanguage\Expression; - -/** - * XmlFileLoader loads XML files service definitions. - * - * @author Fabien Potencier - */ -class XmlFileLoader extends FileLoader -{ - const NS = 'http://symfony.com/schema/dic/services'; - - protected $autoRegisterAliasesForSinglyImplementedInterfaces = false; - - /** - * {@inheritdoc} - */ - public function load($resource, $type = null) - { - $path = $this->locator->locate($resource); - - $xml = $this->parseFileToDOM($path); - - $this->container->fileExists($path); - - $defaults = $this->getServiceDefaults($xml, $path); - - // anonymous services - $this->processAnonymousServices($xml, $path); - - // imports - $this->parseImports($xml, $path); - - // parameters - $this->parseParameters($xml, $path); - - // extensions - $this->loadFromExtensions($xml); - - // services - try { - $this->parseDefinitions($xml, $path, $defaults); - } finally { - $this->instanceof = []; - $this->registerAliasesForSinglyImplementedInterfaces(); - } - } - - /** - * {@inheritdoc} - */ - public function supports($resource, $type = null) - { - if (!\is_string($resource)) { - return false; - } - - if (null === $type && 'xml' === pathinfo($resource, PATHINFO_EXTENSION)) { - return true; - } - - return 'xml' === $type; - } - - private function parseParameters(\DOMDocument $xml, string $file) - { - if ($parameters = $this->getChildren($xml->documentElement, 'parameters')) { - $this->container->getParameterBag()->add($this->getArgumentsAsPhp($parameters[0], 'parameter', $file)); - } - } - - private function parseImports(\DOMDocument $xml, string $file) - { - $xpath = new \DOMXPath($xml); - $xpath->registerNamespace('container', self::NS); - - if (false === $imports = $xpath->query('//container:imports/container:import')) { - return; - } - - $defaultDirectory = \dirname($file); - foreach ($imports as $import) { - $this->setCurrentDir($defaultDirectory); - $this->import($import->getAttribute('resource'), XmlUtils::phpize($import->getAttribute('type')) ?: null, XmlUtils::phpize($import->getAttribute('ignore-errors')) ?: false, $file); - } - } - - private function parseDefinitions(\DOMDocument $xml, string $file, array $defaults) - { - $xpath = new \DOMXPath($xml); - $xpath->registerNamespace('container', self::NS); - - if (false === $services = $xpath->query('//container:services/container:service|//container:services/container:prototype')) { - return; - } - $this->setCurrentDir(\dirname($file)); - - $this->instanceof = []; - $this->isLoadingInstanceof = true; - $instanceof = $xpath->query('//container:services/container:instanceof'); - foreach ($instanceof as $service) { - $this->setDefinition((string) $service->getAttribute('id'), $this->parseDefinition($service, $file, [])); - } - - $this->isLoadingInstanceof = false; - foreach ($services as $service) { - if (null !== $definition = $this->parseDefinition($service, $file, $defaults)) { - if ('prototype' === $service->tagName) { - $excludes = array_column($this->getChildren($service, 'exclude'), 'nodeValue'); - if ($service->hasAttribute('exclude')) { - if (\count($excludes) > 0) { - throw new InvalidArgumentException('You cannot use both the attribute "exclude" and tags at the same time.'); - } - $excludes = [$service->getAttribute('exclude')]; - } - $this->registerClasses($definition, (string) $service->getAttribute('namespace'), (string) $service->getAttribute('resource'), $excludes); - } else { - $this->setDefinition((string) $service->getAttribute('id'), $definition); - } - } - } - } - - /** - * Get service defaults. - */ - private function getServiceDefaults(\DOMDocument $xml, string $file): array - { - $xpath = new \DOMXPath($xml); - $xpath->registerNamespace('container', self::NS); - - if (null === $defaultsNode = $xpath->query('//container:services/container:defaults')->item(0)) { - return []; - } - - $bindings = []; - foreach ($this->getArgumentsAsPhp($defaultsNode, 'bind', $file) as $argument => $value) { - $bindings[$argument] = new BoundArgument($value, true, BoundArgument::DEFAULTS_BINDING, $file); - } - - $defaults = [ - 'tags' => $this->getChildren($defaultsNode, 'tag'), - 'bind' => $bindings, - ]; - - foreach ($defaults['tags'] as $tag) { - if ('' === $tag->getAttribute('name')) { - throw new InvalidArgumentException(sprintf('The tag name for tag "" in %s must be a non-empty string.', $file)); - } - } - - if ($defaultsNode->hasAttribute('autowire')) { - $defaults['autowire'] = XmlUtils::phpize($defaultsNode->getAttribute('autowire')); - } - if ($defaultsNode->hasAttribute('public')) { - $defaults['public'] = XmlUtils::phpize($defaultsNode->getAttribute('public')); - } - if ($defaultsNode->hasAttribute('autoconfigure')) { - $defaults['autoconfigure'] = XmlUtils::phpize($defaultsNode->getAttribute('autoconfigure')); - } - - return $defaults; - } - - /** - * Parses an individual Definition. - */ - private function parseDefinition(\DOMElement $service, string $file, array $defaults): ?Definition - { - if ($alias = $service->getAttribute('alias')) { - $this->validateAlias($service, $file); - - $this->container->setAlias((string) $service->getAttribute('id'), $alias = new Alias($alias)); - if ($publicAttr = $service->getAttribute('public')) { - $alias->setPublic(XmlUtils::phpize($publicAttr)); - } elseif (isset($defaults['public'])) { - $alias->setPublic($defaults['public']); - } - - if ($deprecated = $this->getChildren($service, 'deprecated')) { - $alias->setDeprecated(true, $deprecated[0]->nodeValue ?: null); - } - - return null; - } - - if ($this->isLoadingInstanceof) { - $definition = new ChildDefinition(''); - } elseif ($parent = $service->getAttribute('parent')) { - if (!empty($this->instanceof)) { - throw new InvalidArgumentException(sprintf('The service "%s" cannot use the "parent" option in the same file where "instanceof" configuration is defined as using both is not supported. Move your child definitions to a separate file.', $service->getAttribute('id'))); - } - - foreach ($defaults as $k => $v) { - if ('tags' === $k) { - // since tags are never inherited from parents, there is no confusion - // thus we can safely add them as defaults to ChildDefinition - continue; - } - if ('bind' === $k) { - if ($defaults['bind']) { - throw new InvalidArgumentException(sprintf('Bound values on service "%s" cannot be inherited from "defaults" when a "parent" is set. Move your child definitions to a separate file.', $service->getAttribute('id'))); - } - - continue; - } - if (!$service->hasAttribute($k)) { - throw new InvalidArgumentException(sprintf('Attribute "%s" on service "%s" cannot be inherited from "defaults" when a "parent" is set. Move your child definitions to a separate file or define this attribute explicitly.', $k, $service->getAttribute('id'))); - } - } - - $definition = new ChildDefinition($parent); - } else { - $definition = new Definition(); - - if (isset($defaults['public'])) { - $definition->setPublic($defaults['public']); - } - if (isset($defaults['autowire'])) { - $definition->setAutowired($defaults['autowire']); - } - if (isset($defaults['autoconfigure'])) { - $definition->setAutoconfigured($defaults['autoconfigure']); - } - - $definition->setChanges([]); - } - - foreach (['class', 'public', 'shared', 'synthetic', 'abstract'] as $key) { - if ($value = $service->getAttribute($key)) { - $method = 'set'.$key; - $definition->$method($value = XmlUtils::phpize($value)); - } - } - - if ($value = $service->getAttribute('lazy')) { - $definition->setLazy((bool) $value = XmlUtils::phpize($value)); - if (\is_string($value)) { - $definition->addTag('proxy', ['interface' => $value]); - } - } - - if ($value = $service->getAttribute('autowire')) { - $definition->setAutowired(XmlUtils::phpize($value)); - } - - if ($value = $service->getAttribute('autoconfigure')) { - if (!$definition instanceof ChildDefinition) { - $definition->setAutoconfigured(XmlUtils::phpize($value)); - } elseif ($value = XmlUtils::phpize($value)) { - throw new InvalidArgumentException(sprintf('The service "%s" cannot have a "parent" and also have "autoconfigure". Try setting autoconfigure="false" for the service.', $service->getAttribute('id'))); - } - } - - if ($files = $this->getChildren($service, 'file')) { - $definition->setFile($files[0]->nodeValue); - } - - if ($deprecated = $this->getChildren($service, 'deprecated')) { - $definition->setDeprecated(true, $deprecated[0]->nodeValue ?: null); - } - - $definition->setArguments($this->getArgumentsAsPhp($service, 'argument', $file, $definition instanceof ChildDefinition)); - $definition->setProperties($this->getArgumentsAsPhp($service, 'property', $file)); - - if ($factories = $this->getChildren($service, 'factory')) { - $factory = $factories[0]; - if ($function = $factory->getAttribute('function')) { - $definition->setFactory($function); - } else { - if ($childService = $factory->getAttribute('service')) { - $class = new Reference($childService, ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE); - } else { - $class = $factory->hasAttribute('class') ? $factory->getAttribute('class') : null; - } - - $definition->setFactory([$class, $factory->getAttribute('method') ?: '__invoke']); - } - } - - if ($configurators = $this->getChildren($service, 'configurator')) { - $configurator = $configurators[0]; - if ($function = $configurator->getAttribute('function')) { - $definition->setConfigurator($function); - } else { - if ($childService = $configurator->getAttribute('service')) { - $class = new Reference($childService, ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE); - } else { - $class = $configurator->getAttribute('class'); - } - - $definition->setConfigurator([$class, $configurator->getAttribute('method') ?: '__invoke']); - } - } - - foreach ($this->getChildren($service, 'call') as $call) { - $definition->addMethodCall($call->getAttribute('method'), $this->getArgumentsAsPhp($call, 'argument', $file), XmlUtils::phpize($call->getAttribute('returns-clone'))); - } - - $tags = $this->getChildren($service, 'tag'); - - if (!empty($defaults['tags'])) { - $tags = array_merge($tags, $defaults['tags']); - } - - foreach ($tags as $tag) { - $parameters = []; - foreach ($tag->attributes as $name => $node) { - if ('name' === $name) { - continue; - } - - if (false !== strpos($name, '-') && false === strpos($name, '_') && !\array_key_exists($normalizedName = str_replace('-', '_', $name), $parameters)) { - $parameters[$normalizedName] = XmlUtils::phpize($node->nodeValue); - } - // keep not normalized key - $parameters[$name] = XmlUtils::phpize($node->nodeValue); - } - - if ('' === $tag->getAttribute('name')) { - throw new InvalidArgumentException(sprintf('The tag name for service "%s" in %s must be a non-empty string.', (string) $service->getAttribute('id'), $file)); - } - - $definition->addTag($tag->getAttribute('name'), $parameters); - } - - $bindings = $this->getArgumentsAsPhp($service, 'bind', $file); - $bindingType = $this->isLoadingInstanceof ? BoundArgument::INSTANCEOF_BINDING : BoundArgument::SERVICE_BINDING; - foreach ($bindings as $argument => $value) { - $bindings[$argument] = new BoundArgument($value, true, $bindingType, $file); - } - - if (isset($defaults['bind'])) { - // deep clone, to avoid multiple process of the same instance in the passes - $bindings = array_merge(unserialize(serialize($defaults['bind'])), $bindings); - } - if ($bindings) { - $definition->setBindings($bindings); - } - - if ($decorates = $service->getAttribute('decorates')) { - $decorationOnInvalid = $service->getAttribute('decoration-on-invalid') ?: 'exception'; - if ('exception' === $decorationOnInvalid) { - $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - } elseif ('ignore' === $decorationOnInvalid) { - $invalidBehavior = ContainerInterface::IGNORE_ON_INVALID_REFERENCE; - } elseif ('null' === $decorationOnInvalid) { - $invalidBehavior = ContainerInterface::NULL_ON_INVALID_REFERENCE; - } else { - throw new InvalidArgumentException(sprintf('Invalid value "%s" for attribute "decoration-on-invalid" on service "%s". Did you mean "exception", "ignore" or "null" in "%s"?', $decorationOnInvalid, (string) $service->getAttribute('id'), $file)); - } - - $renameId = $service->hasAttribute('decoration-inner-name') ? $service->getAttribute('decoration-inner-name') : null; - $priority = $service->hasAttribute('decoration-priority') ? $service->getAttribute('decoration-priority') : 0; - - $definition->setDecoratedService($decorates, $renameId, $priority, $invalidBehavior); - } - - return $definition; - } - - /** - * Parses a XML file to a \DOMDocument. - * - * @throws InvalidArgumentException When loading of XML file returns error - */ - private function parseFileToDOM(string $file): \DOMDocument - { - try { - $dom = XmlUtils::loadFile($file, [$this, 'validateSchema']); - } catch (\InvalidArgumentException $e) { - throw new InvalidArgumentException(sprintf('Unable to parse file "%s": %s', $file, $e->getMessage()), $e->getCode(), $e); - } - - $this->validateExtensions($dom, $file); - - return $dom; - } - - /** - * Processes anonymous services. - */ - private function processAnonymousServices(\DOMDocument $xml, string $file) - { - $definitions = []; - $count = 0; - $suffix = '~'.ContainerBuilder::hash($file); - - $xpath = new \DOMXPath($xml); - $xpath->registerNamespace('container', self::NS); - - // anonymous services as arguments/properties - if (false !== $nodes = $xpath->query('//container:argument[@type="service"][not(@id)]|//container:property[@type="service"][not(@id)]|//container:bind[not(@id)]|//container:factory[not(@service)]|//container:configurator[not(@service)]')) { - foreach ($nodes as $node) { - if ($services = $this->getChildren($node, 'service')) { - // give it a unique name - $id = sprintf('.%d_%s', ++$count, preg_replace('/^.*\\\\/', '', $services[0]->getAttribute('class')).$suffix); - $node->setAttribute('id', $id); - $node->setAttribute('service', $id); - - $definitions[$id] = [$services[0], $file]; - $services[0]->setAttribute('id', $id); - - // anonymous services are always private - // we could not use the constant false here, because of XML parsing - $services[0]->setAttribute('public', 'false'); - } - } - } - - // anonymous services "in the wild" - if (false !== $nodes = $xpath->query('//container:services/container:service[not(@id)]')) { - foreach ($nodes as $node) { - throw new InvalidArgumentException(sprintf('Top-level services must have "id" attribute, none found in %s at line %d.', $file, $node->getLineNo())); - } - } - - // resolve definitions - uksort($definitions, 'strnatcmp'); - foreach (array_reverse($definitions) as $id => list($domElement, $file)) { - if (null !== $definition = $this->parseDefinition($domElement, $file, [])) { - $this->setDefinition($id, $definition); - } - } - } - - private function getArgumentsAsPhp(\DOMElement $node, string $name, string $file, bool $isChildDefinition = false): array - { - $arguments = []; - foreach ($this->getChildren($node, $name) as $arg) { - if ($arg->hasAttribute('name')) { - $arg->setAttribute('key', $arg->getAttribute('name')); - } - - // this is used by ChildDefinition to overwrite a specific - // argument of the parent definition - if ($arg->hasAttribute('index')) { - $key = ($isChildDefinition ? 'index_' : '').$arg->getAttribute('index'); - } elseif (!$arg->hasAttribute('key')) { - // Append an empty argument, then fetch its key to overwrite it later - $arguments[] = null; - $keys = array_keys($arguments); - $key = array_pop($keys); - } else { - $key = $arg->getAttribute('key'); - } - - $onInvalid = $arg->getAttribute('on-invalid'); - $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - if ('ignore' == $onInvalid) { - $invalidBehavior = ContainerInterface::IGNORE_ON_INVALID_REFERENCE; - } elseif ('ignore_uninitialized' == $onInvalid) { - $invalidBehavior = ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE; - } elseif ('null' == $onInvalid) { - $invalidBehavior = ContainerInterface::NULL_ON_INVALID_REFERENCE; - } - - switch ($arg->getAttribute('type')) { - case 'service': - if ('' === $arg->getAttribute('id')) { - throw new InvalidArgumentException(sprintf('Tag "<%s>" with type="service" has no or empty "id" attribute in "%s".', $name, $file)); - } - - $arguments[$key] = new Reference($arg->getAttribute('id'), $invalidBehavior); - break; - case 'expression': - if (!class_exists(Expression::class)) { - throw new \LogicException(sprintf('The type="expression" attribute cannot be used without the ExpressionLanguage component. Try running "composer require symfony/expression-language".')); - } - - $arguments[$key] = new Expression($arg->nodeValue); - break; - case 'collection': - $arguments[$key] = $this->getArgumentsAsPhp($arg, $name, $file); - break; - case 'iterator': - $arg = $this->getArgumentsAsPhp($arg, $name, $file); - try { - $arguments[$key] = new IteratorArgument($arg); - } catch (InvalidArgumentException $e) { - throw new InvalidArgumentException(sprintf('Tag "<%s>" with type="iterator" only accepts collections of type="service" references in "%s".', $name, $file)); - } - break; - case 'service_locator': - $arg = $this->getArgumentsAsPhp($arg, $name, $file); - try { - $arguments[$key] = new ServiceLocatorArgument($arg); - } catch (InvalidArgumentException $e) { - throw new InvalidArgumentException(sprintf('Tag "<%s>" with type="service_locator" only accepts maps of type="service" references in "%s".', $name, $file)); - } - break; - case 'tagged': - case 'tagged_iterator': - case 'tagged_locator': - $type = $arg->getAttribute('type'); - $forLocator = 'tagged_locator' === $type; - - if (!$arg->getAttribute('tag')) { - throw new InvalidArgumentException(sprintf('Tag "<%s>" with type="%s" has no or empty "tag" attribute in "%s".', $name, $type, $file)); - } - - $arguments[$key] = new TaggedIteratorArgument($arg->getAttribute('tag'), $arg->getAttribute('index-by') ?: null, $arg->getAttribute('default-index-method') ?: null, $forLocator, $arg->getAttribute('default-priority-method') ?: null); - - if ($forLocator) { - $arguments[$key] = new ServiceLocatorArgument($arguments[$key]); - } - break; - case 'binary': - if (false === $value = base64_decode($arg->nodeValue)) { - throw new InvalidArgumentException(sprintf('Tag "<%s>" with type="binary" is not a valid base64 encoded string.', $name)); - } - $arguments[$key] = $value; - break; - case 'string': - $arguments[$key] = $arg->nodeValue; - break; - case 'constant': - $arguments[$key] = \constant(trim($arg->nodeValue)); - break; - default: - $arguments[$key] = XmlUtils::phpize($arg->nodeValue); - } - } - - return $arguments; - } - - /** - * Get child elements by name. - * - * @return \DOMElement[] - */ - private function getChildren(\DOMNode $node, string $name): array - { - $children = []; - foreach ($node->childNodes as $child) { - if ($child instanceof \DOMElement && $child->localName === $name && self::NS === $child->namespaceURI) { - $children[] = $child; - } - } - - return $children; - } - - /** - * Validates a documents XML schema. - * - * @return bool - * - * @throws RuntimeException When extension references a non-existent XSD file - */ - public function validateSchema(\DOMDocument $dom) - { - $schemaLocations = ['http://symfony.com/schema/dic/services' => str_replace('\\', '/', __DIR__.'/schema/dic/services/services-1.0.xsd')]; - - if ($element = $dom->documentElement->getAttributeNS('http://www.w3.org/2001/XMLSchema-instance', 'schemaLocation')) { - $items = preg_split('/\s+/', $element); - for ($i = 0, $nb = \count($items); $i < $nb; $i += 2) { - if (!$this->container->hasExtension($items[$i])) { - continue; - } - - if (($extension = $this->container->getExtension($items[$i])) && false !== $extension->getXsdValidationBasePath()) { - $ns = $extension->getNamespace(); - $path = str_replace([$ns, str_replace('http://', 'https://', $ns)], str_replace('\\', '/', $extension->getXsdValidationBasePath()).'/', $items[$i + 1]); - - if (!is_file($path)) { - throw new RuntimeException(sprintf('Extension "%s" references a non-existent XSD file "%s"', \get_class($extension), $path)); - } - - $schemaLocations[$items[$i]] = $path; - } - } - } - - $tmpfiles = []; - $imports = ''; - foreach ($schemaLocations as $namespace => $location) { - $parts = explode('/', $location); - $locationstart = 'file:///'; - if (0 === stripos($location, 'phar://')) { - $tmpfile = tempnam(sys_get_temp_dir(), 'symfony'); - if ($tmpfile) { - copy($location, $tmpfile); - $tmpfiles[] = $tmpfile; - $parts = explode('/', str_replace('\\', '/', $tmpfile)); - } else { - array_shift($parts); - $locationstart = 'phar:///'; - } - } - $drive = '\\' === \DIRECTORY_SEPARATOR ? array_shift($parts).'/' : ''; - $location = $locationstart.$drive.implode('/', array_map('rawurlencode', $parts)); - - $imports .= sprintf(' '."\n", $namespace, $location); - } - - $source = << - - - -$imports - -EOF - ; - - $disableEntities = libxml_disable_entity_loader(false); - $valid = @$dom->schemaValidateSource($source); - libxml_disable_entity_loader($disableEntities); - - foreach ($tmpfiles as $tmpfile) { - @unlink($tmpfile); - } - - return $valid; - } - - private function validateAlias(\DOMElement $alias, string $file) - { - foreach ($alias->attributes as $name => $node) { - if (!\in_array($name, ['alias', 'id', 'public'])) { - throw new InvalidArgumentException(sprintf('Invalid attribute "%s" defined for alias "%s" in "%s".', $name, $alias->getAttribute('id'), $file)); - } - } - - foreach ($alias->childNodes as $child) { - if (!$child instanceof \DOMElement || self::NS !== $child->namespaceURI) { - continue; - } - if (!\in_array($child->localName, ['deprecated'], true)) { - throw new InvalidArgumentException(sprintf('Invalid child element "%s" defined for alias "%s" in "%s".', $child->localName, $alias->getAttribute('id'), $file)); - } - } - } - - /** - * Validates an extension. - * - * @throws InvalidArgumentException When no extension is found corresponding to a tag - */ - private function validateExtensions(\DOMDocument $dom, string $file) - { - foreach ($dom->documentElement->childNodes as $node) { - if (!$node instanceof \DOMElement || 'http://symfony.com/schema/dic/services' === $node->namespaceURI) { - continue; - } - - // can it be handled by an extension? - if (!$this->container->hasExtension($node->namespaceURI)) { - $extensionNamespaces = array_filter(array_map(function (ExtensionInterface $ext) { return $ext->getNamespace(); }, $this->container->getExtensions())); - throw new InvalidArgumentException(sprintf('There is no extension able to load the configuration for "%s" (in %s). Looked for namespace "%s", found %s', $node->tagName, $file, $node->namespaceURI, $extensionNamespaces ? sprintf('"%s"', implode('", "', $extensionNamespaces)) : 'none')); - } - } - } - - /** - * Loads from an extension. - */ - private function loadFromExtensions(\DOMDocument $xml) - { - foreach ($xml->documentElement->childNodes as $node) { - if (!$node instanceof \DOMElement || self::NS === $node->namespaceURI) { - continue; - } - - $values = static::convertDomElementToArray($node); - if (!\is_array($values)) { - $values = []; - } - - $this->container->loadFromExtension($node->namespaceURI, $values); - } - } - - /** - * Converts a \DOMElement object to a PHP array. - * - * The following rules applies during the conversion: - * - * * Each tag is converted to a key value or an array - * if there is more than one "value" - * - * * The content of a tag is set under a "value" key (bar) - * if the tag also has some nested tags - * - * * The attributes are converted to keys () - * - * * The nested-tags are converted to keys (bar) - * - * @param \DOMElement $element A \DOMElement instance - * - * @return mixed - */ - public static function convertDomElementToArray(\DOMElement $element) - { - return XmlUtils::convertDomElementToArray($element); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/YamlFileLoader.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/YamlFileLoader.php deleted file mode 100644 index ee8c140..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/YamlFileLoader.php +++ /dev/null @@ -1,880 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\Loader; - -use Symfony\Component\DependencyInjection\Alias; -use Symfony\Component\DependencyInjection\Argument\ArgumentInterface; -use Symfony\Component\DependencyInjection\Argument\BoundArgument; -use Symfony\Component\DependencyInjection\Argument\IteratorArgument; -use Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; -use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; -use Symfony\Component\DependencyInjection\ChildDefinition; -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\Extension\ExtensionInterface; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\ExpressionLanguage\Expression; -use Symfony\Component\Yaml\Exception\ParseException; -use Symfony\Component\Yaml\Parser as YamlParser; -use Symfony\Component\Yaml\Tag\TaggedValue; -use Symfony\Component\Yaml\Yaml; - -/** - * YamlFileLoader loads YAML files service definitions. - * - * @author Fabien Potencier - */ -class YamlFileLoader extends FileLoader -{ - private static $serviceKeywords = [ - 'alias' => 'alias', - 'parent' => 'parent', - 'class' => 'class', - 'shared' => 'shared', - 'synthetic' => 'synthetic', - 'lazy' => 'lazy', - 'public' => 'public', - 'abstract' => 'abstract', - 'deprecated' => 'deprecated', - 'factory' => 'factory', - 'file' => 'file', - 'arguments' => 'arguments', - 'properties' => 'properties', - 'configurator' => 'configurator', - 'calls' => 'calls', - 'tags' => 'tags', - 'decorates' => 'decorates', - 'decoration_inner_name' => 'decoration_inner_name', - 'decoration_priority' => 'decoration_priority', - 'decoration_on_invalid' => 'decoration_on_invalid', - 'autowire' => 'autowire', - 'autoconfigure' => 'autoconfigure', - 'bind' => 'bind', - ]; - - private static $prototypeKeywords = [ - 'resource' => 'resource', - 'namespace' => 'namespace', - 'exclude' => 'exclude', - 'parent' => 'parent', - 'shared' => 'shared', - 'lazy' => 'lazy', - 'public' => 'public', - 'abstract' => 'abstract', - 'deprecated' => 'deprecated', - 'factory' => 'factory', - 'arguments' => 'arguments', - 'properties' => 'properties', - 'configurator' => 'configurator', - 'calls' => 'calls', - 'tags' => 'tags', - 'autowire' => 'autowire', - 'autoconfigure' => 'autoconfigure', - 'bind' => 'bind', - ]; - - private static $instanceofKeywords = [ - 'shared' => 'shared', - 'lazy' => 'lazy', - 'public' => 'public', - 'properties' => 'properties', - 'configurator' => 'configurator', - 'calls' => 'calls', - 'tags' => 'tags', - 'autowire' => 'autowire', - 'bind' => 'bind', - ]; - - private static $defaultsKeywords = [ - 'public' => 'public', - 'tags' => 'tags', - 'autowire' => 'autowire', - 'autoconfigure' => 'autoconfigure', - 'bind' => 'bind', - ]; - - private $yamlParser; - - private $anonymousServicesCount; - private $anonymousServicesSuffix; - - protected $autoRegisterAliasesForSinglyImplementedInterfaces = false; - - /** - * {@inheritdoc} - */ - public function load($resource, $type = null) - { - $path = $this->locator->locate($resource); - - $content = $this->loadFile($path); - - $this->container->fileExists($path); - - // empty file - if (null === $content) { - return; - } - - // imports - $this->parseImports($content, $path); - - // parameters - if (isset($content['parameters'])) { - if (!\is_array($content['parameters'])) { - throw new InvalidArgumentException(sprintf('The "parameters" key should contain an array in %s. Check your YAML syntax.', $path)); - } - - foreach ($content['parameters'] as $key => $value) { - $this->container->setParameter($key, $this->resolveServices($value, $path, true)); - } - } - - // extensions - $this->loadFromExtensions($content); - - // services - $this->anonymousServicesCount = 0; - $this->anonymousServicesSuffix = '~'.ContainerBuilder::hash($path); - $this->setCurrentDir(\dirname($path)); - try { - $this->parseDefinitions($content, $path); - } finally { - $this->instanceof = []; - $this->registerAliasesForSinglyImplementedInterfaces(); - } - } - - /** - * {@inheritdoc} - */ - public function supports($resource, $type = null) - { - if (!\is_string($resource)) { - return false; - } - - if (null === $type && \in_array(pathinfo($resource, PATHINFO_EXTENSION), ['yaml', 'yml'], true)) { - return true; - } - - return \in_array($type, ['yaml', 'yml'], true); - } - - private function parseImports(array $content, string $file) - { - if (!isset($content['imports'])) { - return; - } - - if (!\is_array($content['imports'])) { - throw new InvalidArgumentException(sprintf('The "imports" key should contain an array in %s. Check your YAML syntax.', $file)); - } - - $defaultDirectory = \dirname($file); - foreach ($content['imports'] as $import) { - if (!\is_array($import)) { - $import = ['resource' => $import]; - } - if (!isset($import['resource'])) { - throw new InvalidArgumentException(sprintf('An import should provide a resource in %s. Check your YAML syntax.', $file)); - } - - $this->setCurrentDir($defaultDirectory); - $this->import($import['resource'], $import['type'] ?? null, $import['ignore_errors'] ?? false, $file); - } - } - - private function parseDefinitions(array $content, string $file) - { - if (!isset($content['services'])) { - return; - } - - if (!\is_array($content['services'])) { - throw new InvalidArgumentException(sprintf('The "services" key should contain an array in %s. Check your YAML syntax.', $file)); - } - - if (\array_key_exists('_instanceof', $content['services'])) { - $instanceof = $content['services']['_instanceof']; - unset($content['services']['_instanceof']); - - if (!\is_array($instanceof)) { - throw new InvalidArgumentException(sprintf('Service "_instanceof" key must be an array, "%s" given in "%s".', \gettype($instanceof), $file)); - } - $this->instanceof = []; - $this->isLoadingInstanceof = true; - foreach ($instanceof as $id => $service) { - if (!$service || !\is_array($service)) { - throw new InvalidArgumentException(sprintf('Type definition "%s" must be a non-empty array within "_instanceof" in %s. Check your YAML syntax.', $id, $file)); - } - if (\is_string($service) && 0 === strpos($service, '@')) { - throw new InvalidArgumentException(sprintf('Type definition "%s" cannot be an alias within "_instanceof" in %s. Check your YAML syntax.', $id, $file)); - } - $this->parseDefinition($id, $service, $file, []); - } - } - - $this->isLoadingInstanceof = false; - $defaults = $this->parseDefaults($content, $file); - foreach ($content['services'] as $id => $service) { - $this->parseDefinition($id, $service, $file, $defaults); - } - } - - /** - * @throws InvalidArgumentException - */ - private function parseDefaults(array &$content, string $file): array - { - if (!\array_key_exists('_defaults', $content['services'])) { - return []; - } - $defaults = $content['services']['_defaults']; - unset($content['services']['_defaults']); - - if (!\is_array($defaults)) { - throw new InvalidArgumentException(sprintf('Service "_defaults" key must be an array, "%s" given in "%s".', \gettype($defaults), $file)); - } - - foreach ($defaults as $key => $default) { - if (!isset(self::$defaultsKeywords[$key])) { - throw new InvalidArgumentException(sprintf('The configuration key "%s" cannot be used to define a default value in "%s". Allowed keys are "%s".', $key, $file, implode('", "', self::$defaultsKeywords))); - } - } - - if (isset($defaults['tags'])) { - if (!\is_array($tags = $defaults['tags'])) { - throw new InvalidArgumentException(sprintf('Parameter "tags" in "_defaults" must be an array in %s. Check your YAML syntax.', $file)); - } - - foreach ($tags as $tag) { - if (!\is_array($tag)) { - $tag = ['name' => $tag]; - } - - if (!isset($tag['name'])) { - throw new InvalidArgumentException(sprintf('A "tags" entry in "_defaults" is missing a "name" key in %s.', $file)); - } - $name = $tag['name']; - unset($tag['name']); - - if (!\is_string($name) || '' === $name) { - throw new InvalidArgumentException(sprintf('The tag name in "_defaults" must be a non-empty string in %s.', $file)); - } - - foreach ($tag as $attribute => $value) { - if (!is_scalar($value) && null !== $value) { - throw new InvalidArgumentException(sprintf('Tag "%s", attribute "%s" in "_defaults" must be of a scalar-type in %s. Check your YAML syntax.', $name, $attribute, $file)); - } - } - } - } - - if (isset($defaults['bind'])) { - if (!\is_array($defaults['bind'])) { - throw new InvalidArgumentException(sprintf('Parameter "bind" in "_defaults" must be an array in %s. Check your YAML syntax.', $file)); - } - - foreach ($this->resolveServices($defaults['bind'], $file) as $argument => $value) { - $defaults['bind'][$argument] = new BoundArgument($value, true, BoundArgument::DEFAULTS_BINDING, $file); - } - } - - return $defaults; - } - - private function isUsingShortSyntax(array $service): bool - { - foreach ($service as $key => $value) { - if (\is_string($key) && ('' === $key || '$' !== $key[0])) { - return false; - } - } - - return true; - } - - /** - * Parses a definition. - * - * @param array|string $service - * - * @throws InvalidArgumentException When tags are invalid - */ - private function parseDefinition(string $id, $service, string $file, array $defaults) - { - if (preg_match('/^_[a-zA-Z0-9_]*$/', $id)) { - throw new InvalidArgumentException(sprintf('Service names that start with an underscore are reserved. Rename the "%s" service or define it in XML instead.', $id)); - } - - if (\is_string($service) && 0 === strpos($service, '@')) { - $this->container->setAlias($id, $alias = new Alias(substr($service, 1))); - if (isset($defaults['public'])) { - $alias->setPublic($defaults['public']); - } - - return; - } - - if (\is_array($service) && $this->isUsingShortSyntax($service)) { - $service = ['arguments' => $service]; - } - - if (null === $service) { - $service = []; - } - - if (!\is_array($service)) { - throw new InvalidArgumentException(sprintf('A service definition must be an array or a string starting with "@" but %s found for service "%s" in %s. Check your YAML syntax.', \gettype($service), $id, $file)); - } - - $this->checkDefinition($id, $service, $file); - - if (isset($service['alias'])) { - $this->container->setAlias($id, $alias = new Alias($service['alias'])); - if (\array_key_exists('public', $service)) { - $alias->setPublic($service['public']); - } elseif (isset($defaults['public'])) { - $alias->setPublic($defaults['public']); - } - - foreach ($service as $key => $value) { - if (!\in_array($key, ['alias', 'public', 'deprecated'])) { - throw new InvalidArgumentException(sprintf('The configuration key "%s" is unsupported for the service "%s" which is defined as an alias in "%s". Allowed configuration keys for service aliases are "alias", "public" and "deprecated".', $key, $id, $file)); - } - - if ('deprecated' === $key) { - $alias->setDeprecated(true, $value); - } - } - - return; - } - - if ($this->isLoadingInstanceof) { - $definition = new ChildDefinition(''); - } elseif (isset($service['parent'])) { - if (!empty($this->instanceof)) { - throw new InvalidArgumentException(sprintf('The service "%s" cannot use the "parent" option in the same file where "_instanceof" configuration is defined as using both is not supported. Move your child definitions to a separate file.', $id)); - } - - foreach ($defaults as $k => $v) { - if ('tags' === $k) { - // since tags are never inherited from parents, there is no confusion - // thus we can safely add them as defaults to ChildDefinition - continue; - } - if ('bind' === $k) { - throw new InvalidArgumentException(sprintf('Attribute "bind" on service "%s" cannot be inherited from "_defaults" when a "parent" is set. Move your child definitions to a separate file.', $id)); - } - if (!isset($service[$k])) { - throw new InvalidArgumentException(sprintf('Attribute "%s" on service "%s" cannot be inherited from "_defaults" when a "parent" is set. Move your child definitions to a separate file or define this attribute explicitly.', $k, $id)); - } - } - - if ('' !== $service['parent'] && '@' === $service['parent'][0]) { - throw new InvalidArgumentException(sprintf('The value of the "parent" option for the "%s" service must be the id of the service without the "@" prefix (replace "%s" with "%s").', $id, $service['parent'], substr($service['parent'], 1))); - } - - $definition = new ChildDefinition($service['parent']); - } else { - $definition = new Definition(); - - if (isset($defaults['public'])) { - $definition->setPublic($defaults['public']); - } - if (isset($defaults['autowire'])) { - $definition->setAutowired($defaults['autowire']); - } - if (isset($defaults['autoconfigure'])) { - $definition->setAutoconfigured($defaults['autoconfigure']); - } - - $definition->setChanges([]); - } - - if (isset($service['class'])) { - $definition->setClass($service['class']); - } - - if (isset($service['shared'])) { - $definition->setShared($service['shared']); - } - - if (isset($service['synthetic'])) { - $definition->setSynthetic($service['synthetic']); - } - - if (isset($service['lazy'])) { - $definition->setLazy((bool) $service['lazy']); - if (\is_string($service['lazy'])) { - $definition->addTag('proxy', ['interface' => $service['lazy']]); - } - } - - if (isset($service['public'])) { - $definition->setPublic($service['public']); - } - - if (isset($service['abstract'])) { - $definition->setAbstract($service['abstract']); - } - - if (\array_key_exists('deprecated', $service)) { - $definition->setDeprecated(true, $service['deprecated']); - } - - if (isset($service['factory'])) { - $definition->setFactory($this->parseCallable($service['factory'], 'factory', $id, $file)); - } - - if (isset($service['file'])) { - $definition->setFile($service['file']); - } - - if (isset($service['arguments'])) { - $definition->setArguments($this->resolveServices($service['arguments'], $file)); - } - - if (isset($service['properties'])) { - $definition->setProperties($this->resolveServices($service['properties'], $file)); - } - - if (isset($service['configurator'])) { - $definition->setConfigurator($this->parseCallable($service['configurator'], 'configurator', $id, $file)); - } - - if (isset($service['calls'])) { - if (!\is_array($service['calls'])) { - throw new InvalidArgumentException(sprintf('Parameter "calls" must be an array for service "%s" in %s. Check your YAML syntax.', $id, $file)); - } - - foreach ($service['calls'] as $k => $call) { - if (!\is_array($call) && (!\is_string($k) || !$call instanceof TaggedValue)) { - throw new InvalidArgumentException(sprintf('Invalid method call for service "%s": expected map or array, %s given in %s.', $id, $call instanceof TaggedValue ? '!'.$call->getTag() : \gettype($call), $file)); - } - - if (\is_string($k)) { - throw new InvalidArgumentException(sprintf('Invalid method call for service "%s", did you forgot a leading dash before "%s: ..." in %s?', $id, $k, $file)); - } - - if (isset($call['method'])) { - $method = $call['method']; - $args = $call['arguments'] ?? []; - $returnsClone = $call['returns_clone'] ?? false; - } else { - if (1 === \count($call) && \is_string(key($call))) { - $method = key($call); - $args = $call[$method]; - - if ($args instanceof TaggedValue) { - if ('returns_clone' !== $args->getTag()) { - throw new InvalidArgumentException(sprintf('Unsupported tag "!%s", did you mean "!returns_clone" for service "%s" in %s?', $args->getTag(), $id, $file)); - } - - $returnsClone = true; - $args = $args->getValue(); - } else { - $returnsClone = false; - } - } elseif (empty($call[0])) { - throw new InvalidArgumentException(sprintf('Invalid call for service "%s": the method must be defined as the first index of an array or as the only key of a map in %s.', $id, $file)); - } else { - $method = $call[0]; - $args = $call[1] ?? []; - $returnsClone = $call[2] ?? false; - } - } - - if (!\is_array($args)) { - throw new InvalidArgumentException(sprintf('The second parameter for function call "%s" must be an array of its arguments for service "%s" in %s. Check your YAML syntax.', $method, $id, $file)); - } - - $args = $this->resolveServices($args, $file); - $definition->addMethodCall($method, $args, $returnsClone); - } - } - - $tags = isset($service['tags']) ? $service['tags'] : []; - if (!\is_array($tags)) { - throw new InvalidArgumentException(sprintf('Parameter "tags" must be an array for service "%s" in %s. Check your YAML syntax.', $id, $file)); - } - - if (isset($defaults['tags'])) { - $tags = array_merge($tags, $defaults['tags']); - } - - foreach ($tags as $tag) { - if (!\is_array($tag)) { - $tag = ['name' => $tag]; - } - - if (!isset($tag['name'])) { - throw new InvalidArgumentException(sprintf('A "tags" entry is missing a "name" key for service "%s" in %s.', $id, $file)); - } - $name = $tag['name']; - unset($tag['name']); - - if (!\is_string($name) || '' === $name) { - throw new InvalidArgumentException(sprintf('The tag name for service "%s" in %s must be a non-empty string.', $id, $file)); - } - - foreach ($tag as $attribute => $value) { - if (!is_scalar($value) && null !== $value) { - throw new InvalidArgumentException(sprintf('A "tags" attribute must be of a scalar-type for service "%s", tag "%s", attribute "%s" in %s. Check your YAML syntax.', $id, $name, $attribute, $file)); - } - } - - $definition->addTag($name, $tag); - } - - if (null !== $decorates = $service['decorates'] ?? null) { - if ('' !== $decorates && '@' === $decorates[0]) { - throw new InvalidArgumentException(sprintf('The value of the "decorates" option for the "%s" service must be the id of the service without the "@" prefix (replace "%s" with "%s").', $id, $service['decorates'], substr($decorates, 1))); - } - - $decorationOnInvalid = \array_key_exists('decoration_on_invalid', $service) ? $service['decoration_on_invalid'] : 'exception'; - if ('exception' === $decorationOnInvalid) { - $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - } elseif ('ignore' === $decorationOnInvalid) { - $invalidBehavior = ContainerInterface::IGNORE_ON_INVALID_REFERENCE; - } elseif (null === $decorationOnInvalid) { - $invalidBehavior = ContainerInterface::NULL_ON_INVALID_REFERENCE; - } elseif ('null' === $decorationOnInvalid) { - throw new InvalidArgumentException(sprintf('Invalid value "%s" for attribute "decoration_on_invalid" on service "%s". Did you mean null (without quotes) in "%s"?', $decorationOnInvalid, $id, $file)); - } else { - throw new InvalidArgumentException(sprintf('Invalid value "%s" for attribute "decoration_on_invalid" on service "%s". Did you mean "exception", "ignore" or null in "%s"?', $decorationOnInvalid, $id, $file)); - } - - $renameId = isset($service['decoration_inner_name']) ? $service['decoration_inner_name'] : null; - $priority = isset($service['decoration_priority']) ? $service['decoration_priority'] : 0; - - $definition->setDecoratedService($decorates, $renameId, $priority, $invalidBehavior); - } - - if (isset($service['autowire'])) { - $definition->setAutowired($service['autowire']); - } - - if (isset($defaults['bind']) || isset($service['bind'])) { - // deep clone, to avoid multiple process of the same instance in the passes - $bindings = isset($defaults['bind']) ? unserialize(serialize($defaults['bind'])) : []; - - if (isset($service['bind'])) { - if (!\is_array($service['bind'])) { - throw new InvalidArgumentException(sprintf('Parameter "bind" must be an array for service "%s" in %s. Check your YAML syntax.', $id, $file)); - } - - $bindings = array_merge($bindings, $this->resolveServices($service['bind'], $file)); - $bindingType = $this->isLoadingInstanceof ? BoundArgument::INSTANCEOF_BINDING : BoundArgument::SERVICE_BINDING; - foreach ($bindings as $argument => $value) { - if (!$value instanceof BoundArgument) { - $bindings[$argument] = new BoundArgument($value, true, $bindingType, $file); - } - } - } - - $definition->setBindings($bindings); - } - - if (isset($service['autoconfigure'])) { - if (!$definition instanceof ChildDefinition) { - $definition->setAutoconfigured($service['autoconfigure']); - } elseif ($service['autoconfigure']) { - throw new InvalidArgumentException(sprintf('The service "%s" cannot have a "parent" and also have "autoconfigure". Try setting "autoconfigure: false" for the service.', $id)); - } - } - - if (\array_key_exists('namespace', $service) && !\array_key_exists('resource', $service)) { - throw new InvalidArgumentException(sprintf('A "resource" attribute must be set when the "namespace" attribute is set for service "%s" in %s. Check your YAML syntax.', $id, $file)); - } - - if (\array_key_exists('resource', $service)) { - if (!\is_string($service['resource'])) { - throw new InvalidArgumentException(sprintf('A "resource" attribute must be of type string for service "%s" in %s. Check your YAML syntax.', $id, $file)); - } - $exclude = isset($service['exclude']) ? $service['exclude'] : null; - $namespace = isset($service['namespace']) ? $service['namespace'] : $id; - $this->registerClasses($definition, $namespace, $service['resource'], $exclude); - } else { - $this->setDefinition($id, $definition); - } - } - - /** - * Parses a callable. - * - * @param string|array $callable A callable reference - * - * @throws InvalidArgumentException When errors occur - * - * @return string|array|Reference A parsed callable - */ - private function parseCallable($callable, string $parameter, string $id, string $file) - { - if (\is_string($callable)) { - if ('' !== $callable && '@' === $callable[0]) { - if (false === strpos($callable, ':')) { - return [$this->resolveServices($callable, $file), '__invoke']; - } - - throw new InvalidArgumentException(sprintf('The value of the "%s" option for the "%s" service must be the id of the service without the "@" prefix (replace "%s" with "%s" in "%s").', $parameter, $id, $callable, substr($callable, 1), $file)); - } - - if (false !== strpos($callable, ':') && false === strpos($callable, '::')) { - $parts = explode(':', $callable); - - @trigger_error(sprintf('Using short %s syntax for service "%s" is deprecated since Symfony 4.4, use "[\'@%s\', \'%s\']" instead.', $parameter, $id, ...$parts), E_USER_DEPRECATED); - - return [$this->resolveServices('@'.$parts[0], $file), $parts[1]]; - } - - return $callable; - } - - if (\is_array($callable)) { - if (isset($callable[0]) && isset($callable[1])) { - return [$this->resolveServices($callable[0], $file), $callable[1]]; - } - - if ('factory' === $parameter && isset($callable[1]) && null === $callable[0]) { - return $callable; - } - - throw new InvalidArgumentException(sprintf('Parameter "%s" must contain an array with two elements for service "%s" in %s. Check your YAML syntax.', $parameter, $id, $file)); - } - - throw new InvalidArgumentException(sprintf('Parameter "%s" must be a string or an array for service "%s" in %s. Check your YAML syntax.', $parameter, $id, $file)); - } - - /** - * Loads a YAML file. - * - * @param string $file - * - * @return array The file content - * - * @throws InvalidArgumentException when the given file is not a local file or when it does not exist - */ - protected function loadFile($file) - { - if (!class_exists('Symfony\Component\Yaml\Parser')) { - throw new RuntimeException('Unable to load YAML config files as the Symfony Yaml Component is not installed.'); - } - - if (!stream_is_local($file)) { - throw new InvalidArgumentException(sprintf('This is not a local file "%s".', $file)); - } - - if (!file_exists($file)) { - throw new InvalidArgumentException(sprintf('The file "%s" does not exist.', $file)); - } - - if (null === $this->yamlParser) { - $this->yamlParser = new YamlParser(); - } - - try { - $configuration = $this->yamlParser->parseFile($file, Yaml::PARSE_CONSTANT | Yaml::PARSE_CUSTOM_TAGS); - } catch (ParseException $e) { - throw new InvalidArgumentException(sprintf('The file "%s" does not contain valid YAML: %s', $file, $e->getMessage()), 0, $e); - } - - return $this->validate($configuration, $file); - } - - /** - * Validates a YAML file. - * - * @throws InvalidArgumentException When service file is not valid - */ - private function validate($content, string $file): ?array - { - if (null === $content) { - return $content; - } - - if (!\is_array($content)) { - throw new InvalidArgumentException(sprintf('The service file "%s" is not valid. It should contain an array. Check your YAML syntax.', $file)); - } - - foreach ($content as $namespace => $data) { - if (\in_array($namespace, ['imports', 'parameters', 'services'])) { - continue; - } - - if (!$this->container->hasExtension($namespace)) { - $extensionNamespaces = array_filter(array_map(function (ExtensionInterface $ext) { return $ext->getAlias(); }, $this->container->getExtensions())); - throw new InvalidArgumentException(sprintf('There is no extension able to load the configuration for "%s" (in %s). Looked for namespace "%s", found %s', $namespace, $file, $namespace, $extensionNamespaces ? sprintf('"%s"', implode('", "', $extensionNamespaces)) : 'none')); - } - } - - return $content; - } - - /** - * Resolves services. - * - * @return array|string|Reference|ArgumentInterface - */ - private function resolveServices($value, string $file, bool $isParameter = false) - { - if ($value instanceof TaggedValue) { - $argument = $value->getValue(); - if ('iterator' === $value->getTag()) { - if (!\is_array($argument)) { - throw new InvalidArgumentException(sprintf('"!iterator" tag only accepts sequences in "%s".', $file)); - } - $argument = $this->resolveServices($argument, $file, $isParameter); - try { - return new IteratorArgument($argument); - } catch (InvalidArgumentException $e) { - throw new InvalidArgumentException(sprintf('"!iterator" tag only accepts arrays of "@service" references in "%s".', $file)); - } - } - if ('service_locator' === $value->getTag()) { - if (!\is_array($argument)) { - throw new InvalidArgumentException(sprintf('"!service_locator" tag only accepts maps in "%s".', $file)); - } - - $argument = $this->resolveServices($argument, $file, $isParameter); - - try { - return new ServiceLocatorArgument($argument); - } catch (InvalidArgumentException $e) { - throw new InvalidArgumentException(sprintf('"!service_locator" tag only accepts maps of "@service" references in "%s".', $file)); - } - } - if (\in_array($value->getTag(), ['tagged', 'tagged_iterator', 'tagged_locator'], true)) { - $forLocator = 'tagged_locator' === $value->getTag(); - - if (\is_array($argument) && isset($argument['tag']) && $argument['tag']) { - if ($diff = array_diff(array_keys($argument), ['tag', 'index_by', 'default_index_method', 'default_priority_method'])) { - throw new InvalidArgumentException(sprintf('"!%s" tag contains unsupported key "%s"; supported ones are "tag", "index_by", "default_index_method", and "default_priority_method".', $value->getTag(), implode('"", "', $diff))); - } - - $argument = new TaggedIteratorArgument($argument['tag'], $argument['index_by'] ?? null, $argument['default_index_method'] ?? null, $forLocator, $argument['default_priority_method'] ?? null); - } elseif (\is_string($argument) && $argument) { - $argument = new TaggedIteratorArgument($argument, null, null, $forLocator); - } else { - throw new InvalidArgumentException(sprintf('"!%s" tags only accept a non empty string or an array with a key "tag" in "%s".', $value->getTag(), $file)); - } - - if ($forLocator) { - $argument = new ServiceLocatorArgument($argument); - } - - return $argument; - } - if ('service' === $value->getTag()) { - if ($isParameter) { - throw new InvalidArgumentException(sprintf('Using an anonymous service in a parameter is not allowed in "%s".', $file)); - } - - $isLoadingInstanceof = $this->isLoadingInstanceof; - $this->isLoadingInstanceof = false; - $instanceof = $this->instanceof; - $this->instanceof = []; - - $id = sprintf('.%d_%s', ++$this->anonymousServicesCount, preg_replace('/^.*\\\\/', '', isset($argument['class']) ? $argument['class'] : '').$this->anonymousServicesSuffix); - $this->parseDefinition($id, $argument, $file, []); - - if (!$this->container->hasDefinition($id)) { - throw new InvalidArgumentException(sprintf('Creating an alias using the tag "!service" is not allowed in "%s".', $file)); - } - - $this->container->getDefinition($id)->setPublic(false); - - $this->isLoadingInstanceof = $isLoadingInstanceof; - $this->instanceof = $instanceof; - - return new Reference($id); - } - - throw new InvalidArgumentException(sprintf('Unsupported tag "!%s".', $value->getTag())); - } - - if (\is_array($value)) { - foreach ($value as $k => $v) { - $value[$k] = $this->resolveServices($v, $file, $isParameter); - } - } elseif (\is_string($value) && 0 === strpos($value, '@=')) { - if (!class_exists(Expression::class)) { - throw new \LogicException(sprintf('The "@=" expression syntax cannot be used without the ExpressionLanguage component. Try running "composer require symfony/expression-language".')); - } - - return new Expression(substr($value, 2)); - } elseif (\is_string($value) && 0 === strpos($value, '@')) { - if (0 === strpos($value, '@@')) { - $value = substr($value, 1); - $invalidBehavior = null; - } elseif (0 === strpos($value, '@!')) { - $value = substr($value, 2); - $invalidBehavior = ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE; - } elseif (0 === strpos($value, '@?')) { - $value = substr($value, 2); - $invalidBehavior = ContainerInterface::IGNORE_ON_INVALID_REFERENCE; - } else { - $value = substr($value, 1); - $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - } - - if (null !== $invalidBehavior) { - $value = new Reference($value, $invalidBehavior); - } - } - - return $value; - } - - /** - * Loads from Extensions. - */ - private function loadFromExtensions(array $content) - { - foreach ($content as $namespace => $values) { - if (\in_array($namespace, ['imports', 'parameters', 'services'])) { - continue; - } - - if (!\is_array($values) && null !== $values) { - $values = []; - } - - $this->container->loadFromExtension($namespace, $values); - } - } - - /** - * Checks the keywords used to define a service. - */ - private function checkDefinition(string $id, array $definition, string $file) - { - if ($this->isLoadingInstanceof) { - $keywords = self::$instanceofKeywords; - } elseif (isset($definition['resource']) || isset($definition['namespace'])) { - $keywords = self::$prototypeKeywords; - } else { - $keywords = self::$serviceKeywords; - } - - foreach ($definition as $key => $value) { - if (!isset($keywords[$key])) { - throw new InvalidArgumentException(sprintf('The configuration key "%s" is unsupported for definition "%s" in "%s". Allowed configuration keys are "%s".', $key, $id, $file, implode('", "', $keywords))); - } - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/schema/dic/services/services-1.0.xsd b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/schema/dic/services/services-1.0.xsd deleted file mode 100644 index 2f745c3..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/schema/dic/services/services-1.0.xsd +++ /dev/null @@ -1,305 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Parameter.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Parameter.php deleted file mode 100644 index d484ac0..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Parameter.php +++ /dev/null @@ -1,35 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -/** - * Parameter represents a parameter reference. - * - * @author Fabien Potencier - */ -class Parameter -{ - private $id; - - public function __construct(string $id) - { - $this->id = $id; - } - - /** - * @return string The parameter key - */ - public function __toString() - { - return $this->id; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ParameterBag/ContainerBag.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/ParameterBag/ContainerBag.php deleted file mode 100644 index 7671dfc..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ParameterBag/ContainerBag.php +++ /dev/null @@ -1,51 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\ParameterBag; - -use Symfony\Component\DependencyInjection\Container; - -/** - * @author Nicolas Grekas - */ -class ContainerBag extends FrozenParameterBag implements ContainerBagInterface -{ - private $container; - - public function __construct(Container $container) - { - $this->container = $container; - } - - /** - * {@inheritdoc} - */ - public function all() - { - return $this->container->getParameterBag()->all(); - } - - /** - * {@inheritdoc} - */ - public function get($name) - { - return $this->container->getParameter($name); - } - - /** - * {@inheritdoc} - */ - public function has($name) - { - return $this->container->hasParameter($name); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ParameterBag/ContainerBagInterface.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/ParameterBag/ContainerBagInterface.php deleted file mode 100644 index 1c1227a..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ParameterBag/ContainerBagInterface.php +++ /dev/null @@ -1,57 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\ParameterBag; - -use Psr\Container\ContainerInterface; -use Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException; - -/** - * ContainerBagInterface is the interface implemented by objects that manage service container parameters. - * - * @author Nicolas Grekas - */ -interface ContainerBagInterface extends ContainerInterface -{ - /** - * Gets the service container parameters. - * - * @return array An array of parameters - */ - public function all(); - - /** - * Replaces parameter placeholders (%name%) by their values. - * - * @param mixed $value A value - * - * @throws ParameterNotFoundException if a placeholder references a parameter that does not exist - */ - public function resolveValue($value); - - /** - * Escape parameter placeholders %. - * - * @param mixed $value - * - * @return mixed - */ - public function escapeValue($value); - - /** - * Unescape parameter placeholders %. - * - * @param mixed $value - * - * @return mixed - */ - public function unescapeValue($value); -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ParameterBag/EnvPlaceholderParameterBag.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/ParameterBag/EnvPlaceholderParameterBag.php deleted file mode 100644 index 8724086..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ParameterBag/EnvPlaceholderParameterBag.php +++ /dev/null @@ -1,173 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\ParameterBag; - -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; - -/** - * @author Nicolas Grekas - */ -class EnvPlaceholderParameterBag extends ParameterBag -{ - private $envPlaceholderUniquePrefix; - private $envPlaceholders = []; - private $unusedEnvPlaceholders = []; - private $providedTypes = []; - - private static $counter = 0; - - /** - * {@inheritdoc} - */ - public function get($name) - { - if (0 === strpos($name, 'env(') && ')' === substr($name, -1) && 'env()' !== $name) { - $env = substr($name, 4, -1); - - if (isset($this->envPlaceholders[$env])) { - foreach ($this->envPlaceholders[$env] as $placeholder) { - return $placeholder; // return first result - } - } - if (isset($this->unusedEnvPlaceholders[$env])) { - foreach ($this->unusedEnvPlaceholders[$env] as $placeholder) { - return $placeholder; // return first result - } - } - if (!preg_match('/^(?:\w*+:)*+\w++$/', $env)) { - throw new InvalidArgumentException(sprintf('Invalid %s name: only "word" characters are allowed.', $name)); - } - - if ($this->has($name)) { - $defaultValue = parent::get($name); - - if (null !== $defaultValue && !is_scalar($defaultValue)) { // !is_string in 5.0 - //throw new RuntimeException(sprintf('The default value of an env() parameter must be a string or null, but "%s" given to "%s".', \gettype($defaultValue), $name)); - throw new RuntimeException(sprintf('The default value of an env() parameter must be scalar or null, but "%s" given to "%s".', \gettype($defaultValue), $name)); - } elseif (is_scalar($defaultValue) && !\is_string($defaultValue)) { - @trigger_error(sprintf('A non-string default value of an env() parameter is deprecated since 4.3, cast "%s" to string instead.', $name), E_USER_DEPRECATED); - } - } - - $uniqueName = md5($name.'_'.self::$counter++); - $placeholder = sprintf('%s_%s_%s', $this->getEnvPlaceholderUniquePrefix(), str_replace(':', '_', $env), $uniqueName); - $this->envPlaceholders[$env][$placeholder] = $placeholder; - - return $placeholder; - } - - return parent::get($name); - } - - /** - * Gets the common env placeholder prefix for env vars created by this bag. - */ - public function getEnvPlaceholderUniquePrefix(): string - { - if (null === $this->envPlaceholderUniquePrefix) { - $reproducibleEntropy = unserialize(serialize($this->parameters)); - array_walk_recursive($reproducibleEntropy, function (&$v) { $v = null; }); - $this->envPlaceholderUniquePrefix = 'env_'.substr(md5(serialize($reproducibleEntropy)), -16); - } - - return $this->envPlaceholderUniquePrefix; - } - - /** - * Returns the map of env vars used in the resolved parameter values to their placeholders. - * - * @return string[][] A map of env var names to their placeholders - */ - public function getEnvPlaceholders() - { - return $this->envPlaceholders; - } - - public function getUnusedEnvPlaceholders(): array - { - return $this->unusedEnvPlaceholders; - } - - public function clearUnusedEnvPlaceholders() - { - $this->unusedEnvPlaceholders = []; - } - - /** - * Merges the env placeholders of another EnvPlaceholderParameterBag. - */ - public function mergeEnvPlaceholders(self $bag) - { - if ($newPlaceholders = $bag->getEnvPlaceholders()) { - $this->envPlaceholders += $newPlaceholders; - - foreach ($newPlaceholders as $env => $placeholders) { - $this->envPlaceholders[$env] += $placeholders; - } - } - - if ($newUnusedPlaceholders = $bag->getUnusedEnvPlaceholders()) { - $this->unusedEnvPlaceholders += $newUnusedPlaceholders; - - foreach ($newUnusedPlaceholders as $env => $placeholders) { - $this->unusedEnvPlaceholders[$env] += $placeholders; - } - } - } - - /** - * Maps env prefixes to their corresponding PHP types. - */ - public function setProvidedTypes(array $providedTypes) - { - $this->providedTypes = $providedTypes; - } - - /** - * Gets the PHP types corresponding to env() parameter prefixes. - * - * @return string[][] - */ - public function getProvidedTypes() - { - return $this->providedTypes; - } - - /** - * {@inheritdoc} - */ - public function resolve() - { - if ($this->resolved) { - return; - } - parent::resolve(); - - foreach ($this->envPlaceholders as $env => $placeholders) { - if (!$this->has($name = "env($env)")) { - continue; - } - if (is_numeric($default = $this->parameters[$name])) { - if (!\is_string($default)) { - @trigger_error(sprintf('A non-string default value of env parameter "%s" is deprecated since 4.3, cast it to string instead.', $env), E_USER_DEPRECATED); - } - $this->parameters[$name] = (string) $default; - } elseif (null !== $default && !is_scalar($default)) { // !is_string in 5.0 - //throw new RuntimeException(sprintf('The default value of env parameter "%s" must be a string or null, %s given.', $env, \gettype($default))); - throw new RuntimeException(sprintf('The default value of env parameter "%s" must be scalar or null, %s given.', $env, \gettype($default))); - } elseif (is_scalar($default) && !\is_string($default)) { - @trigger_error(sprintf('A non-string default value of env parameter "%s" is deprecated since 4.3, cast it to string instead.', $env), E_USER_DEPRECATED); - } - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ParameterBag/FrozenParameterBag.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/ParameterBag/FrozenParameterBag.php deleted file mode 100644 index a519993..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ParameterBag/FrozenParameterBag.php +++ /dev/null @@ -1,68 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\ParameterBag; - -use Symfony\Component\DependencyInjection\Exception\LogicException; - -/** - * Holds read-only parameters. - * - * @author Fabien Potencier - */ -class FrozenParameterBag extends ParameterBag -{ - /** - * For performance reasons, the constructor assumes that - * all keys are already lowercased. - * - * This is always the case when used internally. - * - * @param array $parameters An array of parameters - */ - public function __construct(array $parameters = []) - { - $this->parameters = $parameters; - $this->resolved = true; - } - - /** - * {@inheritdoc} - */ - public function clear() - { - throw new LogicException('Impossible to call clear() on a frozen ParameterBag.'); - } - - /** - * {@inheritdoc} - */ - public function add(array $parameters) - { - throw new LogicException('Impossible to call add() on a frozen ParameterBag.'); - } - - /** - * {@inheritdoc} - */ - public function set($name, $value) - { - throw new LogicException('Impossible to call set() on a frozen ParameterBag.'); - } - - /** - * {@inheritdoc} - */ - public function remove($name) - { - throw new LogicException('Impossible to call remove() on a frozen ParameterBag.'); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ParameterBag/ParameterBag.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/ParameterBag/ParameterBag.php deleted file mode 100644 index 48887c3..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ParameterBag/ParameterBag.php +++ /dev/null @@ -1,289 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\ParameterBag; - -use Symfony\Component\DependencyInjection\Exception\ParameterCircularReferenceException; -use Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; - -/** - * Holds parameters. - * - * @author Fabien Potencier - */ -class ParameterBag implements ParameterBagInterface -{ - protected $parameters = []; - protected $resolved = false; - - /** - * @param array $parameters An array of parameters - */ - public function __construct(array $parameters = []) - { - $this->add($parameters); - } - - /** - * Clears all parameters. - */ - public function clear() - { - $this->parameters = []; - } - - /** - * Adds parameters to the service container parameters. - * - * @param array $parameters An array of parameters - */ - public function add(array $parameters) - { - foreach ($parameters as $key => $value) { - $this->set($key, $value); - } - } - - /** - * {@inheritdoc} - */ - public function all() - { - return $this->parameters; - } - - /** - * {@inheritdoc} - */ - public function get($name) - { - $name = (string) $name; - - if (!\array_key_exists($name, $this->parameters)) { - if (!$name) { - throw new ParameterNotFoundException($name); - } - - $alternatives = []; - foreach ($this->parameters as $key => $parameterValue) { - $lev = levenshtein($name, $key); - if ($lev <= \strlen($name) / 3 || false !== strpos($key, $name)) { - $alternatives[] = $key; - } - } - - $nonNestedAlternative = null; - if (!\count($alternatives) && false !== strpos($name, '.')) { - $namePartsLength = array_map('strlen', explode('.', $name)); - $key = substr($name, 0, -1 * (1 + array_pop($namePartsLength))); - while (\count($namePartsLength)) { - if ($this->has($key)) { - if (\is_array($this->get($key))) { - $nonNestedAlternative = $key; - } - break; - } - - $key = substr($key, 0, -1 * (1 + array_pop($namePartsLength))); - } - } - - throw new ParameterNotFoundException($name, null, null, null, $alternatives, $nonNestedAlternative); - } - - return $this->parameters[$name]; - } - - /** - * Sets a service container parameter. - * - * @param string $name The parameter name - * @param mixed $value The parameter value - */ - public function set($name, $value) - { - $this->parameters[(string) $name] = $value; - } - - /** - * {@inheritdoc} - */ - public function has($name) - { - return \array_key_exists((string) $name, $this->parameters); - } - - /** - * Removes a parameter. - * - * @param string $name The parameter name - */ - public function remove($name) - { - unset($this->parameters[(string) $name]); - } - - /** - * {@inheritdoc} - */ - public function resolve() - { - if ($this->resolved) { - return; - } - - $parameters = []; - foreach ($this->parameters as $key => $value) { - try { - $value = $this->resolveValue($value); - $parameters[$key] = $this->unescapeValue($value); - } catch (ParameterNotFoundException $e) { - $e->setSourceKey($key); - - throw $e; - } - } - - $this->parameters = $parameters; - $this->resolved = true; - } - - /** - * Replaces parameter placeholders (%name%) by their values. - * - * @param mixed $value A value - * @param array $resolving An array of keys that are being resolved (used internally to detect circular references) - * - * @return mixed The resolved value - * - * @throws ParameterNotFoundException if a placeholder references a parameter that does not exist - * @throws ParameterCircularReferenceException if a circular reference if detected - * @throws RuntimeException when a given parameter has a type problem - */ - public function resolveValue($value, array $resolving = []) - { - if (\is_array($value)) { - $args = []; - foreach ($value as $k => $v) { - $args[\is_string($k) ? $this->resolveValue($k, $resolving) : $k] = $this->resolveValue($v, $resolving); - } - - return $args; - } - - if (!\is_string($value) || 2 > \strlen($value)) { - return $value; - } - - return $this->resolveString($value, $resolving); - } - - /** - * Resolves parameters inside a string. - * - * @param string $value The string to resolve - * @param array $resolving An array of keys that are being resolved (used internally to detect circular references) - * - * @return mixed The resolved string - * - * @throws ParameterNotFoundException if a placeholder references a parameter that does not exist - * @throws ParameterCircularReferenceException if a circular reference if detected - * @throws RuntimeException when a given parameter has a type problem - */ - public function resolveString($value, array $resolving = []) - { - // we do this to deal with non string values (Boolean, integer, ...) - // as the preg_replace_callback throw an exception when trying - // a non-string in a parameter value - if (preg_match('/^%([^%\s]+)%$/', $value, $match)) { - $key = $match[1]; - - if (isset($resolving[$key])) { - throw new ParameterCircularReferenceException(array_keys($resolving)); - } - - $resolving[$key] = true; - - return $this->resolved ? $this->get($key) : $this->resolveValue($this->get($key), $resolving); - } - - return preg_replace_callback('/%%|%([^%\s]+)%/', function ($match) use ($resolving, $value) { - // skip %% - if (!isset($match[1])) { - return '%%'; - } - - $key = $match[1]; - if (isset($resolving[$key])) { - throw new ParameterCircularReferenceException(array_keys($resolving)); - } - - $resolved = $this->get($key); - - if (!\is_string($resolved) && !is_numeric($resolved)) { - throw new RuntimeException(sprintf('A string value must be composed of strings and/or numbers, but found parameter "%s" of type %s inside string value "%s".', $key, \gettype($resolved), $value)); - } - - $resolved = (string) $resolved; - $resolving[$key] = true; - - return $this->isResolved() ? $resolved : $this->resolveString($resolved, $resolving); - }, $value); - } - - public function isResolved() - { - return $this->resolved; - } - - /** - * {@inheritdoc} - */ - public function escapeValue($value) - { - if (\is_string($value)) { - return str_replace('%', '%%', $value); - } - - if (\is_array($value)) { - $result = []; - foreach ($value as $k => $v) { - $result[$k] = $this->escapeValue($v); - } - - return $result; - } - - return $value; - } - - /** - * {@inheritdoc} - */ - public function unescapeValue($value) - { - if (\is_string($value)) { - return str_replace('%%', '%', $value); - } - - if (\is_array($value)) { - $result = []; - foreach ($value as $k => $v) { - $result[$k] = $this->unescapeValue($v); - } - - return $result; - } - - return $value; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ParameterBag/ParameterBagInterface.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/ParameterBag/ParameterBagInterface.php deleted file mode 100644 index 6a4e0fa..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ParameterBag/ParameterBagInterface.php +++ /dev/null @@ -1,115 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection\ParameterBag; - -use Symfony\Component\DependencyInjection\Exception\LogicException; -use Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException; - -/** - * ParameterBagInterface is the interface implemented by objects that manage service container parameters. - * - * @author Fabien Potencier - */ -interface ParameterBagInterface -{ - /** - * Clears all parameters. - * - * @throws LogicException if the ParameterBagInterface can not be cleared - */ - public function clear(); - - /** - * Adds parameters to the service container parameters. - * - * @param array $parameters An array of parameters - * - * @throws LogicException if the parameter can not be added - */ - public function add(array $parameters); - - /** - * Gets the service container parameters. - * - * @return array An array of parameters - */ - public function all(); - - /** - * Gets a service container parameter. - * - * @param string $name The parameter name - * - * @return mixed The parameter value - * - * @throws ParameterNotFoundException if the parameter is not defined - */ - public function get($name); - - /** - * Removes a parameter. - * - * @param string $name The parameter name - */ - public function remove($name); - - /** - * Sets a service container parameter. - * - * @param string $name The parameter name - * @param mixed $value The parameter value - * - * @throws LogicException if the parameter can not be set - */ - public function set($name, $value); - - /** - * Returns true if a parameter name is defined. - * - * @param string $name The parameter name - * - * @return bool true if the parameter name is defined, false otherwise - */ - public function has($name); - - /** - * Replaces parameter placeholders (%name%) by their values for all parameters. - */ - public function resolve(); - - /** - * Replaces parameter placeholders (%name%) by their values. - * - * @param mixed $value A value - * - * @throws ParameterNotFoundException if a placeholder references a parameter that does not exist - */ - public function resolveValue($value); - - /** - * Escape parameter placeholders %. - * - * @param mixed $value - * - * @return mixed - */ - public function escapeValue($value); - - /** - * Unescape parameter placeholders %. - * - * @param mixed $value - * - * @return mixed - */ - public function unescapeValue($value); -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/README.md b/srcs/phpmyadmin/vendor/symfony/dependency-injection/README.md deleted file mode 100644 index 932647f..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/README.md +++ /dev/null @@ -1,14 +0,0 @@ -DependencyInjection Component -============================= - -The DependencyInjection component allows you to standardize and centralize the -way objects are constructed in your application. - -Resources ---------- - - * [Documentation](https://symfony.com/doc/current/components/dependency_injection/index.html) - * [Contributing](https://symfony.com/doc/current/contributing/index.html) - * [Report issues](https://github.com/symfony/symfony/issues) and - [send Pull Requests](https://github.com/symfony/symfony/pulls) - in the [main Symfony repository](https://github.com/symfony/symfony) diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Reference.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Reference.php deleted file mode 100644 index c13cf6f..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Reference.php +++ /dev/null @@ -1,47 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -/** - * Reference represents a service reference. - * - * @author Fabien Potencier - */ -class Reference -{ - private $id; - private $invalidBehavior; - - public function __construct(string $id, int $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE) - { - $this->id = $id; - $this->invalidBehavior = $invalidBehavior; - } - - /** - * @return string The service identifier - */ - public function __toString() - { - return $this->id; - } - - /** - * Returns the behavior to be used when the service does not exist. - * - * @return int - */ - public function getInvalidBehavior() - { - return $this->invalidBehavior; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ResettableContainerInterface.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/ResettableContainerInterface.php deleted file mode 100644 index b9714d2..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ResettableContainerInterface.php +++ /dev/null @@ -1,35 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -use Symfony\Contracts\Service\ResetInterface; - -/** - * ResettableContainerInterface defines additional resetting functionality - * for containers, allowing to release shared services when the container is - * not needed anymore. - * - * @author Christophe Coevoet - * - * @deprecated since Symfony 4.2, use "Symfony\Contracts\Service\ResetInterface" instead. - */ -interface ResettableContainerInterface extends ContainerInterface, ResetInterface -{ - /** - * Resets shared services from the container. - * - * The container is not intended to be used again after being reset in a normal workflow. This method is - * meant as a way to release references for ref-counting. - * A subsequent call to ContainerInterface::get will recreate a new instance of the shared service. - */ - public function reset(); -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ReverseContainer.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/ReverseContainer.php deleted file mode 100644 index 076e624..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ReverseContainer.php +++ /dev/null @@ -1,85 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -use Psr\Container\ContainerInterface; -use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; - -/** - * Turns public and "container.reversible" services back to their ids. - * - * @author Nicolas Grekas - */ -final class ReverseContainer -{ - private $serviceContainer; - private $reversibleLocator; - private $tagName; - private $getServiceId; - - public function __construct(Container $serviceContainer, ContainerInterface $reversibleLocator, string $tagName = 'container.reversible') - { - $this->serviceContainer = $serviceContainer; - $this->reversibleLocator = $reversibleLocator; - $this->tagName = $tagName; - $this->getServiceId = \Closure::bind(function ($service): ?string { - return array_search($service, $this->services, true) ?: array_search($service, $this->privates, true) ?: null; - }, $serviceContainer, Container::class); - } - - /** - * Returns the id of the passed object when it exists as a service. - * - * To be reversible, services need to be either public or be tagged with "container.reversible". - * - * @param object $service - */ - public function getId($service): ?string - { - if ($this->serviceContainer === $service) { - return 'service_container'; - } - - if (null === $id = ($this->getServiceId)($service)) { - return null; - } - - if ($this->serviceContainer->has($id) || $this->reversibleLocator->has($id)) { - return $id; - } - - return null; - } - - /** - * @return object - * - * @throws ServiceNotFoundException When the service is not reversible - */ - public function getService(string $id) - { - if ($this->serviceContainer->has($id)) { - return $this->serviceContainer->get($id); - } - - if ($this->reversibleLocator->has($id)) { - return $this->reversibleLocator->get($id); - } - - if (isset($this->serviceContainer->getRemovedIds()[$id])) { - throw new ServiceNotFoundException($id, null, null, [], sprintf('The "%s" service is private and cannot be accessed by reference. You should either make it public, or tag it as "%s".', $id, $this->tagName)); - } - - // will throw a ServiceNotFoundException - $this->serviceContainer->get($id); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ServiceLocator.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/ServiceLocator.php deleted file mode 100644 index e379f3b..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ServiceLocator.php +++ /dev/null @@ -1,145 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -use Psr\Container\ContainerExceptionInterface; -use Psr\Container\NotFoundExceptionInterface; -use Symfony\Component\DependencyInjection\Exception\RuntimeException; -use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException; -use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; -use Symfony\Contracts\Service\ServiceLocatorTrait; -use Symfony\Contracts\Service\ServiceProviderInterface; -use Symfony\Contracts\Service\ServiceSubscriberInterface; - -/** - * @author Robin Chalas - * @author Nicolas Grekas - */ -class ServiceLocator implements ServiceProviderInterface -{ - use ServiceLocatorTrait { - get as private doGet; - } - - private $externalId; - private $container; - - public function get($id) - { - if (!$this->externalId) { - return $this->doGet($id); - } - - try { - return $this->doGet($id); - } catch (RuntimeException $e) { - $what = sprintf('service "%s" required by "%s"', $id, $this->externalId); - $message = preg_replace('/service "\.service_locator\.[^"]++"/', $what, $e->getMessage()); - - if ($e->getMessage() === $message) { - $message = sprintf('Cannot resolve %s: %s', $what, $message); - } - - $r = new \ReflectionProperty($e, 'message'); - $r->setAccessible(true); - $r->setValue($e, $message); - - throw $e; - } - } - - public function __invoke($id) - { - return isset($this->factories[$id]) ? $this->get($id) : null; - } - - /** - * @internal - * - * @return static - */ - public function withContext(string $externalId, Container $container) - { - $locator = clone $this; - $locator->externalId = $externalId; - $locator->container = $container; - - return $locator; - } - - private function createNotFoundException(string $id): NotFoundExceptionInterface - { - if ($this->loading) { - $msg = sprintf('The service "%s" has a dependency on a non-existent service "%s". This locator %s', end($this->loading), $id, $this->formatAlternatives()); - - return new ServiceNotFoundException($id, end($this->loading) ?: null, null, [], $msg); - } - - $class = debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT | DEBUG_BACKTRACE_IGNORE_ARGS, 4); - $class = isset($class[3]['object']) ? \get_class($class[3]['object']) : null; - $externalId = $this->externalId ?: $class; - - $msg = []; - $msg[] = sprintf('Service "%s" not found:', $id); - - if (!$this->container) { - $class = null; - } elseif ($this->container->has($id) || isset($this->container->getRemovedIds()[$id])) { - $msg[] = 'even though it exists in the app\'s container,'; - } else { - try { - $this->container->get($id); - $class = null; - } catch (ServiceNotFoundException $e) { - if ($e->getAlternatives()) { - $msg[] = sprintf('did you mean %s? Anyway,', $this->formatAlternatives($e->getAlternatives(), 'or')); - } else { - $class = null; - } - } - } - if ($externalId) { - $msg[] = sprintf('the container inside "%s" is a smaller service locator that %s', $externalId, $this->formatAlternatives()); - } else { - $msg[] = sprintf('the current service locator %s', $this->formatAlternatives()); - } - - if (!$class) { - // no-op - } elseif (is_subclass_of($class, ServiceSubscriberInterface::class)) { - $msg[] = sprintf('Unless you need extra laziness, try using dependency injection instead. Otherwise, you need to declare it using "%s::getSubscribedServices()".', preg_replace('/([^\\\\]++\\\\)++/', '', $class)); - } else { - $msg[] = 'Try using dependency injection instead.'; - } - - return new ServiceNotFoundException($id, end($this->loading) ?: null, null, [], implode(' ', $msg)); - } - - private function createCircularReferenceException(string $id, array $path): ContainerExceptionInterface - { - return new ServiceCircularReferenceException($id, $path); - } - - private function formatAlternatives(array $alternatives = null, string $separator = 'and'): string - { - $format = '"%s"%s'; - if (null === $alternatives) { - if (!$alternatives = array_keys($this->factories)) { - return 'is empty...'; - } - $format = sprintf('only knows about the %s service%s.', $format, 1 < \count($alternatives) ? 's' : ''); - } - $last = array_pop($alternatives); - - return sprintf($format, $alternatives ? implode('", "', $alternatives) : $last, $alternatives ? sprintf(' %s "%s"', $separator, $last) : ''); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ServiceSubscriberInterface.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/ServiceSubscriberInterface.php deleted file mode 100644 index a3b6ba7..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/ServiceSubscriberInterface.php +++ /dev/null @@ -1,23 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -use Symfony\Contracts\Service\ServiceSubscriberInterface as BaseServiceSubscriberInterface; - -/** - * {@inheritdoc} - * - * @deprecated since Symfony 4.2, use Symfony\Contracts\Service\ServiceSubscriberInterface instead. - */ -interface ServiceSubscriberInterface extends BaseServiceSubscriberInterface -{ -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/TaggedContainerInterface.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/TaggedContainerInterface.php deleted file mode 100644 index 90b297f..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/TaggedContainerInterface.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -/** - * TaggedContainerInterface is the interface implemented when a container knows how to deals with tags. - * - * @author Fabien Potencier - */ -interface TaggedContainerInterface extends ContainerInterface -{ - /** - * Returns service ids for a given tag. - * - * @param string $name The tag name - * - * @return array An array of tags - */ - public function findTaggedServiceIds($name); -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/TypedReference.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/TypedReference.php deleted file mode 100644 index 56a8788..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/TypedReference.php +++ /dev/null @@ -1,74 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -/** - * Represents a PHP type-hinted service reference. - * - * @author Nicolas Grekas - */ -class TypedReference extends Reference -{ - private $type; - private $name; - private $requiringClass; - - /** - * @param string $id The service identifier - * @param string $type The PHP type of the identified service - * @param int $invalidBehavior The behavior when the service does not exist - * @param string $name The name of the argument targeting the service - */ - public function __construct(string $id, string $type, $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE, $name = null) - { - if (\is_string($invalidBehavior ?? '') || \is_int($name)) { - @trigger_error(sprintf('The $requiringClass argument of "%s()" is deprecated since Symfony 4.1.', __METHOD__), E_USER_DEPRECATED); - - $this->requiringClass = $invalidBehavior; - $invalidBehavior = 3 < \func_num_args() ? func_get_arg(3) : ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - } else { - $this->name = $type === $id ? $name : null; - } - parent::__construct($id, $invalidBehavior); - $this->type = $type; - } - - public function getType() - { - return $this->type; - } - - public function getName(): ?string - { - return $this->name; - } - - /** - * @deprecated since Symfony 4.1 - */ - public function getRequiringClass() - { - @trigger_error(sprintf('The "%s()" method is deprecated since Symfony 4.1.', __METHOD__), E_USER_DEPRECATED); - - return $this->requiringClass ?? ''; - } - - /** - * @deprecated since Symfony 4.1 - */ - public function canBeAutoregistered() - { - @trigger_error(sprintf('The "%s()" method is deprecated since Symfony 4.1.', __METHOD__), E_USER_DEPRECATED); - - return $this->requiringClass && (false !== $i = strpos($this->type, '\\')) && 0 === strncasecmp($this->type, $this->requiringClass, 1 + $i); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Variable.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Variable.php deleted file mode 100644 index 21d33eb..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Variable.php +++ /dev/null @@ -1,43 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\DependencyInjection; - -/** - * Represents a variable. - * - * $var = new Variable('a'); - * - * will be dumped as - * - * $a - * - * by the PHP dumper. - * - * @author Johannes M. Schmitt - */ -class Variable -{ - private $name; - - public function __construct(string $name) - { - $this->name = $name; - } - - /** - * @return string - */ - public function __toString() - { - return $this->name; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/composer.json b/srcs/phpmyadmin/vendor/symfony/dependency-injection/composer.json deleted file mode 100644 index df1727b..0000000 --- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/composer.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "name": "symfony/dependency-injection", - "type": "library", - "description": "Symfony DependencyInjection Component", - "keywords": [], - "homepage": "https://symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "require": { - "php": "^7.1.3", - "psr/container": "^1.0", - "symfony/service-contracts": "^1.1.6|^2" - }, - "require-dev": { - "symfony/yaml": "^3.4|^4.0|^5.0", - "symfony/config": "^4.3", - "symfony/expression-language": "^3.4|^4.0|^5.0" - }, - "suggest": { - "symfony/yaml": "", - "symfony/config": "", - "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", - "symfony/expression-language": "For using expressions in service container configuration", - "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them" - }, - "conflict": { - "symfony/config": "<4.3|>=5.0", - "symfony/finder": "<3.4", - "symfony/proxy-manager-bridge": "<3.4", - "symfony/yaml": "<3.4" - }, - "provide": { - "psr/container-implementation": "1.0", - "symfony/service-implementation": "1.0" - }, - "autoload": { - "psr-4": { "Symfony\\Component\\DependencyInjection\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/CHANGELOG.md b/srcs/phpmyadmin/vendor/symfony/expression-language/CHANGELOG.md deleted file mode 100644 index 6c50b2e..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/CHANGELOG.md +++ /dev/null @@ -1,20 +0,0 @@ -CHANGELOG -========= - -4.0.0 ------ - - * the first argument of the `ExpressionLanguage` constructor must be an instance - of `CacheItemPoolInterface` - * removed the `ArrayParserCache` and `ParserCacheAdapter` classes - * removed the `ParserCacheInterface` - -2.6.0 ------ - - * Added ExpressionFunction and ExpressionFunctionProviderInterface - -2.4.0 ------ - - * added the component diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/Compiler.php b/srcs/phpmyadmin/vendor/symfony/expression-language/Compiler.php deleted file mode 100644 index 604f04c..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/Compiler.php +++ /dev/null @@ -1,148 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ExpressionLanguage; - -use Symfony\Contracts\Service\ResetInterface; - -/** - * Compiles a node to PHP code. - * - * @author Fabien Potencier - */ -class Compiler implements ResetInterface -{ - private $source; - private $functions; - - public function __construct(array $functions) - { - $this->functions = $functions; - } - - public function getFunction($name) - { - return $this->functions[$name]; - } - - /** - * Gets the current PHP code after compilation. - * - * @return string The PHP code - */ - public function getSource() - { - return $this->source; - } - - public function reset() - { - $this->source = ''; - - return $this; - } - - /** - * Compiles a node. - * - * @return $this - */ - public function compile(Node\Node $node) - { - $node->compile($this); - - return $this; - } - - public function subcompile(Node\Node $node) - { - $current = $this->source; - $this->source = ''; - - $node->compile($this); - - $source = $this->source; - $this->source = $current; - - return $source; - } - - /** - * Adds a raw string to the compiled code. - * - * @param string $string The string - * - * @return $this - */ - public function raw($string) - { - $this->source .= $string; - - return $this; - } - - /** - * Adds a quoted string to the compiled code. - * - * @param string $value The string - * - * @return $this - */ - public function string($value) - { - $this->source .= sprintf('"%s"', addcslashes($value, "\0\t\"\$\\")); - - return $this; - } - - /** - * Returns a PHP representation of a given value. - * - * @param mixed $value The value to convert - * - * @return $this - */ - public function repr($value) - { - if (\is_int($value) || \is_float($value)) { - if (false !== $locale = setlocale(LC_NUMERIC, 0)) { - setlocale(LC_NUMERIC, 'C'); - } - - $this->raw($value); - - if (false !== $locale) { - setlocale(LC_NUMERIC, $locale); - } - } elseif (null === $value) { - $this->raw('null'); - } elseif (\is_bool($value)) { - $this->raw($value ? 'true' : 'false'); - } elseif (\is_array($value)) { - $this->raw('['); - $first = true; - foreach ($value as $key => $value) { - if (!$first) { - $this->raw(', '); - } - $first = false; - $this->repr($key); - $this->raw(' => '); - $this->repr($value); - } - $this->raw(']'); - } else { - $this->string($value); - } - - return $this; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/Expression.php b/srcs/phpmyadmin/vendor/symfony/expression-language/Expression.php deleted file mode 100644 index 59d0e2a..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/Expression.php +++ /dev/null @@ -1,37 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ExpressionLanguage; - -/** - * Represents an expression. - * - * @author Fabien Potencier - */ -class Expression -{ - protected $expression; - - public function __construct(string $expression) - { - $this->expression = $expression; - } - - /** - * Gets the expression. - * - * @return string The expression - */ - public function __toString() - { - return $this->expression; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/ExpressionFunction.php b/srcs/phpmyadmin/vendor/symfony/expression-language/ExpressionFunction.php deleted file mode 100644 index 2bc91e8..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/ExpressionFunction.php +++ /dev/null @@ -1,98 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ExpressionLanguage; - -/** - * Represents a function that can be used in an expression. - * - * A function is defined by two PHP callables. The callables are used - * by the language to compile and/or evaluate the function. - * - * The "compiler" function is used at compilation time and must return a - * PHP representation of the function call (it receives the function - * arguments as arguments). - * - * The "evaluator" function is used for expression evaluation and must return - * the value of the function call based on the values defined for the - * expression (it receives the values as a first argument and the function - * arguments as remaining arguments). - * - * @author Fabien Potencier - */ -class ExpressionFunction -{ - private $name; - private $compiler; - private $evaluator; - - /** - * @param string $name The function name - * @param callable $compiler A callable able to compile the function - * @param callable $evaluator A callable able to evaluate the function - */ - public function __construct(string $name, callable $compiler, callable $evaluator) - { - $this->name = $name; - $this->compiler = $compiler; - $this->evaluator = $evaluator; - } - - public function getName() - { - return $this->name; - } - - public function getCompiler() - { - return $this->compiler; - } - - public function getEvaluator() - { - return $this->evaluator; - } - - /** - * Creates an ExpressionFunction from a PHP function name. - * - * @param string $phpFunctionName The PHP function name - * @param string|null $expressionFunctionName The expression function name (default: same than the PHP function name) - * - * @return self - * - * @throws \InvalidArgumentException if given PHP function name does not exist - * @throws \InvalidArgumentException if given PHP function name is in namespace - * and expression function name is not defined - */ - public static function fromPhp($phpFunctionName, $expressionFunctionName = null) - { - $phpFunctionName = ltrim($phpFunctionName, '\\'); - if (!\function_exists($phpFunctionName)) { - throw new \InvalidArgumentException(sprintf('PHP function "%s" does not exist.', $phpFunctionName)); - } - - $parts = explode('\\', $phpFunctionName); - if (!$expressionFunctionName && \count($parts) > 1) { - throw new \InvalidArgumentException(sprintf('An expression function name must be defined when PHP function "%s" is namespaced.', $phpFunctionName)); - } - - $compiler = function () use ($phpFunctionName) { - return sprintf('\%s(%s)', $phpFunctionName, implode(', ', \func_get_args())); - }; - - $evaluator = function () use ($phpFunctionName) { - return $phpFunctionName(...\array_slice(\func_get_args(), 1)); - }; - - return new self($expressionFunctionName ?: end($parts), $compiler, $evaluator); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/ExpressionFunctionProviderInterface.php b/srcs/phpmyadmin/vendor/symfony/expression-language/ExpressionFunctionProviderInterface.php deleted file mode 100644 index 414b013..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/ExpressionFunctionProviderInterface.php +++ /dev/null @@ -1,23 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ExpressionLanguage; - -/** - * @author Fabien Potencier - */ -interface ExpressionFunctionProviderInterface -{ - /** - * @return ExpressionFunction[] An array of Function instances - */ - public function getFunctions(); -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/ExpressionLanguage.php b/srcs/phpmyadmin/vendor/symfony/expression-language/ExpressionLanguage.php deleted file mode 100644 index a257ec7..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/ExpressionLanguage.php +++ /dev/null @@ -1,166 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ExpressionLanguage; - -use Psr\Cache\CacheItemPoolInterface; -use Symfony\Component\Cache\Adapter\ArrayAdapter; - -/** - * Allows to compile and evaluate expressions written in your own DSL. - * - * @author Fabien Potencier - */ -class ExpressionLanguage -{ - private $cache; - private $lexer; - private $parser; - private $compiler; - - protected $functions = []; - - /** - * @param ExpressionFunctionProviderInterface[] $providers - */ - public function __construct(CacheItemPoolInterface $cache = null, array $providers = []) - { - $this->cache = $cache ?: new ArrayAdapter(); - $this->registerFunctions(); - foreach ($providers as $provider) { - $this->registerProvider($provider); - } - } - - /** - * Compiles an expression source code. - * - * @param Expression|string $expression The expression to compile - * @param array $names An array of valid names - * - * @return string The compiled PHP source code - */ - public function compile($expression, $names = []) - { - return $this->getCompiler()->compile($this->parse($expression, $names)->getNodes())->getSource(); - } - - /** - * Evaluate an expression. - * - * @param Expression|string $expression The expression to compile - * @param array $values An array of values - * - * @return mixed The result of the evaluation of the expression - */ - public function evaluate($expression, $values = []) - { - return $this->parse($expression, array_keys($values))->getNodes()->evaluate($this->functions, $values); - } - - /** - * Parses an expression. - * - * @param Expression|string $expression The expression to parse - * @param array $names An array of valid names - * - * @return ParsedExpression A ParsedExpression instance - */ - public function parse($expression, $names) - { - if ($expression instanceof ParsedExpression) { - return $expression; - } - - asort($names); - $cacheKeyItems = []; - - foreach ($names as $nameKey => $name) { - $cacheKeyItems[] = \is_int($nameKey) ? $name : $nameKey.':'.$name; - } - - $cacheItem = $this->cache->getItem(rawurlencode($expression.'//'.implode('|', $cacheKeyItems))); - - if (null === $parsedExpression = $cacheItem->get()) { - $nodes = $this->getParser()->parse($this->getLexer()->tokenize((string) $expression), $names); - $parsedExpression = new ParsedExpression((string) $expression, $nodes); - - $cacheItem->set($parsedExpression); - $this->cache->save($cacheItem); - } - - return $parsedExpression; - } - - /** - * Registers a function. - * - * @param string $name The function name - * @param callable $compiler A callable able to compile the function - * @param callable $evaluator A callable able to evaluate the function - * - * @throws \LogicException when registering a function after calling evaluate(), compile() or parse() - * - * @see ExpressionFunction - */ - public function register($name, callable $compiler, callable $evaluator) - { - if (null !== $this->parser) { - throw new \LogicException('Registering functions after calling evaluate(), compile() or parse() is not supported.'); - } - - $this->functions[$name] = ['compiler' => $compiler, 'evaluator' => $evaluator]; - } - - public function addFunction(ExpressionFunction $function) - { - $this->register($function->getName(), $function->getCompiler(), $function->getEvaluator()); - } - - public function registerProvider(ExpressionFunctionProviderInterface $provider) - { - foreach ($provider->getFunctions() as $function) { - $this->addFunction($function); - } - } - - protected function registerFunctions() - { - $this->addFunction(ExpressionFunction::fromPhp('constant')); - } - - private function getLexer(): Lexer - { - if (null === $this->lexer) { - $this->lexer = new Lexer(); - } - - return $this->lexer; - } - - private function getParser(): Parser - { - if (null === $this->parser) { - $this->parser = new Parser($this->functions); - } - - return $this->parser; - } - - private function getCompiler(): Compiler - { - if (null === $this->compiler) { - $this->compiler = new Compiler($this->functions); - } - - return $this->compiler->reset(); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/LICENSE b/srcs/phpmyadmin/vendor/symfony/expression-language/LICENSE deleted file mode 100644 index a677f43..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2004-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. diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/Lexer.php b/srcs/phpmyadmin/vendor/symfony/expression-language/Lexer.php deleted file mode 100644 index 95b9070..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/Lexer.php +++ /dev/null @@ -1,103 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ExpressionLanguage; - -/** - * Lexes an expression. - * - * @author Fabien Potencier - */ -class Lexer -{ - /** - * Tokenizes an expression. - * - * @param string $expression The expression to tokenize - * - * @return TokenStream A token stream instance - * - * @throws SyntaxError - */ - public function tokenize($expression) - { - $expression = str_replace(["\r", "\n", "\t", "\v", "\f"], ' ', $expression); - $cursor = 0; - $tokens = []; - $brackets = []; - $end = \strlen($expression); - - while ($cursor < $end) { - if (' ' == $expression[$cursor]) { - ++$cursor; - - continue; - } - - if (preg_match('/[0-9]+(?:\.[0-9]+)?([Ee][\+\-][0-9]+)?/A', $expression, $match, 0, $cursor)) { - // numbers - $number = (float) $match[0]; // floats - if (preg_match('/^[0-9]+$/', $match[0]) && $number <= PHP_INT_MAX) { - $number = (int) $match[0]; // integers lower than the maximum - } - $tokens[] = new Token(Token::NUMBER_TYPE, $number, $cursor + 1); - $cursor += \strlen($match[0]); - } elseif (false !== strpos('([{', $expression[$cursor])) { - // opening bracket - $brackets[] = [$expression[$cursor], $cursor]; - - $tokens[] = new Token(Token::PUNCTUATION_TYPE, $expression[$cursor], $cursor + 1); - ++$cursor; - } elseif (false !== strpos(')]}', $expression[$cursor])) { - // closing bracket - if (empty($brackets)) { - throw new SyntaxError(sprintf('Unexpected "%s"', $expression[$cursor]), $cursor, $expression); - } - - list($expect, $cur) = array_pop($brackets); - if ($expression[$cursor] != strtr($expect, '([{', ')]}')) { - throw new SyntaxError(sprintf('Unclosed "%s"', $expect), $cur, $expression); - } - - $tokens[] = new Token(Token::PUNCTUATION_TYPE, $expression[$cursor], $cursor + 1); - ++$cursor; - } elseif (preg_match('/"([^"\\\\]*(?:\\\\.[^"\\\\]*)*)"|\'([^\'\\\\]*(?:\\\\.[^\'\\\\]*)*)\'/As', $expression, $match, 0, $cursor)) { - // strings - $tokens[] = new Token(Token::STRING_TYPE, stripcslashes(substr($match[0], 1, -1)), $cursor + 1); - $cursor += \strlen($match[0]); - } elseif (preg_match('/not in(?=[\s(])|\!\=\=|not(?=[\s(])|and(?=[\s(])|\=\=\=|\>\=|or(?=[\s(])|\<\=|\*\*|\.\.|in(?=[\s(])|&&|\|\||matches|\=\=|\!\=|\*|~|%|\/|\>|\||\!|\^|&|\+|\<|\-/A', $expression, $match, 0, $cursor)) { - // operators - $tokens[] = new Token(Token::OPERATOR_TYPE, $match[0], $cursor + 1); - $cursor += \strlen($match[0]); - } elseif (false !== strpos('.,?:', $expression[$cursor])) { - // punctuation - $tokens[] = new Token(Token::PUNCTUATION_TYPE, $expression[$cursor], $cursor + 1); - ++$cursor; - } elseif (preg_match('/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/A', $expression, $match, 0, $cursor)) { - // names - $tokens[] = new Token(Token::NAME_TYPE, $match[0], $cursor + 1); - $cursor += \strlen($match[0]); - } else { - // unlexable - throw new SyntaxError(sprintf('Unexpected character "%s"', $expression[$cursor]), $cursor, $expression); - } - } - - $tokens[] = new Token(Token::EOF_TYPE, null, $cursor + 1); - - if (!empty($brackets)) { - list($expect, $cur) = array_pop($brackets); - throw new SyntaxError(sprintf('Unclosed "%s"', $expect), $cur, $expression); - } - - return new TokenStream($tokens, $expression); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/ArgumentsNode.php b/srcs/phpmyadmin/vendor/symfony/expression-language/Node/ArgumentsNode.php deleted file mode 100644 index e9849a4..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/ArgumentsNode.php +++ /dev/null @@ -1,40 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ExpressionLanguage\Node; - -use Symfony\Component\ExpressionLanguage\Compiler; - -/** - * @author Fabien Potencier - * - * @internal - */ -class ArgumentsNode extends ArrayNode -{ - public function compile(Compiler $compiler) - { - $this->compileArguments($compiler, false); - } - - public function toArray() - { - $array = []; - - foreach ($this->getKeyValuePairs() as $pair) { - $array[] = $pair['value']; - $array[] = ', '; - } - array_pop($array); - - return $array; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/ArrayNode.php b/srcs/phpmyadmin/vendor/symfony/expression-language/Node/ArrayNode.php deleted file mode 100644 index 921319a..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/ArrayNode.php +++ /dev/null @@ -1,118 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ExpressionLanguage\Node; - -use Symfony\Component\ExpressionLanguage\Compiler; - -/** - * @author Fabien Potencier - * - * @internal - */ -class ArrayNode extends Node -{ - protected $index; - - public function __construct() - { - $this->index = -1; - } - - public function addElement(Node $value, Node $key = null) - { - if (null === $key) { - $key = new ConstantNode(++$this->index); - } - - array_push($this->nodes, $key, $value); - } - - /** - * Compiles the node to PHP. - */ - public function compile(Compiler $compiler) - { - $compiler->raw('['); - $this->compileArguments($compiler); - $compiler->raw(']'); - } - - public function evaluate($functions, $values) - { - $result = []; - foreach ($this->getKeyValuePairs() as $pair) { - $result[$pair['key']->evaluate($functions, $values)] = $pair['value']->evaluate($functions, $values); - } - - return $result; - } - - public function toArray() - { - $value = []; - foreach ($this->getKeyValuePairs() as $pair) { - $value[$pair['key']->attributes['value']] = $pair['value']; - } - - $array = []; - - if ($this->isHash($value)) { - foreach ($value as $k => $v) { - $array[] = ', '; - $array[] = new ConstantNode($k); - $array[] = ': '; - $array[] = $v; - } - $array[0] = '{'; - $array[] = '}'; - } else { - foreach ($value as $v) { - $array[] = ', '; - $array[] = $v; - } - $array[0] = '['; - $array[] = ']'; - } - - return $array; - } - - protected function getKeyValuePairs() - { - $pairs = []; - foreach (array_chunk($this->nodes, 2) as $pair) { - $pairs[] = ['key' => $pair[0], 'value' => $pair[1]]; - } - - return $pairs; - } - - protected function compileArguments(Compiler $compiler, $withKeys = true) - { - $first = true; - foreach ($this->getKeyValuePairs() as $pair) { - if (!$first) { - $compiler->raw(', '); - } - $first = false; - - if ($withKeys) { - $compiler - ->compile($pair['key']) - ->raw(' => ') - ; - } - - $compiler->compile($pair['value']); - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/BinaryNode.php b/srcs/phpmyadmin/vendor/symfony/expression-language/Node/BinaryNode.php deleted file mode 100644 index 11245f9..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/BinaryNode.php +++ /dev/null @@ -1,170 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ExpressionLanguage\Node; - -use Symfony\Component\ExpressionLanguage\Compiler; - -/** - * @author Fabien Potencier - * - * @internal - */ -class BinaryNode extends Node -{ - private static $operators = [ - '~' => '.', - 'and' => '&&', - 'or' => '||', - ]; - - private static $functions = [ - '**' => 'pow', - '..' => 'range', - 'in' => 'in_array', - 'not in' => '!in_array', - ]; - - public function __construct(string $operator, Node $left, Node $right) - { - parent::__construct( - ['left' => $left, 'right' => $right], - ['operator' => $operator] - ); - } - - public function compile(Compiler $compiler) - { - $operator = $this->attributes['operator']; - - if ('matches' == $operator) { - $compiler - ->raw('preg_match(') - ->compile($this->nodes['right']) - ->raw(', ') - ->compile($this->nodes['left']) - ->raw(')') - ; - - return; - } - - if (isset(self::$functions[$operator])) { - $compiler - ->raw(sprintf('%s(', self::$functions[$operator])) - ->compile($this->nodes['left']) - ->raw(', ') - ->compile($this->nodes['right']) - ->raw(')') - ; - - return; - } - - if (isset(self::$operators[$operator])) { - $operator = self::$operators[$operator]; - } - - $compiler - ->raw('(') - ->compile($this->nodes['left']) - ->raw(' ') - ->raw($operator) - ->raw(' ') - ->compile($this->nodes['right']) - ->raw(')') - ; - } - - public function evaluate($functions, $values) - { - $operator = $this->attributes['operator']; - $left = $this->nodes['left']->evaluate($functions, $values); - - if (isset(self::$functions[$operator])) { - $right = $this->nodes['right']->evaluate($functions, $values); - - if ('not in' === $operator) { - return !\in_array($left, $right); - } - $f = self::$functions[$operator]; - - return $f($left, $right); - } - - switch ($operator) { - case 'or': - case '||': - return $left || $this->nodes['right']->evaluate($functions, $values); - case 'and': - case '&&': - return $left && $this->nodes['right']->evaluate($functions, $values); - } - - $right = $this->nodes['right']->evaluate($functions, $values); - - switch ($operator) { - case '|': - return $left | $right; - case '^': - return $left ^ $right; - case '&': - return $left & $right; - case '==': - return $left == $right; - case '===': - return $left === $right; - case '!=': - return $left != $right; - case '!==': - return $left !== $right; - case '<': - return $left < $right; - case '>': - return $left > $right; - case '>=': - return $left >= $right; - case '<=': - return $left <= $right; - case 'not in': - return !\in_array($left, $right); - case 'in': - return \in_array($left, $right); - case '+': - return $left + $right; - case '-': - return $left - $right; - case '~': - return $left.$right; - case '*': - return $left * $right; - case '/': - if (0 == $right) { - throw new \DivisionByZeroError('Division by zero'); - } - - return $left / $right; - case '%': - if (0 == $right) { - throw new \DivisionByZeroError('Modulo by zero'); - } - - return $left % $right; - case 'matches': - return preg_match($right, $left); - } - } - - public function toArray() - { - return ['(', $this->nodes['left'], ' '.$this->attributes['operator'].' ', $this->nodes['right'], ')']; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/ConditionalNode.php b/srcs/phpmyadmin/vendor/symfony/expression-language/Node/ConditionalNode.php deleted file mode 100644 index ca1b484..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/ConditionalNode.php +++ /dev/null @@ -1,56 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ExpressionLanguage\Node; - -use Symfony\Component\ExpressionLanguage\Compiler; - -/** - * @author Fabien Potencier - * - * @internal - */ -class ConditionalNode extends Node -{ - public function __construct(Node $expr1, Node $expr2, Node $expr3) - { - parent::__construct( - ['expr1' => $expr1, 'expr2' => $expr2, 'expr3' => $expr3] - ); - } - - public function compile(Compiler $compiler) - { - $compiler - ->raw('((') - ->compile($this->nodes['expr1']) - ->raw(') ? (') - ->compile($this->nodes['expr2']) - ->raw(') : (') - ->compile($this->nodes['expr3']) - ->raw('))') - ; - } - - public function evaluate($functions, $values) - { - if ($this->nodes['expr1']->evaluate($functions, $values)) { - return $this->nodes['expr2']->evaluate($functions, $values); - } - - return $this->nodes['expr3']->evaluate($functions, $values); - } - - public function toArray() - { - return ['(', $this->nodes['expr1'], ' ? ', $this->nodes['expr2'], ' : ', $this->nodes['expr3'], ')']; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/ConstantNode.php b/srcs/phpmyadmin/vendor/symfony/expression-language/Node/ConstantNode.php deleted file mode 100644 index 0353f78..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/ConstantNode.php +++ /dev/null @@ -1,81 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ExpressionLanguage\Node; - -use Symfony\Component\ExpressionLanguage\Compiler; - -/** - * @author Fabien Potencier - * - * @internal - */ -class ConstantNode extends Node -{ - private $isIdentifier; - - public function __construct($value, bool $isIdentifier = false) - { - $this->isIdentifier = $isIdentifier; - parent::__construct( - [], - ['value' => $value] - ); - } - - public function compile(Compiler $compiler) - { - $compiler->repr($this->attributes['value']); - } - - public function evaluate($functions, $values) - { - return $this->attributes['value']; - } - - public function toArray() - { - $array = []; - $value = $this->attributes['value']; - - if ($this->isIdentifier) { - $array[] = $value; - } elseif (true === $value) { - $array[] = 'true'; - } elseif (false === $value) { - $array[] = 'false'; - } elseif (null === $value) { - $array[] = 'null'; - } elseif (is_numeric($value)) { - $array[] = $value; - } elseif (!\is_array($value)) { - $array[] = $this->dumpString($value); - } elseif ($this->isHash($value)) { - foreach ($value as $k => $v) { - $array[] = ', '; - $array[] = new self($k); - $array[] = ': '; - $array[] = new self($v); - } - $array[0] = '{'; - $array[] = '}'; - } else { - foreach ($value as $v) { - $array[] = ', '; - $array[] = new self($v); - } - $array[0] = '['; - $array[] = ']'; - } - - return $array; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/FunctionNode.php b/srcs/phpmyadmin/vendor/symfony/expression-language/Node/FunctionNode.php deleted file mode 100644 index 2a46191..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/FunctionNode.php +++ /dev/null @@ -1,67 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ExpressionLanguage\Node; - -use Symfony\Component\ExpressionLanguage\Compiler; - -/** - * @author Fabien Potencier - * - * @internal - */ -class FunctionNode extends Node -{ - public function __construct(string $name, Node $arguments) - { - parent::__construct( - ['arguments' => $arguments], - ['name' => $name] - ); - } - - public function compile(Compiler $compiler) - { - $arguments = []; - foreach ($this->nodes['arguments']->nodes as $node) { - $arguments[] = $compiler->subcompile($node); - } - - $function = $compiler->getFunction($this->attributes['name']); - - $compiler->raw($function['compiler'](...$arguments)); - } - - public function evaluate($functions, $values) - { - $arguments = [$values]; - foreach ($this->nodes['arguments']->nodes as $node) { - $arguments[] = $node->evaluate($functions, $values); - } - - return $functions[$this->attributes['name']]['evaluator'](...$arguments); - } - - public function toArray() - { - $array = []; - $array[] = $this->attributes['name']; - - foreach ($this->nodes['arguments']->nodes as $node) { - $array[] = ', '; - $array[] = $node; - } - $array[1] = '('; - $array[] = ')'; - - return $array; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/GetAttrNode.php b/srcs/phpmyadmin/vendor/symfony/expression-language/Node/GetAttrNode.php deleted file mode 100644 index a28b596..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/GetAttrNode.php +++ /dev/null @@ -1,114 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ExpressionLanguage\Node; - -use Symfony\Component\ExpressionLanguage\Compiler; - -/** - * @author Fabien Potencier - * - * @internal - */ -class GetAttrNode extends Node -{ - const PROPERTY_CALL = 1; - const METHOD_CALL = 2; - const ARRAY_CALL = 3; - - public function __construct(Node $node, Node $attribute, ArrayNode $arguments, int $type) - { - parent::__construct( - ['node' => $node, 'attribute' => $attribute, 'arguments' => $arguments], - ['type' => $type] - ); - } - - public function compile(Compiler $compiler) - { - switch ($this->attributes['type']) { - case self::PROPERTY_CALL: - $compiler - ->compile($this->nodes['node']) - ->raw('->') - ->raw($this->nodes['attribute']->attributes['value']) - ; - break; - - case self::METHOD_CALL: - $compiler - ->compile($this->nodes['node']) - ->raw('->') - ->raw($this->nodes['attribute']->attributes['value']) - ->raw('(') - ->compile($this->nodes['arguments']) - ->raw(')') - ; - break; - - case self::ARRAY_CALL: - $compiler - ->compile($this->nodes['node']) - ->raw('[') - ->compile($this->nodes['attribute'])->raw(']') - ; - break; - } - } - - public function evaluate($functions, $values) - { - switch ($this->attributes['type']) { - case self::PROPERTY_CALL: - $obj = $this->nodes['node']->evaluate($functions, $values); - if (!\is_object($obj)) { - throw new \RuntimeException('Unable to get a property on a non-object.'); - } - - $property = $this->nodes['attribute']->attributes['value']; - - return $obj->$property; - - case self::METHOD_CALL: - $obj = $this->nodes['node']->evaluate($functions, $values); - if (!\is_object($obj)) { - throw new \RuntimeException('Unable to get a property on a non-object.'); - } - if (!\is_callable($toCall = [$obj, $this->nodes['attribute']->attributes['value']])) { - throw new \RuntimeException(sprintf('Unable to call method "%s" of object "%s".', $this->nodes['attribute']->attributes['value'], \get_class($obj))); - } - - return $toCall(...array_values($this->nodes['arguments']->evaluate($functions, $values))); - - case self::ARRAY_CALL: - $array = $this->nodes['node']->evaluate($functions, $values); - if (!\is_array($array) && !$array instanceof \ArrayAccess) { - throw new \RuntimeException('Unable to get an item on a non-array.'); - } - - return $array[$this->nodes['attribute']->evaluate($functions, $values)]; - } - } - - public function toArray() - { - switch ($this->attributes['type']) { - case self::PROPERTY_CALL: - return [$this->nodes['node'], '.', $this->nodes['attribute']]; - - case self::METHOD_CALL: - return [$this->nodes['node'], '.', $this->nodes['attribute'], '(', $this->nodes['arguments'], ')']; - - case self::ARRAY_CALL: - return [$this->nodes['node'], '[', $this->nodes['attribute'], ']']; - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/NameNode.php b/srcs/phpmyadmin/vendor/symfony/expression-language/Node/NameNode.php deleted file mode 100644 index 1a3d994..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/NameNode.php +++ /dev/null @@ -1,45 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ExpressionLanguage\Node; - -use Symfony\Component\ExpressionLanguage\Compiler; - -/** - * @author Fabien Potencier - * - * @internal - */ -class NameNode extends Node -{ - public function __construct(string $name) - { - parent::__construct( - [], - ['name' => $name] - ); - } - - public function compile(Compiler $compiler) - { - $compiler->raw('$'.$this->attributes['name']); - } - - public function evaluate($functions, $values) - { - return $values[$this->attributes['name']]; - } - - public function toArray() - { - return [$this->attributes['name']]; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/Node.php b/srcs/phpmyadmin/vendor/symfony/expression-language/Node/Node.php deleted file mode 100644 index 61bbd0c..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/Node.php +++ /dev/null @@ -1,113 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ExpressionLanguage\Node; - -use Symfony\Component\ExpressionLanguage\Compiler; - -/** - * Represents a node in the AST. - * - * @author Fabien Potencier - */ -class Node -{ - public $nodes = []; - public $attributes = []; - - /** - * @param array $nodes An array of nodes - * @param array $attributes An array of attributes - */ - public function __construct(array $nodes = [], array $attributes = []) - { - $this->nodes = $nodes; - $this->attributes = $attributes; - } - - /** - * @return string - */ - public function __toString() - { - $attributes = []; - foreach ($this->attributes as $name => $value) { - $attributes[] = sprintf('%s: %s', $name, str_replace("\n", '', var_export($value, true))); - } - - $repr = [str_replace('Symfony\Component\ExpressionLanguage\Node\\', '', \get_class($this)).'('.implode(', ', $attributes)]; - - if (\count($this->nodes)) { - foreach ($this->nodes as $node) { - foreach (explode("\n", (string) $node) as $line) { - $repr[] = ' '.$line; - } - } - - $repr[] = ')'; - } else { - $repr[0] .= ')'; - } - - return implode("\n", $repr); - } - - public function compile(Compiler $compiler) - { - foreach ($this->nodes as $node) { - $node->compile($compiler); - } - } - - public function evaluate($functions, $values) - { - $results = []; - foreach ($this->nodes as $node) { - $results[] = $node->evaluate($functions, $values); - } - - return $results; - } - - public function toArray() - { - throw new \BadMethodCallException(sprintf('Dumping a "%s" instance is not supported yet.', \get_class($this))); - } - - public function dump() - { - $dump = ''; - - foreach ($this->toArray() as $v) { - $dump .= is_scalar($v) ? $v : $v->dump(); - } - - return $dump; - } - - protected function dumpString($value) - { - return sprintf('"%s"', addcslashes($value, "\0\t\"\\")); - } - - protected function isHash(array $value) - { - $expectedKey = 0; - - foreach ($value as $key => $val) { - if ($key !== $expectedKey++) { - return true; - } - } - - return false; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/UnaryNode.php b/srcs/phpmyadmin/vendor/symfony/expression-language/Node/UnaryNode.php deleted file mode 100644 index abf2cc6..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/Node/UnaryNode.php +++ /dev/null @@ -1,66 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ExpressionLanguage\Node; - -use Symfony\Component\ExpressionLanguage\Compiler; - -/** - * @author Fabien Potencier - * - * @internal - */ -class UnaryNode extends Node -{ - private static $operators = [ - '!' => '!', - 'not' => '!', - '+' => '+', - '-' => '-', - ]; - - public function __construct(string $operator, Node $node) - { - parent::__construct( - ['node' => $node], - ['operator' => $operator] - ); - } - - public function compile(Compiler $compiler) - { - $compiler - ->raw('(') - ->raw(self::$operators[$this->attributes['operator']]) - ->compile($this->nodes['node']) - ->raw(')') - ; - } - - public function evaluate($functions, $values) - { - $value = $this->nodes['node']->evaluate($functions, $values); - switch ($this->attributes['operator']) { - case 'not': - case '!': - return !$value; - case '-': - return -$value; - } - - return $value; - } - - public function toArray(): array - { - return ['(', $this->attributes['operator'].' ', $this->nodes['node'], ')']; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/ParsedExpression.php b/srcs/phpmyadmin/vendor/symfony/expression-language/ParsedExpression.php deleted file mode 100644 index 1416db1..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/ParsedExpression.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ExpressionLanguage; - -use Symfony\Component\ExpressionLanguage\Node\Node; - -/** - * Represents an already parsed expression. - * - * @author Fabien Potencier - */ -class ParsedExpression extends Expression -{ - private $nodes; - - public function __construct(string $expression, Node $nodes) - { - parent::__construct($expression); - - $this->nodes = $nodes; - } - - public function getNodes() - { - return $this->nodes; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/Parser.php b/srcs/phpmyadmin/vendor/symfony/expression-language/Parser.php deleted file mode 100644 index 59c4d67..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/Parser.php +++ /dev/null @@ -1,379 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ExpressionLanguage; - -/** - * Parsers a token stream. - * - * This parser implements a "Precedence climbing" algorithm. - * - * @see http://www.engr.mun.ca/~theo/Misc/exp_parsing.htm - * @see http://en.wikipedia.org/wiki/Operator-precedence_parser - * - * @author Fabien Potencier - */ -class Parser -{ - const OPERATOR_LEFT = 1; - const OPERATOR_RIGHT = 2; - - private $stream; - private $unaryOperators; - private $binaryOperators; - private $functions; - private $names; - - public function __construct(array $functions) - { - $this->functions = $functions; - - $this->unaryOperators = [ - 'not' => ['precedence' => 50], - '!' => ['precedence' => 50], - '-' => ['precedence' => 500], - '+' => ['precedence' => 500], - ]; - $this->binaryOperators = [ - 'or' => ['precedence' => 10, 'associativity' => self::OPERATOR_LEFT], - '||' => ['precedence' => 10, 'associativity' => self::OPERATOR_LEFT], - 'and' => ['precedence' => 15, 'associativity' => self::OPERATOR_LEFT], - '&&' => ['precedence' => 15, 'associativity' => self::OPERATOR_LEFT], - '|' => ['precedence' => 16, 'associativity' => self::OPERATOR_LEFT], - '^' => ['precedence' => 17, 'associativity' => self::OPERATOR_LEFT], - '&' => ['precedence' => 18, 'associativity' => self::OPERATOR_LEFT], - '==' => ['precedence' => 20, 'associativity' => self::OPERATOR_LEFT], - '===' => ['precedence' => 20, 'associativity' => self::OPERATOR_LEFT], - '!=' => ['precedence' => 20, 'associativity' => self::OPERATOR_LEFT], - '!==' => ['precedence' => 20, 'associativity' => self::OPERATOR_LEFT], - '<' => ['precedence' => 20, 'associativity' => self::OPERATOR_LEFT], - '>' => ['precedence' => 20, 'associativity' => self::OPERATOR_LEFT], - '>=' => ['precedence' => 20, 'associativity' => self::OPERATOR_LEFT], - '<=' => ['precedence' => 20, 'associativity' => self::OPERATOR_LEFT], - 'not in' => ['precedence' => 20, 'associativity' => self::OPERATOR_LEFT], - 'in' => ['precedence' => 20, 'associativity' => self::OPERATOR_LEFT], - 'matches' => ['precedence' => 20, 'associativity' => self::OPERATOR_LEFT], - '..' => ['precedence' => 25, 'associativity' => self::OPERATOR_LEFT], - '+' => ['precedence' => 30, 'associativity' => self::OPERATOR_LEFT], - '-' => ['precedence' => 30, 'associativity' => self::OPERATOR_LEFT], - '~' => ['precedence' => 40, 'associativity' => self::OPERATOR_LEFT], - '*' => ['precedence' => 60, 'associativity' => self::OPERATOR_LEFT], - '/' => ['precedence' => 60, 'associativity' => self::OPERATOR_LEFT], - '%' => ['precedence' => 60, 'associativity' => self::OPERATOR_LEFT], - '**' => ['precedence' => 200, 'associativity' => self::OPERATOR_RIGHT], - ]; - } - - /** - * Converts a token stream to a node tree. - * - * The valid names is an array where the values - * are the names that the user can use in an expression. - * - * If the variable name in the compiled PHP code must be - * different, define it as the key. - * - * For instance, ['this' => 'container'] means that the - * variable 'container' can be used in the expression - * but the compiled code will use 'this'. - * - * @param array $names An array of valid names - * - * @return Node\Node A node tree - * - * @throws SyntaxError - */ - public function parse(TokenStream $stream, $names = []) - { - $this->stream = $stream; - $this->names = $names; - - $node = $this->parseExpression(); - if (!$stream->isEOF()) { - throw new SyntaxError(sprintf('Unexpected token "%s" of value "%s"', $stream->current->type, $stream->current->value), $stream->current->cursor, $stream->getExpression()); - } - - return $node; - } - - public function parseExpression($precedence = 0) - { - $expr = $this->getPrimary(); - $token = $this->stream->current; - while ($token->test(Token::OPERATOR_TYPE) && isset($this->binaryOperators[$token->value]) && $this->binaryOperators[$token->value]['precedence'] >= $precedence) { - $op = $this->binaryOperators[$token->value]; - $this->stream->next(); - - $expr1 = $this->parseExpression(self::OPERATOR_LEFT === $op['associativity'] ? $op['precedence'] + 1 : $op['precedence']); - $expr = new Node\BinaryNode($token->value, $expr, $expr1); - - $token = $this->stream->current; - } - - if (0 === $precedence) { - return $this->parseConditionalExpression($expr); - } - - return $expr; - } - - protected function getPrimary() - { - $token = $this->stream->current; - - if ($token->test(Token::OPERATOR_TYPE) && isset($this->unaryOperators[$token->value])) { - $operator = $this->unaryOperators[$token->value]; - $this->stream->next(); - $expr = $this->parseExpression($operator['precedence']); - - return $this->parsePostfixExpression(new Node\UnaryNode($token->value, $expr)); - } - - if ($token->test(Token::PUNCTUATION_TYPE, '(')) { - $this->stream->next(); - $expr = $this->parseExpression(); - $this->stream->expect(Token::PUNCTUATION_TYPE, ')', 'An opened parenthesis is not properly closed'); - - return $this->parsePostfixExpression($expr); - } - - return $this->parsePrimaryExpression(); - } - - protected function parseConditionalExpression($expr) - { - while ($this->stream->current->test(Token::PUNCTUATION_TYPE, '?')) { - $this->stream->next(); - if (!$this->stream->current->test(Token::PUNCTUATION_TYPE, ':')) { - $expr2 = $this->parseExpression(); - if ($this->stream->current->test(Token::PUNCTUATION_TYPE, ':')) { - $this->stream->next(); - $expr3 = $this->parseExpression(); - } else { - $expr3 = new Node\ConstantNode(null); - } - } else { - $this->stream->next(); - $expr2 = $expr; - $expr3 = $this->parseExpression(); - } - - $expr = new Node\ConditionalNode($expr, $expr2, $expr3); - } - - return $expr; - } - - public function parsePrimaryExpression() - { - $token = $this->stream->current; - switch ($token->type) { - case Token::NAME_TYPE: - $this->stream->next(); - switch ($token->value) { - case 'true': - case 'TRUE': - return new Node\ConstantNode(true); - - case 'false': - case 'FALSE': - return new Node\ConstantNode(false); - - case 'null': - case 'NULL': - return new Node\ConstantNode(null); - - default: - if ('(' === $this->stream->current->value) { - if (false === isset($this->functions[$token->value])) { - throw new SyntaxError(sprintf('The function "%s" does not exist', $token->value), $token->cursor, $this->stream->getExpression(), $token->value, array_keys($this->functions)); - } - - $node = new Node\FunctionNode($token->value, $this->parseArguments()); - } else { - if (!\in_array($token->value, $this->names, true)) { - throw new SyntaxError(sprintf('Variable "%s" is not valid', $token->value), $token->cursor, $this->stream->getExpression(), $token->value, $this->names); - } - - // is the name used in the compiled code different - // from the name used in the expression? - if (\is_int($name = array_search($token->value, $this->names))) { - $name = $token->value; - } - - $node = new Node\NameNode($name); - } - } - break; - - case Token::NUMBER_TYPE: - case Token::STRING_TYPE: - $this->stream->next(); - - return new Node\ConstantNode($token->value); - - default: - if ($token->test(Token::PUNCTUATION_TYPE, '[')) { - $node = $this->parseArrayExpression(); - } elseif ($token->test(Token::PUNCTUATION_TYPE, '{')) { - $node = $this->parseHashExpression(); - } else { - throw new SyntaxError(sprintf('Unexpected token "%s" of value "%s"', $token->type, $token->value), $token->cursor, $this->stream->getExpression()); - } - } - - return $this->parsePostfixExpression($node); - } - - public function parseArrayExpression() - { - $this->stream->expect(Token::PUNCTUATION_TYPE, '[', 'An array element was expected'); - - $node = new Node\ArrayNode(); - $first = true; - while (!$this->stream->current->test(Token::PUNCTUATION_TYPE, ']')) { - if (!$first) { - $this->stream->expect(Token::PUNCTUATION_TYPE, ',', 'An array element must be followed by a comma'); - - // trailing ,? - if ($this->stream->current->test(Token::PUNCTUATION_TYPE, ']')) { - break; - } - } - $first = false; - - $node->addElement($this->parseExpression()); - } - $this->stream->expect(Token::PUNCTUATION_TYPE, ']', 'An opened array is not properly closed'); - - return $node; - } - - public function parseHashExpression() - { - $this->stream->expect(Token::PUNCTUATION_TYPE, '{', 'A hash element was expected'); - - $node = new Node\ArrayNode(); - $first = true; - while (!$this->stream->current->test(Token::PUNCTUATION_TYPE, '}')) { - if (!$first) { - $this->stream->expect(Token::PUNCTUATION_TYPE, ',', 'A hash value must be followed by a comma'); - - // trailing ,? - if ($this->stream->current->test(Token::PUNCTUATION_TYPE, '}')) { - break; - } - } - $first = false; - - // a hash key can be: - // - // * a number -- 12 - // * a string -- 'a' - // * a name, which is equivalent to a string -- a - // * an expression, which must be enclosed in parentheses -- (1 + 2) - if ($this->stream->current->test(Token::STRING_TYPE) || $this->stream->current->test(Token::NAME_TYPE) || $this->stream->current->test(Token::NUMBER_TYPE)) { - $key = new Node\ConstantNode($this->stream->current->value); - $this->stream->next(); - } elseif ($this->stream->current->test(Token::PUNCTUATION_TYPE, '(')) { - $key = $this->parseExpression(); - } else { - $current = $this->stream->current; - - throw new SyntaxError(sprintf('A hash key must be a quoted string, a number, a name, or an expression enclosed in parentheses (unexpected token "%s" of value "%s"', $current->type, $current->value), $current->cursor, $this->stream->getExpression()); - } - - $this->stream->expect(Token::PUNCTUATION_TYPE, ':', 'A hash key must be followed by a colon (:)'); - $value = $this->parseExpression(); - - $node->addElement($value, $key); - } - $this->stream->expect(Token::PUNCTUATION_TYPE, '}', 'An opened hash is not properly closed'); - - return $node; - } - - public function parsePostfixExpression($node) - { - $token = $this->stream->current; - while (Token::PUNCTUATION_TYPE == $token->type) { - if ('.' === $token->value) { - $this->stream->next(); - $token = $this->stream->current; - $this->stream->next(); - - if ( - Token::NAME_TYPE !== $token->type - && - // Operators like "not" and "matches" are valid method or property names, - // - // In other words, besides NAME_TYPE, OPERATOR_TYPE could also be parsed as a property or method. - // This is because operators are processed by the lexer prior to names. So "not" in "foo.not()" or "matches" in "foo.matches" will be recognized as an operator first. - // But in fact, "not" and "matches" in such expressions shall be parsed as method or property names. - // - // And this ONLY works if the operator consists of valid characters for a property or method name. - // - // Other types, such as STRING_TYPE and NUMBER_TYPE, can't be parsed as property nor method names. - // - // As a result, if $token is NOT an operator OR $token->value is NOT a valid property or method name, an exception shall be thrown. - (Token::OPERATOR_TYPE !== $token->type || !preg_match('/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/A', $token->value)) - ) { - throw new SyntaxError('Expected name', $token->cursor, $this->stream->getExpression()); - } - - $arg = new Node\ConstantNode($token->value, true); - - $arguments = new Node\ArgumentsNode(); - if ($this->stream->current->test(Token::PUNCTUATION_TYPE, '(')) { - $type = Node\GetAttrNode::METHOD_CALL; - foreach ($this->parseArguments()->nodes as $n) { - $arguments->addElement($n); - } - } else { - $type = Node\GetAttrNode::PROPERTY_CALL; - } - - $node = new Node\GetAttrNode($node, $arg, $arguments, $type); - } elseif ('[' === $token->value) { - $this->stream->next(); - $arg = $this->parseExpression(); - $this->stream->expect(Token::PUNCTUATION_TYPE, ']'); - - $node = new Node\GetAttrNode($node, $arg, new Node\ArgumentsNode(), Node\GetAttrNode::ARRAY_CALL); - } else { - break; - } - - $token = $this->stream->current; - } - - return $node; - } - - /** - * Parses arguments. - */ - public function parseArguments() - { - $args = []; - $this->stream->expect(Token::PUNCTUATION_TYPE, '(', 'A list of arguments must begin with an opening parenthesis'); - while (!$this->stream->current->test(Token::PUNCTUATION_TYPE, ')')) { - if (!empty($args)) { - $this->stream->expect(Token::PUNCTUATION_TYPE, ',', 'Arguments must be separated by a comma'); - } - - $args[] = $this->parseExpression(); - } - $this->stream->expect(Token::PUNCTUATION_TYPE, ')', 'A list of arguments must be closed by a parenthesis'); - - return new Node\Node($args); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/README.md b/srcs/phpmyadmin/vendor/symfony/expression-language/README.md deleted file mode 100644 index 08b310d..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/README.md +++ /dev/null @@ -1,15 +0,0 @@ -ExpressionLanguage Component -============================ - -The ExpressionLanguage component provides an engine that can compile and -evaluate expressions. An expression is a one-liner that returns a value -(mostly, but not limited to, Booleans). - -Resources ---------- - - * [Documentation](https://symfony.com/doc/current/components/expression_language/introduction.html) - * [Contributing](https://symfony.com/doc/current/contributing/index.html) - * [Report issues](https://github.com/symfony/symfony/issues) and - [send Pull Requests](https://github.com/symfony/symfony/pulls) - in the [main Symfony repository](https://github.com/symfony/symfony) diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/SerializedParsedExpression.php b/srcs/phpmyadmin/vendor/symfony/expression-language/SerializedParsedExpression.php deleted file mode 100644 index a1f838c..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/SerializedParsedExpression.php +++ /dev/null @@ -1,37 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ExpressionLanguage; - -/** - * Represents an already parsed expression. - * - * @author Fabien Potencier - */ -class SerializedParsedExpression extends ParsedExpression -{ - private $nodes; - - /** - * @param string $expression An expression - * @param string $nodes The serialized nodes for the expression - */ - public function __construct(string $expression, string $nodes) - { - $this->expression = $expression; - $this->nodes = $nodes; - } - - public function getNodes() - { - return unserialize($this->nodes); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/SyntaxError.php b/srcs/phpmyadmin/vendor/symfony/expression-language/SyntaxError.php deleted file mode 100644 index d3313b8..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/SyntaxError.php +++ /dev/null @@ -1,41 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ExpressionLanguage; - -class SyntaxError extends \LogicException -{ - public function __construct(string $message, int $cursor = 0, string $expression = '', string $subject = null, array $proposals = null) - { - $message = sprintf('%s around position %d', $message, $cursor); - if ($expression) { - $message = sprintf('%s for expression `%s`', $message, $expression); - } - $message .= '.'; - - if (null !== $subject && null !== $proposals) { - $minScore = INF; - foreach ($proposals as $proposal) { - $distance = levenshtein($subject, $proposal); - if ($distance < $minScore) { - $guess = $proposal; - $minScore = $distance; - } - } - - if (isset($guess) && $minScore < 3) { - $message .= sprintf(' Did you mean "%s"?', $guess); - } - } - - parent::__construct($message); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/Token.php b/srcs/phpmyadmin/vendor/symfony/expression-language/Token.php deleted file mode 100644 index 40bb755..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/Token.php +++ /dev/null @@ -1,66 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ExpressionLanguage; - -/** - * Represents a Token. - * - * @author Fabien Potencier - */ -class Token -{ - public $value; - public $type; - public $cursor; - - const EOF_TYPE = 'end of expression'; - const NAME_TYPE = 'name'; - const NUMBER_TYPE = 'number'; - const STRING_TYPE = 'string'; - const OPERATOR_TYPE = 'operator'; - const PUNCTUATION_TYPE = 'punctuation'; - - /** - * @param string $type The type of the token (self::*_TYPE) - * @param string|int|float|null $value The token value - * @param int $cursor The cursor position in the source - */ - public function __construct(string $type, $value, ?int $cursor) - { - $this->type = $type; - $this->value = $value; - $this->cursor = $cursor; - } - - /** - * Returns a string representation of the token. - * - * @return string A string representation of the token - */ - public function __toString() - { - return sprintf('%3d %-11s %s', $this->cursor, strtoupper($this->type), $this->value); - } - - /** - * Tests the current token for a type and/or a value. - * - * @param array|int $type The type to test - * @param string|null $value The token value - * - * @return bool - */ - public function test($type, $value = null) - { - return $this->type === $type && (null === $value || $this->value == $value); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/TokenStream.php b/srcs/phpmyadmin/vendor/symfony/expression-language/TokenStream.php deleted file mode 100644 index 01277dc..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/TokenStream.php +++ /dev/null @@ -1,91 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\ExpressionLanguage; - -/** - * Represents a token stream. - * - * @author Fabien Potencier - */ -class TokenStream -{ - public $current; - - private $tokens; - private $position = 0; - private $expression; - - public function __construct(array $tokens, string $expression = '') - { - $this->tokens = $tokens; - $this->current = $tokens[0]; - $this->expression = $expression; - } - - /** - * Returns a string representation of the token stream. - * - * @return string - */ - public function __toString() - { - return implode("\n", $this->tokens); - } - - /** - * Sets the pointer to the next token and returns the old one. - */ - public function next() - { - ++$this->position; - - if (!isset($this->tokens[$this->position])) { - throw new SyntaxError('Unexpected end of expression', $this->current->cursor, $this->expression); - } - - $this->current = $this->tokens[$this->position]; - } - - /** - * Tests a token. - * - * @param array|int $type The type to test - * @param string|null $value The token value - * @param string|null $message The syntax error message - */ - public function expect($type, $value = null, $message = null) - { - $token = $this->current; - if (!$token->test($type, $value)) { - throw new SyntaxError(sprintf('%sUnexpected token "%s" of value "%s" ("%s" expected%s)', $message ? $message.'. ' : '', $token->type, $token->value, $type, $value ? sprintf(' with value "%s"', $value) : ''), $token->cursor, $this->expression); - } - $this->next(); - } - - /** - * Checks if end of stream was reached. - * - * @return bool - */ - public function isEOF() - { - return Token::EOF_TYPE === $this->current->type; - } - - /** - * @internal - */ - public function getExpression(): string - { - return $this->expression; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/expression-language/composer.json b/srcs/phpmyadmin/vendor/symfony/expression-language/composer.json deleted file mode 100644 index 6843975..0000000 --- a/srcs/phpmyadmin/vendor/symfony/expression-language/composer.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "symfony/expression-language", - "type": "library", - "description": "Symfony ExpressionLanguage Component", - "keywords": [], - "homepage": "https://symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "require": { - "php": "^7.1.3", - "symfony/cache": "^3.4|^4.0|^5.0", - "symfony/service-contracts": "^1.1|^2" - }, - "autoload": { - "psr-4": { "Symfony\\Component\\ExpressionLanguage\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/filesystem/CHANGELOG.md b/srcs/phpmyadmin/vendor/symfony/filesystem/CHANGELOG.md deleted file mode 100644 index 0b633ef..0000000 --- a/srcs/phpmyadmin/vendor/symfony/filesystem/CHANGELOG.md +++ /dev/null @@ -1,70 +0,0 @@ -CHANGELOG -========= - -4.4.0 ------ - - * support for passing a `null` value to `Filesystem::isAbsolutePath()` is deprecated and will be removed in 5.0 - -4.3.0 ------ - - * support for passing arrays to `Filesystem::dumpFile()` is deprecated and will be removed in 5.0 - * support for passing arrays to `Filesystem::appendToFile()` is deprecated and will be removed in 5.0 - -4.0.0 ------ - - * removed `LockHandler` - * Support for passing relative paths to `Filesystem::makePathRelative()` has been removed. - -3.4.0 ------ - - * support for passing relative paths to `Filesystem::makePathRelative()` is deprecated and will be removed in 4.0 - -3.3.0 ------ - - * added `appendToFile()` to append contents to existing files - -3.2.0 ------ - - * added `readlink()` as a platform independent method to read links - -3.0.0 ------ - - * removed `$mode` argument from `Filesystem::dumpFile()` - -2.8.0 ------ - - * added tempnam() a stream aware version of PHP's native tempnam() - -2.6.0 ------ - - * added LockHandler - -2.3.12 ------- - - * deprecated dumpFile() file mode argument. - -2.3.0 ------ - - * added the dumpFile() method to atomically write files - -2.2.0 ------ - - * added a delete option for the mirror() method - -2.1.0 ------ - - * 24eb396 : BC Break : mkdir() function now throws exception in case of failure instead of returning Boolean value - * created the component diff --git a/srcs/phpmyadmin/vendor/symfony/filesystem/Exception/ExceptionInterface.php b/srcs/phpmyadmin/vendor/symfony/filesystem/Exception/ExceptionInterface.php deleted file mode 100644 index fc438d9..0000000 --- a/srcs/phpmyadmin/vendor/symfony/filesystem/Exception/ExceptionInterface.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Filesystem\Exception; - -/** - * Exception interface for all exceptions thrown by the component. - * - * @author Romain Neutron - */ -interface ExceptionInterface extends \Throwable -{ -} diff --git a/srcs/phpmyadmin/vendor/symfony/filesystem/Exception/FileNotFoundException.php b/srcs/phpmyadmin/vendor/symfony/filesystem/Exception/FileNotFoundException.php deleted file mode 100644 index 48b6408..0000000 --- a/srcs/phpmyadmin/vendor/symfony/filesystem/Exception/FileNotFoundException.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Filesystem\Exception; - -/** - * Exception class thrown when a file couldn't be found. - * - * @author Fabien Potencier - * @author Christian Gärtner - */ -class FileNotFoundException extends IOException -{ - public function __construct(string $message = null, int $code = 0, \Throwable $previous = null, string $path = null) - { - if (null === $message) { - if (null === $path) { - $message = 'File could not be found.'; - } else { - $message = sprintf('File "%s" could not be found.', $path); - } - } - - parent::__construct($message, $code, $previous, $path); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/filesystem/Exception/IOException.php b/srcs/phpmyadmin/vendor/symfony/filesystem/Exception/IOException.php deleted file mode 100644 index fea26e4..0000000 --- a/srcs/phpmyadmin/vendor/symfony/filesystem/Exception/IOException.php +++ /dev/null @@ -1,39 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Filesystem\Exception; - -/** - * Exception class thrown when a filesystem operation failure happens. - * - * @author Romain Neutron - * @author Christian Gärtner - * @author Fabien Potencier - */ -class IOException extends \RuntimeException implements IOExceptionInterface -{ - private $path; - - public function __construct(string $message, int $code = 0, \Throwable $previous = null, string $path = null) - { - $this->path = $path; - - parent::__construct($message, $code, $previous); - } - - /** - * {@inheritdoc} - */ - public function getPath() - { - return $this->path; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/filesystem/Exception/IOExceptionInterface.php b/srcs/phpmyadmin/vendor/symfony/filesystem/Exception/IOExceptionInterface.php deleted file mode 100644 index f9d4644..0000000 --- a/srcs/phpmyadmin/vendor/symfony/filesystem/Exception/IOExceptionInterface.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Filesystem\Exception; - -/** - * IOException interface for file and input/output stream related exceptions thrown by the component. - * - * @author Christian Gärtner - */ -interface IOExceptionInterface extends ExceptionInterface -{ - /** - * Returns the associated path for the exception. - * - * @return string|null The path - */ - public function getPath(); -} diff --git a/srcs/phpmyadmin/vendor/symfony/filesystem/Exception/InvalidArgumentException.php b/srcs/phpmyadmin/vendor/symfony/filesystem/Exception/InvalidArgumentException.php deleted file mode 100644 index abadc20..0000000 --- a/srcs/phpmyadmin/vendor/symfony/filesystem/Exception/InvalidArgumentException.php +++ /dev/null @@ -1,19 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Filesystem\Exception; - -/** - * @author Christian Flothmann - */ -class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface -{ -} diff --git a/srcs/phpmyadmin/vendor/symfony/filesystem/Filesystem.php b/srcs/phpmyadmin/vendor/symfony/filesystem/Filesystem.php deleted file mode 100644 index f44a5d3..0000000 --- a/srcs/phpmyadmin/vendor/symfony/filesystem/Filesystem.php +++ /dev/null @@ -1,769 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Filesystem; - -use Symfony\Component\Filesystem\Exception\FileNotFoundException; -use Symfony\Component\Filesystem\Exception\InvalidArgumentException; -use Symfony\Component\Filesystem\Exception\IOException; - -/** - * Provides basic utility to manipulate the file system. - * - * @author Fabien Potencier - */ -class Filesystem -{ - private static $lastError; - - /** - * Copies a file. - * - * If the target file is older than the origin file, it's always overwritten. - * If the target file is newer, it is overwritten only when the - * $overwriteNewerFiles option is set to true. - * - * @param string $originFile The original filename - * @param string $targetFile The target filename - * @param bool $overwriteNewerFiles If true, target files newer than origin files are overwritten - * - * @throws FileNotFoundException When originFile doesn't exist - * @throws IOException When copy fails - */ - public function copy($originFile, $targetFile, $overwriteNewerFiles = false) - { - $originIsLocal = stream_is_local($originFile) || 0 === stripos($originFile, 'file://'); - if ($originIsLocal && !is_file($originFile)) { - throw new FileNotFoundException(sprintf('Failed to copy "%s" because file does not exist.', $originFile), 0, null, $originFile); - } - - $this->mkdir(\dirname($targetFile)); - - $doCopy = true; - if (!$overwriteNewerFiles && null === parse_url($originFile, PHP_URL_HOST) && is_file($targetFile)) { - $doCopy = filemtime($originFile) > filemtime($targetFile); - } - - if ($doCopy) { - // https://bugs.php.net/64634 - if (false === $source = @fopen($originFile, 'r')) { - throw new IOException(sprintf('Failed to copy "%s" to "%s" because source file could not be opened for reading.', $originFile, $targetFile), 0, null, $originFile); - } - - // Stream context created to allow files overwrite when using FTP stream wrapper - disabled by default - if (false === $target = @fopen($targetFile, 'w', null, stream_context_create(['ftp' => ['overwrite' => true]]))) { - throw new IOException(sprintf('Failed to copy "%s" to "%s" because target file could not be opened for writing.', $originFile, $targetFile), 0, null, $originFile); - } - - $bytesCopied = stream_copy_to_stream($source, $target); - fclose($source); - fclose($target); - unset($source, $target); - - if (!is_file($targetFile)) { - throw new IOException(sprintf('Failed to copy "%s" to "%s".', $originFile, $targetFile), 0, null, $originFile); - } - - if ($originIsLocal) { - // Like `cp`, preserve executable permission bits - @chmod($targetFile, fileperms($targetFile) | (fileperms($originFile) & 0111)); - - if ($bytesCopied !== $bytesOrigin = filesize($originFile)) { - throw new IOException(sprintf('Failed to copy the whole content of "%s" to "%s" (%g of %g bytes copied).', $originFile, $targetFile, $bytesCopied, $bytesOrigin), 0, null, $originFile); - } - } - } - } - - /** - * Creates a directory recursively. - * - * @param string|iterable $dirs The directory path - * @param int $mode The directory mode - * - * @throws IOException On any directory creation failure - */ - public function mkdir($dirs, $mode = 0777) - { - foreach ($this->toIterable($dirs) as $dir) { - if (is_dir($dir)) { - continue; - } - - if (!self::box('mkdir', $dir, $mode, true)) { - if (!is_dir($dir)) { - // The directory was not created by a concurrent process. Let's throw an exception with a developer friendly error message if we have one - if (self::$lastError) { - throw new IOException(sprintf('Failed to create "%s": %s.', $dir, self::$lastError), 0, null, $dir); - } - throw new IOException(sprintf('Failed to create "%s"', $dir), 0, null, $dir); - } - } - } - } - - /** - * Checks the existence of files or directories. - * - * @param string|iterable $files A filename, an array of files, or a \Traversable instance to check - * - * @return bool true if the file exists, false otherwise - */ - public function exists($files) - { - $maxPathLength = PHP_MAXPATHLEN - 2; - - foreach ($this->toIterable($files) as $file) { - if (\strlen($file) > $maxPathLength) { - throw new IOException(sprintf('Could not check if file exist because path length exceeds %d characters.', $maxPathLength), 0, null, $file); - } - - if (!file_exists($file)) { - return false; - } - } - - return true; - } - - /** - * Sets access and modification time of file. - * - * @param string|iterable $files A filename, an array of files, or a \Traversable instance to create - * @param int|null $time The touch time as a Unix timestamp, if not supplied the current system time is used - * @param int|null $atime The access time as a Unix timestamp, if not supplied the current system time is used - * - * @throws IOException When touch fails - */ - public function touch($files, $time = null, $atime = null) - { - foreach ($this->toIterable($files) as $file) { - $touch = $time ? @touch($file, $time, $atime) : @touch($file); - if (true !== $touch) { - throw new IOException(sprintf('Failed to touch "%s".', $file), 0, null, $file); - } - } - } - - /** - * Removes files or directories. - * - * @param string|iterable $files A filename, an array of files, or a \Traversable instance to remove - * - * @throws IOException When removal fails - */ - public function remove($files) - { - if ($files instanceof \Traversable) { - $files = iterator_to_array($files, false); - } elseif (!\is_array($files)) { - $files = [$files]; - } - $files = array_reverse($files); - foreach ($files as $file) { - if (is_link($file)) { - // See https://bugs.php.net/52176 - if (!(self::box('unlink', $file) || '\\' !== \DIRECTORY_SEPARATOR || self::box('rmdir', $file)) && file_exists($file)) { - throw new IOException(sprintf('Failed to remove symlink "%s": %s.', $file, self::$lastError)); - } - } elseif (is_dir($file)) { - $this->remove(new \FilesystemIterator($file, \FilesystemIterator::CURRENT_AS_PATHNAME | \FilesystemIterator::SKIP_DOTS)); - - if (!self::box('rmdir', $file) && file_exists($file)) { - throw new IOException(sprintf('Failed to remove directory "%s": %s.', $file, self::$lastError)); - } - } elseif (!self::box('unlink', $file) && file_exists($file)) { - throw new IOException(sprintf('Failed to remove file "%s": %s.', $file, self::$lastError)); - } - } - } - - /** - * Change mode for an array of files or directories. - * - * @param string|iterable $files A filename, an array of files, or a \Traversable instance to change mode - * @param int $mode The new mode (octal) - * @param int $umask The mode mask (octal) - * @param bool $recursive Whether change the mod recursively or not - * - * @throws IOException When the change fails - */ - public function chmod($files, $mode, $umask = 0000, $recursive = false) - { - foreach ($this->toIterable($files) as $file) { - if (true !== @chmod($file, $mode & ~$umask)) { - throw new IOException(sprintf('Failed to chmod file "%s".', $file), 0, null, $file); - } - if ($recursive && is_dir($file) && !is_link($file)) { - $this->chmod(new \FilesystemIterator($file), $mode, $umask, true); - } - } - } - - /** - * Change the owner of an array of files or directories. - * - * @param string|iterable $files A filename, an array of files, or a \Traversable instance to change owner - * @param string $user The new owner user name - * @param bool $recursive Whether change the owner recursively or not - * - * @throws IOException When the change fails - */ - public function chown($files, $user, $recursive = false) - { - foreach ($this->toIterable($files) as $file) { - if ($recursive && is_dir($file) && !is_link($file)) { - $this->chown(new \FilesystemIterator($file), $user, true); - } - if (is_link($file) && \function_exists('lchown')) { - if (true !== @lchown($file, $user)) { - throw new IOException(sprintf('Failed to chown file "%s".', $file), 0, null, $file); - } - } else { - if (true !== @chown($file, $user)) { - throw new IOException(sprintf('Failed to chown file "%s".', $file), 0, null, $file); - } - } - } - } - - /** - * Change the group of an array of files or directories. - * - * @param string|iterable $files A filename, an array of files, or a \Traversable instance to change group - * @param string $group The group name - * @param bool $recursive Whether change the group recursively or not - * - * @throws IOException When the change fails - */ - public function chgrp($files, $group, $recursive = false) - { - foreach ($this->toIterable($files) as $file) { - if ($recursive && is_dir($file) && !is_link($file)) { - $this->chgrp(new \FilesystemIterator($file), $group, true); - } - if (is_link($file) && \function_exists('lchgrp')) { - if (true !== @lchgrp($file, $group)) { - throw new IOException(sprintf('Failed to chgrp file "%s".', $file), 0, null, $file); - } - } else { - if (true !== @chgrp($file, $group)) { - throw new IOException(sprintf('Failed to chgrp file "%s".', $file), 0, null, $file); - } - } - } - } - - /** - * Renames a file or a directory. - * - * @param string $origin The origin filename or directory - * @param string $target The new filename or directory - * @param bool $overwrite Whether to overwrite the target if it already exists - * - * @throws IOException When target file or directory already exists - * @throws IOException When origin cannot be renamed - */ - public function rename($origin, $target, $overwrite = false) - { - // we check that target does not exist - if (!$overwrite && $this->isReadable($target)) { - throw new IOException(sprintf('Cannot rename because the target "%s" already exists.', $target), 0, null, $target); - } - - if (true !== @rename($origin, $target)) { - if (is_dir($origin)) { - // See https://bugs.php.net/54097 & https://php.net/rename#113943 - $this->mirror($origin, $target, null, ['override' => $overwrite, 'delete' => $overwrite]); - $this->remove($origin); - - return; - } - throw new IOException(sprintf('Cannot rename "%s" to "%s".', $origin, $target), 0, null, $target); - } - } - - /** - * Tells whether a file exists and is readable. - * - * @throws IOException When windows path is longer than 258 characters - */ - private function isReadable(string $filename): bool - { - $maxPathLength = PHP_MAXPATHLEN - 2; - - if (\strlen($filename) > $maxPathLength) { - throw new IOException(sprintf('Could not check if file is readable because path length exceeds %d characters.', $maxPathLength), 0, null, $filename); - } - - return is_readable($filename); - } - - /** - * Creates a symbolic link or copy a directory. - * - * @param string $originDir The origin directory path - * @param string $targetDir The symbolic link name - * @param bool $copyOnWindows Whether to copy files if on Windows - * - * @throws IOException When symlink fails - */ - public function symlink($originDir, $targetDir, $copyOnWindows = false) - { - if ('\\' === \DIRECTORY_SEPARATOR) { - $originDir = strtr($originDir, '/', '\\'); - $targetDir = strtr($targetDir, '/', '\\'); - - if ($copyOnWindows) { - $this->mirror($originDir, $targetDir); - - return; - } - } - - $this->mkdir(\dirname($targetDir)); - - if (is_link($targetDir)) { - if (readlink($targetDir) === $originDir) { - return; - } - $this->remove($targetDir); - } - - if (!self::box('symlink', $originDir, $targetDir)) { - $this->linkException($originDir, $targetDir, 'symbolic'); - } - } - - /** - * Creates a hard link, or several hard links to a file. - * - * @param string $originFile The original file - * @param string|string[] $targetFiles The target file(s) - * - * @throws FileNotFoundException When original file is missing or not a file - * @throws IOException When link fails, including if link already exists - */ - public function hardlink($originFile, $targetFiles) - { - if (!$this->exists($originFile)) { - throw new FileNotFoundException(null, 0, null, $originFile); - } - - if (!is_file($originFile)) { - throw new FileNotFoundException(sprintf('Origin file "%s" is not a file', $originFile)); - } - - foreach ($this->toIterable($targetFiles) as $targetFile) { - if (is_file($targetFile)) { - if (fileinode($originFile) === fileinode($targetFile)) { - continue; - } - $this->remove($targetFile); - } - - if (!self::box('link', $originFile, $targetFile)) { - $this->linkException($originFile, $targetFile, 'hard'); - } - } - } - - /** - * @param string $linkType Name of the link type, typically 'symbolic' or 'hard' - */ - private function linkException(string $origin, string $target, string $linkType) - { - if (self::$lastError) { - if ('\\' === \DIRECTORY_SEPARATOR && false !== strpos(self::$lastError, 'error code(1314)')) { - throw new IOException(sprintf('Unable to create %s link due to error code 1314: \'A required privilege is not held by the client\'. Do you have the required Administrator-rights?', $linkType), 0, null, $target); - } - } - throw new IOException(sprintf('Failed to create %s link from "%s" to "%s".', $linkType, $origin, $target), 0, null, $target); - } - - /** - * Resolves links in paths. - * - * With $canonicalize = false (default) - * - if $path does not exist or is not a link, returns null - * - if $path is a link, returns the next direct target of the link without considering the existence of the target - * - * With $canonicalize = true - * - if $path does not exist, returns null - * - if $path exists, returns its absolute fully resolved final version - * - * @param string $path A filesystem path - * @param bool $canonicalize Whether or not to return a canonicalized path - * - * @return string|null - */ - public function readlink($path, $canonicalize = false) - { - if (!$canonicalize && !is_link($path)) { - return null; - } - - if ($canonicalize) { - if (!$this->exists($path)) { - return null; - } - - if ('\\' === \DIRECTORY_SEPARATOR) { - $path = readlink($path); - } - - return realpath($path); - } - - if ('\\' === \DIRECTORY_SEPARATOR) { - return realpath($path); - } - - return readlink($path); - } - - /** - * Given an existing path, convert it to a path relative to a given starting path. - * - * @param string $endPath Absolute path of target - * @param string $startPath Absolute path where traversal begins - * - * @return string Path of target relative to starting path - */ - public function makePathRelative($endPath, $startPath) - { - if (!$this->isAbsolutePath($startPath)) { - throw new InvalidArgumentException(sprintf('The start path "%s" is not absolute.', $startPath)); - } - - if (!$this->isAbsolutePath($endPath)) { - throw new InvalidArgumentException(sprintf('The end path "%s" is not absolute.', $endPath)); - } - - // Normalize separators on Windows - if ('\\' === \DIRECTORY_SEPARATOR) { - $endPath = str_replace('\\', '/', $endPath); - $startPath = str_replace('\\', '/', $startPath); - } - - $stripDriveLetter = function ($path) { - if (\strlen($path) > 2 && ':' === $path[1] && '/' === $path[2] && ctype_alpha($path[0])) { - return substr($path, 2); - } - - return $path; - }; - - $endPath = $stripDriveLetter($endPath); - $startPath = $stripDriveLetter($startPath); - - // Split the paths into arrays - $startPathArr = explode('/', trim($startPath, '/')); - $endPathArr = explode('/', trim($endPath, '/')); - - $normalizePathArray = function ($pathSegments) { - $result = []; - - foreach ($pathSegments as $segment) { - if ('..' === $segment) { - array_pop($result); - } elseif ('.' !== $segment) { - $result[] = $segment; - } - } - - return $result; - }; - - $startPathArr = $normalizePathArray($startPathArr); - $endPathArr = $normalizePathArray($endPathArr); - - // Find for which directory the common path stops - $index = 0; - while (isset($startPathArr[$index]) && isset($endPathArr[$index]) && $startPathArr[$index] === $endPathArr[$index]) { - ++$index; - } - - // Determine how deep the start path is relative to the common path (ie, "web/bundles" = 2 levels) - if (1 === \count($startPathArr) && '' === $startPathArr[0]) { - $depth = 0; - } else { - $depth = \count($startPathArr) - $index; - } - - // Repeated "../" for each level need to reach the common path - $traverser = str_repeat('../', $depth); - - $endPathRemainder = implode('/', \array_slice($endPathArr, $index)); - - // Construct $endPath from traversing to the common path, then to the remaining $endPath - $relativePath = $traverser.('' !== $endPathRemainder ? $endPathRemainder.'/' : ''); - - return '' === $relativePath ? './' : $relativePath; - } - - /** - * Mirrors a directory to another. - * - * Copies files and directories from the origin directory into the target directory. By default: - * - * - existing files in the target directory will be overwritten, except if they are newer (see the `override` option) - * - files in the target directory that do not exist in the source directory will not be deleted (see the `delete` option) - * - * @param string $originDir The origin directory - * @param string $targetDir The target directory - * @param \Traversable|null $iterator Iterator that filters which files and directories to copy, if null a recursive iterator is created - * @param array $options An array of boolean options - * Valid options are: - * - $options['override'] If true, target files newer than origin files are overwritten (see copy(), defaults to false) - * - $options['copy_on_windows'] Whether to copy files instead of links on Windows (see symlink(), defaults to false) - * - $options['delete'] Whether to delete files that are not in the source directory (defaults to false) - * - * @throws IOException When file type is unknown - */ - public function mirror($originDir, $targetDir, \Traversable $iterator = null, $options = []) - { - $targetDir = rtrim($targetDir, '/\\'); - $originDir = rtrim($originDir, '/\\'); - $originDirLen = \strlen($originDir); - - if (!$this->exists($originDir)) { - throw new IOException(sprintf('The origin directory specified "%s" was not found.', $originDir), 0, null, $originDir); - } - - // Iterate in destination folder to remove obsolete entries - if ($this->exists($targetDir) && isset($options['delete']) && $options['delete']) { - $deleteIterator = $iterator; - if (null === $deleteIterator) { - $flags = \FilesystemIterator::SKIP_DOTS; - $deleteIterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($targetDir, $flags), \RecursiveIteratorIterator::CHILD_FIRST); - } - $targetDirLen = \strlen($targetDir); - foreach ($deleteIterator as $file) { - $origin = $originDir.substr($file->getPathname(), $targetDirLen); - if (!$this->exists($origin)) { - $this->remove($file); - } - } - } - - $copyOnWindows = $options['copy_on_windows'] ?? false; - - if (null === $iterator) { - $flags = $copyOnWindows ? \FilesystemIterator::SKIP_DOTS | \FilesystemIterator::FOLLOW_SYMLINKS : \FilesystemIterator::SKIP_DOTS; - $iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($originDir, $flags), \RecursiveIteratorIterator::SELF_FIRST); - } - - $this->mkdir($targetDir); - $filesCreatedWhileMirroring = []; - - foreach ($iterator as $file) { - if ($file->getPathname() === $targetDir || $file->getRealPath() === $targetDir || isset($filesCreatedWhileMirroring[$file->getRealPath()])) { - continue; - } - - $target = $targetDir.substr($file->getPathname(), $originDirLen); - $filesCreatedWhileMirroring[$target] = true; - - if (!$copyOnWindows && is_link($file)) { - $this->symlink($file->getLinkTarget(), $target); - } elseif (is_dir($file)) { - $this->mkdir($target); - } elseif (is_file($file)) { - $this->copy($file, $target, isset($options['override']) ? $options['override'] : false); - } else { - throw new IOException(sprintf('Unable to guess "%s" file type.', $file), 0, null, $file); - } - } - } - - /** - * Returns whether the file path is an absolute path. - * - * @param string $file A file path - * - * @return bool - */ - public function isAbsolutePath($file) - { - if (null === $file) { - @trigger_error(sprintf('Calling "%s()" with a null in the $file argument is deprecated since Symfony 4.4.', __METHOD__), E_USER_DEPRECATED); - } - - return strspn($file, '/\\', 0, 1) - || (\strlen($file) > 3 && ctype_alpha($file[0]) - && ':' === $file[1] - && strspn($file, '/\\', 2, 1) - ) - || null !== parse_url($file, PHP_URL_SCHEME) - ; - } - - /** - * Creates a temporary file with support for custom stream wrappers. - * - * @param string $dir The directory where the temporary filename will be created - * @param string $prefix The prefix of the generated temporary filename - * Note: Windows uses only the first three characters of prefix - * - * @return string The new temporary filename (with path), or throw an exception on failure - */ - public function tempnam($dir, $prefix) - { - list($scheme, $hierarchy) = $this->getSchemeAndHierarchy($dir); - - // If no scheme or scheme is "file" or "gs" (Google Cloud) create temp file in local filesystem - if (null === $scheme || 'file' === $scheme || 'gs' === $scheme) { - $tmpFile = @tempnam($hierarchy, $prefix); - - // If tempnam failed or no scheme return the filename otherwise prepend the scheme - if (false !== $tmpFile) { - if (null !== $scheme && 'gs' !== $scheme) { - return $scheme.'://'.$tmpFile; - } - - return $tmpFile; - } - - throw new IOException('A temporary file could not be created.'); - } - - // Loop until we create a valid temp file or have reached 10 attempts - for ($i = 0; $i < 10; ++$i) { - // Create a unique filename - $tmpFile = $dir.'/'.$prefix.uniqid(mt_rand(), true); - - // Use fopen instead of file_exists as some streams do not support stat - // Use mode 'x+' to atomically check existence and create to avoid a TOCTOU vulnerability - $handle = @fopen($tmpFile, 'x+'); - - // If unsuccessful restart the loop - if (false === $handle) { - continue; - } - - // Close the file if it was successfully opened - @fclose($handle); - - return $tmpFile; - } - - throw new IOException('A temporary file could not be created.'); - } - - /** - * Atomically dumps content into a file. - * - * @param string $filename The file to be written to - * @param string|resource $content The data to write into the file - * - * @throws IOException if the file cannot be written to - */ - public function dumpFile($filename, $content) - { - if (\is_array($content)) { - @trigger_error(sprintf('Calling "%s()" with an array in the $content argument is deprecated since Symfony 4.3.', __METHOD__), E_USER_DEPRECATED); - } - - $dir = \dirname($filename); - - if (!is_dir($dir)) { - $this->mkdir($dir); - } - - if (!is_writable($dir)) { - throw new IOException(sprintf('Unable to write to the "%s" directory.', $dir), 0, null, $dir); - } - - // Will create a temp file with 0600 access rights - // when the filesystem supports chmod. - $tmpFile = $this->tempnam($dir, basename($filename)); - - if (false === @file_put_contents($tmpFile, $content)) { - throw new IOException(sprintf('Failed to write file "%s".', $filename), 0, null, $filename); - } - - @chmod($tmpFile, file_exists($filename) ? fileperms($filename) : 0666 & ~umask()); - - $this->rename($tmpFile, $filename, true); - } - - /** - * Appends content to an existing file. - * - * @param string $filename The file to which to append content - * @param string|resource $content The content to append - * - * @throws IOException If the file is not writable - */ - public function appendToFile($filename, $content) - { - if (\is_array($content)) { - @trigger_error(sprintf('Calling "%s()" with an array in the $content argument is deprecated since Symfony 4.3.', __METHOD__), E_USER_DEPRECATED); - } - - $dir = \dirname($filename); - - if (!is_dir($dir)) { - $this->mkdir($dir); - } - - if (!is_writable($dir)) { - throw new IOException(sprintf('Unable to write to the "%s" directory.', $dir), 0, null, $dir); - } - - if (false === @file_put_contents($filename, $content, FILE_APPEND)) { - throw new IOException(sprintf('Failed to write file "%s".', $filename), 0, null, $filename); - } - } - - private function toIterable($files): iterable - { - return \is_array($files) || $files instanceof \Traversable ? $files : [$files]; - } - - /** - * Gets a 2-tuple of scheme (may be null) and hierarchical part of a filename (e.g. file:///tmp -> [file, tmp]). - */ - private function getSchemeAndHierarchy(string $filename): array - { - $components = explode('://', $filename, 2); - - return 2 === \count($components) ? [$components[0], $components[1]] : [null, $components[0]]; - } - - /** - * @return mixed - */ - private static function box(callable $func) - { - self::$lastError = null; - set_error_handler(__CLASS__.'::handleError'); - try { - $result = $func(...\array_slice(\func_get_args(), 1)); - restore_error_handler(); - - return $result; - } catch (\Throwable $e) { - } - restore_error_handler(); - - throw $e; - } - - /** - * @internal - */ - public static function handleError($type, $msg) - { - self::$lastError = $msg; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/filesystem/LICENSE b/srcs/phpmyadmin/vendor/symfony/filesystem/LICENSE deleted file mode 100644 index a677f43..0000000 --- a/srcs/phpmyadmin/vendor/symfony/filesystem/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2004-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. diff --git a/srcs/phpmyadmin/vendor/symfony/filesystem/README.md b/srcs/phpmyadmin/vendor/symfony/filesystem/README.md deleted file mode 100644 index 877ab35..0000000 --- a/srcs/phpmyadmin/vendor/symfony/filesystem/README.md +++ /dev/null @@ -1,13 +0,0 @@ -Filesystem Component -==================== - -The Filesystem component provides basic utilities for the filesystem. - -Resources ---------- - - * [Documentation](https://symfony.com/doc/current/components/filesystem/index.html) - * [Contributing](https://symfony.com/doc/current/contributing/index.html) - * [Report issues](https://github.com/symfony/symfony/issues) and - [send Pull Requests](https://github.com/symfony/symfony/pulls) - in the [main Symfony repository](https://github.com/symfony/symfony) diff --git a/srcs/phpmyadmin/vendor/symfony/filesystem/composer.json b/srcs/phpmyadmin/vendor/symfony/filesystem/composer.json deleted file mode 100644 index 9e0373d..0000000 --- a/srcs/phpmyadmin/vendor/symfony/filesystem/composer.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "symfony/filesystem", - "type": "library", - "description": "Symfony Filesystem Component", - "keywords": [], - "homepage": "https://symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "require": { - "php": "^7.1.3", - "symfony/polyfill-ctype": "~1.8" - }, - "autoload": { - "psr-4": { "Symfony\\Component\\Filesystem\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/polyfill-ctype/Ctype.php b/srcs/phpmyadmin/vendor/symfony/polyfill-ctype/Ctype.php deleted file mode 100644 index 58414dc..0000000 --- a/srcs/phpmyadmin/vendor/symfony/polyfill-ctype/Ctype.php +++ /dev/null @@ -1,227 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Polyfill\Ctype; - -/** - * Ctype implementation through regex. - * - * @internal - * - * @author Gert de Pagter - */ -final class Ctype -{ - /** - * Returns TRUE if every character in text is either a letter or a digit, FALSE otherwise. - * - * @see https://php.net/ctype-alnum - * - * @param string|int $text - * - * @return bool - */ - public static function ctype_alnum($text) - { - $text = self::convert_int_to_char_for_ctype($text); - - return \is_string($text) && '' !== $text && !preg_match('/[^A-Za-z0-9]/', $text); - } - - /** - * Returns TRUE if every character in text is a letter, FALSE otherwise. - * - * @see https://php.net/ctype-alpha - * - * @param string|int $text - * - * @return bool - */ - public static function ctype_alpha($text) - { - $text = self::convert_int_to_char_for_ctype($text); - - return \is_string($text) && '' !== $text && !preg_match('/[^A-Za-z]/', $text); - } - - /** - * Returns TRUE if every character in text is a control character from the current locale, FALSE otherwise. - * - * @see https://php.net/ctype-cntrl - * - * @param string|int $text - * - * @return bool - */ - public static function ctype_cntrl($text) - { - $text = self::convert_int_to_char_for_ctype($text); - - return \is_string($text) && '' !== $text && !preg_match('/[^\x00-\x1f\x7f]/', $text); - } - - /** - * Returns TRUE if every character in the string text is a decimal digit, FALSE otherwise. - * - * @see https://php.net/ctype-digit - * - * @param string|int $text - * - * @return bool - */ - public static function ctype_digit($text) - { - $text = self::convert_int_to_char_for_ctype($text); - - return \is_string($text) && '' !== $text && !preg_match('/[^0-9]/', $text); - } - - /** - * Returns TRUE if every character in text is printable and actually creates visible output (no white space), FALSE otherwise. - * - * @see https://php.net/ctype-graph - * - * @param string|int $text - * - * @return bool - */ - public static function ctype_graph($text) - { - $text = self::convert_int_to_char_for_ctype($text); - - return \is_string($text) && '' !== $text && !preg_match('/[^!-~]/', $text); - } - - /** - * Returns TRUE if every character in text is a lowercase letter. - * - * @see https://php.net/ctype-lower - * - * @param string|int $text - * - * @return bool - */ - public static function ctype_lower($text) - { - $text = self::convert_int_to_char_for_ctype($text); - - return \is_string($text) && '' !== $text && !preg_match('/[^a-z]/', $text); - } - - /** - * Returns TRUE if every character in text will actually create output (including blanks). Returns FALSE if text contains control characters or characters that do not have any output or control function at all. - * - * @see https://php.net/ctype-print - * - * @param string|int $text - * - * @return bool - */ - public static function ctype_print($text) - { - $text = self::convert_int_to_char_for_ctype($text); - - return \is_string($text) && '' !== $text && !preg_match('/[^ -~]/', $text); - } - - /** - * Returns TRUE if every character in text is printable, but neither letter, digit or blank, FALSE otherwise. - * - * @see https://php.net/ctype-punct - * - * @param string|int $text - * - * @return bool - */ - public static function ctype_punct($text) - { - $text = self::convert_int_to_char_for_ctype($text); - - return \is_string($text) && '' !== $text && !preg_match('/[^!-\/\:-@\[-`\{-~]/', $text); - } - - /** - * Returns TRUE if every character in text creates some sort of white space, FALSE otherwise. Besides the blank character this also includes tab, vertical tab, line feed, carriage return and form feed characters. - * - * @see https://php.net/ctype-space - * - * @param string|int $text - * - * @return bool - */ - public static function ctype_space($text) - { - $text = self::convert_int_to_char_for_ctype($text); - - return \is_string($text) && '' !== $text && !preg_match('/[^\s]/', $text); - } - - /** - * Returns TRUE if every character in text is an uppercase letter. - * - * @see https://php.net/ctype-upper - * - * @param string|int $text - * - * @return bool - */ - public static function ctype_upper($text) - { - $text = self::convert_int_to_char_for_ctype($text); - - return \is_string($text) && '' !== $text && !preg_match('/[^A-Z]/', $text); - } - - /** - * Returns TRUE if every character in text is a hexadecimal 'digit', that is a decimal digit or a character from [A-Fa-f] , FALSE otherwise. - * - * @see https://php.net/ctype-xdigit - * - * @param string|int $text - * - * @return bool - */ - public static function ctype_xdigit($text) - { - $text = self::convert_int_to_char_for_ctype($text); - - return \is_string($text) && '' !== $text && !preg_match('/[^A-Fa-f0-9]/', $text); - } - - /** - * Converts integers to their char versions according to normal ctype behaviour, if needed. - * - * If an integer between -128 and 255 inclusive is provided, - * it is interpreted as the ASCII value of a single character - * (negative values have 256 added in order to allow characters in the Extended ASCII range). - * Any other integer is interpreted as a string containing the decimal digits of the integer. - * - * @param string|int $int - * - * @return mixed - */ - private static function convert_int_to_char_for_ctype($int) - { - if (!\is_int($int)) { - return $int; - } - - if ($int < -128 || $int > 255) { - return (string) $int; - } - - if ($int < 0) { - $int += 256; - } - - return \chr($int); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/polyfill-ctype/LICENSE b/srcs/phpmyadmin/vendor/symfony/polyfill-ctype/LICENSE deleted file mode 100644 index 3f853aa..0000000 --- a/srcs/phpmyadmin/vendor/symfony/polyfill-ctype/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2018-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. diff --git a/srcs/phpmyadmin/vendor/symfony/polyfill-ctype/README.md b/srcs/phpmyadmin/vendor/symfony/polyfill-ctype/README.md deleted file mode 100644 index 8add1ab..0000000 --- a/srcs/phpmyadmin/vendor/symfony/polyfill-ctype/README.md +++ /dev/null @@ -1,12 +0,0 @@ -Symfony Polyfill / Ctype -======================== - -This component provides `ctype_*` functions to users who run php versions without the ctype extension. - -More information can be found in the -[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md). - -License -======= - -This library is released under the [MIT license](LICENSE). diff --git a/srcs/phpmyadmin/vendor/symfony/polyfill-ctype/bootstrap.php b/srcs/phpmyadmin/vendor/symfony/polyfill-ctype/bootstrap.php deleted file mode 100644 index 14d1d0f..0000000 --- a/srcs/phpmyadmin/vendor/symfony/polyfill-ctype/bootstrap.php +++ /dev/null @@ -1,26 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -use Symfony\Polyfill\Ctype as p; - -if (!function_exists('ctype_alnum')) { - function ctype_alnum($text) { return p\Ctype::ctype_alnum($text); } - function ctype_alpha($text) { return p\Ctype::ctype_alpha($text); } - function ctype_cntrl($text) { return p\Ctype::ctype_cntrl($text); } - function ctype_digit($text) { return p\Ctype::ctype_digit($text); } - function ctype_graph($text) { return p\Ctype::ctype_graph($text); } - function ctype_lower($text) { return p\Ctype::ctype_lower($text); } - function ctype_print($text) { return p\Ctype::ctype_print($text); } - function ctype_punct($text) { return p\Ctype::ctype_punct($text); } - function ctype_space($text) { return p\Ctype::ctype_space($text); } - function ctype_upper($text) { return p\Ctype::ctype_upper($text); } - function ctype_xdigit($text) { return p\Ctype::ctype_xdigit($text); } -} diff --git a/srcs/phpmyadmin/vendor/symfony/polyfill-ctype/composer.json b/srcs/phpmyadmin/vendor/symfony/polyfill-ctype/composer.json deleted file mode 100644 index 2a2ea04..0000000 --- a/srcs/phpmyadmin/vendor/symfony/polyfill-ctype/composer.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "symfony/polyfill-ctype", - "type": "library", - "description": "Symfony polyfill for ctype functions", - "keywords": ["polyfill", "compatibility", "portable", "ctype"], - "homepage": "https://symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "require": { - "php": ">=5.3.3" - }, - "autoload": { - "psr-4": { "Symfony\\Polyfill\\Ctype\\": "" }, - "files": [ "bootstrap.php" ] - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "1.13-dev" - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/polyfill-mbstring/LICENSE b/srcs/phpmyadmin/vendor/symfony/polyfill-mbstring/LICENSE deleted file mode 100644 index 4cd8bdd..0000000 --- a/srcs/phpmyadmin/vendor/symfony/polyfill-mbstring/LICENSE +++ /dev/null @@ -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. diff --git a/srcs/phpmyadmin/vendor/symfony/polyfill-mbstring/Mbstring.php b/srcs/phpmyadmin/vendor/symfony/polyfill-mbstring/Mbstring.php deleted file mode 100644 index bf882ba..0000000 --- a/srcs/phpmyadmin/vendor/symfony/polyfill-mbstring/Mbstring.php +++ /dev/null @@ -1,840 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Polyfill\Mbstring; - -/** - * Partial mbstring implementation in PHP, iconv based, UTF-8 centric. - * - * Implemented: - * - mb_chr - Returns a specific character from its Unicode code point - * - mb_convert_encoding - Convert character encoding - * - mb_convert_variables - Convert character code in variable(s) - * - mb_decode_mimeheader - Decode string in MIME header field - * - mb_encode_mimeheader - Encode string for MIME header XXX NATIVE IMPLEMENTATION IS REALLY BUGGED - * - mb_decode_numericentity - Decode HTML numeric string reference to character - * - mb_encode_numericentity - Encode character to HTML numeric string reference - * - mb_convert_case - Perform case folding on a string - * - mb_detect_encoding - Detect character encoding - * - mb_get_info - Get internal settings of mbstring - * - mb_http_input - Detect HTTP input character encoding - * - mb_http_output - Set/Get HTTP output character encoding - * - mb_internal_encoding - Set/Get internal character encoding - * - mb_list_encodings - Returns an array of all supported encodings - * - mb_ord - Returns the Unicode code point of a character - * - mb_output_handler - Callback function converts character encoding in output buffer - * - mb_scrub - Replaces ill-formed byte sequences with substitute characters - * - mb_strlen - Get string length - * - mb_strpos - Find position of first occurrence of string in a string - * - mb_strrpos - Find position of last occurrence of a string in a string - * - mb_str_split - Convert a string to an array - * - mb_strtolower - Make a string lowercase - * - mb_strtoupper - Make a string uppercase - * - mb_substitute_character - Set/Get substitution character - * - mb_substr - Get part of string - * - mb_stripos - Finds position of first occurrence of a string within another, case insensitive - * - mb_stristr - Finds first occurrence of a string within another, case insensitive - * - mb_strrchr - Finds the last occurrence of a character in a string within another - * - mb_strrichr - Finds the last occurrence of a character in a string within another, case insensitive - * - mb_strripos - Finds position of last occurrence of a string within another, case insensitive - * - mb_strstr - Finds first occurrence of a string within another - * - mb_strwidth - Return width of string - * - mb_substr_count - Count the number of substring occurrences - * - * Not implemented: - * - mb_convert_kana - Convert "kana" one from another ("zen-kaku", "han-kaku" and more) - * - mb_ereg_* - Regular expression with multibyte support - * - mb_parse_str - Parse GET/POST/COOKIE data and set global variable - * - mb_preferred_mime_name - Get MIME charset string - * - mb_regex_encoding - Returns current encoding for multibyte regex as string - * - mb_regex_set_options - Set/Get the default options for mbregex functions - * - mb_send_mail - Send encoded mail - * - mb_split - Split multibyte string using regular expression - * - mb_strcut - Get part of string - * - mb_strimwidth - Get truncated string with specified width - * - * @author Nicolas Grekas - * - * @internal - */ -final class Mbstring -{ - const MB_CASE_FOLD = PHP_INT_MAX; - - private static $encodingList = array('ASCII', 'UTF-8'); - private static $language = 'neutral'; - private static $internalEncoding = 'UTF-8'; - private static $caseFold = array( - array('µ', 'ſ', "\xCD\x85", 'ς', "\xCF\x90", "\xCF\x91", "\xCF\x95", "\xCF\x96", "\xCF\xB0", "\xCF\xB1", "\xCF\xB5", "\xE1\xBA\x9B", "\xE1\xBE\xBE"), - array('μ', 's', 'ι', 'σ', 'β', 'θ', 'φ', 'π', 'κ', 'ρ', 'ε', "\xE1\xB9\xA1", 'ι'), - ); - - public static function mb_convert_encoding($s, $toEncoding, $fromEncoding = null) - { - if (\is_array($fromEncoding) || false !== strpos($fromEncoding, ',')) { - $fromEncoding = self::mb_detect_encoding($s, $fromEncoding); - } else { - $fromEncoding = self::getEncoding($fromEncoding); - } - - $toEncoding = self::getEncoding($toEncoding); - - if ('BASE64' === $fromEncoding) { - $s = base64_decode($s); - $fromEncoding = $toEncoding; - } - - if ('BASE64' === $toEncoding) { - return base64_encode($s); - } - - if ('HTML-ENTITIES' === $toEncoding || 'HTML' === $toEncoding) { - if ('HTML-ENTITIES' === $fromEncoding || 'HTML' === $fromEncoding) { - $fromEncoding = 'Windows-1252'; - } - if ('UTF-8' !== $fromEncoding) { - $s = iconv($fromEncoding, 'UTF-8//IGNORE', $s); - } - - return preg_replace_callback('/[\x80-\xFF]+/', array(__CLASS__, 'html_encoding_callback'), $s); - } - - if ('HTML-ENTITIES' === $fromEncoding) { - $s = html_entity_decode($s, ENT_COMPAT, 'UTF-8'); - $fromEncoding = 'UTF-8'; - } - - return iconv($fromEncoding, $toEncoding.'//IGNORE', $s); - } - - public static function mb_convert_variables($toEncoding, $fromEncoding, &$a = null, &$b = null, &$c = null, &$d = null, &$e = null, &$f = null) - { - $vars = array(&$a, &$b, &$c, &$d, &$e, &$f); - - $ok = true; - array_walk_recursive($vars, function (&$v) use (&$ok, $toEncoding, $fromEncoding) { - if (false === $v = Mbstring::mb_convert_encoding($v, $toEncoding, $fromEncoding)) { - $ok = false; - } - }); - - return $ok ? $fromEncoding : false; - } - - public static function mb_decode_mimeheader($s) - { - return iconv_mime_decode($s, 2, self::$internalEncoding); - } - - public static function mb_encode_mimeheader($s, $charset = null, $transferEncoding = null, $linefeed = null, $indent = null) - { - trigger_error('mb_encode_mimeheader() is bugged. Please use iconv_mime_encode() instead', E_USER_WARNING); - } - - public static function mb_decode_numericentity($s, $convmap, $encoding = null) - { - if (null !== $s && !\is_scalar($s) && !(\is_object($s) && \method_exists($s, '__toString'))) { - trigger_error('mb_decode_numericentity() expects parameter 1 to be string, '.\gettype($s).' given', E_USER_WARNING); - - return null; - } - - if (!\is_array($convmap) || !$convmap) { - return false; - } - - if (null !== $encoding && !\is_scalar($encoding)) { - trigger_error('mb_decode_numericentity() expects parameter 3 to be string, '.\gettype($s).' given', E_USER_WARNING); - - return ''; // Instead of null (cf. mb_encode_numericentity). - } - - $s = (string) $s; - if ('' === $s) { - return ''; - } - - $encoding = self::getEncoding($encoding); - - if ('UTF-8' === $encoding) { - $encoding = null; - if (!preg_match('//u', $s)) { - $s = @iconv('UTF-8', 'UTF-8//IGNORE', $s); - } - } else { - $s = iconv($encoding, 'UTF-8//IGNORE', $s); - } - - $cnt = floor(\count($convmap) / 4) * 4; - - for ($i = 0; $i < $cnt; $i += 4) { - // collector_decode_htmlnumericentity ignores $convmap[$i + 3] - $convmap[$i] += $convmap[$i + 2]; - $convmap[$i + 1] += $convmap[$i + 2]; - } - - $s = preg_replace_callback('/&#(?:0*([0-9]+)|x0*([0-9a-fA-F]+))(?!&);?/', function (array $m) use ($cnt, $convmap) { - $c = isset($m[2]) ? (int) hexdec($m[2]) : $m[1]; - for ($i = 0; $i < $cnt; $i += 4) { - if ($c >= $convmap[$i] && $c <= $convmap[$i + 1]) { - return Mbstring::mb_chr($c - $convmap[$i + 2]); - } - } - - return $m[0]; - }, $s); - - if (null === $encoding) { - return $s; - } - - return iconv('UTF-8', $encoding.'//IGNORE', $s); - } - - public static function mb_encode_numericentity($s, $convmap, $encoding = null, $is_hex = false) - { - if (null !== $s && !\is_scalar($s) && !(\is_object($s) && \method_exists($s, '__toString'))) { - trigger_error('mb_encode_numericentity() expects parameter 1 to be string, '.\gettype($s).' given', E_USER_WARNING); - - return null; - } - - if (!\is_array($convmap) || !$convmap) { - return false; - } - - if (null !== $encoding && !\is_scalar($encoding)) { - trigger_error('mb_encode_numericentity() expects parameter 3 to be string, '.\gettype($s).' given', E_USER_WARNING); - - return null; // Instead of '' (cf. mb_decode_numericentity). - } - - if (null !== $is_hex && !\is_scalar($is_hex)) { - trigger_error('mb_encode_numericentity() expects parameter 4 to be boolean, '.\gettype($s).' given', E_USER_WARNING); - - return null; - } - - $s = (string) $s; - if ('' === $s) { - return ''; - } - - $encoding = self::getEncoding($encoding); - - if ('UTF-8' === $encoding) { - $encoding = null; - if (!preg_match('//u', $s)) { - $s = @iconv('UTF-8', 'UTF-8//IGNORE', $s); - } - } else { - $s = iconv($encoding, 'UTF-8//IGNORE', $s); - } - - static $ulenMask = array("\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4); - - $cnt = floor(\count($convmap) / 4) * 4; - $i = 0; - $len = \strlen($s); - $result = ''; - - while ($i < $len) { - $ulen = $s[$i] < "\x80" ? 1 : $ulenMask[$s[$i] & "\xF0"]; - $uchr = substr($s, $i, $ulen); - $i += $ulen; - $c = self::mb_ord($uchr); - - for ($j = 0; $j < $cnt; $j += 4) { - if ($c >= $convmap[$j] && $c <= $convmap[$j + 1]) { - $cOffset = ($c + $convmap[$j + 2]) & $convmap[$j + 3]; - $result .= $is_hex ? sprintf('&#x%X;', $cOffset) : '&#'.$cOffset.';'; - continue 2; - } - } - $result .= $uchr; - } - - if (null === $encoding) { - return $result; - } - - return iconv('UTF-8', $encoding.'//IGNORE', $result); - } - - public static function mb_convert_case($s, $mode, $encoding = null) - { - $s = (string) $s; - if ('' === $s) { - return ''; - } - - $encoding = self::getEncoding($encoding); - - if ('UTF-8' === $encoding) { - $encoding = null; - if (!preg_match('//u', $s)) { - $s = @iconv('UTF-8', 'UTF-8//IGNORE', $s); - } - } else { - $s = iconv($encoding, 'UTF-8//IGNORE', $s); - } - - if (MB_CASE_TITLE == $mode) { - static $titleRegexp = null; - if (null === $titleRegexp) { - $titleRegexp = self::getData('titleCaseRegexp'); - } - $s = preg_replace_callback($titleRegexp, array(__CLASS__, 'title_case'), $s); - } else { - if (MB_CASE_UPPER == $mode) { - static $upper = null; - if (null === $upper) { - $upper = self::getData('upperCase'); - } - $map = $upper; - } else { - if (self::MB_CASE_FOLD === $mode) { - $s = str_replace(self::$caseFold[0], self::$caseFold[1], $s); - } - - static $lower = null; - if (null === $lower) { - $lower = self::getData('lowerCase'); - } - $map = $lower; - } - - static $ulenMask = array("\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4); - - $i = 0; - $len = \strlen($s); - - while ($i < $len) { - $ulen = $s[$i] < "\x80" ? 1 : $ulenMask[$s[$i] & "\xF0"]; - $uchr = substr($s, $i, $ulen); - $i += $ulen; - - if (isset($map[$uchr])) { - $uchr = $map[$uchr]; - $nlen = \strlen($uchr); - - if ($nlen == $ulen) { - $nlen = $i; - do { - $s[--$nlen] = $uchr[--$ulen]; - } while ($ulen); - } else { - $s = substr_replace($s, $uchr, $i - $ulen, $ulen); - $len += $nlen - $ulen; - $i += $nlen - $ulen; - } - } - } - } - - if (null === $encoding) { - return $s; - } - - return iconv('UTF-8', $encoding.'//IGNORE', $s); - } - - public static function mb_internal_encoding($encoding = null) - { - if (null === $encoding) { - return self::$internalEncoding; - } - - $encoding = self::getEncoding($encoding); - - if ('UTF-8' === $encoding || false !== @iconv($encoding, $encoding, ' ')) { - self::$internalEncoding = $encoding; - - return true; - } - - return false; - } - - public static function mb_language($lang = null) - { - if (null === $lang) { - return self::$language; - } - - switch ($lang = strtolower($lang)) { - case 'uni': - case 'neutral': - self::$language = $lang; - - return true; - } - - return false; - } - - public static function mb_list_encodings() - { - return array('UTF-8'); - } - - public static function mb_encoding_aliases($encoding) - { - switch (strtoupper($encoding)) { - case 'UTF8': - case 'UTF-8': - return array('utf8'); - } - - return false; - } - - public static function mb_check_encoding($var = null, $encoding = null) - { - if (null === $encoding) { - if (null === $var) { - return false; - } - $encoding = self::$internalEncoding; - } - - return self::mb_detect_encoding($var, array($encoding)) || false !== @iconv($encoding, $encoding, $var); - } - - public static function mb_detect_encoding($str, $encodingList = null, $strict = false) - { - if (null === $encodingList) { - $encodingList = self::$encodingList; - } else { - if (!\is_array($encodingList)) { - $encodingList = array_map('trim', explode(',', $encodingList)); - } - $encodingList = array_map('strtoupper', $encodingList); - } - - foreach ($encodingList as $enc) { - switch ($enc) { - case 'ASCII': - if (!preg_match('/[\x80-\xFF]/', $str)) { - return $enc; - } - break; - - case 'UTF8': - case 'UTF-8': - if (preg_match('//u', $str)) { - return 'UTF-8'; - } - break; - - default: - if (0 === strncmp($enc, 'ISO-8859-', 9)) { - return $enc; - } - } - } - - return false; - } - - public static function mb_detect_order($encodingList = null) - { - if (null === $encodingList) { - return self::$encodingList; - } - - if (!\is_array($encodingList)) { - $encodingList = array_map('trim', explode(',', $encodingList)); - } - $encodingList = array_map('strtoupper', $encodingList); - - foreach ($encodingList as $enc) { - switch ($enc) { - default: - if (strncmp($enc, 'ISO-8859-', 9)) { - return false; - } - // no break - case 'ASCII': - case 'UTF8': - case 'UTF-8': - } - } - - self::$encodingList = $encodingList; - - return true; - } - - public static function mb_strlen($s, $encoding = null) - { - $encoding = self::getEncoding($encoding); - if ('CP850' === $encoding || 'ASCII' === $encoding) { - return \strlen($s); - } - - return @iconv_strlen($s, $encoding); - } - - public static function mb_strpos($haystack, $needle, $offset = 0, $encoding = null) - { - $encoding = self::getEncoding($encoding); - if ('CP850' === $encoding || 'ASCII' === $encoding) { - return strpos($haystack, $needle, $offset); - } - - $needle = (string) $needle; - if ('' === $needle) { - trigger_error(__METHOD__.': Empty delimiter', E_USER_WARNING); - - return false; - } - - return iconv_strpos($haystack, $needle, $offset, $encoding); - } - - public static function mb_strrpos($haystack, $needle, $offset = 0, $encoding = null) - { - $encoding = self::getEncoding($encoding); - if ('CP850' === $encoding || 'ASCII' === $encoding) { - return strrpos($haystack, $needle, $offset); - } - - if ($offset != (int) $offset) { - $offset = 0; - } elseif ($offset = (int) $offset) { - if ($offset < 0) { - if (0 > $offset += self::mb_strlen($needle)) { - $haystack = self::mb_substr($haystack, 0, $offset, $encoding); - } - $offset = 0; - } else { - $haystack = self::mb_substr($haystack, $offset, 2147483647, $encoding); - } - } - - $pos = iconv_strrpos($haystack, $needle, $encoding); - - return false !== $pos ? $offset + $pos : false; - } - - public static function mb_str_split($string, $split_length = 1, $encoding = null) - { - if (null !== $string && !\is_scalar($string) && !(\is_object($string) && \method_exists($string, '__toString'))) { - trigger_error('mb_str_split() expects parameter 1 to be string, '.\gettype($string).' given', E_USER_WARNING); - - return null; - } - - if (1 > $split_length = (int) $split_length) { - trigger_error('The length of each segment must be greater than zero', E_USER_WARNING); - - return false; - } - - if (null === $encoding) { - $encoding = mb_internal_encoding(); - } - - if ('UTF-8' === $encoding = self::getEncoding($encoding)) { - return preg_split("/(.{{$split_length}})/u", $string, null, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY); - } - - $result = array(); - $length = mb_strlen($string, $encoding); - - for ($i = 0; $i < $length; $i += $split_length) { - $result[] = mb_substr($string, $i, $split_length, $encoding); - } - - return $result; - } - - public static function mb_strtolower($s, $encoding = null) - { - return self::mb_convert_case($s, MB_CASE_LOWER, $encoding); - } - - public static function mb_strtoupper($s, $encoding = null) - { - return self::mb_convert_case($s, MB_CASE_UPPER, $encoding); - } - - public static function mb_substitute_character($c = null) - { - if (0 === strcasecmp($c, 'none')) { - return true; - } - - return null !== $c ? false : 'none'; - } - - public static function mb_substr($s, $start, $length = null, $encoding = null) - { - $encoding = self::getEncoding($encoding); - if ('CP850' === $encoding || 'ASCII' === $encoding) { - return (string) substr($s, $start, null === $length ? 2147483647 : $length); - } - - if ($start < 0) { - $start = iconv_strlen($s, $encoding) + $start; - if ($start < 0) { - $start = 0; - } - } - - if (null === $length) { - $length = 2147483647; - } elseif ($length < 0) { - $length = iconv_strlen($s, $encoding) + $length - $start; - if ($length < 0) { - return ''; - } - } - - return (string) iconv_substr($s, $start, $length, $encoding); - } - - public static function mb_stripos($haystack, $needle, $offset = 0, $encoding = null) - { - $haystack = self::mb_convert_case($haystack, self::MB_CASE_FOLD, $encoding); - $needle = self::mb_convert_case($needle, self::MB_CASE_FOLD, $encoding); - - return self::mb_strpos($haystack, $needle, $offset, $encoding); - } - - public static function mb_stristr($haystack, $needle, $part = false, $encoding = null) - { - $pos = self::mb_stripos($haystack, $needle, 0, $encoding); - - return self::getSubpart($pos, $part, $haystack, $encoding); - } - - public static function mb_strrchr($haystack, $needle, $part = false, $encoding = null) - { - $encoding = self::getEncoding($encoding); - if ('CP850' === $encoding || 'ASCII' === $encoding) { - return strrchr($haystack, $needle, $part); - } - $needle = self::mb_substr($needle, 0, 1, $encoding); - $pos = iconv_strrpos($haystack, $needle, $encoding); - - return self::getSubpart($pos, $part, $haystack, $encoding); - } - - public static function mb_strrichr($haystack, $needle, $part = false, $encoding = null) - { - $needle = self::mb_substr($needle, 0, 1, $encoding); - $pos = self::mb_strripos($haystack, $needle, $encoding); - - return self::getSubpart($pos, $part, $haystack, $encoding); - } - - public static function mb_strripos($haystack, $needle, $offset = 0, $encoding = null) - { - $haystack = self::mb_convert_case($haystack, self::MB_CASE_FOLD, $encoding); - $needle = self::mb_convert_case($needle, self::MB_CASE_FOLD, $encoding); - - return self::mb_strrpos($haystack, $needle, $offset, $encoding); - } - - public static function mb_strstr($haystack, $needle, $part = false, $encoding = null) - { - $pos = strpos($haystack, $needle); - if (false === $pos) { - return false; - } - if ($part) { - return substr($haystack, 0, $pos); - } - - return substr($haystack, $pos); - } - - public static function mb_get_info($type = 'all') - { - $info = array( - 'internal_encoding' => self::$internalEncoding, - 'http_output' => 'pass', - 'http_output_conv_mimetypes' => '^(text/|application/xhtml\+xml)', - 'func_overload' => 0, - 'func_overload_list' => 'no overload', - 'mail_charset' => 'UTF-8', - 'mail_header_encoding' => 'BASE64', - 'mail_body_encoding' => 'BASE64', - 'illegal_chars' => 0, - 'encoding_translation' => 'Off', - 'language' => self::$language, - 'detect_order' => self::$encodingList, - 'substitute_character' => 'none', - 'strict_detection' => 'Off', - ); - - if ('all' === $type) { - return $info; - } - if (isset($info[$type])) { - return $info[$type]; - } - - return false; - } - - public static function mb_http_input($type = '') - { - return false; - } - - public static function mb_http_output($encoding = null) - { - return null !== $encoding ? 'pass' === $encoding : 'pass'; - } - - public static function mb_strwidth($s, $encoding = null) - { - $encoding = self::getEncoding($encoding); - - if ('UTF-8' !== $encoding) { - $s = iconv($encoding, 'UTF-8//IGNORE', $s); - } - - $s = preg_replace('/[\x{1100}-\x{115F}\x{2329}\x{232A}\x{2E80}-\x{303E}\x{3040}-\x{A4CF}\x{AC00}-\x{D7A3}\x{F900}-\x{FAFF}\x{FE10}-\x{FE19}\x{FE30}-\x{FE6F}\x{FF00}-\x{FF60}\x{FFE0}-\x{FFE6}\x{20000}-\x{2FFFD}\x{30000}-\x{3FFFD}]/u', '', $s, -1, $wide); - - return ($wide << 1) + iconv_strlen($s, 'UTF-8'); - } - - public static function mb_substr_count($haystack, $needle, $encoding = null) - { - return substr_count($haystack, $needle); - } - - public static function mb_output_handler($contents, $status) - { - return $contents; - } - - 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 = self::getEncoding($encoding)) { - $s = mb_convert_encoding($s, $encoding, 'UTF-8'); - } - - return $s; - } - - public static function mb_ord($s, $encoding = null) - { - if ('UTF-8' !== $encoding = self::getEncoding($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; - } - - private static function getSubpart($pos, $part, $haystack, $encoding) - { - if (false === $pos) { - return false; - } - if ($part) { - return self::mb_substr($haystack, 0, $pos, $encoding); - } - - return self::mb_substr($haystack, $pos, null, $encoding); - } - - private static function html_encoding_callback(array $m) - { - $i = 1; - $entities = ''; - $m = unpack('C*', htmlentities($m[0], ENT_COMPAT, 'UTF-8')); - - while (isset($m[$i])) { - if (0x80 > $m[$i]) { - $entities .= \chr($m[$i++]); - continue; - } - if (0xF0 <= $m[$i]) { - $c = (($m[$i++] - 0xF0) << 18) + (($m[$i++] - 0x80) << 12) + (($m[$i++] - 0x80) << 6) + $m[$i++] - 0x80; - } elseif (0xE0 <= $m[$i]) { - $c = (($m[$i++] - 0xE0) << 12) + (($m[$i++] - 0x80) << 6) + $m[$i++] - 0x80; - } else { - $c = (($m[$i++] - 0xC0) << 6) + $m[$i++] - 0x80; - } - - $entities .= '&#'.$c.';'; - } - - return $entities; - } - - private static function title_case(array $s) - { - return self::mb_convert_case($s[1], MB_CASE_UPPER, 'UTF-8').self::mb_convert_case($s[2], MB_CASE_LOWER, 'UTF-8'); - } - - private static function getData($file) - { - if (file_exists($file = __DIR__.'/Resources/unidata/'.$file.'.php')) { - return require $file; - } - - return false; - } - - private static function getEncoding($encoding) - { - if (null === $encoding) { - return self::$internalEncoding; - } - - if ('UTF-8' === $encoding) { - return 'UTF-8'; - } - - $encoding = strtoupper($encoding); - - if ('8BIT' === $encoding || 'BINARY' === $encoding) { - return 'CP850'; - } - - if ('UTF8' === $encoding) { - return 'UTF-8'; - } - - return $encoding; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/polyfill-mbstring/README.md b/srcs/phpmyadmin/vendor/symfony/polyfill-mbstring/README.md deleted file mode 100644 index 342e828..0000000 --- a/srcs/phpmyadmin/vendor/symfony/polyfill-mbstring/README.md +++ /dev/null @@ -1,13 +0,0 @@ -Symfony Polyfill / Mbstring -=========================== - -This component provides a partial, native PHP implementation for the -[Mbstring](http://php.net/mbstring) extension. - -More information can be found in the -[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md). - -License -======= - -This library is released under the [MIT license](LICENSE). diff --git a/srcs/phpmyadmin/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php b/srcs/phpmyadmin/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php deleted file mode 100644 index e6fbfa6..0000000 --- a/srcs/phpmyadmin/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php +++ /dev/null @@ -1,1096 +0,0 @@ - 'a', - 'B' => 'b', - 'C' => 'c', - 'D' => 'd', - 'E' => 'e', - 'F' => 'f', - 'G' => 'g', - 'H' => 'h', - 'I' => 'i', - 'J' => 'j', - 'K' => 'k', - 'L' => 'l', - 'M' => 'm', - 'N' => 'n', - 'O' => 'o', - 'P' => 'p', - 'Q' => 'q', - 'R' => 'r', - 'S' => 's', - 'T' => 't', - 'U' => 'u', - 'V' => 'v', - 'W' => 'w', - 'X' => 'x', - 'Y' => 'y', - 'Z' => 'z', - 'À' => 'à', - 'Á' => 'á', - 'Â' => 'â', - 'Ã' => 'ã', - 'Ä' => 'ä', - 'Å' => 'å', - 'Æ' => 'æ', - 'Ç' => 'ç', - 'È' => 'è', - 'É' => 'é', - 'Ê' => 'ê', - 'Ë' => 'ë', - 'Ì' => 'ì', - 'Í' => 'í', - 'Î' => 'î', - 'Ï' => 'ï', - 'Ð' => 'ð', - 'Ñ' => 'ñ', - 'Ò' => 'ò', - 'Ó' => 'ó', - 'Ô' => 'ô', - 'Õ' => 'õ', - 'Ö' => 'ö', - 'Ø' => 'ø', - 'Ù' => 'ù', - 'Ú' => 'ú', - 'Û' => 'û', - 'Ü' => 'ü', - 'Ý' => 'ý', - 'Þ' => 'þ', - 'Ā' => 'ā', - 'Ă' => 'ă', - 'Ą' => 'ą', - 'Ć' => 'ć', - 'Ĉ' => 'ĉ', - 'Ċ' => 'ċ', - 'Č' => 'č', - 'Ď' => 'ď', - 'Đ' => 'đ', - 'Ē' => 'ē', - 'Ĕ' => 'ĕ', - 'Ė' => 'ė', - 'Ę' => 'ę', - 'Ě' => 'ě', - 'Ĝ' => 'ĝ', - 'Ğ' => 'ğ', - 'Ġ' => 'ġ', - 'Ģ' => 'ģ', - 'Ĥ' => 'ĥ', - 'Ħ' => 'ħ', - 'Ĩ' => 'ĩ', - 'Ī' => 'ī', - 'Ĭ' => 'ĭ', - 'Į' => 'į', - 'İ' => 'i', - 'IJ' => 'ij', - 'Ĵ' => 'ĵ', - 'Ķ' => 'ķ', - 'Ĺ' => 'ĺ', - 'Ļ' => 'ļ', - 'Ľ' => 'ľ', - 'Ŀ' => 'ŀ', - 'Ł' => 'ł', - 'Ń' => 'ń', - 'Ņ' => 'ņ', - 'Ň' => 'ň', - 'Ŋ' => 'ŋ', - 'Ō' => 'ō', - 'Ŏ' => 'ŏ', - 'Ő' => 'ő', - 'Œ' => 'œ', - 'Ŕ' => 'ŕ', - 'Ŗ' => 'ŗ', - 'Ř' => 'ř', - 'Ś' => 'ś', - 'Ŝ' => 'ŝ', - 'Ş' => 'ş', - 'Š' => 'š', - 'Ţ' => 'ţ', - 'Ť' => 'ť', - 'Ŧ' => 'ŧ', - 'Ũ' => 'ũ', - 'Ū' => 'ū', - 'Ŭ' => 'ŭ', - 'Ů' => 'ů', - 'Ű' => 'ű', - 'Ų' => 'ų', - 'Ŵ' => 'ŵ', - 'Ŷ' => 'ŷ', - 'Ÿ' => 'ÿ', - 'Ź' => 'ź', - 'Ż' => 'ż', - 'Ž' => 'ž', - 'Ɓ' => 'ɓ', - 'Ƃ' => 'ƃ', - 'Ƅ' => 'ƅ', - 'Ɔ' => 'ɔ', - 'Ƈ' => 'ƈ', - 'Ɖ' => 'ɖ', - 'Ɗ' => 'ɗ', - 'Ƌ' => 'ƌ', - 'Ǝ' => 'ǝ', - 'Ə' => 'ə', - 'Ɛ' => 'ɛ', - 'Ƒ' => 'ƒ', - 'Ɠ' => 'ɠ', - 'Ɣ' => 'ɣ', - 'Ɩ' => 'ɩ', - 'Ɨ' => 'ɨ', - 'Ƙ' => 'ƙ', - 'Ɯ' => 'ɯ', - 'Ɲ' => 'ɲ', - 'Ɵ' => 'ɵ', - 'Ơ' => 'ơ', - 'Ƣ' => 'ƣ', - 'Ƥ' => 'ƥ', - 'Ʀ' => 'ʀ', - 'Ƨ' => 'ƨ', - 'Ʃ' => 'ʃ', - 'Ƭ' => 'ƭ', - 'Ʈ' => 'ʈ', - 'Ư' => 'ư', - 'Ʊ' => 'ʊ', - 'Ʋ' => 'ʋ', - 'Ƴ' => 'ƴ', - 'Ƶ' => 'ƶ', - 'Ʒ' => 'ʒ', - 'Ƹ' => 'ƹ', - 'Ƽ' => 'ƽ', - 'DŽ' => 'dž', - 'Dž' => 'dž', - 'LJ' => 'lj', - 'Lj' => 'lj', - 'NJ' => 'nj', - 'Nj' => 'nj', - 'Ǎ' => 'ǎ', - 'Ǐ' => 'ǐ', - 'Ǒ' => 'ǒ', - 'Ǔ' => 'ǔ', - 'Ǖ' => 'ǖ', - 'Ǘ' => 'ǘ', - 'Ǚ' => 'ǚ', - 'Ǜ' => 'ǜ', - 'Ǟ' => 'ǟ', - 'Ǡ' => 'ǡ', - 'Ǣ' => 'ǣ', - 'Ǥ' => 'ǥ', - 'Ǧ' => 'ǧ', - 'Ǩ' => 'ǩ', - 'Ǫ' => 'ǫ', - 'Ǭ' => 'ǭ', - 'Ǯ' => 'ǯ', - 'DZ' => 'dz', - 'Dz' => 'dz', - 'Ǵ' => 'ǵ', - 'Ƕ' => 'ƕ', - 'Ƿ' => 'ƿ', - 'Ǹ' => 'ǹ', - 'Ǻ' => 'ǻ', - 'Ǽ' => 'ǽ', - 'Ǿ' => 'ǿ', - 'Ȁ' => 'ȁ', - 'Ȃ' => 'ȃ', - 'Ȅ' => 'ȅ', - 'Ȇ' => 'ȇ', - 'Ȉ' => 'ȉ', - 'Ȋ' => 'ȋ', - 'Ȍ' => 'ȍ', - 'Ȏ' => 'ȏ', - 'Ȑ' => 'ȑ', - 'Ȓ' => 'ȓ', - 'Ȕ' => 'ȕ', - 'Ȗ' => 'ȗ', - 'Ș' => 'ș', - 'Ț' => 'ț', - 'Ȝ' => 'ȝ', - 'Ȟ' => 'ȟ', - 'Ƞ' => 'ƞ', - 'Ȣ' => 'ȣ', - 'Ȥ' => 'ȥ', - 'Ȧ' => 'ȧ', - 'Ȩ' => 'ȩ', - 'Ȫ' => 'ȫ', - 'Ȭ' => 'ȭ', - 'Ȯ' => 'ȯ', - 'Ȱ' => 'ȱ', - 'Ȳ' => 'ȳ', - 'Ⱥ' => 'ⱥ', - 'Ȼ' => 'ȼ', - 'Ƚ' => 'ƚ', - 'Ⱦ' => 'ⱦ', - 'Ɂ' => 'ɂ', - 'Ƀ' => 'ƀ', - 'Ʉ' => 'ʉ', - 'Ʌ' => 'ʌ', - 'Ɇ' => 'ɇ', - 'Ɉ' => 'ɉ', - 'Ɋ' => 'ɋ', - 'Ɍ' => 'ɍ', - 'Ɏ' => 'ɏ', - 'Ͱ' => 'ͱ', - 'Ͳ' => 'ͳ', - 'Ͷ' => 'ͷ', - 'Ϳ' => 'ϳ', - 'Ά' => 'ά', - 'Έ' => 'έ', - 'Ή' => 'ή', - 'Ί' => 'ί', - 'Ό' => 'ό', - 'Ύ' => 'ύ', - 'Ώ' => 'ώ', - 'Α' => 'α', - 'Β' => 'β', - 'Γ' => 'γ', - 'Δ' => 'δ', - 'Ε' => 'ε', - 'Ζ' => 'ζ', - 'Η' => 'η', - 'Θ' => 'θ', - 'Ι' => 'ι', - 'Κ' => 'κ', - 'Λ' => 'λ', - 'Μ' => 'μ', - 'Ν' => 'ν', - 'Ξ' => 'ξ', - 'Ο' => 'ο', - 'Π' => 'π', - 'Ρ' => 'ρ', - 'Σ' => 'σ', - 'Τ' => 'τ', - 'Υ' => 'υ', - 'Φ' => 'φ', - 'Χ' => 'χ', - 'Ψ' => 'ψ', - 'Ω' => 'ω', - 'Ϊ' => 'ϊ', - 'Ϋ' => 'ϋ', - 'Ϗ' => 'ϗ', - 'Ϙ' => 'ϙ', - 'Ϛ' => 'ϛ', - 'Ϝ' => 'ϝ', - 'Ϟ' => 'ϟ', - 'Ϡ' => 'ϡ', - 'Ϣ' => 'ϣ', - 'Ϥ' => 'ϥ', - 'Ϧ' => 'ϧ', - 'Ϩ' => 'ϩ', - 'Ϫ' => 'ϫ', - 'Ϭ' => 'ϭ', - 'Ϯ' => 'ϯ', - 'ϴ' => 'θ', - 'Ϸ' => 'ϸ', - 'Ϲ' => 'ϲ', - 'Ϻ' => 'ϻ', - 'Ͻ' => 'ͻ', - 'Ͼ' => 'ͼ', - 'Ͽ' => 'ͽ', - 'Ѐ' => 'ѐ', - 'Ё' => 'ё', - 'Ђ' => 'ђ', - 'Ѓ' => 'ѓ', - 'Є' => 'є', - 'Ѕ' => 'ѕ', - 'І' => 'і', - 'Ї' => 'ї', - 'Ј' => 'ј', - 'Љ' => 'љ', - 'Њ' => 'њ', - 'Ћ' => 'ћ', - 'Ќ' => 'ќ', - 'Ѝ' => 'ѝ', - 'Ў' => 'ў', - 'Џ' => 'џ', - 'А' => 'а', - 'Б' => 'б', - 'В' => 'в', - 'Г' => 'г', - 'Д' => 'д', - 'Е' => 'е', - 'Ж' => 'ж', - 'З' => 'з', - 'И' => 'и', - 'Й' => 'й', - 'К' => 'к', - 'Л' => 'л', - 'М' => 'м', - 'Н' => 'н', - 'О' => 'о', - 'П' => 'п', - 'Р' => 'р', - 'С' => 'с', - 'Т' => 'т', - 'У' => 'у', - 'Ф' => 'ф', - 'Х' => 'х', - 'Ц' => 'ц', - 'Ч' => 'ч', - 'Ш' => 'ш', - 'Щ' => 'щ', - 'Ъ' => 'ъ', - 'Ы' => 'ы', - 'Ь' => 'ь', - 'Э' => 'э', - 'Ю' => 'ю', - 'Я' => 'я', - 'Ѡ' => 'ѡ', - 'Ѣ' => 'ѣ', - 'Ѥ' => 'ѥ', - 'Ѧ' => 'ѧ', - 'Ѩ' => 'ѩ', - 'Ѫ' => 'ѫ', - 'Ѭ' => 'ѭ', - 'Ѯ' => 'ѯ', - 'Ѱ' => 'ѱ', - 'Ѳ' => 'ѳ', - 'Ѵ' => 'ѵ', - 'Ѷ' => 'ѷ', - 'Ѹ' => 'ѹ', - 'Ѻ' => 'ѻ', - 'Ѽ' => 'ѽ', - 'Ѿ' => 'ѿ', - 'Ҁ' => 'ҁ', - 'Ҋ' => 'ҋ', - 'Ҍ' => 'ҍ', - 'Ҏ' => 'ҏ', - 'Ґ' => 'ґ', - 'Ғ' => 'ғ', - 'Ҕ' => 'ҕ', - 'Җ' => 'җ', - 'Ҙ' => 'ҙ', - 'Қ' => 'қ', - 'Ҝ' => 'ҝ', - 'Ҟ' => 'ҟ', - 'Ҡ' => 'ҡ', - 'Ң' => 'ң', - 'Ҥ' => 'ҥ', - 'Ҧ' => 'ҧ', - 'Ҩ' => 'ҩ', - 'Ҫ' => 'ҫ', - 'Ҭ' => 'ҭ', - 'Ү' => 'ү', - 'Ұ' => 'ұ', - 'Ҳ' => 'ҳ', - 'Ҵ' => 'ҵ', - 'Ҷ' => 'ҷ', - 'Ҹ' => 'ҹ', - 'Һ' => 'һ', - 'Ҽ' => 'ҽ', - 'Ҿ' => 'ҿ', - 'Ӏ' => 'ӏ', - 'Ӂ' => 'ӂ', - 'Ӄ' => 'ӄ', - 'Ӆ' => 'ӆ', - 'Ӈ' => 'ӈ', - 'Ӊ' => 'ӊ', - 'Ӌ' => 'ӌ', - 'Ӎ' => 'ӎ', - 'Ӑ' => 'ӑ', - 'Ӓ' => 'ӓ', - 'Ӕ' => 'ӕ', - 'Ӗ' => 'ӗ', - 'Ә' => 'ә', - 'Ӛ' => 'ӛ', - 'Ӝ' => 'ӝ', - 'Ӟ' => 'ӟ', - 'Ӡ' => 'ӡ', - 'Ӣ' => 'ӣ', - 'Ӥ' => 'ӥ', - 'Ӧ' => 'ӧ', - 'Ө' => 'ө', - 'Ӫ' => 'ӫ', - 'Ӭ' => 'ӭ', - 'Ӯ' => 'ӯ', - 'Ӱ' => 'ӱ', - 'Ӳ' => 'ӳ', - 'Ӵ' => 'ӵ', - 'Ӷ' => 'ӷ', - 'Ӹ' => 'ӹ', - 'Ӻ' => 'ӻ', - 'Ӽ' => 'ӽ', - 'Ӿ' => 'ӿ', - 'Ԁ' => 'ԁ', - 'Ԃ' => 'ԃ', - 'Ԅ' => 'ԅ', - 'Ԇ' => 'ԇ', - 'Ԉ' => 'ԉ', - 'Ԋ' => 'ԋ', - 'Ԍ' => 'ԍ', - 'Ԏ' => 'ԏ', - 'Ԑ' => 'ԑ', - 'Ԓ' => 'ԓ', - 'Ԕ' => 'ԕ', - 'Ԗ' => 'ԗ', - 'Ԙ' => 'ԙ', - 'Ԛ' => 'ԛ', - 'Ԝ' => 'ԝ', - 'Ԟ' => 'ԟ', - 'Ԡ' => 'ԡ', - 'Ԣ' => 'ԣ', - 'Ԥ' => 'ԥ', - 'Ԧ' => 'ԧ', - 'Ԩ' => 'ԩ', - 'Ԫ' => 'ԫ', - 'Ԭ' => 'ԭ', - 'Ԯ' => 'ԯ', - 'Ա' => 'ա', - 'Բ' => 'բ', - 'Գ' => 'գ', - 'Դ' => 'դ', - 'Ե' => 'ե', - 'Զ' => 'զ', - 'Է' => 'է', - 'Ը' => 'ը', - 'Թ' => 'թ', - 'Ժ' => 'ժ', - 'Ի' => 'ի', - 'Լ' => 'լ', - 'Խ' => 'խ', - 'Ծ' => 'ծ', - 'Կ' => 'կ', - 'Հ' => 'հ', - 'Ձ' => 'ձ', - 'Ղ' => 'ղ', - 'Ճ' => 'ճ', - 'Մ' => 'մ', - 'Յ' => 'յ', - 'Ն' => 'ն', - 'Շ' => 'շ', - 'Ո' => 'ո', - 'Չ' => 'չ', - 'Պ' => 'պ', - 'Ջ' => 'ջ', - 'Ռ' => 'ռ', - 'Ս' => 'ս', - 'Վ' => 'վ', - 'Տ' => 'տ', - 'Ր' => 'ր', - 'Ց' => 'ց', - 'Ւ' => 'ւ', - 'Փ' => 'փ', - 'Ք' => 'ք', - 'Օ' => 'օ', - 'Ֆ' => 'ֆ', - 'Ⴀ' => 'ⴀ', - 'Ⴁ' => 'ⴁ', - 'Ⴂ' => 'ⴂ', - 'Ⴃ' => 'ⴃ', - 'Ⴄ' => 'ⴄ', - 'Ⴅ' => 'ⴅ', - 'Ⴆ' => 'ⴆ', - 'Ⴇ' => 'ⴇ', - 'Ⴈ' => 'ⴈ', - 'Ⴉ' => 'ⴉ', - 'Ⴊ' => 'ⴊ', - 'Ⴋ' => 'ⴋ', - 'Ⴌ' => 'ⴌ', - 'Ⴍ' => 'ⴍ', - 'Ⴎ' => 'ⴎ', - 'Ⴏ' => 'ⴏ', - 'Ⴐ' => 'ⴐ', - 'Ⴑ' => 'ⴑ', - 'Ⴒ' => 'ⴒ', - 'Ⴓ' => 'ⴓ', - 'Ⴔ' => 'ⴔ', - 'Ⴕ' => 'ⴕ', - 'Ⴖ' => 'ⴖ', - 'Ⴗ' => 'ⴗ', - 'Ⴘ' => 'ⴘ', - 'Ⴙ' => 'ⴙ', - 'Ⴚ' => 'ⴚ', - 'Ⴛ' => 'ⴛ', - 'Ⴜ' => 'ⴜ', - 'Ⴝ' => 'ⴝ', - 'Ⴞ' => 'ⴞ', - 'Ⴟ' => 'ⴟ', - 'Ⴠ' => 'ⴠ', - 'Ⴡ' => 'ⴡ', - 'Ⴢ' => 'ⴢ', - 'Ⴣ' => 'ⴣ', - 'Ⴤ' => 'ⴤ', - 'Ⴥ' => 'ⴥ', - 'Ⴧ' => 'ⴧ', - 'Ⴭ' => 'ⴭ', - 'Ḁ' => 'ḁ', - 'Ḃ' => 'ḃ', - 'Ḅ' => 'ḅ', - 'Ḇ' => 'ḇ', - 'Ḉ' => 'ḉ', - 'Ḋ' => 'ḋ', - 'Ḍ' => 'ḍ', - 'Ḏ' => 'ḏ', - 'Ḑ' => 'ḑ', - 'Ḓ' => 'ḓ', - 'Ḕ' => 'ḕ', - 'Ḗ' => 'ḗ', - 'Ḙ' => 'ḙ', - 'Ḛ' => 'ḛ', - 'Ḝ' => 'ḝ', - 'Ḟ' => 'ḟ', - 'Ḡ' => 'ḡ', - 'Ḣ' => 'ḣ', - 'Ḥ' => 'ḥ', - 'Ḧ' => 'ḧ', - 'Ḩ' => 'ḩ', - 'Ḫ' => 'ḫ', - 'Ḭ' => 'ḭ', - 'Ḯ' => 'ḯ', - 'Ḱ' => 'ḱ', - 'Ḳ' => 'ḳ', - 'Ḵ' => 'ḵ', - 'Ḷ' => 'ḷ', - 'Ḹ' => 'ḹ', - 'Ḻ' => 'ḻ', - 'Ḽ' => 'ḽ', - 'Ḿ' => 'ḿ', - 'Ṁ' => 'ṁ', - 'Ṃ' => 'ṃ', - 'Ṅ' => 'ṅ', - 'Ṇ' => 'ṇ', - 'Ṉ' => 'ṉ', - 'Ṋ' => 'ṋ', - 'Ṍ' => 'ṍ', - 'Ṏ' => 'ṏ', - 'Ṑ' => 'ṑ', - 'Ṓ' => 'ṓ', - 'Ṕ' => 'ṕ', - 'Ṗ' => 'ṗ', - 'Ṙ' => 'ṙ', - 'Ṛ' => 'ṛ', - 'Ṝ' => 'ṝ', - 'Ṟ' => 'ṟ', - 'Ṡ' => 'ṡ', - 'Ṣ' => 'ṣ', - 'Ṥ' => 'ṥ', - 'Ṧ' => 'ṧ', - 'Ṩ' => 'ṩ', - 'Ṫ' => 'ṫ', - 'Ṭ' => 'ṭ', - 'Ṯ' => 'ṯ', - 'Ṱ' => 'ṱ', - 'Ṳ' => 'ṳ', - 'Ṵ' => 'ṵ', - 'Ṷ' => 'ṷ', - 'Ṹ' => 'ṹ', - 'Ṻ' => 'ṻ', - 'Ṽ' => 'ṽ', - 'Ṿ' => 'ṿ', - 'Ẁ' => 'ẁ', - 'Ẃ' => 'ẃ', - 'Ẅ' => 'ẅ', - 'Ẇ' => 'ẇ', - 'Ẉ' => 'ẉ', - 'Ẋ' => 'ẋ', - 'Ẍ' => 'ẍ', - 'Ẏ' => 'ẏ', - 'Ẑ' => 'ẑ', - 'Ẓ' => 'ẓ', - 'Ẕ' => 'ẕ', - 'ẞ' => 'ß', - 'Ạ' => 'ạ', - 'Ả' => 'ả', - 'Ấ' => 'ấ', - 'Ầ' => 'ầ', - 'Ẩ' => 'ẩ', - 'Ẫ' => 'ẫ', - 'Ậ' => 'ậ', - 'Ắ' => 'ắ', - 'Ằ' => 'ằ', - 'Ẳ' => 'ẳ', - 'Ẵ' => 'ẵ', - 'Ặ' => 'ặ', - 'Ẹ' => 'ẹ', - 'Ẻ' => 'ẻ', - 'Ẽ' => 'ẽ', - 'Ế' => 'ế', - 'Ề' => 'ề', - 'Ể' => 'ể', - 'Ễ' => 'ễ', - 'Ệ' => 'ệ', - 'Ỉ' => 'ỉ', - 'Ị' => 'ị', - 'Ọ' => 'ọ', - 'Ỏ' => 'ỏ', - 'Ố' => 'ố', - 'Ồ' => 'ồ', - 'Ổ' => 'ổ', - 'Ỗ' => 'ỗ', - 'Ộ' => 'ộ', - 'Ớ' => 'ớ', - 'Ờ' => 'ờ', - 'Ở' => 'ở', - 'Ỡ' => 'ỡ', - 'Ợ' => 'ợ', - 'Ụ' => 'ụ', - 'Ủ' => 'ủ', - 'Ứ' => 'ứ', - 'Ừ' => 'ừ', - 'Ử' => 'ử', - 'Ữ' => 'ữ', - 'Ự' => 'ự', - 'Ỳ' => 'ỳ', - 'Ỵ' => 'ỵ', - 'Ỷ' => 'ỷ', - 'Ỹ' => 'ỹ', - 'Ỻ' => 'ỻ', - 'Ỽ' => 'ỽ', - 'Ỿ' => 'ỿ', - 'Ἀ' => 'ἀ', - 'Ἁ' => 'ἁ', - 'Ἂ' => 'ἂ', - 'Ἃ' => 'ἃ', - 'Ἄ' => 'ἄ', - 'Ἅ' => 'ἅ', - 'Ἆ' => 'ἆ', - 'Ἇ' => 'ἇ', - 'Ἐ' => 'ἐ', - 'Ἑ' => 'ἑ', - 'Ἒ' => 'ἒ', - 'Ἓ' => 'ἓ', - 'Ἔ' => 'ἔ', - 'Ἕ' => 'ἕ', - 'Ἠ' => 'ἠ', - 'Ἡ' => 'ἡ', - 'Ἢ' => 'ἢ', - 'Ἣ' => 'ἣ', - 'Ἤ' => 'ἤ', - 'Ἥ' => 'ἥ', - 'Ἦ' => 'ἦ', - 'Ἧ' => 'ἧ', - 'Ἰ' => 'ἰ', - 'Ἱ' => 'ἱ', - 'Ἲ' => 'ἲ', - 'Ἳ' => 'ἳ', - 'Ἴ' => 'ἴ', - 'Ἵ' => 'ἵ', - 'Ἶ' => 'ἶ', - 'Ἷ' => 'ἷ', - 'Ὀ' => 'ὀ', - 'Ὁ' => 'ὁ', - 'Ὂ' => 'ὂ', - 'Ὃ' => 'ὃ', - 'Ὄ' => 'ὄ', - 'Ὅ' => 'ὅ', - 'Ὑ' => 'ὑ', - 'Ὓ' => 'ὓ', - 'Ὕ' => 'ὕ', - 'Ὗ' => 'ὗ', - 'Ὠ' => 'ὠ', - 'Ὡ' => 'ὡ', - 'Ὢ' => 'ὢ', - 'Ὣ' => 'ὣ', - 'Ὤ' => 'ὤ', - 'Ὥ' => 'ὥ', - 'Ὦ' => 'ὦ', - 'Ὧ' => 'ὧ', - 'ᾈ' => 'ᾀ', - 'ᾉ' => 'ᾁ', - 'ᾊ' => 'ᾂ', - 'ᾋ' => 'ᾃ', - 'ᾌ' => 'ᾄ', - 'ᾍ' => 'ᾅ', - 'ᾎ' => 'ᾆ', - 'ᾏ' => 'ᾇ', - 'ᾘ' => 'ᾐ', - 'ᾙ' => 'ᾑ', - 'ᾚ' => 'ᾒ', - 'ᾛ' => 'ᾓ', - 'ᾜ' => 'ᾔ', - 'ᾝ' => 'ᾕ', - 'ᾞ' => 'ᾖ', - 'ᾟ' => 'ᾗ', - 'ᾨ' => 'ᾠ', - 'ᾩ' => 'ᾡ', - 'ᾪ' => 'ᾢ', - 'ᾫ' => 'ᾣ', - 'ᾬ' => 'ᾤ', - 'ᾭ' => 'ᾥ', - 'ᾮ' => 'ᾦ', - 'ᾯ' => 'ᾧ', - 'Ᾰ' => 'ᾰ', - 'Ᾱ' => 'ᾱ', - 'Ὰ' => 'ὰ', - 'Ά' => 'ά', - 'ᾼ' => 'ᾳ', - 'Ὲ' => 'ὲ', - 'Έ' => 'έ', - 'Ὴ' => 'ὴ', - 'Ή' => 'ή', - 'ῌ' => 'ῃ', - 'Ῐ' => 'ῐ', - 'Ῑ' => 'ῑ', - 'Ὶ' => 'ὶ', - 'Ί' => 'ί', - 'Ῠ' => 'ῠ', - 'Ῡ' => 'ῡ', - 'Ὺ' => 'ὺ', - 'Ύ' => 'ύ', - 'Ῥ' => 'ῥ', - 'Ὸ' => 'ὸ', - 'Ό' => 'ό', - 'Ὼ' => 'ὼ', - 'Ώ' => 'ώ', - 'ῼ' => 'ῳ', - 'Ω' => 'ω', - 'K' => 'k', - 'Å' => 'å', - 'Ⅎ' => 'ⅎ', - 'Ⅰ' => 'ⅰ', - 'Ⅱ' => 'ⅱ', - 'Ⅲ' => 'ⅲ', - 'Ⅳ' => 'ⅳ', - 'Ⅴ' => 'ⅴ', - 'Ⅵ' => 'ⅵ', - 'Ⅶ' => 'ⅶ', - 'Ⅷ' => 'ⅷ', - 'Ⅸ' => 'ⅸ', - 'Ⅹ' => 'ⅹ', - 'Ⅺ' => 'ⅺ', - 'Ⅻ' => 'ⅻ', - 'Ⅼ' => 'ⅼ', - 'Ⅽ' => 'ⅽ', - 'Ⅾ' => 'ⅾ', - 'Ⅿ' => 'ⅿ', - 'Ↄ' => 'ↄ', - 'Ⓐ' => 'ⓐ', - 'Ⓑ' => 'ⓑ', - 'Ⓒ' => 'ⓒ', - 'Ⓓ' => 'ⓓ', - 'Ⓔ' => 'ⓔ', - 'Ⓕ' => 'ⓕ', - 'Ⓖ' => 'ⓖ', - 'Ⓗ' => 'ⓗ', - 'Ⓘ' => 'ⓘ', - 'Ⓙ' => 'ⓙ', - 'Ⓚ' => 'ⓚ', - 'Ⓛ' => 'ⓛ', - 'Ⓜ' => 'ⓜ', - 'Ⓝ' => 'ⓝ', - 'Ⓞ' => 'ⓞ', - 'Ⓟ' => 'ⓟ', - 'Ⓠ' => 'ⓠ', - 'Ⓡ' => 'ⓡ', - 'Ⓢ' => 'ⓢ', - 'Ⓣ' => 'ⓣ', - 'Ⓤ' => 'ⓤ', - 'Ⓥ' => 'ⓥ', - 'Ⓦ' => 'ⓦ', - 'Ⓧ' => 'ⓧ', - 'Ⓨ' => 'ⓨ', - 'Ⓩ' => 'ⓩ', - 'Ⰰ' => 'ⰰ', - 'Ⰱ' => 'ⰱ', - 'Ⰲ' => 'ⰲ', - 'Ⰳ' => 'ⰳ', - 'Ⰴ' => 'ⰴ', - 'Ⰵ' => 'ⰵ', - 'Ⰶ' => 'ⰶ', - 'Ⰷ' => 'ⰷ', - 'Ⰸ' => 'ⰸ', - 'Ⰹ' => 'ⰹ', - 'Ⰺ' => 'ⰺ', - 'Ⰻ' => 'ⰻ', - 'Ⰼ' => 'ⰼ', - 'Ⰽ' => 'ⰽ', - 'Ⰾ' => 'ⰾ', - 'Ⰿ' => 'ⰿ', - 'Ⱀ' => 'ⱀ', - 'Ⱁ' => 'ⱁ', - 'Ⱂ' => 'ⱂ', - 'Ⱃ' => 'ⱃ', - 'Ⱄ' => 'ⱄ', - 'Ⱅ' => 'ⱅ', - 'Ⱆ' => 'ⱆ', - 'Ⱇ' => 'ⱇ', - 'Ⱈ' => 'ⱈ', - 'Ⱉ' => 'ⱉ', - 'Ⱊ' => 'ⱊ', - 'Ⱋ' => 'ⱋ', - 'Ⱌ' => 'ⱌ', - 'Ⱍ' => 'ⱍ', - 'Ⱎ' => 'ⱎ', - 'Ⱏ' => 'ⱏ', - 'Ⱐ' => 'ⱐ', - 'Ⱑ' => 'ⱑ', - 'Ⱒ' => 'ⱒ', - 'Ⱓ' => 'ⱓ', - 'Ⱔ' => 'ⱔ', - 'Ⱕ' => 'ⱕ', - 'Ⱖ' => 'ⱖ', - 'Ⱗ' => 'ⱗ', - 'Ⱘ' => 'ⱘ', - 'Ⱙ' => 'ⱙ', - 'Ⱚ' => 'ⱚ', - 'Ⱛ' => 'ⱛ', - 'Ⱜ' => 'ⱜ', - 'Ⱝ' => 'ⱝ', - 'Ⱞ' => 'ⱞ', - 'Ⱡ' => 'ⱡ', - 'Ɫ' => 'ɫ', - 'Ᵽ' => 'ᵽ', - 'Ɽ' => 'ɽ', - 'Ⱨ' => 'ⱨ', - 'Ⱪ' => 'ⱪ', - 'Ⱬ' => 'ⱬ', - 'Ɑ' => 'ɑ', - 'Ɱ' => 'ɱ', - 'Ɐ' => 'ɐ', - 'Ɒ' => 'ɒ', - 'Ⱳ' => 'ⱳ', - 'Ⱶ' => 'ⱶ', - 'Ȿ' => 'ȿ', - 'Ɀ' => 'ɀ', - 'Ⲁ' => 'ⲁ', - 'Ⲃ' => 'ⲃ', - 'Ⲅ' => 'ⲅ', - 'Ⲇ' => 'ⲇ', - 'Ⲉ' => 'ⲉ', - 'Ⲋ' => 'ⲋ', - 'Ⲍ' => 'ⲍ', - 'Ⲏ' => 'ⲏ', - 'Ⲑ' => 'ⲑ', - 'Ⲓ' => 'ⲓ', - 'Ⲕ' => 'ⲕ', - 'Ⲗ' => 'ⲗ', - 'Ⲙ' => 'ⲙ', - 'Ⲛ' => 'ⲛ', - 'Ⲝ' => 'ⲝ', - 'Ⲟ' => 'ⲟ', - 'Ⲡ' => 'ⲡ', - 'Ⲣ' => 'ⲣ', - 'Ⲥ' => 'ⲥ', - 'Ⲧ' => 'ⲧ', - 'Ⲩ' => 'ⲩ', - 'Ⲫ' => 'ⲫ', - 'Ⲭ' => 'ⲭ', - 'Ⲯ' => 'ⲯ', - 'Ⲱ' => 'ⲱ', - 'Ⲳ' => 'ⲳ', - 'Ⲵ' => 'ⲵ', - 'Ⲷ' => 'ⲷ', - 'Ⲹ' => 'ⲹ', - 'Ⲻ' => 'ⲻ', - 'Ⲽ' => 'ⲽ', - 'Ⲿ' => 'ⲿ', - 'Ⳁ' => 'ⳁ', - 'Ⳃ' => 'ⳃ', - 'Ⳅ' => 'ⳅ', - 'Ⳇ' => 'ⳇ', - 'Ⳉ' => 'ⳉ', - 'Ⳋ' => 'ⳋ', - 'Ⳍ' => 'ⳍ', - 'Ⳏ' => 'ⳏ', - 'Ⳑ' => 'ⳑ', - 'Ⳓ' => 'ⳓ', - 'Ⳕ' => 'ⳕ', - 'Ⳗ' => 'ⳗ', - 'Ⳙ' => 'ⳙ', - 'Ⳛ' => 'ⳛ', - 'Ⳝ' => 'ⳝ', - 'Ⳟ' => 'ⳟ', - 'Ⳡ' => 'ⳡ', - 'Ⳣ' => 'ⳣ', - 'Ⳬ' => 'ⳬ', - 'Ⳮ' => 'ⳮ', - 'Ⳳ' => 'ⳳ', - 'Ꙁ' => 'ꙁ', - 'Ꙃ' => 'ꙃ', - 'Ꙅ' => 'ꙅ', - 'Ꙇ' => 'ꙇ', - 'Ꙉ' => 'ꙉ', - 'Ꙋ' => 'ꙋ', - 'Ꙍ' => 'ꙍ', - 'Ꙏ' => 'ꙏ', - 'Ꙑ' => 'ꙑ', - 'Ꙓ' => 'ꙓ', - 'Ꙕ' => 'ꙕ', - 'Ꙗ' => 'ꙗ', - 'Ꙙ' => 'ꙙ', - 'Ꙛ' => 'ꙛ', - 'Ꙝ' => 'ꙝ', - 'Ꙟ' => 'ꙟ', - 'Ꙡ' => 'ꙡ', - 'Ꙣ' => 'ꙣ', - 'Ꙥ' => 'ꙥ', - 'Ꙧ' => 'ꙧ', - 'Ꙩ' => 'ꙩ', - 'Ꙫ' => 'ꙫ', - 'Ꙭ' => 'ꙭ', - 'Ꚁ' => 'ꚁ', - 'Ꚃ' => 'ꚃ', - 'Ꚅ' => 'ꚅ', - 'Ꚇ' => 'ꚇ', - 'Ꚉ' => 'ꚉ', - 'Ꚋ' => 'ꚋ', - 'Ꚍ' => 'ꚍ', - 'Ꚏ' => 'ꚏ', - 'Ꚑ' => 'ꚑ', - 'Ꚓ' => 'ꚓ', - 'Ꚕ' => 'ꚕ', - 'Ꚗ' => 'ꚗ', - 'Ꚙ' => 'ꚙ', - 'Ꚛ' => 'ꚛ', - 'Ꜣ' => 'ꜣ', - 'Ꜥ' => 'ꜥ', - 'Ꜧ' => 'ꜧ', - 'Ꜩ' => 'ꜩ', - 'Ꜫ' => 'ꜫ', - 'Ꜭ' => 'ꜭ', - 'Ꜯ' => 'ꜯ', - 'Ꜳ' => 'ꜳ', - 'Ꜵ' => 'ꜵ', - 'Ꜷ' => 'ꜷ', - 'Ꜹ' => 'ꜹ', - 'Ꜻ' => 'ꜻ', - 'Ꜽ' => 'ꜽ', - 'Ꜿ' => 'ꜿ', - 'Ꝁ' => 'ꝁ', - 'Ꝃ' => 'ꝃ', - 'Ꝅ' => 'ꝅ', - 'Ꝇ' => 'ꝇ', - 'Ꝉ' => 'ꝉ', - 'Ꝋ' => 'ꝋ', - 'Ꝍ' => 'ꝍ', - 'Ꝏ' => 'ꝏ', - 'Ꝑ' => 'ꝑ', - 'Ꝓ' => 'ꝓ', - 'Ꝕ' => 'ꝕ', - 'Ꝗ' => 'ꝗ', - 'Ꝙ' => 'ꝙ', - 'Ꝛ' => 'ꝛ', - 'Ꝝ' => 'ꝝ', - 'Ꝟ' => 'ꝟ', - 'Ꝡ' => 'ꝡ', - 'Ꝣ' => 'ꝣ', - 'Ꝥ' => 'ꝥ', - 'Ꝧ' => 'ꝧ', - 'Ꝩ' => 'ꝩ', - 'Ꝫ' => 'ꝫ', - 'Ꝭ' => 'ꝭ', - 'Ꝯ' => 'ꝯ', - 'Ꝺ' => 'ꝺ', - 'Ꝼ' => 'ꝼ', - 'Ᵹ' => 'ᵹ', - 'Ꝿ' => 'ꝿ', - 'Ꞁ' => 'ꞁ', - 'Ꞃ' => 'ꞃ', - 'Ꞅ' => 'ꞅ', - 'Ꞇ' => 'ꞇ', - 'Ꞌ' => 'ꞌ', - 'Ɥ' => 'ɥ', - 'Ꞑ' => 'ꞑ', - 'Ꞓ' => 'ꞓ', - 'Ꞗ' => 'ꞗ', - 'Ꞙ' => 'ꞙ', - 'Ꞛ' => 'ꞛ', - 'Ꞝ' => 'ꞝ', - 'Ꞟ' => 'ꞟ', - 'Ꞡ' => 'ꞡ', - 'Ꞣ' => 'ꞣ', - 'Ꞥ' => 'ꞥ', - 'Ꞧ' => 'ꞧ', - 'Ꞩ' => 'ꞩ', - 'Ɦ' => 'ɦ', - 'Ɜ' => 'ɜ', - 'Ɡ' => 'ɡ', - 'Ɬ' => 'ɬ', - 'Ʞ' => 'ʞ', - 'Ʇ' => 'ʇ', - 'A' => 'a', - 'B' => 'b', - 'C' => 'c', - 'D' => 'd', - 'E' => 'e', - 'F' => 'f', - 'G' => 'g', - 'H' => 'h', - 'I' => 'i', - 'J' => 'j', - 'K' => 'k', - 'L' => 'l', - 'M' => 'm', - 'N' => 'n', - 'O' => 'o', - 'P' => 'p', - 'Q' => 'q', - 'R' => 'r', - 'S' => 's', - 'T' => 't', - 'U' => 'u', - 'V' => 'v', - 'W' => 'w', - 'X' => 'x', - 'Y' => 'y', - 'Z' => 'z', - '𐐀' => '𐐨', - '𐐁' => '𐐩', - '𐐂' => '𐐪', - '𐐃' => '𐐫', - '𐐄' => '𐐬', - '𐐅' => '𐐭', - '𐐆' => '𐐮', - '𐐇' => '𐐯', - '𐐈' => '𐐰', - '𐐉' => '𐐱', - '𐐊' => '𐐲', - '𐐋' => '𐐳', - '𐐌' => '𐐴', - '𐐍' => '𐐵', - '𐐎' => '𐐶', - '𐐏' => '𐐷', - '𐐐' => '𐐸', - '𐐑' => '𐐹', - '𐐒' => '𐐺', - '𐐓' => '𐐻', - '𐐔' => '𐐼', - '𐐕' => '𐐽', - '𐐖' => '𐐾', - '𐐗' => '𐐿', - '𐐘' => '𐑀', - '𐐙' => '𐑁', - '𐐚' => '𐑂', - '𐐛' => '𐑃', - '𐐜' => '𐑄', - '𐐝' => '𐑅', - '𐐞' => '𐑆', - '𐐟' => '𐑇', - '𐐠' => '𐑈', - '𐐡' => '𐑉', - '𐐢' => '𐑊', - '𐐣' => '𐑋', - '𐐤' => '𐑌', - '𐐥' => '𐑍', - '𐐦' => '𐑎', - '𐐧' => '𐑏', - '𑢠' => '𑣀', - '𑢡' => '𑣁', - '𑢢' => '𑣂', - '𑢣' => '𑣃', - '𑢤' => '𑣄', - '𑢥' => '𑣅', - '𑢦' => '𑣆', - '𑢧' => '𑣇', - '𑢨' => '𑣈', - '𑢩' => '𑣉', - '𑢪' => '𑣊', - '𑢫' => '𑣋', - '𑢬' => '𑣌', - '𑢭' => '𑣍', - '𑢮' => '𑣎', - '𑢯' => '𑣏', - '𑢰' => '𑣐', - '𑢱' => '𑣑', - '𑢲' => '𑣒', - '𑢳' => '𑣓', - '𑢴' => '𑣔', - '𑢵' => '𑣕', - '𑢶' => '𑣖', - '𑢷' => '𑣗', - '𑢸' => '𑣘', - '𑢹' => '𑣙', - '𑢺' => '𑣚', - '𑢻' => '𑣛', - '𑢼' => '𑣜', - '𑢽' => '𑣝', - '𑢾' => '𑣞', - '𑢿' => '𑣟', -); diff --git a/srcs/phpmyadmin/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php b/srcs/phpmyadmin/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php deleted file mode 100644 index 2a8f6e7..0000000 --- a/srcs/phpmyadmin/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php +++ /dev/null @@ -1,5 +0,0 @@ - 'A', - 'b' => 'B', - 'c' => 'C', - 'd' => 'D', - 'e' => 'E', - 'f' => 'F', - 'g' => 'G', - 'h' => 'H', - 'i' => 'I', - 'j' => 'J', - 'k' => 'K', - 'l' => 'L', - 'm' => 'M', - 'n' => 'N', - 'o' => 'O', - 'p' => 'P', - 'q' => 'Q', - 'r' => 'R', - 's' => 'S', - 't' => 'T', - 'u' => 'U', - 'v' => 'V', - 'w' => 'W', - 'x' => 'X', - 'y' => 'Y', - 'z' => 'Z', - 'µ' => 'Μ', - 'à' => 'À', - 'á' => 'Á', - 'â' => 'Â', - 'ã' => 'Ã', - 'ä' => 'Ä', - 'å' => 'Å', - 'æ' => 'Æ', - 'ç' => 'Ç', - 'è' => 'È', - 'é' => 'É', - 'ê' => 'Ê', - 'ë' => 'Ë', - 'ì' => 'Ì', - 'í' => 'Í', - 'î' => 'Î', - 'ï' => 'Ï', - 'ð' => 'Ð', - 'ñ' => 'Ñ', - 'ò' => 'Ò', - 'ó' => 'Ó', - 'ô' => 'Ô', - 'õ' => 'Õ', - 'ö' => 'Ö', - 'ø' => 'Ø', - 'ù' => 'Ù', - 'ú' => 'Ú', - 'û' => 'Û', - 'ü' => 'Ü', - 'ý' => 'Ý', - 'þ' => 'Þ', - 'ÿ' => 'Ÿ', - 'ā' => 'Ā', - 'ă' => 'Ă', - 'ą' => 'Ą', - 'ć' => 'Ć', - 'ĉ' => 'Ĉ', - 'ċ' => 'Ċ', - 'č' => 'Č', - 'ď' => 'Ď', - 'đ' => 'Đ', - 'ē' => 'Ē', - 'ĕ' => 'Ĕ', - 'ė' => 'Ė', - 'ę' => 'Ę', - 'ě' => 'Ě', - 'ĝ' => 'Ĝ', - 'ğ' => 'Ğ', - 'ġ' => 'Ġ', - 'ģ' => 'Ģ', - 'ĥ' => 'Ĥ', - 'ħ' => 'Ħ', - 'ĩ' => 'Ĩ', - 'ī' => 'Ī', - 'ĭ' => 'Ĭ', - 'į' => 'Į', - 'ı' => 'I', - 'ij' => 'IJ', - 'ĵ' => 'Ĵ', - 'ķ' => 'Ķ', - 'ĺ' => 'Ĺ', - 'ļ' => 'Ļ', - 'ľ' => 'Ľ', - 'ŀ' => 'Ŀ', - 'ł' => 'Ł', - 'ń' => 'Ń', - 'ņ' => 'Ņ', - 'ň' => 'Ň', - 'ŋ' => 'Ŋ', - 'ō' => 'Ō', - 'ŏ' => 'Ŏ', - 'ő' => 'Ő', - 'œ' => 'Œ', - 'ŕ' => 'Ŕ', - 'ŗ' => 'Ŗ', - 'ř' => 'Ř', - 'ś' => 'Ś', - 'ŝ' => 'Ŝ', - 'ş' => 'Ş', - 'š' => 'Š', - 'ţ' => 'Ţ', - 'ť' => 'Ť', - 'ŧ' => 'Ŧ', - 'ũ' => 'Ũ', - 'ū' => 'Ū', - 'ŭ' => 'Ŭ', - 'ů' => 'Ů', - 'ű' => 'Ű', - 'ų' => 'Ų', - 'ŵ' => 'Ŵ', - 'ŷ' => 'Ŷ', - 'ź' => 'Ź', - 'ż' => 'Ż', - 'ž' => 'Ž', - 'ſ' => 'S', - 'ƀ' => 'Ƀ', - 'ƃ' => 'Ƃ', - 'ƅ' => 'Ƅ', - 'ƈ' => 'Ƈ', - 'ƌ' => 'Ƌ', - 'ƒ' => 'Ƒ', - 'ƕ' => 'Ƕ', - 'ƙ' => 'Ƙ', - 'ƚ' => 'Ƚ', - 'ƞ' => 'Ƞ', - 'ơ' => 'Ơ', - 'ƣ' => 'Ƣ', - 'ƥ' => 'Ƥ', - 'ƨ' => 'Ƨ', - 'ƭ' => 'Ƭ', - 'ư' => 'Ư', - 'ƴ' => 'Ƴ', - 'ƶ' => 'Ƶ', - 'ƹ' => 'Ƹ', - 'ƽ' => 'Ƽ', - 'ƿ' => 'Ƿ', - 'Dž' => 'DŽ', - 'dž' => 'DŽ', - 'Lj' => 'LJ', - 'lj' => 'LJ', - 'Nj' => 'NJ', - 'nj' => 'NJ', - 'ǎ' => 'Ǎ', - 'ǐ' => 'Ǐ', - 'ǒ' => 'Ǒ', - 'ǔ' => 'Ǔ', - 'ǖ' => 'Ǖ', - 'ǘ' => 'Ǘ', - 'ǚ' => 'Ǚ', - 'ǜ' => 'Ǜ', - 'ǝ' => 'Ǝ', - 'ǟ' => 'Ǟ', - 'ǡ' => 'Ǡ', - 'ǣ' => 'Ǣ', - 'ǥ' => 'Ǥ', - 'ǧ' => 'Ǧ', - 'ǩ' => 'Ǩ', - 'ǫ' => 'Ǫ', - 'ǭ' => 'Ǭ', - 'ǯ' => 'Ǯ', - 'Dz' => 'DZ', - 'dz' => 'DZ', - 'ǵ' => 'Ǵ', - 'ǹ' => 'Ǹ', - 'ǻ' => 'Ǻ', - 'ǽ' => 'Ǽ', - 'ǿ' => 'Ǿ', - 'ȁ' => 'Ȁ', - 'ȃ' => 'Ȃ', - 'ȅ' => 'Ȅ', - 'ȇ' => 'Ȇ', - 'ȉ' => 'Ȉ', - 'ȋ' => 'Ȋ', - 'ȍ' => 'Ȍ', - 'ȏ' => 'Ȏ', - 'ȑ' => 'Ȑ', - 'ȓ' => 'Ȓ', - 'ȕ' => 'Ȕ', - 'ȗ' => 'Ȗ', - 'ș' => 'Ș', - 'ț' => 'Ț', - 'ȝ' => 'Ȝ', - 'ȟ' => 'Ȟ', - 'ȣ' => 'Ȣ', - 'ȥ' => 'Ȥ', - 'ȧ' => 'Ȧ', - 'ȩ' => 'Ȩ', - 'ȫ' => 'Ȫ', - 'ȭ' => 'Ȭ', - 'ȯ' => 'Ȯ', - 'ȱ' => 'Ȱ', - 'ȳ' => 'Ȳ', - 'ȼ' => 'Ȼ', - 'ȿ' => 'Ȿ', - 'ɀ' => 'Ɀ', - 'ɂ' => 'Ɂ', - 'ɇ' => 'Ɇ', - 'ɉ' => 'Ɉ', - 'ɋ' => 'Ɋ', - 'ɍ' => 'Ɍ', - 'ɏ' => 'Ɏ', - 'ɐ' => 'Ɐ', - 'ɑ' => 'Ɑ', - 'ɒ' => 'Ɒ', - 'ɓ' => 'Ɓ', - 'ɔ' => 'Ɔ', - 'ɖ' => 'Ɖ', - 'ɗ' => 'Ɗ', - 'ə' => 'Ə', - 'ɛ' => 'Ɛ', - 'ɜ' => 'Ɜ', - 'ɠ' => 'Ɠ', - 'ɡ' => 'Ɡ', - 'ɣ' => 'Ɣ', - 'ɥ' => 'Ɥ', - 'ɦ' => 'Ɦ', - 'ɨ' => 'Ɨ', - 'ɩ' => 'Ɩ', - 'ɫ' => 'Ɫ', - 'ɬ' => 'Ɬ', - 'ɯ' => 'Ɯ', - 'ɱ' => 'Ɱ', - 'ɲ' => 'Ɲ', - 'ɵ' => 'Ɵ', - 'ɽ' => 'Ɽ', - 'ʀ' => 'Ʀ', - 'ʃ' => 'Ʃ', - 'ʇ' => 'Ʇ', - 'ʈ' => 'Ʈ', - 'ʉ' => 'Ʉ', - 'ʊ' => 'Ʊ', - 'ʋ' => 'Ʋ', - 'ʌ' => 'Ʌ', - 'ʒ' => 'Ʒ', - 'ʞ' => 'Ʞ', - 'ͅ' => 'Ι', - 'ͱ' => 'Ͱ', - 'ͳ' => 'Ͳ', - 'ͷ' => 'Ͷ', - 'ͻ' => 'Ͻ', - 'ͼ' => 'Ͼ', - 'ͽ' => 'Ͽ', - 'ά' => 'Ά', - 'έ' => 'Έ', - 'ή' => 'Ή', - 'ί' => 'Ί', - 'α' => 'Α', - 'β' => 'Β', - 'γ' => 'Γ', - 'δ' => 'Δ', - 'ε' => 'Ε', - 'ζ' => 'Ζ', - 'η' => 'Η', - 'θ' => 'Θ', - 'ι' => 'Ι', - 'κ' => 'Κ', - 'λ' => 'Λ', - 'μ' => 'Μ', - 'ν' => 'Ν', - 'ξ' => 'Ξ', - 'ο' => 'Ο', - 'π' => 'Π', - 'ρ' => 'Ρ', - 'ς' => 'Σ', - 'σ' => 'Σ', - 'τ' => 'Τ', - 'υ' => 'Υ', - 'φ' => 'Φ', - 'χ' => 'Χ', - 'ψ' => 'Ψ', - 'ω' => 'Ω', - 'ϊ' => 'Ϊ', - 'ϋ' => 'Ϋ', - 'ό' => 'Ό', - 'ύ' => 'Ύ', - 'ώ' => 'Ώ', - 'ϐ' => 'Β', - 'ϑ' => 'Θ', - 'ϕ' => 'Φ', - 'ϖ' => 'Π', - 'ϗ' => 'Ϗ', - 'ϙ' => 'Ϙ', - 'ϛ' => 'Ϛ', - 'ϝ' => 'Ϝ', - 'ϟ' => 'Ϟ', - 'ϡ' => 'Ϡ', - 'ϣ' => 'Ϣ', - 'ϥ' => 'Ϥ', - 'ϧ' => 'Ϧ', - 'ϩ' => 'Ϩ', - 'ϫ' => 'Ϫ', - 'ϭ' => 'Ϭ', - 'ϯ' => 'Ϯ', - 'ϰ' => 'Κ', - 'ϱ' => 'Ρ', - 'ϲ' => 'Ϲ', - 'ϳ' => 'Ϳ', - 'ϵ' => 'Ε', - 'ϸ' => 'Ϸ', - 'ϻ' => 'Ϻ', - 'а' => 'А', - 'б' => 'Б', - 'в' => 'В', - 'г' => 'Г', - 'д' => 'Д', - 'е' => 'Е', - 'ж' => 'Ж', - 'з' => 'З', - 'и' => 'И', - 'й' => 'Й', - 'к' => 'К', - 'л' => 'Л', - 'м' => 'М', - 'н' => 'Н', - 'о' => 'О', - 'п' => 'П', - 'р' => 'Р', - 'с' => 'С', - 'т' => 'Т', - 'у' => 'У', - 'ф' => 'Ф', - 'х' => 'Х', - 'ц' => 'Ц', - 'ч' => 'Ч', - 'ш' => 'Ш', - 'щ' => 'Щ', - 'ъ' => 'Ъ', - 'ы' => 'Ы', - 'ь' => 'Ь', - 'э' => 'Э', - 'ю' => 'Ю', - 'я' => 'Я', - 'ѐ' => 'Ѐ', - 'ё' => 'Ё', - 'ђ' => 'Ђ', - 'ѓ' => 'Ѓ', - 'є' => 'Є', - 'ѕ' => 'Ѕ', - 'і' => 'І', - 'ї' => 'Ї', - 'ј' => 'Ј', - 'љ' => 'Љ', - 'њ' => 'Њ', - 'ћ' => 'Ћ', - 'ќ' => 'Ќ', - 'ѝ' => 'Ѝ', - 'ў' => 'Ў', - 'џ' => 'Џ', - 'ѡ' => 'Ѡ', - 'ѣ' => 'Ѣ', - 'ѥ' => 'Ѥ', - 'ѧ' => 'Ѧ', - 'ѩ' => 'Ѩ', - 'ѫ' => 'Ѫ', - 'ѭ' => 'Ѭ', - 'ѯ' => 'Ѯ', - 'ѱ' => 'Ѱ', - 'ѳ' => 'Ѳ', - 'ѵ' => 'Ѵ', - 'ѷ' => 'Ѷ', - 'ѹ' => 'Ѹ', - 'ѻ' => 'Ѻ', - 'ѽ' => 'Ѽ', - 'ѿ' => 'Ѿ', - 'ҁ' => 'Ҁ', - 'ҋ' => 'Ҋ', - 'ҍ' => 'Ҍ', - 'ҏ' => 'Ҏ', - 'ґ' => 'Ґ', - 'ғ' => 'Ғ', - 'ҕ' => 'Ҕ', - 'җ' => 'Җ', - 'ҙ' => 'Ҙ', - 'қ' => 'Қ', - 'ҝ' => 'Ҝ', - 'ҟ' => 'Ҟ', - 'ҡ' => 'Ҡ', - 'ң' => 'Ң', - 'ҥ' => 'Ҥ', - 'ҧ' => 'Ҧ', - 'ҩ' => 'Ҩ', - 'ҫ' => 'Ҫ', - 'ҭ' => 'Ҭ', - 'ү' => 'Ү', - 'ұ' => 'Ұ', - 'ҳ' => 'Ҳ', - 'ҵ' => 'Ҵ', - 'ҷ' => 'Ҷ', - 'ҹ' => 'Ҹ', - 'һ' => 'Һ', - 'ҽ' => 'Ҽ', - 'ҿ' => 'Ҿ', - 'ӂ' => 'Ӂ', - 'ӄ' => 'Ӄ', - 'ӆ' => 'Ӆ', - 'ӈ' => 'Ӈ', - 'ӊ' => 'Ӊ', - 'ӌ' => 'Ӌ', - 'ӎ' => 'Ӎ', - 'ӏ' => 'Ӏ', - 'ӑ' => 'Ӑ', - 'ӓ' => 'Ӓ', - 'ӕ' => 'Ӕ', - 'ӗ' => 'Ӗ', - 'ә' => 'Ә', - 'ӛ' => 'Ӛ', - 'ӝ' => 'Ӝ', - 'ӟ' => 'Ӟ', - 'ӡ' => 'Ӡ', - 'ӣ' => 'Ӣ', - 'ӥ' => 'Ӥ', - 'ӧ' => 'Ӧ', - 'ө' => 'Ө', - 'ӫ' => 'Ӫ', - 'ӭ' => 'Ӭ', - 'ӯ' => 'Ӯ', - 'ӱ' => 'Ӱ', - 'ӳ' => 'Ӳ', - 'ӵ' => 'Ӵ', - 'ӷ' => 'Ӷ', - 'ӹ' => 'Ӹ', - 'ӻ' => 'Ӻ', - 'ӽ' => 'Ӽ', - 'ӿ' => 'Ӿ', - 'ԁ' => 'Ԁ', - 'ԃ' => 'Ԃ', - 'ԅ' => 'Ԅ', - 'ԇ' => 'Ԇ', - 'ԉ' => 'Ԉ', - 'ԋ' => 'Ԋ', - 'ԍ' => 'Ԍ', - 'ԏ' => 'Ԏ', - 'ԑ' => 'Ԑ', - 'ԓ' => 'Ԓ', - 'ԕ' => 'Ԕ', - 'ԗ' => 'Ԗ', - 'ԙ' => 'Ԙ', - 'ԛ' => 'Ԛ', - 'ԝ' => 'Ԝ', - 'ԟ' => 'Ԟ', - 'ԡ' => 'Ԡ', - 'ԣ' => 'Ԣ', - 'ԥ' => 'Ԥ', - 'ԧ' => 'Ԧ', - 'ԩ' => 'Ԩ', - 'ԫ' => 'Ԫ', - 'ԭ' => 'Ԭ', - 'ԯ' => 'Ԯ', - 'ա' => 'Ա', - 'բ' => 'Բ', - 'գ' => 'Գ', - 'դ' => 'Դ', - 'ե' => 'Ե', - 'զ' => 'Զ', - 'է' => 'Է', - 'ը' => 'Ը', - 'թ' => 'Թ', - 'ժ' => 'Ժ', - 'ի' => 'Ի', - 'լ' => 'Լ', - 'խ' => 'Խ', - 'ծ' => 'Ծ', - 'կ' => 'Կ', - 'հ' => 'Հ', - 'ձ' => 'Ձ', - 'ղ' => 'Ղ', - 'ճ' => 'Ճ', - 'մ' => 'Մ', - 'յ' => 'Յ', - 'ն' => 'Ն', - 'շ' => 'Շ', - 'ո' => 'Ո', - 'չ' => 'Չ', - 'պ' => 'Պ', - 'ջ' => 'Ջ', - 'ռ' => 'Ռ', - 'ս' => 'Ս', - 'վ' => 'Վ', - 'տ' => 'Տ', - 'ր' => 'Ր', - 'ց' => 'Ց', - 'ւ' => 'Ւ', - 'փ' => 'Փ', - 'ք' => 'Ք', - 'օ' => 'Օ', - 'ֆ' => 'Ֆ', - 'ᵹ' => 'Ᵹ', - 'ᵽ' => 'Ᵽ', - 'ḁ' => 'Ḁ', - 'ḃ' => 'Ḃ', - 'ḅ' => 'Ḅ', - 'ḇ' => 'Ḇ', - 'ḉ' => 'Ḉ', - 'ḋ' => 'Ḋ', - 'ḍ' => 'Ḍ', - 'ḏ' => 'Ḏ', - 'ḑ' => 'Ḑ', - 'ḓ' => 'Ḓ', - 'ḕ' => 'Ḕ', - 'ḗ' => 'Ḗ', - 'ḙ' => 'Ḙ', - 'ḛ' => 'Ḛ', - 'ḝ' => 'Ḝ', - 'ḟ' => 'Ḟ', - 'ḡ' => 'Ḡ', - 'ḣ' => 'Ḣ', - 'ḥ' => 'Ḥ', - 'ḧ' => 'Ḧ', - 'ḩ' => 'Ḩ', - 'ḫ' => 'Ḫ', - 'ḭ' => 'Ḭ', - 'ḯ' => 'Ḯ', - 'ḱ' => 'Ḱ', - 'ḳ' => 'Ḳ', - 'ḵ' => 'Ḵ', - 'ḷ' => 'Ḷ', - 'ḹ' => 'Ḹ', - 'ḻ' => 'Ḻ', - 'ḽ' => 'Ḽ', - 'ḿ' => 'Ḿ', - 'ṁ' => 'Ṁ', - 'ṃ' => 'Ṃ', - 'ṅ' => 'Ṅ', - 'ṇ' => 'Ṇ', - 'ṉ' => 'Ṉ', - 'ṋ' => 'Ṋ', - 'ṍ' => 'Ṍ', - 'ṏ' => 'Ṏ', - 'ṑ' => 'Ṑ', - 'ṓ' => 'Ṓ', - 'ṕ' => 'Ṕ', - 'ṗ' => 'Ṗ', - 'ṙ' => 'Ṙ', - 'ṛ' => 'Ṛ', - 'ṝ' => 'Ṝ', - 'ṟ' => 'Ṟ', - 'ṡ' => 'Ṡ', - 'ṣ' => 'Ṣ', - 'ṥ' => 'Ṥ', - 'ṧ' => 'Ṧ', - 'ṩ' => 'Ṩ', - 'ṫ' => 'Ṫ', - 'ṭ' => 'Ṭ', - 'ṯ' => 'Ṯ', - 'ṱ' => 'Ṱ', - 'ṳ' => 'Ṳ', - 'ṵ' => 'Ṵ', - 'ṷ' => 'Ṷ', - 'ṹ' => 'Ṹ', - 'ṻ' => 'Ṻ', - 'ṽ' => 'Ṽ', - 'ṿ' => 'Ṿ', - 'ẁ' => 'Ẁ', - 'ẃ' => 'Ẃ', - 'ẅ' => 'Ẅ', - 'ẇ' => 'Ẇ', - 'ẉ' => 'Ẉ', - 'ẋ' => 'Ẋ', - 'ẍ' => 'Ẍ', - 'ẏ' => 'Ẏ', - 'ẑ' => 'Ẑ', - 'ẓ' => 'Ẓ', - 'ẕ' => 'Ẕ', - 'ẛ' => 'Ṡ', - 'ạ' => 'Ạ', - 'ả' => 'Ả', - 'ấ' => 'Ấ', - 'ầ' => 'Ầ', - 'ẩ' => 'Ẩ', - 'ẫ' => 'Ẫ', - 'ậ' => 'Ậ', - 'ắ' => 'Ắ', - 'ằ' => 'Ằ', - 'ẳ' => 'Ẳ', - 'ẵ' => 'Ẵ', - 'ặ' => 'Ặ', - 'ẹ' => 'Ẹ', - 'ẻ' => 'Ẻ', - 'ẽ' => 'Ẽ', - 'ế' => 'Ế', - 'ề' => 'Ề', - 'ể' => 'Ể', - 'ễ' => 'Ễ', - 'ệ' => 'Ệ', - 'ỉ' => 'Ỉ', - 'ị' => 'Ị', - 'ọ' => 'Ọ', - 'ỏ' => 'Ỏ', - 'ố' => 'Ố', - 'ồ' => 'Ồ', - 'ổ' => 'Ổ', - 'ỗ' => 'Ỗ', - 'ộ' => 'Ộ', - 'ớ' => 'Ớ', - 'ờ' => 'Ờ', - 'ở' => 'Ở', - 'ỡ' => 'Ỡ', - 'ợ' => 'Ợ', - 'ụ' => 'Ụ', - 'ủ' => 'Ủ', - 'ứ' => 'Ứ', - 'ừ' => 'Ừ', - 'ử' => 'Ử', - 'ữ' => 'Ữ', - 'ự' => 'Ự', - 'ỳ' => 'Ỳ', - 'ỵ' => 'Ỵ', - 'ỷ' => 'Ỷ', - 'ỹ' => 'Ỹ', - 'ỻ' => 'Ỻ', - 'ỽ' => 'Ỽ', - 'ỿ' => 'Ỿ', - 'ἀ' => 'Ἀ', - 'ἁ' => 'Ἁ', - 'ἂ' => 'Ἂ', - 'ἃ' => 'Ἃ', - 'ἄ' => 'Ἄ', - 'ἅ' => 'Ἅ', - 'ἆ' => 'Ἆ', - 'ἇ' => 'Ἇ', - 'ἐ' => 'Ἐ', - 'ἑ' => 'Ἑ', - 'ἒ' => 'Ἒ', - 'ἓ' => 'Ἓ', - 'ἔ' => 'Ἔ', - 'ἕ' => 'Ἕ', - 'ἠ' => 'Ἠ', - 'ἡ' => 'Ἡ', - 'ἢ' => 'Ἢ', - 'ἣ' => 'Ἣ', - 'ἤ' => 'Ἤ', - 'ἥ' => 'Ἥ', - 'ἦ' => 'Ἦ', - 'ἧ' => 'Ἧ', - 'ἰ' => 'Ἰ', - 'ἱ' => 'Ἱ', - 'ἲ' => 'Ἲ', - 'ἳ' => 'Ἳ', - 'ἴ' => 'Ἴ', - 'ἵ' => 'Ἵ', - 'ἶ' => 'Ἶ', - 'ἷ' => 'Ἷ', - 'ὀ' => 'Ὀ', - 'ὁ' => 'Ὁ', - 'ὂ' => 'Ὂ', - 'ὃ' => 'Ὃ', - 'ὄ' => 'Ὄ', - 'ὅ' => 'Ὅ', - 'ὑ' => 'Ὑ', - 'ὓ' => 'Ὓ', - 'ὕ' => 'Ὕ', - 'ὗ' => 'Ὗ', - 'ὠ' => 'Ὠ', - 'ὡ' => 'Ὡ', - 'ὢ' => 'Ὢ', - 'ὣ' => 'Ὣ', - 'ὤ' => 'Ὤ', - 'ὥ' => 'Ὥ', - 'ὦ' => 'Ὦ', - 'ὧ' => 'Ὧ', - 'ὰ' => 'Ὰ', - 'ά' => 'Ά', - 'ὲ' => 'Ὲ', - 'έ' => 'Έ', - 'ὴ' => 'Ὴ', - 'ή' => 'Ή', - 'ὶ' => 'Ὶ', - 'ί' => 'Ί', - 'ὸ' => 'Ὸ', - 'ό' => 'Ό', - 'ὺ' => 'Ὺ', - 'ύ' => 'Ύ', - 'ὼ' => 'Ὼ', - 'ώ' => 'Ώ', - 'ᾀ' => 'ᾈ', - 'ᾁ' => 'ᾉ', - 'ᾂ' => 'ᾊ', - 'ᾃ' => 'ᾋ', - 'ᾄ' => 'ᾌ', - 'ᾅ' => 'ᾍ', - 'ᾆ' => 'ᾎ', - 'ᾇ' => 'ᾏ', - 'ᾐ' => 'ᾘ', - 'ᾑ' => 'ᾙ', - 'ᾒ' => 'ᾚ', - 'ᾓ' => 'ᾛ', - 'ᾔ' => 'ᾜ', - 'ᾕ' => 'ᾝ', - 'ᾖ' => 'ᾞ', - 'ᾗ' => 'ᾟ', - 'ᾠ' => 'ᾨ', - 'ᾡ' => 'ᾩ', - 'ᾢ' => 'ᾪ', - 'ᾣ' => 'ᾫ', - 'ᾤ' => 'ᾬ', - 'ᾥ' => 'ᾭ', - 'ᾦ' => 'ᾮ', - 'ᾧ' => 'ᾯ', - 'ᾰ' => 'Ᾰ', - 'ᾱ' => 'Ᾱ', - 'ᾳ' => 'ᾼ', - 'ι' => 'Ι', - 'ῃ' => 'ῌ', - 'ῐ' => 'Ῐ', - 'ῑ' => 'Ῑ', - 'ῠ' => 'Ῠ', - 'ῡ' => 'Ῡ', - 'ῥ' => 'Ῥ', - 'ῳ' => 'ῼ', - 'ⅎ' => 'Ⅎ', - 'ⅰ' => 'Ⅰ', - 'ⅱ' => 'Ⅱ', - 'ⅲ' => 'Ⅲ', - 'ⅳ' => 'Ⅳ', - 'ⅴ' => 'Ⅴ', - 'ⅵ' => 'Ⅵ', - 'ⅶ' => 'Ⅶ', - 'ⅷ' => 'Ⅷ', - 'ⅸ' => 'Ⅸ', - 'ⅹ' => 'Ⅹ', - 'ⅺ' => 'Ⅺ', - 'ⅻ' => 'Ⅻ', - 'ⅼ' => 'Ⅼ', - 'ⅽ' => 'Ⅽ', - 'ⅾ' => 'Ⅾ', - 'ⅿ' => 'Ⅿ', - 'ↄ' => 'Ↄ', - 'ⓐ' => 'Ⓐ', - 'ⓑ' => 'Ⓑ', - 'ⓒ' => 'Ⓒ', - 'ⓓ' => 'Ⓓ', - 'ⓔ' => 'Ⓔ', - 'ⓕ' => 'Ⓕ', - 'ⓖ' => 'Ⓖ', - 'ⓗ' => 'Ⓗ', - 'ⓘ' => 'Ⓘ', - 'ⓙ' => 'Ⓙ', - 'ⓚ' => 'Ⓚ', - 'ⓛ' => 'Ⓛ', - 'ⓜ' => 'Ⓜ', - 'ⓝ' => 'Ⓝ', - 'ⓞ' => 'Ⓞ', - 'ⓟ' => 'Ⓟ', - 'ⓠ' => 'Ⓠ', - 'ⓡ' => 'Ⓡ', - 'ⓢ' => 'Ⓢ', - 'ⓣ' => 'Ⓣ', - 'ⓤ' => 'Ⓤ', - 'ⓥ' => 'Ⓥ', - 'ⓦ' => 'Ⓦ', - 'ⓧ' => 'Ⓧ', - 'ⓨ' => 'Ⓨ', - 'ⓩ' => 'Ⓩ', - 'ⰰ' => 'Ⰰ', - 'ⰱ' => 'Ⰱ', - 'ⰲ' => 'Ⰲ', - 'ⰳ' => 'Ⰳ', - 'ⰴ' => 'Ⰴ', - 'ⰵ' => 'Ⰵ', - 'ⰶ' => 'Ⰶ', - 'ⰷ' => 'Ⰷ', - 'ⰸ' => 'Ⰸ', - 'ⰹ' => 'Ⰹ', - 'ⰺ' => 'Ⰺ', - 'ⰻ' => 'Ⰻ', - 'ⰼ' => 'Ⰼ', - 'ⰽ' => 'Ⰽ', - 'ⰾ' => 'Ⰾ', - 'ⰿ' => 'Ⰿ', - 'ⱀ' => 'Ⱀ', - 'ⱁ' => 'Ⱁ', - 'ⱂ' => 'Ⱂ', - 'ⱃ' => 'Ⱃ', - 'ⱄ' => 'Ⱄ', - 'ⱅ' => 'Ⱅ', - 'ⱆ' => 'Ⱆ', - 'ⱇ' => 'Ⱇ', - 'ⱈ' => 'Ⱈ', - 'ⱉ' => 'Ⱉ', - 'ⱊ' => 'Ⱊ', - 'ⱋ' => 'Ⱋ', - 'ⱌ' => 'Ⱌ', - 'ⱍ' => 'Ⱍ', - 'ⱎ' => 'Ⱎ', - 'ⱏ' => 'Ⱏ', - 'ⱐ' => 'Ⱐ', - 'ⱑ' => 'Ⱑ', - 'ⱒ' => 'Ⱒ', - 'ⱓ' => 'Ⱓ', - 'ⱔ' => 'Ⱔ', - 'ⱕ' => 'Ⱕ', - 'ⱖ' => 'Ⱖ', - 'ⱗ' => 'Ⱗ', - 'ⱘ' => 'Ⱘ', - 'ⱙ' => 'Ⱙ', - 'ⱚ' => 'Ⱚ', - 'ⱛ' => 'Ⱛ', - 'ⱜ' => 'Ⱜ', - 'ⱝ' => 'Ⱝ', - 'ⱞ' => 'Ⱞ', - 'ⱡ' => 'Ⱡ', - 'ⱥ' => 'Ⱥ', - 'ⱦ' => 'Ⱦ', - 'ⱨ' => 'Ⱨ', - 'ⱪ' => 'Ⱪ', - 'ⱬ' => 'Ⱬ', - 'ⱳ' => 'Ⱳ', - 'ⱶ' => 'Ⱶ', - 'ⲁ' => 'Ⲁ', - 'ⲃ' => 'Ⲃ', - 'ⲅ' => 'Ⲅ', - 'ⲇ' => 'Ⲇ', - 'ⲉ' => 'Ⲉ', - 'ⲋ' => 'Ⲋ', - 'ⲍ' => 'Ⲍ', - 'ⲏ' => 'Ⲏ', - 'ⲑ' => 'Ⲑ', - 'ⲓ' => 'Ⲓ', - 'ⲕ' => 'Ⲕ', - 'ⲗ' => 'Ⲗ', - 'ⲙ' => 'Ⲙ', - 'ⲛ' => 'Ⲛ', - 'ⲝ' => 'Ⲝ', - 'ⲟ' => 'Ⲟ', - 'ⲡ' => 'Ⲡ', - 'ⲣ' => 'Ⲣ', - 'ⲥ' => 'Ⲥ', - 'ⲧ' => 'Ⲧ', - 'ⲩ' => 'Ⲩ', - 'ⲫ' => 'Ⲫ', - 'ⲭ' => 'Ⲭ', - 'ⲯ' => 'Ⲯ', - 'ⲱ' => 'Ⲱ', - 'ⲳ' => 'Ⲳ', - 'ⲵ' => 'Ⲵ', - 'ⲷ' => 'Ⲷ', - 'ⲹ' => 'Ⲹ', - 'ⲻ' => 'Ⲻ', - 'ⲽ' => 'Ⲽ', - 'ⲿ' => 'Ⲿ', - 'ⳁ' => 'Ⳁ', - 'ⳃ' => 'Ⳃ', - 'ⳅ' => 'Ⳅ', - 'ⳇ' => 'Ⳇ', - 'ⳉ' => 'Ⳉ', - 'ⳋ' => 'Ⳋ', - 'ⳍ' => 'Ⳍ', - 'ⳏ' => 'Ⳏ', - 'ⳑ' => 'Ⳑ', - 'ⳓ' => 'Ⳓ', - 'ⳕ' => 'Ⳕ', - 'ⳗ' => 'Ⳗ', - 'ⳙ' => 'Ⳙ', - 'ⳛ' => 'Ⳛ', - 'ⳝ' => 'Ⳝ', - 'ⳟ' => 'Ⳟ', - 'ⳡ' => 'Ⳡ', - 'ⳣ' => 'Ⳣ', - 'ⳬ' => 'Ⳬ', - 'ⳮ' => 'Ⳮ', - 'ⳳ' => 'Ⳳ', - 'ⴀ' => 'Ⴀ', - 'ⴁ' => 'Ⴁ', - 'ⴂ' => 'Ⴂ', - 'ⴃ' => 'Ⴃ', - 'ⴄ' => 'Ⴄ', - 'ⴅ' => 'Ⴅ', - 'ⴆ' => 'Ⴆ', - 'ⴇ' => 'Ⴇ', - 'ⴈ' => 'Ⴈ', - 'ⴉ' => 'Ⴉ', - 'ⴊ' => 'Ⴊ', - 'ⴋ' => 'Ⴋ', - 'ⴌ' => 'Ⴌ', - 'ⴍ' => 'Ⴍ', - 'ⴎ' => 'Ⴎ', - 'ⴏ' => 'Ⴏ', - 'ⴐ' => 'Ⴐ', - 'ⴑ' => 'Ⴑ', - 'ⴒ' => 'Ⴒ', - 'ⴓ' => 'Ⴓ', - 'ⴔ' => 'Ⴔ', - 'ⴕ' => 'Ⴕ', - 'ⴖ' => 'Ⴖ', - 'ⴗ' => 'Ⴗ', - 'ⴘ' => 'Ⴘ', - 'ⴙ' => 'Ⴙ', - 'ⴚ' => 'Ⴚ', - 'ⴛ' => 'Ⴛ', - 'ⴜ' => 'Ⴜ', - 'ⴝ' => 'Ⴝ', - 'ⴞ' => 'Ⴞ', - 'ⴟ' => 'Ⴟ', - 'ⴠ' => 'Ⴠ', - 'ⴡ' => 'Ⴡ', - 'ⴢ' => 'Ⴢ', - 'ⴣ' => 'Ⴣ', - 'ⴤ' => 'Ⴤ', - 'ⴥ' => 'Ⴥ', - 'ⴧ' => 'Ⴧ', - 'ⴭ' => 'Ⴭ', - 'ꙁ' => 'Ꙁ', - 'ꙃ' => 'Ꙃ', - 'ꙅ' => 'Ꙅ', - 'ꙇ' => 'Ꙇ', - 'ꙉ' => 'Ꙉ', - 'ꙋ' => 'Ꙋ', - 'ꙍ' => 'Ꙍ', - 'ꙏ' => 'Ꙏ', - 'ꙑ' => 'Ꙑ', - 'ꙓ' => 'Ꙓ', - 'ꙕ' => 'Ꙕ', - 'ꙗ' => 'Ꙗ', - 'ꙙ' => 'Ꙙ', - 'ꙛ' => 'Ꙛ', - 'ꙝ' => 'Ꙝ', - 'ꙟ' => 'Ꙟ', - 'ꙡ' => 'Ꙡ', - 'ꙣ' => 'Ꙣ', - 'ꙥ' => 'Ꙥ', - 'ꙧ' => 'Ꙧ', - 'ꙩ' => 'Ꙩ', - 'ꙫ' => 'Ꙫ', - 'ꙭ' => 'Ꙭ', - 'ꚁ' => 'Ꚁ', - 'ꚃ' => 'Ꚃ', - 'ꚅ' => 'Ꚅ', - 'ꚇ' => 'Ꚇ', - 'ꚉ' => 'Ꚉ', - 'ꚋ' => 'Ꚋ', - 'ꚍ' => 'Ꚍ', - 'ꚏ' => 'Ꚏ', - 'ꚑ' => 'Ꚑ', - 'ꚓ' => 'Ꚓ', - 'ꚕ' => 'Ꚕ', - 'ꚗ' => 'Ꚗ', - 'ꚙ' => 'Ꚙ', - 'ꚛ' => 'Ꚛ', - 'ꜣ' => 'Ꜣ', - 'ꜥ' => 'Ꜥ', - 'ꜧ' => 'Ꜧ', - 'ꜩ' => 'Ꜩ', - 'ꜫ' => 'Ꜫ', - 'ꜭ' => 'Ꜭ', - 'ꜯ' => 'Ꜯ', - 'ꜳ' => 'Ꜳ', - 'ꜵ' => 'Ꜵ', - 'ꜷ' => 'Ꜷ', - 'ꜹ' => 'Ꜹ', - 'ꜻ' => 'Ꜻ', - 'ꜽ' => 'Ꜽ', - 'ꜿ' => 'Ꜿ', - 'ꝁ' => 'Ꝁ', - 'ꝃ' => 'Ꝃ', - 'ꝅ' => 'Ꝅ', - 'ꝇ' => 'Ꝇ', - 'ꝉ' => 'Ꝉ', - 'ꝋ' => 'Ꝋ', - 'ꝍ' => 'Ꝍ', - 'ꝏ' => 'Ꝏ', - 'ꝑ' => 'Ꝑ', - 'ꝓ' => 'Ꝓ', - 'ꝕ' => 'Ꝕ', - 'ꝗ' => 'Ꝗ', - 'ꝙ' => 'Ꝙ', - 'ꝛ' => 'Ꝛ', - 'ꝝ' => 'Ꝝ', - 'ꝟ' => 'Ꝟ', - 'ꝡ' => 'Ꝡ', - 'ꝣ' => 'Ꝣ', - 'ꝥ' => 'Ꝥ', - 'ꝧ' => 'Ꝧ', - 'ꝩ' => 'Ꝩ', - 'ꝫ' => 'Ꝫ', - 'ꝭ' => 'Ꝭ', - 'ꝯ' => 'Ꝯ', - 'ꝺ' => 'Ꝺ', - 'ꝼ' => 'Ꝼ', - 'ꝿ' => 'Ꝿ', - 'ꞁ' => 'Ꞁ', - 'ꞃ' => 'Ꞃ', - 'ꞅ' => 'Ꞅ', - 'ꞇ' => 'Ꞇ', - 'ꞌ' => 'Ꞌ', - 'ꞑ' => 'Ꞑ', - 'ꞓ' => 'Ꞓ', - 'ꞗ' => 'Ꞗ', - 'ꞙ' => 'Ꞙ', - 'ꞛ' => 'Ꞛ', - 'ꞝ' => 'Ꞝ', - 'ꞟ' => 'Ꞟ', - 'ꞡ' => 'Ꞡ', - 'ꞣ' => 'Ꞣ', - 'ꞥ' => 'Ꞥ', - 'ꞧ' => 'Ꞧ', - 'ꞩ' => 'Ꞩ', - 'a' => 'A', - 'b' => 'B', - 'c' => 'C', - 'd' => 'D', - 'e' => 'E', - 'f' => 'F', - 'g' => 'G', - 'h' => 'H', - 'i' => 'I', - 'j' => 'J', - 'k' => 'K', - 'l' => 'L', - 'm' => 'M', - 'n' => 'N', - 'o' => 'O', - 'p' => 'P', - 'q' => 'Q', - 'r' => 'R', - 's' => 'S', - 't' => 'T', - 'u' => 'U', - 'v' => 'V', - 'w' => 'W', - 'x' => 'X', - 'y' => 'Y', - 'z' => 'Z', - '𐐨' => '𐐀', - '𐐩' => '𐐁', - '𐐪' => '𐐂', - '𐐫' => '𐐃', - '𐐬' => '𐐄', - '𐐭' => '𐐅', - '𐐮' => '𐐆', - '𐐯' => '𐐇', - '𐐰' => '𐐈', - '𐐱' => '𐐉', - '𐐲' => '𐐊', - '𐐳' => '𐐋', - '𐐴' => '𐐌', - '𐐵' => '𐐍', - '𐐶' => '𐐎', - '𐐷' => '𐐏', - '𐐸' => '𐐐', - '𐐹' => '𐐑', - '𐐺' => '𐐒', - '𐐻' => '𐐓', - '𐐼' => '𐐔', - '𐐽' => '𐐕', - '𐐾' => '𐐖', - '𐐿' => '𐐗', - '𐑀' => '𐐘', - '𐑁' => '𐐙', - '𐑂' => '𐐚', - '𐑃' => '𐐛', - '𐑄' => '𐐜', - '𐑅' => '𐐝', - '𐑆' => '𐐞', - '𐑇' => '𐐟', - '𐑈' => '𐐠', - '𐑉' => '𐐡', - '𐑊' => '𐐢', - '𐑋' => '𐐣', - '𐑌' => '𐐤', - '𐑍' => '𐐥', - '𐑎' => '𐐦', - '𐑏' => '𐐧', - '𑣀' => '𑢠', - '𑣁' => '𑢡', - '𑣂' => '𑢢', - '𑣃' => '𑢣', - '𑣄' => '𑢤', - '𑣅' => '𑢥', - '𑣆' => '𑢦', - '𑣇' => '𑢧', - '𑣈' => '𑢨', - '𑣉' => '𑢩', - '𑣊' => '𑢪', - '𑣋' => '𑢫', - '𑣌' => '𑢬', - '𑣍' => '𑢭', - '𑣎' => '𑢮', - '𑣏' => '𑢯', - '𑣐' => '𑢰', - '𑣑' => '𑢱', - '𑣒' => '𑢲', - '𑣓' => '𑢳', - '𑣔' => '𑢴', - '𑣕' => '𑢵', - '𑣖' => '𑢶', - '𑣗' => '𑢷', - '𑣘' => '𑢸', - '𑣙' => '𑢹', - '𑣚' => '𑢺', - '𑣛' => '𑢻', - '𑣜' => '𑢼', - '𑣝' => '𑢽', - '𑣞' => '𑢾', - '𑣟' => '𑢿', -); diff --git a/srcs/phpmyadmin/vendor/symfony/polyfill-mbstring/bootstrap.php b/srcs/phpmyadmin/vendor/symfony/polyfill-mbstring/bootstrap.php deleted file mode 100644 index 204a41b..0000000 --- a/srcs/phpmyadmin/vendor/symfony/polyfill-mbstring/bootstrap.php +++ /dev/null @@ -1,62 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -use Symfony\Polyfill\Mbstring as p; - -if (!function_exists('mb_strlen')) { - define('MB_CASE_UPPER', 0); - define('MB_CASE_LOWER', 1); - define('MB_CASE_TITLE', 2); - - function mb_convert_encoding($s, $to, $from = null) { return p\Mbstring::mb_convert_encoding($s, $to, $from); } - function mb_decode_mimeheader($s) { return p\Mbstring::mb_decode_mimeheader($s); } - function mb_encode_mimeheader($s, $charset = null, $transferEnc = null, $lf = null, $indent = null) { return p\Mbstring::mb_encode_mimeheader($s, $charset, $transferEnc, $lf, $indent); } - function mb_decode_numericentity($s, $convmap, $enc = null) { return p\Mbstring::mb_decode_numericentity($s, $convmap, $enc); } - function mb_encode_numericentity($s, $convmap, $enc = null, $is_hex = false) { return p\Mbstring::mb_encode_numericentity($s, $convmap, $enc, $is_hex); } - function mb_convert_case($s, $mode, $enc = null) { return p\Mbstring::mb_convert_case($s, $mode, $enc); } - function mb_internal_encoding($enc = null) { return p\Mbstring::mb_internal_encoding($enc); } - function mb_language($lang = null) { return p\Mbstring::mb_language($lang); } - function mb_list_encodings() { return p\Mbstring::mb_list_encodings(); } - function mb_encoding_aliases($encoding) { return p\Mbstring::mb_encoding_aliases($encoding); } - function mb_check_encoding($var = null, $encoding = null) { return p\Mbstring::mb_check_encoding($var, $encoding); } - function mb_detect_encoding($str, $encodingList = null, $strict = false) { return p\Mbstring::mb_detect_encoding($str, $encodingList, $strict); } - function mb_detect_order($encodingList = null) { return p\Mbstring::mb_detect_order($encodingList); } - function mb_parse_str($s, &$result = array()) { parse_str($s, $result); } - function mb_strlen($s, $enc = null) { return p\Mbstring::mb_strlen($s, $enc); } - function mb_strpos($s, $needle, $offset = 0, $enc = null) { return p\Mbstring::mb_strpos($s, $needle, $offset, $enc); } - function mb_strtolower($s, $enc = null) { return p\Mbstring::mb_strtolower($s, $enc); } - function mb_strtoupper($s, $enc = null) { return p\Mbstring::mb_strtoupper($s, $enc); } - function mb_substitute_character($char = null) { return p\Mbstring::mb_substitute_character($char); } - function mb_substr($s, $start, $length = 2147483647, $enc = null) { return p\Mbstring::mb_substr($s, $start, $length, $enc); } - function mb_stripos($s, $needle, $offset = 0, $enc = null) { return p\Mbstring::mb_stripos($s, $needle, $offset, $enc); } - function mb_stristr($s, $needle, $part = false, $enc = null) { return p\Mbstring::mb_stristr($s, $needle, $part, $enc); } - function mb_strrchr($s, $needle, $part = false, $enc = null) { return p\Mbstring::mb_strrchr($s, $needle, $part, $enc); } - function mb_strrichr($s, $needle, $part = false, $enc = null) { return p\Mbstring::mb_strrichr($s, $needle, $part, $enc); } - function mb_strripos($s, $needle, $offset = 0, $enc = null) { return p\Mbstring::mb_strripos($s, $needle, $offset, $enc); } - function mb_strrpos($s, $needle, $offset = 0, $enc = null) { return p\Mbstring::mb_strrpos($s, $needle, $offset, $enc); } - function mb_strstr($s, $needle, $part = false, $enc = null) { return p\Mbstring::mb_strstr($s, $needle, $part, $enc); } - function mb_get_info($type = 'all') { return p\Mbstring::mb_get_info($type); } - function mb_http_output($enc = null) { return p\Mbstring::mb_http_output($enc); } - function mb_strwidth($s, $enc = null) { return p\Mbstring::mb_strwidth($s, $enc); } - function mb_substr_count($haystack, $needle, $enc = null) { return p\Mbstring::mb_substr_count($haystack, $needle, $enc); } - function mb_output_handler($contents, $status) { return p\Mbstring::mb_output_handler($contents, $status); } - function mb_http_input($type = '') { return p\Mbstring::mb_http_input($type); } - function mb_convert_variables($toEncoding, $fromEncoding, &$a = null, &$b = null, &$c = null, &$d = null, &$e = null, &$f = null) { return p\Mbstring::mb_convert_variables($toEncoding, $fromEncoding, $a, $b, $c, $d, $e, $f); } -} -if (!function_exists('mb_chr')) { - function mb_ord($s, $enc = null) { return p\Mbstring::mb_ord($s, $enc); } - function mb_chr($code, $enc = null) { return p\Mbstring::mb_chr($code, $enc); } - function mb_scrub($s, $enc = null) { $enc = null === $enc ? mb_internal_encoding() : $enc; return mb_convert_encoding($s, $enc, $enc); } -} - -if (!function_exists('mb_str_split')) { - function mb_str_split($string, $split_length = 1, $encoding = null) { return p\Mbstring::mb_str_split($string, $split_length, $encoding); } -} diff --git a/srcs/phpmyadmin/vendor/symfony/polyfill-mbstring/composer.json b/srcs/phpmyadmin/vendor/symfony/polyfill-mbstring/composer.json deleted file mode 100644 index c968074..0000000 --- a/srcs/phpmyadmin/vendor/symfony/polyfill-mbstring/composer.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "symfony/polyfill-mbstring", - "type": "library", - "description": "Symfony polyfill for the Mbstring extension", - "keywords": ["polyfill", "shim", "compatibility", "portable", "mbstring"], - "homepage": "https://symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "require": { - "php": ">=5.3.3" - }, - "autoload": { - "psr-4": { "Symfony\\Polyfill\\Mbstring\\": "" }, - "files": [ "bootstrap.php" ] - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "1.13-dev" - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/polyfill-php56/LICENSE b/srcs/phpmyadmin/vendor/symfony/polyfill-php56/LICENSE deleted file mode 100644 index 4cd8bdd..0000000 --- a/srcs/phpmyadmin/vendor/symfony/polyfill-php56/LICENSE +++ /dev/null @@ -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. diff --git a/srcs/phpmyadmin/vendor/symfony/polyfill-php56/Php56.php b/srcs/phpmyadmin/vendor/symfony/polyfill-php56/Php56.php deleted file mode 100644 index dbbc0e1..0000000 --- a/srcs/phpmyadmin/vendor/symfony/polyfill-php56/Php56.php +++ /dev/null @@ -1,138 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Polyfill\Php56; - -use Symfony\Polyfill\Util\Binary; - -/** - * @internal - */ -final class Php56 -{ - const LDAP_ESCAPE_FILTER = 1; - const LDAP_ESCAPE_DN = 2; - - public static function hash_equals($knownString, $userInput) - { - if (!\is_string($knownString)) { - trigger_error('Expected known_string to be a string, '.\gettype($knownString).' given', E_USER_WARNING); - - return false; - } - - if (!\is_string($userInput)) { - trigger_error('Expected user_input to be a string, '.\gettype($userInput).' given', E_USER_WARNING); - - return false; - } - - $knownLen = Binary::strlen($knownString); - $userLen = Binary::strlen($userInput); - - if ($knownLen !== $userLen) { - return false; - } - - $result = 0; - - for ($i = 0; $i < $knownLen; ++$i) { - $result |= \ord($knownString[$i]) ^ \ord($userInput[$i]); - } - - return 0 === $result; - } - - /** - * Stub implementation of the {@link ldap_escape()} function of the ldap - * extension. - * - * Escape strings for safe use in LDAP filters and DNs. - * - * @author Chris Wright - * - * @param string $subject - * @param string $ignore - * @param int $flags - * - * @return string - * - * @see http://stackoverflow.com/a/8561604 - */ - public static function ldap_escape($subject, $ignore = '', $flags = 0) - { - static $charMaps = null; - - if (null === $charMaps) { - $charMaps = array( - self::LDAP_ESCAPE_FILTER => array('\\', '*', '(', ')', "\x00"), - self::LDAP_ESCAPE_DN => array('\\', ',', '=', '+', '<', '>', ';', '"', '#', "\r"), - ); - - $charMaps[0] = array(); - - for ($i = 0; $i < 256; ++$i) { - $charMaps[0][\chr($i)] = sprintf('\\%02x', $i); - } - - for ($i = 0, $l = \count($charMaps[self::LDAP_ESCAPE_FILTER]); $i < $l; ++$i) { - $chr = $charMaps[self::LDAP_ESCAPE_FILTER][$i]; - unset($charMaps[self::LDAP_ESCAPE_FILTER][$i]); - $charMaps[self::LDAP_ESCAPE_FILTER][$chr] = $charMaps[0][$chr]; - } - - for ($i = 0, $l = \count($charMaps[self::LDAP_ESCAPE_DN]); $i < $l; ++$i) { - $chr = $charMaps[self::LDAP_ESCAPE_DN][$i]; - unset($charMaps[self::LDAP_ESCAPE_DN][$i]); - $charMaps[self::LDAP_ESCAPE_DN][$chr] = $charMaps[0][$chr]; - } - } - - // Create the base char map to escape - $flags = (int) $flags; - $charMap = array(); - - if ($flags & self::LDAP_ESCAPE_FILTER) { - $charMap += $charMaps[self::LDAP_ESCAPE_FILTER]; - } - - if ($flags & self::LDAP_ESCAPE_DN) { - $charMap += $charMaps[self::LDAP_ESCAPE_DN]; - } - - if (!$charMap) { - $charMap = $charMaps[0]; - } - - // Remove any chars to ignore from the list - $ignore = (string) $ignore; - - for ($i = 0, $l = \strlen($ignore); $i < $l; ++$i) { - unset($charMap[$ignore[$i]]); - } - - // Do the main replacement - $result = strtr($subject, $charMap); - - // Encode leading/trailing spaces if self::LDAP_ESCAPE_DN is passed - if ($flags & self::LDAP_ESCAPE_DN) { - if (' ' === $result[0]) { - $result = '\\20'.substr($result, 1); - } - - if (' ' === $result[\strlen($result) - 1]) { - $result = substr($result, 0, -1).'\\20'; - } - } - - return $result; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/polyfill-php56/README.md b/srcs/phpmyadmin/vendor/symfony/polyfill-php56/README.md deleted file mode 100644 index 307ce5b..0000000 --- a/srcs/phpmyadmin/vendor/symfony/polyfill-php56/README.md +++ /dev/null @@ -1,15 +0,0 @@ -Symfony Polyfill / Php56 -======================== - -This component provides functions unavailable in releases prior to PHP 5.6: - -- [`hash_equals`](http://php.net/hash_equals) (part of [hash](http://php.net/hash) extension) -- [`ldap_escape`](http://php.net/ldap_escape) (part of [ldap](http://php.net/ldap) extension) - -More information can be found in the -[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md). - -License -======= - -This library is released under the [MIT license](LICENSE). diff --git a/srcs/phpmyadmin/vendor/symfony/polyfill-php56/bootstrap.php b/srcs/phpmyadmin/vendor/symfony/polyfill-php56/bootstrap.php deleted file mode 100644 index 587c2a8..0000000 --- a/srcs/phpmyadmin/vendor/symfony/polyfill-php56/bootstrap.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -use Symfony\Polyfill\Php56 as p; - -if (PHP_VERSION_ID < 50600) { - if (!function_exists('hash_equals')) { - function hash_equals($knownString, $userInput) { return p\Php56::hash_equals($knownString, $userInput); } - } - if (extension_loaded('ldap') && !function_exists('ldap_escape')) { - define('LDAP_ESCAPE_FILTER', 1); - define('LDAP_ESCAPE_DN', 2); - - function ldap_escape($subject, $ignore = '', $flags = 0) { return p\Php56::ldap_escape($subject, $ignore, $flags); } - } - - if (50509 === PHP_VERSION_ID && 4 === PHP_INT_SIZE) { - // Missing functions in PHP 5.5.9 - affects 32 bit builds of Ubuntu 14.04LTS - // See https://bugs.launchpad.net/ubuntu/+source/php5/+bug/1315888 - if (!function_exists('gzopen') && function_exists('gzopen64')) { - function gzopen($filename, $mode, $use_include_path = 0) { return gzopen64($filename, $mode, $use_include_path); } - } - if (!function_exists('gzseek') && function_exists('gzseek64')) { - function gzseek($zp, $offset, $whence = SEEK_SET) { return gzseek64($zp, $offset, $whence); } - } - if (!function_exists('gztell') && function_exists('gztell64')) { - function gztell($zp) { return gztell64($zp); } - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/polyfill-php56/composer.json b/srcs/phpmyadmin/vendor/symfony/polyfill-php56/composer.json deleted file mode 100644 index cabee7b..0000000 --- a/srcs/phpmyadmin/vendor/symfony/polyfill-php56/composer.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "symfony/polyfill-php56", - "type": "library", - "description": "Symfony polyfill backporting some PHP 5.6+ 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": ">=5.3.3", - "symfony/polyfill-util": "~1.0" - }, - "autoload": { - "psr-4": { "Symfony\\Polyfill\\Php56\\": "" }, - "files": [ "bootstrap.php" ] - }, - "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "1.13-dev" - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/polyfill-util/Binary.php b/srcs/phpmyadmin/vendor/symfony/polyfill-util/Binary.php deleted file mode 100644 index 23ff974..0000000 --- a/srcs/phpmyadmin/vendor/symfony/polyfill-util/Binary.php +++ /dev/null @@ -1,22 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Polyfill\Util; - -if (\extension_loaded('mbstring')) { - class Binary extends BinaryOnFuncOverload - { - } -} else { - class Binary extends BinaryNoFuncOverload - { - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/polyfill-util/BinaryNoFuncOverload.php b/srcs/phpmyadmin/vendor/symfony/polyfill-util/BinaryNoFuncOverload.php deleted file mode 100644 index 800ad75..0000000 --- a/srcs/phpmyadmin/vendor/symfony/polyfill-util/BinaryNoFuncOverload.php +++ /dev/null @@ -1,65 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Polyfill\Util; - -/** - * @author Nicolas Grekas - * - * @internal - */ -class BinaryNoFuncOverload -{ - public static function strlen($s) - { - return \strlen($s); - } - - public static function strpos($haystack, $needle, $offset = 0) - { - return strpos($haystack, $needle, $offset); - } - - public static function strrpos($haystack, $needle, $offset = 0) - { - return strrpos($haystack, $needle, $offset); - } - - public static function substr($string, $start, $length = PHP_INT_MAX) - { - return substr($string, $start, $length); - } - - public static function stripos($s, $needle, $offset = 0) - { - return stripos($s, $needle, $offset); - } - - public static function stristr($s, $needle, $part = false) - { - return stristr($s, $needle, $part); - } - - public static function strrchr($s, $needle, $part = false) - { - return strrchr($s, $needle, $part); - } - - public static function strripos($s, $needle, $offset = 0) - { - return strripos($s, $needle, $offset); - } - - public static function strstr($s, $needle, $part = false) - { - return strstr($s, $needle, $part); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/polyfill-util/BinaryOnFuncOverload.php b/srcs/phpmyadmin/vendor/symfony/polyfill-util/BinaryOnFuncOverload.php deleted file mode 100644 index e1b886e..0000000 --- a/srcs/phpmyadmin/vendor/symfony/polyfill-util/BinaryOnFuncOverload.php +++ /dev/null @@ -1,67 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Polyfill\Util; - -/** - * Binary safe version of string functions overloaded when MB_OVERLOAD_STRING is enabled. - * - * @author Nicolas Grekas - * - * @internal - */ -class BinaryOnFuncOverload -{ - public static function strlen($s) - { - return mb_strlen($s, '8bit'); - } - - public static function strpos($haystack, $needle, $offset = 0) - { - return mb_strpos($haystack, $needle, $offset, '8bit'); - } - - public static function strrpos($haystack, $needle, $offset = 0) - { - return mb_strrpos($haystack, $needle, $offset, '8bit'); - } - - public static function substr($string, $start, $length = 2147483647) - { - return mb_substr($string, $start, $length, '8bit'); - } - - public static function stripos($s, $needle, $offset = 0) - { - return mb_stripos($s, $needle, $offset, '8bit'); - } - - public static function stristr($s, $needle, $part = false) - { - return mb_stristr($s, $needle, $part, '8bit'); - } - - public static function strrchr($s, $needle, $part = false) - { - return mb_strrchr($s, $needle, $part, '8bit'); - } - - public static function strripos($s, $needle, $offset = 0) - { - return mb_strripos($s, $needle, $offset, '8bit'); - } - - public static function strstr($s, $needle, $part = false) - { - return mb_strstr($s, $needle, $part, '8bit'); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/polyfill-util/LICENSE b/srcs/phpmyadmin/vendor/symfony/polyfill-util/LICENSE deleted file mode 100644 index 4cd8bdd..0000000 --- a/srcs/phpmyadmin/vendor/symfony/polyfill-util/LICENSE +++ /dev/null @@ -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. diff --git a/srcs/phpmyadmin/vendor/symfony/polyfill-util/README.md b/srcs/phpmyadmin/vendor/symfony/polyfill-util/README.md deleted file mode 100644 index 1c655fc..0000000 --- a/srcs/phpmyadmin/vendor/symfony/polyfill-util/README.md +++ /dev/null @@ -1,13 +0,0 @@ -Symfony Polyfill / Util -======================= - -This component provides binary-safe string functions, using the -[mbstring](https://php.net/mbstring) extension when available. - -More information can be found in the -[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md). - -License -======= - -This library is released under the [MIT license](LICENSE). diff --git a/srcs/phpmyadmin/vendor/symfony/polyfill-util/TestListener.php b/srcs/phpmyadmin/vendor/symfony/polyfill-util/TestListener.php deleted file mode 100644 index 6b17d45..0000000 --- a/srcs/phpmyadmin/vendor/symfony/polyfill-util/TestListener.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Polyfill\Util; - -if (class_exists('PHPUnit_Runner_Version') && version_compare(\PHPUnit_Runner_Version::id(), '6.0.0', '<')) { - class_alias('Symfony\Polyfill\Util\TestListenerForV5', 'Symfony\Polyfill\Util\TestListener'); -// Using an early return instead of a else does not work when using the PHPUnit phar due to some weird PHP behavior (the class -// gets defined without executing the code before it and so the definition is not properly conditional) -} elseif (version_compare(\PHPUnit\Runner\Version::id(), '7.0.0', '<')) { - class_alias('Symfony\Polyfill\Util\TestListenerForV6', 'Symfony\Polyfill\Util\TestListener'); -} else { - class_alias('Symfony\Polyfill\Util\TestListenerForV7', 'Symfony\Polyfill\Util\TestListener'); -} - -if (false) { - class TestListener - { - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/polyfill-util/TestListenerForV5.php b/srcs/phpmyadmin/vendor/symfony/polyfill-util/TestListenerForV5.php deleted file mode 100644 index 501053d..0000000 --- a/srcs/phpmyadmin/vendor/symfony/polyfill-util/TestListenerForV5.php +++ /dev/null @@ -1,89 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Polyfill\Util; - -/** - * @author Nicolas Grekas - */ -class TestListenerForV5 extends \PHPUnit_Framework_TestSuite implements \PHPUnit_Framework_TestListener -{ - private $suite; - private $trait; - - public function __construct(\PHPUnit_Framework_TestSuite $suite = null) - { - if ($suite) { - $this->suite = $suite; - $this->setName($suite->getName().' with polyfills enabled'); - $this->addTest($suite); - } - $this->trait = new TestListenerTrait(); - } - - public function startTestSuite(\PHPUnit_Framework_TestSuite $suite) - { - $this->trait->startTestSuite($suite); - } - - public function addError(\PHPUnit_Framework_Test $test, \Exception $e, $time) - { - $this->trait->addError($test, $e, $time); - } - - public function addWarning(\PHPUnit_Framework_Test $test, \PHPUnit_Framework_Warning $e, $time) - { - } - - public function addFailure(\PHPUnit_Framework_Test $test, \PHPUnit_Framework_AssertionFailedError $e, $time) - { - $this->trait->addError($test, $e, $time); - } - - public function addIncompleteTest(\PHPUnit_Framework_Test $test, \Exception $e, $time) - { - } - - public function addRiskyTest(\PHPUnit_Framework_Test $test, \Exception $e, $time) - { - } - - public function addSkippedTest(\PHPUnit_Framework_Test $test, \Exception $e, $time) - { - } - - public function endTestSuite(\PHPUnit_Framework_TestSuite $suite) - { - } - - public function startTest(\PHPUnit_Framework_Test $test) - { - } - - public function endTest(\PHPUnit_Framework_Test $test, $time) - { - } - - public static function warning($message) - { - return parent::warning($message); - } - - protected function setUp() - { - TestListenerTrait::$enabledPolyfills = $this->suite->getName(); - } - - protected function tearDown() - { - TestListenerTrait::$enabledPolyfills = false; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/polyfill-util/TestListenerForV6.php b/srcs/phpmyadmin/vendor/symfony/polyfill-util/TestListenerForV6.php deleted file mode 100644 index e9e87cb..0000000 --- a/srcs/phpmyadmin/vendor/symfony/polyfill-util/TestListenerForV6.php +++ /dev/null @@ -1,95 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Polyfill\Util; - -use PHPUnit\Framework\AssertionFailedError; -use PHPUnit\Framework\Test; -use PHPUnit\Framework\TestListener as TestListenerInterface; -use PHPUnit\Framework\TestSuite; -use PHPUnit\Framework\Warning; - -/** - * @author Nicolas Grekas - */ -class TestListenerForV6 extends TestSuite implements TestListenerInterface -{ - private $suite; - private $trait; - - public function __construct(TestSuite $suite = null) - { - if ($suite) { - $this->suite = $suite; - $this->setName($suite->getName().' with polyfills enabled'); - $this->addTest($suite); - } - $this->trait = new TestListenerTrait(); - } - - public function startTestSuite(TestSuite $suite) - { - $this->trait->startTestSuite($suite); - } - - public function addError(Test $test, \Exception $e, $time) - { - $this->trait->addError($test, $e, $time); - } - - public function addWarning(Test $test, Warning $e, $time) - { - } - - public function addFailure(Test $test, AssertionFailedError $e, $time) - { - $this->trait->addError($test, $e, $time); - } - - public function addIncompleteTest(Test $test, \Exception $e, $time) - { - } - - public function addRiskyTest(Test $test, \Exception $e, $time) - { - } - - public function addSkippedTest(Test $test, \Exception $e, $time) - { - } - - public function endTestSuite(TestSuite $suite) - { - } - - public function startTest(Test $test) - { - } - - public function endTest(Test $test, $time) - { - } - - public static function warning($message) - { - return parent::warning($message); - } - - protected function setUp() - { - TestListenerTrait::$enabledPolyfills = $this->suite->getName(); - } - - protected function tearDown() - { - TestListenerTrait::$enabledPolyfills = false; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/polyfill-util/TestListenerForV7.php b/srcs/phpmyadmin/vendor/symfony/polyfill-util/TestListenerForV7.php deleted file mode 100644 index a5c3759..0000000 --- a/srcs/phpmyadmin/vendor/symfony/polyfill-util/TestListenerForV7.php +++ /dev/null @@ -1,96 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Polyfill\Util; - -use PHPUnit\Framework\AssertionFailedError; -use PHPUnit\Framework\Test; -use PHPUnit\Framework\TestListener as TestListenerInterface; -use PHPUnit\Framework\TestSuite; -use PHPUnit\Framework\Warning; -use PHPUnit\Framework\WarningTestCase; - -/** - * @author Ion Bazan - */ -class TestListenerForV7 extends TestSuite implements TestListenerInterface -{ - private $suite; - private $trait; - - public function __construct(TestSuite $suite = null) - { - if ($suite) { - $this->suite = $suite; - $this->setName($suite->getName().' with polyfills enabled'); - $this->addTest($suite); - } - $this->trait = new TestListenerTrait(); - } - - public function startTestSuite(TestSuite $suite): void - { - $this->trait->startTestSuite($suite); - } - - public function addError(Test $test, \Throwable $t, float $time): void - { - $this->trait->addError($test, $t, $time); - } - - public function addWarning(Test $test, Warning $e, float $time): void - { - } - - public function addFailure(Test $test, AssertionFailedError $e, float $time): void - { - $this->trait->addError($test, $e, $time); - } - - public function addIncompleteTest(Test $test, \Throwable $t, float $time): void - { - } - - public function addRiskyTest(Test $test, \Throwable $t, float $time): void - { - } - - public function addSkippedTest(Test $test, \Throwable $t, float $time): void - { - } - - public function endTestSuite(TestSuite $suite): void - { - } - - public function startTest(Test $test): void - { - } - - public function endTest(Test $test, float $time): void - { - } - - public static function warning($message): WarningTestCase - { - return new WarningTestCase($message); - } - - protected function setUp(): void - { - TestListenerTrait::$enabledPolyfills = $this->suite->getName(); - } - - protected function tearDown(): void - { - TestListenerTrait::$enabledPolyfills = false; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/polyfill-util/TestListenerTrait.php b/srcs/phpmyadmin/vendor/symfony/polyfill-util/TestListenerTrait.php deleted file mode 100644 index d8047a0..0000000 --- a/srcs/phpmyadmin/vendor/symfony/polyfill-util/TestListenerTrait.php +++ /dev/null @@ -1,125 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Polyfill\Util; - -/** - * @author Nicolas Grekas - */ -class TestListenerTrait -{ - public static $enabledPolyfills; - - public function startTestSuite($mainSuite) - { - if (null !== self::$enabledPolyfills) { - return; - } - self::$enabledPolyfills = false; - $SkippedTestError = class_exists('PHPUnit\Framework\SkippedTestError') ? 'PHPUnit\Framework\SkippedTestError' : 'PHPUnit_Framework_SkippedTestError'; - - foreach ($mainSuite->tests() as $suite) { - $testClass = $suite->getName(); - if (!$tests = $suite->tests()) { - continue; - } - if (!preg_match('/^(.+)\\\\Tests(\\\\.*)Test$/', $testClass, $m)) { - $mainSuite->addTest(TestListener::warning('Unknown naming convention for '.$testClass)); - continue; - } - if (!class_exists($m[1].$m[2])) { - continue; - } - $testedClass = new \ReflectionClass($m[1].$m[2]); - $bootstrap = new \SplFileObject(\dirname($testedClass->getFileName()).'/bootstrap.php'); - $warnings = array(); - $defLine = null; - - foreach (new \RegexIterator($bootstrap, '/define\(\'/') as $defLine) { - preg_match('/define\(\'(?P.+)\'/', $defLine, $matches); - if (\defined($matches['name'])) { - continue; - } - - try { - eval($defLine); - } catch (\PHPUnit_Framework_Exception $ex){ - $warnings[] = TestListener::warning($ex->getMessage()); - } catch (\PHPUnit\Framework\Exception $ex) { - $warnings[] = TestListener::warning($ex->getMessage()); - } - } - - $bootstrap->rewind(); - - foreach (new \RegexIterator($bootstrap, '/return p\\\\'.$testedClass->getShortName().'::/') as $defLine) { - if (!preg_match('/^\s*function (?P[^\(]++)(?P\(.*\)) \{ (?return p\\\\'.$testedClass->getShortName().'::[^\(]++)(?P\([^\)]*+\)); \}$/', $defLine, $f)) { - $warnings[] = TestListener::warning('Invalid line in bootstrap.php: '.trim($defLine)); - continue; - } - $testNamespace = substr($testClass, 0, strrpos($testClass, '\\')); - if (\function_exists($testNamespace.'\\'.$f['name'])) { - continue; - } - - try { - $r = new \ReflectionFunction($f['name']); - if ($r->isUserDefined()) { - throw new \ReflectionException(); - } - if ('idn_to_ascii' === $f['name'] || 'idn_to_utf8' === $f['name']) { - $defLine = sprintf('return INTL_IDNA_VARIANT_2003 === $variant ? \\%s($domain, $options, $variant) : \\%1$s%s', $f['name'], $f['args']); - } elseif (false !== strpos($f['signature'], '&') && 'idn_to_ascii' !== $f['name'] && 'idn_to_utf8' !== $f['name']) { - $defLine = sprintf('return \\%s%s', $f['name'], $f['args']); - } else { - $defLine = sprintf("return \\call_user_func_array('%s', \\func_get_args())", $f['name']); - } - } catch (\ReflectionException $e) { - $defLine = sprintf("throw new \\{$SkippedTestError}('Internal function not found: %s')", $f['name']); - } - - eval(<<getNamespaceName()} as p; - -function {$f['name']}{$f['signature']} -{ - if ('{$testClass}' === TestListenerTrait::\$enabledPolyfills) { - {$f['return']}{$f['args']}; - } - - {$defLine}; -} -EOPHP - ); - } - if (!$warnings && null === $defLine) { - $warnings[] = new $SkippedTestError('No Polyfills found in bootstrap.php for '.$testClass); - } else { - $mainSuite->addTest(new TestListener($suite)); - } - } - foreach ($warnings as $w) { - $mainSuite->addTest($w); - } - } - - public function addError($test, \Exception $e, $time) - { - if (false !== self::$enabledPolyfills) { - $r = new \ReflectionProperty('Exception', 'message'); - $r->setAccessible(true); - $r->setValue($e, 'Polyfills enabled, '.$r->getValue($e)); - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/polyfill-util/composer.json b/srcs/phpmyadmin/vendor/symfony/polyfill-util/composer.json deleted file mode 100644 index 47c7883..0000000 --- a/srcs/phpmyadmin/vendor/symfony/polyfill-util/composer.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "symfony/polyfill-util", - "type": "library", - "description": "Symfony utilities for portability of PHP codes", - "keywords": ["polyfill", "shim", "compat", "compatibility"], - "homepage": "https://symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "require": { - "php": ">=5.3.3" - }, - "autoload": { - "psr-4": { "Symfony\\Polyfill\\Util\\": "" } - }, - "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "1.13-dev" - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/service-contracts/LICENSE b/srcs/phpmyadmin/vendor/symfony/service-contracts/LICENSE deleted file mode 100644 index 3f853aa..0000000 --- a/srcs/phpmyadmin/vendor/symfony/service-contracts/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2018-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. diff --git a/srcs/phpmyadmin/vendor/symfony/service-contracts/README.md b/srcs/phpmyadmin/vendor/symfony/service-contracts/README.md deleted file mode 100644 index d033a43..0000000 --- a/srcs/phpmyadmin/vendor/symfony/service-contracts/README.md +++ /dev/null @@ -1,9 +0,0 @@ -Symfony Service Contracts -========================= - -A set of abstractions extracted out of the Symfony components. - -Can be used to build on semantics that the Symfony components proved useful - and -that already have battle tested implementations. - -See https://github.com/symfony/contracts/blob/master/README.md for more information. diff --git a/srcs/phpmyadmin/vendor/symfony/service-contracts/ResetInterface.php b/srcs/phpmyadmin/vendor/symfony/service-contracts/ResetInterface.php deleted file mode 100644 index 1af1075..0000000 --- a/srcs/phpmyadmin/vendor/symfony/service-contracts/ResetInterface.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Contracts\Service; - -/** - * Provides a way to reset an object to its initial state. - * - * When calling the "reset()" method on an object, it should be put back to its - * initial state. This usually means clearing any internal buffers and forwarding - * the call to internal dependencies. All properties of the object should be put - * back to the same state it had when it was first ready to use. - * - * This method could be called, for example, to recycle objects that are used as - * services, so that they can be used to handle several requests in the same - * process loop (note that we advise making your services stateless instead of - * implementing this interface when possible.) - */ -interface ResetInterface -{ - public function reset(); -} diff --git a/srcs/phpmyadmin/vendor/symfony/service-contracts/ServiceLocatorTrait.php b/srcs/phpmyadmin/vendor/symfony/service-contracts/ServiceLocatorTrait.php deleted file mode 100644 index 4ec6eb4..0000000 --- a/srcs/phpmyadmin/vendor/symfony/service-contracts/ServiceLocatorTrait.php +++ /dev/null @@ -1,122 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Contracts\Service; - -use Psr\Container\ContainerExceptionInterface; -use Psr\Container\NotFoundExceptionInterface; - -/** - * A trait to help implement ServiceProviderInterface. - * - * @author Robin Chalas - * @author Nicolas Grekas - */ -trait ServiceLocatorTrait -{ - private $factories; - private $loading = []; - private $providedTypes; - - /** - * @param callable[] $factories - */ - public function __construct(array $factories) - { - $this->factories = $factories; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function has($id) - { - return isset($this->factories[$id]); - } - - /** - * {@inheritdoc} - */ - public function get($id) - { - if (!isset($this->factories[$id])) { - throw $this->createNotFoundException($id); - } - - if (isset($this->loading[$id])) { - $ids = array_values($this->loading); - $ids = \array_slice($this->loading, array_search($id, $ids)); - $ids[] = $id; - - throw $this->createCircularReferenceException($id, $ids); - } - - $this->loading[$id] = $id; - try { - return $this->factories[$id]($this); - } finally { - unset($this->loading[$id]); - } - } - - /** - * {@inheritdoc} - */ - public function getProvidedServices(): array - { - if (null === $this->providedTypes) { - $this->providedTypes = []; - - foreach ($this->factories as $name => $factory) { - if (!\is_callable($factory)) { - $this->providedTypes[$name] = '?'; - } else { - $type = (new \ReflectionFunction($factory))->getReturnType(); - - $this->providedTypes[$name] = $type ? ($type->allowsNull() ? '?' : '').$type->getName() : '?'; - } - } - } - - return $this->providedTypes; - } - - private function createNotFoundException(string $id): NotFoundExceptionInterface - { - if (!$alternatives = array_keys($this->factories)) { - $message = 'is empty...'; - } else { - $last = array_pop($alternatives); - if ($alternatives) { - $message = sprintf('only knows about the "%s" and "%s" services.', implode('", "', $alternatives), $last); - } else { - $message = sprintf('only knows about the "%s" service.', $last); - } - } - - if ($this->loading) { - $message = sprintf('The service "%s" has a dependency on a non-existent service "%s". This locator %s', end($this->loading), $id, $message); - } else { - $message = sprintf('Service "%s" not found: the current service locator %s', $id, $message); - } - - return new class($message) extends \InvalidArgumentException implements NotFoundExceptionInterface { - }; - } - - private function createCircularReferenceException(string $id, array $path): ContainerExceptionInterface - { - return new class(sprintf('Circular reference detected for service "%s", path: "%s".', $id, implode(' -> ', $path))) extends \RuntimeException implements ContainerExceptionInterface { - }; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/service-contracts/ServiceProviderInterface.php b/srcs/phpmyadmin/vendor/symfony/service-contracts/ServiceProviderInterface.php deleted file mode 100644 index c60ad0b..0000000 --- a/srcs/phpmyadmin/vendor/symfony/service-contracts/ServiceProviderInterface.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Contracts\Service; - -use Psr\Container\ContainerInterface; - -/** - * A ServiceProviderInterface exposes the identifiers and the types of services provided by a container. - * - * @author Nicolas Grekas - * @author Mateusz Sip - */ -interface ServiceProviderInterface extends ContainerInterface -{ - /** - * Returns an associative array of service types keyed by the identifiers provided by the current container. - * - * Examples: - * - * * ['logger' => 'Psr\Log\LoggerInterface'] means the object provides a service named "logger" that implements Psr\Log\LoggerInterface - * * ['foo' => '?'] means the container provides service name "foo" of unspecified type - * * ['bar' => '?Bar\Baz'] means the container provides a service "bar" of type Bar\Baz|null - * - * @return string[] The provided service types, keyed by service names - */ - public function getProvidedServices(): array; -} diff --git a/srcs/phpmyadmin/vendor/symfony/service-contracts/ServiceSubscriberInterface.php b/srcs/phpmyadmin/vendor/symfony/service-contracts/ServiceSubscriberInterface.php deleted file mode 100644 index 8bb320f..0000000 --- a/srcs/phpmyadmin/vendor/symfony/service-contracts/ServiceSubscriberInterface.php +++ /dev/null @@ -1,53 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Contracts\Service; - -/** - * A ServiceSubscriber exposes its dependencies via the static {@link getSubscribedServices} method. - * - * The getSubscribedServices method returns an array of service types required by such instances, - * optionally keyed by the service names used internally. Service types that start with an interrogation - * mark "?" are optional, while the other ones are mandatory service dependencies. - * - * The injected service locators SHOULD NOT allow access to any other services not specified by the method. - * - * It is expected that ServiceSubscriber instances consume PSR-11-based service locators internally. - * This interface does not dictate any injection method for these service locators, although constructor - * injection is recommended. - * - * @author Nicolas Grekas - */ -interface ServiceSubscriberInterface -{ - /** - * Returns an array of service types required by such instances, optionally keyed by the service names used internally. - * - * For mandatory dependencies: - * - * * ['logger' => 'Psr\Log\LoggerInterface'] means the objects use the "logger" name - * internally to fetch a service which must implement Psr\Log\LoggerInterface. - * * ['loggers' => 'Psr\Log\LoggerInterface[]'] means the objects use the "loggers" name - * internally to fetch an iterable of Psr\Log\LoggerInterface instances. - * * ['Psr\Log\LoggerInterface'] is a shortcut for - * * ['Psr\Log\LoggerInterface' => 'Psr\Log\LoggerInterface'] - * - * otherwise: - * - * * ['logger' => '?Psr\Log\LoggerInterface'] denotes an optional dependency - * * ['loggers' => '?Psr\Log\LoggerInterface[]'] denotes an optional iterable dependency - * * ['?Psr\Log\LoggerInterface'] is a shortcut for - * * ['Psr\Log\LoggerInterface' => '?Psr\Log\LoggerInterface'] - * - * @return array The required service types, optionally keyed by service names - */ - public static function getSubscribedServices(); -} diff --git a/srcs/phpmyadmin/vendor/symfony/service-contracts/ServiceSubscriberTrait.php b/srcs/phpmyadmin/vendor/symfony/service-contracts/ServiceSubscriberTrait.php deleted file mode 100644 index 5d9d456..0000000 --- a/srcs/phpmyadmin/vendor/symfony/service-contracts/ServiceSubscriberTrait.php +++ /dev/null @@ -1,63 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Contracts\Service; - -use Psr\Container\ContainerInterface; - -/** - * Implementation of ServiceSubscriberInterface that determines subscribed services from - * private method return types. Service ids are available as "ClassName::methodName". - * - * @author Kevin Bond - */ -trait ServiceSubscriberTrait -{ - /** @var ContainerInterface */ - protected $container; - - public static function getSubscribedServices(): array - { - static $services; - - if (null !== $services) { - return $services; - } - - $services = \is_callable(['parent', __FUNCTION__]) ? parent::getSubscribedServices() : []; - - foreach ((new \ReflectionClass(self::class))->getMethods() as $method) { - if ($method->isStatic() || $method->isAbstract() || $method->isGenerator() || $method->isInternal() || $method->getNumberOfRequiredParameters()) { - continue; - } - - if (self::class === $method->getDeclaringClass()->name && ($returnType = $method->getReturnType()) && !$returnType->isBuiltin()) { - $services[self::class.'::'.$method->name] = '?'.$returnType->getName(); - } - } - - return $services; - } - - /** - * @required - */ - public function setContainer(ContainerInterface $container) - { - $this->container = $container; - - if (\is_callable(['parent', __FUNCTION__])) { - return parent::setContainer($container); - } - - return null; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/service-contracts/Test/ServiceLocatorTest.php b/srcs/phpmyadmin/vendor/symfony/service-contracts/Test/ServiceLocatorTest.php deleted file mode 100644 index 5ed9149..0000000 --- a/srcs/phpmyadmin/vendor/symfony/service-contracts/Test/ServiceLocatorTest.php +++ /dev/null @@ -1,92 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Contracts\Service\Test; - -use PHPUnit\Framework\TestCase; -use Psr\Container\ContainerInterface; -use Symfony\Contracts\Service\ServiceLocatorTrait; - -abstract class ServiceLocatorTest extends TestCase -{ - protected function getServiceLocator(array $factories) - { - return new class($factories) implements ContainerInterface { - use ServiceLocatorTrait; - }; - } - - public function testHas() - { - $locator = $this->getServiceLocator([ - 'foo' => function () { return 'bar'; }, - 'bar' => function () { return 'baz'; }, - function () { return 'dummy'; }, - ]); - - $this->assertTrue($locator->has('foo')); - $this->assertTrue($locator->has('bar')); - $this->assertFalse($locator->has('dummy')); - } - - public function testGet() - { - $locator = $this->getServiceLocator([ - 'foo' => function () { return 'bar'; }, - 'bar' => function () { return 'baz'; }, - ]); - - $this->assertSame('bar', $locator->get('foo')); - $this->assertSame('baz', $locator->get('bar')); - } - - public function testGetDoesNotMemoize() - { - $i = 0; - $locator = $this->getServiceLocator([ - 'foo' => function () use (&$i) { - ++$i; - - return 'bar'; - }, - ]); - - $this->assertSame('bar', $locator->get('foo')); - $this->assertSame('bar', $locator->get('foo')); - $this->assertSame(2, $i); - } - - public function testThrowsOnUndefinedInternalService() - { - if (!$this->getExpectedException()) { - $this->expectException('Psr\Container\NotFoundExceptionInterface'); - $this->expectExceptionMessage('The service "foo" has a dependency on a non-existent service "bar". This locator only knows about the "foo" service.'); - } - $locator = $this->getServiceLocator([ - 'foo' => function () use (&$locator) { return $locator->get('bar'); }, - ]); - - $locator->get('foo'); - } - - public function testThrowsOnCircularReference() - { - $this->expectException('Psr\Container\ContainerExceptionInterface'); - $this->expectExceptionMessage('Circular reference detected for service "bar", path: "bar -> baz -> bar".'); - $locator = $this->getServiceLocator([ - 'foo' => function () use (&$locator) { return $locator->get('bar'); }, - 'bar' => function () use (&$locator) { return $locator->get('baz'); }, - 'baz' => function () use (&$locator) { return $locator->get('bar'); }, - ]); - - $locator->get('foo'); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/service-contracts/composer.json b/srcs/phpmyadmin/vendor/symfony/service-contracts/composer.json deleted file mode 100644 index f4209cc..0000000 --- a/srcs/phpmyadmin/vendor/symfony/service-contracts/composer.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "symfony/service-contracts", - "type": "library", - "description": "Generic abstractions related to writing services", - "keywords": ["abstractions", "contracts", "decoupling", "interfaces", "interoperability", "standards"], - "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.3", - "psr/container": "^1.0" - }, - "suggest": { - "symfony/service-implementation": "" - }, - "autoload": { - "psr-4": { "Symfony\\Contracts\\Service\\": "" } - }, - "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/var-exporter/CHANGELOG.md b/srcs/phpmyadmin/vendor/symfony/var-exporter/CHANGELOG.md deleted file mode 100644 index 9aa4a8b..0000000 --- a/srcs/phpmyadmin/vendor/symfony/var-exporter/CHANGELOG.md +++ /dev/null @@ -1,7 +0,0 @@ -CHANGELOG -========= - -4.2.0 ------ - - * added the component diff --git a/srcs/phpmyadmin/vendor/symfony/var-exporter/Exception/ClassNotFoundException.php b/srcs/phpmyadmin/vendor/symfony/var-exporter/Exception/ClassNotFoundException.php deleted file mode 100644 index 4cebe44..0000000 --- a/srcs/phpmyadmin/vendor/symfony/var-exporter/Exception/ClassNotFoundException.php +++ /dev/null @@ -1,20 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\VarExporter\Exception; - -class ClassNotFoundException extends \Exception implements ExceptionInterface -{ - public function __construct(string $class, \Throwable $previous = null) - { - parent::__construct(sprintf('Class "%s" not found.', $class), 0, $previous); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/var-exporter/Exception/ExceptionInterface.php b/srcs/phpmyadmin/vendor/symfony/var-exporter/Exception/ExceptionInterface.php deleted file mode 100644 index adfaed4..0000000 --- a/srcs/phpmyadmin/vendor/symfony/var-exporter/Exception/ExceptionInterface.php +++ /dev/null @@ -1,16 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\VarExporter\Exception; - -interface ExceptionInterface extends \Throwable -{ -} diff --git a/srcs/phpmyadmin/vendor/symfony/var-exporter/Exception/NotInstantiableTypeException.php b/srcs/phpmyadmin/vendor/symfony/var-exporter/Exception/NotInstantiableTypeException.php deleted file mode 100644 index 7ca4884..0000000 --- a/srcs/phpmyadmin/vendor/symfony/var-exporter/Exception/NotInstantiableTypeException.php +++ /dev/null @@ -1,20 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\VarExporter\Exception; - -class NotInstantiableTypeException extends \Exception implements ExceptionInterface -{ - public function __construct(string $type) - { - parent::__construct(sprintf('Type "%s" is not instantiable.', $type)); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/var-exporter/Instantiator.php b/srcs/phpmyadmin/vendor/symfony/var-exporter/Instantiator.php deleted file mode 100644 index 06abbc7..0000000 --- a/srcs/phpmyadmin/vendor/symfony/var-exporter/Instantiator.php +++ /dev/null @@ -1,94 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\VarExporter; - -use Symfony\Component\VarExporter\Exception\ExceptionInterface; -use Symfony\Component\VarExporter\Exception\NotInstantiableTypeException; -use Symfony\Component\VarExporter\Internal\Hydrator; -use Symfony\Component\VarExporter\Internal\Registry; - -/** - * A utility class to create objects without calling their constructor. - * - * @author Nicolas Grekas - */ -final class Instantiator -{ - /** - * Creates an object and sets its properties without calling its constructor nor any other methods. - * - * For example: - * - * // creates an empty instance of Foo - * Instantiator::instantiate(Foo::class); - * - * // creates a Foo instance and sets one of its properties - * Instantiator::instantiate(Foo::class, ['propertyName' => $propertyValue]); - * - * // creates a Foo instance and sets a private property defined on its parent Bar class - * Instantiator::instantiate(Foo::class, [], [ - * Bar::class => ['privateBarProperty' => $propertyValue], - * ]); - * - * Instances of ArrayObject, ArrayIterator and SplObjectHash can be created - * by using the special "\0" property name to define their internal value: - * - * // creates an SplObjectHash where $info1 is attached to $obj1, etc. - * Instantiator::instantiate(SplObjectStorage::class, ["\0" => [$obj1, $info1, $obj2, $info2...]]); - * - * // creates an ArrayObject populated with $inputArray - * Instantiator::instantiate(ArrayObject::class, ["\0" => [$inputArray]]); - * - * @param string $class The class of the instance to create - * @param array $properties The properties to set on the instance - * @param array $privateProperties The private properties to set on the instance, - * keyed by their declaring class - * - * @return object The created instance - * - * @throws ExceptionInterface When the instance cannot be created - */ - public static function instantiate(string $class, array $properties = [], array $privateProperties = []) - { - $reflector = Registry::$reflectors[$class] ?? Registry::getClassReflector($class); - - if (Registry::$cloneable[$class]) { - $wrappedInstance = [clone Registry::$prototypes[$class]]; - } elseif (Registry::$instantiableWithoutConstructor[$class]) { - $wrappedInstance = [$reflector->newInstanceWithoutConstructor()]; - } elseif (null === Registry::$prototypes[$class]) { - throw new NotInstantiableTypeException($class); - } elseif ($reflector->implementsInterface('Serializable') && (\PHP_VERSION_ID < 70400 || !method_exists($class, '__unserialize'))) { - $wrappedInstance = [unserialize('C:'.\strlen($class).':"'.$class.'":0:{}')]; - } else { - $wrappedInstance = [unserialize('O:'.\strlen($class).':"'.$class.'":0:{}')]; - } - - if ($properties) { - $privateProperties[$class] = isset($privateProperties[$class]) ? $properties + $privateProperties[$class] : $properties; - } - - foreach ($privateProperties as $class => $properties) { - if (!$properties) { - continue; - } - foreach ($properties as $name => $value) { - // because they're also used for "unserialization", hydrators - // deal with array of instances, so we need to wrap values - $properties[$name] = [$value]; - } - (Hydrator::$hydrators[$class] ?? Hydrator::getHydrator($class))($properties, $wrappedInstance); - } - - return $wrappedInstance[0]; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/var-exporter/Internal/Exporter.php b/srcs/phpmyadmin/vendor/symfony/var-exporter/Internal/Exporter.php deleted file mode 100644 index d1ee987..0000000 --- a/srcs/phpmyadmin/vendor/symfony/var-exporter/Internal/Exporter.php +++ /dev/null @@ -1,407 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\VarExporter\Internal; - -use Symfony\Component\VarExporter\Exception\NotInstantiableTypeException; - -/** - * @author Nicolas Grekas - * - * @internal - */ -class Exporter -{ - /** - * Prepares an array of values for VarExporter. - * - * For performance this method is public and has no type-hints. - * - * @param array &$values - * @param \SplObjectStorage $objectsPool - * @param array &$refsPool - * @param int &$objectsCount - * @param bool &$valuesAreStatic - * - * @return array - * - * @throws NotInstantiableTypeException When a value cannot be serialized - */ - public static function prepare($values, $objectsPool, &$refsPool, &$objectsCount, &$valuesAreStatic) - { - $refs = $values; - foreach ($values as $k => $value) { - if (\is_resource($value)) { - throw new NotInstantiableTypeException(get_resource_type($value).' resource'); - } - $refs[$k] = $objectsPool; - - if ($isRef = !$valueIsStatic = $values[$k] !== $objectsPool) { - $values[$k] = &$value; // Break hard references to make $values completely - unset($value); // independent from the original structure - $refs[$k] = $value = $values[$k]; - if ($value instanceof Reference && 0 > $value->id) { - $valuesAreStatic = false; - ++$value->count; - continue; - } - $refsPool[] = [&$refs[$k], $value, &$value]; - $refs[$k] = $values[$k] = new Reference(-\count($refsPool), $value); - } - - if (\is_array($value)) { - if ($value) { - $value = self::prepare($value, $objectsPool, $refsPool, $objectsCount, $valueIsStatic); - } - goto handle_value; - } elseif (!\is_object($value) && !$value instanceof \__PHP_Incomplete_Class) { - goto handle_value; - } - - $valueIsStatic = false; - if (isset($objectsPool[$value])) { - ++$objectsCount; - $value = new Reference($objectsPool[$value][0]); - goto handle_value; - } - - $class = \get_class($value); - $reflector = Registry::$reflectors[$class] ?? Registry::getClassReflector($class); - - if ($reflector->hasMethod('__serialize')) { - if (!$reflector->getMethod('__serialize')->isPublic()) { - throw new \Error(sprintf('Call to %s method %s::__serialize()', $reflector->getMethod('__serialize')->isProtected() ? 'protected' : 'private', $class)); - } - - if (!\is_array($properties = $value->__serialize())) { - throw new \Typerror($class.'::__serialize() must return an array'); - } - - goto prepare_value; - } - - $properties = []; - $sleep = null; - $arrayValue = (array) $value; - $proto = Registry::$prototypes[$class]; - - if (($value instanceof \ArrayIterator || $value instanceof \ArrayObject) && null !== $proto) { - // ArrayIterator and ArrayObject need special care because their "flags" - // option changes the behavior of the (array) casting operator. - $properties = self::getArrayObjectProperties($value, $arrayValue, $proto); - - // populates Registry::$prototypes[$class] with a new instance - Registry::getClassReflector($class, Registry::$instantiableWithoutConstructor[$class], Registry::$cloneable[$class]); - } elseif ($value instanceof \SplObjectStorage && Registry::$cloneable[$class] && null !== $proto) { - // By implementing Serializable, SplObjectStorage breaks - // internal references; let's deal with it on our own. - foreach (clone $value as $v) { - $properties[] = $v; - $properties[] = $value[$v]; - } - $properties = ['SplObjectStorage' => ["\0" => $properties]]; - } elseif ($value instanceof \Serializable || $value instanceof \__PHP_Incomplete_Class) { - ++$objectsCount; - $objectsPool[$value] = [$id = \count($objectsPool), serialize($value), [], 0]; - $value = new Reference($id); - goto handle_value; - } - - if (method_exists($class, '__sleep')) { - if (!\is_array($sleep = $value->__sleep())) { - trigger_error('serialize(): __sleep should return an array only containing the names of instance-variables to serialize', E_USER_NOTICE); - $value = null; - goto handle_value; - } - foreach ($sleep as $name) { - if (property_exists($value, $name) && !$reflector->hasProperty($name)) { - $arrayValue[$name] = $value->$name; - } - } - $sleep = array_flip($sleep); - } - - $proto = (array) $proto; - - foreach ($arrayValue as $name => $v) { - $i = 0; - $n = (string) $name; - if ('' === $n || "\0" !== $n[0]) { - $c = 'stdClass'; - } elseif ('*' === $n[1]) { - $n = substr($n, 3); - $c = $reflector->getProperty($n)->class; - if ('Error' === $c) { - $c = 'TypeError'; - } elseif ('Exception' === $c) { - $c = 'ErrorException'; - } - } else { - $i = strpos($n, "\0", 2); - $c = substr($n, 1, $i - 1); - $n = substr($n, 1 + $i); - } - if (null !== $sleep) { - if (!isset($sleep[$n]) || ($i && $c !== $class)) { - continue; - } - $sleep[$n] = false; - } - if (!\array_key_exists($name, $proto) || $proto[$name] !== $v || "\x00Error\x00trace" === $name || "\x00Exception\x00trace" === $name) { - $properties[$c][$n] = $v; - } - } - if ($sleep) { - foreach ($sleep as $n => $v) { - if (false !== $v) { - trigger_error(sprintf('serialize(): "%s" returned as member variable from __sleep() but does not exist', $n), E_USER_NOTICE); - } - } - } - - prepare_value: - $objectsPool[$value] = [$id = \count($objectsPool)]; - $properties = self::prepare($properties, $objectsPool, $refsPool, $objectsCount, $valueIsStatic); - ++$objectsCount; - $objectsPool[$value] = [$id, $class, $properties, method_exists($class, '__unserialize') ? -$objectsCount : (method_exists($class, '__wakeup') ? $objectsCount : 0)]; - - $value = new Reference($id); - - handle_value: - if ($isRef) { - unset($value); // Break the hard reference created above - } elseif (!$valueIsStatic) { - $values[$k] = $value; - } - $valuesAreStatic = $valueIsStatic && $valuesAreStatic; - } - - return $values; - } - - public static function export($value, $indent = '') - { - switch (true) { - case \is_int($value) || \is_float($value): return var_export($value, true); - case [] === $value: return '[]'; - case false === $value: return 'false'; - case true === $value: return 'true'; - case null === $value: return 'null'; - case '' === $value: return "''"; - } - - if ($value instanceof Reference) { - if (0 <= $value->id) { - return '$o['.$value->id.']'; - } - if (!$value->count) { - return self::export($value->value, $indent); - } - $value = -$value->id; - - return '&$r['.$value.']'; - } - $subIndent = $indent.' '; - - if (\is_string($value)) { - $code = sprintf("'%s'", addcslashes($value, "'\\")); - - $code = preg_replace_callback('/([\0\r\n]++)(.)/', function ($m) use ($subIndent) { - $m[1] = sprintf('\'."%s".\'', str_replace( - ["\0", "\r", "\n", '\n\\'], - ['\0', '\r', '\n', '\n"'."\n".$subIndent.'."\\'], - $m[1] - )); - - if ("'" === $m[2]) { - return substr($m[1], 0, -2); - } - - if ('n".\'' === substr($m[1], -4)) { - return substr_replace($m[1], "\n".$subIndent.".'".$m[2], -2); - } - - return $m[1].$m[2]; - }, $code, -1, $count); - - if ($count && 0 === strpos($code, "''.")) { - $code = substr($code, 3); - } - - return $code; - } - - if (\is_array($value)) { - $j = -1; - $code = ''; - foreach ($value as $k => $v) { - $code .= $subIndent; - if (!\is_int($k) || 1 !== $k - $j) { - $code .= self::export($k, $subIndent).' => '; - } - if (\is_int($k) && $k > $j) { - $j = $k; - } - $code .= self::export($v, $subIndent).",\n"; - } - - return "[\n".$code.$indent.']'; - } - - if ($value instanceof Values) { - $code = $subIndent."\$r = [],\n"; - foreach ($value->values as $k => $v) { - $code .= $subIndent.'$r['.$k.'] = '.self::export($v, $subIndent).",\n"; - } - - return "[\n".$code.$indent.']'; - } - - if ($value instanceof Registry) { - return self::exportRegistry($value, $indent, $subIndent); - } - - if ($value instanceof Hydrator) { - return self::exportHydrator($value, $indent, $subIndent); - } - - throw new \UnexpectedValueException(sprintf('Cannot export value of type "%s".', \is_object($value) ? \get_class($value) : \gettype($value))); - } - - private static function exportRegistry(Registry $value, string $indent, string $subIndent): string - { - $code = ''; - $serializables = []; - $seen = []; - $prototypesAccess = 0; - $factoriesAccess = 0; - $r = '\\'.Registry::class; - $j = -1; - - foreach ($value as $k => $class) { - if (':' === ($class[1] ?? null)) { - $serializables[$k] = $class; - continue; - } - if (!Registry::$instantiableWithoutConstructor[$class]) { - if (is_subclass_of($class, 'Serializable') && !method_exists($class, '__unserialize')) { - $serializables[$k] = 'C:'.\strlen($class).':"'.$class.'":0:{}'; - } else { - $serializables[$k] = 'O:'.\strlen($class).':"'.$class.'":0:{}'; - } - if (is_subclass_of($class, 'Throwable')) { - $eol = is_subclass_of($class, 'Error') ? "\0Error\0" : "\0Exception\0"; - $serializables[$k] = substr_replace($serializables[$k], '1:{s:'.(5 + \strlen($eol)).':"'.$eol.'trace";a:0:{}}', -4); - } - continue; - } - $code .= $subIndent.(1 !== $k - $j ? $k.' => ' : ''); - $j = $k; - $eol = ",\n"; - $c = '['.self::export($class).']'; - - if ($seen[$class] ?? false) { - if (Registry::$cloneable[$class]) { - ++$prototypesAccess; - $code .= 'clone $p'.$c; - } else { - ++$factoriesAccess; - $code .= '$f'.$c.'()'; - } - } else { - $seen[$class] = true; - if (Registry::$cloneable[$class]) { - $code .= 'clone ('.($prototypesAccess++ ? '$p' : '($p = &'.$r.'::$prototypes)').$c.' ?? '.$r.'::p'; - } else { - $code .= '('.($factoriesAccess++ ? '$f' : '($f = &'.$r.'::$factories)').$c.' ?? '.$r.'::f'; - $eol = '()'.$eol; - } - $code .= '('.substr($c, 1, -1).'))'; - } - $code .= $eol; - } - - if (1 === $prototypesAccess) { - $code = str_replace('($p = &'.$r.'::$prototypes)', $r.'::$prototypes', $code); - } - if (1 === $factoriesAccess) { - $code = str_replace('($f = &'.$r.'::$factories)', $r.'::$factories', $code); - } - if ('' !== $code) { - $code = "\n".$code.$indent; - } - - if ($serializables) { - $code = $r.'::unserialize(['.$code.'], '.self::export($serializables, $indent).')'; - } else { - $code = '['.$code.']'; - } - - return '$o = '.$code; - } - - private static function exportHydrator(Hydrator $value, string $indent, string $subIndent): string - { - $code = ''; - foreach ($value->properties as $class => $properties) { - $code .= $subIndent.' '.self::export($class).' => '.self::export($properties, $subIndent.' ').",\n"; - } - - $code = [ - self::export($value->registry, $subIndent), - self::export($value->values, $subIndent), - '' !== $code ? "[\n".$code.$subIndent.']' : '[]', - self::export($value->value, $subIndent), - self::export($value->wakeups, $subIndent), - ]; - - return '\\'.\get_class($value)."::hydrate(\n".$subIndent.implode(",\n".$subIndent, $code)."\n".$indent.')'; - } - - /** - * @param \ArrayIterator|\ArrayObject $value - * @param \ArrayIterator|\ArrayObject $proto - */ - private static function getArrayObjectProperties($value, array &$arrayValue, $proto): array - { - $reflector = $value instanceof \ArrayIterator ? 'ArrayIterator' : 'ArrayObject'; - $reflector = Registry::$reflectors[$reflector] ?? Registry::getClassReflector($reflector); - - $properties = [ - $arrayValue, - $reflector->getMethod('getFlags')->invoke($value), - $value instanceof \ArrayObject ? $reflector->getMethod('getIteratorClass')->invoke($value) : 'ArrayIterator', - ]; - - $reflector = $reflector->getMethod('setFlags'); - $reflector->invoke($proto, \ArrayObject::STD_PROP_LIST); - - if ($properties[1] & \ArrayObject::STD_PROP_LIST) { - $reflector->invoke($value, 0); - $properties[0] = (array) $value; - } else { - $reflector->invoke($value, \ArrayObject::STD_PROP_LIST); - $arrayValue = (array) $value; - } - $reflector->invoke($value, $properties[1]); - - if ([[], 0, 'ArrayIterator'] === $properties) { - $properties = []; - } else { - if ('ArrayIterator' === $properties[2]) { - unset($properties[2]); - } - $properties = [$reflector->class => ["\0" => $properties]]; - } - - return $properties; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/var-exporter/Internal/Hydrator.php b/srcs/phpmyadmin/vendor/symfony/var-exporter/Internal/Hydrator.php deleted file mode 100644 index 364d292..0000000 --- a/srcs/phpmyadmin/vendor/symfony/var-exporter/Internal/Hydrator.php +++ /dev/null @@ -1,151 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\VarExporter\Internal; - -use Symfony\Component\VarExporter\Exception\ClassNotFoundException; - -/** - * @author Nicolas Grekas - * - * @internal - */ -class Hydrator -{ - public static $hydrators = []; - - public $registry; - public $values; - public $properties; - public $value; - public $wakeups; - - public function __construct(?Registry $registry, ?Values $values, array $properties, $value, array $wakeups) - { - $this->registry = $registry; - $this->values = $values; - $this->properties = $properties; - $this->value = $value; - $this->wakeups = $wakeups; - } - - public static function hydrate($objects, $values, $properties, $value, $wakeups) - { - foreach ($properties as $class => $vars) { - (self::$hydrators[$class] ?? self::getHydrator($class))($vars, $objects); - } - foreach ($wakeups as $k => $v) { - if (\is_array($v)) { - $objects[-$k]->__unserialize($v); - } else { - $objects[$v]->__wakeup(); - } - } - - return $value; - } - - public static function getHydrator($class) - { - if ('stdClass' === $class) { - return self::$hydrators[$class] = static function ($properties, $objects) { - foreach ($properties as $name => $values) { - foreach ($values as $i => $v) { - $objects[$i]->$name = $v; - } - } - }; - } - - if (!class_exists($class) && !interface_exists($class, false) && !trait_exists($class, false)) { - throw new ClassNotFoundException($class); - } - $classReflector = new \ReflectionClass($class); - - if (!$classReflector->isInternal()) { - return self::$hydrators[$class] = (self::$hydrators['stdClass'] ?? self::getHydrator('stdClass'))->bindTo(null, $class); - } - - if ($classReflector->name !== $class) { - return self::$hydrators[$classReflector->name] ?? self::getHydrator($classReflector->name); - } - - switch ($class) { - case 'ArrayIterator': - case 'ArrayObject': - $constructor = \Closure::fromCallable([$classReflector->getConstructor(), 'invokeArgs']); - - return self::$hydrators[$class] = static function ($properties, $objects) use ($constructor) { - foreach ($properties as $name => $values) { - if ("\0" !== $name) { - foreach ($values as $i => $v) { - $objects[$i]->$name = $v; - } - } - } - foreach ($properties["\0"] ?? [] as $i => $v) { - $constructor($objects[$i], $v); - } - }; - - case 'ErrorException': - return self::$hydrators[$class] = (self::$hydrators['stdClass'] ?? self::getHydrator('stdClass'))->bindTo(null, new class() extends \ErrorException { - }); - - case 'TypeError': - return self::$hydrators[$class] = (self::$hydrators['stdClass'] ?? self::getHydrator('stdClass'))->bindTo(null, new class() extends \Error { - }); - - case 'SplObjectStorage': - return self::$hydrators[$class] = static function ($properties, $objects) { - foreach ($properties as $name => $values) { - if ("\0" === $name) { - foreach ($values as $i => $v) { - for ($j = 0; $j < \count($v); ++$j) { - $objects[$i]->attach($v[$j], $v[++$j]); - } - } - continue; - } - foreach ($values as $i => $v) { - $objects[$i]->$name = $v; - } - } - }; - } - - $propertySetters = []; - foreach ($classReflector->getProperties() as $propertyReflector) { - if (!$propertyReflector->isStatic()) { - $propertyReflector->setAccessible(true); - $propertySetters[$propertyReflector->name] = \Closure::fromCallable([$propertyReflector, 'setValue']); - } - } - - if (!$propertySetters) { - return self::$hydrators[$class] = self::$hydrators['stdClass'] ?? self::getHydrator('stdClass'); - } - - return self::$hydrators[$class] = static function ($properties, $objects) use ($propertySetters) { - foreach ($properties as $name => $values) { - if ($setValue = $propertySetters[$name] ?? null) { - foreach ($values as $i => $v) { - $setValue($objects[$i], $v); - } - continue; - } - foreach ($values as $i => $v) { - $objects[$i]->$name = $v; - } - } - }; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/var-exporter/Internal/Reference.php b/srcs/phpmyadmin/vendor/symfony/var-exporter/Internal/Reference.php deleted file mode 100644 index e371c07..0000000 --- a/srcs/phpmyadmin/vendor/symfony/var-exporter/Internal/Reference.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\VarExporter\Internal; - -/** - * @author Nicolas Grekas - * - * @internal - */ -class Reference -{ - public $id; - public $value; - public $count = 0; - - public function __construct(int $id, $value = null) - { - $this->id = $id; - $this->value = $value; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/var-exporter/Internal/Registry.php b/srcs/phpmyadmin/vendor/symfony/var-exporter/Internal/Registry.php deleted file mode 100644 index 19d91c9..0000000 --- a/srcs/phpmyadmin/vendor/symfony/var-exporter/Internal/Registry.php +++ /dev/null @@ -1,136 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\VarExporter\Internal; - -use Symfony\Component\VarExporter\Exception\ClassNotFoundException; -use Symfony\Component\VarExporter\Exception\NotInstantiableTypeException; - -/** - * @author Nicolas Grekas - * - * @internal - */ -class Registry -{ - public static $reflectors = []; - public static $prototypes = []; - public static $factories = []; - public static $cloneable = []; - public static $instantiableWithoutConstructor = []; - - public function __construct(array $classes) - { - foreach ($classes as $i => $class) { - $this->$i = $class; - } - } - - public static function unserialize($objects, $serializables) - { - $unserializeCallback = ini_set('unserialize_callback_func', __CLASS__.'::getClassReflector'); - - try { - foreach ($serializables as $k => $v) { - $objects[$k] = unserialize($v); - } - } finally { - ini_set('unserialize_callback_func', $unserializeCallback); - } - - return $objects; - } - - public static function p($class) - { - self::getClassReflector($class, true, true); - - return self::$prototypes[$class]; - } - - public static function f($class) - { - $reflector = self::$reflectors[$class] ?? self::getClassReflector($class, true, false); - - return self::$factories[$class] = \Closure::fromCallable([$reflector, 'newInstanceWithoutConstructor']); - } - - public static function getClassReflector($class, $instantiableWithoutConstructor = false, $cloneable = null) - { - if (!($isClass = class_exists($class)) && !interface_exists($class, false) && !trait_exists($class, false)) { - throw new ClassNotFoundException($class); - } - $reflector = new \ReflectionClass($class); - - if ($instantiableWithoutConstructor) { - $proto = $reflector->newInstanceWithoutConstructor(); - } elseif (!$isClass || $reflector->isAbstract()) { - throw new NotInstantiableTypeException($class); - } elseif ($reflector->name !== $class) { - $reflector = self::$reflectors[$name = $reflector->name] ?? self::getClassReflector($name, false, $cloneable); - self::$cloneable[$class] = self::$cloneable[$name]; - self::$instantiableWithoutConstructor[$class] = self::$instantiableWithoutConstructor[$name]; - self::$prototypes[$class] = self::$prototypes[$name]; - - return self::$reflectors[$class] = $reflector; - } else { - try { - $proto = $reflector->newInstanceWithoutConstructor(); - $instantiableWithoutConstructor = true; - } catch (\ReflectionException $e) { - $proto = $reflector->implementsInterface('Serializable') && !method_exists($class, '__unserialize') ? 'C:' : 'O:'; - if ('C:' === $proto && !$reflector->getMethod('unserialize')->isInternal()) { - $proto = null; - } elseif (false === $proto = @unserialize($proto.\strlen($class).':"'.$class.'":0:{}')) { - throw new NotInstantiableTypeException($class); - } - } - if (null !== $proto && !$proto instanceof \Throwable && !$proto instanceof \Serializable && !method_exists($class, '__sleep') && (\PHP_VERSION_ID < 70400 || !method_exists($class, '__serialize'))) { - try { - serialize($proto); - } catch (\Exception $e) { - throw new NotInstantiableTypeException($class, $e); - } - } - } - - if (null === $cloneable) { - if (($proto instanceof \Reflector || $proto instanceof \ReflectionGenerator || $proto instanceof \ReflectionType || $proto instanceof \IteratorIterator || $proto instanceof \RecursiveIteratorIterator) && (!$proto instanceof \Serializable && !method_exists($proto, '__wakeup') && (\PHP_VERSION_ID < 70400 || !method_exists($class, '__unserialize')))) { - throw new NotInstantiableTypeException($class); - } - - $cloneable = $reflector->isCloneable() && !$reflector->hasMethod('__clone'); - } - - self::$cloneable[$class] = $cloneable; - self::$instantiableWithoutConstructor[$class] = $instantiableWithoutConstructor; - self::$prototypes[$class] = $proto; - - if ($proto instanceof \Throwable) { - static $setTrace; - - if (null === $setTrace) { - $setTrace = [ - new \ReflectionProperty(\Error::class, 'trace'), - new \ReflectionProperty(\Exception::class, 'trace'), - ]; - $setTrace[0]->setAccessible(true); - $setTrace[1]->setAccessible(true); - $setTrace[0] = \Closure::fromCallable([$setTrace[0], 'setValue']); - $setTrace[1] = \Closure::fromCallable([$setTrace[1], 'setValue']); - } - - $setTrace[$proto instanceof \Exception]($proto, []); - } - - return self::$reflectors[$class] = $reflector; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/var-exporter/Internal/Values.php b/srcs/phpmyadmin/vendor/symfony/var-exporter/Internal/Values.php deleted file mode 100644 index 21ae04e..0000000 --- a/srcs/phpmyadmin/vendor/symfony/var-exporter/Internal/Values.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\VarExporter\Internal; - -/** - * @author Nicolas Grekas - * - * @internal - */ -class Values -{ - public $values; - - public function __construct(array $values) - { - $this->values = $values; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/var-exporter/LICENSE b/srcs/phpmyadmin/vendor/symfony/var-exporter/LICENSE deleted file mode 100644 index 3f853aa..0000000 --- a/srcs/phpmyadmin/vendor/symfony/var-exporter/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2018-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. diff --git a/srcs/phpmyadmin/vendor/symfony/var-exporter/README.md b/srcs/phpmyadmin/vendor/symfony/var-exporter/README.md deleted file mode 100644 index bb13960..0000000 --- a/srcs/phpmyadmin/vendor/symfony/var-exporter/README.md +++ /dev/null @@ -1,38 +0,0 @@ -VarExporter Component -===================== - -The VarExporter component allows exporting any serializable PHP data structure to -plain PHP code. While doing so, it preserves all the semantics associated with -the serialization mechanism of PHP (`__wakeup`, `__sleep`, `Serializable`, -`__serialize`, `__unserialize`). - -It also provides an instantiator that allows creating and populating objects -without calling their constructor nor any other methods. - -The reason to use this component *vs* `serialize()` or -[igbinary](https://github.com/igbinary/igbinary) is performance: thanks to -OPcache, the resulting code is significantly faster and more memory efficient -than using `unserialize()` or `igbinary_unserialize()`. - -Unlike `var_export()`, this works on any serializable PHP value. - -It also provides a few improvements over `var_export()`/`serialize()`: - - * the output is PSR-2 compatible; - * the output can be re-indented without messing up with `\r` or `\n` in the data - * missing classes throw a `ClassNotFoundException` instead of being unserialized to - `PHP_Incomplete_Class` objects; - * references involving `SplObjectStorage`, `ArrayObject` or `ArrayIterator` - instances are preserved; - * `Reflection*`, `IteratorIterator` and `RecursiveIteratorIterator` classes - throw an exception when being serialized (their unserialized version is broken - anyway, see https://bugs.php.net/76737). - -Resources ---------- - - * [Documentation](https://symfony.com/doc/current/components/var_exporter.html) - * [Contributing](https://symfony.com/doc/current/contributing/index.html) - * [Report issues](https://github.com/symfony/symfony/issues) and - [send Pull Requests](https://github.com/symfony/symfony/pulls) - in the [main Symfony repository](https://github.com/symfony/symfony) diff --git a/srcs/phpmyadmin/vendor/symfony/var-exporter/VarExporter.php b/srcs/phpmyadmin/vendor/symfony/var-exporter/VarExporter.php deleted file mode 100644 index da9a8d4..0000000 --- a/srcs/phpmyadmin/vendor/symfony/var-exporter/VarExporter.php +++ /dev/null @@ -1,114 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\VarExporter; - -use Symfony\Component\VarExporter\Exception\ExceptionInterface; -use Symfony\Component\VarExporter\Internal\Exporter; -use Symfony\Component\VarExporter\Internal\Hydrator; -use Symfony\Component\VarExporter\Internal\Registry; -use Symfony\Component\VarExporter\Internal\Values; - -/** - * Exports serializable PHP values to PHP code. - * - * VarExporter allows serializing PHP data structures to plain PHP code (like var_export()) - * while preserving all the semantics associated with serialize() (unlike var_export()). - * - * By leveraging OPcache, the generated PHP code is faster than doing the same with unserialize(). - * - * @author Nicolas Grekas - */ -final class VarExporter -{ - /** - * Exports a serializable PHP value to PHP code. - * - * @param mixed $value The value to export - * @param bool &$isStaticValue Set to true after execution if the provided value is static, false otherwise - * - * @return string The value exported as PHP code - * - * @throws ExceptionInterface When the provided value cannot be serialized - */ - public static function export($value, bool &$isStaticValue = null): string - { - $isStaticValue = true; - - if (!\is_object($value) && !(\is_array($value) && $value) && !$value instanceof \__PHP_Incomplete_Class && !\is_resource($value)) { - return Exporter::export($value); - } - - $objectsPool = new \SplObjectStorage(); - $refsPool = []; - $objectsCount = 0; - - try { - $value = Exporter::prepare([$value], $objectsPool, $refsPool, $objectsCount, $isStaticValue)[0]; - } finally { - $references = []; - foreach ($refsPool as $i => $v) { - if ($v[0]->count) { - $references[1 + $i] = $v[2]; - } - $v[0] = $v[1]; - } - } - - if ($isStaticValue) { - return Exporter::export($value); - } - - $classes = []; - $values = []; - $states = []; - foreach ($objectsPool as $i => $v) { - list(, $classes[], $values[], $wakeup) = $objectsPool[$v]; - if (0 < $wakeup) { - $states[$wakeup] = $i; - } elseif (0 > $wakeup) { - $states[-$wakeup] = [$i, array_pop($values)]; - $values[] = []; - } - } - ksort($states); - - $wakeups = [null]; - foreach ($states as $k => $v) { - if (\is_array($v)) { - $wakeups[-$v[0]] = $v[1]; - } else { - $wakeups[] = $v; - } - } - - if (null === $wakeups[0]) { - unset($wakeups[0]); - } - - $properties = []; - foreach ($values as $i => $vars) { - foreach ($vars as $class => $values) { - foreach ($values as $name => $v) { - $properties[$class][$name][$i] = $v; - } - } - } - - if ($classes || $references) { - $value = new Hydrator(new Registry($classes), $references ? new Values($references) : null, $properties, $value, $wakeups); - } else { - $isStaticValue = true; - } - - return Exporter::export($value); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/var-exporter/composer.json b/srcs/phpmyadmin/vendor/symfony/var-exporter/composer.json deleted file mode 100644 index 6b7dba2..0000000 --- a/srcs/phpmyadmin/vendor/symfony/var-exporter/composer.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "symfony/var-exporter", - "type": "library", - "description": "A blend of var_export() + serialize() to turn any serializable data structure to plain PHP code", - "keywords": ["export", "serialize", "instantiate", "hydrate", "construct", "clone"], - "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.3" - }, - "require-dev": { - "symfony/var-dumper": "^4.1.1|^5.0" - }, - "autoload": { - "psr-4": { "Symfony\\Component\\VarExporter\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/yaml/CHANGELOG.md b/srcs/phpmyadmin/vendor/symfony/yaml/CHANGELOG.md deleted file mode 100644 index ff78af2..0000000 --- a/srcs/phpmyadmin/vendor/symfony/yaml/CHANGELOG.md +++ /dev/null @@ -1,196 +0,0 @@ -CHANGELOG -========= - -4.4.0 ------ - - * Added support for parsing the inline notation spanning multiple lines. - * Added support to dump `null` as `~` by using the `Yaml::DUMP_NULL_AS_TILDE` flag. - * deprecated accepting STDIN implicitly when using the `lint:yaml` command, use `lint:yaml -` (append a dash) instead to make it explicit. - -4.3.0 ------ - - * Using a mapping inside a multi-line string is deprecated and will throw a `ParseException` in 5.0. - -4.2.0 ------ - - * added support for multiple files or directories in `LintCommand` - -4.0.0 ------ - - * The behavior of the non-specific tag `!` is changed and now forces - non-evaluating your values. - * complex mappings will throw a `ParseException` - * support for the comma as a group separator for floats has been dropped, use - the underscore instead - * support for the `!!php/object` tag has been dropped, use the `!php/object` - tag instead - * duplicate mapping keys throw a `ParseException` - * non-string mapping keys throw a `ParseException`, use the `Yaml::PARSE_KEYS_AS_STRINGS` - flag to cast them to strings - * `%` at the beginning of an unquoted string throw a `ParseException` - * mappings with a colon (`:`) that is not followed by a whitespace throw a - `ParseException` - * the `Dumper::setIndentation()` method has been removed - * being able to pass boolean options to the `Yaml::parse()`, `Yaml::dump()`, - `Parser::parse()`, and `Dumper::dump()` methods to configure the behavior of - the parser and dumper is no longer supported, pass bitmask flags instead - * the constructor arguments of the `Parser` class have been removed - * the `Inline` class is internal and no longer part of the BC promise - * removed support for the `!str` tag, use the `!!str` tag instead - * added support for tagged scalars. - - ```yml - Yaml::parse('!foo bar', Yaml::PARSE_CUSTOM_TAGS); - // returns TaggedValue('foo', 'bar'); - ``` - -3.4.0 ------ - - * added support for parsing YAML files using the `Yaml::parseFile()` or `Parser::parseFile()` method - - * the `Dumper`, `Parser`, and `Yaml` classes are marked as final - - * Deprecated the `!php/object:` tag which will be replaced by the - `!php/object` tag (without the colon) in 4.0. - - * Deprecated the `!php/const:` tag which will be replaced by the - `!php/const` tag (without the colon) in 4.0. - - * Support for the `!str` tag is deprecated, use the `!!str` tag instead. - - * Deprecated using the non-specific tag `!` as its behavior will change in 4.0. - It will force non-evaluating your values in 4.0. Use plain integers or `!!float` instead. - -3.3.0 ------ - - * Starting an unquoted string with a question mark followed by a space is - deprecated and will throw a `ParseException` in Symfony 4.0. - - * Deprecated support for implicitly parsing non-string mapping keys as strings. - Mapping keys that are no strings will lead to a `ParseException` in Symfony - 4.0. Use quotes to opt-in for keys to be parsed as strings. - - Before: - - ```php - $yaml = << new A(), 'bar' => 1], 0, 0, Yaml::DUMP_EXCEPTION_ON_INVALID_TYPE | Yaml::DUMP_OBJECT); - ``` - -3.0.0 ------ - - * Yaml::parse() now throws an exception when a blackslash is not escaped - in double-quoted strings - -2.8.0 ------ - - * Deprecated usage of a colon in an unquoted mapping value - * Deprecated usage of @, \`, | and > at the beginning of an unquoted string - * When surrounding strings with double-quotes, you must now escape `\` characters. Not - escaping those characters (when surrounded by double-quotes) is deprecated. - - Before: - - ```yml - class: "Foo\Var" - ``` - - After: - - ```yml - class: "Foo\\Var" - ``` - -2.1.0 ------ - - * Yaml::parse() does not evaluate loaded files as PHP files by default - anymore (call Yaml::enablePhpParsing() to get back the old behavior) diff --git a/srcs/phpmyadmin/vendor/symfony/yaml/Command/LintCommand.php b/srcs/phpmyadmin/vendor/symfony/yaml/Command/LintCommand.php deleted file mode 100644 index 65ef531..0000000 --- a/srcs/phpmyadmin/vendor/symfony/yaml/Command/LintCommand.php +++ /dev/null @@ -1,255 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Yaml\Command; - -use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Exception\InvalidArgumentException; -use Symfony\Component\Console\Exception\RuntimeException; -use Symfony\Component\Console\Input\InputArgument; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Input\InputOption; -use Symfony\Component\Console\Output\OutputInterface; -use Symfony\Component\Console\Style\SymfonyStyle; -use Symfony\Component\Yaml\Exception\ParseException; -use Symfony\Component\Yaml\Parser; -use Symfony\Component\Yaml\Yaml; - -/** - * Validates YAML files syntax and outputs encountered errors. - * - * @author Grégoire Pineau - * @author Robin Chalas - */ -class LintCommand extends Command -{ - protected static $defaultName = 'lint:yaml'; - - private $parser; - private $format; - private $displayCorrectFiles; - private $directoryIteratorProvider; - private $isReadableProvider; - - public function __construct(string $name = null, callable $directoryIteratorProvider = null, callable $isReadableProvider = null) - { - parent::__construct($name); - - $this->directoryIteratorProvider = $directoryIteratorProvider; - $this->isReadableProvider = $isReadableProvider; - } - - /** - * {@inheritdoc} - */ - protected function configure() - { - $this - ->setDescription('Lints a file and outputs encountered errors') - ->addArgument('filename', InputArgument::IS_ARRAY, 'A file, a directory or "-" for reading from STDIN') - ->addOption('format', null, InputOption::VALUE_REQUIRED, 'The output format', 'txt') - ->addOption('parse-tags', null, InputOption::VALUE_NONE, 'Parse custom tags') - ->setHelp(<<%command.name% command lints a YAML file and outputs to STDOUT -the first encountered syntax error. - -You can validates YAML contents passed from STDIN: - - cat filename | php %command.full_name% - - -You can also validate the syntax of a file: - - php %command.full_name% filename - -Or of a whole directory: - - php %command.full_name% dirname - php %command.full_name% dirname --format=json - -EOF - ) - ; - } - - protected function execute(InputInterface $input, OutputInterface $output) - { - $io = new SymfonyStyle($input, $output); - $filenames = (array) $input->getArgument('filename'); - $this->format = $input->getOption('format'); - $this->displayCorrectFiles = $output->isVerbose(); - $flags = $input->getOption('parse-tags') ? Yaml::PARSE_CUSTOM_TAGS : 0; - - if (['-'] === $filenames) { - return $this->display($io, [$this->validate(file_get_contents('php://stdin'), $flags)]); - } - - // @deprecated to be removed in 5.0 - if (!$filenames) { - if (0 === ftell(STDIN)) { - @trigger_error('Piping content from STDIN to the "lint:yaml" command without passing the dash symbol "-" as argument is deprecated since Symfony 4.4.', E_USER_DEPRECATED); - - return $this->display($io, [$this->validate(file_get_contents('php://stdin'), $flags)]); - } - - throw new RuntimeException('Please provide a filename or pipe file content to STDIN.'); - } - - $filesInfo = []; - foreach ($filenames as $filename) { - if (!$this->isReadable($filename)) { - throw new RuntimeException(sprintf('File or directory "%s" is not readable.', $filename)); - } - - foreach ($this->getFiles($filename) as $file) { - $filesInfo[] = $this->validate(file_get_contents($file), $flags, $file); - } - } - - return $this->display($io, $filesInfo); - } - - private function validate(string $content, int $flags, string $file = null) - { - $prevErrorHandler = set_error_handler(function ($level, $message, $file, $line) use (&$prevErrorHandler) { - if (E_USER_DEPRECATED === $level) { - throw new ParseException($message, $this->getParser()->getRealCurrentLineNb() + 1); - } - - return $prevErrorHandler ? $prevErrorHandler($level, $message, $file, $line) : false; - }); - - try { - $this->getParser()->parse($content, Yaml::PARSE_CONSTANT | $flags); - } catch (ParseException $e) { - return ['file' => $file, 'line' => $e->getParsedLine(), 'valid' => false, 'message' => $e->getMessage()]; - } finally { - restore_error_handler(); - } - - return ['file' => $file, 'valid' => true]; - } - - private function display(SymfonyStyle $io, array $files): int - { - switch ($this->format) { - case 'txt': - return $this->displayTxt($io, $files); - case 'json': - return $this->displayJson($io, $files); - default: - throw new InvalidArgumentException(sprintf('The format "%s" is not supported.', $this->format)); - } - } - - private function displayTxt(SymfonyStyle $io, array $filesInfo): int - { - $countFiles = \count($filesInfo); - $erroredFiles = 0; - $suggestTagOption = false; - - foreach ($filesInfo as $info) { - if ($info['valid'] && $this->displayCorrectFiles) { - $io->comment('OK'.($info['file'] ? sprintf(' in %s', $info['file']) : '')); - } elseif (!$info['valid']) { - ++$erroredFiles; - $io->text(' ERROR '.($info['file'] ? sprintf(' in %s', $info['file']) : '')); - $io->text(sprintf(' >> %s', $info['message'])); - - if (false !== strpos($info['message'], 'PARSE_CUSTOM_TAGS')) { - $suggestTagOption = true; - } - } - } - - if (0 === $erroredFiles) { - $io->success(sprintf('All %d YAML files contain valid syntax.', $countFiles)); - } else { - $io->warning(sprintf('%d YAML files have valid syntax and %d contain errors.%s', $countFiles - $erroredFiles, $erroredFiles, $suggestTagOption ? ' Use the --parse-tags option if you want parse custom tags.' : '')); - } - - return min($erroredFiles, 1); - } - - private function displayJson(SymfonyStyle $io, array $filesInfo): int - { - $errors = 0; - - array_walk($filesInfo, function (&$v) use (&$errors) { - $v['file'] = (string) $v['file']; - if (!$v['valid']) { - ++$errors; - } - - if (isset($v['message']) && false !== strpos($v['message'], 'PARSE_CUSTOM_TAGS')) { - $v['message'] .= ' Use the --parse-tags option if you want parse custom tags.'; - } - }); - - $io->writeln(json_encode($filesInfo, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)); - - return min($errors, 1); - } - - private function getFiles(string $fileOrDirectory): iterable - { - if (is_file($fileOrDirectory)) { - yield new \SplFileInfo($fileOrDirectory); - - return; - } - - foreach ($this->getDirectoryIterator($fileOrDirectory) as $file) { - if (!\in_array($file->getExtension(), ['yml', 'yaml'])) { - continue; - } - - yield $file; - } - } - - private function getParser(): Parser - { - if (!$this->parser) { - $this->parser = new Parser(); - } - - return $this->parser; - } - - private function getDirectoryIterator(string $directory): iterable - { - $default = function ($directory) { - return new \RecursiveIteratorIterator( - new \RecursiveDirectoryIterator($directory, \FilesystemIterator::SKIP_DOTS | \FilesystemIterator::FOLLOW_SYMLINKS), - \RecursiveIteratorIterator::LEAVES_ONLY - ); - }; - - if (null !== $this->directoryIteratorProvider) { - return ($this->directoryIteratorProvider)($directory, $default); - } - - return $default($directory); - } - - private function isReadable(string $fileOrDirectory): bool - { - $default = function ($fileOrDirectory) { - return is_readable($fileOrDirectory); - }; - - if (null !== $this->isReadableProvider) { - return ($this->isReadableProvider)($fileOrDirectory, $default); - } - - return $default($fileOrDirectory); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/yaml/Dumper.php b/srcs/phpmyadmin/vendor/symfony/yaml/Dumper.php deleted file mode 100644 index 0b56779..0000000 --- a/srcs/phpmyadmin/vendor/symfony/yaml/Dumper.php +++ /dev/null @@ -1,125 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Yaml; - -use Symfony\Component\Yaml\Tag\TaggedValue; - -/** - * Dumper dumps PHP variables to YAML strings. - * - * @author Fabien Potencier - * - * @final - */ -class Dumper -{ - /** - * The amount of spaces to use for indentation of nested nodes. - * - * @var int - */ - protected $indentation; - - public function __construct(int $indentation = 4) - { - if ($indentation < 1) { - throw new \InvalidArgumentException('The indentation must be greater than zero.'); - } - - $this->indentation = $indentation; - } - - /** - * Dumps a PHP value to YAML. - * - * @param mixed $input The PHP value - * @param int $inline The level where you switch to inline YAML - * @param int $indent The level of indentation (used internally) - * @param int $flags A bit field of Yaml::DUMP_* constants to customize the dumped YAML string - * - * @return string The YAML representation of the PHP value - */ - public function dump($input, int $inline = 0, int $indent = 0, int $flags = 0): string - { - $output = ''; - $prefix = $indent ? str_repeat(' ', $indent) : ''; - $dumpObjectAsInlineMap = true; - - if (Yaml::DUMP_OBJECT_AS_MAP & $flags && ($input instanceof \ArrayObject || $input instanceof \stdClass)) { - $dumpObjectAsInlineMap = empty((array) $input); - } - - if ($inline <= 0 || (!\is_array($input) && !$input instanceof TaggedValue && $dumpObjectAsInlineMap) || empty($input)) { - $output .= $prefix.Inline::dump($input, $flags); - } else { - $dumpAsMap = Inline::isHash($input); - - foreach ($input as $key => $value) { - if ($inline >= 1 && Yaml::DUMP_MULTI_LINE_LITERAL_BLOCK & $flags && \is_string($value) && false !== strpos($value, "\n") && false === strpos($value, "\r\n")) { - // If the first line starts with a space character, the spec requires a blockIndicationIndicator - // http://www.yaml.org/spec/1.2/spec.html#id2793979 - $blockIndentationIndicator = (' ' === substr($value, 0, 1)) ? (string) $this->indentation : ''; - $output .= sprintf("%s%s%s |%s\n", $prefix, $dumpAsMap ? Inline::dump($key, $flags).':' : '-', '', $blockIndentationIndicator); - - foreach (explode("\n", $value) as $row) { - $output .= sprintf("%s%s%s\n", $prefix, str_repeat(' ', $this->indentation), $row); - } - - continue; - } - - if ($value instanceof TaggedValue) { - $output .= sprintf('%s%s !%s', $prefix, $dumpAsMap ? Inline::dump($key, $flags).':' : '-', $value->getTag()); - - if ($inline >= 1 && Yaml::DUMP_MULTI_LINE_LITERAL_BLOCK & $flags && \is_string($value->getValue()) && false !== strpos($value->getValue(), "\n") && false === strpos($value->getValue(), "\r\n")) { - // If the first line starts with a space character, the spec requires a blockIndicationIndicator - // http://www.yaml.org/spec/1.2/spec.html#id2793979 - $blockIndentationIndicator = (' ' === substr($value->getValue(), 0, 1)) ? (string) $this->indentation : ''; - $output .= sprintf(" |%s\n", $blockIndentationIndicator); - - foreach (explode("\n", $value->getValue()) as $row) { - $output .= sprintf("%s%s%s\n", $prefix, str_repeat(' ', $this->indentation), $row); - } - - continue; - } - - if ($inline - 1 <= 0 || null === $value->getValue() || is_scalar($value->getValue())) { - $output .= ' '.$this->dump($value->getValue(), $inline - 1, 0, $flags)."\n"; - } else { - $output .= "\n"; - $output .= $this->dump($value->getValue(), $inline - 1, $dumpAsMap ? $indent + $this->indentation : $indent + 2, $flags); - } - - continue; - } - - $dumpObjectAsInlineMap = true; - - if (Yaml::DUMP_OBJECT_AS_MAP & $flags && ($value instanceof \ArrayObject || $value instanceof \stdClass)) { - $dumpObjectAsInlineMap = empty((array) $value); - } - - $willBeInlined = $inline - 1 <= 0 || !\is_array($value) && $dumpObjectAsInlineMap || empty($value); - - $output .= sprintf('%s%s%s%s', - $prefix, - $dumpAsMap ? Inline::dump($key, $flags).':' : '-', - $willBeInlined ? ' ' : "\n", - $this->dump($value, $inline - 1, $willBeInlined ? 0 : $indent + $this->indentation, $flags) - ).($willBeInlined ? "\n" : ''); - } - } - - return $output; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/yaml/Escaper.php b/srcs/phpmyadmin/vendor/symfony/yaml/Escaper.php deleted file mode 100644 index afff168..0000000 --- a/srcs/phpmyadmin/vendor/symfony/yaml/Escaper.php +++ /dev/null @@ -1,101 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Yaml; - -/** - * Escaper encapsulates escaping rules for single and double-quoted - * YAML strings. - * - * @author Matthew Lewinski - * - * @internal - */ -class Escaper -{ - // Characters that would cause a dumped string to require double quoting. - const REGEX_CHARACTER_TO_ESCAPE = "[\\x00-\\x1f]|\xc2\x85|\xc2\xa0|\xe2\x80\xa8|\xe2\x80\xa9"; - - // Mapping arrays for escaping a double quoted string. The backslash is - // first to ensure proper escaping because str_replace operates iteratively - // on the input arrays. This ordering of the characters avoids the use of strtr, - // which performs more slowly. - private static $escapees = ['\\', '\\\\', '\\"', '"', - "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", - "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", - "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", - "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", - "\xc2\x85", "\xc2\xa0", "\xe2\x80\xa8", "\xe2\x80\xa9", - ]; - private static $escaped = ['\\\\', '\\"', '\\\\', '\\"', - '\\0', '\\x01', '\\x02', '\\x03', '\\x04', '\\x05', '\\x06', '\\a', - '\\b', '\\t', '\\n', '\\v', '\\f', '\\r', '\\x0e', '\\x0f', - '\\x10', '\\x11', '\\x12', '\\x13', '\\x14', '\\x15', '\\x16', '\\x17', - '\\x18', '\\x19', '\\x1a', '\\e', '\\x1c', '\\x1d', '\\x1e', '\\x1f', - '\\N', '\\_', '\\L', '\\P', - ]; - - /** - * Determines if a PHP value would require double quoting in YAML. - * - * @param string $value A PHP value - * - * @return bool True if the value would require double quotes - */ - public static function requiresDoubleQuoting(string $value): bool - { - return 0 < preg_match('/'.self::REGEX_CHARACTER_TO_ESCAPE.'/u', $value); - } - - /** - * Escapes and surrounds a PHP value with double quotes. - * - * @param string $value A PHP value - * - * @return string The quoted, escaped string - */ - public static function escapeWithDoubleQuotes(string $value): string - { - return sprintf('"%s"', str_replace(self::$escapees, self::$escaped, $value)); - } - - /** - * Determines if a PHP value would require single quoting in YAML. - * - * @param string $value A PHP value - * - * @return bool True if the value would require single quotes - */ - public static function requiresSingleQuoting(string $value): bool - { - // Determines if a PHP value is entirely composed of a value that would - // require single quoting in YAML. - if (\in_array(strtolower($value), ['null', '~', 'true', 'false', 'y', 'n', 'yes', 'no', 'on', 'off'])) { - return true; - } - - // Determines if the PHP value contains any single characters that would - // cause it to require single quoting in YAML. - return 0 < preg_match('/[ \s \' " \: \{ \} \[ \] , & \* \# \?] | \A[ \- ? | < > = ! % @ ` ]/x', $value); - } - - /** - * Escapes and surrounds a PHP value with single quotes. - * - * @param string $value A PHP value - * - * @return string The quoted, escaped string - */ - public static function escapeWithSingleQuotes(string $value): string - { - return sprintf("'%s'", str_replace('\'', '\'\'', $value)); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/yaml/Exception/DumpException.php b/srcs/phpmyadmin/vendor/symfony/yaml/Exception/DumpException.php deleted file mode 100644 index cce972f..0000000 --- a/srcs/phpmyadmin/vendor/symfony/yaml/Exception/DumpException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Yaml\Exception; - -/** - * Exception class thrown when an error occurs during dumping. - * - * @author Fabien Potencier - */ -class DumpException extends RuntimeException -{ -} diff --git a/srcs/phpmyadmin/vendor/symfony/yaml/Exception/ExceptionInterface.php b/srcs/phpmyadmin/vendor/symfony/yaml/Exception/ExceptionInterface.php deleted file mode 100644 index 9091316..0000000 --- a/srcs/phpmyadmin/vendor/symfony/yaml/Exception/ExceptionInterface.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Yaml\Exception; - -/** - * Exception interface for all exceptions thrown by the component. - * - * @author Fabien Potencier - */ -interface ExceptionInterface extends \Throwable -{ -} diff --git a/srcs/phpmyadmin/vendor/symfony/yaml/Exception/ParseException.php b/srcs/phpmyadmin/vendor/symfony/yaml/Exception/ParseException.php deleted file mode 100644 index ce623a3..0000000 --- a/srcs/phpmyadmin/vendor/symfony/yaml/Exception/ParseException.php +++ /dev/null @@ -1,139 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Yaml\Exception; - -/** - * Exception class thrown when an error occurs during parsing. - * - * @author Fabien Potencier - */ -class ParseException extends RuntimeException -{ - private $parsedFile; - private $parsedLine; - private $snippet; - private $rawMessage; - - /** - * @param string $message The error message - * @param int $parsedLine The line where the error occurred - * @param string|null $snippet The snippet of code near the problem - * @param string|null $parsedFile The file name where the error occurred - * @param \Exception|null $previous The previous exception - */ - public function __construct(string $message, int $parsedLine = -1, string $snippet = null, string $parsedFile = null, \Throwable $previous = null) - { - $this->parsedFile = $parsedFile; - $this->parsedLine = $parsedLine; - $this->snippet = $snippet; - $this->rawMessage = $message; - - $this->updateRepr(); - - parent::__construct($this->message, 0, $previous); - } - - /** - * Gets the snippet of code near the error. - * - * @return string The snippet of code - */ - public function getSnippet() - { - return $this->snippet; - } - - /** - * Sets the snippet of code near the error. - * - * @param string $snippet The code snippet - */ - public function setSnippet($snippet) - { - $this->snippet = $snippet; - - $this->updateRepr(); - } - - /** - * Gets the filename where the error occurred. - * - * This method returns null if a string is parsed. - * - * @return string The filename - */ - public function getParsedFile() - { - return $this->parsedFile; - } - - /** - * Sets the filename where the error occurred. - * - * @param string $parsedFile The filename - */ - public function setParsedFile($parsedFile) - { - $this->parsedFile = $parsedFile; - - $this->updateRepr(); - } - - /** - * Gets the line where the error occurred. - * - * @return int The file line - */ - public function getParsedLine() - { - return $this->parsedLine; - } - - /** - * Sets the line where the error occurred. - * - * @param int $parsedLine The file line - */ - public function setParsedLine($parsedLine) - { - $this->parsedLine = $parsedLine; - - $this->updateRepr(); - } - - private function updateRepr() - { - $this->message = $this->rawMessage; - - $dot = false; - if ('.' === substr($this->message, -1)) { - $this->message = substr($this->message, 0, -1); - $dot = true; - } - - if (null !== $this->parsedFile) { - $this->message .= sprintf(' in %s', json_encode($this->parsedFile, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)); - } - - if ($this->parsedLine >= 0) { - $this->message .= sprintf(' at line %d', $this->parsedLine); - } - - if ($this->snippet) { - $this->message .= sprintf(' (near "%s")', $this->snippet); - } - - if ($dot) { - $this->message .= '.'; - } - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/yaml/Exception/RuntimeException.php b/srcs/phpmyadmin/vendor/symfony/yaml/Exception/RuntimeException.php deleted file mode 100644 index 3f36b73..0000000 --- a/srcs/phpmyadmin/vendor/symfony/yaml/Exception/RuntimeException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Yaml\Exception; - -/** - * Exception class thrown when an error occurs during parsing. - * - * @author Romain Neutron - */ -class RuntimeException extends \RuntimeException implements ExceptionInterface -{ -} diff --git a/srcs/phpmyadmin/vendor/symfony/yaml/Inline.php b/srcs/phpmyadmin/vendor/symfony/yaml/Inline.php deleted file mode 100644 index 5cdf763..0000000 --- a/srcs/phpmyadmin/vendor/symfony/yaml/Inline.php +++ /dev/null @@ -1,753 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Yaml; - -use Symfony\Component\Yaml\Exception\DumpException; -use Symfony\Component\Yaml\Exception\ParseException; -use Symfony\Component\Yaml\Tag\TaggedValue; - -/** - * Inline implements a YAML parser/dumper for the YAML inline syntax. - * - * @author Fabien Potencier - * - * @internal - */ -class Inline -{ - const REGEX_QUOTED_STRING = '(?:"([^"\\\\]*+(?:\\\\.[^"\\\\]*+)*+)"|\'([^\']*+(?:\'\'[^\']*+)*+)\')'; - - public static $parsedLineNumber = -1; - public static $parsedFilename; - - private static $exceptionOnInvalidType = false; - private static $objectSupport = false; - private static $objectForMap = false; - private static $constantSupport = false; - - public static function initialize(int $flags, int $parsedLineNumber = null, string $parsedFilename = null) - { - self::$exceptionOnInvalidType = (bool) (Yaml::PARSE_EXCEPTION_ON_INVALID_TYPE & $flags); - self::$objectSupport = (bool) (Yaml::PARSE_OBJECT & $flags); - self::$objectForMap = (bool) (Yaml::PARSE_OBJECT_FOR_MAP & $flags); - self::$constantSupport = (bool) (Yaml::PARSE_CONSTANT & $flags); - self::$parsedFilename = $parsedFilename; - - if (null !== $parsedLineNumber) { - self::$parsedLineNumber = $parsedLineNumber; - } - } - - /** - * Converts a YAML string to a PHP value. - * - * @param string $value A YAML string - * @param int $flags A bit field of PARSE_* constants to customize the YAML parser behavior - * @param array $references Mapping of variable names to values - * - * @return mixed A PHP value - * - * @throws ParseException - */ - public static function parse(string $value = null, int $flags = 0, array $references = []) - { - self::initialize($flags); - - $value = trim($value); - - if ('' === $value) { - return ''; - } - - if (2 /* MB_OVERLOAD_STRING */ & (int) ini_get('mbstring.func_overload')) { - $mbEncoding = mb_internal_encoding(); - mb_internal_encoding('ASCII'); - } - - try { - $i = 0; - $tag = self::parseTag($value, $i, $flags); - switch ($value[$i]) { - case '[': - $result = self::parseSequence($value, $flags, $i, $references); - ++$i; - break; - case '{': - $result = self::parseMapping($value, $flags, $i, $references); - ++$i; - break; - default: - $result = self::parseScalar($value, $flags, null, $i, null === $tag, $references); - } - - // some comments are allowed at the end - if (preg_replace('/\s+#.*$/A', '', substr($value, $i))) { - throw new ParseException(sprintf('Unexpected characters near "%s".', substr($value, $i)), self::$parsedLineNumber + 1, $value, self::$parsedFilename); - } - - if (null !== $tag && '' !== $tag) { - return new TaggedValue($tag, $result); - } - - return $result; - } finally { - if (isset($mbEncoding)) { - mb_internal_encoding($mbEncoding); - } - } - } - - /** - * Dumps a given PHP variable to a YAML string. - * - * @param mixed $value The PHP variable to convert - * @param int $flags A bit field of Yaml::DUMP_* constants to customize the dumped YAML string - * - * @return string The YAML string representing the PHP value - * - * @throws DumpException When trying to dump PHP resource - */ - public static function dump($value, int $flags = 0): string - { - switch (true) { - case \is_resource($value): - if (Yaml::DUMP_EXCEPTION_ON_INVALID_TYPE & $flags) { - throw new DumpException(sprintf('Unable to dump PHP resources in a YAML file ("%s").', get_resource_type($value))); - } - - return self::dumpNull($flags); - case $value instanceof \DateTimeInterface: - return $value->format('c'); - case \is_object($value): - if ($value instanceof TaggedValue) { - return '!'.$value->getTag().' '.self::dump($value->getValue(), $flags); - } - - if (Yaml::DUMP_OBJECT & $flags) { - return '!php/object '.self::dump(serialize($value)); - } - - if (Yaml::DUMP_OBJECT_AS_MAP & $flags && ($value instanceof \stdClass || $value instanceof \ArrayObject)) { - $output = []; - - foreach ($value as $key => $val) { - $output[] = sprintf('%s: %s', self::dump($key, $flags), self::dump($val, $flags)); - } - - return sprintf('{ %s }', implode(', ', $output)); - } - - if (Yaml::DUMP_EXCEPTION_ON_INVALID_TYPE & $flags) { - throw new DumpException('Object support when dumping a YAML file has been disabled.'); - } - - return self::dumpNull($flags); - case \is_array($value): - return self::dumpArray($value, $flags); - case null === $value: - return self::dumpNull($flags); - case true === $value: - return 'true'; - case false === $value: - return 'false'; - case ctype_digit($value): - return \is_string($value) ? "'$value'" : (int) $value; - case is_numeric($value): - $locale = setlocale(LC_NUMERIC, 0); - if (false !== $locale) { - setlocale(LC_NUMERIC, 'C'); - } - if (\is_float($value)) { - $repr = (string) $value; - if (is_infinite($value)) { - $repr = str_ireplace('INF', '.Inf', $repr); - } elseif (floor($value) == $value && $repr == $value) { - // Preserve float data type since storing a whole number will result in integer value. - $repr = '!!float '.$repr; - } - } else { - $repr = \is_string($value) ? "'$value'" : (string) $value; - } - if (false !== $locale) { - setlocale(LC_NUMERIC, $locale); - } - - return $repr; - case '' == $value: - return "''"; - case self::isBinaryString($value): - return '!!binary '.base64_encode($value); - case Escaper::requiresDoubleQuoting($value): - return Escaper::escapeWithDoubleQuotes($value); - case Escaper::requiresSingleQuoting($value): - case Parser::preg_match('{^[0-9]+[_0-9]*$}', $value): - case Parser::preg_match(self::getHexRegex(), $value): - case Parser::preg_match(self::getTimestampRegex(), $value): - return Escaper::escapeWithSingleQuotes($value); - default: - return $value; - } - } - - /** - * Check if given array is hash or just normal indexed array. - * - * @param array|\ArrayObject|\stdClass $value The PHP array or array-like object to check - * - * @return bool true if value is hash array, false otherwise - */ - public static function isHash($value): bool - { - if ($value instanceof \stdClass || $value instanceof \ArrayObject) { - return true; - } - - $expectedKey = 0; - - foreach ($value as $key => $val) { - if ($key !== $expectedKey++) { - return true; - } - } - - return false; - } - - /** - * Dumps a PHP array to a YAML string. - * - * @param array $value The PHP array to dump - * @param int $flags A bit field of Yaml::DUMP_* constants to customize the dumped YAML string - * - * @return string The YAML string representing the PHP array - */ - private static function dumpArray(array $value, int $flags): string - { - // array - if (($value || Yaml::DUMP_EMPTY_ARRAY_AS_SEQUENCE & $flags) && !self::isHash($value)) { - $output = []; - foreach ($value as $val) { - $output[] = self::dump($val, $flags); - } - - return sprintf('[%s]', implode(', ', $output)); - } - - // hash - $output = []; - foreach ($value as $key => $val) { - $output[] = sprintf('%s: %s', self::dump($key, $flags), self::dump($val, $flags)); - } - - return sprintf('{ %s }', implode(', ', $output)); - } - - private static function dumpNull(int $flags): string - { - if (Yaml::DUMP_NULL_AS_TILDE & $flags) { - return '~'; - } - - return 'null'; - } - - /** - * Parses a YAML scalar. - * - * @return mixed - * - * @throws ParseException When malformed inline YAML string is parsed - */ - public static function parseScalar(string $scalar, int $flags = 0, array $delimiters = null, int &$i = 0, bool $evaluate = true, array $references = []) - { - if (\in_array($scalar[$i], ['"', "'"])) { - // quoted scalar - $output = self::parseQuotedScalar($scalar, $i); - - if (null !== $delimiters) { - $tmp = ltrim(substr($scalar, $i), " \n"); - if ('' === $tmp) { - throw new ParseException(sprintf('Unexpected end of line, expected one of "%s".', implode('', $delimiters)), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename); - } - if (!\in_array($tmp[0], $delimiters)) { - throw new ParseException(sprintf('Unexpected characters (%s).', substr($scalar, $i)), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename); - } - } - } else { - // "normal" string - if (!$delimiters) { - $output = substr($scalar, $i); - $i += \strlen($output); - - // remove comments - if (Parser::preg_match('/[ \t]+#/', $output, $match, PREG_OFFSET_CAPTURE)) { - $output = substr($output, 0, $match[0][1]); - } - } elseif (Parser::preg_match('/^(.*?)('.implode('|', $delimiters).')/', substr($scalar, $i), $match)) { - $output = $match[1]; - $i += \strlen($output); - $output = trim($output); - } else { - throw new ParseException(sprintf('Malformed inline YAML string: %s.', $scalar), self::$parsedLineNumber + 1, null, self::$parsedFilename); - } - - // a non-quoted string cannot start with @ or ` (reserved) nor with a scalar indicator (| or >) - if ($output && ('@' === $output[0] || '`' === $output[0] || '|' === $output[0] || '>' === $output[0] || '%' === $output[0])) { - throw new ParseException(sprintf('The reserved indicator "%s" cannot start a plain scalar; you need to quote the scalar.', $output[0]), self::$parsedLineNumber + 1, $output, self::$parsedFilename); - } - - if ($evaluate) { - $output = self::evaluateScalar($output, $flags, $references); - } - } - - return $output; - } - - /** - * Parses a YAML quoted scalar. - * - * @throws ParseException When malformed inline YAML string is parsed - */ - private static function parseQuotedScalar(string $scalar, int &$i): string - { - if (!Parser::preg_match('/'.self::REGEX_QUOTED_STRING.'/Au', substr($scalar, $i), $match)) { - throw new ParseException(sprintf('Malformed inline YAML string: %s.', substr($scalar, $i)), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename); - } - - $output = substr($match[0], 1, \strlen($match[0]) - 2); - - $unescaper = new Unescaper(); - if ('"' == $scalar[$i]) { - $output = $unescaper->unescapeDoubleQuotedString($output); - } else { - $output = $unescaper->unescapeSingleQuotedString($output); - } - - $i += \strlen($match[0]); - - return $output; - } - - /** - * Parses a YAML sequence. - * - * @throws ParseException When malformed inline YAML string is parsed - */ - private static function parseSequence(string $sequence, int $flags, int &$i = 0, array $references = []): array - { - $output = []; - $len = \strlen($sequence); - ++$i; - - // [foo, bar, ...] - while ($i < $len) { - if (']' === $sequence[$i]) { - return $output; - } - if (',' === $sequence[$i] || ' ' === $sequence[$i]) { - ++$i; - - continue; - } - - $tag = self::parseTag($sequence, $i, $flags); - switch ($sequence[$i]) { - case '[': - // nested sequence - $value = self::parseSequence($sequence, $flags, $i, $references); - break; - case '{': - // nested mapping - $value = self::parseMapping($sequence, $flags, $i, $references); - break; - default: - $isQuoted = \in_array($sequence[$i], ['"', "'"]); - $value = self::parseScalar($sequence, $flags, [',', ']'], $i, null === $tag, $references); - - // the value can be an array if a reference has been resolved to an array var - if (\is_string($value) && !$isQuoted && false !== strpos($value, ': ')) { - // embedded mapping? - try { - $pos = 0; - $value = self::parseMapping('{'.$value.'}', $flags, $pos, $references); - } catch (\InvalidArgumentException $e) { - // no, it's not - } - } - - --$i; - } - - if (null !== $tag && '' !== $tag) { - $value = new TaggedValue($tag, $value); - } - - $output[] = $value; - - ++$i; - } - - throw new ParseException(sprintf('Malformed inline YAML string: %s.', $sequence), self::$parsedLineNumber + 1, null, self::$parsedFilename); - } - - /** - * Parses a YAML mapping. - * - * @return array|\stdClass - * - * @throws ParseException When malformed inline YAML string is parsed - */ - private static function parseMapping(string $mapping, int $flags, int &$i = 0, array $references = []) - { - $output = []; - $len = \strlen($mapping); - ++$i; - $allowOverwrite = false; - - // {foo: bar, bar:foo, ...} - while ($i < $len) { - switch ($mapping[$i]) { - case ' ': - case ',': - case "\n": - ++$i; - continue 2; - case '}': - if (self::$objectForMap) { - return (object) $output; - } - - return $output; - } - - // key - $offsetBeforeKeyParsing = $i; - $isKeyQuoted = \in_array($mapping[$i], ['"', "'"], true); - $key = self::parseScalar($mapping, $flags, [':', ' '], $i, false, []); - - if ($offsetBeforeKeyParsing === $i) { - throw new ParseException('Missing mapping key.', self::$parsedLineNumber + 1, $mapping); - } - - if (false === $i = strpos($mapping, ':', $i)) { - break; - } - - if (!$isKeyQuoted) { - $evaluatedKey = self::evaluateScalar($key, $flags, $references); - - if ('' !== $key && $evaluatedKey !== $key && !\is_string($evaluatedKey) && !\is_int($evaluatedKey)) { - throw new ParseException('Implicit casting of incompatible mapping keys to strings is not supported. Quote your evaluable mapping keys instead.', self::$parsedLineNumber + 1, $mapping); - } - } - - if (!$isKeyQuoted && (!isset($mapping[$i + 1]) || !\in_array($mapping[$i + 1], [' ', ',', '[', ']', '{', '}', "\n"], true))) { - throw new ParseException('Colons must be followed by a space or an indication character (i.e. " ", ",", "[", "]", "{", "}").', self::$parsedLineNumber + 1, $mapping); - } - - if ('<<' === $key) { - $allowOverwrite = true; - } - - while ($i < $len) { - if (':' === $mapping[$i] || ' ' === $mapping[$i] || "\n" === $mapping[$i]) { - ++$i; - - continue; - } - - $tag = self::parseTag($mapping, $i, $flags); - switch ($mapping[$i]) { - case '[': - // nested sequence - $value = self::parseSequence($mapping, $flags, $i, $references); - // Spec: Keys MUST be unique; first one wins. - // Parser cannot abort this mapping earlier, since lines - // are processed sequentially. - // But overwriting is allowed when a merge node is used in current block. - if ('<<' === $key) { - foreach ($value as $parsedValue) { - $output += $parsedValue; - } - } elseif ($allowOverwrite || !isset($output[$key])) { - if (null !== $tag) { - $output[$key] = new TaggedValue($tag, $value); - } else { - $output[$key] = $value; - } - } elseif (isset($output[$key])) { - throw new ParseException(sprintf('Duplicate key "%s" detected.', $key), self::$parsedLineNumber + 1, $mapping); - } - break; - case '{': - // nested mapping - $value = self::parseMapping($mapping, $flags, $i, $references); - // Spec: Keys MUST be unique; first one wins. - // Parser cannot abort this mapping earlier, since lines - // are processed sequentially. - // But overwriting is allowed when a merge node is used in current block. - if ('<<' === $key) { - $output += $value; - } elseif ($allowOverwrite || !isset($output[$key])) { - if (null !== $tag) { - $output[$key] = new TaggedValue($tag, $value); - } else { - $output[$key] = $value; - } - } elseif (isset($output[$key])) { - throw new ParseException(sprintf('Duplicate key "%s" detected.', $key), self::$parsedLineNumber + 1, $mapping); - } - break; - default: - $value = self::parseScalar($mapping, $flags, [',', '}', "\n"], $i, null === $tag, $references); - // Spec: Keys MUST be unique; first one wins. - // Parser cannot abort this mapping earlier, since lines - // are processed sequentially. - // But overwriting is allowed when a merge node is used in current block. - if ('<<' === $key) { - $output += $value; - } elseif ($allowOverwrite || !isset($output[$key])) { - if (null !== $tag) { - $output[$key] = new TaggedValue($tag, $value); - } else { - $output[$key] = $value; - } - } elseif (isset($output[$key])) { - throw new ParseException(sprintf('Duplicate key "%s" detected.', $key), self::$parsedLineNumber + 1, $mapping); - } - --$i; - } - ++$i; - - continue 2; - } - } - - throw new ParseException(sprintf('Malformed inline YAML string: %s.', $mapping), self::$parsedLineNumber + 1, null, self::$parsedFilename); - } - - /** - * Evaluates scalars and replaces magic values. - * - * @return mixed The evaluated YAML string - * - * @throws ParseException when object parsing support was disabled and the parser detected a PHP object or when a reference could not be resolved - */ - private static function evaluateScalar(string $scalar, int $flags, array $references = []) - { - $scalar = trim($scalar); - $scalarLower = strtolower($scalar); - - if (0 === strpos($scalar, '*')) { - if (false !== $pos = strpos($scalar, '#')) { - $value = substr($scalar, 1, $pos - 2); - } else { - $value = substr($scalar, 1); - } - - // an unquoted * - if (false === $value || '' === $value) { - throw new ParseException('A reference must contain at least one character.', self::$parsedLineNumber + 1, $value, self::$parsedFilename); - } - - if (!\array_key_exists($value, $references)) { - throw new ParseException(sprintf('Reference "%s" does not exist.', $value), self::$parsedLineNumber + 1, $value, self::$parsedFilename); - } - - return $references[$value]; - } - - switch (true) { - case 'null' === $scalarLower: - case '' === $scalar: - case '~' === $scalar: - return null; - case 'true' === $scalarLower: - return true; - case 'false' === $scalarLower: - return false; - case '!' === $scalar[0]: - switch (true) { - case 0 === strpos($scalar, '!!str '): - return (string) substr($scalar, 6); - case 0 === strpos($scalar, '! '): - return substr($scalar, 2); - case 0 === strpos($scalar, '!php/object'): - if (self::$objectSupport) { - return unserialize(self::parseScalar(substr($scalar, 12))); - } - - if (self::$exceptionOnInvalidType) { - throw new ParseException('Object support when parsing a YAML file has been disabled.', self::$parsedLineNumber + 1, $scalar, self::$parsedFilename); - } - - return null; - case 0 === strpos($scalar, '!php/const'): - if (self::$constantSupport) { - $i = 0; - if (\defined($const = self::parseScalar(substr($scalar, 11), 0, null, $i, false))) { - return \constant($const); - } - - throw new ParseException(sprintf('The constant "%s" is not defined.', $const), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename); - } - if (self::$exceptionOnInvalidType) { - throw new ParseException(sprintf('The string "%s" could not be parsed as a constant. Have you forgotten to pass the "Yaml::PARSE_CONSTANT" flag to the parser?', $scalar), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename); - } - - return null; - case 0 === strpos($scalar, '!!float '): - return (float) substr($scalar, 8); - case 0 === strpos($scalar, '!!binary '): - return self::evaluateBinaryScalar(substr($scalar, 9)); - default: - throw new ParseException(sprintf('The string "%s" could not be parsed as it uses an unsupported built-in tag.', $scalar), self::$parsedLineNumber, $scalar, self::$parsedFilename); - } - - // Optimize for returning strings. - // no break - case '+' === $scalar[0] || '-' === $scalar[0] || '.' === $scalar[0] || is_numeric($scalar[0]): - if (Parser::preg_match('{^[+-]?[0-9][0-9_]*$}', $scalar)) { - $scalar = str_replace('_', '', (string) $scalar); - } - - switch (true) { - case ctype_digit($scalar): - $raw = $scalar; - $cast = (int) $scalar; - - return '0' == $scalar[0] ? octdec($scalar) : (((string) $raw == (string) $cast) ? $cast : $raw); - case '-' === $scalar[0] && ctype_digit(substr($scalar, 1)): - $raw = $scalar; - $cast = (int) $scalar; - - return '0' == $scalar[1] ? -octdec(substr($scalar, 1)) : (($raw === (string) $cast) ? $cast : $raw); - case is_numeric($scalar): - case Parser::preg_match(self::getHexRegex(), $scalar): - $scalar = str_replace('_', '', $scalar); - - return '0x' === $scalar[0].$scalar[1] ? hexdec($scalar) : (float) $scalar; - case '.inf' === $scalarLower: - case '.nan' === $scalarLower: - return -log(0); - case '-.inf' === $scalarLower: - return log(0); - case Parser::preg_match('/^(-|\+)?[0-9][0-9_]*(\.[0-9_]+)?$/', $scalar): - return (float) str_replace('_', '', $scalar); - case Parser::preg_match(self::getTimestampRegex(), $scalar): - if (Yaml::PARSE_DATETIME & $flags) { - // When no timezone is provided in the parsed date, YAML spec says we must assume UTC. - return new \DateTime($scalar, new \DateTimeZone('UTC')); - } - - $timeZone = date_default_timezone_get(); - date_default_timezone_set('UTC'); - $time = strtotime($scalar); - date_default_timezone_set($timeZone); - - return $time; - } - } - - return (string) $scalar; - } - - private static function parseTag(string $value, int &$i, int $flags): ?string - { - if ('!' !== $value[$i]) { - return null; - } - - $tagLength = strcspn($value, " \t\n[]{},", $i + 1); - $tag = substr($value, $i + 1, $tagLength); - - $nextOffset = $i + $tagLength + 1; - $nextOffset += strspn($value, ' ', $nextOffset); - - // Is followed by a scalar and is a built-in tag - if ('' !== $tag && (!isset($value[$nextOffset]) || !\in_array($value[$nextOffset], ['[', '{'], true)) && ('!' === $tag[0] || 'str' === $tag || 'php/const' === $tag || 'php/object' === $tag)) { - // Manage in {@link self::evaluateScalar()} - return null; - } - - $i = $nextOffset; - - // Built-in tags - if ('' !== $tag && '!' === $tag[0]) { - throw new ParseException(sprintf('The built-in tag "!%s" is not implemented.', $tag), self::$parsedLineNumber + 1, $value, self::$parsedFilename); - } - - if ('' !== $tag && !isset($value[$i])) { - throw new ParseException(sprintf('Missing value for tag "%s".', $tag), self::$parsedLineNumber + 1, $value, self::$parsedFilename); - } - - if ('' === $tag || Yaml::PARSE_CUSTOM_TAGS & $flags) { - return $tag; - } - - throw new ParseException(sprintf('Tags support is not enabled. Enable the "Yaml::PARSE_CUSTOM_TAGS" flag to use "!%s".', $tag), self::$parsedLineNumber + 1, $value, self::$parsedFilename); - } - - public static function evaluateBinaryScalar(string $scalar): string - { - $parsedBinaryData = self::parseScalar(preg_replace('/\s/', '', $scalar)); - - if (0 !== (\strlen($parsedBinaryData) % 4)) { - throw new ParseException(sprintf('The normalized base64 encoded data (data without whitespace characters) length must be a multiple of four (%d bytes given).', \strlen($parsedBinaryData)), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename); - } - - if (!Parser::preg_match('#^[A-Z0-9+/]+={0,2}$#i', $parsedBinaryData)) { - throw new ParseException(sprintf('The base64 encoded data (%s) contains invalid characters.', $parsedBinaryData), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename); - } - - return base64_decode($parsedBinaryData, true); - } - - private static function isBinaryString(string $value) - { - return !preg_match('//u', $value) || preg_match('/[^\x00\x07-\x0d\x1B\x20-\xff]/', $value); - } - - /** - * Gets a regex that matches a YAML date. - * - * @return string The regular expression - * - * @see http://www.yaml.org/spec/1.2/spec.html#id2761573 - */ - private static function getTimestampRegex(): string - { - return <<[0-9][0-9][0-9][0-9]) - -(?P[0-9][0-9]?) - -(?P[0-9][0-9]?) - (?:(?:[Tt]|[ \t]+) - (?P[0-9][0-9]?) - :(?P[0-9][0-9]) - :(?P[0-9][0-9]) - (?:\.(?P[0-9]*))? - (?:[ \t]*(?PZ|(?P[-+])(?P[0-9][0-9]?) - (?::(?P[0-9][0-9]))?))?)? - $~x -EOF; - } - - /** - * Gets a regex that matches a YAML number in hexadecimal notation. - */ - private static function getHexRegex(): string - { - return '~^0x[0-9a-f_]++$~i'; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/yaml/LICENSE b/srcs/phpmyadmin/vendor/symfony/yaml/LICENSE deleted file mode 100644 index a677f43..0000000 --- a/srcs/phpmyadmin/vendor/symfony/yaml/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2004-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. diff --git a/srcs/phpmyadmin/vendor/symfony/yaml/Parser.php b/srcs/phpmyadmin/vendor/symfony/yaml/Parser.php deleted file mode 100644 index 465bbb2..0000000 --- a/srcs/phpmyadmin/vendor/symfony/yaml/Parser.php +++ /dev/null @@ -1,1245 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Yaml; - -use Symfony\Component\Yaml\Exception\ParseException; -use Symfony\Component\Yaml\Tag\TaggedValue; - -/** - * Parser parses YAML strings to convert them to PHP arrays. - * - * @author Fabien Potencier - * - * @final - */ -class Parser -{ - const TAG_PATTERN = '(?P![\w!.\/:-]+)'; - const BLOCK_SCALAR_HEADER_PATTERN = '(?P\||>)(?P\+|\-|\d+|\+\d+|\-\d+|\d+\+|\d+\-)?(?P +#.*)?'; - - private $filename; - private $offset = 0; - private $totalNumberOfLines; - private $lines = []; - private $currentLineNb = -1; - private $currentLine = ''; - private $refs = []; - private $skippedLineNumbers = []; - private $locallySkippedLineNumbers = []; - private $refsBeingParsed = []; - - /** - * Parses a YAML file into a PHP value. - * - * @param string $filename The path to the YAML file to be parsed - * @param int $flags A bit field of PARSE_* constants to customize the YAML parser behavior - * - * @return mixed The YAML converted to a PHP value - * - * @throws ParseException If the file could not be read or the YAML is not valid - */ - public function parseFile(string $filename, int $flags = 0) - { - if (!is_file($filename)) { - throw new ParseException(sprintf('File "%s" does not exist.', $filename)); - } - - if (!is_readable($filename)) { - throw new ParseException(sprintf('File "%s" cannot be read.', $filename)); - } - - $this->filename = $filename; - - try { - return $this->parse(file_get_contents($filename), $flags); - } finally { - $this->filename = null; - } - } - - /** - * Parses a YAML string to a PHP value. - * - * @param string $value A YAML string - * @param int $flags A bit field of PARSE_* constants to customize the YAML parser behavior - * - * @return mixed A PHP value - * - * @throws ParseException If the YAML is not valid - */ - public function parse(string $value, int $flags = 0) - { - if (false === preg_match('//u', $value)) { - throw new ParseException('The YAML value does not appear to be valid UTF-8.', -1, null, $this->filename); - } - - $this->refs = []; - - $mbEncoding = null; - - if (2 /* MB_OVERLOAD_STRING */ & (int) ini_get('mbstring.func_overload')) { - $mbEncoding = mb_internal_encoding(); - mb_internal_encoding('UTF-8'); - } - - try { - $data = $this->doParse($value, $flags); - } finally { - if (null !== $mbEncoding) { - mb_internal_encoding($mbEncoding); - } - $this->lines = []; - $this->currentLine = ''; - $this->refs = []; - $this->skippedLineNumbers = []; - $this->locallySkippedLineNumbers = []; - } - - return $data; - } - - private function doParse(string $value, int $flags) - { - $this->currentLineNb = -1; - $this->currentLine = ''; - $value = $this->cleanup($value); - $this->lines = explode("\n", $value); - $this->locallySkippedLineNumbers = []; - - if (null === $this->totalNumberOfLines) { - $this->totalNumberOfLines = \count($this->lines); - } - - if (!$this->moveToNextLine()) { - return null; - } - - $data = []; - $context = null; - $allowOverwrite = false; - - while ($this->isCurrentLineEmpty()) { - if (!$this->moveToNextLine()) { - return null; - } - } - - // Resolves the tag and returns if end of the document - if (null !== ($tag = $this->getLineTag($this->currentLine, $flags, false)) && !$this->moveToNextLine()) { - return new TaggedValue($tag, ''); - } - - do { - if ($this->isCurrentLineEmpty()) { - continue; - } - - // tab? - if ("\t" === $this->currentLine[0]) { - throw new ParseException('A YAML file cannot contain tabs as indentation.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename); - } - - Inline::initialize($flags, $this->getRealCurrentLineNb(), $this->filename); - - $isRef = $mergeNode = false; - if ('-' === $this->currentLine[0] && self::preg_match('#^\-((?P\s+)(?P.+))?$#u', rtrim($this->currentLine), $values)) { - if ($context && 'mapping' == $context) { - throw new ParseException('You cannot define a sequence item when in a mapping', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename); - } - $context = 'sequence'; - - if (isset($values['value']) && '&' === $values['value'][0] && self::preg_match('#^&(?P[^ ]+) *(?P.*)#u', $values['value'], $matches)) { - $isRef = $matches['ref']; - $this->refsBeingParsed[] = $isRef; - $values['value'] = $matches['value']; - } - - if (isset($values['value'][1]) && '?' === $values['value'][0] && ' ' === $values['value'][1]) { - throw new ParseException('Complex mappings are not supported.', $this->getRealCurrentLineNb() + 1, $this->currentLine); - } - - // array - if (!isset($values['value']) || '' == trim($values['value'], ' ') || 0 === strpos(ltrim($values['value'], ' '), '#')) { - $data[] = $this->parseBlock($this->getRealCurrentLineNb() + 1, $this->getNextEmbedBlock(null, true) ?? '', $flags); - } elseif (null !== $subTag = $this->getLineTag(ltrim($values['value'], ' '), $flags)) { - $data[] = new TaggedValue( - $subTag, - $this->parseBlock($this->getRealCurrentLineNb() + 1, $this->getNextEmbedBlock(null, true), $flags) - ); - } else { - if (isset($values['leadspaces']) - && self::preg_match('#^(?P'.Inline::REGEX_QUOTED_STRING.'|[^ \'"\{\[].*?) *\:(\s+(?P.+?))?\s*$#u', $this->trimTag($values['value']), $matches) - ) { - // this is a compact notation element, add to next block and parse - $block = $values['value']; - if ($this->isNextLineIndented()) { - $block .= "\n".$this->getNextEmbedBlock($this->getCurrentLineIndentation() + \strlen($values['leadspaces']) + 1); - } - - $data[] = $this->parseBlock($this->getRealCurrentLineNb(), $block, $flags); - } else { - $data[] = $this->parseValue($values['value'], $flags, $context); - } - } - if ($isRef) { - $this->refs[$isRef] = end($data); - array_pop($this->refsBeingParsed); - } - } elseif ( - self::preg_match('#^(?P(?:![^\s]++\s++)?(?:'.Inline::REGEX_QUOTED_STRING.'|(?:!?!php/const:)?[^ \'"\[\{!].*?)) *\:(\s++(?P.+))?$#u', rtrim($this->currentLine), $values) - && (false === strpos($values['key'], ' #') || \in_array($values['key'][0], ['"', "'"])) - ) { - if ($context && 'sequence' == $context) { - throw new ParseException('You cannot define a mapping item when in a sequence', $this->currentLineNb + 1, $this->currentLine, $this->filename); - } - $context = 'mapping'; - - try { - $key = Inline::parseScalar($values['key']); - } catch (ParseException $e) { - $e->setParsedLine($this->getRealCurrentLineNb() + 1); - $e->setSnippet($this->currentLine); - - throw $e; - } - - if (!\is_string($key) && !\is_int($key)) { - throw new ParseException(sprintf('%s keys are not supported. Quote your evaluable mapping keys instead.', is_numeric($key) ? 'Numeric' : 'Non-string'), $this->getRealCurrentLineNb() + 1, $this->currentLine); - } - - // Convert float keys to strings, to avoid being converted to integers by PHP - if (\is_float($key)) { - $key = (string) $key; - } - - if ('<<' === $key && (!isset($values['value']) || '&' !== $values['value'][0] || !self::preg_match('#^&(?P[^ ]+)#u', $values['value'], $refMatches))) { - $mergeNode = true; - $allowOverwrite = true; - if (isset($values['value'][0]) && '*' === $values['value'][0]) { - $refName = substr(rtrim($values['value']), 1); - if (!\array_key_exists($refName, $this->refs)) { - if (false !== $pos = array_search($refName, $this->refsBeingParsed, true)) { - throw new ParseException(sprintf('Circular reference [%s, %s] detected for reference "%s".', implode(', ', \array_slice($this->refsBeingParsed, $pos)), $refName, $refName), $this->currentLineNb + 1, $this->currentLine, $this->filename); - } - - throw new ParseException(sprintf('Reference "%s" does not exist.', $refName), $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename); - } - - $refValue = $this->refs[$refName]; - - if (Yaml::PARSE_OBJECT_FOR_MAP & $flags && $refValue instanceof \stdClass) { - $refValue = (array) $refValue; - } - - if (!\is_array($refValue)) { - throw new ParseException('YAML merge keys used with a scalar value instead of an array.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename); - } - - $data += $refValue; // array union - } else { - if (isset($values['value']) && '' !== $values['value']) { - $value = $values['value']; - } else { - $value = $this->getNextEmbedBlock(); - } - $parsed = $this->parseBlock($this->getRealCurrentLineNb() + 1, $value, $flags); - - if (Yaml::PARSE_OBJECT_FOR_MAP & $flags && $parsed instanceof \stdClass) { - $parsed = (array) $parsed; - } - - if (!\is_array($parsed)) { - throw new ParseException('YAML merge keys used with a scalar value instead of an array.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename); - } - - if (isset($parsed[0])) { - // If the value associated with the merge key is a sequence, then this sequence is expected to contain mapping nodes - // and each of these nodes is merged in turn according to its order in the sequence. Keys in mapping nodes earlier - // in the sequence override keys specified in later mapping nodes. - foreach ($parsed as $parsedItem) { - if (Yaml::PARSE_OBJECT_FOR_MAP & $flags && $parsedItem instanceof \stdClass) { - $parsedItem = (array) $parsedItem; - } - - if (!\is_array($parsedItem)) { - throw new ParseException('Merge items must be arrays.', $this->getRealCurrentLineNb() + 1, $parsedItem, $this->filename); - } - - $data += $parsedItem; // array union - } - } else { - // If the value associated with the key is a single mapping node, each of its key/value pairs is inserted into the - // current mapping, unless the key already exists in it. - $data += $parsed; // array union - } - } - } elseif ('<<' !== $key && isset($values['value']) && '&' === $values['value'][0] && self::preg_match('#^&(?P[^ ]++) *+(?P.*)#u', $values['value'], $matches)) { - $isRef = $matches['ref']; - $this->refsBeingParsed[] = $isRef; - $values['value'] = $matches['value']; - } - - $subTag = null; - if ($mergeNode) { - // Merge keys - } elseif (!isset($values['value']) || '' === $values['value'] || 0 === strpos($values['value'], '#') || (null !== $subTag = $this->getLineTag($values['value'], $flags)) || '<<' === $key) { - // hash - // if next line is less indented or equal, then it means that the current value is null - if (!$this->isNextLineIndented() && !$this->isNextLineUnIndentedCollection()) { - // Spec: Keys MUST be unique; first one wins. - // But overwriting is allowed when a merge node is used in current block. - if ($allowOverwrite || !isset($data[$key])) { - if (null !== $subTag) { - $data[$key] = new TaggedValue($subTag, ''); - } else { - $data[$key] = null; - } - } else { - throw new ParseException(sprintf('Duplicate key "%s" detected.', $key), $this->getRealCurrentLineNb() + 1, $this->currentLine); - } - } else { - // remember the parsed line number here in case we need it to provide some contexts in error messages below - $realCurrentLineNbKey = $this->getRealCurrentLineNb(); - $value = $this->parseBlock($this->getRealCurrentLineNb() + 1, $this->getNextEmbedBlock(), $flags); - if ('<<' === $key) { - $this->refs[$refMatches['ref']] = $value; - - if (Yaml::PARSE_OBJECT_FOR_MAP & $flags && $value instanceof \stdClass) { - $value = (array) $value; - } - - $data += $value; - } elseif ($allowOverwrite || !isset($data[$key])) { - // Spec: Keys MUST be unique; first one wins. - // But overwriting is allowed when a merge node is used in current block. - if (null !== $subTag) { - $data[$key] = new TaggedValue($subTag, $value); - } else { - $data[$key] = $value; - } - } else { - throw new ParseException(sprintf('Duplicate key "%s" detected.', $key), $realCurrentLineNbKey + 1, $this->currentLine); - } - } - } else { - $value = $this->parseValue(rtrim($values['value']), $flags, $context); - // Spec: Keys MUST be unique; first one wins. - // But overwriting is allowed when a merge node is used in current block. - if ($allowOverwrite || !isset($data[$key])) { - $data[$key] = $value; - } else { - throw new ParseException(sprintf('Duplicate key "%s" detected.', $key), $this->getRealCurrentLineNb() + 1, $this->currentLine); - } - } - if ($isRef) { - $this->refs[$isRef] = $data[$key]; - array_pop($this->refsBeingParsed); - } - } elseif ('"' === $this->currentLine[0] || "'" === $this->currentLine[0]) { - if (null !== $context) { - throw new ParseException('Unable to parse.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename); - } - - try { - return Inline::parse($this->parseQuotedString($this->currentLine), $flags, $this->refs); - } catch (ParseException $e) { - $e->setParsedLine($this->getRealCurrentLineNb() + 1); - $e->setSnippet($this->currentLine); - - throw $e; - } - } elseif ('{' === $this->currentLine[0]) { - if (null !== $context) { - throw new ParseException('Unable to parse.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename); - } - - try { - $parsedMapping = Inline::parse($this->lexInlineMapping($this->currentLine), $flags, $this->refs); - - while ($this->moveToNextLine()) { - if (!$this->isCurrentLineEmpty()) { - throw new ParseException('Unable to parse.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename); - } - } - - return $parsedMapping; - } catch (ParseException $e) { - $e->setParsedLine($this->getRealCurrentLineNb() + 1); - $e->setSnippet($this->currentLine); - - throw $e; - } - } elseif ('[' === $this->currentLine[0]) { - if (null !== $context) { - throw new ParseException('Unable to parse.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename); - } - - try { - $parsedSequence = Inline::parse($this->lexInlineSequence($this->currentLine), $flags, $this->refs); - - while ($this->moveToNextLine()) { - if (!$this->isCurrentLineEmpty()) { - throw new ParseException('Unable to parse.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename); - } - } - - return $parsedSequence; - } catch (ParseException $e) { - $e->setParsedLine($this->getRealCurrentLineNb() + 1); - $e->setSnippet($this->currentLine); - - throw $e; - } - } else { - // multiple documents are not supported - if ('---' === $this->currentLine) { - throw new ParseException('Multiple documents are not supported.', $this->currentLineNb + 1, $this->currentLine, $this->filename); - } - - if ($deprecatedUsage = (isset($this->currentLine[1]) && '?' === $this->currentLine[0] && ' ' === $this->currentLine[1])) { - throw new ParseException('Complex mappings are not supported.', $this->getRealCurrentLineNb() + 1, $this->currentLine); - } - - // 1-liner optionally followed by newline(s) - if (\is_string($value) && $this->lines[0] === trim($value)) { - try { - $value = Inline::parse($this->lines[0], $flags, $this->refs); - } catch (ParseException $e) { - $e->setParsedLine($this->getRealCurrentLineNb() + 1); - $e->setSnippet($this->currentLine); - - throw $e; - } - - return $value; - } - - // try to parse the value as a multi-line string as a last resort - if (0 === $this->currentLineNb) { - $previousLineWasNewline = false; - $previousLineWasTerminatedWithBackslash = false; - $value = ''; - - foreach ($this->lines as $line) { - if ('' !== ltrim($line) && '#' === ltrim($line)[0]) { - continue; - } - // If the indentation is not consistent at offset 0, it is to be considered as a ParseError - if (0 === $this->offset && !$deprecatedUsage && isset($line[0]) && ' ' === $line[0]) { - throw new ParseException('Unable to parse.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename); - } - - if (false !== strpos($line, ': ')) { - @trigger_error('Support for mapping keys in multi-line blocks is deprecated since Symfony 4.3 and will throw a ParseException in 5.0.', E_USER_DEPRECATED); - } - - if ('' === trim($line)) { - $value .= "\n"; - } elseif (!$previousLineWasNewline && !$previousLineWasTerminatedWithBackslash) { - $value .= ' '; - } - - if ('' !== trim($line) && '\\' === substr($line, -1)) { - $value .= ltrim(substr($line, 0, -1)); - } elseif ('' !== trim($line)) { - $value .= trim($line); - } - - if ('' === trim($line)) { - $previousLineWasNewline = true; - $previousLineWasTerminatedWithBackslash = false; - } elseif ('\\' === substr($line, -1)) { - $previousLineWasNewline = false; - $previousLineWasTerminatedWithBackslash = true; - } else { - $previousLineWasNewline = false; - $previousLineWasTerminatedWithBackslash = false; - } - } - - try { - return Inline::parse(trim($value)); - } catch (ParseException $e) { - // fall-through to the ParseException thrown below - } - } - - throw new ParseException('Unable to parse.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename); - } - } while ($this->moveToNextLine()); - - if (null !== $tag) { - $data = new TaggedValue($tag, $data); - } - - if (Yaml::PARSE_OBJECT_FOR_MAP & $flags && !\is_object($data) && 'mapping' === $context) { - $object = new \stdClass(); - - foreach ($data as $key => $value) { - $object->$key = $value; - } - - $data = $object; - } - - return empty($data) ? null : $data; - } - - private function parseBlock(int $offset, string $yaml, int $flags) - { - $skippedLineNumbers = $this->skippedLineNumbers; - - foreach ($this->locallySkippedLineNumbers as $lineNumber) { - if ($lineNumber < $offset) { - continue; - } - - $skippedLineNumbers[] = $lineNumber; - } - - $parser = new self(); - $parser->offset = $offset; - $parser->totalNumberOfLines = $this->totalNumberOfLines; - $parser->skippedLineNumbers = $skippedLineNumbers; - $parser->refs = &$this->refs; - $parser->refsBeingParsed = $this->refsBeingParsed; - - return $parser->doParse($yaml, $flags); - } - - /** - * Returns the current line number (takes the offset into account). - * - * @internal - * - * @return int The current line number - */ - public function getRealCurrentLineNb(): int - { - $realCurrentLineNumber = $this->currentLineNb + $this->offset; - - foreach ($this->skippedLineNumbers as $skippedLineNumber) { - if ($skippedLineNumber > $realCurrentLineNumber) { - break; - } - - ++$realCurrentLineNumber; - } - - return $realCurrentLineNumber; - } - - /** - * Returns the current line indentation. - * - * @return int The current line indentation - */ - private function getCurrentLineIndentation(): int - { - return \strlen($this->currentLine) - \strlen(ltrim($this->currentLine, ' ')); - } - - /** - * Returns the next embed block of YAML. - * - * @param int|null $indentation The indent level at which the block is to be read, or null for default - * @param bool $inSequence True if the enclosing data structure is a sequence - * - * @return string A YAML string - * - * @throws ParseException When indentation problem are detected - */ - private function getNextEmbedBlock(int $indentation = null, bool $inSequence = false): string - { - $oldLineIndentation = $this->getCurrentLineIndentation(); - - if (!$this->moveToNextLine()) { - return ''; - } - - if (null === $indentation) { - $newIndent = null; - $movements = 0; - - do { - $EOF = false; - - // empty and comment-like lines do not influence the indentation depth - if ($this->isCurrentLineEmpty() || $this->isCurrentLineComment()) { - $EOF = !$this->moveToNextLine(); - - if (!$EOF) { - ++$movements; - } - } else { - $newIndent = $this->getCurrentLineIndentation(); - } - } while (!$EOF && null === $newIndent); - - for ($i = 0; $i < $movements; ++$i) { - $this->moveToPreviousLine(); - } - - $unindentedEmbedBlock = $this->isStringUnIndentedCollectionItem(); - - if (!$this->isCurrentLineEmpty() && 0 === $newIndent && !$unindentedEmbedBlock) { - throw new ParseException('Indentation problem.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename); - } - } else { - $newIndent = $indentation; - } - - $data = []; - if ($this->getCurrentLineIndentation() >= $newIndent) { - $data[] = substr($this->currentLine, $newIndent); - } elseif ($this->isCurrentLineEmpty() || $this->isCurrentLineComment()) { - $data[] = $this->currentLine; - } else { - $this->moveToPreviousLine(); - - return ''; - } - - if ($inSequence && $oldLineIndentation === $newIndent && isset($data[0][0]) && '-' === $data[0][0]) { - // the previous line contained a dash but no item content, this line is a sequence item with the same indentation - // and therefore no nested list or mapping - $this->moveToPreviousLine(); - - return ''; - } - - $isItUnindentedCollection = $this->isStringUnIndentedCollectionItem(); - - while ($this->moveToNextLine()) { - $indent = $this->getCurrentLineIndentation(); - - if ($isItUnindentedCollection && !$this->isCurrentLineEmpty() && !$this->isStringUnIndentedCollectionItem() && $newIndent === $indent) { - $this->moveToPreviousLine(); - break; - } - - if ($this->isCurrentLineBlank()) { - $data[] = substr($this->currentLine, $newIndent); - continue; - } - - if ($indent >= $newIndent) { - $data[] = substr($this->currentLine, $newIndent); - } elseif ($this->isCurrentLineComment()) { - $data[] = $this->currentLine; - } elseif (0 == $indent) { - $this->moveToPreviousLine(); - - break; - } else { - throw new ParseException('Indentation problem.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename); - } - } - - return implode("\n", $data); - } - - /** - * Moves the parser to the next line. - */ - private function moveToNextLine(): bool - { - if ($this->currentLineNb >= \count($this->lines) - 1) { - return false; - } - - $this->currentLine = $this->lines[++$this->currentLineNb]; - - return true; - } - - /** - * Moves the parser to the previous line. - */ - private function moveToPreviousLine(): bool - { - if ($this->currentLineNb < 1) { - return false; - } - - $this->currentLine = $this->lines[--$this->currentLineNb]; - - return true; - } - - /** - * Parses a YAML value. - * - * @param string $value A YAML value - * @param int $flags A bit field of PARSE_* constants to customize the YAML parser behavior - * @param string $context The parser context (either sequence or mapping) - * - * @return mixed A PHP value - * - * @throws ParseException When reference does not exist - */ - private function parseValue(string $value, int $flags, string $context) - { - if (0 === strpos($value, '*')) { - if (false !== $pos = strpos($value, '#')) { - $value = substr($value, 1, $pos - 2); - } else { - $value = substr($value, 1); - } - - if (!\array_key_exists($value, $this->refs)) { - if (false !== $pos = array_search($value, $this->refsBeingParsed, true)) { - throw new ParseException(sprintf('Circular reference [%s, %s] detected for reference "%s".', implode(', ', \array_slice($this->refsBeingParsed, $pos)), $value, $value), $this->currentLineNb + 1, $this->currentLine, $this->filename); - } - - throw new ParseException(sprintf('Reference "%s" does not exist.', $value), $this->currentLineNb + 1, $this->currentLine, $this->filename); - } - - return $this->refs[$value]; - } - - if (\in_array($value[0], ['!', '|', '>'], true) && self::preg_match('/^(?:'.self::TAG_PATTERN.' +)?'.self::BLOCK_SCALAR_HEADER_PATTERN.'$/', $value, $matches)) { - $modifiers = isset($matches['modifiers']) ? $matches['modifiers'] : ''; - - $data = $this->parseBlockScalar($matches['separator'], preg_replace('#\d+#', '', $modifiers), (int) abs((int) $modifiers)); - - if ('' !== $matches['tag'] && '!' !== $matches['tag']) { - if ('!!binary' === $matches['tag']) { - return Inline::evaluateBinaryScalar($data); - } - - return new TaggedValue(substr($matches['tag'], 1), $data); - } - - return $data; - } - - try { - if ('' !== $value && '{' === $value[0]) { - return Inline::parse($this->lexInlineMapping($value), $flags, $this->refs); - } elseif ('' !== $value && '[' === $value[0]) { - return Inline::parse($this->lexInlineSequence($value), $flags, $this->refs); - } - - $quotation = '' !== $value && ('"' === $value[0] || "'" === $value[0]) ? $value[0] : null; - - // do not take following lines into account when the current line is a quoted single line value - if (null !== $quotation && self::preg_match('/^'.$quotation.'.*'.$quotation.'(\s*#.*)?$/', $value)) { - return Inline::parse($value, $flags, $this->refs); - } - - $lines = []; - - while ($this->moveToNextLine()) { - // unquoted strings end before the first unindented line - if (null === $quotation && 0 === $this->getCurrentLineIndentation()) { - $this->moveToPreviousLine(); - - break; - } - - $lines[] = trim($this->currentLine); - - // quoted string values end with a line that is terminated with the quotation character - if ('' !== $this->currentLine && substr($this->currentLine, -1) === $quotation) { - break; - } - } - - for ($i = 0, $linesCount = \count($lines), $previousLineBlank = false; $i < $linesCount; ++$i) { - if ('' === $lines[$i]) { - $value .= "\n"; - $previousLineBlank = true; - } elseif ($previousLineBlank) { - $value .= $lines[$i]; - $previousLineBlank = false; - } else { - $value .= ' '.$lines[$i]; - $previousLineBlank = false; - } - } - - Inline::$parsedLineNumber = $this->getRealCurrentLineNb(); - - $parsedValue = Inline::parse($value, $flags, $this->refs); - - if ('mapping' === $context && \is_string($parsedValue) && '"' !== $value[0] && "'" !== $value[0] && '[' !== $value[0] && '{' !== $value[0] && '!' !== $value[0] && false !== strpos($parsedValue, ': ')) { - throw new ParseException('A colon cannot be used in an unquoted mapping value.', $this->getRealCurrentLineNb() + 1, $value, $this->filename); - } - - return $parsedValue; - } catch (ParseException $e) { - $e->setParsedLine($this->getRealCurrentLineNb() + 1); - $e->setSnippet($this->currentLine); - - throw $e; - } - } - - /** - * Parses a block scalar. - * - * @param string $style The style indicator that was used to begin this block scalar (| or >) - * @param string $chomping The chomping indicator that was used to begin this block scalar (+ or -) - * @param int $indentation The indentation indicator that was used to begin this block scalar - */ - private function parseBlockScalar(string $style, string $chomping = '', int $indentation = 0): string - { - $notEOF = $this->moveToNextLine(); - if (!$notEOF) { - return ''; - } - - $isCurrentLineBlank = $this->isCurrentLineBlank(); - $blockLines = []; - - // leading blank lines are consumed before determining indentation - while ($notEOF && $isCurrentLineBlank) { - // newline only if not EOF - if ($notEOF = $this->moveToNextLine()) { - $blockLines[] = ''; - $isCurrentLineBlank = $this->isCurrentLineBlank(); - } - } - - // determine indentation if not specified - if (0 === $indentation) { - $currentLineLength = \strlen($this->currentLine); - - for ($i = 0; $i < $currentLineLength && ' ' === $this->currentLine[$i]; ++$i) { - ++$indentation; - } - } - - if ($indentation > 0) { - $pattern = sprintf('/^ {%d}(.*)$/', $indentation); - - while ( - $notEOF && ( - $isCurrentLineBlank || - self::preg_match($pattern, $this->currentLine, $matches) - ) - ) { - if ($isCurrentLineBlank && \strlen($this->currentLine) > $indentation) { - $blockLines[] = substr($this->currentLine, $indentation); - } elseif ($isCurrentLineBlank) { - $blockLines[] = ''; - } else { - $blockLines[] = $matches[1]; - } - - // newline only if not EOF - if ($notEOF = $this->moveToNextLine()) { - $isCurrentLineBlank = $this->isCurrentLineBlank(); - } - } - } elseif ($notEOF) { - $blockLines[] = ''; - } - - if ($notEOF) { - $blockLines[] = ''; - $this->moveToPreviousLine(); - } elseif (!$notEOF && !$this->isCurrentLineLastLineInDocument()) { - $blockLines[] = ''; - } - - // folded style - if ('>' === $style) { - $text = ''; - $previousLineIndented = false; - $previousLineBlank = false; - - for ($i = 0, $blockLinesCount = \count($blockLines); $i < $blockLinesCount; ++$i) { - if ('' === $blockLines[$i]) { - $text .= "\n"; - $previousLineIndented = false; - $previousLineBlank = true; - } elseif (' ' === $blockLines[$i][0]) { - $text .= "\n".$blockLines[$i]; - $previousLineIndented = true; - $previousLineBlank = false; - } elseif ($previousLineIndented) { - $text .= "\n".$blockLines[$i]; - $previousLineIndented = false; - $previousLineBlank = false; - } elseif ($previousLineBlank || 0 === $i) { - $text .= $blockLines[$i]; - $previousLineIndented = false; - $previousLineBlank = false; - } else { - $text .= ' '.$blockLines[$i]; - $previousLineIndented = false; - $previousLineBlank = false; - } - } - } else { - $text = implode("\n", $blockLines); - } - - // deal with trailing newlines - if ('' === $chomping) { - $text = preg_replace('/\n+$/', "\n", $text); - } elseif ('-' === $chomping) { - $text = preg_replace('/\n+$/', '', $text); - } - - return $text; - } - - /** - * Returns true if the next line is indented. - * - * @return bool Returns true if the next line is indented, false otherwise - */ - private function isNextLineIndented(): bool - { - $currentIndentation = $this->getCurrentLineIndentation(); - $movements = 0; - - do { - $EOF = !$this->moveToNextLine(); - - if (!$EOF) { - ++$movements; - } - } while (!$EOF && ($this->isCurrentLineEmpty() || $this->isCurrentLineComment())); - - if ($EOF) { - return false; - } - - $ret = $this->getCurrentLineIndentation() > $currentIndentation; - - for ($i = 0; $i < $movements; ++$i) { - $this->moveToPreviousLine(); - } - - return $ret; - } - - /** - * Returns true if the current line is blank or if it is a comment line. - * - * @return bool Returns true if the current line is empty or if it is a comment line, false otherwise - */ - private function isCurrentLineEmpty(): bool - { - return $this->isCurrentLineBlank() || $this->isCurrentLineComment(); - } - - /** - * Returns true if the current line is blank. - * - * @return bool Returns true if the current line is blank, false otherwise - */ - private function isCurrentLineBlank(): bool - { - return '' == trim($this->currentLine, ' '); - } - - /** - * Returns true if the current line is a comment line. - * - * @return bool Returns true if the current line is a comment line, false otherwise - */ - private function isCurrentLineComment(): bool - { - //checking explicitly the first char of the trim is faster than loops or strpos - $ltrimmedLine = ltrim($this->currentLine, ' '); - - return '' !== $ltrimmedLine && '#' === $ltrimmedLine[0]; - } - - private function isCurrentLineLastLineInDocument(): bool - { - return ($this->offset + $this->currentLineNb) >= ($this->totalNumberOfLines - 1); - } - - /** - * Cleanups a YAML string to be parsed. - * - * @param string $value The input YAML string - * - * @return string A cleaned up YAML string - */ - private function cleanup(string $value): string - { - $value = str_replace(["\r\n", "\r"], "\n", $value); - - // strip YAML header - $count = 0; - $value = preg_replace('#^\%YAML[: ][\d\.]+.*\n#u', '', $value, -1, $count); - $this->offset += $count; - - // remove leading comments - $trimmedValue = preg_replace('#^(\#.*?\n)+#s', '', $value, -1, $count); - if (1 === $count) { - // items have been removed, update the offset - $this->offset += substr_count($value, "\n") - substr_count($trimmedValue, "\n"); - $value = $trimmedValue; - } - - // remove start of the document marker (---) - $trimmedValue = preg_replace('#^\-\-\-.*?\n#s', '', $value, -1, $count); - if (1 === $count) { - // items have been removed, update the offset - $this->offset += substr_count($value, "\n") - substr_count($trimmedValue, "\n"); - $value = $trimmedValue; - - // remove end of the document marker (...) - $value = preg_replace('#\.\.\.\s*$#', '', $value); - } - - return $value; - } - - /** - * Returns true if the next line starts unindented collection. - * - * @return bool Returns true if the next line starts unindented collection, false otherwise - */ - private function isNextLineUnIndentedCollection(): bool - { - $currentIndentation = $this->getCurrentLineIndentation(); - $movements = 0; - - do { - $EOF = !$this->moveToNextLine(); - - if (!$EOF) { - ++$movements; - } - } while (!$EOF && ($this->isCurrentLineEmpty() || $this->isCurrentLineComment())); - - if ($EOF) { - return false; - } - - $ret = $this->getCurrentLineIndentation() === $currentIndentation && $this->isStringUnIndentedCollectionItem(); - - for ($i = 0; $i < $movements; ++$i) { - $this->moveToPreviousLine(); - } - - return $ret; - } - - /** - * Returns true if the string is un-indented collection item. - * - * @return bool Returns true if the string is un-indented collection item, false otherwise - */ - private function isStringUnIndentedCollectionItem(): bool - { - return '-' === rtrim($this->currentLine) || 0 === strpos($this->currentLine, '- '); - } - - /** - * A local wrapper for "preg_match" which will throw a ParseException if there - * is an internal error in the PCRE engine. - * - * This avoids us needing to check for "false" every time PCRE is used - * in the YAML engine - * - * @throws ParseException on a PCRE internal error - * - * @see preg_last_error() - * - * @internal - */ - public static function preg_match(string $pattern, string $subject, array &$matches = null, int $flags = 0, int $offset = 0): int - { - if (false === $ret = preg_match($pattern, $subject, $matches, $flags, $offset)) { - switch (preg_last_error()) { - case PREG_INTERNAL_ERROR: - $error = 'Internal PCRE error.'; - break; - case PREG_BACKTRACK_LIMIT_ERROR: - $error = 'pcre.backtrack_limit reached.'; - break; - case PREG_RECURSION_LIMIT_ERROR: - $error = 'pcre.recursion_limit reached.'; - break; - case PREG_BAD_UTF8_ERROR: - $error = 'Malformed UTF-8 data.'; - break; - case PREG_BAD_UTF8_OFFSET_ERROR: - $error = 'Offset doesn\'t correspond to the begin of a valid UTF-8 code point.'; - break; - default: - $error = 'Error.'; - } - - throw new ParseException($error); - } - - return $ret; - } - - /** - * Trim the tag on top of the value. - * - * Prevent values such as "!foo {quz: bar}" to be considered as - * a mapping block. - */ - private function trimTag(string $value): string - { - if ('!' === $value[0]) { - return ltrim(substr($value, 1, strcspn($value, " \r\n", 1)), ' '); - } - - return $value; - } - - private function getLineTag(string $value, int $flags, bool $nextLineCheck = true): ?string - { - if ('' === $value || '!' !== $value[0] || 1 !== self::preg_match('/^'.self::TAG_PATTERN.' *( +#.*)?$/', $value, $matches)) { - return null; - } - - if ($nextLineCheck && !$this->isNextLineIndented()) { - return null; - } - - $tag = substr($matches['tag'], 1); - - // Built-in tags - if ($tag && '!' === $tag[0]) { - throw new ParseException(sprintf('The built-in tag "!%s" is not implemented.', $tag), $this->getRealCurrentLineNb() + 1, $value, $this->filename); - } - - if (Yaml::PARSE_CUSTOM_TAGS & $flags) { - return $tag; - } - - throw new ParseException(sprintf('Tags support is not enabled. You must use the flag "Yaml::PARSE_CUSTOM_TAGS" to use "%s".', $matches['tag']), $this->getRealCurrentLineNb() + 1, $value, $this->filename); - } - - private function parseQuotedString(string $yaml): ?string - { - if ('' === $yaml || ('"' !== $yaml[0] && "'" !== $yaml[0])) { - throw new \InvalidArgumentException(sprintf('"%s" is not a quoted string.', $yaml)); - } - - $lines = [$yaml]; - - while ($this->moveToNextLine()) { - $lines[] = $this->currentLine; - - if (!$this->isCurrentLineEmpty() && $yaml[0] === $this->currentLine[-1]) { - break; - } - } - - $value = ''; - - for ($i = 0, $linesCount = \count($lines), $previousLineWasNewline = false, $previousLineWasTerminatedWithBackslash = false; $i < $linesCount; ++$i) { - if ('' === trim($lines[$i])) { - $value .= "\n"; - } elseif (!$previousLineWasNewline && !$previousLineWasTerminatedWithBackslash) { - $value .= ' '; - } - - if ('' !== trim($lines[$i]) && '\\' === substr($lines[$i], -1)) { - $value .= ltrim(substr($lines[$i], 0, -1)); - } elseif ('' !== trim($lines[$i])) { - $value .= trim($lines[$i]); - } - - if ('' === trim($lines[$i])) { - $previousLineWasNewline = true; - $previousLineWasTerminatedWithBackslash = false; - } elseif ('\\' === substr($lines[$i], -1)) { - $previousLineWasNewline = false; - $previousLineWasTerminatedWithBackslash = true; - } else { - $previousLineWasNewline = false; - $previousLineWasTerminatedWithBackslash = false; - } - } - - return $value; - - for ($i = 1; isset($yaml[$i]) && $quotation !== $yaml[$i]; ++$i) { - } - - // quoted single line string - if (isset($yaml[$i]) && $quotation === $yaml[$i]) { - return $yaml; - } - - $lines = [$yaml]; - - while ($this->moveToNextLine()) { - for ($i = 1; isset($this->currentLine[$i]) && $quotation !== $this->currentLine[$i]; ++$i) { - } - - $lines[] = trim($this->currentLine); - - if (isset($this->currentLine[$i]) && $quotation === $this->currentLine[$i]) { - break; - } - } - } - - private function lexInlineMapping(string $yaml): string - { - if ('' === $yaml || '{' !== $yaml[0]) { - throw new \InvalidArgumentException(sprintf('"%s" is not a sequence.', $yaml)); - } - - for ($i = 1; isset($yaml[$i]) && '}' !== $yaml[$i]; ++$i) { - } - - if (isset($yaml[$i]) && '}' === $yaml[$i]) { - return $yaml; - } - - $lines = [$yaml]; - - while ($this->moveToNextLine()) { - $lines[] = $this->currentLine; - } - - return implode("\n", $lines); - } - - private function lexInlineSequence(string $yaml): string - { - if ('' === $yaml || '[' !== $yaml[0]) { - throw new \InvalidArgumentException(sprintf('"%s" is not a sequence.', $yaml)); - } - - for ($i = 1; isset($yaml[$i]) && ']' !== $yaml[$i]; ++$i) { - } - - if (isset($yaml[$i]) && ']' === $yaml[$i]) { - return $yaml; - } - - $value = $yaml; - - while ($this->moveToNextLine()) { - for ($i = 1; isset($this->currentLine[$i]) && ']' !== $this->currentLine[$i]; ++$i) { - } - - $value .= trim($this->currentLine); - - if (isset($this->currentLine[$i]) && ']' === $this->currentLine[$i]) { - break; - } - } - - return $value; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/yaml/README.md b/srcs/phpmyadmin/vendor/symfony/yaml/README.md deleted file mode 100644 index 0d32488..0000000 --- a/srcs/phpmyadmin/vendor/symfony/yaml/README.md +++ /dev/null @@ -1,13 +0,0 @@ -Yaml Component -============== - -The Yaml component loads and dumps YAML files. - -Resources ---------- - - * [Documentation](https://symfony.com/doc/current/components/yaml/index.html) - * [Contributing](https://symfony.com/doc/current/contributing/index.html) - * [Report issues](https://github.com/symfony/symfony/issues) and - [send Pull Requests](https://github.com/symfony/symfony/pulls) - in the [main Symfony repository](https://github.com/symfony/symfony) diff --git a/srcs/phpmyadmin/vendor/symfony/yaml/Tag/TaggedValue.php b/srcs/phpmyadmin/vendor/symfony/yaml/Tag/TaggedValue.php deleted file mode 100644 index 4ea3406..0000000 --- a/srcs/phpmyadmin/vendor/symfony/yaml/Tag/TaggedValue.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Yaml\Tag; - -/** - * @author Nicolas Grekas - * @author Guilhem N. - */ -final class TaggedValue -{ - private $tag; - private $value; - - public function __construct(string $tag, $value) - { - $this->tag = $tag; - $this->value = $value; - } - - public function getTag(): string - { - return $this->tag; - } - - public function getValue() - { - return $this->value; - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/yaml/Unescaper.php b/srcs/phpmyadmin/vendor/symfony/yaml/Unescaper.php deleted file mode 100644 index 9c3a19e..0000000 --- a/srcs/phpmyadmin/vendor/symfony/yaml/Unescaper.php +++ /dev/null @@ -1,138 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Yaml; - -use Symfony\Component\Yaml\Exception\ParseException; - -/** - * Unescaper encapsulates unescaping rules for single and double-quoted - * YAML strings. - * - * @author Matthew Lewinski - * - * @internal - */ -class Unescaper -{ - /** - * Regex fragment that matches an escaped character in a double quoted string. - */ - const REGEX_ESCAPED_CHARACTER = '\\\\(x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8}|.)'; - - /** - * Unescapes a single quoted string. - * - * @param string $value A single quoted string - * - * @return string The unescaped string - */ - public function unescapeSingleQuotedString(string $value): string - { - return str_replace('\'\'', '\'', $value); - } - - /** - * Unescapes a double quoted string. - * - * @param string $value A double quoted string - * - * @return string The unescaped string - */ - public function unescapeDoubleQuotedString(string $value): string - { - $callback = function ($match) { - return $this->unescapeCharacter($match[0]); - }; - - // evaluate the string - return preg_replace_callback('/'.self::REGEX_ESCAPED_CHARACTER.'/u', $callback, $value); - } - - /** - * Unescapes a character that was found in a double-quoted string. - * - * @param string $value An escaped character - * - * @return string The unescaped character - */ - private function unescapeCharacter(string $value): string - { - switch ($value[1]) { - case '0': - return "\x0"; - case 'a': - return "\x7"; - case 'b': - return "\x8"; - case 't': - return "\t"; - case "\t": - return "\t"; - case 'n': - return "\n"; - case 'v': - return "\xB"; - case 'f': - return "\xC"; - case 'r': - return "\r"; - case 'e': - return "\x1B"; - case ' ': - return ' '; - case '"': - return '"'; - case '/': - return '/'; - case '\\': - return '\\'; - case 'N': - // U+0085 NEXT LINE - return "\xC2\x85"; - case '_': - // U+00A0 NO-BREAK SPACE - return "\xC2\xA0"; - case 'L': - // U+2028 LINE SEPARATOR - return "\xE2\x80\xA8"; - case 'P': - // U+2029 PARAGRAPH SEPARATOR - return "\xE2\x80\xA9"; - case 'x': - return self::utf8chr(hexdec(substr($value, 2, 2))); - case 'u': - return self::utf8chr(hexdec(substr($value, 2, 4))); - case 'U': - return self::utf8chr(hexdec(substr($value, 2, 8))); - default: - throw new ParseException(sprintf('Found unknown escape character "%s".', $value)); - } - } - - /** - * Get the UTF-8 character for the given code point. - */ - private static function utf8chr(int $c): string - { - if (0x80 > $c %= 0x200000) { - return \chr($c); - } - if (0x800 > $c) { - return \chr(0xC0 | $c >> 6).\chr(0x80 | $c & 0x3F); - } - if (0x10000 > $c) { - return \chr(0xE0 | $c >> 12).\chr(0x80 | $c >> 6 & 0x3F).\chr(0x80 | $c & 0x3F); - } - - return \chr(0xF0 | $c >> 18).\chr(0x80 | $c >> 12 & 0x3F).\chr(0x80 | $c >> 6 & 0x3F).\chr(0x80 | $c & 0x3F); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/yaml/Yaml.php b/srcs/phpmyadmin/vendor/symfony/yaml/Yaml.php deleted file mode 100644 index 4efceb3..0000000 --- a/srcs/phpmyadmin/vendor/symfony/yaml/Yaml.php +++ /dev/null @@ -1,102 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Yaml; - -use Symfony\Component\Yaml\Exception\ParseException; - -/** - * Yaml offers convenience methods to load and dump YAML. - * - * @author Fabien Potencier - * - * @final - */ -class Yaml -{ - const DUMP_OBJECT = 1; - const PARSE_EXCEPTION_ON_INVALID_TYPE = 2; - const PARSE_OBJECT = 4; - const PARSE_OBJECT_FOR_MAP = 8; - const DUMP_EXCEPTION_ON_INVALID_TYPE = 16; - const PARSE_DATETIME = 32; - const DUMP_OBJECT_AS_MAP = 64; - const DUMP_MULTI_LINE_LITERAL_BLOCK = 128; - const PARSE_CONSTANT = 256; - const PARSE_CUSTOM_TAGS = 512; - const DUMP_EMPTY_ARRAY_AS_SEQUENCE = 1024; - const DUMP_NULL_AS_TILDE = 2048; - - /** - * Parses a YAML file into a PHP value. - * - * Usage: - * - * $array = Yaml::parseFile('config.yml'); - * print_r($array); - * - * @param string $filename The path to the YAML file to be parsed - * @param int $flags A bit field of PARSE_* constants to customize the YAML parser behavior - * - * @return mixed The YAML converted to a PHP value - * - * @throws ParseException If the file could not be read or the YAML is not valid - */ - public static function parseFile(string $filename, int $flags = 0) - { - $yaml = new Parser(); - - return $yaml->parseFile($filename, $flags); - } - - /** - * Parses YAML into a PHP value. - * - * Usage: - * - * $array = Yaml::parse(file_get_contents('config.yml')); - * print_r($array); - * - * - * @param string $input A string containing YAML - * @param int $flags A bit field of PARSE_* constants to customize the YAML parser behavior - * - * @return mixed The YAML converted to a PHP value - * - * @throws ParseException If the YAML is not valid - */ - public static function parse(string $input, int $flags = 0) - { - $yaml = new Parser(); - - return $yaml->parse($input, $flags); - } - - /** - * Dumps a PHP value to a YAML string. - * - * The dump method, when supplied with an array, will do its best - * to convert the array into friendly YAML. - * - * @param mixed $input The PHP value - * @param int $inline The level where you switch to inline YAML - * @param int $indent The amount of spaces to use for indentation of nested nodes - * @param int $flags A bit field of DUMP_* constants to customize the dumped YAML string - * - * @return string A YAML string representing the original PHP value - */ - public static function dump($input, int $inline = 2, int $indent = 4, int $flags = 0): string - { - $yaml = new Dumper($indent); - - return $yaml->dump($input, $inline, 0, $flags); - } -} diff --git a/srcs/phpmyadmin/vendor/symfony/yaml/composer.json b/srcs/phpmyadmin/vendor/symfony/yaml/composer.json deleted file mode 100644 index 407b297..0000000 --- a/srcs/phpmyadmin/vendor/symfony/yaml/composer.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "symfony/yaml", - "type": "library", - "description": "Symfony Yaml Component", - "keywords": [], - "homepage": "https://symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "require": { - "php": "^7.1.3", - "symfony/polyfill-ctype": "~1.8" - }, - "require-dev": { - "symfony/console": "^3.4|^4.0|^5.0" - }, - "conflict": { - "symfony/console": "<3.4" - }, - "suggest": { - "symfony/console": "For validating YAML files using the lint command" - }, - "autoload": { - "psr-4": { "Symfony\\Component\\Yaml\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - } -} diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/CHANGELOG.TXT b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/CHANGELOG.TXT deleted file mode 100644 index 3bdae3e..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/CHANGELOG.TXT +++ /dev/null @@ -1,2961 +0,0 @@ -6.2.25 - - Fix support for image URLs. - -6.2.24 - - Support remote urls when checking if file exists. - -6.2.23 - - Simplify file_exists function. - -6.2.22 - - Fix for security vulnerability: Using the phar:// wrapper it was possible to trigger the unserialization of user provided data. - -6.2.19 - - Merge various fixes for PHP 7.3 compatibility and security. - -6.2.13 (2016-06-10) - - IMPORTANT: A new version of this library is under development at https://github.com/tecnickcom/tc-lib-pdf and as a consequence this version will not receive any additional development or support. This version should be considered obsolete, new projects should use the new version as soon it will become stable. - -6.2.12 (2015-09-12) - - fix composer package name to tecnickcom/tcpdf - -6.2.11 (2015-08-02) - - Bug #1070 "PNG regression in 6.2.9 (they appear as their alpha channel)" was fixed. - - Bug #1069 "Encoded SRC URLs in tags don't work anymore" was fixed. - -6.2.10 (2015-07-28) - - Minor mod to PNG parsing. - - Make dependency on mcrypt optional. - -6.2.8 (2015-04-29) - - Removed unwanted file. - -6.2.7 (2015-04-28) - - Merged PR 17: Avoid warning when iterating a non-array variable. - - Merged PR 16: Improve MuliCell param definition. - - Improved column check (PR 15). - - Merged PR 11: Use stream_is_local instead of limit to file://. - - Merged PR 10: ImageMagick link on README.txt. - -6.2.6 (2015-01-28) - - Bug #1008 "UTC offset sing breaks PDF/A-1b compliance" was fixed. - -6.2.5 (2015-01-24) - - Bug #1019 "$this in static context" was fixed. - - Bug #1015 "Infinite loop in getIndirectObject method of parser" was fixed. - -6.2.4 (2015-01-08) - - fix warning related to empty K_PATH_URL. - - fix error when a $table_colwidths key is not set. - -6.2.3 (2014-12-18) - - New comment. - - Moved the K_PATH_IMAGES definition in tcpdf_autoconfig. - -6.2.2 (2014-12-18) - - Fixed mispelled words. - - Fixed version number. - -6.2.1 (2014-12-18) - - The constant K_TCPDF_THROW_EXCEPTION_ERROR is now set to false in the default configuration file. - - An issue with the _destroy() method was fixed. - -6.2.0 (2014-12-10) - - Bug #1005 "Security Report, LFI posting internal files externally abusing default parameter" was fixed. - - Static methods serializeTCPDFtagParameters() and unserializeTCPDFtagParameters() were moved as non static to the main TCPDF class (see changes in example n. 49). - - Deprecated methods were removed, please use the equivalents defined in other classes (i.e. TCPDF_STATIC and TCPDF_FONTS). - - The constant K_TCPDF_CALLS_IN_HTML is now set by default to FALSE. - - DLE, DLX and DLP page format was added. - - Page format are now defined as a public property in TCPDF_STATIC. - -6.1.1 (2014-12-09) - - Fixed bug with the register_shutdown_function(). - -6.1.0 (2014-12-07) - - The method TCPDF_STATIC::getRandomSeed() was improved. - - The disk caching feature was removed. - - Bug #1003 "Backslashes become duplicated in table, using WriteHTML" was fixed. - - Bug #1002 "SVG radialGradient within non-square Rect" was fixed. - -6.0.099 (2014-11-15) - - Added basic support for nested SVG images (adapted PR from SamMousa). - - A bug related to setGDImageTransparency() was fixed (thanks to Maarten Boerema). - -6.0.098 (2014-11-08) - - Bug item #996 "getCharBBox($char) returns incorrect results for TTF glyphs without outlines" was fixed. - - Bug item #991 "Text problem with SVG" was fixed (only the font style part). - -6.0.097 (2014-10-20) - - Bug item #988 "hyphenateText - charmin parameter not work" was fixed. - - New 1D barcode method to print pre-formatted IMB - Intelligent Mail Barcode - Onecode - USPS-B-3200. - -6.0.096 (2014-10-06) - - Bug item #982 "Display style is not inherited in SVG" was fixed. - - Bug item #984 "Double quote url in CSS" was fixed. - -6.0.095 (2014-10-02) - - Bug item #979 "New Timezone option overwriting current timezone" was fixed. - -6.0.094 (2014-09-30) - - Bug item #978 "Variable Undefined: $cborder" was fixed. - -6.0.093 (2014-09-02) - - Security fix: some serialize/unserialize methods were replaced with json_encode/json_decode to avoid a potential object injection with user supplied content. Thanks to ownCloud Inc. for reporting this issue. - - K_TIMEZONE constant was added to the default configuration to suppress date-time warnings. - -6.0.092 (2014-09-01) - - Bug item #956 "Monospaced fonts are not alignd at the baseline" was fixed. - - Bug item #964 "Problem when changing font size" was fixed. - - Bug item #969 "ImageSVG with radialGradient problem" was fixed. - - sRGB.icc file was replaced with the one from the Debian package icc-profiles-free (2.0.1+dfsg-1) - -6.0.091 (2014-08-13) - - Issue #325"Division by zero when css fontsize equals 0" was fixed. - -6.0.090 (2014-08-08) - - Starting from this version TCPDF is also available in GitHub at https://github.com/tecnickcom/TCPDF - - Function getmypid() was removed for better compatibility with shared hosting environments. - - Support for pulling SVG stroke opacity value from RGBa color was mergeg [adf006]. - - Bug item #951 "HTML Table within TCPDF columns doesnt flow correctly on page break ..." was fixed. - -6.0.089 (2014-07-16) - - Bug item #948 "bottom line of rowspan cell not work correctly" was fixed. - -6.0.088 (2014-07-09) - - Bug item #946 "Case sensitive type check causes broken match for SVG" was fixed. - - Bug item #945 "Imagick load doesn't account for passed data string " was fixed. - -6.0.087 (2014-06-25) - - A bug affecting fitcell option in Multicell was fixed. - -6.0.086 (2014-06-20) - - Bug item #938 "Hyphenation-dash extends outside of cell" was fixed (collateral effect). - -6.0.085 (2014-06-19) - - Some example images were replaced. - - A race condition bug was fixed. - - Bug item #938 "Hyphenation-dash extends outside of cell" was fixed. - -6.0.084 (2014-06-13) - - A bug related to MultiCell fitcell feature was fixed. - - Bug item #931 "Documentation error for setPageFormat()" was fixed. - -6.0.083 (2014-05-29) - - Bug item #928 "setHtmlVSpace with HR element" was fixed. - -6.0.082 (2014-05-23) - - Bug item #926 "test statement instead of assignment used in tcpdf_fonts.php" was fixed. - - Bug item #925 "924 transparent images bug" was fixed. - -6.0.081 (2014-05-22) - - Bug item #922 "writehtml tables thead repeating" was fixed. - - Patch #71 "External and internal links, local and remote" wa applied. - -6.0.080 (2014-05-20) - - Bug item #921 "Fatal error in hyphenateText() function" was fixed. - - Bug item #923 "Automatic Hyphenation error" was fixed. - - Patch #70 "Augument TCPDFBarcode classes with ability to return raw png image data" was applied. - -6.0.079 (2014-05-19) - - Patch item #69 "Named destinations, HTML internal and external links" was merged. - - Bug item #920 "hyphenateText() should not hyphenate the content of style-tags in HTML mode" was fixed. - - Image method now trigs an error in case the cache is now writeable. - - Fixed issue with layer default status. - -6.0.078 (2014-05-12) - - A warning issue in addTTFfont() method was fixed. - - Fonts were updated to include cbbox metrics. - -6.0.077 (2014-05-06) - - A Datamatrix barcode bug was fixed. - -6.0.076 (2014-05-06) - - A bug in Datamatrix Base256 encoding was fixed. - - Merged fix for SVG use/clip-gradient. - - Now it is possible to prefix a page number in Link methods with the * character to avoid been changed when adding/deleting/moving pages (see example_045.php). - -6.0.075 (2014-05-05) - - Bug #917 "Using realtive Units like ex or em for images distort output in HTML mode" was fixed. - -6.0.074 (2014-05-03) - - Part of Bug #917 "Using realtive Units like ex or em for images distort output in HTML mode" was fixed. - - Bug #915 "Problem with SVG Image using Radial Gradients" was fixed. - -6.0.073 (2014-04-29) - - Bug #913 "Possible bug with line-height" was fixed. - - Bug #914 "MultiCell and FitCell" was fixed. - - Bug #915 "Problem with SVG Image using Radial Gradients" was fixed. - -6.0.072 (2014-04-27) - - Deprecated curly braces substring syntax was replaced with square braces. - -6.0.071 (2014-04-25) - - Bug #911 "error with buffered png pics" was fixed. - -6.0.070 (2014-04-24) - - Bug #910 "An SVG image is being cut off (with clipping mask) when you use align options" was fixed. - -6.0.069 (2014-04-24) - - Datamatrix Base256 encoding was fixed. - -6.0.068 (2014-04-22) - - Some Datamatrix barcode bugs were fixed. - -6.0.067 (2014-04-21) - - startLayer() method signature was changed to include a new "lock" parameter. - -6.0.066 (2014-04-20) - - Bug #908 "Linebreak is not considered when getting length of the next string" was fixed. - -6.0.065 (2014-04-10) - - Bug #905 "RGB percentage color bug in convertHTMLColorToDec()" was fixed. - -6.0.064 (2014-04-07) - - Header and Footer fonts are now set by default. - - Bug #904 "PDF corrupted" was fixed. - -6.0.063 (2014-04-03) - - Method TCPDF_IMAGES::_parsepng() was fixed to support transparency in Indexed images. - -6.0.062 (2014-03-02) - - The method startLayer() now accepts the NULL value for the $print parameter to not set the print layer option. - -6.0.061 (2014-02-18) - - Bug #893 "Parsing error on streamed xref for secured pdf" was fixed. - -6.0.060 (2014-02-16) - - Bug #891 "Error on parsing hexa fields" was fixed. - - Bug #892 "Parsing pdf with trailing space at start" was fixed. - -6.0.059 (2014-02-03) - - SVG 'use' support was imporved. - -6.0.058 (2014-01-31) - - Bug #886 "Bugs with SVG using and " was fixed. - -6.0.057 (2014-01-26) - - Bug #883 "Parsing error" was fixed. - -6.0.056 (2014-01-25) - - The automatic cache folder selection now works also with some restricted hosting environments. - - CSS text-transform property is now supported (requires the multibyte string library for php) - see examle n. 061 (Thanks to Walter Ferraz). - - Bug #884 "Parsing error prev tag looking for" was fixed. - -6.0.055 (2014-01-15) - - Bug #880 "Error detecting hX tags (h1,h2..)" was fixed - - Bug #879 "Thead on the second page inherits style of previous tr" was fixed - -6.0.054 (2014-01-13) - - Bug #877 "Parenteses causing corrupt text" was fixed. - -6.0.053 (2014-01-03) - - Bug #876 "Cell padding should not be multiplied with number of lines in getStringHeight" was fixed. - - Patch #68 "Empty img src attribute leads to access of uninitialized string offset" was applied. - -6.0.052 (2013-12-12) - - Bug #871 "Datamatrix coding" was fixed. - -6.0.051 (2013-12-02) - - cbbox array values in addTTFfont() were converted to integers. - -6.0.050 (2013-12-01) - - The method getNumLines() was extended to support hyphenation. - - The CSS property line-height now supports non percentage values. - -6.0.050 (2013-11-27) - - A bug related to PNG images was fixed. - -6.0.048 (2013-11-24) - - SVG vars are now reset in ImageSVG() method. - -6.0.047 (2013-11-19) - - SVG support was extended to support some nested defs. - -6.0.046 (2013-11-17) - - preg_replace_callback functions were replaced to improve memory performances. - -6.0.045 (2013-11-17) - - Bug #862 "Parsing error on flate filter" was fixed. - -6.0.044 (2013-11-10) - - Bug #857 "Undefined offset error" was fixed. - - The uniord method now uses a static cache to improve performances (thanks to Mathieu Masseboeuf for the sugegstion). - - Two bugs in the TCPDF_FONTS class were fixed. - -6.0.043 (2013-10-29) - - Bug #854 "CSS instruction display" was fixed. - -6.0.042 (2013-10-25) - - Bug #852 "CMYK Colors Bug" was fixed. - -6.0.041 (2013-10-21) - - Bug #851 "Problem with images in PDF. PHP timing out" was fixed. - -6.0.040 (2013-10-20) - - Bug #849 "SVG import bug" was fixed. - -6.0.039 (2013-10-13) - - Bug #843 "Wrong call in parser" was fixed. - - Bug #844 "Wrong object type named" was fixed. - - Bug #845 "Parsing error on obj ref prefixed by '000000'" was fixed. - -6.0.038 (2013-10-06) - - Bug #841 "Division by zero warning at writeHTML a
  • tag" was fixed. - -6.0.037 (2013-09-30) - - Method getAllSpotColors() was added to return all spot colors. - - Method colorRegistrationBar() was extended to automatically print all spot colors and support individual spot colors. - - The method registrationMarkCMYK() was added to print a registration mark for CMYK colors. - - A bug related to page groups was fixed. - - Gradient() method now supports CMYK equivalents of spot colors. - - Example n. 56 was updated. - -6.0.036 (2013-09-29) - - Methods for registration bars and crop marks were extended to support registration color (see example n. 56). - - New default spot colors were added to tcpdf_colors.php, including the 'All' and 'None' special registration colors. - -6.0.035 (2013-09-25) - - TCPDF_PARSER class was improved. - -6.0.034 (2013-09-24) - - Bug #839 "Error in xref parsing in mixed newline chars" was fixed. - -6.0.033 (2013-09-23) - - Bug fix related to PNG image transparency using GD library. - -6.0.032 (2013-09-23) - - Bug #838 "Fatal error when imagick cannot handle the image, even though GD is available and can" was fixed. - -6.0.031 (2013-09-18) - - Bug #836 "Optional EOL marker before endstream" was fixed. - - Some additional controls were added to avoid "division by zero" error with badly formatted input. - -6.0.030 (2013-09-17) - - Bug #835 "PDF417 and Cyrilic simbols" was fixed. - -6.0.029 (2013-09-15) - - Constants K_TCPDF_PARSER_THROW_EXCEPTION_ERROR and K_TCPDF_PARSER_IGNORE_DECODING_ERRORS where removed in favor of a new configuration array in the TCPDF_PARSER class. - - The TCPDF_PARSER class can now be configured using the new $cfg parameter. - -6.0.028 (2013-09-15) - - A debug print_r was removed form tcpdf_parser.php. - - TCPDF_FILTERS class now throws an exception in case of error. - - TCPDF_PARSER class now throws an exception in case of error unless you define the constant K_TCPDF_PARSER_THROW_EXCEPTION_ERROR to false. - - The constant K_TCPDF_PARSER_IGNORE_DECODING_ERRORS can be set to tru eto ignore decoding errors on TCPDF_PARSER. - -6.0.027 (2013-09-14) - - A bug in tcpdf_parser wen parsing hexadecimal strings was fixed. - - A bug in tcpdf_parser wen looking for statxref was fixed. - - A bug on RC4 encryption was fixed. - -6.0.026 (2013-09-14) - - A bug in tcpdf_parser wen decoding streams was fixed. - -6.0.025 (2013-09-04) - - A pregSplit() bug was fixed. - - Improved content loading from URLs. - - Improved font path loading. - -6.0.024 (2013-09-02) - - Bug #826 "addEmptySignatureAppearance issue" was fixed. - -6.0.023 (2013-08-05) - - GNU Freefont fonts were updated. - - Licensing and copyright information about fonts were improved. - - PNG image support was improved. - -6.0.022 (2013-08-02) - - fixing initialization problem for signature_appearance property. - -6.0.021 (2013-07-18) - - The bug caused by the preg_split function on some PHP 5.2.x versions was fixed. - -6.0.020 (2013-06-04) - - The method addTTFfont() was fixed (Bug item #813 Undefined offset). - -6.0.019 (2013-06-04) - - The magic constant __DIR__ was replaced with dirname(__FILE__) for php 5.2 compatibility. - - The exceptions raised by file_exists() function were suppressed. - -6.0.018 (2013-05-19) - - The barcode examples were changed to automatically search for the barcode class path (in case the examples directory is not installed under the TCPDF root). - -6.0.017 (2013-05-16) - - The command line tool tcpdf_addfont.php was improved. - - The php logic was removed from configuration files that now contains only constant defines. - - The tcpdf_autoconfig.php file was added to automatically set missing configuration values. - -6.0.016 (2013-05-15) - - The tcpdf_addfont.php tool was improved (thanks to Remi Collet). - - Constant K_PATH_IMAGES is now automatically set in configuration file. - -6.0.015 (2013-05-14) - - Some unused vars were removed from AddFont() method. - - Some directories were moved inside the examples directory. - - All examples were updated to reflect the new default structure. - - Source code were clean-up up to be more compatible with system packaging. - - Files encodings and permissions were reset. - - The command line tool tcpdf_addfont.php was added on the tools directory. - -6.0.014 (2013-04-13) - - The signature of addTTFfont() method includes a new parameter to link existing fonts instead of copying and compressing them. - -6.0.013 (2013-04-10) - - Add support for SVG dx and dy text/tspan attributes. - - replace require() with require_once(). - - fix some minor typos on documentation. - - fix a problem when deleting all pages. - -6.0.012 (2013-04-24) - - An error condition in addHtmlLink() method was fixed (bug #799). - -6.0.011 (2013-04-22) - - Minor documentation changes. - -6.0.010 (2013-04-03) - - The method Rect() was fixed to print borders correctly. - -6.0.009 (2013-04-02) - - Adding back some files that were not properly committed on the latest release. - -6.0.008 (2013-04-01) - - Duplicated encoding maps was removed from tcpdf_font_data.php. - - Fixing bug on AddTTFFont(). - -6.0.007 (2013-03-29) - - HTML/CSS font size conversion were improved. - -6.0.006 (2013-03-27) - - Bug related to SVG and EPS files on xobjects were fixed. - -6.0.005 (2013-03-26) - - Default font path was fixed. - -6.0.004 (2013-03-21) - - Return value of addTTFfont() method was fixed. - -6.0.003 (2013-03-20) - - A bug related to non-unicode mode was fixed. - -6.0.002 (2013-03-18) - - _getFIXED call on tcpdf_fonts.php was fixed. - -6.0.001 (2013-03-18) - - Fixed $uni_type call on tcpdf.php. - -6.0.000 (2013-03-17) - - IMPORTANT: PHP4 support has been removed starting from this version. - - Several TCPDF methods and vars were moved to new class files: tcpdf_static.php, tcpdf_colors.php, tcpdf_images.php, tcpdf_font_data.php, tcpdf_fonts.php. - - Files htmlcolors.php, spotcolors.php, unicode_data.php and ecodings_maps.php were removed. - - Barcode classes were renamed and new barcode examples were added. - - Class TCPDF_PARSER was improved. - -******************************************************************************** - -5.9.209 (2013-03-15) - - Image method was improved. - -5.9.208 (2013-03-15) - - objclone function was patched to support old imagick extensions. - - tcpdf_parser was improved to support Cross-Reference Streams and large streams. - -5.9.207 (2013-03-04) - - Datamatrix class was fixed (a debug echo was removed). - -5.9.206 (2013-02-22) - - Bug item #754 "PNG with alpha channel becomes gray scale" was fixed. - - Minor documentation fixes. - -5.9.205 (2013-02-06) - - The constant K_TCPDF_THROW_EXCEPTION_ERROR was added on configuration file to change the behavior of Error() method. - - PDF417 barcode bug was fixed. - -5.9.204 (2013-01-23) - - The method Bookmark() was extended to include named destinations, URLs, internal links or embedded files (see example n. 15). - - automatic path calculation on configuration file was fixed. - - Error() method was extended to throw new Exception if PHP > 5. - -5.9.203 (2013-01-22) - - Horizontal position of radiobuttons and checkboxes was adjusted. - -5.9.202 (2012-12-16) - - Vertical space problem after table was fixed. - -5.9.201 (2012-12-10) - - First 256 chars are now always included on font subset to overcome a problem reported on the forum. - -5.9.200 (2012-12-05) - - Bug item #768 "Rowspan with Pagebreak error" was fixed. - - Page regions now works also with limited MultiCell() cells. - -5.9.199 (2012-11-29) - - Internal setImageBuffer() method was improved. - -5.9.198 (2012-11-19) - - Datamatrix EDIFACT mode was fixed. - -5.9.197 (2012-11-06) - - Bug item #756 "TCPDF 5.9.196 shows line on top of all PDFs" was fixed. - -5.9.196 (2012-11-02) - - Several methods were improved to avoid output when the context is out of page. - - Bug item #755 "remove cached files before unsetting" was fixed. - -5.9.195 (2012-10-24) - - Method _putfonts() was improved. - -5.9.194 (2012-10-23) - - Text alignment on TextField() method was fixed. - -5.9.193 (2012-09-25) - - Support for named destinations on HTML links was added (i.e.: link to named destination). - -5.9.192 (2012-09-24) - - A problem on the releasing process was fixed. - -5.9.191 (2012-09-24) - - SVG image naow support svg and eps images. - -5.9.190 (2012-09-23) - - "page" word translation is now set to empty if not defined. - - Tooltip feature was added on the radiobutton annotation. - -5.9.189 (2012-09-18) - - Bug item #3568969 "ini_get safe_mode error" was fixed. - -5.9.188 (2012-09-15) - - A datamatrix barcode bug was fixed. - -5.9.187 (2012-09-14) - - Subset feature was extended to include the first 256 characters. - -5.9.186 (2012-09-13) - - barcodes.php file was resynced. - - Methods SetAbsX, SetAbsY, SetAbsXY where added to set the absolute pointer coordinates. - - Method getCharBBox were added to get single character bounding box. - - Signature of addTTFfont method was changed ($addcbbox parameter was added). - -5.9.185 (2012-09-12) - - Method _putfontwidths() was fixed. - -5.9.184 (2012-09-11) - - A problem with EAN barcodes was fixed. - -5.9.183 (2012-09-07) - - A problem with font names normalization was fixed. - -5.9.182 (2012-09-05) - - Bug item #3564982 "Infinite loop in Write() method" was fixed. - -5.9.181 (2012-08-31) - - composer.json file was added. - - Bug item #3563369 "Cached images are not unlinked some time" was fixed. - -5.9.180 (2012-08-22) - - Bug item #3560493 "Problems with nested cells in HTML" was fixed. - -5.9.179 (2012-08-04) - - SVG 'use' tag was fixed for 'circle' and 'ellipse' shift problem. - - Alpha status is now correctly stored and restored by getGraphicVars() and SetGraphicVars() methods. - -5.9.178 (2012-08-02) - - SVG 'use' tag was fixed for 'circle' and 'ellipse'. - -5.9.177 (2012-08-02) - - An additional control on annotations was fixed. - -5.9.176 (2012-07-25) - - A bug related to stroke width was fixed. - - A problem related to font spacing in HTML was fixed. - -5.9.175 (2012-07-25) - - The problem of missing letter on hyphen break was fixed. - -5.9.174 (2012-07-25) - - The problem of wrong filename when downloading PDF from an Android device was fixed. - - The method setHeaderData() was extended to set text and line color for header (see example n. 1). - - The method setFooterData() was added to set text and line color for footer (see example n. 1). - - The methods setTextShadow() and getTextShadow() were added to set text shadows (see example n. 1). - - The GetCharWidth() method was fixed for negative character spacing. - - A 'none' border mode is now correctly recognized. - - Break on hyphen problem was fixed. - -5.9.173 (2012-07-23) - - Some additional control wher added on barcode methods. - - The option CURLOPT_FOLLOWLOCATION on Image method is now disabled if PHP safe_mode is on or open_basedir is set. - - Method Bookmark() was extended to include X parameter. - - Method setDestination() was extended to include X parameter. - - A problem with Thai language was fixed. - -5.9.172 (2012-07-02) - - A PNG color profile issue was fixed. - -5.9.171 (2012-07-01) - - Some SVG rendering problems were fixed. - -5.9.170 (2012-06-27) - - Bug #3538227 "Numerous errors inserting shared images" was fixed. - -5.9.169 (2012-06-25) - - Some SVG rendering problems were fixed. - -5.9.168 (2012-06-22) - - Thai language rendering was fixed. - -5.9.167 (2012-06-22) - - Thai language rendering was fixed and improved. - - Method isCharDefined() was improved. - - Protected method replaceChar() was added. - - Font "kerning" word was corrected to "tracking". - -5.9.166 (2012-06-21) - - Array to string conversion on file_id creation was fixed. - - Thai language rendering was fixed (thanks to Atsawin Chaowanakritsanakul). - -5.9.165 (2012-06-07) - - Some HTML form related bugs were fixed. - -5.9.164 (2012-06-06) - - A bug introduced on the latest release was fixed. - -5.9.163 (2012-06-05) - - Method getGDgamma() was changed. - - Rendering performances of PNG images with alpha channel were improved. - -5.9.162 (2012-05-11) - - A bug related to long text on TD cells was fixed. - -5.9.161 (2012-05-09) - - A bug on XREF table was fixed (Bug ID: 3525051). - - Deprecated Imagick:clone was replaced. - - Method objclone() was fixed for PHP4. - -5.9.160 (2012-05-03) - - A bug on tcpdf_parser.php was fixed. - -5.9.159 (2012-04-30) - - Barcode classes were updated to fix PNG export Bug (ID: 3522291). - -5.9.158 (2012-04-22) - - Some SVG-related bugs were fixed. - -5.9.157 (2012-04-16) - - Some SVG-related bugs were fixed. - -5.9.156 (2012-04-10) - - Bug item #3515885 "TOC and booklet: left and right page exchanged". - - SetAutoPageBreak(false) now works also in multicolumn mode. - -5.9.155 (2012-04-02) - - Bug item #3512596 "font import problems" was fixed. - - Method addTTFfont() was modified to extract only specified Platform ID and Encoding ID (check the source code documentation). - - All fonts were updated. - - Bug item #3513867 "booklet and setHeaderTemplateAutoreset: header shifted left" was fixed. - - Bug item #3513749 "TCPDF Superscript/Subscript" was fixed. - -5.9.154 (2012-03-29) - - A debug echo was removed. - -5.9.153 (2012-03-28) - - A bug on font conversion was fixed. - - All fonts were updated. - - Method isCharDefined() was added to find if a character is defined on the selected font. - - Method replaceMissingChars() was added to automatically replace missing chars on selected font. - - SetFont() method was fixed. - -5.9.152 (2012-03-23) - - The following overprint methods were added: setOverprint(), getOverprint(). - - Signature of setAlpha() method was changed and method getAlpha() was added. - - stroke-opacity support was added on SVG. - - The following date methods were added: setDocCreationTimestamp(), setDocModificationTimestamp(), getDocCreationTimestamp(), getDocModificationTimestamp(), getFormattedDate(), getTimestamp(). - - Signature of _datestring() method was changed. - - Method getFontBBox() was added. - - Method setPageBoxTypes() was aded. - -5.9.151 (2012-03-22) - - Bug item #3509889 "Transform() distorts PDF" was fixed. - - Precision of real number were extended. - - ComboBox and ListBox methods were fixed. - - Bulgarian language file was added. - - addTOC() method was improved to include bookmark color and font style. - -5.9.150 (2012-03-16) - - A bug related to form fields in PDF/A mode was fixed. - -5.9.149 (2012-02-21) - - Bug item #3489933 "SVG Parser treats tspan like text" was fixed. - -5.9.148 (2012-02-17) - - Bug item #3488600 "Multiple radiobutton sets get first set value" was fixed. - -5.9.147 (2012-02-14) - - A problem with SVG gradients has been fixed. - -5.9.146 (2012-02-12) - - Bug item #3486880 "$filehash undefine error" was fixed. - - The default font is now the one specified at PDF_FONT_NAME_MAIN constant. - -5.9.145 (2012-01-28) - - Japanese language file was added. - - TCPDF license and README.TXT files were updated. - -5.9.144 (2012-01-12) - - HTML output on barcode classes was improved. - -5.9.143 (2012-01-08) - - Bug item #3471057 "setCreator() has no effect" was fixed. - -5.9.142 (2011-12-23) - - Source code documentation was updated. - -5.9.141 (2011-12-14) - - Some minor bugs were fixed. - -5.9.140 (2011-12-13) - - SVG now supports embedded images encoded as base64. - -5.9.139 (2011-12-11) - - Spot color methods were fixed. - -5.9.138 (2011-12-10) - - cropMark() method was improved (check source code documentation). - - Example n. 56 was updated. - - Bug item #3452390 "Check Box still not ticked when set to true" was fixed. - -5.9.137 (2011-12-01) - - Bug item #3447005 "Background color and border of Form Elements is printed" was fixed. - - Color support for Form elements was improved. - -5.9.136 (2011-11-27) - - Bug item #3443387 "SetMargins with keep option does not work for top margin" was fixed. - -5.9.135 (2011-11-04) - - Bug item #3433406 "Double keywords in description" was fixed. - -5.9.134 (2011-10-29) - - The default value for $defcol parameter on convertHTMLColorToDec() method was fixed. - - Deafult HTTP headers were changed to avoid browser caching. - - Some deprecated syntax were replaced. - -5.9.133 (2011-10-26) - - Bug item #3428446 "copyPage method not working when diskcache enabled" was fixed. - -5.9.132 (2011-10-20) - - Bug item #3426167 "bug in function convertHTMLColorToDec()" was fixed. - -5.9.131 (2011-10-13) - - An error message was added to ImagePngAlpha() method. - -5.9.130 (2011-10-12) - - Now you can set image data strings on HTML img tag by encoding the image binary data in this way: $imgsrc = '@'.base64_encode($imgdata); - -5.9.129 (2011-10-07) - - Core fonts metrics was fixed (replace all helvetica and times php files on fonts folder). - - Form fields support was improved and some problems were fixed (check the example n. 14). - - Bug item #3420249 "Issue with booklet and MultiCell" was fixed. - -5.9.128 (2011-10-06) - - Method addTTFfont() was improved (check the source code documentation). - - Method setExtraXMP() to set custom XMP data was added. - -5.9.127 (2011-10-04) - - Readonly mode option was activated for radiobuttons. - -5.9.126 (2011-10-03) - - Bug item #3417989 "Graphics State operator in form XObject fails to render" was fixed. - - Xobjects problems with transparency, gradients and spot colors were fixed. - -5.9.125 (2011-10-03) - - Support for 8-digit CMYK hexadecimal color representation was added (to be used with XHTML and SVG). - - Spot colors support was improved (check example n. 37). - - Color methods were improved. - -5.9.124 (2011-10-02) - - Core fonts were updated. - -5.9.123 (2011-10-02) - - The method addTTFfont() wad added to automatically convert TTF fonts (check the new fonts guide at http://www.tcpdf.org). - - Old font utils were removed. - - All fonts were updated and new arabic fonts were added (almohanad were removed and replaced by aefurat and aealarabiya). - - The file unicode_data.php was updated. - - The file encodings_maps.php was added. - - PDF/A files are now compressed to save space. - - XHTML input form fields now support text-alignment attribute. - -5.9.122 (2011-09-29) - - PDF/A-1b compliance was improved to pass some online testing. - -5.9.121 (2011-09-28) - - This version includes support for PDF/A-1b format (the class constructor signature was changed - see example n. 65). - - Method setSRGBmode() was added to force sRGB_IEC61966-2.1 black scaled ICC color profile for the whole document (file sRGB.icc was added). - - 14 new fonts were added to allow embedding core fonts (for PDF/A compliance). - - Font utils were fixed. - -5.9.120 (2011-09-22) - - This version includes a fix for _getTrueTypeFontSubset() method. - -5.9.119 (2011-09-19) - - This version includes a fix for extra page numbering on TOC. - -5.9.118 (2011-09-17) - - This version includes some changes that allows you to add a bookmark for a page that do not exist. - -5.9.117 (2011-09-15) - - TCPDFBarcode and TCPDF2DBarcode classes were extended to include a method for exporting barcodes as PNG images. - -5.9.116 (2011-09-14) - - Datamatrix class was improved and documentation was fixed. - -5.9.115 (2011-09-13) - - Datamatrix ECC200 barcode support was added (a new datamatrix.php file was added) - check example n. 50. - - getBarcodeHTML() method was added on TCPDFBarcode and TCPDF2DBarcode classes to return an HTML representation of the barcode. - - cURL options on Image() method were improved. - - A bug on write2DBarcode() was fixed. - -5.9.114 (2011-09-04) - - A bug related to column position was fixed. - -5.9.113 (2011-08-24) - - This release include two new experimental files for parsing an existing PDF document (the integration with TCPDF is under development). - -5.9.112 (2011-08-18) - - A newline character was added after the 'trailer' keyword for compatibility with some parsers. - - Support for layers was improved. - -5.9.111 (2011-08-17) - - Barcode CODE 39 default gap was restored at 1. - -5.9.110 (2011-08-17) - - Barcode CODE 39 was fixed. - -5.9.109 (2011-08-12) - - Method getNumLines() was fixed. - - A bug related to page break in multi-column mode was fixed. - -5.9.108 (2011-08-09) - - A bug on PHP4 version was fixed. - -5.9.107 (2011-08-08) - - This version includes a minor bugfix. - -5.9.106 (2011-08-04) - - This version includes transparency groups: check the new parameter on startTemplate() method and example 62. - -5.9.105 (2011-08-04) - - Bug item #3386153 "Check Box not ticked when set to true" was fixed. - -5.9.104 (2011-08-01) - - Bug item #3383698 "imagemagick, resize and dpi" was fixed. - -5.9.103 (2011-07-16) - - Alignment of XHTML lines was improved. - - Spell of the "length" word was fixed. - -5.9.102 (2011-07-13) - - Methods startLayer() and endLayer() were added to support arbitrary PDF layers. - - Some improvements/fixes for images were added (thanks to Brendan Abbott). - -5.9.101 (2011-07-07) - - Support for JPEG and PNG ICC Color Profiles was added. - - Method addEmptySignatureAppearance() was added to add empty signature fields (see example n. 52). - - Bug item #3354332 "Strange line spacing with reduced font-size in writeHTML" was fixed. - -5.9.100 (2011-06-29) - - An SVG bug has been fixed. - -5.9.099 (2011-06-27) - - Bug item #3335045 "Font freesans seems somehow corrupted in footer" was fixed. - -5.9.098 (2011-06-23) - - The Named Destination feature was fixed. - -5.9.097 (2011-06-23) - - The method setHtmlVSpace() now can be used also for tags: div, li, br, dt and dd. - - The Named Destination feature was added (check the example n. 15) - thanks to Christian Deligant. - -5.9.096 (2011-06-19) - - Bug item #3322234 "Surrogate pairs codes in arrUTF8ToUTF16BE" was fixed. - -5.9.095 (2011-06-18) - - Numbers alignment for Table-Of-Content methods was improved and fixed. - - Font subsetting was fixed to include all parts of composite fonts. - -5.9.094 (2011-06-17) - - Bug item #3317898 "Page Group numbering broken in 5.9.093" was fixed. - -5.9.093 (2011-06-16) - - Method setStartingPageNumber() was added to set starting page number (for automatic page numbering). - -5.9.092 (2011-06-15) - - Method _putpages() was improved. - - Bug item #3316678 "Memory overflow when use Rotate and SetAutoPageBreak" was fixed. - - Right alignment of page numbers was improved. - -5.9.090 (2011-06-14) - - Methods AliasNbPages() and AliasNumPage() were re-added as deprecated for backward compatibility. - -5.9.089 (2011-06-13) - - Example n. 8 was updated. - - Method sendOutputData() was changed to remove default compression (it was incompatible with some server settings). - - Bugs related to page group numbers were fixed. - - Method copyPage() was fixed. - - Method Image() was improved to include support for alternative and external images. - -5.9.088 (2011-06-01) - - Method getAutoPageBreak() was added (see example n. 51). - - Example n. 51 (full page background) was updated. - -5.9.087 (2011-06-01) - - Method sendOutputData() was improved to include deflate encoding. - - Barcode classes on PHP 4 version were fixed. - -5.9.086 (2011-05-31) - - Font files were updated (the ones on the previous release were broken). - - The script fonts/utils/makeallttffonts.php was updated and fixed. - - Output() method was improved to use compression when available. - -5.9.085 (2011-05-31) - - TCPDFBarcode class (barcodes.php) now includes getBarcodeSVG() and getBarcodeSVGcode() methods to get SVG image representation of the barcode. - - TCPDF2DBarcode class (2dbarcodes.php) now includes getBarcodeSVG() and getBarcodeSVGcode() methods to get SVG image representation of the barcode. - -5.9.084 (2011-05-29) - - Font files were updated. - - The file fonts/utils/makeallttffonts.php was updated. - - Bug item# 3308774 "Problems with font subsetting" was fixed. - -5.9.083 (2011-05-24) - - Bug item #3308387 "line height & SetCellHeightRatio" was fixed. - -5.9.082 (2011-05-22) - - Bug item #3305592 "Setting fill color <> text color breaks text clipping" was fixed. - -5.9.081 (2011-05-18) - - Method resetHeaderTemplate() was added to reset the xobject template used by Header() method. - - Method setHeaderTemplateAutoreset() was added to automatically reset the xobject template used by Header() method at each page. - -5.9.080 (2011-05-17) - - A problem related to file path calculation for images was fixed. - - A problem related to unsuppressed getimagesize() error was fixed. - -5.9.079 (2011-05-16) - - Footer() method was changed to use C128 barcode as default (instead of the previous C128B). - -5.9.078 (2011-05-12) - - Bug item #3300878 "wrong rendering for html bullet list in some case" was fixed. - - Bug item #3301017 "Emphasized vs. font-weight" was fixed. - - Barcode Code 128 was improved to include AUTO mode (automatically switch between A, B and C modes). - - Examples n. 27 and 49 were updated. - -5.9.077 (2011-05-07) - - Bug item #3298591 "error code93" was fixed. - - SetLineStyle() function was improved. - -5.9.076 (2011-05-06) - - Bug item #3298264 "codebar 93 error" was fixed. - -5.9.075 (2011-05-02) - - Table header alignment when using WriteHTMLCell() or MultiCell() was fixed. - -5.9.074 (2011-04-28) - - Bug item #3294306 "CSS classes not work in table section" was fixed. - -5.9.073 (2011-04-27) - - A bug related to character entities on HTML cells was fixed. - -5.9.072 (2011-04-26) - - Method resetColumns() was added to remove multiple columns and reset page margins (example n. 10 was updated). - -5.9.071 (2011-04-19) - - Bug #3288574 "
    trouble" was fixed. - -5.9.069 (2011-04-19) - - Bug #3288763 "HTML-Table: non-breaking table rows: Bug" was fixed. - -5.9.068 (2011-04-15) - - Bookmark, addTOC and addHTMLTOC methods were improved to include font style and color (Examples 15, 49 and 59 were updated). - - Default $_SERVER['DOCUMENT_ROOT'] value on tcpdf_config.php file was changed. - -5.9.067 (2011-04-10) - - Performances were drastically improved (PDF documents are now created more quickly). - -5.9.066 (2011-04-09) - - A bug related to digital signature + encryption was fixed. - - A bug related to encryption + xobject templates was fixed. - -5.9.065 (2011-04-08) - - Bug item #3280512 "Text encoding iso-8859-2 crashes" was fixed. - -5.9.064 (2011-04-05) - - A bug related to character entities on HTML cells was fixed. - -5.9.063 (2011-04-01) - - Bug item #3267235 "WriteHTML() and image that doesn't fit on the page" was fixed. - -5.9.062 (2011-03-23) - - Bug item #3232650 "Using Write if there are pageRegions active creates error" was fixed. - - Bug item #3221891 "text input borders" was fixed. - - Bug item #3228958 "Adobe Reader 9.4.2 crash" was fixed. - -5.9.061 (2011-03-15) - - Bug item #3213488 "wrong function call in function Write" was fixed. - - Bug item #3203007 "list element with black background" was fixed. - -5.9.060 (2011-03-08) - - addTOC() method was fixed for text alignment problems. - -5.9.059 (2011-02-27) - - Default Header() method was improved to reduce document size. - -5.9.058 (2011-02-25) - - Image() method was improved to cache images with transparency layers (thanks to Korneliusz Jarzębski for reporting this problem). - -5.9.057 (2011-02-24) - - A problem with image caching system was fixed (thanks to Korneliusz Jarzębski for reporting this problem). - -5.9.056 (2011-02-22) - - A bug on fixHTMLCode() method was fixed. - - Automatic line break for HTML was fixed. - -5.9.055 (2011-02-17) - - Another bug related to HTML table page break was fixed. - -5.9.054 (2011-02-16) - - A bug related to HTML table page break was fixed. - -5.9.053 (2011-02-16) - - Support for HTML attribute display="none" was added. - -5.9.052 (2011-02-15) - - A bug related to HTML automatic newlines was fixed. - -5.9.051 (2011-02-12) - - "Commas at beginning of new lines" problem was fixed. - -5.9.050 (2011-02-11) - - Bug #3177606 "SVG Bar chart error" was fixed. - -5.9.049 (2011-02-03) - - Bug #3170777 "TCPDF creates a new page after a single line in writeHTML" was fixed. - -5.9.048 (2011-02-02) - - No changes. Just released to override previous release that was not uploaded correctly. - -5.9.047 (2011-01-28) - - Bug #3167115 "PDF error in (example 48)" was fixed (was introduced in 5.8.046). - -5.9.046 (2011-01-18) - - PDF view/print layers are now automatically turned off if not used (see setVisibility() method). - -5.9.045 (2011-01-17) - - HTML list support were improved. - -5.9.044 (2011-01-15) - - Bug #3158422 "writeHTMLCell Loop" was fixed. - - Some HTML image alignment problems were fixed. - -5.9.043 (2011-01-14) - - Bug #3158178 "PHP Notice" was fixed. - - Bug #3158193 "Endless loop in writeHTML" was fixed. - - Bug #3157764 "SVG Pie chart incorrectly rendered2". - -5.9.042 (2011-01-14) - - Some problems of the PHP4 version were fixed. - -5.9.041 (2011-01-13) - - A problem with SVG elliptical arc path was fixed (ref. bug #3156574). - - A problem related to font weight on HTML table headers was fixed. - -5.9.040 (2011-01-12) - - A bug related to empty pages after table was fixed. - -5.9.039 (2011-01-12) - - Bug item #3155759 "openssl_random_pseudo_bytes() slow under Windows" was fixed. - -5.9.038 (2011-01-11) - - Minor bugs were fixed. - -5.9.037 (2011-01-09) - - An alignment problem for HTML texts was fixed. - -5.9.036 (2011-01-07) - - A bug related to HTML tables on header was fixed. - -5.9.035 (2011-01-03) - - A problem related to HTML table border alignment was fixed. - - Bug #2996366 "FastCGI and Header Problems" was fixed. - -5.9.034 (2010-12-19) - - DejaVu and GNU Free fonts were updated. - -5.9.033 (2010-12-18) - - Source code documetnation was improved. - -5.9.032 (2010-12-18) - - Default font stretching and spacing values are now inherited by HTML methods. - -5.9.031 (2010-12-16) - - Source code documentation errors were fixed. - -5.9.030 (2010-12-16) - - Several source code documentation errors were fixed. - - Source code style was changed for Doxygen. - - Source code documentation was moved online to http://www.tcpdf.org - -5.9.029 (2010-12-04) - - The $fitbox parameter on Image() method was extended to specify image alignment inside the box (check the example n. 9). - -5.9.028 (2010-12-03) - - Font utils makefont.php and makeallttffonts.php were updated. - -5.9.027 (2010-12-01) - - Spot Colors are now better integrated with HTML mode. - - Method SetDocInfoUnicode() was added to turn on/off Unicode mode for document information dictionary (meta tags) - check the example n. 19. - -5.9.026 (2010-12-01) - - A problem with mixed text directions on HTML was fixed. - -5.9.025 (2010-12-01) - - The AddSpotColor() now automatically fills the spotcolor array (defined on spotcolors.php file). - -5.9.024 (2010-11-30) - - Bug item #3123612 "SVG not use gradientTransform in percentage mode" was fixed. - -5.9.023 (2010-11-25) - - A potential bug on SVG transcoder was fixed. - -5.9.022 (2010-11-21) - - Method ImageEPS includes support for EPS/AI Spot colors. - - Method ImageEPS includes a new parameter $fixoutvals to remove values outside the bounding box. - -5.9.021 (2010-11-20) - - Support for custom bullet points images was added (check the example n.6) - - Examples n. 6 and 61 were update (check the comments inside). - -5.9.020 (2010-11-19) - - A problem related to additional page when using multicolumn mode was fixed. - -5.9.019 (2010-11-19) - - An SVG bug was fixed. - - ImageSVG() and ImageEPS() methods now accepts image data streams (put the string on the $file parameter preceded by '@' character). - - Option 'E' was added to the $dest parameter of Output() method to return the document as base64 mime multi-part email attachment (RFC 2045). - -5.9.018 (2010-11-19) - - An SVG bug was fixed. - -5.9.017 (2010-11-16) - - Tagline color was set to transparent. - - The method fixHTMLCode() was added to automatically clean up HTML code (requires HTML Tidy). - -5.9.016 (2010-11-16) - - Bug item #3109705 "list item page break hanging bullet" was fixed. - -5.9.015 (2010-11-16) - - Bug item affecting QRCode was fixed. - - Some bugs affecting HTML lists were fixed. - - ImageSVG() and fitBlock() methods were improved to handle some SVG problems. - - Some problems with PHP4 compatibility were fixed. - -5.9.014 (2010-11-15) - - Bug item #3109464 "QRCode error" was fixed. - -5.9.013 (2010-11-15) - - Bug item #3109257 "Problem with interlaced GIFs and PNGs" was fixed. - - Image function now accepts image data streams (check example n. 9). - -5.9.012 (2010-11-12) - - Method getTCPDFVersion() was added. - - PDF_PRODUCER constant was removed. - - Method convertHTMLColorToDec() was improved. - - HTML colors now support spot color names defined on the new spotcolors.php file. - - The default method Header() was improved to support SVG and EPS/AI images. - - A bug on SVG importer was fixed. - -5.9.011 (2010-11-02) - - Bug item #3101486 "Bug Fix for image loading" was fixed. - -5.9.010 (2010-10-27) - - Support for CSS properties 'border-spacing' and 'padding' for tables were added. - - Several language files were added. - -5.9.009 (2010-10-21) - - HTML text alignment was improved to include the case of RTL text on LTR direction and LTR text on RTL direction. - -5.9.008 (2010-10-21) - - Bug item #3091502 "Bookmark oddity" was fixed. - - HTML internal links now accepts page number and Y position. - - The method write1DBarcode() was improved to accept separate horizontal and vertical padding (see example n. 27). - -5.9.007 (2010-10-20) - - Method adjustCellPadding() was fixed to handle bad input. - -5.9.006 (2010-10-19) - - Support for AES 256 bit encryption was added (see example n. 16). - - Method getNumLines() was fixed for the empty string case. - -5.9.005 (2010-10-18) - - Method addPageRegion() was changed to accept regions starting exactly from the top of the page. - -5.9.004 (2010-10-18) - - A bug related to annotations was fixed. - - The file unicode_data.php was canged to encapsulate all data in a class. - - The file htmlcolors.php was changed to remove the global variable. - -5.9.003 (2010-10-15) - - Support for no-write page regions was added. Check the example n. 64 and new methods setPageRegions(), addPageRegion(), getPageRegions(), removePageRegion(). - - A bug on Right-To-Left alignment was fixed. - -5.9.002 (2010-10-08) - - Cell method was improved to preserve the font stretching and spacing values when using the $stretch parameter (see example n. 4). - -5.9.001 (2010-10-07) - - The problem of blank page for nobr table higher than a single page was fixed. - -5.9.000 (2010-10-06) - - Support for text stretching and spacing (tracking) was added, see example n. 63 and methods setFontStretching(), getFontStretching(), setFontSpacing(), getFontSpacing(). - - Support for CSS properties 'font-stretch' and 'letter-spacing' was added (see example n. 63). - - The cMargin state was replaced by cell_padding array that can be set/get using setCellPadding() and getCellPadding() methods. - - Methods getCellPaddings() and setCellPaddings() were added to fine tune cell paddings (see example n. 5). - - Methods getCellMargins() and setCellMargins() were added to fine tune cell margins (see example n. 5). - - Method write1DBarcode() was improved to permit custom labels (see example n. 27). - - Method ImagePngAlpha() now includes support for ImageMagick to improve performances. - - XObject Template support was extended to support Multicell(), writeHTML() and writeHTMLCell() methods. - - The signature of getNumLines() and getStringHeight() methods is changed. - - Example n. 57 was updated. - -// ------------------------------------------------------------------- - -5.8.034 (2010-09-27) - - A bug related to SetFont on XObject templates was fixed. - -5.8.033 (2010-09-25) - - A problem with Footer() and multiple columns was fixed. - -5.8.032 (2010-09-22) - - Bug #3073165 "Issues with changes to addHTMLVertSpace()" was fixed. - -5.8.031 (2010-09-20) - - Bug #3071961 "Spaces in HTML" was fixed. - -5.8.030 (2010-09-17) - - SVG support was improved and some bugs were fixed. - -5.8.029 (2010-09-16) - - A problem with HTML borders was fixed. - -5.8.028 (2010-09-13) - - Bug #3065224 "mcrypt_create_iv error on TCPDF 5.8.027 on PHP 5.3.2" was fixed. - -5.8.027 (2010-09-13) - - Bug #3065118 "mcrypt_decrypt error on TCPDF 5.8.026 on PHP 5.3.2" was fixed. - -5.8.026 (2010-09-13) - - A bug on addHTMLTOC() method was fixed. Note: be sure that the #TOC_PAGE_NUMBER# template has enough width to be printed correctly. - -5.8.025 (2010-09-09) - - Bug #3062692 "Textarea inside a table" was fixed. - -5.8.024 (2010-09-08) - - Bug #3062005 "Undefined variable: ann_obj_id" was fixed. - -5.8.023 (2010-08-31) - - Forms bug added on version 5.8.019 was fixed. - -5.8.022 (2010-08-31) - - Bug #3056632 "SVG rendered vertically flipped" was fixed. - -5.8.021 (2010-08-30) - - A new CID-0 'chinese' font was added for traditional Chinese. - - Bug #3054287 'Inner tags are ignored due to "align" attribute' was fixed. - -5.8.020 (2010-08-26) - - CSS "catch-all" class selector is now supported. - -5.8.019 (2010-08-26) - - XObject Templates now includes support for links and annotations. - - A problem related to link alignment on cell was fixed. - - A problem related to SVG styles was fixed. - -5.8.018 (2010-08-25) - - Method getNumberOfColumns() was added. - - A problem related to table header was fixed. - - Method getSVGTransformMatrix() was fixed to apply SVG transformations in the correct order. - - SVG support was improved and several bugs were fixed. - -5.8.017 (2010-08-25) - - This version includes support for XObject Templates (see the new example n. 62). - - Methods starttemplate(), endTemplate() and printTemplate() were added (see the new example n. 62). - -5.8.016 (2010-08-24) - - Alignment problem on write2DBarcode was fixed. - -5.8.015 (2010-08-24) - - A problem arose with the latest bugfix was fixed. - -5.8.014 (2010-08-23) - - Method _getxobjectdict() was added for better compatibility with external extensions. - - A bug related to radiobuttons was fixed. - - Bug #3051509 "new line after punctuation marks" was fixed (partially). - -5.8.013 (2010-08-23) - - SVG support for 'direction' property was added. - - A problem on default width calculation for linear barcodes was fixed. - - New option was added to write1DBarcode() method to improve alignments (see example n. 27). - - Bug #3050896 "Nested HTML tables: styles are not applied" was fixed. - - Method _putresourcedict() was improved to include external XObject templates. - -5.8.012 (2010-08-22) - - Support for SVG 'text-anchor' property was added. - -5.8.011 (2010-08-21) - - Method write1DBarcode() was improved to be backward compatible (check the new example n. 27). - - Support for CSS width and height properties on images were added. - -5.8.010 (2010-08-20) - - Documentation of unhtmlentities() was fixed. - - The 'fitwidth' option was added and border color problem was fixed on write1DBarcode() method (check the example n. 27). - -5.8.009 (2010-08-20) - - Internal object numbering was improved. - - Some errors in object encryption were fixed. - -5.8.008 (2010-08-19) - - Method write1DBarcode() was changed, check the example n. 27. - - Method Footer() was changed to account for barcode changes. - - Automatic calculation of K_PATH_URL constant was fixed on configuration file. - - Method setEqualColumns() was fixed for $width=0 case. - - Method AddTOC() was fixed for multipage and multicolumn modes. - - Better support for SVG "font-family" property. - - A problem on default Page Zoom mode was fixed. - - Several Annotation bugs were fixed. - -5.8.007 (2010-08-18) - - A bug affecting HTML tables was fixed. - - Bug #3047500 "SVG not rendering paths properly" was fixed. - -5.8.006 (2010-08-17) - - A bug affecting HTML table nesting was fixed. - -5.8.005 (2010-08-17) - - A bug affecting the HTML 'select' tag in certain conditions was fixed. - -5.8.004 (2010-08-17) - - Better support for HTML "font-family" property. - - A bug related to HTML multicolumn was fixed. - -5.8.003 (2010-08-16) - - Better support for HTML "font-family" property. - -5.8.002 (2010-08-14) - - HTML alignments were improved - - IMPORTANT: Default regular expression to find spaces has been changed to exclude the non-breaking-space (160 DEC- A0 HEX). If you are using setSpacesRE() method, please read the new documentation. - - Example n. 1 was updated. - -5.8.001 (2010-08-12) - - Bug #3043650 "subsetchars incorrectly cached" was fixed. - -5.8.000 (2010-08-11) - - A control to avoid bookmarking page 0 was added. - - addTOC() method now includes support for multicolumn mode. - - Support for tables in multicolumn mode was improved. - - Example n.10 was updated. - - All trimming functions were replaced with stringLeftTrim(), stringRightTrim() and stringTrim(). - - HTML alignments were improved. - ------------------------------------------------------------- - -5.7.003 (2010-08-08) - - Bug #3041263 "php source ending is bad" was fixed (all PHP files were updated, including fonts). - -5.7.002 (2010-08-06) - - Methods copyPage(), movePage() and deletePage() were changed to account for internal markings. - -5.7.001 (2010-08-05) - - Bug #3040105 "Broken PDF when using TOC (example 45)" was fixed. - -5.7.000 (2010-08-03) - - CSS borders are now supported for HTML tables and other block tags (see example n. 61); - - Cell borders were improved (see example n. 57); - - Minor bugs were fixed. - ------------------------------------------------------------- - -5.6.000 (2010-07-31) - - A bug with object IDs was fixes. - - Performances were improved. - ------------------------------------------------------------- - -5.5.015 (2010-07-29) - - Automatic fix for unclosed self-closing tag. - - Support for deprecated 's' and 'strike' tags was added. - - Empty list items problem was fixed. - -5.5.014 (2010-07-15) - - Support for external images was improved. - -5.5.013 (2010-07-14) - - Bug #3029338 "FI and FO output destination filename bug" was fixed (previous fix was wrong). - -5.5.012 (2010-07-14) - - Bug #3029310 "Font baseline inconsistencies with line-height and font-size" was fixed. - - Bug #3029338 "FI and FO output destination filename bug" was fixed. - -5.5.011 (2010-07-09) - - Support for multiple CSS classes was added. - - The method getColumn() was added to return the current column number. - - Some regular Expressions were fixed to be more compatible with UTF-8. - -5.5.010 (2010-07-06) - - Bug item #3025772 "Borders in all image functions are still flawed" was fixed. - -5.5.009 (2010-07-05) - - A problem related to last page footer was fixed. - - Image alignments and fit-on-page features were improved. - -5.5.008 (2010-07-02) - - A problem on table header alignment in booklet mode was fixed. - - Default graphic vars are now applied for setHeader(); - -5.5.007 (2010-07-02) - - Attribute "readonly" was added to input and textarea form fields. - - Vertical alignment feature was added on MultiCell() method only for simple text mode (see example n. 5). - - Text-Fit feature was added on MultiCell() method only for simple text mode (see example n. 5). - -5.5.006 (2010-06-29) - - getStringHeight() and getNumLines() methods were fixed. - -5.5.005 (2010-06-28) - - Bug #3022170 "getFontDescent() does not return correct descent value" was fixed. - - Some problems with multicolumn mode were fixed. - -5.5.004 (2010-06-27) - - Bug #3021803 "SVG Border" was fixed. - -5.5.003 (2010-06-26) - - On Write() method, blank lines at the beginning of a page or column are now automatically removed. - -5.5.002 (2010-06-24) - - ToUnicode Identity-H name was replaced with a full CMap (to avoid preflight syntax error). - - Bug #3020638 "str_split() not available in php4" was fixed. - - Bug #3020665 "file_get_contents() too many parameters for php4" was fixed. - -5.5.001 (2010-06-23) - - A problem on image streams was fixed. - -5.5.000 (2010-06-22) - - Several PDF syntax errors (and related bugs) were fixed. - - Bug #3019090 "/Length values are wrong if AES encryption is used" was fixed. - ------------------------------------------------------------- - -5.4.003 (2010-06-19) - - A problem related to page boxes was fixed. - - Bug #3016920 "Font subsetting issues when editing pdf" was partially fixed (Note that flattening transparency layers is currently incompatible with TrueTypeUnicode fonts). - -5.4.002 (2010-06-18) - - A problem related with setProtection() method was fixed. - -5.4.001 (2010-06-18) - - A problem related with setProtection() method was fixed. - -5.4.000 (2010-06-18) - - The method setSignatureAppearance() was added, check the example n. 52. - - Several problems related to font subsetting were fixed. - ------------------------------------------------------------- - -5.3.010 (2010-06-15) - - Previous release was corrupted. - -5.3.009 (2010-06-15) - - Bug #3015934 "Bullets don't display correctly" was fixed. - -5.3.008 (2010-06-13) - - This version fixes some problems of SVG rasterization. - -5.3.007 (2010-06-13) - - This version improves SVG support. - -5.3.006 (2010-06-10) - - This version includes a change in uniqid calls for backward compatibility with PHP4. - -5.3.005 (2010-06-09) - - The method getPageSizeFromFormat() was changed to include all standard page formats (includes 281 page formats + variation). - -5.3.004 (2010-06-08) - - Bug #3013291 "HTML table cell width" was fixed. - - Bug #3013294 "HTML table cell alignment" was fixed. - - The columns widths of HTML tables are now inherited from the first row. - -5.3.003 (2010-06-08) - - Bug #3013102 "HTML table header misaligned after page break" was fixed. - -5.3.002 (2010-06-07) - - The methods setFontSubsetting() and setFontSubsetting() were added to control the default font subsetting mode (see example n. 1). - - Bug #3012596 "Whitespace should not appeared after use Thai top characters" was fixed. - - Examples n. 1, 14, and 54 were updated. - -5.3.001 (2010-06-06) - - Barcode PDF417 was improved to support Macro Code Blocks (see example n. 50). - -5.3.000 (2010-06-05) - - License was changed to GNU-LGPLv3 (see the updated LICENSE.TXT file). - - PDF417 barcode support was added (check the example n. 50). - - The method write2DBarcode() was improved (some parameters were added and other changed - check example n. 50). - ------------------------------------------------------------- - -5.2.000 (2010-06-02) - - IMPORTANT: Support for font subsetting was added by default to reduce the size of documents using large unicode font files. - If you embed the whole font in the PDF, the person on the other end can make changes to it even if he didn't have your font. - If you subset the font, file size of the PDF will be smaller but the person who receives your PDF would need to have your same font in order to make changes to your PDF. - - The signature of the SetFont() and AddFont() methods were changed to include the font subsetting option (subsetting is applied by default). - - Examples 14 and 54 were updated. - ------------------------------------------------------------- - -5.1.002 (2010-05-27) - - Bug #3007818 "SetAutoPageBreak fails with MultiCell" was fixed. - - A bug related to MultiCell() minimun height was fixed. - -5.1.001 (2010-05-26) - - The problem of blank page after table was fixed. - -5.1.000 (2010-05-25) - - This version includes support for CSS (Cascading Style Sheets) (see example n. 61). - - The convertHTMLColorToDec() method was improved. - ------------------------------------------------------------- - -5.0.014 (2010-05-21) - - A problem on color and style of HTML links was fixed. - - A bug relative to gradients was fixed. - - The getStringHeight() method was added and getNumLines() method was improved. - - All examples were updated. - -5.0.013 (2010-05-19) - - A bug related to page-breaks and table cells was fixed. - -5.0.012 (2010-05-19) - - Page orientation bug was fixed. - - The access to method setPageFormat() was changed to 'protected' because it is not intended to be directly called. - -5.0.011 (2010-05-19) - - Page orientation bug was fixed. - - Bug #3003966 "Multiple columns and nested lists" was fixed. - -5.0.010 (2010-05-17) - - The methods setPageFormat(), setPageOrientation() and related methods were extended to include page boxes, page rotations and page transitions. - - The method setPageBoxes() was added to set page boundaries (MediaBox, CropBox, BleedBox, TrimBox, ArtBox); - - A bug relative to underline, overline and linethrough was fixed. - -5.0.009 (2010-05-16) - - Bug #3002381 "Multiple columns and nested lists" was fixed. - -5.0.008 (2010-05-15) - - Bug "Columns WriteHTML and Justification" was fixed. - -5.0.007 (2010-05-14) - - Bug #3001347 "Bug when using WriteHTML with setEqualColumns()" was fixed. - - Bug #3001505 "problem with sup and sub tags at the beginning of a line" was fixed. - -5.0.006 (2010-05-13) - - Length of hr tag was fixed. - - An error on 2d barcode method was fixed. - -5.0.005 (2010-05-12) - - WARNING: The logic of permissions on the SetProtection() method has been inverted and extended (see example 16). Now you have to specify the features you want to block. - - SetProtection() method was extended to support RSA and AES 128 encryption and public-keys (see example 16). - - Bug #2999489 "setEqualColumns() and TOC uses wrong columns" was fixed (see the example 10). - -5.0.004 (2010-05-10) - - HTML line alignment when using sub and sup tags was fixed. - -5.0.003 (2010-05-07) - - Horizontal alignment was fixed for images and barcodes. Now the X coordinate is always relative to the left margin. Use GetAbsX() instead of GetX() to get the X relative to left margin. - - Header() method was changed to account for new image alignment rules. - -5.0.002 (2010-05-06) - - Bookmark() and related methods were fixed to accept HTML code. - - A problem on HTML links was fixed. - -5.0.001 (2010-05-06) - - Protected method _putstream was re-added for backward compatibility. - - The following method were added to display HTML Table Of Content (see example n. 59): - addTOCPage(), endTOCPage(), addHTMLTOC(). - -5.0.000 (2010-05-05) - - Method ImageSVG() was added to embedd SVG images (see example n. 58). Note that not all SVG images are supported. - - Method setRasterizeVectorImages() was added to enable/disable rasterization for vector images via ImageMagick library. - - Method RoundedRectXY() was added. - - Method PieSectorXY() was added. - - Gradient() method is now public and support new features. - - Shading to transparency is now supported. - - Image alignments were fixed. - - Support for dynamic images were improved. - - PDF_IMAGE_SCALE_RATIO has been changed to 1.25 for better compatibility with SVG. - - RAW and RAW2 modes were added to 2D Barcodes (see example n. 50). - - Automatic padding feature was added on barcodes (see examples n. 27 and 50). - - Bug #2995003 "Reproduced thead bug" was fixed. - - The Output() method now accepts FI and FD destinations to save the document on server before sending it to the client. - - Ellipse() method was improved and fixed (see page 2 of example n. 12). - ------------------------------------------------------------- - -4.9.018 (2010-04-21) - - Bug item #2990356 "Current font size not respected with more than two HTML

    " was fixed. - -4.9.017 (2010-04-21) - - Bug item #2990224 "Different behaviour for equivalent HTML strings" was fixed. - - Bug item #2990314 "Dash is not appearing with SHY character" was fixed. - -4.9.016 (2010-04-20) - - An error on htmlcolors.php was fixed. - - getImageFileType() method was improved. - - GIF images with transparency are now better supported. - - Automatic page orientation was improved. - -4.9.015 (2010-04-20) - - A new method copyPage() was added to clone pages (see example n. 44). - - Support for text overline was added. - - Underline and linethrough methods were fixed. - - Bug #2989058 "SHY character causes unnecessary word-wrapping" was fixed. - -4.9.014 (2010-04-18) - - Bug item #2988845 was fixed. - -4.9.013 (2010-04-15) - - Image() and ImageEPS() methods were fixed and improved; $fitonpage parameter was added. - -4.9.012 (2010-04-12) - - The hyphenateText() method was added to automatically hyphenate text (see example n. 46). - -4.9.011 (2010-04-07) - - Vertical alignments for Cell() method were improved (see example n. 57). - -4.9.010 (2010-04-06) - - Signature of Cell() method now includes new parameters for vertical alignment (see example n. 57). - - Text() method was extended to include all Cell() parameters. - - HTML line alignment procedure was changed to fix some bugs. - -4.9.009 (2010-04-05) - - Text() method was fixed for backward compatibility. - -4.9.008 (2010-04-03) - - Additional line space after table header was removed. - - Support for HTML lists in multicolumn mode was added. - - The method setTextRenderingMode() was added to set text rendering modes (see the example n. 26). - - The following HTML attributes were added to set text rendering modes (see the example n. 26): stroke, strokecolor, fill. - -4.9.007 (2010-04-03) - - Font Descent computation was fixed (patch #2981441). - -4.9.006 (2010-04-02) - - The constant K_TCPDF_CALLS_IN_HTML was added on configuration file to enable/disable the ability to call TCPDF methods in HTML. - - The usage of tcpdf tag in HTML mode was changed to remove the possible security flaw offered by the eval() function (thanks to Matthias Hecker for spotting this security problem). See the new example n. 49 for further information. - -4.9.005 (2010-04-01) - - Bug# 2980354 "Wrong File attachment description with security" was fixed. - - Several problems with HTML line alignment were fixed. - - The constant K_THAI_TOPCHAR was added on configuration file to enable/disable the special procedure used to avoid the overlappind of symbols on Thai language. - - A problem with font name directory was fixed. - - A bug on _destroy() method was fixed. - -4.9.004 (2010-03-31) - - Patch #979681 "GetCharWidth - default character width" was applied (bugfix). - -4.9.003 (2010-03-30) - - Problem of first
    on multiple columns was fixed. - - HTML line alignment was fixed. - - A QR-code bug was fixed. - -4.9.002 (2010-03-29) - - Patch #2978349 "$ignore_min_height is ignored in function Cell()" was applied. - - Bug #2978607 "2D Barcodes are wrong" was fixed. - - A problem with HTML block tags was fixed. - - Artificial italic for CID-0 fonts was added. - - Several multicolumn bugs were fixed. - - Support for HTML tables on multicolumn was added. - -4.9.001 (2010-03-28) - - QR Code minor bug was fixed. - - Multicolumn mode was added (see the new example n. 10). - - The following methods were added: setEqualColumns(), setColumnsArray(), selectColumn(). - - Thai diacritics support were changed (note that this is incompatible with html justification). - -4.9.000 (2010-03-27) - - QR Code (2D barcode) support was added (see example n. 50). - - The following methods were added to print crop and registration marks (see example n. 56): colorRegistrationBar(), cropMark(), registrationMark(). - - Limited support for CSS line-height property was added. - - Gradient method now supports Gray, RGB and CMYK space color. - - Example n. 51 was updated. - - Vertical alignment of font inside cell was fixed. - - Support for multiple Thai diacritics was added. - - Bug item #2974929 "Duplicate case values" was fixed. - - Bug item #2976729 "File attachment not working with security" was fixed. - ------------------------------------------------------------- - -4.8.039 (2010-03-20) - - Problems related to custom locale settings were fixed. - - Problems related to HTML on Header and Footer were fixed. - -4.8.038 (2010-03-13) - - Various bugs related to page-break in HTML mode were fixed. - - Bug item #2968974 "Another

    pagebreak problem" was fixed. - - Bug item #2969276 "justification problem" was fixed. - - Bug item #2969289 "bug when using justified text and custom headers" was fixed. - - Images are now automatically resized to be contained on the page. - - Some HTML line alignments were fixed. - - Signature of AddPage() and SetMargins() methods were changed to include an option to set default page margins. - -4.8.037 (2010-03-03) - - Bug item #2962068 was fixed. - - Bug item #2967017 "Problems with and pagebreaks" was fixed. - - Bug item #2967023 "table header lost with pagebreak" was fixed. - - Bug item #2967032 "Header lost with nested tables" was fixed. - -4.8.036 (2010-02-24) - - Automatic page break for HTML images was improved. - - Example 10 was updated. - - Japanese was removed from example 8 because the freeserif font doesn't contain japanese (you can display it using arialunicid0 font). - -4.8.035 (2010-02-23) - - Automatic page break for HTML images was added. - - Support for multicolumn HTML was added (example 10 was updated). - -4.8.034 (2010-02-17) - - Language files were updated. - -4.8.033 (2010-02-12) - - A bug related to protection mode with links was fixed. - -4.8.032 (2010-02-04) - - A bug related to $maxh parameter on Write() and MultiCell() was fixed. - - Support for body tag was added. - -4.8.031 (2010-01-30) - - Bug item #2941589 "paragraph justify not working on some non-C locales" was fixed. - -4.8.030 (2010-01-27) - - Some text alignment cases were fixed. - -4.8.029 (2010-01-27) - - Bug item #2941057 "TOC Error in PDF File Output" was fixed. - - Some text alignment cases were fixed. - -4.8.028 (2010-01-26) - - Text alignment for RTL mode was fixed. - -4.8.027 (2010-01-25) - - Bug item #2938412 "Table related problems - thead, nobr, table width" was fixed. - -4.8.026 (2010-01-19) - - The misspelled word "length" was replaced with "length" in some variables and comments. - -4.8.025 (2010-01-18) - - addExtGState() method was improved to reuse existing ExtGState objects. - -4.8.024 (2010-01-15) - - Justification mode for HTML was fixed (Bug item #2932470). - -4.8.023 (2010-01-15) - - Bug item #2932470 "Some HTML entities breaks justification" was fixed. - -4.8.022 (2010-01-14) - - Source code documentation was fixed. - -4.8.021 (2010-01-03) - - A Bug relative to Table Of Content index was fixed. - -4.8.020 (2009-12-21) - - Bug item #2918545 "Display problem of the first row of a table with larger font" was fixed. - - A Bug relative to table rowspan mode was fixed. - -4.8.019 (2009-12-16) - - Bug item #2915684 "Image size" was fixed. - - Bug item #2914995 "Image jpeg quality" was fixed. - - The signature of the Image() method was changed (check the documentation for the $resize parameter). - -4.8.018 (2009-12-15) - - Bug item #2914352 "write error" was fixed. - -4.8.017 (2009-11-27) - - THEAD problem when table is used on header/footer was fixed. - - A first line alignment on HTML justification was fixed. - - Method getImageFileType() was added. - - Images with unknown extension and type are now supported via ImageMagick PHP extension. - -4.8.016 (2009-11-21) - - Document Information Dictionary was fixed. - - CSS attributes 'page-break-before', 'page-break-after' and 'page-break-inside' are now supported. - - Problem of unclosed last page was fixed. - - Problem of 'thead' unnecessarily repeated on the next page was fixed. - -4.8.015 (2009-11-20) - - A problem with some PNG transparency images was fixed. - - Bug #2900762 "Sort issues in Bookmarks" was fixed. - - Text justification was fixed for various modes: underline, strikeout and background. - -4.8.014 (2009-11-04) - - Bug item #2891316 "writeHTML, underlining replacing spaces" was fixed. - - The handling of temporary RTL text direction mode was fixed. - -4.8.013 (2009-10-26) - - Bug item #2884729 "Problem with word-wrap and hyphen" was fixed. - -4.8.012 (2009-10-23) - - Table cell alignments for RTL booklet mode were fixed. - - Images and barcode alignments for booklet mode were fixed. - -4.8.011 (2009-10-22) - - DejaVu fonts were updated to latest version. - -4.8.010 (2009-10-21) - - Bookmark for TOC page was added. - - Signature of addTOC() method is changed. - - Bookmarks are now automatically sorted by page and Y position. - - Example n. 45 was updated. - - Example n. 55 was added to display all charactes available on core fonts. - -4.8.009 (2009-09-30) - - Compatibility with PHP 5.3 was improved. - - All examples were updated. - - Index file for examples was added. - -4.8.008 (2009-09-29) - - Example 49 was updated. - - Underline and linethrough now works with cell stretching mode. - -4.8.007 (2009-09-23) - - Infinite loop problem caused by nobr attribute was fixed. - -4.8.006 (2009-09-23) - - Bug item #2864522 "No images if DOCUMENT_ROOT=='/'" was fixed. - - Support for text-indent CSS attribute was added. - - Method rollbackTransaction() was changed to support self-reassignment of previous object (check source code documentation). - - Support for the HTML "nobr" attribute was added to avoid splitting a table or a table row on two pages (i.e.: ...). - -4.8.005 (2009-09-17) - - A bug relative to multiple transformations and annotations was fixed. - -4.8.004 (2009-09-16) - - A bug on _putannotsrefs() method was fixed. - -4.8.003 (2009-09-15) - - Bug item #2858754 "Division by zero" was fixed. - - A bug relative to HTML list items was fixed. - - A bug relative to form fields on multiple pages was fixed. - - PolyLine() method was added (see example n. 12). - - Signature of Polygon() method was changed. - -4.8.002 (2009-09-12) - - A problem related to CID-0 fonts offset was fixed: if the $cw[1] entry on the CID-0 font file is not defined, then a CID keys offset is introduced. - -4.8.001 (2009-09-09) - - The appearance streams (AP) for anotations form fields was fixed (see examples n. 14 and 54). - - Radiobuttons were fixed. - -4.8.000 (2009-09-07) - - This version includes some support for Forms fields (see example n. 14) and XHTML forms (see example n. 54). - - The following methods were changed to work without JavaScript: TextField(), RadioButton(), ListBox(), ComboBox(), CheckBox(), Button(). - - Support for Widget annotations was improved. - - Alignment of annotation objects was fixed (examples 36 and 41 were updated). - - addJavascriptObject() method was added. - - Signature of Image() method was changed. - - htmlcolors.php file was updated. - ------------------------------------------------------------- - -4.7.003 (2009-09-03) - - Support for TCPDF methods on HTML was improved (see example n. 49). - -4.7.002 (2009-09-02) - - Bug item #2848892 "writeHTML + table: Gaps between rows" was fixed. - - JavaScript support was fixed (see example n. 53). - -4.7.001 (2009-08-30) - - The Polygon() and Arrow() methods were fixed and improved (see example n. 12). - -4.7.000 (2009-08-29) - - This is a major release. - - Some procedures were internally optimized. - - The problem of mixed signature and annotations was fixed (example n. 52). - -4.6.030 (2009-08-29) - - IMPORTANT: percentages on table cell widths are now relative to the full table width (as in standard HTML). - - Various minor bugs were fixed. - - Example n. 52 (digital signature) was updated. - -4.6.029 (2009-08-26) - - PHP4 version was fixed. - -4.6.028 (2009-08-25) - - Signature algorithm was finally fixed (see example n. 52). - -4.6.027 (2009-08-24) - - TCPDF now supports unembedded TrueTypeUnicode Fonts (just comment the $file entry on the fonts' php file. - -4.6.026 (2009-08-21) - - Bug #2841693 "Problem with MultiCell and ishtml and justification" was fixed. - - Signature functions were improved but not yet fixed (tcpdf.crt and example n. 52 were updated). - -4.6.025 (2009-08-17) - - Carriage returns (\r) were removed from source code. - - Problem related to set_magic_quotes_runtime() depracated was fixed. - -4.6.024 (2009-08-07) - - Bug item #2833556 "justification using other units than mm" was fixed. - - Documentation was fixed/updated. - -4.6.023 (2009-08-02) - - Bug item #2830537 "MirrorH can show mask for transparent PNGs" was fixed. - -4.6.022 (2009-07-24) - - A bug relative to single line printing when using WriteHTMLCell() was fixed. - - Signature support were improved but is still experimental. - - Fonts Free and Dejavu were updated to latest versions. - -4.6.021 (2009-07-20) - - Bug item #2824015 "XHTML Ampersand & in hyperlink bug" was fixed. - - Bug item #2824036 "Image as hyperlink in table, text displaced at page break" was fixed. - - Links alignment on justified text was fixed. - - Unicode "\u" modifier was added to re_spaces variable by default. - -4.6.020 (2009-07-16) - - Bug item #2821921 "issue in example 18" was fixed. - - Signature of SetRTL() method was changed. - -4.6.019 (2009-07-13) - - Bug item #2820703 "xref table broken" was fixed. - -4.6.018 (2009-07-10) - - Bug item #2819319 "Text over text" was fixed. - - Method Arrow() was added to print graphic arrows (example 12 was updated). - -4.6.017 (2009-07-05) - - Bug item #2816079 "Example 48 not working" was fixed. - - The signature of the checkPageBreak() was changed. The parameter $addpage was added to turn off the automatic page creation. - -4.6.016 (2009-06-16) - - Method setSpacesRE() was added to set the regular expression used for detecting withespaces or word separators. If you are using chinese, try: setSpacesRE('/[\s\p{Z}\p{Lo}]/');, otherwise you can use setSpacesRE('/[\s\p{Z}]/'); - - The method _putinfo() now automatically fills the metadata with '?' in case of empty string. - -4.6.015 (2009-06-11) - - Bug #2804667 "word wrap bug" was fixed. - -4.6.014 (2009-06-04) - - Bug #2800931 "Table thead tag bug" was fixed. - - A bug related to
     tag was fixed.
    -
    -4.6.013 (2009-05-28)
    -	- List bullets position was fixed for RTL languages.
    -
    -4.6.012 (2009-05-23)
    -	- setUserRights() method doesn't work anymore unless you call the setSignature() method with the Adobe private key!
    -
    -4.6.011 (2009-05-18)
    -	- Signature of the Image() method was changed to include the new $fitbox parameter (see source code documentation).
    -
    -4.6.010 (2009-05-17)
    -	- Image() method was improved: now is possible to specify the maximum dimensions for a constraint box defined by $w and $h parameters, and setting the $resize parameter to null.
    -	-  tag indent problem was fixed.
    -	- $y parameter was added to checkPageBreak() method.
    -	- Bug n. 2791773 "writeHTML" was fixed.
    -
    -4.6.009 (2009-05-13)
    -	- xref table for embedded files was fixed.
    -
    -4.6.008 (2009-05-07)
    -	- setSignature() method was improved (but is still experimental).
    -	- Example n. 52 was added.
    -
    -4.6.007 (2009-05-05)
    -	- Bug #2786685 "writeHtmlCell and 
    in custom footer" was fixed. - - Table header repeating bug was fixed. - - Some newlines and tabs are now automatically removed from HTML strings. - -4.6.006 (2009-04-28) - - Support for "..." was added. - - By default TCPDF requires PCRE Unicode support turned on but now works also without it (with limited ability to detect some Unicode blank spaces). - -4.6.005 (2009-04-25) - - Points (pt) conversion in getHTMLUnitToUnits() was fixed. - - Default tcpdf.pem certificate file was added. - - Experimental support for signing document was added but it is not yet completed (some help is needed - I think that the calculation of the ByteRange is OK and the problem is on the signature calculation). - -4.6.004 (2009-04-23) - - Method deletePage() was added to delete pages (see example n. 44). - -4.6.003 (2009-04-21) - - The caching mechanism of the UTF8StringToArray() method was fixed. - -4.6.002 (2009-04-20) - - Documentation of rollbackTransaction() method was fixed. - - The setImageScale() and getImageScale() methods now set and get the adjusting parameter used by pixelsToUnits() method. - - HTML images now support other units of measure than pixels (getHTMLUnitToUnits() is now used instead of pixelsToUnits()). - - WARNING: PDF_IMAGE_SCALE_RATIO has been changed by default to 1. - -4.6.001 (2009-04-17) - - Spaces between HTML block tags are now automatically removed. - - The bug related to cMargin changes between tables was fixed. - -4.6.000 (2009-04-16) - - WARNING: THIS VERSION CHANGES THE BEHAVIOUR OF $x and $y parameters for several TCPDF methods: - zero coordinates for $x and $y are now valid coordinates; - set $x and $y as empty strings to get the current value. - - Some error caused by 'empty' function were fixed. - - Default color for convertHTMLColorToDec() method was changed to white and the return value for invalid color is false. - - HTML on footer bug was fixed. - - The following examples were fixed: 5,7,10,17,19,20,21,33,42,43. - -4.5.043 (2009-04-15) - - Barcode class (barcode.php) was extended to include new linear barcode types (see example n. 27): - C39 : CODE 39 - ANSI MH10.8M-1983 - USD-3 - 3 of 9 - C39+ : CODE 39 with checksum - C39E : CODE 39 EXTENDED - C39E+ : CODE 39 EXTENDED + CHECKSUM - C93 : CODE 93 - USS-93 - S25 : Standard 2 of 5 - S25+ : Standard 2 of 5 + CHECKSUM - I25 : Interleaved 2 of 5 - I25+ : Interleaved 2 of 5 + CHECKSUM - C128A : CODE 128 A - C128B : CODE 128 B - C128C : CODE 128 C - EAN2 : 2-Digits UPC-Based Extension - EAN5 : 5-Digits UPC-Based Extension - EAN8 : EAN 8 - EAN13 : EAN 13 - UPCA : UPC-A - UPCE : UPC-E - MSI : MSI (Variation of Plessey code) - MSI+ : MSI + CHECKSUM (modulo 11) - POSTNET : POSTNET - PLANET : PLANET - RMS4CC : RMS4CC (Royal Mail 4-state Customer Code) - CBC (Customer Bar Code) - KIX : KIX (Klant index - Customer index) - IMB: Intelligent Mail Barcode - Onecode - USPS-B-3200 (NOTE: requires BCMath PHP extension) - CODABAR : CODABAR - CODE11 : CODE 11 - PHARMA : PHARMACODE - PHARMA2T : PHARMACODE TWO-TRACKS - -4.5.042 (2009-04-15) - - Method Write() was fixed for the strings containing only zero value. - -4.5.041 (2009-04-14) - - Barcode methods were fixed. - -4.5.040 (2009-04-14) - - Method Write() was fixed to handle empty strings. - -4.5.039 (2009-04-11) - - Support for linear barcodes was extended (see example n. 27 and barcodes.php documentation). - -4.5.038 (2009-04-10) - - Write() method was improved to support separators for Japanese, Korean, Chinese Traditional and Chinese Simplified. - -4.5.037 (2009-04-09) - - General performances were improved. - - The signature of the method utf8Bidi() was changed. - - The method UniArrSubString() was added. - - Experimental support for 2D barcodes were added (see example n. 50 and 2dbarcodes.php class). - -4.5.036 (2009-04-03) - - TCPDF methods can be called inside the HTML code (see example n. 49). - - All tag attributes, such as

    must be enclosed within double quotes. - -4.5.035 (2009-03-28) - - Bug #2717436 "writeHTML rowspan problem (continued)" was fixed. - - Bug #2719090 "writeHTML fix follow up" was fixed. - - The method _putuserrights() was changed to avoid Adobe Reader 9.1 crash. This broken the 'trick' that was used to display forms in Acrobat Reader. - -4.5.034 (2009-03-27) - - Bug #2716914 "Bug writeHTML of a table in body and footer related with pb" was fixed. - - Bug #2717056 ] "writeHTML problem when setting tr style" was fixed. - - The signature of the Cell() method was changed. - -4.5.033 (2009-03-27) - - The support for rowspan/colspan on HTML tables was improved (see example n. 48). - -4.5.032 (2009-03-23) - - setPrintFooter(false) bug was fixed. - -4.5.031 (2009-03-20) - - Table header support was extended to multiple pages. - -4.5.030 (2009-03-20) - - thead tag is now supported on HTML tables (header rows are repeated after page breaks). - - The startTransaction() was improved to autocommit. - - List bullets now uses the foreground color (putHtmlListBullet()). - -4.5.029 (2009-03-19) - - The following methods were added to UNDO commands (see example 47): startTransaction(), commitTransaction(), rollbackTransaction(). - - All examples were updated. - -4.5.028 (2009-03-18) - - Bug #2690945 "List Bugs" was fixed. - - HTML text alignment on lists was fixed. - - The constant PDF_FONT_MONOSPACED was added to the configuration file to define the default monospaced font. - - The following methods were fixed: getPageWidth(), getPageHeight(), getBreakMargin(). - - All examples were updated. - -4.5.027 (2009-03-16) - - Method getPageDimensions() was added to get page dimensions. - - The signature of the following methos were changed: getPageWidth(), getPageHeight(), getBreakMargin(). - - _parsepng() method was fixed for PNG URL images (fread bug). - -4.5.026 (2009-03-11) - - Bug #2681793 affecting URL images with spaces was fixed. - -4.5.025 (2009-03-10) - - A small bug affecting hyphenation support was fixed. - - The method SetDefaultMonospacedFont() was added to define the default monospaced font. - -4.5.024 (2009-03-07) - - The bug #2666493 was fixed "Footer corrupts document". - -4.5.023 (2009-03-06) - - The bug #2666688 was fixed "Rowspan in tables". - -4.5.022 (2009-03-05) - - The bug #2659676 was fixed "refer to #2157099 test 4 < BR > problem still not fixed". - - addTOC() function bug was fixed. - -4.5.020 (2009-03-03) - - The following bug was fixed: "function removeSHY corrupts unicode". - -4.5.019 (2009-02-28) - - The problem of decimal separator using different locale was fixed. - - The text hyphenation is now supported (see example n. 46). - -4.5.018 (2009-02-26) - - The _destroy() method was added to unset all class variables and frees memory. - - Now it's possible to call Output() method multiple times. - -4.5.017 (2009-02-24) - - A minor bug that raises a PHP warning was fixed. - -4.5.016 (2009-02-24) - - Bug item #2631200 "getNumLines() counts wrong" was fixed. - - Multiple attachments bug was fixed. - - All class variables are now cleared on Output() for memory otpimization. - -4.5.015 (2009-02-18) - - Bug item #2612553 "function Write() must not break a line on   character" was fixed. - -4.5.014 (2009-02-13) - - Bug item #2595015 "POSTNET Barcode Checksum Error" was fixed (on barcode.php). - - Pagebreak bug for barcode was fixed. - -4.5.013 (2009-02-12) - - border attribute is now supported on HTML images (only accepts the same values accepted by Cell()). - -4.5.012 (2009-02-12) - - An error on image border feature was fixed. - -4.5.011 (2009-02-12) - - HTML links for images are now supported. - - height attribute is now supported on HTML cells. - - $border parameter was added to Image() and ImageEps() methods. - - The method getNumLines() was added to estimate the number of lines required for the specified text. - -4.5.010 (2009-01-29) - - Bug n. 2546108 "BarCode Y position" was fixed. - -4.5.009 (2009-01-26) - - Bug n. 2538094 "Empty pdf file created" was fixed. - -4.5.008 (2009-01-26) - - setPage() method was fixed to correctly restore graphic states. - - Source code was cleaned up for performances. - -4.5.007 (2009-01-24) - - checkPageBreak() and write1DBarcode() methods were fixed. - - Source code was cleaned up for performances. - - barcodes.php was updated. - -4.5.006 (2009-01-23) - - getHTMLUnitToPoints() method was replaced by getHTMLUnitToUnits() to fix HTML units bugs. - -4.5.005 (2009-01-23) - - Page closing bug was fixed. - -4.5.004 (2009-01-21) - - The access of convertHTMLColorToDec() method was changed to public - - Fixed bug on UL tag. - -4.5.003 (2009-01-19) - - Fonts on different folders are now supported. - -4.5.002 (2009-01-07) - - addTOC() function was improved (see example n. 45). - -4.5.001 (2009-01-04) - - The signature of startPageGroup() function was changed. - - Method Footer() was improved to automatically print page or page-group number (see example n. 23). - - Protected method formatTOCPageNumber() was added to customize the format of page numbers on the Table Of Content. - - The signature of addTOC() was changed to include the font used for page numbers. - -4.5.000 (2009-01-03) - - A new $diskcache parameter was added to class constructor to enable disk caching and reduce RAM memory usage (see example n. 43). - - The method movePageTo() was added to move pages to previous positions (see example n. 44). - - The methods getAliasNumPage() and getPageNumGroupAlias() were added to get the alias for page number (needed when using movepageTo()). - - The methods addTOC() was added to print a Table Of Content (see example n. 45). - - Imagick class constant was removed for better compatibility with PHP4. - - All existing examples were updated and new examples were added. - -4.4.009 (2008-12-29) - - Examples 1 and 35 were fixed. - -4.4.008 (2008-12-28) - - Bug #2472169 "Unordered bullet size not adjusted for unit type" was fixed. - -4.4.007 (2008-12-23) - - Bug #2459935 "no unit conversion for header line" was fixed. - - Example n. 42 for image alpha channel was added. - - All examples were updated. - -4.4.006 (2008-12-11) - - Method setLIsymbol() was changed to reflect latest changes in HTML list handling. - -4.4.005 (2008-12-10) - - Bug item #2413870 "ordered list override value" was fixed. - -4.4.004 (2008-12-10) - - The protected method getHTMLUnitToPoints() was added to accept various HTML units of measure (em, ex, px, in, cm, mm, pt, pc, %). - - The method intToRoman() was added to convert integer number to Roman representation. - - Support fot HTML lists was improved: the CSS property list-style-type is now supported. - -4.4.003 (2008-12-09) - - Bug item #2412147 "Warning on line 3367" was fixed. - - Method setHtmlLinksStyle() was added to set default HTML link colors and font style. - - Method addHtmlLink() was changed to use color and style defined on the inline CSS. - -4.4.002 (2008-12-09) - - Borders on Multicell() were fixed. - - Problem of Multicell() on Header function (Bug item #2407579) was fixed. - - Problem on graphics tranformations applied to Multicell() was fixed. - - Support for ImageMagick was added. - - Width calculation for nested tables was fixed. - -4.4.001 (2008-12-08) - - Some missing core fonts were added on fonts directory. - - CID0 fonts rendering was fixed. - - HTML support was improved (

     and  tags are now supported).
    -	- Bug item #2406022 "Left padding bug in MultiCell with maxh" was fixed.
    -
    -4.4.000 (2008-12-07)
    -	- File attachments are now supported (see example n. 41).
    -	- Font functions were optimized to reduce document size.
    -	- makefont.php was updated.
    -	- Linux binaries were added on /fonts/utils
    -	- All fonts were updated.
    -	- $autopadding parameter was added to Multicell() to disable automatic padding features.
    -	- $maxh parameter was added to Multicell() and Write() to set a maximum height.
    -
    -4.3.009 (2008-12-05)
    -	- Bug item #2392989 (Custom header + setlinewidth + cell border bug) was fixed.
    -
    -4.3.008 (2008-12-05)
    -	- Bug item #2390566 "rect bug" was fixed.
    -	- File path was fixed for font embedded files.
    -	- SetFont() method signature was changed to include the font filename.
    -	- Some font-related methods were improved.
    -	- Methods getFontFamily() and getFontStyle() were added.
    -
    -4.3.007 (2008-12-03)
    -	- PNG alpha channel is now supported (GD library is required).
    -	- AddFont() function now support custom font file path on $file parameter.
    -	- The default width variable ($dw) is now always defined for any font.
    -	- The 'Style' attribute on CID-0 fonts was removed because of protection bug.
    -
    -4.3.006 (2008-12-01)
    -	- A regular expression on getHtmlDomArray() to find HTML tags was fixed.
    -
    -4.3.005 (2008-11-25)
    -	- makefont.php was fixed.
    -	- Bug item #2339877 was fixed (false loop condition detected on WriteHTML()).
    -	- Bug item #2336733 was fixed (lasth value update on Multicell() when border and fill are disabled).
    -	- Bug item #2342303 was fixed (automatic page-break on Image() and ImageEPS()).
    -
    -4.3.004 (2008-11-19)
    -	- Function _textstring() was fixed (bug 2309051).
    -	- All examples were updated.
    -
    -4.3.003 (2008-11-18)
    -	- CID-0 font bug was fixed.
    -	- Some functions were optimized.
    -	- Function getGroupPageNoFormatted() was added.
    -	- Example n. 23 was updated.
    -
    -4.3.002 (2008-11-17)
    -	- Bug item #2305518 "CID-0 font don't work with encryption" was fixed.
    -
    -4.3.001 (2008-11-17)
    -	- Bug item #2300007 "download mimetype pdf" was fixed.
    -	- Double quotes were replaced by single quotes to improve PHP performances.
    -	- A bug relative to HTML cell borders was fixed.
    -
    -4.3.000 (2008-11-14)
    -	- The function setOpenCell() was added to set the top/bottom cell sides to be open or closed when the cell cross the page.
    -	- A bug relative to list items indentation was fixed.
    -	- A bug relative to borders on HTML tables and Multicell was fixed.
    -	- A bug relative to rowspanned cells was fixed.
    -	- A bug relative to html images across pages was fixed.
    -
    -4.2.009 (2008-11-13)
    -	- Spaces between li tags are now automatically removed.
    -
    -4.2.008 (2008-11-12)
    -	- A bug relative to fill color on next page was fixed.
    -
    -4.2.007 (2008-11-12)
    -	- The function setListIndentWidth() was added to set custom indentation widht for HTML lists.
    -
    -4.2.006 (2008-11-06)
    -	- A bug relative to HTML justification was fixed.
    -
    -4.2.005 (2008-11-06)
    -	- A bug relative to HTML justification was fixed.
    -	- The methods formatPageNumber() and PageNoFormatted() were added to format page numbers.
    -	- Default Footer() method was changed to use PageNoFormatted() instead of PageNo().
    -	- Example 6 was updated.
    -
    -4.2.004 (2008-11-04)
    -	- Bug item n. 2217039 "filename handling improvement" was fixed.
    -
    -4.2.003 (2008-10-31)
    -	- Font style bug was fixed.
    -
    -4.2.002 (2008-10-31)
    -	- Bug item #2210922 (htm element br not work) was fixed.
    -	- Write() function was improved to support margin changes.
    -
    -4.2.001 (2008-10-30)
    -	- setHtmlVSpace($tagvs) function was added to set custom vertical spaces for HTML tags.
    -	- writeHTML() function now support margin changes during execution.
    -	- Signature of addHTMLVertSpace() function is changed.
    -
    -4.2.000 (2008-10-29)
    -	- htmlcolors.php was changed to support class-loaders.
    -	- ImageEps() function was improved in performances.
    -	- Signature of Link() And Annotation() functions were changed.
    -	- (Bug item #2198926) Links and Annotations alignment were fixed (support for geometric tranformations was added).
    -	- rowspan mode for HTML table cells was improved and fixed.
    -	- Booklet mode for double-sided pages was added; see SetBooklet() function and example n. 40.
    -	- lastPage() signature is changed.
    -	- Signature of Write() function is changed.
    -	- Some HTML justification problems were fixed.
    -	- Some functions were fixed to better support RTL mode.
    -	- Example n. 10 was changed to support RTL mode.
    -	- All examples were updated.
    -
    -4.1.004 (2008-10-23)
    -	- unicode_data.php was changed to support class-loaders.
    -	- Bug item #2186040/2 (writeHTML margin problem) was fixed.
    -
    -4.1.003 (2008-10-22)
    -	- Bug item #2185399 was fixed (rowspan and page break).
    -	- Bugs item #2186040 was fixed (writeHTML margin problem).
    -	- Newline after table was removed.
    -
    -4.1.002 (2008-10-21)
    -	- Bug item #2184525 was fixed (rowspan on HTML cell).
    -
    -4.1.001 (2008-10-21)
    -	- Support for "start" attribute was added to HTML ordered list.
    -	- unicode_data.php file was changed to include UTF-8 to ASCII table.
    -	- Some functions were modified to better support UTF-8 extensions to core fonts.
    -	- Support for images on HTML lists was improved.
    -	- Examples n. 1 and 6 were updated.
    -
    -4.1.000 (2008-10-18)
    -	- Page-break bug using HTML content was fixed.
    -	- The "false" parameter was reintroduced to class_exists function on PHP5 version to avoid autoload.
    -	- addHtmlLink() function was improved to support internal links (i.e.: link to page 23).
    -	- Justification alignment is now supported on HTML (see example n. 39).
    -	- example_006.php was updated.
    -
    -4.0.033 (2008-10-13)
    -	- Bug n. 2157099 was fixed.
    -	- SetX() and SetY() functions were improved.
    -	- SetY() includes a new parameter to avoid the X reset.
    -
    -4.0.032 (2008-10-10)
    -	- Bug n. 2156926 was fixed (bold, italic, underlined, linethrough).
    -	- setStyle() method was removed.
    -	- Configuration file was changed to use helvetica (non-unicode) font by default.
    -	- The use of mixed font types was improved.
    -	- All examples were updated.
    -
    -4.0.031 (2008-10-09)
    -	- _putannots() and _putbookmarks() links alignments were fixed.
    -
    -4.0.030 (2008-10-07)
    -	- _putbookmarks() function was fixed.
    -	- _putannots() was fixed to include internal links.
    -
    -4.0.029 (2008-09-27)
    -	- Infinite loop bug was fixed [Bug item #130309].
    -	- Multicell() problem on Header() was fixed.
    -
    -4.0.028 (2008-09-26)
    -	- setLIsymbol() was added to set the LI symbol used on UL lists.
    -	- Missing $padding and $encryption_key variables declarations were added [Bug item #2129058].
    -
    -4.0.027 (2008-09-19)
    -	- Bug #2118588 "Undefined offset in tcpdf.php on line 9581" was fixed.
    -	- arailunicid0.php font was updated.
    -	- The problem of javascript form fields duplication after saving was fixed.
    -
    -4.0.026 (2008-09-17)
    -	- convertHTMLColorToDec() function was improved to support rgb(RR,GG,BB) notation.
    -	- The following inline CSS attributes are now supported: text-decoration, color, background-color and font-size names: xx-small, x-small, small, medium, large, x-large, xx-large
    -	- Example n. 6 was updated.
    -
    -4.0.025 (2008-09-15)
    -	- _putcidfont0 function was improved to include CJK fonts (Chinese, Japanese, Korean, CJK, Asian fonts) without embedding.
    -	- arialunicid0 font was added (see the new example n. 38).
    -	- The following Unicode to CID-0 tables were added on fonts folder: uni2cid_ak12.php, uni2cid_aj16.php, uni2cid_ag15.php, uni2cid_ac15.php.
    -
    -4.0.024 (2008-09-12)
    -	- "stripos" function was replaced with "strpos + strtolower" for backward compatibility with PHP4.
    -	- support for Spot Colors were added. Check the new example n. 37 and the following new functions:
    -		AddSpotColor()
    -		SetDrawSpotColor()
    -		SetFillSpotColor()
    -		SetTextSpotColor()
    -		_putspotcolors()
    -	- Bookmark() function was improved to fix wrong levels.
    -	- $lasth changes after header/footer calls were fixed.
    -
    -4.0.023 (2008-09-05)
    -	- Some HTML related problems were fixed.
    -	- Image alignment on HTML was changed, now it always defaults to the normal mode (see example_006.php).
    -
    -4.0.022 (2008-08-28)
    -	- Line height on HTML was fixed.
    -	- Image inside an HTML cell problem was fixed.
    -	- A new "zarbold" persian font was added.
    -
    -4.0.021 (2008-08-24)
    -	- HTTP headers were fixed on Output function().
    -	- getAliasNbPages() and getPageGroupAlias() functions were changed to support non-unicode fonts on unicode documents.
    -	- Function Write() was fixed.
    -	- The problem of additional vertical spaces on HTML was fixed.
    -	- The problem of frame around HTML links was fixed.
    -
    -4.0.020 (2008-08-15)
    -	- "[2052259] WriteHTML  & " bug was fixed.
    -
    -4.0.019 (2008-08-13)
    -	- "Rowspan on first cell" bug was fixed.
    -
    -4.0.018 (2008-08-08)
    -	- Default cellpadding for HTML tables was fixed.
    -	- Annotation() function was added to support some PDF annotations (see example_036.php and section 8.4 of PDF reference 1.7).
    -	- HTML links are now correclty shifted during line alignments.
    -	- function getAliasNbPages() was added and Footer() was updated.
    -	- RowSpan mode for HTML tables was fixed.
    -	- Bugs item #2043610 "Multiple sizes vertical align wrong" was fixed.
    -	- ImageEPS() function was improved and RTL alignment was fixed (see example_032.php).
    -
    -4.0.017 (2008-08-05)
    -	- Missing CNZ and CEO style modes were added to Rect() function.
    -	- Fonts utils were updated to include support for OpenType fonts.
    -	- getLastH() function was added.
    -
    -4.0.016 (2008-07-30)
    -	- setPageMark() function was added. This function must be called after calling Image() function for a background image.
    -
    -4.0.015 (2008-07-29)
    -	- Some functions were changed to support different page formats (see example_028.php).
    -	- The signature of setPage() function is changed.
    -
    -4.0.014 (2008-07-29)
    -	- K_PATH_MAIN calculation on tcpdf_config.php was fixed.
    -	- HTML support for EPS/AI images was added (see example_006.php).
    -	- Bugs item #2030807 "Truncated text on multipage html fields" was fixed.
    -	- PDF header bug was fixed.
    -	- helvetica was added as default font family.
    -	- Stroke mode was fixed on Text function.
    -	- several minor bugs were fixed.
    -
    -4.0.013 (2008-07-27)
    -	- Bugs item #2027799 " Big spaces between lines after page break" was fixed.
    -	- K_PATH_MAIN calculation on tcpdf_config.php was changed.
    -	- Function setVisibility() was fixed to avoid the "Incorrect PDEObject type" error message.
    -
    -4.0.012 (2008-07-24)
    -	- Addpage(), Header() and Footer() functions were changed to simplify the implementation of external header/footer functions.
    -	- The following functions were added:
    -			setHeader()
    -			setFooter()
    -			getImageRBX()
    -			getImageRBY()
    -			getCellHeightRatio()
    -			getHeaderFont()
    -			getFooterFont()
    -			getRTL()
    -			getBarcode()
    -			getHeaderData()
    -			getHeaderMargin()
    -			getFooterMargin()
    -
    -4.0.011 (2008-07-23)
    -	- Font support was improved.
    -	- The folder /fonts/utils contains new utilities and instructions for embedd font files.
    -	- Documentation was updated.
    -
    -4.0.010 (2008-07-22)
    -	- HTML tables were fixed to work across pages.
    -	- Header() and Footer() functions were updated to preserve previous settings.
    -	- example_035.php was added.
    -
    -4.0.009 (2008-07-21)
    -	- UTF8StringToArray() function was fixed for non-unicode mode.
    -
    -4.0.008 (2008-07-21)
    -	- Barcodes alignment was fixed (see example_027.php).
    -	- unicode_data.php was updated.
    -	- Arabic shaping for "Zero-Width Non-Joiner" character (U+200C) was fixed.
    -
    -4.0.007 (2008-07-18)
    -	- str_split was replaced by preg_split for compatibility with PHP4 version.
    -	- Clipping mode was added to all graphic functions by using parameter $style = "CNZ" or "CEO" (see example_034.php).
    -
    -4.0.006 (2008-07-16)
    -	- HTML rowspan bug was fixed.
    -	- Line style for MultiCell() was fixed.
    -	- WriteHTML() function was improved.
    -	- CODE128C barcode was fixed (barcodes.php).
    -
    -4.0.005 (2008-07-11)
    -	- Bug [2015715] "PHP Error/Warning" was fixed.
    -
    -4.0.004 (2008-07-09)
    -	- HTML cell internal padding was fixed.
    -
    -4.0.003 (2008-07-08)
    -	- Removed URL encoding when F option is selected on Output() function.
    -	- fixed some minor bugs in html tables.
    -
    -4.0.002 (2008-07-07)
    -	- Bug [2000861] was still unfixed and has been fixed.
    -
    -4.0.001 (2008-07-05)
    -	- Bug [2000861] was fixed.
    -
    -4.0.000 (2008-07-03)
    -	- THIS IS A MAIN RELEASE THAT INCLUDES SEVERAL NEW FEATURES AND BUGFIXES
    -	- Signature fo SetTextColor() and SetFillColor() functions was changed (parameter $storeprev was removed).
    -	- HTML support was completely rewritten and improved (see example 6).
    -	- Alignments parameters were fixed.
    -	- Functions GetArrStringWidth() and GetStringWidth() now include font parameters.
    -	- Fonts support was improved.
    -	- All core fonts were replaced and moved to fonts/ directory.
    -	- The following functions were added: getMargins(), getFontSize(), getFontSizePt().
    -	- File config/tcpdf_config_old.php was renamed tcpdf_config_alt.php and updated.
    -	- Multicell and WriteHTMLCell fill function was fixed.
    -	- Several minor bugs were fixed.
    -	- barcodes.php was updated.
    -	- All examples were updated.
    -
    -------------------------------------------------------------
    -
    -3.1.001 (2008-06-13)
    -	- Bug [1992515] "K_PATH_FONTS default value wrong" was fixed.
    -	- Vera font was removed, DejaVu font and Free fonts were updated.
    -	- Image handling was improved.
    -	- All examples were updated.
    -
    -3.1.000 (2008-06-11)
    -	- setPDFVersion() was added to change the default PDF version (currently 1.7).
    -	- setViewerPreferences() was added to control the way the document is to be presented on the screen or printed (see example 29).
    -	- SetDisplayMode() signature was changed (new options were added).
    -	- LinearGradient(), RadialGradient(), CoonsPatchMesh() functions were added to print various color gradients (see example 30).
    -	- PieSector() function was added to render render pie charts (see example 31).
    -	- ImageEps() was added to display EPS and AI images with limited support (see example 32).
    -	- writeBarcode() function is now depracated, a new write1DBarcode() function was added. The barcode directory was removed and a new barcodes.php file was added.
    -	- The new write1DBarcode() function support more barcodes and do not need the GD library (see example 027). All barcodes are directly written to PDF using graphic functions.
    -	- HTML lists were improved and could be nested (you may now represent trees).
    -	- AddFont() bug was fixed.
    -	- _putfonts() bug was fixed.
    -	- graphics functions were fixed.
    -	- unicode_data.php file was updated (fixed).
    -	- almohanad font was updated.
    -	- example 18 was updated (Farsi and Arabic languages).
    -	- source code cleanup.
    -	- All examples were updated and new examples were added.
    -
    -3.0.015 (2008-06-06)
    -	- AddPage() function signature is changed to include page format.
    -	- example 28 was added to show page format changes.
    -	- setPageUnit() function was added to change the page units of measure.
    -	- setPageFormat() function was added to change the page format and orientation between pages.
    -	- setPageOrientation() function was added to change the page orientation.
    -	- Arabic font shaping was fixed for laa letter and square boxes (see the example 18).
    -
    -3.0.014 (2008-06-04)
    -	- Arabic font shaping was fixed.
    -	- setDefaultTableColumns() function was added.
    -	- $cell_height_ratio variable was added.
    -	- setCellHeightRatio() function was added to define the default height of cell repect font height.
    -
    -3.0.013 (2008-06-03)
    -	- Multicell height parameter was fixed.
    -	- Arabic font shaping was improved.
    -	- unicode_data.php was updated.
    -
    -3.0.012 (2008-05-30)
    -	- K_PATH_MAIN and K_PATH_URL constants are now automatically set on config file.
    -	- DOCUMENT_ROOT constant was fixed for IIS Webserver (config file was updated).
    -	- Arabic font shaping was improved.
    -	- TranslateY() function was fixed (bug [1977962]).
    -	- setVisibility() function was fixed.
    -	- writeBarcode() function was fixed to scale using $xref parameter.
    -	- All examples were updated.
    -
    -3.0.011 (2008-05-23)
    -	- CMYK color support was added to all graphic functions.
    -	- HTML table support was improved:
    -	  -- now it's possible to include additional html tags inside a cell;
    -	  -- colspan attribute was added.
    -	- example 006 was updated.
    -
    -3.0.010 (2008-05-21)
    -	- fixed $laa_array inclusion on utf8Bidi() function.
    -
    -3.0.009 (2008-05-20)
    -	- unicode_data.php was updated.
    -	- Arabic laa letter problem was fixed.
    -
    -3.0.008 (2008-05-12)
    -	- Arabic support was fixed and improved (unicode_data.php was updated).
    -	- Polycurve() function was added to draw a poly-Bezier curve.
    -	- list items alignment was fixed.
    -	- example 6 was updated.
    -
    -3.0.007 (2008-05-06)
    -	- Arabic support was fixed and improved.
    -	- AlMohanad (arabic) font was added.
    -	- C128 barcode bugs were fixed.
    -
    -3.0.006 (2008-04-21)
    -	- Condition to check negative width values was added.
    -
    -3.0.005 (2008-04-18)
    -	- back-Slash character escape was fixed on writeHTML() function.
    -	- Exampe 6 was updated.
    -
    -3.0.004 (2008-04-11)
    -	- Bug [1939304] (Right to Left Issue) was fixed.
    -
    -3.0.003 (2008-04-07)
    -	- Bug [1934523](Words between HTML tags in cell not kept on one line) was fixed.
    -	- "face" attribute of "font" tag is now fully supported.
    -
    -3.0.002 (2008-04-01)
    -	- Write() functions now return the number of cells and not the number of lines.
    -	- TCPDF is released under LGPL 2.1, or any later version.
    -
    -3.0.001 (2008-05-28)
    -	- _legacyparsejpeg() and _legacyparsepng() were renamed _parsejpeg() and _parsepng().
    -	- function writeBarcode() was fixed.
    -	- all examples were updated.
    -	- example 27 was added to show various barcodes.
    -
    -3.0.000 (2008-03-27)
    -	- private function pixelsToMillimeters() was changed to public function pixelsToUnits() to fix html image size bug.
    -	- Image-related functions were rewritten.
    -	- resize parameter was added to Image() signature to reduce the image size and fit width and height (see example 9).
    -	- TCPDF now supports all images supported by GD library: GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM.
    -	- CMYK support was added to SetDrawColor(), SetFillColor(), SetTextColor() (see example 22).
    -	- Page Groups were added (see example 23).
    -	- setVisibility() function was added to restrict the rendering of some elements to screen or printout (see example 24).
    -	- All private variables and functions were changed to protected.
    -	- setAlpha() function was added to give transparency support for all objects (see example 25).
    -	- Clipping and stroke modes were added to Text() function (see example 26).
    -	- All examples were moved to "examples" directory.
    -	- function setJPEGQuality() was added to set the JPEG image comrpession (see example 9).
    -
    -2.9.000 (2008-03-26)
    -	- htmlcolors.php file was added to include html colors.
    -	- Support for HTML color names and three-digit hexadecimal color codes was added.
    -	- private function convertColorHexToDec() was renamed convertHTMLColorToDec().
    -	- color and bgcolor attributes are now supported on all HTML tags (color nesting is also supported).
    -	- Write() function were fixed.
    -	- example_006.php was updated.
    -	- private function setUserRights() was added to release user rights on Acrobat Reader (this allows to display forms, see example 14)
    -
    -2.8.000 (2008-03-20)
    -	- Private variables were changed to protected.
    -	- Function Write() was fixed and improved.
    -	- Support for dl, dt, dd, del HTML tags was introduced.
    -	- Line-trought mode was added for HTML and text.
    -	- Text vertical alignment on cells were fixed.
    -	- Examples were updated to reflect changes.
    -
    -2.7.002 (2008-03-13)
    -	- Bug "[1912142] Encrypted PDF created/modified date" was fixed.
    -
    -2.7.001 (2008-03-10)
    -	- Cell justification was fixed for non-unicode mode.
    -
    -2.7.000 (2008-03-09)
    -	- Cell() stretching mode 4 (forced character spacing) was fixed.
    -	- writeHTMLCell() now uses Multicell() to write.
    -	- Multicell() has a new parameter $ishtml to act as writeHTMLCell().
    -	- Write() speed was improved for non-arabic strings.
    -	- Example n. 20 was changed.
    -
    -2.6.000 (2008-03-07)
    -	- various alignments bugs were fixed.
    -
    -2.5.000 (2008-03-07)
    -	- Several bugs were fixed.
    -	- example_019.php was added to test non-unicode mode using old fonts.
    -
    -2.4.000 (2008-03-06)
    -	- RTL support was deeply improved.
    -	- GetStringWidth() was fixed to support RTL languages.
    -	- Text() RTL alignment was fixed.
    -	- Some functions were added: GetArrStringWidth(), GetCharWidth(), uniord(), utf8Bidi().
    -	- example_018.php was added and test_unicode.php was removed.
    -
    -2.3.000 (2008-03-05)
    -	- MultiCell() signature is changed. Now support multiple columns across pages (see example_017).
    -	- Write() signature is changed. Now support the cell mode to be used with MultiCell.
    -	- Header() and Footer() were changed.
    -	- The following functions were added: UTF8ArrSubString() and unichr().
    -	- Examples were updated to reflect last changes.
    -
    -2.2.004 (2008-03-04)
    -	- Several examples were added.
    -	- AddPage() Header() and Footer() were fixed.
    -	- Documentation is now available on http://www.tcpdf.org
    -
    -2.2.003 (2008-03-03)
    -	- [1894853] Performance of MultiCell() was improved.
    -	- RadioButton and ListBox functions were added.
    -	- javascript form functions were rewritten and properties names are changed. The properties function supported by form fields are listed on Possible values are listed on http://www.adobe.com/devnet/acrobat/pdfs/js_developer_guide.pdf.
    -
    -2.2.002 (2008-02-28)
    -	- [1900495] html images path was fixed.
    -	- Legacy image functions were reintroduced to allow PNG and JPEG support without GD library.
    -
    -2.2.001 (2008-02-16)
    -	- The bug "[1894700] bug with replace relative path" was fixed
    -	- Justification was fixed
    -
    -2.2.000 (2008-02-12)
    -	- fixed javascript bug introduced with latest release
    -
    -2.1.002 (2008-02-12)
    -	- Justify function was fixed on PHP4 version.
    -	- Bookmank function was added ([1578250] Table of contents).
    -	- Javascript and Form fields support was added ([1796359] Form fields).
    -
    -2.1.001 (2008-02-10)
    -	- The bug "[1885776] Race Condition in function justitfy" was fixed.
    -	- The bug "[1890217] xpdf complains that pdf is incorrect" was fixed.
    -
    -2.1.000 (2008-01-07)
    -	- FPDF_FONTPATH constant was changed to K_PATH_FONTS on config file
    -	- Bidirectional Algorithm to correctly reverse bidirectional languages was added.
    -	- SetLeftMargin, SetTopMargin, SetRightMargin functions were fixed.
    -	- SetCellPadding function was added.
    -	- writeHTML was updated with new parameters.
    -	- Text function was fixed.
    -	- MultiCell function was fixed, now works also across multiple pages.
    -	- Line width was fixed on Header and Footer functions and 
    tag. - - "GetImageSize" was renamed "getimagesize". - - Document version was changed from 1.3 to 1.5. - - _begindoc() function was fixed. - - ChangeDate was fixed and ModDate was added. - - The following functions were added: - setPage() : Move pointer to the specified document page. - getPage() : Get current document page number. - lastpage() : Reset pointer to the last document page. - getNumPages() : Get the total number of inserted pages. - GetNumChars() : count the number of (UTF-8) characters in a string. - - $stretch parameter was added to Cell() function to fit text on cell: - 0 = disabled - 1 = horizontal scaling only if necessary - 2 = forced horizontal scaling - 3 = character spacing only if necessary - 4 = forced character spacing - - Line function was fixed for RTL. - - Graphic transformation functions were added [1811158]: - StartTransform() - StopTransform() - ScaleX() - ScaleY() - ScaleXY() - Scale() - MirrorH() - MirrorV() - MirrorP() - MirrorL() - TranslateX() - TranslateY() - Translate() - Rotate() - SkewX() - SkewY() - Skew() - - Graphic function were added/updated [1688549]: - SetLineStyle() - _outPoint() - _outLine() - _outRect() - _outCurve() - Line() - Rect() - Curve - Ellipse - Circle - Polygon - RegularPolygon - -2.0.000 (2008-01-04) - - RTL (Right-To-Left) languages support was added. Language direction is set using the $l['a_meta_dir'] setting on /configure/language/xxx.php language files. - - setRTL($enable) method was added to manually enable/disable the RTL text direction. - - The attribute "dir" was added to support custom text direction on HTML tags. Possible values are: ltr - for Left-To-Right and RTL for Right-To-Left. - - RC4 40bit encryption was added. Check the SetProtection method. - - [1815213] Improved image support for GIF, JPEG, PNG formats. - - [1800094] Attribute "value" was added to ordered list items
  • . - - Image function now has a new "align" parameter that indicates the alignment of the pointer next to image insertion and relative to image height. The value can be: - T: top-right for LTR or top-left for RTL - M: middle-right for LTR or middle-left for RTL - B: bottom-right for LTR or bottom-left for RTL - N: next line - - Attribute "align" was added to html tag to set the above image "align" parameter. Possible values are: - top: top-right for LTR or top-left for RTL - middle: middle-right for LTR or middle-left for RTL - bottom: bottom-right for LTR or bottom-left for RTL - - [1798103] newline was added after , and

    tages. - - [1816393] Documentation was updated. - - 'ln' parameter was fixed on writeHTMLCell. Now it's possible to print two or more columns across several pages; - - The method lastPage() was added to move the pointer on the last page; - ------------------------------------------------------------- - -1.53.0.TC034 (2007-07-30) - - fixed htmlentities conversion. - - MultiCell() function returns the number of cells. - -1.53.0.TC033 (2007-07-30) - - fixed bug 1762550: case sensitive for font files - - NOTE: all fonts files names must be in lowercase! - -1.53.0.TC032 (2007-07-27) - - setLastH method was added to resolve bug 1689071. - - all fonts names were converted in lowercase (bug 1713005). - - bug 1740954 was fixed. - - justification was added as Cell option. - -1.53.0.TC031 (2007-03-20) - - ToUnicode CMap were added on _puttruetypeunicode function. Now you may search and copy unicode text. - -1.53.0.TC030 (2007-03-06) - - fixed bug on PHP4 version. - -1.53.0.TC029 (2007-03-06) - - DejaVu Fonts were added. - -1.53.0.TC028 (2007-03-03) - - MultiCell function signature were changed: the $ln parameter were added. Check documentation for further information. - - Greek language were added on example sentences. - - setPrintHeader() and setPrintFooter() functions were added to enable or disable page header and footer. - -1.53.0.TC027 (2006-12-14) - - $attr['face'] bug were fixed. - - K_TCPDF_EXTERNAL_CONFIG control where introduced on /config/tcpdf_config.php to use external configuration files. - -1.53.0.TC026 (2006-10-28) - - writeHTML function call were fixed on examples. - -1.53.0.TC025 (2006-10-27) - - Bugs item #1421290 were fixed (0D - 0A substitution in some characters) - - Bugs item #1573174 were fixed (MultiCell documentation) - -1.53.0.TC024 (2006-09-26) - - getPageHeight() function were fixed (bug 1543476). - - fixed missing breaks on closedHTMLTagHandler function (bug 1535263). - - fixed extra spaces on Write function (bug 1535262). - -1.53.0.TC023 (2006-08-04) - - paths to barcode directory were fixed. - - documentation were updated. - -1.53.0.TC022 (2006-07-16) - - fixed bug: [ 1516858 ] Probs with PHP autoloader and class_exists() - -1.53.0.TC021 (2006-07-01) - - HTML attributes with whitespaces are now supported (thanks to Nelson Benitez for his support) - -1.53.0.TC020 (2006-06-23) - - code cleanup - -1.53.0.TC019 (2006-05-21) - - fixed and closing tags - -1.53.0.TC018 (2006-05-18) - - fixed font names bug - -1.53.0.TC017 (2006-05-18) - - the TTF2UFM utility to convert True Type fonts for TCPDF were included on fonts folder. - - new free unicode fonts were included on /fonts/freefont. - - test_unicode.php example were exended. - - parameter $fill were added on Write, writeHTML and writeHTMLCell functions. - - documentation were updated. - -1.53.0.TC016 (2006-03-09) - - fixed closing tag on html parser. - -1.53.0.TC016 (2005-08-28) - - fpdf.php and tcpdf.php files were joined in one single class (you can still extend TCPDF with your own class). - - fixed problem when mb_internal_encoding is set. - -1.53.0.TC014 (2005-05-29) - - fixed WriteHTMLCell new page issue. - -1.53.0.TC013 (2005-05-29) - - fixed WriteHTMLCell across pages. - -1.53.0.TC012 (2005-05-29) - - font color attribute bug were fixed. - -1.53.0.TC011 (2005-03-31) - - SetFont function were fixed (thank Sjaak Lauwers for bug notice). - -1.53.0.TC010 (2005-03-22) - - the html functions were improved (thanks to Manfred Vervuert for bug reporting). - -1.53.0.TC009 (2005-03-19) - - a wrong reference to convertColorHexToDec were fixed. - -1.53.0.TC008 (2005-02-07) - - removed some extra bytes from PHP files. - -1.53.0.TC007 (2005-01-08) - - fill attribute were removed from writeHTMLCell method. - -1.53.0.TC006 (2005-01-08) - - the documentation were updated. - -1.53.0.TC005 (2005-01-05) - - Steven Wittens's unicode methods were removed. - - All unicode methods were rewritten from scratch. - - TCPDF is now licensed as LGPL. - -1.53.0.TC004 (2005-01-04) - - this changelog were added. - - removed commercial fonts for licensing issue. - - Bitstream Vera Fonts were added (http://www.bitstream.com/font_rendering/products/dev_fonts/vera.html). - - Now the AddFont and SetFont functions returns the basic font if the styled version do not exist. - -EOF -------------------------------------------------------- diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/LICENSE.TXT b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/LICENSE.TXT deleted file mode 100644 index 49147d0..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/LICENSE.TXT +++ /dev/null @@ -1,860 +0,0 @@ -********************************************************************** -* TCPDF LICENSE -********************************************************************** - - TCPDF is free software: you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation, either version 3 of the - License, or (at your option) any later version. - - 2002-2019 Nicola Asuni - Tecnick.com LTD - -********************************************************************** -********************************************************************** - - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. - -********************************************************************** -********************************************************************** - - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. - -********************************************************************** -********************************************************************** diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/README.md b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/README.md deleted file mode 100644 index 734b987..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/README.md +++ /dev/null @@ -1,84 +0,0 @@ -# TCPDF -*PHP PDF Library* - -[![Donate via PayPal](https://img.shields.io/badge/donate-paypal-87ceeb.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations¤cy_code=GBP&business=paypal@tecnick.com&item_name=donation%20for%20TCPDF%20project) -*Please consider supporting this project by making a donation via [PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_donations¤cy_code=GBP&business=paypal@tecnick.com&item_name=donation%20for%20TCPDF%20project)* - -* **category** Library -* **author** Nicola Asuni -* **copyright** 2002-2019 Nicola Asuni - Tecnick.com LTD -* **license** http://www.gnu.org/copyleft/lesser.html GNU-LGPL v3 (see LICENSE.TXT) -* **link** http://www.tcpdf.org -* **source** https://github.com/tecnickcom/TCPDF - - -## IMPORTANT -A new version of this library is under development at https://github.com/tecnickcom/tc-lib-pdf and as a consequence this version will not receive any additional development or support. -This version should be considered obsolete, new projects should use the new version as soon it will become stable. - - - -## Description - -PHP library for generating PDF documents on-the-fly. - -### Main Features: -* no external libraries are required for the basic functions; -* all standard page formats, custom page formats, custom margins and units of measure; -* UTF-8 Unicode and Right-To-Left languages; -* TrueTypeUnicode, OpenTypeUnicode v1, TrueType, OpenType v1, Type1 and CID-0 fonts; -* font subsetting; -* methods to publish some XHTML + CSS code, Javascript and Forms; -* images, graphic (geometric figures) and transformation methods; -* supports JPEG, PNG and SVG images natively, all images supported by GD (GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM) and all images supported via ImagMagick (http://www.imagemagick.org/script/formats.php) -* 1D and 2D barcodes: CODE 39, ANSI MH10.8M-1983, USD-3, 3 of 9, CODE 93, USS-93, Standard 2 of 5, Interleaved 2 of 5, CODE 128 A/B/C, 2 and 5 Digits UPC-Based Extension, EAN 8, EAN 13, UPC-A, UPC-E, MSI, POSTNET, PLANET, RMS4CC (Royal Mail 4-state Customer Code), CBC (Customer Bar Code), KIX (Klant index - Customer index), Intelligent Mail Barcode, Onecode, USPS-B-3200, CODABAR, CODE 11, PHARMACODE, PHARMACODE TWO-TRACKS, Datamatrix, QR-Code, PDF417; -* JPEG and PNG ICC profiles, Grayscale, RGB, CMYK, Spot Colors and Transparencies; -* automatic page header and footer management; -* document encryption up to 256 bit and digital signature certifications; -* transactions to UNDO commands; -* PDF annotations, including links, text and file attachments; -* text rendering modes (fill, stroke and clipping); -* multiple columns mode; -* no-write page regions; -* bookmarks, named destinations and table of content; -* text hyphenation; -* text stretching and spacing (tracking); -* automatic page break, line break and text alignments including justification; -* automatic page numbering and page groups; -* move and delete pages; -* page compression (requires php-zlib extension); -* XOBject Templates; -* Layers and object visibility. -* PDF/A-1b support. - -### Third party fonts: - -This library may include third party font files released with different licenses. - -All the PHP files on the fonts directory are subject to the general TCPDF license (GNU-LGPLv3), -they do not contain any binary data but just a description of the general properties of a particular font. -These files can be also generated on the fly using the font utilities and TCPDF methods. - -All the original binary TTF font files have been renamed for compatibility with TCPDF and compressed using the gzcompress PHP function that uses the ZLIB data format (.z files). - -The binary files (.z) that begins with the prefix "free" have been extracted from the GNU FreeFont collection (GNU-GPLv3). -The binary files (.z) that begins with the prefix "pdfa" have been derived from the GNU FreeFont, so they are subject to the same license. -For the details of Copyright, License and other information, please check the files inside the directory fonts/freefont-20120503 -Link : http://www.gnu.org/software/freefont/ - -The binary files (.z) that begins with the prefix "dejavu" have been extracted from the DejaVu fonts 2.33 (Bitstream) collection. -For the details of Copyright, License and other information, please check the files inside the directory fonts/dejavu-fonts-ttf-2.33 -Link : http://dejavu-fonts.org - -The binary files (.z) that begins with the prefix "ae" have been extracted from the Arabeyes.org collection (GNU-GPLv2). -Link : http://projects.arabeyes.org/ - -### ICC profile: - -TCPDF includes the sRGB.icc profile from the icc-profiles-free Debian package: -https://packages.debian.org/source/stable/icc-profiles-free - - -## Developer(s) Contact - -* Nicola Asuni diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/VERSION b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/VERSION deleted file mode 100644 index 91e4a9f..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/VERSION +++ /dev/null @@ -1 +0,0 @@ -6.3.2 diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/composer.json b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/composer.json deleted file mode 100644 index 70416fd..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/composer.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "tecnickcom/tcpdf", - "version": "6.3.2", - "homepage": "http://www.tcpdf.org/", - "type": "library", - "description": "TCPDF is a PHP class for generating PDF documents and barcodes.", - "keywords": [ - "PDF", - "tcpdf", - "PDFD32000-2008", - "qrcode", - "datamatrix", - "pdf417", - "barcodes" - ], - "license": "LGPL-3.0", - "authors": [ - { - "name": "Nicola Asuni", - "email": "info@tecnick.com", - "role": "lead" - } - ], - "require": { - "php": ">=5.3.0" - }, - "autoload": { - "classmap": [ - "config", - "include", - "tcpdf.php", - "tcpdf_parser.php", - "tcpdf_import.php", - "tcpdf_barcodes_1d.php", - "tcpdf_barcodes_2d.php", - "include/tcpdf_colors.php", - "include/tcpdf_filters.php", - "include/tcpdf_font_data.php", - "include/tcpdf_fonts.php", - "include/tcpdf_images.php", - "include/tcpdf_static.php", - "include/barcodes/datamatrix.php", - "include/barcodes/pdf417.php", - "include/barcodes/qrcode.php" - ] - } -} diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/config/tcpdf_config.php b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/config/tcpdf_config.php deleted file mode 100644 index 92317b1..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/config/tcpdf_config.php +++ /dev/null @@ -1,227 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -//============================================================+ - -/** - * Configuration file for TCPDF. - * @author Nicola Asuni - * @package com.tecnick.tcpdf - * @version 4.9.005 - * @since 2004-10-27 - */ - -// IMPORTANT: -// If you define the constant K_TCPDF_EXTERNAL_CONFIG, all the following settings will be ignored. -// If you use the tcpdf_autoconfig.php, then you can overwrite some values here. - - -/** - * Installation path (/var/www/tcpdf/). - * By default it is automatically calculated but you can also set it as a fixed string to improve performances. - */ -//define ('K_PATH_MAIN', ''); - -/** - * URL path to tcpdf installation folder (http://localhost/tcpdf/). - * By default it is automatically set but you can also set it as a fixed string to improve performances. - */ -//define ('K_PATH_URL', ''); - -/** - * Path for PDF fonts. - * By default it is automatically set but you can also set it as a fixed string to improve performances. - */ -//define ('K_PATH_FONTS', K_PATH_MAIN.'fonts/'); - -/** - * Default images directory. - * By default it is automatically set but you can also set it as a fixed string to improve performances. - */ -//define ('K_PATH_IMAGES', ''); - -/** - * Deafult image logo used be the default Header() method. - * Please set here your own logo or an empty string to disable it. - */ -//define ('PDF_HEADER_LOGO', ''); - -/** - * Header logo image width in user units. - */ -//define ('PDF_HEADER_LOGO_WIDTH', 0); - -/** - * Cache directory for temporary files (full path). - */ -//define ('K_PATH_CACHE', '/tmp/'); - -/** - * Generic name for a blank image. - */ -define ('K_BLANK_IMAGE', '_blank.png'); - -/** - * Page format. - */ -define ('PDF_PAGE_FORMAT', 'A4'); - -/** - * Page orientation (P=portrait, L=landscape). - */ -define ('PDF_PAGE_ORIENTATION', 'P'); - -/** - * Document creator. - */ -define ('PDF_CREATOR', 'TCPDF'); - -/** - * Document author. - */ -define ('PDF_AUTHOR', 'TCPDF'); - -/** - * Header title. - */ -define ('PDF_HEADER_TITLE', 'TCPDF Example'); - -/** - * Header description string. - */ -define ('PDF_HEADER_STRING', "by Nicola Asuni - Tecnick.com\nwww.tcpdf.org"); - -/** - * Document unit of measure [pt=point, mm=millimeter, cm=centimeter, in=inch]. - */ -define ('PDF_UNIT', 'mm'); - -/** - * Header margin. - */ -define ('PDF_MARGIN_HEADER', 5); - -/** - * Footer margin. - */ -define ('PDF_MARGIN_FOOTER', 10); - -/** - * Top margin. - */ -define ('PDF_MARGIN_TOP', 27); - -/** - * Bottom margin. - */ -define ('PDF_MARGIN_BOTTOM', 25); - -/** - * Left margin. - */ -define ('PDF_MARGIN_LEFT', 15); - -/** - * Right margin. - */ -define ('PDF_MARGIN_RIGHT', 15); - -/** - * Default main font name. - */ -define ('PDF_FONT_NAME_MAIN', 'helvetica'); - -/** - * Default main font size. - */ -define ('PDF_FONT_SIZE_MAIN', 10); - -/** - * Default data font name. - */ -define ('PDF_FONT_NAME_DATA', 'helvetica'); - -/** - * Default data font size. - */ -define ('PDF_FONT_SIZE_DATA', 8); - -/** - * Default monospaced font name. - */ -define ('PDF_FONT_MONOSPACED', 'courier'); - -/** - * Ratio used to adjust the conversion of pixels to user units. - */ -define ('PDF_IMAGE_SCALE_RATIO', 1.25); - -/** - * Magnification factor for titles. - */ -define('HEAD_MAGNIFICATION', 1.1); - -/** - * Height of cell respect font height. - */ -define('K_CELL_HEIGHT_RATIO', 1.25); - -/** - * Title magnification respect main font size. - */ -define('K_TITLE_MAGNIFICATION', 1.3); - -/** - * Reduction factor for small font. - */ -define('K_SMALL_RATIO', 2/3); - -/** - * Set to true to enable the special procedure used to avoid the overlappind of symbols on Thai language. - */ -define('K_THAI_TOPCHARS', true); - -/** - * If true allows to call TCPDF methods using HTML syntax - * IMPORTANT: For security reason, disable this feature if you are printing user HTML content. - */ -define('K_TCPDF_CALLS_IN_HTML', false); - -/** - * If true and PHP version is greater than 5, then the Error() method throw new exception instead of terminating the execution. - */ -define('K_TCPDF_THROW_EXCEPTION_ERROR', false); - -/** - * Default timezone for datetime functions - */ -define('K_TIMEZONE', 'UTC'); - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/AUTHORS b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/AUTHORS deleted file mode 100644 index 94df1e3..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/AUTHORS +++ /dev/null @@ -1,54 +0,0 @@ -abysta at yandex.ru -Adrian Schroeter -Aleksey Chalabyan -Andrey Valentinovich Panov -Ben Laenen -Besarion Gugushvili -Bhikkhu Pesala -Clayborne Arevalo -Dafydd Harries -Danilo Segan -Davide Viti -David Jez -David Lawrence Ramsey -Denis Jacquerye -Dwayne Bailey -Eugeniy Meshcheryakov -Gee Fung Sit -Heikki Lindroos -James Cloos -James Crippen -John Karp -Keenan Pepper -Lars Naesbye Christensen -Lior Halphon -MaEr -Mashrab Kuvatov -Max Berger -Mederic Boquien -Michael Everson -MihailJP -Misu Moldovan -Nguyen Thai Ngoc Duy -Nicolas Mailhot -Norayr Chilingarian -Ognyan Kulev -Ondrej Koala Vacha -Peter Cernak -Remy Oudompheng -Roozbeh Pournader -Rouben Hakobian -Sahak Petrosyan -Sander Vesik -Stepan Roh -Stephen Hartke -Steve Tinney -Tavmjong Bah -Thomas Henlich -Tim May -Valentin Stoykov -Vasek Stodulka -Wesley Transue -Yoshiki Ohshima - -$Id: AUTHORS 2495 2011-11-14 22:56:26Z noct_dreamer $ diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/BUGS b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/BUGS deleted file mode 100644 index 49b36de..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/BUGS +++ /dev/null @@ -1,3 +0,0 @@ -See http://dejavu.sourceforge.net/wiki/index.php/Bugs - -$Id: BUGS 80 2004-11-13 13:12:02Z src $ diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/LICENSE b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/LICENSE deleted file mode 100644 index 254e2cc..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/LICENSE +++ /dev/null @@ -1,99 +0,0 @@ -Fonts are (c) Bitstream (see below). DejaVu changes are in public domain. -Glyphs imported from Arev fonts are (c) Tavmjong Bah (see below) - -Bitstream Vera Fonts Copyright ------------------------------- - -Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is -a trademark of Bitstream, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of the fonts accompanying this license ("Fonts") and associated -documentation files (the "Font Software"), to reproduce and distribute the -Font Software, including without limitation the rights to use, copy, merge, -publish, distribute, and/or sell copies of the Font Software, and to permit -persons to whom the Font Software is furnished to do so, subject to the -following conditions: - -The above copyright and trademark notices and this permission notice shall -be included in all copies of one or more of the Font Software typefaces. - -The Font Software may be modified, altered, or added to, and in particular -the designs of glyphs or characters in the Fonts may be modified and -additional glyphs or characters may be added to the Fonts, only if the fonts -are renamed to names not containing either the words "Bitstream" or the word -"Vera". - -This License becomes null and void to the extent applicable to Fonts or Font -Software that has been modified and is distributed under the "Bitstream -Vera" names. - -The Font Software may be sold as part of a larger software package but no -copy of one or more of the Font Software typefaces may be sold by itself. - -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, -TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME -FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING -ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF -THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE -FONT SOFTWARE. - -Except as contained in this notice, the names of Gnome, the Gnome -Foundation, and Bitstream Inc., shall not be used in advertising or -otherwise to promote the sale, use or other dealings in this Font Software -without prior written authorization from the Gnome Foundation or Bitstream -Inc., respectively. For further information, contact: fonts at gnome dot -org. - -Arev Fonts Copyright ------------------------------- - -Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of the fonts accompanying this license ("Fonts") and -associated documentation files (the "Font Software"), to reproduce -and distribute the modifications to the Bitstream Vera Font Software, -including without limitation the rights to use, copy, merge, publish, -distribute, and/or sell copies of the Font Software, and to permit -persons to whom the Font Software is furnished to do so, subject to -the following conditions: - -The above copyright and trademark notices and this permission notice -shall be included in all copies of one or more of the Font Software -typefaces. - -The Font Software may be modified, altered, or added to, and in -particular the designs of glyphs or characters in the Fonts may be -modified and additional glyphs or characters may be added to the -Fonts, only if the fonts are renamed to names not containing either -the words "Tavmjong Bah" or the word "Arev". - -This License becomes null and void to the extent applicable to Fonts -or Font Software that has been modified and is distributed under the -"Tavmjong Bah Arev" names. - -The Font Software may be sold as part of a larger software package but -no copy of one or more of the Font Software typefaces may be sold by -itself. - -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL -TAVMJONG BAH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. - -Except as contained in this notice, the name of Tavmjong Bah shall not -be used in advertising or otherwise to promote the sale, use or other -dealings in this Font Software without prior written authorization -from Tavmjong Bah. For further information, contact: tavmjong @ free -. fr. - -$Id: LICENSE 2133 2007-11-28 02:46:28Z lechimp $ diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/NEWS b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/NEWS deleted file mode 100644 index c846d49..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/NEWS +++ /dev/null @@ -1,1373 +0,0 @@ -Changes from 2.33 to 2.34 -* Sans, SansMono, Serif: unlinked references of U+2596 for bug 50848 - (by Denis Jacquerye) -* Sans, SansMono, Serif: added U+A7AA (by Denis Jacquerye) -* Sans, SansMono, Serif: added U+2A6A, U+2A6B, U+2E1F based on U+223B - (by Denis Jacquerye) -* Sans, Serif: removed superfluous ligature definitions for ffl und ffi - (bug 55363) (by Gee Fung Sit 薛至峰) -* Sans, Serif: swapped glyphs for U+25D2 and U+25D3 (bug 55197) - (by Gee Fung Sit 薛至峰) -* Sans, Serif: added U+A740, U+A741 (by Denis Jacquerye) -* Sans: added U+20BA Turkish Lira sign (by Denis Jacquerye) -* Sans: replaced Georgian Asomtavruli U+10A0-U+10C5 and Mkhedruli U+10D0-U+10FC - with new version (by Besarion Gugushvili) -* Sans: added Georgian Nuskhuri U+2D00-U+U+2D25 (by Besarion Gugushvili) -* Sans: added Private Use Area glyphs for Georgian U+F400-U+F441 - (by Besarion Gugushvili) -* Sans: tweaked U+0250, U+0254 (by Denis Jacquerye) -* Sans: adjusted hinting of U+032C-U+032D, avoiding problem on some platforms - (by Denis Jacquerye) -* Sans: added U+A7A0-U+A7A9, pre-1921 Latvian letters with oblique stroke - (by Denis Jacquerye) -* Sans: added anchors to U+2C6D (by Denis Jacquerye) -* Sans: added cedilla anchor to some Latin characters (by Denis Jacquerye) -* Sans: added ogonek anchor to A, E, O, U, Y (by Denis Jacquerye) -* Sans: adjusted ogonek reference in U+0172, U+01EA, U+01EB - (by Denis Jacquerye) -* Sans: added anchors to U+0104, U+0105 (by Denis Jacquerye) -* Sans: added U+1F600, U+1F611, U+1F615, U+1F617, U+1F619, U+1F61B, U+1F61F, - U+1F626-U+1F627, U+1F62E-U+1F62F, U+1F634 (by Gee Fung Sit 薛至峰) -* Sans: replaced U+27A1 with mirror image of U+2B05 for consistency - (by Gee Fung Sit 薛至峰) -* Sans: copied hints from U+14A3, U+14A7 to U+2142-U+2143 - (by Gee Fung Sit 薛至峰) -* Sans: added Lisu block (by Gee Fung Sit 薛至峰) -* Sans: typographical improvements to U+0166-U+0167, U+02A6, U+02AA - (by Gee Fung Sit 薛至峰) -* Sans: slightly change hinting of "2" to fix bug 37395 (by Ben Laenen) -* Sans: fixed U+1444 which had wrong top dot that shouldn't be there - (by Denis Jacquerye) -* Sans: added anchors for diacritics to U+01B7, U+01B8, U+01B9, U+0292 - (by Denis Jacquerye) -* Sans: added U+01B7, U+01B8 to context for case diacritics above -* SansMono: fixed U+0574 (by Ruben Hakobian) -* SansMono: added U+2016, U+27C2 (by Yoshiki Ohshima) -* SansMono: added U+02CE, U+02CF (by Denis Jacquerye) -* SansMono: added U+2148, U+27E6-U+27E7, U+2B05-U+2B0D, U+1D55A - (by Gee Fung Sit 薛至峰) -* Serif: added U+02BA, U+02C2-U+02C5, U+02CA-U+02CB, U+02D7, U+02F3, U+02F7, - U+046C-U+046D, U+0476-U+0477, U+1D7C-U+1D7F, U+20B8, U+2132, U+214E, U+2C7B - to Serif (by Gee Fung Sit 薛至峰) -* Serif: typographic improvements to U+0194, U+01B1, U+0263, U+028A, U+02A6, - U+02A8, U+02AA, U+02E0, U+03DC, U+1D3B, U+1D7B (by Gee Fung Sit 薛至峰) -* Serif: added small cap versions of q, x (in italic styles), delta, theta, xi, - sigma, phi, omega, not wired in yet (by Gee Fung Sit 薛至峰) -* Serif: added anchors to U+0234-U+0236 (by Gee Fung Sit 薛至峰) -* Serif: added U+02EC, U+02EF, U+02F0, U+0360 (by Denis Jacquerye) - -Changes from 2.32 to 2.33 - -* added Old Italic block to Sans (by MaEr) -* added U+051E, U+051F to Sans (by MaEr) -* added U+01BA, U+0372-U+0373, U+0376-U+0377, U+03CF, U+1D00-U+1D01, - U+1D03-U+1D07, U+1D0A-U+1D13, U+1D15, U+1D18-U+1D1C, U+1D20-U+1D2B, - U+1D2F, U+1D3D, U+1D5C-U+1D61, U+1D66-U+1D6B, U+1DB8, U+1E9C-U+1E9D, - U+1EFA-U+1EFB, U+2C60-U+2C61, U+2C63, U+A726-U+A73C, U+A73E-U+A73F, - U+A746-U+A747, U+A74A-U+A74B, U+A74E+U+A74F, U+A768-U+A769, U+A77B-U+A77C, - U+A780-U+A787, U+A790-U+A791, U+A7FA-U+A7FF to Serif (by Gee Fung Sit 薛至峰) -* added alternate forms to U+014A and U+01B7 in Serif (by Gee Fung Sit 薛至峰) -* typographical improvements to U+0166-U+0167, U+0197, U+01B5-U+01B6, U+01BB, - U+0222-U+0223, U+023D, U+0250-U+0252, U+026E, U+0274, U+028F, U+029F, - U+02A3-U+02A5, U+02AB, U+03FE-U+03FF, U+1D02, U+1D14, U+1D1D-U+1D1F, U+1D3B, - U+1D43-U+1D46, U+1D59, U+1D9B, U+2C71, U+2C73 in Serif (by Gee Fung Sit 薛至峰) -* fixed bugs #31762 and #34700 plus other small fixes (wrong direction, - duplicate points, etc.) for Sans and Serif (by Gee Fung Sit 薛至峰) -* added U+204B to Mono (by Gee Fung Sit 薛至峰) -* added U+26E2 to Sans (by Gee Fung Sit 薛至峰) -* added Playing Cards block (U+1F0A0-U+1F0DF) to Sans (by Gee Fung Sit 薛至峰) -* emoticons in Sans: replace U+2639-U+263B with better versions, add - U+1F601-U+1F610, U+1F612-U+1F614, U+1F616, U+1F618, U+1F61A, U+1F61C-U+1F61E, - U+1F620-U+1F624, U+1F625, U+1F628-U+1F62B, U+1F62D, U+1F630-U+1F633, - U+1F635-U+1F640 (by Ben Laenen and Denis Jacquerye) -* added U+A78E, U+A790-U+A791 to Sans and Mono (by Denis Jacquerye) -* added U+A7FA to Sans (by Denis Jacquerye) -* subscripts: added U+2095-U+209C to Sans, Serif and Mono, adjusted - U+1D49-U+1D4A in Sans and Mono (by Denis Jacquerye) -* added U+0243 to Mono (by Denis Jacquerye) -* adjusted U+0307 to match dot of i, replaced dotaccent U+02D9 with U+0307 in -most dependencies in Sans (by Denis Jacquerye) -* adjusted anchors of f and added them to long s in Sans (by Denis Jacquerye) -* added anchors to precomposed dependencies of D and d (by Denis Jacquerye) -* added debug glyphs U+F002 and U+F003 which will show current point size (by - Ben Laenen) -* use correct version for Serbian italic be (by Eugeniy Meshcheryakov) -* added pictograms U+1F42D-U+1F42E, U+1F431, U+1F435 (by Denis Jacquerye) -* improved Hebrew in Sans (by Lior Halphon) -* improved Armenian in Sans, and added Armenian in Serif and Mono (by Rouben - Hakobian (Tarumian), Aleksey Chalabyan and Norayr Chilingarian) -* remove "locl" feature for Romanian for S/T/s/t with cedilla/comma accent (by - Ben Laenen) -* replace wrong "dflt" script tag in Mono with "DFLT" (by Ben Laenen) - -Changes from 2.31 to 2.32 - -* added to Sans: Latin small letter p with stroke (U+1D7D), Latin capital - letter p with stroke through descender (U+A750), Latin small letter p with - stroke through descender (U+A751), Latin capital letter thorn with stroke - (U+A764), Latin small letter thorn with stroke (U+A765), Latin capital letter - thorn with stroke through descender (U+A766), Latin small letter thorn with - stroke through descender (U+A767), Latin capital letter q with stroke through - descender (U+A756), Latin small letter q with stroke through descender - (U+A757), Latin capital letter p with flourish (U+A752), Latin small letter p - with flourish (U+A753) (by Ben Laenen) -* add new Indian rupee symbol (U+20B9) to Sans, Serif and Mono (although - standardization in Unicode not complete yet, UTC did assign this code point) - (by Ben Laenen) -* Sans: adjusted U+0E3F, U+20AB, U+20AD-U+20AE, U+20B1, U+20B5, U+20B8 to have - them take up the same width as digits (by Gee Fung Sit 薛至峰) -* added U+23E8 to Sans (by Thomas Henlich) -* fixed numerous bugs (#22579, #28189, #28977, N'Ko in Windows, fixed U+FB4F, - anchors for U+0332-U+0333, made extensions in Misc. Technical connect, and - other small fixes) (by Gee Fung Sit 薛至峰) -* added looptail g as stylistic variant to Serif (by Gee Fung Sit 薛至峰) -* added the remaining precomposed characters in Latin Extended Additional in - Serif (by Gee Fung Sit 薛至峰) -* added Georgian Mkhedruli (U+10D0-U+10FC) to Sans ExtraLight (by Besarion - Gugushvili) -* fix spacing in hinting of U+042E (Ю) in Mono (by Ben Laenen) -* replaced U+2650 and minor changes to U+2640-U+2642, U+2699, U+26A2-U+26A5, - U+26B2-U+26B5, U+26B8 in Sans (by Gee Fung Sit 薛至峰) -* added U+1E9C-U+1E9D, U+1EFA-U+1EFB, U+2028-U+2029, U+20B8, U+2150-U+2152, - U+2189, U+26C0-U+26C3, U+A722-U+A725, U+1F030-U+1F093 to Sans (by Gee Fung - Sit 薛至峰) -* added U+1E9C-U+1E9E, U+1EFA-U+1EFB, U+2028-U+2029, U+20B8, U+2181-U+2182, - U+2185 U+A722-U+A725, to Sans ExtraLight (by Gee Fung Sit 薛至峰) -* added U+20B8, U+22A2-U+22A5, U+A722-U+A725 to Mono (by Gee Fung Sit 薛至峰) -* added U+02CD, U+01BF, U+01F7, U+0222-U+0223, U+0243-U+0244, U+0246-U+024F, - U+2150-U+2152, U+2189, U+239B-U+23AD and U+A73D to Serif (by Gee Fung Sit - 薛至峰) - -Changes from 2.30 to 2.31 - -* fixed bug where Serif Condensed Italic wouldn't get proper subfamily tags (by - Ben Laenen) -* added math operators U+2234-U+2237 to Mono (by Ben Laenen) -* removed buggy instructions of U+032D (by Eugeniy Meshcheryakov) -* added U+2C70, U+2C7E, U+2C7F to Sans and Sans Mono (by Denis Jacquerye) -* added U+2C7D to Sans Mono (by Denis Jacquerye) -* added U+2C6D, U+2C70-2C73, U+2C7E-2C7F to Serif (by Denis Jacquerye) -* added extremas to alpha U+03B1 in Serif-Italic (by Denis Jacquerye) -* added U+4A4, U+4A5 to Mono (by Andrey V. Panov) -* added Arabic letters U+0657, U+0670, U+0688-U+0690, U+0693-U+0694, - U+0696-U+0697, U+0699-U+06A0, U+06A2-U+06A3, U+06A5, U+06A7-U+06A8, - U+06AA-U+06AE, U+06B0-U+06B4, U+06B6-U+06B9, U+06BB-U+06BE and their - contextual forms to Sans (by MihailJP) -* added U+A78D LATIN CAPITAL LETTER TURNED H for coming Unicode 6.0 (by Denis - Jacquerye) - -Changes from 2.29 to 2.30 - -* added U+0462-U+0463 to Mono (by Denis Jacquerye) -* corrected U+1E53 in Serif (by Gee Fung Sit) -* added U+1E4C-U+1E4D to Mono and Serif (by Gee Fung Sit) -* added U+1E78-U+1E79 to Mono (by Gee Fung Sit) -* fixed missing diacritics in Latin Extended Additional in Sans ExtraLight - (moved stacked diacritics out of PUA in the process) (by Gee Fung Sit) -* fixed anchors on U+1E78 in Serif (by Gee Fung Sit) -* added U+1DC4-U+1DC9 to Serif (by Denis Jacquerye) -* renamed above-mark to above-mark in Serif-Italic (by Denis Jacquerye) -* added U+1DC4-U+1DC9 to context class for dotless substitution (by Denis - Jacquerye) -* changed Doubleacute to Doublegrave in Sans ExtraLight (by Gee Fung Sit) -* removed redundant reference in U+01FB in Sans Oblique (by Gee Fung Sit) -* added U+A726-U+A727 to Mono (Denis Jacquerye) -* changed U+04BE and U+04BF according to recommedations of Sasha Ankwab in Sans - (by Andrey V. Panov) -* remove "Symbol Charset" from set of codepages in Sans (by Eugeniy - Meshcheryakov) - -Changes from 2.28 to 2.29 - -* modified U+10FB in Sans to be a mirror image of U+2056, since U+10FB is not - Georgian-specific (by Roozbeh Pournader) -* added U+2B1F, U+2B24, U+2B53, U+2B54 in Sans (by Roozbeh Pournader) -* fixed TUR opentype language tag to TRK in Serif (bug 19825) (by Ben Laenen) -* early implementation of Abkhaz letter U+0524-U+0525 in Sans - (by Michael Everson and abysta) -* flipped U+1D538 in Sans (by Gee Fung Sit) -* added U+26B3-U+26B8, U+1D7D8-U+1D7E1 in Sans (by Gee Fung Sit) -* corrected U+1D7A9 in Sans Bold Oblique (by Gee Fung Sit) -* Fixed U+0649 to be dual-joining in Sans Mono (by Roozbeh Pournader) -* Remove unnecessary 'isol' feature from Sans Mono (by Roozbeh Pournader) -* Remove 'cmap' mappings for U+066E, U+066F, U+067C, U+067D, U+0681, U+0682, - U+0685, U+0692, U+06A1, U+06B5, U+06BA, U+06C6, U+06CE, and U+06D5 - in Sans Mono (bug 20323) (by Roozbeh Pournader) -* add half brackets (U+2E22 - U+2E25, by Steve Tinney) - -Changes from 2.27 to 2.28 - -* added U+A789, U+A78A in Sans and Sans Mono (by Denis Jacquerye) -* modified U+02D6, U+02D7, U+02EE in Sans and Sans Mono (by Denis Jacquerye) -* added U+1E9E (German capital ß) to Sans and Serif (by Denis Jacquerye) -* adjusted width of U+01B7-U+01B9 in Serif Italic (by Denis Jacquerye) -* modified U+021C, U+021D in Sans (by Denis Jacquerye) -* added U+021C, U+021D in Mono (by Denis Jacquerye) -* added U+F428 (Georgian Nuskhuri "f") in private use area (by Besarion - Gugushvili) -* updated Georgian mkhedruli (U+10D0-U+10FA) with new version (by Besarion - Gugushvili) -* updated Georgian asomtavruli (U+10A0-U+10C5) with new version (by Besarion - Gugushvili) -* added Georgian nuskhuri (U+2D00-U+2D25) (by Besarion Gugushvili) -* added Georgian mtavruli in private use area (U+F400-U+F426) (by Besarion - Gugushvili) -* added mark anchors above to Cyrillic U+0430-U+0438, U+043A-U+044F, - U+0454-U+0455 in Mono (by Ben Laenen) -* modified/moved up U+0318-U+0319, U+031C-U+031F, U+0329-U+032A, U+032C-U+032D, - U+0339-U+033B, U+0348 and U+0353 in Sans to prevent cut-off (by Gee Fung Sit) -* added U+035A to Sans (by Gee Fung Sit) -* updated fontconfig files (by Nicolas Mailhot) -* added U+2032-2037 to Mono (by Denis Jacquerye) -* added Ogham to Sans ExtraLight (by Gee Fung Sit) -* added U+2C6F, U+2C79, U+2C7C-2C7D to Mono (by Gee Fung Sit) -* added U+210F to Serif and Sans ExtraLight (by Gee Fung Sit) -* changed U+210F to a more common glyph in Sans and Mono (by Gee Fung Sit) - -Changes from 2.26 to 2.27 - -* added some of Michael Everson's new Cyrillic glyphs to Sans (by Wesley - Transue) -* removed blank glyph at U+05EF from Sans Bold Oblique (by Gee Fung Sit) -* small adjustments to existing tone bars in Sans and Mono (by Gee Fung Sit) -* added U+0372-U+0373, U+0376-U+0377, U+03CF, U+A668-U+A66E, U+A708-U+A711, - U+A71B-U+A71F to Sans (by Gee Fung Sit) -* copied U+02E5-U+02E9 over from Sans to fix inconsistencies in Serif (by Gee - Fung Sit) -* added U+021C-U+021D, U+0370-U+0371, U+037B-U+037D, U+0470-U+0471, - U+0510-U+0515, U+051A-U+051D, U+1E9F, U+2C64, U+2C6E-U+2C6F, U+2C79, - U+2C7C-U+2C7D, U+A644-U+A647, U+A650-U+A651, U+A654-U+A657, U+A708-U+A716, - U+A71B-U+A71F to Serif (by Gee Fung Sit) -* added U+A708-U+A716, U+A71B-U+A71F to Mono (by Gee Fung Sit) -* added anchors to U+017F (ſ) and fixed U+1E9B (ẛ) in Serif (by Gee Fung Sit) -* made U+0325 smaller in Sans Bold and Serif to match Sans Book (by Gee Fung - Sit) -* fixes to U+02F3 (moved up), U+228F-U+2294 (more square-like) and - U+22CE-U+22CF (stroke width) in Sans (by Gee Fung Sit) -* replaced U+2202 ∂ (Sans and Mono) and U+221D ∝, U+221E ∞ (Sans) with glyphs - from Arev (with small changes) (by Gee Fung Sit) -* added U+22B0-U+22B1, U+22C7, U+22D0-U+22D5 from Arev to Sans to complete the - block (by Gee Fung Sit) -* added U+0514-U+0515 to Sans ExtraLight (by Gee Fung Sit) -* skewed U+A78C in all Oblique/Italic fonts (by Gee Fung Sit) -* moved U+2215 to U+2044 in Sans and Serif and replaced U+2215 with reference - to U+002F in all fonts (by Gee Fung Sit) -* added U+2C6E to Mono (by Denis Jacquerye) -* added U+A782 and U+A783 in Sans (by Wesley Transue) -* added U+0244, U+024C-024D, U+2C64 in Sans Mono (by Denis Jacquerye) -* modified U+01AE in Sans Mono (by Denis Jacquerye) -* added U+2C7A to all fonts (by Gee Fung Sit) -* italicized/small changes to U+2C76 in Serif (Bold) Italic (by Gee Fung Sit) -* improved outlines of U+2C68, U+2C6A, U+2C6C in Serif (Bold) Italic (by Gee - Fung Sit) -* rounded U+2C77 at the bottom in Serif (by Gee Fung Sit) -* added joining behavior for tone letters (U+02E5-U+02E9) in Sans (bug #15669) - (by Gee Fung Sit) -* fixed outline of y.alt in Sans Regular (by Denis Jacquerye) -* changed references of U+1D5A8, U+1D5C5, U+1D5DC, U+1D5F9, U+1D610, U+1D62D, - U+1D644 and U+1D661 to stylistic alternates to have a better distinction (by - Gee Fung Sit) -* hinted I.alt in Sans Regular (by Gee Fung Sit) -* added U+0487, completing Cyrillic block (by Gee Fung Sit) -* extended the bar of U+0463 to the right and moved the anchor (by Gee Fung - Sit) -* added anchors to glyphs in Cyrillic block (by Gee Fung Sit) -* added (preliminary) hints to tone letter forms (U+02E5.5, U+02E9.1, stem) in - Sans Book (by Gee Fung Sit) - -Changes from 2.25 to 2.26 - -- added glyphs for Cyrillic-B to Sans (by Wesley Transue) -- added U+0370-U+0371 to Sans (by Wesley Transue) -- added U+019C, U+01A2-U+01A3, U+01A6, U+01E4-U+01E5, U+024C-U+024D, U+0285, - U+0290, U+02A0, U+0370-U+0371, U+03F1, U+03FC to Sans ExtraLight (by Wesley - Transue) -- added U+20A0-U+20A5, U+20A7-U+20B3, U+2105, U+210D, U+210F, U+2115, U+2117, - U+2119-U+211A, U+211D, U+2124, U+212E, U+2200-U+2204 to Mono (by Heikki - Lindroos) -- added U+01BA and U+01BF to Mono (by Heikki Lindroos) -- merged OpenType "aalt" feature in Latin in Sans (by Denis Jacquerye) -- added alternative shape for y in Sans (by Denis Jacquerye) -- added saltillo (U+A78B-U+A78C) to all faces (by James Cloos) -- changed U+047C-U+047D to references instead of outlines in Sans (by Wesley - Transue) -- added Latin letter tresillo U+A72A-U+A72B to Sans (by Wesley Transue) -- added U+A734-U+A737 to Sans (by Wesley Transue) -- added U+2053 to Serif and fixed it bug:9425 in Sans (by Gee Fung Sit) -- removed problematic hints for U+0423 bug:10025 (by Gee Fung Sit) -- added U+27C5-U+27C6 bug:10255 to all faces (by Gee Fung Sit) -- fixed width of U+2016 in Sans Oblique (by Gee Fung Sit) -- added U+2016, U+2032-U+2038, U+2042, U+2045-U+2046, U+204B-U+204F, - U+2051-U+2052, U+2057 to Serif (by Gee Fung Sit) -- made U+2140 bigger to match other n-ary operators (by Gee Fung Sit) -- added U+0606-U+0607, U+0609-U+060A to Sans (by Gee Fung Sit) -- added U+221B-U+221C to Mono (by Gee Fung Sit) -- small adjustments to U+221B-U+221C in Sans and Serif (by Gee Fung Sit) -- update U+04B4-U+04B5 in Serif (by Andrey V. Panov) -- increased max-storage value from maxp table to 153 (by Andrey V. Panov) -- added U+0472-U+0473, U+0510-U+0511, U+051A-U+051D, U+0606-U+0607, - U+0609-U+060A, U+1E26-U+1E27, U+1E54-U+1E55, U+1E7C-U+1E7D, U+1E8C-U+1E8D, - U+1E90-U+1E91, U+1E97-U+1E99, U+1E9F, U+1EAC-U+1EAD, U+1EB6-U+1EB7, - U+1EC6-U+1EC7, U+1ED8-U+1EDD, U+1EE0-U+1EE3, U+1EE8-U+1EEB, U+1EEE-U+1EF1 to - Mono (by Gee Fung Sit) -- added locl rules for S/T cedilla for Romanian and Moldavian so they get - rendered as S/T with comma accent (see Redhat bug #455981) (by Ben Laenen) -- removed ligature rule from Armenian U+0587 bug:16113 (by Gee Fung Sit) - -Changes from 2.24 to 2.25 - -- moved/added U+2E18 (by Gee Fung Sit) -- added empty glyph for U+2064 in Sans and Serif (by Gee Fung Sit) -- added U+22CE-U+22CF to Sans (by Gee Fung Sit) -- Sans Oblique and Bold Oblique, Serif: reverted digits hinting instructions back to before revision 1590, which fixed mistaken debian bug #471024. This fixes Debian bug #411308. The original bug was in freetype not in the fonts (by Denis Jacquerye) -- added U+A726-U+A729, U+A730-U+A733, U+A738-U+A73F, U+A746-U+A74B, U+A74E-U+A74F, U+A780-U+A781, U+A7FB-U+A7FF to Sans (by Gee Fung Sit) -- added Macedonian italic glyph shape for U+0453 in Serif (by Ben Laenen) -- changed descenders in U+0446, U+0449, U+0497, U+04A3, U+04AD (by Andrey V. Panov) -- updated main SFD files to SplineFontDB 3.0 (Denis Jacquerye and Gee Fung Sit) -- moved U+0561 2 up since it wasn't aligned with the baseline well (by Ben Laenen) -- added U+2E2E to Sans (by Gee Fung Sit) -- replaced U+2699 with simpler version in Sans (by Gee Fung Sit) -- added a lot of hinting instructions to Latin Extended B, Greek and Coptic glyphs Sans Book (by Wesley Transue) -- differentiated U+2219 from U+22C5 and adjusted affected references in Sans and Mono (by Gee Fung Sit) -- made Hebrew narrower in Sans Bold and Sans Bold Oblique (by Denis Jacquerye) -- added Kurdish and Chuvash letters from Unicode 5.1 Cyrillic Extended block (by Wesley Transue) -- added U+1E9F, U+A644-U+A647, U+A64C-U+A64D, U+A650-U+A651, U+A654-U+A655, U+A712U+A716 to Sans (by Gee Fung Sit) -- added several glyphs to Sans ExtraLight (by Gee Fung Sit) -- added hinting instructions to U+046A-U+046B, U+0508-U+0509, U+050B, U+0512-U+0513 in Sans Book (by Wesley Transue) -- corrected width of U+027E in Sans Book (by Gee Fung Sit) -- added U+2C79, U+2C7B-U+2C7D to Sans (by Gee Fung Sit) -- added a bunch of glyphs+small corrections to Sans Light (by Gee Fung Sit) -- added U+0496, U+0497, U+04B0, U+04B1 (by Andrey V. Panov) -- updated U+0493, U+049B, U+04B3, U+04B7, U+04F7 (by Andrey V. Panov) -- further improvements in extended Cyrillic (by Andrey V. Panov) - -Changes from 2.23 to 2.24 - -- instructions for U+05C0 ׀, U+05C3 ׃, U+05F3 ׳, and U+05F4 ״ in DejaVu - Sans. (by Wesley Transue) -- instructions for U+2116 in Sans (by Andrey V. Panov) -- Unicode 5.1 update: moved U+F208 to U+2C6D, U+F25F to U+2C71, added - U+2C6E-U+2C6F, U+2C72-U+2C73, updated outline of U+2C71 in Sans. (by - Denis Jacquerye) -- updated and instructed U+0401 in Sans (by Andrey V. Panov) -- fixed the bug in Sans faces where U+02EC ˬ faced the wrong direction. - Also, added a few more glyph instructions. (by Wesley Transue) -- removed OS2Sub and OS2Strike that weren't intentional in Sans - ExtraLight. (by Denis Jacquerye) -- updated instructions for U+401, U+44F in Serif Book. (by Andrey V. - Panov) -- instructions for U+02C4 ˄, U+02C5 ˅, U+03D8 Ϙ, U+03D9 ϙ, U+0494 Ҕ, and - U+0495 ҕ in Sans Book. (by Wesley Transue) -- instructions for U+01A6 Ʀ, U+0238 ȸ, U+0239 ȹ, U+02EC ˬ, and U+05C6 ׆ - in Sans Book. (by Wesley Transue) -- DejaVuSans.sfd DejaVuSerif.sfd: updated instructions for U+447 and - U+451 using code generated with xgridfit (by Andrey V. Panov) -- instructions for a few glyphs in the Latin Extended-B Block, Greek - Block, Cyrillic Block, and N'Ko block. (by Wesley Transue) -- updated sfdnormalize.pl, and SFD files to new SFD format with empty - lines. (by Denis Jacquerye) - -Changes from 2.22 to 2.23 - -- fixed bug which made Condensed fonts appear instead of normal width ones -- added U+20DB, U+20DC, and U+20E1 to Sans (by Roozbeh Pournader) -- added hinting instructions to U+01A7, U+01AA-U+01AC, U+01AE-U+01AF, - U+01BC-U+01BD, U+01BF, U+01F7, U+0277, U+027F, U+0285-U+0286, U+0297, U+02AF, - U+02B4-U+02B5, U+02BD, U+030D, U+0311, U+0329, U+04A0-U+04A1 in Sans Book (by - Wesley Transue) -- modified hinting instructions of U+04A2 in Sans Book (by Wesley Transue) -- added hinting instructions to U+237D, U+2423 in Mono Book and Mono Bold (by - Wesley Transue) -- added mathematical alphanumeric symbols to all styles (by Max Berger) -- added Unicode 5.1 U+2E18 as U+2E18.u51 (not yet usable) to Sans (by Roozbeh - Pournader) -- dereferenced all glyphs with mixed references and outlines (by Denis - Jacquerye) -- removed non-zero width from U+0344 in Sans (by Denis Jacquerye) - -Changes from 2.21 to 2.22 - -- directory structure has changed, we now use the Makefile -- modified Armenian U+0565 in Sans (by Սահակ Պետրոսյան) -- added double struck letters and numbers U+2102, U+210D, U+2115, - U+2119-U+211A, U+211D, U+2124, U+213C-U+2140, U+2145-U+2149, U+1D538-U+1D539, - U+1D53B-U+1D53E, U+1D540-U+1D544, U+1D546, U+1D54A-U+1D550, U+1D552-U+1D56B, - U+1D7D8-U+1D7E1 to Serif (by Stephen Hartke) -- added letterlike symbols U+2103, U+2109, U+2127, U+214B, U+2141-U+2144 to - Serif (by Ben Laenen) -- fixed outline direction of U+2143 in Sans Bold/Bold Oblique (by Ben Laenen) -- added arrow set in Serif: arrows: U+2194-U+21FF; dingbats: U+27A1; - supplemental arrows A: U+27F0-U+27FF; supplemental arrows B: U+2900-U+2975, - U+297A; miscellaneous symbols and arrows: U+2B00-U+2B11 (by Ben Laenen) -- added U+0180, U+01DE, U+01E0-01E1, U+022A, U+022C, U+0230, U+1E08-U+1E09, - U+1E10-U+1E11, U+1EB0-U+1EB1 to Mono (by Denis Jacquerye) -- adjusted U+01D5, U+01D7, U+01D9, U+1DB in Mono (by Denis Jacquerye) -- added Ogham in Sans (by Wesley Transue) -- added Yijing Hexagram Symbols in Sans (by Wesley Transue) -- hinting instructions added to Cyrillic U+0460, U+04A6-U+04A7, U+04AC-U+04AD, - U+04C7-U+04C8, U+04F6-U+04F7, U+04FA-U+04FB, U+050C-U+050D in Sans Book (by - Wesley Transue) -- adjusted Cyrillic letters U+042A, U+044A, U+044C, U+0459-U+045B, U+0462, - U+048C-U+048D in Serif (by Andrey V. Panov) -- hinting instructions added to Lao U+0EB7 in Sans (by Wesley Transue) -- added Roman numerals and Claudian letter U+2160-U+2184 in Serif (by Ben - Laenen) -- added U+FFF9-U+FFFD to Sans, Serif and Mono (by Lars Næsbye Christensen) -- added mathematical symbols to Serif: U+2200, U+2203-U+2204, U+2213-U+2214, - U+2217-U+2218, U+2223-U+2226, U+2250-U+2255, U+2295-U+22AF, U+22C5 (by Ben - Laenen) -- modified bullet symbol U+2219 in Serif (by Ben Laenen) - -Changes from 2.20 to 2.21 - -- added U+FE20-U+FE23 (half diacritics) to Sans (by Denis Jacquerye) -- added anchor "half" to position right half of double marks, U+FE21 or U+FE23 - to Sans (by Denis Jacquerye) -- shifted U+0360 up to avoid collision with some outlines in Sans (by Denis - Jacquerye) -- added anchor above-mark anchor to U+035D, U+035E, U+0360, U+0361 in Sans (by - Denis Jacquerye) -- added instructions for ff, ffi, ffl ligatures in Serif Bold (by Eugeniy - Meshcheryakov) -- added instructions to some N'Ko glyphs (by Wesley Transue) -- added instructions to some Lao glyphs (by Wesley Transue) -- cleaning up 'liga' Standard Ligature in Latin, in Sans and Sans Mono (by - Denis Jacquerye) -- added U+046A, U+046B (big yus) in Serif (by Andrey V. Panov) -- added box drawing symbols to Sans and Serif (by Lars Næsbye Christensen) -- added Makefile to improve font and packages generating (by Nicolas Mailhot) - -Changes from 2.19 to 2.20 - -- removed TeX and TeXData tags from all sfd files (by Eugeniy Meshcheryakov) -- removed all 'frac' lookups (by Eugeniy Meshcheryakov) -- fixed duplicate glyph names (by Eugeniy Meshcheryakov) -- removed standard ligatures with U+00B7 in Mono (by Eugeniy Meshcheryakov) -- use reference to U+002D in U+00AD in Sans Oblique, and adjust instructions - (by Eugeniy Meshcheryakov) -- updated Cyrillic in Sans Extra Light (by Andrey V. Panov) -- added instructions to N'Ko U+07C1-U+07C6, U+07CA, U+07CE-U+07CF, U+07D1, - U+07D3-U+07D4, U+07D8, U+07DB and U+07EB in Sans (by Wesley Transue) -- added instructions to Lao U+0E8A, U+0E95, U+0E97, U+EA5, U+0EB4 and U+0EB5 - (by Wesley Transue) -- adjusted instructions for Hebrew glyphs (by Denis Jacquerye) -- added instructions for U+0265 in Sans Bold (by Denis Jacquerye) -- fix U+1D68 in Sans: it had the shape of delta, where it should be a rho (by - Ben Laenen) -- remove U+1D5C glyph in Sans Oblique (it was empty) (by Ben Laenen) -- fix instructions of U+01AD in Sans Bold (by Ben Laenen) -- fix instructions of U+042D in Serif (by Ben Laenen) -- remove buggy instructions of U+2328 in Serif (by Ben Laenen) -- corrected width of U+2C75-U+2C76 in Sans Bold and Serif Bold (by Gee Fung Sit) -- added U+2C75-U+2C77 to Mono (by Gee Fung Sit) - -Changes from 2.18 to 2.19 - -- fixed misplaced symbols (U+2325,2326) in Sans Oblique (by John Karp) -- added Mark to Base anchors: 'cedilla' for combining cedilla and - 'above-legacy' for stacking above precomposed glyphs (just a,e,i,o,u with - macron for now) in Sans (by Denis Jacquerye). -- added contextual substitution for Case and Dotless forms in all Sans variants - (by Denis Jacquerye). -- renamed 'ccmp' lookups for RTL and Basic (LGC, etc.) (by Denis Jacquerye) -- added anchor 'cedilla' for vowels in Sans. (by Denis Jacquerye) -- extended contextual dotless and case substitutions to handle both below and - above diacritics (by Denis Jacquerye) -- renamed Dotless and Case Form GSUB lookups in Sans with meaningful names (by - Denis Jacquerye) - -Changes from 2.17 to 2.18 - -- Re-encoded the source files for Full Unicode (by Ben Laenen) -- Re-enabled the "ff", "fl", "fi", "ffl", "ffi" ligatures by default in Serif - (by Ben Laenen) -- Disabled the "fi", "ffi" ligatures for languages with dotless i in Serif (by - Ben Laenen) -- added Tifinagh to Sans Book and Bold, U+2D30-U+2D65, U+2D6F, partially hinted - in Sans Book. (by Denis Jacquerye) -- added Tai Xuan Jing Symbols (U+1D300-1D356) to Sans (by Remy Oudompheng) -- added double-struck letters (U+1D538-U+1D56B minus reserved code points) to - Sans (by Gee Fung Sit) -- added U+22EE-U+22F1 to Sans (by Gee Fung Sit) -- added U+2C67-U+2C6C, U+2C75-U+2C77 to Serif (by Gee Fung Sit) -- italicized various glyphs in Latin Extended-B, IPA Extensions, Spacing - Modifier Letters, Phonetic Extension (Supplement) and Super- and Subscripts - in Serif Oblique fonts (by Gee Fung Sit) -- modified outlines, bearings of Hebrew U+05D6, U+05D8, U+05DB, U+05DE, U+05E0, - U+05E1, U+05E2, U+05EA in Sans Book and Oblique, adjusted hinting in Book - based on Yotam Benshalom's comments. (by Denis Jacquerye) -- added Braille Patterns (U+2800-U+28FF) to Serif fonts (by Gee Fung Sit) -- added N'Ko to Sans Book and Bold: U+07C0-U+07E7, U+07EB-U+07F5, U+07F8-U+07FA - (by Eugeniy Meshcheryakov) -- added U+0ED8 (Lao digit 8) to Sans (by Remy Oudompheng) -- added Lao diacritics U+0EB0-0EB9, U+0EBB-0EBC, U+0EC8-0ECD to Mono (by Remy - Oudompheng) -- renamed Serif [Bold] Oblique, make it Italic (by Eugeniy Meshcheryakov) -- added U+29FA-U+29FB to Sans and Sans Mono (by Gee Fung Sit) -- swapped glyphs for Eng U+014A from Sami Eng to African Eng, the latter being - more common (by Denis Jacquerye) -- swapped ae U+00E6 and ae.alt in Serif Italics fonts, thus fixing #8213 (by - Denis Jacquerye) -- minor improvements to Misc. Symbols in Sans (by Gee Fung Sit) -- minor improvements and additions to Sans ExtraLight (by Gee Fung Sit) -- improved instructions for various Cyrillic letters (by Eugeniy Meshcheryakov) -- fixed hinting of theta and chi in Sans Book (by Ben Laenen) -- added Georgian Mkhedruli to Sans, Serif and Mono, ASumtavruli to Sans and - Serif (by Besarion Gugushvili) - -Changes from 2.16 to 2.17 - -- Sans fonts: fix position for certain combinations of Arabic fatha, kasra, - shadda, damma, kasratan, dammatan, fathatan and hamza (by Ben Laenen) -- added 'ae.alt' to Serif Oblique fonts, with design matching shape of italic - 'a' instead of slanted 'a', see bug #8213 (by Denis Jacquerye) -- added super- and subscripts to Serif and Mono: U+1D2C-U+1D2E, U+1D30-U+1D3C, - U+1D3E-U+1D42, U+1D62-U+1D65, U+1D78, U+2071, U+207A-U+207E, U+208A-U+208E, - U+2090-U+2094 (by Gee Fung Sit) - -Changes from 2.15 to 2.16 - -- fixed hinting instructions for digits in DejaVu Sans Oblique, Bold Oblique, - and Serif Book to not change glyph width (by Eugeniy Meshcheryakov) -- added instructions for U+0404, U+0411, U+0413, U+0414, U+0417-U+041B, U+041F, - U+0423, U+0424, U+0426-U+0429, U+042C, U+042E, U+042F, U+0490 in Serif Bold - (by Eugeniy Meshcheryakov) -- added U+0220 and Eng.alt to Serif fonts (by Denis Jacquerye) -- added U+232C, U+2394, U+23E3 to Sans fonts (by John Karp) -- added U+230C-U+230F, U+231C-U+231F to Sans fonts, fixing bug:9547 - (by John Karp) -- adjusted dot below, dot above, dieresis above, dieresis below in Sans fonts - (by Denis Jacquerye) -- added U+2300, U+2301, U+2303, U+2304, U+2305, U+2307, U+2326, U+2327, U+232B, - arrow.base to Sans fonts (by John Karp) -- adjusted dot and dieresis below and above in Serif fonts (by Denis Jacquerye) -- added U+1E1C-U+1E1D to Serif fonts (by Denis Jacquerye) -- added U+22BE, U+22BF (by Wesley Transue) -- added U+2324; modified U+2325: more standard proportions, and matches U+2324 - and U+2387; added U+2387 : flipped U+2325 with standard arrowhead - (by John Karp) -- added Lao digits U+0ED0-0ED7, U+0ED9 (by Remy Oudompheng) -- added to Mono in Arabic block : U+060C, U+0615, U+061B, U+061F, - U+0621-U+063A, U+0640-0655, U+065A, U+0660-066F, U+0674, U+0679-0687, U+0691, - U+0692, U+0698, U+06A1, U+06A4, U+06A9, U+06AF, U+06B5, U+06BA, U+06BE, - U+06C6, U+06CC, U+06CE, U+06D5, U+06F0-06F9 (by Remy Oudompheng) -- added to Mono in Arabic Presentations Forms-A : U+FB52-FB81, U+FB8A-FB95, - U+FB9E, U+FB9F, U+FBAA-FBAD, U+FBE8, U+FBE9, U+FBFC-FBFF (by Remy Oudompheng) -- added to Mono in Arabic Presentations Forms-B : U+FE70-FE74, U+FE76-FEFC, - U+FEFF (by Remy Oudompheng) -- added U+05BA, U+05BE, U+05F3, U+05F4, U+FB1E, U+FB21-U+FB28, U+FB4F to Sans - (by Eugeniy Meshcheryakov) -- added U+2102 to Mono (by Eugeniy Meshcheryakov) -- added U+2983-U+2984 to Sans (by Gee Fung Sit) -- added U+2A2F to Sans, Serif and Mono (by Gee Fung Sit) -- added U+2373-2375, U+237A to Sans (by John Karp) -- converted kern pairs to kern classes with Tavmjong Bah's scripts - (by Denis Jacquerye) -- set ScriptLang of kerning classes to just latn because of Pango bug - (by Denis Jacquerye) -- added DNK to ScriptLang latn otherwise it is excluded, and SRB and MDK to - cyrl (by Denis Jacquerye) -- removed flag 0x80 in generate.pe, otherwise it generates kerning tables some - systems don't like; thus loosing Apple tables (by Denis Jacquerye) -- removed ligature for precomposed legacy characters of Sans Oblique fonts - (by Denis Jacquerye) -- added bearings to en dash U+2013, em dash U+2014 and figure dash U+2012 - by making dashes shorter, preserving character width (by Denis Jacquerye) -- reduced U+031C, U+0325 (ring below), U+0339 to be entirely visible; - added instructions in Sans Book; changed U+1e00-U+1e01 to use new ring below - (by Denis Jacquerye) -- adjusted circumflex below on U+1E12-U+1E13, U+1E18-U+1E19, U+1E3C-U+1E3D, - U+1E4A-U+1E4B, U+1E70-U+1E71, U+1E76-U+1E77 in Sans fonts (by Denis Jacquerye) -- Added U+0ED4, U+0ED5 to DejaVu Sans (by Remy Oudompheng) -- Lao-specific anchors (by Remy Oudompheng) -- added alternate I to match the small capital in Sans (by Gee Fung Sit) - -Changes from 2.14 to 2.15 - -- improved hinting in Sans Oblique to deal with some spacing and inconsistency - issues (by Ben Laenen) -- added anchors to Mono Book, and added GPOS rules for combining diacritics to - show up as zero width glyphs (by Ben Laenen) -- removed U+F21C (PUA), it was copy of U+2C64 from Latin Extended C (by Eugeniy - Meshcheryakov) -- added U+27E6-U+27E7 to Sans (by Gee Fung Sit) -- added U+1407, U+1409, U+140C-U+141B, U+141D-U+1425, U+1427-U+142E, - U+1435-U+1438, U+143A-U+1449, U+1452, U+1454, U+1457-U+1465, U+1467-U+146A, - U+1471, U+1474-U+1482, U+1484-U+1488, U+148F, U+1492, U+14A0, U+14A2, U+14A9, - U+14AC-U+14BA, U+14BC, U+14BD, U+14C6, U+14C9-U+14CF, U+14D1, U+14D2, U+14D9, - U+14DC-U+14E9, U+14EC, U+14F3, U+14F6-U+1504, U+1506, U+1507, U+1510-U+1525, - U+152C, U+152F-U+153D, U+1540, U+1541, U+154E, U+154F, U+1552, U+155B, U+155C, - U+1568, U+1569, U+1574-U+157B, U+157D, U+15A7-U+15AE, U+1646, U+1647 (by - Eugeniy Meshcheryakov) -- fixed several contours to not intersect, use horizontal or vertical tangents, - use integer coordinates, etc in Sans Book (by Denis Jacquerye) -- added U+0496-U+0497 in Serif (by Andrey V. Panov) - -Changes from 2.13 to 2.14 - -- added Philippine peso glyph U+20B1 (by Clayborne Arevalo) -- made U+2012 have the same width as digits, according to Unicode 5.0, - page 206 (by Roozbeh Pournader) -- made all of the "above" combining characters remove the dot of "i", - "j", etc (Soft_Dotted characters), according to Unicode 5.0, - page 228 (by Roozbeh Pournader) -- made U+012F, U+03F3, U+0456, U+0458, U+1E2D, and U+1ECB (all fonts - except Mono), U+0249, U+2148, and U+2149 (Sans and Sans Condensed), - U+0268 (Sans ExtraLight, Serif and Serif Condensed), and U+029D (Serif - and Serif Condensed) respect the Soft_Dotted property (by Roozbeh - Pournader) -- added U+223E, U+223F, U+2240, U+22C2, U+22C3 to Sans (by Remy Oudompheng) -- added U+203D to Serif (by Gee Fung Sit) -- added zero-width glyphs for U+2061-U+2063 to Sans and Serif (by Gee - Fung Sit) -- changed isolated forms of Arabic waw (U+0648, U+0624 and U+06C6) (bug #9432) - (by Ben Laenen) -- added Lao consonants U+0E81, U+0E82, U+0E84, U+0E87, U+0E88, U+0E8A, - U+0E8D, U+0E94-0E97, U+0E99-0E9F, U+0EA1-0EA3, U+0EA5, U+0EA7, U+0EAA, - U+0EAB, U+0EAD-0EAF to Sans Mono (by Remy Oudompheng) -- added U+0200-U+0217, U+0226-U+0229, U+02F3, U+1E00-U+1E07, - U+1E0A-U+1E0B, U+1E18-U+1E1F, U+1E22-U+1E23, U+1E28-U+1E2D, - U+1E3A-U+1E3B, U+1E40, U+1E48-U+1E49, U+1E56, U+1E58-U+1E59, - U+1E5E-U+1E5F, U+1E60, U+1E68-U+1E6B, U+1E6E-U+1E6F, U+1E72-U+1E77, - U+1E86-U+1E8B, U+1E92-U+1E96, U+1EA0-U+1EA1, U+1EF4-U+1EF5 to Mono - (by Ben Laenen) -- renamed uppercase variants of diacritics (macron, breve, double grave, - double acute, inverted breve, dot above) to "uni03XX.case" in Mono - (by Ben Laenen) -- moved uppercase variants of diacritics up in Mono so they properly - vertically align on capitals (by Ben Laenen) -- precomposed glyphs with macron, breve, double grave, double acute, - inverted breve, dot above, macron below, breve below, inverted breve - below, dot below, cedilla, caron below, circumflex below, diaeresis - below, tilde below now reference to combining diacritics instead of - space modifiers in Mono (by Ben Laenen) -- made ring below (U+0325), and half rings below (U+031C and U+0339) - smaller in Mono (by Ben Laenen) -- added U+205F to all fonts (by Roozbeh Pournader) -- added U+035E-U+035F to Sans (by Roozbeh Pournader) -- added empty glyphs for U+034F, U+202A-U+202E, U+2060, U+206A-206F, - U+FE00-U+FE0F to non-Mono fonts (by Roozbeh Pournader) -- added U+2101, U+2107-U+2108, U+210B, U+210C, U+2110, U+2112, U+211B, - U+211F, U+2123, U+2125, U+2128-U+2129, U+212C-U+212D, U+212F, - U+2130-U+2131, U+2133, U+2136-U+213A, U+2141-U+2144, U+2B00-U+2B11, - U+2B20-U+2B23 to Sans (by John Karp) -- reshaped omega (U+03C9) in Mono (by Ben Laenen) -- added U+2205, U+22C6, U+2300-U+2301, U+2303-U+2306, U+230C-U+230F, - U+2312-U+2315, U+231C-U+231F, U+2335, U+2337-U+233E, U+2341-U+2344, - U+2347-U+2348, U+234B-U+234D, U+2349-U+2350, U+2352-U+2354, - U+2357-U+2359, U+235A-U+235C, U+235E-U+2360, U+2363-U+2365, - U+2368-U+2369, U+236B-U+2370, U+2373-U+237A, U+2380-U+2383, - U+2388-U+238B, U+2395 in Mono (by Ben Laenen) - -Changes from 2.12 to 2.13 - -- adjusted U+0198B, U+01B3-U+01B4 in Sans, hinted U+01B4 in Sans Book - (by Denis Jacquerye) -- added U+27F0-U+27FF, U+2906-U+2907, U+290A-U+290B, U+2940-U+2941 to Sans - (by Denis Jacquerye) -- added U+01E6-U+01E9, U+01EE-U+01EF, U+01F4-U+01F5, U+01FC-U+01FF, - U+021E-U+021F, U+0245, U+02BD, U+02C9, U+1E9B, U+2045-U+2046, U+2213, U+22C5, - U+22EF to Sans Mono (by Roozbeh Pournader) -- added U+04FA-U+04FD to Sans (by Michael Everson) -- removed U+2329 and U+232A because of their CJK properties, added U+27E8 - and U+27E9 in their stead, fixing part of bug #9038 (by Roozbeh Pournader) -- corrected and improvised U+0466-U+0469, U+046E-U+0471, U+047C-U+047D, U+0482, - U+0484-U+0486, U+0492-U+0493, U+04B0-U+04B1, U+050C-U+050D, and U+204A - in Sans (by Michael Everson) -- added instructions for U+0402, U+0409, U+040A, U+040B, U+044D, U+040F, - U+0452, U+0459-U+045B, U+045F to Sans Book (by Eugeniy Meshcheryakov) -- made italic shape for U+431, U+432, U+437, U+43B, U+43C, U+43D, U+444, U+447, - U+44D, U+44F, U+459, U+45A in SerifOblique and SerifBoldOblique - (by Andrey V. Panov) -- modified U+024C to match glyph in Unicode chart, fixing bug #9039 - (by Denis Jacquerye) -- made some canonically equivalent characters share the same glyph: - U+02B9 = U+0374, U+0343 = U+0313, and U+0387 = U+00B7 also adjusting U+02BA - to look like double U+02B9, fixing parts of bug #9038 (by Roozbeh Pournader) -- changed shapes for U+0478 and U+0479 in Sans to those in the Unicode charts, - based on a recent decision by Unicode Technical Committee to only use - the digraph form (by Michael Everson) -- adjusted width of NBSP U+00A0 and NNBSP U+202F, fixing bug #8401 - (by Denis Jacquerye) -- fixed several contours to not intersect, use horizontal or vertical tangents, - use integer coordinates, etc (by Roozbeh Pournader and Denis Jacquerye) -- added U+1402, U+1430, U+144D, U+146C, U+148A, U+14A4, U+14C1, U+14D4, U+14EE, - U+1527, U+1545, U+157E, U+158E, U+15AF to Sans (by Eugeniy Meshcheryakov) -- enlarged width of U+459 and U+45A in Serif (by Andrey V. Panov) -- made traditional shape for U+452, U+45B (by Andrey V. Panov) -- added euro sign U+20AC to Sans ExtraLight, making fontconfig recognize - the font as supporting English (by Denis Jacquerye) - -Changes from 2.11 to 2.12 - -- added U+0180 to Serif (by Denis Jacquerye) -- improved and/or hinted Armenian letters U+0542, U+0546, U+0562, - U+0563, U+0564, U+0577, U+0582 in Sans (by Ben Laenen) -- added U+4FE-U+4FF, U+512-U+513, U+2114, U+214E, U+26B2 to Sans - (by Gee Fung Sit) -- adjusted U+0496-U+0497, U+049A-U+04A1 in Sans to match U+0416, - U+041A, U+0436 and U+043A (by Gee Fung Sit) -- Mathematical Operators in Sans: changed U+22C0-U+22C1 to match - other n-ary operators, adjusted U+2203-U+2204, changed U+2220 in - Sans to match the style of U+2221 (by Gee Fung Sit) -- added U+1401, U+1403-U+1406, U+140A, U+140B, U+1426, U+142F, - U+1431-U+1434, U+1438, U+1439, U+1449, U+144A, U+144C, - U+144E-U+1451, U+1455, U+1456, U+1466, U+146B, U+146D-U+1470, - U+1472, U+1473, U+1483, U+1489, U+148B-U+148E, U+1490, U+1491, - U+14A1, U+14A3, U+14A5-U+14A8, U+14AA, U+14AB, U+14BB, U+14C0, - U+14C2-U+14C5, U+14C7, U+14C8, U+14D0, U+14D3, U+14D5-U+14D8, - U+14DA, U+14DB, U+14EA, U+14ED, U+14EF-U+14F2, U+14F4, U+14F5, - U+1405, U+1526, U+1528-U+152B, U+152D, U+152E, U+153E, - U+1542-U+1544, U+1546-U+154D, U+1550, U+1553, U+1555-U+155A, - U+1567, U+156A, U+157C, U+157F-U+1585, U+158A-U+158D, - U+158F-U+1596, U+15A0-U+15A6, U+15DE, U+15E1, U+166E-U+1676 to - Sans (by Eugeniy Meshcheryakov) -- re-enabled Latin ligatures fi, ffi, fl, ffl and ff in Sans - (by Ben Laenen) -- made italic shape for U+436, U+44A, U+44B, U+44C, U+44E, U+45F, - U+463 in SerifOblique and SerifBoldOblique (by Andrey V. Panov) -- fixed sub- and superscript metrics in Condensed Sans (bug #8848) - (by Ben Laenen) -- added U+474, U+475 in Serif (by Andrey V. Panov) -- hinted Greek glyphs U+03B7, U+30B8, U+03B9, U+03C1, U+03C3, - U+03C6 in Mono Book (by Ben Laenen) - -Changes from 2.10 to 2.11 - -- added instructions for Hebrew glyphs (Sans Book, by Eugeniy - Meshcheryakov) -- changed U+01A6 (Latin Yr) after bug #8212, in Sans, Serif and - Sans Mono fonts (by Denis Jacquerye). -- removed instruction for U+2600-U+26A1 (by Mederic Boquien) -- added U+202F and set width of U+00A0 (nobreakingspace) to the - same as U+0020, space (by Denis Jacquerye). -- added and improved instructions for various Cyrillic letters - (by Eugeniy Meshcheryakov) -- Changed U+416, U+42F, U+427 (non-Bold), U+436, U+447 (non-Bold), - U+44F, U+437 (Bold), corrected U+40F, U+414, U+424, U+426, U+429, - U+434, U+438 (Bold), U+446, U+449, U+44D (non-Bold), U+45F in - Sans Mono (by Andrey V. Panov) -- made small corrections to Cyrillic, most appreciable to U+409, - U+413, U+41B, U+427 and U+433, U+434, U+43B, U+447, U+459 - (upright fonts) to Serif (by Andrey V. Panov) -- adjusted bearings of U+410, U+416, U+41A, U+42F, U+436, U+43A, - U+443, U+44F in Serif (by Andrey V. Panov) -- enlarged width of U+44A, U+44B, U+44C, U+463 in Serif - (by Andrey V. Panov) -- added ligature "iacute" as "afii10103" (U+456) "acutecomb" in - Serif (by Andrey V. Panov) -- made italic shape to U+446, U+448, U+449 in Serif (by Andrey V. - Panov) -- added "afii10831" (U+F6C7), "afii10832" (U+F6C8) in Serif (by - Andrey V. Panov) -- new minimum version of fontforge is 20061014 (by Ben Laenen) - -Changes from 2.9 to 2.10: - -- added U+0242, U+024A-U+024B, U+024E-U+024F, U+037C-U+037D, U+0E3F, - U+1D2C-U+1D2E, U+1D30-U+1D42, U+1D5D-U+1D6A, U+1D78, U+1DB8, - U+2090-U+2094, U+20D0-U+20D1, U+2C60-U+2C66, U+2C6B-U+2C6C, U+2C74 and - U+FB29 to Sans (by Gee Fung Sit) -- added Lao glyphs : U+0E81-0E82, U+E084, U+0E87-0E88, U+0E8A, U+0E8D, - U+0E94-0E97, U+0E99-0E9F, U+0EA1-0EA3, U+0EA5, U+0EA7, U+0EAA-0EAB, - U+0EAD-0EB9, U+0EBB-0EBD, U+0EC0-0EC4, U+0EC6, U+0EC8-0ECD, U+0EDC-0EDD - (by Remy Oudompheng) -- fixed U+0193 not showing in Windows (bug #7897) (by Ben Laenen) -- changes to U+222B-222D in Sans Mono (by Remy Oudompheng) -- ported the three remaining currency symbols from Arev (U+20B0, - U+20B2-U+20B3), and replaced one (U+20AF) in Sans (by Lars Naesbye - Christensen) -- corrected U+20A5 in Sans (by Gee Fung Sit) -- merged Double-Struck Letters from Arev: U+2102, U+210D, U+2115, - U+2119-U+211A, U+2124, U+213C-U+2140 (by Gee Fung Sit) -- added U+2308-U+230B and U+2329-U+232A to Sans Mono and Serif faces, - fixed incorrect direction of U+2329 in Sans faces, and improved - U+2308-U+230B in Sans faces per Ben Laenen's suggestions (by David - Lawrence Ramsey) -- added U+06D5 and final form of it (needed for Kurdish) (by Ben Laenen) -- added two special glyphs U+F000 and U+F001 in Sans Book that show the - current ppem size (horizontal and vertical) (by Ben Laenen) -- added U+2318 and U+2325 to Sans Mono faces, based on the Sans versions - (by David Lawrence Ramsey) -- added U+2B14-U+2B1A to all faces except Sans ExtraLight (by David - Lawrence Ramsey) -- respaced all Geometric Shapes characters in Serif faces to match those - in Sans faces again, respaced U+23CF in Sans, Sans ExtraLight, and - Serif faces to match U+25A0 (or Sans in Sans ExtraLight's case) again, - and respaced U+2B12-U+2B13 in Sans and Serif faces to match U+25A1 - again (by David Lawrence Ramsey) -- corrected width of Modifier Small Letters U+1D43-1D5B in Sans Oblique - and U+1D9B-U+1DBF in Sans Oblique and Sans Bold Oblique (by Gee Fung Sit) -- added a bunch of glyphs to Sans ExtraLight (see SVN for details) (by - Gee Fung Sit) -- adjusted Cyrillic descenders in Sans ExtraLight to sync with Sans (by - Gee Fung Sit) -- added U+0242, U+0245 to Serif (by Gee Fung Sit) -- replaced the SHPIX routines which gave them bad spacing at certain - sizes in FreeType for A, V, Z, v and z in Sans Bold (by Ben Laenen) - -Changes from 2.8 to 2.9: - -- DejaVuSansExtraLight.sfd: changed family name from "DejaVu Sans" to - "DejaVu Sans Light" (in case we add a Light weight variant), so legacy - apps that understand only 4 styles are happy. (by Denis Jacquerye) -- added Name ID 16, aka preferred family name, and Name ID 17, aka - preferred style name, so contemporary apps that understand more that 4 - styles can use big fonts families "DejaVu Sans" and "DejaVu Serif". For - those, Extralight and Condensed are just styles not different families. - (by Denis Jacquerye) -- added U+22B6-22BD, U+22C0-22C1, U+22D6-22D7 to Sans. (by Remy Oudompheng) -- added U+037B, U+2184, U+2C67-U+2C6A and U+2C75-U+2C77 to Sans (by Gee - Fung Sit) -- adjusted asteriskmath (U+2217) for consistency with other mathematical - operators in Sans (by Ben Laenen) -- hinted some Armenian capitals in Sans Book (by Ben Laenen) -- added U+0246 - U+0249 (by Ben Laenen) -- BUGFIX : swapped U+224E and U+224F, in Sans, Sans Condensed and Sans Mono - (by Remy Oudompheng) -- adjusted U+20B5 (by Mederic Boquien) -- swapped U+21DA and U+21DB which were in wrong order (by Heikki Lindroos) -- added U+222E-2233, U+239B-23AD, U+2A00-2A02, U+2A0F-2A1C to Sans (by Remy - Oudompheng) -- added U+239B-23AD to Mono (by Remy Oudompheng) -- added U+2024-2025 to Serif (by Mederic Boquien) -- added U+222C-222D, U+2A0C-2A0E to Serif (by Remy Oudompheng) -- added U+2190-21FF to Mono (by Heikki Lindroos) -- added Hebrew glyphs - U+05B0-U+05BD, U+05BF-U+05C3, U+05C6, U+05C7, - U+05D0-U+05EA, U+05F0-U+05F2, U+FB1F, U+FB20, U+FB2A-U+FB36, - U+FB38-U+FB3C, U+FB3E, U+FB40, U+FB41, U+FB43, U+FB44, U+FB46-U+FB4E (by - Gee Fung Sit and Eugeniy Meshcheryakov) -- adjustments for Cyrillic in Sans (by Andrey V. Panov) -- made italic shape for U+0434, U+0456, U+0457 in SerifOblique and Serif - Bold Oblique (by Andrey V. Panov) - -Changes from 2.7 to 2.8: - -- fixed instructions for U+0423, U+0427, U+0447, U+0448 in Serif, so they - look good at large sizes too (by Eugeniy Meshcheryakov) -- added U+FB00 and U+FB03 to U+FB06 to Serif typefaces (by Heikki Lindroos) -- added U+26B0-U+26B1, U+2701-U+2704, U+2706-U+2709, U+270C-U+2727, U+2729 - to U+274B, U+274D, U+274F to U+2752, U+2756, U+2758-U+275E, U+2761 to - U+2775 (by Heikki Lindroos) -- added and improved instructions for Cyrillic letters in Mono and Serif - (Book, by Eugeniy Meshcheryakov) -- rotated U+26B0 (was too small in mono) (by Gee Fung Sit) -- adjusted U+1EDA-U+1EDD, U+1EE8-U+1EEB, capitals using capital specific - accent and moved diacritics to match position on U+00F2 (ograve), etc. - (by Denis Jacquerye) -- added U+20D6, U+20D7 to Sans (by Gee Fung Sit) -- made Armenian ligatures discretionary since the Firefox ligature problem - still isn't fixed (by Ben Laenen) -- moved Armenian hyphen U+058A to a higher position (bug #7436) (by Ben - Laenen) -- hinted Greek glyphs in Sans Bold (by Ben Laenen) -- enabled Arabic lam-alif ligatures when diacritics are used (by Ben Laenen) - -Changes from 2.6 to 2.7: - -- added glyphs needed for Kurdish: U+0695, U+06B5, U+06C6, U+06CE and their - init/medi/fina forms in Sans (by Ben Laenen) -- added U+02CD, U+01F8 - U+01F9, U+1E3E - U+1E3F, U+1E30 - U+1E35, U+1EBC - - U+1EBD, U+1EF8 - U+1EF9 (includes glyphs needed for Yoruba, Maori, Guarani - and Twi) (by Ben Laenen) -- added U+22C8-22CC, U+29CE-29D5, U+2A7D-2AA0, U+2AAE-2ABA, U+2AF9-2AFA to - Sans (by Remy Oudompheng) -- adjusted diacritics on Vietnamese, Pinyin and other characters: - U+01A0-U+01A1, U+01AF-U+01B0, U+01D5-U+01DC, U+01DE-01E1, U+01FA-U+01FB - U+022A-U+022D, U+0230-U+0231, U+1E14-U+1E17, U+1E4C-U+1E53, U+1E78-U+1E7B, - U+1EA4-U+1EF1 in Sans (Book, Bold and Oblique) (by Denis Jacquerye) -- added basic arrows U+2190-U+2193 in Serif, which completes MES-1 compliance - for Serif (by Ben Laenen) -- added U+01E4, U+01E5, U+01FA, U+01FB, U+02BD, U+02C9 and U+02EE to Serif - (by Ben Laenen) -- fixed U+0209 in Serif Bold Oblique (by Ben Laenen) -- adjusted Box Drawing block characters U+2500-257F in Mono to fit character - cell, shifting them up by 416 (Denis Jacquerye) -- redid U+0194 in Sans (by Ben Laenen) -- added U+2217-2218, U+2295-22A1 to Mono (by Remy Oudompheng) -- added U+0462 to Serif (by Andrey V. Panov) -- added U+226C, U+228C-228E, U+2293-2294, U+22F2-22FF to Sans (by Remy - Oudompheng) -- adjusted U+2208-220D in Sans (by Remy Oudompheng) -- improved some Cyrillic glyphs in Mono (by Andrey V. Panov), rewritten - instructions for changed glyphs (by Eugeniy Meshcheryakov) -- added U+1E0E-1E0F, U+1E8E-1E8F to Mono fonts (by Denis Jacquerye). (bug - #7166) -- renamed 'Dotabove' to 'Dotaccent' in Mono Sans Oblique to match other fonts - (by Denis Jacquerye). -- added U+200B-U+200F in Sans faces and Serif faces, U+200B and U+200C were - in Sans already (by Lars Naesbye Christensen) -- added U+2601-U+262F, U+263D, U+263E, U+2648-U+265F, U+2668, U+2670-U+268B, - U+2690-U+269C, U+26A0, U+26A1, U+2794, U+2798-U+27AF, U+27B1-U+27BE to Mono - (by Heikki Lindroos) -- replaced the references with unshifted ones for both κ U+03BA and к U+043A - in Mono Book (by Denis Jacquerye) -- fixing glyph for U+04ED in Mono Book, consisted only of dieresis (by Andrey - V. Panov). - -Changes from 2.5 to 2.6: - -- redid U+2032 - U+2037, U+2057 based on Arev in Sans (by Gee Fung Sit) -- added U+0195, corrected U+039E, U+204B in Sans ExtraLight (by Gee Fung Sit) -- added instructions for some Cyrillic letters in Sans Bold (by Eugeniy - Meshcheryakov) -- added vulgar fractions U+2153-U+215F for Serif, made with references (by - Lars Naesbye Christensen) -- added U+228F-2292, U+2299-22AF, U+22B2-22B5, U+22CD, U+22D8-22ED to Sans - (by Remy Oudompheng) -- added U+2208-220D, U+2238-223D, U+2278-2281, U+228A-228B, U+228F-2292, - U+22CD, U+22DA-22E9 to Mono (by Remy Oudompheng) -- fixed misplaced dot in U+2250 in Mono (by Remy Oudompheng) -- added instructions for some Cyrillic letters in Mono Book and Bold(by - Eugeniy Meshcheryakov) -- minor changes to U+2241, U+2261-2263, U+22A4, U+22A5 in Sans (by Remy - Oudompheng) -- added hinting instructions to lowercase Armenian glyphs in Sans Book (by - Ben Laenen) -- changed U+2208, U+220B to match U+2209 and U+220C in Sans Bold (by Remy - Oudompheng) -- added Braille patterns U+2800-U+28FF to Sans (by Mederic Boquien) -- added instructions for some Cyrillic letters in Serif Book (by Eugeniy - Meshcheryakov) -- renamed BoldOblique fonts to Bold Oblique in TTF Name as originally in - Bitstream Vera fonts (by Denis Jacquerye) -- added hinting instructions to some Latin-B Extended and IPA characters in - Sans Book (by Denis Jacquerye and Ben Laenen) -- adjusted bearings, replaced diacritics, hinted hook and horn for - Vietnamese in Sans Book (by Denis Jacquerye) -- made FAX, TM, TEL, etc. discritionary ligatures in Sans and Serif fonts - (by Denis Jacquerye) -- removed ligatures of precomposed characters in Sans and Serif fonts (by - Denis Jacquerye) -- added U+F208, U+F20A, U+F215-F217, U+F21A-F21B, U+F25F in PUA (from SIL's - PUA, probably in Unicode 5.0): U+0243, U+0244, U+0245, U+024C, U+024D, - U+2C64, (U+2C6D), (U+2C71) -- modified some glyphs in Serif Oblique to make them more italic (by Denis - Jacquerye) - -Changes from 2.4 to 2.5: - -- fixed excessive kerning bug that occurs with Pango (by Denis Jacquerye) -- added U+20AF to Sans and Serif (by Lars Naesbye Christensen) -- regenerated Condensed faces (by Ben Laenen) -- added U+035C-U+035D to Sans, fixed U+0361 (by Denis Jacquerye) -- integrated 255 characters from Arev fonts: Latin Extended-B, Spacing - Modifiers, Combining Diacritical Marks, Cyrillic, Cyrillic supplement, - General Punctuation, Letterlike Symbols, Arrows, Mathematical Operators, - Miscellaneous Technical, Dingbats, Alphabetic Presentation Forms (by Denis - Jacquerye) -- added basic Cyrillic and basic Greek to Sans ExtraLight (by Denis Jacquerye) -- added U+0498, U+049A, U+04AA, U+04AB, U+04AF to Serif (by Eugeniy - Meshcheryakov) -- added U+0494, U+0495, U+0498, U+0499, U+04AA, U+04AB, U+04C3, U+04C4, - U+04C7, U+04C8 to Mono (by Eugeniy Meshcheryakov) -- adjusted weight of U+0256, U+0257, U+0260, U+0272, U+0273, U+0277, U+029B, - U+02A0 and modifed U+028B and U+027A in Mono (by Denis Jacquerye) -- added U+2000-200A to Mono (by Denis Jacquerye) -- added vulgar fractions U+2153 - U+215F to Mono (by Gee Fung Sit) -- adapted metrics of Arabic glyphs so they stay above cut-off height in Sans - (by Ben Laenen) -- fixed mkmk anchors for Arabic diacritics so they stack properly in Sans (by - Ben Laenen) -- fixed weight of lowercase upsilon in Sans Bold, make small adjustment to - lowercase omega in Sans (by Ben Laenen) -- added U+210E (by Mederic Boquien) -- unslanted U+2201, U+221B and U+221C in Sans Oblique (by Mederic Boquien) -- added several mathematical relation symbols to Sans and Mono (U+2241-224C, - U+2250-2255, U+2260-2269, U+226E-2277, U+2282-2287) modified U+223C to match - other tildes, and U+2282-2284 to have the same shape. (by Remy Oudompheng) -- made U+2234-U+2237 refer to U+2219 instead of U+00B7 in Sans (by Mederic - Boquien) -- added U+2238-223B, U+226A-226B, U+2278-2281, U+2288-228B to Sans (by Remy - Oudompheng) -- unslanted and changed reference of U+22C5 from U+00B7 to U+2219 in Sans (by - Mederic Boquien) -- added U+224D-225F, U+226D, U+22C6 to Sans and unslanted U+2219 in Sans - Oblique. (by Remy Oudompheng) -- added U+224D-225F, U+226D to Mono, shifted U+2266-2269 higher upwards and - unslanted U+2219 in Oblique. (by Remy Oudompheng) -- merged Coptic glyphs from Arev 0.2 (by Lars Naesbye Christensen) -- fixed and adjusted various Cyrillic glyphs in Serif (by Andrey V. Panov) -- made fi, fl... ligatures discretionary ligatures (by Ben Laenen) - -Changes from 2.3 to 2.4: - -- added U+04A2, U+04A3, U+04AC - U+04AF, U+04BA, U+04BB, U+04C0 - - U+04C2, U+04CB, U+04CD, U+04D8 - U+04DF, U+04E2 - U+04E5, U+04E8 - U+04F5, - U+04F6 - U+04F9 to Mono (by Eugeniy Meshcheryakov) -- added U+048C, U+048D, U+0494, U+0495, U+049E - U+04A7, U+04AC - - U+04AE, U+04B4- U+04B7, U+04BA, U+04BB, U+04C0 - U+04C4, U+04C7, U+04C8, - U+04CB, U+04CC, U+04D8 - U+04DF, U+04E2 - U+04E5, U+04EC - U+04F9 to Serif - (by Eugeniy Meshcheryakov) -- added U+2134 to Sans (by Gee Fung Sit) -- added U+2080 - U+2089 to all faces (by Gee Fung Sit) -- several minor corrections to Sans (by Gee Fung Sit) -- major corrections to Sans Condensed (by Gee Fung Sit) -- corrected Superscripts and Subscripts in Sans (by Gee Fung Sit) -- corrected anchors of U+0316-U+0319 (by Denis Jacquerye) -- Verajja integrated (by Stepan Roh) -- copied U+2328, U+2600, U+2639-U+263C, U+263F-U+2647, U+2660-U+2667, - and U+2669-U+266F from Sans to Serif, and copied scaled-down versions of - them to Sans Mono (by David Lawrence Ramsey) -- added U+20B4 to all faces (by Eugeniy Meshcheryakov) -- added more minor positional adjustments to U+2638 in all faces to - match the other miscellaneous symbols in Verajja, and rescale it in Sans - Mono so that it looks better (by David Lawrence Ramsey) -- added U+2242, U+2243 and U+22A4 (by Mederic Boquien) -- corrected U+2245 in Sans (by Mederic Boquien) -- added U+0221, U+0234-0236 (by Denis Jacquerye) -- added in Arabic block to Sans: U+060C, U+0615, U+061B, U+061F, U+0621 -- U+063A, U+0640 - U+0655, U+0660 - U+066F, U+0679 - U+0687, U+0698, U+06A1, - U+06A9, U+06AF, U+06BA, U+06BF, U+06CC, U+06F0 - U+06F9 (by Ben Laenen) -- added in Arabic Presentation Forms A to Sans: U+FB52 - U+FB81, U+FB8A -- U+FB95, U+FB9E - U+FB9F, U+FBE8 - U+FBE9, U+FBFC - U+FBFF (by Ben Laenen) -- added complete Arabic Presentation Forms B to Sans: U+FE70 - U+FE74, - U+FE76 - U+FEFC, U+FEFF (by Ben Laenen) -- added complete Greek Extended block to Mono (by Ben Laenen) -- modified Greek capitals with tonos in Mono (by Ben Laenen) -- added U+01C4-01CC, U+01D5, U+01DE, U+01E0-U+01E1, U+01E6-U+01E9, - U+01EE-U+01F5, U+01F8-U+0217, U+021E-U+021F, U+0226-U+022A, U+022C to Serif - (by Denis Jacquerye) -- adjusted U+043B and U+044F in Serif (by Denis Jacquerye) -- added U+2000-U+200A (by Denis Jacquerye) -- added U+1E00-U+1E0B, U+1E0E-U+1E11, U+1E14-U+1E1C, U+1E1E-U+1E23, - U+1E26-U+1E2D, U+1E30-U+1E35, U+1E3A-U+1E3B, U+1E3E-U+1E40, U+1E48-U+1E49, - U+1E50-U+1E56, U+1E58-U+1E59, U+1E5E-U+1E60, U+1E68-U+1E6B, U+1E6E-U+1E6F, - U+1E72-U+1E7D, U+1E86-U+1E9B, U+1EA0-U+1EA3, U+1EAC-U+1EB7, U+1EBA-U+1EBD, - U+1EC6-U+1ECF, U+1ED8-U+1ED9, U+1EE6-U+1EE7, U+1EF4-U+1EF9 to Serif (by - Denis Jacquerye) -- added U+048E, U+048F, U+049C-U+049F, U+04B8, U+04B9, U+04BC-U+04BF, - U+04C3, U+04C4 to Sans (by Eugeniy Meshcheryakov) -- added DejaVu Sans Extra Light (by Denis Jacquerye) -- Adjusted underline position for (hopefully) improved legibility in - Sans, Serif, Mono (Tim May) -- added auto-generated DejaVu LGC (by Stepan Roh) - -Changes from 2.2 to 2.3: - -- fixed bug U+042B and U+044B behave badly in Sans Bold or Oblique (by - Keenan Pepper) -- added and improved TrueType instructions and related settings (by - Keenan Pepper) -- added U+04D0-U+04D7, U+04E6, U+04E7 to Mono (by Eugeniy Meshcheryakov) -- added U+048A - U+048D, U+0498, U+0499, U+04AA, U+04AB, U+04B0, U+04B1, - U+04C0, U+04C9, U+04CA, U+04CE, U+04CD, U+04DA, U+04DB, U+04DE, U+04DF, - U+04E2 - U+04E5, U+04EC - U+04F8, U+04F9 to Sans (by Eugeniy Meshcheryakov) -- added U+04E0, U+04E1 to all faces (by Eugeniy Meshcheryakov) -- added Greek Extended to Sans and Serif: U+1F00-U+1F15, U+1F18-U+1F1D, - U+1F20-U+1F45, U+1F48-U+1F4D, U+1F50-U+1F57, U+1F59, U+1F5B, U+1F5D, - U+1F5F-U+1F7D, U+1F80-U+1FB4, U+1FB6-U+1FC4, U+1FC6-U+1FD3, U+1FD6-U+1FDB, - U+1FDD-U+1FEF, U+1FF2-U+1FF4, U+1FF6-U+1FFE (by Ben Laenen) -- added Greek variant letterforms, archaic letters and symbols to Mono: - U+03D0-U+03E1, U+03F0-U+03FF (by Ben Laenen) -- added Armenian block and Armenian ligatures to Sans (U+0531 - U+0556, - U+0559 - U+055F, U+0561 - U+0587, U+0589 - U+058A, U+FB13 - U+FB17) (by Ben - Laenen) -- redid some Greek characters in Sans and Mono to make them look better - and to correct some errors (by Ben Laenen) -- added U+27E0 to all faces (by David Lawrence Ramsey) -- added underscore (U+005F) consistency fixes: extended the Sans Mono - and Sans Mono Oblique underscores to touch both horizontal edges, and - reduced the height of the Sans Bold Oblique underscore to match the Sans - Bold underscore (by David Lawrence Ramsey) -- added underscore (U+005F) derivatives and consistency fixes for them: - made U+0332 a reference to underscore at Denis Jacquerye's suggestion; made - U+0333 two references to underscore; made U+033F two references to U+203E; - added U+2017 as two references to underscore, and made U+0333 a reference to - it; and added U+203E as a reference to underscore, and made U+0305 a - reference to it (by David Lawrence Ramsey) -- added U+201B, U+2220, U+2320-U+2321, U+23AE, U+23CF, all remaining - Geometric Shapes glyphs (U+25A0-U+25C9, U+25CB-U+25D7, U+25D9-U+25E5, - U+25E7-U+25FF), and U+2B12-U+2B13 to all faces (by David Lawrence Ramsey) -- added minor positional adjustments to U+2638 in all faces (by David - Lawrence Ramsey) -- added U+201F to Sans Mono and Serif faces (by David Lawrence Ramsey) -- added U+01B7, U+01F6, U+0464 - U+0465, U+2160 - U+2180, U+2183, - U+220A, U+220D, U+2329, U+232A, U+2422, U+27E8 - U+27EB, U+2680 - U+2685 to - Sans (by Gee Fung Sit ???) -- added U+2116 to Sans and Serif (by Gee Fung Sit) -- changed florin sign U+0192 in Sans (by Gee Fung Sit) -- added anchor points to some glyphs (by Denis Jacquerye) -- adjusted height of IPA superscripts U+02B0-02B8, U+02C0-02C1, - U+02E0-02E4, U+207F to match with height of U+00B2 (by Denis Jacquerye) -- added U+0184-U+0185, U+019C, U+019F, U+01A0-U+01A3, U+01A6, U+01AA, - U+01AF-U+01B0, U+01B2-U+01B4, U+01B7-U+01B8, U+01BC-U+01BC, U+0224-U+0225, - U+023A-U+0240, U+1D16-U+1D17, U+1D1D-U+1D1E, U+1D43-U+1D5B, U+1D7B, - U+1D85,U+1D9B-1DB7, U+1DB9-U+1DBF, U+20A6 to all fonts (by Denis Jacquerye) -- added added U+0182, U+018B, U+018E, U+01A0-U+01A1, U+01B1, U+01B9, - U+01C0-U+01C3, U+0238-U+0239, U+1D02, U+1D08-U+1D09, U+1D14, U+1D1F, U+1D77 - to Serif and Mono (by Denis Jacquerye) -- added U+0181, U+0183, U+0187-U+0188, U+018A-U+018F, U+0191, U+0193, - U+0195-U+019B, U+019D-U+019E, U+01A4-U+01A5, U+01AC-U+01AE, U+01B5-U+01B6, - U+01B9, U+01BB, U+01F6 to Serif (by Denis Jacquerye) -- added U+0181, U+0187-U+0188, U+018A, U+018D, U+018F, U+0191, U+0193, - U+0195-U+019F, U+01A4-01A5, U+01AC-01AD, U+01B5-U+01B6, U+1BB, U+01F6, - U+01D7-U+01DC, U+0238-U+0239, U+0241 to Mono (by Denis Jacquerye) -- added to Mono and Serif (by Denis Jacquerye) - -Changes from 2.1 to 2.2: - -- reworked the vertical orientation of the Blocks Elements characters - in all faces to remove their overly large descenders, in order to fix - problems with e.g. terminal emulators (by David Lawrence Ramsey) -- copied bullet in Sans faces to Serif faces for consistency (by David - Lawrence Ramsey) -- added U+2023, U+25D8, U+25E6, and U+29EB to all faces (by David - Lawrence Ramsey) -- added U+1EB8, U+1EB9, U+1ECA - U+1ECD, U+1EE4, U+1EE5 (by Tim May) -- added U+01DD, U+02BE, U+02BF, U+02D3 to all, changed U+02D2 in - non-Condensed and U+1EE5 in Serif (by Tim May) -- fixed U+01CE, replacing wrong circumflex by caron (by Denis Jacquerye) -- added anchor points to some glyphs (by Denis Jacquerye) -- added U+20B5 (by Denis Jacquerye) -- added U+0181 - U+0183, U+0187, U+0188, U+018A - U+018D, U+0191, - U+0193, U+0195 - U+019B, U+019D, U+019E, U+01A4, U+01A7 - U+01A9, U+01AB - - U+01AE, U+01B1, U+01B5, U+01B6, U+01BB, U+01C0 - U+01C3, U+01F1 - U+01F3, - U+0238, U+0239, U+1D02, U+1D08, U+1D09, U+1D14, U+1D1F, U+1D77, U+2103, - U+2126, U+2127, U+212A, U+212B, U+2132, U+214B, U+2210, U+2217, U+2218, - U+2A0C - U+2A0E, U+FB00, U+FB03 and U+FB04 to Sans (by Gee Fung Sit) -- added U+01A9, U+01C3 and U+2126 to Mono and Serif (by Gee Fung Sit) -- adjusted bearings of U+028B in Sans (by Gee Fung Sit) -- added U+018F, U+0494-U+0497, U+04A0-U+04A7, U+04AC-U+04AF, - U+04B4-U+04B7, U+04BA-U+04BB, U+04C1-U+04C2, U+04C5-U+04C8, U+04CB-U+04CC, - U+04D0-U+04D9, U+04DC-U+04DD, U+04E6-U+04EB to Sans (by Eugeniy - Meshcheryakov) -- replaced with references U+0391-U+0393, U+0395-U+0397, U+0399, U+039A, - U+039C, U+039D, U+039F-U+03A1, U+03A4, U+03A5, U+03A7, U+03BF, U+03DC, - U+0405, U+0406, U+0408, U+0410, U+0412, U+0415, U+0417, U+041A, - U+041C-U+041E, U+0420-U+0422, U+0425, U+0430, U+0435, U+043E, U+0440, - U+0441, U+0443, U+0445, U+0455-U+0458 in Serif and Mono (by Eugeniy - Meshcheryakov) -- added U+04D0-U+04D7, U+04E6-U+04EB to Serif (by Eugeniy Meshcheryakov) -- added U+212A and U+212B to the rest of the faces (by Lars Naesbye - Christensen) -- added U+2318 and U+2325 to Sans and Serif (by Lars Naesbye Christensen) -- added and improved TrueType instructions and related settings (by - Keenan Pepper) -- completed basic Greek alphabet: added U+0374-U+0375, U+037A, U+037E, - U+0384-U+038A, U+038C, U+038E-U+0390, U+03AC-U+03BF, U+03C1-U+03CE (by Ben - Laenen) -- added U+2070 and U+2074-U+2079 (by Mederic Boquien) - -Changes from 2.0 to 2.1: - -*** Be aware that names of some TTF files changed since version 2.0. *** - -- added U+0323, U+1E0C, U+1E0D, U+1E24, U+1E25, U+1E36 - U+1E39, U+1E42, - U+1E43, U+1E46, U+1E47, U+1E5A - U+1E5D, U+1E62, U+1E63, U+1E6C, U+1E6D, - U+1E7E, U+1E7F (by Tim May) -- fixed bug where GNOME applications used Mono Bold Oblique instead of - Mono Oblique (by Keenan Pepper) -- added and improved TrueType instructions and related settings (by - Keenan Pepper) -- added U+1E41, U+1E57, U+1E61 (by Sander Vesik) -- added U+0189, U+0309, U+0313, U+0314, U+031A, U+031B, U+0327, U+0328, - U+032B, U+0333, U+033C (by Denis Jacquerye) -- adjusted and fixed U+0186, U+0254, U+0291, U+0316 - U+0319, U+031C - - U+0320, U+0323 - U+0326, U+0329 - U+032A, U+032C - U+0332, U+0339 - U+033B, - U+033E, U+033F (by Denis Jacquerye) -- fixed U+1E12, U+1E3C, U+1E4A, U+1E70 to have normal below diacritics - (by Denis Jacquerye) -- fixed U+1E82, U+1E84 and U+1EF2 to have uppercase above diacritics (by - Denis Jacquerye) -- added anchor points to some glyphs (by Denis Jacquerye) -- dropped "-Roman" from font names - affects both internal TTF names and - names of generated files (by Stepan Roh) -- attempt to fix bug Vertical spacing too big for Mono by exchanging - LineGap and OS2TypoLinegap values (proofed by Stefan Rank) -- added Greek capitals U+0391 - U+03A1, U+03A3 - U+03A9, U+03AA, U+03AB - in Mono (by Ben Laenen) -- added the per ten thousand sign U+2031 (by Mederic Boquien) -- added U+2207, U+221D, U+221F, U+2227 - U+222A, and U+2261 (by David - Lawrence Ramsey) -- new logo (by Gee Fung Sit) -- added U+0180, U+018E, U+201F, U+2024, U+2025, U+203D, U+2200, U+2203, - U+2213, U+222C, U+222D, U+2263 to Sans (by Gee Fung Sit) - -Changes from 1.15 to 2.0: - -- "Italized" basic glyphs in all Serif Oblique and their Condensed faces - (by David Jez) -- added and improved TrueType instructions and related settings (by Keenan - Pepper) -- added anchor points to some glyphs (by Denis Jacquerye) -- many new spacing and combining accents (by Denis Jacquerye) -- smart substitutions for transforming i and j to dottless form and for - using uppercase diacritics (by Denis Jacquerye) -- fixed remaining erroneously slanted characters in Serif Oblique faces (by - David Lawrence Ramsey) -- copied bullet in Sans faces to Sans Oblique faces for consistency (by - David Lawrence Ramsey) -- added U+203C and U+2047-U+2049 (by David Lawrence Ramsey) -- added Greek glyphs to Serif (by Ben Laenen, Condensed merge by David Jez) -- fixed bug LTR glyphs behaving like RTL (by Ben Laenen) -- fixed wrong glyph directions (by David Jez) -- fixed repositioned accents in Condensed faces (by David Jez) - -Changes from 1.14 to 1.15: - -- added and improved TrueType instructions and related settings (by Keenan - Pepper) -- fixed U+2302, U+2319 (by David Lawrence Ramsey) -- fixed yet another monospace bug (by Stepan Roh) -- fixed potential "too big ascender/descender" bug (by Stepan Roh) -- fixed U+026E and U+028E (by Denis Jacquerye) -- added U+0186, U+0190, U+0300 - U+0304, U+0306 - U+0308, U+030A - U+030C, - U+0321, U+0322 (by Denis Jacquerye) -- added rest of Block Elements: U+2591 - U+2593 (by David Lawrence Ramsey) -- added U+2311, U+237D and U+2638 (by David Lawrence Ramsey) -- added U+01CD - U+01D4 (by Denis Jacquerye) -- fixed accents of U+00F2 - U+00F6 by replacing them with references in Mono - Bold (by David Jez) -- added U+0490, U+0491 (by Eugeniy Meshcheryakov) -- added hints to U+0404 and U+0454 in Sans (by Eugeniy Meshcheryakov) -- completed Greek glyphs from U+0370 to U+03CF in Serif (by Ben Laenen) -- fixed shape of U+0255 in Sans Bold and Sans Bold Oblique (by Denis - Jacquerye) - -Changes from 1.13 to 1.14: - -- fixed bug where Mono faces were not recognized as fixed pitch in Windows - by correcting Venda glyphs (by David Jez) -- added and improved TrueType instructions (by Keenan Pepper) -- added 6 Uzbekian glyphs (by Mashrab Kuvatov) -- added Greek glyphs to Sans and Serif, changed pi and omega to fit in (by - Ben Laenen) -- added IPA and related superscript glyphs (by Denis Jacquerye) -- fixed buggy Venda glyphs (by David Lawrence Ramsey and Stepan Roh) -- added U+2302, U+2310, U+2319 (by David Lawrence Ramsey) -- fixed slanted U+00AC in Serif Oblique faces (by David Lawrence Ramsey) -- added 29 glyphs from Block Elements (by David Lawrence Ramsey) - -Changes from 1.12 to 1.13: - -- removed all stems (PS hints) (requested by David Jez) -- added U+01D6, U+01DF, U+022B, U+022D and U+0231 (by Sander Vesik) -- added 10 Venda glyphs (by Dwayne Bailey) -- fixed bug when fonts had no name on Microsoft Windows (by Stepan Roh) -- updated 'missing' glyph U+FFFD (by David Jez) -- set TTF flag fsType to 'Installable Embedding' (= unrestricted usage) - (idea by C. Tiffany) - -Changes from 1.11 to 1.12: - -- added long s (by James Cloos) -- prettier comma accent in gcommaaccent (by David Jez) -- added Hbar, hbar, kgreenlandic, napostrophe, Eng, eng, Tbar, tbar, - afii57929 (by David Jez) -- changed Iogonek, iogonek, IJ, ij to look better (by David Jez) -- glyph uni0237 renamed to dotlessj (requested by David Jez) -- fixed accents for dcaron, lcaron, tcaron, Uogonek, uogonek in Serif (by - David Jez) -- added U+2500 - U+257F box drawing glyphs to Sans Mono (by David Jez) -- fixed accents in Wcircumflex, Ycircumflex and Zdotaccent (by David Jez) -- extra kerning for F (by Sander Vesik) -- added 'missing' glyph U+FFFD (by David Jez) - -Changes from 1.10 to 1.11: - -- kerning updates (by Sander Vesik) -- added Iogonek, iogonek, IJ, ij, Uogonek, uogonek (from SuSE standard fonts - by Adrian Schroeter, SuSE AG) -- added Gcommaaccent, gcommaaccent, Kcommaaccent, kcommaaccent, - Lcommaaccent, lcommaaccent, Ncommaaccent, ncommaaccent, Rcommaaccent, - rcommaaccent (by Stepan Roh) - -Changes from 1.9 to 1.10: - -- added U+022E, U+022F (by Sander Vesik) -- kerning updates for DejaVu Sans (by Sander Vesik) -- fixed too wide cyrillic glyphs in DejaVu Sans Mono (by Valentin Stoykov) -- fixed ligatures bug in Mono (by Stepan Roh) - -Changes from 1.8 to 1.9: - -- integrated Arev Cyrillics (by Danilo Segan) -- added U+01EA, U+01EB, U+01EC, U+01ED (by Sander Vesik) - -Changes from 1.7 to 1.8: - -- fixed accents in Serif Oblique and Serif Bold Oblique (by Stepan Roh) - -Changes from 1.6 to 1.7: - -- added automatically generated Condensed typefaces (by Stepan Roh) - -Changes from 1.5 to 1.6: - -- monospace bug fixed (by Stepan Roh) -- incorrect Bitstream foundry assigned by fontconfig and KDE Font Installer -fixed (by Stepan Roh) -- added automatically generated Oblique version of Serif typefaces (by -Stepan Roh) -- corrected cyrillic D and d (by Danilo Segan and David Jez) -- fixed accents position in Oblique version of Serif typefaces (by Danilo -Segan and Sander Vesik) -- fixed incorrect computation of OS2Win* fields (by Stepan Roh) -- added visiblespace U+2423 (by David Jez) -- fixed 'line height' bug by fixing ascender and descender values (by David -Jez and Stepan Roh) -- fixed part of 'worse than Vera' bug (by Peter Cernak) -- smaller comma accent U+0326 (by David Jez) - -Changes from 1.4 to 1.5: - -- added Cyrillics (96 characters) and Dcroat to the rest of typefaces (by -Danilo Segan) -- fixed bugs in some Cyrillic characters, some of them reported by Sander -Vesik (by Danilo Segan) -- added U+0100, U+0101, U+0112, U+0113, U+012A, U+012B, U+014C, U+014D, -U+016A, U+016B, U+01E2, U+01E3, U+0232 and U+0233 (by Sander Vesik) -- added Romanian characters (by Misu Moldovan) -- added U+0108, U+0109, U+010A, U+010B, U+0114, U+0115, U+0116, U+0117, -U+011C, U+011D, U+0120, U+0121, U+0124, U+0125, U+0128, U+0129, U+012C, -U+012D, U+0134, U+0135, U+014E, U+014F, U+0150, U+0151, U+015C, U+015D, -U+0168, U+0169, U+016C, U+016D, U+0170, U+0171 and U+0237 (by James -Crippen) -- added U+02BB, U+2010, U+2011, U+2012 and U+2015 (by Stepan Roh) - -Changes from 1.3 to 1.4: - -- added Polish characters (Aogonek, aogonek, Eogonek, eogonek, Nacute, -nacute, Sacute, sacute, Zacute, zacute, Zdotaccent, zdotaccent) (by Stepan -Roh) - -Changes from 1.2 to 1.3: - -- added Cyrillics (96 characters) and Dcroat to Sans typefaces (by Danilo -Segan from his BePa fonts) - -Changes from 1.1 to 1.2: - -- added Ldot, ldot, Wcircumflex, wcircumflex, Ycircumflex, ycircumflex, - Wgrave, wgrave, Wacute, wacute, Wdieresis, wdieresis, Ygrave and ygrave - (from The Olwen Font Family 0.2 by Dafydd Harries) - -Changes from 1.0 to 1.1: - -- added Lacute, lacute, Lcaron, lcaron, Racute and racute (by Peter Cernak) - -Changes from 0.9.4 to 1.0: - -- none, just changed version and updated README - -Changes from 0.9.3 to 0.9.4: - -- fixed TTF generation (kerning tables were missing) - -Changes from 0.9.2 to 0.9.3: - -- kerning of added characters -- proper caron shape for dcaron in Mono (by Ondrej Koala Vacha) -- minor visual changes - -Changes from 0.9.1 to 0.9.2: - -- internal bugged version - -Changes from 0.9 to 0.9.1: - -- proper caron shape for dcaron and tcaron -- minor visual changes - -$Id: NEWS 2535 2013-08-25 15:21:17Z moyogo $ diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/README b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/README deleted file mode 100644 index 162a893..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/README +++ /dev/null @@ -1,59 +0,0 @@ -DejaVu fonts 2.34 (c)2004-2013 DejaVu fonts team ------------------------------------------------- - -The DejaVu fonts are a font family based on the Bitstream Vera Fonts -(http://gnome.org/fonts/). Its purpose is to provide a wider range of -characters (see status.txt for more information) while maintaining the -original look and feel. - -DejaVu fonts are based on Bitstream Vera fonts version 1.10. - -Available fonts (Sans = sans serif, Mono = monospaced): - -DejaVu Sans Mono -DejaVu Sans Mono Bold -DejaVu Sans Mono Bold Oblique -DejaVu Sans Mono Oblique -DejaVu Sans -DejaVu Sans Bold -DejaVu Sans Bold Oblique -DejaVu Sans Oblique -DejaVu Sans ExtraLight (experimental) -DejaVu Serif -DejaVu Serif Bold -DejaVu Serif Bold Italic (experimental) -DejaVu Serif Italic (experimental) -DejaVu Sans Condensed (experimental) -DejaVu Sans Condensed Bold (experimental) -DejaVu Sans Condensed Bold Oblique (experimental) -DejaVu Sans Condensed Oblique (experimental) -DejaVu Serif Condensed (experimental) -DejaVu Serif Condensed Bold (experimental) -DejaVu Serif Condensed Bold Italic (experimental) -DejaVu Serif Condensed Italic (experimental) - -All fonts are also available as derivative called DejaVu LGC with support -only for Latin, Greek and Cyrillic scripts. - -For license information see LICENSE. What's new is described in NEWS. Known -bugs are in BUGS. All authors are mentioned in AUTHORS. - -Fonts are published in source form as SFD files (Spline Font Database from -FontForge - http://fontforge.sf.net/) and in compiled form as TTF files -(TrueType fonts). - -For more information go to http://dejavu.sourceforge.net/. - -Characters from Arev fonts, Copyright (c) 2006 by Tavmjong Bah: ---------------------------- -U+01BA, U+01BF, U+01F7, U+021C-U+021D, U+0220, U+0222-U+0223, -U+02B9, U+02BA, U+02BD, U+02C2-U+02C5, U+02d4-U+02D5, -U+02D7, U+02EC-U+02EE, U+0346-U+034E, U+0360, U+0362, -U+03E2-03EF, U+0460-0463, U+0466-U+0486, U+0488-U+0489, U+04A8-U+04A9, -U+0500-U+050F, U+2055-205E, U+20B0, U+20B2-U+20B3, U+2102, U+210D, U+210F, -U+2111, U+2113, U+2115, U+2118-U+211A, U+211C-U+211D, U+2124, U+2135, -U+213C-U+2140, U+2295-U+2298, U+2308-U+230B, U+26A2-U+26B1, U+2701-U+2704, -U+2706-U+2709, U+270C-U+274B, U+2758-U+275A, U+2761-U+2775, U+2780-U+2794, -U+2798-U+27AF, U+27B1-U+27BE, U+FB05-U+FB06 - -$Id: README 2535 2013-08-25 15:21:17Z moyogo $ diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/langcover.txt b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/langcover.txt deleted file mode 100644 index 4db5bca..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/langcover.txt +++ /dev/null @@ -1,249 +0,0 @@ -This is the language coverage file for DejaVu fonts -($Id: langcover.txt 2538 2013-08-25 16:02:56Z moyogo $) - - Sans Serif Sans Mono -aa Afar 100% (62/62) 100% (62/62) 100% (62/62) -ab Abkhazia 100% (90/90) 93% (84/90) 84% (76/90) -af Afrikaans 100% (69/69) 100% (69/69) 100% (69/69) -ak Akan 100% (73/73) 100% (73/73) 100% (73/73) -am Amharic (0/264) (0/264) (0/264) -an Aragonese 100% (66/66) 100% (66/66) 100% (66/66) -ar Arabic 100% (36/36) (0/36) 100% (36/36) -as Assamese (0/64) (0/64) (0/64) -ast Asturian/Bable/Leonese/Asturleonese 100% (70/70) 100% (70/70) 100% (70/70) -av Avaric 100% (67/67) 100% (67/67) 100% (67/67) -ay Aymara 100% (60/60) 100% (60/60) 100% (60/60) -az-az Azerbaijani in Azerbaijan 100% (66/66) 100% (66/66) 100% (66/66) -az-ir Azerbaijani in Iran 100% (40/40) (0/40) 100% (40/40) -ba Bashkir 100% (82/82) 100% (82/82) 97% (80/82) -be Byelorussian 100% (68/68) 100% (68/68) 100% (68/68) -ber-dz Berber in Algeria 100% (70/70) 100% (70/70) 100% (70/70) -ber-ma Berber in Morocco 100% (32/32) (0/32) (0/32) -bg Bulgarian 100% (60/60) 100% (60/60) 100% (60/60) -bh Bihari (Devanagari script) (0/68) (0/68) (0/68) -bho Bhojpuri (Devanagari script) (0/68) (0/68) (0/68) -bi Bislama 100% (58/58) 100% (58/58) 100% (58/58) -bin Edo or Bini 100% (78/78) 100% (78/78) 100% (78/78) -bm Bambara 100% (60/60) 100% (60/60) 100% (60/60) -bn Bengali (0/63) (0/63) (0/63) -bo Tibetan (0/95) (0/95) (0/95) -br Breton 100% (64/64) 100% (64/64) 100% (64/64) -brx Bodo (Devanagari script) (0/82) (0/82) (0/82) -bs Bosnian 100% (62/62) 100% (62/62) 100% (62/62) -bua Buriat (Buryat) 100% (70/70) 100% (70/70) 100% (70/70) -byn Blin/Bilin (0/255) (0/255) (0/255) -ca Catalan 100% (74/74) 100% (74/74) 100% (74/74) -ce Chechen 100% (67/67) 100% (67/67) 100% (67/67) -ch Chamorro 100% (58/58) 100% (58/58) 100% (58/58) -chm Mari (Lower Cheremis / Upper Cheremis) 100% (76/76) 100% (76/76) 100% (76/76) -chr Cherokee (0/85) (0/85) (0/85) -co Corsican 100% (84/84) 100% (84/84) 100% (84/84) -crh Crimean Tatar/Crimean Turkish 100% (68/68) 100% (68/68) 100% (68/68) -cs Czech 100% (82/82) 100% (82/82) 100% (82/82) -csb Kashubian 100% (74/74) 100% (74/74) 100% (74/74) -cu Old Church Slavonic 100% (103/103) 90% (93/103) 78% (81/103) -cv Chuvash 100% (74/74) 100% (74/74) 100% (74/74) -cy Welsh 100% (78/78) 100% (78/78) 100% (78/78) -da Danish 100% (70/70) 100% (70/70) 100% (70/70) -de German 100% (59/59) 100% (59/59) 100% (59/59) -doi Dogri (0/85) (0/85) (0/85) -dv Divehi/Dhivehi/Maldivian (0/49) (0/49) (0/49) -dz Dzongkha (0/95) (0/95) (0/95) -ee Ewe 100% (99/99) 100% (99/99) 100% (99/99) -el Greek 100% (69/69) 100% (69/69) 100% (69/69) -en English 100% (72/72) 100% (72/72) 100% (72/72) -eo Esperanto 100% (64/64) 100% (64/64) 100% (64/64) -es Spanish 100% (66/66) 100% (66/66) 100% (66/66) -et Estonian 100% (64/64) 100% (64/64) 100% (64/64) -eu Basque 100% (56/56) 100% (56/56) 100% (56/56) -fa Persian 100% (40/40) (0/40) 100% (40/40) -fat Fanti 100% (73/73) 100% (73/73) 100% (73/73) -ff Fulah (Fula) 100% (62/62) 100% (62/62) 100% (62/62) -fi Finnish 100% (62/62) 100% (62/62) 100% (62/62) -fil Filipino 100% (84/84) 100% (84/84) 100% (84/84) -fj Fijian 100% (52/52) 100% (52/52) 100% (52/52) -fo Faroese 100% (68/68) 100% (68/68) 100% (68/68) -fr French 100% (84/84) 100% (84/84) 100% (84/84) -fur Friulian 100% (66/66) 100% (66/66) 100% (66/66) -fy Frisian 100% (75/75) 100% (75/75) 100% (75/75) -ga Irish 100% (80/80) 100% (80/80) 100% (80/80) -gd Scots Gaelic 100% (70/70) 100% (70/70) 100% (70/70) -gez Ethiopic (Geez) (0/218) (0/218) (0/218) -gl Galician 100% (66/66) 100% (66/66) 100% (66/66) -gn Guarani 100% (70/70) 100% (70/70) 100% (70/70) -gu Gujarati (0/68) (0/68) (0/68) -gv Manx Gaelic 100% (54/54) 100% (54/54) 100% (54/54) -ha Hausa 100% (60/60) 100% (60/60) 100% (60/60) -haw Hawaiian 100% (63/63) 100% (63/63) 100% (63/63) -he Hebrew 100% (27/27) (0/27) (0/27) -hi Hindi (Devanagari script) (0/68) (0/68) (0/68) -hne Chhattisgarhi (0/68) (0/68) (0/68) -ho Hiri Motu 100% (52/52) 100% (52/52) 100% (52/52) -hr Croatian 100% (62/62) 100% (62/62) 100% (62/62) -hsb Upper Sorbian 100% (72/72) 100% (72/72) 100% (72/72) -ht Haitian/Haitian Creole 100% (56/56) 100% (56/56) 100% (56/56) -hu Hungarian 100% (70/70) 100% (70/70) 100% (70/70) -hy Armenian 100% (77/77) 100% (77/77) 100% (77/77) -hz Herero 100% (57/57) 100% (57/57) 100% (57/57) -ia Interlingua 100% (52/52) 100% (52/52) 100% (52/52) -id Indonesian 100% (54/54) 100% (54/54) 100% (54/54) -ie Interlingue 100% (52/52) 100% (52/52) 100% (52/52) -ig Igbo 100% (58/58) 100% (58/58) 100% (58/58) -ii Sichuan Yi/Nuosu (0/1165) (0/1165) (0/1165) -ik Inupiaq (Inupiak, Eskimo) 100% (68/68) 100% (68/68) 100% (68/68) -io Ido 100% (52/52) 100% (52/52) 100% (52/52) -is Icelandic 100% (70/70) 100% (70/70) 100% (70/70) -it Italian 100% (72/72) 100% (72/72) 100% (72/72) -iu Inuktitut 100% (161/161) (0/161) (0/161) -ja Japanese (0/6537) (0/6537) (0/6537) -jv Javanese 100% (56/56) 100% (56/56) 100% (56/56) -ka Georgian 100% (33/33) 100% (33/33) 100% (33/33) -kaa Kara-Kalpak (Karakalpak) 100% (78/78) 100% (78/78) 100% (78/78) -kab Kabyle 100% (70/70) 100% (70/70) 100% (70/70) -ki Kikuyu 100% (56/56) 100% (56/56) 100% (56/56) -kj Kuanyama/Kwanyama 100% (52/52) 100% (52/52) 100% (52/52) -kk Kazakh 100% (77/77) 100% (77/77) 100% (77/77) -kl Greenlandic 100% (81/81) 100% (81/81) 100% (81/81) -km Central Khmer (0/63) (0/63) (0/63) -kn Kannada (0/70) (0/70) (0/70) -ko Korean (0/2443) (0/2443) (0/2443) -kok Kokani (Devanagari script) (0/68) (0/68) (0/68) -kr Kanuri 100% (56/56) 100% (56/56) 100% (56/56) -ks Kashmiri 78% (26/33) (0/33) 69% (23/33) -ku-am Kurdish in Armenia 100% (64/64) 100% (64/64) 100% (64/64) -ku-iq Kurdish in Iraq 100% (32/32) (0/32) 87% (28/32) -ku-ir Kurdish in Iran 100% (32/32) (0/32) 87% (28/32) -ku-tr Kurdish in Turkey 100% (62/62) 100% (62/62) 100% (62/62) -kum Kumyk 100% (66/66) 100% (66/66) 100% (66/66) -kv Komi (Komi-Permyak/Komi-Siryan) 100% (70/70) 100% (70/70) 100% (70/70) -kw Cornish 100% (64/64) 100% (64/64) 100% (64/64) -kwm Kwambi 100% (52/52) 100% (52/52) 100% (52/52) -ky Kirgiz 100% (70/70) 100% (70/70) 100% (70/70) -la Latin 100% (68/68) 100% (68/68) 100% (68/68) -lah Lahnda 92% (25/27) (0/27) 85% (23/27) -lb Luxembourgish (Letzeburgesch) 100% (75/75) 100% (75/75) 100% (75/75) -lez Lezghian (Lezgian) 100% (67/67) 100% (67/67) 100% (67/67) -lg Ganda 100% (54/54) 100% (54/54) 100% (54/54) -li Limburgan/Limburger/Limburgish 100% (62/62) 100% (62/62) 100% (62/62) -ln Lingala 100% (81/81) 100% (81/81) 100% (81/81) -lo Lao 100% (55/55) (0/55) 83% (46/55) -lt Lithuanian 100% (70/70) 100% (70/70) 100% (70/70) -lv Latvian 100% (78/78) 100% (78/78) 100% (78/78) -mai Maithili (Devanagari script) (0/68) (0/68) (0/68) -mg Malagasy 100% (56/56) 100% (56/56) 100% (56/56) -mh Marshallese 100% (62/62) 100% (62/62) 100% (62/62) -mi Maori 100% (64/64) 100% (64/64) 100% (64/64) -mk Macedonian 100% (42/42) 100% (42/42) 100% (42/42) -ml Malayalam (0/68) (0/68) (0/68) -mn-cn Mongolian in China (0/130) (0/130) (0/130) -mn-mn Mongolian in Mongolia 100% (70/70) 100% (70/70) 100% (70/70) -mni Maniputi (0/78) (0/78) (0/78) -mo Moldavian 100% (128/128) 100% (128/128) 100% (128/128) -mr Marathi (Devanagari script) (0/68) (0/68) (0/68) -ms Malay 100% (52/52) 100% (52/52) 100% (52/52) -mt Maltese 100% (72/72) 100% (72/72) 100% (72/72) -my Burmese (Myanmar) (0/48) (0/48) (0/48) -na Nauru 100% (60/60) 100% (60/60) 100% (60/60) -nb Norwegian Bokmal 100% (70/70) 100% (70/70) 100% (70/70) -nds Low Saxon 100% (59/59) 100% (59/59) 100% (59/59) -ne Nepali (0/72) (0/72) (0/72) -ng Ndonga 100% (52/52) 100% (52/52) 100% (52/52) -nl Dutch 100% (82/82) 100% (82/82) 100% (82/82) -nn Norwegian Nynorsk 100% (76/76) 100% (76/76) 100% (76/76) -no Norwegian (Bokmal) 100% (70/70) 100% (70/70) 100% (70/70) -nqo N'Ko 91% (54/59) (0/59) (0/59) -nr Ndebele, South 100% (52/52) 100% (52/52) 100% (52/52) -nso Northern Sotho 100% (58/58) 100% (58/58) 100% (58/58) -nv Navajo/Navaho 100% (72/72) 100% (72/72) 100% (72/72) -ny Chichewa 100% (54/54) 100% (54/54) 100% (54/54) -oc Occitan 100% (70/70) 100% (70/70) 100% (70/70) -om Oromo or Galla 100% (52/52) 100% (52/52) 100% (52/52) -or Oriya (0/68) (0/68) (0/68) -os Ossetic 100% (66/66) 100% (66/66) 100% (66/66) -ota Ottoman Turkish 100% (37/37) (0/37) 97% (36/37) -pa Panjabi/Punjabi (0/63) (0/63) (0/63) -pa-pk Panjabi/Punjabi in Pakistan 92% (25/27) (0/27) 85% (23/27) -pap-an Papiamento in Netherlands Antilles 100% (72/72) 100% (72/72) 100% (72/72) -pap-aw Papiamento in Aruba 100% (54/54) 100% (54/54) 100% (54/54) -pes Western Farsi 100% (40/40) (0/40) 100% (40/40) -pl Polish 100% (70/70) 100% (70/70) 100% (70/70) -prs Dari/Eastern Farsi 100% (40/40) (0/40) 100% (40/40) -ps-af Pashto in Afghanistan 95% (47/49) (0/49) 77% (38/49) -ps-pk Pashto in Pakistan 93% (46/49) (0/49) 75% (37/49) -pt Portuguese 100% (82/82) 100% (82/82) 100% (82/82) -qu Quechua 100% (55/55) 100% (55/55) 100% (55/55) -rm Rhaeto-Romance (Romansch) 100% (66/66) 100% (66/66) 100% (66/66) -rn Rundi 100% (52/52) 100% (52/52) 100% (52/52) -ro Romanian 100% (62/62) 100% (62/62) 100% (62/62) -ru Russian 100% (66/66) 100% (66/66) 100% (66/66) -rw Kinyarwanda 100% (52/52) 100% (52/52) 100% (52/52) -sa Sanskrit (Devanagari script) (0/68) (0/68) (0/68) -sah Yakut 100% (76/76) 100% (76/76) 100% (76/76) -sat Santali (Devanagari script) (0/70) (0/70) (0/70) -sc Sardinian 100% (62/62) 100% (62/62) 100% (62/62) -sco Scots 100% (56/56) 100% (56/56) 100% (56/56) -sd Sindhi 100% (54/54) (0/54) 79% (43/54) -se North Sami 100% (66/66) 100% (66/66) 100% (66/66) -sel Selkup (Ostyak-Samoyed) 100% (66/66) 100% (66/66) 100% (66/66) -sg Sango 100% (72/72) 100% (72/72) 100% (72/72) -sh Serbo-Croatian 100% (156/156) 100% (156/156) 98% (154/156) -shs Secwepemctsin 100% (48/48) 100% (48/48) 100% (48/48) -si Sinhala/Sinhalese (0/73) (0/73) (0/73) -sid Sidamo (0/281) (0/281) (0/281) -sk Slovak 100% (86/86) 100% (86/86) 100% (86/86) -sl Slovenian 100% (62/62) 100% (62/62) 100% (62/62) -sm Samoan 100% (53/53) 100% (53/53) 100% (53/53) -sma South Sami 100% (60/60) 100% (60/60) 100% (60/60) -smj Lule Sami 100% (60/60) 100% (60/60) 100% (60/60) -smn Inari Sami 100% (68/68) 100% (68/68) 100% (68/68) -sms Skolt Sami 100% (80/80) 100% (80/80) 97% (78/80) -sn Shona 100% (52/52) 100% (52/52) 100% (52/52) -so Somali 100% (52/52) 100% (52/52) 100% (52/52) -sq Albanian 100% (56/56) 100% (56/56) 100% (56/56) -sr Serbian 100% (60/60) 100% (60/60) 100% (60/60) -ss Swati 100% (52/52) 100% (52/52) 100% (52/52) -st Sotho, Southern 100% (52/52) 100% (52/52) 100% (52/52) -su Sundanese 100% (54/54) 100% (54/54) 100% (54/54) -sv Swedish 100% (68/68) 100% (68/68) 100% (68/68) -sw Swahili 100% (52/52) 100% (52/52) 100% (52/52) -syr Syriac (0/45) (0/45) (0/45) -ta Tamil (0/48) (0/48) (0/48) -te Telugu (0/70) (0/70) (0/70) -tg Tajik 100% (78/78) 100% (78/78) 97% (76/78) -th Thai 1% (1/74) (0/74) (0/74) -ti-er Eritrean Tigrinya (0/255) (0/255) (0/255) -ti-et Ethiopian Tigrinya (0/281) (0/281) (0/281) -tig Tigre (0/221) (0/221) (0/221) -tk Turkmen 100% (68/68) 100% (68/68) 100% (68/68) -tl Tagalog 100% (84/84) 100% (84/84) 100% (84/84) -tn Tswana 100% (58/58) 100% (58/58) 100% (58/58) -to Tonga 100% (53/53) 100% (53/53) 100% (53/53) -tr Turkish 100% (70/70) 100% (70/70) 100% (70/70) -ts Tsonga 100% (52/52) 100% (52/52) 100% (52/52) -tt Tatar 100% (76/76) 100% (76/76) 100% (76/76) -tw Twi 100% (73/73) 100% (73/73) 100% (73/73) -ty Tahitian 100% (65/65) 100% (65/65) 100% (65/65) -tyv Tuvinian 100% (70/70) 100% (70/70) 100% (70/70) -ug Uyghur 87% (29/33) (0/33) 78% (26/33) -uk Ukrainian 100% (72/72) 100% (72/72) 100% (72/72) -ur Urdu 92% (25/27) (0/27) 85% (23/27) -uz Uzbek 100% (52/52) 100% (52/52) 100% (52/52) -ve Venda 100% (62/62) 100% (62/62) 100% (62/62) -vi Vietnamese 100% (194/194) 100% (194/194) 76% (148/194) -vo Volapuk 100% (54/54) 100% (54/54) 100% (54/54) -vot Votic 100% (62/62) 100% (62/62) 100% (62/62) -wa Walloon 100% (70/70) 100% (70/70) 100% (70/70) -wal Wolaitta/Wolaytta (0/281) (0/281) (0/281) -wen Sorbian languages (lower and upper) 100% (76/76) 100% (76/76) 100% (76/76) -wo Wolof 100% (66/66) 100% (66/66) 100% (66/66) -xh Xhosa 100% (52/52) 100% (52/52) 100% (52/52) -yap Yapese 100% (58/58) 100% (58/58) 100% (58/58) -yi Yiddish 100% (27/27) (0/27) (0/27) -yo Yoruba 100% (119/119) 100% (119/119) 100% (119/119) -za Zhuang/Chuang 100% (52/52) 100% (52/52) 100% (52/52) -zh-cn Chinese (simplified) 0% (2/6765) 0% (2/6765) 0% (2/6765) -zh-hk Chinese Hong Kong Supplementary Character Set (0/2213) (0/2213) (0/2213) -zh-mo Chinese in Macau (0/2213) (0/2213) (0/2213) -zh-sg Chinese in Singapore 0% (2/6765) 0% (2/6765) 0% (2/6765) -zh-tw Chinese (traditional) (0/13063) (0/13063) (0/13063) -zu Zulu 100% (52/52) 100% (52/52) 100% (52/52) diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/status.txt b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/status.txt deleted file mode 100644 index cb94ab9..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/status.txt +++ /dev/null @@ -1,6766 +0,0 @@ -This is the status file for DejaVu fonts -($Id: status.txt 2475 2011-02-27 14:51:17Z ben_laenen $) - -original = present in original Bitstream Vera 1.10 - = added in DejaVu fonts - -U+0020 space original -U+0021 exclam original -U+0022 quotedbl original -U+0023 numbersign original -U+0024 dollar original -U+0025 percent original -U+0026 ampersand original -U+0027 quotesingle original -U+0028 parenleft original -U+0029 parenright original -U+002a asterisk original -U+002b plus original -U+002c comma original -U+002d hyphen original -U+002e period original -U+002f slash original -U+0030 zero original -U+0031 one original -U+0032 two original -U+0033 three original -U+0034 four original -U+0035 five original -U+0036 six original -U+0037 seven original -U+0038 eight original -U+0039 nine original -U+003a colon original -U+003b semicolon original -U+003c less original -U+003d equal original -U+003e greater original -U+003f question original -U+0040 at original -U+0041 A original -U+0042 B original -U+0043 C original -U+0044 D original -U+0045 E original -U+0046 F original -U+0047 G original -U+0048 H original -U+0049 I original -U+004a J original -U+004b K original -U+004c L original -U+004d M original -U+004e N original -U+004f O original -U+0050 P original -U+0051 Q original -U+0052 R original -U+0053 S original -U+0054 T original -U+0055 U original -U+0056 V original -U+0057 W original -U+0058 X original -U+0059 Y original -U+005a Z original -U+005b bracketleft original -U+005c backslash original -U+005d bracketright original -U+005e asciicircum original -U+005f underscore original -U+0060 grave original -U+0061 a original -U+0062 b original -U+0063 c original -U+0064 d original -U+0065 e original -U+0066 f original -U+0067 g original -U+0068 h original -U+0069 i original -U+006a j original -U+006b k original -U+006c l original -U+006d m original -U+006e n original -U+006f o original -U+0070 p original -U+0071 q original -U+0072 r original -U+0073 s original -U+0074 t original -U+0075 u original -U+0076 v original -U+0077 w original -U+0078 x original -U+0079 y original -U+007a z original -U+007b braceleft original -U+007c bar original -U+007d braceright original -U+007e asciitilde original -U+00a0 nonbreakingspace original -U+00a1 exclamdown original -U+00a2 cent original -U+00a3 sterling original -U+00a4 currency original -U+00a5 yen original -U+00a6 brokenbar original -U+00a7 section original -U+00a8 dieresis original -U+00a9 copyright original -U+00aa ordfeminine original -U+00ab guillemotleft original -U+00ac logicalnot original -U+00ad sfthyphen original -U+00ae registered original -U+00af macron original -U+00b0 degree original -U+00b1 plusminus original -U+00b2 twosuperior original -U+00b3 threesuperior original -U+00b4 acute original -U+00b5 mu original -U+00b6 paragraph original -U+00b7 periodcentered original -U+00b8 cedilla original -U+00b9 onesuperior original -U+00ba ordmasculine original -U+00bb guillemotright original -U+00bc onequarter original -U+00bd onehalf original -U+00be threequarters original -U+00bf questiondown original -U+00c0 Agrave original -U+00c1 Aacute original -U+00c2 Acircumflex original -U+00c3 Atilde original -U+00c4 Adieresis original -U+00c5 Aring original -U+00c6 AE original -U+00c7 Ccedilla original -U+00c8 Egrave original -U+00c9 Eacute original -U+00ca Ecircumflex original -U+00cb Edieresis original -U+00cc Igrave original -U+00cd Iacute original -U+00ce Icircumflex original -U+00cf Idieresis original -U+00d0 Eth original -U+00d1 Ntilde original -U+00d2 Ograve original -U+00d3 Oacute original -U+00d4 Ocircumflex original -U+00d5 Otilde original -U+00d6 Odieresis original -U+00d7 multiply original -U+00d8 Oslash original -U+00d9 Ugrave original -U+00da Uacute original -U+00db Ucircumflex original -U+00dc Udieresis original -U+00dd Yacute original -U+00de Thorn original -U+00df germandbls original -U+00e0 agrave original -U+00e1 aacute original -U+00e2 acircumflex original -U+00e3 atilde original -U+00e4 adieresis original -U+00e5 aring original -U+00e6 ae original -U+00e7 ccedilla original -U+00e8 egrave original -U+00e9 eacute original -U+00ea ecircumflex original -U+00eb edieresis original -U+00ec igrave original -U+00ed iacute original -U+00ee icircumflex original -U+00ef idieresis original -U+00f0 eth original -U+00f1 ntilde original -U+00f2 ograve original -U+00f3 oacute original -U+00f4 ocircumflex original -U+00f5 otilde original -U+00f6 odieresis original -U+00f7 divide original -U+00f8 oslash original -U+00f9 ugrave original -U+00fa uacute original -U+00fb ucircumflex original -U+00fc udieresis original -U+00fd yacute original -U+00fe thorn original -U+00ff ydieresis original -U+0100 Amacron 1.5 -U+0101 amacron 1.5 -U+0102 Abreve 1.5 -U+0103 abreve 1.5 -U+0104 Aogonek 1.4 -U+0105 aogonek 1.4 -U+0106 Cacute original -U+0107 cacute original -U+0108 Ccircumflex 1.5 -U+0109 ccircumflex 1.5 -U+010a Cdotaccent 1.5 -U+010b cdotaccent 1.5 -U+010c Ccaron original -U+010d ccaron original -U+010e Dcaron 1.0 -U+010f dcaron 1.0 -U+0110 Dcroat 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0111 dcroat original -U+0112 Emacron 1.5 -U+0113 emacron 1.5 -U+0114 Ebreve 1.5 -U+0115 ebreve 1.5 -U+0116 Edotaccent 1.5 -U+0117 edotaccent 1.5 -U+0118 Eogonek 1.4 -U+0119 eogonek 1.4 -U+011a Ecaron 1.0 -U+011b ecaron 1.0 -U+011c Gcircumflex 1.5 -U+011d gcircumflex 1.5 -U+011e Gbreve original -U+011f gbreve original -U+0120 Gdotaccent 1.5 -U+0121 gdotaccent 1.5 -U+0122 Gcommaaccent 1.11 -U+0123 gcommaaccent 1.11 -U+0124 Hcircumflex 1.5 -U+0125 hcircumflex 1.5 -U+0126 Hbar 1.12 -U+0127 hbar 1.12 -U+0128 Itilde 1.5 -U+0129 itilde 1.5 -U+012a Imacron 1.5 -U+012b imacron 1.5 -U+012c Ibreve 1.5 -U+012d ibreve 1.5 -U+012e Iogonek 1.11 -U+012f iogonek 1.11 -U+0130 Idotaccent original -U+0131 dotlessi original -U+0132 IJ 1.11 -U+0133 ij 1.11 -U+0134 Jcircumflex 1.5 -U+0135 jcircumflex 1.5 -U+0136 Kcommaaccent 1.11 -U+0137 kcommaaccent 1.11 -U+0138 kgreenlandic 1.12 -U+0139 Lacute 1.1 -U+013a lacute 1.1 -U+013b Lcommaaccent 1.11 -U+013c lcommaaccent 1.11 -U+013d Lcaron 1.1 -U+013e lcaron 1.1 -U+013f Ldot 1.2 -U+0140 ldot 1.2 -U+0141 Lslash original -U+0142 lslash original -U+0143 Nacute 1.4 -U+0144 nacute 1.4 -U+0145 Ncommaaccent 1.11 -U+0146 ncommaaccent 1.11 -U+0147 Ncaron 1.0 -U+0148 ncaron 1.0 -U+0149 napostrophe 1.12 -U+014a Eng 1.12 -U+014b eng 1.12 -U+014c Omacron 1.5 -U+014d omacron 1.5 -U+014e Obreve 1.5 -U+014f obreve 1.5 -U+0150 Ohungarumlaut 1.5 -U+0151 ohungarumlaut 1.5 -U+0152 OE original -U+0153 oe original -U+0154 Racute 1.1 -U+0155 racute 1.1 -U+0156 Rcommaaccent 1.11 -U+0157 rcommaaccent 1.11 -U+0158 Rcaron 1.0 -U+0159 rcaron 1.0 -U+015a Sacute 1.4 -U+015b sacute 1.4 -U+015c Scircumflex 1.5 -U+015d scircumflex 1.5 -U+015e Scedilla original -U+015f scedilla original -U+0160 Scaron original -U+0161 scaron original -U+0162 Tcommaaccent 1.5 -U+0163 tcommaaccent 1.5 -U+0164 Tcaron 1.0 -U+0165 tcaron 1.0 -U+0166 Tbar 1.12 -U+0167 tbar 1.12 -U+0168 Utilde 1.5 -U+0169 utilde 1.5 -U+016a Umacron 1.5 -U+016b umacron 1.5 -U+016c Ubreve 1.5 -U+016d ubreve 1.5 -U+016e Uring 1.0 -U+016f uring 1.0 -U+0170 Uhungarumlaut 1.5 -U+0171 uhungarumlaut 1.5 -U+0172 Uogonek 1.11 -U+0173 uogonek 1.11 -U+0174 Wcircumflex 1.2 -U+0175 wcircumflex 1.2 -U+0176 Ycircumflex 1.2 -U+0177 ycircumflex 1.2 -U+0178 Ydieresis original -U+0179 Zacute 1.4 -U+017a zacute 1.4 -U+017b Zdotaccent 1.4 -U+017c zdotaccent 1.4 -U+017d Zcaron original -U+017e zcaron original -U+017f longs 1.12 -U+0180 uni0180 2.1 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.12 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.22 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+0181 uni0181 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0182 uni0182 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0183 uni0183 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0184 uni0184 2.3 -U+0185 uni0185 2.3 -U+0186 uni0186 1.15 -U+0187 uni0187 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0188 uni0188 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0189 uni0189 2.1 -U+018a uni018A 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+018b uni018B 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+018c uni018C 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+018d uni018D 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+018e uni018E 2.1 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+018f uni018F 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0190 uni0190 1.15 -U+0191 uni0191 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0192 florin original -U+0193 uni0193 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0194 uni0194 1.14 -U+0195 uni0195 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.6 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0196 uni0196 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0197 uni0197 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0198 uni0198 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0199 uni0199 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+019a uni019A 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+019b uni019B 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+019c uni019C 2.3 -U+019d uni019D 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+019e uni019E 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+019f uni019F 2.3 -U+01a0 Ohorn 2.3 -U+01a1 ohorn 2.3 -U+01a2 uni01A2 2.3 -U+01a3 uni01A3 2.3 -U+01a4 uni01A4 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+01a5 uni01A5 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+01a6 uni01A6 2.3 -U+01a7 uni01A7 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+01a8 uni01A8 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+01a9 uni01A9 2.2 -U+01aa uni01AA 2.3 -U+01ab uni01AB 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+01ac uni01AC 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+01ad uni01AD 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+01ae uni01AE 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+01af Uhorn 2.3 -U+01b0 uhorn 2.3 -U+01b1 uni01B1 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+01b2 uni01B2 2.3 -U+01b3 uni01B3 2.3 -U+01b4 uni01B4 2.3 -U+01b5 uni01B5 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+01b6 uni01B6 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+01b7 uni01B7 2.3 -U+01b8 uni01B8 2.3 -U+01b9 uni01B9 2.3 -U+01ba uni01BA 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+01bb uni01BB 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+01bc uni01BC 2.3 -U+01bd uni01BD 2.3 -U+01be uni01BE 2.3 -U+01bf uni01BF 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+01c0 uni01C0 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+01c1 uni01C1 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+01c2 uni01C2 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+01c3 uni01C3 2.2 -U+01c4 uni01C4 1.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+01c5 uni01C5 1.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+01c6 uni01C6 1.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+01c7 uni01C7 1.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+01c8 uni01C8 1.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+01c9 uni01C9 1.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+01ca uni01CA 1.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+01cb uni01CB 1.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+01cc uni01CC 1.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+01cd uni01CD 1.15 -U+01ce uni01CE 1.15 -U+01cf uni01CF 1.15 -U+01d0 uni01D0 1.15 -U+01d1 uni01D1 1.15 -U+01d2 uni01D2 1.15 -U+01d3 uni01D3 1.15 -U+01d4 uni01D4 1.15 -U+01d5 uni01D5 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.22 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+01d6 uni01D6 1.13 -U+01d7 uni01D7 2.3 -U+01d8 uni01D8 2.3 -U+01d9 uni01D9 2.3 -U+01da uni01DA 2.3 -U+01db uni01DB 2.3 -U+01dc uni01DC 2.3 -U+01dd uni01DD 2.2 -U+01de uni01DE 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.22 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique) 2.23 (Serif Italic Condensed) -U+01df uni01DF 1.13 -U+01e0 uni01E0 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.22 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+01e1 uni01E1 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.22 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+01e2 uni01E2 1.5 -U+01e3 uni01E3 1.5 -U+01e4 uni01E4 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans ExtraLight) -U+01e5 uni01E5 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans ExtraLight) -U+01e6 Gcaron 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+01e7 gcaron 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+01e8 uni01E8 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+01e9 uni01E9 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+01ea uni01EA 1.9 -U+01eb uni01EB 1.9 -U+01ec uni01EC 1.9 -U+01ed uni01ED 1.9 -U+01ee uni01EE 2.4 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+01ef uni01EF 2.4 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+01f0 uni01F0 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.13 (Sans Mono) 2.22 (Sans Mono Bold) 2.23 (Serif Italic Condensed) -U+01f1 uni01F1 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+01f2 uni01F2 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+01f3 uni01F3 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+01f4 uni01F4 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+01f5 uni01F5 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+01f6 uni01F6 2.3 -U+01f7 uni01F7 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+01f8 uni01F8 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+01f9 uni01F9 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+01fa Aringacute 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+01fb aringacute 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+01fc AEacute 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+01fd aeacute 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+01fe Oslashacute 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+01ff oslashacute 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+0200 uni0200 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+0201 uni0201 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+0202 uni0202 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+0203 uni0203 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+0204 uni0204 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+0205 uni0205 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+0206 uni0206 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+0207 uni0207 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+0208 uni0208 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+0209 uni0209 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+020a uni020A 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+020b uni020B 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+020c uni020C 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+020d uni020D 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+020e uni020E 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+020f uni020F 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+0210 uni0210 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+0211 uni0211 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+0212 uni0212 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+0213 uni0213 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+0214 uni0214 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+0215 uni0215 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+0216 uni0216 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+0217 uni0217 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+0218 Scommaaccent 1.5 -U+0219 scommaaccent 1.5 -U+021a uni021A 1.5 -U+021b uni021B 1.5 -U+021c uni021C 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.28 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.31 (Serif Condensed Italic) -U+021d uni021D 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.28 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.31 (Serif Condensed Italic) -U+021e uni021E 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+021f uni021F 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+0220 uni0220 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.16 (Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.17 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.18 (Sans Mono, Sans Mono Bold) 2.23 (Serif Italic Condensed) -U+0221 uni0221 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+0222 uni0222 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0223 uni0223 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0224 uni0224 2.3 -U+0225 uni0225 2.3 -U+0226 uni0226 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+0227 uni0227 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+0228 uni0228 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+0229 uni0229 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+022a uni022A 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.22 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+022b uni022B 1.13 -U+022c uni022C 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.22 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+022d uni022D 1.13 -U+022e uni022E 1.10 -U+022f uni022F 1.10 -U+0230 uni0230 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.22 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+0231 uni0231 1.13 -U+0232 uni0232 1.5 -U+0233 uni0233 1.5 -U+0234 uni0234 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+0235 uni0235 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+0236 uni0236 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+0237 dotlessj 1.5 -U+0238 uni0238 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.10 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0239 uni0239 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.10 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+023a uni023A 2.3 -U+023b uni023B 2.3 -U+023c uni023C 2.3 -U+023d uni023D 2.3 -U+023e uni023E 2.3 -U+023f uni023F 2.3 -U+0240 uni0240 2.3 -U+0241 uni0241 2.3 -U+0242 uni0242 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+0243 uni0243 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0244 uni0244 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.27 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0245 uni0245 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.11 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+0246 uni0246 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0247 uni0247 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0248 uni0248 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0249 uni0249 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+024a uni024A 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+024b uni024B 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.26 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+024c uni024C 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans ExtraLight) 2.27 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+024d uni024D 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans ExtraLight) 2.27 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+024e uni024E 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+024f uni024F 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0250 uni0250 1.14 -U+0251 uni0251 1.14 -U+0252 uni0252 1.14 -U+0253 uni0253 1.14 -U+0254 uni0254 1.14 -U+0255 uni0255 1.14 -U+0256 uni0256 1.14 -U+0257 uni0257 1.14 -U+0258 uni0258 1.14 -U+0259 uni0259 1.14 -U+025a uni025A 1.14 -U+025b uni025B 1.14 -U+025c uni025C 1.14 -U+025d uni025D 1.14 -U+025e uni025E 1.14 -U+025f uni025F 1.14 -U+0260 uni0260 1.14 -U+0261 uni0261 1.14 -U+0262 uni0262 1.14 -U+0263 uni0263 1.14 -U+0264 uni0264 1.14 -U+0265 uni0265 1.14 -U+0266 uni0266 1.14 -U+0267 uni0267 1.14 -U+0268 uni0268 1.14 -U+0269 uni0269 1.14 -U+026a uni026A 1.14 -U+026b uni026B 1.14 -U+026c uni026C 1.14 -U+026d uni026D 1.14 -U+026e uni026E 1.14 -U+026f uni026F 1.14 -U+0270 uni0270 1.14 -U+0271 uni0271 1.14 -U+0272 uni0272 1.14 -U+0273 uni0273 1.14 -U+0274 uni0274 1.14 -U+0275 uni0275 1.14 -U+0276 uni0276 1.14 -U+0277 uni0277 1.14 -U+0278 uni0278 1.14 -U+0279 uni0279 1.14 -U+027a uni027A 1.14 -U+027b uni027B 1.14 -U+027c uni027C 1.14 -U+027d uni027D 1.14 -U+027e uni027E 1.14 -U+027f uni027F 1.14 -U+0280 uni0280 1.14 -U+0281 uni0281 1.14 -U+0282 uni0282 1.14 -U+0283 uni0283 1.14 -U+0284 uni0284 1.14 -U+0285 uni0285 1.14 -U+0286 uni0286 1.14 -U+0287 uni0287 1.14 -U+0288 uni0288 1.14 -U+0289 uni0289 1.14 -U+028a uni028A 1.14 -U+028b uni028B 1.14 -U+028c uni028C 1.14 -U+028d uni028D 1.14 -U+028e uni028E 1.14 -U+028f uni028F 1.14 -U+0290 uni0290 1.14 -U+0291 uni0291 1.14 -U+0292 uni0292 1.14 -U+0293 uni0293 1.14 -U+0294 uni0294 1.14 -U+0295 uni0295 1.14 -U+0296 uni0296 1.14 -U+0297 uni0297 1.14 -U+0298 uni0298 1.14 -U+0299 uni0299 1.14 -U+029a uni029A 1.14 -U+029b uni029B 1.14 -U+029c uni029C 1.14 -U+029d uni029D 1.14 -U+029e uni029E 1.14 -U+029f uni029F 1.14 -U+02a0 uni02A0 1.14 -U+02a1 uni02A1 1.14 -U+02a2 uni02A2 1.14 -U+02a3 uni02A3 1.14 -U+02a4 uni02A4 1.14 -U+02a5 uni02A5 1.14 -U+02a6 uni02A6 1.14 -U+02a7 uni02A7 1.14 -U+02a8 uni02A8 1.14 -U+02a9 uni02A9 1.14 -U+02aa uni02AA 1.14 -U+02ab uni02AB 1.14 -U+02ac uni02AC 1.14 -U+02ad uni02AD 1.14 -U+02ae uni02AE 1.14 -U+02af uni02AF 1.14 -U+02b0 uni02B0 1.14 -U+02b1 uni02B1 1.14 -U+02b2 uni02B2 1.14 -U+02b3 uni02B3 1.14 -U+02b4 uni02B4 1.14 -U+02b5 uni02B5 1.14 -U+02b6 uni02B6 1.14 -U+02b7 uni02B7 1.14 -U+02b8 uni02B8 1.14 -U+02b9 uni02B9 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+02ba uni02BA 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+02bb uni02BB 1.5 -U+02bc uni02BC 1.12 -U+02bd uni02BD 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+02be uni02BE 2.2 -U+02bf uni02BF 2.2 -U+02c0 uni02C0 1.14 -U+02c1 uni02C1 1.14 -U+02c2 uni02C2 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+02c3 uni02C3 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+02c4 uni02C4 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+02c5 uni02C5 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+02c6 circumflex original -U+02c7 caron original -U+02c8 uni02C8 2.0 -U+02c9 uni02C9 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+02ca uni02CA 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+02cb uni02CB 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+02cc uni02CC 2.0 -U+02cd uni02CD 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+02ce uni02CE 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+02cf uni02CF 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+02d0 uni02D0 1.14 -U+02d1 uni02D1 1.14 -U+02d2 uni02D2 2.0 -U+02d3 uni02D3 2.2 -U+02d4 uni02D4 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+02d5 uni02D5 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+02d6 uni02D6 2.0 -U+02d7 uni02D7 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.28 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+02d8 breve original -U+02d9 dotaccent original -U+02da ring original -U+02db ogonek original -U+02dc tilde original -U+02dd hungarumlaut original -U+02de uni02DE 2.0 -U+02df uni02DF 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+02e0 uni02E0 1.14 -U+02e1 uni02E1 1.14 -U+02e2 uni02E2 1.14 -U+02e3 uni02E3 1.14 -U+02e4 uni02E4 1.14 -U+02e5 uni02E5 2.0 -U+02e6 uni02E6 2.0 -U+02e7 uni02E7 2.0 -U+02e8 uni02E8 2.0 -U+02e9 uni02E9 2.0 -U+02ec uni02EC 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+02ed uni02ED 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+02ee uni02EE 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.28 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+02ef uni02EF 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+02f0 uni02F0 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+02f3 uni02F3 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+02f7 uni02F7 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0300 gravecomb 1.15 -U+0301 acutecomb 1.15 -U+0302 uni0302 1.15 -U+0303 tildecomb 1.15 -U+0304 uni0304 1.15 -U+0305 uni0305 2.0 -U+0306 uni0306 1.15 -U+0307 uni0307 1.15 -U+0308 uni0308 1.15 -U+0309 hookabovecomb 2.1 -U+030a uni030A 1.15 -U+030b uni030B 1.15 -U+030c uni030C 1.15 -U+030d uni030D 2.0 -U+030e uni030E 2.0 -U+030f uni030F 2.0 -U+0310 uni0310 2.0 -U+0311 uni0311 2.0 -U+0312 uni0312 1.11 -U+0313 uni0313 2.1 -U+0314 uni0314 2.1 -U+0315 uni0315 2.0 -U+0316 uni0316 2.0 -U+0317 uni0317 2.0 -U+0318 uni0318 2.0 -U+0319 uni0319 2.0 -U+031a uni031A 2.1 -U+031b uni031B 2.1 -U+031c uni031C 2.0 -U+031d uni031D 2.0 -U+031e uni031E 2.0 -U+031f uni031F 2.0 -U+0320 uni0320 2.0 -U+0321 uni0321 1.15 -U+0322 uni0322 1.15 -U+0323 dotbelowcomb 2.1 -U+0324 uni0324 2.0 -U+0325 uni0325 2.0 -U+0326 uni0326 1.5 -U+0327 uni0327 2.1 -U+0328 uni0328 2.1 -U+0329 uni0329 2.0 -U+032a uni032A 2.0 -U+032b uni032B 2.1 -U+032c uni032C 2.0 -U+032d uni032D 2.0 -U+032e uni032E 2.0 -U+032f uni032F 2.0 -U+0330 uni0330 2.0 -U+0331 uni0331 2.0 -U+0332 uni0332 2.0 -U+0333 uni0333 2.1 -U+0334 uni0334 2.3 -U+0335 uni0335 2.3 -U+0336 uni0336 2.3 -U+0337 uni0337 2.3 -U+0338 uni0338 2.3 -U+0339 uni0339 2.0 -U+033a uni033A 2.0 -U+033b uni033B 2.0 -U+033c uni033C 2.1 -U+033d uni033D 2.0 -U+033e uni033E 2.1 -U+033f uni033F 2.1 -U+0340 uni0340 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0341 uni0341 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0342 uni0342 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0343 uni0343 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+0344 uni0344 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0345 uni0345 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0346 uni0346 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0347 uni0347 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0348 uni0348 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0349 uni0349 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+034a uni034A 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+034b uni034B 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+034c uni034C 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+034d uni034D 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+034e uni034E 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+034f uni034F 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+0351 uni0351 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0352 uni0352 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique) 2.28 (Sans Condensed Oblique, Sans Oblique) -U+0353 uni0353 2.5 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.28 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0357 uni0357 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0358 uni0358 2.3 -U+035a uni035A 2.28 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+035c uni035C 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+035d uni035D 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+035e uni035E 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+035f uni035F 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0360 uni0360 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0361 uni0361 2.0 -U+0362 uni0362 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0370 uni0370 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+0371 uni0371 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+0372 uni0372 2.27 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0373 uni0373 2.27 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0374 uni0374 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0375 uni0375 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0376 uni0376 2.27 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0377 uni0377 2.27 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+037a uni037A 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+037b uni037B 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+037c uni037C 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans ExtraLight, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+037d uni037D 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans ExtraLight, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+037e uni037E 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0384 tonos 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0385 dieresistonos 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0386 Alphatonos 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0387 anoteleia 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0388 Epsilontonos 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0389 Etatonos 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+038a Iotatonos 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+038c Omicrontonos 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+038e Upsilontonos 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+038f Omegatonos 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0390 iotadieresistonos 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0391 Alpha 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.1 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0392 Beta 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.1 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0393 Gamma 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.1 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0394 uni0394 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.1 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0395 Epsilon 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.1 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0396 Zeta 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.1 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0397 Eta 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.1 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0398 Theta 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.1 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0399 Iota 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.1 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+039a Kappa 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.1 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+039b Lambda 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.1 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+039c Mu 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.1 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+039d Nu 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.1 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+039e Xi 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.1 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+039f Omicron 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.1 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03a0 Pi 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.1 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03a1 Rho 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.1 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03a3 Sigma 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.1 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03a4 Tau 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.1 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03a5 Upsilon 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.1 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03a6 Phi 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.1 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03a7 Chi 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.1 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03a8 Psi 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.1 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03a9 Omega original -U+03aa Iotadieresis 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.1 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03ab Upsilondieresis 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.1 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03ac alphatonos 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03ad epsilontonos 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03ae etatonos 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03af iotatonos 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03b0 upsilondieresistonos 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03b1 alpha 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03b2 beta 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03b3 gamma 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03b4 delta 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03b5 epsilon 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03b6 zeta 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03b7 eta 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03b8 theta 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03b9 iota 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03ba kappa 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03bb lambda 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03bc uni03BC 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03bd nu 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03be xi 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03bf omicron 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03c0 pi original -U+03c1 rho 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03c2 sigma1 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03c3 sigma 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03c4 tau 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03c5 upsilon 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03c6 phi 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03c7 chi 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03c8 psi 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03c9 omega 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03ca iotadieresis 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03cb upsilondieresis 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03cc omicrontonos 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03cd upsilontonos 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03ce omegatonos 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 1.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.2 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03cf uni03CF 2.27 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+03d0 uni03D0 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+03d1 theta1 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+03d2 Upsilon1 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+03d3 uni03D3 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+03d4 uni03D4 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+03d5 phi1 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.18 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03d6 omega1 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) 2.26 (Sans ExtraLight) -U+03d7 uni03D7 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+03d8 uni03D8 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) 2.26 (Sans ExtraLight) -U+03d9 uni03D9 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) 2.26 (Sans ExtraLight) -U+03da uni03DA 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+03db uni03DB 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+03dc uni03DC 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03dd uni03DD 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+03de uni03DE 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+03df uni03DF 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+03e0 uni03E0 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+03e1 uni03E1 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+03e2 uni03E2 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+03e3 uni03E3 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+03e4 uni03E4 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+03e5 uni03E5 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+03e6 uni03E6 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+03e7 uni03E7 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+03e8 uni03E8 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+03e9 uni03E9 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+03ea uni03EA 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+03eb uni03EB 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+03ec uni03EC 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+03ed uni03ED 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+03ee uni03EE 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+03ef uni03EF 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+03f0 uni03F0 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+03f1 uni03F1 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) 2.26 (Sans ExtraLight) -U+03f2 uni03F2 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03f3 uni03F3 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03f4 uni03F4 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03f5 uni03F5 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03f6 uni03F6 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03f7 uni03F7 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03f8 uni03F8 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03f9 uni03F9 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03fa uni03FA 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+03fb uni03FB 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+03fc uni03FC 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) 2.26 (Sans ExtraLight) -U+03fd uni03FD 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03fe uni03FE 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+03ff uni03FF 1.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.0 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0400 uni0400 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0401 uni0401 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0402 uni0402 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0403 uni0403 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0404 uni0404 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0405 uni0405 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0406 uni0406 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0407 uni0407 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0408 uni0408 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0409 uni0409 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+040a uni040A 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+040b uni040B 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+040c uni040C 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+040d uni040D 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+040e uni040E 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+040f uni040F 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0410 uni0410 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0411 uni0411 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0412 uni0412 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0413 uni0413 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0414 uni0414 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0415 uni0415 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0416 uni0416 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0417 uni0417 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0418 uni0418 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0419 uni0419 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+041a uni041A 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+041b uni041B 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+041c uni041C 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+041d uni041D 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+041e uni041E 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+041f uni041F 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0420 uni0420 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0421 uni0421 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0422 uni0422 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0423 uni0423 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0424 uni0424 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0425 uni0425 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0426 uni0426 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0427 uni0427 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0428 uni0428 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0429 uni0429 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+042a uni042A 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+042b uni042B 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+042c uni042C 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+042d uni042D 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+042e uni042E 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+042f uni042F 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0430 uni0430 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0431 uni0431 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0432 uni0432 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0433 uni0433 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0434 uni0434 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0435 uni0435 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0436 uni0436 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0437 uni0437 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0438 uni0438 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0439 uni0439 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+043a uni043A 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+043b uni043B 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+043c uni043C 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+043d uni043D 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+043e uni043E 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+043f uni043F 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0440 uni0440 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0441 uni0441 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0442 uni0442 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0443 uni0443 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0444 uni0444 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0445 uni0445 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0446 uni0446 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0447 uni0447 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0448 uni0448 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0449 uni0449 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+044a uni044A 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+044b uni044B 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+044c uni044C 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+044d uni044D 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+044e uni044E 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+044f uni044F 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0450 uni0450 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0451 uni0451 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0452 uni0452 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0453 uni0453 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0454 uni0454 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0455 uni0455 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0456 uni0456 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0457 uni0457 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0458 uni0458 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0459 uni0459 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+045a uni045A 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+045b uni045B 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+045c uni045C 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+045d uni045D 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+045e uni045E 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+045f uni045F 1.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 1.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold) 1.6 (Serif Bold Italic, Serif Italic) 1.7 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+0460 uni0460 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0461 uni0461 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) -U+0462 uni0462 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.20 (Sans ExtraLight) 2.23 (Serif Italic Condensed) 2.30 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0463 uni0463 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.20 (Sans ExtraLight) 2.23 (Serif Italic Condensed) 2.30 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0464 uni0464 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+0465 uni0465 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+0466 uni0466 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0467 uni0467 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0468 uni0468 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0469 uni0469 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+046a uni046A 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.21 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+046b uni046B 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.21 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+046c uni046C 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+046d uni046D 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+046e uni046E 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+046f uni046F 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0470 uni0470 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+0471 uni0471 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+0472 uni0472 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.10 (Sans ExtraLight) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0473 uni0473 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0474 uni0474 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.12 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+0475 uni0475 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.12 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+0476 uni0476 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0477 uni0477 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0478 uni0478 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0479 uni0479 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+047a uni047A 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+047b uni047B 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+047c uni047C 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+047d uni047D 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+047e uni047E 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+047f uni047F 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0480 uni0480 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0481 uni0481 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0482 uni0482 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0483 uni0483 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0484 uni0484 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0485 uni0485 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0486 uni0486 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0487 uni0487 2.9 (Sans, Sans Condensed) 2.27 (Sans Bold, Sans Bold Oblique, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0488 uni0488 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0489 uni0489 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+048a uni048A 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+048b uni048B 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+048c uni048C 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+048d uni048D 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+048e uni048E 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+048f uni048F 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0490 uni0490 1.15 -U+0491 uni0491 1.15 -U+0492 uni0492 1.14 -U+0493 uni0493 1.14 -U+0494 uni0494 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+0495 uni0495 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+0496 uni0496 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0497 uni0497 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.15 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0498 uni0498 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+0499 uni0499 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+049a uni049A 1.14 -U+049b uni049B 1.14 -U+049c uni049C 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+049d uni049D 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+049e uni049E 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+049f uni049F 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04a0 uni04A0 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans ExtraLight) -U+04a1 uni04A1 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans ExtraLight) -U+04a2 uni04A2 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04a3 uni04A3 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04a4 uni04A4 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.10 (Sans ExtraLight) 2.23 (Serif Italic Condensed) 2.31 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+04a5 uni04A5 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.10 (Sans ExtraLight) 2.23 (Serif Italic Condensed) 2.31 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+04a6 uni04A6 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04a7 uni04A7 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04a8 uni04A8 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+04a9 uni04A9 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+04aa uni04AA 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04ab uni04AB 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04ac uni04AC 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04ad uni04AD 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04ae uni04AE 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04af uni04AF 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04b0 uni04B0 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+04b1 uni04B1 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+04b2 uni04B2 1.14 -U+04b3 uni04B3 1.14 -U+04b4 uni04B4 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.10 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+04b5 uni04B5 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.10 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+04b6 uni04B6 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04b7 uni04B7 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04b8 uni04B8 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+04b9 uni04B9 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+04ba uni04BA 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+04bb uni04BB 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04bc uni04BC 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+04bd uni04BD 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+04be uni04BE 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+04bf uni04BF 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+04c0 uni04C0 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04c1 uni04C1 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+04c2 uni04C2 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+04c3 uni04C3 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+04c4 uni04C4 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+04c5 uni04C5 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+04c6 uni04C6 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+04c7 uni04C7 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) 2.26 (Sans ExtraLight) -U+04c8 uni04C8 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) 2.26 (Sans ExtraLight) -U+04c9 uni04C9 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+04ca uni04CA 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+04cb uni04CB 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04cc uni04CC 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04cd uni04CD 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+04ce uni04CE 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+04cf uni04CF 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04d0 uni04D0 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+04d1 uni04D1 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+04d2 uni04D2 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+04d3 uni04D3 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+04d4 uni04D4 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+04d5 uni04D5 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+04d6 uni04D6 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+04d7 uni04D7 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+04d8 uni04D8 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04d9 uni04D9 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04da uni04DA 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04db uni04DB 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04dc uni04DC 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+04dd uni04DD 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+04de uni04DE 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04df uni04DF 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04e0 uni04E0 2.3 -U+04e1 uni04E1 2.3 -U+04e2 uni04E2 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04e3 uni04E3 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04e4 uni04E4 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04e5 uni04E5 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04e6 uni04E6 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+04e7 uni04E7 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+04e8 uni04E8 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+04e9 uni04E9 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+04ea uni04EA 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+04eb uni04EB 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+04ec uni04EC 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+04ed uni04ED 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+04ee uni04EE 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+04ef uni04EF 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04f0 uni04F0 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+04f1 uni04F1 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04f2 uni04F2 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+04f3 uni04F3 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04f4 uni04F4 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+04f5 uni04F5 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+04f6 uni04F6 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04f7 uni04F7 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04f8 uni04F8 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+04f9 uni04F9 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+04fa uni04FA 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+04fb uni04FB 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+04fc uni04FC 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+04fd uni04FD 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+04fe uni04FE 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans ExtraLight) -U+04ff uni04FF 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans ExtraLight) -U+0500 uni0500 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans ExtraLight) -U+0501 uni0501 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans ExtraLight) -U+0502 uni0502 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0503 uni0503 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0504 uni0504 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0505 uni0505 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0506 uni0506 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0507 uni0507 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0508 uni0508 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0509 uni0509 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+050a uni050A 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+050b uni050B 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+050c uni050C 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+050d uni050D 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+050e uni050E 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+050f uni050F 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0510 uni0510 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+0511 uni0511 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+0512 uni0512 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans ExtraLight) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+0513 uni0513 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans ExtraLight) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+0514 uni0514 2.27 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+0515 uni0515 2.27 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+0516 uni0516 2.27 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0517 uni0517 2.27 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0518 uni0518 2.27 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0519 uni0519 2.27 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+051a uni051A 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+051b uni051B 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+051c uni051C 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+051d uni051D 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+051e uni051E 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+051f uni051F 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0520 uni0520 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0521 uni0521 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0522 uni0522 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0523 uni0523 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0524 uni0524 2.29 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0525 uni0525 2.29 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0531 uni0531 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0532 uni0532 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0533 uni0533 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0534 uni0534 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0535 uni0535 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0536 uni0536 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0537 uni0537 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0538 uni0538 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0539 uni0539 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+053a uni053A 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+053b uni053B 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+053c uni053C 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+053d uni053D 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+053e uni053E 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+053f uni053F 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0540 uni0540 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0541 uni0541 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0542 uni0542 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0543 uni0543 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0544 uni0544 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0545 uni0545 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0546 uni0546 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0547 uni0547 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0548 uni0548 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0549 uni0549 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+054a uni054A 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+054b uni054B 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+054c uni054C 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+054d uni054D 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+054e uni054E 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+054f uni054F 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0550 uni0550 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0551 uni0551 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0552 uni0552 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0553 uni0553 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0554 uni0554 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0555 uni0555 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0556 uni0556 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0559 uni0559 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+055a uni055A 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+055b uni055B 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+055c uni055C 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+055d uni055D 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+055e uni055E 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+055f uni055F 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0561 uni0561 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0562 uni0562 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0563 uni0563 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0564 uni0564 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0565 uni0565 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0566 uni0566 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0567 uni0567 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0568 uni0568 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0569 uni0569 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+056a uni056A 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+056b uni056B 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+056c uni056C 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+056d uni056D 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+056e uni056E 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+056f uni056F 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0570 uni0570 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0571 uni0571 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0572 uni0572 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0573 uni0573 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0574 uni0574 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0575 uni0575 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0576 uni0576 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0577 uni0577 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0578 uni0578 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0579 uni0579 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+057a uni057A 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+057b uni057B 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+057c uni057C 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+057d uni057D 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+057e uni057E 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+057f uni057F 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0580 uni0580 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0581 uni0581 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0582 uni0582 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0583 uni0583 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0584 uni0584 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0585 uni0585 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0586 uni0586 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0587 uni0587 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+0589 uni0589 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+058a uni058A 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+05b0 uni05B0 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05b1 uni05B1 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05b2 uni05B2 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05b3 uni05B3 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05b4 uni05B4 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05b5 uni05B5 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05b6 uni05B6 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05b7 uni05B7 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05b8 uni05B8 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05b9 uni05B9 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05ba uni05BA 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+05bb uni05BB 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05bc uni05BC 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05bd uni05BD 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05be uni05BE 2.9 (Sans Condensed Oblique, Sans Oblique) 2.16 (Sans, Sans Bold, Sans Bold Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique) -U+05bf uni05BF 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05c0 uni05C0 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05c1 uni05C1 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05c2 uni05C2 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05c3 uni05C3 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05c6 uni05C6 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05c7 uni05C7 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05d0 uni05D0 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05d1 uni05D1 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05d2 uni05D2 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05d3 uni05D3 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05d4 uni05D4 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05d5 uni05D5 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05d6 uni05D6 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05d7 uni05D7 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05d8 uni05D8 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05d9 uni05D9 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05da uni05DA 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05db uni05DB 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05dc uni05DC 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05dd uni05DD 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05de uni05DE 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05df uni05DF 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05e0 uni05E0 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05e1 uni05E1 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05e2 uni05E2 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05e3 uni05E3 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05e4 uni05E4 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05e5 uni05E5 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05e6 uni05E6 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05e7 uni05E7 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05e8 uni05E8 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05e9 uni05E9 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05ea uni05EA 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05f0 uni05F0 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05f1 uni05F1 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05f2 uni05F2 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+05f3 uni05F3 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+05f4 uni05F4 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+0606 uni0606 2.26 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold) -U+0607 uni0607 2.26 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold) -U+0609 uni0609 2.26 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold) -U+060a uni060A 2.26 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold) -U+060c uni060C 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0615 uni0615 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+061b uni061B 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+061f uni061F 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0621 uni0621 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0622 uni0622 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0623 uni0623 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0624 uni0624 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0625 uni0625 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0626 uni0626 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0627 uni0627 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0628 uni0628 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0629 uni0629 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+062a uni062A 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+062b uni062B 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+062c uni062C 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+062d uni062D 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+062e uni062E 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+062f uni062F 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0630 uni0630 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0631 uni0631 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0632 uni0632 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0633 uni0633 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0634 uni0634 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0635 uni0635 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0636 uni0636 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0637 uni0637 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0638 uni0638 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0639 uni0639 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+063a uni063A 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0640 uni0640 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0641 uni0641 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0642 uni0642 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0643 uni0643 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0644 uni0644 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0645 uni0645 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0646 uni0646 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0647 uni0647 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0648 uni0648 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0649 uni0649 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+064a uni064A 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+064b uni064B 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+064c uni064C 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+064d uni064D 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+064e uni064E 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+064f uni064F 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0650 uni0650 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0651 uni0651 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0652 uni0652 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0653 uni0653 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0654 uni0654 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0655 uni0655 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0657 uni0657 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+065a uni065A 2.7 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0660 uni0660 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0661 uni0661 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0662 uni0662 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0663 uni0663 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0664 uni0664 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0665 uni0665 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0666 uni0666 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0667 uni0667 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0668 uni0668 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0669 uni0669 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+066a uni066A 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+066b uni066B 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+066c uni066C 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+066d uni066D 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+066e uni066E 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+066f uni066F 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0670 uni0670 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+0674 uni0674 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans ExtraLight) 2.16 (Sans Mono, Sans Mono Bold) -U+0679 uni0679 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+067a uni067A 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+067b uni067B 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+067c uni067C 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+067d uni067D 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+067e uni067E 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+067f uni067F 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0680 uni0680 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0681 uni0681 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0682 uni0682 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0683 uni0683 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0684 uni0684 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0685 uni0685 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0686 uni0686 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0687 uni0687 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0688 uni0688 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+0689 uni0689 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+068a uni068A 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+068b uni068B 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+068c uni068C 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+068d uni068D 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+068e uni068E 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+068f uni068F 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+0690 uni0690 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+0691 uni0691 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0692 uni0692 2.7 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0693 uni0693 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+0694 uni0694 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+0695 uni0695 2.7 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+0696 uni0696 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+0697 uni0697 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+0698 uni0698 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+0699 uni0699 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+069a uni069A 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+069b uni069B 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+069c uni069C 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+069d uni069D 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+069e uni069E 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+069f uni069F 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+06a0 uni06A0 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+06a1 uni06A1 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+06a2 uni06A2 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+06a3 uni06A3 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+06a4 uni06A4 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+06a5 uni06A5 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+06a6 uni06A6 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+06a7 uni06A7 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+06a8 uni06A8 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+06a9 uni06A9 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+06aa uni06AA 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+06ab uni06AB 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+06ac uni06AC 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+06ad uni06AD 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+06ae uni06AE 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+06af uni06AF 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+06b0 uni06B0 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+06b1 uni06B1 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+06b2 uni06B2 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+06b3 uni06B3 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+06b4 uni06B4 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+06b5 uni06B5 2.7 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+06b6 uni06B6 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+06b7 uni06B7 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+06b8 uni06B8 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+06b9 uni06B9 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+06ba uni06BA 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+06bb uni06BB 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+06bc uni06BC 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+06bd uni06BD 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+06be uni06BE 2.16 (Sans Mono, Sans Mono Bold) 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+06bf uni06BF 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+06c6 uni06C6 2.7 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+06cc uni06CC 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+06ce uni06CE 2.7 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+06d5 uni06D5 2.10 (Sans, Sans Bold) 2.11 (Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+06f0 uni06F0 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+06f1 uni06F1 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+06f2 uni06F2 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+06f3 uni06F3 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+06f4 uni06F4 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+06f5 uni06F5 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+06f6 uni06F6 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+06f7 uni06F7 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+06f8 uni06F8 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+06f9 uni06F9 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+07c0 uni07C0 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07c1 uni07C1 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07c2 uni07C2 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07c3 uni07C3 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07c4 uni07C4 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07c5 uni07C5 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07c6 uni07C6 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07c7 uni07C7 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07c8 uni07C8 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07c9 uni07C9 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07ca uni07CA 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07cb uni07CB 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07cc uni07CC 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07cd uni07CD 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07ce uni07CE 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07cf uni07CF 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07d0 uni07D0 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07d1 uni07D1 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07d2 uni07D2 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07d3 uni07D3 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07d4 uni07D4 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07d5 uni07D5 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07d6 uni07D6 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07d7 uni07D7 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07d8 uni07D8 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07d9 uni07D9 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07da uni07DA 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07db uni07DB 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07dc uni07DC 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07dd uni07DD 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07de uni07DE 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07df uni07DF 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07e0 uni07E0 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07e1 uni07E1 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07e2 uni07E2 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07e3 uni07E3 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07e4 uni07E4 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07e5 uni07E5 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07e6 uni07E6 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07e7 uni07E7 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07eb uni07EB 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07ec uni07EC 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07ed uni07ED 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07ee uni07EE 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07ef uni07EF 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07f0 uni07F0 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07f1 uni07F1 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07f2 uni07F2 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07f3 uni07F3 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07f4 uni07F4 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07f5 uni07F5 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07f8 uni07F8 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07f9 uni07F9 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+07fa uni07FA 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+0e3f uni0E3F 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+0e81 uni0E81 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0e82 uni0E82 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0e84 uni0E84 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0e87 uni0E87 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0e88 uni0E88 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0e8a uni0E8A 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0e8d uni0E8D 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0e94 uni0E94 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0e95 uni0E95 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0e96 uni0E96 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0e97 uni0E97 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0e99 uni0E99 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0e9a uni0E9A 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0e9b uni0E9B 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0e9c uni0E9C 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0e9d uni0E9D 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0e9e uni0E9E 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0e9f uni0E9F 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0ea1 uni0EA1 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0ea2 uni0EA2 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0ea3 uni0EA3 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0ea5 uni0EA5 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0ea7 uni0EA7 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0eaa uni0EAA 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0eab uni0EAB 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0ead uni0EAD 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0eae uni0EAE 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0eaf uni0EAF 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0eb0 uni0EB0 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.18 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0eb1 uni0EB1 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.18 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0eb2 uni0EB2 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.18 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0eb3 uni0EB3 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.18 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0eb4 uni0EB4 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.18 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0eb5 uni0EB5 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.18 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0eb6 uni0EB6 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.18 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0eb7 uni0EB7 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.18 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0eb8 uni0EB8 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.18 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0eb9 uni0EB9 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.18 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0ebb uni0EBB 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.18 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0ebc uni0EBC 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.18 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0ebd uni0EBD 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+0ec0 uni0EC0 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+0ec1 uni0EC1 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+0ec2 uni0EC2 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+0ec3 uni0EC3 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+0ec4 uni0EC4 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+0ec6 uni0EC6 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+0ec8 uni0EC8 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.18 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0ec9 uni0EC9 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.18 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0eca uni0ECA 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.18 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0ecb uni0ECB 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.18 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0ecc uni0ECC 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.18 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0ecd uni0ECD 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.18 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+0ed0 uni0ED0 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+0ed1 uni0ED1 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+0ed2 uni0ED2 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+0ed3 uni0ED3 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+0ed4 uni0ED4 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+0ed5 uni0ED5 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+0ed6 uni0ED6 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+0ed7 uni0ED7 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+0ed8 uni0ED8 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+0ed9 uni0ED9 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+0edc uni0EDC 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+0edd uni0EDD 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+10a0 uni10A0 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10a1 uni10A1 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10a2 uni10A2 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10a3 uni10A3 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10a4 uni10A4 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10a5 uni10A5 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10a6 uni10A6 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10a7 uni10A7 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10a8 uni10A8 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10a9 uni10A9 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10aa uni10AA 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10ab uni10AB 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10ac uni10AC 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10ad uni10AD 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10ae uni10AE 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10af uni10AF 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10b0 uni10B0 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10b1 uni10B1 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10b2 uni10B2 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10b3 uni10B3 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10b4 uni10B4 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10b5 uni10B5 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10b6 uni10B6 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10b7 uni10B7 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10b8 uni10B8 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10b9 uni10B9 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10ba uni10BA 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10bb uni10BB 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10bc uni10BC 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10bd uni10BD 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10be uni10BE 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10bf uni10BF 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10c0 uni10C0 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10c1 uni10C1 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10c2 uni10C2 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10c3 uni10C3 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10c4 uni10C4 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10c5 uni10C5 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+10d0 uni10D0 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10d1 uni10D1 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10d2 uni10D2 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10d3 uni10D3 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10d4 uni10D4 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10d5 uni10D5 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10d6 uni10D6 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10d7 uni10D7 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10d8 uni10D8 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10d9 uni10D9 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10da uni10DA 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10db uni10DB 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10dc uni10DC 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10dd uni10DD 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10de uni10DE 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10df uni10DF 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10e0 uni10E0 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10e1 uni10E1 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10e2 uni10E2 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10e3 uni10E3 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10e4 uni10E4 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10e5 uni10E5 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10e6 uni10E6 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10e7 uni10E7 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10e8 uni10E8 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10e9 uni10E9 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10ea uni10EA 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10eb uni10EB 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10ec uni10EC 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10ed uni10ED 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10ee uni10EE 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10ef uni10EF 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10f0 uni10F0 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10f1 uni10F1 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10f2 uni10F2 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10f3 uni10F3 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10f4 uni10F4 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10f5 uni10F5 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10f6 uni10F6 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10f7 uni10F7 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10f8 uni10F8 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10f9 uni10F9 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10fa uni10FA 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10fb uni10FB 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+10fc uni10FC 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Mono, Sans Mono Bold, Serif, Serif Bold, Serif Condensed, Serif Condensed Bold) 2.20 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+1401 uni1401 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1402 uni1402 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1403 uni1403 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1404 uni1404 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1405 uni1405 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1406 uni1406 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1407 uni1407 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1409 uni1409 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+140a uni140A 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+140b uni140B 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+140c uni140C 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+140d uni140D 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+140e uni140E 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+140f uni140F 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1410 uni1410 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1411 uni1411 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1412 uni1412 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1413 uni1413 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1414 uni1414 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1415 uni1415 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1416 uni1416 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1417 uni1417 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1418 uni1418 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1419 uni1419 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+141a uni141A 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+141b uni141B 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+141d uni141D 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+141e uni141E 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+141f uni141F 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1420 uni1420 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1421 uni1421 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1422 uni1422 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1423 uni1423 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1424 uni1424 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1425 uni1425 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1426 uni1426 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1427 uni1427 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1428 uni1428 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1429 uni1429 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+142a uni142A 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+142b uni142B 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+142c uni142C 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+142d uni142D 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+142e uni142E 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+142f uni142F 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1430 uni1430 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1431 uni1431 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1432 uni1432 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1433 uni1433 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1434 uni1434 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1435 uni1435 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1437 uni1437 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1438 uni1438 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1439 uni1439 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+143a uni143A 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+143b uni143B 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+143c uni143C 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+143d uni143D 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+143e uni143E 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+143f uni143F 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1440 uni1440 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1441 uni1441 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1442 uni1442 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1443 uni1443 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1444 uni1444 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1445 uni1445 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1446 uni1446 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1447 uni1447 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1448 uni1448 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1449 uni1449 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+144a uni144A 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+144c uni144C 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+144d uni144D 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+144e uni144E 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+144f uni144F 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1450 uni1450 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1451 uni1451 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1452 uni1452 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1454 uni1454 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1455 uni1455 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1456 uni1456 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1457 uni1457 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1458 uni1458 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1459 uni1459 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+145a uni145A 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+145b uni145B 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+145c uni145C 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+145d uni145D 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+145e uni145E 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+145f uni145F 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1460 uni1460 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1461 uni1461 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1462 uni1462 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1463 uni1463 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1464 uni1464 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1465 uni1465 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1466 uni1466 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1467 uni1467 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1468 uni1468 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1469 uni1469 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+146a uni146A 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+146b uni146B 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+146c uni146C 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+146d uni146D 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+146e uni146E 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+146f uni146F 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1470 uni1470 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1471 uni1471 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1472 uni1472 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1473 uni1473 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1474 uni1474 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1475 uni1475 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1476 uni1476 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1477 uni1477 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1478 uni1478 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1479 uni1479 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+147a uni147A 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+147b uni147B 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+147c uni147C 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+147d uni147D 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+147e uni147E 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+147f uni147F 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1480 uni1480 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1481 uni1481 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1482 uni1482 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1483 uni1483 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1484 uni1484 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1485 uni1485 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1486 uni1486 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1487 uni1487 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1488 uni1488 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1489 uni1489 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+148a uni148A 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+148b uni148B 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+148c uni148C 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+148d uni148D 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+148e uni148E 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+148f uni148F 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1490 uni1490 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1491 uni1491 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1492 uni1492 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1493 uni1493 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1494 uni1494 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1495 uni1495 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1496 uni1496 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1497 uni1497 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1498 uni1498 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1499 uni1499 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+149a uni149A 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+149b uni149B 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+149c uni149C 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+149d uni149D 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+149e uni149E 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+149f uni149F 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14a0 uni14A0 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14a1 uni14A1 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14a2 uni14A2 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14a3 uni14A3 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14a4 uni14A4 2.13 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Condensed Oblique, Sans Oblique) 2.15 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+14a5 uni14A5 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14a6 uni14A6 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14a7 uni14A7 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14a8 uni14A8 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14a9 uni14A9 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14aa uni14AA 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14ab uni14AB 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14ac uni14AC 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14ad uni14AD 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14ae uni14AE 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14af uni14AF 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14b0 uni14B0 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14b1 uni14B1 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14b2 uni14B2 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14b3 uni14B3 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14b4 uni14B4 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14b5 uni14B5 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14b6 uni14B6 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14b7 uni14B7 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14b8 uni14B8 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14b9 uni14B9 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14ba uni14BA 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14bb uni14BB 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14bc uni14BC 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14bd uni14BD 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14c0 uni14C0 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14c1 uni14C1 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14c2 uni14C2 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14c3 uni14C3 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14c4 uni14C4 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14c5 uni14C5 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14c6 uni14C6 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14c7 uni14C7 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14c8 uni14C8 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14c9 uni14C9 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14ca uni14CA 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14cb uni14CB 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14cc uni14CC 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14cd uni14CD 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14ce uni14CE 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14cf uni14CF 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14d0 uni14D0 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14d1 uni14D1 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14d2 uni14D2 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14d3 uni14D3 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14d4 uni14D4 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14d5 uni14D5 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14d6 uni14D6 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14d7 uni14D7 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14d8 uni14D8 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14d9 uni14D9 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14da uni14DA 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14db uni14DB 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14dc uni14DC 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14dd uni14DD 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14de uni14DE 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14df uni14DF 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14e0 uni14E0 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14e1 uni14E1 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14e2 uni14E2 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14e3 uni14E3 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14e4 uni14E4 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14e5 uni14E5 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14e6 uni14E6 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14e7 uni14E7 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14e8 uni14E8 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14e9 uni14E9 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14ea uni14EA 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14ec uni14EC 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14ed uni14ED 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14ee uni14EE 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14ef uni14EF 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14f0 uni14F0 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14f1 uni14F1 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14f2 uni14F2 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14f3 uni14F3 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14f4 uni14F4 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14f5 uni14F5 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14f6 uni14F6 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14f7 uni14F7 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14f8 uni14F8 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14f9 uni14F9 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14fa uni14FA 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14fb uni14FB 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14fc uni14FC 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14fd uni14FD 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14fe uni14FE 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+14ff uni14FF 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1500 uni1500 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1501 uni1501 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1502 uni1502 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1503 uni1503 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1504 uni1504 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1505 uni1505 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1506 uni1506 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1507 uni1507 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1510 uni1510 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1511 uni1511 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1512 uni1512 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1513 uni1513 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1514 uni1514 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1515 uni1515 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1516 uni1516 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1517 uni1517 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1518 uni1518 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1519 uni1519 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+151a uni151A 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+151b uni151B 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+151c uni151C 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+151d uni151D 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+151e uni151E 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+151f uni151F 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1520 uni1520 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1521 uni1521 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1522 uni1522 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1523 uni1523 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1524 uni1524 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1525 uni1525 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1526 uni1526 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1527 uni1527 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1528 uni1528 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1529 uni1529 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+152a uni152A 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+152b uni152B 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+152c uni152C 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+152d uni152D 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+152e uni152E 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+152f uni152F 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1530 uni1530 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1531 uni1531 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1532 uni1532 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1533 uni1533 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1534 uni1534 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1535 uni1535 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1536 uni1536 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1537 uni1537 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1538 uni1538 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1539 uni1539 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+153a uni153A 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+153b uni153B 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+153c uni153C 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+153d uni153D 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+153e uni153E 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1540 uni1540 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1541 uni1541 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1542 uni1542 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1543 uni1543 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1544 uni1544 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1545 uni1545 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1546 uni1546 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1547 uni1547 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1548 uni1548 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1549 uni1549 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+154a uni154A 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+154b uni154B 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+154c uni154C 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+154d uni154D 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+154e uni154E 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+154f uni154F 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1550 uni1550 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1552 uni1552 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1553 uni1553 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1554 uni1554 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1555 uni1555 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1556 uni1556 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1557 uni1557 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1558 uni1558 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1559 uni1559 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+155a uni155A 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+155b uni155B 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+155c uni155C 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+155d uni155D 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+155e uni155E 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+155f uni155F 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1560 uni1560 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1561 uni1561 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1562 uni1562 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1563 uni1563 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1564 uni1564 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1565 uni1565 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1566 uni1566 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1567 uni1567 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1568 uni1568 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1569 uni1569 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+156a uni156A 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1574 uni1574 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1575 uni1575 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1576 uni1576 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1577 uni1577 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1578 uni1578 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1579 uni1579 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+157a uni157A 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+157b uni157B 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+157c uni157C 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+157d uni157D 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+157e uni157E 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+157f uni157F 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1580 uni1580 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1581 uni1581 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1582 uni1582 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1583 uni1583 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1584 uni1584 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1585 uni1585 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+158a uni158A 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+158b uni158B 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+158c uni158C 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+158d uni158D 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+158e uni158E 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+158f uni158F 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1590 uni1590 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1591 uni1591 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1592 uni1592 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1593 uni1593 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1594 uni1594 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1595 uni1595 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1596 uni1596 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+15a0 uni15A0 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+15a1 uni15A1 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+15a2 uni15A2 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+15a3 uni15A3 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+15a4 uni15A4 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+15a5 uni15A5 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+15a6 uni15A6 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+15a7 uni15A7 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+15a8 uni15A8 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+15a9 uni15A9 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+15aa uni15AA 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+15ab uni15AB 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+15ac uni15AC 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+15ad uni15AD 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+15ae uni15AE 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+15af uni15AF 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+15de uni15DE 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+15e1 uni15E1 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1646 uni1646 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1647 uni1647 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+166e uni166E 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+166f uni166F 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1670 uni1670 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1671 uni1671 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1672 uni1672 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1673 uni1673 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1674 uni1674 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1675 uni1675 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1676 uni1676 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1680 uni1680 2.22 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.28 (Sans ExtraLight) -U+1681 uni1681 2.22 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.28 (Sans ExtraLight) -U+1682 uni1682 2.22 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.28 (Sans ExtraLight) -U+1683 uni1683 2.22 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.28 (Sans ExtraLight) -U+1684 uni1684 2.22 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.28 (Sans ExtraLight) -U+1685 uni1685 2.22 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.28 (Sans ExtraLight) -U+1686 uni1686 2.22 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.28 (Sans ExtraLight) -U+1687 uni1687 2.22 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.28 (Sans ExtraLight) -U+1688 uni1688 2.22 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.28 (Sans ExtraLight) -U+1689 uni1689 2.22 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.28 (Sans ExtraLight) -U+168a uni168A 2.22 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.28 (Sans ExtraLight) -U+168b uni168B 2.22 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.28 (Sans ExtraLight) -U+168c uni168C 2.22 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.28 (Sans ExtraLight) -U+168d uni168D 2.22 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.28 (Sans ExtraLight) -U+168e uni168E 2.22 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.28 (Sans ExtraLight) -U+168f uni168F 2.22 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.28 (Sans ExtraLight) -U+1690 uni1690 2.22 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.28 (Sans ExtraLight) -U+1691 uni1691 2.22 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.28 (Sans ExtraLight) -U+1692 uni1692 2.22 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.28 (Sans ExtraLight) -U+1693 uni1693 2.22 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.28 (Sans ExtraLight) -U+1694 uni1694 2.22 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.28 (Sans ExtraLight) -U+1695 uni1695 2.22 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.28 (Sans ExtraLight) -U+1696 uni1696 2.22 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.28 (Sans ExtraLight) -U+1697 uni1697 2.22 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.28 (Sans ExtraLight) -U+1698 uni1698 2.22 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.28 (Sans ExtraLight) -U+1699 uni1699 2.22 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.28 (Sans ExtraLight) -U+169a uni169A 2.22 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.28 (Sans ExtraLight) -U+169b uni169B 2.22 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.28 (Sans ExtraLight) -U+169c uni169C 2.22 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.28 (Sans ExtraLight) -U+1d00 uni1D00 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d01 uni1D01 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d02 uni1D02 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1d03 uni1D03 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d04 uni1D04 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d05 uni1D05 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d06 uni1D06 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d07 uni1D07 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d08 uni1D08 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+1d09 uni1D09 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1d0a uni1D0A 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d0b uni1D0B 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d0c uni1D0C 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d0d uni1D0D 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d0e uni1D0E 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d0f uni1D0F 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d10 uni1D10 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d11 uni1D11 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d12 uni1D12 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d13 uni1D13 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d14 uni1D14 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1d15 uni1D15 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d16 uni1D16 2.3 -U+1d17 uni1D17 2.3 -U+1d18 uni1D18 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d19 uni1D19 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans ExtraLight) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d1a uni1D1A 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans ExtraLight) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d1b uni1D1B 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d1c uni1D1C 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d1d uni1D1D 2.3 -U+1d1e uni1D1E 2.3 -U+1d1f uni1D1F 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+1d20 uni1D20 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d21 uni1D21 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d22 uni1D22 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d23 uni1D23 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d24 uni1D24 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d25 uni1D25 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d26 uni1D26 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d27 uni1D27 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d28 uni1D28 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d29 uni1D29 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d2a uni1D2A 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d2b uni1D2B 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans ExtraLight) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d2c uni1D2C 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+1d2d uni1D2D 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+1d2e uni1D2E 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+1d2f uni1D2F 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d30 uni1D30 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+1d31 uni1D31 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+1d32 uni1D32 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+1d33 uni1D33 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+1d34 uni1D34 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+1d35 uni1D35 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+1d36 uni1D36 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+1d37 uni1D37 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+1d38 uni1D38 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+1d39 uni1D39 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+1d3a uni1D3A 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+1d3b uni1D3B 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+1d3c uni1D3C 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+1d3d uni1D3D 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d3e uni1D3E 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+1d3f uni1D3F 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+1d40 uni1D40 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+1d41 uni1D41 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+1d42 uni1D42 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+1d43 uni1D43 2.3 -U+1d44 uni1D44 2.3 -U+1d45 uni1D45 2.3 -U+1d46 uni1D46 2.3 -U+1d47 uni1D47 2.3 -U+1d48 uni1D48 2.3 -U+1d49 uni1D49 2.3 -U+1d4a uni1D4A 2.3 -U+1d4b uni1D4B 2.3 -U+1d4c uni1D4C 2.3 -U+1d4d uni1D4D 2.3 -U+1d4e uni1D4E 2.3 -U+1d4f uni1D4F 2.3 -U+1d50 uni1D50 2.3 -U+1d51 uni1D51 2.3 -U+1d52 uni1D52 2.3 -U+1d53 uni1D53 2.3 -U+1d54 uni1D54 2.3 -U+1d55 uni1D55 2.3 -U+1d56 uni1D56 2.3 -U+1d57 uni1D57 2.3 -U+1d58 uni1D58 2.3 -U+1d59 uni1D59 2.3 -U+1d5a uni1D5A 2.3 -U+1d5b uni1D5B 2.3 -U+1d5c uni1D5C 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d5d uni1D5D 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d5e uni1D5E 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d5f uni1D5F 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d60 uni1D60 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d61 uni1D61 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d62 uni1D62 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+1d63 uni1D63 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+1d64 uni1D64 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+1d65 uni1D65 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+1d66 uni1D66 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d67 uni1D67 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d68 uni1D68 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d69 uni1D69 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d6a uni1D6A 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d6b uni1D6B 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d77 uni1D77 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1d78 uni1D78 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+1d7b uni1D7B 2.3 -U+1d7c uni1D7C 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d7d uni1D7D 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d7e uni1D7E 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d7f uni1D7F 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1d85 uni1D85 2.3 -U+1d9b uni1D9B 2.3 -U+1d9c uni1D9C 2.3 -U+1d9d uni1D9D 2.3 -U+1d9e uni1D9E 2.3 -U+1d9f uni1D9F 2.3 -U+1da0 uni1DA0 2.3 -U+1da1 uni1DA1 2.3 -U+1da2 uni1DA2 2.3 -U+1da3 uni1DA3 2.3 -U+1da4 uni1DA4 2.3 -U+1da5 uni1DA5 2.3 -U+1da6 uni1DA6 2.3 -U+1da7 uni1DA7 2.3 -U+1da8 uni1DA8 2.3 -U+1da9 uni1DA9 2.3 -U+1daa uni1DAA 2.3 -U+1dab uni1DAB 2.3 -U+1dac uni1DAC 2.3 -U+1dad uni1DAD 2.3 -U+1dae uni1DAE 2.3 -U+1daf uni1DAF 2.3 -U+1db0 uni1DB0 2.3 -U+1db1 uni1DB1 2.3 -U+1db2 uni1DB2 2.3 -U+1db3 uni1DB3 2.3 -U+1db4 uni1DB4 2.3 -U+1db5 uni1DB5 2.3 -U+1db6 uni1DB6 2.3 -U+1db7 uni1DB7 2.3 -U+1db8 uni1DB8 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1db9 uni1DB9 2.3 -U+1dba uni1DBA 2.3 -U+1dbb uni1DBB 2.3 -U+1dbc uni1DBC 2.3 -U+1dbd uni1DBD 2.3 -U+1dbe uni1DBE 2.3 -U+1dbf uni1DBF 2.3 -U+1dc4 uni1DC4 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.30 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1dc5 uni1DC5 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.30 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1dc6 uni1DC6 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.30 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1dc7 uni1DC7 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.30 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1dc8 uni1DC8 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.30 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1dc9 uni1DC9 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.30 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1e00 uni1E00 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e01 uni1E01 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e02 uni1E02 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e03 uni1E03 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e04 uni1E04 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e05 uni1E05 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e06 uni1E06 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e07 uni1E07 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e08 uni1E08 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.22 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e09 uni1E09 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.22 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e0a uni1E0A 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e0b uni1E0B 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e0c uni1E0C 2.1 -U+1e0d uni1E0D 2.1 -U+1e0e uni1E0E 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e0f uni1E0F 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e10 uni1E10 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.22 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e11 uni1E11 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.22 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e12 uni1E12 1.13 -U+1e13 uni1E13 1.13 -U+1e14 uni1E14 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1e15 uni1E15 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1e16 uni1E16 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1e17 uni1E17 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1e18 uni1E18 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e19 uni1E19 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e1a uni1E1A 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e1b uni1E1B 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e1c uni1E1C 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.16 (Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.17 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+1e1d uni1E1D 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.16 (Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.17 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+1e1e uni1E1E 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e1f uni1E1F 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e20 uni1E20 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e21 uni1E21 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e22 uni1E22 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e23 uni1E23 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e24 uni1E24 2.1 -U+1e25 uni1E25 2.1 -U+1e26 uni1E26 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+1e27 uni1E27 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+1e28 uni1E28 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e29 uni1E29 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e2a uni1E2A 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e2b uni1E2B 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e2c uni1E2C 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e2d uni1E2D 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e2e uni1E2E 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1e2f uni1E2F 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1e30 uni1E30 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e31 uni1E31 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e32 uni1E32 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e33 uni1E33 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e34 uni1E34 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e35 uni1E35 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e36 uni1E36 2.1 -U+1e37 uni1E37 2.1 -U+1e38 uni1E38 2.1 -U+1e39 uni1E39 2.1 -U+1e3a uni1E3A 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e3b uni1E3B 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e3c uni1E3C 1.13 -U+1e3d uni1E3D 1.13 -U+1e3e uni1E3E 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e3f uni1E3F 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e40 uni1E40 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e41 uni1E41 2.1 -U+1e42 uni1E42 2.1 -U+1e43 uni1E43 2.1 -U+1e44 uni1E44 1.13 -U+1e45 uni1E45 1.13 -U+1e46 uni1E46 2.1 -U+1e47 uni1E47 2.1 -U+1e48 uni1E48 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e49 uni1E49 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e4a uni1E4A 1.13 -U+1e4b uni1E4B 1.13 -U+1e4c uni1E4C 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.30 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1e4d uni1E4D 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.30 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1e4e uni1E4E 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1e4f uni1E4F 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1e50 uni1E50 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1e51 uni1E51 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1e52 uni1E52 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1e53 uni1E53 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1e54 uni1E54 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+1e55 uni1E55 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+1e56 uni1E56 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e57 uni1E57 2.1 -U+1e58 uni1E58 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e59 uni1E59 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e5a uni1E5A 2.1 -U+1e5b uni1E5B 2.1 -U+1e5c uni1E5C 2.1 -U+1e5d uni1E5D 2.1 -U+1e5e uni1E5E 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e5f uni1E5F 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e60 uni1E60 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e61 uni1E61 2.1 -U+1e62 uni1E62 2.1 -U+1e63 uni1E63 2.1 -U+1e64 uni1E64 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1e65 uni1E65 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1e66 uni1E66 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1e67 uni1E67 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1e68 uni1E68 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e69 uni1E69 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e6a uni1E6A 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e6b uni1E6B 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e6c uni1E6C 2.1 -U+1e6d uni1E6D 2.1 -U+1e6e uni1E6E 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e6f uni1E6F 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e70 uni1E70 1.13 -U+1e71 uni1E71 1.13 -U+1e72 uni1E72 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e73 uni1E73 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e74 uni1E74 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e75 uni1E75 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e76 uni1E76 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e77 uni1E77 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e78 uni1E78 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) 2.30 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+1e79 uni1E79 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) 2.30 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+1e7a uni1E7A 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1e7b uni1E7B 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1e7c uni1E7C 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+1e7d uni1E7D 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+1e7e uni1E7E 2.1 -U+1e7f uni1E7F 2.1 -U+1e80 Wgrave 1.2 -U+1e81 wgrave 1.2 -U+1e82 Wacute 1.2 -U+1e83 wacute 1.2 -U+1e84 Wdieresis 1.2 -U+1e85 wdieresis 1.2 -U+1e86 uni1E86 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e87 uni1E87 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e88 uni1E88 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e89 uni1E89 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e8a uni1E8A 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e8b uni1E8B 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e8c uni1E8C 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+1e8d uni1E8D 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+1e8e uni1E8E 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e8f uni1E8F 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e90 uni1E90 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+1e91 uni1E91 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+1e92 uni1E92 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e93 uni1E93 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e94 uni1E94 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e95 uni1E95 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e96 uni1E96 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e97 uni1E97 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+1e98 uni1E98 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+1e99 uni1E99 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+1e9a uni1E9A 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.10 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1e9b uni1E9B 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1e9c uni1E9C 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1e9d uni1E9D 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1e9e uni1E9E 2.28 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.32 (Sans ExtraLight) -U+1e9f uni1E9F 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1ea0 uni1EA0 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1ea1 uni1EA1 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1ea2 uni1EA2 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1ea3 uni1EA3 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1ea4 uni1EA4 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1ea5 uni1EA5 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1ea6 uni1EA6 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1ea7 uni1EA7 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1ea8 uni1EA8 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1ea9 uni1EA9 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1eaa uni1EAA 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1eab uni1EAB 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1eac uni1EAC 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+1ead uni1EAD 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+1eae uni1EAE 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1eaf uni1EAF 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1eb0 uni1EB0 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.22 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1eb1 uni1EB1 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.22 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1eb2 uni1EB2 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1eb3 uni1EB3 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1eb4 uni1EB4 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1eb5 uni1EB5 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1eb6 uni1EB6 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+1eb7 uni1EB7 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+1eb8 uni1EB8 2.2 -U+1eb9 uni1EB9 2.2 -U+1eba uni1EBA 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1ebb uni1EBB 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1ebc uni1EBC 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1ebd uni1EBD 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1ebe uni1ebe 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1ebf uni1ebF 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1ec0 uni1EC0 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1ec1 uni1EC1 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1ec2 uni1EC2 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1ec3 uni1EC3 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1ec4 uni1EC4 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1ec5 uni1EC5 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1ec6 uni1EC6 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+1ec7 uni1EC7 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+1ec8 uni1EC8 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1ec9 uni1EC9 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1eca uni1ECA 2.2 -U+1ecb uni1ECB 2.2 -U+1ecc uni1ECC 2.2 -U+1ecd uni1ECD 2.2 -U+1ece uni1ECE 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1ecf uni1ECF 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1ed0 uni1ED0 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1ed1 uni1ED1 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1ed2 uni1ED2 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1ed3 uni1ED3 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1ed4 uni1ED4 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1ed5 uni1ED5 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1ed6 uni1ED6 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1ed7 uni1ED7 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1ed8 uni1ED8 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+1ed9 uni1ED9 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+1eda uni1EDA 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1edb uni1EDB 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1edc uni1EDC 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1edd uni1EDD 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1ede uni1EDE 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1edf uni1EDF 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1ee0 uni1EE0 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1ee1 uni1EE1 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1ee2 uni1EE2 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1ee3 uni1EE3 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1ee4 uni1EE4 2.2 -U+1ee5 uni1EE5 2.2 -U+1ee6 uni1EE6 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1ee7 uni1EE7 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1ee8 uni1EE8 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1ee9 uni1EE9 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1eea uni1EEA 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1eeb uni1EEB 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1eec uni1EEC 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1eed uni1EED 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1eee uni1EEE 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1eef uni1EEF 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1ef0 uni1EF0 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1ef1 uni1EF1 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1ef2 Ygrave 1.2 -U+1ef3 ygrave 1.2 -U+1ef4 uni1EF4 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1ef5 uni1EF5 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1ef6 uni1EF6 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1ef7 uni1EF7 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1ef8 uni1EF8 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1ef9 uni1EF9 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1efa uni1EFA 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1efb uni1EFB 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+1f00 uni1F00 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f01 uni1F01 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f02 uni1F02 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f03 uni1F03 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f04 uni1F04 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f05 uni1F05 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f06 uni1F06 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f07 uni1F07 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f08 uni1F08 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f09 uni1F09 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f0a uni1F0A 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f0b uni1F0B 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f0c uni1F0C 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f0d uni1F0D 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f0e uni1F0E 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f0f uni1F0F 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f10 uni1F10 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f11 uni1F11 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f12 uni1F12 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f13 uni1F13 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f14 uni1F14 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f15 uni1F15 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f18 uni1F18 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f19 uni1F19 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f1a uni1F1A 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f1b uni1F1B 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f1c uni1F1C 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f1d uni1F1D 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f20 uni1F20 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f21 uni1F21 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f22 uni1F22 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f23 uni1F23 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f24 uni1F24 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f25 uni1F25 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f26 uni1F26 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f27 uni1F27 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f28 uni1F28 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f29 uni1F29 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f2a uni1F2A 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f2b uni1F2B 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f2c uni1F2C 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f2d uni1F2D 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f2e uni1F2E 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f2f uni1F2F 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f30 uni1F30 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f31 uni1F31 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f32 uni1F32 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f33 uni1F33 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f34 uni1F34 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f35 uni1F35 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f36 uni1F36 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f37 uni1F37 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f38 uni1F38 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f39 uni1F39 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f3a uni1F3A 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f3b uni1F3B 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f3c uni1F3C 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f3d uni1F3D 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f3e uni1F3E 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f3f uni1F3F 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f40 uni1F40 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f41 uni1F41 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f42 uni1F42 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f43 uni1F43 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f44 uni1F44 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f45 uni1F45 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f48 uni1F48 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f49 uni1F49 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f4a uni1F4A 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f4b uni1F4B 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f4c uni1F4C 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f4d uni1F4D 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f50 uni1F50 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f51 uni1F51 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f52 uni1F52 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f53 uni1F53 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f54 uni1F54 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f55 uni1F55 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f56 uni1F56 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f57 uni1F57 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f59 uni1F59 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f5b uni1F5B 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f5d uni1F5D 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f5f uni1F5F 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f60 uni1F60 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f61 uni1F61 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f62 uni1F62 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f63 uni1F63 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f64 uni1F64 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f65 uni1F65 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f66 uni1F66 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f67 uni1F67 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f68 uni1F68 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f69 uni1F69 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f6a uni1F6A 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f6b uni1F6B 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f6c uni1F6C 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f6d uni1F6D 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f6e uni1F6E 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f6f uni1F6F 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f70 uni1F70 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1f71 uni1F71 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1f72 uni1F72 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1f73 uni1F73 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1f74 uni1F74 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1f75 uni1F75 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1f76 uni1F76 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f77 uni1F77 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f78 uni1F78 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1f79 uni1F79 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1f7a uni1F7A 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f7b uni1F7B 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f7c uni1F7C 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f7d uni1F7D 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f80 uni1F80 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f81 uni1F81 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f82 uni1F82 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f83 uni1F83 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f84 uni1F84 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f85 uni1F85 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f86 uni1F86 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f87 uni1F87 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f88 uni1F88 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f89 uni1F89 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f8a uni1F8A 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f8b uni1F8B 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f8c uni1F8C 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f8d uni1F8D 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f8e uni1F8E 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f8f uni1F8F 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f90 uni1F90 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f91 uni1F91 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f92 uni1F92 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f93 uni1F93 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f94 uni1F94 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f95 uni1F95 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f96 uni1F96 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f97 uni1F97 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f98 uni1F98 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f99 uni1F99 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f9a uni1F9A 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f9b uni1F9B 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f9c uni1F9C 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f9d uni1F9D 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f9e uni1F9E 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1f9f uni1F9F 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fa0 uni1FA0 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fa1 uni1FA1 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fa2 uni1FA2 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fa3 uni1FA3 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fa4 uni1FA4 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fa5 uni1FA5 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fa6 uni1FA6 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fa7 uni1FA7 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fa8 uni1FA8 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fa9 uni1FA9 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1faa uni1FAA 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fab uni1FAB 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fac uni1FAC 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fad uni1FAD 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fae uni1FAE 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1faf uni1FAF 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fb0 uni1FB0 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fb1 uni1FB1 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fb2 uni1FB2 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fb3 uni1FB3 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fb4 uni1FB4 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fb6 uni1FB6 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fb7 uni1FB7 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fb8 uni1FB8 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1fb9 uni1FB9 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1fba uni1FBA 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1fbb uni1FBB 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1fbc uni1FBC 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fbd uni1FBD 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fbe uni1FBE 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1fbf uni1FBF 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fc0 uni1FC0 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1fc1 uni1FC1 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1fc2 uni1FC2 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fc3 uni1FC3 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fc4 uni1FC4 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fc6 uni1FC6 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1fc7 uni1FC7 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fc8 uni1FC8 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1fc9 uni1FC9 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1fca uni1FCA 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1fcb uni1FCB 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1fcc uni1FCC 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.10 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fcd uni1FCD 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fce uni1FCE 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fcf uni1FCF 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fd0 uni1FD0 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fd1 uni1FD1 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fd2 uni1FD2 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fd3 uni1FD3 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fd6 uni1FD6 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fd7 uni1FD7 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fd8 uni1FD8 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1fd9 uni1FD9 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1fda uni1FDA 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1fdb uni1FDB 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1fdd uni1FDD 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fde uni1FDE 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fdf uni1FDF 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fe0 uni1FE0 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fe1 uni1FE1 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fe2 uni1FE2 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fe3 uni1FE3 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fe4 uni1FE4 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fe5 uni1FE5 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fe6 uni1FE6 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fe7 uni1FE7 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fe8 uni1FE8 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1fe9 uni1FE9 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1fea uni1FEA 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1feb uni1FEB 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1fec uni1FEC 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1fed uni1FED 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1fee uni1FEE 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1fef uni1FEF 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1ff2 uni1FF2 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1ff3 uni1FF3 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1ff4 uni1FF4 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1ff6 uni1FF6 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1ff7 uni1FF7 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1ff8 uni1FF8 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1ff9 uni1FF9 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1ffa uni1FFA 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1ffb uni1FFB 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.10 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1ffc uni1FFC 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+1ffd uni1FFD 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+1ffe uni1FFE 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.5 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+2000 uni2000 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+2001 uni2001 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+2002 uni2002 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+2003 uni2003 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+2004 uni2004 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+2005 uni2005 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+2006 uni2006 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+2007 uni2007 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+2008 uni2008 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+2009 uni2009 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+200a uni200A 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+200b uni200B 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.8 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+200c uni200C 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.8 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+200d uni200D 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.8 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+200e uni200E 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.8 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+200f uni200F 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.8 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+2010 uni2010 1.5 -U+2011 uni2011 1.5 -U+2012 figuredash 1.5 -U+2013 endash original -U+2014 emdash original -U+2015 uni2015 1.5 -U+2016 uni2016 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.26 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2017 underscoredbl 2.3 -U+2018 quoteleft original -U+2019 quoteright original -U+201a quotesinglbase original -U+201b quotereversed 2.3 -U+201c quotedblleft original -U+201d quotedblright original -U+201e quotedblbase original -U+201f uni201F 2.1 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+2020 dagger original -U+2021 daggerdbl original -U+2022 bullet original -U+2023 uni2023 2.2 -U+2024 onedotenleader 2.1 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.9 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2025 twodotenleader 2.1 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.9 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2026 ellipsis original -U+2027 uni2027 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2028 uni2028 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+2029 uni2029 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+202a uni202A 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+202b uni202B 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+202c uni202C 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+202d uni202D 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+202e uni202E 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+202f uni202F 2.11 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.23 (Serif Italic Condensed) -U+2030 perthousand original -U+2031 uni2031 2.1 -U+2032 minute 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.28 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.31 (Serif Condensed Italic) -U+2033 second 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.28 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.31 (Serif Condensed Italic) -U+2034 uni2034 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.28 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.31 (Serif Condensed Italic) -U+2035 uni2035 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.28 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.31 (Serif Condensed Italic) -U+2036 uni2036 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.28 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.31 (Serif Condensed Italic) -U+2037 uni2037 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.28 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.31 (Serif Condensed Italic) -U+2038 uni2038 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+2039 guilsinglleft original -U+203a guilsinglright original -U+203b uni203B 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+203c exclamdbl 2.0 -U+203d uni203D 2.1 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.11 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.14 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+203e uni203E 2.3 -U+203f uni203F 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+2040 uni2040 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+2041 uni2041 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2042 uni2042 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.26 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+2043 uni2043 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+2044 fraction 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+2045 uni2045 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.26 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+2046 uni2046 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.26 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+2047 uni2047 2.0 -U+2048 uni2048 2.0 -U+2049 uni2049 2.0 -U+204a uni204A 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+204b uni204B 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.26 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.33 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+204c uni204C 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.26 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+204d uni204D 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.26 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+204e uni204E 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.26 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+204f uni204F 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.26 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+2050 uni2050 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+2051 uni2051 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.26 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+2052 uni2052 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.26 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+2053 uni2053 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.26 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+2054 uni2054 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+2055 uni2055 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2056 uni2056 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2057 uni2057 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+2058 uni2058 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2059 uni2059 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+205a uni205A 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+205b uni205B 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+205c uni205C 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+205d uni205D 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+205e uni205E 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+205f uni205F 2.14 -U+2060 uni2060 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2061 uni2061 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2062 uni2062 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2063 uni2063 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2064 uni2064 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+206a uni206A 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+206b uni206B 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+206c uni206C 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+206d uni206D 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+206e uni206E 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+206f uni206F 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2070 uni2070 2.2 -U+2071 uni2071 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+2074 uni2074 2.2 -U+2075 uni2075 2.2 -U+2076 uni2076 2.2 -U+2077 uni2077 2.2 -U+2078 uni2078 2.2 -U+2079 uni2079 2.2 -U+207a uni207A 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+207b uni207B 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+207c uni207C 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+207d uni207D 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+207e uni207E 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+207f uni207F 1.14 -U+2080 uni2080 2.4 -U+2081 uni2081 2.4 -U+2082 uni2082 2.4 -U+2083 uni2083 2.4 -U+2084 uni2084 2.4 -U+2085 uni2085 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2086 uni2086 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2087 uni2087 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2088 uni2088 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2089 uni2089 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+208a uni208A 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+208b uni208B 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+208c uni208C 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+208d uni208D 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+208e uni208E 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+2090 uni2090 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+2091 uni2091 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+2092 uni2092 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+2093 uni2093 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+2094 uni2094 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+2095 uni2095 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+2096 uni2096 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+2097 uni2097 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+2098 uni2098 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+2099 uni2099 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+209a uni209A 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+209b uni209B 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+209c uni209C 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+20a0 uni20A0 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+20a1 colonmonetary 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+20a2 uni20A2 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+20a3 franc 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+20a4 lira 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+20a5 uni20A5 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+20a6 uni20A6 2.3 -U+20a7 peseta 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+20a8 uni20A8 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+20a9 uni20A9 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+20aa uni20AA 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+20ab dong 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+20ac Euro original -U+20ad uni20AD 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+20ae uni20AE 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+20af uni20AF 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+20b0 uni20B0 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+20b1 uni20B1 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.14 (Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+20b2 uni20B2 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+20b3 uni20B3 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+20b4 uni20B4 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+20b5 uni20B5 2.2 -U+20b8 uni20B8 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+20b9 uni20B9 2.32 -U+20ba uni20BA 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+20d0 uni20D0 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+20d1 uni20D1 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+20d6 uni20D6 2.8 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+20d7 uni20D7 2.8 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+20db uni20DB 2.23 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+20dc uni20DC 2.23 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+20e1 uni20E1 2.23 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2100 uni2100 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2101 uni2101 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2102 uni2102 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.16 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Condensed) -U+2103 uni2103 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2104 uni2104 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2105 uni2105 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2106 uni2106 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2107 uni2107 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2108 uni2108 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2109 uni2109 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+210b uni210B 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+210c uni210C 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+210d uni210D 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.22 (Serif, Serif Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+210e uni210E 2.5 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.23 (Serif Italic Condensed) 2.26 (Sans ExtraLight) -U+210f uni210F 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.28 (Sans ExtraLight, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+2110 uni2110 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2111 Ifraktur 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2112 uni2112 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2113 uni2113 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2114 uni2114 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2115 uni2115 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.22 (Serif, Serif Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2116 uni2116 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+2117 uni2117 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2118 weierstrass 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2119 uni2119 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.22 (Serif, Serif Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+211a uni211A 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.22 (Serif, Serif Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+211b uni211B 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+211c Rfraktur 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+211d uni211D 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+211e prescription 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+211f uni211F 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2120 uni2120 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2121 uni2121 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2122 trademark original -U+2123 uni2123 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2124 uni2124 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.22 (Serif, Serif Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2125 uni2125 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2126 uni2126 2.2 -U+2127 uni2127 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2128 uni2128 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2129 uni2129 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+212a uni212A 2.2 -U+212b uni212B 2.2 -U+212c uni212C 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+212d uni212D 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+212e estimated 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+212f uni212F 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2130 uni2130 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2131 uni2131 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2132 uni2132 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+2133 uni2133 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2134 uni2134 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+2135 aleph 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2136 uni2136 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2137 uni2137 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2138 uni2138 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2139 uni2139 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+213a uni213A 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+213b uni213B 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+213c uni213C 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.22 (Serif, Serif Condensed) -U+213d uni213D 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.22 (Serif, Serif Condensed) -U+213e uni213E 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.22 (Serif, Serif Condensed) -U+213f uni213F 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.22 (Serif, Serif Condensed) -U+2140 uni2140 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.22 (Serif, Serif Condensed) -U+2141 uni2141 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.34 (Sans ExtraLight) -U+2142 uni2142 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.34 (Sans ExtraLight) -U+2143 uni2143 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.34 (Sans ExtraLight) -U+2144 uni2144 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.34 (Sans ExtraLight) -U+2145 uni2145 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.22 (Serif, Serif Condensed) -U+2146 uni2146 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.22 (Serif, Serif Condensed) -U+2147 uni2147 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.22 (Serif, Serif Condensed) -U+2148 uni2148 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.22 (Serif, Serif Condensed) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2149 uni2149 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.22 (Serif, Serif Condensed) -U+214b uni214B 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+214e uni214E 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+2150 uni2150 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+2151 uni2151 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+2152 uni2152 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+2153 onethird 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.6 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2154 twothirds 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.6 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2155 uni2155 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.6 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2156 uni2156 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.6 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2157 uni2157 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.6 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2158 uni2158 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.6 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2159 uni2159 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.6 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+215a uni215A 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.6 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+215b oneeighth 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.6 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+215c threeeighths 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.6 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+215d fiveeighths 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.6 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+215e seveneighths 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.6 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+215f uni215F 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.6 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2160 uni2160 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2161 uni2161 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2162 uni2162 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2163 uni2163 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2164 uni2164 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2165 uni2165 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2166 uni2166 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2167 uni2167 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2168 uni2168 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2169 uni2169 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+216a uni216A 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+216b uni216B 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+216c uni216C 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+216d uni216D 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+216e uni216E 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+216f uni216F 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2170 uni2170 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2171 uni2171 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2172 uni2172 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2173 uni2173 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2174 uni2174 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2175 uni2175 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2176 uni2176 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2177 uni2177 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2178 uni2178 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2179 uni2179 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+217a uni217A 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+217b uni217B 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+217c uni217C 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+217d uni217D 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+217e uni217E 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+217f uni217F 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2180 uni2180 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2181 uni2181 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+2182 uni2182 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans ExtraLight) -U+2183 uni2183 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2184 uni2184 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2185 uni2185 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+2189 uni2189 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+2190 arrowleft 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+2191 arrowup 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+2192 arrowright 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+2193 arrowdown 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+2194 arrowboth 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2195 arrowupdn 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2196 uni2196 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2197 uni2197 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2198 uni2198 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2199 uni2199 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+219a uni219A 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+219b uni219B 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+219c uni219C 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+219d uni219D 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+219e uni219E 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+219f uni219F 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21a0 uni21A0 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21a1 uni21A1 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21a2 uni21A2 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21a3 uni21A3 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21a4 uni21A4 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21a5 uni21A5 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21a6 uni21A6 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21a7 uni21A7 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21a8 arrowupdnbse 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21a9 uni21A9 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21aa uni21AA 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21ab uni21AB 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21ac uni21AC 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21ad uni21AD 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21ae uni21AE 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21af uni21AF 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21b0 uni21B0 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21b1 uni21B1 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21b2 uni21B2 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21b3 uni21B3 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21b4 uni21B4 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21b5 carriagereturn 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21b6 uni21B6 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21b7 uni21B7 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21b8 uni21B8 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21b9 uni21B9 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21ba uni21BA 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21bb uni21BB 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21bc uni21BC 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21bd uni21BD 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21be uni21BE 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21bf uni21BF 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21c0 uni21C0 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21c1 uni21C1 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21c2 uni21C2 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21c3 uni21C3 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21c4 uni21C4 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21c5 uni21C5 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21c6 uni21C6 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21c7 uni21C7 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21c8 uni21C8 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21c9 uni21C9 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21ca uni21CA 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21cb uni21CB 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21cc uni21CC 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21cd uni21CD 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21ce uni21CE 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21cf uni21CF 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21d0 arrowdblleft 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21d1 arrowdblup 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21d2 arrowdblright 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21d3 arrowdbldown 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21d4 arrowdblboth 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21d5 uni21D5 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21d6 uni21D6 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21d7 uni21D7 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21d8 uni21D8 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21d9 uni21D9 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21da uni21DA 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21db uni21DB 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21dc uni21DC 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21dd uni21DD 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21de uni21DE 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21df uni21DF 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21e0 uni21E0 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21e1 uni21E1 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21e2 uni21E2 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21e3 uni21E3 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21e4 uni21E4 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21e5 uni21E5 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21e6 uni21E6 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21e7 uni21E7 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21e8 uni21E8 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21e9 uni21E9 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21ea uni21EA 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21eb uni21EB 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21ec uni21EC 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21ed uni21ED 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21ee uni21EE 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21ef uni21EF 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21f0 uni21F0 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21f1 uni21F1 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21f2 uni21F2 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21f3 uni21F3 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21f4 uni21F4 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21f5 uni21F5 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21f6 uni21F6 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21f7 uni21F7 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21f8 uni21F8 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21f9 uni21F9 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21fa uni21FA 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21fb uni21FB 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21fc uni21FC 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21fd uni21FD 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21fe uni21FE 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+21ff uni21FF 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2200 universal 2.1 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2201 uni2201 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2202 partialdiff original -U+2203 existential 2.1 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2204 uni2204 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2205 emptyset 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2206 Delta original -U+2207 gradient 2.1 -U+2208 element 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.6 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2209 notelement 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.6 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+220a uni220A 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.6 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+220b suchthat 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.6 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+220c uni220C 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.6 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+220d uni220D 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.6 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+220e uni220E 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+220f product original -U+2210 uni2210 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2211 summation original -U+2212 minus original -U+2213 uni2213 2.1 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2214 uni2214 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2215 uni2215 original -U+2216 uni2216 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+2217 asteriskmath 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2218 uni2218 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2219 uni2219 original -U+221a radical original -U+221b uni221B 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+221c uni221C 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+221d proportional 2.1 -U+221e infinity original -U+221f orthogonal 2.1 -U+2220 angle 2.3 -U+2221 uni2221 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2222 uni2222 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2223 uni2223 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2224 uni2224 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2225 uni2225 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2226 uni2226 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2227 logicaland 2.1 -U+2228 logicalor 2.1 -U+2229 intersection 2.1 -U+222a union 2.1 -U+222b integral original -U+222c uni222C 2.1 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.10 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+222d uni222D 2.1 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.10 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+222e uni222E 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+222f uni222F 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2230 uni2230 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2231 uni2231 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2232 uni2232 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2233 uni2233 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2234 therefore 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.31 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2235 uni2235 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.31 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2236 uni2236 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.31 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2237 uni2237 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.31 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2238 uni2238 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.6 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2239 uni2239 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.6 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+223a uni223A 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.6 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+223b uni223B 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.6 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+223c similar 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+223d uni223D 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+223e uni223E 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+223f uni223F 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2240 uni2240 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2241 uni2241 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+2242 uni2242 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2243 uni2243 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2244 uni2244 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+2245 congruent 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2246 uni2246 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+2247 uni2247 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+2248 approxequal original -U+2249 uni2249 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+224a uni224A 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+224b uni224B 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+224c uni224C 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+224d uni224D 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+224e uni224E 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+224f uni224F 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+2250 uni2250 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2251 uni2251 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2252 uni2252 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2253 uni2253 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2254 uni2254 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2255 uni2255 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2256 uni2256 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+2257 uni2257 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+2258 uni2258 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+2259 uni2259 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+225a uni225A 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+225b uni225B 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+225c uni225C 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+225d uni225D 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+225e uni225E 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+225f uni225F 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+2260 notequal original -U+2261 equivalence 2.1 -U+2262 uni2262 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+2263 uni2263 2.1 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2264 lessequal original -U+2265 greaterequal original -U+2266 uni2266 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+2267 uni2267 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+2268 uni2268 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+2269 uni2269 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+226a uni226A 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+226b uni226B 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+226c uni226C 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+226d uni226D 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+226e uni226E 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+226f uni226F 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+2270 uni2270 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+2271 uni2271 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+2272 uni2272 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+2273 uni2273 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+2274 uni2274 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+2275 uni2275 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+2276 uni2276 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+2277 uni2277 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+2278 uni2278 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.6 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2279 uni2279 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.6 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+227a uni227A 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.6 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+227b uni227B 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.6 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+227c uni227C 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.6 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+227d uni227D 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.6 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+227e uni227E 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.6 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+227f uni227F 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.6 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2280 uni2280 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.6 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2281 uni2281 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.6 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2282 propersubset 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2283 propersuperset 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2284 notsubset 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2285 uni2285 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2286 reflexsubset 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2287 reflexsuperset 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2288 uni2288 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+2289 uni2289 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+228a uni228A 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.6 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+228b uni228B 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.6 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+228c uni228C 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+228d uni228D 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+228e uni228E 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+228f uni228F 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2290 uni2290 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2291 uni2291 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2292 uni2292 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2293 uni2293 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2294 uni2294 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2295 circleplus 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2296 uni2296 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2297 circlemultiply 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2298 uni2298 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2299 uni2299 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+229a uni229A 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+229b uni229B 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+229c uni229C 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+229d uni229D 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+229e uni229E 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+229f uni229F 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+22a0 uni22A0 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+22a1 uni22A1 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+22a2 uni22A2 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+22a3 uni22A3 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+22a4 uni22A4 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+22a5 perpendicular 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.32 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+22a6 uni22A6 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+22a7 uni22A7 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+22a8 uni22A8 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+22a9 uni22A9 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+22aa uni22AA 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+22ab uni22AB 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+22ac uni22AC 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+22ad uni22AD 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+22ae uni22AE 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+22af uni22AF 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+22b0 uni22B0 2.27 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22b1 uni22B1 2.27 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22b2 uni22B2 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22b3 uni22B3 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22b4 uni22B4 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22b5 uni22B5 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22b6 uni22B6 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22b7 uni22B7 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22b8 uni22B8 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22b9 uni22B9 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22ba uni22BA 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22bb uni22BB 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22bc uni22BC 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22bd uni22BD 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22be uni22BE 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+22bf uni22BF 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+22c0 uni22C0 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22c1 uni22C1 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22c2 uni22C2 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22c3 uni22C3 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22c4 uni22C4 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22c5 dotmath 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+22c6 uni22C6 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+22c7 uni22C7 2.27 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22c8 uni22C8 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22c9 uni22C9 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22ca uni22CA 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22cb uni22CB 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22cc uni22CC 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22cd uni22CD 2.6 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.7 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+22ce uni22CE 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22cf uni22CF 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22d0 uni22D0 2.27 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22d1 uni22D1 2.27 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22d2 uni22D2 2.27 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22d3 uni22D3 2.27 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22d4 uni22D4 2.27 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22d5 uni22D5 2.27 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22d6 uni22D6 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22d7 uni22D7 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22d8 uni22D8 2.6 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+22d9 uni22D9 2.6 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+22da uni22DA 2.6 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.7 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+22db uni22DB 2.6 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.7 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+22dc uni22DC 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+22dd uni22DD 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+22de uni22DE 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+22df uni22DF 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+22e0 uni22E0 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+22e1 uni22E1 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+22e2 uni22E2 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+22e3 uni22E3 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+22e4 uni22E4 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+22e5 uni22E5 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+22e6 uni22E6 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+22e7 uni22E7 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+22e8 uni22E8 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+22e9 uni22E9 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+22ea uni22EA 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22eb uni22EB 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22ec uni22EC 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22ed uni22ED 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22ee uni22EE 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22ef uni22EF 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22f0 uni22F0 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22f1 uni22F1 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22f2 uni22F2 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22f3 uni22F3 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22f4 uni22F4 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22f5 uni22F5 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22f6 uni22F6 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22f7 uni22F7 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22f8 uni22F8 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22f9 uni22F9 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22fa uni22FA 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22fb uni22FB 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22fc uni22FC 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22fd uni22FD 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22fe uni22FE 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+22ff uni22FF 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2300 uni2300 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+2301 uni2301 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+2302 house 1.14 -U+2303 uni2303 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+2304 uni2304 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+2305 uni2305 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+2306 uni2306 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2307 uni2307 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+2308 uni2308 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.11 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+2309 uni2309 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.11 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+230a uni230A 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.11 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+230b uni230B 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.11 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+230c uni230C 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+230d uni230D 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+230e uni230E 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+230f uni230F 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+2310 revlogicalnot 1.14 -U+2311 uni2311 1.15 -U+2312 uni2312 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2313 uni2313 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2314 uni2314 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2315 uni2315 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2318 uni2318 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.10 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+2319 uni2319 1.14 -U+231c uni231C 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+231d uni231D 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+231e uni231E 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+231f uni231F 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+2320 integraltp 2.3 -U+2321 integralbt 2.3 -U+2324 uni2324 2.16 (Sans, Sans Bold, Sans Bold Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique) 2.19 (Sans Condensed Oblique, Sans Oblique) -U+2325 uni2325 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.10 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+2326 uni2326 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+2327 uni2327 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+2328 uni2328 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2329 angleleft 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.11 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) -U+232a angleright 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.11 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) -U+232b uni232B 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+232c uni232C 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+2335 uni2335 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2337 uni2337 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2338 uni2338 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2339 uni2339 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+233a uni233A 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+233b uni233B 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+233c uni233C 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+233d uni233D 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+233e uni233E 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2341 uni2341 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2342 uni2342 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2343 uni2343 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2344 uni2344 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2347 uni2347 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2348 uni2348 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2349 uni2349 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+234b uni234B 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+234c uni234C 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+234d uni234D 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2350 uni2350 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2352 uni2352 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2353 uni2353 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2354 uni2354 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2357 uni2357 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2358 uni2358 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2359 uni2359 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+235a uni235A 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+235b uni235B 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+235c uni235C 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+235e uni235E 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+235f uni235F 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2360 uni2360 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2363 uni2363 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2364 uni2364 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2365 uni2365 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2368 uni2368 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2369 uni2369 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+236b uni236B 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+236c uni236C 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+236d uni236D 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+236e uni236E 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+236f uni236F 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2370 uni2370 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2373 uni2373 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+2374 uni2374 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+2375 uni2375 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+2376 uni2376 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2377 uni2377 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2378 uni2378 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2379 uni2379 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+237a uni237A 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+237d uni237D 1.15 -U+2380 uni2380 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2381 uni2381 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2382 uni2382 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2383 uni2383 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2387 uni2387 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+2388 uni2388 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2389 uni2389 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+238a uni238A 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+238b uni238B 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2394 uni2394 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+2395 uni2395 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+239b uni239B 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+239c uni239C 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+239d uni239D 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+239e uni239E 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+239f uni239F 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+23a0 uni23A0 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+23a1 uni23A1 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+23a2 uni23A2 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+23a3 uni23A3 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+23a4 uni23A4 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+23a5 uni23A5 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+23a6 uni23A6 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+23a7 uni23A7 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+23a8 uni23A8 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+23a9 uni23A9 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+23aa uni23AA 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+23ab uni23AB 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+23ac uni23AC 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+23ad uni23AD 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+23ae uni23AE 2.3 -U+23ce uni23CE 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+23cf uni23CF 2.3 -U+23e3 uni23E3 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+23e5 uni23E5 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+23e8 uni23E8 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2422 uni2422 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2423 uni2423 1.6 -U+2460 uni2460 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2461 uni2461 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2462 uni2462 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2463 uni2463 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2464 uni2464 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2465 uni2465 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2466 uni2466 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2467 uni2467 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2468 uni2468 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2469 uni2469 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2500 SF100000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2501 uni2501 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2502 SF110000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2503 uni2503 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2504 uni2504 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2505 uni2505 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2506 uni2506 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2507 uni2507 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2508 uni2508 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2509 uni2509 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+250a uni250A 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+250b uni250B 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+250c SF010000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+250d uni250D 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+250e uni250E 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+250f uni250F 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2510 SF030000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2511 uni2511 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2512 uni2512 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2513 uni2513 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2514 SF020000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2515 uni2515 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2516 uni2516 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2517 uni2517 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2518 SF040000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2519 uni2519 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+251a uni251A 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+251b uni251B 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+251c SF080000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+251d uni251D 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+251e uni251E 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+251f uni251F 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2520 uni2520 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2521 uni2521 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2522 uni2522 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2523 uni2523 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2524 SF090000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2525 uni2525 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2526 uni2526 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2527 uni2527 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2528 uni2528 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2529 uni2529 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+252a uni252A 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+252b uni252B 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+252c SF060000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+252d uni252D 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+252e uni252E 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+252f uni252F 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2530 uni2530 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2531 uni2531 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2532 uni2532 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2533 uni2533 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2534 SF070000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2535 uni2535 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2536 uni2536 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2537 uni2537 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2538 uni2538 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2539 uni2539 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+253a uni253A 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+253b uni253B 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+253c SF050000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+253d uni253D 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+253e uni253E 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+253f uni253F 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2540 uni2540 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2541 uni2541 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2542 uni2542 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2543 uni2543 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2544 uni2544 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2545 uni2545 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2546 uni2546 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2547 uni2547 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2548 uni2548 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2549 uni2549 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+254a uni254A 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+254b uni254B 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+254c uni254C 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+254d uni254D 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+254e uni254E 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+254f uni254F 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2550 SF430000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2551 SF240000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2552 SF510000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2553 SF520000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2554 SF390000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2555 SF220000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2556 SF210000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2557 SF250000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2558 SF500000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2559 SF490000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+255a SF380000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+255b SF280000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+255c SF270000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+255d SF260000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+255e SF360000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+255f SF370000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2560 SF420000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2561 SF190000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2562 SF200000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2563 SF230000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2564 SF470000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2565 SF480000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2566 SF410000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2567 SF450000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2568 SF460000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2569 SF400000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+256a SF540000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+256b SF530000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+256c SF440000 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+256d uni256D 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+256e uni256E 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+256f uni256F 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2570 uni2570 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2571 uni2571 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2572 uni2572 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2573 uni2573 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2574 uni2574 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2575 uni2575 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2576 uni2576 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2577 uni2577 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2578 uni2578 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2579 uni2579 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+257a uni257A 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+257b uni257B 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+257c uni257C 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+257d uni257D 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+257e uni257E 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+257f uni257F 1.12 (Sans Mono, Sans Mono Oblique) 2.21 (Sans, Sans Condensed, Sans Condensed Oblique, Sans Oblique, Serif, Serif Condensed, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2580 upblock 1.14 -U+2581 uni2581 1.14 -U+2582 uni2582 1.14 -U+2583 uni2583 1.14 -U+2584 dnblock 1.14 -U+2585 uni2585 1.14 -U+2586 uni2586 1.14 -U+2587 uni2587 1.14 -U+2588 block 1.14 -U+2589 uni2589 1.14 -U+258a uni258A 1.14 -U+258b uni258B 1.14 -U+258c lfblock 1.14 -U+258d uni258D 1.14 -U+258e uni258E 1.14 -U+258f uni258F 1.14 -U+2590 rtblock 1.14 -U+2591 ltshade 1.15 -U+2592 shade 1.15 -U+2593 dkshade 1.15 -U+2594 uni2594 1.14 -U+2595 uni2595 1.14 -U+2596 uni2596 1.14 -U+2597 uni2597 1.14 -U+2598 uni2598 1.14 -U+2599 uni2599 1.14 -U+259a uni259A 1.14 -U+259b uni259B 1.14 -U+259c uni259C 1.14 -U+259d uni259D 1.14 -U+259e uni259E 1.14 -U+259f uni259F 1.14 -U+25a0 filledbox 2.3 -U+25a1 H22073 2.3 -U+25a2 uni25A2 2.3 -U+25a3 uni25A3 2.3 -U+25a4 uni25A4 2.3 -U+25a5 uni25A5 2.3 -U+25a6 uni25A6 2.3 -U+25a7 uni25A7 2.3 -U+25a8 uni25A8 2.3 -U+25a9 uni25A9 2.3 -U+25aa H18543 2.3 -U+25ab H18551 2.3 -U+25ac filledrect 2.3 -U+25ad uni25AD 2.3 -U+25ae uni25AE 2.3 -U+25af uni25AF 2.3 -U+25b0 uni25B0 2.3 -U+25b1 uni25B1 2.3 -U+25b2 triagup 2.3 -U+25b3 uni25B3 2.3 -U+25b4 uni25B4 2.3 -U+25b5 uni25B5 2.3 -U+25b6 uni25B6 2.3 -U+25b7 uni25B7 2.3 -U+25b8 uni25B8 2.3 -U+25b9 uni25B9 2.3 -U+25ba triagrt 2.3 -U+25bb uni25BB 2.3 -U+25bc triagdn 2.3 -U+25bd uni25BD 2.3 -U+25be uni25BE 2.3 -U+25bf uni25BF 2.3 -U+25c0 uni25C0 2.3 -U+25c1 uni25C1 2.3 -U+25c2 uni25C2 2.3 -U+25c3 uni25C3 2.3 -U+25c4 triaglf 2.3 -U+25c5 uni25C5 2.3 -U+25c6 uni25C6 2.3 -U+25c7 uni25C7 2.3 -U+25c8 uni25C8 2.3 -U+25c9 uni25C9 2.3 -U+25ca lozenge original -U+25cb circle 2.3 -U+25cc uni25CC 2.3 -U+25cd uni25CD 2.3 -U+25ce uni25CE 2.3 -U+25cf H18533 2.3 -U+25d0 uni25D0 2.3 -U+25d1 uni25D1 2.3 -U+25d2 uni25D2 2.3 -U+25d3 uni25D3 2.3 -U+25d4 uni25D4 2.3 -U+25d5 uni25D5 2.3 -U+25d6 uni25D6 2.3 -U+25d7 uni25D7 2.3 -U+25d8 invbullet 2.2 -U+25d9 invcircle 2.3 -U+25da uni25DA 2.3 -U+25db uni25DB 2.3 -U+25dc uni25DC 2.3 -U+25dd uni25DD 2.3 -U+25de uni25DE 2.3 -U+25df uni25DF 2.3 -U+25e0 uni25E0 2.3 -U+25e1 uni25E1 2.3 -U+25e2 uni25E2 2.3 -U+25e3 uni25E3 2.3 -U+25e4 uni25E4 2.3 -U+25e5 uni25E5 2.3 -U+25e6 openbullet 2.2 -U+25e7 uni25E7 2.3 -U+25e8 uni25E8 2.3 -U+25e9 uni25E9 2.3 -U+25ea uni25EA 2.3 -U+25eb uni25EB 2.3 -U+25ec uni25EC 2.3 -U+25ed uni25ED 2.3 -U+25ee uni25EE 2.3 -U+25ef uni25EF 2.3 -U+25f0 uni25F0 2.3 -U+25f1 uni25F1 2.3 -U+25f2 uni25F2 2.3 -U+25f3 uni25F3 2.3 -U+25f4 uni25F4 2.3 -U+25f5 uni25F5 2.3 -U+25f6 uni25F6 2.3 -U+25f7 uni25F7 2.3 -U+25f8 uni25F8 2.3 -U+25f9 uni25F9 2.3 -U+25fa uni25FA 2.3 -U+25fb uni25FB 2.3 -U+25fc uni25FC 2.3 -U+25fd uni25FD 2.3 -U+25fe uni25FE 2.3 -U+25ff uni25FF 2.3 -U+2600 uni2600 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2601 uni2601 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2602 uni2602 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2603 uni2603 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2604 uni2604 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2605 uni2605 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2606 uni2606 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2607 uni2607 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2608 uni2608 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2609 uni2609 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+260a uni260A 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+260b uni260B 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+260c uni260C 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+260d uni260D 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+260e uni260E 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+260f uni260F 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2610 uni2610 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2611 uni2611 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2612 uni2612 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2613 uni2613 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2614 uni2614 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2615 uni2615 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2616 uni2616 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2617 uni2617 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2618 uni2618 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2619 uni2619 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+261a uni261A 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+261b uni261B 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+261c uni261C 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+261d uni261D 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+261e uni261E 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+261f uni261F 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2620 uni2620 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2621 uni2621 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2622 uni2622 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2623 uni2623 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2624 uni2624 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2625 uni2625 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2626 uni2626 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2627 uni2627 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2628 uni2628 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2629 uni2629 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+262a uni262A 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+262b uni262B 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+262c uni262C 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+262d uni262D 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+262e uni262E 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+262f uni262F 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2630 uni2630 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+2631 uni2631 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+2632 uni2632 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+2633 uni2633 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+2634 uni2634 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+2635 uni2635 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+2636 uni2636 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+2637 uni2637 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+2638 uni2638 1.15 -U+2639 uni2639 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+263a smileface 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+263b invsmileface 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+263c sun 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+263d uni263D 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+263e uni263E 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+263f uni263F 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2640 female 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2641 uni2641 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2642 male 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2643 uni2643 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2644 uni2644 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2645 uni2645 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2646 uni2646 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2647 uni2647 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2648 uni2648 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2649 uni2649 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+264a uni264A 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+264b uni264B 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+264c uni264C 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+264d uni264D 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+264e uni264E 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+264f uni264F 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2650 uni2650 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2651 uni2651 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2652 uni2652 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2653 uni2653 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2654 uni2654 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2655 uni2655 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2656 uni2656 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2657 uni2657 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2658 uni2658 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2659 uni2659 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+265a uni265A 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+265b uni265B 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+265c uni265C 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+265d uni265D 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+265e uni265E 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+265f uni265F 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2660 spade 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2661 uni2661 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2662 uni2662 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2663 club 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2664 uni2664 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2665 heart 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2666 diamond 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2667 uni2667 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2668 uni2668 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2669 uni2669 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+266a musicalnote 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+266b musicalnotedbl 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+266c uni266C 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+266d uni266D 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+266e uni266E 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+266f uni266F 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2670 uni2670 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2671 uni2671 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2672 uni2672 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2673 uni2673 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2674 uni2674 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2675 uni2675 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2676 uni2676 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2677 uni2677 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2678 uni2678 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2679 uni2679 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+267a uni267A 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+267b uni267B 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+267c uni267C 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+267d uni267D 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+267e uni267E 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+267f uni267F 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2680 uni2680 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.7 (Sans Mono, Sans Mono Bold) -U+2681 uni2681 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.7 (Sans Mono, Sans Mono Bold) -U+2682 uni2682 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.7 (Sans Mono, Sans Mono Bold) -U+2683 uni2683 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.7 (Sans Mono, Sans Mono Bold) -U+2684 uni2684 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.7 (Sans Mono, Sans Mono Bold) -U+2685 uni2685 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.4 (Sans ExtraLight) 2.7 (Sans Mono, Sans Mono Bold) -U+2686 uni2686 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2687 uni2687 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2688 uni2688 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2689 uni2689 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+268a uni268A 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+268b uni268B 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+268c uni268C 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+268d uni268D 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+268e uni268E 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+268f uni268F 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+2690 uni2690 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2691 uni2691 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2692 uni2692 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2693 uni2693 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2694 uni2694 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2695 uni2695 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2696 uni2696 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2697 uni2697 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2698 uni2698 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2699 uni2699 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+269a uni269A 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+269b uni269B 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+269c uni269C 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+26a0 uni26A0 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+26a1 uni26A1 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+26a2 uni26A2 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+26a3 uni26A3 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+26a4 uni26A4 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+26a5 uni26A5 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+26a6 uni26A6 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+26a7 uni26A7 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+26a8 uni26A8 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+26a9 uni26A9 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+26aa uni26AA 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+26ab uni26AB 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+26ac uni26AC 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+26ad uni26AD 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+26ae uni26AE 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+26af uni26AF 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+26b0 uni26B0 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+26b1 uni26B1 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+26b2 uni26B2 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+26b3 uni26B3 2.29 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+26b4 uni26B4 2.29 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+26b5 uni26B5 2.29 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+26b6 uni26B6 2.29 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+26b7 uni26B7 2.29 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+26b8 uni26B8 2.29 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+26c0 uni26C0 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+26c1 uni26C1 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+26c2 uni26C2 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+26c3 uni26C3 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+26e2 uni26E2 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2701 uni2701 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2702 uni2702 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2703 uni2703 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2704 uni2704 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2706 uni2706 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2707 uni2707 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2708 uni2708 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2709 uni2709 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+270c uni270C 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+270d uni270D 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+270e uni270E 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+270f uni270F 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2710 uni2710 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2711 uni2711 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2712 uni2712 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2713 uni2713 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2714 uni2714 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2715 uni2715 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2716 uni2716 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2717 uni2717 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2718 uni2718 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2719 uni2719 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+271a uni271A 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+271b uni271B 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+271c uni271C 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+271d uni271D 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+271e uni271E 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+271f uni271F 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2720 uni2720 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2721 uni2721 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2722 uni2722 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2723 uni2723 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2724 uni2724 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2725 uni2725 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2726 uni2726 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2727 uni2727 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2729 uni2729 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+272a uni272A 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+272b uni272B 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+272c uni272C 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+272d uni272D 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+272e uni272E 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+272f uni272F 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2730 uni2730 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2731 uni2731 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2732 uni2732 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2733 uni2733 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2734 uni2734 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2735 uni2735 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2736 uni2736 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2737 uni2737 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2738 uni2738 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2739 uni2739 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+273a uni273A 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+273b uni273B 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+273c uni273C 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+273d uni273D 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+273e uni273E 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+273f uni273F 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2740 uni2740 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2741 uni2741 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2742 uni2742 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2743 uni2743 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2744 uni2744 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2745 uni2745 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2746 uni2746 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2747 uni2747 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2748 uni2748 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2749 uni2749 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+274a uni274A 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+274b uni274B 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+274d uni274D 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+274f uni274F 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2750 uni2750 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2751 uni2751 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2752 uni2752 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2756 uni2756 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2758 uni2758 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2759 uni2759 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+275a uni275A 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+275b uni275B 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+275c uni275C 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+275d uni275D 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+275e uni275E 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2761 uni2761 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2762 uni2762 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2763 uni2763 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2764 uni2764 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2765 uni2765 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2766 uni2766 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2767 uni2767 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2768 uni2768 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2769 uni2769 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+276a uni276A 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+276b uni276B 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+276c uni276C 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+276d uni276D 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+276e uni276E 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+276f uni276F 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2770 uni2770 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2771 uni2771 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2772 uni2772 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2773 uni2773 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2774 uni2774 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2775 uni2775 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Sans Mono, Sans Mono Bold) -U+2776 uni2776 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2777 uni2777 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2778 uni2778 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2779 uni2779 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+277a uni277A 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+277b uni277B 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+277c uni277C 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+277d uni277D 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+277e uni277E 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+277f uni277F 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2780 uni2780 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2781 uni2781 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2782 uni2782 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2783 uni2783 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2784 uni2784 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2785 uni2785 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2786 uni2786 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2787 uni2787 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2788 uni2788 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2789 uni2789 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+278a uni278A 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+278b uni278B 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+278c uni278C 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+278d uni278D 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+278e uni278E 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+278f uni278F 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2790 uni2790 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2791 uni2791 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2792 uni2792 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2793 uni2793 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2794 uni2794 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2798 uni2798 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+2799 uni2799 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+279a uni279A 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+279b uni279B 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+279c uni279C 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+279d uni279D 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+279e uni279E 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+279f uni279F 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+27a0 uni27A0 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+27a1 uni27A1 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+27a2 uni27A2 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+27a3 uni27A3 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+27a4 uni27A4 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+27a5 uni27A5 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+27a6 uni27A6 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+27a7 uni27A7 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+27a8 uni27A8 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+27a9 uni27A9 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+27aa uni27AA 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+27ab uni27AB 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+27ac uni27AC 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+27ad uni27AD 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+27ae uni27AE 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+27af uni27AF 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+27b1 uni27B1 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+27b2 uni27B2 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+27b3 uni27B3 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+27b4 uni27B4 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+27b5 uni27B5 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+27b6 uni27B6 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+27b7 uni27B7 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+27b8 uni27B8 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+27b9 uni27B9 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+27ba uni27BA 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+27bb uni27BB 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+27bc uni27BC 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+27bd uni27BD 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+27be uni27BE 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold) -U+27bf uni27BF 2.7 (Sans Mono Bold) -U+27c2 uni27C2 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+27c5 uni27C5 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+27c6 uni27C6 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+27e0 uni27E0 2.3 -U+27e6 uni27E6 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+27e7 uni27E7 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+27e8 uni27E8 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+27e9 uni27E9 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+27ea uni27EA 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+27eb uni27EB 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+27f0 uni27F0 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+27f1 uni27F1 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+27f2 uni27F2 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+27f3 uni27F3 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+27f4 uni27F4 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+27f5 uni27F5 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+27f6 uni27F6 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+27f7 uni27F7 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+27f8 uni27F8 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+27f9 uni27F9 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+27fa uni27FA 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+27fb uni27FB 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+27fc uni27FC 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+27fd uni27FD 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+27fe uni27FE 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+27ff uni27FF 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2800 uni2800 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2801 uni2801 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2802 uni2802 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2803 uni2803 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2804 uni2804 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2805 uni2805 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2806 uni2806 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2807 uni2807 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2808 uni2808 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2809 uni2809 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+280a uni280A 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+280b uni280B 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+280c uni280C 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+280d uni280D 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+280e uni280E 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+280f uni280F 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2810 uni2810 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2811 uni2811 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2812 uni2812 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2813 uni2813 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2814 uni2814 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2815 uni2815 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2816 uni2816 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2817 uni2817 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2818 uni2818 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2819 uni2819 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+281a uni281A 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+281b uni281B 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+281c uni281C 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+281d uni281D 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+281e uni281E 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+281f uni281F 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2820 uni2820 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2821 uni2821 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2822 uni2822 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2823 uni2823 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2824 uni2824 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2825 uni2825 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2826 uni2826 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2827 uni2827 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2828 uni2828 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2829 uni2829 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+282a uni282A 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+282b uni282B 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+282c uni282C 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+282d uni282D 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+282e uni282E 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+282f uni282F 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2830 uni2830 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2831 uni2831 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2832 uni2832 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2833 uni2833 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2834 uni2834 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2835 uni2835 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2836 uni2836 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2837 uni2837 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2838 uni2838 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2839 uni2839 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+283a uni283A 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+283b uni283B 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+283c uni283C 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+283d uni283D 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+283e uni283E 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+283f uni283F 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2840 uni2840 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2841 uni2841 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2842 uni2842 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2843 uni2843 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2844 uni2844 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2845 uni2845 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2846 uni2846 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2847 uni2847 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2848 uni2848 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2849 uni2849 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+284a uni284A 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+284b uni284B 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+284c uni284C 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+284d uni284D 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+284e uni284E 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+284f uni284F 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2850 uni2850 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2851 uni2851 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2852 uni2852 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2853 uni2853 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2854 uni2854 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2855 uni2855 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2856 uni2856 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2857 uni2857 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2858 uni2858 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2859 uni2859 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+285a uni285A 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+285b uni285B 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+285c uni285C 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+285d uni285D 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+285e uni285E 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+285f uni285F 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2860 uni2860 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2861 uni2861 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2862 uni2862 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2863 uni2863 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2864 uni2864 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2865 uni2865 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2866 uni2866 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2867 uni2867 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2868 uni2868 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2869 uni2869 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+286a uni286A 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+286b uni286B 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+286c uni286C 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+286d uni286D 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+286e uni286E 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+286f uni286F 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2870 uni2870 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2871 uni2871 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2872 uni2872 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2873 uni2873 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2874 uni2874 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2875 uni2875 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2876 uni2876 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2877 uni2877 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2878 uni2878 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2879 uni2879 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+287a uni287A 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+287b uni287B 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+287c uni287C 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+287d uni287D 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+287e uni287E 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+287f uni287F 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2880 uni2880 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2881 uni2881 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2882 uni2882 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2883 uni2883 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2884 uni2884 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2885 uni2885 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2886 uni2886 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2887 uni2887 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2888 uni2888 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2889 uni2889 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+288a uni288A 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+288b uni288B 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+288c uni288C 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+288d uni288D 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+288e uni288E 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+288f uni288F 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2890 uni2890 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2891 uni2891 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2892 uni2892 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2893 uni2893 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2894 uni2894 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2895 uni2895 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2896 uni2896 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2897 uni2897 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2898 uni2898 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2899 uni2899 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+289a uni289A 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+289b uni289B 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+289c uni289C 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+289d uni289D 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+289e uni289E 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+289f uni289F 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28a0 uni28A0 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28a1 uni28A1 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28a2 uni28A2 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28a3 uni28A3 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28a4 uni28A4 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28a5 uni28A5 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28a6 uni28A6 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28a7 uni28A7 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28a8 uni28A8 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28a9 uni28A9 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28aa uni28AA 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28ab uni28AB 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28ac uni28AC 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28ad uni28AD 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28ae uni28AE 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28af uni28AF 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28b0 uni28B0 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28b1 uni28B1 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28b2 uni28B2 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28b3 uni28B3 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28b4 uni28B4 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28b5 uni28B5 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28b6 uni28B6 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28b7 uni28B7 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28b8 uni28B8 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28b9 uni28B9 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28ba uni28BA 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28bb uni28BB 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28bc uni28BC 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28bd uni28BD 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28be uni28BE 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28bf uni28BF 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28c0 uni28C0 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28c1 uni28C1 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28c2 uni28C2 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28c3 uni28C3 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28c4 uni28C4 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28c5 uni28C5 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28c6 uni28C6 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28c7 uni28C7 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28c8 uni28C8 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28c9 uni28C9 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28ca uni28CA 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28cb uni28CB 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28cc uni28CC 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28cd uni28CD 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28ce uni28CE 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28cf uni28CF 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28d0 uni28D0 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28d1 uni28D1 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28d2 uni28D2 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28d3 uni28D3 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28d4 uni28D4 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28d5 uni28D5 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28d6 uni28D6 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28d7 uni28D7 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28d8 uni28D8 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28d9 uni28D9 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28da uni28DA 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28db uni28DB 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28dc uni28DC 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28dd uni28DD 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28de uni28DE 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28df uni28DF 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28e0 uni28E0 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28e1 uni28E1 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28e2 uni28E2 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28e3 uni28E3 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28e4 uni28E4 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28e5 uni28E5 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28e6 uni28E6 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28e7 uni28E7 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28e8 uni28E8 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28e9 uni28E9 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28ea uni28EA 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28eb uni28EB 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28ec uni28EC 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28ed uni28ED 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28ee uni28EE 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28ef uni28EF 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28f0 uni28F0 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28f1 uni28F1 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28f2 uni28F2 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28f3 uni28F3 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28f4 uni28F4 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28f5 uni28F5 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28f6 uni28F6 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28f7 uni28F7 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28f8 uni28F8 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28f9 uni28F9 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28fa uni28FA 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28fb uni28FB 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28fc uni28FC 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28fd uni28FD 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28fe uni28FE 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+28ff uni28FF 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2900 uni2900 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2901 uni2901 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2902 uni2902 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2903 uni2903 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2904 uni2904 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2905 uni2905 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2906 uni2906 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2907 uni2907 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2908 uni2908 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2909 uni2909 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+290a uni290A 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+290b uni290B 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+290c uni290C 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+290d uni290D 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+290e uni290E 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+290f uni290F 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2910 uni2910 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2911 uni2911 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2912 uni2912 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2913 uni2913 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2914 uni2914 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2915 uni2915 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2916 uni2916 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2917 uni2917 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2918 uni2918 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2919 uni2919 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+291a uni291A 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+291b uni291B 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+291c uni291C 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+291d uni291D 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+291e uni291E 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+291f uni291F 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2920 uni2920 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2921 uni2921 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2922 uni2922 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2923 uni2923 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2924 uni2924 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2925 uni2925 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2926 uni2926 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2927 uni2927 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2928 uni2928 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2929 uni2929 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+292a uni292A 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+292b uni292B 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+292c uni292C 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+292d uni292D 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+292e uni292E 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+292f uni292F 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2930 uni2930 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2931 uni2931 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2932 uni2932 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2933 uni2933 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2934 uni2934 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2935 uni2935 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2936 uni2936 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2937 uni2937 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2938 uni2938 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2939 uni2939 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+293a uni293A 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+293b uni293B 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+293c uni293C 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+293d uni293D 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+293e uni293E 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+293f uni293F 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2940 uni2940 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2941 uni2941 2.13 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2942 uni2942 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2943 uni2943 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2944 uni2944 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2945 uni2945 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2946 uni2946 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2947 uni2947 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2948 uni2948 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2949 uni2949 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+294a uni294A 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+294b uni294B 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+294c uni294C 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+294d uni294D 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+294e uni294E 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+294f uni294F 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2950 uni2950 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2951 uni2951 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2952 uni2952 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2953 uni2953 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2954 uni2954 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2955 uni2955 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2956 uni2956 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2957 uni2957 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2958 uni2958 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2959 uni2959 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+295a uni295A 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+295b uni295B 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+295c uni295C 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+295d uni295D 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+295e uni295E 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+295f uni295F 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2960 uni2960 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2961 uni2961 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2962 uni2962 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2963 uni2963 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2964 uni2964 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2965 uni2965 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2966 uni2966 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2967 uni2967 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2968 uni2968 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2969 uni2969 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+296a uni296A 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+296b uni296B 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+296c uni296C 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+296d uni296D 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+296e uni296E 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+296f uni296F 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2970 uni2970 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2971 uni2971 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2972 uni2972 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2973 uni2973 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2974 uni2974 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2975 uni2975 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2976 uni2976 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2977 uni2977 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2978 uni2978 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2979 uni2979 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+297a uni297A 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+297b uni297B 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+297c uni297C 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+297d uni297D 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+297e uni297E 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+297f uni297F 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2983 uni2983 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+2984 uni2984 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+29ce uni29CE 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+29cf uni29CF 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+29d0 uni29D0 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+29d1 uni29D1 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+29d2 uni29D2 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+29d3 uni29D3 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+29d4 uni29D4 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+29d5 uni29D5 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+29eb uni29EB 2.2 -U+29fa uni29FA 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+29fb uni29FB 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+2a00 uni2A00 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a01 uni2A01 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a02 uni2A02 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a0c uni2A0C 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2a0d uni2A0D 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2a0e uni2A0E 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.9 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2a0f uni2A0F 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a10 uni2A10 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a11 uni2A11 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a12 uni2A12 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a13 uni2A13 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a14 uni2A14 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a15 uni2A15 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a16 uni2A16 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a17 uni2A17 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a18 uni2A18 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a19 uni2A19 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a1a uni2A1A 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a1b uni2A1B 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a1c uni2A1C 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a2f uni2A2F 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+2a6a uni2A6A 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+2a6b uni2A6B 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+2a7d uni2A7D 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a7e uni2A7E 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a7f uni2A7F 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a80 uni2A80 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a81 uni2A81 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a82 uni2A82 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a83 uni2A83 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a84 uni2A84 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a85 uni2A85 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a86 uni2A86 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a87 uni2A87 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a88 uni2A88 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a89 uni2A89 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a8a uni2A8A 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a8b uni2A8B 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a8c uni2A8C 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a8d uni2A8D 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a8e uni2A8E 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a8f uni2A8F 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a90 uni2A90 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a91 uni2A91 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a92 uni2A92 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a93 uni2A93 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a94 uni2A94 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a95 uni2A95 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a96 uni2A96 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a97 uni2A97 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a98 uni2A98 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a99 uni2A99 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a9a uni2A9A 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a9b uni2A9B 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a9c uni2A9C 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a9d uni2A9D 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a9e uni2A9E 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2a9f uni2A9F 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2aa0 uni2AA0 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2aae uni2AAE 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2aaf uni2AAF 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2ab0 uni2AB0 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2ab1 uni2AB1 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2ab2 uni2AB2 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2ab3 uni2AB3 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2ab4 uni2AB4 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2ab5 uni2AB5 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2ab6 uni2AB6 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2ab7 uni2AB7 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2ab8 uni2AB8 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2ab9 uni2AB9 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2aba uni2ABA 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2af9 uni2AF9 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2afa uni2AFA 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2b00 uni2B00 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2b01 uni2B01 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2b02 uni2B02 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2b03 uni2B03 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2b04 uni2B04 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2b05 uni2B05 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2b06 uni2B06 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2b07 uni2B07 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2b08 uni2B08 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2b09 uni2B09 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2b0a uni2B0A 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2b0b uni2B0B 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2b0c uni2B0C 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2b0d uni2B0D 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+2b0e uni2B0E 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2b0f uni2B0F 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2b10 uni2B10 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2b11 uni2B11 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2b12 uni2B12 2.3 -U+2b13 uni2B13 2.3 -U+2b14 uni2B14 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+2b15 uni2B15 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+2b16 uni2B16 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+2b17 uni2B17 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+2b18 uni2B18 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+2b19 uni2B19 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+2b1a uni2B1A 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+2b1f uni2B1F 2.29 (Sans, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.30 (Sans Bold) -U+2b20 uni2B20 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2b21 uni2B21 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2b22 uni2B22 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2b23 uni2B23 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2b24 uni2B24 2.29 (Sans, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.30 (Sans Bold) -U+2b53 uni2B53 2.29 (Sans, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.30 (Sans Bold) -U+2b54 uni2B54 2.29 (Sans, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.30 (Sans Bold) -U+2c60 uni2C60 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+2c61 uni2C61 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+2c62 uni2C62 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+2c63 uni2C63 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+2c64 uni2C64 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.27 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+2c65 uni2C65 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+2c66 uni2C66 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+2c67 uni2C67 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2c68 uni2C68 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2c69 uni2C69 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2c6a uni2C6A 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2c6b uni2C6B 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2c6c uni2C6C 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.18 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+2c6d uni2C6D 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.31 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+2c6e uni2C6E 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.27 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+2c6f uni2C6F 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.28 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.31 (Serif Condensed Italic) -U+2c70 uni2C70 2.31 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+2c71 uni2C71 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.31 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+2c72 uni2C72 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.31 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+2c73 uni2C73 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.31 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+2c74 uni2C74 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+2c75 uni2C75 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Sans ExtraLight, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.20 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+2c76 uni2C76 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Sans ExtraLight, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.20 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+2c77 uni2C77 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Sans ExtraLight, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.20 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed) -U+2c79 uni2C79 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.28 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.31 (Serif Condensed Italic) -U+2c7a uni2C7A 2.27 -U+2c7b uni2C7B 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+2c7c uni2C7C 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.28 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.31 (Serif Condensed Italic) -U+2c7d uni2C7D 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.28 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.31 (Serif Condensed Italic) -U+2c7e uni2C7E 2.31 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+2c7f uni2C7F 2.31 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+2d00 uni2D00 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d01 uni2D01 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d02 uni2D02 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d03 uni2D03 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d04 uni2D04 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d05 uni2D05 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d06 uni2D06 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d07 uni2D07 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d08 uni2D08 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d09 uni2D09 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d0a uni2D0A 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d0b uni2D0B 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d0c uni2D0C 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d0d uni2D0D 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d0e uni2D0E 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d0f uni2D0F 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d10 uni2D10 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d11 uni2D11 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d12 uni2D12 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d13 uni2D13 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d14 uni2D14 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d15 uni2D15 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d16 uni2D16 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d17 uni2D17 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d18 uni2D18 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d19 uni2D19 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d1a uni2D1A 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d1b uni2D1B 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d1c uni2D1C 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d1d uni2D1D 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d1e uni2D1E 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d1f uni2D1F 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d20 uni2D20 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d21 uni2D21 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d22 uni2D22 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d23 uni2D23 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d24 uni2D24 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d25 uni2D25 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+2d30 uni2D30 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d31 uni2D31 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d32 uni2D32 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d33 uni2D33 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d34 uni2D34 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d35 uni2D35 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d36 uni2D36 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d37 uni2D37 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d38 uni2D38 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d39 uni2D39 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d3a uni2D3A 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d3b uni2D3B 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d3c uni2D3C 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d3d uni2D3D 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d3e uni2D3E 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d3f uni2D3F 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d40 uni2D40 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d41 uni2D41 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d42 uni2D42 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d43 uni2D43 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d44 uni2D44 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d45 uni2D45 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d46 uni2D46 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d47 uni2D47 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d48 uni2D48 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d49 uni2D49 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d4a uni2D4A 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d4b uni2D4B 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d4c uni2D4C 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d4d uni2D4D 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d4e uni2D4E 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d4f uni2D4F 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d50 uni2D50 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d51 uni2D51 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d52 uni2D52 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d53 uni2D53 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d54 uni2D54 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d55 uni2D55 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d56 uni2D56 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d57 uni2D57 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d58 uni2D58 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d59 uni2D59 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d5a uni2D5A 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d5b uni2D5B 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d5c uni2D5C 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d5d uni2D5D 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d5e uni2D5E 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d5f uni2D5F 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d60 uni2D60 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d61 uni2D61 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d62 uni2D62 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d63 uni2D63 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d64 uni2D64 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d65 uni2D65 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2d6f uni2D6F 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+2e18 uni2E18 2.26 -U+2e1e uni2E1E 2.34 (Sans, Sans Condensed) -U+2e1f uni2E1F 2.34 (Sans Bold, Sans Bold Oblique, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+2e22 uni2E22 2.29 (Sans, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.30 (Sans Bold) 2.31 (Serif Condensed Italic) -U+2e23 uni2E23 2.29 (Sans, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.30 (Sans Bold) 2.31 (Serif Condensed Italic) -U+2e24 uni2E24 2.29 (Sans, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.30 (Sans Bold) 2.31 (Serif Condensed Italic) -U+2e25 uni2E25 2.29 (Sans, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.30 (Sans Bold) 2.31 (Serif Condensed Italic) -U+2e2e uni2E2E 2.26 -U+4dc0 uni4DC0 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dc1 uni4DC1 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dc2 uni4DC2 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dc3 uni4DC3 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dc4 uni4DC4 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dc5 uni4DC5 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dc6 uni4DC6 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dc7 uni4DC7 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dc8 uni4DC8 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dc9 uni4DC9 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dca uni4DCA 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dcb uni4DCB 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dcc uni4DCC 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dcd uni4DCD 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dce uni4DCE 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dcf uni4DCF 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dd0 uni4DD0 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dd1 uni4DD1 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dd2 uni4DD2 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dd3 uni4DD3 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dd4 uni4DD4 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dd5 uni4DD5 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dd6 uni4DD6 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dd7 uni4DD7 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dd8 uni4DD8 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dd9 uni4DD9 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dda uni4DDA 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4ddb uni4DDB 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4ddc uni4DDC 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4ddd uni4DDD 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dde uni4DDE 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4ddf uni4DDF 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4de0 uni4DE0 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4de1 uni4DE1 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4de2 uni4DE2 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4de3 uni4DE3 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4de4 uni4DE4 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4de5 uni4DE5 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4de6 uni4DE6 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4de7 uni4DE7 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4de8 uni4DE8 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4de9 uni4DE9 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dea uni4DEA 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4deb uni4DEB 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dec uni4DEC 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4ded uni4DED 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dee uni4DEE 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4def uni4DEF 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4df0 uni4DF0 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4df1 uni4DF1 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4df2 uni4DF2 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4df3 uni4DF3 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4df4 uni4DF4 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4df5 uni4DF5 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4df6 uni4DF6 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4df7 uni4DF7 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4df8 uni4DF8 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4df9 uni4DF9 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dfa uni4DFA 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dfb uni4DFB 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dfc uni4DFC 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dfd uni4DFD 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dfe uni4DFE 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+4dff uni4DFF 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+a4d0 uniA4D0 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4d1 uniA4D1 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4d2 uniA4D2 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4d3 uniA4D3 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4d4 uniA4D4 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4d5 uniA4D5 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4d6 uniA4D6 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4d7 uniA4D7 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4d8 uniA4D8 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4d9 uniA4D9 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4da uniA4DA 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4db uniA4DB 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4dc uniA4DC 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4dd uniA4DD 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4de uniA4DE 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4df uniA4DF 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4e0 uniA4E0 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4e1 uniA4E1 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4e2 uniA4E2 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4e3 uniA4E3 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4e4 uniA4E4 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4e5 uniA4E5 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4e6 uniA4E6 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4e7 uniA4E7 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4e8 uniA4E8 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4e9 uniA4E9 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4ea uniA4EA 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4eb uniA4EB 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4ec uniA4EC 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4ed uniA4ED 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4ee uniA4EE 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4ef uniA4EF 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4f0 uniA4F0 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4f1 uniA4F1 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4f2 uniA4F2 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4f3 uniA4F3 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4f4 uniA4F4 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4f5 uniA4F5 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4f6 uniA4F6 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4f7 uniA4F7 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4f8 uniA4F8 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4f9 uniA4F9 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4fa uniA4FA 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4fb uniA4FB 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4fc uniA4FC 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4fd uniA4FD 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4fe uniA4FE 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a4ff uniA4FF 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a644 uniA644 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+a645 uniA645 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+a646 uniA646 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+a647 uniA647 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+a64c uniA64C 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+a64d uniA64D 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+a650 uniA650 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+a651 uniA651 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+a654 uniA654 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+a655 uniA655 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+a656 uniA656 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+a657 uniA657 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+a662 uniA662 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a663 uniA663 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a664 uniA664 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a665 uniA665 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a666 uniA666 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a667 uniA667 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a668 uniA668 2.27 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a669 uniA669 2.27 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a66a uniA66A 2.27 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a66b uniA66B 2.27 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a66c uniA66C 2.27 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a66d uniA66D 2.27 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a66e uniA66E 2.27 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a68a uniA68A 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+a68b uniA68B 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+a68c uniA68C 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a68d uniA68D 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a694 uniA694 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a695 uniA695 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+a708 uniA708 2.27 -U+a709 uniA709 2.27 -U+a70a uniA70A 2.27 -U+a70b uniA70B 2.27 -U+a70c uniA70C 2.27 -U+a70d uniA70D 2.27 -U+a70e uniA70E 2.27 -U+a70f uniA70F 2.27 -U+a710 uniA710 2.27 -U+a711 uniA711 2.27 -U+a712 uniA712 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.27 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+a713 uniA713 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.27 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+a714 uniA714 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.27 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+a715 uniA715 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.27 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+a716 uniA716 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.27 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+a71b uniA71B 2.27 -U+a71c uniA71C 2.27 -U+a71d uniA71D 2.27 -U+a71e uniA71E 2.27 -U+a71f uniA71F 2.27 -U+a722 uniA722 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+a723 uniA723 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+a724 uniA724 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+a725 uniA725 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+a726 uniA726 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.30 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a727 uniA727 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.30 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a728 uniA728 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a729 uniA729 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a72a uniA72A 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a72b uniA72B 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a72c uniA72C 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a72d uniA72D 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a72e uniA72E 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a72f uniA72F 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a730 uniA730 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a731 uniA731 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a732 uniA732 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a733 uniA733 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a734 uniA734 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a735 uniA735 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a736 uniA736 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a737 uniA737 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a738 uniA738 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a739 uniA739 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a73a uniA73A 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a73b uniA73B 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a73c uniA73C 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a73d uniA73D 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a73e uniA73E 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a73f uniA73F 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a740 uniA740 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a741 uniA741 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a746 uniA746 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a747 uniA747 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a748 uniA748 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+a749 uniA749 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+a74a uniA74A 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a74b uniA74B 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a74e uniA74E 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a74f uniA74F 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a750 uniA750 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+a751 uniA751 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+a752 uniA752 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+a753 uniA753 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+a756 uniA756 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+a757 uniA757 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+a764 uniA764 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+a765 uniA765 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+a766 uniA766 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+a767 uniA767 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+a768 uniA768 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a769 uniA769 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a77b uniA77B 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a77c uniA77C 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a780 uniA780 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a781 uniA781 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a782 uniA782 2.27 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a783 uniA783 2.27 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a784 uniA784 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a785 uniA785 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a786 uniA786 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a787 uniA787 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a789 uniA789 2.28 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+a78a uniA78A 2.28 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+a78b uniA78B 2.26 -U+a78c uniA78C 2.26 -U+a78d uniA78D 2.31 -U+a78e uniA78E 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) -U+a790 uniA790 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a791 uniA791 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a7a0 uniA7A0 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+a7a1 uniA7A1 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+a7a2 uniA7A2 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+a7a3 uniA7A3 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+a7a4 uniA7A4 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+a7a5 uniA7A5 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+a7a6 uniA7A6 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+a7a7 uniA7A7 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+a7a8 uniA7A8 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+a7a9 uniA7A9 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+a7aa uniA7AA 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a7fa uniA7FA 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a7fb uniA7FB 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a7fc uniA7FC 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a7fd uniA7FD 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a7fe uniA7FE 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+a7ff uniA7FF 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) -U+e000 uniE000 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+e001 uniE001 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+e002 uniE002 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+e003 uniE003 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+e004 uniE004 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+e005 uniE005 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+e006 uniE006 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+e007 uniE007 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+e008 uniE008 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+e009 uniE009 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) -U+e00a uniE00A 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) -U+e00b uniE00B 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) -U+e00c uniE00C 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) -U+e00d uniE00D 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) -U+e00e uniE00E 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) -U+e00f uniE00F 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) -U+e010 uniE010 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) -U+e011 uniE011 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) -U+e012 uniE012 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) -U+e013 uniE013 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) -U+e014 uniE014 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) -U+e015 uniE015 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+e016 uniE016 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+e017 uniE017 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+e018 uniE018 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+e019 uniE019 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+e01a uniE01A 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+e01b uniE01B 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+e01c uniE01C 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+e01d uniE01D 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+ef00 uni02E5.5 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+ef01 uni02E6.5 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+ef02 uni02E7.5 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+ef03 uni02E8.5 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+ef04 uni02E9.5 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+ef05 uni02E5.4 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+ef06 uni02E6.4 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+ef07 uni02E7.4 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+ef08 uni02E8.4 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+ef09 uni02E9.4 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+ef0a uni02E5.3 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+ef0b uni02E6.3 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+ef0c uni02E7.3 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+ef0d uni02E8.3 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+ef0e uni02E9.3 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+ef0f uni02E5.2 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+ef10 uni02E6.2 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+ef11 uni02E7.2 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+ef12 uni02E8.2 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+ef13 uni02E9.2 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+ef14 uni02E5.1 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+ef15 uni02E6.1 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+ef16 uni02E7.1 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+ef17 uni02E8.1 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+ef18 uni02E9.1 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+ef19 stem 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f000 uniF000 2.10 (Sans) 2.11 (Sans Condensed) -U+f001 uniF001 2.10 (Sans) 2.11 (Sans Condensed) -U+f002 uniF002 2.33 (Sans, Sans Condensed) -U+f003 uniF003 2.33 (Sans, Sans Condensed) -U+f208 uniF208 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f20a uniF20A 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f215 uniF215 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f216 uniF216 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f217 uniF217 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f21a uniF21A 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f21b uniF21B 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f25f uniF25F 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f400 uniF400 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f401 uniF401 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f402 uniF402 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f403 uniF403 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f404 uniF404 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f405 uniF405 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f406 uniF406 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f407 uniF407 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f408 uniF408 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f409 uniF409 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f40a uniF40A 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f40b uniF40B 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f40c uniF40C 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f40d uniF40D 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f40e uniF40E 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f40f uniF40F 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f410 uniF410 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f411 uniF411 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f412 uniF412 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f413 uniF413 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f414 uniF414 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f415 uniF415 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f416 uniF416 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f417 uniF417 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f418 uniF418 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f419 uniF419 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f41a uniF41A 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f41b uniF41B 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f41c uniF41C 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f41d uniF41D 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f41e uniF41E 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f41f uniF41F 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f420 uniF420 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f421 uniF421 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f422 uniF422 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f423 uniF423 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f424 uniF424 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f425 uniF425 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) -U+f426 uniF426 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f428 uniF428 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f429 uniF429 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f42a uniF42A 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f42b uniF42B 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f42c uniF42C 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f42d uniF42D 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f42e uniF42E 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f42f uniF42F 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f430 uniF430 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f431 uniF431 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f432 uniF432 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f433 uniF433 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f434 uniF434 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f435 uniF435 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f436 uniF436 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f437 uniF437 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f438 uniF438 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f439 uniF439 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f43a uniF43A 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f43b uniF43B 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f43c uniF43C 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f43d uniF43D 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f43e uniF43E 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f43f uniF43F 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f440 uniF440 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f441 uniF441 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+f5c5 uniF5C5 2.9 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+f6c4 uniF6C4 2.10 (Serif Bold Italic, Serif Italic) 2.11 (Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed) -U+f6c5 uniF6C5 2.5 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.9 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Condensed Oblique, Sans Oblique) 2.18 (Sans ExtraLight) 2.23 (Serif Italic Condensed) -U+f6c6 uniF6C6 2.5 (Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+f6c7 uniF6C7 2.11 (Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+f6c8 uniF6C8 2.11 (Serif Bold Italic, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+f6d1 cyrBreve 2.5 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+f6d4 cyrbreve 2.5 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+fb00 uniFB00 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.8 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+fb01 fi original -U+fb02 fl original -U+fb03 uniFB03 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.8 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+fb04 uniFB04 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.5 (Sans ExtraLight) 2.8 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+fb05 uniFB05 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+fb06 uniFB06 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.8 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+fb13 uniFB13 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb14 uniFB14 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb15 uniFB15 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb16 uniFB16 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb17 uniFB17 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb1d uniFB1D 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb1e uniFB1E 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+fb1f uniFB1F 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb20 uniFB20 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb21 uniFB21 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+fb22 uniFB22 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+fb23 uniFB23 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+fb24 uniFB24 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+fb25 uniFB25 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+fb26 uniFB26 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+fb27 uniFB27 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+fb28 uniFB28 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+fb29 uniFB29 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans ExtraLight, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+fb2a uniFB2A 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb2b uniFB2B 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb2c uniFB2C 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb2d uniFB2D 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb2e uniFB2E 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb2f uniFB2F 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb30 uniFB30 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb31 uniFB31 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb32 uniFB32 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb33 uniFB33 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb34 uniFB34 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb35 uniFB35 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb36 uniFB36 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb37 uniFB37 2.11 (Sans Condensed Oblique, Sans Oblique) 2.33 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+fb38 uniFB38 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb39 uniFB39 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb3a uniFB3A 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb3b uniFB3B 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb3c uniFB3C 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb3d uniFB3D 2.33 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb3e uniFB3E 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb3f uniFB3F 2.33 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb40 uniFB40 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb41 uniFB41 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb42 uniFB42 2.33 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb43 uniFB43 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb44 uniFB44 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb45 uniFB45 2.33 (Sans Bold Oblique, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb46 uniFB46 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb47 uniFB47 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb48 uniFB48 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb49 uniFB49 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb4a uniFB4A 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb4b uniFB4B 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb4c uniFB4C 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb4d uniFB4D 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb4e uniFB4E 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fb4f uniFB4F 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) -U+fb52 uniFB52 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb53 uniFB53 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb54 uniFB54 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb55 uniFB55 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb56 uniFB56 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb57 uniFB57 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb58 uniFB58 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb59 uniFB59 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb5a uniFB5A 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb5b uniFB5B 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb5c uniFB5C 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb5d uniFB5D 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb5e uniFB5E 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb5f uniFB5F 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb60 uniFB60 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb61 uniFB61 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb62 uniFB62 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb63 uniFB63 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb64 uniFB64 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb65 uniFB65 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb66 uniFB66 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb67 uniFB67 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb68 uniFB68 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb69 uniFB69 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb6a uniFB6A 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb6b uniFB6B 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb6c uniFB6C 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb6d uniFB6D 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb6e uniFB6E 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb6f uniFB6F 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb70 uniFB70 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb71 uniFB71 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb72 uniFB72 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb73 uniFB73 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb74 uniFB74 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb75 uniFB75 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb76 uniFB76 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb77 uniFB77 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb78 uniFB78 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb79 uniFB79 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb7a uniFB7A 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb7b uniFB7B 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb7c uniFB7C 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb7d uniFB7D 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb7e uniFB7E 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb7f uniFB7F 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb80 uniFB80 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb81 uniFB81 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb82 uniFB82 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+fb83 uniFB83 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+fb84 uniFB84 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+fb85 uniFB85 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+fb86 uniFB86 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+fb87 uniFB87 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+fb88 uniFB88 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+fb89 uniFB89 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+fb8a uniFB8A 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb8b uniFB8B 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb8c uniFB8C 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb8d uniFB8D 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb8e uniFB8E 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb8f uniFB8F 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb90 uniFB90 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb91 uniFB91 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb92 uniFB92 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb93 uniFB93 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb94 uniFB94 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb95 uniFB95 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb96 uniFB96 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+fb97 uniFB97 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+fb98 uniFB98 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+fb99 uniFB99 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+fb9a uniFB9A 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+fb9b uniFB9B 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+fb9c uniFB9C 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+fb9d uniFB9D 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+fb9e uniFB9E 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fb9f uniFB9F 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fba0 uniFBA0 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+fba1 uniFBA1 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+fba2 uniFBA2 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+fba3 uniFBA3 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+fbaa uniFBAA 2.16 (Sans Mono, Sans Mono Bold) 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+fbab uniFBAB 2.16 (Sans Mono, Sans Mono Bold) 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+fbac uniFBAC 2.16 (Sans Mono, Sans Mono Bold) 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+fbad uniFBAD 2.16 (Sans Mono, Sans Mono Bold) 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+fbd3 uniFBD3 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+fbd4 uniFBD4 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+fbd5 uniFBD5 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+fbd6 uniFBD6 2.31 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+fbd9 uniFBD9 2.7 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+fbda uniFBDA 2.7 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) -U+fbe8 uniFBE8 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fbe9 uniFBE9 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fbfc uniFBFC 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fbfd uniFBFD 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fbfe uniFBFE 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fbff uniFBFF 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe00 uniFE00 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+fe01 uniFE01 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+fe02 uniFE02 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+fe03 uniFE03 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+fe04 uniFE04 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+fe05 uniFE05 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+fe06 uniFE06 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+fe07 uniFE07 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+fe08 uniFE08 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+fe09 uniFE09 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+fe0a uniFE0A 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+fe0b uniFE0B 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+fe0c uniFE0C 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+fe0d uniFE0D 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+fe0e uniFE0E 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+fe0f uniFE0F 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+fe20 uniFE20 2.21 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fe21 uniFE21 2.21 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fe22 uniFE22 2.21 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fe23 uniFE23 2.21 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+fe70 uniFE70 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe71 uniFE71 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe72 uniFE72 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe73 uniFE73 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe74 uniFE74 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe76 uniFE76 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe77 uniFE77 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe78 uniFE78 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe79 uniFE79 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe7a uniFE7A 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe7b uniFE7B 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe7c uniFE7C 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe7d uniFE7D 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe7e uniFE7E 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe7f uniFE7F 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe80 uniFE80 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe81 uniFE81 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe82 uniFE82 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe83 uniFE83 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe84 uniFE84 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe85 uniFE85 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe86 uniFE86 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe87 uniFE87 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe88 uniFE88 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe89 uniFE89 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe8a uniFE8A 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe8b uniFE8B 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe8c uniFE8C 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe8d uniFE8D 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe8e uniFE8E 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe8f uniFE8F 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe90 uniFE90 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe91 uniFE91 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe92 uniFE92 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe93 uniFE93 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe94 uniFE94 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe95 uniFE95 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe96 uniFE96 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe97 uniFE97 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe98 uniFE98 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe99 uniFE99 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe9a uniFE9A 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe9b uniFE9B 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe9c uniFE9C 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe9d uniFE9D 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe9e uniFE9E 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fe9f uniFE9F 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fea0 uniFEA0 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fea1 uniFEA1 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fea2 uniFEA2 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fea3 uniFEA3 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fea4 uniFEA4 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fea5 uniFEA5 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fea6 uniFEA6 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fea7 uniFEA7 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fea8 uniFEA8 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fea9 uniFEA9 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+feaa uniFEAA 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+feab uniFEAB 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+feac uniFEAC 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fead uniFEAD 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+feae uniFEAE 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+feaf uniFEAF 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+feb0 uniFEB0 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+feb1 uniFEB1 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+feb2 uniFEB2 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+feb3 uniFEB3 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+feb4 uniFEB4 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+feb5 uniFEB5 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+feb6 uniFEB6 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+feb7 uniFEB7 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+feb8 uniFEB8 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+feb9 uniFEB9 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+feba uniFEBA 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+febb uniFEBB 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+febc uniFEBC 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+febd uniFEBD 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+febe uniFEBE 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+febf uniFEBF 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fec0 uniFEC0 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fec1 uniFEC1 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fec2 uniFEC2 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fec3 uniFEC3 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fec4 uniFEC4 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fec5 uniFEC5 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fec6 uniFEC6 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fec7 uniFEC7 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fec8 uniFEC8 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fec9 uniFEC9 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+feca uniFECA 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fecb uniFECB 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fecc uniFECC 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fecd uniFECD 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fece uniFECE 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fecf uniFECF 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fed0 uniFED0 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fed1 uniFED1 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fed2 uniFED2 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fed3 uniFED3 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fed4 uniFED4 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fed5 uniFED5 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fed6 uniFED6 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fed7 uniFED7 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fed8 uniFED8 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fed9 uniFED9 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+feda uniFEDA 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fedb uniFEDB 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fedc uniFEDC 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fedd uniFEDD 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fede uniFEDE 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fedf uniFEDF 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fee0 uniFEE0 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fee1 uniFEE1 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fee2 uniFEE2 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fee3 uniFEE3 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fee4 uniFEE4 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fee5 uniFEE5 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fee6 uniFEE6 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fee7 uniFEE7 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fee8 uniFEE8 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fee9 uniFEE9 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+feea uniFEEA 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+feeb uniFEEB 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+feec uniFEEC 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+feed uniFEED 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+feee uniFEEE 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+feef uniFEEF 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fef0 uniFEF0 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fef1 uniFEF1 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fef2 uniFEF2 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fef3 uniFEF3 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fef4 uniFEF4 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fef5 uniFEF5 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fef6 uniFEF6 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fef7 uniFEF7 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fef8 uniFEF8 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fef9 uniFEF9 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fefa uniFEFA 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fefb uniFEFB 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fefc uniFEFC 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+feff uniFEFF 2.4 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold) 2.16 (Sans Mono, Sans Mono Bold) -U+fff9 uniFFF9 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+fffa uniFFFA 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+fffb uniFFFB 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+fffc uniFFFC 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) -U+fffd uniFFFD 1.12 -U+10300 u10300 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+10301 u10301 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+10302 u10302 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+10303 u10303 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+10304 u10304 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+10305 u10305 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+10306 u10306 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+10307 u10307 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+10308 u10308 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+10309 u10309 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1030a u1030A 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1030b u1030B 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1030c u1030C 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1030d u1030D 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1030e u1030E 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1030f u1030F 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+10310 u10310 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+10311 u10311 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+10312 u10312 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+10313 u10313 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+10314 u10314 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+10315 u10315 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+10316 u10316 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+10317 u10317 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+10318 u10318 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+10319 u10319 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1031a u1031A 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1031b u1031B 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1031c u1031C 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1031d u1031D 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1031e u1031E 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+10320 u10320 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+10321 u10321 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+10322 u10322 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+10323 u10323 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d300 u1D300 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d301 u1D301 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d302 u1D302 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d303 u1D303 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d304 u1D304 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d305 u1D305 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d306 u1D306 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d307 u1D307 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d308 u1D308 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d309 u1D309 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d30a u1D30A 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d30b u1D30B 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d30c u1D30C 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d30d u1D30D 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d30e u1D30E 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d30f u1D30F 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d310 u1D310 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d311 u1D311 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d312 u1D312 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d313 u1D313 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d314 u1D314 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d315 u1D315 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d316 u1D316 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d317 u1D317 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d318 u1D318 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d319 u1D319 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d31a u1D31A 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d31b u1D31B 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d31c u1D31C 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d31d u1D31D 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d31e u1D31E 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d31f u1D31F 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d320 u1D320 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d321 u1D321 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d322 u1D322 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d323 u1D323 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d324 u1D324 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d325 u1D325 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d326 u1D326 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d327 u1D327 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d328 u1D328 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d329 u1D329 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d32a u1D32A 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d32b u1D32B 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d32c u1D32C 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d32d u1D32D 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d32e u1D32E 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d32f u1D32F 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d330 u1D330 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d331 u1D331 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d332 u1D332 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d333 u1D333 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d334 u1D334 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d335 u1D335 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d336 u1D336 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d337 u1D337 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d338 u1D338 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d339 u1D339 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d33a u1D33A 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d33b u1D33B 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d33c u1D33C 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d33d u1D33D 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d33e u1D33E 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d33f u1D33F 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d340 u1D340 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d341 u1D341 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d342 u1D342 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d343 u1D343 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d344 u1D344 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d345 u1D345 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d346 u1D346 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d347 u1D347 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d348 u1D348 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d349 u1D349 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d34a u1D34A 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d34b u1D34B 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d34c u1D34C 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d34d u1D34D 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d34e u1D34E 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d34f u1D34F 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d350 u1D350 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d351 u1D351 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d352 u1D352 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d353 u1D353 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d354 u1D354 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d355 u1D355 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d356 u1D356 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1d400 u1D400 2.23 (Serif Bold, Serif Condensed Bold) -U+1d401 u1D401 2.23 (Serif Bold, Serif Condensed Bold) -U+1d402 u1D402 2.23 (Serif Bold, Serif Condensed Bold) -U+1d403 u1D403 2.23 (Serif Bold, Serif Condensed Bold) -U+1d404 u1D404 2.23 (Serif Bold, Serif Condensed Bold) -U+1d405 u1D405 2.23 (Serif Bold, Serif Condensed Bold) -U+1d406 u1D406 2.23 (Serif Bold, Serif Condensed Bold) -U+1d407 u1D407 2.23 (Serif Bold, Serif Condensed Bold) -U+1d408 u1D408 2.23 (Serif Bold, Serif Condensed Bold) -U+1d409 u1D409 2.23 (Serif Bold, Serif Condensed Bold) -U+1d40a u1D40A 2.23 (Serif Bold, Serif Condensed Bold) -U+1d40b u1D40B 2.23 (Serif Bold, Serif Condensed Bold) -U+1d40c u1D40C 2.23 (Serif Bold, Serif Condensed Bold) -U+1d40d u1D40D 2.23 (Serif Bold, Serif Condensed Bold) -U+1d40e u1D40E 2.23 (Serif Bold, Serif Condensed Bold) -U+1d40f u1D40F 2.23 (Serif Bold, Serif Condensed Bold) -U+1d410 u1D410 2.23 (Serif Bold, Serif Condensed Bold) -U+1d411 u1D411 2.23 (Serif Bold, Serif Condensed Bold) -U+1d412 u1D412 2.23 (Serif Bold, Serif Condensed Bold) -U+1d413 u1D413 2.23 (Serif Bold, Serif Condensed Bold) -U+1d414 u1D414 2.23 (Serif Bold, Serif Condensed Bold) -U+1d415 u1D415 2.23 (Serif Bold, Serif Condensed Bold) -U+1d416 u1D416 2.23 (Serif Bold, Serif Condensed Bold) -U+1d417 u1D417 2.23 (Serif Bold, Serif Condensed Bold) -U+1d418 u1D418 2.23 (Serif Bold, Serif Condensed Bold) -U+1d419 u1D419 2.23 (Serif Bold, Serif Condensed Bold) -U+1d41a u1D41A 2.23 (Serif Bold, Serif Condensed Bold) -U+1d41b u1D41B 2.23 (Serif Bold, Serif Condensed Bold) -U+1d41c u1D41C 2.23 (Serif Bold, Serif Condensed Bold) -U+1d41d u1D41D 2.23 (Serif Bold, Serif Condensed Bold) -U+1d41e u1D41E 2.23 (Serif Bold, Serif Condensed Bold) -U+1d41f u1D41F 2.23 (Serif Bold, Serif Condensed Bold) -U+1d420 u1D420 2.23 (Serif Bold, Serif Condensed Bold) -U+1d421 u1D421 2.23 (Serif Bold, Serif Condensed Bold) -U+1d422 u1D422 2.23 (Serif Bold, Serif Condensed Bold) -U+1d423 u1D423 2.23 (Serif Bold, Serif Condensed Bold) -U+1d424 u1D424 2.23 (Serif Bold, Serif Condensed Bold) -U+1d425 u1D425 2.23 (Serif Bold, Serif Condensed Bold) -U+1d426 u1D426 2.23 (Serif Bold, Serif Condensed Bold) -U+1d427 u1D427 2.23 (Serif Bold, Serif Condensed Bold) -U+1d428 u1D428 2.23 (Serif Bold, Serif Condensed Bold) -U+1d429 u1D429 2.23 (Serif Bold, Serif Condensed Bold) -U+1d42a u1D42A 2.23 (Serif Bold, Serif Condensed Bold) -U+1d42b u1D42B 2.23 (Serif Bold, Serif Condensed Bold) -U+1d42c u1D42C 2.23 (Serif Bold, Serif Condensed Bold) -U+1d42d u1D42D 2.23 (Serif Bold, Serif Condensed Bold) -U+1d42e u1D42E 2.23 (Serif Bold, Serif Condensed Bold) -U+1d42f u1D42F 2.23 (Serif Bold, Serif Condensed Bold) -U+1d430 u1D430 2.23 (Serif Bold, Serif Condensed Bold) -U+1d431 u1D431 2.23 (Serif Bold, Serif Condensed Bold) -U+1d432 u1D432 2.23 (Serif Bold, Serif Condensed Bold) -U+1d433 u1D433 2.23 (Serif Bold, Serif Condensed Bold) -U+1d434 u1D434 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d435 u1D435 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d436 u1D436 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d437 u1D437 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d438 u1D438 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d439 u1D439 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d43a u1D43A 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d43b u1D43B 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d43c u1D43C 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d43d u1D43D 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d43e u1D43E 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d43f u1D43F 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d440 u1D440 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d441 u1D441 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d442 u1D442 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d443 u1D443 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d444 u1D444 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d445 u1D445 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d446 u1D446 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d447 u1D447 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d448 u1D448 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d449 u1D449 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d44a u1D44A 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d44b u1D44B 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d44c u1D44C 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d44d u1D44D 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d44e u1D44E 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d44f u1D44F 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d450 u1D450 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d451 u1D451 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d452 u1D452 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d453 u1D453 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d454 u1D454 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d456 u1D456 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d457 u1D457 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d458 u1D458 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d459 u1D459 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d45a u1D45A 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d45b u1D45B 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d45c u1D45C 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d45d u1D45D 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d45e u1D45E 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d45f u1D45F 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d460 u1D460 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d461 u1D461 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d462 u1D462 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d463 u1D463 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d464 u1D464 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d465 u1D465 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d466 u1D466 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d467 u1D467 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d468 u1D468 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d469 u1D469 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d46a u1D46A 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d46b u1D46B 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d46c u1D46C 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d46d u1D46D 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d46e u1D46E 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d46f u1D46F 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d470 u1D470 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d471 u1D471 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d472 u1D472 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d473 u1D473 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d474 u1D474 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d475 u1D475 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d476 u1D476 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d477 u1D477 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d478 u1D478 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d479 u1D479 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d47a u1D47A 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d47b u1D47B 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d47c u1D47C 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d47d u1D47D 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d47e u1D47E 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d47f u1D47F 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d480 u1D480 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d481 u1D481 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d482 u1D482 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d483 u1D483 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d484 u1D484 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d485 u1D485 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d486 u1D486 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d487 u1D487 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d488 u1D488 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d489 u1D489 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d48a u1D48A 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d48b u1D48B 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d48c u1D48C 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d48d u1D48D 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d48e u1D48E 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d48f u1D48F 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d490 u1D490 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d491 u1D491 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d492 u1D492 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d493 u1D493 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d494 u1D494 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d495 u1D495 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d496 u1D496 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d497 u1D497 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d498 u1D498 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d499 u1D499 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d49a u1D49A 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d49b u1D49B 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d538 u1D538 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d539 u1D539 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d53b u1D53B 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d53c u1D53C 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d53d u1D53D 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d53e u1D53E 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d540 u1D540 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d541 u1D541 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d542 u1D542 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d543 u1D543 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d544 u1D544 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d546 u1D546 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d54a u1D54A 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d54b u1D54B 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d54c u1D54C 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d54d u1D54D 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d54e u1D54E 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d54f u1D54F 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d550 u1D550 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d552 u1D552 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d553 u1D553 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d554 u1D554 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d555 u1D555 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d556 u1D556 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d557 u1D557 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d558 u1D558 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d559 u1D559 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d55a u1D55A 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) -U+1d55b u1D55B 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d55c u1D55C 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d55d u1D55D 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d55e u1D55E 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d55f u1D55F 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d560 u1D560 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d561 u1D561 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d562 u1D562 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d563 u1D563 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d564 u1D564 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d565 u1D565 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d566 u1D566 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d567 u1D567 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d568 u1D568 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d569 u1D569 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d56a u1D56A 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d56b u1D56B 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) -U+1d5a0 u1D5A0 2.23 (Sans, Sans Condensed) -U+1d5a1 u1D5A1 2.23 (Sans, Sans Condensed) -U+1d5a2 u1D5A2 2.23 (Sans, Sans Condensed) -U+1d5a3 u1D5A3 2.23 (Sans, Sans Condensed) -U+1d5a4 u1D5A4 2.23 (Sans, Sans Condensed) -U+1d5a5 u1D5A5 2.23 (Sans, Sans Condensed) -U+1d5a6 u1D5A6 2.23 (Sans, Sans Condensed) -U+1d5a7 u1D5A7 2.23 (Sans, Sans Condensed) -U+1d5a8 u1D5A8 2.23 (Sans, Sans Condensed) -U+1d5a9 u1D5A9 2.23 (Sans, Sans Condensed) -U+1d5aa u1D5AA 2.23 (Sans, Sans Condensed) -U+1d5ab u1D5AB 2.23 (Sans, Sans Condensed) -U+1d5ac u1D5AC 2.23 (Sans, Sans Condensed) -U+1d5ad u1D5AD 2.23 (Sans, Sans Condensed) -U+1d5ae u1D5AE 2.23 (Sans, Sans Condensed) -U+1d5af u1D5AF 2.23 (Sans, Sans Condensed) -U+1d5b0 u1D5B0 2.23 (Sans, Sans Condensed) -U+1d5b1 u1D5B1 2.23 (Sans, Sans Condensed) -U+1d5b2 u1D5B2 2.23 (Sans, Sans Condensed) -U+1d5b3 u1D5B3 2.23 (Sans, Sans Condensed) -U+1d5b4 u1D5B4 2.23 (Sans, Sans Condensed) -U+1d5b5 u1D5B5 2.23 (Sans, Sans Condensed) -U+1d5b6 u1D5B6 2.23 (Sans, Sans Condensed) -U+1d5b7 u1D5B7 2.23 (Sans, Sans Condensed) -U+1d5b8 u1D5B8 2.23 (Sans, Sans Condensed) -U+1d5b9 u1D5B9 2.23 (Sans, Sans Condensed) -U+1d5ba u1D5BA 2.23 (Sans, Sans Condensed) -U+1d5bb u1D5BB 2.23 (Sans, Sans Condensed) -U+1d5bc u1D5BC 2.23 (Sans, Sans Condensed) -U+1d5bd u1D5BD 2.23 (Sans, Sans Condensed) -U+1d5be u1D5BE 2.23 (Sans, Sans Condensed) -U+1d5bf u1D5BF 2.23 (Sans, Sans Condensed) -U+1d5c0 u1D5C0 2.23 (Sans, Sans Condensed) -U+1d5c1 u1D5C1 2.23 (Sans, Sans Condensed) -U+1d5c2 u1D5C2 2.23 (Sans, Sans Condensed) -U+1d5c3 u1D5C3 2.23 (Sans, Sans Condensed) -U+1d5c4 u1D5C4 2.23 (Sans, Sans Condensed) -U+1d5c5 u1D5C5 2.23 (Sans, Sans Condensed) -U+1d5c6 u1D5C6 2.23 (Sans, Sans Condensed) -U+1d5c7 u1D5C7 2.23 (Sans, Sans Condensed) -U+1d5c8 u1D5C8 2.23 (Sans, Sans Condensed) -U+1d5c9 u1D5C9 2.23 (Sans, Sans Condensed) -U+1d5ca u1D5CA 2.23 (Sans, Sans Condensed) -U+1d5cb u1D5CB 2.23 (Sans, Sans Condensed) -U+1d5cc u1D5CC 2.23 (Sans, Sans Condensed) -U+1d5cd u1D5CD 2.23 (Sans, Sans Condensed) -U+1d5ce u1D5CE 2.23 (Sans, Sans Condensed) -U+1d5cf u1D5CF 2.23 (Sans, Sans Condensed) -U+1d5d0 u1D5D0 2.23 (Sans, Sans Condensed) -U+1d5d1 u1D5D1 2.23 (Sans, Sans Condensed) -U+1d5d2 u1D5D2 2.23 (Sans, Sans Condensed) -U+1d5d3 u1D5D3 2.23 (Sans, Sans Condensed) -U+1d5d4 u1D5D4 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5d5 u1D5D5 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5d6 u1D5D6 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5d7 u1D5D7 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5d8 u1D5D8 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5d9 u1D5D9 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5da u1D5DA 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5db u1D5DB 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5dc u1D5DC 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5dd u1D5DD 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5de u1D5DE 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5df u1D5DF 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5e0 u1D5E0 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5e1 u1D5E1 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5e2 u1D5E2 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5e3 u1D5E3 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5e4 u1D5E4 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5e5 u1D5E5 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5e6 u1D5E6 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5e7 u1D5E7 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5e8 u1D5E8 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5e9 u1D5E9 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5ea u1D5EA 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5eb u1D5EB 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5ec u1D5EC 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5ed u1D5ED 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5ee u1D5EE 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5ef u1D5EF 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5f0 u1D5F0 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5f1 u1D5F1 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5f2 u1D5F2 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5f3 u1D5F3 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5f4 u1D5F4 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5f5 u1D5F5 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5f6 u1D5F6 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5f7 u1D5F7 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5f8 u1D5F8 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5f9 u1D5F9 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5fa u1D5FA 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5fb u1D5FB 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5fc u1D5FC 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5fd u1D5FD 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5fe u1D5FE 2.23 (Sans Bold, Sans Condensed Bold) -U+1d5ff u1D5FF 2.23 (Sans Bold, Sans Condensed Bold) -U+1d600 u1D600 2.23 (Sans Bold, Sans Condensed Bold) -U+1d601 u1D601 2.23 (Sans Bold, Sans Condensed Bold) -U+1d602 u1D602 2.23 (Sans Bold, Sans Condensed Bold) -U+1d603 u1D603 2.23 (Sans Bold, Sans Condensed Bold) -U+1d604 u1D604 2.23 (Sans Bold, Sans Condensed Bold) -U+1d605 u1D605 2.23 (Sans Bold, Sans Condensed Bold) -U+1d606 u1D606 2.23 (Sans Bold, Sans Condensed Bold) -U+1d607 u1D607 2.23 (Sans Bold, Sans Condensed Bold) -U+1d608 u1D608 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d609 u1D609 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d60a u1D60A 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d60b u1D60B 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d60c u1D60C 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d60d u1D60D 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d60e u1D60E 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d60f u1D60F 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d610 u1D610 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d611 u1D611 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d612 u1D612 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d613 u1D613 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d614 u1D614 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d615 u1D615 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d616 u1D616 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d617 u1D617 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d618 u1D618 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d619 u1D619 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d61a u1D61A 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d61b u1D61B 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d61c u1D61C 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d61d u1D61D 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d61e u1D61E 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d61f u1D61F 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d620 u1D620 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d621 u1D621 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d622 u1D622 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d623 u1D623 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d624 u1D624 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d625 u1D625 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d626 u1D626 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d627 u1D627 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d628 u1D628 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d629 u1D629 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d62a u1D62A 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d62b u1D62B 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d62c u1D62C 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d62d u1D62D 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d62e u1D62E 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d62f u1D62F 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d630 u1D630 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d631 u1D631 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d632 u1D632 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d633 u1D633 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d634 u1D634 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d635 u1D635 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d636 u1D636 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d637 u1D637 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d638 u1D638 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d639 u1D639 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d63a u1D63A 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d63b u1D63B 2.23 (Sans Condensed Oblique, Sans Oblique) -U+1d63c u1D63C 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d63d u1D63D 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d63e u1D63E 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d63f u1D63F 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d640 u1D640 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d641 u1D641 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d642 u1D642 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d643 u1D643 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d644 u1D644 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d645 u1D645 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d646 u1D646 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d647 u1D647 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d648 u1D648 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d649 u1D649 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d64a u1D64A 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d64b u1D64B 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d64c u1D64C 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d64d u1D64D 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d64e u1D64E 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d64f u1D64F 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d650 u1D650 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d651 u1D651 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d652 u1D652 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d653 u1D653 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d654 u1D654 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d655 u1D655 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d656 u1D656 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d657 u1D657 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d658 u1D658 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d659 u1D659 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d65a u1D65A 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d65b u1D65B 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d65c u1D65C 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d65d u1D65D 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d65e u1D65E 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d65f u1D65F 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d660 u1D660 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d661 u1D661 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d662 u1D662 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d663 u1D663 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d664 u1D664 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d665 u1D665 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d666 u1D666 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d667 u1D667 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d668 u1D668 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d669 u1D669 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d66a u1D66A 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d66b u1D66B 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d66c u1D66C 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d66d u1D66D 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d66e u1D66E 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d66f u1D66F 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d670 u1D670 2.23 (Sans Mono) -U+1d671 u1D671 2.23 (Sans Mono) -U+1d672 u1D672 2.23 (Sans Mono) -U+1d673 u1D673 2.23 (Sans Mono) -U+1d674 u1D674 2.23 (Sans Mono) -U+1d675 u1D675 2.23 (Sans Mono) -U+1d676 u1D676 2.23 (Sans Mono) -U+1d677 u1D677 2.23 (Sans Mono) -U+1d678 u1D678 2.23 (Sans Mono) -U+1d679 u1D679 2.23 (Sans Mono) -U+1d67a u1D67A 2.23 (Sans Mono) -U+1d67b u1D67B 2.23 (Sans Mono) -U+1d67c u1D67C 2.23 (Sans Mono) -U+1d67d u1D67D 2.23 (Sans Mono) -U+1d67e u1D67E 2.23 (Sans Mono) -U+1d67f u1D67F 2.23 (Sans Mono) -U+1d680 u1D680 2.23 (Sans Mono) -U+1d681 u1D681 2.23 (Sans Mono) -U+1d682 u1D682 2.23 (Sans Mono) -U+1d683 u1D683 2.23 (Sans Mono) -U+1d684 u1D684 2.23 (Sans Mono) -U+1d685 u1D685 2.23 (Sans Mono) -U+1d686 u1D686 2.23 (Sans Mono) -U+1d687 u1D687 2.23 (Sans Mono) -U+1d688 u1D688 2.23 (Sans Mono) -U+1d689 u1D689 2.23 (Sans Mono) -U+1d68a u1D68A 2.23 (Sans Mono) -U+1d68b u1D68B 2.23 (Sans Mono) -U+1d68c u1D68C 2.23 (Sans Mono) -U+1d68d u1D68D 2.23 (Sans Mono) -U+1d68e u1D68E 2.23 (Sans Mono) -U+1d68f u1D68F 2.23 (Sans Mono) -U+1d690 u1D690 2.23 (Sans Mono) -U+1d691 u1D691 2.23 (Sans Mono) -U+1d692 u1D692 2.23 (Sans Mono) -U+1d693 u1D693 2.23 (Sans Mono) -U+1d694 u1D694 2.23 (Sans Mono) -U+1d695 u1D695 2.23 (Sans Mono) -U+1d696 u1D696 2.23 (Sans Mono) -U+1d697 u1D697 2.23 (Sans Mono) -U+1d698 u1D698 2.23 (Sans Mono) -U+1d699 u1D699 2.23 (Sans Mono) -U+1d69a u1D69A 2.23 (Sans Mono) -U+1d69b u1D69B 2.23 (Sans Mono) -U+1d69c u1D69C 2.23 (Sans Mono) -U+1d69d u1D69D 2.23 (Sans Mono) -U+1d69e u1D69E 2.23 (Sans Mono) -U+1d69f u1D69F 2.23 (Sans Mono) -U+1d6a0 u1D6A0 2.23 (Sans Mono) -U+1d6a1 u1D6A1 2.23 (Sans Mono) -U+1d6a2 u1D6A2 2.23 (Sans Mono) -U+1d6a3 u1D6A3 2.23 (Sans Mono) -U+1d6a4 u1D6A4 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d6a5 u1D6A5 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d6a8 u1D6A8 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6a9 u1D6A9 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6aa u1D6AA 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6ab u1D6AB 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6ac u1D6AC 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6ad u1D6AD 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6ae u1D6AE 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6af u1D6AF 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6b0 u1D6B0 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6b1 u1D6B1 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6b2 u1D6B2 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6b3 u1D6B3 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6b4 u1D6B4 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6b5 u1D6B5 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6b6 u1D6B6 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6b7 u1D6B7 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6b8 u1D6B8 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6b9 u1D6B9 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6ba u1D6BA 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6bb u1D6BB 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6bc u1D6BC 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6bd u1D6BD 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6be u1D6BE 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6bf u1D6BF 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6c0 u1D6C0 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6c1 u1D6C1 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6c2 u1D6C2 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6c3 u1D6C3 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6c4 u1D6C4 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6c5 u1D6C5 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6c6 u1D6C6 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6c7 u1D6C7 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6c8 u1D6C8 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6c9 u1D6C9 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6ca u1D6CA 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6cb u1D6CB 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6cc u1D6CC 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6cd u1D6CD 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6ce u1D6CE 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6cf u1D6CF 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6d0 u1D6D0 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6d1 u1D6D1 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6d2 u1D6D2 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6d3 u1D6D3 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6d4 u1D6D4 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6d5 u1D6D5 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6d6 u1D6D6 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6d7 u1D6D7 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6d8 u1D6D8 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6d9 u1D6D9 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6da u1D6DA 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6db u1D6DB 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6dc u1D6DC 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6dd u1D6DD 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6de u1D6DE 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6df u1D6DF 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6e0 u1D6E0 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6e1 u1D6E1 2.23 (Serif Bold, Serif Condensed Bold) -U+1d6e2 u1D6E2 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d6e3 u1D6E3 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d6e4 u1D6E4 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d6e5 u1D6E5 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d6e6 u1D6E6 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d6e7 u1D6E7 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d6e8 u1D6E8 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d6e9 u1D6E9 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d6ea u1D6EA 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d6eb u1D6EB 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d6ec u1D6EC 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d6ed u1D6ED 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d6ee u1D6EE 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d6ef u1D6EF 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d6f0 u1D6F0 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d6f1 u1D6F1 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d6f2 u1D6F2 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d6f3 u1D6F3 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d6f4 u1D6F4 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d6f5 u1D6F5 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d6f6 u1D6F6 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d6f7 u1D6F7 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d6f8 u1D6F8 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d6f9 u1D6F9 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d6fa u1D6FA 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d6fb u1D6FB 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d6fc u1D6FC 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d6fd u1D6FD 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d6fe u1D6FE 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d6ff u1D6FF 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d700 u1D700 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d701 u1D701 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d702 u1D702 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d703 u1D703 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d704 u1D704 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d705 u1D705 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d706 u1D706 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d707 u1D707 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d708 u1D708 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d709 u1D709 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d70a u1D70A 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d70b u1D70B 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d70c u1D70C 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d70d u1D70D 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d70e u1D70E 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d70f u1D70F 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d710 u1D710 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d711 u1D711 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d712 u1D712 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d713 u1D713 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d714 u1D714 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d715 u1D715 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d716 u1D716 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d717 u1D717 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d718 u1D718 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d719 u1D719 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d71a u1D71A 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d71b u1D71B 2.23 (Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) -U+1d71c u1D71C 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d71d u1D71D 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d71e u1D71E 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d71f u1D71F 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d720 u1D720 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d721 u1D721 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d722 u1D722 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d723 u1D723 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d724 u1D724 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d725 u1D725 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d726 u1D726 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d727 u1D727 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d728 u1D728 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d729 u1D729 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d72a u1D72A 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d72b u1D72B 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d72c u1D72C 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d72d u1D72D 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d72e u1D72E 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d72f u1D72F 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d730 u1D730 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d731 u1D731 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d732 u1D732 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d733 u1D733 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d734 u1D734 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d735 u1D735 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d736 u1D736 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d737 u1D737 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d738 u1D738 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d739 u1D739 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d73a u1D73A 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d73b u1D73B 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d73c u1D73C 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d73d u1D73D 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d73e u1D73E 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d73f u1D73F 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d740 u1D740 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d741 u1D741 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d742 u1D742 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d743 u1D743 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d744 u1D744 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d745 u1D745 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d746 u1D746 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d747 u1D747 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d748 u1D748 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d749 u1D749 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d74a u1D74A 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d74b u1D74B 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d74c u1D74C 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d74d u1D74D 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d74e u1D74E 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d74f u1D74F 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d750 u1D750 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d751 u1D751 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d752 u1D752 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d753 u1D753 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d754 u1D754 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d755 u1D755 2.23 (Serif Bold Italic, Serif Condensed Bold Italic) -U+1d756 u1D756 2.23 (Sans Bold, Sans Condensed Bold) -U+1d757 u1D757 2.23 (Sans Bold, Sans Condensed Bold) -U+1d758 u1D758 2.23 (Sans Bold, Sans Condensed Bold) -U+1d759 u1D759 2.23 (Sans Bold, Sans Condensed Bold) -U+1d75a u1D75A 2.23 (Sans Bold, Sans Condensed Bold) -U+1d75b u1D75B 2.23 (Sans Bold, Sans Condensed Bold) -U+1d75c u1D75C 2.23 (Sans Bold, Sans Condensed Bold) -U+1d75d u1D75D 2.23 (Sans Bold, Sans Condensed Bold) -U+1d75e u1D75E 2.23 (Sans Bold, Sans Condensed Bold) -U+1d75f u1D75F 2.23 (Sans Bold, Sans Condensed Bold) -U+1d760 u1D760 2.23 (Sans Bold, Sans Condensed Bold) -U+1d761 u1D761 2.23 (Sans Bold, Sans Condensed Bold) -U+1d762 u1D762 2.23 (Sans Bold, Sans Condensed Bold) -U+1d763 u1D763 2.23 (Sans Bold, Sans Condensed Bold) -U+1d764 u1D764 2.23 (Sans Bold, Sans Condensed Bold) -U+1d765 u1D765 2.23 (Sans Bold, Sans Condensed Bold) -U+1d766 u1D766 2.23 (Sans Bold, Sans Condensed Bold) -U+1d767 u1D767 2.23 (Sans Bold, Sans Condensed Bold) -U+1d768 u1D768 2.23 (Sans Bold, Sans Condensed Bold) -U+1d769 u1D769 2.23 (Sans Bold, Sans Condensed Bold) -U+1d76a u1D76A 2.23 (Sans Bold, Sans Condensed Bold) -U+1d76b u1D76B 2.23 (Sans Bold, Sans Condensed Bold) -U+1d76c u1D76C 2.23 (Sans Bold, Sans Condensed Bold) -U+1d76d u1D76D 2.23 (Sans Bold, Sans Condensed Bold) -U+1d76e u1D76E 2.23 (Sans Bold, Sans Condensed Bold) -U+1d76f u1D76F 2.23 (Sans Bold, Sans Condensed Bold) -U+1d770 u1D770 2.23 (Sans Bold, Sans Condensed Bold) -U+1d771 u1D771 2.23 (Sans Bold, Sans Condensed Bold) -U+1d772 u1D772 2.23 (Sans Bold, Sans Condensed Bold) -U+1d773 u1D773 2.23 (Sans Bold, Sans Condensed Bold) -U+1d774 u1D774 2.23 (Sans Bold, Sans Condensed Bold) -U+1d775 u1D775 2.23 (Sans Bold, Sans Condensed Bold) -U+1d776 u1D776 2.23 (Sans Bold, Sans Condensed Bold) -U+1d777 u1D777 2.23 (Sans Bold, Sans Condensed Bold) -U+1d778 u1D778 2.23 (Sans Bold, Sans Condensed Bold) -U+1d779 u1D779 2.23 (Sans Bold, Sans Condensed Bold) -U+1d77a u1D77A 2.23 (Sans Bold, Sans Condensed Bold) -U+1d77b u1D77B 2.23 (Sans Bold, Sans Condensed Bold) -U+1d77c u1D77C 2.23 (Sans Bold, Sans Condensed Bold) -U+1d77d u1D77D 2.23 (Sans Bold, Sans Condensed Bold) -U+1d77e u1D77E 2.23 (Sans Bold, Sans Condensed Bold) -U+1d77f u1D77F 2.23 (Sans Bold, Sans Condensed Bold) -U+1d780 u1D780 2.23 (Sans Bold, Sans Condensed Bold) -U+1d781 u1D781 2.23 (Sans Bold, Sans Condensed Bold) -U+1d782 u1D782 2.23 (Sans Bold, Sans Condensed Bold) -U+1d783 u1D783 2.23 (Sans Bold, Sans Condensed Bold) -U+1d784 u1D784 2.23 (Sans Bold, Sans Condensed Bold) -U+1d785 u1D785 2.23 (Sans Bold, Sans Condensed Bold) -U+1d786 u1D786 2.23 (Sans Bold, Sans Condensed Bold) -U+1d787 u1D787 2.23 (Sans Bold, Sans Condensed Bold) -U+1d788 u1D788 2.23 (Sans Bold, Sans Condensed Bold) -U+1d789 u1D789 2.23 (Sans Bold, Sans Condensed Bold) -U+1d78a u1D78A 2.23 (Sans Bold, Sans Condensed Bold) -U+1d78b u1D78B 2.23 (Sans Bold, Sans Condensed Bold) -U+1d78c u1D78C 2.23 (Sans Bold, Sans Condensed Bold) -U+1d78d u1D78D 2.23 (Sans Bold, Sans Condensed Bold) -U+1d78e u1D78E 2.23 (Sans Bold, Sans Condensed Bold) -U+1d78f u1D78F 2.23 (Sans Bold, Sans Condensed Bold) -U+1d790 u1D790 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d791 u1D791 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d792 u1D792 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d793 u1D793 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d794 u1D794 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d795 u1D795 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d796 u1D796 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d797 u1D797 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d798 u1D798 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d799 u1D799 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d79a u1D79A 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d79b u1D79B 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d79c u1D79C 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d79d u1D79D 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d79e u1D79E 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d79f u1D79F 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7a0 u1D7A0 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7a1 u1D7A1 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7a2 u1D7A2 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7a3 u1D7A3 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7a4 u1D7A4 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7a5 u1D7A5 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7a6 u1D7A6 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7a7 u1D7A7 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7a8 u1D7A8 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7a9 u1D7A9 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7aa u1D7AA 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7ab u1D7AB 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7ac u1D7AC 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7ad u1D7AD 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7ae u1D7AE 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7af u1D7AF 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7b0 u1D7B0 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7b1 u1D7B1 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7b2 u1D7B2 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7b3 u1D7B3 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7b4 u1D7B4 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7b5 u1D7B5 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7b6 u1D7B6 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7b7 u1D7B7 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7b8 u1D7B8 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7b9 u1D7B9 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7ba u1D7BA 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7bb u1D7BB 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7bc u1D7BC 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7bd u1D7BD 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7be u1D7BE 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7bf u1D7BF 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7c0 u1D7C0 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7c1 u1D7C1 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7c2 u1D7C2 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7c3 u1D7C3 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7c4 u1D7C4 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7c5 u1D7C5 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7c6 u1D7C6 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7c7 u1D7C7 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7c8 u1D7C8 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7c9 u1D7C9 2.23 (Sans Bold Oblique, Sans Condensed Bold Oblique) -U+1d7ca u1D7CA 2.23 (Serif Bold, Serif Condensed Bold) -U+1d7cb u1D7CB 2.23 (Serif Bold, Serif Condensed Bold) -U+1d7ce u1D7CE 2.23 (Serif Bold, Serif Condensed Bold) -U+1d7cf u1D7CF 2.23 (Serif Bold, Serif Condensed Bold) -U+1d7d0 u1D7D0 2.23 (Serif Bold, Serif Condensed Bold) -U+1d7d1 u1D7D1 2.23 (Serif Bold, Serif Condensed Bold) -U+1d7d2 u1D7D2 2.23 (Serif Bold, Serif Condensed Bold) -U+1d7d3 u1D7D3 2.23 (Serif Bold, Serif Condensed Bold) -U+1d7d4 u1D7D4 2.23 (Serif Bold, Serif Condensed Bold) -U+1d7d5 u1D7D5 2.23 (Serif Bold, Serif Condensed Bold) -U+1d7d6 u1D7D6 2.23 (Serif Bold, Serif Condensed Bold) -U+1d7d7 u1D7D7 2.23 (Serif Bold, Serif Condensed Bold) -U+1d7d8 u1D7D8 2.22 (Serif, Serif Condensed) 2.29 (Sans, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.30 (Sans Bold) -U+1d7d9 u1D7D9 2.22 (Serif, Serif Condensed) 2.29 (Sans, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.30 (Sans Bold) -U+1d7da u1D7DA 2.22 (Serif, Serif Condensed) 2.29 (Sans, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.30 (Sans Bold) -U+1d7db u1D7DB 2.22 (Serif, Serif Condensed) 2.29 (Sans, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.30 (Sans Bold) -U+1d7dc u1D7DC 2.22 (Serif, Serif Condensed) 2.29 (Sans, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.30 (Sans Bold) -U+1d7dd u1D7DD 2.22 (Serif, Serif Condensed) 2.29 (Sans, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.30 (Sans Bold) -U+1d7de u1D7DE 2.22 (Serif, Serif Condensed) 2.29 (Sans, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.30 (Sans Bold) -U+1d7df u1D7DF 2.22 (Serif, Serif Condensed) 2.29 (Sans, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.30 (Sans Bold) -U+1d7e0 u1D7E0 2.22 (Serif, Serif Condensed) 2.29 (Sans, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.30 (Sans Bold) -U+1d7e1 u1D7E1 2.22 (Serif, Serif Condensed) 2.29 (Sans, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.30 (Sans Bold) -U+1d7e2 u1D7E2 2.23 (Sans, Sans Condensed) -U+1d7e3 u1D7E3 2.23 (Sans, Sans Condensed) -U+1d7e4 u1D7E4 2.23 (Sans, Sans Condensed) -U+1d7e5 u1D7E5 2.23 (Sans, Sans Condensed) -U+1d7e6 u1D7E6 2.23 (Sans, Sans Condensed) -U+1d7e7 u1D7E7 2.23 (Sans, Sans Condensed) -U+1d7e8 u1D7E8 2.23 (Sans, Sans Condensed) -U+1d7e9 u1D7E9 2.23 (Sans, Sans Condensed) -U+1d7ea u1D7EA 2.23 (Sans, Sans Condensed) -U+1d7eb u1D7EB 2.23 (Sans, Sans Condensed) -U+1d7ec u1D7EC 2.23 (Sans Bold, Sans Condensed Bold) -U+1d7ed u1D7ED 2.23 (Sans Bold, Sans Condensed Bold) -U+1d7ee u1D7EE 2.23 (Sans Bold, Sans Condensed Bold) -U+1d7ef u1D7EF 2.23 (Sans Bold, Sans Condensed Bold) -U+1d7f0 u1D7F0 2.23 (Sans Bold, Sans Condensed Bold) -U+1d7f1 u1D7F1 2.23 (Sans Bold, Sans Condensed Bold) -U+1d7f2 u1D7F2 2.23 (Sans Bold, Sans Condensed Bold) -U+1d7f3 u1D7F3 2.23 (Sans Bold, Sans Condensed Bold) -U+1d7f4 u1D7F4 2.23 (Sans Bold, Sans Condensed Bold) -U+1d7f5 u1D7F5 2.23 (Sans Bold, Sans Condensed Bold) -U+1d7f6 u1D7F6 2.23 (Sans Mono) -U+1d7f7 u1D7F7 2.23 (Sans Mono) -U+1d7f8 u1D7F8 2.23 (Sans Mono) -U+1d7f9 u1D7F9 2.23 (Sans Mono) -U+1d7fa u1D7FA 2.23 (Sans Mono) -U+1d7fb u1D7FB 2.23 (Sans Mono) -U+1d7fc u1D7FC 2.23 (Sans Mono) -U+1d7fd u1D7FD 2.23 (Sans Mono) -U+1d7fe u1D7FE 2.23 (Sans Mono) -U+1d7ff u1D7FF 2.23 (Sans Mono) -U+1f030 u1F030 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f031 u1F031 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f032 u1F032 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f033 u1F033 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f034 u1F034 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f035 u1F035 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f036 u1F036 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f037 u1F037 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f038 u1F038 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f039 u1F039 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f03a u1F03A 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f03b u1F03B 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f03c u1F03C 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f03d u1F03D 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f03e u1F03E 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f03f u1F03F 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f040 u1F040 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f041 u1F041 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f042 u1F042 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f043 u1F043 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f044 u1F044 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f045 u1F045 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f046 u1F046 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f047 u1F047 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f048 u1F048 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f049 u1F049 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f04a u1F04A 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f04b u1F04B 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f04c u1F04C 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f04d u1F04D 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f04e u1F04E 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f04f u1F04F 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f050 u1F050 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f051 u1F051 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f052 u1F052 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f053 u1F053 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f054 u1F054 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f055 u1F055 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f056 u1F056 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f057 u1F057 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f058 u1F058 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f059 u1F059 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f05a u1F05A 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f05b u1F05B 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f05c u1F05C 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f05d u1F05D 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f05e u1F05E 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f05f u1F05F 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f060 u1F060 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f061 u1F061 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f062 u1F062 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f063 u1F063 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f064 u1F064 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f065 u1F065 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f066 u1F066 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f067 u1F067 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f068 u1F068 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f069 u1F069 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f06a u1F06A 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f06b u1F06B 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f06c u1F06C 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f06d u1F06D 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f06e u1F06E 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f06f u1F06F 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f070 u1F070 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f071 u1F071 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f072 u1F072 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f073 u1F073 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f074 u1F074 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f075 u1F075 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f076 u1F076 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f077 u1F077 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f078 u1F078 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f079 u1F079 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f07a u1F07A 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f07b u1F07B 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f07c u1F07C 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f07d u1F07D 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f07e u1F07E 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f07f u1F07F 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f080 u1F080 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f081 u1F081 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f082 u1F082 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f083 u1F083 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f084 u1F084 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f085 u1F085 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f086 u1F086 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f087 u1F087 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f088 u1F088 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f089 u1F089 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f08a u1F08A 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f08b u1F08B 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f08c u1F08C 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f08d u1F08D 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f08e u1F08E 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f08f u1F08F 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f090 u1F090 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f091 u1F091 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f092 u1F092 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f093 u1F093 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0a0 u1F0A0 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0a1 u1F0A1 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0a2 u1F0A2 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0a3 u1F0A3 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0a4 u1F0A4 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0a5 u1F0A5 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0a6 u1F0A6 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0a7 u1F0A7 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0a8 u1F0A8 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0a9 u1F0A9 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0aa u1F0AA 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0ab u1F0AB 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0ac u1F0AC 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0ad u1F0AD 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0ae u1F0AE 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0b1 u1F0B1 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0b2 u1F0B2 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0b3 u1F0B3 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0b4 u1F0B4 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0b5 u1F0B5 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0b6 u1F0B6 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0b7 u1F0B7 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0b8 u1F0B8 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0b9 u1F0B9 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0ba u1F0BA 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0bb u1F0BB 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0bc u1F0BC 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0bd u1F0BD 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0be u1F0BE 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0c1 u1F0C1 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0c2 u1F0C2 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0c3 u1F0C3 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0c4 u1F0C4 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0c5 u1F0C5 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0c6 u1F0C6 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0c7 u1F0C7 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0c8 u1F0C8 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0c9 u1F0C9 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0ca u1F0CA 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0cb u1F0CB 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0cc u1F0CC 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0cd u1F0CD 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0ce u1F0CE 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0cf u1F0CF 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0d1 u1F0D1 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0d2 u1F0D2 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0d3 u1F0D3 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0d4 u1F0D4 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0d5 u1F0D5 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0d6 u1F0D6 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0d7 u1F0D7 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0d8 u1F0D8 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0d9 u1F0D9 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0da u1F0DA 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0db u1F0DB 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0dc u1F0DC 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0dd u1F0DD 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0de u1F0DE 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f0df u1F0DF 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f42d u1F42D 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f42e u1F42E 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f431 u1F431 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f435 u1F435 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f600 u1F600 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f601 u1F601 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f602 u1F602 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f603 u1F603 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f604 u1F604 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f605 u1F605 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f606 u1F606 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f607 u1F607 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f608 u1F608 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f609 u1F609 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f60a u1F60A 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f60b u1F60B 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f60c u1F60C 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f60d u1F60D 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f60e u1F60E 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f60f u1F60F 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f610 u1F610 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f611 u1F611 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f612 u1F612 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f613 u1F613 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f614 u1F614 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f615 u1F615 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f616 u1F616 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f617 u1F617 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f618 u1F618 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f619 u1F619 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f61a u1F61A 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f61b u1F61B 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f61c u1F61C 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f61d u1F61D 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f61e u1F61E 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f61f u1F61F 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f620 u1F620 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f621 u1F621 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f622 u1F622 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f623 u1F623 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f625 u1F625 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f626 u1F626 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f627 u1F627 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f628 u1F628 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f629 u1F629 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f62a u1F62A 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f62b u1F62B 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f62d u1F62D 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f62e u1F62E 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f62f u1F62F 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f630 u1F630 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f631 u1F631 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f632 u1F632 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f633 u1F633 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f634 u1F634 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f635 u1F635 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f636 u1F636 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f637 u1F637 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f638 u1F638 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f639 u1F639 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f63a u1F63A 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f63b u1F63B 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f63c u1F63C 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f63d u1F63D 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f63e u1F63E 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f63f u1F63F 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) -U+1f640 u1F640 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/unicover.txt b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/unicover.txt deleted file mode 100644 index c86c056..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-2.34/unicover.txt +++ /dev/null @@ -1,226 +0,0 @@ -This is the Unicode coverage file for DejaVu fonts -($Id: unicover.txt 2538 2013-08-25 16:02:56Z moyogo $) - -Control and similar characters are discounted from totals. - - Sans Serif Sans Mono -U+0000 Basic Latin 100% (95/95) 100% (95/95) 100% (95/95) -U+0080 Latin-1 Supplement 100% (96/96) 100% (96/96) 100% (96/96) -U+0100 Latin Extended-A 100% (128/128) 100% (128/128) 100% (128/128) -U+0180 Latin Extended-B 100% (208/208) 100% (208/208) 86% (180/208) -U+0250 IPA Extensions 100% (96/96) 100% (96/96) 100% (96/96) -U+02b0 Spacing Modifier Letters 78% (63/80) 73% (59/80) 62% (50/80) -U+0300 Combining Diacritical Marks 83% (93/112) 61% (69/112) 59% (67/112) -U+0370 Greek and Coptic 100% (134/134) 89% (120/134) 82% (110/134) -U+0400 Cyrillic 100% (256/256) 79% (204/256) 70% (180/256) -U+0500 Cyrillic Supplement 95% (38/40) 25% (10/40) 15% (6/40) -U+0530 Armenian 98% (86/87) 98% (86/87) 98% (86/87) -U+0590 Hebrew 62% (54/87) (0/87) (0/87) -U+0600 Arabic 63% (161/253) (0/253) 39% (99/253) -U+0700 Syriac (0/77) (0/77) (0/77) -U+0750 Arabic Supplement (0/48) (0/48) (0/48) -U+0780 Thaana (0/50) (0/50) (0/50) -U+07c0 NKo 91% (54/59) (0/59) (0/59) -U+0800 Samaritan (0/61) (0/61) (0/61) -U+0840 Mandaic (0/29) (0/29) (0/29) -U+08a0 Arabic Extended-A (0/39) (0/39) (0/39) -U+0900 Devanagari (0/127) (0/127) (0/127) -U+0980 Bengali (0/92) (0/92) (0/92) -U+0a00 Gurmukhi (0/79) (0/79) (0/79) -U+0a80 Gujarati (0/84) (0/84) (0/84) -U+0b00 Oriya (0/90) (0/90) (0/90) -U+0b80 Tamil (0/72) (0/72) (0/72) -U+0c00 Telugu (0/93) (0/93) (0/93) -U+0c80 Kannada (0/86) (0/86) (0/86) -U+0d00 Malayalam (0/98) (0/98) (0/98) -U+0d80 Sinhala (0/80) (0/80) (0/80) -U+0e00 Thai 1% (1/87) (0/87) (0/87) -U+0e80 Lao 97% (65/67) (0/67) 68% (46/67) -U+0f00 Tibetan (0/211) (0/211) (0/211) -U+1000 Myanmar (0/160) (0/160) (0/160) -U+10a0 Georgian 94% (83/88) 94% (83/88) 51% (45/88) -U+1100 Hangul Jamo (0/256) (0/256) (0/256) -U+1200 Ethiopic (0/358) (0/358) (0/358) -U+1380 Ethiopic Supplement (0/26) (0/26) (0/26) -U+13a0 Cherokee (0/85) (0/85) (0/85) -U+1400 Unified Canadian Aboriginal Syllabics 63% (404/640) (0/640) (0/640) -U+1680 Ogham 100% (29/29) (0/29) (0/29) -U+16a0 Runic (0/81) (0/81) (0/81) -U+1700 Tagalog (0/20) (0/20) (0/20) -U+1720 Hanunoo (0/23) (0/23) (0/23) -U+1740 Buhid (0/20) (0/20) (0/20) -U+1760 Tagbanwa (0/18) (0/18) (0/18) -U+1780 Khmer (0/114) (0/114) (0/114) -U+1800 Mongolian (0/156) (0/156) (0/156) -U+18b0 Unified Canadian Aboriginal Syllabics Extended (0/70) (0/70) (0/70) -U+1900 Limbu (0/66) (0/66) (0/66) -U+1950 Tai Le (0/35) (0/35) (0/35) -U+1980 New Tai Lue (0/83) (0/83) (0/83) -U+19e0 Khmer Symbols (0/32) (0/32) (0/32) -U+1a00 Buginese (0/30) (0/30) (0/30) -U+1a20 Tai Tham (0/127) (0/127) (0/127) -U+1b00 Balinese (0/121) (0/121) (0/121) -U+1b80 Sundanese (0/64) (0/64) (0/64) -U+1bc0 Batak (0/56) (0/56) (0/56) -U+1c00 Lepcha (0/74) (0/74) (0/74) -U+1c50 Ol Chiki (0/48) (0/48) (0/48) -U+1cc0 Sundanese Supplement (0/8) (0/8) (0/8) -U+1cd0 Vedic Extensions (0/39) (0/39) (0/39) -U+1d00 Phonetic Extensions 82% (106/128) 89% (115/128) 48% (62/128) -U+1d80 Phonetic Extensions Supplement 59% (38/64) 59% (38/64) 57% (37/64) -U+1dc0 Combining Diacritical Marks Supplement 13% (6/43) 13% (6/43) (0/43) -U+1e00 Latin Extended Additional 98% (252/256) 98% (252/256) 71% (182/256) -U+1f00 Greek Extended 100% (233/233) 100% (233/233) 100% (233/233) -U+2000 General Punctuation 100% (107/107) 81% (87/107) 49% (53/107) -U+2070 Superscripts and Subscripts 100% (42/42) 100% (42/42) 100% (42/42) -U+20a0 Currency Symbols 92% (25/27) 29% (8/27) 88% (24/27) -U+20d0 Combining Diacritical Marks for Symbols 21% (7/33) (0/33) (0/33) -U+2100 Letterlike Symbols 93% (75/80) 42% (34/80) 22% (18/80) -U+2150 Number Forms 94% (55/58) 94% (55/58) 22% (13/58) -U+2190 Arrows 100% (112/112) 100% (112/112) 100% (112/112) -U+2200 Mathematical Operators 100% (256/256) 39% (100/256) 62% (159/256) -U+2300 Miscellaneous Technical 26% (65/244) 14% (35/244) 47% (117/244) -U+2400 Control Pictures 5% (2/39) 2% (1/39) 2% (1/39) -U+2440 Optical Character Recognition (0/11) (0/11) (0/11) -U+2460 Enclosed Alphanumerics 6% (10/160) (0/160) (0/160) -U+2500 Box Drawing 100% (128/128) 100% (128/128) 100% (128/128) -U+2580 Block Elements 100% (32/32) 100% (32/32) 100% (32/32) -U+25a0 Geometric Shapes 100% (96/96) 100% (96/96) 100% (96/96) -U+2600 Miscellaneous Symbols 73% (187/256) 11% (30/256) 58% (149/256) -U+2700 Dingbats 91% (174/191) 0% (1/191) 75% (144/191) -U+27c0 Miscellaneous Mathematical Symbols-A 18% (9/48) 10% (5/48) 16% (8/48) -U+27f0 Supplemental Arrows-A 100% (16/16) 100% (16/16) (0/16) -U+2800 Braille Patterns 100% (256/256) 100% (256/256) (0/256) -U+2900 Supplemental Arrows-B 4% (6/128) 100% (128/128) (0/128) -U+2980 Miscellaneous Mathematical Symbols-B 10% (13/128) 0% (1/128) 2% (3/128) -U+2a00 Supplemental Mathematical Operators 28% (74/256) 2% (6/256) 1% (3/256) -U+2b00 Miscellaneous Symbols and Arrows 40% (35/87) 31% (27/87) 20% (18/87) -U+2c00 Glagolitic (0/94) (0/94) (0/94) -U+2c60 Latin Extended-C 96% (31/32) 84% (27/32) 43% (14/32) -U+2c80 Coptic (0/123) (0/123) (0/123) -U+2d00 Georgian Supplement 95% (38/40) 95% (38/40) (0/40) -U+2d30 Tifinagh 93% (55/59) (0/59) (0/59) -U+2d80 Ethiopic Extended (0/79) (0/79) (0/79) -U+2de0 Cyrillic Extended-A (0/32) (0/32) (0/32) -U+2e00 Supplemental Punctuation 11% (7/60) 11% (7/60) 11% (7/60) -U+2e80 CJK Radicals Supplement (0/115) (0/115) (0/115) -U+2f00 Kangxi Radicals (0/214) (0/214) (0/214) -U+2ff0 Ideographic Description Characters (0/12) (0/12) (0/12) -U+3000 CJK Symbols and Punctuation (0/64) (0/64) (0/64) -U+3040 Hiragana (0/93) (0/93) (0/93) -U+30a0 Katakana (0/96) (0/96) (0/96) -U+3100 Bopomofo (0/41) (0/41) (0/41) -U+3130 Hangul Compatibility Jamo (0/94) (0/94) (0/94) -U+3190 Kanbun (0/16) (0/16) (0/16) -U+31a0 Bopomofo Extended (0/27) (0/27) (0/27) -U+31c0 CJK Strokes (0/36) (0/36) (0/36) -U+31f0 Katakana Phonetic Extensions (0/16) (0/16) (0/16) -U+3200 Enclosed CJK Letters and Months (0/254) (0/254) (0/254) -U+3300 CJK Compatibility (0/256) (0/256) (0/256) -U+3400 CJK Unified Ideographs Extension A (0/0) (0/0) (0/0) -U+4dc0 Yijing Hexagram Symbols 100% (64/64) (0/64) (0/64) -U+4e00 CJK Unified Ideographs (0/0) (0/0) (0/0) -U+a000 Yi Syllables (0/1165) (0/1165) (0/1165) -U+a490 Yi Radicals (0/55) (0/55) (0/55) -U+a4d0 Lisu 100% (48/48) (0/48) (0/48) -U+a500 Vai (0/300) (0/300) (0/300) -U+a640 Cyrillic Extended-B 34% (31/89) 11% (10/89) (0/89) -U+a6a0 Bamum (0/88) (0/88) (0/88) -U+a700 Modifier Tone Letters 62% (20/32) 62% (20/32) 62% (20/32) -U+a720 Latin Extended-D 55% (75/134) 43% (58/134) 11% (15/134) -U+a800 Syloti Nagri (0/44) (0/44) (0/44) -U+a830 Common Indic Number Forms (0/10) (0/10) (0/10) -U+a840 Phags-pa (0/56) (0/56) (0/56) -U+a880 Saurashtra (0/81) (0/81) (0/81) -U+a8e0 Devanagari Extended (0/28) (0/28) (0/28) -U+a900 Kayah Li (0/48) (0/48) (0/48) -U+a930 Rejang (0/37) (0/37) (0/37) -U+a960 Hangul Jamo Extended-A (0/29) (0/29) (0/29) -U+a980 Javanese (0/91) (0/91) (0/91) -U+aa00 Cham (0/83) (0/83) (0/83) -U+aa60 Myanmar Extended-A (0/28) (0/28) (0/28) -U+aa80 Tai Viet (0/72) (0/72) (0/72) -U+aae0 Meetei Mayek Extensions (0/23) (0/23) (0/23) -U+ab00 Ethiopic Extended-A (0/32) (0/32) (0/32) -U+abc0 Meetei Mayek (0/56) (0/56) (0/56) -U+ac00 Hangul Syllables (0/0) (0/0) (0/0) -U+d7b0 Hangul Jamo Extended-B (0/72) (0/72) (0/72) -U+d800 High Surrogates (0/0) (0/0) (0/0) -U+db80 High Private Use Surrogates (0/0) (0/0) (0/0) -U+dc00 Low Surrogates (0/0) (0/0) (0/0) -U+e000 Private Use Area (0/0) (0/0) (0/0) -U+f900 CJK Compatibility Ideographs (0/472) (0/472) (0/472) -U+fb00 Alphabetic Presentation Forms 100% (58/58) 12% (7/58) 3% (2/58) -U+fb50 Arabic Presentation Forms-A 16% (98/611) (0/611) 11% (72/611) -U+fe00 Variation Selectors 100% (16/16) 100% (16/16) (0/16) -U+fe10 Vertical Forms (0/10) (0/10) (0/10) -U+fe20 Combining Half Marks 57% (4/7) (0/7) (0/7) -U+fe30 CJK Compatibility Forms (0/32) (0/32) (0/32) -U+fe50 Small Form Variants (0/26) (0/26) (0/26) -U+fe70 Arabic Presentation Forms-B 100% (141/141) (0/141) 100% (141/141) -U+ff00 Halfwidth and Fullwidth Forms (0/225) (0/225) (0/225) -U+fff0 Specials 100% (5/5) 100% (5/5) 100% (5/5) -U+10000 Linear B Syllabary (0/88) (0/88) (0/88) -U+10080 Linear B Ideograms (0/123) (0/123) (0/123) -U+10100 Aegean Numbers (0/57) (0/57) (0/57) -U+10140 Ancient Greek Numbers (0/75) (0/75) (0/75) -U+10190 Ancient Symbols (0/12) (0/12) (0/12) -U+101d0 Phaistos Disc (0/46) (0/46) (0/46) -U+10280 Lycian (0/29) (0/29) (0/29) -U+102a0 Carian (0/49) (0/49) (0/49) -U+10300 Old Italic 100% (35/35) (0/35) (0/35) -U+10330 Gothic (0/27) (0/27) (0/27) -U+10380 Ugaritic (0/31) (0/31) (0/31) -U+103a0 Old Persian (0/50) (0/50) (0/50) -U+10400 Deseret (0/80) (0/80) (0/80) -U+10450 Shavian (0/48) (0/48) (0/48) -U+10480 Osmanya (0/40) (0/40) (0/40) -U+10800 Cypriot Syllabary (0/55) (0/55) (0/55) -U+10840 Imperial Aramaic (0/31) (0/31) (0/31) -U+10900 Phoenician (0/29) (0/29) (0/29) -U+10920 Lydian (0/27) (0/27) (0/27) -U+10980 Meroitic Hieroglyphs (0/32) (0/32) (0/32) -U+109a0 Meroitic Cursive (0/26) (0/26) (0/26) -U+10a00 Kharoshthi (0/65) (0/65) (0/65) -U+10a60 Old South Arabian (0/32) (0/32) (0/32) -U+10b00 Avestan (0/61) (0/61) (0/61) -U+10b40 Inscriptional Parthian (0/30) (0/30) (0/30) -U+10b60 Inscriptional Pahlavi (0/27) (0/27) (0/27) -U+10c00 Old Turkic (0/73) (0/73) (0/73) -U+10e60 Rumi Numeral Symbols (0/31) (0/31) (0/31) -U+11000 Brahmi (0/108) (0/108) (0/108) -U+11080 Kaithi (0/66) (0/66) (0/66) -U+110d0 Sora Sompeng (0/35) (0/35) (0/35) -U+11100 Chakma (0/67) (0/67) (0/67) -U+11180 Sharada (0/83) (0/83) (0/83) -U+11680 Takri (0/66) (0/66) (0/66) -U+12000 Cuneiform (0/879) (0/879) (0/879) -U+12400 Cuneiform Numbers and Punctuation (0/103) (0/103) (0/103) -U+13000 Egyptian Hieroglyphs (0/1071) (0/1071) (0/1071) -U+16800 Bamum Supplement (0/569) (0/569) (0/569) -U+16f00 Miao (0/133) (0/133) (0/133) -U+1b000 Kana Supplement (0/2) (0/2) (0/2) -U+1d000 Byzantine Musical Symbols (0/246) (0/246) (0/246) -U+1d100 Musical Symbols (0/220) (0/220) (0/220) -U+1d200 Ancient Greek Musical Notation (0/70) (0/70) (0/70) -U+1d300 Tai Xuan Jing Symbols 100% (87/87) (0/87) (0/87) -U+1d360 Counting Rod Numerals (0/18) (0/18) (0/18) -U+1d400 Mathematical Alphanumeric Symbols 11% (117/996) 5% (55/996) 6% (63/996) -U+1ee00 Arabic Mathematical Alphabetic Symbols (0/143) (0/143) (0/143) -U+1f000 Mahjong Tiles (0/44) (0/44) (0/44) -U+1f030 Domino Tiles 100% (100/100) (0/100) (0/100) -U+1f0a0 Playing Cards 100% (59/59) (0/59) (0/59) -U+1f100 Enclosed Alphanumeric Supplement (0/171) (0/171) (0/171) -U+1f200 Enclosed Ideographic Supplement (0/57) (0/57) (0/57) -U+1f300 Miscellaneous Symbols And Pictographs 0% (4/533) (0/533) (0/533) -U+1f600 Emoticons 82% (63/76) (0/76) (0/76) -U+1f680 Transport And Map Symbols (0/70) (0/70) (0/70) -U+1f700 Alchemical Symbols (0/116) (0/116) (0/116) -U+20000 CJK Unified Ideographs Extension B (0/0) (0/0) (0/0) -U+2a700 CJK Unified Ideographs Extension C (0/0) (0/0) (0/0) -U+2b740 CJK Unified Ideographs Extension D (0/0) (0/0) (0/0) -U+2f800 CJK Compatibility Ideographs Supplement (0/542) (0/542) (0/542) -U+e0000 Tags (0/98) (0/98) (0/98) -U+e0100 Variation Selectors Supplement (0/240) (0/240) (0/240) -U+f0000 Supplementary Private Use Area-A (0/0) (0/0) (0/0) -U+100000 Supplementary Private Use Area-B (0/0) (0/0) (0/0) diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavusans.ctg.z b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavusans.ctg.z deleted file mode 100644 index df25b64..0000000 Binary files a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavusans.ctg.z and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavusans.php b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavusans.php deleted file mode 100644 index 72147be..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavusans.php +++ /dev/null @@ -1,16 +0,0 @@ -32,'FontBBox'=>'[-1021 -415 1681 1167]','ItalicAngle'=>0,'Ascent'=>928,'Descent'=>-236,'Leading'=>0,'CapHeight'=>729,'XHeight'=>547,'StemV'=>34,'StemH'=>15,'AvgWidth'=>507,'MaxWidth'=>1735,'MissingWidth'=>600); -$cbbox=array(0=>array(50,-177,550,705),33=>array(151,0,250,729),34=>array(96,458,364,729),35=>array(77,0,761,718),36=>array(83,-147,553,760),37=>array(55,-14,895,742),38=>array(63,-14,749,742),39=>array(96,458,179,729),40=>array(86,-132,310,759),41=>array(80,-132,304,759),42=>array(30,286,470,742),43=>array(106,0,732,627),44=>array(77,-116,220,124),45=>array(49,234,312,314),46=>array(107,0,210,124),47=>array(0,-93,337,729),48=>array(66,-14,570,742),49=>array(110,0,544,729),50=>array(73,0,536,742),51=>array(76,-14,556,742),52=>array(49,0,580,729),53=>array(77,-14,549,729),54=>array(70,-14,573,742),55=>array(82,0,551,729),56=>array(68,-14,568,742),57=>array(63,-14,566,742),58=>array(117,0,220,517),59=>array(77,-116,220,517),60=>array(106,46,732,581),61=>array(106,172,732,454),62=>array(106,46,732,581),63=>array(72,0,461,742),64=>array(66,-174,930,704),65=>array(8,0,676,729),66=>array(98,0,615,729),67=>array(56,-14,644,742),68=>array(98,0,711,729),69=>array(98,0,568,729),70=>array(98,0,517,729),71=>array(56,-14,693,742),72=>array(98,0,654,729),73=>array(98,0,197,729),74=>array(-52,-200,197,729),75=>array(98,0,677,729),76=>array(98,0,552,729),77=>array(98,0,765,729),78=>array(98,0,650,729),79=>array(56,-14,731,742),80=>array(98,0,569,729),81=>array(56,-129,731,742),82=>array(98,0,666,729),83=>array(66,-14,579,742),84=>array(-3,0,614,729),85=>array(87,-14,645,729),86=>array(8,0,676,729),87=>array(33,0,956,729),88=>array(30,0,654,729),89=>array(-2,0,613,729),90=>array(45,0,640,729),91=>array(86,-132,293,760),92=>array(0,-93,337,729),93=>array(97,-132,304,760),94=>array(106,457,732,729),95=>array(-10,-236,510,-166),96=>array(83,617,317,800),97=>array(60,-14,522,560),98=>array(91,-14,580,760),99=>array(55,-14,488,560),100=>array(55,-14,544,760),101=>array(55,-14,562,560),102=>array(23,0,371,760),103=>array(55,-208,544,560),104=>array(91,0,549,760),105=>array(94,0,184,760),106=>array(-18,-208,184,760),107=>array(91,0,576,760),108=>array(94,0,184,760),109=>array(91,0,889,560),110=>array(91,0,549,560),111=>array(55,-14,557,560),112=>array(91,-208,580,560),113=>array(55,-208,544,560),114=>array(91,0,411,560),115=>array(54,-14,472,560),116=>array(27,0,368,702),117=>array(85,-14,543,560),118=>array(30,0,562,547),119=>array(42,0,776,547),120=>array(29,0,559,547),121=>array(30,-208,562,547),122=>array(43,0,482,547),123=>array(125,-163,511,760),124=>array(127,-236,210,764),125=>array(125,-163,511,760),126=>array(106,228,732,399),161=>array(151,0,250,729),162=>array(84,-153,517,699),163=>array(63,0,548,742),164=>array(46,40,592,587),165=>array(40,0,595,729),166=>array(127,-171,210,699),167=>array(45,-95,454,742),168=>array(105,659,395,758),169=>array(138,0,862,725),170=>array(56,229,404,742),171=>array(77,69,518,517),172=>array(106,140,732,421),173=>array(49,234,312,314),174=>array(138,0,862,725),175=>array(104,673,396,745),176=>array(95,432,405,742),177=>array(106,0,732,627),178=>array(46,326,338,742),179=>array(48,319,350,742),180=>array(181,616,415,800),181=>array(85,-208,612,547),182=>array(77,-96,528,729),183=>array(107,285,210,409),184=>array(142,-193,344,0),185=>array(67,326,346,734),186=>array(47,229,424,742),187=>array(94,69,535,517),188=>array(67,-14,937,742),189=>array(67,-14,906,742),190=>array(48,-14,937,742),191=>array(70,-14,459,729),192=>array(8,0,676,927),193=>array(8,0,676,927),194=>array(8,0,676,928),195=>array(8,0,676,921),196=>array(8,0,676,913),197=>array(8,0,676,928),198=>array(4,0,910,729),199=>array(56,-193,644,742),200=>array(98,0,568,927),201=>array(98,0,568,927),202=>array(98,0,568,928),203=>array(98,0,568,913),204=>array(29,0,216,927),205=>array(79,0,265,927),206=>array(-1,0,297,928),207=>array(3,0,293,913),208=>array(5,0,716,729),209=>array(98,0,650,921),210=>array(56,-14,731,927),211=>array(56,-14,731,927),212=>array(56,-14,731,928),213=>array(56,-14,731,921),214=>array(56,-14,731,913),215=>array(137,31,701,596),216=>array(50,-34,737,761),217=>array(87,-14,645,927),218=>array(87,-14,645,927),219=>array(87,-14,645,928),220=>array(87,-14,645,913),221=>array(-2,0,613,927),222=>array(98,0,569,729),223=>array(91,-14,584,760),224=>array(60,-14,522,800),225=>array(60,-14,522,800),226=>array(60,-14,522,800),227=>array(60,-14,522,777),228=>array(60,-14,522,758),229=>array(60,-14,522,878),230=>array(60,-14,929,560),231=>array(55,-193,488,560),232=>array(55,-14,562,800),233=>array(55,-14,562,800),234=>array(55,-14,562,800),235=>array(55,-14,562,758),236=>array(-28,0,206,800),237=>array(70,0,304,800),238=>array(-17,0,295,800),239=>array(-6,0,284,758),240=>array(55,-14,557,760),241=>array(91,0,549,777),242=>array(55,-14,557,800),243=>array(55,-14,557,800),244=>array(55,-14,557,800),245=>array(55,-14,557,777),246=>array(55,-14,557,758),247=>array(106,73,732,554),248=>array(35,-46,576,592),249=>array(85,-14,543,800),250=>array(85,-14,543,800),251=>array(85,-14,543,800),252=>array(85,-14,543,758),253=>array(30,-208,562,800),254=>array(91,-208,580,760),255=>array(30,-208,562,758),256=>array(8,0,676,899),257=>array(60,-14,522,745),258=>array(8,0,676,946),259=>array(60,-14,522,765),260=>array(8,-193,706,729),261=>array(60,-193,563,560),262=>array(56,-14,644,927),263=>array(55,-14,488,800),264=>array(56,-14,644,928),265=>array(55,-14,488,800),266=>array(56,-14,644,914),267=>array(55,-14,488,760),268=>array(56,-14,644,928),269=>array(55,-14,488,800),270=>array(98,0,711,928),271=>array(55,-14,732,760),272=>array(5,0,716,729),273=>array(55,-14,619,760),274=>array(98,0,568,900),275=>array(55,-14,562,745),276=>array(98,0,568,928),277=>array(55,-14,562,785),278=>array(98,0,568,914),279=>array(55,-14,562,760),280=>array(98,-193,569,729),281=>array(55,-193,562,560),282=>array(98,0,568,925),283=>array(55,-14,562,797),284=>array(56,-14,693,928),285=>array(55,-208,544,800),286=>array(56,-14,693,928),287=>array(55,-208,544,785),288=>array(56,-14,693,914),289=>array(55,-208,544,760),290=>array(56,-250,693,742),291=>array(55,-208,544,775),292=>array(98,0,654,928),293=>array(-13,0,549,928),294=>array(98,0,818,729),295=>array(59,0,578,760),296=>array(-14,0,309,921),297=>array(-22,0,300,777),298=>array(1,0,293,899),299=>array(-7,0,285,745),300=>array(-5,0,300,928),301=>array(-14,0,292,785),302=>array(86,-193,268,729),303=>array(73,-193,255,760),304=>array(98,0,198,914),305=>array(94,0,184,560),306=>array(98,-200,492,729),307=>array(94,-208,461,760),308=>array(-52,-200,296,928),309=>array(-18,-208,295,800),310=>array(98,-235,677,729),311=>array(91,-235,576,760),312=>array(91,0,576,547),313=>array(98,0,552,928),314=>array(94,0,286,928),315=>array(98,-235,552,729),316=>array(66,-235,209,760),317=>array(98,0,552,729),318=>array(94,0,375,760),319=>array(98,0,552,729),320=>array(94,0,314,760),321=>array(-7,0,557,729),322=>array(1,0,285,760),323=>array(98,0,650,928),324=>array(91,0,549,803),325=>array(98,-235,650,729),326=>array(91,-235,549,560),327=>array(98,0,650,921),328=>array(91,0,549,800),329=>array(100,0,715,729),330=>array(98,-208,637,742),331=>array(91,-208,549,560),332=>array(56,-14,731,899),333=>array(55,-14,557,745),334=>array(56,-14,731,928),335=>array(55,-14,557,785),336=>array(56,-14,731,927),337=>array(55,-14,557,800),338=>array(56,0,1006,729),339=>array(55,-14,970,560),340=>array(98,0,666,928),341=>array(91,0,447,803),342=>array(98,-235,666,729),343=>array(63,-235,411,560),344=>array(98,0,666,921),345=>array(91,0,419,800),346=>array(66,-14,579,928),347=>array(54,-14,472,803),348=>array(66,-14,579,928),349=>array(54,-14,472,800),350=>array(66,-193,579,742),351=>array(54,-193,472,560),352=>array(66,-14,579,928),353=>array(54,-14,472,800),354=>array(-3,-193,614,729),355=>array(27,-193,368,702),356=>array(-3,0,614,921),357=>array(27,0,374,813),358=>array(-3,0,614,729),359=>array(27,0,368,702),360=>array(87,-14,645,921),361=>array(85,-14,543,777),362=>array(87,-14,645,899),363=>array(85,-14,543,745),364=>array(87,-14,645,928),365=>array(85,-14,543,785),366=>array(87,-14,645,929),367=>array(85,-14,543,849),368=>array(87,-14,645,927),369=>array(85,-14,546,800),370=>array(87,-193,645,729),371=>array(85,-193,613,560),372=>array(33,0,956,932),373=>array(42,0,776,803),374=>array(-2,0,613,932),375=>array(30,-208,562,803),376=>array(-2,0,613,913),377=>array(45,0,640,928),378=>array(43,0,482,803),379=>array(45,0,640,914),380=>array(43,0,482,760),381=>array(45,0,640,928),382=>array(43,0,482,800),383=>array(23,0,371,760),384=>array(16,-14,580,760),385=>array(-51,0,664,729),386=>array(98,0,615,729),387=>array(91,-14,580,760),388=>array(0,0,615,729),389=>array(0,-14,580,760),390=>array(56,-14,644,742),391=>array(56,-14,794,924),392=>array(55,-14,600,760),393=>array(5,0,716,729),394=>array(-51,0,760,729),395=>array(98,0,615,729),396=>array(55,-14,544,760),397=>array(55,-208,557,548),398=>array(64,0,534,729),399=>array(57,-14,731,742),400=>array(80,-14,560,742),401=>array(-52,-200,517,729),402=>array(-63,-208,371,760),403=>array(56,-14,824,924),404=>array(4,-210,683,729),405=>array(91,0,910,760),406=>array(98,0,347,729),407=>array(5,0,290,729),408=>array(98,0,746,742),409=>array(90,0,576,760),410=>array(5,0,271,760),411=>array(30,0,562,760),412=>array(87,-14,894,729),413=>array(-52,-200,650,729),414=>array(91,-208,549,560),415=>array(56,-14,731,742),416=>array(50,-14,764,760),417=>array(58,-14,603,615),418=>array(56,-14,851,742),419=>array(55,-208,668,560),420=>array(-51,0,618,729),421=>array(90,-208,580,760),422=>array(98,-129,666,729),423=>array(56,-14,569,742),424=>array(49,-14,467,560),425=>array(98,0,568,729),426=>array(-132,-208,355,760),427=>array(27,-208,368,702),428=>array(12,0,614,729),429=>array(27,0,368,760),430=>array(-3,-200,614,729),431=>array(84,-4,796,760),432=>array(86,-14,676,615),433=>array(38,-14,726,724),434=>array(98,-15,683,729),435=>array(-2,0,742,742),436=>array(30,-208,730,560),437=>array(45,0,640,729),438=>array(43,0,482,547),439=>array(78,-31,621,729),440=>array(45,-31,588,729),441=>array(51,-213,531,547),442=>array(55,-208,488,547),443=>array(73,0,536,742),444=>array(45,-31,622,729),445=>array(51,-213,531,547),446=>array(43,-14,456,702),447=>array(91,-208,580,560),448=>array(98,-208,197,729),449=>array(98,-208,394,729),450=>array(10,-208,451,729),451=>array(98,0,197,729),452=>array(98,0,1352,928),453=>array(98,0,1211,800),454=>array(55,-14,1071,800),455=>array(98,-200,768,729),456=>array(98,-208,733,760),457=>array(94,-208,367,760),458=>array(98,-200,868,729),459=>array(98,-208,839,760),460=>array(91,-208,733,760),461=>array(8,0,676,928),462=>array(60,-14,522,800),463=>array(-1,0,297,928),464=>array(-16,0,296,800),465=>array(56,-14,731,928),466=>array(55,-14,557,800),467=>array(87,-14,645,928),468=>array(85,-14,543,800),469=>array(87,-14,645,1025),470=>array(85,-14,543,899),471=>array(87,-14,645,1044),472=>array(85,-14,543,892),473=>array(87,-14,645,1044),474=>array(85,-14,543,892),475=>array(87,-14,645,1047),476=>array(85,-14,543,892),477=>array(55,-14,562,560),478=>array(8,0,676,1025),479=>array(60,-14,522,899),480=>array(8,0,676,1025),481=>array(60,-14,522,869),482=>array(4,0,910,900),483=>array(60,-14,929,743),484=>array(56,-14,752,742),485=>array(55,-208,622,560),486=>array(56,-14,693,928),487=>array(55,-208,544,798),488=>array(98,0,677,928),489=>array(-11,0,576,928),490=>array(56,-193,731,742),491=>array(55,-193,557,560),492=>array(56,-193,731,899),493=>array(55,-193,557,745),494=>array(78,-31,621,928),495=>array(43,-213,523,800),496=>array(-18,-208,299,800),497=>array(98,0,1352,729),498=>array(98,0,1211,729),499=>array(55,-14,1071,760),500=>array(56,-14,693,928),501=>array(55,-208,544,798),502=>array(98,-14,1022,729),503=>array(98,-208,626,742),504=>array(98,0,650,927),505=>array(91,0,549,799),506=>array(8,0,676,931),507=>array(60,-14,607,931),508=>array(4,0,910,928),509=>array(60,-14,929,798),510=>array(50,-34,737,928),511=>array(35,-46,576,798),512=>array(8,0,676,930),513=>array(60,-14,522,799),514=>array(8,0,676,901),515=>array(60,-14,522,785),516=>array(98,0,568,930),517=>array(55,-14,562,798),518=>array(98,0,568,901),519=>array(55,-14,562,785),520=>array(-43,0,306,930),521=>array(-30,0,313,798),522=>array(2,0,308,901),523=>array(-14,0,292,785),524=>array(56,-14,731,930),525=>array(55,-14,557,799),526=>array(56,-14,731,901),527=>array(55,-14,557,785),528=>array(97,0,666,930),529=>array(63,0,411,798),530=>array(98,0,666,901),531=>array(91,0,421,785),532=>array(87,-14,645,930),533=>array(85,-14,543,799),534=>array(87,-14,645,901),535=>array(85,-14,543,785),536=>array(66,-240,579,742),537=>array(54,-240,472,560),538=>array(-3,-240,614,729),539=>array(27,-240,368,702),540=>array(76,-210,556,742),541=>array(35,-211,467,560),542=>array(98,0,654,928),543=>array(-8,0,549,928),544=>array(98,-208,637,742),545=>array(55,-70,783,760),546=>array(55,-14,643,742),547=>array(55,-14,555,632),548=>array(45,-208,640,729),549=>array(43,-208,482,547),550=>array(8,0,676,914),551=>array(60,-14,522,760),552=>array(98,-193,568,729),553=>array(55,-193,562,560),554=>array(56,-14,731,1025),555=>array(55,-14,557,899),556=>array(56,-14,731,1025),557=>array(55,-14,557,864),558=>array(56,-14,731,914),559=>array(55,-14,557,760),560=>array(56,-14,731,1025),561=>array(55,-14,557,899),562=>array(-2,0,613,899),563=>array(30,-208,562,745),564=>array(67,-70,420,757),565=>array(91,-70,788,560),566=>array(27,-70,422,702),567=>array(-18,-208,184,547),568=>array(55,-14,943,760),569=>array(55,-208,943,560),570=>array(-1,-34,686,761),571=>array(6,-34,692,761),572=>array(4,-46,545,592),573=>array(5,0,552,729),574=>array(-38,-34,649,761),575=>array(54,-242,512,560),576=>array(43,-242,525,547),577=>array(39,0,569,729),578=>array(39,0,445,560),579=>array(5,0,615,729),580=>array(6,-14,726,729),581=>array(8,0,676,729),582=>array(98,-93,568,822),583=>array(55,-93,562,640),584=>array(-52,-200,290,729),585=>array(-18,-208,264,760),586=>array(56,-200,836,743),587=>array(55,-208,656,560),588=>array(5,0,666,729),589=>array(7,0,411,560),590=>array(-5,0,615,729),591=>array(5,-208,588,547),592=>array(85,-14,547,560),593=>array(55,-14,544,560),594=>array(91,-14,580,560),595=>array(91,-14,580,760),596=>array(62,-14,495,560),597=>array(55,-69,488,560),598=>array(55,-208,656,760),599=>array(55,-14,715,760),600=>array(55,-14,562,560),601=>array(55,-14,562,560),602=>array(61,-14,814,560),603=>array(65,-14,473,561),604=>array(65,-14,473,561),605=>array(65,-14,771,561),606=>array(55,-14,596,561),607=>array(-18,-208,264,547),608=>array(55,-208,715,760),609=>array(55,-208,544,547),610=>array(55,-14,539,560),611=>array(47,-210,549,547),612=>array(47,-14,549,547),613=>array(85,-208,543,547),614=>array(91,0,549,760),615=>array(91,-208,549,760),616=>array(7,0,265,760),617=>array(81,0,304,547),618=>array(57,0,314,547),619=>array(37,0,359,760),620=>array(38,0,416,760),621=>array(94,-208,296,760),622=>array(94,-213,651,760),623=>array(91,-13,889,548),624=>array(91,-208,889,548),625=>array(91,-208,889,560),626=>array(-18,-208,552,560),627=>array(91,-208,661,560),628=>array(87,0,549,547),629=>array(55,-14,557,560),630=>array(55,0,768,547),631=>array(72,-18,655,561),632=>array(55,-208,602,760),633=>array(0,-13,320,547),634=>array(0,-13,320,755),635=>array(0,-208,433,547),636=>array(91,-207,411,560),637=>array(91,-208,411,560),638=>array(64,0,437,560),639=>array(57,0,437,560),640=>array(91,0,574,547),641=>array(91,0,574,547),642=>array(54,-208,472,560),643=>array(-19,-208,355,760),644=>array(-19,-208,355,760),645=>array(27,-208,401,549),646=>array(-132,-208,355,760),647=>array(27,-156,368,546),648=>array(27,-208,370,702),649=>array(0,-14,634,547),650=>array(55,-15,564,547),651=>array(94,0,545,548),652=>array(30,0,562,547),653=>array(42,0,776,547),654=>array(30,0,562,760),655=>array(50,0,552,547),656=>array(43,-208,593,547),657=>array(43,-54,482,547),658=>array(43,-213,523,547),659=>array(53,-213,553,547),660=>array(43,0,456,759),661=>array(43,0,456,759),662=>array(43,0,456,759),663=>array(43,-213,456,760),664=>array(56,-14,731,742),665=>array(91,0,530,547),666=>array(55,-14,596,561),667=>array(55,-14,724,760),668=>array(91,0,563,547),669=>array(-132,-208,272,760),670=>array(91,-213,576,547),671=>array(91,0,493,547),672=>array(55,-208,746,759),673=>array(43,0,456,759),674=>array(43,0,456,759),675=>array(55,-14,970,760),676=>array(55,-213,1014,760),677=>array(55,-54,970,760),678=>array(27,0,781,702),679=>array(27,-208,629,760),680=>array(27,-70,723,702),681=>array(23,-208,804,760),682=>array(94,0,657,760),683=>array(94,0,610,760),684=>array(26,-15,489,640),685=>array(26,84,489,640),686=>array(0,-214,570,760),687=>array(0,-208,683,760),688=>array(57,326,346,751),689=>array(57,326,346,751),690=>array(-11,209,116,751),691=>array(57,326,259,640),692=>array(35,319,236,632),693=>array(35,209,307,632),694=>array(16,326,320,632),695=>array(26,326,489,632),696=>array(19,209,354,632),697=>array(78,557,203,800),698=>array(78,557,384,800),699=>array(85,489,228,729),700=>array(87,499,230,729),701=>array(96,616,239,856),702=>array(57,492,191,760),703=>array(57,492,191,760),704=>array(57,326,317,751),705=>array(57,326,317,751),706=>array(130,524,370,836),707=>array(130,524,370,836),708=>array(94,561,406,800),709=>array(94,561,406,800),710=>array(94,616,406,800),711=>array(94,616,406,800),712=>array(104,488,171,759),713=>array(104,673,396,745),714=>array(181,616,415,800),715=>array(83,617,317,800),716=>array(104,-148,171,123),717=>array(104,-156,396,-84),718=>array(83,-236,317,-54),719=>array(181,-236,415,-53),720=>array(54,0,229,517),721=>array(54,356,229,517),722=>array(57,249,191,517),723=>array(57,249,191,517),724=>array(140,229,360,448),725=>array(140,229,360,448),726=>array(49,125,341,417),727=>array(49,234,269,307),728=>array(97,645,403,785),729=>array(200,658,300,758),730=>array(116,610,384,878),731=>array(162,-193,344,0),732=>array(89,639,411,777),733=>array(117,616,460,800),734=>array(-0,233,334,504),735=>array(117,616,383,800),736=>array(57,208,374,632),737=>array(60,326,116,751),738=>array(57,326,320,648),739=>array(57,326,391,632),740=>array(57,326,317,751),741=>array(104,0,389,668),742=>array(104,0,389,668),743=>array(104,0,389,668),744=>array(104,0,389,668),745=>array(104,0,389,668),748=>array(94,-260,406,-21),749=>array(104,610,396,808),750=>array(85,489,428,729),755=>array(116,-240,384,28),759=>array(89,-192,411,-55),768=>array(-418,560,-184,800),769=>array(-320,560,-86,800),770=>array(-406,560,-94,800),771=>array(-412,639,-90,777),772=>array(-394,673,-102,745),773=>array(-510,686,10,755),774=>array(-407,645,-101,785),775=>array(-296,560,-206,760),776=>array(-395,560,-105,758),777=>array(-348,618,-129,810),778=>array(-385,610,-117,878),779=>array(-381,616,-38,800),780=>array(-404,560,-92,800),781=>array(-283,615,-217,832),782=>array(-383,615,-117,832),783=>array(-455,616,-112,800),784=>array(-407,645,-101,917),785=>array(-407,645,-101,785),786=>array(-235,489,-92,645),787=>array(-305,595,-187,844),788=>array(-305,595,-187,844),789=>array(-66,575,66,759),790=>array(-418,-266,-184,-83),791=>array(-320,-267,-86,-83),792=>array(-357,-240,-221,-24),793=>array(-279,-240,-143,-24),794=>array(-208,690,31,930),795=>array(-133,427,60,609),796=>array(-313,-241,-208,-32),797=>array(-370,-240,-130,-87),798=>array(-370,-240,-130,-87),799=>array(-357,-240,-143,-24),800=>array(-370,-184,-130,-117),801=>array(-315,-208,-23,63),802=>array(-317,-208,-25,63),803=>array(-296,-183,-206,-69),804=>array(-396,-183,-106,-84),805=>array(-355,-241,-146,-32),806=>array(-323,-240,-180,-84),807=>array(-358,-193,-156,0),808=>array(-338,-193,-156,0),809=>array(-283,-240,-217,-47),810=>array(-383,-211,-114,-50),811=>array(-452,-222,-51,-82),812=>array(-404,-240,-92,-57),813=>array(-407,-240,-95,-57),814=>array(-407,-222,-101,-82),815=>array(-407,-224,-101,-83),816=>array(-412,-222,-90,-84),817=>array(-394,-156,-102,-84),818=>array(-510,-236,10,-166),819=>array(-510,-236,10,-9),820=>array(-557,240,-41,381),821=>array(-316,221,-59,301),822=>array(-634,221,-0,301),823=>array(-574,-46,-33,592),824=>array(-741,-34,-54,761),825=>array(-291,-241,-187,-32),826=>array(-382,-206,-113,-44),827=>array(-359,-240,-139,-21),828=>array(-452,-222,-51,-82),829=>array(-354,619,-138,834),830=>array(-247,595,-109,853),831=>array(-510,528,10,755),832=>array(-418,617,-184,800),833=>array(-320,616,-86,800),834=>array(-412,639,-90,777),835=>array(-305,595,-187,844),836=>array(-387,659,-77,978),837=>array(-278,-208,-171,-45),838=>array(-396,639,-104,786),839=>array(-360,-226,-140,-35),840=>array(-365,-240,-135,-47),841=>array(-360,-240,-140,-21),842=>array(-411,616,-89,800),843=>array(-411,567,-89,850),844=>array(-411,596,-89,820),845=>array(-452,-230,-48,-30),846=>array(-350,-240,-150,-45),849=>array(-316,610,-184,878),850=>array(-407,547,-101,855),851=>array(-354,-240,-138,-24),855=>array(-316,610,-184,878),856=>array(-103,658,-3,758),858=>array(-430,-241,-71,-32),860=>array(-445,-237,445,-60),861=>array(-445,802,445,979),862=>array(-445,855,445,927),863=>array(-445,-156,445,-84),864=>array(-354,756,354,894),865=>array(-445,752,445,929),866=>array(-442,-230,447,-30),880=>array(98,0,555,729),881=>array(94,0,477,547),882=>array(98,0,764,729),883=>array(98,0,549,729),884=>array(78,557,203,800),885=>array(78,-208,203,35),886=>array(98,0,650,729),887=>array(91,0,559,547),890=>array(214,-208,321,-45),891=>array(62,-14,495,560),892=>array(55,-14,488,560),893=>array(62,-14,495,560),894=>array(77,-116,220,517),900=>array(181,616,415,800),901=>array(105,659,415,978),902=>array(8,0,676,800),903=>array(107,285,210,409),904=>array(-12,0,682,800),905=>array(-6,0,765,800),906=>array(-9,0,311,800),908=>array(-7,-14,750,800),910=>array(-15,0,821,800),911=>array(-18,0,752,800),912=>array(2,0,313,978),913=>array(8,0,676,729),914=>array(98,0,615,729),915=>array(98,0,552,729),916=>array(8,0,676,729),917=>array(98,0,568,729),918=>array(45,0,640,729),919=>array(98,0,654,729),920=>array(56,-14,731,742),921=>array(98,0,197,729),922=>array(98,0,677,729),923=>array(8,0,676,729),924=>array(98,0,765,729),925=>array(98,0,650,729),926=>array(98,0,548,729),927=>array(56,-14,731,742),928=>array(98,0,654,729),929=>array(98,0,569,729),931=>array(98,0,568,729),932=>array(-3,0,614,729),933=>array(-2,0,613,729),934=>array(56,0,731,729),935=>array(30,0,654,729),936=>array(56,0,732,729),937=>array(38,0,726,738),938=>array(3,0,293,913),939=>array(-2,0,613,913),940=>array(55,-12,611,800),941=>array(65,-14,473,800),942=>array(91,-208,549,800),943=>array(81,0,324,800),944=>array(73,-14,521,978),945=>array(55,-12,611,559),946=>array(94,-208,566,766),947=>array(16,-208,562,547),948=>array(55,-14,557,742),949=>array(65,-14,473,561),950=>array(52,-210,496,760),951=>array(91,-208,549,560),952=>array(55,-11,557,768),953=>array(81,0,304,547),954=>array(93,0,565,547),955=>array(30,0,562,760),956=>array(85,-208,612,547),957=>array(36,0,512,547),958=>array(52,-210,500,760),959=>array(55,-14,557,560),960=>array(36,-19,574,547),961=>array(91,-208,580,560),962=>array(55,-210,488,560),963=>array(55,-14,604,547),964=>array(49,0,553,547),965=>array(73,-14,521,547),966=>array(55,-208,602,551),967=>array(29,-208,549,547),968=>array(55,-208,602,547),969=>array(66,-14,769,547),970=>array(2,0,311,758),971=>array(73,-14,521,758),972=>array(55,-14,557,800),973=>array(73,-14,521,800),974=>array(66,-14,769,800),975=>array(98,-208,677,729),976=>array(82,-11,538,768),977=>array(55,-11,557,768),978=>array(42,0,665,734),979=>array(-15,0,829,800),980=>array(42,0,665,913),981=>array(55,-208,602,760),982=>array(32,-14,803,547),983=>array(55,-206,600,550),984=>array(56,-207,731,742),985=>array(55,-208,557,560),986=>array(68,-210,583,729),987=>array(55,-210,540,547),988=>array(98,0,517,729),989=>array(-94,-208,409,760),990=>array(87,-2,604,729),991=>array(93,0,566,759),992=>array(56,-208,797,742),993=>array(58,-180,573,559),994=>array(56,-213,877,729),995=>array(66,-208,769,547),996=>array(56,-208,660,742),997=>array(55,-208,568,560),998=>array(98,-213,735,729),999=>array(22,-14,571,575),1000=>array(39,-208,630,745),1001=>array(49,-208,552,560),1002=>array(56,0,714,742),1003=>array(26,0,599,560),1004=>array(56,-14,643,758),1005=>array(55,-14,544,758),1006=>array(21,-208,589,729),1007=>array(27,-208,510,726),1008=>array(55,-7,600,550),1009=>array(91,-208,580,560),1010=>array(55,-14,488,560),1011=>array(-18,-208,184,760),1012=>array(56,-14,731,742),1013=>array(55,-14,480,560),1014=>array(96,-14,521,560),1015=>array(98,0,569,729),1016=>array(91,-208,580,760),1017=>array(56,-14,644,742),1018=>array(98,0,765,729),1019=>array(62,-208,587,547),1020=>array(42,-208,580,560),1021=>array(56,-14,644,742),1022=>array(56,-14,644,742),1023=>array(56,-14,644,742),1024=>array(98,0,568,927),1025=>array(98,0,568,913),1026=>array(-3,-200,709,729),1027=>array(98,0,552,927),1028=>array(56,-14,644,742),1029=>array(66,-14,579,742),1030=>array(98,0,197,729),1031=>array(3,0,293,913),1032=>array(-52,-200,197,729),1033=>array(41,0,1023,729),1034=>array(98,0,975,729),1035=>array(-3,0,709,729),1036=>array(98,0,690,927),1037=>array(98,0,650,927),1038=>array(17,0,592,928),1039=>array(98,-157,654,729),1040=>array(8,0,676,729),1041=>array(98,0,615,729),1042=>array(98,0,615,729),1043=>array(98,0,552,729),1044=>array(49,-157,732,729),1045=>array(98,0,568,729),1046=>array(20,0,1058,729),1047=>array(66,-14,575,742),1048=>array(98,0,650,729),1049=>array(98,0,650,928),1050=>array(98,0,690,729),1051=>array(41,0,653,729),1052=>array(98,0,765,729),1053=>array(98,0,654,729),1054=>array(56,-14,731,742),1055=>array(98,0,654,729),1056=>array(98,0,569,729),1057=>array(56,-14,644,742),1058=>array(-3,0,614,729),1059=>array(17,0,592,729),1060=>array(59,0,802,729),1061=>array(30,0,654,729),1062=>array(98,-157,737,729),1063=>array(85,0,587,729),1064=>array(98,0,971,729),1065=>array(98,-157,1054,729),1066=>array(29,0,762,729),1067=>array(98,0,784,729),1068=>array(98,0,615,729),1069=>array(54,-14,642,742),1070=>array(103,-14,1023,742),1071=>array(66,0,597,729),1072=>array(60,-14,522,560),1073=>array(55,-14,562,777),1074=>array(91,0,530,547),1075=>array(91,0,477,547),1076=>array(52,-138,639,547),1077=>array(55,-14,562,560),1078=>array(34,0,867,547),1079=>array(65,-14,473,561),1080=>array(91,0,559,547),1081=>array(91,0,559,760),1082=>array(91,0,571,547),1083=>array(37,0,556,547),1084=>array(91,0,664,547),1085=>array(91,0,563,547),1086=>array(55,-14,557,560),1087=>array(91,0,563,547),1088=>array(91,-208,580,560),1089=>array(55,-14,488,560),1090=>array(29,0,553,547),1091=>array(30,-208,562,547),1092=>array(55,-208,800,729),1093=>array(29,0,559,547),1094=>array(91,-138,635,547),1095=>array(73,0,500,547),1096=>array(91,0,824,547),1097=>array(91,-138,896,547),1098=>array(30,0,647,547),1099=>array(91,0,701,560),1100=>array(91,0,530,547),1101=>array(55,-14,488,560),1102=>array(94,-14,787,560),1103=>array(57,0,517,547),1104=>array(55,-14,562,802),1105=>array(55,-14,562,758),1106=>array(23,-208,570,760),1107=>array(91,0,480,803),1108=>array(55,-14,488,560),1109=>array(54,-14,472,560),1110=>array(94,0,184,760),1111=>array(-6,0,284,758),1112=>array(-18,-208,184,760),1113=>array(37,0,843,547),1114=>array(91,0,839,547),1115=>array(23,0,567,760),1116=>array(91,0,571,803),1117=>array(91,0,559,802),1118=>array(30,-208,562,760),1119=>array(91,-138,563,547),1120=>array(56,-14,877,729),1121=>array(66,-14,769,547),1122=>array(15,0,711,729),1123=>array(15,0,613,760),1124=>array(103,-14,888,742),1125=>array(94,-14,688,560),1126=>array(8,0,871,729),1127=>array(25,0,758,547),1128=>array(98,0,1135,729),1129=>array(94,0,977,547),1130=>array(56,0,731,729),1131=>array(52,0,560,547),1132=>array(98,0,971,729),1133=>array(94,0,772,547),1134=>array(56,-208,556,935),1135=>array(44,-193,473,753),1136=>array(8,0,844,729),1137=>array(24,-208,852,765),1138=>array(56,-14,731,742),1139=>array(55,-14,557,560),1140=>array(8,0,769,742),1141=>array(24,0,640,560),1142=>array(8,0,769,930),1143=>array(24,0,640,800),1144=>array(56,-208,962,742),1145=>array(55,-208,875,560),1146=>array(56,-14,897,742),1147=>array(55,-14,704,560),1148=>array(58,-14,1122,932),1149=>array(74,-14,954,758),1150=>array(56,-14,877,900),1151=>array(66,-14,769,734),1152=>array(56,-208,644,742),1153=>array(55,-208,488,560),1154=>array(29,-44,474,457),1155=>array(-519,608,-93,810),1156=>array(-372,645,4,788),1157=>array(-288,595,-169,797),1158=>array(-288,595,-169,797),1159=>array(-776,606,4,788),1160=>array(-1021,-180,409,922),1161=>array(-957,-280,345,1022),1162=>array(98,-208,748,928),1163=>array(94,-208,652,760),1164=>array(16,0,615,729),1165=>array(19,0,534,702),1166=>array(98,0,610,729),1167=>array(91,-208,580,560),1168=>array(98,0,552,878),1169=>array(91,0,477,700),1170=>array(35,0,617,729),1171=>array(27,0,542,547),1172=>array(98,-200,600,729),1173=>array(91,-208,505,547),1174=>array(20,-157,1071,729),1175=>array(34,-138,876,547),1176=>array(66,-193,575,742),1177=>array(65,-193,473,561),1178=>array(98,-157,713,729),1179=>array(91,-138,587,547),1180=>array(98,0,690,729),1181=>array(91,0,571,547),1182=>array(16,0,690,729),1183=>array(30,0,571,760),1184=>array(24,0,837,729),1185=>array(21,0,688,547),1186=>array(98,-157,752,729),1187=>array(94,-138,656,547),1188=>array(98,0,1009,729),1189=>array(94,0,862,547),1190=>array(98,-200,1057,729),1191=>array(94,-208,891,547),1192=>array(56,-14,871,743),1193=>array(55,-14,684,560),1194=>array(56,-193,644,742),1195=>array(55,-193,488,560),1196=>array(-3,-157,614,729),1197=>array(29,-138,553,547),1198=>array(-2,0,613,729),1199=>array(30,-208,562,547),1200=>array(-2,0,613,729),1201=>array(30,-208,562,547),1202=>array(30,-157,654,729),1203=>array(29,-138,559,547),1204=>array(-3,-157,910,729),1205=>array(2,-138,782,547),1206=>array(85,-157,686,729),1207=>array(73,-138,590,547),1208=>array(85,0,587,729),1209=>array(73,0,500,547),1210=>array(85,0,587,729),1211=>array(91,0,549,760),1212=>array(10,-14,885,742),1213=>array(7,-14,675,560),1214=>array(10,-184,885,742),1215=>array(7,-161,675,560),1216=>array(98,0,197,729),1217=>array(20,0,1058,928),1218=>array(34,0,867,785),1219=>array(98,-200,651,729),1220=>array(93,-208,566,547),1221=>array(26,-208,751,729),1222=>array(22,-208,646,547),1223=>array(98,-200,654,729),1224=>array(94,-208,566,547),1225=>array(98,-208,752,729),1226=>array(94,-208,656,547),1227=>array(85,-157,587,729),1228=>array(73,-138,500,547),1229=>array(98,-208,863,729),1230=>array(94,-208,750,547),1231=>array(94,0,184,760),1232=>array(8,0,676,946),1233=>array(60,-14,522,765),1234=>array(8,0,676,913),1235=>array(60,-14,522,758),1236=>array(4,0,910,729),1237=>array(60,-14,929,560),1238=>array(98,0,568,928),1239=>array(55,-14,562,785),1240=>array(57,-14,731,742),1241=>array(55,-14,562,560),1242=>array(57,-14,731,913),1243=>array(55,-14,562,758),1244=>array(20,0,1058,913),1245=>array(34,0,867,758),1246=>array(66,-14,575,913),1247=>array(65,-14,473,758),1248=>array(78,-31,621,729),1249=>array(43,-213,523,547),1250=>array(98,0,650,899),1251=>array(91,0,559,745),1252=>array(98,0,650,913),1253=>array(91,0,559,758),1254=>array(56,-14,731,913),1255=>array(55,-14,557,758),1256=>array(56,-14,731,742),1257=>array(55,-14,557,560),1258=>array(56,-14,731,913),1259=>array(55,-14,557,758),1260=>array(54,-14,642,913),1261=>array(55,-14,488,758),1262=>array(17,0,592,899),1263=>array(30,-208,562,745),1264=>array(17,0,592,913),1265=>array(30,-208,562,758),1266=>array(17,0,592,927),1267=>array(30,-208,562,800),1268=>array(85,0,587,913),1269=>array(73,0,500,758),1270=>array(98,-157,552,729),1271=>array(91,-138,477,547),1272=>array(98,0,784,913),1273=>array(91,0,701,758),1274=>array(35,-208,617,729),1275=>array(27,-208,542,547),1276=>array(30,-200,646,729),1277=>array(29,-208,549,547),1278=>array(30,0,654,729),1279=>array(29,0,559,547),1280=>array(71,0,588,729),1281=>array(55,0,495,547),1282=>array(71,-14,908,729),1283=>array(55,-14,806,547),1284=>array(98,-14,876,742),1285=>array(83,-14,784,561),1286=>array(98,-208,654,742),1287=>array(83,-208,564,561),1288=>array(26,-14,974,729),1289=>array(22,-14,866,547),1290=>array(98,-14,1022,729),1291=>array(94,-14,876,547),1292=>array(56,-14,692,742),1293=>array(55,-14,534,560),1294=>array(-3,-14,675,729),1295=>array(2,-14,620,547),1296=>array(80,-14,560,742),1297=>array(65,-14,473,561),1298=>array(41,-200,653,729),1299=>array(37,-208,556,547),1300=>array(41,0,1139,729),1301=>array(37,0,962,547),1302=>array(98,0,863,729),1303=>array(91,-208,832,560),1304=>array(66,0,967,729),1305=>array(57,-14,933,560),1306=>array(56,-129,731,742),1307=>array(55,-208,544,560),1308=>array(33,0,956,729),1309=>array(42,0,776,547),1310=>array(98,0,690,729),1311=>array(91,0,571,547),1312=>array(41,-200,1056,729),1313=>array(37,-208,881,547),1314=>array(98,-200,1057,729),1315=>array(91,-208,888,547),1316=>array(98,-157,752,729),1317=>array(91,-138,653,547),1329=>array(87,-29,680,729),1330=>array(87,0,650,743),1331=>array(45,0,729,743),1332=>array(44,0,724,743),1333=>array(87,-14,650,729),1334=>array(87,0,692,744),1335=>array(92,0,616,729),1336=>array(87,0,650,743),1337=>array(87,-14,835,743),1338=>array(45,-14,729,729),1339=>array(92,0,650,729),1340=>array(92,0,533,729),1341=>array(92,-14,849,729),1342=>array(129,-13,763,742),1343=>array(87,0,645,729),1344=>array(34,-26,638,729),1345=>array(82,-23,688,744),1346=>array(49,0,729,743),1347=>array(51,0,715,735),1348=>array(87,-14,767,729),1349=>array(71,-14,668,743),1350=>array(0,-14,680,729),1351=>array(78,-15,684,729),1352=>array(87,0,645,743),1353=>array(59,-28,664,744),1354=>array(44,0,713,743),1355=>array(82,0,686,744),1356=>array(87,0,767,743),1357=>array(87,-14,645,729),1358=>array(49,0,729,729),1359=>array(73,-14,632,741),1360=>array(87,0,645,743),1361=>array(78,-14,675,743),1362=>array(92,0,538,729),1363=>array(59,0,752,729),1364=>array(24,0,679,743),1365=>array(56,-14,731,742),1366=>array(54,-13,746,729),1369=>array(57,492,191,760),1370=>array(87,499,230,729),1371=>array(0,620,234,803),1372=>array(2,618,356,893),1373=>array(-0,617,233,800),1374=>array(4,613,401,866),1375=>array(44,618,462,760),1377=>array(85,-14,883,547),1378=>array(91,-208,549,560),1379=>array(55,-208,648,560),1380=>array(91,-208,653,560),1381=>array(85,-14,548,760),1382=>array(55,-208,648,560),1383=>array(91,0,490,760),1384=>array(91,-208,549,560),1385=>array(91,-208,738,560),1386=>array(55,-14,648,760),1387=>array(91,-208,549,760),1388=>array(91,-208,303,547),1389=>array(91,-208,889,760),1390=>array(55,-14,557,760),1391=>array(85,-208,543,760),1392=>array(91,0,549,760),1393=>array(52,-15,523,760),1394=>array(91,-208,653,560),1395=>array(68,-14,544,768),1396=>array(85,-14,647,760),1397=>array(-21,-208,181,547),1398=>array(-19,-14,543,760),1399=>array(0,-208,435,560),1400=>array(91,0,549,560),1401=>array(5,-208,370,547),1402=>array(85,-208,883,547),1403=>array(54,-208,494,561),1404=>array(91,0,609,560),1405=>array(85,-14,543,560),1406=>array(85,-208,647,760),1407=>array(85,-14,889,560),1408=>array(91,-208,549,560),1409=>array(54,-208,543,560),1410=>array(91,0,449,547),1411=>array(85,-208,889,760),1412=>array(20,-208,580,560),1413=>array(54,-14,556,560),1414=>array(34,-208,766,760),1415=>array(85,-14,812,760),1417=>array(117,0,220,415),1418=>array(49,212,312,314),1456=>array(283,-217,356,-22),1457=>array(83,-217,438,-22),1458=>array(125,-217,454,-22),1459=>array(125,-217,454,-22),1460=>array(283,-159,356,-85),1461=>array(222,-159,417,-85),1462=>array(222,-217,417,-22),1463=>array(173,-159,466,-85),1464=>array(173,-193,466,-46),1465=>array(0,625,73,698),1466=>array(0,625,73,698),1467=>array(148,-237,465,-17),1468=>array(288,237,361,310),1469=>array(283,-217,356,-22),1470=>array(49,472,312,552),1471=>array(173,625,466,698),1472=>array(102,-98,193,645),1473=>array(637,625,710,698),1474=>array(96,625,169,698),1475=>array(102,0,193,547),1478=>array(50,0,357,547),1479=>array(173,-217,466,-22),1488=>array(91,0,578,547),1489=>array(43,0,535,547),1490=>array(43,-5,383,547),1491=>array(43,0,511,547),1492=>array(91,0,563,547),1493=>array(91,0,182,547),1494=>array(43,0,303,547),1495=>array(91,0,563,547),1496=>array(90,-14,593,552),1497=>array(66,204,157,547),1498=>array(43,-208,446,547),1499=>array(43,0,474,547),1500=>array(43,0,492,729),1501=>array(91,0,573,547),1502=>array(43,0,588,555),1503=>array(91,-208,182,547),1504=>array(43,0,309,547),1505=>array(90,-14,593,547),1506=>array(43,-93,535,547),1507=>array(91,-208,549,547),1508=>array(91,0,569,547),1509=>array(43,-208,497,548),1510=>array(43,0,502,547),1511=>array(91,-208,633,546),1512=>array(43,0,474,547),1513=>array(43,0,666,547),1514=>array(10,-4,566,547),1520=>array(91,0,380,547),1521=>array(66,0,332,547),1522=>array(66,204,312,547),1523=>array(91,361,325,547),1524=>array(91,361,554,547),1542=>array(0,-20,607,892),1543=>array(0,-20,607,895),1545=>array(65,0,685,635),1546=>array(65,0,904,635),1548=>array(107,0,250,240),1557=>array(123,624,377,868),1563=>array(107,0,250,633),1567=>array(72,0,461,742),1569=>array(80,42,390,483),1570=>array(-37,0,315,939),1571=>array(53,0,220,999),1572=>array(-42,-244,406,588),1573=>array(53,-244,220,760),1574=>array(63,-131,719,588),1575=>array(94,0,184,760),1576=>array(63,-171,865,327),1577=>array(68,-28,453,513),1578=>array(63,-10,865,391),1579=>array(63,-10,865,513),1580=>array(77,-244,645,425),1581=>array(77,-244,645,425),1582=>array(77,-244,645,586),1583=>array(61,-19,388,415),1584=>array(61,-19,388,586),1585=>array(-42,-244,423,269),1586=>array(-42,-244,423,464),1587=>array(63,-244,1138,366),1588=>array(63,-244,1138,586),1589=>array(63,-244,1134,362),1590=>array(63,-244,1134,464),1591=>array(70,0,857,760),1592=>array(70,0,857,760),1593=>array(57,-244,587,521),1594=>array(57,-244,587,659),1600=>array(-10,0,303,90),1601=>array(63,-45,952,635),1602=>array(52,-215,701,635),1603=>array(70,-27,722,760),1604=>array(70,-152,637,760),1605=>array(68,-240,546,369),1606=>array(72,-162,660,464),1607=>array(68,-28,453,358),1608=>array(-42,-244,406,315),1609=>array(63,-131,719,411),1610=>array(63,-244,719,411),1611=>array(107,591,393,825),1612=>array(107,591,393,874),1613=>array(107,-239,393,-5),1614=>array(107,591,393,708),1615=>array(107,590,393,874),1616=>array(107,-137,393,-20),1617=>array(98,599,402,869),1618=>array(115,610,383,878),1619=>array(74,590,426,719),1620=>array(164,593,331,808),1621=>array(164,-244,331,-29),1623=>array(107,615,393,898),1626=>array(119,616,381,775),1632=>array(215,220,322,342),1633=>array(136,0,342,635),1634=>array(40,0,492,635),1635=>array(37,0,509,635),1636=>array(85,-10,457,641),1637=>array(66,-10,471,643),1638=>array(42,0,493,635),1639=>array(29,0,508,635),1640=>array(29,0,508,635),1641=>array(49,0,493,640),1642=>array(65,0,472,635),1643=>array(0,-110,300,318),1644=>array(87,499,230,729),1645=>array(42,101,502,537),1646=>array(63,-10,865,327),1647=>array(52,-215,701,481),1648=>array(223,602,277,887),1652=>array(60,649,227,864),1657=>array(63,-10,865,575),1658=>array(63,-10,865,513),1659=>array(63,-244,865,327),1660=>array(63,-180,865,391),1661=>array(63,-10,865,464),1662=>array(63,-244,865,327),1663=>array(63,-10,865,513),1664=>array(63,-244,865,327),1665=>array(77,-244,645,710),1666=>array(77,-244,645,708),1667=>array(77,-244,645,425),1668=>array(77,-244,645,425),1669=>array(77,-244,645,708),1670=>array(77,-244,645,425),1671=>array(77,-244,645,425),1672=>array(61,-19,388,746),1673=>array(61,-180,388,415),1674=>array(61,-171,388,415),1675=>array(61,-171,388,746),1676=>array(61,-19,388,586),1677=>array(61,-146,388,415),1678=>array(61,-19,388,708),1679=>array(61,-19,388,684),1680=>array(61,-19,388,708),1681=>array(-42,-244,469,648),1682=>array(-42,-244,473,556),1683=>array(-42,-244,507,269),1684=>array(-42,-244,474,269),1685=>array(-42,-244,634,269),1686=>array(-42,-244,474,269),1687=>array(-42,-244,439,464),1688=>array(-42,-244,439,586),1689=>array(-42,-244,439,586),1690=>array(63,-244,1138,464),1691=>array(63,-244,1138,366),1692=>array(63,-244,1138,586),1693=>array(63,-244,1134,362),1694=>array(63,-244,1134,586),1695=>array(70,0,857,760),1696=>array(57,-244,587,781),1697=>array(63,-45,952,481),1698=>array(63,-171,952,481),1699=>array(63,-171,952,635),1700=>array(63,-45,952,757),1701=>array(63,-293,952,481),1702=>array(63,-45,952,757),1703=>array(52,-215,701,635),1704=>array(52,-215,701,757),1705=>array(63,-43,895,760),1706=>array(63,-43,1000,760),1707=>array(63,-43,895,760),1708=>array(70,-27,722,760),1709=>array(70,-27,722,854),1710=>array(70,-293,722,760),1711=>array(63,-43,895,896),1712=>array(63,-43,895,896),1713=>array(63,-43,895,903),1714=>array(63,-171,895,896),1715=>array(63,-293,895,896),1716=>array(63,-43,895,1025),1717=>array(70,-152,723,971),1718=>array(70,-152,637,952),1719=>array(70,-152,684,1025),1720=>array(70,-391,637,760),1721=>array(72,-317,660,464),1722=>array(72,-162,660,366),1723=>array(72,-162,660,636),1724=>array(72,-330,660,464),1725=>array(72,-162,660,586),1726=>array(70,-33,638,487),1727=>array(77,-244,645,586),1734=>array(-42,-244,406,556),1740=>array(63,-131,719,411),1742=>array(63,-131,719,556),1749=>array(68,-28,453,358),1776=>array(215,220,322,342),1777=>array(136,0,342,635),1778=>array(40,0,492,635),1779=>array(37,0,509,635),1780=>array(40,0,471,643),1781=>array(52,-5,485,643),1782=>array(102,0,445,640),1783=>array(29,0,508,635),1784=>array(29,0,508,635),1785=>array(49,0,493,640),1984=>array(66,-14,570,742),1985=>array(110,0,544,729),1986=>array(110,0,530,729),1987=>array(110,0,530,729),1988=>array(110,0,530,729),1989=>array(110,0,530,729),1990=>array(110,0,530,729),1991=>array(104,0,532,729),1992=>array(104,0,532,729),1993=>array(77,0,560,741),1994=>array(94,0,184,729),1995=>array(55,-14,516,447),1996=>array(30,0,394,731),1997=>array(30,0,562,430),1998=>array(91,0,563,430),1999=>array(91,0,563,430),2000=>array(55,0,539,735),2001=>array(91,0,563,581),2002=>array(55,0,738,741),2003=>array(94,0,408,729),2004=>array(30,0,344,729),2005=>array(91,0,504,729),2006=>array(94,0,518,729),2007=>array(30,0,256,729),2008=>array(94,0,865,513),2009=>array(30,0,443,729),2010=>array(30,0,754,729),2011=>array(91,0,563,430),2012=>array(30,0,595,729),2013=>array(94,0,679,729),2014=>array(94,0,436,729),2015=>array(55,0,630,729),2016=>array(30,0,443,729),2017=>array(30,0,595,729),2018=>array(55,0,539,729),2019=>array(94,0,436,729),2020=>array(94,0,436,612),2021=>array(94,0,428,729),2022=>array(55,0,539,729),2023=>array(55,0,539,729),2027=>array(106,673,398,745),2028=>array(32,609,468,800),2029=>array(205,658,305,758),2030=>array(93,616,405,800),2031=>array(44,616,456,800),2032=>array(32,609,468,800),2033=>array(44,616,456,800),2034=>array(200,-184,300,-84),2035=>array(104,659,394,758),2036=>array(98,557,216,760),2037=>array(98,557,216,760),2040=>array(49,0,511,498),2041=>array(49,0,511,483),2042=>array(-10,0,371,72),3647=>array(86,-138,571,769),3713=>array(63,-10,607,560),3714=>array(68,-17,691,568),3716=>array(67,-10,619,568),3719=>array(53,-238,415,568),3720=>array(62,-0,574,575),3722=>array(68,-234,690,568),3725=>array(56,-8,619,573),3732=>array(91,-14,592,560),3733=>array(63,-15,564,579),3734=>array(0,-240,587,560),3735=>array(42,-8,599,571),3737=>array(46,-14,593,568),3738=>array(36,-8,556,561),3739=>array(36,-8,556,760),3740=>array(43,-8,725,614),3741=>array(91,-14,676,760),3742=>array(51,-8,636,561),3743=>array(51,-8,636,760),3745=>array(31,-14,636,547),3746=>array(56,-8,619,760),3747=>array(68,-8,634,568),3749=>array(39,-8,583,568),3751=>array(56,-13,558,560),3754=>array(39,-8,688,679),3755=>array(62,-12,762,575),3757=>array(56,-14,558,560),3758=>array(68,-8,684,605),3759=>array(99,-166,742,579),3760=>array(54,-13,589,563),3761=>array(-578,639,-43,880),3762=>array(60,0,473,560),3763=>array(-425,0,473,806),3764=>array(-594,615,-73,926),3765=>array(-594,615,0,926),3766=>array(-594,615,-73,926),3767=>array(-594,615,0,926),3768=>array(-376,-350,-161,-38),3769=>array(-418,-306,-152,-40),3771=>array(-578,639,-43,880),3772=>array(-611,-278,6,-39),3773=>array(63,-240,619,715),3776=>array(60,-14,324,560),3777=>array(60,-14,598,560),3778=>array(-22,-5,398,896),3779=>array(45,-14,490,892),3780=>array(92,-11,445,886),3782=>array(72,-232,574,557),3784=>array(-366,618,-278,792),3785=>array(-563,609,-45,891),3786=>array(-595,598,22,869),3787=>array(-462,609,-182,890),3788=>array(-611,636,6,875),3789=>array(-425,620,-220,806),3792=>array(66,-14,570,547),3793=>array(48,-75,582,576),3794=>array(48,-66,545,711),3795=>array(11,-9,692,830),3796=>array(48,-83,601,711),3797=>array(48,-83,601,711),3798=>array(43,-8,744,812),3799=>array(63,-240,607,560),3800=>array(73,-210,680,557),3801=>array(51,-4,621,571),3804=>array(62,-12,947,575),3805=>array(62,-12,973,575),4256=>array(59,-15,815,828),4257=>array(54,-0,704,828),4258=>array(54,-148,649,837),4259=>array(54,-15,781,828),4260=>array(49,0,552,837),4261=>array(39,0,714,837),4262=>array(29,-15,695,828),4263=>array(59,-15,885,837),4264=>array(29,0,390,874),4265=>array(59,0,561,828),4266=>array(29,-15,784,828),4267=>array(59,-15,824,828),4268=>array(63,0,566,828),4269=>array(49,-167,806,837),4270=>array(24,-15,717,837),4271=>array(39,0,566,828),4272=>array(54,-15,853,828),4273=>array(63,-15,567,828),4274=>array(63,-0,566,837),4275=>array(49,-182,806,837),4276=>array(49,0,817,834),4277=>array(44,0,680,828),4278=>array(64,-15,566,837),4279=>array(54,0,557,828),4280=>array(59,-15,562,828),4281=>array(63,0,566,828),4282=>array(59,-15,764,837),4283=>array(59,-15,810,828),4284=>array(63,-0,566,828),4285=>array(49,-15,574,837),4286=>array(63,-0,566,828),4287=>array(29,0,695,828),4288=>array(29,-15,785,828),4289=>array(63,0,566,828),4290=>array(54,-15,635,837),4291=>array(29,0,532,828),4292=>array(54,0,540,828),4293=>array(39,-15,699,837),4304=>array(49,-15,459,592),4305=>array(49,-14,469,837),4306=>array(44,-235,537,551),4307=>array(49,-230,759,547),4308=>array(49,-236,449,547),4309=>array(49,-236,459,547),4310=>array(20,-14,452,838),4311=>array(49,-14,752,547),4312=>array(49,0,469,547),4313=>array(44,-236,456,542),4314=>array(49,-230,1016,552),4315=>array(49,-15,459,837),4316=>array(63,-15,474,833),4317=>array(49,-0,737,547),4318=>array(49,-15,459,833),4319=>array(49,-236,458,551),4320=>array(49,0,747,833),4321=>array(63,-15,474,827),4322=>array(44,-236,610,680),4323=>array(5,-236,464,571),4324=>array(49,-236,766,547),4325=>array(49,-236,449,828),4326=>array(49,-230,737,546),4327=>array(49,-236,459,538),4328=>array(29,-15,454,837),4329=>array(63,0,474,837),4330=>array(44,-236,527,532),4331=>array(49,-14,458,828),4332=>array(64,-15,488,837),4333=>array(49,-236,471,827),4334=>array(63,-15,474,827),4335=>array(10,-235,444,572),4336=>array(49,-15,459,837),4337=>array(59,-15,469,837),4338=>array(49,-141,458,547),4339=>array(49,-236,459,546),4340=>array(49,-236,458,837),4341=>array(49,-15,515,837),4342=>array(49,-236,778,547),4343=>array(44,-236,508,547),4344=>array(49,-236,459,538),4345=>array(39,-236,532,551),4346=>array(49,-77,459,547),4347=>array(54,-10,394,484),4348=>array(49,420,270,837),5121=>array(8,1,676,730),5122=>array(8,0,676,1037),5123=>array(8,0,676,729),5124=>array(8,0,676,914),5125=>array(98,0,711,729),5126=>array(98,0,711,914),5127=>array(98,0,711,913),5129=>array(98,0,711,729),5130=>array(58,0,671,729),5131=>array(58,0,671,914),5132=>array(98,1,827,730),5133=>array(8,1,776,730),5134=>array(98,0,827,729),5135=>array(8,0,776,729),5136=>array(98,0,827,914),5137=>array(8,0,776,914),5138=>array(98,0,909,729),5139=>array(98,0,909,729),5140=>array(98,0,909,914),5141=>array(98,0,909,914),5142=>array(98,0,711,914),5143=>array(98,0,869,729),5144=>array(58,0,909,729),5145=>array(98,0,869,914),5146=>array(58,0,909,914),5147=>array(58,0,671,914),5149=>array(98,629,198,729),5150=>array(67,326,488,734),5151=>array(46,356,362,714),5152=>array(46,356,362,714),5153=>array(67,398,334,674),5154=>array(67,391,334,667),5155=>array(67,398,338,667),5156=>array(67,398,334,667),5157=>array(35,327,405,733),5158=>array(67,326,331,734),5159=>array(98,312,198,412),5160=>array(67,503,334,563),5161=>array(67,399,334,667),5162=>array(67,399,334,691),5163=>array(8,1,1028,730),5164=>array(8,0,847,729),5165=>array(98,0,892,729),5166=>array(58,0,1055,729),5167=>array(8,0,676,729),5168=>array(8,0,676,1037),5169=>array(8,0,676,729),5170=>array(8,0,676,914),5171=>array(58,0,671,729),5172=>array(58,0,671,914),5173=>array(58,0,671,913),5175=>array(58,0,671,729),5176=>array(58,0,671,729),5177=>array(58,0,671,914),5178=>array(98,0,827,729),5179=>array(8,0,776,729),5180=>array(98,0,827,729),5181=>array(8,0,776,729),5182=>array(98,0,827,914),5183=>array(8,0,776,914),5184=>array(98,0,869,729),5185=>array(58,0,909,729),5186=>array(98,0,869,914),5187=>array(58,0,909,914),5188=>array(98,0,869,729),5189=>array(58,0,909,729),5190=>array(98,0,869,914),5191=>array(58,0,909,914),5192=>array(58,0,671,913),5193=>array(67,326,453,734),5194=>array(67,326,137,734),5196=>array(87,-14,645,729),5197=>array(87,0,645,1037),5198=>array(87,0,645,743),5199=>array(87,0,645,914),5200=>array(58,0,671,729),5201=>array(58,0,671,914),5202=>array(58,0,671,913),5204=>array(58,0,671,729),5205=>array(59,0,672,729),5206=>array(59,0,672,914),5207=>array(98,-14,834,729),5208=>array(87,-14,831,729),5209=>array(98,0,834,743),5210=>array(87,0,831,743),5211=>array(98,0,834,914),5212=>array(87,0,831,914),5213=>array(98,0,869,729),5214=>array(58,0,842,729),5215=>array(98,0,869,914),5216=>array(58,0,842,914),5217=>array(98,0,889,729),5218=>array(59,0,842,729),5219=>array(98,0,889,914),5220=>array(59,0,842,914),5221=>array(117,0,889,729),5222=>array(67,326,379,734),5223=>array(87,-14,823,734),5224=>array(87,0,823,743),5225=>array(58,0,811,734),5226=>array(59,0,835,734),5227=>array(34,0,530,743),5228=>array(98,0,594,1037),5229=>array(98,0,594,743),5230=>array(98,0,594,914),5231=>array(34,-14,530,729),5232=>array(34,-14,530,914),5233=>array(34,-14,623,913),5234=>array(98,-14,594,729),5235=>array(98,-14,594,914),5236=>array(98,0,762,743),5237=>array(34,0,712,743),5238=>array(98,0,781,743),5239=>array(98,0,758,743),5240=>array(98,0,781,914),5241=>array(98,0,758,914),5242=>array(98,-14,762,729),5243=>array(34,-14,712,729),5244=>array(98,-14,762,914),5245=>array(34,-14,712,914),5246=>array(98,-14,781,729),5247=>array(98,-14,758,729),5248=>array(98,-14,781,914),5249=>array(98,-14,758,914),5250=>array(117,-14,781,729),5251=>array(67,318,379,734),5252=>array(27,318,340,734),5253=>array(34,0,696,743),5254=>array(98,0,720,743),5255=>array(34,-14,696,734),5256=>array(98,-14,720,734),5257=>array(34,0,530,743),5258=>array(98,0,594,1037),5259=>array(98,0,594,743),5260=>array(98,0,594,914),5261=>array(34,-14,530,729),5262=>array(34,-14,530,914),5263=>array(34,-14,623,913),5264=>array(98,-14,594,729),5265=>array(98,-14,594,914),5266=>array(98,0,762,743),5267=>array(34,0,712,743),5268=>array(98,0,781,743),5269=>array(98,0,758,743),5270=>array(98,0,781,914),5271=>array(98,0,758,914),5272=>array(98,-14,762,729),5273=>array(34,-14,712,729),5274=>array(98,-14,762,914),5275=>array(34,-14,712,914),5276=>array(98,-14,781,729),5277=>array(98,-14,758,729),5278=>array(98,-14,781,914),5279=>array(98,-14,758,914),5280=>array(117,-14,781,729),5281=>array(67,318,379,734),5282=>array(67,318,379,734),5283=>array(58,0,512,729),5284=>array(98,0,552,1037),5285=>array(98,0,552,729),5286=>array(98,0,552,914),5287=>array(58,0,512,729),5288=>array(58,0,512,914),5289=>array(58,0,607,913),5290=>array(98,0,552,729),5291=>array(98,0,552,914),5292=>array(98,0,651,729),5293=>array(58,0,710,729),5294=>array(98,0,741,729),5295=>array(98,0,706,729),5296=>array(98,0,741,914),5297=>array(98,0,706,914),5298=>array(98,0,651,729),5299=>array(58,0,710,729),5300=>array(98,0,651,914),5301=>array(58,0,710,914),5302=>array(98,0,741,729),5303=>array(98,0,706,729),5304=>array(98,0,741,914),5305=>array(98,0,706,914),5306=>array(117,0,741,729),5307=>array(67,326,331,734),5308=>array(67,326,453,734),5309=>array(67,326,331,734),5312=>array(58,-14,817,436),5313=>array(34,-14,793,755),5314=>array(34,-14,793,436),5315=>array(5,-14,765,636),5316=>array(58,0,817,450),5317=>array(58,0,817,636),5318=>array(58,0,817,635),5319=>array(34,0,793,450),5320=>array(34,0,793,636),5321=>array(98,-14,1035,436),5322=>array(58,-14,977,436),5323=>array(98,0,1025,450),5324=>array(34,0,793,450),5325=>array(98,0,1025,636),5326=>array(34,0,793,636),5327=>array(34,0,793,635),5328=>array(67,484,545,736),5329=>array(67,318,397,734),5330=>array(67,484,545,736),5331=>array(58,0,817,450),5332=>array(34,0,793,755),5333=>array(34,0,793,450),5334=>array(34,0,793,636),5335=>array(58,0,817,450),5336=>array(58,0,817,636),5337=>array(58,0,817,635),5338=>array(34,0,793,450),5339=>array(34,0,793,636),5340=>array(98,0,1035,450),5341=>array(58,0,977,450),5342=>array(98,0,1025,450),5343=>array(34,0,972,450),5344=>array(98,0,1025,636),5345=>array(34,0,972,636),5346=>array(98,0,1035,450),5347=>array(58,0,977,450),5348=>array(98,0,1035,636),5349=>array(58,0,977,636),5350=>array(98,0,1025,450),5351=>array(34,0,972,450),5352=>array(98,0,1025,636),5353=>array(34,0,972,636),5354=>array(67,484,545,736),5356=>array(58,0,671,729),5357=>array(34,0,505,729),5358=>array(98,0,649,1037),5359=>array(98,0,569,729),5360=>array(98,0,569,914),5361=>array(34,0,505,729),5362=>array(34,0,505,914),5363=>array(34,0,600,913),5364=>array(98,0,569,729),5365=>array(98,0,569,914),5366=>array(98,0,736,729),5367=>array(34,0,696,729),5368=>array(98,0,758,729),5369=>array(98,0,713,729),5370=>array(98,0,758,914),5371=>array(98,0,713,914),5372=>array(98,0,736,729),5373=>array(34,0,696,729),5374=>array(98,0,736,914),5375=>array(34,0,696,914),5376=>array(98,0,758,729),5377=>array(98,0,713,729),5378=>array(98,0,758,914),5379=>array(98,0,713,914),5380=>array(117,0,758,729),5381=>array(67,326,363,734),5382=>array(67,318,365,741),5383=>array(67,326,363,734),5392=>array(34,-14,678,743),5393=>array(34,-14,678,743),5394=>array(34,-14,678,914),5395=>array(34,-14,857,464),5396=>array(34,-14,857,636),5397=>array(34,-14,857,464),5398=>array(34,-14,857,636),5399=>array(98,-14,875,743),5400=>array(34,-14,814,743),5401=>array(98,-14,875,743),5402=>array(34,-14,814,743),5403=>array(98,-14,875,914),5404=>array(34,-14,814,914),5405=>array(98,-14,1106,464),5406=>array(34,-14,1042,464),5407=>array(98,-14,1106,636),5408=>array(34,-14,1042,636),5409=>array(98,-14,1106,464),5410=>array(34,-14,1042,464),5411=>array(98,-14,1106,636),5412=>array(34,-14,1042,636),5413=>array(67,476,585,737),5414=>array(58,0,529,729),5415=>array(98,0,569,1037),5416=>array(98,0,569,729),5417=>array(98,0,569,914),5418=>array(58,0,529,729),5419=>array(58,0,531,914),5420=>array(58,0,626,913),5421=>array(98,0,569,729),5422=>array(98,0,569,914),5423=>array(98,0,746,729),5424=>array(58,0,723,729),5425=>array(98,0,758,729),5426=>array(98,0,760,729),5427=>array(98,0,758,914),5428=>array(98,0,760,914),5429=>array(98,0,746,729),5430=>array(58,0,723,729),5431=>array(98,0,749,914),5432=>array(58,0,723,914),5433=>array(98,0,758,729),5434=>array(98,0,760,729),5435=>array(98,0,758,914),5436=>array(98,0,760,914),5437=>array(117,0,758,729),5438=>array(67,326,363,734),5440=>array(67,399,334,667),5441=>array(67,326,429,734),5442=>array(98,-14,857,436),5443=>array(58,-14,817,436),5444=>array(58,0,817,450),5445=>array(98,0,857,755),5446=>array(98,0,857,450),5447=>array(98,0,857,636),5448=>array(98,0,569,729),5449=>array(98,0,569,914),5450=>array(98,0,569,729),5451=>array(34,0,505,729),5452=>array(34,0,505,914),5453=>array(34,0,505,729),5454=>array(98,0,736,914),5455=>array(34,0,696,914),5456=>array(67,326,363,734),5458=>array(58,0,671,729),5459=>array(73,0,676,744),5460=>array(73,-15,676,1037),5461=>array(73,-15,676,729),5462=>array(73,-15,676,914),5463=>array(38,0,668,662),5464=>array(38,0,668,914),5465=>array(58,0,688,662),5466=>array(58,0,688,914),5467=>array(98,0,886,914),5468=>array(58,0,909,914),5469=>array(67,326,462,695),5470=>array(87,-14,645,743),5471=>array(87,-14,645,743),5472=>array(87,-14,645,743),5473=>array(87,-14,645,743),5474=>array(87,-14,645,914),5475=>array(87,-14,645,914),5476=>array(41,0,671,729),5477=>array(41,0,671,914),5478=>array(59,0,689,729),5479=>array(59,0,689,914),5480=>array(98,0,907,914),5481=>array(59,0,842,914),5482=>array(67,326,467,734),5492=>array(34,0,772,743),5493=>array(58,0,796,743),5494=>array(58,0,796,914),5495=>array(34,-14,772,729),5496=>array(34,-14,772,914),5497=>array(58,-14,796,729),5498=>array(58,-14,796,914),5499=>array(67,318,508,734),5500=>array(98,0,654,729),5501=>array(67,326,429,734),5502=>array(67,0,1013,1037),5503=>array(67,0,1013,743),5504=>array(67,0,1013,914),5505=>array(67,-14,949,734),5506=>array(67,-14,949,914),5507=>array(67,-14,1013,734),5508=>array(67,-14,1013,914),5509=>array(67,318,798,734),5514=>array(34,0,772,743),5515=>array(58,0,796,743),5516=>array(34,-14,772,729),5517=>array(58,-14,796,729),5518=>array(67,0,1225,1037),5519=>array(67,0,1225,743),5520=>array(67,0,1225,914),5521=>array(67,-14,904,736),5522=>array(67,-14,904,914),5523=>array(67,-14,1225,736),5524=>array(67,-14,1225,914),5525=>array(67,332,645,736),5526=>array(67,332,1018,736),5536=>array(34,0,793,692),5537=>array(34,0,793,692),5538=>array(58,-242,817,450),5539=>array(58,-242,817,636),5540=>array(34,-242,793,450),5541=>array(34,-242,793,636),5542=>array(67,338,545,736),5543=>array(58,0,627,729),5544=>array(16,0,585,729),5545=>array(16,0,585,914),5546=>array(58,0,627,729),5547=>array(58,0,627,914),5548=>array(16,0,585,729),5549=>array(16,0,585,914),5550=>array(5,326,363,734),5551=>array(98,-14,594,729),5598=>array(98,0,711,729),5601=>array(56,0,669,729),5702=>array(67,326,413,734),5703=>array(67,240,413,820),5742=>array(57,0,391,306),5743=>array(67,0,949,743),5744=>array(67,0,1211,743),5745=>array(67,0,1598,743),5746=>array(67,0,1598,914),5747=>array(67,-14,1277,736),5748=>array(67,-14,1277,914),5749=>array(67,-14,1598,736),5750=>array(67,-14,1598,914),5760=>array(-10,246,487,328),5761=>array(-10,-125,502,328),5762=>array(-10,-125,722,328),5763=>array(-10,-125,941,328),5764=>array(-10,-125,1160,328),5765=>array(-10,-125,1379,328),5766=>array(-10,246,502,697),5767=>array(-10,246,722,697),5768=>array(-10,246,941,697),5769=>array(-10,246,1160,697),5770=>array(-10,246,1379,697),5771=>array(-10,-125,508,697),5772=>array(-10,-125,728,697),5773=>array(-10,-125,948,697),5774=>array(-10,-125,1168,697),5775=>array(-10,-125,1389,697),5776=>array(-10,41,502,533),5777=>array(-10,41,722,533),5778=>array(-10,41,939,533),5779=>array(-10,41,1159,533),5780=>array(-10,41,1379,533),5781=>array(-10,-125,508,697),5782=>array(-10,-125,762,697),5783=>array(-10,-83,798,328),5784=>array(-10,-240,1214,328),5785=>array(-10,246,1160,902),5786=>array(-10,82,693,328),5787=>array(55,28,517,544),5788=>array(-10,28,452,544),7424=>array(30,0,562,547),7425=>array(5,0,669,547),7426=>array(60,-14,929,560),7427=>array(30,0,530,547),7428=>array(55,-14,488,560),7429=>array(91,0,550,547),7430=>array(18,0,550,547),7431=>array(91,0,443,547),7432=>array(63,-14,471,561),7433=>array(94,-213,184,547),7434=>array(0,-14,310,547),7435=>array(91,0,576,547),7436=>array(1,0,498,560),7437=>array(91,0,664,547),7438=>array(91,0,559,547),7439=>array(55,-14,557,560),7440=>array(62,-14,495,560),7441=>array(55,22,629,524),7442=>array(55,57,629,489),7443=>array(25,2,663,543),7444=>array(55,-14,970,560),7446=>array(55,273,557,560),7447=>array(55,-14,557,273),7448=>array(74,0,475,547),7449=>array(24,0,507,547),7450=>array(24,0,507,547),7451=>array(29,0,553,547),7452=>array(91,-16,510,547),7453=>array(85,37,646,495),7454=>array(85,38,857,496),7455=>array(23,-238,583,560),7456=>array(30,0,562,547),7457=>array(42,0,776,547),7458=>array(43,0,482,547),7459=>array(59,-14,466,547),7462=>array(87,0,498,560),7463=>array(30,0,562,547),7464=>array(74,0,490,547),7465=>array(74,0,475,547),7466=>array(44,0,546,547),7467=>array(37,0,556,547),7468=>array(5,326,426,734),7469=>array(2,326,573,734),7470=>array(62,326,388,734),7472=>array(62,326,448,734),7473=>array(62,326,358,734),7474=>array(41,326,336,734),7475=>array(35,318,437,742),7476=>array(62,326,412,734),7477=>array(62,326,124,734),7478=>array(-33,214,124,734),7479=>array(62,326,426,734),7480=>array(62,326,348,734),7481=>array(62,326,482,734),7482=>array(62,326,410,734),7483=>array(62,326,410,734),7484=>array(35,318,460,742),7485=>array(35,318,405,742),7486=>array(62,326,358,734),7487=>array(62,326,419,734),7488=>array(-2,326,387,734),7489=>array(55,318,406,734),7490=>array(21,326,603,734),7491=>array(38,318,329,640),7492=>array(38,318,329,640),7493=>array(35,318,343,640),7494=>array(38,318,585,640),7495=>array(57,318,365,751),7496=>array(35,318,343,751),7497=>array(35,318,354,640),7498=>array(35,318,354,640),7499=>array(41,318,298,640),7500=>array(40,318,297,640),7501=>array(35,209,343,640),7502=>array(60,207,116,632),7503=>array(57,326,363,751),7504=>array(57,326,560,640),7505=>array(57,209,346,640),7506=>array(35,318,351,640),7507=>array(35,318,307,640),7508=>array(35,479,351,640),7509=>array(35,318,351,479),7510=>array(57,209,365,640),7511=>array(17,326,232,719),7512=>array(54,318,342,632),7513=>array(54,347,407,604),7514=>array(57,319,560,633),7515=>array(19,326,354,632),7517=>array(59,209,357,755),7518=>array(10,209,354,632),7519=>array(35,318,351,742),7520=>array(35,209,379,635),7521=>array(18,209,346,633),7522=>array(60,0,116,425),7523=>array(57,0,259,313),7524=>array(54,-8,342,306),7525=>array(19,0,354,306),7526=>array(59,-117,357,429),7527=>array(10,-117,354,306),7528=>array(59,-117,367,313),7529=>array(35,-117,379,309),7530=>array(18,-117,346,307),7543=>array(91,-208,580,560),7544=>array(62,326,412,734),7547=>array(57,0,314,547),7549=>array(24,-208,643,560),7557=>array(71,-208,273,760),7579=>array(35,318,343,640),7580=>array(35,318,307,640),7581=>array(35,287,307,640),7582=>array(35,318,351,751),7583=>array(41,318,298,640),7584=>array(15,326,234,751),7585=>array(-11,209,170,632),7586=>array(35,209,343,632),7587=>array(54,209,342,632),7588=>array(36,326,198,751),7589=>array(60,326,187,632),7590=>array(36,326,198,632),7591=>array(36,326,198,632),7592=>array(-83,209,172,751),7593=>array(60,209,187,751),7594=>array(44,209,172,751),7595=>array(55,326,314,640),7596=>array(57,209,560,640),7597=>array(57,209,560,633),7598=>array(-11,209,348,640),7599=>array(57,209,417,640),7600=>array(55,326,346,640),7601=>array(35,318,351,640),7602=>array(35,210,351,751),7603=>array(34,209,297,640),7604=>array(-11,209,224,751),7605=>array(17,209,232,719),7606=>array(46,318,445,632),7607=>array(35,318,355,632),7608=>array(57,317,321,632),7609=>array(60,326,343,632),7610=>array(19,326,354,632),7611=>array(27,326,304,632),7612=>array(27,209,374,632),7613=>array(27,296,304,632),7614=>array(27,207,330,632),7615=>array(35,320,351,756),7620=>array(-456,616,-44,800),7621=>array(-456,616,-44,800),7622=>array(-456,616,-44,800),7623=>array(-456,616,-44,800),7624=>array(-468,616,-32,800),7625=>array(-468,616,-32,800),7680=>array(8,-241,676,729),7681=>array(60,-241,522,560),7682=>array(98,0,615,914),7683=>array(90,-14,580,915),7684=>array(98,-183,615,729),7685=>array(91,-183,580,760),7686=>array(98,-156,615,729),7687=>array(91,-156,580,760),7688=>array(56,-193,644,928),7689=>array(55,-193,488,800),7690=>array(98,0,711,914),7691=>array(55,-14,544,942),7692=>array(98,-183,711,729),7693=>array(55,-183,544,760),7694=>array(98,-156,711,729),7695=>array(55,-156,544,760),7696=>array(98,-192,711,729),7697=>array(55,-193,544,760),7698=>array(98,-240,711,729),7699=>array(55,-240,544,760),7700=>array(98,0,568,1044),7701=>array(55,-14,562,921),7702=>array(98,0,568,1044),7703=>array(55,-14,562,921),7704=>array(98,-213,568,729),7705=>array(55,-213,562,560),7706=>array(98,-192,568,729),7707=>array(55,-192,562,560),7708=>array(98,-193,568,928),7709=>array(55,-193,562,785),7710=>array(98,0,517,914),7711=>array(23,0,371,942),7712=>array(56,-14,693,887),7713=>array(55,-208,544,745),7714=>array(98,0,654,913),7715=>array(90,0,549,915),7716=>array(98,-183,654,729),7717=>array(91,-183,549,760),7718=>array(98,0,654,914),7719=>array(-9,0,549,913),7720=>array(8,-193,654,729),7721=>array(1,-193,549,760),7722=>array(98,-222,654,729),7723=>array(91,-222,549,760),7724=>array(0,-192,322,729),7725=>array(-22,-192,300,760),7726=>array(3,0,293,1044),7727=>array(-6,0,284,886),7728=>array(98,0,677,928),7729=>array(91,0,576,928),7730=>array(98,-183,677,729),7731=>array(91,-183,576,760),7732=>array(98,-156,677,729),7733=>array(91,-156,576,760),7734=>array(98,-183,552,729),7735=>array(98,-183,189,760),7736=>array(1,-183,552,927),7737=>array(-1,-183,291,899),7738=>array(98,-156,552,729),7739=>array(-6,-156,286,760),7740=>array(98,-240,552,729),7741=>array(-17,-240,295,760),7742=>array(98,0,765,928),7743=>array(91,0,889,800),7744=>array(98,0,765,914),7745=>array(91,0,889,760),7746=>array(98,-183,765,729),7747=>array(91,-183,889,560),7748=>array(98,0,650,914),7749=>array(91,0,549,760),7750=>array(98,-183,650,729),7751=>array(91,-183,549,560),7752=>array(98,-156,650,729),7753=>array(91,-156,549,560),7754=>array(98,-240,650,729),7755=>array(91,-240,549,560),7756=>array(56,-14,731,1044),7757=>array(55,-14,557,881),7758=>array(56,-14,731,1042),7759=>array(55,-14,557,882),7760=>array(56,-14,731,1044),7761=>array(55,-14,557,921),7762=>array(56,-14,731,1044),7763=>array(55,-14,557,921),7764=>array(98,0,569,928),7765=>array(91,-208,580,800),7766=>array(98,0,569,914),7767=>array(91,-208,580,760),7768=>array(98,0,666,913),7769=>array(91,0,411,760),7770=>array(98,-183,666,729),7771=>array(91,-183,411,560),7772=>array(98,-183,666,899),7773=>array(91,-183,411,745),7774=>array(98,-156,666,729),7775=>array(41,-156,411,560),7776=>array(66,-14,579,914),7777=>array(54,-14,472,760),7778=>array(66,-183,579,742),7779=>array(54,-183,472,560),7780=>array(66,-14,579,928),7781=>array(54,-14,485,800),7782=>array(66,-14,579,1042),7783=>array(54,-14,472,973),7784=>array(66,-183,579,914),7785=>array(54,-183,472,733),7786=>array(-3,0,614,914),7787=>array(27,0,368,942),7788=>array(-3,-183,614,729),7789=>array(27,-183,368,702),7790=>array(-3,-156,614,729),7791=>array(27,-156,390,702),7792=>array(-3,-240,614,729),7793=>array(27,-240,394,702),7794=>array(87,-183,645,729),7795=>array(85,-183,543,560),7796=>array(87,-192,645,729),7797=>array(85,-192,543,560),7798=>array(87,-213,645,729),7799=>array(85,-213,543,560),7800=>array(87,-14,645,1044),7801=>array(85,-14,543,990),7802=>array(87,-14,645,1025),7803=>array(85,-14,543,869),7804=>array(8,0,676,936),7805=>array(30,0,562,777),7806=>array(8,-183,676,729),7807=>array(30,-183,562,547),7808=>array(33,0,956,931),7809=>array(42,0,776,802),7810=>array(33,0,956,931),7811=>array(42,0,776,803),7812=>array(33,0,956,913),7813=>array(42,0,776,758),7814=>array(33,0,956,913),7815=>array(42,0,776,760),7816=>array(33,-183,956,729),7817=>array(42,-183,776,547),7818=>array(30,0,654,914),7819=>array(29,0,559,760),7820=>array(30,0,654,913),7821=>array(29,0,559,758),7822=>array(-2,0,613,914),7823=>array(30,-208,562,760),7824=>array(45,0,640,928),7825=>array(43,0,482,800),7826=>array(45,-183,640,729),7827=>array(43,-183,482,547),7828=>array(45,-156,640,729),7829=>array(43,-156,482,547),7830=>array(91,-156,549,760),7831=>array(2,0,368,913),7832=>array(42,0,776,878),7833=>array(30,-208,562,878),7834=>array(60,-14,672,760),7835=>array(23,0,371,942),7836=>array(1,0,371,760),7837=>array(23,0,371,760),7838=>array(87,-14,713,743),7839=>array(55,-14,557,742),7840=>array(8,-183,676,729),7841=>array(60,-183,522,560),7842=>array(8,0,676,992),7843=>array(60,-14,522,810),7844=>array(8,0,676,1028),7845=>array(60,-14,585,846),7846=>array(8,0,676,1028),7847=>array(60,-14,522,847),7848=>array(8,0,676,1044),7849=>array(60,-14,577,862),7850=>array(8,0,676,1057),7851=>array(60,-14,522,875),7852=>array(8,-183,676,928),7853=>array(60,-183,522,800),7854=>array(8,0,676,1044),7855=>array(60,-14,522,877),7856=>array(8,0,676,1044),7857=>array(60,-14,522,877),7858=>array(8,0,676,1068),7859=>array(60,-14,522,901),7860=>array(8,0,676,1043),7861=>array(60,-14,522,876),7862=>array(8,-183,676,946),7863=>array(60,-183,522,765),7864=>array(98,-183,568,729),7865=>array(55,-183,562,560),7866=>array(98,0,568,992),7867=>array(55,-14,562,810),7868=>array(98,0,568,921),7869=>array(55,-14,562,777),7870=>array(98,0,637,1028),7871=>array(55,-14,613,846),7872=>array(98,0,568,1028),7873=>array(55,-14,562,847),7874=>array(98,0,620,1044),7875=>array(55,-14,605,862),7876=>array(98,0,568,1057),7877=>array(55,-14,562,875),7878=>array(98,-183,568,928),7879=>array(55,-183,562,800),7880=>array(44,0,263,992),7881=>array(33,0,252,811),7882=>array(98,-183,197,729),7883=>array(93,-183,184,760),7884=>array(56,-183,731,742),7885=>array(55,-183,557,560),7886=>array(56,-14,731,992),7887=>array(55,-14,557,810),7888=>array(56,-14,731,1028),7889=>array(55,-14,601,846),7890=>array(56,-14,731,1028),7891=>array(55,-14,557,847),7892=>array(56,-14,731,1044),7893=>array(55,-14,592,862),7894=>array(56,-14,731,1057),7895=>array(55,-14,557,875),7896=>array(56,-183,731,928),7897=>array(55,-183,557,800),7898=>array(50,-14,764,927),7899=>array(58,-14,603,800),7900=>array(50,-14,764,927),7901=>array(58,-14,603,800),7902=>array(50,-14,764,992),7903=>array(58,-14,603,810),7904=>array(50,-14,764,921),7905=>array(58,-14,603,777),7906=>array(50,-183,764,760),7907=>array(58,-183,603,615),7908=>array(87,-183,645,729),7909=>array(85,-183,543,560),7910=>array(87,-14,645,992),7911=>array(85,-14,543,810),7912=>array(84,-4,796,927),7913=>array(86,-14,676,800),7914=>array(84,-4,796,927),7915=>array(86,-14,676,800),7916=>array(84,-4,796,992),7917=>array(86,-14,676,810),7918=>array(84,-4,796,921),7919=>array(86,-14,676,777),7920=>array(84,-183,796,760),7921=>array(86,-183,676,615),7922=>array(-2,0,613,931),7923=>array(30,-208,562,802),7924=>array(-2,-183,613,729),7925=>array(30,-208,562,547),7926=>array(-2,0,613,996),7927=>array(30,-208,562,813),7928=>array(-2,0,613,921),7929=>array(30,-208,562,777),7930=>array(98,0,764,729),7931=>array(16,0,462,760),7936=>array(55,-12,611,797),7937=>array(55,-12,611,797),7938=>array(55,-12,611,800),7939=>array(55,-12,611,800),7940=>array(55,-12,611,800),7941=>array(55,-12,611,800),7942=>array(55,-12,611,928),7943=>array(55,-12,611,928),7944=>array(8,0,676,797),7945=>array(8,0,676,797),7946=>array(2,0,869,800),7947=>array(3,0,869,800),7948=>array(3,0,761,800),7949=>array(2,0,793,800),7950=>array(3,0,700,928),7951=>array(2,0,734,928),7952=>array(65,-14,473,797),7953=>array(65,-14,473,797),7954=>array(65,-14,473,800),7955=>array(65,-14,473,800),7956=>array(65,-14,486,800),7957=>array(65,-14,501,800),7960=>array(3,0,647,797),7961=>array(3,0,647,797),7962=>array(2,0,902,800),7963=>array(3,0,911,800),7964=>array(3,0,834,800),7965=>array(2,0,864,800),7968=>array(91,-208,549,797),7969=>array(91,-208,549,797),7970=>array(91,-208,549,800),7971=>array(91,-208,549,800),7972=>array(91,-208,549,800),7973=>array(91,-208,549,800),7974=>array(91,-208,549,928),7975=>array(91,-208,549,928),7976=>array(3,0,739,797),7977=>array(3,0,737,797),7978=>array(2,0,988,800),7979=>array(3,0,991,800),7980=>array(3,0,929,800),7981=>array(2,0,953,800),7982=>array(3,0,835,928),7983=>array(2,0,849,928),7984=>array(76,0,304,797),7985=>array(71,0,304,797),7986=>array(-39,0,340,800),7987=>array(-34,0,347,800),7988=>array(2,0,362,800),7989=>array(-22,0,366,800),7990=>array(-26,0,304,928),7991=>array(-28,0,304,928),7992=>array(3,0,282,797),7993=>array(3,0,276,797),7994=>array(2,0,537,800),7995=>array(3,0,537,800),7996=>array(3,0,472,800),7997=>array(2,0,501,800),7998=>array(3,0,392,928),7999=>array(2,0,395,928),8000=>array(55,-14,557,797),8001=>array(55,-14,557,797),8002=>array(55,-14,557,800),8003=>array(55,-14,557,800),8004=>array(55,-14,557,800),8005=>array(55,-14,557,800),8008=>array(3,-14,748,797),8009=>array(3,-14,792,797),8010=>array(2,-14,1039,800),8011=>array(3,-14,1043,800),8012=>array(3,-14,882,800),8013=>array(2,-14,914,800),8016=>array(73,-14,521,797),8017=>array(73,-14,521,797),8018=>array(73,-14,521,800),8019=>array(73,-14,521,800),8020=>array(73,-14,521,800),8021=>array(73,-14,521,800),8022=>array(73,-14,521,928),8023=>array(73,-14,521,928),8025=>array(3,0,786,797),8027=>array(3,0,1000,800),8029=>array(2,0,1014,800),8031=>array(2,0,900,928),8032=>array(66,-14,769,797),8033=>array(66,-14,769,797),8034=>array(66,-14,769,800),8035=>array(66,-14,769,800),8036=>array(66,-14,769,800),8037=>array(66,-14,769,800),8038=>array(66,-14,769,928),8039=>array(66,-14,769,928),8040=>array(3,0,764,797),8041=>array(3,0,805,797),8042=>array(2,0,1051,800),8043=>array(3,0,1057,800),8044=>array(3,0,908,800),8045=>array(2,0,934,800),8046=>array(3,0,883,928),8047=>array(2,0,914,928),8048=>array(55,-12,611,800),8049=>array(55,-12,611,800),8050=>array(65,-14,473,800),8051=>array(65,-14,473,800),8052=>array(91,-208,549,800),8053=>array(91,-208,549,800),8054=>array(-56,0,304,800),8055=>array(81,0,324,800),8056=>array(55,-14,557,800),8057=>array(55,-14,557,800),8058=>array(73,-14,521,800),8059=>array(73,-14,521,800),8060=>array(66,-14,769,800),8061=>array(66,-14,769,800),8064=>array(55,-208,611,797),8065=>array(55,-208,611,797),8066=>array(55,-208,611,800),8067=>array(55,-208,611,800),8068=>array(55,-208,611,800),8069=>array(55,-208,611,800),8070=>array(55,-208,611,928),8071=>array(55,-208,611,928),8072=>array(8,-208,676,797),8073=>array(8,-208,676,797),8074=>array(2,-208,869,800),8075=>array(3,-208,869,800),8076=>array(3,-208,761,800),8077=>array(2,-208,793,800),8078=>array(3,-208,700,928),8079=>array(2,-208,734,928),8080=>array(91,-208,549,797),8081=>array(91,-208,549,797),8082=>array(91,-208,549,800),8083=>array(91,-208,549,800),8084=>array(91,-208,549,800),8085=>array(91,-208,549,800),8086=>array(91,-208,549,928),8087=>array(91,-208,549,928),8088=>array(3,-208,739,797),8089=>array(3,-208,737,797),8090=>array(2,-208,988,800),8091=>array(3,-208,991,800),8092=>array(3,-208,929,800),8093=>array(2,-208,953,800),8094=>array(3,-208,835,928),8095=>array(2,-208,849,928),8096=>array(66,-208,769,797),8097=>array(66,-208,769,797),8098=>array(66,-208,769,800),8099=>array(66,-208,769,800),8100=>array(66,-208,769,800),8101=>array(66,-208,769,800),8102=>array(66,-208,769,928),8103=>array(66,-208,769,928),8104=>array(3,-208,764,797),8105=>array(3,-208,805,797),8106=>array(2,-208,1051,800),8107=>array(3,-208,1057,800),8108=>array(3,-208,908,800),8109=>array(2,-208,934,800),8110=>array(3,-208,883,928),8111=>array(2,-208,914,928),8112=>array(55,-12,611,785),8113=>array(55,-12,611,745),8114=>array(55,-208,611,800),8115=>array(55,-208,611,559),8116=>array(55,-208,611,800),8118=>array(55,-12,611,777),8119=>array(55,-208,611,777),8120=>array(8,0,676,928),8121=>array(8,0,676,899),8122=>array(-2,0,708,800),8123=>array(8,0,676,800),8124=>array(8,-208,676,729),8125=>array(190,595,309,797),8126=>array(214,-208,321,-45),8127=>array(190,595,309,797),8128=>array(89,639,411,777),8129=>array(89,659,411,928),8130=>array(91,-208,549,800),8131=>array(91,-208,549,560),8132=>array(91,-208,549,800),8134=>array(91,-208,549,777),8135=>array(91,-208,549,777),8136=>array(-2,0,741,800),8137=>array(-12,0,682,800),8138=>array(-2,0,833,800),8139=>array(-6,0,765,800),8140=>array(98,-208,654,729),8141=>array(67,595,446,800),8142=>array(88,595,447,800),8143=>array(89,595,411,928),8144=>array(-10,0,304,785),8145=>array(-14,0,304,745),8146=>array(-20,0,304,978),8147=>array(2,0,313,978),8150=>array(-14,0,309,777),8151=>array(-13,0,310,928),8152=>array(-5,0,300,928),8153=>array(1,0,293,899),8154=>array(-2,0,377,800),8155=>array(-9,0,311,800),8157=>array(62,595,443,800),8158=>array(73,595,461,800),8159=>array(89,595,411,928),8160=>array(73,-14,521,785),8161=>array(73,-14,521,745),8162=>array(73,-14,521,978),8163=>array(73,-14,521,978),8164=>array(91,-208,580,797),8165=>array(91,-208,580,797),8166=>array(73,-14,521,777),8167=>array(73,-14,521,928),8168=>array(-2,0,613,928),8169=>array(-2,0,613,899),8170=>array(-2,0,847,800),8171=>array(-15,0,821,800),8172=>array(3,0,651,797),8173=>array(83,659,395,978),8174=>array(105,659,415,978),8175=>array(83,617,317,800),8178=>array(66,-208,769,800),8179=>array(66,-208,769,547),8180=>array(66,-208,769,800),8182=>array(66,-14,769,777),8183=>array(66,-208,769,777),8184=>array(-2,-14,885,800),8185=>array(-7,-14,750,800),8186=>array(-2,0,884,800),8187=>array(-18,0,752,800),8188=>array(38,-208,726,738),8189=>array(181,616,415,800),8190=>array(190,595,309,797),8208=>array(49,234,312,314),8209=>array(49,234,312,314),8210=>array(49,239,587,309),8211=>array(49,239,451,309),8212=>array(49,239,951,309),8213=>array(0,239,1000,309),8214=>array(127,-236,371,764),8215=>array(-10,-236,510,-9),8216=>array(85,489,228,729),8217=>array(87,499,230,729),8218=>array(85,-116,228,124),8219=>array(87,499,230,729),8220=>array(85,489,428,729),8221=>array(85,489,428,729),8222=>array(85,-116,428,124),8223=>array(85,489,428,729),8224=>array(28,-96,472,729),8225=>array(28,-96,472,729),8226=>array(150,227,440,516),8227=>array(150,188,479,555),8228=>array(115,0,219,124),8229=>array(115,0,552,124),8230=>array(115,0,885,124),8231=>array(107,302,210,426),8240=>array(55,-14,1287,742),8241=>array(55,-14,1681,742),8242=>array(20,547,203,729),8243=>array(20,547,350,729),8244=>array(20,547,496,729),8245=>array(20,547,203,729),8246=>array(20,547,350,729),8247=>array(20,547,496,729),8248=>array(5,-236,333,-30),8249=>array(77,69,306,517),8250=>array(94,69,323,517),8251=>array(95,2,740,725),8252=>array(72,0,414,729),8253=>array(72,0,461,742),8254=>array(-10,686,510,755),8255=>array(-43,-237,847,-60),8256=>array(-43,752,847,929),8257=>array(-42,-236,286,229),8258=>array(30,-29,970,814),8259=>array(108,313,400,421),8260=>array(-183,-14,350,742),8261=>array(86,-132,293,760),8262=>array(86,-132,293,760),8263=>array(36,0,886,742),8264=>array(72,0,661,742),8265=>array(72,0,661,742),8266=>array(49,-123,448,545),8267=>array(115,-96,566,729),8268=>array(105,220,395,509),8269=>array(105,220,395,509),8270=>array(30,-29,470,427),8271=>array(139,-116,282,517),8272=>array(-43,-237,847,929),8273=>array(30,-7,470,929),8274=>array(71,-93,408,729),8275=>array(49,228,951,399),8276=>array(-43,-240,847,-63),8277=>array(152,98,686,631),8278=>array(122,149,464,589),8279=>array(20,547,643,729),8280=>array(175,125,663,613),8281=>array(175,120,663,608),8282=>array(107,0,210,729),8283=>array(49,-138,749,867),8284=>array(55,0,783,729),8285=>array(107,39,210,655),8286=>array(107,8,210,683),8304=>array(42,319,366,742),8305=>array(60,326,116,751),8308=>array(31,326,369,734),8309=>array(50,319,353,734),8310=>array(45,319,369,742),8311=>array(53,326,354,734),8312=>array(43,319,365,742),8313=>array(41,319,364,742),8314=>array(67,326,461,677),8315=>array(67,479,461,525),8316=>array(67,422,461,581),8317=>array(54,252,195,751),8318=>array(50,252,191,751),8319=>array(57,326,346,640),8320=>array(42,-7,366,416),8321=>array(67,0,346,408),8322=>array(46,0,338,416),8323=>array(48,-7,350,416),8324=>array(31,0,369,408),8325=>array(50,-7,353,408),8326=>array(45,-7,369,416),8327=>array(53,0,354,408),8328=>array(43,-7,365,416),8329=>array(41,-7,364,416),8330=>array(67,0,461,351),8331=>array(67,152,461,199),8332=>array(67,96,461,254),8333=>array(54,-74,195,425),8334=>array(50,-74,191,425),8336=>array(38,-8,329,313),8337=>array(35,-8,354,313),8338=>array(35,-8,351,313),8339=>array(57,0,391,306),8340=>array(35,-8,354,313),8341=>array(57,0,346,425),8342=>array(57,0,363,425),8343=>array(60,0,116,425),8344=>array(57,0,560,313),8345=>array(57,0,346,313),8346=>array(57,-117,365,313),8347=>array(57,0,320,322),8348=>array(17,0,232,393),8352=>array(42,0,835,729),8353=>array(56,-44,593,778),8354=>array(47,-14,587,742),8355=>array(65,0,599,729),8356=>array(63,0,548,742),8357=>array(91,-93,889,640),8358=>array(57,0,691,729),8359=>array(98,-14,1226,729),8360=>array(98,-14,1025,729),8361=>array(29,0,960,729),8362=>array(46,-14,743,729),8363=>array(55,-156,619,760),8364=>array(0,-14,570,742),8365=>array(20,0,636,729),8366=>array(10,0,626,729),8367=>array(102,-222,1205,742),8368=>array(22,-14,569,742),8369=>array(33,0,579,729),8370=>array(45,-81,586,809),8371=>array(8,0,627,729),8372=>array(57,-14,717,742),8373=>array(81,-147,556,760),8376=>array(10,0,626,729),8377=>array(52,0,585,729),8378=>array(5,2,649,731),8400=>array(-491,635,-26,760),8401=>array(-470,635,-5,760),8406=>array(-470,560,-26,760),8407=>array(-470,560,-26,760),8411=>array(-491,560,-10,758),8412=>array(-586,560,86,758),8417=>array(-470,560,-26,760),8448=>array(33,-24,980,752),8449=>array(33,-24,999,752),8450=>array(56,-14,644,742),8451=>array(95,-14,1053,742),8452=>array(-21,0,637,729),8453=>array(29,-24,987,752),8454=>array(29,-24,1038,752),8455=>array(80,-14,560,742),8456=>array(54,-146,642,611),8457=>array(95,0,894,742),8459=>array(36,-14,943,748),8460=>array(1,-128,693,731),8461=>array(98,0,751,729),8462=>array(35,0,566,760),8463=>array(44,0,566,760),8464=>array(29,-15,432,742),8465=>array(52,-14,659,742),8466=>array(33,-14,679,743),8467=>array(-14,-14,353,742),8468=>array(16,-14,763,760),8469=>array(97,0,704,729),8470=>array(26,0,969,729),8471=>array(138,0,862,724),8472=>array(54,-221,658,495),8473=>array(98,0,666,729),8474=>array(56,-129,731,742),8475=>array(32,-9,764,774),8476=>array(41,-14,803,743),8477=>array(98,0,774,729),8478=>array(83,0,814,729),8479=>array(98,-107,666,847),8480=>array(126,443,770,730),8481=>array(-2,0,1023,547),8482=>array(144,447,784,729),8483=>array(8,-108,676,846),8484=>array(45,0,700,729),8485=>array(43,-213,523,760),8486=>array(38,0,726,738),8487=>array(38,-14,726,724),8488=>array(12,-149,573,783),8489=>array(33,0,255,547),8490=>array(98,0,677,729),8491=>array(8,0,676,928),8492=>array(45,0,734,772),8493=>array(63,-12,652,742),8494=>array(61,-12,793,647),8495=>array(42,-14,547,533),8496=>array(79,-14,565,742),8497=>array(41,-16,758,755),8498=>array(98,0,517,729),8499=>array(28,-28,1032,751),8500=>array(51,-12,411,395),8501=>array(50,-14,712,742),8502=>array(-2,-14,653,743),8503=>array(13,-35,407,742),8504=>array(42,-35,591,742),8505=>array(34,0,355,760),8506=>array(44,-21,915,654),8507=>array(74,0,1162,547),8508=>array(18,-8,685,547),8509=>array(0,-194,669,560),8510=>array(98,0,648,729),8511=>array(98,0,750,729),8512=>array(12,-192,791,719),8513=>array(80,-14,716,742),8514=>array(4,0,458,729),8515=>array(3,0,457,729),8516=>array(-2,0,613,729),8517=>array(42,0,786,729),8518=>array(44,-14,709,760),8519=>array(44,-14,572,560),8520=>array(39,0,313,760),8521=>array(-114,-208,313,760),8523=>array(29,-14,715,742),8526=>array(40,0,441,547),8528=>array(67,-14,922,742),8529=>array(67,-14,932,742),8530=>array(67,-14,1335,742),8531=>array(67,-14,918,742),8532=>array(46,-14,918,742),8533=>array(67,-14,921,742),8534=>array(46,-14,921,742),8535=>array(48,-14,921,742),8536=>array(31,-14,921,742),8537=>array(67,-14,937,742),8538=>array(50,-14,937,742),8539=>array(67,-14,933,742),8540=>array(48,-14,933,742),8541=>array(50,-14,933,742),8542=>array(53,-14,933,742),8543=>array(67,-14,751,742),8544=>array(98,0,197,729),8545=>array(98,0,394,729),8546=>array(98,0,591,729),8547=>array(98,0,915,729),8548=>array(8,0,676,729),8549=>array(8,0,824,729),8550=>array(8,0,1021,729),8551=>array(8,0,1219,729),8552=>array(98,0,886,729),8553=>array(30,0,654,729),8554=>array(30,0,835,729),8555=>array(30,0,1032,729),8556=>array(98,0,552,729),8557=>array(56,-14,644,742),8558=>array(98,0,711,729),8559=>array(98,0,765,729),8560=>array(94,0,184,760),8561=>array(94,0,364,760),8562=>array(94,0,543,760),8563=>array(94,0,782,760),8564=>array(30,0,562,547),8565=>array(30,0,717,760),8566=>array(30,0,897,760),8567=>array(30,0,1077,760),8568=>array(94,0,786,760),8569=>array(29,0,559,547),8570=>array(29,0,729,760),8571=>array(29,0,908,760),8572=>array(94,0,184,760),8573=>array(55,-14,488,560),8574=>array(55,-14,544,760),8575=>array(91,0,889,560),8576=>array(59,0,1186,729),8577=>array(98,0,711,729),8578=>array(59,0,1186,729),8579=>array(56,-14,644,742),8580=>array(62,-14,495,560),8581=>array(56,-208,644,742),8585=>array(42,-14,918,742),8592=>array(49,100,781,527),8593=>array(205,0,632,732),8594=>array(57,100,789,527),8595=>array(205,-3,632,729),8596=>array(49,100,789,527),8597=>array(205,-8,632,732),8598=>array(141,25,703,587),8599=>array(141,25,703,587),8600=>array(141,25,703,587),8601=>array(141,25,703,587),8602=>array(49,100,781,527),8603=>array(57,100,789,527),8604=>array(21,103,827,414),8605=>array(11,103,816,414),8606=>array(49,100,781,527),8607=>array(206,0,633,732),8608=>array(57,100,789,527),8609=>array(206,-3,633,729),8610=>array(49,100,781,527),8611=>array(57,100,789,527),8612=>array(49,100,781,527),8613=>array(206,0,632,732),8614=>array(57,100,789,527),8615=>array(206,-3,632,729),8616=>array(206,0,632,732),8617=>array(49,100,780,565),8618=>array(58,100,789,565),8619=>array(49,100,780,565),8620=>array(58,100,789,565),8621=>array(49,100,789,527),8622=>array(49,93,789,534),8623=>array(146,-2,702,730),8624=>array(169,0,629,743),8625=>array(209,0,669,743),8626=>array(169,-14,629,729),8627=>array(209,-14,669,729),8628=>array(233,-3,760,604),8629=>array(49,100,656,626),8630=>array(22,203,799,668),8631=>array(39,203,816,668),8632=>array(108,25,788,729),8633=>array(55,-46,783,673),8634=>array(103,62,762,680),8635=>array(77,62,736,680),8636=>array(49,272,781,527),8637=>array(49,100,781,355),8638=>array(377,0,632,732),8639=>array(205,0,460,732),8640=>array(57,272,789,527),8641=>array(57,100,789,355),8642=>array(377,0,632,732),8643=>array(205,0,460,732),8644=>array(49,-47,789,674),8645=>array(58,-3,779,732),8646=>array(49,-47,789,674),8647=>array(49,-47,781,674),8648=>array(59,0,779,732),8649=>array(58,-47,790,674),8650=>array(59,-3,779,729),8651=>array(49,7,789,620),8652=>array(49,7,789,620),8653=>array(49,100,781,527),8654=>array(49,94,789,533),8655=>array(57,100,789,527),8656=>array(49,100,781,527),8657=>array(206,0,633,732),8658=>array(57,100,789,527),8659=>array(206,-3,633,729),8660=>array(49,100,789,527),8661=>array(205,-8,633,732),8662=>array(141,-23,751,587),8663=>array(92,-23,703,587),8664=>array(92,25,703,636),8665=>array(141,25,751,636),8666=>array(49,100,781,527),8667=>array(57,100,789,527),8668=>array(49,100,781,527),8669=>array(57,100,789,527),8670=>array(205,0,632,732),8671=>array(205,-3,632,729),8672=>array(49,100,781,527),8673=>array(205,0,633,732),8674=>array(57,100,789,527),8675=>array(205,-3,633,729),8676=>array(52,99,781,528),8677=>array(57,99,786,528),8678=>array(27,65,781,562),8679=>array(171,0,667,754),8680=>array(35,65,789,562),8681=>array(171,-25,667,729),8682=>array(171,0,667,754),8683=>array(171,0,667,754),8684=>array(156,0,682,754),8685=>array(171,0,667,754),8686=>array(171,0,667,754),8687=>array(171,0,667,754),8688=>array(57,65,811,562),8689=>array(60,0,788,729),8690=>array(60,0,788,729),8691=>array(171,-25,667,754),8692=>array(57,100,789,527),8693=>array(58,-3,779,732),8694=>array(57,-193,789,820),8695=>array(49,94,781,533),8696=>array(57,94,789,533),8697=>array(49,94,789,533),8698=>array(49,94,781,533),8699=>array(57,94,789,533),8700=>array(49,94,789,533),8701=>array(27,96,781,531),8702=>array(57,96,811,531),8703=>array(27,96,811,531),8704=>array(8,0,676,729),8705=>array(66,-14,554,742),8706=>array(46,-14,471,662),8707=>array(98,0,568,729),8708=>array(98,-46,568,776),8709=>array(76,-10,795,710),8710=>array(-3,0,672,719),8711=>array(-3,0,672,719),8712=>array(85,-10,786,710),8713=>array(85,-138,786,835),8714=>array(106,76,612,550),8715=>array(85,-10,786,710),8716=>array(85,-138,786,835),8717=>array(106,76,612,550),8718=>array(146,0,490,485),8719=>array(76,-192,680,719),8720=>array(76,-192,680,719),8721=>array(12,-192,654,719),8722=>array(106,272,732,355),8723=>array(106,0,732,627),8724=>array(106,0,732,729),8725=>array(0,-93,337,729),8726=>array(192,-54,529,768),8727=>array(127,0,710,627),8728=>array(158,160,468,470),8729=>array(168,168,458,458),8730=>array(30,-20,637,811),8731=>array(30,-20,637,933),8732=>array(30,-20,637,924),8733=>array(107,112,607,487),8734=>array(107,112,726,487),8735=>array(138,99,700,661),8736=>array(85,0,786,729),8737=>array(85,-53,786,729),8738=>array(116,-3,732,727),8739=>array(211,-214,289,771),8740=>array(50,-214,451,771),8741=>array(133,-214,367,771),8742=>array(50,-214,451,771),8743=>array(129,0,603,579),8744=>array(129,0,603,579),8745=>array(129,0,603,579),8746=>array(129,0,603,579),8747=>array(57,-212,464,757),8748=>array(57,-212,732,757),8749=>array(57,-212,1000,757),8750=>array(57,-212,464,757),8751=>array(57,-212,732,757),8752=>array(57,-212,1000,757),8753=>array(57,-213,522,757),8754=>array(57,-212,514,757),8755=>array(57,-212,515,757),8756=>array(59,100,577,604),8757=>array(59,100,577,604),8758=>array(79,100,182,604),8759=>array(59,100,577,604),8760=>array(106,272,732,552),8761=>array(106,78,732,552),8762=>array(105,78,732,552),8763=>array(106,78,732,552),8764=>array(106,228,732,399),8765=>array(106,228,732,399),8766=>array(79,149,759,479),8767=>array(106,42,732,584),8768=>array(102,0,273,626),8769=>array(106,77,732,553),8770=>array(106,133,732,454),8771=>array(106,172,732,494),8772=>array(106,48,732,603),8773=>array(106,90,732,594),8774=>array(106,12,732,594),8775=>array(106,-5,732,657),8776=>array(106,133,732,494),8777=>array(106,2,732,625),8778=>array(106,90,732,598),8779=>array(106,59,732,602),8780=>array(106,90,732,594),8781=>array(105,105,732,521),8782=>array(106,26,732,601),8783=>array(106,172,732,601),8784=>array(106,172,732,625),8785=>array(106,1,732,625),8786=>array(106,2,733,625),8787=>array(106,2,733,625),8788=>array(101,151,899,476),8789=>array(100,151,900,475),8790=>array(106,172,732,454),8791=>array(106,172,732,760),8792=>array(106,172,732,662),8793=>array(106,172,732,812),8794=>array(106,172,732,812),8795=>array(106,172,732,849),8796=>array(106,172,732,854),8797=>array(106,172,732,764),8798=>array(106,172,732,760),8799=>array(106,172,732,856),8800=>array(106,19,732,608),8801=>array(106,90,732,537),8802=>array(106,-24,732,650),8803=>array(106,0,732,629),8804=>array(106,0,732,582),8805=>array(106,0,732,582),8806=>array(106,-83,732,638),8807=>array(106,-83,732,638),8808=>array(106,-164,732,638),8809=>array(106,-164,732,638),8810=>array(72,22,975,609),8811=>array(72,22,975,609),8812=>array(86,-132,378,759),8813=>array(105,13,732,613),8814=>array(106,2,732,674),8815=>array(106,-47,732,625),8816=>array(106,-102,732,667),8817=>array(106,-102,732,667),8818=>array(106,-55,732,582),8819=>array(106,-39,732,582),8820=>array(106,-105,732,664),8821=>array(106,-102,732,667),8822=>array(102,-87,732,686),8823=>array(102,-87,732,686),8824=>array(102,-197,732,797),8825=>array(102,-197,732,797),8826=>array(106,-38,732,664),8827=>array(106,-38,732,664),8828=>array(106,-105,732,667),8829=>array(106,-105,732,667),8830=>array(106,-85,732,667),8831=>array(106,-85,732,667),8832=>array(106,-61,732,764),8833=>array(106,-138,732,687),8834=>array(100,80,738,546),8835=>array(100,80,738,546),8836=>array(100,-96,738,726),8837=>array(100,-100,738,722),8838=>array(93,0,732,613),8839=>array(106,0,745,613),8840=>array(93,-116,732,730),8841=>array(106,-116,745,730),8842=>array(93,-73,732,614),8843=>array(93,-73,732,614),8844=>array(129,0,603,579),8845=>array(129,0,603,579),8846=>array(129,2,603,582),8847=>array(106,0,732,568),8848=>array(106,0,732,568),8849=>array(106,-83,732,630),8850=>array(106,-83,732,630),8851=>array(106,0,674,626),8852=>array(106,0,674,626),8853=>array(91,-14,747,643),8854=>array(91,-14,747,643),8855=>array(91,-14,747,643),8856=>array(91,-14,747,643),8857=>array(91,-14,747,643),8858=>array(91,-14,747,643),8859=>array(91,-14,747,643),8860=>array(91,-14,747,643),8861=>array(91,-14,747,643),8862=>array(91,-14,747,643),8863=>array(91,-14,747,643),8864=>array(91,-14,747,643),8865=>array(91,-14,747,643),8866=>array(85,0,786,700),8867=>array(85,0,786,700),8868=>array(85,0,786,700),8869=>array(85,0,786,700),8870=>array(85,0,436,700),8871=>array(85,0,436,700),8872=>array(85,0,786,700),8873=>array(85,0,786,700),8874=>array(85,0,786,700),8875=>array(85,0,786,700),8876=>array(85,-40,786,740),8877=>array(85,-40,786,740),8878=>array(85,-40,786,740),8879=>array(85,-40,786,740),8880=>array(106,-43,724,670),8881=>array(106,-43,724,670),8882=>array(106,15,732,612),8883=>array(106,15,732,612),8884=>array(106,-48,732,674),8885=>array(106,-48,732,674),8886=>array(59,175,941,454),8887=>array(59,175,941,454),8888=>array(48,175,790,454),8889=>array(59,-47,779,674),8890=>array(116,0,404,701),8891=>array(98,0,634,740),8892=>array(98,0,634,740),8893=>array(98,0,634,740),8894=>array(138,0,700,562),8895=>array(138,0,700,562),8896=>array(-3,-192,823,719),8897=>array(-3,-192,823,719),8898=>array(68,-192,752,719),8899=>array(68,-192,752,719),8900=>array(3,-233,491,807),8901=>array(107,285,210,409),8902=>array(122,149,504,512),8903=>array(106,15,732,613),8904=>array(106,-30,894,657),8905=>array(106,-30,894,657),8906=>array(106,-30,894,657),8907=>array(106,-30,894,657),8908=>array(106,-30,894,657),8909=>array(106,172,732,494),8910=>array(48,0,684,579),8911=>array(48,0,684,579),8912=>array(93,-3,732,630),8913=>array(106,-3,745,630),8914=>array(103,0,735,663),8915=>array(103,-14,735,649),8916=>array(186,0,652,729),8917=>array(106,-100,732,729),8918=>array(106,46,732,581),8919=>array(106,46,732,581),8920=>array(72,22,1350,609),8921=>array(72,22,1350,609),8922=>array(106,-228,732,854),8923=>array(106,-228,732,854),8924=>array(106,0,732,582),8925=>array(106,0,732,582),8926=>array(106,-105,732,667),8927=>array(106,-105,732,667),8928=>array(106,-178,732,764),8929=>array(106,-178,732,764),8930=>array(106,-141,732,767),8931=>array(106,-141,732,767),8932=>array(106,-94,732,619),8933=>array(106,-94,732,619),8934=>array(106,-138,732,582),8935=>array(106,-138,732,582),8936=>array(106,-169,732,667),8937=>array(110,-171,736,667),8938=>array(106,-130,732,756),8939=>array(106,-130,732,756),8940=>array(106,-189,732,815),8941=>array(104,-189,730,815),8942=>array(448,-93,551,715),8943=>array(115,249,884,373),8944=>array(115,-93,884,715),8945=>array(115,-93,884,715),8946=>array(43,-10,957,710),8947=>array(85,-10,786,710),8948=>array(106,76,612,550),8949=>array(85,-10,786,910),8950=>array(85,-10,786,853),8951=>array(106,76,612,686),8952=>array(85,-144,786,710),8953=>array(85,-10,786,710),8954=>array(43,-10,957,710),8955=>array(85,-10,786,710),8956=>array(106,76,612,550),8957=>array(85,-10,786,853),8958=>array(106,76,612,686),8959=>array(106,0,765,720),8960=>array(36,-18,567,514),8961=>array(56,162,540,443),8962=>array(71,0,563,596),8963=>array(205,481,632,732),8964=>array(205,0,632,251),8965=>array(205,0,632,406),8966=>array(205,0,632,513),8967=>array(154,-29,334,788),8968=>array(86,-132,293,760),8969=>array(97,-132,304,760),8970=>array(86,-132,293,760),8971=>array(97,-132,304,760),8972=>array(369,-77,759,313),8973=>array(49,-77,439,313),8974=>array(369,243,759,634),8975=>array(49,243,439,634),8976=>array(106,140,732,421),8977=>array(3,126,510,634),8984=>array(121,0,879,759),8985=>array(106,140,732,421),8988=>array(86,425,403,760),8989=>array(65,425,383,760),8990=>array(86,-70,403,264),8991=>array(65,-70,383,264),8992=>array(210,-250,497,928),8993=>array(21,-237,307,942),8996=>array(76,227,1076,575),8997=>array(76,0,1076,575),8998=>array(76,0,1414,760),8999=>array(76,0,1076,760),9000=>array(59,0,1385,729),9003=>array(0,0,1338,760),9004=>array(73,-91,800,748),9075=>array(81,0,304,547),9076=>array(91,-208,580,560),9077=>array(66,-14,769,547),9082=>array(55,-12,611,559),9085=>array(13,-228,745,102),9095=>array(76,0,1096,748),9108=>array(17,0,856,727),9115=>array(86,-252,414,946),9116=>array(86,-252,181,942),9117=>array(86,-240,414,942),9118=>array(86,-252,414,946),9119=>array(319,-252,414,942),9120=>array(86,-240,414,942),9121=>array(86,-252,414,928),9122=>array(86,-252,181,942),9123=>array(86,-240,414,942),9124=>array(86,-252,414,928),9125=>array(319,-252,414,935),9126=>array(86,-240,414,935),9127=>array(330,-261,668,928),9128=>array(82,-252,420,940),9129=>array(330,-240,668,940),9130=>array(330,-256,420,943),9131=>array(82,-261,420,928),9132=>array(330,-252,668,940),9133=>array(82,-240,420,940),9134=>array(210,-250,307,942),9166=>array(27,65,781,729),9167=>array(91,0,854,596),9187=>array(73,-91,800,748),9189=>array(3,75,766,444),9192=>array(43,-129,601,294),9250=>array(-62,-14,580,760),9251=>array(71,-228,563,102),9312=>array(74,-10,822,738),9313=>array(74,-10,822,738),9314=>array(74,-10,822,738),9315=>array(74,-10,822,738),9316=>array(74,-10,822,738),9317=>array(74,-10,822,738),9318=>array(74,-10,822,738),9319=>array(74,-10,822,738),9320=>array(74,-10,822,738),9321=>array(74,-10,822,738),9472=>array(-10,242,612,326),9473=>array(-10,200,612,368),9474=>array(262,-302,340,973),9475=>array(223,-302,379,973),9476=>array(-10,242,612,326),9477=>array(-10,200,612,368),9478=>array(262,-302,340,973),9479=>array(223,-302,379,973),9480=>array(-10,242,612,326),9481=>array(-10,200,612,368),9482=>array(262,-302,340,973),9483=>array(223,-302,379,973),9484=>array(262,-302,612,326),9485=>array(262,-302,612,368),9486=>array(223,-302,612,326),9487=>array(223,-302,612,368),9488=>array(-10,-302,340,326),9489=>array(-10,-302,340,368),9490=>array(-10,-302,379,326),9491=>array(-10,-302,379,368),9492=>array(262,242,612,973),9493=>array(262,200,612,973),9494=>array(223,242,612,973),9495=>array(223,200,612,973),9496=>array(-10,242,340,973),9497=>array(-10,200,340,973),9498=>array(-10,242,379,973),9499=>array(-10,200,379,973),9500=>array(262,-302,612,973),9501=>array(262,-302,612,973),9502=>array(223,-302,612,973),9503=>array(223,-302,612,973),9504=>array(223,-302,612,973),9505=>array(223,-302,612,973),9506=>array(223,-302,612,973),9507=>array(223,-302,612,973),9508=>array(-10,-302,340,973),9509=>array(-10,-302,340,973),9510=>array(-10,-302,379,973),9511=>array(-10,-302,379,973),9512=>array(-10,-302,379,973),9513=>array(-10,-302,379,973),9514=>array(-10,-302,379,973),9515=>array(-10,-302,379,973),9516=>array(-10,-302,612,326),9517=>array(-10,-302,612,368),9518=>array(-10,-302,612,368),9519=>array(-10,-302,612,368),9520=>array(-10,-302,612,326),9521=>array(-10,-302,612,368),9522=>array(-10,-302,612,368),9523=>array(-10,-302,612,368),9524=>array(-10,242,612,973),9525=>array(-10,200,612,973),9526=>array(-10,200,612,973),9527=>array(-10,200,612,973),9528=>array(-10,242,612,973),9529=>array(-10,200,612,973),9530=>array(-10,200,612,973),9531=>array(-10,200,612,973),9532=>array(-10,-302,612,973),9533=>array(-10,-302,612,973),9534=>array(-10,-302,612,973),9535=>array(-10,-302,612,973),9536=>array(-10,-302,612,973),9537=>array(-10,-302,612,973),9538=>array(-10,-302,612,973),9539=>array(-10,-302,612,973),9540=>array(-10,-302,612,973),9541=>array(-10,-302,612,973),9542=>array(-10,-302,612,973),9543=>array(-10,-302,612,973),9544=>array(-10,-302,612,973),9545=>array(-10,-302,612,973),9546=>array(-10,-302,612,973),9547=>array(-10,-302,612,973),9548=>array(-10,242,612,326),9549=>array(-10,200,612,368),9550=>array(262,-302,340,973),9551=>array(223,-302,379,973),9552=>array(-10,158,612,410),9553=>array(184,-302,418,973),9554=>array(262,-302,612,410),9555=>array(184,-302,612,326),9556=>array(184,-302,612,410),9557=>array(-10,-302,340,410),9558=>array(-10,-302,418,326),9559=>array(-10,-302,418,410),9560=>array(262,158,612,973),9561=>array(184,242,612,973),9562=>array(184,158,612,973),9563=>array(-10,158,340,973),9564=>array(-10,242,418,973),9565=>array(-10,158,418,973),9566=>array(262,-302,612,973),9567=>array(184,-302,612,973),9568=>array(184,-302,612,973),9569=>array(-10,-302,340,973),9570=>array(-10,-302,418,973),9571=>array(-10,-302,418,973),9572=>array(-10,-302,612,410),9573=>array(-10,-302,612,326),9574=>array(-10,-302,612,410),9575=>array(-10,158,612,973),9576=>array(-10,242,612,973),9577=>array(-10,158,612,973),9578=>array(-10,-302,612,973),9579=>array(-10,-302,612,973),9580=>array(-10,-302,612,973),9581=>array(262,-302,612,326),9582=>array(-10,-302,340,326),9583=>array(-10,242,340,973),9584=>array(262,242,612,973),9585=>array(-53,-302,655,973),9586=>array(-53,-302,655,973),9587=>array(-53,-302,655,973),9588=>array(-10,242,311,326),9589=>array(262,284,340,973),9590=>array(311,242,612,326),9591=>array(262,-302,340,284),9592=>array(-10,200,311,368),9593=>array(223,284,379,973),9594=>array(311,200,612,368),9595=>array(223,-302,379,284),9596=>array(-10,200,612,368),9597=>array(223,-302,379,973),9598=>array(-10,200,612,368),9599=>array(223,-302,379,973),9600=>array(-10,260,779,770),9601=>array(-10,-250,779,-123),9602=>array(-10,-250,779,-5),9603=>array(-10,-250,779,132),9604=>array(-10,-250,779,260),9605=>array(-10,-250,779,387),9606=>array(-10,-250,779,515),9607=>array(-10,-250,779,642),9608=>array(-10,-250,779,770),9609=>array(-10,-250,680,770),9610=>array(-10,-250,582,770),9611=>array(-10,-250,483,770),9612=>array(-10,-250,384,770),9613=>array(-10,-250,286,770),9614=>array(-10,-250,187,770),9615=>array(-10,-250,88,770),9616=>array(384,-250,778,770),9617=>array(-10,-250,680,770),9618=>array(-10,-250,775,770),9619=>array(-10,-250,779,770),9620=>array(-10,642,779,770),9621=>array(680,-250,778,770),9622=>array(-10,-250,385,260),9623=>array(384,-250,779,260),9624=>array(-10,260,385,770),9625=>array(-10,-250,779,770),9626=>array(-10,-250,779,770),9627=>array(-10,-250,779,770),9628=>array(-10,-250,779,770),9629=>array(384,260,779,770),9630=>array(-10,-250,779,770),9631=>array(-10,-250,779,770),9632=>array(91,-123,854,643),9633=>array(91,-123,854,643),9634=>array(91,-123,854,643),9635=>array(91,-123,854,643),9636=>array(91,-123,854,643),9637=>array(91,-123,854,643),9638=>array(91,-123,854,643),9639=>array(91,-123,854,643),9640=>array(91,-123,854,643),9641=>array(91,-123,854,643),9642=>array(91,11,587,509),9643=>array(91,11,587,509),9644=>array(91,75,854,444),9645=>array(91,75,854,444),9646=>array(91,-122,459,642),9647=>array(91,-122,459,642),9648=>array(3,75,766,444),9649=>array(3,75,766,444),9650=>array(3,-123,766,643),9651=>array(3,-123,766,643),9652=>array(3,11,499,509),9653=>array(3,11,499,509),9654=>array(3,-123,766,643),9655=>array(3,-123,766,643),9656=>array(3,11,499,509),9657=>array(3,11,499,509),9658=>array(3,11,766,509),9659=>array(3,11,766,509),9660=>array(3,-123,766,643),9661=>array(3,-123,766,643),9662=>array(3,11,499,509),9663=>array(3,11,499,509),9664=>array(3,-123,766,643),9665=>array(3,-123,766,643),9666=>array(3,11,499,509),9667=>array(3,11,499,509),9668=>array(3,11,766,509),9669=>array(3,11,766,509),9670=>array(3,-123,766,643),9671=>array(3,-123,766,643),9672=>array(3,-123,766,643),9673=>array(55,-125,818,645),9674=>array(3,-233,491,807),9675=>array(55,-125,818,645),9676=>array(56,-125,817,644),9677=>array(55,-125,818,645),9678=>array(55,-125,818,645),9679=>array(55,-123,818,641),9680=>array(55,-123,818,641),9681=>array(55,-123,818,641),9682=>array(55,-123,818,641),9683=>array(55,-123,818,641),9684=>array(55,-123,818,641),9685=>array(55,-123,818,641),9686=>array(55,-125,436,645),9687=>array(91,-125,472,645),9688=>array(91,-10,700,770),9689=>array(91,-250,879,770),9690=>array(91,260,879,770),9691=>array(91,-250,879,260),9692=>array(3,260,384,645),9693=>array(3,260,384,645),9694=>array(3,-125,384,260),9695=>array(3,-125,384,260),9696=>array(55,260,818,645),9697=>array(55,-125,818,260),9698=>array(3,-123,766,643),9699=>array(3,-123,766,643),9700=>array(3,-123,766,643),9701=>array(3,-123,766,643),9702=>array(150,227,440,516),9703=>array(91,-123,854,643),9704=>array(91,-123,854,643),9705=>array(91,-123,854,643),9706=>array(91,-123,854,643),9707=>array(91,-123,854,643),9708=>array(3,-123,766,643),9709=>array(3,-123,766,643),9710=>array(3,-123,766,643),9711=>array(55,-250,1064,770),9712=>array(91,-123,854,643),9713=>array(91,-123,854,643),9714=>array(91,-123,854,643),9715=>array(91,-123,854,643),9716=>array(55,-123,818,641),9717=>array(55,-123,818,641),9718=>array(55,-123,818,641),9719=>array(55,-123,818,641),9720=>array(3,-123,766,643),9721=>array(3,-123,766,643),9722=>array(3,-123,766,643),9723=>array(91,-66,739,585),9724=>array(91,-66,739,585),9725=>array(91,-17,642,537),9726=>array(91,-17,642,537),9727=>array(3,-123,766,643),9728=>array(83,0,813,729),9729=>array(51,-2,949,360),9730=>array(49,0,848,729),9731=>array(83,-0,813,927),9732=>array(64,0,833,880),9733=>array(65,-4,832,723),9734=>array(65,-4,832,723),9735=>array(83,2,490,729),9736=>array(83,0,813,731),9737=>array(83,0,813,730),9738=>array(61,0,828,727),9739=>array(61,0,828,723),9740=>array(61,-1,610,722),9741=>array(61,0,952,723),9742=>array(68,0,1177,729),9743=>array(71,0,1180,729),9744=>array(90,0,807,729),9745=>array(89,0,808,729),9746=>array(89,0,808,729),9747=>array(75,78,457,656),9748=>array(49,0,870,933),9749=>array(74,0,822,731),9750=>array(84,0,813,731),9751=>array(84,0,813,727),9752=>array(78,0,819,729),9753=>array(83,140,813,574),9754=>array(84,113,813,569),9755=>array(84,113,813,569),9756=>array(87,104,810,569),9757=>array(72,0,537,724),9758=>array(86,103,810,569),9759=>array(72,-3,537,720),9760=>array(61,0,835,730),9761=>array(84,0,813,730),9762=>array(83,0,813,730),9763=>array(49,0,848,730),9764=>array(49,-2,620,727),9765=>array(83,0,663,731),9766=>array(83,-1,566,731),9767=>array(83,0,701,911),9768=>array(83,0,462,730),9769=>array(83,-1,813,729),9770=>array(87,0,810,730),9771=>array(83,0,814,731),9772=>array(83,0,627,731),9773=>array(83,0,813,730),9774=>array(83,0,813,730),9775=>array(83,0,813,730),9776=>array(83,0,813,729),9777=>array(83,0,814,729),9778=>array(83,0,813,729),9779=>array(83,0,813,729),9780=>array(83,0,813,729),9781=>array(83,0,813,729),9782=>array(83,0,813,729),9783=>array(83,0,813,729),9784=>array(66,-11,831,735),9785=>array(83,-73,959,804),9786=>array(83,-73,959,804),9787=>array(83,-73,959,804),9788=>array(83,0,813,730),9789=>array(358,0,814,730),9790=>array(83,0,539,730),9791=>array(85,-102,528,732),9792=>array(85,-125,647,731),9793=>array(85,-14,647,843),9794=>array(79,-14,831,720),9795=>array(166,0,730,730),9796=>array(219,0,677,730),9797=>array(121,0,774,730),9798=>array(127,0,769,730),9799=>array(240,0,656,730),9800=>array(45,0,851,731),9801=>array(89,0,807,730),9802=>array(94,0,802,731),9803=>array(113,31,784,679),9804=>array(140,0,756,730),9805=>array(53,-180,843,730),9806=>array(83,52,813,653),9807=>array(34,-96,863,730),9808=>array(83,-0,813,730),9809=>array(94,0,802,730),9810=>array(86,153,810,579),9811=>array(157,0,739,730),9812=>array(98,0,798,730),9813=>array(110,0,786,730),9814=>array(167,-1,729,729),9815=>array(214,0,683,730),9816=>array(165,0,732,730),9817=>array(148,-0,748,730),9818=>array(98,0,798,730),9819=>array(110,0,786,730),9820=>array(167,-1,729,729),9821=>array(214,0,683,730),9822=>array(162,0,734,730),9823=>array(148,-0,748,730),9824=>array(158,0,738,729),9825=>array(90,0,806,727),9826=>array(168,0,728,729),9827=>array(111,0,785,729),9828=>array(157,0,739,729),9829=>array(89,0,808,729),9830=>array(168,0,728,729),9831=>array(111,0,785,732),9832=>array(105,-1,791,729),9833=>array(84,-5,339,729),9834=>array(84,-5,554,729),9835=>array(184,-102,712,729),9836=>array(92,-5,804,729),9837=>array(88,-3,392,731),9838=>array(84,0,273,731),9839=>array(84,0,400,731),9840=>array(84,0,664,731),9841=>array(64,0,701,731),9842=>array(84,0,813,709),9843=>array(76,16,820,731),9844=>array(76,16,820,731),9845=>array(76,16,820,731),9846=>array(76,16,820,731),9847=>array(76,16,820,731),9848=>array(76,16,820,731),9849=>array(76,16,820,731),9850=>array(76,16,820,731),9851=>array(84,0,812,704),9852=>array(83,0,814,731),9853=>array(83,0,814,731),9854=>array(83,0,814,731),9855=>array(149,1,747,731),9856=>array(73,0,797,725),9857=>array(73,0,797,725),9858=>array(73,0,797,725),9859=>array(73,0,797,725),9860=>array(73,0,797,725),9861=>array(73,0,797,725),9862=>array(83,0,813,731),9863=>array(83,0,813,731),9864=>array(83,0,813,731),9865=>array(83,0,813,731),9866=>array(83,0,813,98),9867=>array(83,0,813,98),9868=>array(83,0,813,413),9869=>array(83,0,813,413),9870=>array(83,0,813,413),9871=>array(83,0,813,413),9872=>array(168,3,728,731),9873=>array(168,3,728,731),9874=>array(52,0,844,731),9875=>array(97,-10,799,732),9876=>array(131,0,765,729),9877=>array(61,-10,479,732),9878=>array(59,-10,837,732),9879=>array(61,0,835,732),9880=>array(145,0,750,732),9881=>array(95,-17,802,727),9882=>array(128,-9,768,733),9883=>array(127,0,769,728),9884=>array(127,0,769,729),9888=>array(49,0,848,729),9889=>array(83,2,619,730),9890=>array(85,-125,919,731),9891=>array(79,-206,1023,720),9892=>array(85,-186,1109,856),9893=>array(85,-125,837,917),9894=>array(131,-14,727,869),9895=>array(101,-170,741,884),9896=>array(188,-14,650,869),9897=>array(4,133,829,596),9898=>array(187,133,651,596),9899=>array(187,133,651,596),9900=>array(247,194,591,537),9901=>array(174,194,664,537),9902=>array(41,169,797,560),9903=>array(5,194,833,536),9904=>array(103,237,757,540),9905=>array(211,42,626,698),9906=>array(85,-125,647,731),9907=>array(168,-125,646,731),9908=>array(86,-125,646,731),9909=>array(86,-125,646,731),9910=>array(59,-118,791,643),9911=>array(194,-104,595,710),9912=>array(158,-125,543,731),9920=>array(42,4,796,553),9921=>array(42,4,796,724),9922=>array(42,4,796,553),9923=>array(42,4,796,724),9954=>array(85,-14,647,843),9985=>array(11,190,803,635),9986=>array(42,141,784,588),9987=>array(11,94,803,539),9988=>array(36,119,824,613),9990=>array(42,-14,796,742),9991=>array(42,-14,796,742),9992=>array(59,21,782,708),9993=>array(64,107,773,622),9996=>array(212,0,561,742),9997=>array(21,83,802,678),9998=>array(89,75,724,710),9999=>array(26,198,819,530),10000=>array(89,75,724,710),10001=>array(43,185,757,544),10002=>array(67,209,757,520),10003=>array(150,97,667,630),10004=>array(116,87,721,631),10005=>array(126,72,711,657),10006=>array(85,31,752,698),10007=>array(118,-9,701,732),10008=>array(123,0,754,739),10009=>array(55,0,783,729),10010=>array(55,0,783,729),10011=>array(55,0,783,729),10012=>array(55,0,783,729),10013=>array(165,0,673,729),10014=>array(131,0,678,729),10015=>array(155,0,683,729),10016=>array(55,0,783,729),10017=>array(91,-13,747,744),10018=>array(41,-14,797,742),10019=>array(42,-12,796,742),10020=>array(41,-14,797,742),10021=>array(41,-13,797,743),10022=>array(42,-14,796,745),10023=>array(42,-14,796,745),10025=>array(23,-10,815,744),10026=>array(42,-14,796,742),10027=>array(23,-9,814,743),10028=>array(23,-10,815,744),10029=>array(23,-9,814,743),10030=>array(23,-9,814,743),10031=>array(23,-9,814,743),10032=>array(24,12,815,714),10033=>array(64,0,773,729),10034=>array(74,0,764,729),10035=>array(55,0,783,729),10036=>array(31,-14,787,742),10037=>array(41,-14,797,742),10038=>array(91,-14,747,742),10039=>array(41,-14,797,742),10040=>array(41,-14,797,742),10041=>array(41,-14,797,742),10042=>array(55,0,783,729),10043=>array(82,-14,756,742),10044=>array(82,-14,756,742),10045=>array(79,-14,759,742),10046=>array(79,-14,759,742),10047=>array(54,0,784,709),10048=>array(54,0,784,709),10049=>array(41,-14,797,742),10050=>array(42,-14,796,742),10051=>array(79,-14,759,742),10052=>array(89,0,749,729),10053=>array(76,0,762,729),10054=>array(63,2,773,729),10055=>array(79,-13,759,742),10056=>array(47,-13,791,730),10057=>array(47,-13,791,730),10058=>array(41,-13,797,743),10059=>array(41,-13,797,743),10061=>array(50,-10,847,738),10063=>array(60,-49,837,729),10064=>array(60,0,837,777),10065=>array(60,-49,837,729),10066=>array(60,0,837,777),10070=>array(83,-2,813,728),10072=>array(377,-240,460,760),10073=>array(336,-240,502,760),10074=>array(253,-240,585,760),10075=>array(85,395,264,729),10076=>array(59,395,237,729),10077=>array(85,395,479,729),10078=>array(59,395,453,729),10081=>array(155,-93,772,851),10082=>array(202,-17,636,742),10083=>array(163,-17,675,742),10084=>array(54,83,784,645),10085=>array(168,-1,729,729),10086=>array(62,21,724,702),10087=>array(78,169,759,564),10088=>array(196,-139,648,769),10089=>array(196,-139,648,769),10090=>array(264,-132,574,758),10091=>array(264,-132,574,758),10092=>array(215,-240,607,760),10093=>array(232,-240,623,760),10094=>array(142,-240,685,760),10095=>array(153,-240,696,760),10096=>array(167,-240,656,760),10097=>array(183,-240,672,760),10098=>array(346,-241,535,760),10099=>array(303,-241,492,760),10100=>array(175,-163,634,760),10101=>array(204,-163,663,760),10102=>array(74,-10,822,738),10103=>array(74,-10,822,738),10104=>array(74,-10,822,738),10105=>array(74,-10,822,738),10106=>array(74,-10,822,738),10107=>array(74,-10,822,738),10108=>array(74,-10,822,738),10109=>array(74,-10,822,738),10110=>array(74,-10,822,738),10111=>array(74,-10,822,738),10112=>array(4,-52,833,780),10113=>array(4,-52,833,780),10114=>array(4,-52,833,780),10115=>array(4,-52,833,780),10116=>array(4,-52,833,780),10117=>array(4,-52,833,780),10118=>array(4,-52,833,780),10119=>array(4,-52,833,780),10120=>array(4,-52,833,780),10121=>array(4,-52,833,780),10122=>array(4,-52,833,780),10123=>array(4,-52,833,780),10124=>array(4,-52,833,780),10125=>array(4,-52,833,780),10126=>array(4,-52,833,780),10127=>array(4,-52,833,780),10128=>array(4,-52,833,780),10129=>array(4,-52,833,780),10130=>array(4,-52,833,780),10131=>array(4,-52,833,780),10132=>array(57,75,789,552),10136=>array(123,55,682,614),10137=>array(57,100,789,527),10138=>array(123,13,682,572),10139=>array(57,129,789,498),10140=>array(57,57,764,570),10141=>array(57,100,789,527),10142=>array(57,100,789,527),10143=>array(57,100,789,527),10144=>array(57,100,789,527),10145=>array(57,65,811,562),10146=>array(111,94,789,533),10147=>array(111,94,789,533),10148=>array(111,-4,789,631),10149=>array(57,100,789,548),10150=>array(57,79,789,527),10151=>array(240,-7,606,634),10152=>array(57,100,789,527),10153=>array(57,75,765,552),10154=>array(57,75,765,552),10155=>array(21,12,794,586),10156=>array(21,12,794,586),10157=>array(135,0,774,574),10158=>array(135,0,774,574),10159=>array(62,49,799,574),10161=>array(62,49,799,574),10162=>array(154,-20,721,585),10163=>array(63,157,789,470),10164=>array(81,55,682,655),10165=>array(57,173,789,454),10166=>array(82,-29,682,572),10167=>array(82,55,682,655),10168=>array(57,172,789,455),10169=>array(82,-28,682,572),10170=>array(56,84,789,543),10171=>array(73,140,779,487),10172=>array(79,167,774,460),10173=>array(79,118,774,509),10174=>array(57,81,789,546),10181=>array(54,-163,352,769),10182=>array(39,-163,336,769),10208=>array(3,-233,491,807),10214=>array(86,-132,398,760),10215=>array(85,-132,398,760),10216=>array(89,-132,310,759),10217=>array(80,-132,301,759),10218=>array(89,-132,476,759),10219=>array(80,-132,467,759),10224=>array(44,0,794,732),10225=>array(43,-3,793,729),10226=>array(39,53,814,658),10227=>array(39,61,814,666),10228=>array(57,-14,1108,643),10229=>array(49,100,1376,527),10230=>array(57,100,1385,527),10231=>array(49,100,1385,527),10232=>array(49,100,1376,527),10233=>array(57,100,1385,527),10234=>array(49,100,1385,527),10235=>array(49,100,1376,527),10236=>array(57,100,1385,527),10237=>array(49,100,1376,527),10238=>array(57,100,1385,527),10239=>array(57,100,1385,527),10241=>array(146,635,293,781),10242=>array(146,358,293,504),10243=>array(146,358,293,781),10244=>array(146,82,293,228),10245=>array(146,82,293,781),10246=>array(146,82,293,504),10247=>array(146,82,293,781),10248=>array(439,635,586,781),10249=>array(146,635,586,781),10250=>array(146,358,586,781),10251=>array(146,358,586,781),10252=>array(146,82,586,781),10253=>array(146,82,586,781),10254=>array(146,82,586,781),10255=>array(146,82,586,781),10256=>array(439,358,586,504),10257=>array(146,358,586,781),10258=>array(146,358,586,504),10259=>array(146,358,586,781),10260=>array(146,82,586,504),10261=>array(146,82,586,781),10262=>array(146,82,586,504),10263=>array(146,82,586,781),10264=>array(439,358,586,781),10265=>array(146,358,586,781),10266=>array(146,358,586,781),10267=>array(146,358,586,781),10268=>array(146,82,586,781),10269=>array(146,82,586,781),10270=>array(146,82,586,781),10271=>array(146,82,586,781),10272=>array(439,82,586,228),10273=>array(146,82,586,781),10274=>array(146,82,586,504),10275=>array(146,82,586,781),10276=>array(146,82,586,228),10277=>array(146,82,586,781),10278=>array(146,82,586,504),10279=>array(146,82,586,781),10280=>array(439,82,586,781),10281=>array(146,82,586,781),10282=>array(146,82,586,781),10283=>array(146,82,586,781),10284=>array(146,82,586,781),10285=>array(146,82,586,781),10286=>array(146,82,586,781),10287=>array(146,82,586,781),10288=>array(439,82,586,504),10289=>array(146,82,586,781),10290=>array(146,82,586,504),10291=>array(146,82,586,781),10292=>array(146,82,586,504),10293=>array(146,82,586,781),10294=>array(146,82,586,504),10295=>array(146,82,586,781),10296=>array(439,82,586,781),10297=>array(146,82,586,781),10298=>array(146,82,586,781),10299=>array(146,82,586,781),10300=>array(146,82,586,781),10301=>array(146,82,586,781),10302=>array(146,82,586,781),10303=>array(146,82,586,781),10304=>array(146,-195,293,-49),10305=>array(146,-195,293,781),10306=>array(146,-195,293,504),10307=>array(146,-195,293,781),10308=>array(146,-195,293,228),10309=>array(146,-195,293,781),10310=>array(146,-195,293,504),10311=>array(146,-195,293,781),10312=>array(146,-195,586,781),10313=>array(146,-195,586,781),10314=>array(146,-195,586,781),10315=>array(146,-195,586,781),10316=>array(146,-195,586,781),10317=>array(146,-195,586,781),10318=>array(146,-195,586,781),10319=>array(146,-195,586,781),10320=>array(146,-195,586,504),10321=>array(146,-195,586,781),10322=>array(146,-195,586,504),10323=>array(146,-195,586,781),10324=>array(146,-195,586,504),10325=>array(146,-195,586,781),10326=>array(146,-195,586,504),10327=>array(146,-195,586,781),10328=>array(146,-195,586,781),10329=>array(146,-195,586,781),10330=>array(146,-195,586,781),10331=>array(146,-195,586,781),10332=>array(146,-195,586,781),10333=>array(146,-195,586,781),10334=>array(146,-195,586,781),10335=>array(146,-195,586,781),10336=>array(146,-195,586,228),10337=>array(146,-195,586,781),10338=>array(146,-195,586,504),10339=>array(146,-195,586,781),10340=>array(146,-195,586,228),10341=>array(146,-195,586,781),10342=>array(146,-195,586,504),10343=>array(146,-195,586,781),10344=>array(146,-195,586,781),10345=>array(146,-195,586,781),10346=>array(146,-195,586,781),10347=>array(146,-195,586,781),10348=>array(146,-195,586,781),10349=>array(146,-195,586,781),10350=>array(146,-195,586,781),10351=>array(146,-195,586,781),10352=>array(146,-195,586,504),10353=>array(146,-195,586,781),10354=>array(146,-195,586,504),10355=>array(146,-195,586,781),10356=>array(146,-195,586,504),10357=>array(146,-195,586,781),10358=>array(146,-195,586,504),10359=>array(146,-195,586,781),10360=>array(146,-195,586,781),10361=>array(146,-195,586,781),10362=>array(146,-195,586,781),10363=>array(146,-195,586,781),10364=>array(146,-195,586,781),10365=>array(146,-195,586,781),10366=>array(146,-195,586,781),10367=>array(146,-195,586,781),10368=>array(439,-195,586,-49),10369=>array(146,-195,586,781),10370=>array(146,-195,586,504),10371=>array(146,-195,586,781),10372=>array(146,-195,586,228),10373=>array(146,-195,586,781),10374=>array(146,-195,586,504),10375=>array(146,-195,586,781),10376=>array(439,-195,586,781),10377=>array(146,-195,586,781),10378=>array(146,-195,586,781),10379=>array(146,-195,586,781),10380=>array(146,-195,586,781),10381=>array(146,-195,586,781),10382=>array(146,-195,586,781),10383=>array(146,-195,586,781),10384=>array(439,-195,586,504),10385=>array(146,-195,586,781),10386=>array(146,-195,586,504),10387=>array(146,-195,586,781),10388=>array(146,-195,586,504),10389=>array(146,-195,586,781),10390=>array(146,-195,586,504),10391=>array(146,-195,586,781),10392=>array(439,-195,586,781),10393=>array(146,-195,586,781),10394=>array(146,-195,586,781),10395=>array(146,-195,586,781),10396=>array(146,-195,586,781),10397=>array(146,-195,586,781),10398=>array(146,-195,586,781),10399=>array(146,-195,586,781),10400=>array(439,-195,586,228),10401=>array(146,-195,586,781),10402=>array(146,-195,586,504),10403=>array(146,-195,586,781),10404=>array(146,-195,586,228),10405=>array(146,-195,586,781),10406=>array(146,-195,586,504),10407=>array(146,-195,586,781),10408=>array(439,-195,586,781),10409=>array(146,-195,586,781),10410=>array(146,-195,586,781),10411=>array(146,-195,586,781),10412=>array(146,-195,586,781),10413=>array(146,-195,586,781),10414=>array(146,-195,586,781),10415=>array(146,-195,586,781),10416=>array(439,-195,586,504),10417=>array(146,-195,586,781),10418=>array(146,-195,586,504),10419=>array(146,-195,586,781),10420=>array(146,-195,586,504),10421=>array(146,-195,586,781),10422=>array(146,-195,586,504),10423=>array(146,-195,586,781),10424=>array(439,-195,586,781),10425=>array(146,-195,586,781),10426=>array(146,-195,586,781),10427=>array(146,-195,586,781),10428=>array(146,-195,586,781),10429=>array(146,-195,586,781),10430=>array(146,-195,586,781),10431=>array(146,-195,586,781),10432=>array(146,-195,586,-49),10433=>array(146,-195,586,781),10434=>array(146,-195,586,504),10435=>array(146,-195,586,781),10436=>array(146,-195,586,228),10437=>array(146,-195,586,781),10438=>array(146,-195,586,504),10439=>array(146,-195,586,781),10440=>array(146,-195,586,781),10441=>array(146,-195,586,781),10442=>array(146,-195,586,781),10443=>array(146,-195,586,781),10444=>array(146,-195,586,781),10445=>array(146,-195,586,781),10446=>array(146,-195,586,781),10447=>array(146,-195,586,781),10448=>array(146,-195,586,504),10449=>array(146,-195,586,781),10450=>array(146,-195,586,504),10451=>array(146,-195,586,781),10452=>array(146,-195,586,504),10453=>array(146,-195,586,781),10454=>array(146,-195,586,504),10455=>array(146,-195,586,781),10456=>array(146,-195,586,781),10457=>array(146,-195,586,781),10458=>array(146,-195,586,781),10459=>array(146,-195,586,781),10460=>array(146,-195,586,781),10461=>array(146,-195,586,781),10462=>array(146,-195,586,781),10463=>array(146,-195,586,781),10464=>array(146,-195,586,228),10465=>array(146,-195,586,781),10466=>array(146,-195,586,504),10467=>array(146,-195,586,781),10468=>array(146,-195,586,228),10469=>array(146,-195,586,781),10470=>array(146,-195,586,504),10471=>array(146,-195,586,781),10472=>array(146,-195,586,781),10473=>array(146,-195,586,781),10474=>array(146,-195,586,781),10475=>array(146,-195,586,781),10476=>array(146,-195,586,781),10477=>array(146,-195,586,781),10478=>array(146,-195,586,781),10479=>array(146,-195,586,781),10480=>array(146,-195,586,504),10481=>array(146,-195,586,781),10482=>array(146,-195,586,504),10483=>array(146,-195,586,781),10484=>array(146,-195,586,504),10485=>array(146,-195,586,781),10486=>array(146,-195,586,504),10487=>array(146,-195,586,781),10488=>array(146,-195,586,781),10489=>array(146,-195,586,781),10490=>array(146,-195,586,781),10491=>array(146,-195,586,781),10492=>array(146,-195,586,781),10493=>array(146,-195,586,781),10494=>array(146,-195,586,781),10495=>array(146,-195,586,781),10502=>array(49,100,781,527),10503=>array(57,100,789,527),10506=>array(125,0,713,732),10507=>array(125,-3,713,729),10560=>array(39,63,644,838),10561=>array(39,63,644,838),10627=>array(125,-163,609,760),10628=>array(125,-163,609,760),10702=>array(106,-226,732,747),10703=>array(106,15,894,612),10704=>array(106,15,894,612),10705=>array(106,-30,894,657),10706=>array(106,-30,894,657),10707=>array(106,-30,894,657),10708=>array(106,-30,894,657),10709=>array(106,-30,894,657),10731=>array(3,-233,491,807),10746=>array(106,0,732,627),10747=>array(106,0,732,627),10752=>array(28,-198,972,748),10753=>array(28,-198,972,748),10754=>array(28,-198,972,748),10764=>array(57,-212,1268,757),10765=>array(57,-212,464,757),10766=>array(57,-212,464,757),10767=>array(57,-212,464,757),10768=>array(57,-212,464,757),10769=>array(57,-212,522,757),10770=>array(57,-212,464,757),10771=>array(57,-212,464,757),10772=>array(57,-212,555,757),10773=>array(57,-212,464,757),10774=>array(57,-212,464,757),10775=>array(-32,-212,553,757),10776=>array(57,-212,464,757),10777=>array(57,-212,464,757),10778=>array(57,-212,464,757),10779=>array(57,-212,469,872),10780=>array(52,-327,464,757),10799=>array(137,31,701,596),10858=>array(106,228,732,552),10859=>array(106,78,732,552),10877=>array(106,-123,732,581),10878=>array(106,-123,732,581),10879=>array(106,-123,733,581),10880=>array(106,-123,732,581),10881=>array(106,-123,732,644),10882=>array(106,-123,732,644),10883=>array(106,-123,733,759),10884=>array(106,-123,732,756),10885=>array(106,-132,732,663),10886=>array(106,-132,732,663),10887=>array(106,-121,732,582),10888=>array(106,-121,732,582),10889=>array(106,-204,732,663),10890=>array(106,-204,732,663),10891=>array(106,-311,732,791),10892=>array(106,-311,732,791),10893=>array(106,-124,732,663),10894=>array(106,-124,732,663),10895=>array(106,-241,732,756),10896=>array(106,-241,732,756),10897=>array(106,-229,732,730),10898=>array(106,-229,732,730),10899=>array(106,-224,732,741),10900=>array(106,-224,732,741),10901=>array(106,-61,732,644),10902=>array(106,-61,732,644),10903=>array(106,-61,733,644),10904=>array(106,-61,732,644),10905=>array(106,-36,732,685),10906=>array(106,-36,732,685),10907=>array(106,-31,732,725),10908=>array(106,-31,732,725),10909=>array(106,8,732,645),10910=>array(106,23,732,645),10911=>array(106,-176,732,729),10912=>array(106,-176,732,729),10926=>array(106,50,732,601),10927=>array(106,-24,732,667),10928=>array(106,-24,732,667),10929=>array(106,-145,732,667),10930=>array(106,-145,732,667),10931=>array(106,-121,732,662),10932=>array(106,-121,732,662),10933=>array(106,-195,732,662),10934=>array(106,-195,732,662),10935=>array(106,-191,732,693),10936=>array(106,-191,732,693),10937=>array(106,-259,732,693),10938=>array(106,-259,732,693),11001=>array(106,-171,732,585),11002=>array(106,-171,732,585),11008=>array(88,-27,703,587),11009=>array(141,-27,755,587),11010=>array(88,25,703,640),11011=>array(141,25,755,640),11012=>array(27,65,789,562),11013=>array(27,65,781,562),11014=>array(171,0,667,754),11015=>array(171,-25,667,729),11016=>array(88,-27,703,587),11017=>array(141,-27,755,587),11018=>array(88,25,703,640),11019=>array(141,25,755,640),11020=>array(27,65,789,562),11021=>array(171,-25,667,754),11022=>array(57,-3,790,355),11023=>array(57,272,790,630),11024=>array(35,-3,768,355),11025=>array(35,272,768,630),11026=>array(91,-123,854,643),11027=>array(91,-123,854,643),11028=>array(91,-123,854,643),11029=>array(91,-123,854,643),11030=>array(3,-123,766,643),11031=>array(3,-123,766,643),11032=>array(3,-123,766,643),11033=>array(3,-123,766,643),11034=>array(91,-123,854,643),11039=>array(18,-26,852,767),11040=>array(18,-26,852,767),11041=>array(73,-91,800,748),11042=>array(73,-91,800,748),11043=>array(17,-35,856,692),11044=>array(55,-250,1064,770),11091=>array(38,-47,832,788),11092=>array(38,-47,832,788),11360=>array(5,0,552,729),11361=>array(5,0,271,760),11362=>array(-20,0,552,729),11363=>array(5,0,569,729),11364=>array(98,-200,666,729),11365=>array(35,-46,576,592),11366=>array(-12,-93,384,822),11367=>array(98,-157,752,729),11368=>array(91,-138,639,760),11369=>array(98,-157,677,729),11370=>array(91,-138,576,760),11371=>array(45,-157,738,729),11372=>array(43,-138,572,547),11373=>array(56,-14,683,743),11374=>array(98,-200,765,729),11375=>array(8,0,676,729),11376=>array(56,-14,683,743),11377=>array(30,0,734,560),11378=>array(33,0,1128,742),11379=>array(42,0,961,560),11380=>array(51,0,562,587),11381=>array(98,0,555,729),11382=>array(94,0,477,547),11383=>array(55,-12,602,551),11385=>array(0,-13,320,760),11386=>array(55,-14,557,560),11387=>array(48,0,400,547),11388=>array(-11,-117,116,425),11389=>array(5,326,426,734),11390=>array(66,-242,598,742),11391=>array(45,-242,640,729),11520=>array(60,-63,544,547),11521=>array(24,-235,556,546),11522=>array(39,-235,535,546),11523=>array(62,-10,572,807),11524=>array(51,-235,537,546),11525=>array(39,-236,862,546),11526=>array(0,-8,575,816),11527=>array(53,0,900,546),11528=>array(69,0,542,546),11529=>array(51,-235,556,816),11530=>array(39,0,903,546),11531=>array(53,-8,595,816),11532=>array(39,0,544,816),11533=>array(51,0,887,546),11534=>array(51,0,556,546),11535=>array(69,-235,767,816),11536=>array(51,0,880,816),11537=>array(51,0,545,816),11538=>array(50,-235,536,546),11539=>array(51,-235,884,661),11540=>array(60,-235,892,546),11541=>array(49,-235,784,816),11542=>array(39,0,545,546),11543=>array(51,-235,556,547),11544=>array(51,-235,551,546),11545=>array(39,-235,541,816),11546=>array(42,-235,532,547),11547=>array(60,-9,596,816),11548=>array(39,-235,870,547),11549=>array(29,-235,545,546),11550=>array(47,-235,547,546),11551=>array(34,-235,547,567),11552=>array(39,0,875,546),11553=>array(49,-235,544,816),11554=>array(60,0,538,626),11555=>array(61,-235,553,816),11556=>array(51,-235,603,546),11557=>array(60,-8,841,816),11568=>array(55,-14,591,380),11569=>array(56,-14,832,742),11570=>array(56,-14,832,742),11571=>array(31,0,651,729),11572=>array(33,0,652,729),11573=>array(31,0,604,729),11574=>array(73,0,488,729),11575=>array(8,0,676,729),11576=>array(8,0,676,729),11577=>array(98,0,568,729),11578=>array(64,0,534,729),11579=>array(73,-14,609,742),11580=>array(107,0,811,729),11581=>array(45,0,665,729),11582=>array(73,0,437,729),11583=>array(45,0,665,729),11584=>array(56,-14,832,742),11585=>array(56,-52,832,781),11586=>array(73,0,197,729),11587=>array(20,0,610,729),11588=>array(98,0,654,729),11589=>array(30,0,654,729),11590=>array(73,0,454,729),11591=>array(45,0,629,729),11592=>array(73,301,571,426),11593=>array(98,0,568,729),11594=>array(54,0,448,729),11595=>array(54,-15,899,742),11596=>array(54,0,725,729),11597=>array(98,0,650,729),11598=>array(100,0,566,729),11599=>array(98,0,197,729),11600=>array(54,0,725,729),11601=>array(98,0,198,729),11602=>array(78,-14,705,729),11603=>array(48,-14,584,742),11604=>array(56,-14,832,742),11605=>array(56,-54,832,742),11606=>array(98,0,654,729),11607=>array(98,0,222,729),11608=>array(73,0,676,729),11609=>array(56,-14,832,742),11610=>array(56,-14,832,780),11611=>array(56,-14,681,742),11612=>array(49,0,719,729),11613=>array(30,0,654,729),11614=>array(56,-14,681,742),11615=>array(98,0,568,729),11616=>array(8,0,676,729),11617=>array(98,0,654,729),11618=>array(98,0,559,729),11619=>array(56,0,732,729),11620=>array(98,0,495,729),11621=>array(56,0,732,729),11631=>array(26,522,489,729),11800=>array(70,-14,459,728),11806=>array(106,78,732,399),11810=>array(86,403,293,760),11811=>array(97,403,304,760),11812=>array(86,-132,293,225),11813=>array(97,-132,304,225),11822=>array(72,0,461,742),19904=>array(83,-158,813,729),19905=>array(83,-158,813,729),19906=>array(83,-158,813,729),19907=>array(83,-158,813,729),19908=>array(83,-158,813,729),19909=>array(83,-158,813,729),19910=>array(83,-158,813,729),19911=>array(83,-158,813,729),19912=>array(83,-158,813,729),19913=>array(83,-158,814,729),19914=>array(83,-158,813,729),19915=>array(83,-158,813,729),19916=>array(83,-158,813,729),19917=>array(83,-158,813,729),19918=>array(83,-158,813,729),19919=>array(83,-158,813,729),19920=>array(83,-158,814,729),19921=>array(83,-158,813,729),19922=>array(83,-158,814,729),19923=>array(83,-158,813,729),19924=>array(83,-158,813,729),19925=>array(83,-158,813,729),19926=>array(83,-158,813,729),19927=>array(83,-158,813,729),19928=>array(83,-158,813,729),19929=>array(83,-158,813,729),19930=>array(83,-158,813,729),19931=>array(83,-158,814,729),19932=>array(83,-158,813,729),19933=>array(83,-158,813,729),19934=>array(83,-158,814,729),19935=>array(83,-158,813,729),19936=>array(83,-158,813,729),19937=>array(83,-158,813,729),19938=>array(83,-158,813,729),19939=>array(83,-158,813,729),19940=>array(83,-158,813,729),19941=>array(83,-158,814,729),19942=>array(83,-158,813,729),19943=>array(83,-158,813,729),19944=>array(83,-158,814,729),19945=>array(83,-158,813,729),19946=>array(83,-158,814,729),19947=>array(83,-158,813,729),19948=>array(83,-158,814,729),19949=>array(83,-158,813,729),19950=>array(83,-158,814,729),19951=>array(83,-158,813,729),19952=>array(83,-158,814,729),19953=>array(83,-158,813,729),19954=>array(83,-158,813,729),19955=>array(83,-158,813,729),19956=>array(83,-158,813,729),19957=>array(83,-158,814,729),19958=>array(83,-158,813,729),19959=>array(83,-158,813,729),19960=>array(83,-158,813,729),19961=>array(83,-158,814,729),19962=>array(83,-158,813,729),19963=>array(83,-158,814,729),19964=>array(83,-158,814,729),19965=>array(83,-158,813,729),19966=>array(83,-158,813,729),19967=>array(83,-158,813,729),42192=>array(98,0,615,729),42193=>array(98,0,569,729),42194=>array(34,0,505,729),42195=>array(98,0,711,729),42196=>array(-3,0,614,729),42197=>array(-3,0,614,729),42198=>array(56,-14,693,742),42199=>array(98,0,677,729),42200=>array(-21,0,558,729),42201=>array(0,-14,414,729),42202=>array(56,-14,644,742),42203=>array(56,-14,644,742),42204=>array(45,0,640,729),42205=>array(98,0,517,729),42206=>array(98,0,517,729),42207=>array(98,0,765,729),42208=>array(98,0,650,729),42209=>array(98,0,552,729),42210=>array(66,-14,579,742),42211=>array(98,0,666,729),42212=>array(29,0,597,729),42213=>array(8,0,676,729),42214=>array(8,0,676,729),42215=>array(98,0,654,729),42216=>array(80,-14,716,742),42217=>array(98,0,512,743),42218=>array(33,0,956,729),42219=>array(30,0,654,729),42220=>array(-2,0,613,729),42221=>array(71,0,588,729),42222=>array(8,0,676,729),42223=>array(8,0,676,729),42224=>array(98,0,568,729),42225=>array(64,0,534,729),42226=>array(98,0,197,729),42227=>array(56,-14,731,742),42228=>array(87,-14,645,729),42229=>array(87,0,645,743),42230=>array(4,0,458,729),42231=>array(56,0,669,729),42232=>array(85,0,214,155),42233=>array(71,-156,214,155),42234=>array(85,0,511,155),42235=>array(85,-156,511,155),42236=>array(71,-156,214,517),42237=>array(85,0,214,517),42238=>array(85,0,502,354),42239=>array(85,172,502,454),42564=>array(56,-14,569,742),42565=>array(49,-14,467,560),42566=>array(98,0,347,729),42567=>array(81,0,304,547),42572=>array(58,-14,1122,645),42573=>array(74,-14,954,471),42576=>array(29,0,931,729),42577=>array(30,0,817,560),42580=>array(56,-14,977,742),42581=>array(55,-14,748,560),42582=>array(103,0,968,729),42583=>array(94,-14,752,560),42594=>array(49,-157,1004,729),42595=>array(52,-138,863,547),42596=>array(41,0,1008,729),42597=>array(37,0,852,547),42598=>array(98,0,1120,729),42599=>array(91,0,959,547),42600=>array(56,-14,731,742),42601=>array(55,-14,557,560),42602=>array(56,-14,799,742),42603=>array(55,-14,658,560),42604=>array(56,-14,1302,742),42605=>array(55,-14,964,560),42606=>array(28,-208,851,743),42634=>array(-3,-200,758,729),42635=>array(29,-208,660,547),42636=>array(-3,0,614,729),42637=>array(29,0,553,547),42644=>array(85,0,587,729),42645=>array(91,0,549,760),42760=>array(104,0,389,668),42761=>array(104,0,389,668),42762=>array(104,0,389,668),42763=>array(104,0,389,668),42764=>array(104,0,389,668),42765=>array(104,0,389,668),42766=>array(104,0,389,668),42767=>array(104,0,389,668),42768=>array(104,0,389,668),42769=>array(104,0,389,668),42770=>array(104,0,389,668),42771=>array(104,0,389,668),42772=>array(104,0,389,668),42773=>array(104,0,389,668),42774=>array(104,0,389,668),42779=>array(50,326,319,736),42780=>array(50,324,319,734),42781=>array(95,326,158,734),42782=>array(95,326,158,734),42783=>array(95,0,158,408),42786=>array(67,0,350,729),42787=>array(67,0,321,547),42788=>array(56,224,411,742),42789=>array(56,42,411,560),42790=>array(98,-200,654,729),42791=>array(91,-208,549,760),42792=>array(-3,-213,819,729),42793=>array(27,-213,650,702),42794=>array(80,-14,560,742),42795=>array(65,-200,473,561),42800=>array(91,0,437,547),42801=>array(54,-14,472,560),42802=>array(8,0,1241,729),42803=>array(60,-14,894,560),42804=>array(8,-14,1147,742),42805=>array(60,-14,935,560),42806=>array(8,-14,1055,729),42807=>array(60,-14,890,560),42808=>array(8,0,963,729),42809=>array(60,-14,788,560),42810=>array(8,0,963,729),42811=>array(60,-14,788,560),42812=>array(8,-208,951,729),42813=>array(60,-208,788,560),42814=>array(56,-14,644,742),42815=>array(62,-14,495,560),42816=>array(5,0,677,729),42817=>array(7,0,580,760),42822=>array(98,0,675,729),42823=>array(94,0,298,760),42824=>array(41,0,576,729),42825=>array(59,0,368,760),42826=>array(5,-14,802,742),42827=>array(5,-14,694,560),42830=>array(56,-14,1302,742),42831=>array(55,-14,964,560),42832=>array(5,0,569,729),42833=>array(-2,-208,580,560),42834=>array(24,0,700,729),42835=>array(24,-208,720,560),42838=>array(56,-178,731,742),42839=>array(55,-208,637,560),42852=>array(5,0,569,729),42853=>array(-2,-208,580,760),42854=>array(5,0,569,729),42855=>array(-2,-208,580,760),42880=>array(5,0,459,729),42881=>array(94,-208,184,560),42882=>array(98,-208,637,742),42883=>array(91,-208,549,560),42889=>array(117,0,220,517),42890=>array(78,161,298,380),42891=>array(151,235,250,729),42892=>array(96,458,179,729),42893=>array(85,0,587,729),42894=>array(38,-208,416,760),42896=>array(98,-157,733,729),42897=>array(91,-138,621,560),42912=>array(2,-14,778,742),42913=>array(2,-208,633,560),42914=>array(2,0,677,729),42915=>array(2,0,577,760),42916=>array(2,0,746,729),42917=>array(2,0,633,560),42918=>array(2,0,693,729),42919=>array(2,0,411,560),42920=>array(2,-14,633,742),42921=>array(2,-14,519,560),42922=>array(-51,0,703,729),43002=>array(91,0,824,547),43003=>array(58,0,477,729),43004=>array(34,0,505,729),43005=>array(98,0,765,729),43006=>array(98,0,197,928),43007=>array(33,0,1167,729),61184=>array(95,602,323,668),61185=>array(69,451,342,668),61186=>array(54,301,361,668),61187=>array(47,150,368,668),61188=>array(44,0,372,668),61189=>array(69,451,342,668),61190=>array(95,451,323,518),61191=>array(69,301,342,518),61192=>array(54,150,361,518),61193=>array(47,0,368,518),61194=>array(54,301,361,668),61195=>array(69,301,342,518),61196=>array(95,301,323,367),61197=>array(69,150,342,367),61198=>array(54,0,361,367),61199=>array(47,150,368,668),61200=>array(54,150,361,518),61201=>array(69,150,342,367),61202=>array(95,150,323,217),61203=>array(69,0,342,217),61204=>array(44,0,372,668),61205=>array(47,0,368,518),61206=>array(54,0,361,367),61207=>array(69,0,342,217),61208=>array(95,0,323,66),61209=>array(104,0,171,668),61440=>array(73,0,903,732),61441=>array(73,0,903,732),61442=>array(73,0,903,732),61443=>array(73,0,903,732),62464=>array(54,-15,526,828),62465=>array(54,-15,526,828),62466=>array(54,-15,570,837),62467=>array(54,0,835,837),62468=>array(54,-15,526,837),62469=>array(54,-15,526,837),62470=>array(54,-15,599,837),62471=>array(54,-15,828,837),62472=>array(54,0,501,837),62473=>array(54,-15,526,828),62474=>array(54,0,1115,837),62475=>array(54,-15,525,837),62476=>array(63,-15,536,828),62477=>array(54,0,815,837),62478=>array(54,-15,526,828),62479=>array(54,-15,526,844),62480=>array(54,0,860,837),62481=>array(63,-15,536,828),62482=>array(54,-15,677,837),62483=>array(24,-15,519,837),62484=>array(54,-15,818,837),62485=>array(54,-15,526,828),62486=>array(54,-15,841,837),62487=>array(54,-15,525,829),62488=>array(54,-15,525,837),62489=>array(64,0,536,837),62490=>array(55,-15,595,828),62491=>array(54,-15,525,828),62492=>array(64,-15,536,837),62493=>array(54,-15,545,828),62494=>array(63,-15,536,828),62495=>array(24,-15,492,837),62496=>array(54,-15,526,837),62497=>array(59,-15,530,837),62498=>array(54,-79,526,837),62499=>array(54,-15,525,838),62500=>array(54,-15,532,838),62501=>array(54,-15,594,837),62502=>array(54,-15,901,838),62504=>array(60,-235,872,816),62505=>array(49,-230,759,853),62506=>array(49,-15,459,765),62507=>array(49,-15,459,777),62508=>array(49,-15,459,875),62509=>array(49,-15,459,818),62510=>array(49,-15,459,887),62511=>array(49,-15,459,809),62512=>array(49,-236,449,765),62513=>array(49,-236,449,799),62514=>array(49,-236,449,901),62515=>array(49,-236,449,809),62516=>array(49,0,469,765),62517=>array(49,0,469,799),62518=>array(49,0,469,809),62519=>array(49,-0,737,765),62520=>array(49,-0,737,777),62521=>array(49,-0,737,895),62522=>array(49,-0,737,799),62523=>array(49,-0,737,809),62524=>array(29,-236,488,765),62525=>array(29,-236,488,777),62526=>array(29,-236,488,904),62527=>array(29,-236,488,799),62528=>array(29,-236,488,809),62529=>array(29,-236,488,852),63173=>array(55,-14,557,760),64256=>array(23,0,708,760),64257=>array(23,0,536,760),64258=>array(23,0,536,760),64259=>array(23,0,873,760),64260=>array(23,0,873,760),64261=>array(23,0,662,760),64262=>array(54,-14,837,742),64275=>array(83,-14,1111,760),64276=>array(85,-14,1111,760),64277=>array(85,-208,1111,760),64278=>array(85,-208,1111,760),64279=>array(85,-208,1451,760),64285=>array(66,44,157,547),64286=>array(167,625,473,765),64287=>array(36,44,329,547),64288=>array(38,0,562,547),64289=>array(85,0,772,547),64290=>array(43,0,717,547),64291=>array(91,0,764,547),64292=>array(43,0,716,547),64293=>array(43,0,716,760),64294=>array(91,0,764,547),64295=>array(43,0,716,547),64296=>array(47,-4,716,547),64297=>array(106,272,732,627),64298=>array(43,0,666,698),64299=>array(38,0,666,698),64300=>array(43,0,666,698),64301=>array(43,0,666,698),64302=>array(91,-159,578,547),64303=>array(91,-193,578,547),64304=>array(91,-159,578,547),64305=>array(43,0,535,547),64306=>array(43,-5,383,547),64307=>array(43,0,511,547),64308=>array(91,0,563,547),64309=>array(43,0,265,547),64310=>array(43,0,363,547),64312=>array(90,-14,593,552),64313=>array(43,204,264,547),64314=>array(43,-208,446,547),64315=>array(43,0,474,547),64316=>array(43,0,492,729),64318=>array(43,0,588,555),64320=>array(43,0,309,547),64321=>array(90,-14,593,547),64323=>array(91,-208,549,547),64324=>array(91,0,569,547),64326=>array(43,0,502,547),64327=>array(91,-208,633,546),64328=>array(43,0,474,547),64329=>array(43,0,666,547),64330=>array(10,-4,566,547),64331=>array(91,0,182,698),64332=>array(43,0,535,698),64333=>array(43,0,474,698),64334=>array(91,0,569,698),64335=>array(43,0,571,760),64338=>array(63,-244,865,327),64339=>array(63,-244,992,327),64340=>array(-10,-244,191,293),64341=>array(-10,-244,312,293),64342=>array(63,-244,865,327),64343=>array(63,-244,992,327),64344=>array(-10,-244,244,293),64345=>array(-10,-244,312,293),64346=>array(63,-244,865,327),64347=>array(63,-244,992,327),64348=>array(-10,-244,244,293),64349=>array(-10,-244,312,293),64350=>array(63,-10,865,513),64351=>array(63,-10,992,513),64352=>array(-10,0,191,610),64353=>array(-10,0,312,610),64354=>array(63,-10,865,513),64355=>array(63,-10,992,513),64356=>array(-10,0,244,610),64357=>array(-10,0,312,610),64358=>array(63,-10,865,575),64359=>array(63,-10,992,575),64360=>array(-10,0,273,672),64361=>array(-10,0,312,672),64362=>array(63,-45,952,757),64363=>array(63,-44,1045,659),64364=>array(-10,0,406,757),64365=>array(-10,0,516,684),64366=>array(63,-45,952,757),64367=>array(63,-44,1045,659),64368=>array(-10,0,406,757),64369=>array(-10,0,516,684),64370=>array(77,-244,645,425),64371=>array(77,-244,655,425),64372=>array(-10,-220,545,398),64373=>array(-10,-220,655,398),64374=>array(77,-244,645,425),64375=>array(77,-244,655,425),64376=>array(-10,-98,545,398),64377=>array(-10,-98,655,398),64378=>array(77,-244,645,425),64379=>array(77,-244,655,425),64380=>array(-10,-220,545,398),64381=>array(-10,-220,655,398),64382=>array(77,-244,645,425),64383=>array(77,-244,655,425),64384=>array(-10,-220,545,398),64385=>array(-10,-220,655,398),64386=>array(61,-146,388,415),64387=>array(61,-146,535,415),64388=>array(61,-19,388,586),64389=>array(61,-19,535,586),64390=>array(61,-19,388,708),64391=>array(61,-19,535,708),64392=>array(61,-19,388,746),64393=>array(61,-19,535,746),64394=>array(-42,-244,439,586),64395=>array(-42,-244,562,586),64396=>array(-42,-244,469,648),64397=>array(-42,-244,562,648),64398=>array(63,-43,895,760),64399=>array(63,-43,981,760),64400=>array(-10,0,476,760),64401=>array(-10,0,562,760),64402=>array(63,-43,895,896),64403=>array(63,-43,981,896),64404=>array(-10,0,476,896),64405=>array(-10,0,562,896),64406=>array(63,-293,895,896),64407=>array(63,-293,981,896),64408=>array(-10,-269,476,896),64409=>array(-10,-269,562,896),64410=>array(63,-43,895,903),64411=>array(63,-43,981,903),64412=>array(-10,0,476,903),64413=>array(-10,0,562,903),64414=>array(72,-162,660,366),64415=>array(72,-244,771,284),64416=>array(72,-162,660,636),64417=>array(72,-244,771,514),64418=>array(-10,0,273,672),64419=>array(-10,0,312,672),64426=>array(70,-33,638,487),64427=>array(70,-244,642,333),64428=>array(-10,-33,467,487),64429=>array(-10,-244,471,333),64467=>array(70,-27,722,854),64468=>array(70,-27,853,854),64469=>array(-10,0,476,928),64470=>array(-10,0,562,928),64473=>array(-42,-244,406,556),64474=>array(-42,-244,526,556),64488=>array(-10,0,191,293),64489=>array(-10,0,312,293),64508=>array(63,-131,719,411),64509=>array(63,-133,843,251),64510=>array(-10,-146,244,293),64511=>array(-10,-146,312,293),65056=>array(-445,752,0,929),65057=>array(0,752,445,929),65058=>array(-354,756,0,894),65059=>array(0,756,354,894),65136=>array(4,591,289,825),65137=>array(-10,0,303,825),65138=>array(4,591,289,874),65139=>array(51,0,271,177),65140=>array(4,-239,289,-5),65142=>array(4,591,289,708),65143=>array(-10,0,303,708),65144=>array(4,590,289,874),65145=>array(-10,0,303,874),65146=>array(4,-137,289,-20),65147=>array(-10,-137,303,90),65148=>array(-6,599,299,869),65149=>array(-10,0,303,869),65150=>array(12,610,279,878),65151=>array(-10,0,303,878),65152=>array(80,42,390,483),65153=>array(-37,0,315,939),65154=>array(-37,0,315,939),65155=>array(53,0,220,1028),65156=>array(53,0,314,1028),65157=>array(-42,-244,406,588),65158=>array(-42,-244,526,588),65159=>array(53,-244,220,760),65160=>array(53,-244,314,760),65161=>array(63,-131,719,588),65162=>array(63,-133,843,466),65163=>array(-10,0,227,613),65164=>array(-10,0,312,613),65165=>array(94,0,184,760),65166=>array(94,0,314,760),65167=>array(63,-171,865,327),65168=>array(63,-171,992,327),65169=>array(-10,-146,191,293),65170=>array(-10,-146,312,293),65171=>array(68,-28,453,513),65172=>array(71,0,546,513),65173=>array(63,-10,865,391),65174=>array(63,-10,992,391),65175=>array(-10,0,244,488),65176=>array(-10,0,312,488),65177=>array(63,-10,865,513),65178=>array(63,-10,992,513),65179=>array(-10,0,244,610),65180=>array(-10,0,312,610),65181=>array(77,-244,645,425),65182=>array(77,-244,655,425),65183=>array(-10,-146,545,398),65184=>array(-10,-146,655,398),65185=>array(77,-244,645,425),65186=>array(77,-244,655,425),65187=>array(-10,0,545,398),65188=>array(-10,0,655,398),65189=>array(77,-244,645,586),65190=>array(77,-244,655,586),65191=>array(-10,0,545,537),65192=>array(-10,0,655,537),65193=>array(61,-19,388,415),65194=>array(61,-19,535,415),65195=>array(61,-19,388,586),65196=>array(61,-19,535,586),65197=>array(-42,-244,423,269),65198=>array(-42,-244,562,269),65199=>array(-42,-244,423,464),65200=>array(-42,-244,562,464),65201=>array(63,-244,1138,366),65202=>array(63,-244,1285,366),65203=>array(-10,-14,755,366),65204=>array(-10,-14,902,366),65205=>array(63,-244,1138,586),65206=>array(63,-244,1285,586),65207=>array(-10,-14,755,586),65208=>array(-10,-14,902,586),65209=>array(63,-244,1134,362),65210=>array(63,-244,1235,362),65211=>array(-10,0,774,362),65212=>array(-10,0,877,362),65213=>array(63,-244,1134,464),65214=>array(63,-244,1235,464),65215=>array(-10,0,774,464),65216=>array(-10,0,877,464),65217=>array(70,0,857,760),65218=>array(70,0,959,760),65219=>array(-10,0,729,760),65220=>array(-10,0,830,760),65221=>array(70,0,857,760),65222=>array(70,0,959,760),65223=>array(-10,0,729,760),65224=>array(-10,0,830,760),65225=>array(57,-244,587,521),65226=>array(57,-244,587,382),65227=>array(-10,0,496,521),65228=>array(-10,0,492,382),65229=>array(57,-244,587,659),65230=>array(57,-244,587,537),65231=>array(-10,0,496,659),65232=>array(-10,0,492,537),65233=>array(63,-45,952,635),65234=>array(63,-44,1045,537),65235=>array(-10,0,406,635),65236=>array(-10,0,516,562),65237=>array(52,-215,701,635),65238=>array(52,-244,844,500),65239=>array(-10,0,406,635),65240=>array(-10,0,516,562),65241=>array(70,-27,722,760),65242=>array(70,-27,853,760),65243=>array(-10,0,476,760),65244=>array(-10,0,562,760),65245=>array(70,-152,637,760),65246=>array(70,-152,767,760),65247=>array(-10,0,210,760),65248=>array(-10,0,341,760),65249=>array(68,-240,546,369),65250=>array(68,-240,675,307),65251=>array(-10,-25,456,303),65252=>array(-10,-24,588,303),65253=>array(72,-162,660,464),65254=>array(72,-244,771,342),65255=>array(-10,0,191,488),65256=>array(-10,0,312,488),65257=>array(68,-28,453,358),65258=>array(71,0,546,366),65259=>array(-10,-33,467,487),65260=>array(-10,-244,471,333),65261=>array(-42,-244,406,315),65262=>array(-42,-244,526,315),65263=>array(63,-131,719,411),65264=>array(63,-133,843,251),65265=>array(63,-244,719,411),65266=>array(63,-244,843,251),65267=>array(-10,-146,244,293),65268=>array(-10,-146,312,293),65269=>array(-103,-10,468,866),65270=>array(-103,-10,606,866),65271=>array(-13,-10,468,955),65272=>array(-13,-10,606,955),65273=>array(11,-244,468,760),65274=>array(11,-244,606,760),65275=>array(41,-10,468,760),65276=>array(41,-10,606,760),65533=>array(15,-84,1011,912),65535=>array(50,-177,550,705)); -$cw=array(0=>600,32=>318,33=>401,34=>460,35=>838,36=>636,37=>950,38=>780,39=>275,40=>390,41=>390,42=>500,43=>838,44=>318,45=>361,46=>318,47=>337,48=>636,49=>636,50=>636,51=>636,52=>636,53=>636,54=>636,55=>636,56=>636,57=>636,58=>337,59=>337,60=>838,61=>838,62=>838,63=>531,64=>1000,65=>684,66=>686,67=>698,68=>770,69=>632,70=>575,71=>775,72=>752,73=>295,74=>295,75=>656,76=>557,77=>863,78=>748,79=>787,80=>603,81=>787,82=>695,83=>635,84=>611,85=>732,86=>684,87=>989,88=>685,89=>611,90=>685,91=>390,92=>337,93=>390,94=>838,95=>500,96=>500,97=>613,98=>635,99=>550,100=>635,101=>615,102=>352,103=>635,104=>634,105=>278,106=>278,107=>579,108=>278,109=>974,110=>634,111=>612,112=>635,113=>635,114=>411,115=>521,116=>392,117=>634,118=>592,119=>818,120=>592,121=>592,122=>525,123=>636,124=>337,125=>636,126=>838,160=>318,161=>401,162=>636,163=>636,164=>636,165=>636,166=>337,167=>500,168=>500,169=>1000,170=>471,171=>612,172=>838,173=>361,174=>1000,175=>500,176=>500,177=>838,178=>401,179=>401,180=>500,181=>636,182=>636,183=>318,184=>500,185=>401,186=>471,187=>612,188=>969,189=>969,190=>969,191=>531,192=>684,193=>684,194=>684,195=>684,196=>684,197=>684,198=>974,199=>698,200=>632,201=>632,202=>632,203=>632,204=>295,205=>295,206=>295,207=>295,208=>775,209=>748,210=>787,211=>787,212=>787,213=>787,214=>787,215=>838,216=>787,217=>732,218=>732,219=>732,220=>732,221=>611,222=>605,223=>630,224=>613,225=>613,226=>613,227=>613,228=>613,229=>613,230=>982,231=>550,232=>615,233=>615,234=>615,235=>615,236=>278,237=>278,238=>278,239=>278,240=>612,241=>634,242=>612,243=>612,244=>612,245=>612,246=>612,247=>838,248=>612,249=>634,250=>634,251=>634,252=>634,253=>592,254=>635,255=>592,256=>684,257=>613,258=>684,259=>613,260=>684,261=>613,262=>698,263=>550,264=>698,265=>550,266=>698,267=>550,268=>698,269=>550,270=>770,271=>635,272=>775,273=>635,274=>632,275=>615,276=>632,277=>615,278=>632,279=>615,280=>632,281=>615,282=>632,283=>615,284=>775,285=>635,286=>775,287=>635,288=>775,289=>635,290=>775,291=>635,292=>752,293=>634,294=>916,295=>695,296=>295,297=>278,298=>295,299=>278,300=>295,301=>278,302=>295,303=>278,304=>295,305=>278,306=>590,307=>556,308=>295,309=>278,310=>656,311=>579,312=>579,313=>557,314=>278,315=>557,316=>278,317=>557,318=>375,319=>557,320=>342,321=>562,322=>284,323=>748,324=>634,325=>748,326=>634,327=>748,328=>634,329=>813,330=>748,331=>634,332=>787,333=>612,334=>787,335=>612,336=>787,337=>612,338=>1070,339=>1023,340=>695,341=>411,342=>695,343=>411,344=>695,345=>411,346=>635,347=>521,348=>635,349=>521,350=>635,351=>521,352=>635,353=>521,354=>611,355=>392,356=>611,357=>392,358=>611,359=>392,360=>732,361=>634,362=>732,363=>634,364=>732,365=>634,366=>732,367=>634,368=>732,369=>634,370=>732,371=>634,372=>989,373=>818,374=>611,375=>592,376=>611,377=>685,378=>525,379=>685,380=>525,381=>685,382=>525,383=>352,384=>635,385=>735,386=>686,387=>635,388=>686,389=>635,390=>703,391=>698,392=>550,393=>775,394=>819,395=>686,396=>635,397=>612,398=>632,399=>787,400=>614,401=>575,402=>352,403=>775,404=>687,405=>984,406=>354,407=>295,408=>746,409=>579,410=>278,411=>592,412=>974,413=>748,414=>634,415=>787,416=>913,417=>612,418=>949,419=>759,420=>652,421=>635,422=>695,423=>635,424=>521,425=>632,426=>336,427=>392,428=>611,429=>392,430=>611,431=>858,432=>634,433=>764,434=>721,435=>744,436=>730,437=>685,438=>525,439=>666,440=>666,441=>578,442=>525,443=>636,444=>666,445=>578,446=>510,447=>635,448=>295,449=>492,450=>459,451=>295,452=>1422,453=>1299,454=>1154,455=>835,456=>787,457=>457,458=>931,459=>924,460=>797,461=>684,462=>613,463=>295,464=>278,465=>787,466=>612,467=>732,468=>634,469=>732,470=>634,471=>732,472=>634,473=>732,474=>634,475=>732,476=>634,477=>615,478=>684,479=>613,480=>684,481=>613,482=>974,483=>982,484=>775,485=>635,486=>775,487=>635,488=>656,489=>579,490=>787,491=>612,492=>787,493=>612,494=>666,495=>578,496=>278,497=>1422,498=>1299,499=>1154,500=>775,501=>635,502=>1113,503=>682,504=>748,505=>634,506=>684,507=>613,508=>974,509=>982,510=>787,511=>612,512=>684,513=>613,514=>684,515=>613,516=>632,517=>615,518=>632,519=>615,520=>295,521=>278,522=>295,523=>278,524=>787,525=>612,526=>787,527=>612,528=>695,529=>411,530=>695,531=>411,532=>732,533=>634,534=>732,535=>634,536=>635,537=>521,538=>611,539=>392,540=>627,541=>521,542=>752,543=>634,544=>735,545=>838,546=>698,547=>610,548=>685,549=>525,550=>684,551=>613,552=>632,553=>615,554=>787,555=>612,556=>787,557=>612,558=>787,559=>612,560=>787,561=>612,562=>611,563=>592,564=>475,565=>843,566=>477,567=>278,568=>998,569=>998,570=>684,571=>698,572=>550,573=>557,574=>611,575=>521,576=>525,577=>603,578=>479,579=>686,580=>732,581=>684,582=>632,583=>615,584=>295,585=>278,586=>781,587=>635,588=>695,589=>411,590=>611,591=>592,592=>600,593=>635,594=>635,595=>635,596=>549,597=>550,598=>635,599=>696,600=>615,601=>615,602=>819,603=>541,604=>532,605=>775,606=>664,607=>278,608=>696,609=>635,610=>629,611=>596,612=>596,613=>634,614=>634,615=>634,616=>278,617=>338,618=>372,619=>396,620=>487,621=>278,622=>706,623=>974,624=>974,625=>974,626=>646,627=>642,628=>634,629=>612,630=>858,631=>728,632=>660,633=>414,634=>414,635=>414,636=>411,637=>411,638=>530,639=>530,640=>604,641=>604,642=>521,643=>336,644=>336,645=>461,646=>336,647=>392,648=>392,649=>634,650=>618,651=>598,652=>592,653=>818,654=>592,655=>611,656=>525,657=>525,658=>578,659=>578,660=>510,661=>510,662=>510,663=>510,664=>787,665=>580,666=>664,667=>708,668=>654,669=>292,670=>667,671=>507,672=>727,673=>510,674=>510,675=>1014,676=>1058,677=>1013,678=>830,679=>610,680=>778,681=>848,682=>706,683=>654,684=>515,685=>515,686=>661,687=>664,688=>404,689=>399,690=>175,691=>259,692=>295,693=>296,694=>379,695=>515,696=>373,697=>278,698=>460,699=>318,700=>318,701=>318,702=>307,703=>307,704=>370,705=>370,706=>500,707=>500,708=>500,709=>500,710=>500,711=>500,712=>275,713=>500,714=>500,715=>500,716=>275,717=>500,718=>500,719=>500,720=>337,721=>337,722=>307,723=>307,724=>500,725=>500,726=>390,727=>317,728=>500,729=>500,730=>500,731=>500,732=>500,733=>500,734=>315,735=>500,736=>426,737=>166,738=>373,739=>444,740=>370,741=>493,742=>493,743=>493,744=>493,745=>493,748=>500,749=>500,750=>518,755=>500,759=>500,768=>0,769=>0,770=>0,771=>0,772=>0,773=>0,774=>0,775=>0,776=>0,777=>0,778=>0,779=>0,780=>0,781=>0,782=>0,783=>0,784=>0,785=>0,786=>0,787=>0,788=>0,789=>0,790=>0,791=>0,792=>0,793=>0,794=>0,795=>0,796=>0,797=>0,798=>0,799=>0,800=>0,801=>0,802=>0,803=>0,804=>0,805=>0,806=>0,807=>0,808=>0,809=>0,810=>0,811=>0,812=>0,813=>0,814=>0,815=>0,816=>0,817=>0,818=>0,819=>0,820=>0,821=>0,822=>0,823=>0,824=>0,825=>0,826=>0,827=>0,828=>0,829=>0,830=>0,831=>0,832=>0,833=>0,834=>0,835=>0,836=>0,837=>0,838=>0,839=>0,840=>0,841=>0,842=>0,843=>0,844=>0,845=>0,846=>0,847=>0,849=>0,850=>0,851=>0,855=>0,856=>0,858=>0,860=>0,861=>0,862=>0,863=>0,864=>0,865=>0,866=>0,880=>654,881=>568,882=>862,883=>647,884=>278,885=>278,886=>748,887=>650,890=>500,891=>549,892=>550,893=>549,894=>337,900=>500,901=>500,902=>692,903=>318,904=>746,905=>871,906=>408,908=>813,910=>825,911=>826,912=>338,913=>684,914=>686,915=>557,916=>684,917=>632,918=>685,919=>752,920=>787,921=>295,922=>656,923=>684,924=>863,925=>748,926=>632,927=>787,928=>752,929=>603,931=>632,932=>611,933=>611,934=>787,935=>685,936=>787,937=>764,938=>295,939=>611,940=>659,941=>541,942=>634,943=>338,944=>579,945=>659,946=>638,947=>592,948=>612,949=>541,950=>544,951=>634,952=>612,953=>338,954=>589,955=>592,956=>636,957=>559,958=>558,959=>612,960=>602,961=>635,962=>587,963=>634,964=>602,965=>579,966=>660,967=>578,968=>660,969=>837,970=>338,971=>579,972=>612,973=>579,974=>837,975=>656,976=>614,977=>619,978=>699,979=>842,980=>699,981=>660,982=>837,983=>664,984=>787,985=>612,986=>648,987=>587,988=>575,989=>458,990=>660,991=>660,992=>865,993=>627,994=>934,995=>837,996=>758,997=>659,998=>792,999=>615,1000=>687,1001=>607,1002=>768,1003=>625,1004=>699,1005=>612,1006=>611,1007=>536,1008=>664,1009=>635,1010=>550,1011=>278,1012=>787,1013=>615,1014=>615,1015=>605,1016=>635,1017=>698,1018=>863,1019=>651,1020=>635,1021=>703,1022=>698,1023=>703,1024=>632,1025=>632,1026=>786,1027=>610,1028=>698,1029=>635,1030=>295,1031=>295,1032=>295,1033=>1094,1034=>1045,1035=>786,1036=>710,1037=>748,1038=>609,1039=>752,1040=>684,1041=>686,1042=>686,1043=>610,1044=>781,1045=>632,1046=>1077,1047=>641,1048=>748,1049=>748,1050=>710,1051=>752,1052=>863,1053=>752,1054=>787,1055=>752,1056=>603,1057=>698,1058=>611,1059=>609,1060=>861,1061=>685,1062=>776,1063=>686,1064=>1069,1065=>1094,1066=>833,1067=>882,1068=>686,1069=>698,1070=>1080,1071=>695,1072=>613,1073=>617,1074=>589,1075=>525,1076=>691,1077=>615,1078=>901,1079=>532,1080=>650,1081=>650,1082=>604,1083=>639,1084=>754,1085=>654,1086=>612,1087=>654,1088=>635,1089=>550,1090=>583,1091=>592,1092=>855,1093=>592,1094=>681,1095=>591,1096=>915,1097=>942,1098=>707,1099=>790,1100=>589,1101=>549,1102=>842,1103=>602,1104=>615,1105=>615,1106=>625,1107=>525,1108=>549,1109=>521,1110=>278,1111=>278,1112=>278,1113=>902,1114=>898,1115=>652,1116=>604,1117=>650,1118=>592,1119=>654,1120=>934,1121=>837,1122=>771,1123=>672,1124=>942,1125=>749,1126=>879,1127=>783,1128=>1160,1129=>1001,1130=>787,1131=>612,1132=>1027,1133=>824,1134=>636,1135=>541,1136=>856,1137=>876,1138=>787,1139=>612,1140=>781,1141=>665,1142=>781,1143=>665,1144=>992,1145=>904,1146=>953,1147=>758,1148=>1180,1149=>1028,1150=>934,1151=>837,1152=>698,1153=>550,1154=>502,1155=>0,1156=>0,1157=>0,1158=>0,1159=>0,1160=>418,1161=>418,1162=>772,1163=>677,1164=>686,1165=>589,1166=>603,1167=>635,1168=>610,1169=>525,1170=>675,1171=>590,1172=>624,1173=>530,1174=>1077,1175=>901,1176=>641,1177=>532,1178=>710,1179=>604,1180=>710,1181=>604,1182=>710,1183=>604,1184=>856,1185=>832,1186=>752,1187=>661,1188=>1014,1189=>877,1190=>1081,1191=>916,1192=>878,1193=>693,1194=>698,1195=>550,1196=>611,1197=>583,1198=>611,1199=>592,1200=>611,1201=>592,1202=>685,1203=>592,1204=>934,1205=>807,1206=>686,1207=>591,1208=>686,1209=>591,1210=>686,1211=>634,1212=>941,1213=>728,1214=>941,1215=>728,1216=>295,1217=>1077,1218=>901,1219=>656,1220=>604,1221=>776,1222=>670,1223=>752,1224=>661,1225=>776,1226=>681,1227=>686,1228=>591,1229=>888,1230=>774,1231=>278,1232=>684,1233=>613,1234=>684,1235=>613,1236=>974,1237=>982,1238=>632,1239=>615,1240=>787,1241=>615,1242=>787,1243=>615,1244=>1077,1245=>901,1246=>641,1247=>532,1248=>666,1249=>578,1250=>748,1251=>650,1252=>748,1253=>650,1254=>787,1255=>612,1256=>787,1257=>612,1258=>787,1259=>612,1260=>698,1261=>549,1262=>609,1263=>592,1264=>609,1265=>592,1266=>609,1267=>592,1268=>686,1269=>591,1270=>610,1271=>525,1272=>882,1273=>790,1274=>675,1275=>590,1276=>685,1277=>592,1278=>685,1279=>592,1280=>686,1281=>589,1282=>1006,1283=>897,1284=>975,1285=>869,1286=>679,1287=>588,1288=>1072,1289=>957,1290=>1113,1291=>967,1292=>775,1293=>660,1294=>773,1295=>711,1296=>614,1297=>541,1298=>752,1299=>639,1300=>1169,1301=>994,1302=>894,1303=>864,1304=>1032,1305=>986,1306=>787,1307=>635,1308=>989,1309=>818,1310=>710,1311=>604,1312=>1081,1313=>905,1314=>1081,1315=>912,1316=>793,1317=>683,1329=>766,1330=>732,1331=>753,1332=>753,1333=>732,1334=>772,1335=>640,1336=>732,1337=>859,1338=>753,1339=>691,1340=>533,1341=>922,1342=>863,1343=>732,1344=>716,1345=>766,1346=>753,1347=>767,1348=>792,1349=>728,1350=>729,1351=>757,1352=>732,1353=>713,1354=>800,1355=>768,1356=>792,1357=>732,1358=>753,1359=>705,1360=>694,1361=>744,1362=>538,1363=>811,1364=>757,1365=>787,1366=>790,1369=>307,1370=>318,1371=>234,1372=>361,1373=>238,1374=>405,1375=>500,1377=>974,1378=>634,1379=>658,1380=>663,1381=>634,1382=>635,1383=>515,1384=>634,1385=>738,1386=>658,1387=>634,1388=>271,1389=>980,1390=>623,1391=>634,1392=>634,1393=>608,1394=>634,1395=>629,1396=>634,1397=>271,1398=>634,1399=>499,1400=>634,1401=>404,1402=>974,1403=>560,1404=>648,1405=>634,1406=>634,1407=>974,1408=>634,1409=>633,1410=>435,1411=>974,1412=>636,1413=>609,1414=>805,1415=>812,1417=>337,1418=>361,1456=>0,1457=>0,1458=>0,1459=>0,1460=>0,1461=>0,1462=>0,1463=>0,1464=>0,1465=>0,1466=>0,1467=>0,1468=>0,1469=>0,1470=>361,1471=>0,1472=>295,1473=>0,1474=>0,1475=>295,1478=>441,1479=>0,1488=>668,1489=>578,1490=>412,1491=>546,1492=>653,1493=>272,1494=>346,1495=>653,1496=>648,1497=>224,1498=>537,1499=>529,1500=>568,1501=>664,1502=>679,1503=>272,1504=>400,1505=>649,1506=>626,1507=>640,1508=>625,1509=>540,1510=>593,1511=>709,1512=>564,1513=>708,1514=>657,1520=>471,1521=>423,1522=>331,1523=>416,1524=>645,1542=>637,1543=>637,1545=>757,1546=>977,1548=>323,1557=>0,1563=>318,1567=>531,1569=>470,1570=>278,1571=>278,1572=>483,1573=>278,1574=>783,1575=>278,1576=>941,1577=>524,1578=>941,1579=>941,1580=>646,1581=>646,1582=>646,1583=>445,1584=>445,1585=>483,1586=>483,1587=>1221,1588=>1221,1589=>1209,1590=>1209,1591=>925,1592=>925,1593=>597,1594=>597,1600=>293,1601=>1037,1602=>776,1603=>824,1604=>727,1605=>619,1606=>734,1607=>524,1608=>483,1609=>783,1610=>783,1611=>0,1612=>0,1613=>0,1614=>0,1615=>0,1616=>0,1617=>0,1618=>0,1619=>0,1620=>0,1621=>0,1623=>0,1626=>500,1632=>537,1633=>537,1634=>537,1635=>537,1636=>537,1637=>537,1638=>537,1639=>537,1640=>537,1641=>537,1642=>537,1643=>325,1644=>318,1645=>545,1646=>941,1647=>776,1648=>0,1652=>292,1657=>941,1658=>941,1659=>941,1660=>941,1661=>941,1662=>941,1663=>941,1664=>941,1665=>646,1666=>646,1667=>646,1668=>646,1669=>646,1670=>646,1671=>646,1672=>445,1673=>445,1674=>445,1675=>445,1676=>445,1677=>445,1678=>445,1679=>445,1680=>445,1681=>483,1682=>483,1683=>498,1684=>530,1685=>610,1686=>530,1687=>483,1688=>483,1689=>483,1690=>1221,1691=>1221,1692=>1221,1693=>1209,1694=>1209,1695=>925,1696=>597,1697=>1037,1698=>1037,1699=>1037,1700=>1037,1701=>1037,1702=>1037,1703=>776,1704=>776,1705=>895,1706=>1054,1707=>895,1708=>824,1709=>824,1710=>824,1711=>895,1712=>895,1713=>895,1714=>895,1715=>895,1716=>895,1717=>727,1718=>727,1719=>727,1720=>727,1721=>734,1722=>734,1723=>734,1724=>734,1725=>734,1726=>698,1727=>646,1734=>483,1740=>783,1742=>783,1749=>524,1776=>537,1777=>537,1778=>537,1779=>537,1780=>537,1781=>537,1782=>537,1783=>537,1784=>537,1785=>537,1984=>636,1985=>636,1986=>636,1987=>636,1988=>636,1989=>636,1990=>636,1991=>636,1992=>636,1993=>636,1994=>278,1995=>571,1996=>424,1997=>592,1998=>654,1999=>654,2000=>594,2001=>654,2002=>829,2003=>438,2004=>438,2005=>559,2006=>612,2007=>350,2008=>959,2009=>473,2010=>783,2011=>654,2012=>625,2013=>734,2014=>530,2015=>724,2016=>473,2017=>625,2018=>594,2019=>530,2020=>530,2021=>522,2022=>594,2023=>594,2027=>0,2028=>0,2029=>0,2030=>0,2031=>0,2032=>0,2033=>0,2034=>0,2035=>0,2036=>313,2037=>313,2040=>560,2041=>560,2042=>361,3647=>636,3713=>670,3714=>684,3716=>688,3719=>482,3720=>628,3722=>684,3725=>688,3732=>669,3733=>642,3734=>645,3735=>655,3737=>659,3738=>625,3739=>625,3740=>745,3741=>767,3742=>687,3743=>687,3745=>702,3746=>688,3747=>684,3749=>649,3751=>632,3754=>703,3755=>819,3757=>633,3758=>684,3759=>788,3760=>632,3761=>0,3762=>539,3763=>539,3764=>0,3765=>0,3766=>0,3767=>0,3768=>0,3769=>0,3771=>0,3772=>0,3773=>663,3776=>375,3777=>657,3778=>460,3779=>547,3780=>491,3782=>674,3784=>0,3785=>0,3786=>0,3787=>0,3788=>0,3789=>0,3792=>636,3793=>641,3794=>641,3795=>670,3796=>625,3797=>625,3798=>703,3799=>670,3800=>674,3801=>677,3804=>1028,3805=>1028,4256=>874,4257=>733,4258=>679,4259=>834,4260=>615,4261=>768,4262=>753,4263=>914,4264=>453,4265=>620,4266=>843,4267=>882,4268=>625,4269=>854,4270=>781,4271=>629,4272=>912,4273=>621,4274=>620,4275=>854,4276=>866,4277=>724,4278=>630,4279=>621,4280=>625,4281=>620,4282=>818,4283=>874,4284=>615,4285=>623,4286=>625,4287=>725,4288=>844,4289=>596,4290=>688,4291=>596,4292=>594,4293=>738,4304=>508,4305=>518,4306=>581,4307=>818,4308=>508,4309=>513,4310=>500,4311=>801,4312=>518,4313=>510,4314=>1064,4315=>522,4316=>522,4317=>786,4318=>508,4319=>518,4320=>796,4321=>522,4322=>654,4323=>522,4324=>825,4325=>513,4326=>786,4327=>518,4328=>518,4329=>522,4330=>571,4331=>522,4332=>518,4333=>520,4334=>522,4335=>454,4336=>508,4337=>518,4338=>508,4339=>508,4340=>518,4341=>554,4342=>828,4343=>552,4344=>508,4345=>571,4346=>508,4347=>448,4348=>324,5121=>684,5122=>684,5123=>684,5124=>684,5125=>769,5126=>769,5127=>769,5129=>769,5130=>769,5131=>769,5132=>835,5133=>834,5134=>835,5135=>834,5136=>835,5137=>834,5138=>967,5139=>1007,5140=>967,5141=>1007,5142=>769,5143=>967,5144=>1007,5145=>967,5146=>1007,5147=>769,5149=>256,5150=>543,5151=>423,5152=>423,5153=>389,5154=>389,5155=>393,5156=>389,5157=>466,5158=>385,5159=>256,5160=>389,5161=>389,5162=>389,5163=>1090,5164=>909,5165=>953,5166=>1117,5167=>684,5168=>684,5169=>684,5170=>684,5171=>729,5172=>729,5173=>729,5175=>729,5176=>729,5177=>729,5178=>835,5179=>684,5180=>835,5181=>834,5182=>835,5183=>834,5184=>967,5185=>1007,5186=>967,5187=>1007,5188=>967,5189=>1007,5190=>967,5191=>1007,5192=>729,5193=>508,5194=>192,5196=>732,5197=>732,5198=>732,5199=>732,5200=>730,5201=>730,5202=>730,5204=>730,5205=>730,5206=>730,5207=>921,5208=>889,5209=>921,5210=>889,5211=>921,5212=>889,5213=>928,5214=>900,5215=>928,5216=>900,5217=>947,5218=>900,5219=>947,5220=>900,5221=>947,5222=>434,5223=>877,5224=>877,5225=>866,5226=>890,5227=>628,5228=>628,5229=>628,5230=>628,5231=>628,5232=>628,5233=>628,5234=>628,5235=>628,5236=>860,5237=>771,5238=>815,5239=>816,5240=>815,5241=>816,5242=>860,5243=>771,5244=>860,5245=>771,5246=>815,5247=>816,5248=>815,5249=>816,5250=>815,5251=>407,5252=>407,5253=>750,5254=>775,5255=>750,5256=>775,5257=>628,5258=>628,5259=>628,5260=>628,5261=>628,5262=>628,5263=>628,5264=>628,5265=>628,5266=>860,5267=>771,5268=>815,5269=>816,5270=>815,5271=>816,5272=>860,5273=>771,5274=>860,5275=>771,5276=>815,5277=>816,5278=>815,5279=>816,5280=>815,5281=>435,5282=>435,5283=>610,5284=>557,5285=>557,5286=>557,5287=>610,5288=>610,5289=>610,5290=>557,5291=>557,5292=>749,5293=>769,5294=>746,5295=>764,5296=>746,5297=>764,5298=>749,5299=>769,5300=>749,5301=>769,5302=>746,5303=>764,5304=>746,5305=>764,5306=>746,5307=>386,5308=>508,5309=>386,5312=>852,5313=>852,5314=>852,5315=>852,5316=>852,5317=>852,5318=>852,5319=>852,5320=>852,5321=>1069,5322=>1035,5323=>1059,5324=>852,5325=>1059,5326=>852,5327=>852,5328=>600,5329=>453,5330=>600,5331=>852,5332=>852,5333=>852,5334=>852,5335=>852,5336=>852,5337=>852,5338=>852,5339=>852,5340=>1069,5341=>1035,5342=>1059,5343=>1030,5344=>1059,5345=>1030,5346=>1069,5347=>1035,5348=>1069,5349=>1035,5350=>1083,5351=>1030,5352=>1083,5353=>1030,5354=>600,5356=>729,5357=>603,5358=>603,5359=>603,5360=>603,5361=>603,5362=>603,5363=>603,5364=>603,5365=>603,5366=>834,5367=>754,5368=>792,5369=>771,5370=>792,5371=>771,5372=>834,5373=>754,5374=>834,5375=>754,5376=>792,5377=>771,5378=>792,5379=>771,5380=>792,5381=>418,5382=>420,5383=>418,5392=>712,5393=>712,5394=>712,5395=>892,5396=>892,5397=>892,5398=>892,5399=>910,5400=>872,5401=>910,5402=>872,5403=>910,5404=>872,5405=>1140,5406=>1100,5407=>1140,5408=>1100,5409=>1140,5410=>1100,5411=>1140,5412=>1100,5413=>641,5414=>627,5415=>627,5416=>627,5417=>627,5418=>627,5419=>627,5420=>627,5421=>627,5422=>627,5423=>844,5424=>781,5425=>816,5426=>818,5427=>816,5428=>818,5429=>844,5430=>781,5431=>844,5432=>781,5433=>816,5434=>818,5435=>816,5436=>818,5437=>816,5438=>418,5440=>389,5441=>484,5442=>916,5443=>916,5444=>916,5445=>916,5446=>916,5447=>916,5448=>603,5449=>603,5450=>603,5451=>603,5452=>603,5453=>603,5454=>834,5455=>754,5456=>418,5458=>729,5459=>684,5460=>684,5461=>684,5462=>684,5463=>726,5464=>726,5465=>726,5466=>726,5467=>924,5468=>1007,5469=>508,5470=>732,5471=>732,5472=>732,5473=>732,5474=>732,5475=>732,5476=>730,5477=>730,5478=>730,5479=>730,5480=>947,5481=>900,5482=>508,5492=>831,5493=>831,5494=>831,5495=>831,5496=>831,5497=>831,5498=>831,5499=>563,5500=>752,5501=>484,5502=>1047,5503=>1047,5504=>1047,5505=>1047,5506=>1047,5507=>1047,5508=>1047,5509=>825,5514=>831,5515=>831,5516=>831,5517=>831,5518=>1259,5519=>1259,5520=>1259,5521=>1002,5522=>1002,5523=>1259,5524=>1259,5525=>700,5526=>1073,5536=>852,5537=>852,5538=>852,5539=>852,5540=>852,5541=>852,5542=>600,5543=>643,5544=>643,5545=>643,5546=>643,5547=>643,5548=>643,5549=>643,5550=>418,5551=>628,5598=>770,5601=>767,5702=>468,5703=>468,5742=>444,5743=>1047,5744=>1310,5745=>1632,5746=>1632,5747=>1375,5748=>1375,5749=>1632,5750=>1632,5760=>477,5761=>493,5762=>712,5763=>931,5764=>1150,5765=>1370,5766=>493,5767=>712,5768=>931,5769=>1150,5770=>1370,5771=>498,5772=>718,5773=>938,5774=>1159,5775=>1379,5776=>493,5777=>712,5778=>930,5779=>1149,5780=>1370,5781=>498,5782=>752,5783=>789,5784=>1205,5785=>1150,5786=>683,5787=>507,5788=>507,7424=>592,7425=>717,7426=>982,7427=>586,7428=>550,7429=>605,7430=>605,7431=>491,7432=>541,7433=>278,7434=>395,7435=>579,7436=>583,7437=>754,7438=>650,7439=>612,7440=>550,7441=>684,7442=>684,7443=>684,7444=>1023,7446=>612,7447=>612,7448=>524,7449=>602,7450=>602,7451=>583,7452=>574,7453=>737,7454=>948,7455=>638,7456=>592,7457=>818,7458=>525,7459=>526,7462=>583,7463=>592,7464=>564,7465=>524,7466=>590,7467=>639,7468=>431,7469=>613,7470=>432,7472=>485,7473=>398,7474=>398,7475=>488,7476=>474,7477=>186,7478=>186,7479=>413,7480=>351,7481=>543,7482=>471,7483=>471,7484=>496,7485=>439,7486=>380,7487=>438,7488=>385,7489=>461,7490=>623,7491=>392,7492=>392,7493=>405,7494=>648,7495=>428,7496=>405,7497=>417,7498=>417,7499=>360,7500=>359,7501=>405,7502=>179,7503=>426,7504=>623,7505=>409,7506=>414,7507=>370,7508=>414,7509=>414,7510=>428,7511=>295,7512=>405,7513=>470,7514=>623,7515=>417,7517=>402,7518=>373,7519=>385,7520=>416,7521=>364,7522=>179,7523=>259,7524=>405,7525=>417,7526=>402,7527=>373,7528=>412,7529=>416,7530=>364,7543=>635,7544=>474,7547=>372,7549=>667,7557=>278,7579=>405,7580=>370,7581=>370,7582=>414,7583=>360,7584=>296,7585=>233,7586=>405,7587=>405,7588=>261,7589=>250,7590=>261,7591=>261,7592=>234,7593=>250,7594=>235,7595=>376,7596=>623,7597=>623,7598=>411,7599=>479,7600=>409,7601=>414,7602=>414,7603=>360,7604=>287,7605=>295,7606=>508,7607=>418,7608=>361,7609=>406,7610=>417,7611=>366,7612=>437,7613=>366,7614=>392,7615=>414,7620=>0,7621=>0,7622=>0,7623=>0,7624=>0,7625=>0,7680=>684,7681=>613,7682=>686,7683=>635,7684=>686,7685=>635,7686=>686,7687=>635,7688=>698,7689=>550,7690=>770,7691=>635,7692=>770,7693=>635,7694=>770,7695=>635,7696=>770,7697=>635,7698=>770,7699=>635,7700=>632,7701=>615,7702=>632,7703=>615,7704=>632,7705=>615,7706=>632,7707=>615,7708=>632,7709=>615,7710=>575,7711=>352,7712=>775,7713=>635,7714=>752,7715=>634,7716=>752,7717=>634,7718=>752,7719=>634,7720=>752,7721=>634,7722=>752,7723=>634,7724=>295,7725=>278,7726=>295,7727=>278,7728=>656,7729=>579,7730=>656,7731=>579,7732=>656,7733=>579,7734=>557,7735=>288,7736=>557,7737=>288,7738=>557,7739=>278,7740=>557,7741=>278,7742=>863,7743=>974,7744=>863,7745=>974,7746=>863,7747=>974,7748=>748,7749=>634,7750=>748,7751=>634,7752=>748,7753=>634,7754=>748,7755=>634,7756=>787,7757=>612,7758=>787,7759=>612,7760=>787,7761=>612,7762=>787,7763=>612,7764=>603,7765=>635,7766=>603,7767=>635,7768=>695,7769=>411,7770=>695,7771=>411,7772=>695,7773=>411,7774=>695,7775=>411,7776=>635,7777=>521,7778=>635,7779=>521,7780=>635,7781=>521,7782=>635,7783=>521,7784=>635,7785=>521,7786=>611,7787=>392,7788=>611,7789=>392,7790=>611,7791=>392,7792=>611,7793=>392,7794=>732,7795=>634,7796=>732,7797=>634,7798=>732,7799=>634,7800=>732,7801=>634,7802=>732,7803=>634,7804=>684,7805=>592,7806=>684,7807=>592,7808=>989,7809=>818,7810=>989,7811=>818,7812=>989,7813=>818,7814=>989,7815=>818,7816=>989,7817=>818,7818=>685,7819=>592,7820=>685,7821=>592,7822=>611,7823=>592,7824=>685,7825=>525,7826=>685,7827=>525,7828=>685,7829=>525,7830=>634,7831=>392,7832=>818,7833=>592,7834=>613,7835=>352,7836=>352,7837=>352,7838=>769,7839=>612,7840=>684,7841=>613,7842=>684,7843=>613,7844=>684,7845=>613,7846=>684,7847=>613,7848=>684,7849=>613,7850=>684,7851=>613,7852=>684,7853=>613,7854=>684,7855=>613,7856=>684,7857=>613,7858=>684,7859=>613,7860=>684,7861=>613,7862=>684,7863=>613,7864=>632,7865=>615,7866=>632,7867=>615,7868=>632,7869=>615,7870=>632,7871=>615,7872=>632,7873=>615,7874=>632,7875=>615,7876=>632,7877=>615,7878=>632,7879=>615,7880=>295,7881=>278,7882=>295,7883=>278,7884=>787,7885=>612,7886=>787,7887=>612,7888=>787,7889=>612,7890=>787,7891=>612,7892=>787,7893=>612,7894=>787,7895=>612,7896=>787,7897=>612,7898=>913,7899=>612,7900=>913,7901=>612,7902=>913,7903=>612,7904=>913,7905=>612,7906=>913,7907=>612,7908=>732,7909=>634,7910=>732,7911=>634,7912=>858,7913=>634,7914=>858,7915=>634,7916=>858,7917=>634,7918=>858,7919=>634,7920=>858,7921=>634,7922=>611,7923=>592,7924=>611,7925=>592,7926=>611,7927=>592,7928=>611,7929=>592,7930=>769,7931=>477,7936=>659,7937=>659,7938=>659,7939=>659,7940=>659,7941=>659,7942=>659,7943=>659,7944=>684,7945=>684,7946=>877,7947=>877,7948=>769,7949=>801,7950=>708,7951=>743,7952=>541,7953=>541,7954=>541,7955=>541,7956=>541,7957=>541,7960=>711,7961=>711,7962=>966,7963=>975,7964=>898,7965=>928,7968=>634,7969=>634,7970=>634,7971=>634,7972=>634,7973=>634,7974=>634,7975=>634,7976=>837,7977=>835,7978=>1086,7979=>1089,7980=>1027,7981=>1051,7982=>934,7983=>947,7984=>338,7985=>338,7986=>338,7987=>338,7988=>338,7989=>338,7990=>338,7991=>338,7992=>380,7993=>374,7994=>635,7995=>635,7996=>570,7997=>600,7998=>489,7999=>493,8000=>612,8001=>612,8002=>612,8003=>612,8004=>612,8005=>612,8008=>804,8009=>848,8010=>1095,8011=>1100,8012=>938,8013=>970,8016=>579,8017=>579,8018=>579,8019=>579,8020=>579,8021=>579,8022=>579,8023=>579,8025=>784,8027=>998,8029=>1012,8031=>897,8032=>837,8033=>837,8034=>837,8035=>837,8036=>837,8037=>837,8038=>837,8039=>837,8040=>802,8041=>843,8042=>1089,8043=>1095,8044=>946,8045=>972,8046=>921,8047=>952,8048=>659,8049=>659,8050=>541,8051=>548,8052=>634,8053=>654,8054=>338,8055=>338,8056=>612,8057=>612,8058=>579,8059=>579,8060=>837,8061=>837,8064=>659,8065=>659,8066=>659,8067=>659,8068=>659,8069=>659,8070=>659,8071=>659,8072=>684,8073=>684,8074=>877,8075=>877,8076=>769,8077=>801,8078=>708,8079=>743,8080=>634,8081=>634,8082=>634,8083=>634,8084=>634,8085=>634,8086=>634,8087=>634,8088=>837,8089=>835,8090=>1086,8091=>1089,8092=>1027,8093=>1051,8094=>934,8095=>947,8096=>837,8097=>837,8098=>837,8099=>837,8100=>837,8101=>837,8102=>837,8103=>837,8104=>802,8105=>843,8106=>1089,8107=>1095,8108=>946,8109=>972,8110=>921,8111=>952,8112=>659,8113=>659,8114=>659,8115=>659,8116=>659,8118=>659,8119=>659,8120=>684,8121=>684,8122=>716,8123=>692,8124=>684,8125=>500,8126=>500,8127=>500,8128=>500,8129=>500,8130=>634,8131=>634,8132=>654,8134=>634,8135=>634,8136=>805,8137=>746,8138=>931,8139=>871,8140=>752,8141=>500,8142=>500,8143=>500,8144=>338,8145=>338,8146=>338,8147=>338,8150=>338,8151=>338,8152=>295,8153=>295,8154=>475,8155=>408,8157=>500,8158=>500,8159=>500,8160=>579,8161=>579,8162=>579,8163=>579,8164=>635,8165=>635,8166=>579,8167=>579,8168=>611,8169=>611,8170=>845,8171=>825,8172=>685,8173=>500,8174=>500,8175=>500,8178=>837,8179=>837,8180=>837,8182=>837,8183=>837,8184=>941,8185=>813,8186=>922,8187=>826,8188=>764,8189=>500,8190=>500,8192=>500,8193=>1000,8194=>500,8195=>1000,8196=>330,8197=>250,8198=>167,8199=>636,8200=>318,8201=>200,8202=>100,8203=>0,8204=>0,8205=>0,8206=>0,8207=>0,8208=>361,8209=>361,8210=>636,8211=>500,8212=>1000,8213=>1000,8214=>500,8215=>500,8216=>318,8217=>318,8218=>318,8219=>318,8220=>518,8221=>518,8222=>518,8223=>518,8224=>500,8225=>500,8226=>590,8227=>590,8228=>334,8229=>667,8230=>1000,8231=>318,8232=>0,8233=>0,8234=>0,8235=>0,8236=>0,8237=>0,8238=>0,8239=>200,8240=>1342,8241=>1735,8242=>227,8243=>374,8244=>520,8245=>227,8246=>374,8247=>520,8248=>339,8249=>400,8250=>400,8251=>838,8252=>485,8253=>531,8254=>500,8255=>804,8256=>804,8257=>250,8258=>1000,8259=>500,8260=>167,8261=>390,8262=>390,8263=>922,8264=>733,8265=>733,8266=>497,8267=>636,8268=>500,8269=>500,8270=>500,8271=>337,8272=>804,8273=>500,8274=>450,8275=>1000,8276=>804,8277=>838,8278=>586,8279=>663,8280=>838,8281=>838,8282=>318,8283=>797,8284=>838,8285=>318,8286=>318,8287=>222,8288=>0,8289=>0,8290=>0,8291=>0,8292=>0,8298=>0,8299=>0,8300=>0,8301=>0,8302=>0,8303=>0,8304=>401,8305=>179,8308=>401,8309=>401,8310=>401,8311=>401,8312=>401,8313=>401,8314=>528,8315=>528,8316=>528,8317=>246,8318=>246,8319=>398,8320=>401,8321=>401,8322=>401,8323=>401,8324=>401,8325=>401,8326=>401,8327=>401,8328=>401,8329=>401,8330=>528,8331=>528,8332=>528,8333=>246,8334=>246,8336=>392,8337=>417,8338=>414,8339=>444,8340=>417,8341=>404,8342=>426,8343=>166,8344=>623,8345=>398,8346=>428,8347=>373,8348=>295,8352=>877,8353=>636,8354=>636,8355=>636,8356=>636,8357=>974,8358=>748,8359=>1272,8360=>1074,8361=>989,8362=>784,8363=>636,8364=>636,8365=>636,8366=>636,8367=>1272,8368=>636,8369=>636,8370=>636,8371=>636,8372=>774,8373=>636,8376=>636,8377=>636,8378=>679,8400=>0,8401=>0,8406=>0,8407=>0,8411=>0,8412=>0,8417=>0,8448=>1019,8449=>1019,8450=>698,8451=>1123,8452=>642,8453=>1019,8454=>1067,8455=>614,8456=>698,8457=>952,8459=>988,8460=>754,8461=>850,8462=>634,8463=>634,8464=>470,8465=>697,8466=>720,8467=>413,8468=>818,8469=>801,8470=>1040,8471=>1000,8472=>697,8473=>701,8474=>787,8475=>798,8476=>814,8477=>792,8478=>896,8479=>684,8480=>1020,8481=>1074,8482=>1000,8483=>684,8484=>745,8485=>578,8486=>764,8487=>764,8488=>616,8489=>338,8490=>656,8491=>684,8492=>786,8493=>703,8494=>854,8495=>592,8496=>605,8497=>786,8498=>575,8499=>1069,8500=>462,8501=>745,8502=>674,8503=>466,8504=>645,8505=>380,8506=>926,8507=>1194,8508=>702,8509=>728,8510=>654,8511=>849,8512=>811,8513=>775,8514=>557,8515=>557,8516=>611,8517=>819,8518=>708,8519=>615,8520=>351,8521=>351,8523=>780,8526=>526,8528=>969,8529=>969,8530=>1370,8531=>969,8532=>969,8533=>969,8534=>969,8535=>969,8536=>969,8537=>969,8538=>969,8539=>969,8540=>969,8541=>969,8542=>969,8543=>568,8544=>295,8545=>492,8546=>689,8547=>923,8548=>684,8549=>922,8550=>1120,8551=>1317,8552=>917,8553=>685,8554=>933,8555=>1131,8556=>557,8557=>698,8558=>770,8559=>863,8560=>278,8561=>458,8562=>637,8563=>812,8564=>592,8565=>811,8566=>991,8567=>1170,8568=>819,8569=>592,8570=>822,8571=>1002,8572=>278,8573=>550,8574=>635,8575=>974,8576=>1245,8577=>770,8578=>1245,8579=>703,8580=>549,8581=>698,8585=>969,8592=>838,8593=>838,8594=>838,8595=>838,8596=>838,8597=>838,8598=>838,8599=>838,8600=>838,8601=>838,8602=>838,8603=>838,8604=>838,8605=>838,8606=>838,8607=>838,8608=>838,8609=>838,8610=>838,8611=>838,8612=>838,8613=>838,8614=>838,8615=>838,8616=>838,8617=>838,8618=>838,8619=>838,8620=>838,8621=>838,8622=>838,8623=>838,8624=>838,8625=>838,8626=>838,8627=>838,8628=>838,8629=>838,8630=>838,8631=>838,8632=>838,8633=>838,8634=>838,8635=>838,8636=>838,8637=>838,8638=>838,8639=>838,8640=>838,8641=>838,8642=>838,8643=>838,8644=>838,8645=>838,8646=>838,8647=>838,8648=>838,8649=>838,8650=>838,8651=>838,8652=>838,8653=>838,8654=>838,8655=>838,8656=>838,8657=>838,8658=>838,8659=>838,8660=>838,8661=>838,8662=>838,8663=>838,8664=>838,8665=>838,8666=>838,8667=>838,8668=>838,8669=>838,8670=>838,8671=>838,8672=>838,8673=>838,8674=>838,8675=>838,8676=>838,8677=>838,8678=>838,8679=>838,8680=>838,8681=>838,8682=>838,8683=>838,8684=>838,8685=>838,8686=>838,8687=>838,8688=>838,8689=>838,8690=>838,8691=>838,8692=>838,8693=>838,8694=>838,8695=>838,8696=>838,8697=>838,8698=>838,8699=>838,8700=>838,8701=>838,8702=>838,8703=>838,8704=>684,8705=>636,8706=>517,8707=>632,8708=>632,8709=>871,8710=>669,8711=>669,8712=>871,8713=>871,8714=>718,8715=>871,8716=>871,8717=>718,8718=>636,8719=>757,8720=>757,8721=>674,8722=>838,8723=>838,8724=>838,8725=>337,8726=>637,8727=>838,8728=>626,8729=>626,8730=>637,8731=>637,8732=>637,8733=>714,8734=>833,8735=>838,8736=>896,8737=>896,8738=>838,8739=>500,8740=>500,8741=>500,8742=>500,8743=>732,8744=>732,8745=>732,8746=>732,8747=>521,8748=>789,8749=>1057,8750=>521,8751=>789,8752=>1057,8753=>521,8754=>521,8755=>521,8756=>636,8757=>636,8758=>260,8759=>636,8760=>838,8761=>838,8762=>838,8763=>838,8764=>838,8765=>838,8766=>838,8767=>838,8768=>375,8769=>838,8770=>838,8771=>838,8772=>838,8773=>838,8774=>838,8775=>838,8776=>838,8777=>838,8778=>838,8779=>838,8780=>838,8781=>838,8782=>838,8783=>838,8784=>838,8785=>838,8786=>839,8787=>839,8788=>1000,8789=>1000,8790=>838,8791=>838,8792=>838,8793=>838,8794=>838,8795=>838,8796=>838,8797=>838,8798=>838,8799=>838,8800=>838,8801=>838,8802=>838,8803=>838,8804=>838,8805=>838,8806=>838,8807=>838,8808=>838,8809=>838,8810=>1047,8811=>1047,8812=>464,8813=>838,8814=>838,8815=>838,8816=>838,8817=>838,8818=>838,8819=>838,8820=>838,8821=>838,8822=>838,8823=>838,8824=>838,8825=>838,8826=>838,8827=>838,8828=>838,8829=>838,8830=>838,8831=>838,8832=>838,8833=>838,8834=>838,8835=>838,8836=>838,8837=>838,8838=>838,8839=>838,8840=>838,8841=>838,8842=>838,8843=>838,8844=>732,8845=>732,8846=>732,8847=>838,8848=>838,8849=>838,8850=>838,8851=>780,8852=>780,8853=>838,8854=>838,8855=>838,8856=>838,8857=>838,8858=>838,8859=>838,8860=>838,8861=>838,8862=>838,8863=>838,8864=>838,8865=>838,8866=>871,8867=>871,8868=>871,8869=>871,8870=>521,8871=>521,8872=>871,8873=>871,8874=>871,8875=>871,8876=>871,8877=>871,8878=>871,8879=>871,8880=>838,8881=>838,8882=>838,8883=>838,8884=>838,8885=>838,8886=>1000,8887=>1000,8888=>838,8889=>838,8890=>521,8891=>732,8892=>732,8893=>732,8894=>838,8895=>838,8896=>820,8897=>820,8898=>820,8899=>820,8900=>494,8901=>318,8902=>626,8903=>838,8904=>1000,8905=>1000,8906=>1000,8907=>1000,8908=>1000,8909=>838,8910=>732,8911=>732,8912=>838,8913=>838,8914=>838,8915=>838,8916=>838,8917=>838,8918=>838,8919=>838,8920=>1422,8921=>1422,8922=>838,8923=>838,8924=>838,8925=>838,8926=>838,8927=>838,8928=>838,8929=>838,8930=>838,8931=>838,8932=>838,8933=>838,8934=>838,8935=>838,8936=>838,8937=>838,8938=>838,8939=>838,8940=>838,8941=>838,8942=>1000,8943=>1000,8944=>1000,8945=>1000,8946=>1000,8947=>871,8948=>718,8949=>871,8950=>871,8951=>718,8952=>871,8953=>871,8954=>1000,8955=>871,8956=>718,8957=>871,8958=>718,8959=>871,8960=>602,8961=>602,8962=>635,8963=>838,8964=>838,8965=>838,8966=>838,8967=>488,8968=>390,8969=>390,8970=>390,8971=>390,8972=>809,8973=>809,8974=>809,8975=>809,8976=>838,8977=>513,8984=>1000,8985=>838,8988=>469,8989=>469,8990=>469,8991=>469,8992=>521,8993=>521,8996=>1152,8997=>1152,8998=>1414,8999=>1152,9000=>1443,9003=>1414,9004=>873,9075=>338,9076=>635,9077=>837,9082=>659,9085=>757,9095=>1152,9108=>873,9115=>500,9116=>500,9117=>500,9118=>500,9119=>500,9120=>500,9121=>500,9122=>500,9123=>500,9124=>500,9125=>500,9126=>500,9127=>750,9128=>750,9129=>750,9130=>750,9131=>750,9132=>750,9133=>750,9134=>521,9166=>838,9167=>945,9187=>873,9189=>769,9192=>636,9250=>635,9251=>635,9312=>896,9313=>896,9314=>896,9315=>896,9316=>896,9317=>896,9318=>896,9319=>896,9320=>896,9321=>896,9472=>602,9473=>602,9474=>602,9475=>602,9476=>602,9477=>602,9478=>602,9479=>602,9480=>602,9481=>602,9482=>602,9483=>602,9484=>602,9485=>602,9486=>602,9487=>602,9488=>602,9489=>602,9490=>602,9491=>602,9492=>602,9493=>602,9494=>602,9495=>602,9496=>602,9497=>602,9498=>602,9499=>602,9500=>602,9501=>602,9502=>602,9503=>602,9504=>602,9505=>602,9506=>602,9507=>602,9508=>602,9509=>602,9510=>602,9511=>602,9512=>602,9513=>602,9514=>602,9515=>602,9516=>602,9517=>602,9518=>602,9519=>602,9520=>602,9521=>602,9522=>602,9523=>602,9524=>602,9525=>602,9526=>602,9527=>602,9528=>602,9529=>602,9530=>602,9531=>602,9532=>602,9533=>602,9534=>602,9535=>602,9536=>602,9537=>602,9538=>602,9539=>602,9540=>602,9541=>602,9542=>602,9543=>602,9544=>602,9545=>602,9546=>602,9547=>602,9548=>602,9549=>602,9550=>602,9551=>602,9552=>602,9553=>602,9554=>602,9555=>602,9556=>602,9557=>602,9558=>602,9559=>602,9560=>602,9561=>602,9562=>602,9563=>602,9564=>602,9565=>602,9566=>602,9567=>602,9568=>602,9569=>602,9570=>602,9571=>602,9572=>602,9573=>602,9574=>602,9575=>602,9576=>602,9577=>602,9578=>602,9579=>602,9580=>602,9581=>602,9582=>602,9583=>602,9584=>602,9585=>602,9586=>602,9587=>602,9588=>602,9589=>602,9590=>602,9591=>602,9592=>602,9593=>602,9594=>602,9595=>602,9596=>602,9597=>602,9598=>602,9599=>602,9600=>769,9601=>769,9602=>769,9603=>769,9604=>769,9605=>769,9606=>769,9607=>769,9608=>769,9609=>769,9610=>769,9611=>769,9612=>769,9613=>769,9614=>769,9615=>769,9616=>769,9617=>769,9618=>769,9619=>769,9620=>769,9621=>769,9622=>769,9623=>769,9624=>769,9625=>769,9626=>769,9627=>769,9628=>769,9629=>769,9630=>769,9631=>769,9632=>945,9633=>945,9634=>945,9635=>945,9636=>945,9637=>945,9638=>945,9639=>945,9640=>945,9641=>945,9642=>678,9643=>678,9644=>945,9645=>945,9646=>550,9647=>550,9648=>769,9649=>769,9650=>769,9651=>769,9652=>502,9653=>502,9654=>769,9655=>769,9656=>502,9657=>502,9658=>769,9659=>769,9660=>769,9661=>769,9662=>502,9663=>502,9664=>769,9665=>769,9666=>502,9667=>502,9668=>769,9669=>769,9670=>769,9671=>769,9672=>769,9673=>873,9674=>494,9675=>873,9676=>873,9677=>873,9678=>873,9679=>873,9680=>873,9681=>873,9682=>873,9683=>873,9684=>873,9685=>873,9686=>527,9687=>527,9688=>791,9689=>970,9690=>970,9691=>970,9692=>387,9693=>387,9694=>387,9695=>387,9696=>873,9697=>873,9698=>769,9699=>769,9700=>769,9701=>769,9702=>590,9703=>945,9704=>945,9705=>945,9706=>945,9707=>945,9708=>769,9709=>769,9710=>769,9711=>1119,9712=>945,9713=>945,9714=>945,9715=>945,9716=>873,9717=>873,9718=>873,9719=>873,9720=>769,9721=>769,9722=>769,9723=>830,9724=>830,9725=>732,9726=>732,9727=>769,9728=>896,9729=>1000,9730=>896,9731=>896,9732=>896,9733=>896,9734=>896,9735=>573,9736=>896,9737=>896,9738=>888,9739=>888,9740=>671,9741=>1013,9742=>1246,9743=>1250,9744=>896,9745=>896,9746=>896,9747=>532,9748=>896,9749=>896,9750=>896,9751=>896,9752=>896,9753=>896,9754=>896,9755=>896,9756=>896,9757=>609,9758=>896,9759=>609,9760=>896,9761=>896,9762=>896,9763=>896,9764=>669,9765=>746,9766=>649,9767=>784,9768=>545,9769=>896,9770=>896,9771=>896,9772=>710,9773=>896,9774=>896,9775=>896,9776=>896,9777=>896,9778=>896,9779=>896,9780=>896,9781=>896,9782=>896,9783=>896,9784=>896,9785=>1042,9786=>1042,9787=>1042,9788=>896,9789=>896,9790=>896,9791=>614,9792=>732,9793=>732,9794=>896,9795=>896,9796=>896,9797=>896,9798=>896,9799=>896,9800=>896,9801=>896,9802=>896,9803=>896,9804=>896,9805=>896,9806=>896,9807=>896,9808=>896,9809=>896,9810=>896,9811=>896,9812=>896,9813=>896,9814=>896,9815=>896,9816=>896,9817=>896,9818=>896,9819=>896,9820=>896,9821=>896,9822=>896,9823=>896,9824=>896,9825=>896,9826=>896,9827=>896,9828=>896,9829=>896,9830=>896,9831=>896,9832=>896,9833=>472,9834=>638,9835=>896,9836=>896,9837=>472,9838=>357,9839=>484,9840=>748,9841=>766,9842=>896,9843=>896,9844=>896,9845=>896,9846=>896,9847=>896,9848=>896,9849=>896,9850=>896,9851=>896,9852=>896,9853=>896,9854=>896,9855=>896,9856=>869,9857=>869,9858=>869,9859=>869,9860=>869,9861=>869,9862=>896,9863=>896,9864=>896,9865=>896,9866=>896,9867=>896,9868=>896,9869=>896,9870=>896,9871=>896,9872=>896,9873=>896,9874=>896,9875=>896,9876=>896,9877=>541,9878=>896,9879=>896,9880=>896,9881=>896,9882=>896,9883=>896,9884=>896,9888=>896,9889=>702,9890=>1004,9891=>1089,9892=>1175,9893=>903,9894=>838,9895=>838,9896=>838,9897=>838,9898=>838,9899=>838,9900=>838,9901=>838,9902=>838,9903=>838,9904=>844,9905=>838,9906=>732,9907=>732,9908=>732,9909=>732,9910=>850,9911=>732,9912=>732,9920=>838,9921=>838,9922=>838,9923=>838,9954=>732,9985=>838,9986=>838,9987=>838,9988=>838,9990=>838,9991=>838,9992=>838,9993=>838,9996=>838,9997=>838,9998=>838,9999=>838,10000=>838,10001=>838,10002=>838,10003=>838,10004=>838,10005=>838,10006=>838,10007=>838,10008=>838,10009=>838,10010=>838,10011=>838,10012=>838,10013=>838,10014=>838,10015=>838,10016=>838,10017=>838,10018=>838,10019=>838,10020=>838,10021=>838,10022=>838,10023=>838,10025=>838,10026=>838,10027=>838,10028=>838,10029=>838,10030=>838,10031=>838,10032=>838,10033=>838,10034=>838,10035=>838,10036=>838,10037=>838,10038=>838,10039=>838,10040=>838,10041=>838,10042=>838,10043=>838,10044=>838,10045=>838,10046=>838,10047=>838,10048=>838,10049=>838,10050=>838,10051=>838,10052=>838,10053=>838,10054=>838,10055=>838,10056=>838,10057=>838,10058=>838,10059=>838,10061=>896,10063=>896,10064=>896,10065=>896,10066=>896,10070=>896,10072=>838,10073=>838,10074=>838,10075=>322,10076=>322,10077=>538,10078=>538,10081=>838,10082=>838,10083=>838,10084=>838,10085=>838,10086=>838,10087=>838,10088=>838,10089=>838,10090=>838,10091=>838,10092=>838,10093=>838,10094=>838,10095=>838,10096=>838,10097=>838,10098=>838,10099=>838,10100=>838,10101=>838,10102=>896,10103=>896,10104=>896,10105=>896,10106=>896,10107=>896,10108=>896,10109=>896,10110=>896,10111=>896,10112=>838,10113=>838,10114=>838,10115=>838,10116=>838,10117=>838,10118=>838,10119=>838,10120=>838,10121=>838,10122=>838,10123=>838,10124=>838,10125=>838,10126=>838,10127=>838,10128=>838,10129=>838,10130=>838,10131=>838,10132=>838,10136=>838,10137=>838,10138=>838,10139=>838,10140=>838,10141=>838,10142=>838,10143=>838,10144=>838,10145=>838,10146=>838,10147=>838,10148=>838,10149=>838,10150=>838,10151=>838,10152=>838,10153=>838,10154=>838,10155=>838,10156=>838,10157=>838,10158=>838,10159=>838,10161=>838,10162=>838,10163=>838,10164=>838,10165=>838,10166=>838,10167=>838,10168=>838,10169=>838,10170=>838,10171=>838,10172=>838,10173=>838,10174=>838,10181=>390,10182=>390,10208=>494,10214=>495,10215=>495,10216=>390,10217=>390,10218=>556,10219=>556,10224=>838,10225=>838,10226=>838,10227=>838,10228=>1157,10229=>1434,10230=>1434,10231=>1434,10232=>1434,10233=>1434,10234=>1434,10235=>1434,10236=>1434,10237=>1434,10238=>1434,10239=>1434,10240=>732,10241=>732,10242=>732,10243=>732,10244=>732,10245=>732,10246=>732,10247=>732,10248=>732,10249=>732,10250=>732,10251=>732,10252=>732,10253=>732,10254=>732,10255=>732,10256=>732,10257=>732,10258=>732,10259=>732,10260=>732,10261=>732,10262=>732,10263=>732,10264=>732,10265=>732,10266=>732,10267=>732,10268=>732,10269=>732,10270=>732,10271=>732,10272=>732,10273=>732,10274=>732,10275=>732,10276=>732,10277=>732,10278=>732,10279=>732,10280=>732,10281=>732,10282=>732,10283=>732,10284=>732,10285=>732,10286=>732,10287=>732,10288=>732,10289=>732,10290=>732,10291=>732,10292=>732,10293=>732,10294=>732,10295=>732,10296=>732,10297=>732,10298=>732,10299=>732,10300=>732,10301=>732,10302=>732,10303=>732,10304=>732,10305=>732,10306=>732,10307=>732,10308=>732,10309=>732,10310=>732,10311=>732,10312=>732,10313=>732,10314=>732,10315=>732,10316=>732,10317=>732,10318=>732,10319=>732,10320=>732,10321=>732,10322=>732,10323=>732,10324=>732,10325=>732,10326=>732,10327=>732,10328=>732,10329=>732,10330=>732,10331=>732,10332=>732,10333=>732,10334=>732,10335=>732,10336=>732,10337=>732,10338=>732,10339=>732,10340=>732,10341=>732,10342=>732,10343=>732,10344=>732,10345=>732,10346=>732,10347=>732,10348=>732,10349=>732,10350=>732,10351=>732,10352=>732,10353=>732,10354=>732,10355=>732,10356=>732,10357=>732,10358=>732,10359=>732,10360=>732,10361=>732,10362=>732,10363=>732,10364=>732,10365=>732,10366=>732,10367=>732,10368=>732,10369=>732,10370=>732,10371=>732,10372=>732,10373=>732,10374=>732,10375=>732,10376=>732,10377=>732,10378=>732,10379=>732,10380=>732,10381=>732,10382=>732,10383=>732,10384=>732,10385=>732,10386=>732,10387=>732,10388=>732,10389=>732,10390=>732,10391=>732,10392=>732,10393=>732,10394=>732,10395=>732,10396=>732,10397=>732,10398=>732,10399=>732,10400=>732,10401=>732,10402=>732,10403=>732,10404=>732,10405=>732,10406=>732,10407=>732,10408=>732,10409=>732,10410=>732,10411=>732,10412=>732,10413=>732,10414=>732,10415=>732,10416=>732,10417=>732,10418=>732,10419=>732,10420=>732,10421=>732,10422=>732,10423=>732,10424=>732,10425=>732,10426=>732,10427=>732,10428=>732,10429=>732,10430=>732,10431=>732,10432=>732,10433=>732,10434=>732,10435=>732,10436=>732,10437=>732,10438=>732,10439=>732,10440=>732,10441=>732,10442=>732,10443=>732,10444=>732,10445=>732,10446=>732,10447=>732,10448=>732,10449=>732,10450=>732,10451=>732,10452=>732,10453=>732,10454=>732,10455=>732,10456=>732,10457=>732,10458=>732,10459=>732,10460=>732,10461=>732,10462=>732,10463=>732,10464=>732,10465=>732,10466=>732,10467=>732,10468=>732,10469=>732,10470=>732,10471=>732,10472=>732,10473=>732,10474=>732,10475=>732,10476=>732,10477=>732,10478=>732,10479=>732,10480=>732,10481=>732,10482=>732,10483=>732,10484=>732,10485=>732,10486=>732,10487=>732,10488=>732,10489=>732,10490=>732,10491=>732,10492=>732,10493=>732,10494=>732,10495=>732,10502=>838,10503=>838,10506=>838,10507=>838,10560=>683,10561=>683,10627=>734,10628=>734,10702=>838,10703=>1000,10704=>1000,10705=>1000,10706=>1000,10707=>1000,10708=>1000,10709=>1000,10731=>494,10746=>838,10747=>838,10752=>1000,10753=>1000,10754=>1000,10764=>1325,10765=>521,10766=>521,10767=>521,10768=>521,10769=>521,10770=>521,10771=>521,10772=>521,10773=>521,10774=>521,10775=>521,10776=>521,10777=>521,10778=>521,10779=>521,10780=>521,10799=>838,10858=>838,10859=>838,10877=>838,10878=>838,10879=>838,10880=>838,10881=>838,10882=>838,10883=>838,10884=>838,10885=>838,10886=>838,10887=>838,10888=>838,10889=>838,10890=>838,10891=>838,10892=>838,10893=>838,10894=>838,10895=>838,10896=>838,10897=>838,10898=>838,10899=>838,10900=>838,10901=>838,10902=>838,10903=>838,10904=>838,10905=>838,10906=>838,10907=>838,10908=>838,10909=>838,10910=>838,10911=>838,10912=>838,10926=>838,10927=>838,10928=>838,10929=>838,10930=>838,10931=>838,10932=>838,10933=>838,10934=>838,10935=>838,10936=>838,10937=>838,10938=>838,11001=>838,11002=>838,11008=>838,11009=>838,11010=>838,11011=>838,11012=>838,11013=>838,11014=>838,11015=>838,11016=>838,11017=>838,11018=>838,11019=>838,11020=>838,11021=>838,11022=>836,11023=>836,11024=>836,11025=>836,11026=>945,11027=>945,11028=>945,11029=>945,11030=>769,11031=>769,11032=>769,11033=>769,11034=>945,11039=>869,11040=>869,11041=>873,11042=>873,11043=>873,11044=>1119,11091=>869,11092=>869,11360=>557,11361=>278,11362=>557,11363=>603,11364=>695,11365=>613,11366=>392,11367=>752,11368=>634,11369=>656,11370=>579,11371=>685,11372=>525,11373=>781,11374=>863,11375=>684,11376=>781,11377=>734,11378=>1128,11379=>961,11380=>592,11381=>654,11382=>568,11383=>660,11385=>414,11386=>612,11387=>491,11388=>175,11389=>431,11390=>635,11391=>685,11520=>591,11521=>595,11522=>564,11523=>602,11524=>587,11525=>911,11526=>626,11527=>952,11528=>595,11529=>607,11530=>954,11531=>620,11532=>595,11533=>926,11534=>595,11535=>806,11536=>931,11537=>584,11538=>592,11539=>923,11540=>953,11541=>828,11542=>596,11543=>595,11544=>590,11545=>592,11546=>592,11547=>621,11548=>920,11549=>589,11550=>586,11551=>581,11552=>914,11553=>596,11554=>595,11555=>592,11556=>642,11557=>901,11568=>646,11569=>888,11570=>888,11571=>682,11572=>684,11573=>635,11574=>562,11575=>684,11576=>684,11577=>632,11578=>632,11579=>683,11580=>875,11581=>685,11582=>491,11583=>685,11584=>888,11585=>888,11586=>300,11587=>627,11588=>752,11589=>656,11590=>527,11591=>685,11592=>645,11593=>632,11594=>502,11595=>953,11596=>778,11597=>748,11598=>621,11599=>295,11600=>778,11601=>295,11602=>752,11603=>633,11604=>888,11605=>888,11606=>752,11607=>320,11608=>749,11609=>888,11610=>888,11611=>698,11612=>768,11613=>685,11614=>698,11615=>622,11616=>684,11617=>752,11618=>632,11619=>788,11620=>567,11621=>788,11631=>515,11800=>531,11806=>838,11810=>390,11811=>390,11812=>390,11813=>390,11822=>531,19904=>896,19905=>896,19906=>896,19907=>896,19908=>896,19909=>896,19910=>896,19911=>896,19912=>896,19913=>896,19914=>896,19915=>896,19916=>896,19917=>896,19918=>896,19919=>896,19920=>896,19921=>896,19922=>896,19923=>896,19924=>896,19925=>896,19926=>896,19927=>896,19928=>896,19929=>896,19930=>896,19931=>896,19932=>896,19933=>896,19934=>896,19935=>896,19936=>896,19937=>896,19938=>896,19939=>896,19940=>896,19941=>896,19942=>896,19943=>896,19944=>896,19945=>896,19946=>896,19947=>896,19948=>896,19949=>896,19950=>896,19951=>896,19952=>896,19953=>896,19954=>896,19955=>896,19956=>896,19957=>896,19958=>896,19959=>896,19960=>896,19961=>896,19962=>896,19963=>896,19964=>896,19965=>896,19966=>896,19967=>896,42192=>686,42193=>603,42194=>603,42195=>770,42196=>611,42197=>611,42198=>775,42199=>656,42200=>656,42201=>512,42202=>698,42203=>703,42204=>685,42205=>575,42206=>575,42207=>863,42208=>748,42209=>557,42210=>635,42211=>695,42212=>695,42213=>684,42214=>684,42215=>752,42216=>775,42217=>512,42218=>989,42219=>685,42220=>611,42221=>686,42222=>684,42223=>684,42224=>632,42225=>632,42226=>295,42227=>787,42228=>732,42229=>732,42230=>557,42231=>767,42232=>300,42233=>300,42234=>596,42235=>596,42236=>300,42237=>300,42238=>588,42239=>588,42564=>635,42565=>521,42566=>354,42567=>338,42572=>1180,42573=>1028,42576=>1029,42577=>906,42580=>1080,42581=>842,42582=>977,42583=>843,42594=>1062,42595=>912,42596=>1066,42597=>901,42598=>1178,42599=>1008,42600=>787,42601=>612,42602=>855,42603=>712,42604=>1358,42605=>1019,42606=>879,42634=>782,42635=>685,42636=>611,42637=>583,42644=>686,42645=>634,42760=>493,42761=>493,42762=>493,42763=>493,42764=>493,42765=>493,42766=>493,42767=>493,42768=>493,42769=>493,42770=>493,42771=>493,42772=>493,42773=>493,42774=>493,42779=>369,42780=>369,42781=>252,42782=>252,42783=>252,42786=>385,42787=>356,42788=>472,42789=>472,42790=>752,42791=>634,42792=>878,42793=>709,42794=>614,42795=>541,42800=>491,42801=>521,42802=>1250,42803=>985,42804=>1203,42805=>990,42806=>1142,42807=>981,42808=>971,42809=>818,42810=>971,42811=>818,42812=>959,42813=>818,42814=>703,42815=>549,42816=>656,42817=>583,42822=>680,42823=>392,42824=>582,42825=>427,42826=>807,42827=>704,42830=>1358,42831=>1019,42832=>603,42833=>635,42834=>734,42835=>774,42838=>787,42839=>635,42852=>605,42853=>635,42854=>605,42855=>635,42880=>557,42881=>278,42882=>735,42883=>634,42889=>337,42890=>376,42891=>401,42892=>275,42893=>686,42894=>487,42896=>772,42897=>667,42912=>775,42913=>635,42914=>656,42915=>579,42916=>748,42917=>634,42918=>695,42919=>411,42920=>635,42921=>521,42922=>801,43002=>915,43003=>575,43004=>603,43005=>863,43006=>295,43007=>1199,61184=>213,61185=>238,61186=>257,61187=>264,61188=>267,61189=>238,61190=>213,61191=>238,61192=>257,61193=>264,61194=>257,61195=>238,61196=>213,61197=>238,61198=>257,61199=>264,61200=>257,61201=>238,61202=>213,61203=>238,61204=>267,61205=>264,61206=>257,61207=>238,61208=>213,61209=>275,61440=>977,61441=>977,61442=>977,61443=>977,62464=>580,62465=>580,62466=>624,62467=>889,62468=>585,62469=>580,62470=>653,62471=>882,62472=>555,62473=>580,62474=>1168,62475=>589,62476=>590,62477=>869,62478=>580,62479=>589,62480=>914,62481=>590,62482=>731,62483=>583,62484=>872,62485=>589,62486=>895,62487=>589,62488=>589,62489=>590,62490=>649,62491=>589,62492=>589,62493=>599,62494=>590,62495=>516,62496=>580,62497=>584,62498=>580,62499=>580,62500=>581,62501=>638,62502=>955,62504=>931,62505=>808,62506=>508,62507=>508,62508=>508,62509=>508,62510=>508,62511=>508,62512=>508,62513=>508,62514=>508,62515=>508,62516=>518,62517=>518,62518=>518,62519=>787,62520=>787,62521=>787,62522=>787,62523=>787,62524=>546,62525=>546,62526=>546,62527=>546,62528=>546,62529=>546,63173=>612,64256=>689,64257=>630,64258=>630,64259=>967,64260=>967,64261=>686,64262=>861,64275=>1202,64276=>1202,64277=>1196,64278=>1186,64279=>1529,64285=>224,64286=>0,64287=>331,64288=>636,64289=>856,64290=>774,64291=>906,64292=>771,64293=>843,64294=>855,64295=>807,64296=>875,64297=>838,64298=>708,64299=>708,64300=>708,64301=>708,64302=>668,64303=>668,64304=>668,64305=>578,64306=>412,64307=>546,64308=>653,64309=>355,64310=>406,64312=>648,64313=>330,64314=>537,64315=>529,64316=>568,64318=>679,64320=>399,64321=>649,64323=>640,64324=>625,64326=>593,64327=>709,64328=>564,64329=>708,64330=>657,64331=>272,64332=>578,64333=>529,64334=>625,64335=>629,64338=>941,64339=>982,64340=>278,64341=>302,64342=>941,64343=>982,64344=>278,64345=>302,64346=>941,64347=>982,64348=>278,64349=>302,64350=>941,64351=>982,64352=>278,64353=>302,64354=>941,64355=>982,64356=>278,64357=>302,64358=>941,64359=>982,64360=>278,64361=>302,64362=>1037,64363=>1035,64364=>478,64365=>506,64366=>1037,64367=>1035,64368=>478,64369=>506,64370=>646,64371=>646,64372=>618,64373=>646,64374=>646,64375=>646,64376=>618,64377=>646,64378=>646,64379=>646,64380=>618,64381=>646,64382=>646,64383=>646,64384=>618,64385=>646,64386=>445,64387=>525,64388=>445,64389=>525,64390=>445,64391=>525,64392=>445,64393=>525,64394=>483,64395=>552,64396=>483,64397=>552,64398=>895,64399=>895,64400=>476,64401=>552,64402=>895,64403=>895,64404=>476,64405=>552,64406=>895,64407=>895,64408=>476,64409=>552,64410=>895,64411=>895,64412=>476,64413=>552,64414=>734,64415=>761,64416=>734,64417=>761,64418=>278,64419=>302,64426=>698,64427=>632,64428=>527,64429=>461,64467=>824,64468=>843,64469=>476,64470=>552,64473=>483,64474=>517,64488=>278,64489=>302,64508=>783,64509=>833,64510=>278,64511=>302,65024=>0,65025=>0,65026=>0,65027=>0,65028=>0,65029=>0,65030=>0,65031=>0,65032=>0,65033=>0,65034=>0,65035=>0,65036=>0,65037=>0,65038=>0,65039=>0,65056=>0,65057=>0,65058=>0,65059=>0,65136=>293,65137=>293,65138=>293,65139=>262,65140=>293,65142=>293,65143=>293,65144=>293,65145=>293,65146=>293,65147=>293,65148=>293,65149=>293,65150=>293,65151=>293,65152=>470,65153=>278,65154=>305,65155=>278,65156=>305,65157=>483,65158=>517,65159=>278,65160=>305,65161=>783,65162=>833,65163=>278,65164=>302,65165=>278,65166=>305,65167=>941,65168=>982,65169=>278,65170=>302,65171=>524,65172=>536,65173=>941,65174=>982,65175=>278,65176=>302,65177=>941,65178=>982,65179=>278,65180=>302,65181=>646,65182=>646,65183=>618,65184=>646,65185=>646,65186=>646,65187=>618,65188=>646,65189=>646,65190=>646,65191=>618,65192=>646,65193=>445,65194=>525,65195=>445,65196=>525,65197=>483,65198=>552,65199=>483,65200=>552,65201=>1221,65202=>1275,65203=>838,65204=>892,65205=>1221,65206=>1275,65207=>838,65208=>892,65209=>1209,65210=>1225,65211=>849,65212=>867,65213=>1209,65214=>1225,65215=>849,65216=>867,65217=>925,65218=>949,65219=>796,65220=>820,65221=>925,65222=>949,65223=>796,65224=>820,65225=>597,65226=>532,65227=>597,65228=>482,65229=>597,65230=>532,65231=>523,65232=>482,65233=>1037,65234=>1035,65235=>478,65236=>506,65237=>776,65238=>834,65239=>478,65240=>506,65241=>824,65242=>843,65243=>476,65244=>552,65245=>727,65246=>757,65247=>305,65248=>331,65249=>619,65250=>666,65251=>536,65252=>578,65253=>734,65254=>761,65255=>278,65256=>302,65257=>524,65258=>536,65259=>527,65260=>461,65261=>483,65262=>517,65263=>783,65264=>833,65265=>783,65266=>833,65267=>278,65268=>302,65269=>570,65270=>597,65271=>570,65272=>597,65273=>570,65274=>597,65275=>570,65276=>597,65279=>0,65529=>0,65530=>0,65531=>0,65532=>0,65533=>1025,65535=>600); -// --- EOF --- diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavusans.z b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavusans.z deleted file mode 100644 index d0c4d3d..0000000 Binary files a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavusans.z and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavusansb.ctg.z b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavusansb.ctg.z deleted file mode 100644 index 71cef63..0000000 Binary files a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavusansb.ctg.z and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavusansb.php b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavusansb.php deleted file mode 100644 index 5214aef..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavusansb.php +++ /dev/null @@ -1,16 +0,0 @@ -32,'FontBBox'=>'[-1069 -415 1975 1174]','ItalicAngle'=>0,'Ascent'=>928,'Descent'=>-236,'Leading'=>0,'CapHeight'=>729,'XHeight'=>547,'StemV'=>60,'StemH'=>26,'AvgWidth'=>573,'MaxWidth'=>2016,'MissingWidth'=>600); -$cbbox=array(0=>array(50,-177,550,705),33=>array(140,0,316,729),34=>array(95,458,426,729),35=>array(68,0,770,718),36=>array(78,-147,628,760),37=>array(32,-14,970,742),38=>array(60,-14,830,742),39=>array(95,458,211,729),40=>array(86,-132,377,759),41=>array(80,-132,371,759),42=>array(20,278,503,742),43=>array(106,0,732,627),44=>array(53,-142,278,189),45=>array(54,217,361,359),46=>array(102,0,278,189),47=>array(0,-93,365,729),48=>array(48,-14,648,742),49=>array(113,0,627,729),50=>array(79,0,609,742),51=>array(67,-14,616,742),52=>array(45,0,650,729),53=>array(77,-14,626,729),54=>array(62,-14,642,741),55=>array(67,0,616,729),56=>array(61,-14,634,742),57=>array(52,-14,632,741),58=>array(112,0,288,547),59=>array(63,-142,288,547),60=>array(106,30,732,597),61=>array(106,144,732,482),62=>array(106,30,732,597),63=>array(69,0,515,742),64=>array(66,-174,929,703),65=>array(5,0,769,729),66=>array(92,0,692,729),67=>array(50,-14,670,742),68=>array(92,0,778,729),69=>array(92,0,610,729),70=>array(92,0,599,729),71=>array(50,-14,747,742),72=>array(92,0,745,729),73=>array(92,0,280,729),74=>array(-56,-200,280,729),75=>array(92,0,805,729),76=>array(92,0,610,729),77=>array(92,0,903,729),78=>array(92,0,745,729),79=>array(50,-14,800,742),80=>array(92,0,692,729),81=>array(50,-146,800,742),82=>array(92,0,750,729),83=>array(72,-14,647,742),84=>array(5,0,677,729),85=>array(92,-14,720,729),86=>array(5,0,769,729),87=>array(30,0,1072,729),88=>array(19,0,751,729),89=>array(-10,0,734,729),90=>array(45,0,680,729),91=>array(86,-132,389,760),92=>array(0,-93,365,729),93=>array(68,-132,371,760),94=>array(101,457,737,729),95=>array(0,-236,500,-143),96=>array(46,616,322,800),97=>array(43,-14,596,560),98=>array(84,-14,671,760),99=>array(43,-14,526,560),100=>array(45,-14,632,760),101=>array(43,-14,630,560),102=>array(19,0,444,760),103=>array(45,-216,632,559),104=>array(84,0,634,760),105=>array(84,0,259,760),106=>array(-33,-216,259,760),107=>array(84,0,684,760),108=>array(84,0,259,760),109=>array(83,0,963,560),110=>array(84,0,634,560),111=>array(43,-14,644,560),112=>array(84,-208,671,560),113=>array(45,-208,632,559),114=>array(84,0,490,560),115=>array(52,-14,548,560),116=>array(13,0,455,702),117=>array(78,-14,628,547),118=>array(15,0,637,547),119=>array(35,0,889,547),120=>array(15,0,630,547),121=>array(12,-216,634,547),122=>array(45,0,534,547),123=>array(125,-163,587,760),124=>array(127,-236,238,764),125=>array(125,-163,587,760),126=>array(106,212,732,415),161=>array(140,0,316,729),162=>array(85,-153,567,699),163=>array(61,0,613,742),164=>array(36,30,601,596),165=>array(12,0,684,729),166=>array(127,-171,238,699),167=>array(7,-95,496,742),168=>array(96,654,404,774),169=>array(138,0,862,725),170=>array(77,182,489,742),171=>array(77,67,552,519),172=>array(106,140,732,444),173=>array(54,217,361,359),174=>array(138,0,862,725),175=>array(96,668,404,760),176=>array(87,424,412,749),177=>array(106,0,732,627),178=>array(53,326,382,742),179=>array(44,319,384,742),180=>array(178,616,454,800),181=>array(85,-209,704,547),182=>array(63,-96,549,729),183=>array(102,253,278,442),184=>array(128,-196,349,0),185=>array(60,326,382,734),186=>array(57,182,507,742),187=>array(94,67,569,519),188=>array(49,-14,957,742),189=>array(49,-14,987,742),190=>array(51,-14,957,742),191=>array(69,-14,515,729),192=>array(5,0,769,927),193=>array(5,0,769,927),194=>array(5,0,769,927),195=>array(5,0,769,931),196=>array(5,0,769,927),197=>array(5,0,769,928),198=>array(0,0,1012,729),199=>array(50,-196,670,742),200=>array(92,0,610,927),201=>array(92,0,610,927),202=>array(92,0,610,927),203=>array(92,0,610,927),204=>array(11,0,280,927),205=>array(92,0,337,927),206=>array(1,0,370,927),207=>array(32,0,339,927),208=>array(16,0,787,729),209=>array(92,0,745,928),210=>array(50,-14,800,927),211=>array(50,-14,800,927),212=>array(50,-14,800,927),213=>array(50,-14,800,928),214=>array(50,-14,800,927),215=>array(125,20,713,607),216=>array(22,-36,823,765),217=>array(92,-14,720,927),218=>array(92,-14,720,927),219=>array(92,-14,720,927),220=>array(92,-14,720,927),221=>array(-10,0,734,927),222=>array(92,0,692,729),223=>array(84,-14,676,760),224=>array(43,-14,596,800),225=>array(43,-14,596,800),226=>array(43,-14,596,800),227=>array(43,-14,596,778),228=>array(43,-14,596,774),229=>array(43,-14,596,888),230=>array(43,-14,1000,560),231=>array(43,-196,526,560),232=>array(43,-14,630,800),233=>array(43,-14,630,800),234=>array(43,-14,630,800),235=>array(43,-14,630,774),236=>array(-21,0,259,800),237=>array(84,0,387,800),238=>array(-13,0,355,800),239=>array(17,0,325,774),240=>array(43,-14,644,760),241=>array(84,0,634,778),242=>array(43,-14,644,800),243=>array(43,-14,644,800),244=>array(43,-14,644,800),245=>array(43,-14,644,778),246=>array(43,-14,644,774),247=>array(106,42,732,585),248=>array(38,-46,645,594),249=>array(78,-14,628,800),250=>array(78,-14,628,800),251=>array(78,-14,628,800),252=>array(78,-14,628,774),253=>array(12,-216,634,800),254=>array(84,-208,671,760),255=>array(12,-216,634,774),256=>array(5,0,769,914),257=>array(43,-14,596,763),258=>array(5,0,769,935),259=>array(43,-14,596,780),260=>array(5,-196,769,729),261=>array(43,-196,596,560),262=>array(50,-14,670,927),263=>array(43,-14,557,800),264=>array(50,-14,670,927),265=>array(43,-14,542,800),266=>array(50,-14,670,927),267=>array(43,-14,526,760),268=>array(50,-14,670,927),269=>array(43,-14,537,800),270=>array(92,0,778,927),271=>array(45,-14,871,760),272=>array(16,0,787,729),273=>array(45,-14,707,760),274=>array(92,0,610,914),275=>array(43,-14,630,763),276=>array(92,0,610,927),277=>array(43,-14,630,784),278=>array(92,0,610,927),279=>array(43,-14,630,760),280=>array(92,-196,610,729),281=>array(43,-196,630,560),282=>array(92,0,610,927),283=>array(43,-14,630,800),284=>array(50,-14,747,927),285=>array(45,-216,632,800),286=>array(50,-14,747,927),287=>array(45,-216,632,784),288=>array(50,-14,747,927),289=>array(45,-216,632,760),290=>array(50,-224,747,742),291=>array(45,-216,632,765),292=>array(92,0,745,927),293=>array(-9,0,634,927),294=>array(92,0,882,729),295=>array(81,0,709,760),296=>array(16,0,355,928),297=>array(1,0,341,778),298=>array(32,0,339,914),299=>array(18,0,325,763),300=>array(21,0,350,927),301=>array(7,0,335,784),302=>array(92,-196,366,729),303=>array(84,-196,345,760),304=>array(92,0,280,927),305=>array(84,0,259,547),306=>array(92,-200,651,729),307=>array(84,-216,602,760),308=>array(-56,-200,370,927),309=>array(-33,-216,355,800),310=>array(92,-209,805,729),311=>array(84,-209,684,760),312=>array(84,0,684,547),313=>array(92,0,610,928),314=>array(84,0,357,928),315=>array(92,-209,610,729),316=>array(71,-209,273,760),317=>array(92,0,610,729),318=>array(84,0,479,760),319=>array(92,0,610,729),320=>array(84,0,484,760),321=>array(-45,0,615,729),322=>array(-18,0,390,760),323=>array(92,0,745,928),324=>array(84,0,634,803),325=>array(92,-209,745,729),326=>array(84,-209,634,560),327=>array(92,0,745,927),328=>array(84,0,634,800),329=>array(51,0,891,729),330=>array(84,-200,730,742),331=>array(84,-216,634,560),332=>array(50,-14,800,914),333=>array(43,-14,644,763),334=>array(50,-14,800,927),335=>array(43,-14,644,787),336=>array(50,-14,800,927),337=>array(43,-14,644,800),338=>array(50,-1,1094,730),339=>array(43,-14,1046,560),340=>array(92,0,750,928),341=>array(84,0,515,803),342=>array(92,-209,750,729),343=>array(71,-209,490,560),344=>array(92,0,750,927),345=>array(84,0,490,800),346=>array(72,-14,647,928),347=>array(52,-14,548,803),348=>array(72,-14,647,927),349=>array(52,-14,548,800),350=>array(72,-196,647,742),351=>array(52,-196,548,560),352=>array(72,-14,647,927),353=>array(52,-14,548,800),354=>array(5,-196,677,729),355=>array(13,-196,455,702),356=>array(5,0,677,930),357=>array(13,0,507,814),358=>array(5,0,677,729),359=>array(13,0,455,702),360=>array(92,-14,720,928),361=>array(78,-14,628,778),362=>array(92,-14,720,914),363=>array(78,-14,628,763),364=>array(92,-14,720,927),365=>array(78,-14,628,784),366=>array(92,-14,720,929),367=>array(78,-14,628,881),368=>array(92,-14,720,927),369=>array(78,-14,628,800),370=>array(92,-196,720,729),371=>array(78,-196,716,547),372=>array(30,0,1072,931),373=>array(35,0,889,800),374=>array(-10,0,734,931),375=>array(12,-216,634,800),376=>array(-10,0,734,927),377=>array(45,0,680,928),378=>array(45,0,534,803),379=>array(45,0,680,929),380=>array(45,0,534,760),381=>array(45,0,680,927),382=>array(45,0,534,800),383=>array(19,0,444,760),384=>array(9,-14,671,760),385=>array(-68,0,741,729),386=>array(92,0,692,729),387=>array(84,-14,671,760),388=>array(40,0,731,729),389=>array(25,-14,696,760),390=>array(50,-14,670,742),391=>array(50,-14,818,924),392=>array(43,-14,643,724),393=>array(16,0,787,729),394=>array(-68,0,827,729),395=>array(70,0,669,729),396=>array(45,-14,632,760),397=>array(43,-222,645,560),398=>array(92,0,610,729),399=>array(51,-14,800,742),400=>array(67,-14,616,742),401=>array(-56,-200,599,729),402=>array(-57,-208,444,760),403=>array(50,-14,868,924),404=>array(2,-211,793,730),405=>array(84,0,1000,760),406=>array(92,0,428,729),407=>array(5,0,384,729),408=>array(92,0,805,742),409=>array(84,0,684,760),410=>array(5,0,355,760),411=>array(-11,0,562,760),412=>array(83,-13,963,729),413=>array(-56,-200,745,729),414=>array(84,-208,634,560),415=>array(50,-14,800,742),416=>array(53,-14,854,761),417=>array(46,-14,708,609),418=>array(50,-14,1007,742),419=>array(43,-216,826,560),420=>array(-68,0,741,729),421=>array(84,-208,671,760),422=>array(92,-146,760,729),423=>array(26,-14,601,742),424=>array(15,-14,511,560),425=>array(92,0,610,729),426=>array(-31,-217,561,760),427=>array(13,-216,455,702),428=>array(15,0,701,729),429=>array(13,0,455,760),430=>array(5,-200,677,729),431=>array(91,-14,833,761),432=>array(75,-14,733,609),433=>array(27,-14,823,728),434=>array(92,0,772,729),435=>array(-10,0,796,742),436=>array(12,-216,778,560),437=>array(45,0,680,729),438=>array(45,0,534,547),439=>array(72,-33,728,729),440=>array(41,-33,696,729),441=>array(37,-215,586,547),442=>array(57,-208,534,547),443=>array(79,0,609,742),444=>array(41,-33,728,729),445=>array(37,-215,586,547),446=>array(36,-15,525,702),447=>array(84,-208,671,560),448=>array(92,-208,280,729),449=>array(92,-208,566,729),450=>array(5,-208,536,729),451=>array(99,0,274,729),452=>array(92,0,1510,927),453=>array(92,0,1364,800),454=>array(45,-14,1250,800),455=>array(92,-200,917,729),456=>array(92,-216,896,760),457=>array(84,-216,602,760),458=>array(92,-200,1117,729),459=>array(92,-216,1096,760),460=>array(84,-216,971,760),461=>array(5,0,769,927),462=>array(43,-14,596,800),463=>array(3,0,371,927),464=>array(2,0,370,800),465=>array(50,-14,800,927),466=>array(43,-14,644,800),467=>array(92,-14,720,927),468=>array(78,-14,628,800),469=>array(92,-14,720,1040),470=>array(78,-14,628,914),471=>array(92,-14,720,1114),472=>array(78,-14,628,917),473=>array(92,-14,720,1114),474=>array(78,-14,628,917),475=>array(92,-14,720,1114),476=>array(78,-14,628,917),477=>array(43,-14,630,560),478=>array(5,0,769,1040),479=>array(43,-14,596,914),480=>array(5,0,769,1042),481=>array(43,-14,596,914),482=>array(0,0,1012,914),483=>array(43,-14,1000,758),484=>array(50,-14,792,742),485=>array(45,-216,674,559),486=>array(50,-14,747,927),487=>array(45,-216,632,800),488=>array(92,0,805,927),489=>array(-5,0,684,927),490=>array(50,-196,800,742),491=>array(43,-196,644,560),492=>array(50,-196,800,914),493=>array(43,-196,644,763),494=>array(72,-33,728,927),495=>array(43,-215,593,793),496=>array(-33,-216,359,800),497=>array(92,0,1510,729),498=>array(92,0,1364,729),499=>array(45,-14,1250,760),500=>array(50,-14,747,928),501=>array(45,-216,632,800),502=>array(92,-14,1186,729),503=>array(92,-208,737,742),504=>array(92,0,745,927),505=>array(84,0,634,800),506=>array(5,0,769,931),507=>array(43,-14,708,931),508=>array(0,0,1012,927),509=>array(43,-14,1000,800),510=>array(22,-36,823,927),511=>array(38,-46,645,800),512=>array(5,0,769,928),513=>array(43,-14,596,800),514=>array(5,0,769,923),515=>array(43,-14,596,784),516=>array(92,0,610,928),517=>array(43,-14,630,800),518=>array(92,0,610,923),519=>array(43,-14,630,784),520=>array(-41,0,377,928),521=>array(-3,0,381,800),522=>array(23,0,351,923),523=>array(7,0,335,784),524=>array(50,-14,800,928),525=>array(43,-14,644,800),526=>array(50,-14,800,923),527=>array(43,-14,644,784),528=>array(92,0,750,928),529=>array(58,0,490,800),530=>array(92,0,750,923),531=>array(84,0,490,784),532=>array(92,-14,720,928),533=>array(78,-14,628,800),534=>array(92,-14,720,923),535=>array(78,-14,628,784),536=>array(72,-239,647,742),537=>array(52,-239,548,560),538=>array(5,-239,677,729),539=>array(13,-239,455,702),540=>array(67,-210,616,742),541=>array(49,-211,544,560),542=>array(92,0,745,927),543=>array(-12,0,634,927),544=>array(84,-208,730,742),545=>array(45,-75,822,760),546=>array(61,-14,748,742),547=>array(43,-14,616,646),548=>array(45,-216,680,729),549=>array(45,-216,534,547),550=>array(5,0,769,927),551=>array(43,-14,596,760),552=>array(92,-192,610,729),553=>array(43,-196,630,560),554=>array(50,-14,800,1040),555=>array(43,-14,644,914),556=>array(50,-14,800,1040),557=>array(43,-14,644,898),558=>array(50,-14,800,927),559=>array(43,-14,644,760),560=>array(50,-14,800,1042),561=>array(43,-14,644,914),562=>array(-10,0,734,914),563=>array(12,-216,634,763),564=>array(84,-75,449,760),565=>array(84,-75,824,560),566=>array(13,-76,469,702),567=>array(-33,-216,259,547),568=>array(45,-14,1043,760),569=>array(45,-208,1043,560),570=>array(-14,-36,788,765),571=>array(-34,-36,768,765),572=>array(-7,-46,600,594),573=>array(-1,0,610,729),574=>array(-60,-36,742,765),575=>array(52,-240,595,560),576=>array(45,-240,595,547),577=>array(40,0,741,729),578=>array(42,0,573,560),579=>array(6,0,692,729),580=>array(23,-14,789,729),581=>array(5,0,769,729),582=>array(92,-93,610,822),583=>array(43,-93,630,640),584=>array(-56,-200,360,729),585=>array(-33,-216,360,760),586=>array(48,-200,927,741),587=>array(45,-216,800,560),588=>array(6,0,750,729),589=>array(-21,0,490,560),590=>array(-10,0,734,729),591=>array(-4,-216,656,547),592=>array(78,-14,631,560),593=>array(45,-14,632,560),594=>array(84,-14,671,560),595=>array(84,-14,671,760),596=>array(43,-14,526,560),597=>array(43,-69,526,560),598=>array(45,-216,750,760),599=>array(45,-14,801,760),600=>array(43,-14,630,560),601=>array(43,-14,630,560),602=>array(59,-14,885,560),603=>array(54,-14,493,560),604=>array(54,-14,493,560),605=>array(54,-14,769,560),606=>array(54,-14,665,560),607=>array(-33,-216,360,547),608=>array(45,-216,801,760),609=>array(45,-216,632,547),610=>array(43,-14,545,546),611=>array(25,-211,619,547),612=>array(25,-21,619,547),613=>array(78,-214,628,547),614=>array(84,0,634,760),615=>array(84,-216,634,760),616=>array(84,0,461,760),617=>array(83,0,356,547),618=>array(84,0,461,547),619=>array(84,0,475,760),620=>array(84,0,609,760),621=>array(85,-216,429,760),622=>array(84,-215,793,760),623=>array(79,-14,959,546),624=>array(79,-209,959,546),625=>array(83,-216,964,560),626=>array(-33,-216,634,560),627=>array(84,-216,802,560),628=>array(84,0,623,547),629=>array(43,-14,644,560),630=>array(43,-1,826,547),631=>array(51,0,630,574),632=>array(60,-208,729,760),633=>array(84,-13,490,547),634=>array(84,-13,490,760),635=>array(84,-216,659,547),636=>array(84,-208,490,560),637=>array(83,-216,490,560),638=>array(84,0,530,547),639=>array(84,0,530,547),640=>array(52,0,590,547),641=>array(52,0,590,547),642=>array(52,-216,548,560),643=>array(-33,-216,431,760),644=>array(-11,-216,444,760),645=>array(84,-216,539,560),646=>array(-31,-217,561,760),647=>array(13,-155,455,547),648=>array(13,-216,455,702),649=>array(84,-14,836,547),650=>array(79,-14,693,547),651=>array(83,0,625,547),652=>array(15,0,637,547),653=>array(35,0,889,547),654=>array(12,0,634,763),655=>array(64,0,660,547),656=>array(45,-216,703,547),657=>array(45,-69,617,547),658=>array(43,-215,593,547),659=>array(57,-215,593,547),660=>array(36,0,525,759),661=>array(36,0,525,759),662=>array(36,0,525,759),663=>array(36,-208,525,759),664=>array(50,-14,800,742),665=>array(84,0,589,547),666=>array(54,-14,665,560),667=>array(43,0,693,760),668=>array(84,0,607,547),669=>array(-170,-216,341,760),670=>array(84,-213,684,547),671=>array(84,0,499,547),672=>array(45,-208,801,760),673=>array(36,0,525,759),674=>array(36,0,525,759),675=>array(45,-14,1108,760),676=>array(45,-215,1167,760),677=>array(45,-55,1107,760),678=>array(13,0,928,702),679=>array(13,-216,777,760),680=>array(13,-69,881,702),681=>array(19,-216,979,760),682=>array(84,0,815,760),683=>array(84,0,732,760),684=>array(22,0,569,641),685=>array(22,86,345,641),686=>array(-89,-214,629,760),687=>array(-89,-216,797,760),688=>array(54,326,406,751),689=>array(54,326,406,751),690=>array(-21,205,166,751),691=>array(54,326,314,640),692=>array(54,319,314,632),693=>array(54,205,421,632),694=>array(14,326,358,632),695=>array(22,326,569,632),696=>array(8,205,406,632),697=>array(78,557,218,800),698=>array(78,557,437,800),699=>array(103,418,318,729),700=>array(63,418,278,729),701=>array(124,616,296,856),702=>array(116,481,255,760),703=>array(116,481,255,760),704=>array(23,326,336,751),705=>array(23,326,336,751),706=>array(130,517,370,843),707=>array(130,517,370,843),708=>array(87,561,413,800),709=>array(87,561,413,800),710=>array(66,616,434,800),711=>array(66,616,434,800),712=>array(107,488,199,759),713=>array(96,668,404,760),714=>array(178,616,454,800),715=>array(46,616,322,800),716=>array(107,-81,199,190),717=>array(96,-184,404,-92),718=>array(46,-236,322,-52),719=>array(178,-236,454,-52),720=>array(45,0,246,547),721=>array(45,361,246,547),722=>array(116,269,255,547),723=>array(116,269,255,547),724=>array(138,238,357,458),725=>array(141,238,360,458),726=>array(54,119,362,427),727=>array(54,229,274,317),728=>array(86,639,414,784),729=>array(183,654,317,774),730=>array(111,610,389,888),731=>array(167,-196,376,0),732=>array(80,638,420,778),733=>array(94,616,479,800),734=>array(0,213,360,524),735=>array(111,616,387,800),736=>array(16,208,390,633),737=>array(54,326,166,751),738=>array(33,318,351,640),739=>array(10,326,403,632),740=>array(23,326,336,751),741=>array(96,0,404,693),742=>array(96,0,404,693),743=>array(96,0,404,693),744=>array(96,0,404,693),745=>array(96,0,404,693),748=>array(88,-260,414,-21),749=>array(96,605,404,822),750=>array(92,418,554,729),755=>array(111,-240,389,38),759=>array(80,-196,420,-84),768=>array(-455,616,-179,800),769=>array(-326,616,-50,800),770=>array(-435,616,-67,800),771=>array(-424,638,-84,778),772=>array(-405,668,-97,760),773=>array(-500,663,0,755),774=>array(-409,639,-81,784),775=>array(-338,617,-164,760),776=>array(-402,654,-94,774),777=>array(-370,616,-122,843),778=>array(-390,610,-112,888),779=>array(-404,616,-19,800),780=>array(-435,616,-67,800),781=>array(-297,615,-205,832),782=>array(-390,615,-113,832),783=>array(-484,616,-100,800),784=>array(-409,639,-81,882),785=>array(-409,639,-81,784),786=>array(-271,418,-69,563),787=>array(-266,595,-132,844),788=>array(-266,595,-132,844),789=>array(-89,616,89,800),790=>array(-455,-276,-179,-93),791=>array(-326,-276,-50,-93),792=>array(-380,-240,-211,-6),793=>array(-295,-240,-126,-6),794=>array(-224,658,47,929),795=>array(-175,400,21,609),796=>array(-331,-240,-216,-11),797=>array(-386,-240,-115,-59),798=>array(-389,-240,-118,-59),799=>array(-370,-240,-136,-6),800=>array(-389,-202,-118,-110),801=>array(-423,-216,-79,117),802=>array(-419,-216,-75,117),803=>array(-338,-212,-164,-70),804=>array(-402,-212,-94,-92),805=>array(-365,-240,-135,-11),806=>array(-327,-239,-125,-93),807=>array(-372,-196,-151,0),808=>array(-333,-196,-124,0),809=>array(-297,-240,-205,-47),810=>array(-405,-237,-97,-54),811=>array(-450,-239,-51,-94),812=>array(-435,-240,-67,-57),813=>array(-435,-240,-67,-57),814=>array(-409,-239,-81,-94),815=>array(-409,-240,-81,-95),816=>array(-424,-234,-84,-94),817=>array(-405,-184,-97,-92),818=>array(-500,-236,0,-143),819=>array(-500,-236,0,-9),820=>array(-625,212,1,415),821=>array(-471,214,-94,309),822=>array(-837,214,-86,309),823=>array(-655,-46,-48,594),824=>array(-825,-36,-24,765),825=>array(-285,-240,-170,-11),826=>array(-405,-238,-97,-55),827=>array(-332,-241,-98,-6),828=>array(-450,-239,-51,-94),829=>array(-379,585,-123,842),830=>array(-267,595,-127,867),831=>array(-500,528,0,755),832=>array(-455,616,-179,800),833=>array(-323,616,-47,800),834=>array(-421,638,-81,778),835=>array(-266,595,-132,844),836=>array(-404,654,-55,978),837=>array(-286,-208,-179,-45),838=>array(-403,639,-97,786),839=>array(-360,-226,-140,-35),840=>array(-379,-240,-121,-47),841=>array(-367,-240,-133,-21),842=>array(-420,616,-80,800),843=>array(-420,567,-80,850),844=>array(-420,573,-80,835),845=>array(-459,-230,-41,-30),846=>array(-357,-240,-143,-45),849=>array(-320,610,-179,888),850=>array(-409,640,-81,882),851=>array(-367,-240,-135,-9),855=>array(-320,610,-179,888),856=>array(-120,654,14,774),858=>array(-445,-240,-58,-11),860=>array(-433,-237,458,-79),861=>array(-433,802,458,960),862=>array(-445,797,445,889),863=>array(-445,-185,445,-93),864=>array(-362,756,362,894),865=>array(-445,769,445,927),866=>array(-449,-230,454,-30),880=>array(92,0,606,729),881=>array(84,0,481,547),882=>array(92,0,930,729),883=>array(92,0,744,729),884=>array(78,557,218,800),885=>array(78,-208,218,35),886=>array(92,0,745,729),887=>array(84,0,617,547),890=>array(202,-208,333,-45),891=>array(43,-14,526,560),892=>array(43,-14,526,560),893=>array(43,-14,526,560),894=>array(63,-142,288,547),900=>array(169,616,445,800),901=>array(96,654,445,978),902=>array(26,0,792,800),903=>array(102,253,278,442),904=>array(-24,0,771,800),905=>array(-18,0,915,800),906=>array(-21,0,450,800),908=>array(-19,-14,836,800),910=>array(-27,0,992,800),911=>array(-30,0,867,800),912=>array(23,-19,372,978),913=>array(5,0,769,729),914=>array(92,0,692,729),915=>array(92,0,610,729),916=>array(5,0,769,729),917=>array(92,0,610,729),918=>array(45,0,680,729),919=>array(92,0,745,729),920=>array(50,-14,800,742),921=>array(92,0,280,729),922=>array(92,0,805,729),923=>array(5,0,769,729),924=>array(92,0,903,729),925=>array(92,0,745,729),926=>array(98,0,548,729),927=>array(50,-14,800,742),928=>array(92,0,745,729),929=>array(92,0,692,729),931=>array(92,0,610,729),932=>array(5,0,677,729),933=>array(-10,0,734,729),934=>array(50,0,800,729),935=>array(19,0,751,729),936=>array(56,0,795,729),937=>array(27,0,823,742),938=>array(34,0,342,927),939=>array(-10,0,734,927),940=>array(48,-13,645,800),941=>array(54,-14,493,800),942=>array(84,-208,634,800),943=>array(77,-19,353,800),944=>array(78,-10,629,978),945=>array(48,-13,645,559),946=>array(84,-208,671,773),947=>array(15,-208,667,547),948=>array(43,-14,645,768),949=>array(54,-14,493,560),950=>array(43,-208,542,760),951=>array(84,-208,634,560),952=>array(43,-11,645,768),953=>array(78,-19,348,547),954=>array(84,0,655,547),955=>array(30,0,603,760),956=>array(85,-209,704,547),957=>array(15,0,635,547),958=>array(43,-208,542,760),959=>array(43,-14,644,560),960=>array(42,-19,732,547),961=>array(84,-208,671,562),962=>array(43,-208,526,560),963=>array(43,-14,727,547),964=>array(21,-19,612,547),965=>array(78,-10,629,547),966=>array(64,-208,725,552),967=>array(25,-208,620,547),968=>array(65,-208,724,547),969=>array(43,-13,826,547),970=>array(19,-19,355,774),971=>array(78,-10,629,774),972=>array(43,-14,644,800),973=>array(78,-10,629,800),974=>array(43,-13,826,800),975=>array(92,-208,805,729),976=>array(55,-11,575,768),977=>array(51,-11,612,768),978=>array(21,0,717,729),979=>array(-24,0,954,800),980=>array(21,0,717,927),981=>array(60,-208,729,760),982=>array(22,-13,843,547),983=>array(54,-205,688,548),984=>array(50,-208,800,742),985=>array(43,-208,644,560),986=>array(50,-208,678,729),987=>array(43,-208,541,547),988=>array(92,0,599,729),989=>array(-56,-208,437,760),990=>array(61,2,646,729),991=>array(82,0,571,759),992=>array(56,-208,843,742),993=>array(22,-180,537,559),994=>array(50,-213,1043,729),995=>array(59,-208,775,547),996=>array(50,-208,740,742),997=>array(45,-208,632,560),998=>array(92,-213,878,729),999=>array(21,-14,689,575),1000=>array(42,-208,692,745),1001=>array(46,-208,608,560),1002=>array(53,0,736,742),1003=>array(49,0,622,560),1004=>array(50,-14,715,758),1005=>array(83,-14,670,758),1006=>array(28,-208,654,729),1007=>array(27,-208,563,729),1008=>array(54,-7,688,548),1009=>array(84,-216,671,562),1010=>array(43,-14,526,560),1011=>array(-33,-216,259,760),1012=>array(50,-14,800,742),1013=>array(67,-14,550,560),1014=>array(81,-14,563,560),1015=>array(92,0,692,729),1016=>array(84,-208,671,760),1017=>array(50,-14,670,742),1018=>array(92,0,903,729),1019=>array(73,-208,649,547),1020=>array(33,-208,671,562),1021=>array(33,-14,653,742),1022=>array(50,-14,670,742),1023=>array(33,-14,653,742),1024=>array(92,0,610,927),1025=>array(92,0,610,927),1026=>array(5,-200,798,729),1027=>array(92,0,610,928),1028=>array(50,-14,670,742),1029=>array(72,-14,647,742),1030=>array(92,0,280,729),1031=>array(32,0,339,927),1032=>array(-56,-200,280,729),1033=>array(46,0,1102,729),1034=>array(92,0,1060,729),1035=>array(5,0,798,729),1036=>array(92,0,803,928),1037=>array(92,0,745,927),1038=>array(29,0,741,927),1039=>array(92,-157,745,729),1040=>array(5,0,769,729),1041=>array(92,0,692,729),1042=>array(92,0,692,729),1043=>array(92,0,610,729),1044=>array(60,-157,831,729),1045=>array(92,0,610,729),1046=>array(15,0,1209,729),1047=>array(66,-14,645,742),1048=>array(92,0,745,729),1049=>array(92,0,745,927),1050=>array(92,0,803,729),1051=>array(46,0,739,729),1052=>array(92,0,903,729),1053=>array(92,0,745,729),1054=>array(50,-14,800,742),1055=>array(92,0,745,729),1056=>array(92,0,692,729),1057=>array(50,-14,670,742),1058=>array(5,0,677,729),1059=>array(29,0,741,729),1060=>array(50,0,941,729),1061=>array(19,0,751,729),1062=>array(92,-157,868,729),1063=>array(81,0,716,729),1064=>array(92,0,1143,729),1065=>array(92,-157,1266,729),1066=>array(49,0,890,729),1067=>array(92,0,944,729),1068=>array(92,0,692,729),1069=>array(64,-14,684,742),1070=>array(92,-14,1119,742),1071=>array(64,0,678,729),1072=>array(43,-14,596,560),1073=>array(43,-14,655,792),1074=>array(84,0,589,547),1075=>array(84,0,499,547),1076=>array(56,-138,751,547),1077=>array(43,-14,630,560),1078=>array(15,0,980,547),1079=>array(49,-14,518,560),1080=>array(84,0,617,547),1081=>array(84,0,617,765),1082=>array(84,0,664,547),1083=>array(55,0,648,547),1084=>array(84,0,733,547),1085=>array(84,0,607,547),1086=>array(43,-14,644,560),1087=>array(84,0,607,547),1088=>array(84,-208,671,560),1089=>array(43,-14,526,560),1090=>array(4,0,575,547),1091=>array(12,-216,634,547),1092=>array(55,-208,937,760),1093=>array(15,0,630,547),1094=>array(84,-138,698,547),1095=>array(64,0,573,547),1096=>array(84,0,972,547),1097=>array(84,-138,1063,547),1098=>array(20,0,711,547),1099=>array(84,0,823,547),1100=>array(84,0,588,547),1101=>array(67,-14,550,560),1102=>array(84,-14,928,560),1103=>array(31,0,560,547),1104=>array(43,-14,630,803),1105=>array(43,-14,630,774),1106=>array(20,-216,669,760),1107=>array(84,0,520,803),1108=>array(43,-14,526,560),1109=>array(52,-14,548,560),1110=>array(84,0,259,760),1111=>array(17,0,325,774),1112=>array(-33,-216,259,760),1113=>array(44,0,942,547),1114=>array(84,0,912,547),1115=>array(20,0,656,760),1116=>array(84,0,664,803),1117=>array(84,0,617,803),1118=>array(12,-216,634,765),1119=>array(84,-138,607,547),1120=>array(50,-14,1043,729),1121=>array(43,-13,826,547),1122=>array(49,0,791,729),1123=>array(20,0,692,731),1124=>array(92,-14,948,742),1125=>array(84,-14,760,560),1126=>array(8,0,984,729),1127=>array(25,0,807,547),1128=>array(92,0,1351,729),1129=>array(84,0,1097,547),1130=>array(50,0,800,729),1131=>array(43,0,644,547),1132=>array(92,0,1137,729),1133=>array(84,0,964,547),1134=>array(54,-208,616,938),1135=>array(40,-193,493,756),1136=>array(9,0,1060,729),1137=>array(9,-208,1046,759),1138=>array(50,-14,800,742),1139=>array(43,-14,644,560),1140=>array(5,0,826,742),1141=>array(9,0,681,560),1142=>array(5,0,826,928),1143=>array(9,0,681,800),1144=>array(47,-216,1130,742),1145=>array(43,-216,1025,560),1146=>array(50,-14,1024,742),1147=>array(43,-14,820,560),1148=>array(57,-14,1348,928),1149=>array(47,-13,1126,828),1150=>array(50,-14,1043,910),1151=>array(43,-13,826,746),1152=>array(50,-208,670,742),1153=>array(43,-208,526,560),1154=>array(27,-33,521,488),1155=>array(-601,606,-85,822),1156=>array(-413,638,0,784),1157=>array(-365,595,-231,785),1158=>array(-365,595,-231,785),1159=>array(-796,592,4,788),1160=>array(-1069,-179,383,928),1161=>array(-996,-280,306,1022),1162=>array(92,-208,933,927),1163=>array(84,-208,782,765),1164=>array(23,0,692,729),1165=>array(0,0,567,702),1166=>array(92,0,702,729),1167=>array(84,-208,671,560),1168=>array(92,0,610,878),1169=>array(84,0,499,700),1170=>array(28,0,638,729),1171=>array(21,0,519,547),1172=>array(92,-200,728,729),1173=>array(84,-216,591,547),1174=>array(15,-157,1209,729),1175=>array(15,-138,980,547),1176=>array(66,-196,645,742),1177=>array(49,-196,518,560),1178=>array(92,-157,803,729),1179=>array(84,-138,664,547),1180=>array(92,0,803,729),1181=>array(84,0,664,547),1182=>array(23,0,803,729),1183=>array(7,0,664,760),1184=>array(24,0,1000,729),1185=>array(20,0,812,547),1186=>array(92,-157,932,729),1187=>array(84,-138,783,547),1188=>array(92,0,1075,729),1189=>array(84,0,847,547),1190=>array(92,-200,1193,729),1191=>array(84,-216,939,547),1192=>array(56,-14,924,743),1193=>array(55,-14,836,560),1194=>array(50,-196,670,742),1195=>array(43,-196,526,560),1196=>array(5,-157,677,729),1197=>array(4,-138,575,547),1198=>array(-10,0,734,729),1199=>array(12,-216,634,547),1200=>array(-10,0,734,729),1201=>array(12,-216,634,547),1202=>array(19,-157,751,729),1203=>array(15,-138,630,547),1204=>array(5,-157,1088,729),1205=>array(4,-138,976,547),1206=>array(81,-157,904,729),1207=>array(64,-138,749,547),1208=>array(81,0,716,729),1209=>array(64,0,573,547),1210=>array(81,0,716,729),1211=>array(84,0,634,760),1212=>array(7,-14,976,742),1213=>array(5,-14,761,560),1214=>array(7,-184,976,742),1215=>array(5,-161,761,560),1216=>array(92,0,280,729),1217=>array(15,0,1209,927),1218=>array(15,0,980,784),1219=>array(92,-200,769,729),1220=>array(84,-216,626,547),1221=>array(26,-208,926,729),1222=>array(21,-208,781,547),1223=>array(92,-200,745,729),1224=>array(84,-216,608,547),1225=>array(92,-208,933,729),1226=>array(84,-208,782,547),1227=>array(81,-157,716,729),1228=>array(64,-138,573,547),1229=>array(92,-208,1090,729),1230=>array(84,-208,908,547),1231=>array(84,0,259,760),1232=>array(5,0,769,935),1233=>array(43,-14,596,780),1234=>array(5,0,769,927),1235=>array(43,-14,596,774),1236=>array(0,0,1012,729),1237=>array(43,-14,1000,560),1238=>array(92,0,610,927),1239=>array(43,-14,630,784),1240=>array(51,-14,800,742),1241=>array(43,-14,630,560),1242=>array(51,-14,800,927),1243=>array(43,-14,630,774),1244=>array(15,0,1209,927),1245=>array(15,0,980,774),1246=>array(66,-14,645,927),1247=>array(49,-14,518,773),1248=>array(72,-33,728,729),1249=>array(43,-215,593,547),1250=>array(92,0,745,914),1251=>array(84,0,617,763),1252=>array(92,0,745,927),1253=>array(84,0,617,774),1254=>array(50,-14,800,927),1255=>array(43,-14,644,774),1256=>array(50,-14,800,742),1257=>array(43,-14,644,560),1258=>array(50,-14,800,927),1259=>array(43,-14,644,774),1260=>array(64,-14,684,927),1261=>array(67,-14,550,774),1262=>array(29,0,741,914),1263=>array(12,-216,634,763),1264=>array(29,0,741,927),1265=>array(12,-216,634,774),1266=>array(29,0,741,927),1267=>array(12,-216,634,800),1268=>array(81,0,716,927),1269=>array(64,0,573,774),1270=>array(92,-157,610,729),1271=>array(84,-138,499,547),1272=>array(92,0,944,927),1273=>array(84,0,823,774),1274=>array(28,-216,638,729),1275=>array(21,-217,519,547),1276=>array(19,-200,750,729),1277=>array(15,-216,620,547),1278=>array(19,0,751,729),1279=>array(15,0,630,547),1280=>array(70,0,670,729),1281=>array(44,0,524,547),1282=>array(70,-14,1081,729),1283=>array(44,-14,850,547),1284=>array(98,-14,1027,742),1285=>array(79,-14,836,560),1286=>array(98,-208,804,742),1287=>array(79,-208,668,560),1288=>array(26,-14,1150,729),1289=>array(21,-14,933,547),1290=>array(92,-14,1186,729),1291=>array(84,-14,939,547),1292=>array(50,-14,748,742),1293=>array(43,-14,544,546),1294=>array(5,-14,846,729),1295=>array(4,-14,709,547),1296=>array(67,-14,616,742),1297=>array(54,-14,493,560),1298=>array(46,-200,739,729),1299=>array(55,-216,648,547),1300=>array(46,0,1266,729),1301=>array(55,0,1053,547),1302=>array(92,0,1045,729),1303=>array(84,-208,964,560),1304=>array(64,0,1008,729),1305=>array(31,-14,965,560),1306=>array(50,-146,800,742),1307=>array(45,-208,632,559),1308=>array(30,0,1072,729),1309=>array(35,0,889,547),1310=>array(92,0,803,729),1311=>array(84,0,664,547),1312=>array(46,-200,1187,729),1313=>array(55,-216,980,547),1314=>array(92,-200,1193,729),1315=>array(84,-216,939,547),1316=>array(92,-157,933,729),1317=>array(84,-138,782,547),1329=>array(83,-38,731,729),1330=>array(83,0,655,743),1331=>array(26,0,728,743),1332=>array(22,0,731,743),1333=>array(83,-14,655,729),1334=>array(66,0,664,743),1335=>array(83,0,625,729),1336=>array(83,0,655,743),1337=>array(83,-13,903,742),1338=>array(26,-14,728,729),1339=>array(83,0,648,729),1340=>array(83,0,549,729),1341=>array(83,-14,888,729),1342=>array(62,-12,722,741),1343=>array(74,0,639,729),1344=>array(4,-46,598,729),1345=>array(66,-48,664,743),1346=>array(18,0,715,743),1347=>array(22,0,660,735),1348=>array(83,-14,780,729),1349=>array(57,-14,645,743),1350=>array(0,-14,697,729),1351=>array(57,-14,655,729),1352=>array(83,0,648,743),1353=>array(40,-48,638,743),1354=>array(18,0,789,743),1355=>array(57,0,654,743),1356=>array(83,0,780,743),1357=>array(92,-14,720,729),1358=>array(18,0,715,729),1359=>array(53,-14,641,743),1360=>array(83,0,648,743),1361=>array(57,-14,645,743),1362=>array(83,0,567,729),1363=>array(22,0,811,729),1364=>array(9,0,645,743),1365=>array(49,-14,799,742),1366=>array(44,-14,833,729),1369=>array(104,481,230,760),1370=>array(57,418,250,729),1371=>array(0,616,310,800),1372=>array(0,595,375,893),1373=>array(-7,614,290,847),1374=>array(0,586,460,878),1375=>array(40,618,434,893),1377=>array(71,-13,863,547),1378=>array(76,-208,571,560),1379=>array(40,-208,700,559),1380=>array(76,-208,703,560),1381=>array(71,-14,567,760),1382=>array(40,-208,700,559),1383=>array(76,0,532,760),1384=>array(76,-208,579,560),1385=>array(76,-208,756,560),1386=>array(40,-14,700,760),1387=>array(76,-208,571,760),1388=>array(76,-208,410,547),1389=>array(76,-208,909,760),1390=>array(40,-14,600,760),1391=>array(71,-208,567,760),1392=>array(76,0,571,760),1393=>array(26,-13,536,760),1394=>array(76,-208,703,560),1395=>array(62,-13,570,768),1396=>array(71,-13,699,760),1397=>array(-30,-216,233,547),1398=>array(-61,-13,567,760),1399=>array(13,-208,456,560),1400=>array(76,0,571,560),1401=>array(5,-208,375,547),1402=>array(71,-208,863,546),1403=>array(44,-208,533,560),1404=>array(76,0,622,560),1405=>array(71,-13,567,547),1406=>array(71,-208,699,760),1407=>array(71,-13,863,560),1408=>array(76,-208,571,560),1409=>array(44,-216,631,559),1410=>array(76,0,475,547),1411=>array(71,-208,863,760),1412=>array(-56,-208,604,560),1413=>array(44,-14,645,560),1414=>array(31,-190,774,760),1415=>array(71,-14,808,760),1417=>array(101,0,259,547),1418=>array(49,180,325,359),1456=>array(296,-229,394,-10),1457=>array(147,-229,501,-10),1458=>array(138,-229,492,-10),1459=>array(125,-229,492,-10),1460=>array(296,-171,394,-73),1461=>array(223,-171,467,-73),1462=>array(235,-229,455,-10),1463=>array(174,-171,516,0),1464=>array(187,-217,504,0),1465=>array(-24,547,73,723),1466=>array(-24,547,73,723),1467=>array(187,-239,528,-5),1468=>array(301,225,399,322),1469=>array(296,-217,394,-22),1470=>array(54,413,361,555),1471=>array(187,547,504,710),1472=>array(98,-98,273,645),1473=>array(753,613,851,710),1474=>array(137,613,235,710),1475=>array(98,0,273,547),1478=>array(78,0,462,547),1479=>array(187,-229,504,-10),1488=>array(84,0,644,547),1489=>array(43,0,567,547),1490=>array(43,-9,418,547),1491=>array(43,0,545,547),1492=>array(91,0,596,547),1493=>array(91,0,252,547),1494=>array(43,0,357,547),1495=>array(91,0,596,547),1496=>array(90,-13,624,553),1497=>array(66,164,228,547),1498=>array(43,-240,487,547),1499=>array(43,0,511,547),1500=>array(43,0,527,711),1501=>array(91,0,605,547),1502=>array(43,0,633,554),1503=>array(91,-240,252,547),1504=>array(43,0,362,547),1505=>array(90,-13,624,547),1506=>array(43,-101,575,547),1507=>array(91,-240,584,547),1508=>array(91,0,603,547),1509=>array(11,-240,543,548),1510=>array(33,0,564,547),1511=>array(91,-240,660,546),1512=>array(43,0,511,547),1513=>array(20,0,750,547),1514=>array(10,-4,592,547),1520=>array(91,0,574,547),1521=>array(66,0,524,547),1522=>array(66,164,500,547),1523=>array(84,361,360,547),1524=>array(84,361,626,547),1542=>array(-2,-20,630,892),1543=>array(-2,-20,630,897),1545=>array(65,0,811,635),1546=>array(65,0,1084,635),1548=>array(98,0,322,331),1557=>array(121,612,379,868),1563=>array(98,0,323,689),1567=>array(69,0,515,742),1569=>array(73,20,437,493),1570=>array(-20,0,362,955),1571=>array(75,0,259,993),1572=>array(-42,-244,547,603),1573=>array(76,-245,259,760),1574=>array(63,-107,863,603),1575=>array(84,0,259,760),1576=>array(63,-149,921,327),1577=>array(48,-30,540,513),1578=>array(63,-5,921,415),1579=>array(63,-5,921,537),1580=>array(77,-244,720,425),1581=>array(77,-244,720,425),1582=>array(77,-244,720,579),1583=>array(61,-15,442,415),1584=>array(61,-15,442,579),1585=>array(-42,-244,508,269),1586=>array(-42,-244,508,457),1587=>array(63,-244,1297,366),1588=>array(63,-244,1297,586),1589=>array(63,-244,1265,362),1590=>array(63,-244,1265,457),1591=>array(70,0,971,760),1592=>array(70,0,971,760),1593=>array(87,-244,720,521),1594=>array(87,-244,720,652),1600=>array(-10,0,352,125),1601=>array(63,-24,1082,627),1602=>array(52,-215,825,635),1603=>array(70,-27,814,760),1604=>array(70,-142,778,760),1605=>array(68,-244,660,369),1606=>array(62,-165,779,457),1607=>array(48,-30,540,358),1608=>array(-42,-244,547,322),1609=>array(63,-107,863,462),1610=>array(63,-244,863,462),1611=>array(107,591,393,825),1612=>array(107,591,393,881),1613=>array(107,-239,393,-5),1614=>array(107,591,393,723),1615=>array(107,590,393,881),1616=>array(107,-137,393,-5),1617=>array(88,599,412,869),1618=>array(115,610,383,878),1619=>array(59,584,441,735),1620=>array(154,601,335,822),1621=>array(155,-245,336,-23),1623=>array(107,615,393,906),1626=>array(99,616,401,775),1632=>array(218,195,392,366),1633=>array(140,0,431,635),1634=>array(12,0,598,635),1635=>array(12,0,597,635),1636=>array(74,-10,530,646),1637=>array(63,-10,547,643),1638=>array(37,0,574,635),1639=>array(15,0,596,635),1640=>array(15,0,596,635),1641=>array(32,0,590,640),1642=>array(65,0,545,635),1643=>array(0,-118,349,318),1644=>array(63,418,278,729),1645=>array(42,101,502,537),1646=>array(63,-5,921,327),1647=>array(52,-215,825,484),1648=>array(216,600,284,885),1652=>array(51,641,232,863),1657=>array(63,-5,921,599),1658=>array(63,-5,921,566),1659=>array(63,-244,921,327),1660=>array(63,-171,921,415),1661=>array(63,-5,921,566),1662=>array(63,-244,921,327),1663=>array(63,-5,921,566),1664=>array(63,-244,921,327),1665=>array(77,-244,720,725),1666=>array(77,-244,720,737),1667=>array(77,-244,720,425),1668=>array(77,-244,720,425),1669=>array(77,-244,720,737),1670=>array(77,-244,720,425),1671=>array(77,-244,720,425),1672=>array(61,-15,442,746),1673=>array(61,-180,442,415),1674=>array(61,-171,442,415),1675=>array(61,-171,442,746),1676=>array(61,-15,442,586),1677=>array(61,-146,442,415),1678=>array(61,-15,442,708),1679=>array(61,-15,442,684),1680=>array(61,-15,442,708),1681=>array(-42,-244,520,648),1682=>array(-42,-244,542,556),1683=>array(-42,-244,587,269),1684=>array(-42,-244,522,269),1685=>array(-42,-244,753,269),1686=>array(-42,-244,522,269),1687=>array(-42,-244,508,464),1688=>array(-42,-244,508,586),1689=>array(-42,-244,508,586),1690=>array(63,-244,1297,464),1691=>array(63,-244,1297,366),1692=>array(63,-244,1297,586),1693=>array(63,-244,1265,362),1694=>array(63,-244,1265,586),1695=>array(70,0,971,760),1696=>array(87,-244,720,781),1697=>array(63,-24,1082,484),1698=>array(63,-171,1082,484),1699=>array(63,-171,1082,635),1700=>array(63,-24,1082,786),1701=>array(63,-293,1082,484),1702=>array(63,-24,1082,786),1703=>array(52,-215,825,635),1704=>array(52,-215,825,757),1705=>array(63,-39,1024,760),1706=>array(63,-39,1194,760),1707=>array(63,-39,1024,760),1708=>array(70,-27,814,760),1709=>array(70,-27,814,854),1710=>array(70,-293,814,760),1711=>array(63,-39,1024,910),1712=>array(63,-39,1024,910),1713=>array(63,-39,1024,910),1714=>array(63,-171,1024,910),1715=>array(63,-293,1024,910),1716=>array(63,-39,1024,1025),1717=>array(70,-142,841,971),1718=>array(70,-142,778,952),1719=>array(70,-142,781,1025),1720=>array(70,-391,778,760),1721=>array(62,-317,779,464),1722=>array(62,-165,779,366),1723=>array(62,-165,779,636),1724=>array(62,-330,779,464),1725=>array(62,-165,779,586),1726=>array(70,-33,877,506),1727=>array(77,-244,720,579),1734=>array(-42,-244,547,556),1740=>array(63,-107,863,462),1742=>array(63,-107,863,556),1749=>array(48,-30,540,358),1776=>array(218,195,392,366),1777=>array(140,0,431,635),1778=>array(12,0,598,635),1779=>array(12,0,597,635),1780=>array(12,0,573,650),1781=>array(30,-8,580,643),1782=>array(85,0,514,645),1783=>array(15,0,596,635),1784=>array(15,0,596,635),1785=>array(32,0,590,640),1984=>array(48,-14,648,742),1985=>array(69,0,583,729),1986=>array(80,0,616,729),1987=>array(80,0,616,729),1988=>array(80,0,616,729),1989=>array(80,0,616,729),1990=>array(80,0,616,729),1991=>array(98,0,599,729),1992=>array(98,0,599,729),1993=>array(70,0,625,742),1994=>array(84,0,259,729),1995=>array(43,-14,504,465),1996=>array(15,0,529,729),1997=>array(15,0,637,451),1998=>array(84,0,607,451),1999=>array(84,0,607,451),2000=>array(46,0,548,742),2001=>array(84,0,607,667),2002=>array(43,0,820,742),2003=>array(84,0,467,729),2004=>array(84,0,467,729),2005=>array(84,0,584,729),2006=>array(84,0,604,729),2007=>array(15,0,360,729),2008=>array(84,0,938,532),2009=>array(15,0,491,729),2010=>array(15,0,811,729),2011=>array(84,0,607,451),2012=>array(15,0,637,729),2013=>array(84,0,869,729),2014=>array(84,0,543,729),2015=>array(43,0,692,729),2016=>array(15,0,491,729),2017=>array(15,0,637,729),2018=>array(43,0,531,729),2019=>array(84,0,543,729),2020=>array(84,0,543,581),2021=>array(84,0,543,729),2022=>array(43,0,531,729),2023=>array(43,0,531,729),2027=>array(95,668,403,760),2028=>array(63,638,438,777),2029=>array(185,654,319,774),2030=>array(65,616,433,800),2031=>array(33,616,438,803),2032=>array(63,638,438,777),2033=>array(33,616,438,803),2034=>array(183,-212,317,-92),2035=>array(96,654,404,774),2036=>array(63,418,278,729),2037=>array(103,418,318,729),2040=>array(84,0,607,562),2041=>array(84,0,607,564),2042=>array(-10,0,425,125),3647=>array(62,-147,638,760),3713=>array(43,-14,706,560),3714=>array(43,-14,723,560),3716=>array(43,-14,704,560),3719=>array(21,-241,521,561),3720=>array(42,0,705,560),3722=>array(40,-269,768,560),3725=>array(40,-24,713,610),3732=>array(42,-14,647,560),3733=>array(42,-19,647,561),3734=>array(-22,-240,684,560),3735=>array(20,-14,768,560),3737=>array(37,-15,681,560),3738=>array(38,-15,664,561),3739=>array(38,-15,664,760),3740=>array(60,-12,910,626),3741=>array(64,-14,762,760),3742=>array(76,-14,773,560),3743=>array(76,-14,773,760),3745=>array(24,-14,771,547),3746=>array(40,-23,713,760),3747=>array(48,-10,733,615),3749=>array(41,-33,693,560),3751=>array(33,-33,640,561),3754=>array(51,-21,819,724),3755=>array(44,-21,935,620),3757=>array(53,-20,662,606),3758=>array(48,-14,825,698),3759=>array(43,-259,897,648),3760=>array(36,-16,658,567),3761=>array(-653,610,-31,896),3762=>array(39,0,563,593),3763=>array(-479,0,563,875),3764=>array(-654,622,-62,950),3765=>array(-654,633,13,962),3766=>array(-654,622,-62,950),3767=>array(-654,633,13,962),3768=>array(-426,-385,-165,-55),3769=>array(-473,-316,-174,-28),3771=>array(-653,610,-31,896),3772=>array(-682,-311,15,-48),3773=>array(39,-220,691,776),3776=>array(83,-13,444,561),3777=>array(83,-13,818,561),3778=>array(-37,-14,458,936),3779=>array(23,-14,595,879),3780=>array(-15,-35,585,809),3782=>array(70,-240,688,582),3784=>array(-413,659,-297,844),3785=>array(-627,622,-22,918),3786=>array(-667,621,39,965),3787=>array(-521,612,-187,917),3788=>array(-682,603,15,866),3789=>array(-479,668,-229,875),3792=>array(66,-29,723,563),3793=>array(25,-139,721,586),3794=>array(31,-80,603,711),3795=>array(24,-14,882,981),3796=>array(48,-156,696,711),3797=>array(48,-156,696,711),3798=>array(64,-14,894,950),3799=>array(43,-240,706,560),3800=>array(72,-269,774,582),3801=>array(58,-14,858,564),3804=>array(44,-21,1301,620),3805=>array(44,-21,1305,620),4256=>array(47,-14,827,819),4257=>array(39,-0,719,819),4258=>array(37,-138,667,828),4259=>array(41,-15,793,819),4260=>array(29,0,572,828),4261=>array(24,0,729,828),4262=>array(15,-14,709,819),4263=>array(49,-14,890,828),4264=>array(4,0,415,862),4265=>array(39,0,581,819),4266=>array(18,-14,796,820),4267=>array(48,-14,837,819),4268=>array(43,0,586,819),4269=>array(37,-157,817,829),4270=>array(11,-14,731,822),4271=>array(20,0,585,823),4272=>array(43,-15,863,820),4273=>array(43,-15,587,820),4274=>array(43,-0,586,828),4275=>array(37,-170,817,828),4276=>array(37,0,828,825),4277=>array(28,0,695,820),4278=>array(44,0,586,828),4279=>array(34,0,577,820),4280=>array(39,-14,582,820),4281=>array(43,0,586,819),4282=>array(45,-14,778,827),4283=>array(46,-15,822,820),4284=>array(43,-0,586,819),4285=>array(29,-15,594,828),4286=>array(43,-0,586,819),4287=>array(15,0,726,819),4288=>array(18,-14,796,820),4289=>array(43,0,586,820),4290=>array(37,-15,652,828),4291=>array(9,0,552,820),4292=>array(33,0,561,820),4293=>array(24,-14,714,828),4304=>array(49,-14,505,599),4305=>array(49,-14,515,823),4306=>array(44,-232,578,561),4307=>array(49,-225,786,557),4308=>array(49,-232,496,557),4309=>array(49,-232,505,557),4310=>array(25,-14,502,828),4311=>array(49,-14,779,557),4312=>array(49,0,515,557),4313=>array(49,-232,506,542),4314=>array(49,-225,1025,562),4315=>array(49,-14,505,828),4316=>array(63,-14,520,819),4317=>array(49,-0,765,557),4318=>array(49,-14,505,818),4319=>array(49,-232,504,560),4320=>array(49,0,774,830),4321=>array(63,-14,520,818),4322=>array(49,-232,651,670),4323=>array(29,-232,533,604),4324=>array(49,-232,792,558),4325=>array(49,-232,496,818),4326=>array(49,-225,766,557),4327=>array(49,-232,505,549),4328=>array(20,-14,489,828),4329=>array(63,0,520,828),4330=>array(49,-232,573,548),4331=>array(49,-14,504,818),4332=>array(64,-15,534,828),4333=>array(49,-232,517,818),4334=>array(63,-14,520,818),4335=>array(24,-232,516,580),4336=>array(49,-15,505,823),4337=>array(49,-14,505,823),4338=>array(49,-146,504,557),4339=>array(49,-232,505,558),4340=>array(49,-232,504,828),4341=>array(49,-14,558,828),4342=>array(49,-232,803,557),4343=>array(49,-232,556,557),4344=>array(49,-232,505,549),4345=>array(44,-232,578,561),4346=>array(49,-111,505,557),4347=>array(49,0,399,500),4348=>array(24,400,294,828),5121=>array(5,0,769,729),5122=>array(5,0,769,1056),5123=>array(5,0,769,729),5124=>array(5,0,769,928),5125=>array(92,0,821,729),5126=>array(92,0,821,928),5127=>array(92,0,821,927),5129=>array(92,0,821,729),5130=>array(84,0,813,729),5131=>array(84,0,813,928),5132=>array(92,0,1013,729),5133=>array(5,0,925,729),5134=>array(92,0,1013,729),5135=>array(5,0,925,729),5136=>array(92,0,1013,928),5137=>array(5,0,925,928),5138=>array(92,0,1065,729),5139=>array(92,0,1056,729),5140=>array(92,0,1065,928),5141=>array(92,0,1056,928),5142=>array(92,0,821,928),5143=>array(92,0,1057,729),5144=>array(84,0,1058,729),5145=>array(92,0,1057,928),5146=>array(84,0,1058,928),5147=>array(84,0,813,928),5149=>array(92,607,226,728),5150=>array(60,326,473,734),5151=>array(31,338,379,722),5152=>array(31,338,379,722),5153=>array(60,392,338,711),5154=>array(60,352,338,670),5155=>array(60,392,338,670),5156=>array(60,392,338,670),5157=>array(31,327,518,749),5158=>array(60,326,414,734),5159=>array(92,304,226,424),5160=>array(60,494,338,569),5161=>array(60,392,338,670),5162=>array(60,392,338,693),5163=>array(5,0,1167,729),5164=>array(5,0,940,729),5165=>array(92,0,1170,729),5166=>array(84,0,1251,729),5167=>array(5,0,769,729),5168=>array(5,0,769,1056),5169=>array(5,0,769,729),5170=>array(5,0,769,928),5171=>array(73,0,802,729),5172=>array(73,0,802,928),5173=>array(73,0,802,927),5175=>array(73,0,802,729),5176=>array(73,0,802,729),5177=>array(73,0,802,928),5178=>array(92,0,1013,729),5179=>array(5,0,925,729),5180=>array(92,0,1013,729),5181=>array(5,0,925,729),5182=>array(92,0,1013,928),5183=>array(5,0,925,928),5184=>array(92,0,1046,729),5185=>array(73,0,1056,729),5186=>array(92,0,1046,928),5187=>array(73,0,1056,928),5188=>array(92,0,1046,729),5189=>array(73,0,1058,729),5190=>array(92,0,1046,928),5191=>array(73,0,1058,928),5192=>array(73,0,802,927),5193=>array(60,326,520,727),5194=>array(60,326,172,734),5196=>array(92,-14,720,729),5197=>array(92,0,720,1056),5198=>array(92,0,720,743),5199=>array(92,0,720,928),5200=>array(73,0,759,729),5201=>array(73,0,759,928),5202=>array(73,0,759,927),5204=>array(73,0,759,729),5205=>array(56,0,742,729),5206=>array(56,0,742,928),5207=>array(92,-14,964,729),5208=>array(92,-14,964,729),5209=>array(92,0,964,743),5210=>array(92,0,964,743),5211=>array(92,0,964,928),5212=>array(92,0,964,928),5213=>array(92,0,1003,729),5214=>array(73,0,970,729),5215=>array(92,0,1003,928),5216=>array(73,0,970,928),5217=>array(92,0,986,729),5218=>array(56,0,968,729),5219=>array(92,0,986,928),5220=>array(56,0,968,928),5221=>array(92,0,986,729),5222=>array(60,326,427,733),5223=>array(92,-14,949,734),5224=>array(92,0,949,743),5225=>array(73,0,967,734),5226=>array(56,0,960,734),5227=>array(41,0,651,743),5228=>array(92,0,702,1056),5229=>array(92,0,702,743),5230=>array(92,0,702,928),5231=>array(41,-14,651,729),5232=>array(41,-14,651,928),5233=>array(41,-14,708,927),5234=>array(92,-14,702,729),5235=>array(92,-14,702,928),5236=>array(92,0,937,743),5237=>array(41,0,891,743),5238=>array(92,0,939,743),5239=>array(92,0,891,743),5240=>array(92,0,939,928),5241=>array(92,0,891,928),5242=>array(92,-14,937,729),5243=>array(41,-14,891,729),5244=>array(92,-14,937,928),5245=>array(41,-14,891,928),5246=>array(92,-14,939,729),5247=>array(92,-14,891,729),5248=>array(92,-14,939,928),5249=>array(92,-14,891,928),5250=>array(92,-14,939,729),5251=>array(60,319,445,734),5252=>array(60,319,445,734),5253=>array(41,0,881,743),5254=>array(92,0,881,743),5255=>array(41,-14,881,734),5256=>array(92,-14,881,734),5257=>array(41,0,651,743),5258=>array(92,0,702,1056),5259=>array(92,0,702,743),5260=>array(92,0,702,928),5261=>array(41,-14,651,729),5262=>array(41,-14,651,928),5263=>array(41,-14,714,927),5264=>array(92,-14,702,729),5265=>array(92,-14,702,928),5266=>array(92,0,937,743),5267=>array(41,0,891,743),5268=>array(92,0,988,743),5269=>array(92,0,891,743),5270=>array(92,0,988,928),5271=>array(92,0,891,928),5272=>array(92,-14,937,729),5273=>array(41,-14,891,729),5274=>array(92,-14,937,928),5275=>array(41,-14,891,928),5276=>array(92,-14,988,729),5277=>array(92,-14,891,729),5278=>array(92,-14,988,928),5279=>array(92,-14,891,928),5280=>array(92,-14,988,729),5281=>array(60,319,445,734),5282=>array(60,319,445,734),5283=>array(27,0,535,729),5284=>array(92,0,599,1056),5285=>array(92,0,599,729),5286=>array(92,0,599,928),5287=>array(27,0,535,729),5288=>array(27,0,535,928),5289=>array(27,0,598,927),5290=>array(92,0,599,729),5291=>array(92,0,599,928),5292=>array(92,0,790,729),5293=>array(27,0,771,729),5294=>array(92,0,836,729),5295=>array(92,0,790,729),5296=>array(92,0,836,928),5297=>array(92,0,790,928),5298=>array(92,0,790,729),5299=>array(27,0,790,729),5300=>array(92,0,790,928),5301=>array(27,0,790,928),5302=>array(92,0,836,729),5303=>array(92,0,790,729),5304=>array(92,0,836,928),5305=>array(92,0,790,928),5306=>array(92,0,836,729),5307=>array(60,326,380,734),5308=>array(60,326,492,733),5309=>array(60,326,380,734),5312=>array(84,-14,947,468),5313=>array(41,-14,904,786),5314=>array(41,-14,904,468),5315=>array(41,-14,904,667),5316=>array(27,0,890,482),5317=>array(27,0,890,667),5318=>array(27,0,890,667),5319=>array(41,0,904,482),5320=>array(41,0,904,667),5321=>array(92,-14,1197,468),5322=>array(84,-14,1163,468),5323=>array(92,0,1172,482),5324=>array(41,0,1144,482),5325=>array(92,0,1172,667),5326=>array(41,0,1144,667),5327=>array(41,0,904,667),5328=>array(60,477,604,742),5329=>array(60,319,440,734),5330=>array(60,477,604,742),5331=>array(84,0,947,468),5332=>array(41,0,904,786),5333=>array(41,0,904,468),5334=>array(41,0,904,667),5335=>array(27,0,890,468),5336=>array(27,0,890,667),5337=>array(27,0,890,667),5338=>array(41,0,904,468),5339=>array(41,0,904,667),5340=>array(92,0,1190,468),5341=>array(84,0,1163,468),5342=>array(92,0,1199,468),5343=>array(41,0,1144,468),5344=>array(92,0,1199,667),5345=>array(41,0,1144,667),5346=>array(92,0,1187,468),5347=>array(27,0,1130,468),5348=>array(92,0,1187,667),5349=>array(27,0,1130,667),5350=>array(92,0,1199,468),5351=>array(41,0,1144,468),5352=>array(92,0,1199,667),5353=>array(41,0,1144,667),5354=>array(60,477,604,734),5356=>array(73,0,802,729),5357=>array(41,0,638,729),5358=>array(92,0,736,1056),5359=>array(92,0,689,729),5360=>array(92,0,689,928),5361=>array(41,0,638,729),5362=>array(41,0,638,928),5363=>array(41,0,694,927),5364=>array(92,0,689,729),5365=>array(92,0,689,928),5366=>array(92,0,906,729),5367=>array(41,0,875,729),5368=>array(92,0,926,729),5369=>array(92,0,905,729),5370=>array(92,0,926,928),5371=>array(92,0,905,928),5372=>array(92,0,906,729),5373=>array(41,0,875,729),5374=>array(92,0,906,928),5375=>array(41,0,875,928),5376=>array(92,0,926,729),5377=>array(92,0,905,729),5378=>array(92,0,926,928),5379=>array(92,0,905,928),5380=>array(92,0,926,729),5381=>array(60,326,437,734),5382=>array(60,319,404,742),5383=>array(60,326,437,734),5392=>array(41,-14,882,743),5393=>array(41,-14,882,743),5394=>array(41,-14,882,928),5395=>array(41,-14,1095,482),5396=>array(41,-14,1095,667),5397=>array(41,-14,1095,482),5398=>array(41,-14,1095,667),5399=>array(92,-14,1168,743),5400=>array(41,-14,1118,743),5401=>array(92,-14,1168,743),5402=>array(41,-14,1118,743),5403=>array(92,-14,1168,928),5404=>array(41,-14,1118,928),5405=>array(92,-14,1390,482),5406=>array(41,-14,1336,482),5407=>array(92,-14,1390,667),5408=>array(41,-14,1336,667),5409=>array(92,-14,1390,482),5410=>array(41,-14,1336,482),5411=>array(92,-14,1390,667),5412=>array(41,-14,1336,667),5413=>array(60,469,690,747),5414=>array(84,0,684,729),5415=>array(92,0,692,1056),5416=>array(92,0,692,729),5417=>array(92,0,692,928),5418=>array(84,0,684,729),5419=>array(84,0,684,928),5420=>array(84,0,750,927),5421=>array(92,0,692,729),5422=>array(92,0,692,928),5423=>array(92,0,911,729),5424=>array(84,0,919,729),5425=>array(92,0,929,729),5426=>array(92,0,912,729),5427=>array(92,0,929,928),5428=>array(92,0,912,928),5429=>array(92,0,911,729),5430=>array(84,0,919,729),5431=>array(92,0,911,928),5432=>array(84,0,919,928),5433=>array(92,0,929,729),5434=>array(92,0,912,729),5435=>array(92,0,929,928),5436=>array(92,0,912,928),5437=>array(92,0,929,928),5438=>array(60,326,438,734),5440=>array(60,392,338,670),5441=>array(60,326,454,734),5442=>array(92,-14,949,468),5443=>array(84,-14,941,468),5444=>array(27,0,884,482),5445=>array(92,0,949,786),5446=>array(92,0,949,482),5447=>array(92,0,949,667),5448=>array(92,0,692,729),5449=>array(92,0,692,928),5450=>array(92,0,692,729),5451=>array(41,0,641,729),5452=>array(41,0,641,928),5453=>array(41,0,641,729),5454=>array(92,0,911,928),5455=>array(41,0,875,928),5456=>array(60,326,438,727),5458=>array(73,0,802,729),5459=>array(51,0,769,743),5460=>array(51,-14,769,1056),5461=>array(51,-14,769,729),5462=>array(51,-14,769,928),5463=>array(73,0,844,663),5464=>array(73,0,844,928),5465=>array(84,0,855,663),5466=>array(84,0,855,928),5467=>array(92,0,1099,928),5468=>array(84,0,1058,928),5469=>array(60,311,546,675),5470=>array(92,-14,720,743),5471=>array(92,-14,720,743),5472=>array(92,-14,720,743),5473=>array(92,-14,720,743),5474=>array(92,-14,720,928),5475=>array(92,-14,720,928),5476=>array(54,0,759,729),5477=>array(54,0,759,928),5478=>array(56,0,762,729),5479=>array(56,0,762,928),5480=>array(92,0,1006,928),5481=>array(56,0,968,928),5482=>array(60,326,512,733),5492=>array(41,0,893,743),5493=>array(84,0,936,743),5494=>array(84,0,936,928),5495=>array(41,-14,893,729),5496=>array(41,-14,893,928),5497=>array(84,-14,936,729),5498=>array(84,-14,936,928),5499=>array(60,319,562,734),5500=>array(92,0,745,729),5501=>array(60,326,454,734),5502=>array(60,0,1197,1056),5503=>array(60,0,1197,743),5504=>array(60,0,1197,928),5505=>array(60,-14,1146,729),5506=>array(60,-14,1146,928),5507=>array(60,-14,1197,729),5508=>array(60,-14,1197,928),5509=>array(60,319,939,734),5514=>array(41,0,893,743),5515=>array(84,0,936,743),5516=>array(41,-14,893,729),5517=>array(84,-14,936,729),5518=>array(60,0,1550,1056),5519=>array(60,0,1550,743),5520=>array(60,0,1550,928),5521=>array(60,-14,1203,741),5522=>array(60,-14,1203,928),5523=>array(60,-14,1550,741),5524=>array(60,-14,1550,928),5525=>array(60,335,792,741),5526=>array(60,335,1217,741),5536=>array(41,0,904,709),5537=>array(41,0,904,709),5538=>array(27,-242,890,468),5539=>array(27,-242,890,667),5540=>array(41,-242,904,468),5541=>array(41,-242,904,667),5542=>array(60,344,604,734),5543=>array(84,0,771,729),5544=>array(5,0,692,729),5545=>array(5,0,692,928),5546=>array(84,0,771,729),5547=>array(84,0,771,928),5548=>array(5,0,692,729),5549=>array(5,0,692,928),5550=>array(15,326,438,734),5551=>array(92,-14,702,729),5598=>array(92,0,778,729),5601=>array(52,0,738,729),5702=>array(60,326,439,734),5703=>array(60,240,439,820),5742=>array(10,0,403,306),5743=>array(60,0,1146,743),5744=>array(60,0,1499,743),5745=>array(60,0,1975,743),5746=>array(60,0,1975,928),5747=>array(60,-14,1628,741),5748=>array(60,-14,1586,928),5749=>array(60,-14,1975,741),5750=>array(60,-14,1975,928),5760=>array(-10,219,553,354),5761=>array(-10,-125,646,354),5762=>array(-10,-125,955,354),5763=>array(-10,-125,1264,354),5764=>array(-10,-125,1572,354),5765=>array(-10,-125,1881,354),5766=>array(-10,219,637,697),5767=>array(-10,219,945,697),5768=>array(-10,219,1264,697),5769=>array(-10,219,1569,697),5770=>array(-10,219,1881,697),5771=>array(-10,-125,579,697),5772=>array(-10,-125,888,697),5773=>array(-10,-125,1198,697),5774=>array(-10,-125,1507,697),5775=>array(-10,-125,1817,697),5776=>array(-10,41,646,532),5777=>array(-10,41,955,532),5778=>array(-10,41,1264,532),5779=>array(-10,41,1572,532),5780=>array(-10,41,1881,532),5781=>array(-10,-125,579,697),5782=>array(-10,-125,948,697),5783=>array(-10,-109,798,354),5784=>array(-10,-254,1244,354),5785=>array(-10,219,1569,928),5786=>array(-10,14,750,354),5787=>array(55,-49,648,622),5788=>array(-10,-49,583,622),7424=>array(15,0,637,547),7425=>array(0,0,755,547),7426=>array(43,-14,1000,560),7427=>array(20,0,564,547),7428=>array(43,-14,526,560),7429=>array(84,-1,611,547),7430=>array(20,-1,611,547),7431=>array(92,0,480,547),7432=>array(54,-14,493,560),7433=>array(84,-213,259,547),7434=>array(44,-14,416,547),7435=>array(84,0,684,547),7436=>array(-18,0,499,547),7437=>array(84,0,733,547),7438=>array(84,0,617,547),7439=>array(43,-14,644,560),7440=>array(43,-14,526,560),7441=>array(43,-27,617,573),7442=>array(43,31,617,515),7443=>array(13,-28,653,579),7444=>array(43,-14,1046,560),7446=>array(43,273,644,560),7447=>array(44,-14,646,273),7448=>array(51,0,515,547),7449=>array(21,0,560,547),7450=>array(21,0,560,547),7451=>array(4,0,575,547),7452=>array(84,-14,607,547),7453=>array(85,10,646,560),7454=>array(69,10,857,561),7455=>array(19,-238,651,560),7456=>array(15,0,637,547),7457=>array(35,0,889,547),7458=>array(45,0,534,547),7459=>array(57,-14,581,547),7462=>array(84,0,499,547),7463=>array(15,0,637,547),7464=>array(84,0,607,547),7465=>array(51,0,515,547),7466=>array(84,0,698,547),7467=>array(55,0,648,547),7468=>array(3,326,484,734),7469=>array(0,326,638,734),7470=>array(58,326,436,734),7472=>array(58,326,490,734),7473=>array(58,326,384,734),7474=>array(58,326,384,734),7475=>array(31,318,471,742),7476=>array(58,326,469,734),7477=>array(58,326,176,734),7478=>array(-35,214,176,734),7479=>array(58,326,507,734),7480=>array(58,326,384,734),7481=>array(58,326,569,734),7482=>array(58,326,469,734),7483=>array(58,326,469,734),7484=>array(31,318,504,742),7485=>array(39,318,471,742),7486=>array(58,326,436,734),7487=>array(58,326,473,734),7488=>array(3,326,426,734),7489=>array(58,318,454,734),7490=>array(19,326,675,734),7491=>array(53,318,402,640),7492=>array(53,318,402,640),7493=>array(53,318,423,640),7494=>array(53,318,656,640),7495=>array(53,318,423,751),7496=>array(53,318,423,751),7497=>array(53,318,423,640),7498=>array(53,318,423,640),7499=>array(53,318,330,640),7500=>array(53,318,330,640),7501=>array(53,205,423,639),7502=>array(53,207,164,632),7503=>array(53,326,431,751),7504=>array(53,326,607,640),7505=>array(53,205,399,640),7506=>array(53,318,432,640),7507=>array(53,318,357,640),7508=>array(53,479,432,640),7509=>array(53,318,432,479),7510=>array(53,209,423,640),7511=>array(53,326,332,719),7512=>array(53,318,399,632),7513=>array(53,332,407,640),7514=>array(53,318,607,632),7515=>array(53,326,445,632),7517=>array(53,209,423,759),7518=>array(10,209,420,632),7519=>array(27,318,406,756),7520=>array(41,209,457,635),7521=>array(16,209,391,632),7522=>array(53,0,164,425),7523=>array(54,0,314,313),7524=>array(53,-8,399,306),7525=>array(53,0,445,306),7526=>array(53,-117,423,433),7527=>array(10,-117,420,306),7528=>array(53,-117,423,314),7529=>array(41,-117,457,309),7530=>array(16,-117,391,306),7543=>array(84,-216,671,559),7544=>array(58,326,469,734),7547=>array(84,0,461,547),7549=>array(5,-208,742,560),7557=>array(84,-216,434,760),7579=>array(53,318,423,640),7580=>array(53,318,357,640),7581=>array(53,288,357,640),7582=>array(53,318,432,751),7583=>array(53,318,330,640),7584=>array(53,326,321,751),7585=>array(53,205,292,632),7586=>array(53,205,423,632),7587=>array(53,207,399,632),7588=>array(53,326,291,751),7589=>array(53,326,226,632),7590=>array(53,326,291,632),7591=>array(53,326,291,632),7592=>array(53,205,375,751),7593=>array(53,205,270,751),7594=>array(53,205,274,751),7595=>array(53,326,314,632),7596=>array(53,205,608,640),7597=>array(53,209,607,632),7598=>array(53,205,506,640),7599=>array(53,205,505,640),7600=>array(53,326,393,632),7601=>array(53,318,432,640),7602=>array(53,209,486,751),7603=>array(53,205,366,640),7604=>array(53,205,340,751),7605=>array(53,205,332,719),7606=>array(53,318,527,632),7607=>array(53,298,438,632),7608=>array(53,318,383,632),7609=>array(53,326,395,632),7610=>array(53,326,445,632),7611=>array(53,326,361,632),7612=>array(53,205,468,632),7613=>array(53,288,414,632),7614=>array(53,206,399,632),7615=>array(53,320,370,756),7620=>array(-467,616,-35,800),7621=>array(-467,616,-35,800),7622=>array(-467,616,-35,800),7623=>array(-467,616,-35,800),7624=>array(-513,616,11,800),7625=>array(-513,616,11,800),7680=>array(5,-240,769,729),7681=>array(43,-240,596,560),7682=>array(92,0,692,928),7683=>array(84,-14,671,913),7684=>array(92,-212,692,729),7685=>array(84,-212,671,760),7686=>array(92,-184,692,729),7687=>array(84,-184,671,760),7688=>array(50,-196,670,927),7689=>array(43,-196,526,800),7690=>array(92,0,778,927),7691=>array(45,-14,632,942),7692=>array(92,-212,778,729),7693=>array(45,-212,632,760),7694=>array(92,-184,778,729),7695=>array(45,-184,632,760),7696=>array(92,-192,778,729),7697=>array(45,-196,632,760),7698=>array(92,-240,778,729),7699=>array(45,-240,632,760),7700=>array(92,0,610,1057),7701=>array(43,-14,630,927),7702=>array(92,0,610,1057),7703=>array(43,-14,630,927),7704=>array(92,-203,610,729),7705=>array(43,-203,630,560),7706=>array(92,-195,610,729),7707=>array(43,-195,630,560),7708=>array(92,-196,610,927),7709=>array(43,-196,630,784),7710=>array(92,0,599,928),7711=>array(19,0,444,942),7712=>array(50,-14,747,901),7713=>array(45,-216,632,760),7714=>array(92,0,745,928),7715=>array(84,0,634,913),7716=>array(92,-212,745,729),7717=>array(84,-212,634,760),7718=>array(92,0,745,927),7719=>array(23,0,634,927),7720=>array(45,-196,745,729),7721=>array(38,-196,634,760),7722=>array(92,-236,745,729),7723=>array(84,-236,634,760),7724=>array(16,-195,355,729),7725=>array(1,-195,341,760),7726=>array(40,0,378,1057),7727=>array(16,0,354,917),7728=>array(92,0,805,927),7729=>array(84,0,684,982),7730=>array(92,-212,805,729),7731=>array(84,-212,684,760),7732=>array(92,-184,805,729),7733=>array(84,-184,684,760),7734=>array(92,-212,610,729),7735=>array(83,-212,259,760),7736=>array(32,-212,610,942),7737=>array(18,-212,325,914),7738=>array(92,-184,610,729),7739=>array(20,-184,328,760),7740=>array(92,-240,610,729),7741=>array(-13,-240,355,760),7742=>array(92,0,903,927),7743=>array(83,0,963,800),7744=>array(92,0,903,928),7745=>array(83,0,963,760),7746=>array(92,-212,903,729),7747=>array(83,-212,963,560),7748=>array(92,0,745,928),7749=>array(84,0,634,760),7750=>array(92,-212,745,729),7751=>array(84,-212,634,560),7752=>array(92,-184,745,729),7753=>array(84,-184,634,560),7754=>array(92,-240,745,729),7755=>array(84,-240,634,560),7756=>array(50,-14,800,1057),7757=>array(43,-14,644,916),7758=>array(50,-14,800,1043),7759=>array(43,-14,644,900),7760=>array(50,-14,800,1057),7761=>array(43,-14,644,927),7762=>array(50,-14,800,1057),7763=>array(43,-14,644,927),7764=>array(92,0,692,927),7765=>array(84,-208,671,800),7766=>array(92,0,692,928),7767=>array(84,-208,671,760),7768=>array(92,0,750,928),7769=>array(84,0,490,760),7770=>array(92,-212,750,729),7771=>array(83,-212,490,560),7772=>array(92,-212,750,914),7773=>array(83,-212,490,759),7774=>array(92,-184,750,729),7775=>array(33,-184,490,560),7776=>array(72,-14,647,928),7777=>array(52,-14,548,760),7778=>array(72,-212,647,742),7779=>array(52,-212,548,560),7780=>array(72,-14,647,928),7781=>array(52,-14,548,816),7782=>array(72,-14,647,1053),7783=>array(52,-14,548,1002),7784=>array(72,-212,647,928),7785=>array(52,-212,548,762),7786=>array(5,0,677,927),7787=>array(13,0,455,942),7788=>array(5,-212,677,729),7789=>array(13,-212,455,702),7790=>array(5,-184,677,729),7791=>array(13,-184,455,702),7792=>array(5,-240,677,729),7793=>array(13,-240,455,702),7794=>array(92,-212,720,729),7795=>array(78,-212,628,547),7796=>array(92,-196,720,729),7797=>array(78,-195,628,547),7798=>array(92,-203,720,729),7799=>array(78,-203,628,547),7800=>array(92,-14,720,1057),7801=>array(78,-14,628,916),7802=>array(92,-14,720,1043),7803=>array(78,-14,628,887),7804=>array(5,0,769,928),7805=>array(15,0,637,778),7806=>array(5,-212,769,729),7807=>array(15,-212,637,547),7808=>array(30,0,1072,931),7809=>array(35,0,889,803),7810=>array(30,0,1072,931),7811=>array(35,0,889,803),7812=>array(30,0,1072,927),7813=>array(35,0,889,774),7814=>array(30,0,1072,927),7815=>array(35,0,889,760),7816=>array(30,-212,1072,729),7817=>array(35,-212,889,547),7818=>array(19,0,751,928),7819=>array(15,0,630,760),7820=>array(19,0,751,927),7821=>array(15,0,630,774),7822=>array(-10,0,734,928),7823=>array(12,-216,634,760),7824=>array(45,0,680,927),7825=>array(45,0,534,798),7826=>array(45,-212,680,729),7827=>array(45,-212,534,547),7828=>array(45,-184,680,729),7829=>array(45,-184,534,547),7830=>array(84,-184,634,760),7831=>array(13,0,455,927),7832=>array(35,0,889,888),7833=>array(12,-216,634,888),7834=>array(43,-14,758,760),7835=>array(19,0,444,942),7836=>array(-18,0,444,760),7837=>array(19,0,444,760),7838=>array(92,-14,823,743),7839=>array(43,-14,645,768),7840=>array(5,-212,769,729),7841=>array(43,-212,596,560),7842=>array(5,0,769,1025),7843=>array(43,-14,596,843),7844=>array(5,0,769,1054),7845=>array(43,-14,652,873),7846=>array(5,0,769,1054),7847=>array(43,-14,597,874),7848=>array(5,0,769,1093),7849=>array(43,-14,672,912),7850=>array(5,0,769,1068),7851=>array(43,-14,596,887),7852=>array(5,-212,769,927),7853=>array(43,-212,596,800),7854=>array(5,0,769,1057),7855=>array(43,-14,596,891),7856=>array(5,0,769,1057),7857=>array(43,-14,596,894),7858=>array(5,0,769,1123),7859=>array(43,-14,596,959),7860=>array(5,0,769,1068),7861=>array(43,-14,596,905),7862=>array(5,-212,769,935),7863=>array(43,-212,596,780),7864=>array(92,-212,610,729),7865=>array(43,-212,630,560),7866=>array(92,0,610,1025),7867=>array(43,-14,630,843),7868=>array(92,0,610,928),7869=>array(43,-14,630,778),7870=>array(92,0,684,1054),7871=>array(43,-14,688,873),7872=>array(92,0,621,1054),7873=>array(43,-14,630,874),7874=>array(92,0,686,1093),7875=>array(43,-14,681,912),7876=>array(92,0,610,1068),7877=>array(43,-14,630,887),7878=>array(92,-212,610,927),7879=>array(43,-212,630,800),7880=>array(66,0,313,1025),7881=>array(52,0,300,842),7882=>array(92,-212,280,729),7883=>array(83,-212,259,760),7884=>array(50,-212,800,742),7885=>array(43,-212,644,560),7886=>array(50,-14,800,1025),7887=>array(43,-14,644,843),7888=>array(50,-14,800,1054),7889=>array(43,-14,679,873),7890=>array(50,-14,800,1054),7891=>array(43,-14,644,874),7892=>array(50,-14,800,1093),7893=>array(43,-14,685,912),7894=>array(50,-14,800,1068),7895=>array(43,-14,644,887),7896=>array(50,-212,800,927),7897=>array(43,-212,644,800),7898=>array(53,-14,854,927),7899=>array(46,-14,708,800),7900=>array(53,-14,854,927),7901=>array(46,-14,708,800),7902=>array(53,-14,854,1025),7903=>array(46,-14,708,843),7904=>array(53,-14,854,928),7905=>array(46,-14,708,778),7906=>array(53,-212,854,761),7907=>array(46,-212,708,609),7908=>array(92,-212,720,729),7909=>array(78,-212,628,547),7910=>array(92,-14,720,1025),7911=>array(78,-14,628,843),7912=>array(91,-14,833,927),7913=>array(75,-14,733,800),7914=>array(91,-14,833,927),7915=>array(75,-14,733,800),7916=>array(91,-14,833,1025),7917=>array(75,-14,733,843),7918=>array(91,-14,833,928),7919=>array(75,-14,733,778),7920=>array(91,-212,833,761),7921=>array(75,-212,733,609),7922=>array(-10,0,734,931),7923=>array(12,-216,634,803),7924=>array(-10,-212,734,729),7925=>array(12,-216,634,547),7926=>array(-10,0,734,1029),7927=>array(12,-216,634,843),7928=>array(-10,0,734,928),7929=>array(12,-216,634,778),7930=>array(92,0,925,729),7931=>array(9,0,635,760),7936=>array(48,-13,645,785),7937=>array(48,-13,645,785),7938=>array(48,-13,645,800),7939=>array(48,-13,645,800),7940=>array(48,-13,645,800),7941=>array(48,-13,645,800),7942=>array(48,-13,645,928),7943=>array(48,-13,645,928),7944=>array(5,0,769,785),7945=>array(5,0,769,785),7946=>array(2,0,1036,800),7947=>array(3,0,1039,800),7948=>array(1,0,930,800),7949=>array(2,0,958,800),7950=>array(4,0,831,928),7951=>array(3,0,854,928),7952=>array(54,-14,493,785),7953=>array(54,-14,493,785),7954=>array(54,-14,498,800),7955=>array(54,-14,493,800),7956=>array(54,-14,531,800),7957=>array(54,-14,516,800),7960=>array(3,0,718,785),7961=>array(4,0,721,785),7962=>array(2,0,1026,800),7963=>array(3,0,1023,800),7964=>array(1,0,950,800),7965=>array(2,0,979,800),7968=>array(84,-208,634,785),7969=>array(84,-208,634,785),7970=>array(84,-208,634,800),7971=>array(84,-208,634,800),7972=>array(84,-208,634,800),7973=>array(84,-208,634,800),7974=>array(84,-208,634,928),7975=>array(84,-208,634,928),7976=>array(3,0,854,785),7977=>array(4,0,859,785),7978=>array(2,0,1159,800),7979=>array(3,0,1158,800),7980=>array(1,0,1088,800),7981=>array(2,0,1114,800),7982=>array(4,0,962,928),7983=>array(3,0,971,928),7984=>array(78,-19,348,785),7985=>array(78,-19,348,785),7986=>array(-27,-19,407,800),7987=>array(-58,-19,376,800),7988=>array(31,-19,446,800),7989=>array(-6,-19,438,800),7990=>array(-2,-19,348,928),7991=>array(-5,-19,348,928),7992=>array(3,0,391,785),7993=>array(4,0,397,785),7994=>array(2,0,685,800),7995=>array(3,0,693,800),7996=>array(1,0,620,800),7997=>array(2,0,646,800),7998=>array(4,0,512,928),7999=>array(3,0,512,928),8000=>array(43,-14,644,785),8001=>array(43,-14,644,785),8002=>array(43,-14,644,800),8003=>array(43,-14,644,800),8004=>array(43,-14,644,800),8005=>array(43,-14,644,800),8008=>array(3,-14,841,785),8009=>array(4,-14,883,785),8010=>array(2,-14,1171,800),8011=>array(3,-14,1173,800),8012=>array(1,-14,1002,800),8013=>array(2,-14,1032,800),8016=>array(78,-10,629,785),8017=>array(78,-10,629,785),8018=>array(78,-10,629,800),8019=>array(78,-10,629,800),8020=>array(78,-10,629,800),8021=>array(78,-10,629,800),8022=>array(78,-10,629,928),8023=>array(78,-10,629,928),8025=>array(4,0,940,785),8027=>array(3,0,1194,800),8029=>array(2,0,1208,800),8031=>array(3,0,1059,928),8032=>array(43,-13,826,785),8033=>array(43,-13,826,785),8034=>array(43,-13,826,800),8035=>array(43,-13,826,800),8036=>array(43,-13,826,800),8037=>array(43,-13,826,800),8038=>array(43,-13,826,928),8039=>array(43,-13,826,928),8040=>array(3,0,881,785),8041=>array(4,0,931,785),8042=>array(2,0,1219,800),8043=>array(3,-3,1224,800),8044=>array(1,0,1048,800),8045=>array(2,0,1078,800),8046=>array(4,0,1000,928),8047=>array(3,0,1048,928),8048=>array(48,-13,645,800),8049=>array(48,-13,645,800),8050=>array(54,-14,493,800),8051=>array(54,-14,493,800),8052=>array(84,-208,634,800),8053=>array(84,-208,634,800),8054=>array(-26,-19,348,800),8055=>array(77,-19,353,800),8056=>array(43,-14,644,800),8057=>array(43,-14,644,800),8058=>array(78,-10,629,800),8059=>array(78,-10,629,800),8060=>array(43,-13,826,800),8061=>array(43,-13,826,800),8064=>array(48,-208,645,785),8065=>array(48,-208,645,785),8066=>array(48,-208,645,800),8067=>array(48,-208,645,800),8068=>array(48,-208,645,800),8069=>array(48,-208,645,800),8070=>array(48,-208,645,928),8071=>array(48,-208,645,928),8072=>array(5,-208,769,785),8073=>array(5,-208,769,785),8074=>array(2,-208,1036,800),8075=>array(3,-208,1039,800),8076=>array(1,-208,930,800),8077=>array(2,-208,958,800),8078=>array(4,-208,831,928),8079=>array(3,-208,854,928),8080=>array(84,-208,634,785),8081=>array(84,-208,634,785),8082=>array(84,-208,634,800),8083=>array(84,-208,634,800),8084=>array(84,-208,634,800),8085=>array(84,-208,634,800),8086=>array(84,-208,634,928),8087=>array(84,-208,634,928),8088=>array(3,-208,854,785),8089=>array(4,-208,859,785),8090=>array(2,-208,1159,800),8091=>array(3,-208,1158,800),8092=>array(1,-208,1088,800),8093=>array(2,-208,1114,800),8094=>array(4,-208,962,928),8095=>array(3,-208,971,928),8096=>array(43,-208,826,785),8097=>array(43,-208,826,785),8098=>array(43,-208,826,800),8099=>array(43,-208,826,800),8100=>array(43,-208,826,800),8101=>array(43,-208,826,800),8102=>array(43,-208,826,928),8103=>array(43,-208,826,928),8104=>array(3,-208,881,785),8105=>array(4,-208,931,785),8106=>array(2,-208,1219,800),8107=>array(3,-208,1224,800),8108=>array(1,-208,1048,800),8109=>array(2,-208,1078,800),8110=>array(4,-208,1000,928),8111=>array(3,-208,1048,928),8112=>array(48,-13,645,784),8113=>array(48,-13,645,760),8114=>array(48,-208,645,800),8115=>array(48,-208,645,559),8116=>array(48,-208,645,800),8118=>array(48,-13,645,778),8119=>array(48,-208,645,778),8120=>array(5,0,769,927),8121=>array(5,0,769,914),8122=>array(-1,0,872,800),8123=>array(26,0,792,800),8124=>array(5,-208,769,729),8125=>array(183,595,317,785),8126=>array(202,-208,333,-45),8127=>array(183,595,317,785),8128=>array(80,638,420,778),8129=>array(80,654,420,928),8130=>array(84,-208,634,800),8131=>array(84,-208,634,560),8132=>array(84,-208,634,800),8134=>array(84,-208,634,778),8135=>array(84,-208,634,778),8136=>array(-1,0,856,800),8137=>array(-24,0,771,800),8138=>array(-1,0,988,800),8139=>array(-18,0,915,800),8140=>array(92,-208,745,729),8141=>array(34,595,468,800),8142=>array(63,595,478,800),8143=>array(80,595,420,928),8144=>array(3,-19,348,784),8145=>array(20,-19,348,760),8146=>array(-36,-19,348,978),8147=>array(23,-19,372,978),8150=>array(4,-19,348,778),8151=>array(-6,-19,348,928),8152=>array(21,0,350,927),8153=>array(32,0,339,914),8154=>array(-1,0,529,800),8155=>array(-21,0,450,800),8157=>array(40,595,474,800),8158=>array(45,595,489,800),8159=>array(80,595,420,928),8160=>array(78,-10,629,784),8161=>array(78,-10,629,760),8162=>array(78,-10,629,978),8163=>array(78,-10,629,978),8164=>array(84,-208,671,785),8165=>array(84,-208,671,785),8166=>array(78,-10,629,778),8167=>array(78,-10,629,928),8168=>array(-10,0,734,927),8169=>array(-10,0,734,914),8170=>array(-1,0,1030,800),8171=>array(-27,0,992,800),8172=>array(4,0,797,785),8173=>array(46,654,404,978),8174=>array(96,654,445,978),8175=>array(46,616,322,800),8178=>array(43,-208,826,800),8179=>array(43,-208,826,547),8180=>array(43,-208,826,800),8182=>array(43,-13,826,778),8183=>array(43,-208,826,778),8184=>array(-1,-14,1015,800),8185=>array(-19,-14,836,800),8186=>array(-1,0,1057,800),8187=>array(-30,0,867,800),8188=>array(27,-208,823,742),8189=>array(178,616,454,800),8190=>array(183,595,317,785),8208=>array(54,217,361,359),8209=>array(54,217,361,359),8210=>array(54,211,642,337),8211=>array(54,211,446,337),8212=>array(54,211,946,337),8213=>array(0,211,1000,337),8214=>array(127,-236,399,764),8215=>array(0,-236,500,-9),8216=>array(103,418,318,729),8217=>array(63,418,278,729),8218=>array(72,-122,287,189),8219=>array(63,418,278,729),8220=>array(103,418,565,729),8221=>array(92,418,554,729),8222=>array(72,-122,534,189),8223=>array(92,418,554,729),8224=>array(26,-96,470,729),8225=>array(25,-96,470,729),8226=>array(144,196,495,547),8227=>array(144,157,534,586),8228=>array(79,0,255,189),8229=>array(79,0,588,189),8230=>array(79,0,921,189),8231=>array(86,253,262,442),8240=>array(32,-14,1417,742),8241=>array(32,-14,1864,742),8242=>array(20,547,240,729),8243=>array(20,547,423,729),8244=>array(20,547,606,729),8245=>array(20,547,240,729),8246=>array(20,547,425,729),8247=>array(20,547,606,729),8248=>array(101,-238,632,29),8249=>array(77,67,318,519),8250=>array(94,67,335,519),8251=>array(72,0,900,829),8252=>array(69,0,558,729),8253=>array(69,0,515,742),8254=>array(0,663,500,755),8255=>array(-31,-237,859,-79),8256=>array(-31,769,859,927),8257=>array(-52,-235,296,231),8258=>array(20,-37,1003,832),8259=>array(96,220,404,358),8260=>array(-199,-14,366,742),8261=>array(86,-132,389,760),8262=>array(68,-132,371,760),8263=>array(34,0,996,742),8264=>array(69,0,760,742),8265=>array(69,0,760,742),8266=>array(49,-125,464,546),8267=>array(93,-96,579,729),8268=>array(75,189,425,541),8269=>array(75,189,425,541),8270=>array(20,0,503,464),8271=>array(104,-142,329,547),8272=>array(-31,-237,859,927),8273=>array(53,-14,439,797),8274=>array(30,-93,529,729),8275=>array(49,212,951,415),8276=>array(-31,-240,859,-82),8277=>array(152,98,686,631),8278=>array(110,93,574,645),8279=>array(20,547,789,729),8280=>array(76,21,762,708),8281=>array(126,71,712,657),8282=>array(102,0,280,729),8283=>array(49,-170,822,898),8284=>array(55,0,783,729),8285=>array(102,0,278,683),8286=>array(102,0,278,683),8304=>array(29,319,398,742),8305=>array(53,326,164,751),8308=>array(27,326,397,734),8309=>array(47,319,384,734),8310=>array(38,319,394,742),8311=>array(41,326,378,734),8312=>array(38,319,389,742),8313=>array(32,319,388,742),8314=>array(67,326,461,677),8315=>array(67,469,461,534),8316=>array(67,407,461,596),8317=>array(54,252,237,751),8318=>array(50,252,234,751),8319=>array(54,326,406,640),8320=>array(29,-7,398,416),8321=>array(60,0,382,408),8322=>array(53,0,382,416),8323=>array(44,-7,384,416),8324=>array(27,0,397,408),8325=>array(47,-7,384,408),8326=>array(38,-7,394,416),8327=>array(41,0,378,408),8328=>array(38,-7,389,416),8329=>array(32,-7,388,416),8330=>array(67,0,461,351),8331=>array(67,143,461,208),8332=>array(67,81,461,270),8333=>array(54,-74,237,425),8334=>array(50,-74,234,425),8336=>array(53,-8,402,313),8337=>array(53,-8,423,313),8338=>array(53,-8,432,313),8339=>array(10,0,403,306),8340=>array(53,-8,423,313),8341=>array(54,0,406,425),8342=>array(53,0,431,425),8343=>array(54,0,166,425),8344=>array(53,0,607,313),8345=>array(54,0,406,313),8346=>array(53,-117,423,313),8347=>array(33,-8,351,313),8348=>array(53,0,332,393),8352=>array(38,0,892,729),8353=>array(50,-44,634,778),8354=>array(29,-14,667,742),8355=>array(75,0,663,729),8356=>array(61,0,613,742),8357=>array(83,-93,963,640),8358=>array(43,0,794,729),8359=>array(92,-14,1470,729),8360=>array(92,-14,1157,729),8361=>array(13,0,1088,729),8362=>array(39,-14,859,729),8363=>array(30,-182,692,760),8364=>array(-19,-14,629,742),8365=>array(29,0,695,729),8366=>array(12,0,684,729),8367=>array(92,-223,1247,742),8368=>array(14,-14,648,742),8369=>array(34,0,696,729),8370=>array(50,-81,643,809),8371=>array(5,0,691,729),8372=>array(43,-14,816,742),8373=>array(72,-147,629,760),8376=>array(12,0,684,729),8377=>array(50,0,647,729),8378=>array(5,0,745,729),8400=>array(-498,628,-26,760),8401=>array(-470,628,1,760),8406=>array(-470,560,-26,760),8407=>array(-470,560,-26,760),8411=>array(-501,654,-1,774),8412=>array(-595,654,99,774),8417=>array(-470,560,-26,760),8448=>array(20,-24,1083,752),8449=>array(20,-24,1137,752),8450=>array(50,-14,670,742),8451=>array(87,-14,1147,749),8452=>array(64,0,832,729),8453=>array(20,-24,1064,752),8454=>array(20,-24,1117,752),8455=>array(67,-14,616,742),8456=>array(64,-146,684,611),8457=>array(87,0,1002,749),8459=>array(36,-14,1063,746),8460=>array(6,-125,809,747),8461=>array(100,0,788,729),8462=>array(31,0,654,760),8463=>array(10,0,625,760),8464=>array(36,-14,533,742),8465=>array(52,-14,659,743),8466=>array(37,-14,787,742),8467=>array(-14,-14,401,742),8468=>array(9,-14,936,760),8469=>array(92,0,745,729),8470=>array(34,0,1154,729),8471=>array(138,0,862,725),8472=>array(54,-221,658,495),8473=>array(92,0,709,729),8474=>array(50,-146,800,742),8475=>array(31,-14,904,768),8476=>array(41,-14,803,743),8477=>array(98,0,793,729),8478=>array(37,0,859,729),8479=>array(81,-112,694,887),8480=>array(127,444,792,731),8481=>array(3,0,1249,547),8482=>array(144,447,790,729),8483=>array(11,-113,729,885),8484=>array(45,0,709,729),8485=>array(26,-230,540,777),8486=>array(27,0,823,742),8487=>array(27,-14,823,728),8488=>array(-5,-159,670,729),8489=>array(1,0,271,566),8490=>array(92,0,805,729),8491=>array(5,0,769,928),8492=>array(41,-1,853,772),8493=>array(63,-19,767,742),8494=>array(61,-12,793,647),8495=>array(41,-14,591,533),8496=>array(72,-14,668,742),8497=>array(37,-14,860,773),8498=>array(92,0,599,729),8499=>array(38,-18,1156,751),8500=>array(29,-12,436,420),8501=>array(50,-14,761,742),8502=>array(19,-14,687,742),8503=>array(31,-35,439,742),8504=>array(63,-41,633,742),8505=>array(34,0,355,760),8506=>array(44,-27,932,723),8507=>array(69,0,1352,547),8508=>array(34,-14,765,547),8509=>array(-40,-208,700,561),8510=>array(92,0,627,729),8511=>array(92,0,771,729),8512=>array(12,-192,820,719),8513=>array(25,-14,723,742),8514=>array(9,0,527,729),8515=>array(43,0,561,729),8516=>array(0,0,744,729),8517=>array(21,0,786,729),8518=>array(34,-14,752,760),8519=>array(33,-14,635,560),8520=>array(15,0,353,760),8521=>array(-143,-216,354,760),8523=>array(41,-14,811,742),8526=>array(55,0,470,547),8528=>array(49,-14,983,742),8529=>array(49,-14,993,742),8530=>array(49,-14,1441,742),8531=>array(49,-14,989,742),8532=>array(53,-14,989,742),8533=>array(49,-14,989,742),8534=>array(53,-14,989,742),8535=>array(44,-14,989,742),8536=>array(27,-14,989,742),8537=>array(49,-14,999,742),8538=>array(47,-14,999,742),8539=>array(49,-14,994,742),8540=>array(44,-14,994,742),8541=>array(47,-14,994,742),8542=>array(41,-14,994,742),8543=>array(49,-14,814,742),8544=>array(92,0,280,729),8545=>array(92,0,566,729),8546=>array(92,0,853,729),8547=>array(92,0,1094,729),8548=>array(5,0,769,729),8549=>array(5,0,1007,729),8550=>array(5,0,1293,729),8551=>array(5,0,1580,729),8552=>array(92,0,1101,729),8553=>array(19,0,751,729),8554=>array(19,0,1028,729),8555=>array(19,0,1314,729),8556=>array(92,0,610,729),8557=>array(50,-14,670,742),8558=>array(92,0,778,729),8559=>array(92,0,903,729),8560=>array(84,0,259,760),8561=>array(84,0,523,760),8562=>array(84,0,788,760),8563=>array(84,0,946,760),8564=>array(15,0,637,547),8565=>array(15,0,878,760),8566=>array(15,0,1143,760),8567=>array(15,0,1407,760),8568=>array(84,0,954,760),8569=>array(15,0,630,547),8570=>array(15,0,885,760),8571=>array(15,0,1149,760),8572=>array(84,0,259,760),8573=>array(43,-14,526,560),8574=>array(45,-14,632,760),8575=>array(83,0,963,560),8576=>array(52,0,1236,729),8577=>array(92,0,778,729),8578=>array(52,0,1236,729),8579=>array(50,-14,670,742),8580=>array(43,-14,526,560),8581=>array(50,-208,670,742),8585=>array(29,-14,989,742),8592=>array(49,87,781,540),8593=>array(193,0,646,732),8594=>array(57,87,789,540),8595=>array(193,-3,646,729),8596=>array(49,87,789,540),8597=>array(193,-3,646,732),8598=>array(136,66,720,650),8599=>array(136,66,720,650),8600=>array(136,66,720,650),8601=>array(136,66,720,650),8602=>array(49,87,781,540),8603=>array(57,87,789,540),8604=>array(13,84,833,431),8605=>array(5,84,825,431),8606=>array(49,87,781,540),8607=>array(189,0,641,732),8608=>array(57,87,789,540),8609=>array(194,-3,646,729),8610=>array(49,87,793,540),8611=>array(45,87,789,540),8612=>array(49,87,781,540),8613=>array(193,0,646,732),8614=>array(57,87,789,540),8615=>array(193,0,646,732),8616=>array(193,0,646,732),8617=>array(49,87,781,565),8618=>array(57,87,789,565),8619=>array(49,87,781,565),8620=>array(57,87,789,565),8621=>array(49,87,789,540),8622=>array(49,86,789,541),8623=>array(123,-4,714,733),8624=>array(169,0,646,755),8625=>array(192,0,669,755),8626=>array(169,-26,646,729),8627=>array(192,-26,669,729),8628=>array(233,-3,772,621),8629=>array(49,87,673,626),8630=>array(11,198,816,685),8631=>array(22,198,828,685),8632=>array(118,13,788,729),8633=>array(49,-108,789,735),8634=>array(86,45,767,691),8635=>array(71,45,751,691),8636=>array(49,255,781,540),8637=>array(49,87,781,372),8638=>array(361,0,646,732),8639=>array(193,0,478,732),8640=>array(57,255,789,540),8641=>array(57,87,789,372),8642=>array(361,0,646,732),8643=>array(193,0,478,732),8644=>array(49,-59,789,686),8645=>array(47,-3,792,732),8646=>array(49,-59,789,686),8647=>array(49,-59,781,686),8648=>array(46,0,792,732),8649=>array(57,-59,789,686),8650=>array(46,-3,792,729),8651=>array(49,-5,789,632),8652=>array(49,-5,789,632),8653=>array(49,87,781,540),8654=>array(49,87,789,540),8655=>array(57,87,789,540),8656=>array(49,87,781,540),8657=>array(193,0,645,732),8658=>array(57,87,789,540),8659=>array(193,-3,645,729),8660=>array(49,87,789,540),8661=>array(193,-8,645,732),8662=>array(132,-26,755,596),8663=>array(88,-26,711,597),8664=>array(88,16,711,639),8665=>array(132,16,755,639),8666=>array(49,87,781,540),8667=>array(57,87,789,540),8668=>array(44,87,776,540),8669=>array(57,87,789,540),8670=>array(193,0,646,732),8671=>array(193,-3,646,729),8672=>array(49,87,781,540),8673=>array(193,0,646,732),8674=>array(57,87,789,540),8675=>array(193,-3,646,729),8676=>array(49,87,781,540),8677=>array(57,87,789,540),8678=>array(27,46,781,581),8679=>array(151,0,687,754),8680=>array(35,46,789,581),8681=>array(151,-25,687,729),8682=>array(151,0,687,754),8683=>array(151,0,687,754),8684=>array(151,0,687,754),8685=>array(151,0,687,754),8686=>array(151,0,687,754),8687=>array(151,0,687,754),8688=>array(35,46,789,581),8689=>array(60,0,788,729),8690=>array(60,0,788,729),8691=>array(151,-25,687,754),8692=>array(57,87,789,540),8693=>array(47,-3,792,732),8694=>array(57,-223,789,850),8695=>array(49,87,781,540),8696=>array(57,87,789,540),8697=>array(49,87,789,540),8698=>array(49,87,781,540),8699=>array(57,87,789,540),8700=>array(49,87,789,540),8701=>array(27,96,781,531),8702=>array(57,96,811,531),8703=>array(27,96,811,531),8704=>array(5,0,769,729),8705=>array(48,-14,629,742),8706=>array(29,-14,515,674),8707=>array(92,0,610,729),8708=>array(92,-46,610,775),8709=>array(47,-15,810,715),8710=>array(0,0,697,719),8711=>array(0,0,697,719),8712=>array(73,-2,824,730),8713=>array(73,-46,824,775),8714=>array(106,58,644,568),8715=>array(73,-2,824,730),8716=>array(73,-46,824,775),8717=>array(106,58,644,568),8718=>array(98,0,539,553),8719=>array(73,-192,712,719),8720=>array(73,-193,712,718),8721=>array(20,-192,697,719),8722=>array(106,256,732,371),8723=>array(106,0,732,627),8724=>array(49,0,647,729),8725=>array(0,-93,365,729),8726=>array(165,-49,530,772),8727=>array(118,0,720,626),8728=>array(150,151,475,477),8729=>array(102,253,278,442),8730=>array(37,-20,669,837),8731=>array(37,-20,669,933),8732=>array(36,-20,669,924),8733=>array(92,89,617,505),8734=>array(92,89,741,505),8735=>array(106,67,732,693),8736=>array(77,0,820,729),8737=>array(77,-44,820,729),8738=>array(116,-0,732,726),8739=>array(207,-207,322,773),8740=>array(48,-207,482,773),8741=>array(112,-207,417,773),8742=>array(48,-207,482,773),8743=>array(151,0,661,579),8744=>array(151,0,661,579),8745=>array(151,0,661,579),8746=>array(151,0,661,579),8747=>array(15,-227,548,754),8748=>array(15,-227,914,754),8749=>array(15,-227,1280,754),8750=>array(14,-227,548,754),8751=>array(38,-227,938,754),8752=>array(23,-227,1290,754),8753=>array(15,-227,616,754),8754=>array(14,-227,600,754),8755=>array(14,-227,588,754),8756=>array(60,78,637,647),8757=>array(60,78,637,647),8758=>array(59,79,235,647),8759=>array(60,78,637,647),8760=>array(106,256,732,631),8761=>array(106,45,800,584),8762=>array(106,-4,732,631),8763=>array(106,-34,732,660),8764=>array(106,212,732,415),8765=>array(106,212,732,415),8766=>array(65,131,772,497),8767=>array(106,42,732,584),8768=>array(85,0,289,626),8769=>array(106,76,732,551),8770=>array(106,110,732,482),8771=>array(106,144,732,517),8772=>array(106,0,732,637),8773=>array(106,37,732,628),8774=>array(106,-31,732,628),8775=>array(106,-86,732,726),8776=>array(106,110,732,517),8777=>array(106,8,732,614),8778=>array(106,37,732,628),8779=>array(106,-13,732,628),8780=>array(106,37,732,628),8781=>array(105,105,732,585),8782=>array(106,26,732,656),8783=>array(106,172,732,656),8784=>array(106,144,732,744),8785=>array(106,-117,732,743),8786=>array(105,-92,732,719),8787=>array(104,-92,731,719),8788=>array(98,102,965,520),8789=>array(96,102,966,520),8790=>array(106,144,732,482),8791=>array(106,144,732,839),8792=>array(106,144,732,704),8793=>array(106,144,732,840),8794=>array(106,144,732,840),8795=>array(106,144,732,959),8796=>array(106,144,732,952),8797=>array(106,144,732,762),8798=>array(106,144,732,786),8799=>array(106,144,732,903),8800=>array(106,-5,732,631),8801=>array(106,38,732,588),8802=>array(106,-69,732,695),8803=>array(106,-74,732,700),8804=>array(106,0,732,582),8805=>array(106,0,732,582),8806=>array(106,-106,732,617),8807=>array(106,-106,732,617),8808=>array(106,-185,732,617),8809=>array(106,-185,732,617),8810=>array(72,-34,974,660),8811=>array(72,-34,974,660),8812=>array(86,-132,414,759),8813=>array(105,-10,732,700),8814=>array(106,-4,732,690),8815=>array(106,-63,732,631),8816=>array(106,-112,732,645),8817=>array(106,-112,732,645),8818=>array(106,-84,732,582),8819=>array(106,-84,732,582),8820=>array(106,-112,732,645),8821=>array(106,-112,732,645),8822=>array(102,-119,732,678),8823=>array(102,-119,732,678),8824=>array(102,-221,732,779),8825=>array(102,-221,732,779),8826=>array(106,-55,732,681),8827=>array(106,-55,732,681),8828=>array(106,-177,732,684),8829=>array(106,-177,732,684),8830=>array(106,-132,732,684),8831=>array(106,-132,732,684),8832=>array(106,-89,732,781),8833=>array(106,-89,732,781),8834=>array(99,67,739,559),8835=>array(99,65,739,559),8836=>array(99,-96,739,726),8837=>array(99,-100,739,722),8838=>array(99,0,739,636),8839=>array(99,0,739,635),8840=>array(99,-124,739,759),8841=>array(99,-124,739,759),8842=>array(99,-97,739,636),8843=>array(99,-97,739,635),8844=>array(151,0,661,579),8845=>array(151,0,661,579),8846=>array(151,0,661,579),8847=>array(106,0,732,584),8848=>array(106,0,732,584),8849=>array(106,-115,732,667),8850=>array(106,-115,732,667),8851=>array(106,0,690,626),8852=>array(106,0,690,626),8853=>array(91,-14,747,643),8854=>array(91,-14,747,643),8855=>array(91,-14,747,643),8856=>array(91,-13,747,642),8857=>array(91,-14,747,643),8858=>array(91,-14,747,643),8859=>array(91,-14,747,643),8860=>array(91,-14,747,643),8861=>array(91,-14,747,643),8862=>array(77,-29,761,657),8863=>array(77,-29,761,657),8864=>array(77,-29,761,657),8865=>array(77,-29,761,657),8866=>array(85,0,829,705),8867=>array(85,0,829,705),8868=>array(85,0,829,705),8869=>array(85,0,829,705),8870=>array(85,0,457,705),8871=>array(85,0,457,705),8872=>array(85,0,829,705),8873=>array(85,0,829,705),8874=>array(85,0,829,705),8875=>array(85,0,829,705),8876=>array(85,-100,829,805),8877=>array(85,-100,829,805),8878=>array(85,-100,829,805),8879=>array(85,-100,829,805),8880=>array(106,-54,724,681),8881=>array(114,-54,732,681),8882=>array(106,-1,732,628),8883=>array(106,-1,732,628),8884=>array(106,-80,732,706),8885=>array(106,-80,732,706),8886=>array(60,151,940,477),8887=>array(60,151,940,477),8888=>array(60,151,778,477),8889=>array(43,-63,794,689),8890=>array(63,0,480,705),8891=>array(103,0,709,759),8892=>array(103,0,709,759),8893=>array(103,0,709,759),8894=>array(106,0,732,626),8895=>array(106,0,732,626),8896=>array(0,-192,843,719),8897=>array(0,-192,843,719),8898=>array(48,-192,794,719),8899=>array(48,-192,794,719),8900=>array(3,-233,491,807),8901=>array(102,253,278,442),8902=>array(83,112,543,549),8903=>array(106,-56,732,683),8904=>array(106,-48,894,674),8905=>array(106,-48,894,675),8906=>array(106,-48,894,675),8907=>array(106,-48,894,675),8908=>array(106,-48,894,675),8909=>array(106,144,732,517),8910=>array(49,0,763,579),8911=>array(49,0,763,579),8912=>array(93,-22,732,649),8913=>array(106,-22,745,649),8914=>array(83,0,755,639),8915=>array(83,-14,755,625),8916=>array(186,0,652,729),8917=>array(106,-100,732,729),8918=>array(106,30,732,597),8919=>array(106,30,732,597),8920=>array(72,-34,1350,660),8921=>array(72,-34,1350,660),8922=>array(106,-211,732,837),8923=>array(106,-211,732,837),8924=>array(106,0,732,582),8925=>array(106,0,732,582),8926=>array(106,-177,732,684),8927=>array(106,-177,732,684),8928=>array(106,-197,732,808),8929=>array(106,-263,732,742),8930=>array(106,-191,732,817),8931=>array(106,-191,732,817),8932=>array(106,-146,732,636),8933=>array(106,-146,732,636),8934=>array(106,-168,732,582),8935=>array(106,-168,732,582),8936=>array(106,-216,732,684),8937=>array(106,-216,732,684),8938=>array(106,-138,732,808),8939=>array(106,-138,732,808),8940=>array(106,-224,732,894),8941=>array(106,-224,732,894),8942=>array(412,-40,588,735),8943=>array(79,253,921,442),8944=>array(79,-40,921,735),8945=>array(79,-40,921,735),8946=>array(72,-2,1085,730),8947=>array(73,-2,824,730),8948=>array(106,58,644,568),8949=>array(73,-2,824,984),8950=>array(73,-2,824,919),8951=>array(106,58,644,741),8952=>array(73,-207,824,730),8953=>array(73,-2,824,730),8954=>array(72,-2,1085,730),8955=>array(73,-2,824,730),8956=>array(106,58,644,568),8957=>array(72,-2,824,919),8958=>array(106,58,644,741),8959=>array(106,0,791,732),8960=>array(31,-22,572,519),8961=>array(56,152,540,453),8962=>array(64,0,651,596),8963=>array(193,470,646,732),8964=>array(193,0,646,263),8965=>array(193,-12,646,423),8966=>array(193,-12,646,552),8967=>array(139,-39,349,798),8968=>array(86,-132,389,760),8969=>array(68,-132,371,760),8970=>array(86,-132,389,760),8971=>array(68,-132,371,760),8972=>array(352,-77,759,331),8973=>array(49,-77,457,331),8974=>array(352,226,759,634),8975=>array(49,226,457,634),8976=>array(106,140,732,444),8977=>array(3,113,536,646),8984=>array(84,0,843,759),8985=>array(106,140,732,444),8988=>array(86,425,403,760),8989=>array(65,425,383,760),8990=>array(86,-126,403,208),8991=>array(65,-126,383,208),8992=>array(235,-250,586,926),8993=>array(22,-240,373,940),8996=>array(76,215,1076,575),8997=>array(76,0,1076,575),8998=>array(76,0,1414,760),8999=>array(76,0,1076,760),9000=>array(59,0,1385,729),9003=>array(0,0,1338,760),9004=>array(73,-91,800,748),9075=>array(78,-19,348,547),9076=>array(84,-208,671,562),9077=>array(43,-13,826,547),9082=>array(48,-13,645,559),9085=>array(13,-228,850,99),9095=>array(76,0,1100,743),9108=>array(17,0,856,727),9115=>array(63,-252,438,928),9116=>array(63,-252,205,940),9117=>array(63,-240,438,940),9118=>array(63,-252,438,928),9119=>array(295,-252,438,940),9120=>array(63,-240,438,940),9121=>array(63,-252,438,928),9122=>array(63,-252,205,940),9123=>array(63,-240,438,940),9124=>array(63,-252,438,928),9125=>array(295,-252,438,940),9126=>array(63,-240,438,940),9127=>array(306,-261,668,928),9128=>array(82,-247,444,934),9129=>array(306,-240,668,934),9130=>array(306,-256,444,934),9131=>array(82,-261,444,928),9132=>array(306,-247,668,934),9133=>array(82,-240,444,934),9134=>array(235,-250,373,940),9166=>array(27,46,781,729),9167=>array(91,0,854,596),9187=>array(73,-91,800,748),9189=>array(3,75,766,444),9192=>array(39,-129,665,294),9250=>array(-81,-14,671,760),9251=>array(64,-228,651,99),9312=>array(59,-15,788,715),9313=>array(59,-15,788,715),9314=>array(59,-15,788,715),9315=>array(59,-15,788,715),9316=>array(59,-15,788,715),9317=>array(59,-15,788,715),9318=>array(59,-15,788,715),9319=>array(59,-15,788,715),9320=>array(59,-15,788,715),9321=>array(59,-15,788,715),9600=>array(-10,260,779,770),9601=>array(-10,-250,779,-123),9602=>array(-10,-250,779,-5),9603=>array(-10,-250,779,132),9604=>array(-10,-250,779,260),9605=>array(-10,-250,779,387),9606=>array(-10,-250,779,515),9607=>array(-10,-250,779,642),9608=>array(-10,-250,779,770),9609=>array(-10,-250,680,770),9610=>array(-10,-250,582,770),9611=>array(-10,-250,483,770),9612=>array(-10,-250,384,770),9613=>array(-10,-250,286,770),9614=>array(-10,-250,187,770),9615=>array(-10,-250,88,770),9616=>array(384,-250,778,770),9617=>array(-10,-250,680,770),9618=>array(-10,-250,779,770),9619=>array(-10,-250,779,770),9620=>array(-10,642,779,770),9621=>array(680,-250,778,770),9622=>array(-10,-250,385,260),9623=>array(384,-250,779,260),9624=>array(-10,260,385,770),9625=>array(-10,-250,779,770),9626=>array(-10,-250,779,770),9627=>array(-10,-250,779,770),9628=>array(-10,-250,779,770),9629=>array(384,260,779,770),9630=>array(-10,-250,779,770),9631=>array(-10,-250,779,770),9632=>array(91,-124,854,643),9633=>array(91,-124,854,643),9634=>array(91,-124,854,643),9635=>array(91,-124,854,643),9636=>array(91,-124,854,643),9637=>array(91,-124,854,643),9638=>array(91,-124,854,643),9639=>array(91,-124,854,643),9640=>array(91,-124,854,643),9641=>array(91,-124,854,643),9642=>array(91,11,587,509),9643=>array(91,11,587,509),9644=>array(91,75,854,444),9645=>array(91,75,854,444),9646=>array(91,-122,459,642),9647=>array(91,-122,459,642),9648=>array(3,75,766,444),9649=>array(3,75,766,444),9650=>array(3,-124,766,643),9651=>array(3,-124,766,643),9652=>array(3,11,499,509),9653=>array(3,11,499,509),9654=>array(3,-124,766,643),9655=>array(3,-124,766,643),9656=>array(3,11,499,509),9657=>array(3,11,499,509),9658=>array(3,11,766,509),9659=>array(3,11,766,509),9660=>array(3,-124,766,643),9661=>array(3,-124,766,643),9662=>array(3,11,499,509),9663=>array(3,11,499,509),9664=>array(3,-124,766,643),9665=>array(3,-124,766,643),9666=>array(3,11,499,509),9667=>array(3,11,499,509),9668=>array(3,11,766,509),9669=>array(3,11,766,509),9670=>array(3,-124,766,643),9671=>array(3,-124,766,643),9672=>array(3,-124,766,643),9673=>array(55,-125,818,645),9674=>array(3,-233,491,807),9675=>array(55,-125,818,645),9676=>array(56,-125,817,644),9677=>array(55,-125,818,645),9678=>array(55,-125,818,645),9679=>array(55,-123,818,641),9680=>array(55,-123,818,641),9681=>array(55,-123,818,641),9682=>array(55,-123,818,641),9683=>array(55,-123,818,641),9684=>array(55,-123,818,641),9685=>array(55,-123,818,641),9686=>array(55,-125,436,645),9687=>array(91,-125,472,645),9688=>array(91,-10,750,770),9689=>array(91,-250,879,770),9690=>array(91,260,879,770),9691=>array(91,-250,879,260),9692=>array(3,260,385,645),9693=>array(3,260,384,645),9694=>array(3,-125,384,260),9695=>array(3,-125,385,260),9696=>array(3,260,766,645),9697=>array(3,-125,766,260),9698=>array(3,-124,766,643),9699=>array(3,-124,766,643),9700=>array(3,-124,766,643),9701=>array(3,-124,766,643),9702=>array(144,196,495,547),9703=>array(91,-124,854,643),9704=>array(91,-124,854,643),9705=>array(91,-124,854,643),9706=>array(91,-124,854,643),9707=>array(91,-124,854,643),9708=>array(3,-124,766,643),9709=>array(3,-124,766,643),9710=>array(3,-124,766,643),9711=>array(55,-250,1064,770),9712=>array(91,-124,854,643),9713=>array(91,-124,854,643),9714=>array(91,-124,854,643),9715=>array(91,-124,854,643),9716=>array(55,-123,818,641),9717=>array(55,-123,818,641),9718=>array(55,-123,818,641),9719=>array(55,-123,818,641),9720=>array(3,-124,766,643),9721=>array(3,-124,766,643),9722=>array(3,-124,766,643),9723=>array(91,-66,739,585),9724=>array(91,-66,739,585),9725=>array(91,-17,642,537),9726=>array(91,-17,642,537),9727=>array(3,-124,766,643),9728=>array(83,0,813,729),9729=>array(51,-2,949,360),9730=>array(49,0,848,729),9731=>array(83,-0,813,927),9732=>array(64,0,833,880),9733=>array(65,-4,832,723),9734=>array(65,-4,832,723),9735=>array(83,2,490,729),9736=>array(83,0,813,731),9737=>array(83,0,813,730),9738=>array(61,0,828,727),9739=>array(61,0,828,723),9740=>array(61,-1,610,722),9741=>array(61,0,952,723),9742=>array(68,0,1177,729),9743=>array(71,0,1180,729),9744=>array(90,0,807,729),9745=>array(89,0,808,729),9746=>array(89,0,808,729),9747=>array(75,78,457,656),9748=>array(49,0,870,933),9749=>array(74,0,822,731),9750=>array(84,0,813,731),9751=>array(84,0,813,727),9752=>array(78,0,819,729),9753=>array(83,140,813,574),9754=>array(84,113,813,569),9755=>array(84,113,813,569),9756=>array(87,104,810,569),9757=>array(72,0,537,724),9758=>array(86,103,810,569),9759=>array(72,-3,537,720),9760=>array(61,0,835,730),9761=>array(84,0,813,730),9762=>array(83,0,813,730),9763=>array(49,0,848,730),9764=>array(49,-2,620,727),9765=>array(83,0,663,731),9766=>array(83,-1,566,731),9767=>array(83,0,701,911),9768=>array(83,0,462,730),9769=>array(83,-1,813,729),9770=>array(87,0,810,730),9771=>array(83,0,814,731),9772=>array(83,0,627,731),9773=>array(83,0,813,730),9774=>array(83,0,813,730),9775=>array(83,0,813,730),9776=>array(83,0,813,729),9777=>array(83,0,814,729),9778=>array(83,0,813,729),9779=>array(83,0,813,729),9780=>array(83,0,813,729),9781=>array(83,0,813,729),9782=>array(83,0,813,729),9783=>array(83,0,813,729),9784=>array(80,3,817,721),9785=>array(83,-73,959,804),9786=>array(83,-73,959,804),9787=>array(83,-73,959,804),9788=>array(83,0,813,730),9789=>array(358,0,814,730),9790=>array(83,0,539,730),9791=>array(85,-102,528,732),9792=>array(85,-125,647,731),9793=>array(85,-14,647,843),9794=>array(79,-14,831,720),9795=>array(166,0,730,730),9796=>array(219,0,677,730),9797=>array(121,0,774,730),9798=>array(127,0,769,730),9799=>array(240,0,656,730),9800=>array(45,0,851,731),9801=>array(89,0,807,730),9802=>array(94,0,802,731),9803=>array(113,31,784,679),9804=>array(140,0,756,730),9805=>array(53,-180,843,730),9806=>array(83,52,813,653),9807=>array(34,-96,863,730),9808=>array(83,-0,813,730),9809=>array(94,0,802,730),9810=>array(86,153,810,579),9811=>array(157,0,739,730),9812=>array(98,0,798,730),9813=>array(110,0,786,730),9814=>array(167,-1,729,729),9815=>array(214,0,683,730),9816=>array(165,0,732,730),9817=>array(148,-0,748,730),9818=>array(98,0,798,730),9819=>array(110,0,786,730),9820=>array(167,-1,729,729),9821=>array(214,0,683,730),9822=>array(162,0,734,730),9823=>array(148,-0,748,730),9824=>array(158,0,738,729),9825=>array(90,0,806,727),9826=>array(168,0,728,729),9827=>array(111,0,785,729),9828=>array(157,0,739,729),9829=>array(89,0,808,729),9830=>array(168,0,728,729),9831=>array(111,0,785,732),9832=>array(105,-1,791,729),9833=>array(84,-5,339,729),9834=>array(84,-5,554,729),9835=>array(184,-102,712,729),9836=>array(92,-5,804,729),9837=>array(88,-3,392,731),9838=>array(84,0,273,731),9839=>array(84,0,400,731),9840=>array(84,0,664,731),9841=>array(64,0,701,731),9842=>array(84,0,813,709),9843=>array(76,16,820,731),9844=>array(76,16,820,731),9845=>array(76,16,820,731),9846=>array(76,16,820,731),9847=>array(76,16,820,731),9848=>array(76,16,820,731),9849=>array(76,16,820,731),9850=>array(76,16,820,731),9851=>array(84,0,812,704),9852=>array(83,0,814,731),9853=>array(83,0,814,731),9854=>array(83,0,814,731),9855=>array(149,1,747,731),9856=>array(73,0,797,725),9857=>array(73,0,797,725),9858=>array(73,0,797,725),9859=>array(73,0,797,725),9860=>array(73,0,797,725),9861=>array(73,0,797,725),9862=>array(83,0,813,731),9863=>array(83,0,813,731),9864=>array(83,0,813,731),9865=>array(83,0,813,731),9866=>array(83,0,813,98),9867=>array(83,0,813,98),9868=>array(83,0,813,413),9869=>array(83,0,813,413),9870=>array(83,0,813,413),9871=>array(83,0,813,413),9872=>array(168,3,728,731),9873=>array(168,3,728,731),9874=>array(52,0,844,731),9875=>array(97,-10,799,732),9876=>array(131,0,765,729),9877=>array(61,-10,479,732),9878=>array(59,-10,837,732),9879=>array(61,0,835,732),9880=>array(145,0,750,732),9881=>array(95,-17,802,727),9882=>array(128,-9,768,733),9883=>array(127,0,769,728),9884=>array(127,0,769,729),9888=>array(49,0,848,729),9889=>array(83,2,619,730),9890=>array(85,-125,919,731),9891=>array(79,-206,1023,720),9892=>array(85,-186,1109,856),9893=>array(85,-125,837,917),9894=>array(131,-14,727,869),9895=>array(101,-170,741,884),9896=>array(188,-14,650,869),9897=>array(4,133,829,596),9898=>array(188,133,650,597),9899=>array(188,133,650,597),9900=>array(249,194,589,536),9901=>array(175,194,663,536),9902=>array(41,169,797,560),9903=>array(5,194,833,536),9904=>array(103,237,757,540),9905=>array(211,42,626,698),9906=>array(85,-125,647,731),9907=>array(168,-125,646,731),9908=>array(86,-125,646,731),9909=>array(86,-125,646,731),9910=>array(59,-118,791,643),9911=>array(194,-104,595,710),9912=>array(158,-125,543,731),9920=>array(42,4,796,553),9921=>array(42,4,796,724),9922=>array(42,4,796,553),9923=>array(42,4,796,724),9954=>array(85,-14,647,843),9985=>array(11,190,803,635),9986=>array(42,141,784,588),9987=>array(11,94,803,539),9988=>array(36,119,824,613),9990=>array(42,-14,796,742),9991=>array(42,-14,796,742),9992=>array(59,21,782,708),9993=>array(64,107,773,622),9996=>array(212,0,561,742),9997=>array(21,83,802,678),9998=>array(89,75,724,710),9999=>array(26,198,819,530),10000=>array(89,75,724,710),10001=>array(43,185,757,544),10002=>array(67,209,757,520),10003=>array(150,97,667,630),10004=>array(116,87,721,631),10005=>array(126,72,711,657),10006=>array(85,31,752,698),10007=>array(118,-9,701,732),10008=>array(123,0,754,739),10009=>array(55,0,783,729),10010=>array(55,0,783,729),10011=>array(55,0,783,729),10012=>array(55,0,783,729),10013=>array(165,0,673,729),10014=>array(131,0,678,729),10015=>array(155,0,683,729),10016=>array(55,0,783,729),10017=>array(91,-13,747,744),10018=>array(41,-14,797,742),10019=>array(42,-12,796,742),10020=>array(41,-14,797,742),10021=>array(41,-13,797,743),10022=>array(42,-14,796,745),10023=>array(42,-14,796,745),10025=>array(23,-9,814,743),10026=>array(42,-14,796,742),10027=>array(23,-9,814,743),10028=>array(23,-9,814,743),10029=>array(23,-9,814,743),10030=>array(23,-9,814,743),10031=>array(23,-9,814,743),10032=>array(24,12,815,714),10033=>array(64,0,773,729),10034=>array(74,0,764,729),10035=>array(55,0,783,729),10036=>array(31,-14,787,742),10037=>array(41,-14,797,742),10038=>array(91,-14,747,742),10039=>array(41,-14,797,742),10040=>array(41,-14,797,742),10041=>array(41,-14,797,742),10042=>array(55,0,783,729),10043=>array(82,-14,756,742),10044=>array(82,-14,756,742),10045=>array(84,-14,753,742),10046=>array(79,-14,759,742),10047=>array(54,0,784,709),10048=>array(54,0,784,709),10049=>array(41,-14,797,742),10050=>array(42,-14,796,742),10051=>array(79,-14,759,742),10052=>array(89,0,749,729),10053=>array(76,0,762,729),10054=>array(63,2,773,729),10055=>array(79,-13,759,742),10056=>array(47,-13,791,730),10057=>array(47,-13,791,730),10058=>array(41,-13,797,743),10059=>array(41,-13,797,743),10061=>array(50,-10,847,738),10063=>array(60,-49,837,729),10064=>array(60,0,837,777),10065=>array(60,-49,837,729),10066=>array(60,0,837,777),10070=>array(83,-2,813,728),10072=>array(377,-240,460,760),10073=>array(336,-240,502,760),10074=>array(253,-240,585,760),10075=>array(85,395,288,729),10076=>array(59,395,262,729),10077=>array(85,395,528,729),10078=>array(59,395,502,729),10081=>array(155,-93,772,851),10082=>array(202,-17,636,742),10083=>array(163,-17,675,742),10084=>array(54,83,784,645),10085=>array(168,-1,729,729),10086=>array(62,21,724,702),10087=>array(78,169,759,564),10088=>array(196,-139,648,769),10089=>array(196,-139,648,769),10090=>array(264,-132,574,758),10091=>array(264,-132,574,758),10092=>array(215,-240,607,760),10093=>array(232,-240,623,760),10094=>array(142,-240,685,760),10095=>array(153,-240,696,760),10096=>array(167,-240,656,760),10097=>array(183,-240,672,760),10098=>array(346,-241,535,760),10099=>array(303,-241,492,760),10100=>array(175,-163,634,760),10101=>array(204,-163,663,760),10102=>array(59,-15,788,715),10103=>array(59,-15,788,715),10104=>array(59,-15,788,715),10105=>array(59,-15,788,715),10106=>array(59,-15,788,715),10107=>array(59,-15,788,715),10108=>array(59,-15,788,715),10109=>array(59,-15,788,715),10110=>array(59,-15,788,715),10111=>array(59,-15,788,715),10112=>array(4,-52,833,780),10113=>array(4,-52,833,780),10114=>array(4,-52,833,780),10115=>array(4,-52,833,780),10116=>array(4,-52,833,780),10117=>array(4,-52,833,780),10118=>array(4,-52,833,780),10119=>array(4,-52,833,780),10120=>array(4,-52,833,780),10121=>array(4,-52,833,780),10122=>array(4,-52,833,780),10123=>array(4,-52,833,780),10124=>array(4,-52,833,780),10125=>array(4,-52,833,780),10126=>array(4,-52,833,780),10127=>array(4,-52,833,780),10128=>array(4,-52,833,780),10129=>array(4,-52,833,780),10130=>array(4,-52,833,780),10131=>array(4,-52,833,780),10132=>array(57,75,789,552),10136=>array(123,55,682,614),10137=>array(57,100,789,527),10138=>array(123,13,682,572),10139=>array(57,129,789,498),10140=>array(57,57,764,570),10141=>array(57,100,789,527),10142=>array(57,100,789,527),10143=>array(57,100,789,527),10144=>array(57,100,789,527),10145=>array(57,46,811,581),10146=>array(111,94,789,533),10147=>array(111,94,789,533),10148=>array(111,-4,789,631),10149=>array(57,100,789,548),10150=>array(57,79,789,527),10151=>array(240,-7,606,634),10152=>array(57,100,789,527),10153=>array(57,75,765,552),10154=>array(57,75,765,552),10155=>array(21,12,794,586),10156=>array(21,12,794,586),10157=>array(135,0,774,574),10158=>array(135,0,774,574),10159=>array(62,49,799,574),10161=>array(62,49,799,574),10162=>array(154,-20,721,585),10163=>array(63,157,789,470),10164=>array(81,55,682,655),10165=>array(57,173,789,454),10166=>array(82,-29,682,572),10167=>array(82,55,682,655),10168=>array(57,172,789,455),10169=>array(82,-28,682,572),10170=>array(56,84,789,543),10171=>array(73,140,779,487),10172=>array(79,167,774,460),10173=>array(79,118,774,509),10174=>array(57,81,789,546),10181=>array(54,-163,405,769),10182=>array(52,-163,403,769),10208=>array(3,-233,491,807),10214=>array(86,-132,419,760),10215=>array(86,-132,419,760),10216=>array(104,-132,377,759),10217=>array(80,-132,353,759),10218=>array(104,-132,641,759),10219=>array(80,-132,616,759),10224=>array(41,0,797,732),10225=>array(42,-3,798,729),10226=>array(9,45,816,685),10227=>array(22,45,830,685),10228=>array(57,-14,1108,643),10229=>array(49,87,1376,540),10230=>array(57,87,1385,540),10231=>array(49,87,1385,540),10232=>array(49,87,1376,540),10233=>array(57,87,1385,540),10234=>array(49,87,1385,540),10235=>array(49,87,1376,540),10236=>array(57,87,1385,540),10237=>array(49,87,1376,540),10238=>array(57,87,1385,540),10239=>array(57,87,1385,540),10241=>array(146,586,342,781),10242=>array(146,325,342,521),10243=>array(146,325,342,781),10244=>array(146,65,342,261),10245=>array(146,65,342,781),10246=>array(146,65,342,521),10247=>array(146,65,342,781),10248=>array(439,586,635,781),10249=>array(146,586,635,781),10250=>array(146,325,635,781),10251=>array(146,325,635,781),10252=>array(146,65,635,781),10253=>array(146,65,635,781),10254=>array(146,65,635,781),10255=>array(146,65,635,781),10256=>array(439,325,635,521),10257=>array(146,325,635,781),10258=>array(146,325,635,521),10259=>array(146,325,635,781),10260=>array(146,65,635,521),10261=>array(146,65,635,781),10262=>array(146,65,635,521),10263=>array(146,65,635,781),10264=>array(439,325,635,781),10265=>array(146,325,635,781),10266=>array(146,325,635,781),10267=>array(146,325,635,781),10268=>array(146,65,635,781),10269=>array(146,65,635,781),10270=>array(146,65,635,781),10271=>array(146,65,635,781),10272=>array(439,65,635,261),10273=>array(146,65,635,781),10274=>array(146,65,635,521),10275=>array(146,65,635,781),10276=>array(146,65,635,261),10277=>array(146,65,635,781),10278=>array(146,65,635,521),10279=>array(146,65,635,781),10280=>array(439,65,635,781),10281=>array(146,65,635,781),10282=>array(146,65,635,781),10283=>array(146,65,635,781),10284=>array(146,65,635,781),10285=>array(146,65,635,781),10286=>array(146,65,635,781),10287=>array(146,65,635,781),10288=>array(439,65,635,521),10289=>array(146,65,635,781),10290=>array(146,65,635,521),10291=>array(146,65,635,781),10292=>array(146,65,635,521),10293=>array(146,65,635,781),10294=>array(146,65,635,521),10295=>array(146,65,635,781),10296=>array(439,65,635,781),10297=>array(146,65,635,781),10298=>array(146,65,635,781),10299=>array(146,65,635,781),10300=>array(146,65,635,781),10301=>array(146,65,635,781),10302=>array(146,65,635,781),10303=>array(146,65,635,781),10304=>array(146,-195,342,0),10305=>array(146,-195,342,781),10306=>array(146,-195,342,521),10307=>array(146,-195,342,781),10308=>array(146,-195,342,261),10309=>array(146,-195,342,781),10310=>array(146,-195,342,521),10311=>array(146,-195,342,781),10312=>array(146,-195,635,781),10313=>array(146,-195,635,781),10314=>array(146,-195,635,781),10315=>array(146,-195,635,781),10316=>array(146,-195,635,781),10317=>array(146,-195,635,781),10318=>array(146,-195,635,781),10319=>array(146,-195,635,781),10320=>array(146,-195,635,521),10321=>array(146,-195,635,781),10322=>array(146,-195,635,521),10323=>array(146,-195,635,781),10324=>array(146,-195,635,521),10325=>array(146,-195,635,781),10326=>array(146,-195,635,521),10327=>array(146,-195,635,781),10328=>array(146,-195,635,781),10329=>array(146,-195,635,781),10330=>array(146,-195,635,781),10331=>array(146,-195,635,781),10332=>array(146,-195,635,781),10333=>array(146,-195,635,781),10334=>array(146,-195,635,781),10335=>array(146,-195,635,781),10336=>array(146,-195,635,261),10337=>array(146,-195,635,781),10338=>array(146,-195,635,521),10339=>array(146,-195,635,781),10340=>array(146,-195,635,261),10341=>array(146,-195,635,781),10342=>array(146,-195,635,521),10343=>array(146,-195,635,781),10344=>array(146,-195,635,781),10345=>array(146,-195,635,781),10346=>array(146,-195,635,781),10347=>array(146,-195,635,781),10348=>array(146,-195,635,781),10349=>array(146,-195,635,781),10350=>array(146,-195,635,781),10351=>array(146,-195,635,781),10352=>array(146,-195,635,521),10353=>array(146,-195,635,781),10354=>array(146,-195,635,521),10355=>array(146,-195,635,781),10356=>array(146,-195,635,521),10357=>array(146,-195,635,781),10358=>array(146,-195,635,521),10359=>array(146,-195,635,781),10360=>array(146,-195,635,781),10361=>array(146,-195,635,781),10362=>array(146,-195,635,781),10363=>array(146,-195,635,781),10364=>array(146,-195,635,781),10365=>array(146,-195,635,781),10366=>array(146,-195,635,781),10367=>array(146,-195,635,781),10368=>array(439,-195,635,0),10369=>array(146,-195,635,781),10370=>array(146,-195,635,521),10371=>array(146,-195,635,781),10372=>array(146,-195,635,261),10373=>array(146,-195,635,781),10374=>array(146,-195,635,521),10375=>array(146,-195,635,781),10376=>array(439,-195,635,781),10377=>array(146,-195,635,781),10378=>array(146,-195,635,781),10379=>array(146,-195,635,781),10380=>array(146,-195,635,781),10381=>array(146,-195,635,781),10382=>array(146,-195,635,781),10383=>array(146,-195,635,781),10384=>array(439,-195,635,521),10385=>array(146,-195,635,781),10386=>array(146,-195,635,521),10387=>array(146,-195,635,781),10388=>array(146,-195,635,521),10389=>array(146,-195,635,781),10390=>array(146,-195,635,521),10391=>array(146,-195,635,781),10392=>array(439,-195,635,781),10393=>array(146,-195,635,781),10394=>array(146,-195,635,781),10395=>array(146,-195,635,781),10396=>array(146,-195,635,781),10397=>array(146,-195,635,781),10398=>array(146,-195,635,781),10399=>array(146,-195,635,781),10400=>array(439,-195,635,261),10401=>array(146,-195,635,781),10402=>array(146,-195,635,521),10403=>array(146,-195,635,781),10404=>array(146,-195,635,261),10405=>array(146,-195,635,781),10406=>array(146,-195,635,521),10407=>array(146,-195,635,781),10408=>array(439,-195,635,781),10409=>array(146,-195,635,781),10410=>array(146,-195,635,781),10411=>array(146,-195,635,781),10412=>array(146,-195,635,781),10413=>array(146,-195,635,781),10414=>array(146,-195,635,781),10415=>array(146,-195,635,781),10416=>array(439,-195,635,521),10417=>array(146,-195,635,781),10418=>array(146,-195,635,521),10419=>array(146,-195,635,781),10420=>array(146,-195,635,521),10421=>array(146,-195,635,781),10422=>array(146,-195,635,521),10423=>array(146,-195,635,781),10424=>array(439,-195,635,781),10425=>array(146,-195,635,781),10426=>array(146,-195,635,781),10427=>array(146,-195,635,781),10428=>array(146,-195,635,781),10429=>array(146,-195,635,781),10430=>array(146,-195,635,781),10431=>array(146,-195,635,781),10432=>array(146,-195,635,0),10433=>array(146,-195,635,781),10434=>array(146,-195,635,521),10435=>array(146,-195,635,781),10436=>array(146,-195,635,261),10437=>array(146,-195,635,781),10438=>array(146,-195,635,521),10439=>array(146,-195,635,781),10440=>array(146,-195,635,781),10441=>array(146,-195,635,781),10442=>array(146,-195,635,781),10443=>array(146,-195,635,781),10444=>array(146,-195,635,781),10445=>array(146,-195,635,781),10446=>array(146,-195,635,781),10447=>array(146,-195,635,781),10448=>array(146,-195,635,521),10449=>array(146,-195,635,781),10450=>array(146,-195,635,521),10451=>array(146,-195,635,781),10452=>array(146,-195,635,521),10453=>array(146,-195,635,781),10454=>array(146,-195,635,521),10455=>array(146,-195,635,781),10456=>array(146,-195,635,781),10457=>array(146,-195,635,781),10458=>array(146,-195,635,781),10459=>array(146,-195,635,781),10460=>array(146,-195,635,781),10461=>array(146,-195,635,781),10462=>array(146,-195,635,781),10463=>array(146,-195,635,781),10464=>array(146,-195,635,261),10465=>array(146,-195,635,781),10466=>array(146,-195,635,521),10467=>array(146,-195,635,781),10468=>array(146,-195,635,261),10469=>array(146,-195,635,781),10470=>array(146,-195,635,521),10471=>array(146,-195,635,781),10472=>array(146,-195,635,781),10473=>array(146,-195,635,781),10474=>array(146,-195,635,781),10475=>array(146,-195,635,781),10476=>array(146,-195,635,781),10477=>array(146,-195,635,781),10478=>array(146,-195,635,781),10479=>array(146,-195,635,781),10480=>array(146,-195,635,521),10481=>array(146,-195,635,781),10482=>array(146,-195,635,521),10483=>array(146,-195,635,781),10484=>array(146,-195,635,521),10485=>array(146,-195,635,781),10486=>array(146,-195,635,521),10487=>array(146,-195,635,781),10488=>array(146,-195,635,781),10489=>array(146,-195,635,781),10490=>array(146,-195,635,781),10491=>array(146,-195,635,781),10492=>array(146,-195,635,781),10493=>array(146,-195,635,781),10494=>array(146,-195,635,781),10495=>array(146,-195,635,781),10502=>array(49,87,781,540),10503=>array(57,87,789,540),10506=>array(132,0,707,732),10507=>array(132,0,707,732),10560=>array(86,45,726,853),10561=>array(86,45,726,853),10627=>array(125,-163,628,760),10628=>array(125,-163,628,760),10702=>array(106,-258,732,800),10703=>array(106,-1,940,628),10704=>array(106,-1,940,628),10705=>array(106,-48,894,674),10706=>array(106,-48,894,674),10707=>array(106,-48,894,674),10708=>array(106,-48,894,675),10709=>array(106,-48,894,675),10731=>array(3,-233,491,807),10746=>array(106,0,732,627),10747=>array(106,0,732,627),10752=>array(28,-211,972,734),10753=>array(28,-211,972,734),10754=>array(28,-211,972,734),10764=>array(15,-227,1646,754),10765=>array(14,-227,548,754),10766=>array(14,-227,548,754),10767=>array(14,-227,548,754),10768=>array(14,-227,548,754),10769=>array(14,-227,576,754),10770=>array(14,-227,548,754),10771=>array(14,-227,548,754),10772=>array(14,-228,651,754),10773=>array(14,-227,548,754),10774=>array(14,-227,548,754),10775=>array(-30,-227,556,754),10776=>array(14,-227,548,754),10777=>array(14,-227,548,754),10778=>array(14,-227,548,754),10779=>array(15,-227,548,898),10780=>array(15,-372,548,754),10799=>array(125,20,713,607),10858=>array(106,212,732,660),10859=>array(106,-34,732,660),10877=>array(106,-150,732,632),10878=>array(106,-150,732,632),10879=>array(106,-150,732,632),10880=>array(106,-150,732,632),10881=>array(106,-150,732,688),10882=>array(106,-150,732,688),10883=>array(106,-150,732,827),10884=>array(106,-150,732,827),10885=>array(106,-217,732,630),10886=>array(106,-217,732,630),10887=>array(106,-124,732,582),10888=>array(106,-124,732,582),10889=>array(106,-281,732,630),10890=>array(106,-281,732,630),10891=>array(106,-303,732,814),10892=>array(106,-303,732,814),10893=>array(106,-183,732,653),10894=>array(106,-183,732,653),10895=>array(106,-245,732,765),10896=>array(106,-245,732,765),10897=>array(106,-278,732,782),10898=>array(106,-278,732,782),10899=>array(106,-263,732,771),10900=>array(106,-263,732,771),10901=>array(106,-50,732,733),10902=>array(106,-50,732,733),10903=>array(106,-50,732,733),10904=>array(106,-50,732,733),10905=>array(106,-45,732,678),10906=>array(106,-45,732,678),10907=>array(106,-81,732,724),10908=>array(106,-81,732,724),10909=>array(106,13,732,680),10910=>array(106,13,732,680),10911=>array(106,-239,732,746),10912=>array(106,-239,732,746),10926=>array(106,22,732,656),10927=>array(106,-83,732,684),10928=>array(106,-83,732,684),10929=>array(106,-246,732,684),10930=>array(106,-246,732,684),10931=>array(106,-205,732,672),10932=>array(106,-205,732,672),10933=>array(106,-304,732,672),10934=>array(106,-304,732,672),10935=>array(106,-252,732,713),10936=>array(106,-252,732,713),10937=>array(106,-316,732,713),10938=>array(106,-316,732,713),11001=>array(106,-195,732,609),11002=>array(106,-195,732,609),11008=>array(123,-23,744,598),11009=>array(94,-23,715,598),11010=>array(123,-23,744,598),11011=>array(94,-23,715,598),11012=>array(27,46,789,581),11013=>array(27,46,781,581),11014=>array(151,0,687,754),11015=>array(151,-25,687,729),11016=>array(123,-23,744,598),11017=>array(94,-23,715,598),11018=>array(123,-23,744,598),11019=>array(94,-23,715,598),11020=>array(27,46,789,581),11021=>array(151,-25,687,754),11022=>array(57,-25,800,372),11023=>array(57,255,800,652),11024=>array(38,-25,781,372),11025=>array(38,255,781,652),11026=>array(91,-124,854,643),11027=>array(91,-124,854,643),11028=>array(91,-124,854,643),11029=>array(91,-124,854,643),11030=>array(3,-124,766,643),11031=>array(3,-124,766,643),11032=>array(3,-124,766,643),11033=>array(3,-124,766,643),11034=>array(91,-124,854,643),11039=>array(18,-26,852,767),11040=>array(18,-26,852,767),11041=>array(73,-91,800,748),11042=>array(73,-91,800,748),11043=>array(17,-35,856,692),11044=>array(55,-250,1064,770),11091=>array(38,-47,832,788),11092=>array(38,-47,832,788),11360=>array(5,0,610,729),11361=>array(5,0,355,760),11362=>array(-17,0,610,729),11363=>array(6,0,692,729),11364=>array(92,-200,750,729),11365=>array(32,-46,639,594),11366=>array(13,-93,455,822),11367=>array(92,-157,932,729),11368=>array(84,-138,809,760),11369=>array(92,-157,805,729),11370=>array(84,-138,684,760),11371=>array(45,-157,768,729),11372=>array(45,-138,622,547),11373=>array(48,-14,769,741),11374=>array(92,-200,903,729),11375=>array(5,0,769,729),11376=>array(48,-14,769,741),11377=>array(15,0,778,560),11378=>array(30,0,1221,742),11379=>array(35,0,1056,560),11380=>array(38,0,637,586),11381=>array(92,0,606,729),11382=>array(84,0,481,547),11383=>array(64,0,725,552),11385=>array(84,-13,490,760),11386=>array(43,-14,644,560),11387=>array(78,0,467,547),11388=>array(-21,-121,166,425),11389=>array(3,326,484,734),11390=>array(72,-240,670,742),11391=>array(45,-240,680,729),11520=>array(45,-64,609,547),11521=>array(16,-232,625,546),11522=>array(41,-232,629,547),11523=>array(42,-10,585,807),11524=>array(40,-228,613,546),11525=>array(41,-228,988,546),11526=>array(20,-8,668,816),11527=>array(42,-9,974,547),11528=>array(39,0,589,547),11529=>array(41,-227,614,816),11530=>array(39,-9,985,546),11531=>array(42,-8,649,816),11532=>array(39,0,627,816),11533=>array(41,-8,988,546),11534=>array(41,-8,629,546),11535=>array(41,-228,846,816),11536=>array(42,-9,976,816),11537=>array(41,-9,630,816),11538=>array(46,-232,610,546),11539=>array(41,-228,984,661),11540=>array(45,-228,958,546),11541=>array(39,-228,978,816),11542=>array(44,0,628,546),11543=>array(41,-228,630,547),11544=>array(41,-232,627,546),11545=>array(44,-228,628,816),11546=>array(42,-232,610,547),11547=>array(43,-9,658,816),11548=>array(44,-228,989,547),11549=>array(44,-232,619,546),11550=>array(46,-232,639,546),11551=>array(44,-228,615,567),11552=>array(44,-9,1004,546),11553=>array(44,-228,619,816),11554=>array(42,-9,601,626),11555=>array(44,-228,622,816),11556=>array(42,-228,684,546),11557=>array(45,-8,959,816),11568=>array(55,-14,636,380),11569=>array(50,-14,892,742),11570=>array(50,-14,892,742),11571=>array(51,0,674,729),11572=>array(51,0,674,729),11573=>array(56,0,669,729),11574=>array(48,0,627,729),11575=>array(5,0,769,729),11576=>array(5,0,769,729),11577=>array(92,0,610,729),11578=>array(92,0,610,729),11579=>array(73,-14,729,742),11580=>array(73,0,916,729),11581=>array(92,0,754,729),11582=>array(92,0,549,729),11583=>array(92,0,754,729),11584=>array(50,-14,892,742),11585=>array(50,-84,892,815),11586=>array(92,0,281,729),11587=>array(21,0,720,729),11588=>array(92,0,745,729),11589=>array(-30,0,944,729),11590=>array(92,0,598,729),11591=>array(92,0,709,729),11592=>array(73,256,607,445),11593=>array(92,0,610,729),11594=>array(73,0,529,729),11595=>array(64,-14,892,742),11596=>array(82,0,695,729),11597=>array(92,0,745,729),11598=>array(92,0,610,729),11599=>array(92,0,280,729),11600=>array(82,0,695,729),11601=>array(92,0,281,729),11602=>array(42,-14,684,729),11603=>array(55,-14,636,742),11604=>array(50,-14,892,742),11605=>array(50,-95,892,742),11606=>array(92,0,745,729),11607=>array(92,0,281,729),11608=>array(92,0,744,729),11609=>array(50,-14,892,742),11610=>array(50,-14,892,823),11611=>array(50,-14,718,742),11612=>array(79,0,797,729),11613=>array(19,0,751,729),11614=>array(50,-14,718,742),11615=>array(92,0,610,729),11616=>array(5,0,769,729),11617=>array(92,0,745,729),11618=>array(92,0,599,729),11619=>array(50,0,800,729),11620=>array(92,0,654,729),11621=>array(50,0,800,729),11631=>array(64,490,651,729),11800=>array(69,-14,515,728),11807=>array(106,-34,732,415),11810=>array(86,403,389,760),11811=>array(68,403,371,760),11812=>array(86,-132,389,225),11813=>array(68,-132,371,225),11822=>array(69,0,515,742),19904=>array(83,-158,813,729),19905=>array(83,-158,813,729),19906=>array(83,-158,813,729),19907=>array(83,-158,813,729),19908=>array(83,-158,813,729),19909=>array(83,-158,813,729),19910=>array(83,-158,813,729),19911=>array(83,-158,813,729),19912=>array(83,-158,813,729),19913=>array(83,-158,814,729),19914=>array(83,-158,813,729),19915=>array(83,-158,813,729),19916=>array(83,-158,813,729),19917=>array(83,-158,813,729),19918=>array(83,-158,813,729),19919=>array(83,-158,813,729),19920=>array(83,-158,814,729),19921=>array(83,-158,813,729),19922=>array(83,-158,814,729),19923=>array(83,-158,813,729),19924=>array(83,-158,813,729),19925=>array(83,-158,813,729),19926=>array(83,-158,813,729),19927=>array(83,-158,813,729),19928=>array(83,-158,813,729),19929=>array(83,-158,813,729),19930=>array(83,-158,813,729),19931=>array(83,-158,814,729),19932=>array(83,-158,813,729),19933=>array(83,-158,813,729),19934=>array(83,-158,814,729),19935=>array(83,-158,813,729),19936=>array(83,-158,813,729),19937=>array(83,-158,813,729),19938=>array(83,-158,813,729),19939=>array(83,-158,813,729),19940=>array(83,-158,813,729),19941=>array(83,-158,814,729),19942=>array(83,-158,813,729),19943=>array(83,-158,813,729),19944=>array(83,-158,814,729),19945=>array(83,-158,813,729),19946=>array(83,-158,814,729),19947=>array(83,-158,813,729),19948=>array(83,-158,814,729),19949=>array(83,-158,813,729),19950=>array(83,-158,814,729),19951=>array(83,-158,813,729),19952=>array(83,-158,814,729),19953=>array(83,-158,813,729),19954=>array(83,-158,813,729),19955=>array(83,-158,813,729),19956=>array(83,-158,813,729),19957=>array(83,-158,814,729),19958=>array(83,-158,813,729),19959=>array(83,-158,813,729),19960=>array(83,-158,813,729),19961=>array(83,-158,814,729),19962=>array(83,-158,813,729),19963=>array(83,-158,814,729),19964=>array(83,-158,814,729),19965=>array(83,-158,813,729),19966=>array(83,-158,813,729),19967=>array(83,-158,813,729),42192=>array(92,0,692,729),42193=>array(92,0,692,729),42194=>array(41,0,641,729),42195=>array(92,0,778,729),42196=>array(5,0,677,729),42197=>array(5,0,677,729),42198=>array(50,-14,747,742),42199=>array(92,0,805,729),42200=>array(-30,0,683,729),42201=>array(0,-14,439,729),42202=>array(50,-14,670,742),42203=>array(50,-14,670,742),42204=>array(45,0,680,729),42205=>array(92,0,599,729),42206=>array(92,0,599,729),42207=>array(92,0,903,729),42208=>array(92,0,745,729),42209=>array(92,0,610,729),42210=>array(72,-14,647,742),42211=>array(92,0,750,729),42212=>array(20,0,678,729),42213=>array(5,0,769,729),42214=>array(5,0,769,729),42215=>array(92,0,745,729),42216=>array(25,-14,723,742),42217=>array(91,0,530,743),42218=>array(30,0,1072,729),42219=>array(19,0,751,729),42220=>array(-10,0,734,729),42221=>array(70,0,670,729),42222=>array(5,0,769,729),42223=>array(5,0,769,729),42224=>array(92,0,610,729),42225=>array(73,0,591,729),42226=>array(92,0,280,729),42227=>array(50,-14,800,742),42228=>array(92,-14,720,729),42229=>array(92,0,720,743),42230=>array(9,0,527,729),42231=>array(52,0,738,729),42232=>array(73,0,249,189),42233=>array(24,-142,249,189),42234=>array(73,0,601,189),42235=>array(73,-142,601,189),42236=>array(24,-142,249,547),42237=>array(73,0,249,547),42238=>array(73,0,515,405),42239=>array(73,134,515,492),42564=>array(26,-14,601,742),42565=>array(15,-14,511,560),42566=>array(92,0,428,729),42567=>array(83,0,356,547),42572=>array(57,-14,1348,654),42573=>array(47,-13,1126,547),42576=>array(49,0,1142,729),42577=>array(20,0,946,547),42580=>array(55,-14,1082,742),42581=>array(44,-14,888,560),42582=>array(92,0,1088,729),42583=>array(84,-14,880,560),42594=>array(60,-157,1058,729),42595=>array(56,-138,900,547),42596=>array(46,0,1069,729),42597=>array(55,0,888,547),42598=>array(92,0,1233,729),42599=>array(84,0,973,547),42600=>array(50,-14,800,742),42601=>array(43,-14,644,560),42602=>array(50,-14,987,742),42603=>array(43,-14,825,560),42604=>array(50,-14,1356,742),42605=>array(43,-14,1063,560),42606=>array(28,-208,933,743),42634=>array(5,-200,883,729),42635=>array(4,-216,709,547),42636=>array(5,0,677,729),42637=>array(4,0,575,547),42644=>array(81,0,716,729),42645=>array(84,0,634,760),42760=>array(96,0,404,693),42761=>array(96,0,404,693),42762=>array(96,0,404,693),42763=>array(96,0,404,693),42764=>array(96,0,404,693),42765=>array(96,0,404,693),42766=>array(96,0,404,693),42767=>array(96,0,404,693),42768=>array(96,0,404,693),42769=>array(96,0,404,693),42770=>array(96,0,404,693),42771=>array(96,0,404,693),42772=>array(96,0,404,693),42773=>array(96,0,404,693),42774=>array(96,0,404,693),42779=>array(58,326,342,736),42780=>array(58,324,342,734),42781=>array(88,326,199,734),42782=>array(88,326,199,734),42783=>array(88,0,199,408),42786=>array(67,0,409,729),42787=>array(67,0,355,547),42788=>array(56,224,479,742),42789=>array(56,42,479,560),42790=>array(92,-200,745,729),42791=>array(84,-216,634,760),42792=>array(5,-216,986,729),42793=>array(13,-215,810,702),42794=>array(67,-14,616,742),42795=>array(54,-202,493,560),42800=>array(92,0,473,547),42801=>array(52,-14,548,560),42802=>array(5,0,1344,729),42803=>array(43,-14,973,560),42804=>array(5,-14,1234,742),42805=>array(43,-14,1021,560),42806=>array(5,-14,1124,729),42807=>array(43,-14,970,560),42808=>array(5,0,1074,729),42809=>array(43,-14,907,560),42810=>array(5,0,1074,729),42811=>array(43,-14,907,560),42812=>array(5,-216,1030,729),42813=>array(43,-216,907,560),42814=>array(33,-14,653,742),42815=>array(43,-14,526,560),42816=>array(5,0,812,729),42817=>array(6,0,708,760),42822=>array(92,0,822,729),42823=>array(84,0,458,760),42824=>array(41,0,655,729),42825=>array(59,0,473,760),42826=>array(16,-14,902,742),42827=>array(5,-14,809,560),42830=>array(50,-14,1356,742),42831=>array(43,-14,1063,560),42832=>array(16,0,692,729),42833=>array(5,-208,671,560),42834=>array(34,0,907,729),42835=>array(34,-208,892,560),42838=>array(50,-188,800,742),42839=>array(45,-208,711,559),42852=>array(16,0,692,729),42853=>array(5,-208,671,760),42854=>array(16,0,692,729),42855=>array(5,-208,671,760),42880=>array(27,0,545,729),42881=>array(84,-208,259,547),42882=>array(84,-208,730,742),42883=>array(84,-208,634,560),42889=>array(112,0,288,547),42890=>array(83,141,303,405),42891=>array(140,245,316,729),42892=>array(95,458,211,729),42893=>array(81,0,716,729),42894=>array(84,-216,680,760),42896=>array(92,-157,868,729),42897=>array(84,-138,725,560),42912=>array(-11,-14,832,742),42913=>array(-11,-216,727,559),42914=>array(-11,0,805,729),42915=>array(-11,0,684,760),42916=>array(-11,0,848,729),42917=>array(-11,0,723,560),42918=>array(-11,0,781,729),42919=>array(-11,0,504,560),42920=>array(-11,-14,731,742),42921=>array(-11,-14,606,560),42922=>array(-68,0,794,729),43002=>array(84,0,972,547),43003=>array(84,0,591,729),43004=>array(41,0,641,729),43005=>array(92,0,903,729),43006=>array(92,0,280,928),43007=>array(31,0,1294,729),61184=>array(91,602,317,693),61185=>array(48,451,338,693),61186=>array(26,301,363,693),61187=>array(17,150,373,693),61188=>array(13,0,378,693),61189=>array(48,451,338,693),61190=>array(91,451,317,543),61191=>array(48,301,338,543),61192=>array(26,150,363,543),61193=>array(17,0,373,543),61194=>array(26,301,363,693),61195=>array(48,301,338,543),61196=>array(91,301,317,393),61197=>array(48,150,338,393),61198=>array(26,0,363,393),61199=>array(17,150,373,693),61200=>array(26,149,363,542),61201=>array(48,150,338,393),61202=>array(91,150,317,242),61203=>array(48,0,338,242),61204=>array(13,0,378,693),61205=>array(17,0,373,543),61206=>array(26,0,363,393),61207=>array(48,0,338,242),61208=>array(91,0,317,92),61209=>array(96,0,188,693),62464=>array(49,-14,563,819),62465=>array(49,-15,563,823),62466=>array(49,-14,604,828),62467=>array(49,0,853,828),62468=>array(49,-15,563,828),62469=>array(49,-15,563,828),62470=>array(29,-15,612,828),62471=>array(49,-14,846,828),62472=>array(49,0,541,828),62473=>array(49,-14,563,820),62474=>array(49,-6,1114,828),62475=>array(49,-14,563,828),62476=>array(63,-15,578,820),62477=>array(54,0,839,828),62478=>array(49,-15,563,819),62479=>array(49,-15,563,840),62480=>array(49,0,875,828),62481=>array(63,-14,578,819),62482=>array(44,-14,699,828),62483=>array(34,-14,570,828),62484=>array(49,-14,837,828),62485=>array(49,-14,563,819),62486=>array(49,0,858,828),62487=>array(49,-14,563,820),62488=>array(44,-14,558,828),62489=>array(64,0,579,828),62490=>array(50,-15,628,820),62491=>array(49,-14,563,819),62492=>array(63,-14,577,828),62493=>array(49,-14,581,820),62494=>array(63,-14,578,819),62495=>array(24,-14,546,828),62496=>array(49,-15,563,828),62497=>array(63,-15,577,828),62498=>array(49,-73,563,828),62499=>array(49,-15,563,830),62500=>array(49,-15,569,828),62501=>array(49,-14,627,828),62502=>array(49,-14,914,828),62504=>array(45,-228,960,816),62505=>array(54,-223,791,843),62506=>array(54,-14,510,761),62507=>array(54,-14,510,773),62508=>array(54,-14,510,866),62509=>array(54,-14,510,812),62510=>array(54,-14,510,877),62511=>array(54,-14,510,803),62512=>array(54,-232,501,761),62513=>array(54,-232,501,793),62514=>array(54,-232,501,891),62515=>array(54,-232,501,803),62516=>array(54,0,520,761),62517=>array(54,0,520,793),62518=>array(54,0,520,803),62519=>array(54,-0,770,761),62520=>array(54,-0,770,773),62521=>array(54,-0,770,884),62522=>array(54,-0,770,793),62523=>array(54,-0,770,803),62524=>array(54,-232,557,761),62525=>array(54,-232,557,773),62526=>array(54,-232,557,894),62527=>array(54,-232,557,793),62528=>array(54,-232,557,803),62529=>array(54,-232,557,844),63173=>array(43,-14,644,760),64256=>array(19,0,819,760),64257=>array(21,0,657,760),64258=>array(19,0,657,760),64259=>array(19,0,1031,760),64260=>array(19,0,1032,760),64261=>array(19,0,785,760),64262=>array(52,-14,997,742),64275=>array(74,-14,1300,760),64276=>array(78,-14,1301,760),64277=>array(78,-208,1300,760),64278=>array(78,-208,1300,760),64279=>array(78,-208,1629,760),64285=>array(66,32,228,547),64286=>array(182,635,510,780),64287=>array(66,32,500,547),64288=>array(38,0,590,547),64289=>array(85,0,855,547),64290=>array(43,0,731,547),64291=>array(91,0,778,547),64292=>array(43,0,730,547),64293=>array(43,0,730,739),64294=>array(91,0,778,547),64295=>array(43,0,730,547),64296=>array(47,-4,730,547),64297=>array(106,256,732,627),64298=>array(20,0,750,710),64299=>array(20,0,750,723),64300=>array(20,0,750,710),64301=>array(20,0,750,710),64302=>array(84,-171,644,547),64303=>array(84,-217,644,547),64304=>array(84,-171,644,547),64305=>array(43,0,567,547),64306=>array(43,-9,418,547),64307=>array(43,0,545,547),64308=>array(91,0,596,547),64309=>array(43,0,346,547),64310=>array(43,0,442,547),64312=>array(90,-13,624,553),64313=>array(43,164,369,547),64314=>array(43,-240,487,547),64315=>array(43,0,511,547),64316=>array(43,0,527,711),64318=>array(43,0,633,554),64320=>array(43,0,362,547),64321=>array(90,-13,624,547),64323=>array(91,-240,584,547),64324=>array(91,0,603,547),64326=>array(33,0,564,547),64327=>array(91,-240,660,546),64328=>array(43,0,511,547),64329=>array(20,0,750,547),64330=>array(10,-4,592,547),64331=>array(91,0,252,710),64332=>array(43,0,567,710),64333=>array(43,0,511,710),64334=>array(91,0,603,710),64335=>array(43,0,652,729),64338=>array(63,-244,921,327),64339=>array(63,-244,1068,327),64340=>array(-10,-244,292,293),64341=>array(-10,-244,418,293),64342=>array(63,-244,921,327),64343=>array(63,-244,1068,327),64344=>array(-10,-244,302,293),64345=>array(-10,-244,418,293),64346=>array(63,-244,921,327),64347=>array(63,-244,1068,327),64348=>array(-10,-244,302,293),64349=>array(-10,-244,418,293),64350=>array(63,-5,921,566),64351=>array(63,-5,1068,566),64352=>array(-10,0,292,640),64353=>array(-10,0,418,640),64354=>array(63,-5,921,566),64355=>array(63,-5,1068,566),64356=>array(-10,0,302,640),64357=>array(-10,0,418,640),64358=>array(63,-5,921,599),64359=>array(63,-5,1068,599),64360=>array(-10,0,333,672),64361=>array(-10,0,418,672),64362=>array(63,-24,1082,786),64363=>array(63,-29,1201,786),64364=>array(-10,0,575,786),64365=>array(-10,0,729,786),64366=>array(63,-24,1082,786),64367=>array(63,-29,1201,786),64368=>array(-10,0,575,786),64369=>array(-10,0,729,786),64370=>array(77,-244,720,425),64371=>array(77,-244,730,425),64372=>array(-10,-244,628,405),64373=>array(-10,-244,730,405),64374=>array(77,-244,720,425),64375=>array(77,-244,730,425),64376=>array(-10,-117,628,405),64377=>array(-10,-117,730,405),64378=>array(77,-244,720,425),64379=>array(77,-244,730,425),64380=>array(-10,-244,628,405),64381=>array(-10,-244,730,405),64382=>array(77,-244,720,425),64383=>array(77,-244,730,425),64384=>array(-10,-244,628,405),64385=>array(-10,-244,730,405),64386=>array(61,-146,442,415),64387=>array(61,-146,587,415),64388=>array(61,-15,442,586),64389=>array(61,-15,587,586),64390=>array(61,-15,442,708),64391=>array(61,-15,587,708),64392=>array(61,-15,442,746),64393=>array(61,-15,587,746),64394=>array(-42,-244,508,615),64395=>array(-42,-244,632,615),64396=>array(-42,-244,520,648),64397=>array(-42,-244,632,648),64398=>array(63,-39,1024,760),64399=>array(63,-39,1034,760),64400=>array(-10,0,582,760),64401=>array(-10,0,591,760),64402=>array(63,-39,1024,910),64403=>array(63,-39,1034,910),64404=>array(-10,0,582,910),64405=>array(-10,0,591,910),64406=>array(63,-293,1024,910),64407=>array(63,-293,1034,910),64408=>array(-10,-269,582,910),64409=>array(-10,-269,591,910),64410=>array(63,-39,1024,910),64411=>array(63,-39,1034,910),64412=>array(-10,0,582,910),64413=>array(-10,0,591,910),64414=>array(62,-165,779,366),64415=>array(62,-244,910,287),64416=>array(62,-165,779,636),64417=>array(62,-244,910,514),64418=>array(-10,0,333,672),64419=>array(-10,0,418,672),64426=>array(70,-33,877,506),64427=>array(70,-244,890,369),64428=>array(-10,-33,633,506),64429=>array(-10,-244,670,369),64467=>array(70,-27,814,854),64468=>array(70,-27,941,854),64469=>array(-10,0,582,928),64470=>array(-10,0,591,928),64473=>array(-42,-244,547,556),64474=>array(-42,-244,637,556),64488=>array(-10,0,292,293),64489=>array(-10,0,418,293),64508=>array(63,-107,863,462),64509=>array(63,-126,1021,291),64510=>array(-10,-166,302,293),64511=>array(-10,-166,418,293),65056=>array(-419,735,0,880),65057=>array(0,735,419,880),65058=>array(-362,756,0,894),65059=>array(0,756,362,894),65136=>array(28,591,313,825),65137=>array(-10,0,352,825),65138=>array(28,591,313,881),65139=>array(51,0,356,177),65140=>array(28,-239,313,-5),65142=>array(28,591,313,723),65143=>array(-10,0,352,723),65144=>array(28,590,313,881),65145=>array(-10,0,352,881),65146=>array(28,-137,313,-5),65147=>array(-10,-137,352,125),65148=>array(9,599,333,869),65149=>array(-10,0,352,869),65150=>array(36,610,304,878),65151=>array(-10,0,352,878),65152=>array(73,20,437,493),65153=>array(-20,0,362,955),65154=>array(-20,0,385,955),65155=>array(75,0,259,993),65156=>array(75,0,385,993),65157=>array(-42,-244,547,603),65158=>array(-42,-244,637,603),65159=>array(76,-245,259,760),65160=>array(76,-245,385,760),65161=>array(63,-107,863,603),65162=>array(63,-126,1021,480),65163=>array(-10,0,292,627),65164=>array(-10,0,418,627),65165=>array(84,0,259,760),65166=>array(84,0,385,760),65167=>array(63,-149,921,327),65168=>array(63,-149,1068,327),65169=>array(-10,-173,292,293),65170=>array(-10,-173,418,293),65171=>array(48,-30,540,513),65172=>array(65,0,616,513),65173=>array(63,-5,921,415),65174=>array(63,-5,1068,415),65175=>array(-10,0,302,488),65176=>array(-10,0,418,488),65177=>array(63,-5,921,537),65178=>array(63,-5,1068,537),65179=>array(-10,0,302,610),65180=>array(-10,0,418,610),65181=>array(77,-244,720,425),65182=>array(77,-244,730,425),65183=>array(-10,-173,628,405),65184=>array(-10,-173,730,405),65185=>array(77,-244,720,425),65186=>array(77,-244,730,425),65187=>array(-10,0,628,405),65188=>array(-10,0,730,405),65189=>array(77,-244,720,579),65190=>array(77,-244,730,579),65191=>array(-10,0,628,530),65192=>array(-10,0,730,530),65193=>array(61,-15,442,415),65194=>array(61,-15,587,415),65195=>array(61,-15,442,579),65196=>array(61,-15,587,579),65197=>array(-42,-244,508,269),65198=>array(-42,-244,632,269),65199=>array(-42,-244,508,457),65200=>array(-42,-244,632,457),65201=>array(63,-244,1297,366),65202=>array(63,-244,1423,366),65203=>array(-10,-14,901,366),65204=>array(-10,-14,1027,366),65205=>array(63,-244,1297,586),65206=>array(63,-244,1423,586),65207=>array(-10,-14,901,586),65208=>array(-10,-14,1027,586),65209=>array(63,-244,1265,362),65210=>array(63,-244,1374,362),65211=>array(-10,0,886,362),65212=>array(-10,0,995,362),65213=>array(63,-244,1265,457),65214=>array(63,-244,1374,457),65215=>array(-10,0,886,481),65216=>array(-10,0,995,481),65217=>array(70,0,971,760),65218=>array(70,0,1081,760),65219=>array(-10,0,875,760),65220=>array(-10,0,984,760),65221=>array(70,0,971,760),65222=>array(70,0,1081,760),65223=>array(-10,0,875,760),65224=>array(-10,0,984,760),65225=>array(87,-244,720,521),65226=>array(57,-244,693,382),65227=>array(-10,0,583,521),65228=>array(-10,0,574,382),65229=>array(87,-244,720,652),65230=>array(57,-244,693,530),65231=>array(-10,0,583,652),65232=>array(-10,0,574,530),65233=>array(63,-24,1082,627),65234=>array(63,-29,1201,627),65235=>array(-10,0,575,627),65236=>array(-10,0,729,627),65237=>array(52,-215,825,635),65238=>array(52,-244,911,476),65239=>array(-10,0,575,635),65240=>array(-10,0,729,635),65241=>array(70,-27,814,760),65242=>array(70,-27,941,760),65243=>array(-10,0,582,760),65244=>array(-10,0,591,760),65245=>array(70,-142,778,760),65246=>array(70,-142,902,760),65247=>array(-10,0,292,760),65248=>array(-10,0,418,760),65249=>array(68,-244,660,369),65250=>array(68,-244,794,311),65251=>array(-10,-23,546,311),65252=>array(-10,-23,680,311),65253=>array(62,-165,779,457),65254=>array(62,-244,910,383),65255=>array(-10,0,292,481),65256=>array(-10,0,418,481),65257=>array(48,-30,540,358),65258=>array(65,0,616,366),65259=>array(-10,-33,633,506),65260=>array(-10,-244,670,369),65261=>array(-42,-244,547,322),65262=>array(-42,-244,637,322),65263=>array(63,-107,863,462),65264=>array(63,-126,1021,291),65265=>array(63,-244,863,462),65266=>array(63,-244,1021,291),65267=>array(-10,-166,302,293),65268=>array(-10,-166,418,293),65269=>array(-62,-15,643,882),65270=>array(-62,-15,769,882),65271=>array(33,-15,643,944),65272=>array(33,-15,769,944),65273=>array(41,-245,643,760),65274=>array(41,-245,769,760),65275=>array(41,-15,643,760),65276=>array(41,-15,769,760),65533=>array(24,-139,1089,926),65535=>array(50,-177,550,705)); -$cw=array(0=>600,32=>348,33=>456,34=>521,35=>838,36=>696,37=>1002,38=>872,39=>306,40=>457,41=>457,42=>523,43=>838,44=>380,45=>415,46=>380,47=>365,48=>696,49=>696,50=>696,51=>696,52=>696,53=>696,54=>696,55=>696,56=>696,57=>696,58=>400,59=>400,60=>838,61=>838,62=>838,63=>580,64=>1000,65=>774,66=>762,67=>734,68=>830,69=>683,70=>683,71=>821,72=>837,73=>372,74=>372,75=>775,76=>637,77=>995,78=>837,79=>850,80=>733,81=>850,82=>770,83=>720,84=>682,85=>812,86=>774,87=>1103,88=>771,89=>724,90=>725,91=>457,92=>365,93=>457,94=>838,95=>500,96=>500,97=>675,98=>716,99=>593,100=>716,101=>678,102=>435,103=>716,104=>712,105=>343,106=>343,107=>665,108=>343,109=>1042,110=>712,111=>687,112=>716,113=>716,114=>493,115=>595,116=>478,117=>712,118=>652,119=>924,120=>645,121=>652,122=>582,123=>712,124=>365,125=>712,126=>838,160=>348,161=>456,162=>696,163=>696,164=>636,165=>696,166=>365,167=>500,168=>500,169=>1000,170=>564,171=>646,172=>838,173=>415,174=>1000,175=>500,176=>500,177=>838,178=>438,179=>438,180=>500,181=>736,182=>636,183=>380,184=>500,185=>438,186=>564,187=>646,188=>1035,189=>1035,190=>1035,191=>580,192=>774,193=>774,194=>774,195=>774,196=>774,197=>774,198=>1085,199=>734,200=>683,201=>683,202=>683,203=>683,204=>372,205=>372,206=>372,207=>372,208=>838,209=>837,210=>850,211=>850,212=>850,213=>850,214=>850,215=>838,216=>850,217=>812,218=>812,219=>812,220=>812,221=>724,222=>738,223=>719,224=>675,225=>675,226=>675,227=>675,228=>675,229=>675,230=>1048,231=>593,232=>678,233=>678,234=>678,235=>678,236=>343,237=>343,238=>343,239=>343,240=>687,241=>712,242=>687,243=>687,244=>687,245=>687,246=>687,247=>838,248=>687,249=>712,250=>712,251=>712,252=>712,253=>652,254=>716,255=>652,256=>774,257=>675,258=>774,259=>675,260=>774,261=>675,262=>734,263=>593,264=>734,265=>593,266=>734,267=>593,268=>734,269=>593,270=>830,271=>716,272=>838,273=>716,274=>683,275=>678,276=>683,277=>678,278=>683,279=>678,280=>683,281=>678,282=>683,283=>678,284=>821,285=>716,286=>821,287=>716,288=>821,289=>716,290=>821,291=>716,292=>837,293=>712,294=>974,295=>790,296=>372,297=>343,298=>372,299=>343,300=>372,301=>343,302=>372,303=>343,304=>372,305=>343,306=>744,307=>686,308=>372,309=>343,310=>775,311=>665,312=>665,313=>637,314=>343,315=>637,316=>343,317=>637,318=>479,319=>637,320=>557,321=>642,322=>371,323=>837,324=>712,325=>837,326=>712,327=>837,328=>712,329=>983,330=>837,331=>712,332=>850,333=>687,334=>850,335=>687,336=>850,337=>687,338=>1167,339=>1094,340=>770,341=>493,342=>770,343=>493,344=>770,345=>493,346=>720,347=>595,348=>720,349=>595,350=>720,351=>595,352=>720,353=>595,354=>682,355=>478,356=>682,357=>478,358=>682,359=>478,360=>812,361=>712,362=>812,363=>712,364=>812,365=>712,366=>812,367=>712,368=>812,369=>712,370=>812,371=>712,372=>1103,373=>924,374=>724,375=>652,376=>724,377=>725,378=>582,379=>725,380=>582,381=>725,382=>582,383=>435,384=>716,385=>811,386=>762,387=>716,388=>762,389=>716,390=>734,391=>734,392=>593,393=>838,394=>879,395=>757,396=>716,397=>688,398=>683,399=>849,400=>696,401=>683,402=>435,403=>821,404=>793,405=>1045,406=>436,407=>389,408=>775,409=>665,410=>360,411=>592,412=>1042,413=>837,414=>712,415=>850,416=>874,417=>687,418=>1083,419=>912,420=>782,421=>716,422=>770,423=>720,424=>595,425=>683,426=>552,427=>478,428=>707,429=>478,430=>682,431=>835,432=>712,433=>850,434=>813,435=>797,436=>778,437=>725,438=>582,439=>772,440=>772,441=>641,442=>582,443=>696,444=>772,445=>641,446=>573,447=>716,448=>372,449=>659,450=>544,451=>372,452=>1555,453=>1412,454=>1298,455=>1009,456=>980,457=>686,458=>1209,459=>1180,460=>1055,461=>774,462=>675,463=>372,464=>343,465=>850,466=>687,467=>812,468=>712,469=>812,470=>712,471=>812,472=>712,473=>812,474=>712,475=>812,476=>712,477=>678,478=>774,479=>675,480=>774,481=>675,482=>1085,483=>1048,484=>821,485=>716,486=>821,487=>716,488=>775,489=>665,490=>850,491=>687,492=>850,493=>687,494=>772,495=>582,496=>343,497=>1555,498=>1412,499=>1298,500=>821,501=>716,502=>1289,503=>787,504=>837,505=>712,506=>774,507=>675,508=>1085,509=>1048,510=>850,511=>687,512=>774,513=>675,514=>774,515=>675,516=>683,517=>678,518=>683,519=>678,520=>372,521=>343,522=>372,523=>343,524=>850,525=>687,526=>850,527=>687,528=>770,529=>493,530=>770,531=>493,532=>812,533=>712,534=>812,535=>712,536=>720,537=>595,538=>682,539=>478,540=>690,541=>607,542=>837,543=>712,544=>837,545=>865,546=>809,547=>659,548=>725,549=>582,550=>774,551=>675,552=>683,553=>678,554=>850,555=>687,556=>850,557=>687,558=>850,559=>687,560=>850,561=>687,562=>724,563=>652,564=>492,565=>867,566=>512,567=>343,568=>1088,569=>1088,570=>774,571=>734,572=>593,573=>637,574=>682,575=>595,576=>582,577=>782,578=>614,579=>762,580=>812,581=>774,582=>683,583=>678,584=>372,585=>343,586=>860,587=>791,588=>770,589=>493,590=>724,591=>652,592=>675,593=>716,594=>716,595=>716,596=>593,597=>593,598=>717,599=>792,600=>678,601=>678,602=>876,603=>557,604=>545,605=>815,606=>731,607=>343,608=>792,609=>716,610=>627,611=>644,612=>635,613=>712,614=>712,615=>712,616=>545,617=>440,618=>545,619=>559,620=>693,621=>343,622=>841,623=>1042,624=>1042,625=>1042,626=>712,627=>793,628=>707,629=>687,630=>909,631=>681,632=>796,633=>538,634=>538,635=>650,636=>493,637=>493,638=>596,639=>596,640=>642,641=>642,642=>595,643=>415,644=>435,645=>605,646=>552,647=>478,648=>478,649=>920,650=>772,651=>670,652=>652,653=>924,654=>652,655=>724,656=>694,657=>684,658=>641,659=>641,660=>573,661=>573,662=>573,663=>573,664=>850,665=>633,666=>731,667=>685,668=>691,669=>343,670=>732,671=>539,672=>792,673=>573,674=>573,675=>1156,676=>1214,677=>1155,678=>975,679=>769,680=>929,681=>1026,682=>862,683=>780,684=>591,685=>415,686=>677,687=>789,688=>456,689=>456,690=>219,691=>315,692=>315,693=>315,694=>411,695=>591,696=>417,697=>302,698=>521,699=>380,700=>380,701=>380,702=>366,703=>366,704=>326,705=>326,706=>500,707=>500,708=>500,709=>500,710=>500,711=>500,712=>306,713=>500,714=>500,715=>500,716=>306,717=>500,718=>500,719=>500,720=>337,721=>337,722=>366,723=>366,724=>500,725=>500,726=>416,727=>328,728=>500,729=>500,730=>500,731=>500,732=>500,733=>500,734=>351,735=>500,736=>412,737=>219,738=>381,739=>413,740=>326,741=>500,742=>500,743=>500,744=>500,745=>500,748=>500,749=>500,750=>657,755=>500,759=>500,768=>0,769=>0,770=>0,771=>0,772=>0,773=>0,774=>0,775=>0,776=>0,777=>0,778=>0,779=>0,780=>0,781=>0,782=>0,783=>0,784=>0,785=>0,786=>0,787=>0,788=>0,789=>0,790=>0,791=>0,792=>0,793=>0,794=>0,795=>0,796=>0,797=>0,798=>0,799=>0,800=>0,801=>0,802=>0,803=>0,804=>0,805=>0,806=>0,807=>0,808=>0,809=>0,810=>0,811=>0,812=>0,813=>0,814=>0,815=>0,816=>0,817=>0,818=>0,819=>0,820=>0,821=>0,822=>0,823=>0,824=>0,825=>0,826=>0,827=>0,828=>0,829=>0,830=>0,831=>0,832=>0,833=>0,834=>0,835=>0,836=>0,837=>0,838=>0,839=>0,840=>0,841=>0,842=>0,843=>0,844=>0,845=>0,846=>0,847=>0,849=>0,850=>0,851=>0,855=>0,856=>0,858=>0,860=>0,861=>0,862=>0,863=>0,864=>0,865=>0,866=>0,880=>698,881=>565,882=>1022,883=>836,884=>302,885=>302,886=>837,887=>701,890=>500,891=>593,892=>550,893=>549,894=>400,900=>441,901=>500,902=>797,903=>380,904=>846,905=>1009,906=>563,908=>891,910=>980,911=>894,912=>390,913=>774,914=>762,915=>637,916=>774,917=>683,918=>725,919=>837,920=>850,921=>372,922=>775,923=>774,924=>995,925=>837,926=>632,927=>850,928=>837,929=>733,931=>683,932=>682,933=>724,934=>850,935=>771,936=>850,937=>850,938=>372,939=>724,940=>687,941=>557,942=>712,943=>390,944=>675,945=>687,946=>716,947=>681,948=>687,949=>557,950=>591,951=>712,952=>687,953=>390,954=>710,955=>633,956=>736,957=>681,958=>591,959=>687,960=>791,961=>716,962=>593,963=>779,964=>638,965=>675,966=>782,967=>645,968=>794,969=>869,970=>390,971=>675,972=>687,973=>675,974=>869,975=>775,976=>651,977=>661,978=>746,979=>981,980=>746,981=>796,982=>869,983=>744,984=>850,985=>687,986=>734,987=>593,988=>683,989=>494,990=>702,991=>660,992=>919,993=>627,994=>1093,995=>837,996=>832,997=>716,998=>928,999=>744,1000=>733,1001=>650,1002=>789,1003=>671,1004=>752,1005=>716,1006=>682,1007=>590,1008=>744,1009=>716,1010=>593,1011=>343,1012=>850,1013=>645,1014=>644,1015=>738,1016=>716,1017=>734,1018=>995,1019=>732,1020=>716,1021=>698,1022=>734,1023=>698,1024=>683,1025=>683,1026=>878,1027=>637,1028=>734,1029=>720,1030=>372,1031=>372,1032=>372,1033=>1154,1034=>1130,1035=>878,1036=>817,1037=>837,1038=>771,1039=>837,1040=>774,1041=>762,1042=>762,1043=>637,1044=>891,1045=>683,1046=>1224,1047=>710,1048=>837,1049=>837,1050=>817,1051=>831,1052=>995,1053=>837,1054=>850,1055=>837,1056=>733,1057=>734,1058=>682,1059=>771,1060=>992,1061=>771,1062=>928,1063=>808,1064=>1235,1065=>1326,1066=>939,1067=>1036,1068=>762,1069=>734,1070=>1174,1071=>770,1072=>675,1073=>698,1074=>633,1075=>522,1076=>808,1077=>678,1078=>995,1079=>581,1080=>701,1081=>701,1082=>679,1083=>732,1084=>817,1085=>691,1086=>687,1087=>691,1088=>716,1089=>593,1090=>580,1091=>652,1092=>992,1093=>645,1094=>741,1095=>687,1096=>1062,1097=>1105,1098=>751,1099=>904,1100=>632,1101=>593,1102=>972,1103=>642,1104=>678,1105=>678,1106=>714,1107=>522,1108=>593,1109=>595,1110=>343,1111=>343,1112=>343,1113=>991,1114=>956,1115=>734,1116=>679,1117=>701,1118=>652,1119=>691,1120=>1093,1121=>869,1122=>840,1123=>736,1124=>1012,1125=>839,1126=>992,1127=>832,1128=>1358,1129=>1121,1130=>850,1131=>687,1132=>1236,1133=>1007,1134=>696,1135=>557,1136=>1075,1137=>1061,1138=>850,1139=>687,1140=>850,1141=>695,1142=>850,1143=>695,1144=>1148,1145=>1043,1146=>1074,1147=>863,1148=>1405,1149=>1173,1150=>1093,1151=>869,1152=>734,1153=>593,1154=>652,1155=>0,1156=>0,1157=>0,1158=>0,1159=>0,1160=>418,1161=>418,1162=>957,1163=>807,1164=>762,1165=>611,1166=>733,1167=>716,1168=>637,1169=>522,1170=>666,1171=>543,1172=>808,1173=>669,1174=>1224,1175=>995,1176=>710,1177=>581,1178=>775,1179=>679,1180=>817,1181=>679,1182=>817,1183=>679,1184=>1015,1185=>826,1186=>956,1187=>808,1188=>1103,1189=>874,1190=>1273,1191=>1017,1192=>952,1193=>858,1194=>734,1195=>593,1196=>682,1197=>580,1198=>724,1199=>652,1200=>724,1201=>652,1202=>771,1203=>645,1204=>1112,1205=>1000,1206=>808,1207=>687,1208=>808,1209=>687,1210=>808,1211=>712,1212=>1026,1213=>810,1214=>1026,1215=>810,1216=>372,1217=>1224,1218=>995,1219=>775,1220=>630,1221=>951,1222=>805,1223=>837,1224=>691,1225=>957,1226=>807,1227=>808,1228=>687,1229=>1115,1230=>933,1231=>343,1232=>774,1233=>675,1234=>774,1235=>675,1236=>1085,1237=>1048,1238=>683,1239=>678,1240=>849,1241=>678,1242=>849,1243=>678,1244=>1224,1245=>995,1246=>710,1247=>581,1248=>772,1249=>641,1250=>837,1251=>701,1252=>837,1253=>701,1254=>850,1255=>687,1256=>850,1257=>687,1258=>850,1259=>687,1260=>734,1261=>593,1262=>771,1263=>652,1264=>771,1265=>652,1266=>771,1267=>652,1268=>808,1269=>687,1270=>637,1271=>522,1272=>1036,1273=>904,1274=>666,1275=>543,1276=>771,1277=>645,1278=>771,1279=>645,1280=>762,1281=>608,1282=>1159,1283=>893,1284=>1119,1285=>920,1286=>828,1287=>693,1288=>1242,1289=>1017,1290=>1289,1291=>1013,1292=>839,1293=>638,1294=>938,1295=>803,1296=>696,1297=>557,1298=>831,1299=>732,1300=>1286,1301=>1068,1302=>1065,1303=>979,1304=>1082,1305=>1013,1306=>850,1307=>716,1308=>1103,1309=>924,1310=>817,1311=>679,1312=>1267,1313=>1059,1314=>1273,1315=>1017,1316=>957,1317=>807,1329=>813,1330=>729,1331=>728,1332=>731,1333=>729,1334=>733,1335=>652,1336=>720,1337=>903,1338=>728,1339=>666,1340=>558,1341=>961,1342=>788,1343=>713,1344=>651,1345=>730,1346=>715,1347=>704,1348=>780,1349=>689,1350=>715,1351=>708,1352=>731,1353=>677,1354=>867,1355=>711,1356=>780,1357=>731,1358=>715,1359=>693,1360=>666,1361=>698,1362=>576,1363=>833,1364=>698,1365=>763,1366=>855,1369=>330,1370=>342,1371=>308,1372=>374,1373=>313,1374=>461,1375=>468,1377=>938,1378=>642,1379=>704,1380=>708,1381=>642,1382=>644,1383=>565,1384=>642,1385=>756,1386=>704,1387=>643,1388=>310,1389=>984,1390=>638,1391=>643,1392=>643,1393=>603,1394=>643,1395=>642,1396=>643,1397=>309,1398=>643,1399=>486,1400=>643,1401=>366,1402=>938,1403=>573,1404=>666,1405=>643,1406=>643,1407=>934,1408=>643,1409=>643,1410=>479,1411=>934,1412=>648,1413=>620,1414=>813,1415=>812,1417=>360,1418=>374,1456=>0,1457=>0,1458=>0,1459=>0,1460=>0,1461=>0,1462=>0,1463=>0,1464=>0,1465=>0,1466=>0,1467=>0,1468=>0,1469=>0,1470=>415,1471=>0,1472=>372,1473=>0,1474=>0,1475=>372,1478=>497,1479=>0,1488=>728,1489=>610,1490=>447,1491=>588,1492=>687,1493=>343,1494=>400,1495=>687,1496=>679,1497=>294,1498=>578,1499=>566,1500=>605,1501=>696,1502=>724,1503=>343,1504=>453,1505=>680,1506=>666,1507=>675,1508=>658,1509=>661,1510=>653,1511=>736,1512=>602,1513=>758,1514=>683,1520=>664,1521=>567,1522=>519,1523=>444,1524=>710,1542=>667,1543=>667,1545=>884,1546=>1157,1548=>380,1557=>0,1563=>400,1567=>580,1569=>511,1570=>343,1571=>343,1572=>622,1573=>343,1574=>917,1575=>343,1576=>1005,1577=>590,1578=>1005,1579=>1005,1580=>721,1581=>721,1582=>721,1583=>513,1584=>513,1585=>576,1586=>576,1587=>1380,1588=>1380,1589=>1345,1590=>1345,1591=>1039,1592=>1039,1593=>683,1594=>683,1600=>342,1601=>1162,1602=>894,1603=>917,1604=>868,1605=>733,1606=>854,1607=>590,1608=>622,1609=>917,1610=>917,1611=>0,1612=>0,1613=>0,1614=>0,1615=>0,1616=>0,1617=>0,1618=>0,1619=>0,1620=>0,1621=>0,1623=>0,1626=>500,1632=>610,1633=>610,1634=>610,1635=>610,1636=>610,1637=>610,1638=>610,1639=>610,1640=>610,1641=>610,1642=>610,1643=>374,1644=>380,1645=>545,1646=>1005,1647=>894,1648=>0,1652=>292,1657=>1005,1658=>1005,1659=>1005,1660=>1005,1661=>1005,1662=>1005,1663=>1005,1664=>1005,1665=>721,1666=>721,1667=>721,1668=>721,1669=>721,1670=>721,1671=>721,1672=>445,1673=>445,1674=>445,1675=>445,1676=>445,1677=>445,1678=>445,1679=>445,1680=>445,1681=>576,1682=>576,1683=>576,1684=>576,1685=>681,1686=>576,1687=>576,1688=>576,1689=>576,1690=>1380,1691=>1380,1692=>1380,1693=>1345,1694=>1345,1695=>1039,1696=>683,1697=>1162,1698=>1162,1699=>1162,1700=>1162,1701=>1162,1702=>1162,1703=>894,1704=>894,1705=>1024,1706=>1271,1707=>1024,1708=>917,1709=>917,1710=>917,1711=>1024,1712=>1024,1713=>1024,1714=>1024,1715=>1024,1716=>1024,1717=>868,1718=>868,1719=>868,1720=>868,1721=>854,1722=>854,1723=>854,1724=>854,1725=>854,1726=>938,1727=>721,1734=>622,1740=>917,1742=>917,1749=>590,1776=>610,1777=>610,1778=>610,1779=>610,1780=>610,1781=>610,1782=>610,1783=>610,1784=>610,1785=>610,1984=>696,1985=>696,1986=>696,1987=>696,1988=>696,1989=>696,1990=>696,1991=>696,1992=>696,1993=>696,1994=>343,1995=>547,1996=>543,1997=>652,1998=>691,1999=>691,2000=>594,2001=>691,2002=>904,2003=>551,2004=>551,2005=>627,2006=>688,2007=>444,2008=>1022,2009=>506,2010=>826,2011=>691,2012=>652,2013=>912,2014=>627,2015=>707,2016=>506,2017=>652,2018=>574,2019=>627,2020=>627,2021=>627,2022=>574,2023=>574,2027=>0,2028=>0,2029=>0,2030=>0,2031=>0,2032=>0,2033=>0,2034=>0,2035=>0,2036=>380,2037=>380,2040=>691,2041=>691,2042=>415,3647=>696,3713=>790,3714=>748,3716=>749,3719=>569,3720=>742,3722=>744,3725=>761,3732=>706,3733=>704,3734=>747,3735=>819,3737=>730,3738=>727,3739=>727,3740=>922,3741=>827,3742=>866,3743=>866,3745=>836,3746=>761,3747=>770,3749=>769,3751=>713,3754=>827,3755=>1031,3757=>724,3758=>784,3759=>934,3760=>688,3761=>0,3762=>610,3763=>610,3764=>0,3765=>0,3766=>0,3767=>0,3768=>0,3769=>0,3771=>0,3772=>0,3773=>670,3776=>516,3777=>860,3778=>516,3779=>650,3780=>632,3782=>759,3784=>0,3785=>0,3786=>0,3787=>0,3788=>0,3789=>0,3792=>771,3793=>771,3794=>693,3795=>836,3796=>729,3797=>729,3798=>849,3799=>790,3800=>759,3801=>910,3804=>1363,3805=>1363,4256=>874,4257=>733,4258=>679,4259=>834,4260=>615,4261=>768,4262=>753,4263=>914,4264=>453,4265=>620,4266=>843,4267=>882,4268=>625,4269=>854,4270=>781,4271=>629,4272=>912,4273=>621,4274=>620,4275=>854,4276=>866,4277=>724,4278=>630,4279=>621,4280=>625,4281=>620,4282=>818,4283=>874,4284=>615,4285=>623,4286=>625,4287=>725,4288=>844,4289=>596,4290=>688,4291=>596,4292=>594,4293=>738,4304=>554,4305=>563,4306=>622,4307=>834,4308=>555,4309=>564,4310=>551,4311=>828,4312=>563,4313=>556,4314=>1074,4315=>568,4316=>568,4317=>814,4318=>554,4319=>563,4320=>823,4321=>568,4322=>700,4323=>591,4324=>852,4325=>560,4326=>814,4327=>563,4328=>553,4329=>568,4330=>622,4331=>568,4332=>553,4333=>566,4334=>568,4335=>540,4336=>554,4337=>559,4338=>553,4339=>554,4340=>553,4341=>587,4342=>853,4343=>604,4344=>563,4345=>622,4346=>554,4347=>448,4348=>324,5121=>774,5122=>774,5123=>774,5124=>774,5125=>905,5126=>905,5127=>905,5129=>905,5130=>905,5131=>905,5132=>1018,5133=>1009,5134=>1018,5135=>1009,5136=>1018,5137=>1009,5138=>1149,5139=>1140,5140=>1149,5141=>1140,5142=>905,5143=>1149,5144=>1142,5145=>1149,5146=>1142,5147=>905,5149=>310,5150=>529,5151=>425,5152=>425,5153=>395,5154=>395,5155=>395,5156=>395,5157=>564,5158=>470,5159=>310,5160=>395,5161=>395,5162=>395,5163=>1213,5164=>986,5165=>1216,5166=>1297,5167=>774,5168=>774,5169=>774,5170=>774,5171=>886,5172=>886,5173=>886,5175=>886,5176=>886,5177=>886,5178=>1018,5179=>1009,5180=>1018,5181=>1009,5182=>1018,5183=>1009,5184=>1149,5185=>1140,5186=>1149,5187=>1140,5188=>1149,5189=>1142,5190=>1149,5191=>1142,5192=>886,5193=>576,5194=>229,5196=>812,5197=>812,5198=>812,5199=>812,5200=>815,5201=>815,5202=>815,5204=>815,5205=>815,5206=>815,5207=>1056,5208=>1048,5209=>1056,5210=>1048,5211=>1056,5212=>1048,5213=>1060,5214=>1054,5215=>1060,5216=>1054,5217=>1060,5218=>1052,5219=>1060,5220=>1052,5221=>1060,5222=>483,5223=>1005,5224=>1005,5225=>1023,5226=>1017,5227=>743,5228=>743,5229=>743,5230=>743,5231=>743,5232=>743,5233=>743,5234=>743,5235=>743,5236=>1029,5237=>975,5238=>980,5239=>975,5240=>980,5241=>975,5242=>1029,5243=>975,5244=>1029,5245=>975,5246=>980,5247=>975,5248=>980,5249=>975,5250=>980,5251=>501,5252=>501,5253=>938,5254=>938,5255=>938,5256=>938,5257=>743,5258=>743,5259=>743,5260=>743,5261=>743,5262=>743,5263=>743,5264=>743,5265=>743,5266=>1029,5267=>975,5268=>1029,5269=>975,5270=>1029,5271=>975,5272=>1029,5273=>975,5274=>1029,5275=>975,5276=>1029,5277=>975,5278=>1029,5279=>975,5280=>1029,5281=>501,5282=>501,5283=>626,5284=>626,5285=>626,5286=>626,5287=>626,5288=>626,5289=>626,5290=>626,5291=>626,5292=>881,5293=>854,5294=>863,5295=>874,5296=>863,5297=>874,5298=>881,5299=>874,5300=>881,5301=>874,5302=>863,5303=>874,5304=>863,5305=>874,5306=>863,5307=>436,5308=>548,5309=>436,5312=>988,5313=>988,5314=>988,5315=>988,5316=>931,5317=>931,5318=>931,5319=>931,5320=>931,5321=>1238,5322=>1247,5323=>1200,5324=>1228,5325=>1200,5326=>1228,5327=>931,5328=>660,5329=>497,5330=>660,5331=>988,5332=>988,5333=>988,5334=>988,5335=>931,5336=>931,5337=>931,5338=>931,5339=>931,5340=>1231,5341=>1247,5342=>1283,5343=>1228,5344=>1283,5345=>1228,5346=>1228,5347=>1214,5348=>1228,5349=>1214,5350=>1283,5351=>1228,5352=>1283,5353=>1228,5354=>660,5356=>886,5357=>730,5358=>730,5359=>730,5360=>730,5361=>730,5362=>730,5363=>730,5364=>730,5365=>730,5366=>998,5367=>958,5368=>967,5369=>989,5370=>967,5371=>989,5372=>998,5373=>958,5374=>998,5375=>958,5376=>967,5377=>989,5378=>967,5379=>989,5380=>967,5381=>493,5382=>460,5383=>493,5392=>923,5393=>923,5394=>923,5395=>1136,5396=>1136,5397=>1136,5398=>1136,5399=>1209,5400=>1202,5401=>1209,5402=>1202,5403=>1209,5404=>1202,5405=>1431,5406=>1420,5407=>1431,5408=>1420,5409=>1431,5410=>1420,5411=>1431,5412=>1420,5413=>746,5414=>776,5415=>776,5416=>776,5417=>776,5418=>776,5419=>776,5420=>776,5421=>776,5422=>776,5423=>1003,5424=>1003,5425=>1013,5426=>996,5427=>1013,5428=>996,5429=>1003,5430=>1003,5431=>1003,5432=>1003,5433=>1013,5434=>996,5435=>1013,5436=>996,5437=>1013,5438=>495,5440=>395,5441=>510,5442=>1033,5443=>1033,5444=>976,5445=>976,5446=>976,5447=>976,5448=>733,5449=>733,5450=>733,5451=>733,5452=>733,5453=>733,5454=>1003,5455=>959,5456=>495,5458=>886,5459=>774,5460=>774,5461=>774,5462=>774,5463=>928,5464=>928,5465=>928,5466=>928,5467=>1172,5468=>1142,5469=>602,5470=>812,5471=>812,5472=>812,5473=>812,5474=>812,5475=>812,5476=>815,5477=>815,5478=>815,5479=>815,5480=>1060,5481=>1052,5482=>548,5492=>977,5493=>977,5494=>977,5495=>977,5496=>977,5497=>977,5498=>977,5499=>618,5500=>837,5501=>510,5502=>1238,5503=>1238,5504=>1238,5505=>1238,5506=>1238,5507=>1238,5508=>1238,5509=>989,5514=>977,5515=>977,5516=>977,5517=>977,5518=>1591,5519=>1591,5520=>1591,5521=>1295,5522=>1295,5523=>1591,5524=>1591,5525=>848,5526=>1273,5536=>988,5537=>988,5538=>931,5539=>931,5540=>931,5541=>931,5542=>660,5543=>776,5544=>776,5545=>776,5546=>776,5547=>776,5548=>776,5549=>776,5550=>495,5551=>743,5598=>830,5601=>830,5702=>496,5703=>496,5742=>413,5743=>1238,5744=>1591,5745=>2016,5746=>2016,5747=>1720,5748=>1678,5749=>2016,5750=>2016,5760=>543,5761=>637,5762=>945,5763=>1254,5764=>1563,5765=>1871,5766=>627,5767=>936,5768=>1254,5769=>1559,5770=>1871,5771=>569,5772=>877,5773=>1187,5774=>1497,5775=>1807,5776=>637,5777=>945,5778=>1240,5779=>1555,5780=>1871,5781=>569,5782=>569,5783=>789,5784=>1234,5785=>1559,5786=>740,5787=>638,5788=>638,7424=>652,7425=>833,7426=>1048,7427=>608,7428=>593,7429=>676,7430=>676,7431=>559,7432=>557,7433=>343,7434=>494,7435=>665,7436=>539,7437=>817,7438=>701,7439=>687,7440=>593,7441=>660,7442=>660,7443=>660,7444=>1094,7446=>687,7447=>687,7448=>556,7449=>642,7450=>642,7451=>580,7452=>634,7453=>737,7454=>948,7455=>695,7456=>652,7457=>924,7458=>582,7459=>646,7462=>539,7463=>652,7464=>691,7465=>556,7466=>781,7467=>732,7468=>487,7469=>683,7470=>480,7472=>523,7473=>430,7474=>430,7475=>517,7476=>527,7477=>234,7478=>234,7479=>488,7480=>401,7481=>626,7482=>527,7483=>527,7484=>535,7485=>509,7486=>461,7487=>485,7488=>430,7489=>511,7490=>695,7491=>458,7492=>458,7493=>479,7494=>712,7495=>479,7496=>479,7497=>479,7498=>479,7499=>386,7500=>386,7501=>479,7502=>219,7503=>487,7504=>664,7505=>456,7506=>488,7507=>414,7508=>488,7509=>488,7510=>479,7511=>388,7512=>456,7513=>462,7514=>664,7515=>501,7517=>451,7518=>429,7519=>433,7520=>493,7521=>406,7522=>219,7523=>315,7524=>456,7525=>501,7526=>451,7527=>429,7528=>451,7529=>493,7530=>406,7543=>716,7544=>527,7547=>545,7549=>747,7557=>514,7579=>479,7580=>414,7581=>414,7582=>488,7583=>386,7584=>377,7585=>348,7586=>479,7587=>456,7588=>347,7589=>281,7590=>347,7591=>347,7592=>431,7593=>326,7594=>330,7595=>370,7596=>664,7597=>664,7598=>562,7599=>562,7600=>448,7601=>488,7602=>542,7603=>422,7604=>396,7605=>388,7606=>583,7607=>494,7608=>399,7609=>451,7610=>501,7611=>417,7612=>523,7613=>470,7614=>455,7615=>425,7620=>0,7621=>0,7622=>0,7623=>0,7624=>0,7625=>0,7680=>774,7681=>675,7682=>762,7683=>716,7684=>762,7685=>716,7686=>762,7687=>716,7688=>734,7689=>593,7690=>830,7691=>716,7692=>830,7693=>716,7694=>830,7695=>716,7696=>830,7697=>716,7698=>830,7699=>716,7700=>683,7701=>678,7702=>683,7703=>678,7704=>683,7705=>678,7706=>683,7707=>678,7708=>683,7709=>678,7710=>683,7711=>435,7712=>821,7713=>716,7714=>837,7715=>712,7716=>837,7717=>712,7718=>837,7719=>712,7720=>837,7721=>712,7722=>837,7723=>712,7724=>372,7725=>343,7726=>372,7727=>343,7728=>775,7729=>665,7730=>775,7731=>665,7732=>775,7733=>665,7734=>637,7735=>343,7736=>637,7737=>343,7738=>637,7739=>343,7740=>637,7741=>343,7742=>995,7743=>1042,7744=>995,7745=>1042,7746=>995,7747=>1042,7748=>837,7749=>712,7750=>837,7751=>712,7752=>837,7753=>712,7754=>837,7755=>712,7756=>850,7757=>687,7758=>850,7759=>687,7760=>850,7761=>687,7762=>850,7763=>687,7764=>733,7765=>716,7766=>733,7767=>716,7768=>770,7769=>493,7770=>770,7771=>493,7772=>770,7773=>493,7774=>770,7775=>493,7776=>720,7777=>595,7778=>720,7779=>595,7780=>720,7781=>595,7782=>720,7783=>595,7784=>720,7785=>595,7786=>682,7787=>478,7788=>682,7789=>478,7790=>682,7791=>478,7792=>682,7793=>478,7794=>812,7795=>712,7796=>812,7797=>712,7798=>812,7799=>712,7800=>812,7801=>712,7802=>812,7803=>712,7804=>774,7805=>652,7806=>774,7807=>652,7808=>1103,7809=>924,7810=>1103,7811=>924,7812=>1103,7813=>924,7814=>1103,7815=>924,7816=>1103,7817=>924,7818=>771,7819=>645,7820=>771,7821=>645,7822=>724,7823=>652,7824=>725,7825=>582,7826=>725,7827=>582,7828=>725,7829=>582,7830=>712,7831=>478,7832=>924,7833=>652,7834=>675,7835=>435,7836=>435,7837=>435,7838=>896,7839=>687,7840=>774,7841=>675,7842=>774,7843=>675,7844=>774,7845=>675,7846=>774,7847=>675,7848=>774,7849=>675,7850=>774,7851=>675,7852=>774,7853=>675,7854=>774,7855=>675,7856=>774,7857=>675,7858=>774,7859=>675,7860=>774,7861=>675,7862=>774,7863=>675,7864=>683,7865=>678,7866=>683,7867=>678,7868=>683,7869=>678,7870=>683,7871=>678,7872=>683,7873=>678,7874=>683,7875=>678,7876=>683,7877=>678,7878=>683,7879=>678,7880=>372,7881=>343,7882=>372,7883=>343,7884=>850,7885=>687,7886=>850,7887=>687,7888=>850,7889=>687,7890=>850,7891=>687,7892=>850,7893=>687,7894=>850,7895=>687,7896=>850,7897=>687,7898=>874,7899=>687,7900=>874,7901=>687,7902=>874,7903=>687,7904=>874,7905=>687,7906=>874,7907=>687,7908=>812,7909=>712,7910=>812,7911=>712,7912=>835,7913=>712,7914=>835,7915=>712,7916=>835,7917=>712,7918=>835,7919=>712,7920=>835,7921=>712,7922=>724,7923=>652,7924=>724,7925=>652,7926=>724,7927=>652,7928=>724,7929=>652,7930=>953,7931=>644,7936=>687,7937=>687,7938=>687,7939=>687,7940=>687,7941=>687,7942=>687,7943=>687,7944=>774,7945=>774,7946=>1041,7947=>1043,7948=>935,7949=>963,7950=>835,7951=>859,7952=>557,7953=>557,7954=>557,7955=>557,7956=>557,7957=>557,7960=>792,7961=>794,7962=>1100,7963=>1096,7964=>1023,7965=>1052,7968=>712,7969=>712,7970=>712,7971=>712,7972=>712,7973=>712,7974=>712,7975=>712,7976=>945,7977=>951,7978=>1250,7979=>1250,7980=>1180,7981=>1206,7982=>1054,7983=>1063,7984=>390,7985=>390,7986=>390,7987=>390,7988=>390,7989=>390,7990=>390,7991=>390,7992=>483,7993=>489,7994=>777,7995=>785,7996=>712,7997=>738,7998=>604,7999=>604,8000=>687,8001=>687,8002=>687,8003=>687,8004=>687,8005=>687,8008=>892,8009=>933,8010=>1221,8011=>1224,8012=>1053,8013=>1082,8016=>675,8017=>675,8018=>675,8019=>675,8020=>675,8021=>675,8022=>675,8023=>675,8025=>930,8027=>1184,8029=>1199,8031=>1049,8032=>869,8033=>869,8034=>869,8035=>869,8036=>869,8037=>869,8038=>869,8039=>869,8040=>909,8041=>958,8042=>1246,8043=>1251,8044=>1076,8045=>1105,8046=>1028,8047=>1076,8048=>687,8049=>687,8050=>557,8051=>557,8052=>712,8053=>712,8054=>390,8055=>390,8056=>687,8057=>687,8058=>675,8059=>675,8060=>869,8061=>869,8064=>687,8065=>687,8066=>687,8067=>687,8068=>687,8069=>687,8070=>687,8071=>687,8072=>774,8073=>774,8074=>1041,8075=>1043,8076=>935,8077=>963,8078=>835,8079=>859,8080=>712,8081=>712,8082=>712,8083=>712,8084=>712,8085=>712,8086=>712,8087=>712,8088=>945,8089=>951,8090=>1250,8091=>1250,8092=>1180,8093=>1206,8094=>1054,8095=>1063,8096=>869,8097=>869,8098=>869,8099=>869,8100=>869,8101=>869,8102=>869,8103=>869,8104=>909,8105=>958,8106=>1246,8107=>1251,8108=>1076,8109=>1105,8110=>1028,8111=>1076,8112=>687,8113=>687,8114=>687,8115=>687,8116=>687,8118=>687,8119=>687,8120=>774,8121=>774,8122=>876,8123=>797,8124=>774,8125=>500,8126=>500,8127=>500,8128=>500,8129=>500,8130=>712,8131=>712,8132=>712,8134=>712,8135=>712,8136=>929,8137=>846,8138=>1080,8139=>1009,8140=>837,8141=>500,8142=>500,8143=>500,8144=>390,8145=>390,8146=>390,8147=>390,8150=>390,8151=>390,8152=>372,8153=>372,8154=>621,8155=>563,8157=>500,8158=>500,8159=>500,8160=>675,8161=>675,8162=>675,8163=>675,8164=>716,8165=>716,8166=>675,8167=>675,8168=>724,8169=>724,8170=>1020,8171=>980,8172=>838,8173=>500,8174=>500,8175=>500,8178=>869,8179=>869,8180=>869,8182=>869,8183=>869,8184=>1065,8185=>891,8186=>1084,8187=>894,8188=>850,8189=>500,8190=>500,8192=>500,8193=>1000,8194=>500,8195=>1000,8196=>330,8197=>250,8198=>167,8199=>696,8200=>380,8201=>200,8202=>100,8203=>0,8204=>0,8205=>0,8206=>0,8207=>0,8208=>415,8209=>415,8210=>696,8211=>500,8212=>1000,8213=>1000,8214=>500,8215=>500,8216=>380,8217=>380,8218=>380,8219=>380,8220=>657,8221=>657,8222=>657,8223=>657,8224=>500,8225=>500,8226=>639,8227=>639,8228=>333,8229=>667,8230=>1000,8231=>348,8232=>0,8233=>0,8234=>0,8235=>0,8236=>0,8237=>0,8238=>0,8239=>200,8240=>1440,8241=>1887,8242=>264,8243=>447,8244=>630,8245=>264,8246=>447,8247=>630,8248=>733,8249=>412,8250=>412,8251=>972,8252=>627,8253=>580,8254=>500,8255=>828,8256=>828,8257=>329,8258=>1023,8259=>500,8260=>167,8261=>457,8262=>457,8263=>1030,8264=>829,8265=>829,8266=>513,8267=>636,8268=>500,8269=>500,8270=>523,8271=>400,8272=>828,8273=>523,8274=>556,8275=>1000,8276=>828,8277=>838,8278=>684,8279=>813,8280=>838,8281=>838,8282=>380,8283=>872,8284=>838,8285=>380,8286=>380,8287=>222,8288=>0,8289=>0,8290=>0,8291=>0,8292=>0,8298=>0,8299=>0,8300=>0,8301=>0,8302=>0,8303=>0,8304=>438,8305=>219,8308=>438,8309=>438,8310=>438,8311=>438,8312=>438,8313=>438,8314=>528,8315=>528,8316=>528,8317=>288,8318=>288,8319=>456,8320=>438,8321=>438,8322=>438,8323=>438,8324=>438,8325=>438,8326=>438,8327=>438,8328=>438,8329=>438,8330=>528,8331=>528,8332=>528,8333=>288,8334=>288,8336=>458,8337=>479,8338=>488,8339=>413,8340=>479,8341=>456,8342=>487,8343=>219,8344=>664,8345=>456,8346=>479,8347=>381,8348=>388,8352=>929,8353=>696,8354=>696,8355=>696,8356=>696,8357=>1042,8358=>837,8359=>1518,8360=>1205,8361=>1103,8362=>904,8363=>696,8364=>696,8365=>696,8366=>696,8367=>1392,8368=>696,8369=>696,8370=>696,8371=>696,8372=>859,8373=>696,8376=>696,8377=>696,8378=>769,8400=>0,8401=>0,8406=>0,8407=>0,8411=>0,8412=>0,8417=>0,8448=>1120,8449=>1170,8450=>734,8451=>1211,8452=>896,8453=>1091,8454=>1144,8455=>614,8456=>698,8457=>1086,8459=>1073,8460=>913,8461=>888,8462=>712,8463=>712,8464=>597,8465=>697,8466=>856,8467=>472,8468=>974,8469=>837,8470=>1203,8471=>1000,8472=>697,8473=>750,8474=>850,8475=>938,8476=>814,8477=>801,8478=>896,8479=>710,8480=>1020,8481=>1281,8482=>1000,8483=>755,8484=>754,8485=>578,8486=>850,8487=>850,8488=>763,8489=>338,8490=>775,8491=>774,8492=>928,8493=>818,8494=>854,8495=>636,8496=>729,8497=>808,8498=>683,8499=>1184,8500=>465,8501=>794,8502=>731,8503=>494,8504=>684,8505=>380,8506=>945,8507=>1348,8508=>790,8509=>737,8510=>654,8511=>863,8512=>840,8513=>775,8514=>557,8515=>637,8516=>760,8517=>830,8518=>716,8519=>678,8520=>343,8521=>343,8523=>872,8526=>547,8528=>1035,8529=>1035,8530=>1483,8531=>1035,8532=>1035,8533=>1035,8534=>1035,8535=>1035,8536=>1035,8537=>1035,8538=>1035,8539=>1035,8540=>1035,8541=>1035,8542=>1035,8543=>615,8544=>372,8545=>659,8546=>945,8547=>1099,8548=>774,8549=>1099,8550=>1386,8551=>1672,8552=>1121,8553=>771,8554=>1120,8555=>1407,8556=>637,8557=>734,8558=>830,8559=>995,8560=>343,8561=>607,8562=>872,8563=>984,8564=>652,8565=>962,8566=>1227,8567=>1491,8568=>969,8569=>645,8570=>969,8571=>1233,8572=>343,8573=>593,8574=>716,8575=>1042,8576=>1289,8577=>830,8578=>1289,8579=>734,8580=>593,8581=>734,8585=>1035,8592=>838,8593=>838,8594=>838,8595=>838,8596=>838,8597=>838,8598=>838,8599=>838,8600=>838,8601=>838,8602=>838,8603=>838,8604=>838,8605=>838,8606=>838,8607=>838,8608=>838,8609=>838,8610=>838,8611=>838,8612=>838,8613=>838,8614=>838,8615=>838,8616=>838,8617=>838,8618=>838,8619=>838,8620=>838,8621=>838,8622=>838,8623=>838,8624=>838,8625=>838,8626=>838,8627=>838,8628=>838,8629=>838,8630=>838,8631=>838,8632=>838,8633=>838,8634=>838,8635=>838,8636=>838,8637=>838,8638=>838,8639=>838,8640=>838,8641=>838,8642=>838,8643=>838,8644=>838,8645=>838,8646=>838,8647=>838,8648=>838,8649=>838,8650=>838,8651=>838,8652=>838,8653=>838,8654=>838,8655=>838,8656=>838,8657=>838,8658=>838,8659=>838,8660=>838,8661=>838,8662=>838,8663=>838,8664=>838,8665=>838,8666=>838,8667=>838,8668=>838,8669=>838,8670=>838,8671=>838,8672=>838,8673=>838,8674=>838,8675=>838,8676=>838,8677=>838,8678=>838,8679=>838,8680=>838,8681=>838,8682=>838,8683=>838,8684=>838,8685=>838,8686=>838,8687=>838,8688=>838,8689=>838,8690=>838,8691=>838,8692=>838,8693=>838,8694=>838,8695=>838,8696=>838,8697=>838,8698=>838,8699=>838,8700=>838,8701=>838,8702=>838,8703=>838,8704=>774,8705=>696,8706=>544,8707=>683,8708=>683,8709=>856,8710=>697,8711=>697,8712=>896,8713=>896,8714=>750,8715=>896,8716=>896,8717=>750,8718=>636,8719=>787,8720=>787,8721=>718,8722=>838,8723=>838,8724=>696,8725=>365,8726=>696,8727=>838,8728=>626,8729=>380,8730=>667,8731=>667,8732=>667,8733=>712,8734=>833,8735=>838,8736=>896,8737=>896,8738=>838,8739=>500,8740=>500,8741=>500,8742=>500,8743=>812,8744=>812,8745=>812,8746=>812,8747=>610,8748=>929,8749=>1295,8750=>563,8751=>977,8752=>1313,8753=>563,8754=>563,8755=>563,8756=>696,8757=>696,8758=>294,8759=>696,8760=>838,8761=>838,8762=>838,8763=>838,8764=>838,8765=>838,8766=>838,8767=>838,8768=>375,8769=>838,8770=>838,8771=>838,8772=>838,8773=>838,8774=>838,8775=>838,8776=>838,8777=>838,8778=>838,8779=>838,8780=>838,8781=>838,8782=>838,8783=>838,8784=>838,8785=>838,8786=>838,8787=>838,8788=>1063,8789=>1063,8790=>838,8791=>838,8792=>838,8793=>838,8794=>838,8795=>838,8796=>838,8797=>838,8798=>838,8799=>838,8800=>838,8801=>838,8802=>838,8803=>838,8804=>838,8805=>838,8806=>838,8807=>838,8808=>841,8809=>841,8810=>1047,8811=>1047,8812=>500,8813=>838,8814=>838,8815=>838,8816=>838,8817=>838,8818=>838,8819=>838,8820=>838,8821=>838,8822=>838,8823=>838,8824=>838,8825=>838,8826=>838,8827=>838,8828=>838,8829=>838,8830=>838,8831=>838,8832=>838,8833=>838,8834=>838,8835=>838,8836=>838,8837=>838,8838=>838,8839=>838,8840=>838,8841=>838,8842=>838,8843=>838,8844=>812,8845=>812,8846=>812,8847=>838,8848=>838,8849=>838,8850=>838,8851=>796,8852=>796,8853=>838,8854=>838,8855=>838,8856=>838,8857=>838,8858=>838,8859=>838,8860=>838,8861=>838,8862=>838,8863=>838,8864=>838,8865=>838,8866=>914,8867=>914,8868=>914,8869=>914,8870=>542,8871=>542,8872=>914,8873=>914,8874=>914,8875=>914,8876=>914,8877=>914,8878=>914,8879=>914,8880=>838,8881=>838,8882=>838,8883=>838,8884=>838,8885=>838,8886=>1000,8887=>1000,8888=>838,8889=>838,8890=>542,8891=>812,8892=>812,8893=>812,8894=>838,8895=>838,8896=>843,8897=>843,8898=>843,8899=>843,8900=>494,8901=>380,8902=>626,8903=>838,8904=>1000,8905=>1000,8906=>1000,8907=>1000,8908=>1000,8909=>838,8910=>812,8911=>812,8912=>838,8913=>838,8914=>838,8915=>838,8916=>838,8917=>838,8918=>838,8919=>838,8920=>1422,8921=>1422,8922=>838,8923=>838,8924=>838,8925=>838,8926=>838,8927=>838,8928=>838,8929=>838,8930=>838,8931=>838,8932=>838,8933=>838,8934=>838,8935=>838,8936=>838,8937=>838,8938=>838,8939=>838,8940=>838,8941=>838,8942=>1000,8943=>1000,8944=>1000,8945=>1000,8946=>1158,8947=>896,8948=>750,8949=>896,8950=>896,8951=>750,8952=>896,8953=>896,8954=>1158,8955=>896,8956=>750,8957=>896,8958=>750,8959=>896,8960=>602,8961=>602,8962=>716,8963=>838,8964=>838,8965=>838,8966=>838,8967=>488,8968=>457,8969=>457,8970=>457,8971=>457,8972=>809,8973=>809,8974=>809,8975=>809,8976=>838,8977=>539,8984=>928,8985=>838,8988=>469,8989=>469,8990=>469,8991=>469,8992=>610,8993=>610,8996=>1152,8997=>1152,8998=>1414,8999=>1152,9000=>1443,9003=>1414,9004=>873,9075=>390,9076=>716,9077=>869,9082=>687,9085=>863,9095=>1152,9108=>873,9115=>500,9116=>500,9117=>500,9118=>500,9119=>500,9120=>500,9121=>500,9122=>500,9123=>500,9124=>500,9125=>500,9126=>500,9127=>750,9128=>750,9129=>750,9130=>750,9131=>750,9132=>750,9133=>750,9134=>610,9166=>838,9167=>945,9187=>873,9189=>769,9192=>696,9250=>716,9251=>716,9312=>847,9313=>847,9314=>847,9315=>847,9316=>847,9317=>847,9318=>847,9319=>847,9320=>847,9321=>847,9600=>769,9601=>769,9602=>769,9603=>769,9604=>769,9605=>769,9606=>769,9607=>769,9608=>769,9609=>769,9610=>769,9611=>769,9612=>769,9613=>769,9614=>769,9615=>769,9616=>769,9617=>769,9618=>769,9619=>769,9620=>769,9621=>769,9622=>769,9623=>769,9624=>769,9625=>769,9626=>769,9627=>769,9628=>769,9629=>769,9630=>769,9631=>769,9632=>945,9633=>945,9634=>945,9635=>945,9636=>945,9637=>945,9638=>945,9639=>945,9640=>945,9641=>945,9642=>678,9643=>678,9644=>945,9645=>945,9646=>550,9647=>550,9648=>769,9649=>769,9650=>769,9651=>769,9652=>502,9653=>502,9654=>769,9655=>769,9656=>502,9657=>502,9658=>769,9659=>769,9660=>769,9661=>769,9662=>502,9663=>502,9664=>769,9665=>769,9666=>502,9667=>502,9668=>769,9669=>769,9670=>769,9671=>769,9672=>769,9673=>873,9674=>494,9675=>873,9676=>873,9677=>873,9678=>873,9679=>873,9680=>873,9681=>873,9682=>873,9683=>873,9684=>873,9685=>873,9686=>527,9687=>527,9688=>840,9689=>970,9690=>970,9691=>970,9692=>387,9693=>387,9694=>387,9695=>387,9696=>769,9697=>769,9698=>769,9699=>769,9700=>769,9701=>769,9702=>639,9703=>945,9704=>945,9705=>945,9706=>945,9707=>945,9708=>769,9709=>769,9710=>769,9711=>1119,9712=>945,9713=>945,9714=>945,9715=>945,9716=>873,9717=>873,9718=>873,9719=>873,9720=>769,9721=>769,9722=>769,9723=>830,9724=>830,9725=>732,9726=>732,9727=>769,9728=>896,9729=>1000,9730=>896,9731=>896,9732=>896,9733=>896,9734=>896,9735=>573,9736=>896,9737=>896,9738=>888,9739=>888,9740=>671,9741=>1013,9742=>1246,9743=>1250,9744=>896,9745=>896,9746=>896,9747=>532,9748=>896,9749=>896,9750=>896,9751=>896,9752=>896,9753=>896,9754=>896,9755=>896,9756=>896,9757=>609,9758=>896,9759=>609,9760=>896,9761=>896,9762=>896,9763=>896,9764=>669,9765=>746,9766=>649,9767=>784,9768=>545,9769=>896,9770=>896,9771=>896,9772=>710,9773=>896,9774=>896,9775=>896,9776=>896,9777=>896,9778=>896,9779=>896,9780=>896,9781=>896,9782=>896,9783=>896,9784=>896,9785=>1042,9786=>1042,9787=>1042,9788=>896,9789=>896,9790=>896,9791=>614,9792=>732,9793=>732,9794=>896,9795=>896,9796=>896,9797=>896,9798=>896,9799=>896,9800=>896,9801=>896,9802=>896,9803=>896,9804=>896,9805=>896,9806=>896,9807=>896,9808=>896,9809=>896,9810=>896,9811=>896,9812=>896,9813=>896,9814=>896,9815=>896,9816=>896,9817=>896,9818=>896,9819=>896,9820=>896,9821=>896,9822=>896,9823=>896,9824=>896,9825=>896,9826=>896,9827=>896,9828=>896,9829=>896,9830=>896,9831=>896,9832=>896,9833=>472,9834=>638,9835=>896,9836=>896,9837=>472,9838=>357,9839=>484,9840=>748,9841=>766,9842=>896,9843=>896,9844=>896,9845=>896,9846=>896,9847=>896,9848=>896,9849=>896,9850=>896,9851=>896,9852=>896,9853=>896,9854=>896,9855=>896,9856=>869,9857=>869,9858=>869,9859=>869,9860=>869,9861=>869,9862=>896,9863=>896,9864=>896,9865=>896,9866=>896,9867=>896,9868=>896,9869=>896,9870=>896,9871=>896,9872=>896,9873=>896,9874=>896,9875=>896,9876=>896,9877=>541,9878=>896,9879=>896,9880=>896,9881=>896,9882=>896,9883=>896,9884=>896,9888=>896,9889=>702,9890=>1004,9891=>1089,9892=>1175,9893=>903,9894=>838,9895=>838,9896=>838,9897=>838,9898=>838,9899=>838,9900=>838,9901=>838,9902=>838,9903=>838,9904=>844,9905=>838,9906=>732,9907=>732,9908=>732,9909=>732,9910=>850,9911=>732,9912=>732,9920=>838,9921=>838,9922=>838,9923=>838,9954=>732,9985=>838,9986=>838,9987=>838,9988=>838,9990=>838,9991=>838,9992=>838,9993=>838,9996=>838,9997=>838,9998=>838,9999=>838,10000=>838,10001=>838,10002=>838,10003=>838,10004=>838,10005=>838,10006=>838,10007=>838,10008=>838,10009=>838,10010=>838,10011=>838,10012=>838,10013=>838,10014=>838,10015=>838,10016=>838,10017=>838,10018=>838,10019=>838,10020=>838,10021=>838,10022=>838,10023=>838,10025=>838,10026=>838,10027=>838,10028=>838,10029=>838,10030=>838,10031=>838,10032=>838,10033=>838,10034=>838,10035=>838,10036=>838,10037=>838,10038=>838,10039=>838,10040=>838,10041=>838,10042=>838,10043=>838,10044=>838,10045=>838,10046=>838,10047=>838,10048=>838,10049=>838,10050=>838,10051=>838,10052=>838,10053=>838,10054=>838,10055=>838,10056=>838,10057=>838,10058=>838,10059=>838,10061=>896,10063=>896,10064=>896,10065=>896,10066=>896,10070=>896,10072=>838,10073=>838,10074=>838,10075=>347,10076=>347,10077=>587,10078=>587,10081=>838,10082=>838,10083=>838,10084=>838,10085=>838,10086=>838,10087=>838,10088=>838,10089=>838,10090=>838,10091=>838,10092=>838,10093=>838,10094=>838,10095=>838,10096=>838,10097=>838,10098=>838,10099=>838,10100=>838,10101=>838,10102=>847,10103=>847,10104=>847,10105=>847,10106=>847,10107=>847,10108=>847,10109=>847,10110=>847,10111=>847,10112=>838,10113=>838,10114=>838,10115=>838,10116=>838,10117=>838,10118=>838,10119=>838,10120=>838,10121=>838,10122=>838,10123=>838,10124=>838,10125=>838,10126=>838,10127=>838,10128=>838,10129=>838,10130=>838,10131=>838,10132=>838,10136=>838,10137=>838,10138=>838,10139=>838,10140=>838,10141=>838,10142=>838,10143=>838,10144=>838,10145=>838,10146=>838,10147=>838,10148=>838,10149=>838,10150=>838,10151=>838,10152=>838,10153=>838,10154=>838,10155=>838,10156=>838,10157=>838,10158=>838,10159=>838,10161=>838,10162=>838,10163=>838,10164=>838,10165=>838,10166=>838,10167=>838,10168=>838,10169=>838,10170=>838,10171=>838,10172=>838,10173=>838,10174=>838,10181=>457,10182=>457,10208=>494,10214=>487,10215=>487,10216=>457,10217=>457,10218=>721,10219=>721,10224=>838,10225=>838,10226=>838,10227=>838,10228=>1157,10229=>1434,10230=>1434,10231=>1434,10232=>1434,10233=>1434,10234=>1434,10235=>1434,10236=>1434,10237=>1434,10238=>1434,10239=>1434,10240=>781,10241=>781,10242=>781,10243=>781,10244=>781,10245=>781,10246=>781,10247=>781,10248=>781,10249=>781,10250=>781,10251=>781,10252=>781,10253=>781,10254=>781,10255=>781,10256=>781,10257=>781,10258=>781,10259=>781,10260=>781,10261=>781,10262=>781,10263=>781,10264=>781,10265=>781,10266=>781,10267=>781,10268=>781,10269=>781,10270=>781,10271=>781,10272=>781,10273=>781,10274=>781,10275=>781,10276=>781,10277=>781,10278=>781,10279=>781,10280=>781,10281=>781,10282=>781,10283=>781,10284=>781,10285=>781,10286=>781,10287=>781,10288=>781,10289=>781,10290=>781,10291=>781,10292=>781,10293=>781,10294=>781,10295=>781,10296=>781,10297=>781,10298=>781,10299=>781,10300=>781,10301=>781,10302=>781,10303=>781,10304=>781,10305=>781,10306=>781,10307=>781,10308=>781,10309=>781,10310=>781,10311=>781,10312=>781,10313=>781,10314=>781,10315=>781,10316=>781,10317=>781,10318=>781,10319=>781,10320=>781,10321=>781,10322=>781,10323=>781,10324=>781,10325=>781,10326=>781,10327=>781,10328=>781,10329=>781,10330=>781,10331=>781,10332=>781,10333=>781,10334=>781,10335=>781,10336=>781,10337=>781,10338=>781,10339=>781,10340=>781,10341=>781,10342=>781,10343=>781,10344=>781,10345=>781,10346=>781,10347=>781,10348=>781,10349=>781,10350=>781,10351=>781,10352=>781,10353=>781,10354=>781,10355=>781,10356=>781,10357=>781,10358=>781,10359=>781,10360=>781,10361=>781,10362=>781,10363=>781,10364=>781,10365=>781,10366=>781,10367=>781,10368=>781,10369=>781,10370=>781,10371=>781,10372=>781,10373=>781,10374=>781,10375=>781,10376=>781,10377=>781,10378=>781,10379=>781,10380=>781,10381=>781,10382=>781,10383=>781,10384=>781,10385=>781,10386=>781,10387=>781,10388=>781,10389=>781,10390=>781,10391=>781,10392=>781,10393=>781,10394=>781,10395=>781,10396=>781,10397=>781,10398=>781,10399=>781,10400=>781,10401=>781,10402=>781,10403=>781,10404=>781,10405=>781,10406=>781,10407=>781,10408=>781,10409=>781,10410=>781,10411=>781,10412=>781,10413=>781,10414=>781,10415=>781,10416=>781,10417=>781,10418=>781,10419=>781,10420=>781,10421=>781,10422=>781,10423=>781,10424=>781,10425=>781,10426=>781,10427=>781,10428=>781,10429=>781,10430=>781,10431=>781,10432=>781,10433=>781,10434=>781,10435=>781,10436=>781,10437=>781,10438=>781,10439=>781,10440=>781,10441=>781,10442=>781,10443=>781,10444=>781,10445=>781,10446=>781,10447=>781,10448=>781,10449=>781,10450=>781,10451=>781,10452=>781,10453=>781,10454=>781,10455=>781,10456=>781,10457=>781,10458=>781,10459=>781,10460=>781,10461=>781,10462=>781,10463=>781,10464=>781,10465=>781,10466=>781,10467=>781,10468=>781,10469=>781,10470=>781,10471=>781,10472=>781,10473=>781,10474=>781,10475=>781,10476=>781,10477=>781,10478=>781,10479=>781,10480=>781,10481=>781,10482=>781,10483=>781,10484=>781,10485=>781,10486=>781,10487=>781,10488=>781,10489=>781,10490=>781,10491=>781,10492=>781,10493=>781,10494=>781,10495=>781,10502=>838,10503=>838,10506=>838,10507=>838,10560=>838,10561=>838,10627=>753,10628=>753,10702=>838,10703=>1046,10704=>1046,10705=>1000,10706=>1000,10707=>1000,10708=>1000,10709=>1000,10731=>494,10746=>838,10747=>838,10752=>1000,10753=>1000,10754=>1000,10764=>1661,10765=>563,10766=>563,10767=>563,10768=>563,10769=>563,10770=>563,10771=>563,10772=>563,10773=>563,10774=>563,10775=>563,10776=>563,10777=>563,10778=>563,10779=>563,10780=>563,10799=>838,10858=>838,10859=>838,10877=>838,10878=>838,10879=>838,10880=>838,10881=>838,10882=>838,10883=>838,10884=>838,10885=>838,10886=>838,10887=>838,10888=>838,10889=>838,10890=>838,10891=>838,10892=>838,10893=>838,10894=>838,10895=>838,10896=>838,10897=>838,10898=>838,10899=>838,10900=>838,10901=>838,10902=>838,10903=>838,10904=>838,10905=>838,10906=>838,10907=>838,10908=>838,10909=>838,10910=>838,10911=>838,10912=>838,10926=>838,10927=>838,10928=>838,10929=>838,10930=>838,10931=>838,10932=>838,10933=>838,10934=>838,10935=>838,10936=>838,10937=>838,10938=>838,11001=>838,11002=>838,11008=>838,11009=>838,11010=>838,11011=>838,11012=>838,11013=>838,11014=>838,11015=>838,11016=>838,11017=>838,11018=>838,11019=>838,11020=>838,11021=>838,11022=>838,11023=>838,11024=>838,11025=>838,11026=>945,11027=>945,11028=>945,11029=>945,11030=>769,11031=>769,11032=>769,11033=>769,11034=>945,11039=>869,11040=>869,11041=>873,11042=>873,11043=>873,11044=>1119,11091=>869,11092=>869,11360=>637,11361=>360,11362=>637,11363=>733,11364=>770,11365=>675,11366=>478,11367=>956,11368=>712,11369=>775,11370=>665,11371=>725,11372=>582,11373=>860,11374=>995,11375=>774,11376=>860,11377=>778,11378=>1221,11379=>1056,11380=>652,11381=>698,11382=>565,11383=>782,11385=>538,11386=>687,11387=>559,11388=>219,11389=>487,11390=>720,11391=>725,11520=>663,11521=>676,11522=>661,11523=>629,11524=>661,11525=>1032,11526=>718,11527=>1032,11528=>648,11529=>667,11530=>1032,11531=>673,11532=>677,11533=>1036,11534=>680,11535=>886,11536=>1032,11537=>683,11538=>674,11539=>1035,11540=>1033,11541=>1027,11542=>676,11543=>673,11544=>667,11545=>667,11546=>660,11547=>671,11548=>1039,11549=>673,11550=>692,11551=>659,11552=>1048,11553=>660,11554=>654,11555=>670,11556=>733,11557=>1017,11568=>691,11569=>941,11570=>941,11571=>725,11572=>725,11573=>725,11574=>676,11575=>774,11576=>774,11577=>683,11578=>683,11579=>802,11580=>989,11581=>761,11582=>623,11583=>761,11584=>941,11585=>941,11586=>373,11587=>740,11588=>837,11589=>914,11590=>672,11591=>737,11592=>680,11593=>683,11594=>602,11595=>1039,11596=>778,11597=>837,11598=>683,11599=>372,11600=>778,11601=>373,11602=>725,11603=>691,11604=>941,11605=>941,11606=>837,11607=>373,11608=>836,11609=>941,11610=>941,11611=>734,11612=>876,11613=>771,11614=>734,11615=>683,11616=>774,11617=>837,11618=>683,11619=>850,11620=>697,11621=>850,11631=>716,11800=>580,11807=>838,11810=>457,11811=>457,11812=>457,11813=>457,11822=>580,19904=>896,19905=>896,19906=>896,19907=>896,19908=>896,19909=>896,19910=>896,19911=>896,19912=>896,19913=>896,19914=>896,19915=>896,19916=>896,19917=>896,19918=>896,19919=>896,19920=>896,19921=>896,19922=>896,19923=>896,19924=>896,19925=>896,19926=>896,19927=>896,19928=>896,19929=>896,19930=>896,19931=>896,19932=>896,19933=>896,19934=>896,19935=>896,19936=>896,19937=>896,19938=>896,19939=>896,19940=>896,19941=>896,19942=>896,19943=>896,19944=>896,19945=>896,19946=>896,19947=>896,19948=>896,19949=>896,19950=>896,19951=>896,19952=>896,19953=>896,19954=>896,19955=>896,19956=>896,19957=>896,19958=>896,19959=>896,19960=>896,19961=>896,19962=>896,19963=>896,19964=>896,19965=>896,19966=>896,19967=>896,42192=>762,42193=>733,42194=>733,42195=>830,42196=>682,42197=>682,42198=>821,42199=>775,42200=>775,42201=>530,42202=>734,42203=>734,42204=>725,42205=>683,42206=>683,42207=>995,42208=>837,42209=>637,42210=>720,42211=>770,42212=>770,42213=>774,42214=>774,42215=>837,42216=>775,42217=>530,42218=>1103,42219=>771,42220=>724,42221=>762,42222=>774,42223=>774,42224=>683,42225=>683,42226=>372,42227=>850,42228=>812,42229=>812,42230=>557,42231=>830,42232=>322,42233=>322,42234=>674,42235=>674,42236=>322,42237=>322,42238=>588,42239=>588,42564=>720,42565=>595,42566=>436,42567=>440,42572=>1405,42573=>1173,42576=>1234,42577=>1027,42580=>1174,42581=>972,42582=>1093,42583=>958,42594=>1085,42595=>924,42596=>1096,42597=>912,42598=>1260,42599=>997,42600=>850,42601=>687,42602=>1037,42603=>868,42604=>1406,42605=>1106,42606=>961,42634=>963,42635=>787,42636=>682,42637=>580,42644=>808,42645=>712,42760=>500,42761=>500,42762=>500,42763=>500,42764=>500,42765=>500,42766=>500,42767=>500,42768=>500,42769=>500,42770=>500,42771=>500,42772=>500,42773=>500,42774=>500,42779=>400,42780=>400,42781=>287,42782=>287,42783=>287,42786=>444,42787=>390,42788=>540,42789=>540,42790=>837,42791=>712,42792=>1031,42793=>857,42794=>696,42795=>557,42800=>559,42801=>595,42802=>1349,42803=>1052,42804=>1284,42805=>1064,42806=>1216,42807=>1054,42808=>1079,42809=>922,42810=>1079,42811=>922,42812=>1035,42813=>922,42814=>698,42815=>549,42816=>656,42817=>688,42822=>850,42823=>542,42824=>683,42825=>531,42826=>918,42827=>814,42830=>1406,42831=>1106,42832=>733,42833=>716,42834=>948,42835=>937,42838=>850,42839=>716,42852=>738,42853=>716,42854=>738,42855=>716,42880=>637,42881=>343,42882=>837,42883=>712,42889=>400,42890=>386,42891=>456,42892=>306,42893=>808,42894=>693,42896=>928,42897=>768,42912=>821,42913=>716,42914=>775,42915=>665,42916=>837,42917=>712,42918=>770,42919=>493,42920=>720,42921=>595,42922=>886,43002=>1062,43003=>683,43004=>733,43005=>995,43006=>372,43007=>1325,61184=>216,61185=>242,61186=>267,61187=>277,61188=>282,61189=>242,61190=>216,61191=>242,61192=>267,61193=>277,61194=>267,61195=>242,61196=>216,61197=>242,61198=>267,61199=>277,61200=>267,61201=>242,61202=>216,61203=>242,61204=>282,61205=>277,61206=>267,61207=>242,61208=>216,61209=>282,62464=>612,62465=>612,62466=>653,62467=>902,62468=>622,62469=>622,62470=>661,62471=>895,62472=>589,62473=>622,62474=>1163,62475=>626,62476=>627,62477=>893,62478=>612,62479=>626,62480=>924,62481=>627,62482=>744,62483=>634,62484=>886,62485=>626,62486=>907,62487=>626,62488=>621,62489=>628,62490=>677,62491=>626,62492=>621,62493=>630,62494=>627,62495=>571,62496=>622,62497=>631,62498=>612,62499=>611,62500=>618,62501=>671,62502=>963,62504=>1023,62505=>844,62506=>563,62507=>563,62508=>563,62509=>563,62510=>563,62511=>563,62512=>555,62513=>555,62514=>555,62515=>555,62516=>573,62517=>573,62518=>573,62519=>824,62520=>824,62521=>824,62522=>824,62523=>824,62524=>611,62525=>611,62526=>611,62527=>611,62528=>611,62529=>611,63173=>687,64256=>810,64257=>741,64258=>741,64259=>1115,64260=>1116,64261=>808,64262=>1020,64275=>1388,64276=>1384,64277=>1378,64278=>1384,64279=>1713,64285=>294,64286=>0,64287=>519,64288=>665,64289=>939,64290=>788,64291=>920,64292=>786,64293=>857,64294=>869,64295=>821,64296=>890,64297=>838,64298=>758,64299=>758,64300=>758,64301=>758,64302=>728,64303=>728,64304=>728,64305=>610,64306=>447,64307=>588,64308=>687,64309=>437,64310=>485,64312=>679,64313=>435,64314=>578,64315=>566,64316=>605,64318=>724,64320=>453,64321=>680,64323=>675,64324=>658,64326=>653,64327=>736,64328=>602,64329=>758,64330=>683,64331=>343,64332=>610,64333=>566,64334=>658,64335=>710,64338=>1005,64339=>1059,64340=>375,64341=>408,64342=>1005,64343=>1059,64344=>375,64345=>408,64346=>1005,64347=>1059,64348=>375,64349=>408,64350=>1005,64351=>1059,64352=>375,64353=>408,64354=>1005,64355=>1059,64356=>375,64357=>408,64358=>1005,64359=>1059,64360=>375,64361=>408,64362=>1162,64363=>1191,64364=>655,64365=>720,64366=>1162,64367=>1191,64368=>655,64369=>720,64370=>721,64371=>721,64372=>721,64373=>721,64374=>721,64375=>721,64376=>721,64377=>721,64378=>721,64379=>721,64380=>721,64381=>721,64382=>721,64383=>721,64384=>721,64385=>721,64386=>513,64387=>578,64388=>513,64389=>578,64390=>513,64391=>578,64392=>513,64393=>578,64394=>576,64395=>622,64396=>576,64397=>622,64398=>1024,64399=>1024,64400=>582,64401=>582,64402=>1024,64403=>1024,64404=>582,64405=>582,64406=>1024,64407=>1024,64408=>582,64409=>582,64410=>1024,64411=>1024,64412=>582,64413=>582,64414=>854,64415=>900,64416=>854,64417=>900,64418=>375,64419=>408,64426=>938,64427=>880,64428=>693,64429=>660,64467=>824,64468=>843,64469=>476,64470=>552,64473=>622,64474=>627,64488=>375,64489=>408,64508=>917,64509=>1012,64510=>375,64511=>408,65024=>0,65025=>0,65026=>0,65027=>0,65028=>0,65029=>0,65030=>0,65031=>0,65032=>0,65033=>0,65034=>0,65035=>0,65036=>0,65037=>0,65038=>0,65039=>0,65056=>0,65057=>0,65058=>0,65059=>0,65136=>342,65137=>342,65138=>342,65139=>346,65140=>342,65142=>342,65143=>342,65144=>342,65145=>342,65146=>342,65147=>342,65148=>342,65149=>342,65150=>342,65151=>342,65152=>511,65153=>343,65154=>375,65155=>343,65156=>375,65157=>622,65158=>627,65159=>343,65160=>375,65161=>917,65162=>917,65163=>375,65164=>408,65165=>343,65166=>375,65167=>1005,65168=>1059,65169=>375,65170=>408,65171=>590,65172=>606,65173=>1005,65174=>1059,65175=>375,65176=>408,65177=>1005,65178=>1059,65179=>375,65180=>408,65181=>721,65182=>721,65183=>721,65184=>721,65185=>721,65186=>721,65187=>721,65188=>721,65189=>721,65190=>721,65191=>721,65192=>721,65193=>513,65194=>578,65195=>513,65196=>578,65197=>576,65198=>622,65199=>576,65200=>622,65201=>1380,65202=>1414,65203=>983,65204=>1018,65205=>1380,65206=>1414,65207=>983,65208=>1018,65209=>1345,65210=>1364,65211=>966,65212=>985,65213=>1345,65214=>1364,65215=>966,65216=>985,65217=>1039,65218=>1071,65219=>942,65220=>974,65221=>1039,65222=>1071,65223=>942,65224=>974,65225=>683,65226=>683,65227=>683,65228=>564,65229=>683,65230=>683,65231=>683,65232=>564,65233=>1162,65234=>1191,65235=>655,65236=>720,65237=>894,65238=>901,65239=>655,65240=>720,65241=>917,65242=>931,65243=>582,65244=>582,65245=>868,65246=>893,65247=>375,65248=>408,65249=>733,65250=>784,65251=>619,65252=>670,65253=>854,65254=>900,65255=>375,65256=>408,65257=>590,65258=>606,65259=>693,65260=>660,65261=>622,65262=>627,65263=>917,65264=>1012,65265=>917,65266=>1012,65267=>375,65268=>408,65269=>745,65270=>759,65271=>745,65272=>759,65273=>745,65274=>759,65275=>745,65276=>759,65279=>0,65529=>0,65530=>0,65531=>0,65532=>0,65533=>1113,65535=>600); -// --- EOF --- diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavusansb.z b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavusansb.z deleted file mode 100644 index 07031ce..0000000 Binary files a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/dejavusansb.z and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/helvetica.php b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/helvetica.php deleted file mode 100644 index d1aa6d8..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/fonts/helvetica.php +++ /dev/null @@ -1,13 +0,0 @@ -32,'FontBBox'=>'[-166 -225 1000 931]','ItalicAngle'=>0,'Ascent'=>931,'Descent'=>-225,'Leading'=>0,'CapHeight'=>718,'XHeight'=>523,'StemV'=>88,'StemH'=>76,'AvgWidth'=>513,'MaxWidth'=>1015,'MissingWidth'=>513); -$cw=array(0=>500,1=>500,2=>500,3=>500,4=>500,5=>500,6=>500,7=>500,8=>500,9=>500,10=>500,11=>500,12=>500,13=>500,14=>500,15=>500,16=>500,17=>500,18=>500,19=>500,20=>500,21=>500,22=>500,23=>500,24=>500,25=>500,26=>500,27=>500,28=>500,29=>500,30=>500,31=>500,32=>278,33=>278,34=>355,35=>556,36=>556,37=>889,38=>667,39=>191,40=>333,41=>333,42=>389,43=>584,44=>278,45=>333,46=>278,47=>278,48=>556,49=>556,50=>556,51=>556,52=>556,53=>556,54=>556,55=>556,56=>556,57=>556,58=>278,59=>278,60=>584,61=>584,62=>584,63=>556,64=>1015,65=>667,66=>667,67=>722,68=>722,69=>667,70=>611,71=>778,72=>722,73=>278,74=>500,75=>667,76=>556,77=>833,78=>722,79=>778,80=>667,81=>778,82=>722,83=>667,84=>611,85=>722,86=>667,87=>944,88=>667,89=>667,90=>611,91=>278,92=>278,93=>277,94=>469,95=>556,96=>333,97=>556,98=>556,99=>500,100=>556,101=>556,102=>278,103=>556,104=>556,105=>222,106=>222,107=>500,108=>222,109=>833,110=>556,111=>556,112=>556,113=>556,114=>333,115=>500,116=>278,117=>556,118=>500,119=>722,120=>500,121=>500,122=>500,123=>334,124=>260,125=>334,126=>584,127=>500,128=>655,129=>500,130=>222,131=>278,132=>333,133=>1000,134=>556,135=>556,136=>333,137=>1000,138=>667,139=>250,140=>1000,141=>500,142=>611,143=>500,144=>500,145=>222,146=>221,147=>333,148=>333,149=>350,150=>556,151=>1000,152=>333,153=>1000,154=>500,155=>250,156=>938,157=>500,158=>500,159=>667,160=>278,161=>278,162=>556,163=>556,164=>556,165=>556,166=>260,167=>556,168=>333,169=>737,170=>370,171=>448,172=>584,173=>333,174=>737,175=>333,176=>606,177=>584,178=>350,179=>350,180=>333,181=>556,182=>537,183=>278,184=>333,185=>350,186=>365,187=>448,188=>869,189=>869,190=>879,191=>556,192=>667,193=>667,194=>667,195=>667,196=>667,197=>667,198=>1000,199=>722,200=>667,201=>667,202=>667,203=>667,204=>278,205=>278,206=>278,207=>278,208=>722,209=>722,210=>778,211=>778,212=>778,213=>778,214=>778,215=>584,216=>778,217=>722,218=>722,219=>722,220=>722,221=>667,222=>666,223=>611,224=>556,225=>556,226=>556,227=>556,228=>556,229=>556,230=>896,231=>500,232=>556,233=>556,234=>556,235=>556,236=>251,237=>251,238=>251,239=>251,240=>556,241=>556,242=>556,243=>556,244=>556,245=>556,246=>556,247=>584,248=>611,249=>556,250=>556,251=>556,252=>556,253=>500,254=>555,255=>500); - -// --- EOF --- diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/barcodes/datamatrix.php b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/barcodes/datamatrix.php deleted file mode 100644 index 19b46fa..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/barcodes/datamatrix.php +++ /dev/null @@ -1,1176 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// DESCRIPTION : -// -// Class to create DataMatrix ECC 200 barcode arrays for TCPDF class. -// DataMatrix (ISO/IEC 16022:2006) is a 2-dimensional bar code. -//============================================================+ - -/** -* @file -* Class to create DataMatrix ECC 200 barcode arrays for TCPDF class. -* DataMatrix (ISO/IEC 16022:2006) is a 2-dimensional bar code. -* -* @package com.tecnick.tcpdf -* @author Nicola Asuni -* @version 1.0.008 -*/ - -// custom definitions -if (!defined('DATAMATRIXDEFS')) { - - /** - * Indicate that definitions for this class are set - */ - define('DATAMATRIXDEFS', true); - - // ----------------------------------------------------- - -} // end of custom definitions - -// #*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# - - -/** -* ASCII encoding: ASCII character 0 to 127 (1 byte per CW) -*/ -define('ENC_ASCII', 0); - -/** -* C40 encoding: Upper-case alphanumeric (3/2 bytes per CW) -*/ -define('ENC_C40', 1); - -/** -* TEXT encoding: Lower-case alphanumeric (3/2 bytes per CW) -*/ -define('ENC_TXT', 2); - -/** -* X12 encoding: ANSI X12 (3/2 byte per CW) -*/ -define('ENC_X12', 3); - -/** -* EDIFACT encoding: ASCII character 32 to 94 (4/3 bytes per CW) -*/ -define('ENC_EDF', 4); - -/** -* BASE 256 encoding: ASCII character 0 to 255 (1 byte per CW) -*/ -define('ENC_BASE256', 5); - -/** -* ASCII extended encoding: ASCII character 128 to 255 (1/2 byte per CW) -*/ -define('ENC_ASCII_EXT', 6); - -/** -* ASCII number encoding: ASCII digits (2 bytes per CW) -*/ -define('ENC_ASCII_NUM', 7); - -/** -* @class Datamatrix -* Class to create DataMatrix ECC 200 barcode arrays for TCPDF class. -* DataMatrix (ISO/IEC 16022:2006) is a 2-dimensional bar code. -* -* @package com.tecnick.tcpdf -* @author Nicola Asuni -* @version 1.0.004 -*/ -class Datamatrix { - - /** - * Barcode array to be returned which is readable by TCPDF. - * @protected - */ - protected $barcode_array = array(); - - /** - * Store last used encoding for data codewords. - * @protected - */ - protected $last_enc = ENC_ASCII; - - /** - * Table of Data Matrix ECC 200 Symbol Attributes:
      - *
    • total matrix rows (including finder pattern)
    • - *
    • total matrix cols (including finder pattern)
    • - *
    • total matrix rows (without finder pattern)
    • - *
    • total matrix cols (without finder pattern)
    • - *
    • region data rows (with finder pattern)
    • - *
    • region data col (with finder pattern)
    • - *
    • region data rows (without finder pattern)
    • - *
    • region data col (without finder pattern)
    • - *
    • horizontal regions
    • - *
    • vertical regions
    • - *
    • regions
    • - *
    • data codewords
    • - *
    • error codewords
    • - *
    • blocks
    • - *
    • data codewords per block
    • - *
    • error codewords per block
    • - *
    - * @protected - */ - protected $symbattr = array( - // square form --------------------------------------------------------------------------------------- - array(0x00a,0x00a,0x008,0x008,0x00a,0x00a,0x008,0x008,0x001,0x001,0x001,0x003,0x005,0x001,0x003,0x005), // 10x10 - array(0x00c,0x00c,0x00a,0x00a,0x00c,0x00c,0x00a,0x00a,0x001,0x001,0x001,0x005,0x007,0x001,0x005,0x007), // 12x12 - array(0x00e,0x00e,0x00c,0x00c,0x00e,0x00e,0x00c,0x00c,0x001,0x001,0x001,0x008,0x00a,0x001,0x008,0x00a), // 14x14 - array(0x010,0x010,0x00e,0x00e,0x010,0x010,0x00e,0x00e,0x001,0x001,0x001,0x00c,0x00c,0x001,0x00c,0x00c), // 16x16 - array(0x012,0x012,0x010,0x010,0x012,0x012,0x010,0x010,0x001,0x001,0x001,0x012,0x00e,0x001,0x012,0x00e), // 18x18 - array(0x014,0x014,0x012,0x012,0x014,0x014,0x012,0x012,0x001,0x001,0x001,0x016,0x012,0x001,0x016,0x012), // 20x20 - array(0x016,0x016,0x014,0x014,0x016,0x016,0x014,0x014,0x001,0x001,0x001,0x01e,0x014,0x001,0x01e,0x014), // 22x22 - array(0x018,0x018,0x016,0x016,0x018,0x018,0x016,0x016,0x001,0x001,0x001,0x024,0x018,0x001,0x024,0x018), // 24x24 - array(0x01a,0x01a,0x018,0x018,0x01a,0x01a,0x018,0x018,0x001,0x001,0x001,0x02c,0x01c,0x001,0x02c,0x01c), // 26x26 - array(0x020,0x020,0x01c,0x01c,0x010,0x010,0x00e,0x00e,0x002,0x002,0x004,0x03e,0x024,0x001,0x03e,0x024), // 32x32 - array(0x024,0x024,0x020,0x020,0x012,0x012,0x010,0x010,0x002,0x002,0x004,0x056,0x02a,0x001,0x056,0x02a), // 36x36 - array(0x028,0x028,0x024,0x024,0x014,0x014,0x012,0x012,0x002,0x002,0x004,0x072,0x030,0x001,0x072,0x030), // 40x40 - array(0x02c,0x02c,0x028,0x028,0x016,0x016,0x014,0x014,0x002,0x002,0x004,0x090,0x038,0x001,0x090,0x038), // 44x44 - array(0x030,0x030,0x02c,0x02c,0x018,0x018,0x016,0x016,0x002,0x002,0x004,0x0ae,0x044,0x001,0x0ae,0x044), // 48x48 - array(0x034,0x034,0x030,0x030,0x01a,0x01a,0x018,0x018,0x002,0x002,0x004,0x0cc,0x054,0x002,0x066,0x02a), // 52x52 - array(0x040,0x040,0x038,0x038,0x010,0x010,0x00e,0x00e,0x004,0x004,0x010,0x118,0x070,0x002,0x08c,0x038), // 64x64 - array(0x048,0x048,0x040,0x040,0x012,0x012,0x010,0x010,0x004,0x004,0x010,0x170,0x090,0x004,0x05c,0x024), // 72x72 - array(0x050,0x050,0x048,0x048,0x014,0x014,0x012,0x012,0x004,0x004,0x010,0x1c8,0x0c0,0x004,0x072,0x030), // 80x80 - array(0x058,0x058,0x050,0x050,0x016,0x016,0x014,0x014,0x004,0x004,0x010,0x240,0x0e0,0x004,0x090,0x038), // 88x88 - array(0x060,0x060,0x058,0x058,0x018,0x018,0x016,0x016,0x004,0x004,0x010,0x2b8,0x110,0x004,0x0ae,0x044), // 96x96 - array(0x068,0x068,0x060,0x060,0x01a,0x01a,0x018,0x018,0x004,0x004,0x010,0x330,0x150,0x006,0x088,0x038), // 104x104 - array(0x078,0x078,0x06c,0x06c,0x014,0x014,0x012,0x012,0x006,0x006,0x024,0x41a,0x198,0x006,0x0af,0x044), // 120x120 - array(0x084,0x084,0x078,0x078,0x016,0x016,0x014,0x014,0x006,0x006,0x024,0x518,0x1f0,0x008,0x0a3,0x03e), // 132x132 - array(0x090,0x090,0x084,0x084,0x018,0x018,0x016,0x016,0x006,0x006,0x024,0x616,0x26c,0x00a,0x09c,0x03e), // 144x144 - // rectangular form (currently unused) --------------------------------------------------------------------------- - array(0x008,0x012,0x006,0x010,0x008,0x012,0x006,0x010,0x001,0x001,0x001,0x005,0x007,0x001,0x005,0x007), // 8x18 - array(0x008,0x020,0x006,0x01c,0x008,0x010,0x006,0x00e,0x001,0x002,0x002,0x00a,0x00b,0x001,0x00a,0x00b), // 8x32 - array(0x00c,0x01a,0x00a,0x018,0x00c,0x01a,0x00a,0x018,0x001,0x001,0x001,0x010,0x00e,0x001,0x010,0x00e), // 12x26 - array(0x00c,0x024,0x00a,0x020,0x00c,0x012,0x00a,0x010,0x001,0x002,0x002,0x00c,0x012,0x001,0x00c,0x012), // 12x36 - array(0x010,0x024,0x00e,0x020,0x010,0x012,0x00e,0x010,0x001,0x002,0x002,0x020,0x018,0x001,0x020,0x018), // 16x36 - array(0x010,0x030,0x00e,0x02c,0x010,0x018,0x00e,0x016,0x001,0x002,0x002,0x031,0x01c,0x001,0x031,0x01c) // 16x48 - ); - - /** - * Map encodation modes whit character sets. - * @protected - */ - protected $chset_id = array(ENC_C40 => 'C40', ENC_TXT => 'TXT', ENC_X12 =>'X12'); - - /** - * Basic set of characters for each encodation mode. - * @protected - */ - protected $chset = array( - 'C40' => array( // Basic set for C40 ---------------------------------------------------------------------------- - 'S1'=>0x00,'S2'=>0x01,'S3'=>0x02,0x20=>0x03,0x30=>0x04,0x31=>0x05,0x32=>0x06,0x33=>0x07,0x34=>0x08,0x35=>0x09, // - 0x36=>0x0a,0x37=>0x0b,0x38=>0x0c,0x39=>0x0d,0x41=>0x0e,0x42=>0x0f,0x43=>0x10,0x44=>0x11,0x45=>0x12,0x46=>0x13, // - 0x47=>0x14,0x48=>0x15,0x49=>0x16,0x4a=>0x17,0x4b=>0x18,0x4c=>0x19,0x4d=>0x1a,0x4e=>0x1b,0x4f=>0x1c,0x50=>0x1d, // - 0x51=>0x1e,0x52=>0x1f,0x53=>0x20,0x54=>0x21,0x55=>0x22,0x56=>0x23,0x57=>0x24,0x58=>0x25,0x59=>0x26,0x5a=>0x27),// - 'TXT' => array( // Basic set for TEXT --------------------------------------------------------------------------- - 'S1'=>0x00,'S2'=>0x01,'S3'=>0x02,0x20=>0x03,0x30=>0x04,0x31=>0x05,0x32=>0x06,0x33=>0x07,0x34=>0x08,0x35=>0x09, // - 0x36=>0x0a,0x37=>0x0b,0x38=>0x0c,0x39=>0x0d,0x61=>0x0e,0x62=>0x0f,0x63=>0x10,0x64=>0x11,0x65=>0x12,0x66=>0x13, // - 0x67=>0x14,0x68=>0x15,0x69=>0x16,0x6a=>0x17,0x6b=>0x18,0x6c=>0x19,0x6d=>0x1a,0x6e=>0x1b,0x6f=>0x1c,0x70=>0x1d, // - 0x71=>0x1e,0x72=>0x1f,0x73=>0x20,0x74=>0x21,0x75=>0x22,0x76=>0x23,0x77=>0x24,0x78=>0x25,0x79=>0x26,0x7a=>0x27),// - 'SH1' => array( // Shift 1 set ---------------------------------------------------------------------------------- - 0x00=>0x00,0x01=>0x01,0x02=>0x02,0x03=>0x03,0x04=>0x04,0x05=>0x05,0x06=>0x06,0x07=>0x07,0x08=>0x08,0x09=>0x09, // - 0x0a=>0x0a,0x0b=>0x0b,0x0c=>0x0c,0x0d=>0x0d,0x0e=>0x0e,0x0f=>0x0f,0x10=>0x10,0x11=>0x11,0x12=>0x12,0x13=>0x13, // - 0x14=>0x14,0x15=>0x15,0x16=>0x16,0x17=>0x17,0x18=>0x18,0x19=>0x19,0x1a=>0x1a,0x1b=>0x1b,0x1c=>0x1c,0x1d=>0x1d, // - 0x1e=>0x1e,0x1f=>0x1f), // - 'SH2' => array( // Shift 2 set ---------------------------------------------------------------------------------- - 0x21=>0x00,0x22=>0x01,0x23=>0x02,0x24=>0x03,0x25=>0x04,0x26=>0x05,0x27=>0x06,0x28=>0x07,0x29=>0x08,0x2a=>0x09, // - 0x2b=>0x0a,0x2c=>0x0b,0x2d=>0x0c,0x2e=>0x0d,0x2f=>0x0e,0x3a=>0x0f,0x3b=>0x10,0x3c=>0x11,0x3d=>0x12,0x3e=>0x13, // - 0x3f=>0x14,0x40=>0x15,0x5b=>0x16,0x5c=>0x17,0x5d=>0x18,0x5e=>0x19,0x5f=>0x1a,'F1'=>0x1b,'US'=>0x1e), // - 'S3C' => array( // Shift 3 set for C40 -------------------------------------------------------------------------- - 0x60=>0x00,0x61=>0x01,0x62=>0x02,0x63=>0x03,0x64=>0x04,0x65=>0x05,0x66=>0x06,0x67=>0x07,0x68=>0x08,0x69=>0x09, // - 0x6a=>0x0a,0x6b=>0x0b,0x6c=>0x0c,0x6d=>0x0d,0x6e=>0x0e,0x6f=>0x0f,0x70=>0x10,0x71=>0x11,0x72=>0x12,0x73=>0x13, // - 0x74=>0x14,0x75=>0x15,0x76=>0x16,0x77=>0x17,0x78=>0x18,0x79=>0x19,0x7a=>0x1a,0x7b=>0x1b,0x7c=>0x1c,0x7d=>0x1d, // - 0x7e=>0x1e,0x7f=>0x1f), - 'S3T' => array( // Shift 3 set for TEXT ------------------------------------------------------------------------- - 0x60=>0x00,0x41=>0x01,0x42=>0x02,0x43=>0x03,0x44=>0x04,0x45=>0x05,0x46=>0x06,0x47=>0x07,0x48=>0x08,0x49=>0x09, // - 0x4a=>0x0a,0x4b=>0x0b,0x4c=>0x0c,0x4d=>0x0d,0x4e=>0x0e,0x4f=>0x0f,0x50=>0x10,0x51=>0x11,0x52=>0x12,0x53=>0x13, // - 0x54=>0x14,0x55=>0x15,0x56=>0x16,0x57=>0x17,0x58=>0x18,0x59=>0x19,0x5a=>0x1a,0x7b=>0x1b,0x7c=>0x1c,0x7d=>0x1d, // - 0x7e=>0x1e,0x7f=>0x1f), // - 'X12' => array( // Set for X12 ---------------------------------------------------------------------------------- - 0x0d=>0x00,0x2a=>0x01,0x3e=>0x02,0x20=>0x03,0x30=>0x04,0x31=>0x05,0x32=>0x06,0x33=>0x07,0x34=>0x08,0x35=>0x09, // - 0x36=>0x0a,0x37=>0x0b,0x38=>0x0c,0x39=>0x0d,0x41=>0x0e,0x42=>0x0f,0x43=>0x10,0x44=>0x11,0x45=>0x12,0x46=>0x13, // - 0x47=>0x14,0x48=>0x15,0x49=>0x16,0x4a=>0x17,0x4b=>0x18,0x4c=>0x19,0x4d=>0x1a,0x4e=>0x1b,0x4f=>0x1c,0x50=>0x1d, // - 0x51=>0x1e,0x52=>0x1f,0x53=>0x20,0x54=>0x21,0x55=>0x22,0x56=>0x23,0x57=>0x24,0x58=>0x25,0x59=>0x26,0x5a=>0x27) // - ); - -// ----------------------------------------------------------------------------- - - /** - * This is the class constructor. - * Creates a datamatrix object - * @param $code (string) Code to represent using Datamatrix. - * @public - */ - public function __construct($code) { - $barcode_array = array(); - if ((is_null($code)) OR ($code == '\0') OR ($code == '')) { - return false; - } - // get data codewords - $cw = $this->getHighLevelEncoding($code); - // number of data codewords - $nd = count($cw); - // check size - if ($nd > 1558) { - return false; - } - // get minimum required matrix size. - foreach ($this->symbattr as $params) { - if ($params[11] >= $nd) { - break; - } - } - if ($params[11] < $nd) { - // too much data - return false; - } elseif ($params[11] > $nd) { - // add padding - if ((($params[11] - $nd) > 1) AND ($cw[($nd - 1)] != 254)) { - if ($this->last_enc == ENC_EDF) { - // switch to ASCII encoding - $cw[] = 124; - ++$nd; - } elseif (($this->last_enc != ENC_ASCII) AND ($this->last_enc != ENC_BASE256)) { - // switch to ASCII encoding - $cw[] = 254; - ++$nd; - } - } - if ($params[11] > $nd) { - // add first pad - $cw[] = 129; - ++$nd; - // add remaining pads - for ($i = $nd; $i < $params[11]; ++$i) { - $cw[] = $this->get253StateCodeword(129, $i); - } - } - } - // add error correction codewords - $cw = $this->getErrorCorrection($cw, $params[13], $params[14], $params[15]); - // initialize empty arrays - $grid = array_fill(0, ($params[2] * $params[3]), 0); - // get placement map - $places = $this->getPlacementMap($params[2], $params[3]); - // fill the grid with data - $grid = array(); - $i = 0; - // region data row max index - $rdri = ($params[4] - 1); - // region data column max index - $rdci = ($params[5] - 1); - // for each vertical region - for ($vr = 0; $vr < $params[9]; ++$vr) { - // for each row on region - for ($r = 0; $r < $params[4]; ++$r) { - // get row - $row = (($vr * $params[4]) + $r); - // for each horizontal region - for ($hr = 0; $hr < $params[8]; ++$hr) { - // for each column on region - for ($c = 0; $c < $params[5]; ++$c) { - // get column - $col = (($hr * $params[5]) + $c); - // braw bits by case - if ($r == 0) { - // top finder pattern - if ($c % 2) { - $grid[$row][$col] = 0; - } else { - $grid[$row][$col] = 1; - } - } elseif ($r == $rdri) { - // bottom finder pattern - $grid[$row][$col] = 1; - } elseif ($c == 0) { - // left finder pattern - $grid[$row][$col] = 1; - } elseif ($c == $rdci) { - // right finder pattern - if ($r % 2) { - $grid[$row][$col] = 1; - } else { - $grid[$row][$col] = 0; - } - } else { // data bit - if ($places[$i] < 2) { - $grid[$row][$col] = $places[$i]; - } else { - // codeword ID - $cw_id = (floor($places[$i] / 10) - 1); - // codeword BIT mask - $cw_bit = pow(2, (8 - ($places[$i] % 10))); - $grid[$row][$col] = (($cw[$cw_id] & $cw_bit) == 0) ? 0 : 1; - } - ++$i; - } - } - } - } - } - $this->barcode_array['num_rows'] = $params[0]; - $this->barcode_array['num_cols'] = $params[1]; - $this->barcode_array['bcode'] = $grid; - } - - /** - * Returns a barcode array which is readable by TCPDF - * @return array barcode array readable by TCPDF; - * @public - */ - public function getBarcodeArray() { - return $this->barcode_array; - } - - /** - * Product of two numbers in a Power-of-Two Galois Field - * @param $a (int) first number to multiply. - * @param $b (int) second number to multiply. - * @param $log (array) Log table. - * @param $alog (array) Anti-Log table. - * @param $gf (array) Number of Factors of the Reed-Solomon polynomial. - * @return int product - * @protected - */ - protected function getGFProduct($a, $b, $log, $alog, $gf) { - if (($a == 0) OR ($b == 0)) { - return 0; - } - return ($alog[($log[$a] + $log[$b]) % ($gf - 1)]); - } - - /** - * Add error correction codewords to data codewords array (ANNEX E). - * @param $wd (array) Array of datacodewords. - * @param $nb (int) Number of blocks. - * @param $nd (int) Number of data codewords per block. - * @param $nc (int) Number of correction codewords per block. - * @param $gf (int) numner of fields on log/antilog table (power of 2). - * @param $pp (int) The value of its prime modulus polynomial (301 for ECC200). - * @return array data codewords + error codewords - * @protected - */ - protected function getErrorCorrection($wd, $nb, $nd, $nc, $gf=256, $pp=301) { - // generate the log ($log) and antilog ($alog) tables - $log[0] = 0; - $alog[0] = 1; - for ($i = 1; $i < $gf; ++$i) { - $alog[$i] = ($alog[($i - 1)] * 2); - if ($alog[$i] >= $gf) { - $alog[$i] ^= $pp; - } - $log[$alog[$i]] = $i; - } - ksort($log); - // generate the polynomial coefficients (c) - $c = array_fill(0, ($nc + 1), 0); - $c[0] = 1; - for ($i = 1; $i <= $nc; ++$i) { - $c[$i] = $c[($i-1)]; - for ($j = ($i - 1); $j >= 1; --$j) { - $c[$j] = $c[($j - 1)] ^ $this->getGFProduct($c[$j], $alog[$i], $log, $alog, $gf); - } - $c[0] = $this->getGFProduct($c[0], $alog[$i], $log, $alog, $gf); - } - ksort($c); - // total number of data codewords - $num_wd = ($nb * $nd); - // total number of error codewords - $num_we = ($nb * $nc); - // for each block - for ($b = 0; $b < $nb; ++$b) { - // create interleaved data block - $block = array(); - for ($n = $b; $n < $num_wd; $n += $nb) { - $block[] = $wd[$n]; - } - // initialize error codewords - $we = array_fill(0, ($nc + 1), 0); - // calculate error correction codewords for this block - for ($i = 0; $i < $nd; ++$i) { - $k = ($we[0] ^ $block[$i]); - for ($j = 0; $j < $nc; ++$j) { - $we[$j] = ($we[($j + 1)] ^ $this->getGFProduct($k, $c[($nc - $j - 1)], $log, $alog, $gf)); - } - } - // add error codewords at the end of data codewords - $j = 0; - for ($i = $b; $i < $num_we; $i += $nb) { - $wd[($num_wd + $i)] = $we[$j]; - ++$j; - } - } - // reorder codewords - ksort($wd); - return $wd; - } - - /** - * Return the 253-state codeword - * @param $cwpad (int) Pad codeword. - * @param $cwpos (int) Number of data codewords from the beginning of encoded data. - * @return pad codeword - * @protected - */ - protected function get253StateCodeword($cwpad, $cwpos) { - $pad = ($cwpad + (((149 * $cwpos) % 253) + 1)); - if ($pad > 254) { - $pad -= 254; - } - return $pad; - } - - /** - * Return the 255-state codeword - * @param $cwpad (int) Pad codeword. - * @param $cwpos (int) Number of data codewords from the beginning of encoded data. - * @return pad codeword - * @protected - */ - protected function get255StateCodeword($cwpad, $cwpos) { - $pad = ($cwpad + (((149 * $cwpos) % 255) + 1)); - if ($pad > 255) { - $pad -= 256; - } - return $pad; - } - - /** - * Returns true if the char belongs to the selected mode - * @param $chr (int) Character (byte) to check. - * @param $mode (int) Current encoding mode. - * @return boolean true if the char is of the selected mode. - * @protected - */ - protected function isCharMode($chr, $mode) { - $status = false; - switch ($mode) { - case ENC_ASCII: { // ASCII character 0 to 127 - $status = (($chr >= 0) AND ($chr <= 127)); - break; - } - case ENC_C40: { // Upper-case alphanumeric - $status = (($chr == 32) OR (($chr >= 48) AND ($chr <= 57)) OR (($chr >= 65) AND ($chr <= 90))); - break; - } - case ENC_TXT: { // Lower-case alphanumeric - $status = (($chr == 32) OR (($chr >= 48) AND ($chr <= 57)) OR (($chr >= 97) AND ($chr <= 122))); - break; - } - case ENC_X12: { // ANSI X12 - $status = (($chr == 13) OR ($chr == 42) OR ($chr == 62)); - break; - } - case ENC_EDF: { // ASCII character 32 to 94 - $status = (($chr >= 32) AND ($chr <= 94)); - break; - } - case ENC_BASE256: { // Function character (FNC1, Structured Append, Reader Program, or Code Page) - $status = (($chr == 232) OR ($chr == 233) OR ($chr == 234) OR ($chr == 241)); - break; - } - case ENC_ASCII_EXT: { // ASCII character 128 to 255 - $status = (($chr >= 128) AND ($chr <= 255)); - break; - } - case ENC_ASCII_NUM: { // ASCII digits - $status = (($chr >= 48) AND ($chr <= 57)); - break; - } - } - return $status; - } - - /** - * The look-ahead test scans the data to be encoded to find the best mode (Annex P - steps from J to S). - * @param $data (string) data to encode - * @param $pos (int) current position - * @param $mode (int) current encoding mode - * @return int encoding mode - * @protected - */ - protected function lookAheadTest($data, $pos, $mode) { - $data_length = strlen($data); - if ($pos >= $data_length) { - return $mode; - } - $charscount = 0; // count processed chars - // STEP J - if ($mode == ENC_ASCII) { - $numch = array(0, 1, 1, 1, 1, 1.25); - } else { - $numch = array(1, 2, 2, 2, 2, 2.25); - $numch[$mode] = 0; - } - while (true) { - // STEP K - if (($pos + $charscount) == $data_length) { - if ($numch[ENC_ASCII] <= ceil(min($numch[ENC_C40], $numch[ENC_TXT], $numch[ENC_X12], $numch[ENC_EDF], $numch[ENC_BASE256]))) { - return ENC_ASCII; - } - if ($numch[ENC_BASE256] < ceil(min($numch[ENC_ASCII], $numch[ENC_C40], $numch[ENC_TXT], $numch[ENC_X12], $numch[ENC_EDF]))) { - return ENC_BASE256; - } - if ($numch[ENC_EDF] < ceil(min($numch[ENC_ASCII], $numch[ENC_C40], $numch[ENC_TXT], $numch[ENC_X12], $numch[ENC_BASE256]))) { - return ENC_EDF; - } - if ($numch[ENC_TXT] < ceil(min($numch[ENC_ASCII], $numch[ENC_C40], $numch[ENC_X12], $numch[ENC_EDF], $numch[ENC_BASE256]))) { - return ENC_TXT; - } - if ($numch[ENC_X12] < ceil(min($numch[ENC_ASCII], $numch[ENC_C40], $numch[ENC_TXT], $numch[ENC_EDF], $numch[ENC_BASE256]))) { - return ENC_X12; - } - return ENC_C40; - } - // get char - $chr = ord($data[$pos + $charscount]); - $charscount++; - // STEP L - if ($this->isCharMode($chr, ENC_ASCII_NUM)) { - $numch[ENC_ASCII] += (1 / 2); - } elseif ($this->isCharMode($chr, ENC_ASCII_EXT)) { - $numch[ENC_ASCII] = ceil($numch[ENC_ASCII]); - $numch[ENC_ASCII] += 2; - } else { - $numch[ENC_ASCII] = ceil($numch[ENC_ASCII]); - $numch[ENC_ASCII] += 1; - } - // STEP M - if ($this->isCharMode($chr, ENC_C40)) { - $numch[ENC_C40] += (2 / 3); - } elseif ($this->isCharMode($chr, ENC_ASCII_EXT)) { - $numch[ENC_C40] += (8 / 3); - } else { - $numch[ENC_C40] += (4 / 3); - } - // STEP N - if ($this->isCharMode($chr, ENC_TXT)) { - $numch[ENC_TXT] += (2 / 3); - } elseif ($this->isCharMode($chr, ENC_ASCII_EXT)) { - $numch[ENC_TXT] += (8 / 3); - } else { - $numch[ENC_TXT] += (4 / 3); - } - // STEP O - if ($this->isCharMode($chr, ENC_X12) OR $this->isCharMode($chr, ENC_C40)) { - $numch[ENC_X12] += (2 / 3); - } elseif ($this->isCharMode($chr, ENC_ASCII_EXT)) { - $numch[ENC_X12] += (13 / 3); - } else { - $numch[ENC_X12] += (10 / 3); - } - // STEP P - if ($this->isCharMode($chr, ENC_EDF)) { - $numch[ENC_EDF] += (3 / 4); - } elseif ($this->isCharMode($chr, ENC_ASCII_EXT)) { - $numch[ENC_EDF] += (17 / 4); - } else { - $numch[ENC_EDF] += (13 / 4); - } - // STEP Q - if ($this->isCharMode($chr, ENC_BASE256)) { - $numch[ENC_BASE256] += 4; - } else { - $numch[ENC_BASE256] += 1; - } - // STEP R - if ($charscount >= 4) { - if (($numch[ENC_ASCII] + 1) <= min($numch[ENC_C40], $numch[ENC_TXT], $numch[ENC_X12], $numch[ENC_EDF], $numch[ENC_BASE256])) { - return ENC_ASCII; - } - if ((($numch[ENC_BASE256] + 1) <= $numch[ENC_ASCII]) - OR (($numch[ENC_BASE256] + 1) < min($numch[ENC_C40], $numch[ENC_TXT], $numch[ENC_X12], $numch[ENC_EDF]))) { - return ENC_BASE256; - } - if (($numch[ENC_EDF] + 1) < min($numch[ENC_ASCII], $numch[ENC_C40], $numch[ENC_TXT], $numch[ENC_X12], $numch[ENC_BASE256])) { - return ENC_EDF; - } - if (($numch[ENC_TXT] + 1) < min($numch[ENC_ASCII], $numch[ENC_C40], $numch[ENC_X12], $numch[ENC_EDF], $numch[ENC_BASE256])) { - return ENC_TXT; - } - if (($numch[ENC_X12] + 1) < min($numch[ENC_ASCII], $numch[ENC_C40], $numch[ENC_TXT], $numch[ENC_EDF], $numch[ENC_BASE256])) { - return ENC_X12; - } - if (($numch[ENC_C40] + 1) < min($numch[ENC_ASCII], $numch[ENC_TXT], $numch[ENC_EDF], $numch[ENC_BASE256])) { - if ($numch[ENC_C40] < $numch[ENC_X12]) { - return ENC_C40; - } - if ($numch[ENC_C40] == $numch[ENC_X12]) { - $k = ($pos + $charscount + 1); - while ($k < $data_length) { - $tmpchr = ord($data{$k}); - if ($this->isCharMode($tmpchr, ENC_X12)) { - return ENC_X12; - } elseif (!($this->isCharMode($tmpchr, ENC_X12) OR $this->isCharMode($tmpchr, ENC_C40))) { - break; - } - ++$k; - } - return ENC_C40; - } - } - } - } // end of while - } - - /** - * Get the switching codeword to a new encoding mode (latch codeword) - * @param $mode (int) New encoding mode. - * @return (int) Switch codeword. - * @protected - */ - protected function getSwitchEncodingCodeword($mode) { - switch ($mode) { - case ENC_ASCII: { // ASCII character 0 to 127 - $cw = 254; - if ($this->last_enc == ENC_EDF) { - $cw = 124; - } - break; - } - case ENC_C40: { // Upper-case alphanumeric - $cw = 230; - break; - } - case ENC_TXT: { // Lower-case alphanumeric - $cw = 239; - break; - } - case ENC_X12: { // ANSI X12 - $cw = 238; - break; - } - case ENC_EDF: { // ASCII character 32 to 94 - $cw = 240; - break; - } - case ENC_BASE256: { // Function character (FNC1, Structured Append, Reader Program, or Code Page) - $cw = 231; - break; - } - } - return $cw; - } - - /** - * Choose the minimum matrix size and return the max number of data codewords. - * @param $numcw (int) Number of current codewords. - * @return number of data codewords in matrix - * @protected - */ - protected function getMaxDataCodewords($numcw) { - foreach ($this->symbattr as $key => $matrix) { - if ($matrix[11] >= $numcw) { - return $matrix[11]; - } - } - return 0; - } - - /** - * Get high level encoding using the minimum symbol data characters for ECC 200 - * @param $data (string) data to encode - * @return array of codewords - * @protected - */ - protected function getHighLevelEncoding($data) { - // STEP A. Start in ASCII encodation. - $enc = ENC_ASCII; // current encoding mode - $pos = 0; // current position - $cw = array(); // array of codewords to be returned - $cw_num = 0; // number of data codewords - $data_length = strlen($data); // number of chars - while ($pos < $data_length) { - // set last used encoding - $this->last_enc = $enc; - switch ($enc) { - case ENC_ASCII: { // STEP B. While in ASCII encodation - if (($data_length > 1) AND ($pos < ($data_length - 1)) AND ($this->isCharMode(ord($data[$pos]), ENC_ASCII_NUM) AND $this->isCharMode(ord($data[$pos + 1]), ENC_ASCII_NUM))) { - // 1. If the next data sequence is at least 2 consecutive digits, encode the next two digits as a double digit in ASCII mode. - $cw[] = (intval(substr($data, $pos, 2)) + 130); - ++$cw_num; - $pos += 2; - } else { - // 2. If the look-ahead test (starting at step J) indicates another mode, switch to that mode. - $newenc = $this->lookAheadTest($data, $pos, $enc); - if ($newenc != $enc) { - // switch to new encoding - $enc = $newenc; - $cw[] = $this->getSwitchEncodingCodeword($enc); - ++$cw_num; - } else { - // get new byte - $chr = ord($data[$pos]); - ++$pos; - if ($this->isCharMode($chr, ENC_ASCII_EXT)) { - // 3. If the next data character is extended ASCII (greater than 127) encode it in ASCII mode first using the Upper Shift (value 235) character. - $cw[] = 235; - $cw[] = ($chr - 127); - $cw_num += 2; - } else { - // 4. Otherwise process the next data character in ASCII encodation. - $cw[] = ($chr + 1); - ++$cw_num; - } - } - } - break; - } - case ENC_C40 : // Upper-case alphanumeric - case ENC_TXT : // Lower-case alphanumeric - case ENC_X12 : { // ANSI X12 - $temp_cw = array(); - $p = 0; - $epos = $pos; - // get charset ID - $set_id = $this->chset_id[$enc]; - // get basic charset for current encoding - $charset = $this->chset[$set_id]; - do { - // 2. process the next character in C40 encodation. - $chr = ord($data[$epos]); - ++$epos; - // check for extended character - if ($chr & 0x80) { - if ($enc == ENC_X12) { - return false; - } - $chr = ($chr & 0x7f); - $temp_cw[] = 1; // shift 2 - $temp_cw[] = 30; // upper shift - $p += 2; - } - if (isset($charset[$chr])) { - $temp_cw[] = $charset[$chr]; - ++$p; - } else { - if (isset($this->chset['SH1'][$chr])) { - $temp_cw[] = 0; // shift 1 - $shiftset = $this->chset['SH1']; - } elseif (isset($chr, $this->chset['SH2'][$chr])) { - $temp_cw[] = 1; // shift 2 - $shiftset = $this->chset['SH2']; - } elseif (($enc == ENC_C40) AND isset($this->chset['S3C'][$chr])) { - $temp_cw[] = 2; // shift 3 - $shiftset = $this->chset['S3C']; - } elseif (($enc == ENC_TXT) AND isset($this->chset['S3T'][$chr])) { - $temp_cw[] = 2; // shift 3 - $shiftset = $this->chset['S3T']; - } else { - return false; - } - $temp_cw[] = $shiftset[$chr]; - $p += 2; - } - if ($p >= 3) { - $c1 = array_shift($temp_cw); - $c2 = array_shift($temp_cw); - $c3 = array_shift($temp_cw); - $p -= 3; - $tmp = ((1600 * $c1) + (40 * $c2) + $c3 + 1); - $cw[] = ($tmp >> 8); - $cw[] = ($tmp % 256); - $cw_num += 2; - $pos = $epos; - // 1. If the C40 encoding is at the point of starting a new double symbol character and if the look-ahead test (starting at step J) indicates another mode, switch to that mode. - $newenc = $this->lookAheadTest($data, $pos, $enc); - if ($newenc != $enc) { - // switch to new encoding - $enc = $newenc; - if ($enc != ENC_ASCII) { - // set unlatch character - $cw[] = $this->getSwitchEncodingCodeword(ENC_ASCII); - ++$cw_num; - } - $cw[] = $this->getSwitchEncodingCodeword($enc); - ++$cw_num; - $pos -= $p; - $p = 0; - break; - } - } - } while (($p > 0) AND ($epos < $data_length)); - // process last data (if any) - if ($p > 0) { - // get remaining number of data symbols - $cwr = ($this->getMaxDataCodewords($cw_num) - $cw_num); - if (($cwr == 1) AND ($p == 1)) { - // d. If one symbol character remains and one C40 value (data character) remains to be encoded - $c1 = array_shift($temp_cw); - --$p; - $cw[] = ($chr + 1); - ++$cw_num; - $pos = $epos; - $enc = ENC_ASCII; - $this->last_enc = $enc; - } elseif (($cwr == 2) AND ($p == 1)) { - // c. If two symbol characters remain and only one C40 value (data character) remains to be encoded - $c1 = array_shift($temp_cw); - --$p; - $cw[] = 254; - $cw[] = ($chr + 1); - $cw_num += 2; - $pos = $epos; - $enc = ENC_ASCII; - $this->last_enc = $enc; - } elseif (($cwr == 2) AND ($p == 2)) { - // b. If two symbol characters remain and two C40 values remain to be encoded - $c1 = array_shift($temp_cw); - $c2 = array_shift($temp_cw); - $p -= 2; - $tmp = ((1600 * $c1) + (40 * $c2) + 1); - $cw[] = ($tmp >> 8); - $cw[] = ($tmp % 256); - $cw_num += 2; - $pos = $epos; - $enc = ENC_ASCII; - $this->last_enc = $enc; - } else { - // switch to ASCII encoding - if ($enc != ENC_ASCII) { - $enc = ENC_ASCII; - $this->last_enc = $enc; - $cw[] = $this->getSwitchEncodingCodeword($enc); - ++$cw_num; - $pos = ($epos - $p); - } - } - } - break; - } - case ENC_EDF: { // F. While in EDIFACT (EDF) encodation - // initialize temporary array with 0 length - $temp_cw = array(); - $epos = $pos; - $field_length = 0; - $newenc = $enc; - do { - // 2. process the next character in EDIFACT encodation. - $chr = ord($data[$epos]); - if ($this->isCharMode($chr, ENC_EDF)) { - ++$epos; - $temp_cw[] = $chr; - ++$field_length; - } - if (($field_length == 4) OR ($epos == $data_length) OR !$this->isCharMode($chr, ENC_EDF)) { - if (($epos == $data_length) AND ($field_length < 3)) { - $enc = ENC_ASCII; - $cw[] = $this->getSwitchEncodingCodeword($enc); - ++$cw_num; - break; - } - if ($field_length < 4) { - // set unlatch character - $temp_cw[] = 0x1f; - ++$field_length; - // fill empty characters - for ($i = $field_length; $i < 4; ++$i) { - $temp_cw[] = 0; - } - $enc = ENC_ASCII; - $this->last_enc = $enc; - } - // encodes four data characters in three codewords - $tcw = (($temp_cw[0] & 0x3F) << 2) + (($temp_cw[1] & 0x30) >> 4); - if ($tcw > 0) { - $cw[] = $tcw; - $cw_num++; - } - $tcw= (($temp_cw[1] & 0x0F) << 4) + (($temp_cw[2] & 0x3C) >> 2); - if ($tcw > 0) { - $cw[] = $tcw; - $cw_num++; - } - $tcw = (($temp_cw[2] & 0x03) << 6) + ($temp_cw[3] & 0x3F); - if ($tcw > 0) { - $cw[] = $tcw; - $cw_num++; - } - $temp_cw = array(); - $pos = $epos; - $field_length = 0; - if ($enc == ENC_ASCII) { - break; // exit from EDIFACT mode - } - } - } while ($epos < $data_length); - break; - } - case ENC_BASE256: { // G. While in Base 256 (B256) encodation - // initialize temporary array with 0 length - $temp_cw = array(); - $field_length = 0; - while (($pos < $data_length) AND ($field_length <= 1555)) { - $newenc = $this->lookAheadTest($data, $pos, $enc); - if ($newenc != $enc) { - // 1. If the look-ahead test (starting at step J) indicates another mode, switch to that mode. - $enc = $newenc; - break; // exit from B256 mode - } else { - // 2. Otherwise, process the next character in Base 256 encodation. - $chr = ord($data[$pos]); - ++$pos; - $temp_cw[] = $chr; - ++$field_length; - } - } - // set field length - if ($field_length <= 249) { - $cw[] = $this->get255StateCodeword($field_length, ($cw_num + 1)); - ++$cw_num; - } else { - $cw[] = $this->get255StateCodeword((floor($field_length / 250) + 249), ($cw_num + 1)); - $cw[] = $this->get255StateCodeword(($field_length % 250), ($cw_num + 2)); - $cw_num += 2; - } - if (!empty($temp_cw)) { - // add B256 field - foreach ($temp_cw as $p => $cht) { - $cw[] = $this->get255StateCodeword($cht, ($cw_num + $p + 1)); - } - } - break; - } - } // end of switch enc - } // end of while - return $cw; - } - - /** - * Places "chr+bit" with appropriate wrapping within array[]. - * (Annex F - ECC 200 symbol character placement) - * @param $marr (array) Array of symbols. - * @param $nrow (int) Number of rows. - * @param $ncol (int) Number of columns. - * @param $row (int) Row number. - * @param $col (int) Column number. - * @param $chr (int) Char byte. - * @param $bit (int) Bit. - * @return array - * @protected - */ - protected function placeModule($marr, $nrow, $ncol, $row, $col, $chr, $bit) { - if ($row < 0) { - $row += $nrow; - $col += (4 - (($nrow + 4) % 8)); - } - if ($col < 0) { - $col += $ncol; - $row += (4 - (($ncol + 4) % 8)); - } - $marr[(($row * $ncol) + $col)] = ((10 * $chr) + $bit); - return $marr; - } - - /** - * Places the 8 bits of a utah-shaped symbol character. - * (Annex F - ECC 200 symbol character placement) - * @param $marr (array) Array of symbols. - * @param $nrow (int) Number of rows. - * @param $ncol (int) Number of columns. - * @param $row (int) Row number. - * @param $col (int) Column number. - * @param $chr (int) Char byte. - * @return array - * @protected - */ - protected function placeUtah($marr, $nrow, $ncol, $row, $col, $chr) { - $marr = $this->placeModule($marr, $nrow, $ncol, $row-2, $col-2, $chr, 1); - $marr = $this->placeModule($marr, $nrow, $ncol, $row-2, $col-1, $chr, 2); - $marr = $this->placeModule($marr, $nrow, $ncol, $row-1, $col-2, $chr, 3); - $marr = $this->placeModule($marr, $nrow, $ncol, $row-1, $col-1, $chr, 4); - $marr = $this->placeModule($marr, $nrow, $ncol, $row-1, $col, $chr, 5); - $marr = $this->placeModule($marr, $nrow, $ncol, $row, $col-2, $chr, 6); - $marr = $this->placeModule($marr, $nrow, $ncol, $row, $col-1, $chr, 7); - $marr = $this->placeModule($marr, $nrow, $ncol, $row, $col, $chr, 8); - return $marr; - } - - /** - * Places the 8 bits of the first special corner case. - * (Annex F - ECC 200 symbol character placement) - * @param $marr (array) Array of symbols. - * @param $nrow (int) Number of rows. - * @param $ncol (int) Number of columns. - * @param $chr (int) Char byte. - * @return array - * @protected - */ - protected function placeCornerA($marr, $nrow, $ncol, $chr) { - $marr = $this->placeModule($marr, $nrow, $ncol, $nrow-1, 0, $chr, 1); - $marr = $this->placeModule($marr, $nrow, $ncol, $nrow-1, 1, $chr, 2); - $marr = $this->placeModule($marr, $nrow, $ncol, $nrow-1, 2, $chr, 3); - $marr = $this->placeModule($marr, $nrow, $ncol, 0, $ncol-2, $chr, 4); - $marr = $this->placeModule($marr, $nrow, $ncol, 0, $ncol-1, $chr, 5); - $marr = $this->placeModule($marr, $nrow, $ncol, 1, $ncol-1, $chr, 6); - $marr = $this->placeModule($marr, $nrow, $ncol, 2, $ncol-1, $chr, 7); - $marr = $this->placeModule($marr, $nrow, $ncol, 3, $ncol-1, $chr, 8); - return $marr; - } - - /** - * Places the 8 bits of the second special corner case. - * (Annex F - ECC 200 symbol character placement) - * @param $marr (array) Array of symbols. - * @param $nrow (int) Number of rows. - * @param $ncol (int) Number of columns. - * @param $chr (int) Char byte. - * @return array - * @protected - */ - protected function placeCornerB($marr, $nrow, $ncol, $chr) { - $marr = $this->placeModule($marr, $nrow, $ncol, $nrow-3, 0, $chr, 1); - $marr = $this->placeModule($marr, $nrow, $ncol, $nrow-2, 0, $chr, 2); - $marr = $this->placeModule($marr, $nrow, $ncol, $nrow-1, 0, $chr, 3); - $marr = $this->placeModule($marr, $nrow, $ncol, 0, $ncol-4, $chr, 4); - $marr = $this->placeModule($marr, $nrow, $ncol, 0, $ncol-3, $chr, 5); - $marr = $this->placeModule($marr, $nrow, $ncol, 0, $ncol-2, $chr, 6); - $marr = $this->placeModule($marr, $nrow, $ncol, 0, $ncol-1, $chr, 7); - $marr = $this->placeModule($marr, $nrow, $ncol, 1, $ncol-1, $chr, 8); - return $marr; - } - - /** - * Places the 8 bits of the third special corner case. - * (Annex F - ECC 200 symbol character placement) - * @param $marr (array) Array of symbols. - * @param $nrow (int) Number of rows. - * @param $ncol (int) Number of columns. - * @param $chr (int) Char byte. - * @return array - * @protected - */ - protected function placeCornerC($marr, $nrow, $ncol, $chr) { - $marr = $this->placeModule($marr, $nrow, $ncol, $nrow-3, 0, $chr, 1); - $marr = $this->placeModule($marr, $nrow, $ncol, $nrow-2, 0, $chr, 2); - $marr = $this->placeModule($marr, $nrow, $ncol, $nrow-1, 0, $chr, 3); - $marr = $this->placeModule($marr, $nrow, $ncol, 0, $ncol-2, $chr, 4); - $marr = $this->placeModule($marr, $nrow, $ncol, 0, $ncol-1, $chr, 5); - $marr = $this->placeModule($marr, $nrow, $ncol, 1, $ncol-1, $chr, 6); - $marr = $this->placeModule($marr, $nrow, $ncol, 2, $ncol-1, $chr, 7); - $marr = $this->placeModule($marr, $nrow, $ncol, 3, $ncol-1, $chr, 8); - return $marr; - } - - /** - * Places the 8 bits of the fourth special corner case. - * (Annex F - ECC 200 symbol character placement) - * @param $marr (array) Array of symbols. - * @param $nrow (int) Number of rows. - * @param $ncol (int) Number of columns. - * @param $chr (int) Char byte. - * @return array - * @protected - */ - protected function placeCornerD($marr, $nrow, $ncol, $chr) { - $marr = $this->placeModule($marr, $nrow, $ncol, $nrow-1, 0, $chr, 1); - $marr = $this->placeModule($marr, $nrow, $ncol, $nrow-1, $ncol-1, $chr, 2); - $marr = $this->placeModule($marr, $nrow, $ncol, 0, $ncol-3, $chr, 3); - $marr = $this->placeModule($marr, $nrow, $ncol, 0, $ncol-2, $chr, 4); - $marr = $this->placeModule($marr, $nrow, $ncol, 0, $ncol-1, $chr, 5); - $marr = $this->placeModule($marr, $nrow, $ncol, 1, $ncol-3, $chr, 6); - $marr = $this->placeModule($marr, $nrow, $ncol, 1, $ncol-2, $chr, 7); - $marr = $this->placeModule($marr, $nrow, $ncol, 1, $ncol-1, $chr, 8); - return $marr; - } - - /** - * Build a placement map. - * (Annex F - ECC 200 symbol character placement) - * @param $nrow (int) Number of rows. - * @param $ncol (int) Number of columns. - * @return array - * @protected - */ - protected function getPlacementMap($nrow, $ncol) { - // initialize array with zeros - $marr = array_fill(0, ($nrow * $ncol), 0); - // set starting values - $chr = 1; - $row = 4; - $col = 0; - do { - // repeatedly first check for one of the special corner cases, then - if (($row == $nrow) AND ($col == 0)) { - $marr = $this->placeCornerA($marr, $nrow, $ncol, $chr); - ++$chr; - } - if (($row == ($nrow - 2)) AND ($col == 0) AND ($ncol % 4)) { - $marr = $this->placeCornerB($marr, $nrow, $ncol, $chr); - ++$chr; - } - if (($row == ($nrow - 2)) AND ($col == 0) AND (($ncol % 8) == 4)) { - $marr = $this->placeCornerC($marr, $nrow, $ncol, $chr); - ++$chr; - } - if (($row == ($nrow + 4)) AND ($col == 2) AND (!($ncol % 8))) { - $marr = $this->placeCornerD($marr, $nrow, $ncol, $chr); - ++$chr; - } - // sweep upward diagonally, inserting successive characters, - do { - if (($row < $nrow) AND ($col >= 0) AND (!$marr[(($row * $ncol) + $col)])) { - $marr = $this->placeUtah($marr, $nrow, $ncol, $row, $col, $chr); - ++$chr; - } - $row -= 2; - $col += 2; - } while (($row >= 0) AND ($col < $ncol)); - ++$row; - $col += 3; - // & then sweep downward diagonally, inserting successive characters,... - do { - if (($row >= 0) AND ($col < $ncol) AND (!$marr[(($row * $ncol) + $col)])) { - $marr = $this->placeUtah($marr, $nrow, $ncol, $row, $col, $chr); - ++$chr; - } - $row += 2; - $col -= 2; - } while (($row < $nrow) AND ($col >= 0)); - $row += 3; - ++$col; - // ... until the entire array is scanned - } while (($row < $nrow) OR ($col < $ncol)); - // lastly, if the lower righthand corner is untouched, fill in fixed pattern - if (!$marr[(($nrow * $ncol) - 1)]) { - $marr[(($nrow * $ncol) - 1)] = 1; - $marr[(($nrow * $ncol) - $ncol - 2)] = 1; - } - return $marr; - } - -} // end DataMatrix class -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/barcodes/pdf417.php b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/barcodes/pdf417.php deleted file mode 100644 index 3b1774e..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/barcodes/pdf417.php +++ /dev/null @@ -1,996 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// DESCRIPTION : -// -// Class to create PDF417 barcode arrays for TCPDF class. -// PDF417 (ISO/IEC 15438:2006) is a 2-dimensional stacked bar code created by Symbol Technologies in 1991. -// It is one of the most popular 2D codes because of its ability to be read with slightly modified handheld laser or linear CCD scanners. -// TECHNICAL DATA / FEATURES OF PDF417: -// Encodable Character Set: All 128 ASCII Characters (including extended) -// Code Type: Continuous, Multi-Row -// Symbol Height: 3 - 90 Rows -// Symbol Width: 90X - 583X -// Bidirectional Decoding: Yes -// Error Correction Characters: 2 - 512 -// Maximum Data Characters: 1850 text, 2710 digits, 1108 bytes -// -//============================================================+ - -/** - * @file - * Class to create PDF417 barcode arrays for TCPDF class. - * PDF417 (ISO/IEC 15438:2006) is a 2-dimensional stacked bar code created by Symbol Technologies in 1991. - * (requires PHP bcmath extension) - * @package com.tecnick.tcpdf - * @author Nicola Asuni - * @version 1.0.005 - */ - -// definitions -if (!defined('PDF417DEFS')) { - - /** - * Indicate that definitions for this class are set - */ - define('PDF417DEFS', true); - - // ----------------------------------------------------- - - /** - * Row height respect X dimension of single module - */ - define('ROWHEIGHT', 4); - - /** - * Horizontal quiet zone in modules - */ - define('QUIETH', 2); - - /** - * Vertical quiet zone in modules - */ - define('QUIETV', 2); - -} // end of definitions - -// #*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# - -/** - * @class PDF417 - * Class to create PDF417 barcode arrays for TCPDF class. - * PDF417 (ISO/IEC 15438:2006) is a 2-dimensional stacked bar code created by Symbol Technologies in 1991. - * @package com.tecnick.tcpdf - * @author Nicola Asuni - * @version 1.0.003 - */ -class PDF417 { - - /** - * Barcode array to be returned which is readable by TCPDF. - * @protected - */ - protected $barcode_array = array(); - - /** - * Start pattern. - * @protected - */ - protected $start_pattern = '11111111010101000'; - - /** - * Stop pattern. - * @protected - */ - protected $stop_pattern = '111111101000101001'; - - /** - * Array of text Compaction Sub-Modes (values 0xFB - 0xFF are used for submode changers). - * @protected - */ - protected $textsubmodes = array( - array(0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x20,0xFD,0xFE,0xFF), // Alpha - array(0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x20,0xFD,0xFE,0xFF), // Lower - array(0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x26,0x0d,0x09,0x2c,0x3a,0x23,0x2d,0x2e,0x24,0x2f,0x2b,0x25,0x2a,0x3d,0x5e,0xFB,0x20,0xFD,0xFE,0xFF), // Mixed - array(0x3b,0x3c,0x3e,0x40,0x5b,0x5c,0x5d,0x5f,0x60,0x7e,0x21,0x0d,0x09,0x2c,0x3a,0x0a,0x2d,0x2e,0x24,0x2f,0x22,0x7c,0x2a,0x28,0x29,0x3f,0x7b,0x7d,0x27,0xFF) // Puntuaction - ); - - /** - * Array of switching codes for Text Compaction Sub-Modes. - * @protected - */ - protected $textlatch = array( - '01' => array(27), '02' => array(28), '03' => array(28,25), // - '10' => array(28,28), '12' => array(28), '13' => array(28,25), // - '20' => array(28), '21' => array(27), '23' => array(25), // - '30' => array(29), '31' => array(29,27), '32' => array(29,28) // - ); - - /** - * Clusters of codewords (0, 3, 6)
    - * Values are hex equivalents of binary representation of bars (1 = bar, 0 = space).
    - * The codewords numbered from 900 to 928 have special meaning, some enable to switch between modes in order to optimise the code:
      - *
    • 900 : Switch to "Text" mode
    • - *
    • 901 : Switch to "Byte" mode
    • - *
    • 902 : Switch to "Numeric" mode
    • - *
    • 903 - 912 : Reserved
    • - *
    • 913 : Switch to "Octet" only for the next codeword
    • - *
    • 914 - 920 : Reserved
    • - *
    • 921 : Initialization
    • - *
    • 922 : Terminator codeword for Macro PDF control block
    • - *
    • 923 : Sequence tag to identify the beginning of optional fields in the Macro PDF control block
    • - *
    • 924 : Switch to "Byte" mode (If the total number of byte is multiple of 6)
    • - *
    • 925 : Identifier for a user defined Extended Channel Interpretation (ECI)
    • - *
    • 926 : Identifier for a general purpose ECI format
    • - *
    • 927 : Identifier for an ECI of a character set or code page
    • - *
    • 928 : Macro marker codeword to indicate the beginning of a Macro PDF Control Block
    • - *
    - * @protected - */ - protected $clusters = array( - array( // cluster 0 ----------------------------------------------------------------------- - 0x1d5c0,0x1eaf0,0x1f57c,0x1d4e0,0x1ea78,0x1f53e,0x1a8c0,0x1d470,0x1a860,0x15040, // 10 - 0x1a830,0x15020,0x1adc0,0x1d6f0,0x1eb7c,0x1ace0,0x1d678,0x1eb3e,0x158c0,0x1ac70, // 20 - 0x15860,0x15dc0,0x1aef0,0x1d77c,0x15ce0,0x1ae78,0x1d73e,0x15c70,0x1ae3c,0x15ef0, // 30 - 0x1af7c,0x15e78,0x1af3e,0x15f7c,0x1f5fa,0x1d2e0,0x1e978,0x1f4be,0x1a4c0,0x1d270, // 40 - 0x1e93c,0x1a460,0x1d238,0x14840,0x1a430,0x1d21c,0x14820,0x1a418,0x14810,0x1a6e0, // 50 - 0x1d378,0x1e9be,0x14cc0,0x1a670,0x1d33c,0x14c60,0x1a638,0x1d31e,0x14c30,0x1a61c, // 60 - 0x14ee0,0x1a778,0x1d3be,0x14e70,0x1a73c,0x14e38,0x1a71e,0x14f78,0x1a7be,0x14f3c, // 70 - 0x14f1e,0x1a2c0,0x1d170,0x1e8bc,0x1a260,0x1d138,0x1e89e,0x14440,0x1a230,0x1d11c, // 80 - 0x14420,0x1a218,0x14410,0x14408,0x146c0,0x1a370,0x1d1bc,0x14660,0x1a338,0x1d19e, // 90 - 0x14630,0x1a31c,0x14618,0x1460c,0x14770,0x1a3bc,0x14738,0x1a39e,0x1471c,0x147bc, // 100 - 0x1a160,0x1d0b8,0x1e85e,0x14240,0x1a130,0x1d09c,0x14220,0x1a118,0x1d08e,0x14210, // 110 - 0x1a10c,0x14208,0x1a106,0x14360,0x1a1b8,0x1d0de,0x14330,0x1a19c,0x14318,0x1a18e, // 120 - 0x1430c,0x14306,0x1a1de,0x1438e,0x14140,0x1a0b0,0x1d05c,0x14120,0x1a098,0x1d04e, // 130 - 0x14110,0x1a08c,0x14108,0x1a086,0x14104,0x141b0,0x14198,0x1418c,0x140a0,0x1d02e, // 140 - 0x1a04c,0x1a046,0x14082,0x1cae0,0x1e578,0x1f2be,0x194c0,0x1ca70,0x1e53c,0x19460, // 150 - 0x1ca38,0x1e51e,0x12840,0x19430,0x12820,0x196e0,0x1cb78,0x1e5be,0x12cc0,0x19670, // 160 - 0x1cb3c,0x12c60,0x19638,0x12c30,0x12c18,0x12ee0,0x19778,0x1cbbe,0x12e70,0x1973c, // 170 - 0x12e38,0x12e1c,0x12f78,0x197be,0x12f3c,0x12fbe,0x1dac0,0x1ed70,0x1f6bc,0x1da60, // 180 - 0x1ed38,0x1f69e,0x1b440,0x1da30,0x1ed1c,0x1b420,0x1da18,0x1ed0e,0x1b410,0x1da0c, // 190 - 0x192c0,0x1c970,0x1e4bc,0x1b6c0,0x19260,0x1c938,0x1e49e,0x1b660,0x1db38,0x1ed9e, // 200 - 0x16c40,0x12420,0x19218,0x1c90e,0x16c20,0x1b618,0x16c10,0x126c0,0x19370,0x1c9bc, // 210 - 0x16ec0,0x12660,0x19338,0x1c99e,0x16e60,0x1b738,0x1db9e,0x16e30,0x12618,0x16e18, // 220 - 0x12770,0x193bc,0x16f70,0x12738,0x1939e,0x16f38,0x1b79e,0x16f1c,0x127bc,0x16fbc, // 230 - 0x1279e,0x16f9e,0x1d960,0x1ecb8,0x1f65e,0x1b240,0x1d930,0x1ec9c,0x1b220,0x1d918, // 240 - 0x1ec8e,0x1b210,0x1d90c,0x1b208,0x1b204,0x19160,0x1c8b8,0x1e45e,0x1b360,0x19130, // 250 - 0x1c89c,0x16640,0x12220,0x1d99c,0x1c88e,0x16620,0x12210,0x1910c,0x16610,0x1b30c, // 260 - 0x19106,0x12204,0x12360,0x191b8,0x1c8de,0x16760,0x12330,0x1919c,0x16730,0x1b39c, // 270 - 0x1918e,0x16718,0x1230c,0x12306,0x123b8,0x191de,0x167b8,0x1239c,0x1679c,0x1238e, // 280 - 0x1678e,0x167de,0x1b140,0x1d8b0,0x1ec5c,0x1b120,0x1d898,0x1ec4e,0x1b110,0x1d88c, // 290 - 0x1b108,0x1d886,0x1b104,0x1b102,0x12140,0x190b0,0x1c85c,0x16340,0x12120,0x19098, // 300 - 0x1c84e,0x16320,0x1b198,0x1d8ce,0x16310,0x12108,0x19086,0x16308,0x1b186,0x16304, // 310 - 0x121b0,0x190dc,0x163b0,0x12198,0x190ce,0x16398,0x1b1ce,0x1638c,0x12186,0x16386, // 320 - 0x163dc,0x163ce,0x1b0a0,0x1d858,0x1ec2e,0x1b090,0x1d84c,0x1b088,0x1d846,0x1b084, // 330 - 0x1b082,0x120a0,0x19058,0x1c82e,0x161a0,0x12090,0x1904c,0x16190,0x1b0cc,0x19046, // 340 - 0x16188,0x12084,0x16184,0x12082,0x120d8,0x161d8,0x161cc,0x161c6,0x1d82c,0x1d826, // 350 - 0x1b042,0x1902c,0x12048,0x160c8,0x160c4,0x160c2,0x18ac0,0x1c570,0x1e2bc,0x18a60, // 360 - 0x1c538,0x11440,0x18a30,0x1c51c,0x11420,0x18a18,0x11410,0x11408,0x116c0,0x18b70, // 370 - 0x1c5bc,0x11660,0x18b38,0x1c59e,0x11630,0x18b1c,0x11618,0x1160c,0x11770,0x18bbc, // 380 - 0x11738,0x18b9e,0x1171c,0x117bc,0x1179e,0x1cd60,0x1e6b8,0x1f35e,0x19a40,0x1cd30, // 390 - 0x1e69c,0x19a20,0x1cd18,0x1e68e,0x19a10,0x1cd0c,0x19a08,0x1cd06,0x18960,0x1c4b8, // 400 - 0x1e25e,0x19b60,0x18930,0x1c49c,0x13640,0x11220,0x1cd9c,0x1c48e,0x13620,0x19b18, // 410 - 0x1890c,0x13610,0x11208,0x13608,0x11360,0x189b8,0x1c4de,0x13760,0x11330,0x1cdde, // 420 - 0x13730,0x19b9c,0x1898e,0x13718,0x1130c,0x1370c,0x113b8,0x189de,0x137b8,0x1139c, // 430 - 0x1379c,0x1138e,0x113de,0x137de,0x1dd40,0x1eeb0,0x1f75c,0x1dd20,0x1ee98,0x1f74e, // 440 - 0x1dd10,0x1ee8c,0x1dd08,0x1ee86,0x1dd04,0x19940,0x1ccb0,0x1e65c,0x1bb40,0x19920, // 450 - 0x1eedc,0x1e64e,0x1bb20,0x1dd98,0x1eece,0x1bb10,0x19908,0x1cc86,0x1bb08,0x1dd86, // 460 - 0x19902,0x11140,0x188b0,0x1c45c,0x13340,0x11120,0x18898,0x1c44e,0x17740,0x13320, // 470 - 0x19998,0x1ccce,0x17720,0x1bb98,0x1ddce,0x18886,0x17710,0x13308,0x19986,0x17708, // 480 - 0x11102,0x111b0,0x188dc,0x133b0,0x11198,0x188ce,0x177b0,0x13398,0x199ce,0x17798, // 490 - 0x1bbce,0x11186,0x13386,0x111dc,0x133dc,0x111ce,0x177dc,0x133ce,0x1dca0,0x1ee58, // 500 - 0x1f72e,0x1dc90,0x1ee4c,0x1dc88,0x1ee46,0x1dc84,0x1dc82,0x198a0,0x1cc58,0x1e62e, // 510 - 0x1b9a0,0x19890,0x1ee6e,0x1b990,0x1dccc,0x1cc46,0x1b988,0x19884,0x1b984,0x19882, // 520 - 0x1b982,0x110a0,0x18858,0x1c42e,0x131a0,0x11090,0x1884c,0x173a0,0x13190,0x198cc, // 530 - 0x18846,0x17390,0x1b9cc,0x11084,0x17388,0x13184,0x11082,0x13182,0x110d8,0x1886e, // 540 - 0x131d8,0x110cc,0x173d8,0x131cc,0x110c6,0x173cc,0x131c6,0x110ee,0x173ee,0x1dc50, // 550 - 0x1ee2c,0x1dc48,0x1ee26,0x1dc44,0x1dc42,0x19850,0x1cc2c,0x1b8d0,0x19848,0x1cc26, // 560 - 0x1b8c8,0x1dc66,0x1b8c4,0x19842,0x1b8c2,0x11050,0x1882c,0x130d0,0x11048,0x18826, // 570 - 0x171d0,0x130c8,0x19866,0x171c8,0x1b8e6,0x11042,0x171c4,0x130c2,0x171c2,0x130ec, // 580 - 0x171ec,0x171e6,0x1ee16,0x1dc22,0x1cc16,0x19824,0x19822,0x11028,0x13068,0x170e8, // 590 - 0x11022,0x13062,0x18560,0x10a40,0x18530,0x10a20,0x18518,0x1c28e,0x10a10,0x1850c, // 600 - 0x10a08,0x18506,0x10b60,0x185b8,0x1c2de,0x10b30,0x1859c,0x10b18,0x1858e,0x10b0c, // 610 - 0x10b06,0x10bb8,0x185de,0x10b9c,0x10b8e,0x10bde,0x18d40,0x1c6b0,0x1e35c,0x18d20, // 620 - 0x1c698,0x18d10,0x1c68c,0x18d08,0x1c686,0x18d04,0x10940,0x184b0,0x1c25c,0x11b40, // 630 - 0x10920,0x1c6dc,0x1c24e,0x11b20,0x18d98,0x1c6ce,0x11b10,0x10908,0x18486,0x11b08, // 640 - 0x18d86,0x10902,0x109b0,0x184dc,0x11bb0,0x10998,0x184ce,0x11b98,0x18dce,0x11b8c, // 650 - 0x10986,0x109dc,0x11bdc,0x109ce,0x11bce,0x1cea0,0x1e758,0x1f3ae,0x1ce90,0x1e74c, // 660 - 0x1ce88,0x1e746,0x1ce84,0x1ce82,0x18ca0,0x1c658,0x19da0,0x18c90,0x1c64c,0x19d90, // 670 - 0x1cecc,0x1c646,0x19d88,0x18c84,0x19d84,0x18c82,0x19d82,0x108a0,0x18458,0x119a0, // 680 - 0x10890,0x1c66e,0x13ba0,0x11990,0x18ccc,0x18446,0x13b90,0x19dcc,0x10884,0x13b88, // 690 - 0x11984,0x10882,0x11982,0x108d8,0x1846e,0x119d8,0x108cc,0x13bd8,0x119cc,0x108c6, // 700 - 0x13bcc,0x119c6,0x108ee,0x119ee,0x13bee,0x1ef50,0x1f7ac,0x1ef48,0x1f7a6,0x1ef44, // 710 - 0x1ef42,0x1ce50,0x1e72c,0x1ded0,0x1ef6c,0x1e726,0x1dec8,0x1ef66,0x1dec4,0x1ce42, // 720 - 0x1dec2,0x18c50,0x1c62c,0x19cd0,0x18c48,0x1c626,0x1bdd0,0x19cc8,0x1ce66,0x1bdc8, // 730 - 0x1dee6,0x18c42,0x1bdc4,0x19cc2,0x1bdc2,0x10850,0x1842c,0x118d0,0x10848,0x18426, // 740 - 0x139d0,0x118c8,0x18c66,0x17bd0,0x139c8,0x19ce6,0x10842,0x17bc8,0x1bde6,0x118c2, // 750 - 0x17bc4,0x1086c,0x118ec,0x10866,0x139ec,0x118e6,0x17bec,0x139e6,0x17be6,0x1ef28, // 760 - 0x1f796,0x1ef24,0x1ef22,0x1ce28,0x1e716,0x1de68,0x1ef36,0x1de64,0x1ce22,0x1de62, // 770 - 0x18c28,0x1c616,0x19c68,0x18c24,0x1bce8,0x19c64,0x18c22,0x1bce4,0x19c62,0x1bce2, // 780 - 0x10828,0x18416,0x11868,0x18c36,0x138e8,0x11864,0x10822,0x179e8,0x138e4,0x11862, // 790 - 0x179e4,0x138e2,0x179e2,0x11876,0x179f6,0x1ef12,0x1de34,0x1de32,0x19c34,0x1bc74, // 800 - 0x1bc72,0x11834,0x13874,0x178f4,0x178f2,0x10540,0x10520,0x18298,0x10510,0x10508, // 810 - 0x10504,0x105b0,0x10598,0x1058c,0x10586,0x105dc,0x105ce,0x186a0,0x18690,0x1c34c, // 820 - 0x18688,0x1c346,0x18684,0x18682,0x104a0,0x18258,0x10da0,0x186d8,0x1824c,0x10d90, // 830 - 0x186cc,0x10d88,0x186c6,0x10d84,0x10482,0x10d82,0x104d8,0x1826e,0x10dd8,0x186ee, // 840 - 0x10dcc,0x104c6,0x10dc6,0x104ee,0x10dee,0x1c750,0x1c748,0x1c744,0x1c742,0x18650, // 850 - 0x18ed0,0x1c76c,0x1c326,0x18ec8,0x1c766,0x18ec4,0x18642,0x18ec2,0x10450,0x10cd0, // 860 - 0x10448,0x18226,0x11dd0,0x10cc8,0x10444,0x11dc8,0x10cc4,0x10442,0x11dc4,0x10cc2, // 870 - 0x1046c,0x10cec,0x10466,0x11dec,0x10ce6,0x11de6,0x1e7a8,0x1e7a4,0x1e7a2,0x1c728, // 880 - 0x1cf68,0x1e7b6,0x1cf64,0x1c722,0x1cf62,0x18628,0x1c316,0x18e68,0x1c736,0x19ee8, // 890 - 0x18e64,0x18622,0x19ee4,0x18e62,0x19ee2,0x10428,0x18216,0x10c68,0x18636,0x11ce8, // 900 - 0x10c64,0x10422,0x13de8,0x11ce4,0x10c62,0x13de4,0x11ce2,0x10436,0x10c76,0x11cf6, // 910 - 0x13df6,0x1f7d4,0x1f7d2,0x1e794,0x1efb4,0x1e792,0x1efb2,0x1c714,0x1cf34,0x1c712, // 920 - 0x1df74,0x1cf32,0x1df72,0x18614,0x18e34,0x18612,0x19e74,0x18e32,0x1bef4), // 929 - array( // cluster 3 ----------------------------------------------------------------------- - 0x1f560,0x1fab8,0x1ea40,0x1f530,0x1fa9c,0x1ea20,0x1f518,0x1fa8e,0x1ea10,0x1f50c, // 10 - 0x1ea08,0x1f506,0x1ea04,0x1eb60,0x1f5b8,0x1fade,0x1d640,0x1eb30,0x1f59c,0x1d620, // 20 - 0x1eb18,0x1f58e,0x1d610,0x1eb0c,0x1d608,0x1eb06,0x1d604,0x1d760,0x1ebb8,0x1f5de, // 30 - 0x1ae40,0x1d730,0x1eb9c,0x1ae20,0x1d718,0x1eb8e,0x1ae10,0x1d70c,0x1ae08,0x1d706, // 40 - 0x1ae04,0x1af60,0x1d7b8,0x1ebde,0x15e40,0x1af30,0x1d79c,0x15e20,0x1af18,0x1d78e, // 50 - 0x15e10,0x1af0c,0x15e08,0x1af06,0x15f60,0x1afb8,0x1d7de,0x15f30,0x1af9c,0x15f18, // 60 - 0x1af8e,0x15f0c,0x15fb8,0x1afde,0x15f9c,0x15f8e,0x1e940,0x1f4b0,0x1fa5c,0x1e920, // 70 - 0x1f498,0x1fa4e,0x1e910,0x1f48c,0x1e908,0x1f486,0x1e904,0x1e902,0x1d340,0x1e9b0, // 80 - 0x1f4dc,0x1d320,0x1e998,0x1f4ce,0x1d310,0x1e98c,0x1d308,0x1e986,0x1d304,0x1d302, // 90 - 0x1a740,0x1d3b0,0x1e9dc,0x1a720,0x1d398,0x1e9ce,0x1a710,0x1d38c,0x1a708,0x1d386, // 100 - 0x1a704,0x1a702,0x14f40,0x1a7b0,0x1d3dc,0x14f20,0x1a798,0x1d3ce,0x14f10,0x1a78c, // 110 - 0x14f08,0x1a786,0x14f04,0x14fb0,0x1a7dc,0x14f98,0x1a7ce,0x14f8c,0x14f86,0x14fdc, // 120 - 0x14fce,0x1e8a0,0x1f458,0x1fa2e,0x1e890,0x1f44c,0x1e888,0x1f446,0x1e884,0x1e882, // 130 - 0x1d1a0,0x1e8d8,0x1f46e,0x1d190,0x1e8cc,0x1d188,0x1e8c6,0x1d184,0x1d182,0x1a3a0, // 140 - 0x1d1d8,0x1e8ee,0x1a390,0x1d1cc,0x1a388,0x1d1c6,0x1a384,0x1a382,0x147a0,0x1a3d8, // 150 - 0x1d1ee,0x14790,0x1a3cc,0x14788,0x1a3c6,0x14784,0x14782,0x147d8,0x1a3ee,0x147cc, // 160 - 0x147c6,0x147ee,0x1e850,0x1f42c,0x1e848,0x1f426,0x1e844,0x1e842,0x1d0d0,0x1e86c, // 170 - 0x1d0c8,0x1e866,0x1d0c4,0x1d0c2,0x1a1d0,0x1d0ec,0x1a1c8,0x1d0e6,0x1a1c4,0x1a1c2, // 180 - 0x143d0,0x1a1ec,0x143c8,0x1a1e6,0x143c4,0x143c2,0x143ec,0x143e6,0x1e828,0x1f416, // 190 - 0x1e824,0x1e822,0x1d068,0x1e836,0x1d064,0x1d062,0x1a0e8,0x1d076,0x1a0e4,0x1a0e2, // 200 - 0x141e8,0x1a0f6,0x141e4,0x141e2,0x1e814,0x1e812,0x1d034,0x1d032,0x1a074,0x1a072, // 210 - 0x1e540,0x1f2b0,0x1f95c,0x1e520,0x1f298,0x1f94e,0x1e510,0x1f28c,0x1e508,0x1f286, // 220 - 0x1e504,0x1e502,0x1cb40,0x1e5b0,0x1f2dc,0x1cb20,0x1e598,0x1f2ce,0x1cb10,0x1e58c, // 230 - 0x1cb08,0x1e586,0x1cb04,0x1cb02,0x19740,0x1cbb0,0x1e5dc,0x19720,0x1cb98,0x1e5ce, // 240 - 0x19710,0x1cb8c,0x19708,0x1cb86,0x19704,0x19702,0x12f40,0x197b0,0x1cbdc,0x12f20, // 250 - 0x19798,0x1cbce,0x12f10,0x1978c,0x12f08,0x19786,0x12f04,0x12fb0,0x197dc,0x12f98, // 260 - 0x197ce,0x12f8c,0x12f86,0x12fdc,0x12fce,0x1f6a0,0x1fb58,0x16bf0,0x1f690,0x1fb4c, // 270 - 0x169f8,0x1f688,0x1fb46,0x168fc,0x1f684,0x1f682,0x1e4a0,0x1f258,0x1f92e,0x1eda0, // 280 - 0x1e490,0x1fb6e,0x1ed90,0x1f6cc,0x1f246,0x1ed88,0x1e484,0x1ed84,0x1e482,0x1ed82, // 290 - 0x1c9a0,0x1e4d8,0x1f26e,0x1dba0,0x1c990,0x1e4cc,0x1db90,0x1edcc,0x1e4c6,0x1db88, // 300 - 0x1c984,0x1db84,0x1c982,0x1db82,0x193a0,0x1c9d8,0x1e4ee,0x1b7a0,0x19390,0x1c9cc, // 310 - 0x1b790,0x1dbcc,0x1c9c6,0x1b788,0x19384,0x1b784,0x19382,0x1b782,0x127a0,0x193d8, // 320 - 0x1c9ee,0x16fa0,0x12790,0x193cc,0x16f90,0x1b7cc,0x193c6,0x16f88,0x12784,0x16f84, // 330 - 0x12782,0x127d8,0x193ee,0x16fd8,0x127cc,0x16fcc,0x127c6,0x16fc6,0x127ee,0x1f650, // 340 - 0x1fb2c,0x165f8,0x1f648,0x1fb26,0x164fc,0x1f644,0x1647e,0x1f642,0x1e450,0x1f22c, // 350 - 0x1ecd0,0x1e448,0x1f226,0x1ecc8,0x1f666,0x1ecc4,0x1e442,0x1ecc2,0x1c8d0,0x1e46c, // 360 - 0x1d9d0,0x1c8c8,0x1e466,0x1d9c8,0x1ece6,0x1d9c4,0x1c8c2,0x1d9c2,0x191d0,0x1c8ec, // 370 - 0x1b3d0,0x191c8,0x1c8e6,0x1b3c8,0x1d9e6,0x1b3c4,0x191c2,0x1b3c2,0x123d0,0x191ec, // 380 - 0x167d0,0x123c8,0x191e6,0x167c8,0x1b3e6,0x167c4,0x123c2,0x167c2,0x123ec,0x167ec, // 390 - 0x123e6,0x167e6,0x1f628,0x1fb16,0x162fc,0x1f624,0x1627e,0x1f622,0x1e428,0x1f216, // 400 - 0x1ec68,0x1f636,0x1ec64,0x1e422,0x1ec62,0x1c868,0x1e436,0x1d8e8,0x1c864,0x1d8e4, // 410 - 0x1c862,0x1d8e2,0x190e8,0x1c876,0x1b1e8,0x1d8f6,0x1b1e4,0x190e2,0x1b1e2,0x121e8, // 420 - 0x190f6,0x163e8,0x121e4,0x163e4,0x121e2,0x163e2,0x121f6,0x163f6,0x1f614,0x1617e, // 430 - 0x1f612,0x1e414,0x1ec34,0x1e412,0x1ec32,0x1c834,0x1d874,0x1c832,0x1d872,0x19074, // 440 - 0x1b0f4,0x19072,0x1b0f2,0x120f4,0x161f4,0x120f2,0x161f2,0x1f60a,0x1e40a,0x1ec1a, // 450 - 0x1c81a,0x1d83a,0x1903a,0x1b07a,0x1e2a0,0x1f158,0x1f8ae,0x1e290,0x1f14c,0x1e288, // 460 - 0x1f146,0x1e284,0x1e282,0x1c5a0,0x1e2d8,0x1f16e,0x1c590,0x1e2cc,0x1c588,0x1e2c6, // 470 - 0x1c584,0x1c582,0x18ba0,0x1c5d8,0x1e2ee,0x18b90,0x1c5cc,0x18b88,0x1c5c6,0x18b84, // 480 - 0x18b82,0x117a0,0x18bd8,0x1c5ee,0x11790,0x18bcc,0x11788,0x18bc6,0x11784,0x11782, // 490 - 0x117d8,0x18bee,0x117cc,0x117c6,0x117ee,0x1f350,0x1f9ac,0x135f8,0x1f348,0x1f9a6, // 500 - 0x134fc,0x1f344,0x1347e,0x1f342,0x1e250,0x1f12c,0x1e6d0,0x1e248,0x1f126,0x1e6c8, // 510 - 0x1f366,0x1e6c4,0x1e242,0x1e6c2,0x1c4d0,0x1e26c,0x1cdd0,0x1c4c8,0x1e266,0x1cdc8, // 520 - 0x1e6e6,0x1cdc4,0x1c4c2,0x1cdc2,0x189d0,0x1c4ec,0x19bd0,0x189c8,0x1c4e6,0x19bc8, // 530 - 0x1cde6,0x19bc4,0x189c2,0x19bc2,0x113d0,0x189ec,0x137d0,0x113c8,0x189e6,0x137c8, // 540 - 0x19be6,0x137c4,0x113c2,0x137c2,0x113ec,0x137ec,0x113e6,0x137e6,0x1fba8,0x175f0, // 550 - 0x1bafc,0x1fba4,0x174f8,0x1ba7e,0x1fba2,0x1747c,0x1743e,0x1f328,0x1f996,0x132fc, // 560 - 0x1f768,0x1fbb6,0x176fc,0x1327e,0x1f764,0x1f322,0x1767e,0x1f762,0x1e228,0x1f116, // 570 - 0x1e668,0x1e224,0x1eee8,0x1f776,0x1e222,0x1eee4,0x1e662,0x1eee2,0x1c468,0x1e236, // 580 - 0x1cce8,0x1c464,0x1dde8,0x1cce4,0x1c462,0x1dde4,0x1cce2,0x1dde2,0x188e8,0x1c476, // 590 - 0x199e8,0x188e4,0x1bbe8,0x199e4,0x188e2,0x1bbe4,0x199e2,0x1bbe2,0x111e8,0x188f6, // 600 - 0x133e8,0x111e4,0x177e8,0x133e4,0x111e2,0x177e4,0x133e2,0x177e2,0x111f6,0x133f6, // 610 - 0x1fb94,0x172f8,0x1b97e,0x1fb92,0x1727c,0x1723e,0x1f314,0x1317e,0x1f734,0x1f312, // 620 - 0x1737e,0x1f732,0x1e214,0x1e634,0x1e212,0x1ee74,0x1e632,0x1ee72,0x1c434,0x1cc74, // 630 - 0x1c432,0x1dcf4,0x1cc72,0x1dcf2,0x18874,0x198f4,0x18872,0x1b9f4,0x198f2,0x1b9f2, // 640 - 0x110f4,0x131f4,0x110f2,0x173f4,0x131f2,0x173f2,0x1fb8a,0x1717c,0x1713e,0x1f30a, // 650 - 0x1f71a,0x1e20a,0x1e61a,0x1ee3a,0x1c41a,0x1cc3a,0x1dc7a,0x1883a,0x1987a,0x1b8fa, // 660 - 0x1107a,0x130fa,0x171fa,0x170be,0x1e150,0x1f0ac,0x1e148,0x1f0a6,0x1e144,0x1e142, // 670 - 0x1c2d0,0x1e16c,0x1c2c8,0x1e166,0x1c2c4,0x1c2c2,0x185d0,0x1c2ec,0x185c8,0x1c2e6, // 680 - 0x185c4,0x185c2,0x10bd0,0x185ec,0x10bc8,0x185e6,0x10bc4,0x10bc2,0x10bec,0x10be6, // 690 - 0x1f1a8,0x1f8d6,0x11afc,0x1f1a4,0x11a7e,0x1f1a2,0x1e128,0x1f096,0x1e368,0x1e124, // 700 - 0x1e364,0x1e122,0x1e362,0x1c268,0x1e136,0x1c6e8,0x1c264,0x1c6e4,0x1c262,0x1c6e2, // 710 - 0x184e8,0x1c276,0x18de8,0x184e4,0x18de4,0x184e2,0x18de2,0x109e8,0x184f6,0x11be8, // 720 - 0x109e4,0x11be4,0x109e2,0x11be2,0x109f6,0x11bf6,0x1f9d4,0x13af8,0x19d7e,0x1f9d2, // 730 - 0x13a7c,0x13a3e,0x1f194,0x1197e,0x1f3b4,0x1f192,0x13b7e,0x1f3b2,0x1e114,0x1e334, // 740 - 0x1e112,0x1e774,0x1e332,0x1e772,0x1c234,0x1c674,0x1c232,0x1cef4,0x1c672,0x1cef2, // 750 - 0x18474,0x18cf4,0x18472,0x19df4,0x18cf2,0x19df2,0x108f4,0x119f4,0x108f2,0x13bf4, // 760 - 0x119f2,0x13bf2,0x17af0,0x1bd7c,0x17a78,0x1bd3e,0x17a3c,0x17a1e,0x1f9ca,0x1397c, // 770 - 0x1fbda,0x17b7c,0x1393e,0x17b3e,0x1f18a,0x1f39a,0x1f7ba,0x1e10a,0x1e31a,0x1e73a, // 780 - 0x1ef7a,0x1c21a,0x1c63a,0x1ce7a,0x1defa,0x1843a,0x18c7a,0x19cfa,0x1bdfa,0x1087a, // 790 - 0x118fa,0x139fa,0x17978,0x1bcbe,0x1793c,0x1791e,0x138be,0x179be,0x178bc,0x1789e, // 800 - 0x1785e,0x1e0a8,0x1e0a4,0x1e0a2,0x1c168,0x1e0b6,0x1c164,0x1c162,0x182e8,0x1c176, // 810 - 0x182e4,0x182e2,0x105e8,0x182f6,0x105e4,0x105e2,0x105f6,0x1f0d4,0x10d7e,0x1f0d2, // 820 - 0x1e094,0x1e1b4,0x1e092,0x1e1b2,0x1c134,0x1c374,0x1c132,0x1c372,0x18274,0x186f4, // 830 - 0x18272,0x186f2,0x104f4,0x10df4,0x104f2,0x10df2,0x1f8ea,0x11d7c,0x11d3e,0x1f0ca, // 840 - 0x1f1da,0x1e08a,0x1e19a,0x1e3ba,0x1c11a,0x1c33a,0x1c77a,0x1823a,0x1867a,0x18efa, // 850 - 0x1047a,0x10cfa,0x11dfa,0x13d78,0x19ebe,0x13d3c,0x13d1e,0x11cbe,0x13dbe,0x17d70, // 860 - 0x1bebc,0x17d38,0x1be9e,0x17d1c,0x17d0e,0x13cbc,0x17dbc,0x13c9e,0x17d9e,0x17cb8, // 870 - 0x1be5e,0x17c9c,0x17c8e,0x13c5e,0x17cde,0x17c5c,0x17c4e,0x17c2e,0x1c0b4,0x1c0b2, // 880 - 0x18174,0x18172,0x102f4,0x102f2,0x1e0da,0x1c09a,0x1c1ba,0x1813a,0x1837a,0x1027a, // 890 - 0x106fa,0x10ebe,0x11ebc,0x11e9e,0x13eb8,0x19f5e,0x13e9c,0x13e8e,0x11e5e,0x13ede, // 900 - 0x17eb0,0x1bf5c,0x17e98,0x1bf4e,0x17e8c,0x17e86,0x13e5c,0x17edc,0x13e4e,0x17ece, // 910 - 0x17e58,0x1bf2e,0x17e4c,0x17e46,0x13e2e,0x17e6e,0x17e2c,0x17e26,0x10f5e,0x11f5c, // 920 - 0x11f4e,0x13f58,0x19fae,0x13f4c,0x13f46,0x11f2e,0x13f6e,0x13f2c,0x13f26), // 929 - array( // cluster 6 ----------------------------------------------------------------------- - 0x1abe0,0x1d5f8,0x153c0,0x1a9f0,0x1d4fc,0x151e0,0x1a8f8,0x1d47e,0x150f0,0x1a87c, // 10 - 0x15078,0x1fad0,0x15be0,0x1adf8,0x1fac8,0x159f0,0x1acfc,0x1fac4,0x158f8,0x1ac7e, // 20 - 0x1fac2,0x1587c,0x1f5d0,0x1faec,0x15df8,0x1f5c8,0x1fae6,0x15cfc,0x1f5c4,0x15c7e, // 30 - 0x1f5c2,0x1ebd0,0x1f5ec,0x1ebc8,0x1f5e6,0x1ebc4,0x1ebc2,0x1d7d0,0x1ebec,0x1d7c8, // 40 - 0x1ebe6,0x1d7c4,0x1d7c2,0x1afd0,0x1d7ec,0x1afc8,0x1d7e6,0x1afc4,0x14bc0,0x1a5f0, // 50 - 0x1d2fc,0x149e0,0x1a4f8,0x1d27e,0x148f0,0x1a47c,0x14878,0x1a43e,0x1483c,0x1fa68, // 60 - 0x14df0,0x1a6fc,0x1fa64,0x14cf8,0x1a67e,0x1fa62,0x14c7c,0x14c3e,0x1f4e8,0x1fa76, // 70 - 0x14efc,0x1f4e4,0x14e7e,0x1f4e2,0x1e9e8,0x1f4f6,0x1e9e4,0x1e9e2,0x1d3e8,0x1e9f6, // 80 - 0x1d3e4,0x1d3e2,0x1a7e8,0x1d3f6,0x1a7e4,0x1a7e2,0x145e0,0x1a2f8,0x1d17e,0x144f0, // 90 - 0x1a27c,0x14478,0x1a23e,0x1443c,0x1441e,0x1fa34,0x146f8,0x1a37e,0x1fa32,0x1467c, // 100 - 0x1463e,0x1f474,0x1477e,0x1f472,0x1e8f4,0x1e8f2,0x1d1f4,0x1d1f2,0x1a3f4,0x1a3f2, // 110 - 0x142f0,0x1a17c,0x14278,0x1a13e,0x1423c,0x1421e,0x1fa1a,0x1437c,0x1433e,0x1f43a, // 120 - 0x1e87a,0x1d0fa,0x14178,0x1a0be,0x1413c,0x1411e,0x141be,0x140bc,0x1409e,0x12bc0, // 130 - 0x195f0,0x1cafc,0x129e0,0x194f8,0x1ca7e,0x128f0,0x1947c,0x12878,0x1943e,0x1283c, // 140 - 0x1f968,0x12df0,0x196fc,0x1f964,0x12cf8,0x1967e,0x1f962,0x12c7c,0x12c3e,0x1f2e8, // 150 - 0x1f976,0x12efc,0x1f2e4,0x12e7e,0x1f2e2,0x1e5e8,0x1f2f6,0x1e5e4,0x1e5e2,0x1cbe8, // 160 - 0x1e5f6,0x1cbe4,0x1cbe2,0x197e8,0x1cbf6,0x197e4,0x197e2,0x1b5e0,0x1daf8,0x1ed7e, // 170 - 0x169c0,0x1b4f0,0x1da7c,0x168e0,0x1b478,0x1da3e,0x16870,0x1b43c,0x16838,0x1b41e, // 180 - 0x1681c,0x125e0,0x192f8,0x1c97e,0x16de0,0x124f0,0x1927c,0x16cf0,0x1b67c,0x1923e, // 190 - 0x16c78,0x1243c,0x16c3c,0x1241e,0x16c1e,0x1f934,0x126f8,0x1937e,0x1fb74,0x1f932, // 200 - 0x16ef8,0x1267c,0x1fb72,0x16e7c,0x1263e,0x16e3e,0x1f274,0x1277e,0x1f6f4,0x1f272, // 210 - 0x16f7e,0x1f6f2,0x1e4f4,0x1edf4,0x1e4f2,0x1edf2,0x1c9f4,0x1dbf4,0x1c9f2,0x1dbf2, // 220 - 0x193f4,0x193f2,0x165c0,0x1b2f0,0x1d97c,0x164e0,0x1b278,0x1d93e,0x16470,0x1b23c, // 230 - 0x16438,0x1b21e,0x1641c,0x1640e,0x122f0,0x1917c,0x166f0,0x12278,0x1913e,0x16678, // 240 - 0x1b33e,0x1663c,0x1221e,0x1661e,0x1f91a,0x1237c,0x1fb3a,0x1677c,0x1233e,0x1673e, // 250 - 0x1f23a,0x1f67a,0x1e47a,0x1ecfa,0x1c8fa,0x1d9fa,0x191fa,0x162e0,0x1b178,0x1d8be, // 260 - 0x16270,0x1b13c,0x16238,0x1b11e,0x1621c,0x1620e,0x12178,0x190be,0x16378,0x1213c, // 270 - 0x1633c,0x1211e,0x1631e,0x121be,0x163be,0x16170,0x1b0bc,0x16138,0x1b09e,0x1611c, // 280 - 0x1610e,0x120bc,0x161bc,0x1209e,0x1619e,0x160b8,0x1b05e,0x1609c,0x1608e,0x1205e, // 290 - 0x160de,0x1605c,0x1604e,0x115e0,0x18af8,0x1c57e,0x114f0,0x18a7c,0x11478,0x18a3e, // 300 - 0x1143c,0x1141e,0x1f8b4,0x116f8,0x18b7e,0x1f8b2,0x1167c,0x1163e,0x1f174,0x1177e, // 310 - 0x1f172,0x1e2f4,0x1e2f2,0x1c5f4,0x1c5f2,0x18bf4,0x18bf2,0x135c0,0x19af0,0x1cd7c, // 320 - 0x134e0,0x19a78,0x1cd3e,0x13470,0x19a3c,0x13438,0x19a1e,0x1341c,0x1340e,0x112f0, // 330 - 0x1897c,0x136f0,0x11278,0x1893e,0x13678,0x19b3e,0x1363c,0x1121e,0x1361e,0x1f89a, // 340 - 0x1137c,0x1f9ba,0x1377c,0x1133e,0x1373e,0x1f13a,0x1f37a,0x1e27a,0x1e6fa,0x1c4fa, // 350 - 0x1cdfa,0x189fa,0x1bae0,0x1dd78,0x1eebe,0x174c0,0x1ba70,0x1dd3c,0x17460,0x1ba38, // 360 - 0x1dd1e,0x17430,0x1ba1c,0x17418,0x1ba0e,0x1740c,0x132e0,0x19978,0x1ccbe,0x176e0, // 370 - 0x13270,0x1993c,0x17670,0x1bb3c,0x1991e,0x17638,0x1321c,0x1761c,0x1320e,0x1760e, // 380 - 0x11178,0x188be,0x13378,0x1113c,0x17778,0x1333c,0x1111e,0x1773c,0x1331e,0x1771e, // 390 - 0x111be,0x133be,0x177be,0x172c0,0x1b970,0x1dcbc,0x17260,0x1b938,0x1dc9e,0x17230, // 400 - 0x1b91c,0x17218,0x1b90e,0x1720c,0x17206,0x13170,0x198bc,0x17370,0x13138,0x1989e, // 410 - 0x17338,0x1b99e,0x1731c,0x1310e,0x1730e,0x110bc,0x131bc,0x1109e,0x173bc,0x1319e, // 420 - 0x1739e,0x17160,0x1b8b8,0x1dc5e,0x17130,0x1b89c,0x17118,0x1b88e,0x1710c,0x17106, // 430 - 0x130b8,0x1985e,0x171b8,0x1309c,0x1719c,0x1308e,0x1718e,0x1105e,0x130de,0x171de, // 440 - 0x170b0,0x1b85c,0x17098,0x1b84e,0x1708c,0x17086,0x1305c,0x170dc,0x1304e,0x170ce, // 450 - 0x17058,0x1b82e,0x1704c,0x17046,0x1302e,0x1706e,0x1702c,0x17026,0x10af0,0x1857c, // 460 - 0x10a78,0x1853e,0x10a3c,0x10a1e,0x10b7c,0x10b3e,0x1f0ba,0x1e17a,0x1c2fa,0x185fa, // 470 - 0x11ae0,0x18d78,0x1c6be,0x11a70,0x18d3c,0x11a38,0x18d1e,0x11a1c,0x11a0e,0x10978, // 480 - 0x184be,0x11b78,0x1093c,0x11b3c,0x1091e,0x11b1e,0x109be,0x11bbe,0x13ac0,0x19d70, // 490 - 0x1cebc,0x13a60,0x19d38,0x1ce9e,0x13a30,0x19d1c,0x13a18,0x19d0e,0x13a0c,0x13a06, // 500 - 0x11970,0x18cbc,0x13b70,0x11938,0x18c9e,0x13b38,0x1191c,0x13b1c,0x1190e,0x13b0e, // 510 - 0x108bc,0x119bc,0x1089e,0x13bbc,0x1199e,0x13b9e,0x1bd60,0x1deb8,0x1ef5e,0x17a40, // 520 - 0x1bd30,0x1de9c,0x17a20,0x1bd18,0x1de8e,0x17a10,0x1bd0c,0x17a08,0x1bd06,0x17a04, // 530 - 0x13960,0x19cb8,0x1ce5e,0x17b60,0x13930,0x19c9c,0x17b30,0x1bd9c,0x19c8e,0x17b18, // 540 - 0x1390c,0x17b0c,0x13906,0x17b06,0x118b8,0x18c5e,0x139b8,0x1189c,0x17bb8,0x1399c, // 550 - 0x1188e,0x17b9c,0x1398e,0x17b8e,0x1085e,0x118de,0x139de,0x17bde,0x17940,0x1bcb0, // 560 - 0x1de5c,0x17920,0x1bc98,0x1de4e,0x17910,0x1bc8c,0x17908,0x1bc86,0x17904,0x17902, // 570 - 0x138b0,0x19c5c,0x179b0,0x13898,0x19c4e,0x17998,0x1bcce,0x1798c,0x13886,0x17986, // 580 - 0x1185c,0x138dc,0x1184e,0x179dc,0x138ce,0x179ce,0x178a0,0x1bc58,0x1de2e,0x17890, // 590 - 0x1bc4c,0x17888,0x1bc46,0x17884,0x17882,0x13858,0x19c2e,0x178d8,0x1384c,0x178cc, // 600 - 0x13846,0x178c6,0x1182e,0x1386e,0x178ee,0x17850,0x1bc2c,0x17848,0x1bc26,0x17844, // 610 - 0x17842,0x1382c,0x1786c,0x13826,0x17866,0x17828,0x1bc16,0x17824,0x17822,0x13816, // 620 - 0x17836,0x10578,0x182be,0x1053c,0x1051e,0x105be,0x10d70,0x186bc,0x10d38,0x1869e, // 630 - 0x10d1c,0x10d0e,0x104bc,0x10dbc,0x1049e,0x10d9e,0x11d60,0x18eb8,0x1c75e,0x11d30, // 640 - 0x18e9c,0x11d18,0x18e8e,0x11d0c,0x11d06,0x10cb8,0x1865e,0x11db8,0x10c9c,0x11d9c, // 650 - 0x10c8e,0x11d8e,0x1045e,0x10cde,0x11dde,0x13d40,0x19eb0,0x1cf5c,0x13d20,0x19e98, // 660 - 0x1cf4e,0x13d10,0x19e8c,0x13d08,0x19e86,0x13d04,0x13d02,0x11cb0,0x18e5c,0x13db0, // 670 - 0x11c98,0x18e4e,0x13d98,0x19ece,0x13d8c,0x11c86,0x13d86,0x10c5c,0x11cdc,0x10c4e, // 680 - 0x13ddc,0x11cce,0x13dce,0x1bea0,0x1df58,0x1efae,0x1be90,0x1df4c,0x1be88,0x1df46, // 690 - 0x1be84,0x1be82,0x13ca0,0x19e58,0x1cf2e,0x17da0,0x13c90,0x19e4c,0x17d90,0x1becc, // 700 - 0x19e46,0x17d88,0x13c84,0x17d84,0x13c82,0x17d82,0x11c58,0x18e2e,0x13cd8,0x11c4c, // 710 - 0x17dd8,0x13ccc,0x11c46,0x17dcc,0x13cc6,0x17dc6,0x10c2e,0x11c6e,0x13cee,0x17dee, // 720 - 0x1be50,0x1df2c,0x1be48,0x1df26,0x1be44,0x1be42,0x13c50,0x19e2c,0x17cd0,0x13c48, // 730 - 0x19e26,0x17cc8,0x1be66,0x17cc4,0x13c42,0x17cc2,0x11c2c,0x13c6c,0x11c26,0x17cec, // 740 - 0x13c66,0x17ce6,0x1be28,0x1df16,0x1be24,0x1be22,0x13c28,0x19e16,0x17c68,0x13c24, // 750 - 0x17c64,0x13c22,0x17c62,0x11c16,0x13c36,0x17c76,0x1be14,0x1be12,0x13c14,0x17c34, // 760 - 0x13c12,0x17c32,0x102bc,0x1029e,0x106b8,0x1835e,0x1069c,0x1068e,0x1025e,0x106de, // 770 - 0x10eb0,0x1875c,0x10e98,0x1874e,0x10e8c,0x10e86,0x1065c,0x10edc,0x1064e,0x10ece, // 780 - 0x11ea0,0x18f58,0x1c7ae,0x11e90,0x18f4c,0x11e88,0x18f46,0x11e84,0x11e82,0x10e58, // 790 - 0x1872e,0x11ed8,0x18f6e,0x11ecc,0x10e46,0x11ec6,0x1062e,0x10e6e,0x11eee,0x19f50, // 800 - 0x1cfac,0x19f48,0x1cfa6,0x19f44,0x19f42,0x11e50,0x18f2c,0x13ed0,0x19f6c,0x18f26, // 810 - 0x13ec8,0x11e44,0x13ec4,0x11e42,0x13ec2,0x10e2c,0x11e6c,0x10e26,0x13eec,0x11e66, // 820 - 0x13ee6,0x1dfa8,0x1efd6,0x1dfa4,0x1dfa2,0x19f28,0x1cf96,0x1bf68,0x19f24,0x1bf64, // 830 - 0x19f22,0x1bf62,0x11e28,0x18f16,0x13e68,0x11e24,0x17ee8,0x13e64,0x11e22,0x17ee4, // 840 - 0x13e62,0x17ee2,0x10e16,0x11e36,0x13e76,0x17ef6,0x1df94,0x1df92,0x19f14,0x1bf34, // 850 - 0x19f12,0x1bf32,0x11e14,0x13e34,0x11e12,0x17e74,0x13e32,0x17e72,0x1df8a,0x19f0a, // 860 - 0x1bf1a,0x11e0a,0x13e1a,0x17e3a,0x1035c,0x1034e,0x10758,0x183ae,0x1074c,0x10746, // 870 - 0x1032e,0x1076e,0x10f50,0x187ac,0x10f48,0x187a6,0x10f44,0x10f42,0x1072c,0x10f6c, // 880 - 0x10726,0x10f66,0x18fa8,0x1c7d6,0x18fa4,0x18fa2,0x10f28,0x18796,0x11f68,0x18fb6, // 890 - 0x11f64,0x10f22,0x11f62,0x10716,0x10f36,0x11f76,0x1cfd4,0x1cfd2,0x18f94,0x19fb4, // 900 - 0x18f92,0x19fb2,0x10f14,0x11f34,0x10f12,0x13f74,0x11f32,0x13f72,0x1cfca,0x18f8a, // 910 - 0x19f9a,0x10f0a,0x11f1a,0x13f3a,0x103ac,0x103a6,0x107a8,0x183d6,0x107a4,0x107a2, // 920 - 0x10396,0x107b6,0x187d4,0x187d2,0x10794,0x10fb4,0x10792,0x10fb2,0x1c7ea) // 929 - ); // end of $clusters array - - /** - * Array of factors of the Reed-Solomon polynomial equations used for error correction; one sub array for each correction level (0-8). - * @protected - */ - protected $rsfactors = array( - array( // ECL 0 (2 factors) ------------------------------------------------------------------------------- - 0x01b,0x395), // 2 - array( // ECL 1 (4 factors) ------------------------------------------------------------------------------- - 0x20a,0x238,0x2d3,0x329), // 4 - array( // ECL 2 (8 factors) ------------------------------------------------------------------------------- - 0x0ed,0x134,0x1b4,0x11c,0x286,0x28d,0x1ac,0x17b), // 8 - array( // ECL 3 (16 factors) ------------------------------------------------------------------------------ - 0x112,0x232,0x0e8,0x2f3,0x257,0x20c,0x321,0x084,0x127,0x074,0x1ba,0x1ac,0x127,0x02a,0x0b0,0x041),// 16 - array( // ECL 4 (32 factors) ------------------------------------------------------------------------------ - 0x169,0x23f,0x39a,0x20d,0x0b0,0x24a,0x280,0x141,0x218,0x2e6,0x2a5,0x2e6,0x2af,0x11c,0x0c1,0x205, // 16 - 0x111,0x1ee,0x107,0x093,0x251,0x320,0x23b,0x140,0x323,0x085,0x0e7,0x186,0x2ad,0x14a,0x03f,0x19a),// 32 - array( // ECL 5 (64 factors) ------------------------------------------------------------------------------ - 0x21b,0x1a6,0x006,0x05d,0x35e,0x303,0x1c5,0x06a,0x262,0x11f,0x06b,0x1f9,0x2dd,0x36d,0x17d,0x264, // 16 - 0x2d3,0x1dc,0x1ce,0x0ac,0x1ae,0x261,0x35a,0x336,0x21f,0x178,0x1ff,0x190,0x2a0,0x2fa,0x11b,0x0b8, // 32 - 0x1b8,0x023,0x207,0x01f,0x1cc,0x252,0x0e1,0x217,0x205,0x160,0x25d,0x09e,0x28b,0x0c9,0x1e8,0x1f6, // 48 - 0x288,0x2dd,0x2cd,0x053,0x194,0x061,0x118,0x303,0x348,0x275,0x004,0x17d,0x34b,0x26f,0x108,0x21f),// 64 - array( // ECL 6 (128 factors) ----------------------------------------------------------------------------- - 0x209,0x136,0x360,0x223,0x35a,0x244,0x128,0x17b,0x035,0x30b,0x381,0x1bc,0x190,0x39d,0x2ed,0x19f, // 16 - 0x336,0x05d,0x0d9,0x0d0,0x3a0,0x0f4,0x247,0x26c,0x0f6,0x094,0x1bf,0x277,0x124,0x38c,0x1ea,0x2c0, // 32 - 0x204,0x102,0x1c9,0x38b,0x252,0x2d3,0x2a2,0x124,0x110,0x060,0x2ac,0x1b0,0x2ae,0x25e,0x35c,0x239, // 48 - 0x0c1,0x0db,0x081,0x0ba,0x0ec,0x11f,0x0c0,0x307,0x116,0x0ad,0x028,0x17b,0x2c8,0x1cf,0x286,0x308, // 64 - 0x0ab,0x1eb,0x129,0x2fb,0x09c,0x2dc,0x05f,0x10e,0x1bf,0x05a,0x1fb,0x030,0x0e4,0x335,0x328,0x382, // 80 - 0x310,0x297,0x273,0x17a,0x17e,0x106,0x17c,0x25a,0x2f2,0x150,0x059,0x266,0x057,0x1b0,0x29e,0x268, // 96 - 0x09d,0x176,0x0f2,0x2d6,0x258,0x10d,0x177,0x382,0x34d,0x1c6,0x162,0x082,0x32e,0x24b,0x324,0x022, // 112 - 0x0d3,0x14a,0x21b,0x129,0x33b,0x361,0x025,0x205,0x342,0x13b,0x226,0x056,0x321,0x004,0x06c,0x21b),// 128 - array( // ECL 7 (256 factors) ----------------------------------------------------------------------------- - 0x20c,0x37e,0x04b,0x2fe,0x372,0x359,0x04a,0x0cc,0x052,0x24a,0x2c4,0x0fa,0x389,0x312,0x08a,0x2d0, // 16 - 0x35a,0x0c2,0x137,0x391,0x113,0x0be,0x177,0x352,0x1b6,0x2dd,0x0c2,0x118,0x0c9,0x118,0x33c,0x2f5, // 32 - 0x2c6,0x32e,0x397,0x059,0x044,0x239,0x00b,0x0cc,0x31c,0x25d,0x21c,0x391,0x321,0x2bc,0x31f,0x089, // 48 - 0x1b7,0x1a2,0x250,0x29c,0x161,0x35b,0x172,0x2b6,0x145,0x0f0,0x0d8,0x101,0x11c,0x225,0x0d1,0x374, // 64 - 0x13b,0x046,0x149,0x319,0x1ea,0x112,0x36d,0x0a2,0x2ed,0x32c,0x2ac,0x1cd,0x14e,0x178,0x351,0x209, // 80 - 0x133,0x123,0x323,0x2c8,0x013,0x166,0x18f,0x38c,0x067,0x1ff,0x033,0x008,0x205,0x0e1,0x121,0x1d6, // 96 - 0x27d,0x2db,0x042,0x0ff,0x395,0x10d,0x1cf,0x33e,0x2da,0x1b1,0x350,0x249,0x088,0x21a,0x38a,0x05a, // 112 - 0x002,0x122,0x2e7,0x0c7,0x28f,0x387,0x149,0x031,0x322,0x244,0x163,0x24c,0x0bc,0x1ce,0x00a,0x086, // 128 - 0x274,0x140,0x1df,0x082,0x2e3,0x047,0x107,0x13e,0x176,0x259,0x0c0,0x25d,0x08e,0x2a1,0x2af,0x0ea, // 144 - 0x2d2,0x180,0x0b1,0x2f0,0x25f,0x280,0x1c7,0x0c1,0x2b1,0x2c3,0x325,0x281,0x030,0x03c,0x2dc,0x26d, // 160 - 0x37f,0x220,0x105,0x354,0x28f,0x135,0x2b9,0x2f3,0x2f4,0x03c,0x0e7,0x305,0x1b2,0x1a5,0x2d6,0x210, // 176 - 0x1f7,0x076,0x031,0x31b,0x020,0x090,0x1f4,0x0ee,0x344,0x18a,0x118,0x236,0x13f,0x009,0x287,0x226, // 192 - 0x049,0x392,0x156,0x07e,0x020,0x2a9,0x14b,0x318,0x26c,0x03c,0x261,0x1b9,0x0b4,0x317,0x37d,0x2f2, // 208 - 0x25d,0x17f,0x0e4,0x2ed,0x2f8,0x0d5,0x036,0x129,0x086,0x036,0x342,0x12b,0x39a,0x0bf,0x38e,0x214, // 224 - 0x261,0x33d,0x0bd,0x014,0x0a7,0x01d,0x368,0x1c1,0x053,0x192,0x029,0x290,0x1f9,0x243,0x1e1,0x0ad, // 240 - 0x194,0x0fb,0x2b0,0x05f,0x1f1,0x22b,0x282,0x21f,0x133,0x09f,0x39c,0x22e,0x288,0x037,0x1f1,0x00a),// 256 - array( // ECL 8 (512 factors) ----------------------------------------------------------------------------- - 0x160,0x04d,0x175,0x1f8,0x023,0x257,0x1ac,0x0cf,0x199,0x23e,0x076,0x1f2,0x11d,0x17c,0x15e,0x1ec, // 16 - 0x0c5,0x109,0x398,0x09b,0x392,0x12b,0x0e5,0x283,0x126,0x367,0x132,0x058,0x057,0x0c1,0x160,0x30d, // 32 - 0x34e,0x04b,0x147,0x208,0x1b3,0x21f,0x0cb,0x29a,0x0f9,0x15a,0x30d,0x26d,0x280,0x10c,0x31a,0x216, // 48 - 0x21b,0x30d,0x198,0x186,0x284,0x066,0x1dc,0x1f3,0x122,0x278,0x221,0x025,0x35a,0x394,0x228,0x029, // 64 - 0x21e,0x121,0x07a,0x110,0x17f,0x320,0x1e5,0x062,0x2f0,0x1d8,0x2f9,0x06b,0x310,0x35c,0x292,0x2e5, // 80 - 0x122,0x0cc,0x2a9,0x197,0x357,0x055,0x063,0x03e,0x1e2,0x0b4,0x014,0x129,0x1c3,0x251,0x391,0x08e, // 96 - 0x328,0x2ac,0x11f,0x218,0x231,0x04c,0x28d,0x383,0x2d9,0x237,0x2e8,0x186,0x201,0x0c0,0x204,0x102, // 112 - 0x0f0,0x206,0x31a,0x18b,0x300,0x350,0x033,0x262,0x180,0x0a8,0x0be,0x33a,0x148,0x254,0x312,0x12f, // 128 - 0x23a,0x17d,0x19f,0x281,0x09c,0x0ed,0x097,0x1ad,0x213,0x0cf,0x2a4,0x2c6,0x059,0x0a8,0x130,0x192, // 144 - 0x028,0x2c4,0x23f,0x0a2,0x360,0x0e5,0x041,0x35d,0x349,0x200,0x0a4,0x1dd,0x0dd,0x05c,0x166,0x311, // 160 - 0x120,0x165,0x352,0x344,0x33b,0x2e0,0x2c3,0x05e,0x008,0x1ee,0x072,0x209,0x002,0x1f3,0x353,0x21f, // 176 - 0x098,0x2d9,0x303,0x05f,0x0f8,0x169,0x242,0x143,0x358,0x31d,0x121,0x033,0x2ac,0x1d2,0x215,0x334, // 192 - 0x29d,0x02d,0x386,0x1c4,0x0a7,0x156,0x0f4,0x0ad,0x023,0x1cf,0x28b,0x033,0x2bb,0x24f,0x1c4,0x242, // 208 - 0x025,0x07c,0x12a,0x14c,0x228,0x02b,0x1ab,0x077,0x296,0x309,0x1db,0x352,0x2fc,0x16c,0x242,0x38f, // 224 - 0x11b,0x2c7,0x1d8,0x1a4,0x0f5,0x120,0x252,0x18a,0x1ff,0x147,0x24d,0x309,0x2bb,0x2b0,0x02b,0x198, // 240 - 0x34a,0x17f,0x2d1,0x209,0x230,0x284,0x2ca,0x22f,0x03e,0x091,0x369,0x297,0x2c9,0x09f,0x2a0,0x2d9, // 256 - 0x270,0x03b,0x0c1,0x1a1,0x09e,0x0d1,0x233,0x234,0x157,0x2b5,0x06d,0x260,0x233,0x16d,0x0b5,0x304, // 272 - 0x2a5,0x136,0x0f8,0x161,0x2c4,0x19a,0x243,0x366,0x269,0x349,0x278,0x35c,0x121,0x218,0x023,0x309, // 288 - 0x26a,0x24a,0x1a8,0x341,0x04d,0x255,0x15a,0x10d,0x2f5,0x278,0x2b7,0x2ef,0x14b,0x0f7,0x0b8,0x02d, // 304 - 0x313,0x2a8,0x012,0x042,0x197,0x171,0x036,0x1ec,0x0e4,0x265,0x33e,0x39a,0x1b5,0x207,0x284,0x389, // 320 - 0x315,0x1a4,0x131,0x1b9,0x0cf,0x12c,0x37c,0x33b,0x08d,0x219,0x17d,0x296,0x201,0x038,0x0fc,0x155, // 336 - 0x0f2,0x31d,0x346,0x345,0x2d0,0x0e0,0x133,0x277,0x03d,0x057,0x230,0x136,0x2f4,0x299,0x18d,0x328, // 352 - 0x353,0x135,0x1d9,0x31b,0x17a,0x01f,0x287,0x393,0x1cb,0x326,0x24e,0x2db,0x1a9,0x0d8,0x224,0x0f9, // 368 - 0x141,0x371,0x2bb,0x217,0x2a1,0x30e,0x0d2,0x32f,0x389,0x12f,0x34b,0x39a,0x119,0x049,0x1d5,0x317, // 384 - 0x294,0x0a2,0x1f2,0x134,0x09b,0x1a6,0x38b,0x331,0x0bb,0x03e,0x010,0x1a9,0x217,0x150,0x11e,0x1b5, // 400 - 0x177,0x111,0x262,0x128,0x0b7,0x39b,0x074,0x29b,0x2ef,0x161,0x03e,0x16e,0x2b3,0x17b,0x2af,0x34a, // 416 - 0x025,0x165,0x2d0,0x2e6,0x14a,0x005,0x027,0x39b,0x137,0x1a8,0x0f2,0x2ed,0x141,0x036,0x29d,0x13c, // 432 - 0x156,0x12b,0x216,0x069,0x29b,0x1e8,0x280,0x2a0,0x240,0x21c,0x13c,0x1e6,0x2d1,0x262,0x02e,0x290, // 448 - 0x1bf,0x0ab,0x268,0x1d0,0x0be,0x213,0x129,0x141,0x2fa,0x2f0,0x215,0x0af,0x086,0x00e,0x17d,0x1b1, // 464 - 0x2cd,0x02d,0x06f,0x014,0x254,0x11c,0x2e0,0x08a,0x286,0x19b,0x36d,0x29d,0x08d,0x397,0x02d,0x30c, // 480 - 0x197,0x0a4,0x14c,0x383,0x0a5,0x2d6,0x258,0x145,0x1f2,0x28f,0x165,0x2f0,0x300,0x0df,0x351,0x287, // 496 - 0x03f,0x136,0x35f,0x0fb,0x16e,0x130,0x11a,0x2e2,0x2a3,0x19a,0x185,0x0f4,0x01f,0x079,0x12f,0x107) // 512 - ); - - /** - * This is the class constructor. - * Creates a PDF417 object - * @param $code (string) code to represent using PDF417 - * @param $ecl (int) error correction level (0-8); default -1 = automatic correction level - * @param $aspectratio (float) the width to height of the symbol (excluding quiet zones) - * @param $macro (array) information for macro block - * @public - */ - public function __construct($code, $ecl=-1, $aspectratio=2, $macro=array()) { - $barcode_array = array(); - if ((is_null($code)) OR ($code == '\0') OR ($code == '')) { - return false; - } - // get the input sequence array - $sequence = $this->getInputSequences($code); - $codewords = array(); // array of code-words - foreach($sequence as $seq) { - $cw = $this->getCompaction($seq[0], $seq[1], true); - $codewords = array_merge($codewords, $cw); - } - if ($codewords[0] == 900) { - // Text Alpha is the default mode, so remove the first code - array_shift($codewords); - } - // count number of codewords - $numcw = count($codewords); - if ($numcw > 925) { - // reached maximum data codeword capacity - return false; - } - // build macro control block codewords - if (!empty($macro)) { - $macrocw = array(); - // beginning of macro control block - $macrocw[] = 928; - // segment index - $cw = $this->getCompaction(902, sprintf('%05d', $macro['segment_index']), false); - $macrocw = array_merge($macrocw, $cw); - // file ID - $cw = $this->getCompaction(900, $macro['file_id'], false); - $macrocw = array_merge($macrocw, $cw); - // optional fields - $optmodes = array(900,902,902,900,900,902,902); - $optsize = array(-1,2,4,-1,-1,-1,2); - foreach ($optmodes as $k => $omode) { - if (isset($macro['option_'.$k])) { - $macrocw[] = 923; - $macrocw[] = $k; - if ($optsize[$k] == 2) { - $macro['option_'.$k] = sprintf('%05d', $macro['option_'.$k]); - } elseif ($optsize[$k] == 4) { - $macro['option_'.$k] = sprintf('%010d', $macro['option_'.$k]); - } - $cw = $this->getCompaction($omode, $macro['option_'.$k], false); - $macrocw = array_merge($macrocw, $cw); - } - } - if ($macro['segment_index'] == ($macro['segment_total'] - 1)) { - // end of control block - $macrocw[] = 922; - } - // update total codewords - $numcw += count($macrocw); - } - // set error correction level - $ecl = $this->getErrorCorrectionLevel($ecl, $numcw); - // number of codewords for error correction - $errsize = (2 << $ecl); - // calculate number of columns (number of codewords per row) and rows - $nce = ($numcw + $errsize + 1); - $cols = round((sqrt(4761 + (68 * $aspectratio * ROWHEIGHT * $nce)) - 69) / 34); - // adjust cols - if ($cols < 1) { - $cols = 1; - } elseif ($cols > 30) { - $cols = 30; - } - $rows = ceil($nce / $cols); - $size = ($cols * $rows); - // adjust rows - if (($rows < 3) OR ($rows > 90)) { - if ($rows < 3) { - $rows = 3; - } elseif ($rows > 90) { - $rows = 90; - } - $cols = ceil($size / $rows); - $size = ($cols * $rows); - } - if ($size > 928) { - // set dimensions to get maximum capacity - if (abs($aspectratio - (17 * 29 / 32)) < abs($aspectratio - (17 * 16 / 58))) { - $cols = 29; - $rows = 32; - } else { - $cols = 16; - $rows = 58; - } - $size = 928; - } - // calculate padding - $pad = ($size - $nce); - if ($pad > 0) { - if (($size - $rows) == $nce) { - --$rows; - $size -= $rows; - } else { - // add pading - $codewords = array_merge($codewords, array_fill(0, $pad, 900)); - } - } - if (!empty($macro)) { - // add macro section - $codewords = array_merge($codewords, $macrocw); - } - // Symbol Length Descriptor (number of data codewords including Symbol Length Descriptor and pad codewords) - $sld = $size - $errsize; - // add symbol length description - array_unshift($codewords, $sld); - // calculate error correction - $ecw = $this->getErrorCorrection($codewords, $ecl); - // add error correction codewords - $codewords = array_merge($codewords, $ecw); - // add horizontal quiet zones to start and stop patterns - $pstart = str_repeat('0', QUIETH).$this->start_pattern; - $pstop = $this->stop_pattern.str_repeat('0', QUIETH); - $barcode_array['num_rows'] = ($rows * ROWHEIGHT) + (2 * QUIETV); - $barcode_array['num_cols'] = (($cols + 2) * 17) + 35 + (2 * QUIETH); - $barcode_array['bcode'] = array(); - // build rows for vertical quiet zone - if (QUIETV > 0) { - $empty_row = array_fill(0, $barcode_array['num_cols'], 0); - for ($i = 0; $i < QUIETV; ++$i) { - // add vertical quiet rows - $barcode_array['bcode'][] = $empty_row; - } - } - $k = 0; // codeword index - $cid = 0; // initial cluster - // for each row - for ($r = 0; $r < $rows; ++$r) { - // row start code - $row = $pstart; - switch ($cid) { - case 0: { - $L = ((30 * intval($r / 3)) + intval(($rows - 1) / 3)); - break; - } - case 1: { - $L = ((30 * intval($r / 3)) + ($ecl * 3) + (($rows - 1) % 3)); - break; - } - case 2: { - $L = ((30 * intval($r / 3)) + ($cols - 1)); - break; - } - } - // left row indicator - $row .= sprintf('%17b', $this->clusters[$cid][$L]); - // for each column - for ($c = 0; $c < $cols; ++$c) { - $row .= sprintf('%17b', $this->clusters[$cid][$codewords[$k]]); - ++$k; - } - switch ($cid) { - case 0: { - $L = ((30 * intval($r / 3)) + ($cols - 1)); - break; - } - case 1: { - $L = ((30 * intval($r / 3)) + intval(($rows - 1) / 3)); - break; - } - case 2: { - $L = ((30 * intval($r / 3)) + ($ecl * 3) + (($rows - 1) % 3)); - break; - } - } - // right row indicator - $row .= sprintf('%17b', $this->clusters[$cid][$L]); - // row stop code - $row .= $pstop; - // convert the string to array - $arow = preg_split('//', $row, -1, PREG_SPLIT_NO_EMPTY); - // duplicate row to get the desired height - for ($h = 0; $h < ROWHEIGHT; ++$h) { - $barcode_array['bcode'][] = $arow; - } - ++$cid; - if ($cid > 2) { - $cid = 0; - } - } - if (QUIETV > 0) { - for ($i = 0; $i < QUIETV; ++$i) { - // add vertical quiet rows - $barcode_array['bcode'][] = $empty_row; - } - } - $this->barcode_array = $barcode_array; - } - - /** - * Returns a barcode array which is readable by TCPDF - * @return array barcode array readable by TCPDF; - * @public - */ - public function getBarcodeArray() { - return $this->barcode_array; - } - - /** - * Returns the error correction level (0-8) to be used - * @param $ecl (int) error correction level - * @param $numcw (int) number of data codewords - * @return int error correction level - * @protected - */ - protected function getErrorCorrectionLevel($ecl, $numcw) { - // check for automatic levels - if (($ecl < 0) OR ($ecl > 8)) { - if ($numcw < 41) { - $ecl = 2; - } elseif ($numcw < 161) { - $ecl = 3; - } elseif ($numcw < 321) { - $ecl = 4; - } elseif ($numcw < 864) { - $ecl = 5; - } else { - $ecl = $maxecl; - } - } - // get maximum correction level - $maxecl = 8; // starting error level - $maxerrsize = (928 - $numcw); // available codewords for error - while ($maxecl > 0) { - $errsize = (2 << $ecl); - if ($maxerrsize >= $errsize) { - break; - } - --$maxecl; - } - if ($ecl > $maxecl) { - $ecl = $maxecl; - } - return $ecl; - } - - /** - * Returns the error correction codewords - * @param $cw (array) array of codewords including Symbol Length Descriptor and pad - * @param $ecl (int) error correction level 0-8 - * @return array of error correction codewords - * @protected - */ - protected function getErrorCorrection($cw, $ecl) { - // get error correction coefficients - $ecc = $this->rsfactors[$ecl]; - // number of error correction factors - $eclsize = (2 << $ecl); - // maximum index for $rsfactors[$ecl] - $eclmaxid = ($eclsize - 1); - // initialize array of error correction codewords - $ecw = array_fill(0, $eclsize, 0); - // for each data codeword - foreach($cw as $k => $d) { - $t1 = ($d + $ecw[$eclmaxid]) % 929; - for ($j = $eclmaxid; $j > 0; --$j) { - $t2 = ($t1 * $ecc[$j]) % 929; - $t3 = 929 - $t2; - $ecw[$j] = ($ecw[($j - 1)] + $t3) % 929; - } - $t2 = ($t1 * $ecc[0]) % 929; - $t3 = 929 - $t2; - $ecw[0] = $t3 % 929; - } - foreach($ecw as $j => $e) { - if ($e != 0) { - $ecw[$j] = 929 - $e; - } - } - $ecw = array_reverse($ecw); - return $ecw; - } - - /** - * Create array of sequences from input - * @param $code (string) code - * @return bidimensional array containing characters and classification - * @protected - */ - protected function getInputSequences($code) { - $sequence_array = array(); // array to be returned - $numseq = array(); - // get numeric sequences - preg_match_all('/([0-9]{13,44})/', $code, $numseq, PREG_OFFSET_CAPTURE); - $numseq[1][] = array('', strlen($code)); - $offset = 0; - foreach($numseq[1] as $seq) { - $seqlen = strlen($seq[0]); - if ($seq[1] > 0) { - // extract text sequence before the number sequence - $prevseq = substr($code, $offset, ($seq[1] - $offset)); - $textseq = array(); - // get text sequences - preg_match_all('/([\x09\x0a\x0d\x20-\x7e]{5,})/', $prevseq, $textseq, PREG_OFFSET_CAPTURE); - $textseq[1][] = array('', strlen($prevseq)); - $txtoffset = 0; - foreach($textseq[1] as $txtseq) { - $txtseqlen = strlen($txtseq[0]); - if ($txtseq[1] > 0) { - // extract byte sequence before the text sequence - $prevtxtseq = substr($prevseq, $txtoffset, ($txtseq[1] - $txtoffset)); - if (strlen($prevtxtseq) > 0) { - // add BYTE sequence - if ((strlen($prevtxtseq) == 1) AND ((count($sequence_array) > 0) AND ($sequence_array[(count($sequence_array) - 1)][0] == 900))) { - $sequence_array[] = array(913, $prevtxtseq); - } elseif ((strlen($prevtxtseq) % 6) == 0) { - $sequence_array[] = array(924, $prevtxtseq); - } else { - $sequence_array[] = array(901, $prevtxtseq); - } - } - } - if ($txtseqlen > 0) { - // add numeric sequence - $sequence_array[] = array(900, $txtseq[0]); - } - $txtoffset = $txtseq[1] + $txtseqlen; - } - } - if ($seqlen > 0) { - // add numeric sequence - $sequence_array[] = array(902, $seq[0]); - } - $offset = $seq[1] + $seqlen; - } - return $sequence_array; - } - - /** - * Compact data by mode. - * @param $mode (int) compaction mode number - * @param $code (string) data to compact - * @param $addmode (boolean) if true add the mode codeword at first position - * @return array of codewords - * @protected - */ - protected function getCompaction($mode, $code, $addmode=true) { - $cw = array(); // array of codewords to return - switch($mode) { - case 900: { // Text Compaction mode latch - $submode = 0; // default Alpha sub-mode - $txtarr = array(); // array of characters and sub-mode switching characters - $codelen = strlen($code); - for ($i = 0; $i < $codelen; ++$i) { - $chval = ord($code{$i}); - if (($k = array_search($chval, $this->textsubmodes[$submode])) !== false) { - // we are on the same sub-mode - $txtarr[] = $k; - } else { - // the sub-mode is changed - for ($s = 0; $s < 4; ++$s) { - // search new sub-mode - if (($s != $submode) AND (($k = array_search($chval, $this->textsubmodes[$s])) !== false)) { - // $s is the new submode - if (((($i + 1) == $codelen) OR ((($i + 1) < $codelen) AND (array_search(ord($code{($i + 1)}), $this->textsubmodes[$submode]) !== false))) AND (($s == 3) OR (($s == 0) AND ($submode == 1)))) { - // shift (temporary change only for this char) - if ($s == 3) { - // shift to puntuaction - $txtarr[] = 29; - } else { - // shift from lower to alpha - $txtarr[] = 27; - } - } else { - // latch - $txtarr = array_merge($txtarr, $this->textlatch[''.$submode.$s]); - // set new submode - $submode = $s; - } - // add characted code to array - $txtarr[] = $k; - break; - } - } - } - } - $txtarrlen = count($txtarr); - if (($txtarrlen % 2) != 0) { - // add padding - $txtarr[] = 29; - ++$txtarrlen; - } - // calculate codewords - for ($i = 0; $i < $txtarrlen; $i += 2) { - $cw[] = (30 * $txtarr[$i]) + $txtarr[($i + 1)]; - } - break; - } - case 901: - case 924: { // Byte Compaction mode latch - while (($codelen = strlen($code)) > 0) { - if ($codelen > 6) { - $rest = substr($code, 6); - $code = substr($code, 0, 6); - $sublen = 6; - } else { - $rest = ''; - $sublen = strlen($code); - } - if ($sublen == 6) { - $t = bcmul(''.ord($code[0]), '1099511627776'); - $t = bcadd($t, bcmul(''.ord($code[1]), '4294967296')); - $t = bcadd($t, bcmul(''.ord($code[2]), '16777216')); - $t = bcadd($t, bcmul(''.ord($code[3]), '65536')); - $t = bcadd($t, bcmul(''.ord($code[4]), '256')); - $t = bcadd($t, ''.ord($code[5])); - // tmp array for the 6 bytes block - $cw6 = array(); - do { - $d = bcmod($t, '900'); - $t = bcdiv($t, '900'); - // prepend the value to the beginning of the array - array_unshift($cw6, $d); - } while ($t != '0'); - // append the result array at the end - $cw = array_merge($cw, $cw6); - } else { - for ($i = 0; $i < $sublen; ++$i) { - $cw[] = ord($code{$i}); - } - } - $code = $rest; - } - break; - } - case 902: { // Numeric Compaction mode latch - while (($codelen = strlen($code)) > 0) { - if ($codelen > 44) { - $rest = substr($code, 44); - $code = substr($code, 0, 44); - } else { - $rest = ''; - } - $t = '1'.$code; - do { - $d = bcmod($t, '900'); - $t = bcdiv($t, '900'); - array_unshift($cw, $d); - } while ($t != '0'); - $code = $rest; - } - break; - } - case 913: { // Byte Compaction mode shift - $cw[] = ord($code); - break; - } - } - if ($addmode) { - // add the compaction mode codeword at the beginning - array_unshift($cw, $mode); - } - return $cw; - } - -} // end PDF417 class - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/barcodes/qrcode.php b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/barcodes/qrcode.php deleted file mode 100644 index 7ef2759..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/barcodes/qrcode.php +++ /dev/null @@ -1,2867 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// DESCRIPTION : -// -// Class to create QR-code arrays for TCPDF class. -// QR Code symbol is a 2D barcode that can be scanned by -// handy terminals such as a mobile phone with CCD. -// The capacity of QR Code is up to 7000 digits or 4000 -// characters, and has high robustness. -// This class supports QR Code model 2, described in -// JIS (Japanese Industrial Standards) X0510:2004 -// or ISO/IEC 18004. -// Currently the following features are not supported: -// ECI and FNC1 mode, Micro QR Code, QR Code model 1, -// Structured mode. -// -// This class is derived from the following projects: -// --------------------------------------------------------- -// "PHP QR Code encoder" -// License: GNU-LGPLv3 -// Copyright (C) 2010 by Dominik Dzienia -// http://phpqrcode.sourceforge.net/ -// https://sourceforge.net/projects/phpqrcode/ -// -// The "PHP QR Code encoder" is based on -// "C libqrencode library" (ver. 3.1.1) -// License: GNU-LGPL 2.1 -// Copyright (C) 2006-2010 by Kentaro Fukuchi -// http://megaui.net/fukuchi/works/qrencode/index.en.html -// -// Reed-Solomon code encoder is written by Phil Karn, KA9Q. -// Copyright (C) 2002-2006 Phil Karn, KA9Q -// -// QR Code is registered trademark of DENSO WAVE INCORPORATED -// http://www.denso-wave.com/qrcode/index-e.html -// --------------------------------------------------------- -//============================================================+ - -/** - * @file - * Class to create QR-code arrays for TCPDF class. - * QR Code symbol is a 2D barcode that can be scanned by handy terminals such as a mobile phone with CCD. - * The capacity of QR Code is up to 7000 digits or 4000 characters, and has high robustness. - * This class supports QR Code model 2, described in JIS (Japanese Industrial Standards) X0510:2004 or ISO/IEC 18004. - * Currently the following features are not supported: ECI and FNC1 mode, Micro QR Code, QR Code model 1, Structured mode. - * - * This class is derived from "PHP QR Code encoder" by Dominik Dzienia (http://phpqrcode.sourceforge.net/) based on "libqrencode C library 3.1.1." by Kentaro Fukuchi (http://megaui.net/fukuchi/works/qrencode/index.en.html), contains Reed-Solomon code written by Phil Karn, KA9Q. QR Code is registered trademark of DENSO WAVE INCORPORATED (http://www.denso-wave.com/qrcode/index-e.html). - * Please read comments on this class source file for full copyright and license information. - * - * @package com.tecnick.tcpdf - * @author Nicola Asuni - * @version 1.0.010 - */ - -// definitions -if (!defined('QRCODEDEFS')) { - - /** - * Indicate that definitions for this class are set - */ - define('QRCODEDEFS', true); - - // ----------------------------------------------------- - - // Encoding modes (characters which can be encoded in QRcode) - - /** - * Encoding mode - */ - define('QR_MODE_NL', -1); - - /** - * Encoding mode numeric (0-9). 3 characters are encoded to 10bit length. In theory, 7089 characters or less can be stored in a QRcode. - */ - define('QR_MODE_NM', 0); - - /** - * Encoding mode alphanumeric (0-9A-Z $%*+-./:) 45characters. 2 characters are encoded to 11bit length. In theory, 4296 characters or less can be stored in a QRcode. - */ - define('QR_MODE_AN', 1); - - /** - * Encoding mode 8bit byte data. In theory, 2953 characters or less can be stored in a QRcode. - */ - define('QR_MODE_8B', 2); - - /** - * Encoding mode KANJI. A KANJI character (multibyte character) is encoded to 13bit length. In theory, 1817 characters or less can be stored in a QRcode. - */ - define('QR_MODE_KJ', 3); - - /** - * Encoding mode STRUCTURED (currently unsupported) - */ - define('QR_MODE_ST', 4); - - // ----------------------------------------------------- - - // Levels of error correction. - // QRcode has a function of an error correcting for miss reading that white is black. - // Error correcting is defined in 4 level as below. - - /** - * Error correction level L : About 7% or less errors can be corrected. - */ - define('QR_ECLEVEL_L', 0); - - /** - * Error correction level M : About 15% or less errors can be corrected. - */ - define('QR_ECLEVEL_M', 1); - - /** - * Error correction level Q : About 25% or less errors can be corrected. - */ - define('QR_ECLEVEL_Q', 2); - - /** - * Error correction level H : About 30% or less errors can be corrected. - */ - define('QR_ECLEVEL_H', 3); - - // ----------------------------------------------------- - - // Version. Size of QRcode is defined as version. - // Version is from 1 to 40. - // Version 1 is 21*21 matrix. And 4 modules increases whenever 1 version increases. - // So version 40 is 177*177 matrix. - - /** - * Maximum QR Code version. - */ - define('QRSPEC_VERSION_MAX', 40); - - /** - * Maximum matrix size for maximum version (version 40 is 177*177 matrix). - */ - define('QRSPEC_WIDTH_MAX', 177); - - // ----------------------------------------------------- - - /** - * Matrix index to get width from $capacity array. - */ - define('QRCAP_WIDTH', 0); - - /** - * Matrix index to get number of words from $capacity array. - */ - define('QRCAP_WORDS', 1); - - /** - * Matrix index to get remainder from $capacity array. - */ - define('QRCAP_REMINDER', 2); - - /** - * Matrix index to get error correction level from $capacity array. - */ - define('QRCAP_EC', 3); - - // ----------------------------------------------------- - - // Structure (currently usupported) - - /** - * Number of header bits for structured mode - */ - define('STRUCTURE_HEADER_BITS', 20); - - /** - * Max number of symbols for structured mode - */ - define('MAX_STRUCTURED_SYMBOLS', 16); - - // ----------------------------------------------------- - - // Masks - - /** - * Down point base value for case 1 mask pattern (concatenation of same color in a line or a column) - */ - define('N1', 3); - - /** - * Down point base value for case 2 mask pattern (module block of same color) - */ - define('N2', 3); - - /** - * Down point base value for case 3 mask pattern (1:1:3:1:1(dark:bright:dark:bright:dark)pattern in a line or a column) - */ - define('N3', 40); - - /** - * Down point base value for case 4 mask pattern (ration of dark modules in whole) - */ - define('N4', 10); - - // ----------------------------------------------------- - - // Optimization settings - - /** - * if true, estimates best mask (spec. default, but extremally slow; set to false to significant performance boost but (propably) worst quality code - */ - define('QR_FIND_BEST_MASK', true); - - /** - * if false, checks all masks available, otherwise value tells count of masks need to be checked, mask id are got randomly - */ - define('QR_FIND_FROM_RANDOM', 2); - - /** - * when QR_FIND_BEST_MASK === false - */ - define('QR_DEFAULT_MASK', 2); - - // ----------------------------------------------------- - -} // end of definitions - -// #*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*# - -// for compatibility with PHP4 -if (!function_exists('str_split')) { - /** - * Convert a string to an array (needed for PHP4 compatibility) - * @param $string (string) The input string. - * @param $split_length (int) Maximum length of the chunk. - * @return If the optional split_length parameter is specified, the returned array will be broken down into chunks with each being split_length in length, otherwise each chunk will be one character in length. FALSE is returned if split_length is less than 1. If the split_length length exceeds the length of string , the entire string is returned as the first (and only) array element. - */ - function str_split($string, $split_length=1) { - if ((strlen($string) > $split_length) OR (!$split_length)) { - do { - $c = strlen($string); - $parts[] = substr($string, 0, $split_length); - $string = substr($string, $split_length); - } while ($string !== false); - } else { - $parts = array($string); - } - return $parts; - } -} - -// ##################################################### - -/** - * @class QRcode - * Class to create QR-code arrays for TCPDF class. - * QR Code symbol is a 2D barcode that can be scanned by handy terminals such as a mobile phone with CCD. - * The capacity of QR Code is up to 7000 digits or 4000 characters, and has high robustness. - * This class supports QR Code model 2, described in JIS (Japanese Industrial Standards) X0510:2004 or ISO/IEC 18004. - * Currently the following features are not supported: ECI and FNC1 mode, Micro QR Code, QR Code model 1, Structured mode. - * - * This class is derived from "PHP QR Code encoder" by Dominik Dzienia (http://phpqrcode.sourceforge.net/) based on "libqrencode C library 3.1.1." by Kentaro Fukuchi (http://megaui.net/fukuchi/works/qrencode/index.en.html), contains Reed-Solomon code written by Phil Karn, KA9Q. QR Code is registered trademark of DENSO WAVE INCORPORATED (http://www.denso-wave.com/qrcode/index-e.html). - * Please read comments on this class source file for full copyright and license information. - * - * @package com.tecnick.tcpdf - * @author Nicola Asuni - * @version 1.0.010 - */ -class QRcode { - - /** - * Barcode array to be returned which is readable by TCPDF. - * @protected - */ - protected $barcode_array = array(); - - /** - * QR code version. Size of QRcode is defined as version. Version is from 1 to 40. Version 1 is 21*21 matrix. And 4 modules increases whenever 1 version increases. So version 40 is 177*177 matrix. - * @protected - */ - protected $version = 0; - - /** - * Levels of error correction. See definitions for possible values. - * @protected - */ - protected $level = QR_ECLEVEL_L; - - /** - * Encoding mode. - * @protected - */ - protected $hint = QR_MODE_8B; - - /** - * Boolean flag, if true the input string will be converted to uppercase. - * @protected - */ - protected $casesensitive = true; - - /** - * Structured QR code (not supported yet). - * @protected - */ - protected $structured = 0; - - /** - * Mask data. - * @protected - */ - protected $data; - - // FrameFiller - - /** - * Width. - * @protected - */ - protected $width; - - /** - * Frame. - * @protected - */ - protected $frame; - - /** - * X position of bit. - * @protected - */ - protected $x; - - /** - * Y position of bit. - * @protected - */ - protected $y; - - /** - * Direction. - * @protected - */ - protected $dir; - - /** - * Single bit value. - * @protected - */ - protected $bit; - - // ---- QRrawcode ---- - - /** - * Data code. - * @protected - */ - protected $datacode = array(); - - /** - * Error correction code. - * @protected - */ - protected $ecccode = array(); - - /** - * Blocks. - * @protected - */ - protected $blocks; - - /** - * Reed-Solomon blocks. - * @protected - */ - protected $rsblocks = array(); //of RSblock - - /** - * Counter. - * @protected - */ - protected $count; - - /** - * Data length. - * @protected - */ - protected $dataLength; - - /** - * Error correction length. - * @protected - */ - protected $eccLength; - - /** - * Value b1. - * @protected - */ - protected $b1; - - // ---- QRmask ---- - - /** - * Run length. - * @protected - */ - protected $runLength = array(); - - // ---- QRsplit ---- - - /** - * Input data string. - * @protected - */ - protected $dataStr = ''; - - /** - * Input items. - * @protected - */ - protected $items; - - // Reed-Solomon items - - /** - * Reed-Solomon items. - * @protected - */ - protected $rsitems = array(); - - /** - * Array of frames. - * @protected - */ - protected $frames = array(); - - /** - * Alphabet-numeric convesion table. - * @protected - */ - protected $anTable = array( - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // - 36, -1, -1, -1, 37, 38, -1, -1, -1, -1, 39, 40, -1, 41, 42, 43, // - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 44, -1, -1, -1, -1, -1, // - -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, // - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1, // - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 // - ); - - /** - * Array Table of the capacity of symbols. - * See Table 1 (pp.13) and Table 12-16 (pp.30-36), JIS X0510:2004. - * @protected - */ - protected $capacity = array( - array( 0, 0, 0, array( 0, 0, 0, 0)), // - array( 21, 26, 0, array( 7, 10, 13, 17)), // 1 - array( 25, 44, 7, array( 10, 16, 22, 28)), // - array( 29, 70, 7, array( 15, 26, 36, 44)), // - array( 33, 100, 7, array( 20, 36, 52, 64)), // - array( 37, 134, 7, array( 26, 48, 72, 88)), // 5 - array( 41, 172, 7, array( 36, 64, 96, 112)), // - array( 45, 196, 0, array( 40, 72, 108, 130)), // - array( 49, 242, 0, array( 48, 88, 132, 156)), // - array( 53, 292, 0, array( 60, 110, 160, 192)), // - array( 57, 346, 0, array( 72, 130, 192, 224)), // 10 - array( 61, 404, 0, array( 80, 150, 224, 264)), // - array( 65, 466, 0, array( 96, 176, 260, 308)), // - array( 69, 532, 0, array( 104, 198, 288, 352)), // - array( 73, 581, 3, array( 120, 216, 320, 384)), // - array( 77, 655, 3, array( 132, 240, 360, 432)), // 15 - array( 81, 733, 3, array( 144, 280, 408, 480)), // - array( 85, 815, 3, array( 168, 308, 448, 532)), // - array( 89, 901, 3, array( 180, 338, 504, 588)), // - array( 93, 991, 3, array( 196, 364, 546, 650)), // - array( 97, 1085, 3, array( 224, 416, 600, 700)), // 20 - array(101, 1156, 4, array( 224, 442, 644, 750)), // - array(105, 1258, 4, array( 252, 476, 690, 816)), // - array(109, 1364, 4, array( 270, 504, 750, 900)), // - array(113, 1474, 4, array( 300, 560, 810, 960)), // - array(117, 1588, 4, array( 312, 588, 870, 1050)), // 25 - array(121, 1706, 4, array( 336, 644, 952, 1110)), // - array(125, 1828, 4, array( 360, 700, 1020, 1200)), // - array(129, 1921, 3, array( 390, 728, 1050, 1260)), // - array(133, 2051, 3, array( 420, 784, 1140, 1350)), // - array(137, 2185, 3, array( 450, 812, 1200, 1440)), // 30 - array(141, 2323, 3, array( 480, 868, 1290, 1530)), // - array(145, 2465, 3, array( 510, 924, 1350, 1620)), // - array(149, 2611, 3, array( 540, 980, 1440, 1710)), // - array(153, 2761, 3, array( 570, 1036, 1530, 1800)), // - array(157, 2876, 0, array( 570, 1064, 1590, 1890)), // 35 - array(161, 3034, 0, array( 600, 1120, 1680, 1980)), // - array(165, 3196, 0, array( 630, 1204, 1770, 2100)), // - array(169, 3362, 0, array( 660, 1260, 1860, 2220)), // - array(173, 3532, 0, array( 720, 1316, 1950, 2310)), // - array(177, 3706, 0, array( 750, 1372, 2040, 2430)) // 40 - ); - - /** - * Array Length indicator. - * @protected - */ - protected $lengthTableBits = array( - array(10, 12, 14), - array( 9, 11, 13), - array( 8, 16, 16), - array( 8, 10, 12) - ); - - /** - * Array Table of the error correction code (Reed-Solomon block). - * See Table 12-16 (pp.30-36), JIS X0510:2004. - * @protected - */ - protected $eccTable = array( - array(array( 0, 0), array( 0, 0), array( 0, 0), array( 0, 0)), // - array(array( 1, 0), array( 1, 0), array( 1, 0), array( 1, 0)), // 1 - array(array( 1, 0), array( 1, 0), array( 1, 0), array( 1, 0)), // - array(array( 1, 0), array( 1, 0), array( 2, 0), array( 2, 0)), // - array(array( 1, 0), array( 2, 0), array( 2, 0), array( 4, 0)), // - array(array( 1, 0), array( 2, 0), array( 2, 2), array( 2, 2)), // 5 - array(array( 2, 0), array( 4, 0), array( 4, 0), array( 4, 0)), // - array(array( 2, 0), array( 4, 0), array( 2, 4), array( 4, 1)), // - array(array( 2, 0), array( 2, 2), array( 4, 2), array( 4, 2)), // - array(array( 2, 0), array( 3, 2), array( 4, 4), array( 4, 4)), // - array(array( 2, 2), array( 4, 1), array( 6, 2), array( 6, 2)), // 10 - array(array( 4, 0), array( 1, 4), array( 4, 4), array( 3, 8)), // - array(array( 2, 2), array( 6, 2), array( 4, 6), array( 7, 4)), // - array(array( 4, 0), array( 8, 1), array( 8, 4), array(12, 4)), // - array(array( 3, 1), array( 4, 5), array(11, 5), array(11, 5)), // - array(array( 5, 1), array( 5, 5), array( 5, 7), array(11, 7)), // 15 - array(array( 5, 1), array( 7, 3), array(15, 2), array( 3, 13)), // - array(array( 1, 5), array(10, 1), array( 1, 15), array( 2, 17)), // - array(array( 5, 1), array( 9, 4), array(17, 1), array( 2, 19)), // - array(array( 3, 4), array( 3, 11), array(17, 4), array( 9, 16)), // - array(array( 3, 5), array( 3, 13), array(15, 5), array(15, 10)), // 20 - array(array( 4, 4), array(17, 0), array(17, 6), array(19, 6)), // - array(array( 2, 7), array(17, 0), array( 7, 16), array(34, 0)), // - array(array( 4, 5), array( 4, 14), array(11, 14), array(16, 14)), // - array(array( 6, 4), array( 6, 14), array(11, 16), array(30, 2)), // - array(array( 8, 4), array( 8, 13), array( 7, 22), array(22, 13)), // 25 - array(array(10, 2), array(19, 4), array(28, 6), array(33, 4)), // - array(array( 8, 4), array(22, 3), array( 8, 26), array(12, 28)), // - array(array( 3, 10), array( 3, 23), array( 4, 31), array(11, 31)), // - array(array( 7, 7), array(21, 7), array( 1, 37), array(19, 26)), // - array(array( 5, 10), array(19, 10), array(15, 25), array(23, 25)), // 30 - array(array(13, 3), array( 2, 29), array(42, 1), array(23, 28)), // - array(array(17, 0), array(10, 23), array(10, 35), array(19, 35)), // - array(array(17, 1), array(14, 21), array(29, 19), array(11, 46)), // - array(array(13, 6), array(14, 23), array(44, 7), array(59, 1)), // - array(array(12, 7), array(12, 26), array(39, 14), array(22, 41)), // 35 - array(array( 6, 14), array( 6, 34), array(46, 10), array( 2, 64)), // - array(array(17, 4), array(29, 14), array(49, 10), array(24, 46)), // - array(array( 4, 18), array(13, 32), array(48, 14), array(42, 32)), // - array(array(20, 4), array(40, 7), array(43, 22), array(10, 67)), // - array(array(19, 6), array(18, 31), array(34, 34), array(20, 61)) // 40 - ); - - /** - * Array Positions of alignment patterns. - * This array includes only the second and the third position of the alignment patterns. Rest of them can be calculated from the distance between them. - * See Table 1 in Appendix E (pp.71) of JIS X0510:2004. - * @protected - */ - protected $alignmentPattern = array( - array( 0, 0), - array( 0, 0), array(18, 0), array(22, 0), array(26, 0), array(30, 0), // 1- 5 - array(34, 0), array(22, 38), array(24, 42), array(26, 46), array(28, 50), // 6-10 - array(30, 54), array(32, 58), array(34, 62), array(26, 46), array(26, 48), // 11-15 - array(26, 50), array(30, 54), array(30, 56), array(30, 58), array(34, 62), // 16-20 - array(28, 50), array(26, 50), array(30, 54), array(28, 54), array(32, 58), // 21-25 - array(30, 58), array(34, 62), array(26, 50), array(30, 54), array(26, 52), // 26-30 - array(30, 56), array(34, 60), array(30, 58), array(34, 62), array(30, 54), // 31-35 - array(24, 50), array(28, 54), array(32, 58), array(26, 54), array(30, 58) // 35-40 - ); - - /** - * Array Version information pattern (BCH coded). - * See Table 1 in Appendix D (pp.68) of JIS X0510:2004. - * size: [QRSPEC_VERSION_MAX - 6] - * @protected - */ - protected $versionPattern = array( - 0x07c94, 0x085bc, 0x09a99, 0x0a4d3, 0x0bbf6, 0x0c762, 0x0d847, 0x0e60d, // - 0x0f928, 0x10b78, 0x1145d, 0x12a17, 0x13532, 0x149a6, 0x15683, 0x168c9, // - 0x177ec, 0x18ec4, 0x191e1, 0x1afab, 0x1b08e, 0x1cc1a, 0x1d33f, 0x1ed75, // - 0x1f250, 0x209d5, 0x216f0, 0x228ba, 0x2379f, 0x24b0b, 0x2542e, 0x26a64, // - 0x27541, 0x28c69 - ); - - /** - * Array Format information - * @protected - */ - protected $formatInfo = array( - array(0x77c4, 0x72f3, 0x7daa, 0x789d, 0x662f, 0x6318, 0x6c41, 0x6976), // - array(0x5412, 0x5125, 0x5e7c, 0x5b4b, 0x45f9, 0x40ce, 0x4f97, 0x4aa0), // - array(0x355f, 0x3068, 0x3f31, 0x3a06, 0x24b4, 0x2183, 0x2eda, 0x2bed), // - array(0x1689, 0x13be, 0x1ce7, 0x19d0, 0x0762, 0x0255, 0x0d0c, 0x083b) // - ); - - - // ------------------------------------------------- - // ------------------------------------------------- - - - /** - * This is the class constructor. - * Creates a QRcode object - * @param $code (string) code to represent using QRcode - * @param $eclevel (string) error level:
    • L : About 7% or less errors can be corrected.
    • M : About 15% or less errors can be corrected.
    • Q : About 25% or less errors can be corrected.
    • H : About 30% or less errors can be corrected.
    - * @public - * @since 1.0.000 - */ - public function __construct($code, $eclevel = 'L') { - $barcode_array = array(); - if ((is_null($code)) OR ($code == '\0') OR ($code == '')) { - return false; - } - // set error correction level - $this->level = array_search($eclevel, array('L', 'M', 'Q', 'H')); - if ($this->level === false) { - $this->level = QR_ECLEVEL_L; - } - if (($this->hint != QR_MODE_8B) AND ($this->hint != QR_MODE_KJ)) { - return false; - } - if (($this->version < 0) OR ($this->version > QRSPEC_VERSION_MAX)) { - return false; - } - $this->items = array(); - $this->encodeString($code); - if (is_null($this->data)) { - return false; - } - $qrTab = $this->binarize($this->data); - $size = count($qrTab); - $barcode_array['num_rows'] = $size; - $barcode_array['num_cols'] = $size; - $barcode_array['bcode'] = array(); - foreach ($qrTab as $line) { - $arrAdd = array(); - foreach (str_split($line) as $char) { - $arrAdd[] = ($char=='1')?1:0; - } - $barcode_array['bcode'][] = $arrAdd; - } - $this->barcode_array = $barcode_array; - } - - /** - * Returns a barcode array which is readable by TCPDF - * @return array barcode array readable by TCPDF; - * @public - */ - public function getBarcodeArray() { - return $this->barcode_array; - } - - /** - * Convert the frame in binary form - * @param $frame (array) array to binarize - * @return array frame in binary form - */ - protected function binarize($frame) { - $len = count($frame); - // the frame is square (width = height) - foreach ($frame as &$frameLine) { - for ($i=0; $i<$len; $i++) { - $frameLine[$i] = (ord($frameLine[$i])&1)?'1':'0'; - } - } - return $frame; - } - - /** - * Encode the input string to QR code - * @param $string (string) input string to encode - */ - protected function encodeString($string) { - $this->dataStr = $string; - if (!$this->casesensitive) { - $this->toUpper(); - } - $ret = $this->splitString(); - if ($ret < 0) { - return NULL; - } - $this->encodeMask(-1); - } - - /** - * Encode mask - * @param $mask (int) masking mode - */ - protected function encodeMask($mask) { - $spec = array(0, 0, 0, 0, 0); - $this->datacode = $this->getByteStream($this->items); - - if (is_null($this->datacode)) { - return NULL; - } - $spec = $this->getEccSpec($this->version, $this->level, $spec); - $this->b1 = $this->rsBlockNum1($spec); - $this->dataLength = $this->rsDataLength($spec); - $this->eccLength = $this->rsEccLength($spec); - $this->ecccode = array_fill(0, $this->eccLength, 0); - $this->blocks = $this->rsBlockNum($spec); - $ret = $this->init($spec); - if ($ret < 0) { - return NULL; - } - $this->count = 0; - $this->width = $this->getWidth($this->version); - $this->frame = $this->newFrame($this->version); - $this->x = $this->width - 1; - $this->y = $this->width - 1; - $this->dir = -1; - $this->bit = -1; - // inteleaved data and ecc codes - for ($i=0; $i < ($this->dataLength + $this->eccLength); $i++) { - $code = $this->getCode(); - $bit = 0x80; - for ($j=0; $j<8; $j++) { - $addr = $this->getNextPosition(); - $this->setFrameAt($addr, 0x02 | (($bit & $code) != 0)); - $bit = $bit >> 1; - } - } - // remainder bits - $j = $this->getRemainder($this->version); - for ($i=0; $i<$j; $i++) { - $addr = $this->getNextPosition(); - $this->setFrameAt($addr, 0x02); - } - // masking - $this->runLength = array_fill(0, QRSPEC_WIDTH_MAX + 1, 0); - if ($mask < 0) { - if (QR_FIND_BEST_MASK) { - $masked = $this->mask($this->width, $this->frame, $this->level); - } else { - $masked = $this->makeMask($this->width, $this->frame, (intval(QR_DEFAULT_MASK) % 8), $this->level); - } - } else { - $masked = $this->makeMask($this->width, $this->frame, $mask, $this->level); - } - if ($masked == NULL) { - return NULL; - } - $this->data = $masked; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - // FrameFiller - - /** - * Set frame value at specified position - * @param $at (array) x,y position - * @param $val (int) value of the character to set - */ - protected function setFrameAt($at, $val) { - $this->frame[$at['y']][$at['x']] = chr($val); - } - - /** - * Get frame value at specified position - * @param $at (array) x,y position - * @return value at specified position - */ - protected function getFrameAt($at) { - return ord($this->frame[$at['y']][$at['x']]); - } - - /** - * Return the next frame position - * @return array of x,y coordinates - */ - protected function getNextPosition() { - do { - if ($this->bit == -1) { - $this->bit = 0; - return array('x'=>$this->x, 'y'=>$this->y); - } - $x = $this->x; - $y = $this->y; - $w = $this->width; - if ($this->bit == 0) { - $x--; - $this->bit++; - } else { - $x++; - $y += $this->dir; - $this->bit--; - } - if ($this->dir < 0) { - if ($y < 0) { - $y = 0; - $x -= 2; - $this->dir = 1; - if ($x == 6) { - $x--; - $y = 9; - } - } - } else { - if ($y == $w) { - $y = $w - 1; - $x -= 2; - $this->dir = -1; - if ($x == 6) { - $x--; - $y -= 8; - } - } - } - if (($x < 0) OR ($y < 0)) { - return NULL; - } - $this->x = $x; - $this->y = $y; - } while(ord($this->frame[$y][$x]) & 0x80); - return array('x'=>$x, 'y'=>$y); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - // QRrawcode - - /** - * Initialize code. - * @param $spec (array) array of ECC specification - * @return 0 in case of success, -1 in case of error - */ - protected function init($spec) { - $dl = $this->rsDataCodes1($spec); - $el = $this->rsEccCodes1($spec); - $rs = $this->init_rs(8, 0x11d, 0, 1, $el, 255 - $dl - $el); - $blockNo = 0; - $dataPos = 0; - $eccPos = 0; - $endfor = $this->rsBlockNum1($spec); - for ($i=0; $i < $endfor; ++$i) { - $ecc = array_slice($this->ecccode, $eccPos); - $this->rsblocks[$blockNo] = array(); - $this->rsblocks[$blockNo]['dataLength'] = $dl; - $this->rsblocks[$blockNo]['data'] = array_slice($this->datacode, $dataPos); - $this->rsblocks[$blockNo]['eccLength'] = $el; - $ecc = $this->encode_rs_char($rs, $this->rsblocks[$blockNo]['data'], $ecc); - $this->rsblocks[$blockNo]['ecc'] = $ecc; - $this->ecccode = array_merge(array_slice($this->ecccode,0, $eccPos), $ecc); - $dataPos += $dl; - $eccPos += $el; - $blockNo++; - } - if ($this->rsBlockNum2($spec) == 0) { - return 0; - } - $dl = $this->rsDataCodes2($spec); - $el = $this->rsEccCodes2($spec); - $rs = $this->init_rs(8, 0x11d, 0, 1, $el, 255 - $dl - $el); - if ($rs == NULL) { - return -1; - } - $endfor = $this->rsBlockNum2($spec); - for ($i=0; $i < $endfor; ++$i) { - $ecc = array_slice($this->ecccode, $eccPos); - $this->rsblocks[$blockNo] = array(); - $this->rsblocks[$blockNo]['dataLength'] = $dl; - $this->rsblocks[$blockNo]['data'] = array_slice($this->datacode, $dataPos); - $this->rsblocks[$blockNo]['eccLength'] = $el; - $ecc = $this->encode_rs_char($rs, $this->rsblocks[$blockNo]['data'], $ecc); - $this->rsblocks[$blockNo]['ecc'] = $ecc; - $this->ecccode = array_merge(array_slice($this->ecccode, 0, $eccPos), $ecc); - $dataPos += $dl; - $eccPos += $el; - $blockNo++; - } - return 0; - } - - /** - * Return Reed-Solomon block code. - * @return array rsblocks - */ - protected function getCode() { - if ($this->count < $this->dataLength) { - $row = $this->count % $this->blocks; - $col = $this->count / $this->blocks; - if ($col >= $this->rsblocks[0]['dataLength']) { - $row += $this->b1; - } - $ret = $this->rsblocks[$row]['data'][$col]; - } elseif ($this->count < $this->dataLength + $this->eccLength) { - $row = ($this->count - $this->dataLength) % $this->blocks; - $col = ($this->count - $this->dataLength) / $this->blocks; - $ret = $this->rsblocks[$row]['ecc'][$col]; - } else { - return 0; - } - $this->count++; - return $ret; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - // QRmask - - /** - * Write Format Information on frame and returns the number of black bits - * @param $width (int) frame width - * @param $frame (array) frame - * @param $mask (array) masking mode - * @param $level (int) error correction level - * @return int blacks - */ - protected function writeFormatInformation($width, &$frame, $mask, $level) { - $blacks = 0; - $format = $this->getFormatInfo($mask, $level); - for ($i=0; $i<8; ++$i) { - if ($format & 1) { - $blacks += 2; - $v = 0x85; - } else { - $v = 0x84; - } - $frame[8][$width - 1 - $i] = chr($v); - if ($i < 6) { - $frame[$i][8] = chr($v); - } else { - $frame[$i + 1][8] = chr($v); - } - $format = $format >> 1; - } - for ($i=0; $i<7; ++$i) { - if ($format & 1) { - $blacks += 2; - $v = 0x85; - } else { - $v = 0x84; - } - $frame[$width - 7 + $i][8] = chr($v); - if ($i == 0) { - $frame[8][7] = chr($v); - } else { - $frame[8][6 - $i] = chr($v); - } - $format = $format >> 1; - } - return $blacks; - } - - /** - * mask0 - * @param $x (int) X position - * @param $y (int) Y position - * @return int mask - */ - protected function mask0($x, $y) { - return ($x + $y) & 1; - } - - /** - * mask1 - * @param $x (int) X position - * @param $y (int) Y position - * @return int mask - */ - protected function mask1($x, $y) { - return ($y & 1); - } - - /** - * mask2 - * @param $x (int) X position - * @param $y (int) Y position - * @return int mask - */ - protected function mask2($x, $y) { - return ($x % 3); - } - - /** - * mask3 - * @param $x (int) X position - * @param $y (int) Y position - * @return int mask - */ - protected function mask3($x, $y) { - return ($x + $y) % 3; - } - - /** - * mask4 - * @param $x (int) X position - * @param $y (int) Y position - * @return int mask - */ - protected function mask4($x, $y) { - return (((int)($y / 2)) + ((int)($x / 3))) & 1; - } - - /** - * mask5 - * @param $x (int) X position - * @param $y (int) Y position - * @return int mask - */ - protected function mask5($x, $y) { - return (($x * $y) & 1) + ($x * $y) % 3; - } - - /** - * mask6 - * @param $x (int) X position - * @param $y (int) Y position - * @return int mask - */ - protected function mask6($x, $y) { - return ((($x * $y) & 1) + ($x * $y) % 3) & 1; - } - - /** - * mask7 - * @param $x (int) X position - * @param $y (int) Y position - * @return int mask - */ - protected function mask7($x, $y) { - return ((($x * $y) % 3) + (($x + $y) & 1)) & 1; - } - - /** - * Return bitmask - * @param $maskNo (int) mask number - * @param $width (int) width - * @param $frame (array) frame - * @return array bitmask - */ - protected function generateMaskNo($maskNo, $width, $frame) { - $bitMask = array_fill(0, $width, array_fill(0, $width, 0)); - for ($y=0; $y<$width; ++$y) { - for ($x=0; $x<$width; ++$x) { - if (ord($frame[$y][$x]) & 0x80) { - $bitMask[$y][$x] = 0; - } else { - $maskFunc = call_user_func(array($this, 'mask'.$maskNo), $x, $y); - $bitMask[$y][$x] = ($maskFunc == 0)?1:0; - } - } - } - return $bitMask; - } - - /** - * makeMaskNo - * @param $maskNo (int) - * @param $width (int) - * @param $s (int) - * @param $d (int) - * @param $maskGenOnly (boolean) - * @return int b - */ - protected function makeMaskNo($maskNo, $width, $s, &$d, $maskGenOnly=false) { - $b = 0; - $bitMask = array(); - $bitMask = $this->generateMaskNo($maskNo, $width, $s, $d); - if ($maskGenOnly) { - return; - } - $d = $s; - for ($y=0; $y<$width; ++$y) { - for ($x=0; $x<$width; ++$x) { - if ($bitMask[$y][$x] == 1) { - $d[$y][$x] = chr(ord($s[$y][$x]) ^ ((int)($bitMask[$y][$x]))); - } - $b += (int)(ord($d[$y][$x]) & 1); - } - } - return $b; - } - - /** - * makeMask - * @param $width (int) - * @param $frame (array) - * @param $maskNo (int) - * @param $level (int) - * @return array mask - */ - protected function makeMask($width, $frame, $maskNo, $level) { - $masked = array_fill(0, $width, str_repeat("\0", $width)); - $this->makeMaskNo($maskNo, $width, $frame, $masked); - $this->writeFormatInformation($width, $masked, $maskNo, $level); - return $masked; - } - - /** - * calcN1N3 - * @param $length (int) - * @return int demerit - */ - protected function calcN1N3($length) { - $demerit = 0; - for ($i=0; $i<$length; ++$i) { - if ($this->runLength[$i] >= 5) { - $demerit += (N1 + ($this->runLength[$i] - 5)); - } - if ($i & 1) { - if (($i >= 3) AND ($i < ($length-2)) AND ($this->runLength[$i] % 3 == 0)) { - $fact = (int)($this->runLength[$i] / 3); - if (($this->runLength[$i-2] == $fact) - AND ($this->runLength[$i-1] == $fact) - AND ($this->runLength[$i+1] == $fact) - AND ($this->runLength[$i+2] == $fact)) { - if (($this->runLength[$i-3] < 0) OR ($this->runLength[$i-3] >= (4 * $fact))) { - $demerit += N3; - } elseif ((($i+3) >= $length) OR ($this->runLength[$i+3] >= (4 * $fact))) { - $demerit += N3; - } - } - } - } - } - return $demerit; - } - - /** - * evaluateSymbol - * @param $width (int) - * @param $frame (array) - * @return int demerit - */ - protected function evaluateSymbol($width, $frame) { - $head = 0; - $demerit = 0; - for ($y=0; $y<$width; ++$y) { - $head = 0; - $this->runLength[0] = 1; - $frameY = $frame[$y]; - if ($y > 0) { - $frameYM = $frame[$y-1]; - } - for ($x=0; $x<$width; ++$x) { - if (($x > 0) AND ($y > 0)) { - $b22 = ord($frameY[$x]) & ord($frameY[$x-1]) & ord($frameYM[$x]) & ord($frameYM[$x-1]); - $w22 = ord($frameY[$x]) | ord($frameY[$x-1]) | ord($frameYM[$x]) | ord($frameYM[$x-1]); - if (($b22 | ($w22 ^ 1)) & 1) { - $demerit += N2; - } - } - if (($x == 0) AND (ord($frameY[$x]) & 1)) { - $this->runLength[0] = -1; - $head = 1; - $this->runLength[$head] = 1; - } elseif ($x > 0) { - if ((ord($frameY[$x]) ^ ord($frameY[$x-1])) & 1) { - $head++; - $this->runLength[$head] = 1; - } else { - $this->runLength[$head]++; - } - } - } - $demerit += $this->calcN1N3($head+1); - } - for ($x=0; $x<$width; ++$x) { - $head = 0; - $this->runLength[0] = 1; - for ($y=0; $y<$width; ++$y) { - if (($y == 0) AND (ord($frame[$y][$x]) & 1)) { - $this->runLength[0] = -1; - $head = 1; - $this->runLength[$head] = 1; - } elseif ($y > 0) { - if ((ord($frame[$y][$x]) ^ ord($frame[$y-1][$x])) & 1) { - $head++; - $this->runLength[$head] = 1; - } else { - $this->runLength[$head]++; - } - } - } - $demerit += $this->calcN1N3($head+1); - } - return $demerit; - } - - /** - * mask - * @param $width (int) - * @param $frame (array) - * @param $level (int) - * @return array best mask - */ - protected function mask($width, $frame, $level) { - $minDemerit = PHP_INT_MAX; - $bestMaskNum = 0; - $bestMask = array(); - $checked_masks = array(0, 1, 2, 3, 4, 5, 6, 7); - if (QR_FIND_FROM_RANDOM !== false) { - $howManuOut = 8 - (QR_FIND_FROM_RANDOM % 9); - for ($i = 0; $i < $howManuOut; ++$i) { - $remPos = rand (0, count($checked_masks)-1); - unset($checked_masks[$remPos]); - $checked_masks = array_values($checked_masks); - } - } - $bestMask = $frame; - foreach ($checked_masks as $i) { - $mask = array_fill(0, $width, str_repeat("\0", $width)); - $demerit = 0; - $blacks = 0; - $blacks = $this->makeMaskNo($i, $width, $frame, $mask); - $blacks += $this->writeFormatInformation($width, $mask, $i, $level); - $blacks = (int)(100 * $blacks / ($width * $width)); - $demerit = (int)((int)(abs($blacks - 50) / 5) * N4); - $demerit += $this->evaluateSymbol($width, $mask); - if ($demerit < $minDemerit) { - $minDemerit = $demerit; - $bestMask = $mask; - $bestMaskNum = $i; - } - } - return $bestMask; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - // QRsplit - - /** - * Return true if the character at specified position is a number - * @param $str (string) string - * @param $pos (int) characted position - * @return boolean true of false - */ - protected function isdigitat($str, $pos) { - if ($pos >= strlen($str)) { - return false; - } - return ((ord($str[$pos]) >= ord('0'))&&(ord($str[$pos]) <= ord('9'))); - } - - /** - * Return true if the character at specified position is an alphanumeric character - * @param $str (string) string - * @param $pos (int) characted position - * @return boolean true of false - */ - protected function isalnumat($str, $pos) { - if ($pos >= strlen($str)) { - return false; - } - return ($this->lookAnTable(ord($str[$pos])) >= 0); - } - - /** - * identifyMode - * @param $pos (int) - * @return int mode - */ - protected function identifyMode($pos) { - if ($pos >= strlen($this->dataStr)) { - return QR_MODE_NL; - } - $c = $this->dataStr[$pos]; - if ($this->isdigitat($this->dataStr, $pos)) { - return QR_MODE_NM; - } elseif ($this->isalnumat($this->dataStr, $pos)) { - return QR_MODE_AN; - } elseif ($this->hint == QR_MODE_KJ) { - if ($pos+1 < strlen($this->dataStr)) { - $d = $this->dataStr[$pos+1]; - $word = (ord($c) << 8) | ord($d); - if (($word >= 0x8140 && $word <= 0x9ffc) OR ($word >= 0xe040 && $word <= 0xebbf)) { - return QR_MODE_KJ; - } - } - } - return QR_MODE_8B; - } - - /** - * eatNum - * @return int run - */ - protected function eatNum() { - $ln = $this->lengthIndicator(QR_MODE_NM, $this->version); - $p = 0; - while($this->isdigitat($this->dataStr, $p)) { - $p++; - } - $run = $p; - $mode = $this->identifyMode($p); - if ($mode == QR_MODE_8B) { - $dif = $this->estimateBitsModeNum($run) + 4 + $ln - + $this->estimateBitsMode8(1) // + 4 + l8 - - $this->estimateBitsMode8($run + 1); // - 4 - l8 - if ($dif > 0) { - return $this->eat8(); - } - } - if ($mode == QR_MODE_AN) { - $dif = $this->estimateBitsModeNum($run) + 4 + $ln - + $this->estimateBitsModeAn(1) // + 4 + la - - $this->estimateBitsModeAn($run + 1);// - 4 - la - if ($dif > 0) { - return $this->eatAn(); - } - } - $this->items = $this->appendNewInputItem($this->items, QR_MODE_NM, $run, str_split($this->dataStr)); - return $run; - } - - /** - * eatAn - * @return int run - */ - protected function eatAn() { - $la = $this->lengthIndicator(QR_MODE_AN, $this->version); - $ln = $this->lengthIndicator(QR_MODE_NM, $this->version); - $p =1 ; - while($this->isalnumat($this->dataStr, $p)) { - if ($this->isdigitat($this->dataStr, $p)) { - $q = $p; - while($this->isdigitat($this->dataStr, $q)) { - $q++; - } - $dif = $this->estimateBitsModeAn($p) // + 4 + la - + $this->estimateBitsModeNum($q - $p) + 4 + $ln - - $this->estimateBitsModeAn($q); // - 4 - la - if ($dif < 0) { - break; - } else { - $p = $q; - } - } else { - $p++; - } - } - $run = $p; - if (!$this->isalnumat($this->dataStr, $p)) { - $dif = $this->estimateBitsModeAn($run) + 4 + $la - + $this->estimateBitsMode8(1) // + 4 + l8 - - $this->estimateBitsMode8($run + 1); // - 4 - l8 - if ($dif > 0) { - return $this->eat8(); - } - } - $this->items = $this->appendNewInputItem($this->items, QR_MODE_AN, $run, str_split($this->dataStr)); - return $run; - } - - /** - * eatKanji - * @return int run - */ - protected function eatKanji() { - $p = 0; - while($this->identifyMode($p) == QR_MODE_KJ) { - $p += 2; - } - $this->items = $this->appendNewInputItem($this->items, QR_MODE_KJ, $p, str_split($this->dataStr)); - return $run; - } - - /** - * eat8 - * @return int run - */ - protected function eat8() { - $la = $this->lengthIndicator(QR_MODE_AN, $this->version); - $ln = $this->lengthIndicator(QR_MODE_NM, $this->version); - $p = 1; - $dataStrLen = strlen($this->dataStr); - while($p < $dataStrLen) { - $mode = $this->identifyMode($p); - if ($mode == QR_MODE_KJ) { - break; - } - if ($mode == QR_MODE_NM) { - $q = $p; - while($this->isdigitat($this->dataStr, $q)) { - $q++; - } - $dif = $this->estimateBitsMode8($p) // + 4 + l8 - + $this->estimateBitsModeNum($q - $p) + 4 + $ln - - $this->estimateBitsMode8($q); // - 4 - l8 - if ($dif < 0) { - break; - } else { - $p = $q; - } - } elseif ($mode == QR_MODE_AN) { - $q = $p; - while($this->isalnumat($this->dataStr, $q)) { - $q++; - } - $dif = $this->estimateBitsMode8($p) // + 4 + l8 - + $this->estimateBitsModeAn($q - $p) + 4 + $la - - $this->estimateBitsMode8($q); // - 4 - l8 - if ($dif < 0) { - break; - } else { - $p = $q; - } - } else { - $p++; - } - } - $run = $p; - $this->items = $this->appendNewInputItem($this->items, QR_MODE_8B, $run, str_split($this->dataStr)); - return $run; - } - - /** - * splitString - * @return (int) - */ - protected function splitString() { - while (strlen($this->dataStr) > 0) { - $mode = $this->identifyMode(0); - switch ($mode) { - case QR_MODE_NM: { - $length = $this->eatNum(); - break; - } - case QR_MODE_AN: { - $length = $this->eatAn(); - break; - } - case QR_MODE_KJ: { - if ($hint == QR_MODE_KJ) { - $length = $this->eatKanji(); - } else { - $length = $this->eat8(); - } - break; - } - default: { - $length = $this->eat8(); - break; - } - } - if ($length == 0) { - return 0; - } - if ($length < 0) { - return -1; - } - $this->dataStr = substr($this->dataStr, $length); - } - return 0; - } - - /** - * toUpper - */ - protected function toUpper() { - $stringLen = strlen($this->dataStr); - $p = 0; - while ($p < $stringLen) { - $mode = $this->identifyMode(substr($this->dataStr, $p), $this->hint); - if ($mode == QR_MODE_KJ) { - $p += 2; - } else { - if ((ord($this->dataStr[$p]) >= ord('a')) AND (ord($this->dataStr[$p]) <= ord('z'))) { - $this->dataStr[$p] = chr(ord($this->dataStr[$p]) - 32); - } - $p++; - } - } - return $this->dataStr; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - // QRinputItem - - /** - * newInputItem - * @param $mode (int) - * @param $size (int) - * @param $data (array) - * @param $bstream (array) - * @return array input item - */ - protected function newInputItem($mode, $size, $data, $bstream=null) { - $setData = array_slice($data, 0, $size); - if (count($setData) < $size) { - $setData = array_merge($setData, array_fill(0, ($size - count($setData)), 0)); - } - if (!$this->check($mode, $size, $setData)) { - return NULL; - } - $inputitem = array(); - $inputitem['mode'] = $mode; - $inputitem['size'] = $size; - $inputitem['data'] = $setData; - $inputitem['bstream'] = $bstream; - return $inputitem; - } - - /** - * encodeModeNum - * @param $inputitem (array) - * @param $version (int) - * @return array input item - */ - protected function encodeModeNum($inputitem, $version) { - $words = (int)($inputitem['size'] / 3); - $inputitem['bstream'] = array(); - $val = 0x1; - $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 4, $val); - $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], $this->lengthIndicator(QR_MODE_NM, $version), $inputitem['size']); - for ($i=0; $i < $words; ++$i) { - $val = (ord($inputitem['data'][$i*3 ]) - ord('0')) * 100; - $val += (ord($inputitem['data'][$i*3+1]) - ord('0')) * 10; - $val += (ord($inputitem['data'][$i*3+2]) - ord('0')); - $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 10, $val); - } - if ($inputitem['size'] - $words * 3 == 1) { - $val = ord($inputitem['data'][$words*3]) - ord('0'); - $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 4, $val); - } elseif (($inputitem['size'] - ($words * 3)) == 2) { - $val = (ord($inputitem['data'][$words*3 ]) - ord('0')) * 10; - $val += (ord($inputitem['data'][$words*3+1]) - ord('0')); - $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 7, $val); - } - return $inputitem; - } - - /** - * encodeModeAn - * @param $inputitem (array) - * @param $version (int) - * @return array input item - */ - protected function encodeModeAn($inputitem, $version) { - $words = (int)($inputitem['size'] / 2); - $inputitem['bstream'] = array(); - $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 4, 0x02); - $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], $this->lengthIndicator(QR_MODE_AN, $version), $inputitem['size']); - for ($i=0; $i < $words; ++$i) { - $val = (int)($this->lookAnTable(ord($inputitem['data'][$i*2])) * 45); - $val += (int)($this->lookAnTable(ord($inputitem['data'][($i*2)+1]))); - $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 11, $val); - } - if ($inputitem['size'] & 1) { - $val = $this->lookAnTable(ord($inputitem['data'][($words * 2)])); - $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 6, $val); - } - return $inputitem; - } - - /** - * encodeMode8 - * @param $inputitem (array) - * @param $version (int) - * @return array input item - */ - protected function encodeMode8($inputitem, $version) { - $inputitem['bstream'] = array(); - $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 4, 0x4); - $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], $this->lengthIndicator(QR_MODE_8B, $version), $inputitem['size']); - for ($i=0; $i < $inputitem['size']; ++$i) { - $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 8, ord($inputitem['data'][$i])); - } - return $inputitem; - } - - /** - * encodeModeKanji - * @param $inputitem (array) - * @param $version (int) - * @return array input item - */ - protected function encodeModeKanji($inputitem, $version) { - $inputitem['bstream'] = array(); - $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 4, 0x8); - $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], $this->lengthIndicator(QR_MODE_KJ, $version), (int)($inputitem['size'] / 2)); - for ($i=0; $i<$inputitem['size']; $i+=2) { - $val = (ord($inputitem['data'][$i]) << 8) | ord($inputitem['data'][$i+1]); - if ($val <= 0x9ffc) { - $val -= 0x8140; - } else { - $val -= 0xc140; - } - $h = ($val >> 8) * 0xc0; - $val = ($val & 0xff) + $h; - $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 13, $val); - } - return $inputitem; - } - - /** - * encodeModeStructure - * @param $inputitem (array) - * @return array input item - */ - protected function encodeModeStructure($inputitem) { - $inputitem['bstream'] = array(); - $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 4, 0x03); - $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 4, ord($inputitem['data'][1]) - 1); - $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 4, ord($inputitem['data'][0]) - 1); - $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 8, ord($inputitem['data'][2])); - return $inputitem; - } - - /** - * encodeBitStream - * @param $inputitem (array) - * @param $version (int) - * @return array input item - */ - protected function encodeBitStream($inputitem, $version) { - $inputitem['bstream'] = array(); - $words = $this->maximumWords($inputitem['mode'], $version); - if ($inputitem['size'] > $words) { - $st1 = $this->newInputItem($inputitem['mode'], $words, $inputitem['data']); - $st2 = $this->newInputItem($inputitem['mode'], $inputitem['size'] - $words, array_slice($inputitem['data'], $words)); - $st1 = $this->encodeBitStream($st1, $version); - $st2 = $this->encodeBitStream($st2, $version); - $inputitem['bstream'] = array(); - $inputitem['bstream'] = $this->appendBitstream($inputitem['bstream'], $st1['bstream']); - $inputitem['bstream'] = $this->appendBitstream($inputitem['bstream'], $st2['bstream']); - } else { - switch($inputitem['mode']) { - case QR_MODE_NM: { - $inputitem = $this->encodeModeNum($inputitem, $version); - break; - } - case QR_MODE_AN: { - $inputitem = $this->encodeModeAn($inputitem, $version); - break; - } - case QR_MODE_8B: { - $inputitem = $this->encodeMode8($inputitem, $version); - break; - } - case QR_MODE_KJ: { - $inputitem = $this->encodeModeKanji($inputitem, $version); - break; - } - case QR_MODE_ST: { - $inputitem = $this->encodeModeStructure($inputitem); - break; - } - default: { - break; - } - } - } - return $inputitem; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - // QRinput - - /** - * Append data to an input object. - * The data is copied and appended to the input object. - * @param $items (arrray) input items - * @param $mode (int) encoding mode. - * @param $size (int) size of data (byte). - * @param $data (array) array of input data. - * @return items - * - */ - protected function appendNewInputItem($items, $mode, $size, $data) { - $newitem = $this->newInputItem($mode, $size, $data); - if (!empty($newitem)) { - $items[] = $newitem; - } - return $items; - } - - /** - * insertStructuredAppendHeader - * @param $items (array) - * @param $size (int) - * @param $index (int) - * @param $parity (int) - * @return array items - */ - protected function insertStructuredAppendHeader($items, $size, $index, $parity) { - if ($size > MAX_STRUCTURED_SYMBOLS) { - return -1; - } - if (($index <= 0) OR ($index > MAX_STRUCTURED_SYMBOLS)) { - return -1; - } - $buf = array($size, $index, $parity); - $entry = $this->newInputItem(QR_MODE_ST, 3, buf); - array_unshift($items, $entry); - return $items; - } - - /** - * calcParity - * @param $items (array) - * @return int parity - */ - protected function calcParity($items) { - $parity = 0; - foreach ($items as $item) { - if ($item['mode'] != QR_MODE_ST) { - for ($i=$item['size']-1; $i>=0; --$i) { - $parity ^= $item['data'][$i]; - } - } - } - return $parity; - } - - /** - * checkModeNum - * @param $size (int) - * @param $data (array) - * @return boolean true or false - */ - protected function checkModeNum($size, $data) { - for ($i=0; $i<$size; ++$i) { - if ((ord($data[$i]) < ord('0')) OR (ord($data[$i]) > ord('9'))){ - return false; - } - } - return true; - } - - /** - * Look up the alphabet-numeric convesion table (see JIS X0510:2004, pp.19). - * @param $c (int) character value - * @return value - */ - protected function lookAnTable($c) { - return (($c > 127)?-1:$this->anTable[$c]); - } - - /** - * checkModeAn - * @param $size (int) - * @param $data (array) - * @return boolean true or false - */ - protected function checkModeAn($size, $data) { - for ($i=0; $i<$size; ++$i) { - if ($this->lookAnTable(ord($data[$i])) == -1) { - return false; - } - } - return true; - } - - /** - * estimateBitsModeNum - * @param $size (int) - * @return int number of bits - */ - protected function estimateBitsModeNum($size) { - $w = (int)($size / 3); - $bits = ($w * 10); - switch($size - ($w * 3)) { - case 1: { - $bits += 4; - break; - } - case 2: { - $bits += 7; - break; - } - } - return $bits; - } - - /** - * estimateBitsModeAn - * @param $size (int) - * @return int number of bits - */ - protected function estimateBitsModeAn($size) { - $bits = (int)($size * 5.5); // (size / 2 ) * 11 - if ($size & 1) { - $bits += 6; - } - return $bits; - } - - /** - * estimateBitsMode8 - * @param $size (int) - * @return int number of bits - */ - protected function estimateBitsMode8($size) { - return (int)($size * 8); - } - - /** - * estimateBitsModeKanji - * @param $size (int) - * @return int number of bits - */ - protected function estimateBitsModeKanji($size) { - return (int)($size * 6.5); // (size / 2 ) * 13 - } - - /** - * checkModeKanji - * @param $size (int) - * @param $data (array) - * @return boolean true or false - */ - protected function checkModeKanji($size, $data) { - if ($size & 1) { - return false; - } - for ($i=0; $i<$size; $i+=2) { - $val = (ord($data[$i]) << 8) | ord($data[$i+1]); - if (($val < 0x8140) OR (($val > 0x9ffc) AND ($val < 0xe040)) OR ($val > 0xebbf)) { - return false; - } - } - return true; - } - - /** - * Validate the input data. - * @param $mode (int) encoding mode. - * @param $size (int) size of data (byte). - * @param $data (array) data to validate - * @return boolean true in case of valid data, false otherwise - */ - protected function check($mode, $size, $data) { - if ($size <= 0) { - return false; - } - switch($mode) { - case QR_MODE_NM: { - return $this->checkModeNum($size, $data); - } - case QR_MODE_AN: { - return $this->checkModeAn($size, $data); - } - case QR_MODE_KJ: { - return $this->checkModeKanji($size, $data); - } - case QR_MODE_8B: { - return true; - } - case QR_MODE_ST: { - return true; - } - default: { - break; - } - } - return false; - } - - /** - * estimateBitStreamSize - * @param $items (array) - * @param $version (int) - * @return int bits - */ - protected function estimateBitStreamSize($items, $version) { - $bits = 0; - if ($version == 0) { - $version = 1; - } - foreach ($items as $item) { - switch($item['mode']) { - case QR_MODE_NM: { - $bits = $this->estimateBitsModeNum($item['size']); - break; - } - case QR_MODE_AN: { - $bits = $this->estimateBitsModeAn($item['size']); - break; - } - case QR_MODE_8B: { - $bits = $this->estimateBitsMode8($item['size']); - break; - } - case QR_MODE_KJ: { - $bits = $this->estimateBitsModeKanji($item['size']); - break; - } - case QR_MODE_ST: { - return STRUCTURE_HEADER_BITS; - } - default: { - return 0; - } - } - $l = $this->lengthIndicator($item['mode'], $version); - $m = 1 << $l; - $num = (int)(($item['size'] + $m - 1) / $m); - $bits += $num * (4 + $l); - } - return $bits; - } - - /** - * estimateVersion - * @param $items (array) - * @return int version - */ - protected function estimateVersion($items) { - $version = 0; - $prev = 0; - do { - $prev = $version; - $bits = $this->estimateBitStreamSize($items, $prev); - $version = $this->getMinimumVersion((int)(($bits + 7) / 8), $this->level); - if ($version < 0) { - return -1; - } - } while ($version > $prev); - return $version; - } - - /** - * lengthOfCode - * @param $mode (int) - * @param $version (int) - * @param $bits (int) - * @return int size - */ - protected function lengthOfCode($mode, $version, $bits) { - $payload = $bits - 4 - $this->lengthIndicator($mode, $version); - switch($mode) { - case QR_MODE_NM: { - $chunks = (int)($payload / 10); - $remain = $payload - $chunks * 10; - $size = $chunks * 3; - if ($remain >= 7) { - $size += 2; - } elseif ($remain >= 4) { - $size += 1; - } - break; - } - case QR_MODE_AN: { - $chunks = (int)($payload / 11); - $remain = $payload - $chunks * 11; - $size = $chunks * 2; - if ($remain >= 6) { - ++$size; - } - break; - } - case QR_MODE_8B: { - $size = (int)($payload / 8); - break; - } - case QR_MODE_KJ: { - $size = (int)(($payload / 13) * 2); - break; - } - case QR_MODE_ST: { - $size = (int)($payload / 8); - break; - } - default: { - $size = 0; - break; - } - } - $maxsize = $this->maximumWords($mode, $version); - if ($size < 0) { - $size = 0; - } - if ($size > $maxsize) { - $size = $maxsize; - } - return $size; - } - - /** - * createBitStream - * @param $items (array) - * @return array of items and total bits - */ - protected function createBitStream($items) { - $total = 0; - foreach ($items as $key => $item) { - $items[$key] = $this->encodeBitStream($item, $this->version); - $bits = count($items[$key]['bstream']); - $total += $bits; - } - return array($items, $total); - } - - /** - * convertData - * @param $items (array) - * @return array items - */ - protected function convertData($items) { - $ver = $this->estimateVersion($items); - if ($ver > $this->version) { - $this->version = $ver; - } - while (true) { - $cbs = $this->createBitStream($items); - $items = $cbs[0]; - $bits = $cbs[1]; - if ($bits < 0) { - return -1; - } - $ver = $this->getMinimumVersion((int)(($bits + 7) / 8), $this->level); - if ($ver < 0) { - return -1; - } elseif ($ver > $this->version) { - $this->version = $ver; - } else { - break; - } - } - return $items; - } - - /** - * Append Padding Bit to bitstream - * @param $bstream (array) - * @return array bitstream - */ - protected function appendPaddingBit($bstream) { - if (is_null($bstream)) { - return null; - } - $bits = count($bstream); - $maxwords = $this->getDataLength($this->version, $this->level); - $maxbits = $maxwords * 8; - if ($maxbits == $bits) { - return $bstream; - } - if ($maxbits - $bits < 5) { - return $this->appendNum($bstream, $maxbits - $bits, 0); - } - $bits += 4; - $words = (int)(($bits + 7) / 8); - $padding = array(); - $padding = $this->appendNum($padding, $words * 8 - $bits + 4, 0); - $padlen = $maxwords - $words; - if ($padlen > 0) { - $padbuf = array(); - for ($i=0; $i<$padlen; ++$i) { - $padbuf[$i] = ($i&1)?0x11:0xec; - } - $padding = $this->appendBytes($padding, $padlen, $padbuf); - } - return $this->appendBitstream($bstream, $padding); - } - - /** - * mergeBitStream - * @param $items (array) items - * @return array bitstream - */ - protected function mergeBitStream($items) { - $items = $this->convertData($items); - if (!is_array($items)) { - return null; - } - $bstream = array(); - foreach ($items as $item) { - $bstream = $this->appendBitstream($bstream, $item['bstream']); - } - return $bstream; - } - - /** - * Returns a stream of bits. - * @param $items (int) - * @return array padded merged byte stream - */ - protected function getBitStream($items) { - $bstream = $this->mergeBitStream($items); - return $this->appendPaddingBit($bstream); - } - - /** - * Pack all bit streams padding bits into a byte array. - * @param $items (int) - * @return array padded merged byte stream - */ - protected function getByteStream($items) { - $bstream = $this->getBitStream($items); - return $this->bitstreamToByte($bstream); - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - // QRbitstream - - /** - * Return an array with zeros - * @param $setLength (int) array size - * @return array - */ - protected function allocate($setLength) { - return array_fill(0, $setLength, 0); - } - - /** - * Return new bitstream from number - * @param $bits (int) number of bits - * @param $num (int) number - * @return array bitstream - */ - protected function newFromNum($bits, $num) { - $bstream = $this->allocate($bits); - $mask = 1 << ($bits - 1); - for ($i=0; $i<$bits; ++$i) { - if ($num & $mask) { - $bstream[$i] = 1; - } else { - $bstream[$i] = 0; - } - $mask = $mask >> 1; - } - return $bstream; - } - - /** - * Return new bitstream from bytes - * @param $size (int) size - * @param $data (array) bytes - * @return array bitstream - */ - protected function newFromBytes($size, $data) { - $bstream = $this->allocate($size * 8); - $p=0; - for ($i=0; $i<$size; ++$i) { - $mask = 0x80; - for ($j=0; $j<8; ++$j) { - if ($data[$i] & $mask) { - $bstream[$p] = 1; - } else { - $bstream[$p] = 0; - } - $p++; - $mask = $mask >> 1; - } - } - return $bstream; - } - - /** - * Append one bitstream to another - * @param $bitstream (array) original bitstream - * @param $append (array) bitstream to append - * @return array bitstream - */ - protected function appendBitstream($bitstream, $append) { - if ((!is_array($append)) OR (count($append) == 0)) { - return $bitstream; - } - if (count($bitstream) == 0) { - return $append; - } - return array_values(array_merge($bitstream, $append)); - } - - /** - * Append one bitstream created from number to another - * @param $bitstream (array) original bitstream - * @param $bits (int) number of bits - * @param $num (int) number - * @return array bitstream - */ - protected function appendNum($bitstream, $bits, $num) { - if ($bits == 0) { - return 0; - } - $b = $this->newFromNum($bits, $num); - return $this->appendBitstream($bitstream, $b); - } - - /** - * Append one bitstream created from bytes to another - * @param $bitstream (array) original bitstream - * @param $size (int) size - * @param $data (array) bytes - * @return array bitstream - */ - protected function appendBytes($bitstream, $size, $data) { - if ($size == 0) { - return 0; - } - $b = $this->newFromBytes($size, $data); - return $this->appendBitstream($bitstream, $b); - } - - /** - * Convert bitstream to bytes - * @param $bstream (array) original bitstream - * @return array of bytes - */ - protected function bitstreamToByte($bstream) { - if (is_null($bstream)) { - return null; - } - $size = count($bstream); - if ($size == 0) { - return array(); - } - $data = array_fill(0, (int)(($size + 7) / 8), 0); - $bytes = (int)($size / 8); - $p = 0; - for ($i=0; $i<$bytes; $i++) { - $v = 0; - for ($j=0; $j<8; $j++) { - $v = $v << 1; - $v |= $bstream[$p]; - $p++; - } - $data[$i] = $v; - } - if ($size & 7) { - $v = 0; - for ($j=0; $j<($size & 7); $j++) { - $v = $v << 1; - $v |= $bstream[$p]; - $p++; - } - $data[$bytes] = $v; - } - return $data; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - // QRspec - - /** - * Replace a value on the array at the specified position - * @param $srctab (array) - * @param $x (int) X position - * @param $y (int) Y position - * @param $repl (string) value to replace - * @param $replLen (int) length of the repl string - * @return array srctab - */ - protected function qrstrset($srctab, $x, $y, $repl, $replLen=false) { - $srctab[$y] = substr_replace($srctab[$y], ($replLen !== false)?substr($repl,0,$replLen):$repl, $x, ($replLen !== false)?$replLen:strlen($repl)); - return $srctab; - } - - /** - * Return maximum data code length (bytes) for the version. - * @param $version (int) version - * @param $level (int) error correction level - * @return int maximum size (bytes) - */ - protected function getDataLength($version, $level) { - return $this->capacity[$version][QRCAP_WORDS] - $this->capacity[$version][QRCAP_EC][$level]; - } - - /** - * Return maximum error correction code length (bytes) for the version. - * @param $version (int) version - * @param $level (int) error correction level - * @return int ECC size (bytes) - */ - protected function getECCLength($version, $level){ - return $this->capacity[$version][QRCAP_EC][$level]; - } - - /** - * Return the width of the symbol for the version. - * @param $version (int) version - * @return int width - */ - protected function getWidth($version) { - return $this->capacity[$version][QRCAP_WIDTH]; - } - - /** - * Return the numer of remainder bits. - * @param $version (int) version - * @return int number of remainder bits - */ - protected function getRemainder($version) { - return $this->capacity[$version][QRCAP_REMINDER]; - } - - /** - * Return a version number that satisfies the input code length. - * @param $size (int) input code length (bytes) - * @param $level (int) error correction level - * @return int version number - */ - protected function getMinimumVersion($size, $level) { - for ($i = 1; $i <= QRSPEC_VERSION_MAX; ++$i) { - $words = ($this->capacity[$i][QRCAP_WORDS] - $this->capacity[$i][QRCAP_EC][$level]); - if ($words >= $size) { - return $i; - } - } - // the size of input data is greater than QR capacity, try to lover the error correction mode - return -1; - } - - /** - * Return the size of length indicator for the mode and version. - * @param $mode (int) encoding mode - * @param $version (int) version - * @return int the size of the appropriate length indicator (bits). - */ - protected function lengthIndicator($mode, $version) { - if ($mode == QR_MODE_ST) { - return 0; - } - if ($version <= 9) { - $l = 0; - } elseif ($version <= 26) { - $l = 1; - } else { - $l = 2; - } - return $this->lengthTableBits[$mode][$l]; - } - - /** - * Return the maximum length for the mode and version. - * @param $mode (int) encoding mode - * @param $version (int) version - * @return int the maximum length (bytes) - */ - protected function maximumWords($mode, $version) { - if ($mode == QR_MODE_ST) { - return 3; - } - if ($version <= 9) { - $l = 0; - } else if ($version <= 26) { - $l = 1; - } else { - $l = 2; - } - $bits = $this->lengthTableBits[$mode][$l]; - $words = (1 << $bits) - 1; - if ($mode == QR_MODE_KJ) { - $words *= 2; // the number of bytes is required - } - return $words; - } - - /** - * Return an array of ECC specification. - * @param $version (int) version - * @param $level (int) error correction level - * @param $spec (array) an array of ECC specification contains as following: {# of type1 blocks, # of data code, # of ecc code, # of type2 blocks, # of data code} - * @return array spec - */ - protected function getEccSpec($version, $level, $spec) { - if (count($spec) < 5) { - $spec = array(0, 0, 0, 0, 0); - } - $b1 = $this->eccTable[$version][$level][0]; - $b2 = $this->eccTable[$version][$level][1]; - $data = $this->getDataLength($version, $level); - $ecc = $this->getECCLength($version, $level); - if ($b2 == 0) { - $spec[0] = $b1; - $spec[1] = (int)($data / $b1); - $spec[2] = (int)($ecc / $b1); - $spec[3] = 0; - $spec[4] = 0; - } else { - $spec[0] = $b1; - $spec[1] = (int)($data / ($b1 + $b2)); - $spec[2] = (int)($ecc / ($b1 + $b2)); - $spec[3] = $b2; - $spec[4] = $spec[1] + 1; - } - return $spec; - } - - /** - * Put an alignment marker. - * @param $frame (array) frame - * @param $ox (int) X center coordinate of the pattern - * @param $oy (int) Y center coordinate of the pattern - * @return array frame - */ - protected function putAlignmentMarker($frame, $ox, $oy) { - $finder = array( - "\xa1\xa1\xa1\xa1\xa1", - "\xa1\xa0\xa0\xa0\xa1", - "\xa1\xa0\xa1\xa0\xa1", - "\xa1\xa0\xa0\xa0\xa1", - "\xa1\xa1\xa1\xa1\xa1" - ); - $yStart = $oy - 2; - $xStart = $ox - 2; - for ($y=0; $y < 5; $y++) { - $frame = $this->qrstrset($frame, $xStart, $yStart+$y, $finder[$y]); - } - return $frame; - } - - /** - * Put an alignment pattern. - * @param $version (int) version - * @param $frame (array) frame - * @param $width (int) width - * @return array frame - */ - protected function putAlignmentPattern($version, $frame, $width) { - if ($version < 2) { - return $frame; - } - $d = $this->alignmentPattern[$version][1] - $this->alignmentPattern[$version][0]; - if ($d < 0) { - $w = 2; - } else { - $w = (int)(($width - $this->alignmentPattern[$version][0]) / $d + 2); - } - if ($w * $w - 3 == 1) { - $x = $this->alignmentPattern[$version][0]; - $y = $this->alignmentPattern[$version][0]; - $frame = $this->putAlignmentMarker($frame, $x, $y); - return $frame; - } - $cx = $this->alignmentPattern[$version][0]; - $wo = $w - 1; - for ($x=1; $x < $wo; ++$x) { - $frame = $this->putAlignmentMarker($frame, 6, $cx); - $frame = $this->putAlignmentMarker($frame, $cx, 6); - $cx += $d; - } - $cy = $this->alignmentPattern[$version][0]; - for ($y=0; $y < $wo; ++$y) { - $cx = $this->alignmentPattern[$version][0]; - for ($x=0; $x < $wo; ++$x) { - $frame = $this->putAlignmentMarker($frame, $cx, $cy); - $cx += $d; - } - $cy += $d; - } - return $frame; - } - - /** - * Return BCH encoded version information pattern that is used for the symbol of version 7 or greater. Use lower 18 bits. - * @param $version (int) version - * @return BCH encoded version information pattern - */ - protected function getVersionPattern($version) { - if (($version < 7) OR ($version > QRSPEC_VERSION_MAX)) { - return 0; - } - return $this->versionPattern[($version - 7)]; - } - - /** - * Return BCH encoded format information pattern. - * @param $mask (array) - * @param $level (int) error correction level - * @return BCH encoded format information pattern - */ - protected function getFormatInfo($mask, $level) { - if (($mask < 0) OR ($mask > 7)) { - return 0; - } - if (($level < 0) OR ($level > 3)) { - return 0; - } - return $this->formatInfo[$level][$mask]; - } - - /** - * Put a finder pattern. - * @param $frame (array) frame - * @param $ox (int) X center coordinate of the pattern - * @param $oy (int) Y center coordinate of the pattern - * @return array frame - */ - protected function putFinderPattern($frame, $ox, $oy) { - $finder = array( - "\xc1\xc1\xc1\xc1\xc1\xc1\xc1", - "\xc1\xc0\xc0\xc0\xc0\xc0\xc1", - "\xc1\xc0\xc1\xc1\xc1\xc0\xc1", - "\xc1\xc0\xc1\xc1\xc1\xc0\xc1", - "\xc1\xc0\xc1\xc1\xc1\xc0\xc1", - "\xc1\xc0\xc0\xc0\xc0\xc0\xc1", - "\xc1\xc1\xc1\xc1\xc1\xc1\xc1" - ); - for ($y=0; $y < 7; $y++) { - $frame = $this->qrstrset($frame, $ox, ($oy + $y), $finder[$y]); - } - return $frame; - } - - /** - * Return a copy of initialized frame. - * @param $version (int) version - * @return Array of unsigned char. - */ - protected function createFrame($version) { - $width = $this->capacity[$version][QRCAP_WIDTH]; - $frameLine = str_repeat ("\0", $width); - $frame = array_fill(0, $width, $frameLine); - // Finder pattern - $frame = $this->putFinderPattern($frame, 0, 0); - $frame = $this->putFinderPattern($frame, $width - 7, 0); - $frame = $this->putFinderPattern($frame, 0, $width - 7); - // Separator - $yOffset = $width - 7; - for ($y=0; $y < 7; ++$y) { - $frame[$y][7] = "\xc0"; - $frame[$y][$width - 8] = "\xc0"; - $frame[$yOffset][7] = "\xc0"; - ++$yOffset; - } - $setPattern = str_repeat("\xc0", 8); - $frame = $this->qrstrset($frame, 0, 7, $setPattern); - $frame = $this->qrstrset($frame, $width-8, 7, $setPattern); - $frame = $this->qrstrset($frame, 0, $width - 8, $setPattern); - // Format info - $setPattern = str_repeat("\x84", 9); - $frame = $this->qrstrset($frame, 0, 8, $setPattern); - $frame = $this->qrstrset($frame, $width - 8, 8, $setPattern, 8); - $yOffset = $width - 8; - for ($y=0; $y < 8; ++$y,++$yOffset) { - $frame[$y][8] = "\x84"; - $frame[$yOffset][8] = "\x84"; - } - // Timing pattern - $wo = $width - 15; - for ($i=1; $i < $wo; ++$i) { - $frame[6][7+$i] = chr(0x90 | ($i & 1)); - $frame[7+$i][6] = chr(0x90 | ($i & 1)); - } - // Alignment pattern - $frame = $this->putAlignmentPattern($version, $frame, $width); - // Version information - if ($version >= 7) { - $vinf = $this->getVersionPattern($version); - $v = $vinf; - for ($x=0; $x<6; ++$x) { - for ($y=0; $y<3; ++$y) { - $frame[($width - 11)+$y][$x] = chr(0x88 | ($v & 1)); - $v = $v >> 1; - } - } - $v = $vinf; - for ($y=0; $y<6; ++$y) { - for ($x=0; $x<3; ++$x) { - $frame[$y][$x+($width - 11)] = chr(0x88 | ($v & 1)); - $v = $v >> 1; - } - } - } - // and a little bit... - $frame[$width - 8][8] = "\x81"; - return $frame; - } - - /** - * Set new frame for the specified version. - * @param $version (int) version - * @return Array of unsigned char. - */ - protected function newFrame($version) { - if (($version < 1) OR ($version > QRSPEC_VERSION_MAX)) { - return NULL; - } - if (!isset($this->frames[$version])) { - $this->frames[$version] = $this->createFrame($version); - } - if (is_null($this->frames[$version])) { - return NULL; - } - return $this->frames[$version]; - } - - /** - * Return block number 0 - * @param $spec (array) - * @return int value - */ - protected function rsBlockNum($spec) { - return ($spec[0] + $spec[3]); - } - - /** - * Return block number 1 - * @param $spec (array) - * @return int value - */ - protected function rsBlockNum1($spec) { - return $spec[0]; - } - - /** - * Return data codes 1 - * @param $spec (array) - * @return int value - */ - protected function rsDataCodes1($spec) { - return $spec[1]; - } - - /** - * Return ecc codes 1 - * @param $spec (array) - * @return int value - */ - protected function rsEccCodes1($spec) { - return $spec[2]; - } - - /** - * Return block number 2 - * @param $spec (array) - * @return int value - */ - protected function rsBlockNum2($spec) { - return $spec[3]; - } - - /** - * Return data codes 2 - * @param $spec (array) - * @return int value - */ - protected function rsDataCodes2($spec) { - return $spec[4]; - } - - /** - * Return ecc codes 2 - * @param $spec (array) - * @return int value - */ - protected function rsEccCodes2($spec) { - return $spec[2]; - } - - /** - * Return data length - * @param $spec (array) - * @return int value - */ - protected function rsDataLength($spec) { - return ($spec[0] * $spec[1]) + ($spec[3] * $spec[4]); - } - - /** - * Return ecc length - * @param $spec (array) - * @return int value - */ - protected function rsEccLength($spec) { - return ($spec[0] + $spec[3]) * $spec[2]; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - // QRrs - - /** - * Initialize a Reed-Solomon codec and add it to existing rsitems - * @param $symsize (int) symbol size, bits - * @param $gfpoly (int) Field generator polynomial coefficients - * @param $fcr (int) first root of RS code generator polynomial, index form - * @param $prim (int) primitive element to generate polynomial roots - * @param $nroots (int) RS code generator polynomial degree (number of roots) - * @param $pad (int) padding bytes at front of shortened block - * @return array Array of RS values:
    • mm = Bits per symbol;
    • nn = Symbols per block;
    • alpha_to = log lookup table array;
    • index_of = Antilog lookup table array;
    • genpoly = Generator polynomial array;
    • nroots = Number of generator;
    • roots = number of parity symbols;
    • fcr = First consecutive root, index form;
    • prim = Primitive element, index form;
    • iprim = prim-th root of 1, index form;
    • pad = Padding bytes in shortened block;
    • gfpoly
    . - */ - protected function init_rs($symsize, $gfpoly, $fcr, $prim, $nroots, $pad) { - foreach ($this->rsitems as $rs) { - if (($rs['pad'] != $pad) OR ($rs['nroots'] != $nroots) OR ($rs['mm'] != $symsize) - OR ($rs['gfpoly'] != $gfpoly) OR ($rs['fcr'] != $fcr) OR ($rs['prim'] != $prim)) { - continue; - } - return $rs; - } - $rs = $this->init_rs_char($symsize, $gfpoly, $fcr, $prim, $nroots, $pad); - array_unshift($this->rsitems, $rs); - return $rs; - } - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - // QRrsItem - - /** - * modnn - * @param $rs (array) RS values - * @param $x (int) X position - * @return int X osition - */ - protected function modnn($rs, $x) { - while ($x >= $rs['nn']) { - $x -= $rs['nn']; - $x = ($x >> $rs['mm']) + ($x & $rs['nn']); - } - return $x; - } - - /** - * Initialize a Reed-Solomon codec and returns an array of values. - * @param $symsize (int) symbol size, bits - * @param $gfpoly (int) Field generator polynomial coefficients - * @param $fcr (int) first root of RS code generator polynomial, index form - * @param $prim (int) primitive element to generate polynomial roots - * @param $nroots (int) RS code generator polynomial degree (number of roots) - * @param $pad (int) padding bytes at front of shortened block - * @return array Array of RS values:
    • mm = Bits per symbol;
    • nn = Symbols per block;
    • alpha_to = log lookup table array;
    • index_of = Antilog lookup table array;
    • genpoly = Generator polynomial array;
    • nroots = Number of generator;
    • roots = number of parity symbols;
    • fcr = First consecutive root, index form;
    • prim = Primitive element, index form;
    • iprim = prim-th root of 1, index form;
    • pad = Padding bytes in shortened block;
    • gfpoly
    . - */ - protected function init_rs_char($symsize, $gfpoly, $fcr, $prim, $nroots, $pad) { - // Based on Reed solomon encoder by Phil Karn, KA9Q (GNU-LGPLv2) - $rs = null; - // Check parameter ranges - if (($symsize < 0) OR ($symsize > 8)) { - return $rs; - } - if (($fcr < 0) OR ($fcr >= (1<<$symsize))) { - return $rs; - } - if (($prim <= 0) OR ($prim >= (1<<$symsize))) { - return $rs; - } - if (($nroots < 0) OR ($nroots >= (1<<$symsize))) { - return $rs; - } - if (($pad < 0) OR ($pad >= ((1<<$symsize) -1 - $nroots))) { - return $rs; - } - $rs = array(); - $rs['mm'] = $symsize; - $rs['nn'] = (1 << $symsize) - 1; - $rs['pad'] = $pad; - $rs['alpha_to'] = array_fill(0, ($rs['nn'] + 1), 0); - $rs['index_of'] = array_fill(0, ($rs['nn'] + 1), 0); - // PHP style macro replacement ;) - $NN =& $rs['nn']; - $A0 =& $NN; - // Generate Galois field lookup tables - $rs['index_of'][0] = $A0; // log(zero) = -inf - $rs['alpha_to'][$A0] = 0; // alpha**-inf = 0 - $sr = 1; - for ($i=0; $i<$rs['nn']; ++$i) { - $rs['index_of'][$sr] = $i; - $rs['alpha_to'][$i] = $sr; - $sr <<= 1; - if ($sr & (1 << $symsize)) { - $sr ^= $gfpoly; - } - $sr &= $rs['nn']; - } - if ($sr != 1) { - // field generator polynomial is not primitive! - return NULL; - } - // Form RS code generator polynomial from its roots - $rs['genpoly'] = array_fill(0, ($nroots + 1), 0); - $rs['fcr'] = $fcr; - $rs['prim'] = $prim; - $rs['nroots'] = $nroots; - $rs['gfpoly'] = $gfpoly; - // Find prim-th root of 1, used in decoding - for ($iprim=1; ($iprim % $prim) != 0; $iprim += $rs['nn']) { - ; // intentional empty-body loop! - } - $rs['iprim'] = (int)($iprim / $prim); - $rs['genpoly'][0] = 1; - for ($i = 0,$root=$fcr*$prim; $i < $nroots; $i++, $root += $prim) { - $rs['genpoly'][$i+1] = 1; - // Multiply rs->genpoly[] by @**(root + x) - for ($j = $i; $j > 0; --$j) { - if ($rs['genpoly'][$j] != 0) { - $rs['genpoly'][$j] = $rs['genpoly'][$j-1] ^ $rs['alpha_to'][$this->modnn($rs, $rs['index_of'][$rs['genpoly'][$j]] + $root)]; - } else { - $rs['genpoly'][$j] = $rs['genpoly'][$j-1]; - } - } - // rs->genpoly[0] can never be zero - $rs['genpoly'][0] = $rs['alpha_to'][$this->modnn($rs, $rs['index_of'][$rs['genpoly'][0]] + $root)]; - } - // convert rs->genpoly[] to index form for quicker encoding - for ($i = 0; $i <= $nroots; ++$i) { - $rs['genpoly'][$i] = $rs['index_of'][$rs['genpoly'][$i]]; - } - return $rs; - } - - /** - * Encode a Reed-Solomon codec and returns the parity array - * @param $rs (array) RS values - * @param $data (array) data - * @param $parity (array) parity - * @return parity array - */ - protected function encode_rs_char($rs, $data, $parity) { - $MM =& $rs['mm']; // bits per symbol - $NN =& $rs['nn']; // the total number of symbols in a RS block - $ALPHA_TO =& $rs['alpha_to']; // the address of an array of NN elements to convert Galois field elements in index (log) form to polynomial form - $INDEX_OF =& $rs['index_of']; // the address of an array of NN elements to convert Galois field elements in polynomial form to index (log) form - $GENPOLY =& $rs['genpoly']; // an array of NROOTS+1 elements containing the generator polynomial in index form - $NROOTS =& $rs['nroots']; // the number of roots in the RS code generator polynomial, which is the same as the number of parity symbols in a block - $FCR =& $rs['fcr']; // first consecutive root, index form - $PRIM =& $rs['prim']; // primitive element, index form - $IPRIM =& $rs['iprim']; // prim-th root of 1, index form - $PAD =& $rs['pad']; // the number of pad symbols in a block - $A0 =& $NN; - $parity = array_fill(0, $NROOTS, 0); - for ($i=0; $i < ($NN - $NROOTS - $PAD); $i++) { - $feedback = $INDEX_OF[$data[$i] ^ $parity[0]]; - if ($feedback != $A0) { - // feedback term is non-zero - // This line is unnecessary when GENPOLY[NROOTS] is unity, as it must - // always be for the polynomials constructed by init_rs() - $feedback = $this->modnn($rs, $NN - $GENPOLY[$NROOTS] + $feedback); - for ($j=1; $j < $NROOTS; ++$j) { - $parity[$j] ^= $ALPHA_TO[$this->modnn($rs, $feedback + $GENPOLY[($NROOTS - $j)])]; - } - } - // Shift - array_shift($parity); - if ($feedback != $A0) { - array_push($parity, $ALPHA_TO[$this->modnn($rs, $feedback + $GENPOLY[0])]); - } else { - array_push($parity, 0); - } - } - return $parity; - } - -} // end QRcode class - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/tcpdf_colors.php b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/tcpdf_colors.php deleted file mode 100644 index 27fb7af..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/tcpdf_colors.php +++ /dev/null @@ -1,462 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : Array of WEB safe colors -// -//============================================================+ - -/** - * @file - * PHP color class for TCPDF - * @author Nicola Asuni - * @package com.tecnick.tcpdf - */ - -/** - * @class TCPDF_COLORS - * PHP color class for TCPDF - * @package com.tecnick.tcpdf - * @version 1.0.004 - * @author Nicola Asuni - info@tecnick.com - */ -class TCPDF_COLORS { - - /** - * Array of WEB safe colors - * @public static - */ - public static $webcolor = array ( - 'aliceblue' => 'f0f8ff', - 'antiquewhite' => 'faebd7', - 'aqua' => '00ffff', - 'aquamarine' => '7fffd4', - 'azure' => 'f0ffff', - 'beige' => 'f5f5dc', - 'bisque' => 'ffe4c4', - 'black' => '000000', - 'blanchedalmond' => 'ffebcd', - 'blue' => '0000ff', - 'blueviolet' => '8a2be2', - 'brown' => 'a52a2a', - 'burlywood' => 'deb887', - 'cadetblue' => '5f9ea0', - 'chartreuse' => '7fff00', - 'chocolate' => 'd2691e', - 'coral' => 'ff7f50', - 'cornflowerblue' => '6495ed', - 'cornsilk' => 'fff8dc', - 'crimson' => 'dc143c', - 'cyan' => '00ffff', - 'darkblue' => '00008b', - 'darkcyan' => '008b8b', - 'darkgoldenrod' => 'b8860b', - 'dkgray' => 'a9a9a9', - 'darkgray' => 'a9a9a9', - 'darkgrey' => 'a9a9a9', - 'darkgreen' => '006400', - 'darkkhaki' => 'bdb76b', - 'darkmagenta' => '8b008b', - 'darkolivegreen' => '556b2f', - 'darkorange' => 'ff8c00', - 'darkorchid' => '9932cc', - 'darkred' => '8b0000', - 'darksalmon' => 'e9967a', - 'darkseagreen' => '8fbc8f', - 'darkslateblue' => '483d8b', - 'darkslategray' => '2f4f4f', - 'darkslategrey' => '2f4f4f', - 'darkturquoise' => '00ced1', - 'darkviolet' => '9400d3', - 'deeppink' => 'ff1493', - 'deepskyblue' => '00bfff', - 'dimgray' => '696969', - 'dimgrey' => '696969', - 'dodgerblue' => '1e90ff', - 'firebrick' => 'b22222', - 'floralwhite' => 'fffaf0', - 'forestgreen' => '228b22', - 'fuchsia' => 'ff00ff', - 'gainsboro' => 'dcdcdc', - 'ghostwhite' => 'f8f8ff', - 'gold' => 'ffd700', - 'goldenrod' => 'daa520', - 'gray' => '808080', - 'grey' => '808080', - 'green' => '008000', - 'greenyellow' => 'adff2f', - 'honeydew' => 'f0fff0', - 'hotpink' => 'ff69b4', - 'indianred' => 'cd5c5c', - 'indigo' => '4b0082', - 'ivory' => 'fffff0', - 'khaki' => 'f0e68c', - 'lavender' => 'e6e6fa', - 'lavenderblush' => 'fff0f5', - 'lawngreen' => '7cfc00', - 'lemonchiffon' => 'fffacd', - 'lightblue' => 'add8e6', - 'lightcoral' => 'f08080', - 'lightcyan' => 'e0ffff', - 'lightgoldenrodyellow' => 'fafad2', - 'ltgray' => 'd3d3d3', - 'lightgray' => 'd3d3d3', - 'lightgrey' => 'd3d3d3', - 'lightgreen' => '90ee90', - 'lightpink' => 'ffb6c1', - 'lightsalmon' => 'ffa07a', - 'lightseagreen' => '20b2aa', - 'lightskyblue' => '87cefa', - 'lightslategray' => '778899', - 'lightslategrey' => '778899', - 'lightsteelblue' => 'b0c4de', - 'lightyellow' => 'ffffe0', - 'lime' => '00ff00', - 'limegreen' => '32cd32', - 'linen' => 'faf0e6', - 'magenta' => 'ff00ff', - 'maroon' => '800000', - 'mediumaquamarine' => '66cdaa', - 'mediumblue' => '0000cd', - 'mediumorchid' => 'ba55d3', - 'mediumpurple' => '9370d8', - 'mediumseagreen' => '3cb371', - 'mediumslateblue' => '7b68ee', - 'mediumspringgreen' => '00fa9a', - 'mediumturquoise' => '48d1cc', - 'mediumvioletred' => 'c71585', - 'midnightblue' => '191970', - 'mintcream' => 'f5fffa', - 'mistyrose' => 'ffe4e1', - 'moccasin' => 'ffe4b5', - 'navajowhite' => 'ffdead', - 'navy' => '000080', - 'oldlace' => 'fdf5e6', - 'olive' => '808000', - 'olivedrab' => '6b8e23', - 'orange' => 'ffa500', - 'orangered' => 'ff4500', - 'orchid' => 'da70d6', - 'palegoldenrod' => 'eee8aa', - 'palegreen' => '98fb98', - 'paleturquoise' => 'afeeee', - 'palevioletred' => 'd87093', - 'papayawhip' => 'ffefd5', - 'peachpuff' => 'ffdab9', - 'peru' => 'cd853f', - 'pink' => 'ffc0cb', - 'plum' => 'dda0dd', - 'powderblue' => 'b0e0e6', - 'purple' => '800080', - 'red' => 'ff0000', - 'rosybrown' => 'bc8f8f', - 'royalblue' => '4169e1', - 'saddlebrown' => '8b4513', - 'salmon' => 'fa8072', - 'sandybrown' => 'f4a460', - 'seagreen' => '2e8b57', - 'seashell' => 'fff5ee', - 'sienna' => 'a0522d', - 'silver' => 'c0c0c0', - 'skyblue' => '87ceeb', - 'slateblue' => '6a5acd', - 'slategray' => '708090', - 'slategrey' => '708090', - 'snow' => 'fffafa', - 'springgreen' => '00ff7f', - 'steelblue' => '4682b4', - 'tan' => 'd2b48c', - 'teal' => '008080', - 'thistle' => 'd8bfd8', - 'tomato' => 'ff6347', - 'turquoise' => '40e0d0', - 'violet' => 'ee82ee', - 'wheat' => 'f5deb3', - 'white' => 'ffffff', - 'whitesmoke' => 'f5f5f5', - 'yellow' => 'ffff00', - 'yellowgreen' => '9acd32' - ); // end of web colors - - /** - * Array of valid JavaScript color names - * @public static - */ - public static $jscolor = array ('transparent', 'black', 'white', 'red', 'green', 'blue', 'cyan', 'magenta', 'yellow', 'dkGray', 'gray', 'ltGray'); - - /** - * Array of Spot colors (C,M,Y,K,name) - * Color keys must be in lowercase and without spaces. - * As long as no open standard for spot colours exists, you have to buy a colour book by one of the colour manufacturers and insert the values and names of spot colours directly. - * Common industry standard spot colors are: ANPA-COLOR, DIC, FOCOLTONE, GCMI, HKS, PANTONE, TOYO, TRUMATCH. - * @public static - */ - public static $spotcolor = array ( - // special registration colors - 'none' => array( 0, 0, 0, 0, 'None'), - 'all' => array(100, 100, 100, 100, 'All'), - // standard CMYK colors - 'cyan' => array(100, 0, 0, 0, 'Cyan'), - 'magenta' => array( 0, 100, 0, 0, 'Magenta'), - 'yellow' => array( 0, 0, 100, 0, 'Yellow'), - 'key' => array( 0, 0, 0, 100, 'Key'), - // alias - 'white' => array( 0, 0, 0, 0, 'White'), - 'black' => array( 0, 0, 0, 100, 'Black'), - // standard RGB colors - 'red' => array( 0, 100, 100, 0, 'Red'), - 'green' => array(100, 0, 100, 0, 'Green'), - 'blue' => array(100, 100, 0, 0, 'Blue'), - // Add here standard spot colors or dynamically define them with AddSpotColor() - // ... - ); // end of spot colors - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /** - * Return the Spot color array. - * @param $name (string) Name of the spot color. - * @param $spotc (array) Reference to an array of spot colors. - * @return (array) Spot color array or false if not defined. - * @since 5.9.125 (2011-10-03) - * @public static - */ - public static function getSpotColor($name, &$spotc) { - if (isset($spotc[$name])) { - return $spotc[$name]; - } - $color = preg_replace('/[\s]*/', '', $name); // remove extra spaces - $color = strtolower($color); - if (isset(self::$spotcolor[$color])) { - if (!isset($spotc[$name])) { - $i = (1 + count($spotc)); - $spotc[$name] = array('C' => self::$spotcolor[$color][0], 'M' => self::$spotcolor[$color][1], 'Y' => self::$spotcolor[$color][2], 'K' => self::$spotcolor[$color][3], 'name' => self::$spotcolor[$color][4], 'i' => $i); - } - return $spotc[self::$spotcolor[$color][4]]; - } - return false; - } - - /** - * Returns an array (RGB or CMYK) from an html color name, or a six-digit (i.e. #3FE5AA), or three-digit (i.e. #7FF) hexadecimal color, or a javascript color array, or javascript color name. - * @param $hcolor (string) HTML color. - * @param $spotc (array) Reference to an array of spot colors. - * @param $defcol (array) Color to return in case of error. - * @return array RGB or CMYK color, or false in case of error. - * @public static - */ - public static function convertHTMLColorToDec($hcolor, &$spotc, $defcol=array('R'=>128,'G'=>128,'B'=>128)) { - $color = preg_replace('/[\s]*/', '', $hcolor); // remove extra spaces - $color = strtolower($color); - // check for javascript color array syntax - if (strpos($color, '[') !== false) { - if (preg_match('/[\[][\"\'](t|g|rgb|cmyk)[\"\'][\,]?([0-9\.]*)[\,]?([0-9\.]*)[\,]?([0-9\.]*)[\,]?([0-9\.]*)[\]]/', $color, $m) > 0) { - $returncolor = array(); - switch ($m[1]) { - case 'cmyk': { - // RGB - $returncolor['C'] = max(0, min(100, (floatval($m[2]) * 100))); - $returncolor['M'] = max(0, min(100, (floatval($m[3]) * 100))); - $returncolor['Y'] = max(0, min(100, (floatval($m[4]) * 100))); - $returncolor['K'] = max(0, min(100, (floatval($m[5]) * 100))); - break; - } - case 'rgb': { - // RGB - $returncolor['R'] = max(0, min(255, (floatval($m[2]) * 255))); - $returncolor['G'] = max(0, min(255, (floatval($m[3]) * 255))); - $returncolor['B'] = max(0, min(255, (floatval($m[4]) * 255))); - break; - } - case 'g': { - // grayscale - $returncolor['G'] = max(0, min(255, (floatval($m[2]) * 255))); - break; - } - case 't': - default: { - // transparent (empty array) - break; - } - } - return $returncolor; - } - } elseif ((substr($color, 0, 4) != 'cmyk') AND (substr($color, 0, 3) != 'rgb') AND (($dotpos = strpos($color, '.')) !== false)) { - // remove class parent (i.e.: color.red) - $color = substr($color, ($dotpos + 1)); - if ($color == 'transparent') { - // transparent (empty array) - return array(); - } - } - if (strlen($color) == 0) { - return $defcol; - } - // RGB ARRAY - if (substr($color, 0, 3) == 'rgb') { - $codes = substr($color, 4); - $codes = str_replace(')', '', $codes); - $returncolor = explode(',', $codes); - foreach ($returncolor as $key => $val) { - if (strpos($val, '%') > 0) { - // percentage - $returncolor[$key] = (255 * intval($val) / 100); - } else { - $returncolor[$key] = intval($val); - } - // normalize value - $returncolor[$key] = max(0, min(255, $returncolor[$key])); - } - return $returncolor; - } - // CMYK ARRAY - if (substr($color, 0, 4) == 'cmyk') { - $codes = substr($color, 5); - $codes = str_replace(')', '', $codes); - $returncolor = explode(',', $codes); - foreach ($returncolor as $key => $val) { - if (strpos($val, '%') !== false) { - // percentage - $returncolor[$key] = (100 * intval($val) / 100); - } else { - $returncolor[$key] = intval($val); - } - // normalize value - $returncolor[$key] = max(0, min(100, $returncolor[$key])); - } - return $returncolor; - } - if ($color[0] != '#') { - // COLOR NAME - if (isset(self::$webcolor[$color])) { - // web color - $color_code = self::$webcolor[$color]; - } else { - // spot color - $returncolor = self::getSpotColor($hcolor, $spotc); - if ($returncolor === false) { - $returncolor = $defcol; - } - return $returncolor; - } - } else { - $color_code = substr($color, 1); - } - // HEXADECIMAL REPRESENTATION - switch (strlen($color_code)) { - case 3: { - // 3-digit RGB hexadecimal representation - $r = substr($color_code, 0, 1); - $g = substr($color_code, 1, 1); - $b = substr($color_code, 2, 1); - $returncolor = array(); - $returncolor['R'] = max(0, min(255, hexdec($r.$r))); - $returncolor['G'] = max(0, min(255, hexdec($g.$g))); - $returncolor['B'] = max(0, min(255, hexdec($b.$b))); - break; - } - case 6: { - // 6-digit RGB hexadecimal representation - $returncolor = array(); - $returncolor['R'] = max(0, min(255, hexdec(substr($color_code, 0, 2)))); - $returncolor['G'] = max(0, min(255, hexdec(substr($color_code, 2, 2)))); - $returncolor['B'] = max(0, min(255, hexdec(substr($color_code, 4, 2)))); - break; - } - case 8: { - // 8-digit CMYK hexadecimal representation - $returncolor = array(); - $returncolor['C'] = max(0, min(100, round(hexdec(substr($color_code, 0, 2)) / 2.55))); - $returncolor['M'] = max(0, min(100, round(hexdec(substr($color_code, 2, 2)) / 2.55))); - $returncolor['Y'] = max(0, min(100, round(hexdec(substr($color_code, 4, 2)) / 2.55))); - $returncolor['K'] = max(0, min(100, round(hexdec(substr($color_code, 6, 2)) / 2.55))); - break; - } - default: { - $returncolor = $defcol; - break; - } - } - return $returncolor; - } - - /** - * Convert a color array into a string representation. - * @param $c (array) Array of colors. - * @return (string) The color array representation. - * @since 5.9.137 (2011-12-01) - * @public static - */ - public static function getColorStringFromArray($c) { - $c = array_values($c); - $color = '['; - switch (count($c)) { - case 4: { - // CMYK - $color .= sprintf('%F %F %F %F', (max(0, min(100, floatval($c[0]))) / 100), (max(0, min(100, floatval($c[1]))) / 100), (max(0, min(100, floatval($c[2]))) / 100), (max(0, min(100, floatval($c[3]))) / 100)); - break; - } - case 3: { - // RGB - $color .= sprintf('%F %F %F', (max(0, min(255, floatval($c[0]))) / 255), (max(0, min(255, floatval($c[1]))) / 255), (max(0, min(255, floatval($c[2]))) / 255)); - break; - } - case 1: { - // grayscale - $color .= sprintf('%F', (max(0, min(255, floatval($c[0]))) / 255)); - break; - } - } - $color .= ']'; - return $color; - } - - /** - * Convert color to javascript color. - * @param $color (string) color name or "#RRGGBB" - * @protected - * @since 2.1.002 (2008-02-12) - * @public static - */ - public static function _JScolor($color) { - if (substr($color, 0, 1) == '#') { - return sprintf("['RGB',%F,%F,%F]", (hexdec(substr($color, 1, 2)) / 255), (hexdec(substr($color, 3, 2)) / 255), (hexdec(substr($color, 5, 2)) / 255)); - } - if (!in_array($color, self::$jscolor)) { - // default transparent color - $color = $jscolor[0]; - } - return 'color.'.$color; - } - - -} // END OF TCPDF_COLORS CLASS - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/tcpdf_filters.php b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/tcpdf_filters.php deleted file mode 100644 index 3bb89c0..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/tcpdf_filters.php +++ /dev/null @@ -1,481 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : This is a PHP class for decoding common PDF filters (PDF 32000-2008 - 7.4 Filters). -// -//============================================================+ - -/** - * @file - * This is a PHP class for decoding common PDF filters (PDF 32000-2008 - 7.4 Filters).
    - * @package com.tecnick.tcpdf - * @author Nicola Asuni - * @version 1.0.001 - */ - -/** - * @class TCPDF_FILTERS - * This is a PHP class for decoding common PDF filters (PDF 32000-2008 - 7.4 Filters).
    - * @package com.tecnick.tcpdf - * @brief This is a PHP class for decoding common PDF filters. - * @version 1.0.001 - * @author Nicola Asuni - info@tecnick.com - */ -class TCPDF_FILTERS { - - /** - * Define a list of available filter decoders. - * @private static - */ - private static $available_filters = array('ASCIIHexDecode', 'ASCII85Decode', 'LZWDecode', 'FlateDecode', 'RunLengthDecode'); - -// ----------------------------------------------------------------------------- - - /** - * Get a list of available decoding filters. - * @return (array) Array of available filter decoders. - * @since 1.0.000 (2011-05-23) - * @public static - */ - public static function getAvailableFilters() { - return self::$available_filters; - } - - /** - * Decode data using the specified filter type. - * @param $filter (string) Filter name. - * @param $data (string) Data to decode. - * @return Decoded data string. - * @since 1.0.000 (2011-05-23) - * @public static - */ - public static function decodeFilter($filter, $data) { - switch ($filter) { - case 'ASCIIHexDecode': { - return self::decodeFilterASCIIHexDecode($data); - break; - } - case 'ASCII85Decode': { - return self::decodeFilterASCII85Decode($data); - break; - } - case 'LZWDecode': { - return self::decodeFilterLZWDecode($data); - break; - } - case 'FlateDecode': { - return self::decodeFilterFlateDecode($data); - break; - } - case 'RunLengthDecode': { - return self::decodeFilterRunLengthDecode($data); - break; - } - case 'CCITTFaxDecode': { - return self::decodeFilterCCITTFaxDecode($data); - break; - } - case 'JBIG2Decode': { - return self::decodeFilterJBIG2Decode($data); - break; - } - case 'DCTDecode': { - return self::decodeFilterDCTDecode($data); - break; - } - case 'JPXDecode': { - return self::decodeFilterJPXDecode($data); - break; - } - case 'Crypt': { - return self::decodeFilterCrypt($data); - break; - } - default: { - return self::decodeFilterStandard($data); - break; - } - } - } - - // --- FILTERS (PDF 32000-2008 - 7.4 Filters) ------------------------------ - - /** - * Standard - * Default decoding filter (leaves data unchanged). - * @param $data (string) Data to decode. - * @return Decoded data string. - * @since 1.0.000 (2011-05-23) - * @public static - */ - public static function decodeFilterStandard($data) { - return $data; - } - - /** - * ASCIIHexDecode - * Decodes data encoded in an ASCII hexadecimal representation, reproducing the original binary data. - * @param $data (string) Data to decode. - * @return Decoded data string. - * @since 1.0.000 (2011-05-23) - * @public static - */ - public static function decodeFilterASCIIHexDecode($data) { - // initialize string to return - $decoded = ''; - // all white-space characters shall be ignored - $data = preg_replace('/[\s]/', '', $data); - // check for EOD character: GREATER-THAN SIGN (3Eh) - $eod = strpos($data, '>'); - if ($eod !== false) { - // remove EOD and extra data (if any) - $data = substr($data, 0, $eod); - $eod = true; - } - // get data length - $data_length = strlen($data); - if (($data_length % 2) != 0) { - // odd number of hexadecimal digits - if ($eod) { - // EOD shall behave as if a 0 (zero) followed the last digit - $data = substr($data, 0, -1).'0'.substr($data, -1); - } else { - self::Error('decodeFilterASCIIHexDecode: invalid code'); - } - } - // check for invalid characters - if (preg_match('/[^a-fA-F\d]/', $data) > 0) { - self::Error('decodeFilterASCIIHexDecode: invalid code'); - } - // get one byte of binary data for each pair of ASCII hexadecimal digits - $decoded = pack('H*', $data); - return $decoded; - } - - /** - * ASCII85Decode - * Decodes data encoded in an ASCII base-85 representation, reproducing the original binary data. - * @param $data (string) Data to decode. - * @return Decoded data string. - * @since 1.0.000 (2011-05-23) - * @public static - */ - public static function decodeFilterASCII85Decode($data) { - // initialize string to return - $decoded = ''; - // all white-space characters shall be ignored - $data = preg_replace('/[\s]/', '', $data); - // remove start sequence 2-character sequence <~ (3Ch)(7Eh) - if (strpos($data, '<~') !== false) { - // remove EOD and extra data (if any) - $data = substr($data, 2); - } - // check for EOD: 2-character sequence ~> (7Eh)(3Eh) - $eod = strpos($data, '~>'); - if ($eod !== false) { - // remove EOD and extra data (if any) - $data = substr($data, 0, $eod); - } - // data length - $data_length = strlen($data); - // check for invalid characters - if (preg_match('/[^\x21-\x75,\x74]/', $data) > 0) { - self::Error('decodeFilterASCII85Decode: invalid code'); - } - // z sequence - $zseq = chr(0).chr(0).chr(0).chr(0); - // position inside a group of 4 bytes (0-3) - $group_pos = 0; - $tuple = 0; - $pow85 = array((85*85*85*85), (85*85*85), (85*85), 85, 1); - $last_pos = ($data_length - 1); - // for each byte - for ($i = 0; $i < $data_length; ++$i) { - // get char value - $char = ord($data[$i]); - if ($char == 122) { // 'z' - if ($group_pos == 0) { - $decoded .= $zseq; - } else { - self::Error('decodeFilterASCII85Decode: invalid code'); - } - } else { - // the value represented by a group of 5 characters should never be greater than 2^32 - 1 - $tuple += (($char - 33) * $pow85[$group_pos]); - if ($group_pos == 4) { - $decoded .= chr($tuple >> 24).chr($tuple >> 16).chr($tuple >> 8).chr($tuple); - $tuple = 0; - $group_pos = 0; - } else { - ++$group_pos; - } - } - } - if ($group_pos > 1) { - $tuple += $pow85[($group_pos - 1)]; - } - // last tuple (if any) - switch ($group_pos) { - case 4: { - $decoded .= chr($tuple >> 24).chr($tuple >> 16).chr($tuple >> 8); - break; - } - case 3: { - $decoded .= chr($tuple >> 24).chr($tuple >> 16); - break; - } - case 2: { - $decoded .= chr($tuple >> 24); - break; - } - case 1: { - self::Error('decodeFilterASCII85Decode: invalid code'); - break; - } - } - return $decoded; - } - - /** - * LZWDecode - * Decompresses data encoded using the LZW (Lempel-Ziv-Welch) adaptive compression method, reproducing the original text or binary data. - * @param $data (string) Data to decode. - * @return Decoded data string. - * @since 1.0.000 (2011-05-23) - * @public static - */ - public static function decodeFilterLZWDecode($data) { - // initialize string to return - $decoded = ''; - // data length - $data_length = strlen($data); - // convert string to binary string - $bitstring = ''; - for ($i = 0; $i < $data_length; ++$i) { - $bitstring .= sprintf('%08b', ord($data[$i])); - } - // get the number of bits - $data_length = strlen($bitstring); - // initialize code length in bits - $bitlen = 9; - // initialize dictionary index - $dix = 258; - // initialize the dictionary (with the first 256 entries). - $dictionary = array(); - for ($i = 0; $i < 256; ++$i) { - $dictionary[$i] = chr($i); - } - // previous val - $prev_index = 0; - // while we encounter EOD marker (257), read code_length bits - while (($data_length > 0) AND (($index = bindec(substr($bitstring, 0, $bitlen))) != 257)) { - // remove read bits from string - $bitstring = substr($bitstring, $bitlen); - // update number of bits - $data_length -= $bitlen; - if ($index == 256) { // clear-table marker - // reset code length in bits - $bitlen = 9; - // reset dictionary index - $dix = 258; - $prev_index = 256; - // reset the dictionary (with the first 256 entries). - $dictionary = array(); - for ($i = 0; $i < 256; ++$i) { - $dictionary[$i] = chr($i); - } - } elseif ($prev_index == 256) { - // first entry - $decoded .= $dictionary[$index]; - $prev_index = $index; - } else { - // check if index exist in the dictionary - if ($index < $dix) { - // index exist on dictionary - $decoded .= $dictionary[$index]; - $dic_val = $dictionary[$prev_index].$dictionary[$index][0]; - // store current index - $prev_index = $index; - } else { - // index do not exist on dictionary - $dic_val = $dictionary[$prev_index].$dictionary[$prev_index][0]; - $decoded .= $dic_val; - } - // update dictionary - $dictionary[$dix] = $dic_val; - ++$dix; - // change bit length by case - if ($dix == 2047) { - $bitlen = 12; - } elseif ($dix == 1023) { - $bitlen = 11; - } elseif ($dix == 511) { - $bitlen = 10; - } - } - } - return $decoded; - } - - /** - * FlateDecode - * Decompresses data encoded using the zlib/deflate compression method, reproducing the original text or binary data. - * @param $data (string) Data to decode. - * @return Decoded data string. - * @since 1.0.000 (2011-05-23) - * @public static - */ - public static function decodeFilterFlateDecode($data) { - // initialize string to return - $decoded = @gzuncompress($data); - if ($decoded === false) { - self::Error('decodeFilterFlateDecode: invalid code'); - } - return $decoded; - } - - /** - * RunLengthDecode - * Decompresses data encoded using a byte-oriented run-length encoding algorithm. - * @param $data (string) Data to decode. - * @since 1.0.000 (2011-05-23) - * @public static - */ - public static function decodeFilterRunLengthDecode($data) { - // initialize string to return - $decoded = ''; - // data length - $data_length = strlen($data); - $i = 0; - while($i < $data_length) { - // get current byte value - $byte = ord($data[$i]); - if ($byte == 128) { - // a length value of 128 denote EOD - break; - } elseif ($byte < 128) { - // if the length byte is in the range 0 to 127 - // the following length + 1 (1 to 128) bytes shall be copied literally during decompression - $decoded .= substr($data, ($i + 1), ($byte + 1)); - // move to next block - $i += ($byte + 2); - } else { - // if length is in the range 129 to 255, - // the following single byte shall be copied 257 - length (2 to 128) times during decompression - $decoded .= str_repeat($data[($i + 1)], (257 - $byte)); - // move to next block - $i += 2; - } - } - return $decoded; - } - - /** - * CCITTFaxDecode (NOT IMPLEMETED - RETURN AN EXCEPTION) - * Decompresses data encoded using the CCITT facsimile standard, reproducing the original data (typically monochrome image data at 1 bit per pixel). - * @param $data (string) Data to decode. - * @return Decoded data string. - * @since 1.0.000 (2011-05-23) - * @public static - */ - public static function decodeFilterCCITTFaxDecode($data) { - self::Error('~decodeFilterCCITTFaxDecode: this method has not been yet implemented'); - //return $data; - } - - /** - * JBIG2Decode (NOT IMPLEMETED - RETURN AN EXCEPTION) - * Decompresses data encoded using the JBIG2 standard, reproducing the original monochrome (1 bit per pixel) image data (or an approximation of that data). - * @param $data (string) Data to decode. - * @return Decoded data string. - * @since 1.0.000 (2011-05-23) - * @public static - */ - public static function decodeFilterJBIG2Decode($data) { - self::Error('~decodeFilterJBIG2Decode: this method has not been yet implemented'); - //return $data; - } - - /** - * DCTDecode (NOT IMPLEMETED - RETURN AN EXCEPTION) - * Decompresses data encoded using a DCT (discrete cosine transform) technique based on the JPEG standard, reproducing image sample data that approximates the original data. - * @param $data (string) Data to decode. - * @return Decoded data string. - * @since 1.0.000 (2011-05-23) - * @public static - */ - public static function decodeFilterDCTDecode($data) { - self::Error('~decodeFilterDCTDecode: this method has not been yet implemented'); - //return $data; - } - - /** - * JPXDecode (NOT IMPLEMETED - RETURN AN EXCEPTION) - * Decompresses data encoded using the wavelet-based JPEG2000 standard, reproducing the original image data. - * @param $data (string) Data to decode. - * @return Decoded data string. - * @since 1.0.000 (2011-05-23) - * @public static - */ - public static function decodeFilterJPXDecode($data) { - self::Error('~decodeFilterJPXDecode: this method has not been yet implemented'); - //return $data; - } - - /** - * Crypt (NOT IMPLEMETED - RETURN AN EXCEPTION) - * Decrypts data encrypted by a security handler, reproducing the data as it was before encryption. - * @param $data (string) Data to decode. - * @return Decoded data string. - * @since 1.0.000 (2011-05-23) - * @public static - */ - public static function decodeFilterCrypt($data) { - self::Error('~decodeFilterCrypt: this method has not been yet implemented'); - //return $data; - } - - // --- END FILTERS SECTION ------------------------------------------------- - - /** - * Throw an exception. - * @param $msg (string) The error message - * @since 1.0.000 (2011-05-23) - * @public static - */ - public static function Error($msg) { - throw new Exception('TCPDF_PARSER ERROR: '.$msg); - } - -} // END OF TCPDF_FILTERS CLASS - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/tcpdf_font_data.php b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/tcpdf_font_data.php deleted file mode 100644 index 974e72e..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/tcpdf_font_data.php +++ /dev/null @@ -1,18447 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : Unicode data and encoding maps for TCPDF. -// -//============================================================+ - -/** - * @file - * Unicode data and encoding maps for TCPDF. - * @author Nicola Asuni - * @package com.tecnick.tcpdf - */ - -/** - * @class TCPDF_FONT_DATA - * Unicode data and encoding maps for TCPDF. - * @package com.tecnick.tcpdf - * @version 1.0.001 - * @author Nicola Asuni - info@tecnick.com - */ -class TCPDF_FONT_DATA { - -/** - * Unicode code for Left-to-Right Mark. - * @public - */ -public static $uni_LRM = 8206; - -/** - * Unicode code for Right-to-Left Mark. - * @public - */ -public static $uni_RLM = 8207; - -/** - * Unicode code for Left-to-Right Embedding. - * @public - */ -public static $uni_LRE = 8234; - -/** - * Unicode code for Right-to-Left Embedding. - * @public - */ -public static $uni_RLE = 8235; - -/** - * Unicode code for Pop Directional Format. - * @public - */ -public static $uni_PDF = 8236; - -/** - * Unicode code for Left-to-Right Override. - * @public - */ -public static $uni_LRO = 8237; - -/** - * Unicode code for Right-to-Left Override. - * @public - */ -public static $uni_RLO = 8238; - -/** - * Pattern to test RTL (Righ-To-Left) strings using regular expressions. - * @public - */ -public static $uni_RE_PATTERN_RTL = "/( - \xD6\xBE # R - | \xD7[\x80\x83\x86\x90-\xAA\xB0-\xB4] # R - | \xDF[\x80-\xAA\xB4\xB5\xBA] # R - | \xE2\x80\x8F # R - | \xEF\xAC[\x9D\x9F\xA0-\xA8\xAA-\xB6\xB8-\xBC\xBE] # R - | \xEF\xAD[\x80\x81\x83\x84\x86-\x8F] # R - | \xF0\x90\xA0[\x80-\x85\x88\x8A-\xB5\xB7\xB8\xBC\xBF] # R - | \xF0\x90\xA4[\x80-\x99] # R - | \xF0\x90\xA8[\x80\x90-\x93\x95-\x97\x99-\xB3] # R - | \xF0\x90\xA9[\x80-\x87\x90-\x98] # R - | \xE2\x80[\xAB\xAE] # RLE & RLO - )/x"; - -/** - * Pattern to test Arabic strings using regular expressions. Source: http://www.w3.org/International/questions/qa-forms-utf-8 - * @public - */ -public static $uni_RE_PATTERN_ARABIC = "/( - \xD8[\x80-\x83\x8B\x8D\x9B\x9E\x9F\xA1-\xBA] # AL - | \xD9[\x80-\x8A\xAD-\xAF\xB1-\xBF] # AL - | \xDA[\x80-\xBF] # AL - | \xDB[\x80-\x95\x9D\xA5\xA6\xAE\xAF\xBA-\xBF] # AL - | \xDC[\x80-\x8D\x90\x92-\xAF] # AL - | \xDD[\x8D-\xAD] # AL - | \xDE[\x80-\xA5\xB1] # AL - | \xEF\xAD[\x90-\xBF] # AL - | \xEF\xAE[\x80-\xB1] # AL - | \xEF\xAF[\x93-\xBF] # AL - | \xEF[\xB0-\xB3][\x80-\xBF] # AL - | \xEF\xB4[\x80-\xBD] # AL - | \xEF\xB5[\x90-\xBF] # AL - | \xEF\xB6[\x80-\x8F\x92-\xBF] # AL - | \xEF\xB7[\x80-\x87\xB0-\xBC] # AL - | \xEF\xB9[\xB0-\xB4\xB6-\xBF] # AL - | \xEF\xBA[\x80-\xBF] # AL - | \xEF\xBB[\x80-\xBC] # AL - | \xD9[\xA0-\xA9\xAB\xAC] # AN - )/x"; - -/** - * Array of Unicode types. - * @public - */ -public static $uni_type = array( -0=>'BN', -1=>'BN', -2=>'BN', -3=>'BN', -4=>'BN', -5=>'BN', -6=>'BN', -7=>'BN', -8=>'BN', -9=>'S', -10=>'B', -11=>'S', -12=>'WS', -13=>'B', -14=>'BN', -15=>'BN', -16=>'BN', -17=>'BN', -18=>'BN', -19=>'BN', -20=>'BN', -21=>'BN', -22=>'BN', -23=>'BN', -24=>'BN', -25=>'BN', -26=>'BN', -27=>'BN', -28=>'B', -29=>'B', -30=>'B', -31=>'S', -32=>'WS', -33=>'ON', -34=>'ON', -35=>'ET', -36=>'ET', -37=>'ET', -38=>'ON', -39=>'ON', -40=>'ON', -41=>'ON', -42=>'ON', -43=>'ES', -44=>'CS', -45=>'ES', -46=>'CS', -47=>'CS', -48=>'EN', -49=>'EN', -50=>'EN', -51=>'EN', -52=>'EN', -53=>'EN', -54=>'EN', -55=>'EN', -56=>'EN', -57=>'EN', -58=>'CS', -59=>'ON', -60=>'ON', -61=>'ON', -62=>'ON', -63=>'ON', -64=>'ON', -65=>'L', -66=>'L', -67=>'L', -68=>'L', -69=>'L', -70=>'L', -71=>'L', -72=>'L', -73=>'L', -74=>'L', -75=>'L', -76=>'L', -77=>'L', -78=>'L', -79=>'L', -80=>'L', -81=>'L', -82=>'L', -83=>'L', -84=>'L', -85=>'L', -86=>'L', -87=>'L', -88=>'L', -89=>'L', -90=>'L', -91=>'ON', -92=>'ON', -93=>'ON', -94=>'ON', -95=>'ON', -96=>'ON', -97=>'L', -98=>'L', -99=>'L', -100=>'L', -101=>'L', -102=>'L', -103=>'L', -104=>'L', -105=>'L', -106=>'L', -107=>'L', -108=>'L', -109=>'L', -110=>'L', -111=>'L', -112=>'L', -113=>'L', -114=>'L', -115=>'L', -116=>'L', -117=>'L', -118=>'L', -119=>'L', -120=>'L', -121=>'L', -122=>'L', -123=>'ON', -124=>'ON', -125=>'ON', -126=>'ON', -127=>'BN', -128=>'BN', -129=>'BN', -130=>'BN', -131=>'BN', -132=>'BN', -133=>'B', -134=>'BN', -135=>'BN', -136=>'BN', -137=>'BN', -138=>'BN', -139=>'BN', -140=>'BN', -141=>'BN', -142=>'BN', -143=>'BN', -144=>'BN', -145=>'BN', -146=>'BN', -147=>'BN', -148=>'BN', -149=>'BN', -150=>'BN', -151=>'BN', -152=>'BN', -153=>'BN', -154=>'BN', -155=>'BN', -156=>'BN', -157=>'BN', -158=>'BN', -159=>'BN', -160=>'CS', -161=>'ON', -162=>'ET', -163=>'ET', -164=>'ET', -165=>'ET', -166=>'ON', -167=>'ON', -168=>'ON', -169=>'ON', -170=>'L', -171=>'ON', -172=>'ON', -173=>'BN', -174=>'ON', -175=>'ON', -176=>'ET', -177=>'ET', -178=>'EN', -179=>'EN', -180=>'ON', -181=>'L', -182=>'ON', -183=>'ON', -184=>'ON', -185=>'EN', -186=>'L', -187=>'ON', -188=>'ON', -189=>'ON', -190=>'ON', -191=>'ON', -192=>'L', -193=>'L', -194=>'L', -195=>'L', -196=>'L', -197=>'L', -198=>'L', -199=>'L', -200=>'L', -201=>'L', -202=>'L', -203=>'L', -204=>'L', -205=>'L', -206=>'L', -207=>'L', -208=>'L', -209=>'L', -210=>'L', -211=>'L', -212=>'L', -213=>'L', -214=>'L', -215=>'ON', -216=>'L', -217=>'L', -218=>'L', -219=>'L', -220=>'L', -221=>'L', -222=>'L', -223=>'L', -224=>'L', -225=>'L', -226=>'L', -227=>'L', -228=>'L', -229=>'L', -230=>'L', -231=>'L', -232=>'L', -233=>'L', -234=>'L', -235=>'L', -236=>'L', -237=>'L', -238=>'L', -239=>'L', -240=>'L', -241=>'L', -242=>'L', -243=>'L', -244=>'L', -245=>'L', -246=>'L', -247=>'ON', -248=>'L', -249=>'L', -250=>'L', -251=>'L', -252=>'L', -253=>'L', -254=>'L', -255=>'L', -256=>'L', -257=>'L', -258=>'L', -259=>'L', -260=>'L', -261=>'L', -262=>'L', -263=>'L', -264=>'L', -265=>'L', -266=>'L', -267=>'L', -268=>'L', -269=>'L', -270=>'L', -271=>'L', -272=>'L', -273=>'L', -274=>'L', -275=>'L', -276=>'L', -277=>'L', -278=>'L', -279=>'L', -280=>'L', -281=>'L', -282=>'L', -283=>'L', -284=>'L', -285=>'L', -286=>'L', -287=>'L', -288=>'L', -289=>'L', -290=>'L', -291=>'L', -292=>'L', -293=>'L', -294=>'L', -295=>'L', -296=>'L', -297=>'L', -298=>'L', -299=>'L', -300=>'L', -301=>'L', -302=>'L', -303=>'L', -304=>'L', -305=>'L', -306=>'L', -307=>'L', -308=>'L', -309=>'L', -310=>'L', -311=>'L', -312=>'L', -313=>'L', -314=>'L', -315=>'L', -316=>'L', -317=>'L', -318=>'L', -319=>'L', -320=>'L', -321=>'L', -322=>'L', -323=>'L', -324=>'L', -325=>'L', -326=>'L', -327=>'L', -328=>'L', -329=>'L', -330=>'L', -331=>'L', -332=>'L', -333=>'L', -334=>'L', -335=>'L', -336=>'L', -337=>'L', -338=>'L', -339=>'L', -340=>'L', -341=>'L', -342=>'L', -343=>'L', -344=>'L', -345=>'L', -346=>'L', -347=>'L', -348=>'L', -349=>'L', -350=>'L', -351=>'L', -352=>'L', -353=>'L', -354=>'L', -355=>'L', -356=>'L', -357=>'L', -358=>'L', -359=>'L', -360=>'L', -361=>'L', -362=>'L', -363=>'L', -364=>'L', -365=>'L', -366=>'L', -367=>'L', -368=>'L', -369=>'L', -370=>'L', -371=>'L', -372=>'L', -373=>'L', -374=>'L', -375=>'L', -376=>'L', -377=>'L', -378=>'L', -379=>'L', -380=>'L', -381=>'L', -382=>'L', -383=>'L', -384=>'L', -385=>'L', -386=>'L', -387=>'L', -388=>'L', -389=>'L', -390=>'L', -391=>'L', -392=>'L', -393=>'L', -394=>'L', -395=>'L', -396=>'L', -397=>'L', -398=>'L', -399=>'L', -400=>'L', -401=>'L', -402=>'L', -403=>'L', -404=>'L', -405=>'L', -406=>'L', -407=>'L', -408=>'L', -409=>'L', -410=>'L', -411=>'L', -412=>'L', -413=>'L', -414=>'L', -415=>'L', -416=>'L', -417=>'L', -418=>'L', -419=>'L', -420=>'L', -421=>'L', -422=>'L', -423=>'L', -424=>'L', -425=>'L', -426=>'L', -427=>'L', -428=>'L', -429=>'L', -430=>'L', -431=>'L', -432=>'L', -433=>'L', -434=>'L', -435=>'L', -436=>'L', -437=>'L', -438=>'L', -439=>'L', -440=>'L', -441=>'L', -442=>'L', -443=>'L', -444=>'L', -445=>'L', -446=>'L', -447=>'L', -448=>'L', -449=>'L', -450=>'L', -451=>'L', -452=>'L', -453=>'L', -454=>'L', -455=>'L', -456=>'L', -457=>'L', -458=>'L', -459=>'L', -460=>'L', -461=>'L', -462=>'L', -463=>'L', -464=>'L', -465=>'L', -466=>'L', -467=>'L', -468=>'L', -469=>'L', -470=>'L', -471=>'L', -472=>'L', -473=>'L', -474=>'L', -475=>'L', -476=>'L', -477=>'L', -478=>'L', -479=>'L', -480=>'L', -481=>'L', -482=>'L', -483=>'L', -484=>'L', -485=>'L', -486=>'L', -487=>'L', -488=>'L', -489=>'L', -490=>'L', -491=>'L', -492=>'L', -493=>'L', -494=>'L', -495=>'L', -496=>'L', -497=>'L', -498=>'L', -499=>'L', -500=>'L', -501=>'L', -502=>'L', -503=>'L', -504=>'L', -505=>'L', -506=>'L', -507=>'L', -508=>'L', -509=>'L', -510=>'L', -511=>'L', -512=>'L', -513=>'L', -514=>'L', -515=>'L', -516=>'L', -517=>'L', -518=>'L', -519=>'L', -520=>'L', -521=>'L', -522=>'L', -523=>'L', -524=>'L', -525=>'L', -526=>'L', -527=>'L', -528=>'L', -529=>'L', -530=>'L', -531=>'L', -532=>'L', -533=>'L', -534=>'L', -535=>'L', -536=>'L', -537=>'L', -538=>'L', -539=>'L', -540=>'L', -541=>'L', -542=>'L', -543=>'L', -544=>'L', -545=>'L', -546=>'L', -547=>'L', -548=>'L', -549=>'L', -550=>'L', -551=>'L', -552=>'L', -553=>'L', -554=>'L', -555=>'L', -556=>'L', -557=>'L', -558=>'L', -559=>'L', -560=>'L', -561=>'L', -562=>'L', -563=>'L', -564=>'L', -565=>'L', -566=>'L', -567=>'L', -568=>'L', -569=>'L', -570=>'L', -571=>'L', -572=>'L', -573=>'L', -574=>'L', -575=>'L', -576=>'L', -577=>'L', -578=>'L', -579=>'L', -580=>'L', -581=>'L', -582=>'L', -583=>'L', -584=>'L', -585=>'L', -586=>'L', -587=>'L', -588=>'L', -589=>'L', -590=>'L', -591=>'L', -592=>'L', -593=>'L', -594=>'L', -595=>'L', -596=>'L', -597=>'L', -598=>'L', -599=>'L', -600=>'L', -601=>'L', -602=>'L', -603=>'L', -604=>'L', -605=>'L', -606=>'L', -607=>'L', -608=>'L', -609=>'L', -610=>'L', -611=>'L', -612=>'L', -613=>'L', -614=>'L', -615=>'L', -616=>'L', -617=>'L', -618=>'L', -619=>'L', -620=>'L', -621=>'L', -622=>'L', -623=>'L', -624=>'L', -625=>'L', -626=>'L', -627=>'L', -628=>'L', -629=>'L', -630=>'L', -631=>'L', -632=>'L', -633=>'L', -634=>'L', -635=>'L', -636=>'L', -637=>'L', -638=>'L', -639=>'L', -640=>'L', -641=>'L', -642=>'L', -643=>'L', -644=>'L', -645=>'L', -646=>'L', -647=>'L', -648=>'L', -649=>'L', -650=>'L', -651=>'L', -652=>'L', -653=>'L', -654=>'L', -655=>'L', -656=>'L', -657=>'L', -658=>'L', -659=>'L', -660=>'L', -661=>'L', -662=>'L', -663=>'L', -664=>'L', -665=>'L', -666=>'L', -667=>'L', -668=>'L', -669=>'L', -670=>'L', -671=>'L', -672=>'L', -673=>'L', -674=>'L', -675=>'L', -676=>'L', -677=>'L', -678=>'L', -679=>'L', -680=>'L', -681=>'L', -682=>'L', -683=>'L', -684=>'L', -685=>'L', -686=>'L', -687=>'L', -688=>'L', -689=>'L', -690=>'L', -691=>'L', -692=>'L', -693=>'L', -694=>'L', -695=>'L', -696=>'L', -697=>'ON', -698=>'ON', -699=>'L', -700=>'L', -701=>'L', -702=>'L', -703=>'L', -704=>'L', -705=>'L', -706=>'ON', -707=>'ON', -708=>'ON', -709=>'ON', -710=>'ON', -711=>'ON', -712=>'ON', -713=>'ON', -714=>'ON', -715=>'ON', -716=>'ON', -717=>'ON', -718=>'ON', -719=>'ON', -720=>'L', -721=>'L', -722=>'ON', -723=>'ON', -724=>'ON', -725=>'ON', -726=>'ON', -727=>'ON', -728=>'ON', -729=>'ON', -730=>'ON', -731=>'ON', -732=>'ON', -733=>'ON', -734=>'ON', -735=>'ON', -736=>'L', -737=>'L', -738=>'L', -739=>'L', -740=>'L', -741=>'ON', -742=>'ON', -743=>'ON', -744=>'ON', -745=>'ON', -746=>'ON', -747=>'ON', -748=>'ON', -749=>'ON', -750=>'L', -751=>'ON', -752=>'ON', -753=>'ON', -754=>'ON', -755=>'ON', -756=>'ON', -757=>'ON', -758=>'ON', -759=>'ON', -760=>'ON', -761=>'ON', -762=>'ON', -763=>'ON', -764=>'ON', -765=>'ON', -766=>'ON', -767=>'ON', -768=>'NSM', -769=>'NSM', -770=>'NSM', -771=>'NSM', -772=>'NSM', -773=>'NSM', -774=>'NSM', -775=>'NSM', -776=>'NSM', -777=>'NSM', -778=>'NSM', -779=>'NSM', -780=>'NSM', -781=>'NSM', -782=>'NSM', -783=>'NSM', -784=>'NSM', -785=>'NSM', -786=>'NSM', -787=>'NSM', -788=>'NSM', -789=>'NSM', -790=>'NSM', -791=>'NSM', -792=>'NSM', -793=>'NSM', -794=>'NSM', -795=>'NSM', -796=>'NSM', -797=>'NSM', -798=>'NSM', -799=>'NSM', -800=>'NSM', -801=>'NSM', -802=>'NSM', -803=>'NSM', -804=>'NSM', -805=>'NSM', -806=>'NSM', -807=>'NSM', -808=>'NSM', -809=>'NSM', -810=>'NSM', -811=>'NSM', -812=>'NSM', -813=>'NSM', -814=>'NSM', -815=>'NSM', -816=>'NSM', -817=>'NSM', -818=>'NSM', -819=>'NSM', -820=>'NSM', -821=>'NSM', -822=>'NSM', -823=>'NSM', -824=>'NSM', -825=>'NSM', -826=>'NSM', -827=>'NSM', -828=>'NSM', -829=>'NSM', -830=>'NSM', -831=>'NSM', -832=>'NSM', -833=>'NSM', -834=>'NSM', -835=>'NSM', -836=>'NSM', -837=>'NSM', -838=>'NSM', -839=>'NSM', -840=>'NSM', -841=>'NSM', -842=>'NSM', -843=>'NSM', -844=>'NSM', -845=>'NSM', -846=>'NSM', -847=>'NSM', -848=>'NSM', -849=>'NSM', -850=>'NSM', -851=>'NSM', -852=>'NSM', -853=>'NSM', -854=>'NSM', -855=>'NSM', -856=>'NSM', -857=>'NSM', -858=>'NSM', -859=>'NSM', -860=>'NSM', -861=>'NSM', -862=>'NSM', -863=>'NSM', -864=>'NSM', -865=>'NSM', -866=>'NSM', -867=>'NSM', -868=>'NSM', -869=>'NSM', -870=>'NSM', -871=>'NSM', -872=>'NSM', -873=>'NSM', -874=>'NSM', -875=>'NSM', -876=>'NSM', -877=>'NSM', -878=>'NSM', -879=>'NSM', -884=>'ON', -885=>'ON', -890=>'L', -891=>'L', -892=>'L', -893=>'L', -894=>'ON', -900=>'ON', -901=>'ON', -902=>'L', -903=>'ON', -904=>'L', -905=>'L', -906=>'L', -908=>'L', -910=>'L', -911=>'L', -912=>'L', -913=>'L', -914=>'L', -915=>'L', -916=>'L', -917=>'L', -918=>'L', -919=>'L', -920=>'L', -921=>'L', -922=>'L', -923=>'L', -924=>'L', -925=>'L', -926=>'L', -927=>'L', -928=>'L', -929=>'L', -931=>'L', -932=>'L', -933=>'L', -934=>'L', -935=>'L', -936=>'L', -937=>'L', -938=>'L', -939=>'L', -940=>'L', -941=>'L', -942=>'L', -943=>'L', -944=>'L', -945=>'L', -946=>'L', -947=>'L', -948=>'L', -949=>'L', -950=>'L', -951=>'L', -952=>'L', -953=>'L', -954=>'L', -955=>'L', -956=>'L', -957=>'L', -958=>'L', -959=>'L', -960=>'L', -961=>'L', -962=>'L', -963=>'L', -964=>'L', -965=>'L', -966=>'L', -967=>'L', -968=>'L', -969=>'L', -970=>'L', -971=>'L', -972=>'L', -973=>'L', -974=>'L', -976=>'L', -977=>'L', -978=>'L', -979=>'L', -980=>'L', -981=>'L', -982=>'L', -983=>'L', -984=>'L', -985=>'L', -986=>'L', -987=>'L', -988=>'L', -989=>'L', -990=>'L', -991=>'L', -992=>'L', -993=>'L', -994=>'L', -995=>'L', -996=>'L', -997=>'L', -998=>'L', -999=>'L', -1000=>'L', -1001=>'L', -1002=>'L', -1003=>'L', -1004=>'L', -1005=>'L', -1006=>'L', -1007=>'L', -1008=>'L', -1009=>'L', -1010=>'L', -1011=>'L', -1012=>'L', -1013=>'L', -1014=>'ON', -1015=>'L', -1016=>'L', -1017=>'L', -1018=>'L', -1019=>'L', -1020=>'L', -1021=>'L', -1022=>'L', -1023=>'L', -1024=>'L', -1025=>'L', -1026=>'L', -1027=>'L', -1028=>'L', -1029=>'L', -1030=>'L', -1031=>'L', -1032=>'L', -1033=>'L', -1034=>'L', -1035=>'L', -1036=>'L', -1037=>'L', -1038=>'L', -1039=>'L', -1040=>'L', -1041=>'L', -1042=>'L', -1043=>'L', -1044=>'L', -1045=>'L', -1046=>'L', -1047=>'L', -1048=>'L', -1049=>'L', -1050=>'L', -1051=>'L', -1052=>'L', -1053=>'L', -1054=>'L', -1055=>'L', -1056=>'L', -1057=>'L', -1058=>'L', -1059=>'L', -1060=>'L', -1061=>'L', -1062=>'L', -1063=>'L', -1064=>'L', -1065=>'L', -1066=>'L', -1067=>'L', -1068=>'L', -1069=>'L', -1070=>'L', -1071=>'L', -1072=>'L', -1073=>'L', -1074=>'L', -1075=>'L', -1076=>'L', -1077=>'L', -1078=>'L', -1079=>'L', -1080=>'L', -1081=>'L', -1082=>'L', -1083=>'L', -1084=>'L', -1085=>'L', -1086=>'L', -1087=>'L', -1088=>'L', -1089=>'L', -1090=>'L', -1091=>'L', -1092=>'L', -1093=>'L', -1094=>'L', -1095=>'L', -1096=>'L', -1097=>'L', -1098=>'L', -1099=>'L', -1100=>'L', -1101=>'L', -1102=>'L', -1103=>'L', -1104=>'L', -1105=>'L', -1106=>'L', -1107=>'L', -1108=>'L', -1109=>'L', -1110=>'L', -1111=>'L', -1112=>'L', -1113=>'L', -1114=>'L', -1115=>'L', -1116=>'L', -1117=>'L', -1118=>'L', -1119=>'L', -1120=>'L', -1121=>'L', -1122=>'L', -1123=>'L', -1124=>'L', -1125=>'L', -1126=>'L', -1127=>'L', -1128=>'L', -1129=>'L', -1130=>'L', -1131=>'L', -1132=>'L', -1133=>'L', -1134=>'L', -1135=>'L', -1136=>'L', -1137=>'L', -1138=>'L', -1139=>'L', -1140=>'L', -1141=>'L', -1142=>'L', -1143=>'L', -1144=>'L', -1145=>'L', -1146=>'L', -1147=>'L', -1148=>'L', -1149=>'L', -1150=>'L', -1151=>'L', -1152=>'L', -1153=>'L', -1154=>'L', -1155=>'NSM', -1156=>'NSM', -1157=>'NSM', -1158=>'NSM', -1160=>'NSM', -1161=>'NSM', -1162=>'L', -1163=>'L', -1164=>'L', -1165=>'L', -1166=>'L', -1167=>'L', -1168=>'L', -1169=>'L', -1170=>'L', -1171=>'L', -1172=>'L', -1173=>'L', -1174=>'L', -1175=>'L', -1176=>'L', -1177=>'L', -1178=>'L', -1179=>'L', -1180=>'L', -1181=>'L', -1182=>'L', -1183=>'L', -1184=>'L', -1185=>'L', -1186=>'L', -1187=>'L', -1188=>'L', -1189=>'L', -1190=>'L', -1191=>'L', -1192=>'L', -1193=>'L', -1194=>'L', -1195=>'L', -1196=>'L', -1197=>'L', -1198=>'L', -1199=>'L', -1200=>'L', -1201=>'L', -1202=>'L', -1203=>'L', -1204=>'L', -1205=>'L', -1206=>'L', -1207=>'L', -1208=>'L', -1209=>'L', -1210=>'L', -1211=>'L', -1212=>'L', -1213=>'L', -1214=>'L', -1215=>'L', -1216=>'L', -1217=>'L', -1218=>'L', -1219=>'L', -1220=>'L', -1221=>'L', -1222=>'L', -1223=>'L', -1224=>'L', -1225=>'L', -1226=>'L', -1227=>'L', -1228=>'L', -1229=>'L', -1230=>'L', -1231=>'L', -1232=>'L', -1233=>'L', -1234=>'L', -1235=>'L', -1236=>'L', -1237=>'L', -1238=>'L', -1239=>'L', -1240=>'L', -1241=>'L', -1242=>'L', -1243=>'L', -1244=>'L', -1245=>'L', -1246=>'L', -1247=>'L', -1248=>'L', -1249=>'L', -1250=>'L', -1251=>'L', -1252=>'L', -1253=>'L', -1254=>'L', -1255=>'L', -1256=>'L', -1257=>'L', -1258=>'L', -1259=>'L', -1260=>'L', -1261=>'L', -1262=>'L', -1263=>'L', -1264=>'L', -1265=>'L', -1266=>'L', -1267=>'L', -1268=>'L', -1269=>'L', -1270=>'L', -1271=>'L', -1272=>'L', -1273=>'L', -1274=>'L', -1275=>'L', -1276=>'L', -1277=>'L', -1278=>'L', -1279=>'L', -1280=>'L', -1281=>'L', -1282=>'L', -1283=>'L', -1284=>'L', -1285=>'L', -1286=>'L', -1287=>'L', -1288=>'L', -1289=>'L', -1290=>'L', -1291=>'L', -1292=>'L', -1293=>'L', -1294=>'L', -1295=>'L', -1296=>'L', -1297=>'L', -1298=>'L', -1299=>'L', -1329=>'L', -1330=>'L', -1331=>'L', -1332=>'L', -1333=>'L', -1334=>'L', -1335=>'L', -1336=>'L', -1337=>'L', -1338=>'L', -1339=>'L', -1340=>'L', -1341=>'L', -1342=>'L', -1343=>'L', -1344=>'L', -1345=>'L', -1346=>'L', -1347=>'L', -1348=>'L', -1349=>'L', -1350=>'L', -1351=>'L', -1352=>'L', -1353=>'L', -1354=>'L', -1355=>'L', -1356=>'L', -1357=>'L', -1358=>'L', -1359=>'L', -1360=>'L', -1361=>'L', -1362=>'L', -1363=>'L', -1364=>'L', -1365=>'L', -1366=>'L', -1369=>'L', -1370=>'L', -1371=>'L', -1372=>'L', -1373=>'L', -1374=>'L', -1375=>'L', -1377=>'L', -1378=>'L', -1379=>'L', -1380=>'L', -1381=>'L', -1382=>'L', -1383=>'L', -1384=>'L', -1385=>'L', -1386=>'L', -1387=>'L', -1388=>'L', -1389=>'L', -1390=>'L', -1391=>'L', -1392=>'L', -1393=>'L', -1394=>'L', -1395=>'L', -1396=>'L', -1397=>'L', -1398=>'L', -1399=>'L', -1400=>'L', -1401=>'L', -1402=>'L', -1403=>'L', -1404=>'L', -1405=>'L', -1406=>'L', -1407=>'L', -1408=>'L', -1409=>'L', -1410=>'L', -1411=>'L', -1412=>'L', -1413=>'L', -1414=>'L', -1415=>'L', -1417=>'L', -1418=>'ON', -1425=>'NSM', -1426=>'NSM', -1427=>'NSM', -1428=>'NSM', -1429=>'NSM', -1430=>'NSM', -1431=>'NSM', -1432=>'NSM', -1433=>'NSM', -1434=>'NSM', -1435=>'NSM', -1436=>'NSM', -1437=>'NSM', -1438=>'NSM', -1439=>'NSM', -1440=>'NSM', -1441=>'NSM', -1442=>'NSM', -1443=>'NSM', -1444=>'NSM', -1445=>'NSM', -1446=>'NSM', -1447=>'NSM', -1448=>'NSM', -1449=>'NSM', -1450=>'NSM', -1451=>'NSM', -1452=>'NSM', -1453=>'NSM', -1454=>'NSM', -1455=>'NSM', -1456=>'NSM', -1457=>'NSM', -1458=>'NSM', -1459=>'NSM', -1460=>'NSM', -1461=>'NSM', -1462=>'NSM', -1463=>'NSM', -1464=>'NSM', -1465=>'NSM', -1466=>'NSM', -1467=>'NSM', -1468=>'NSM', -1469=>'NSM', -1470=>'R', -1471=>'NSM', -1472=>'R', -1473=>'NSM', -1474=>'NSM', -1475=>'R', -1476=>'NSM', -1477=>'NSM', -1478=>'R', -1479=>'NSM', -1488=>'R', -1489=>'R', -1490=>'R', -1491=>'R', -1492=>'R', -1493=>'R', -1494=>'R', -1495=>'R', -1496=>'R', -1497=>'R', -1498=>'R', -1499=>'R', -1500=>'R', -1501=>'R', -1502=>'R', -1503=>'R', -1504=>'R', -1505=>'R', -1506=>'R', -1507=>'R', -1508=>'R', -1509=>'R', -1510=>'R', -1511=>'R', -1512=>'R', -1513=>'R', -1514=>'R', -1520=>'R', -1521=>'R', -1522=>'R', -1523=>'R', -1524=>'R', -1536=>'AL', -1537=>'AL', -1538=>'AL', -1539=>'AL', -1547=>'AL', -1548=>'CS', -1549=>'AL', -1550=>'ON', -1551=>'ON', -1552=>'NSM', -1553=>'NSM', -1554=>'NSM', -1555=>'NSM', -1556=>'NSM', -1557=>'NSM', -1563=>'AL', -1566=>'AL', -1567=>'AL', -1569=>'AL', -1570=>'AL', -1571=>'AL', -1572=>'AL', -1573=>'AL', -1574=>'AL', -1575=>'AL', -1576=>'AL', -1577=>'AL', -1578=>'AL', -1579=>'AL', -1580=>'AL', -1581=>'AL', -1582=>'AL', -1583=>'AL', -1584=>'AL', -1585=>'AL', -1586=>'AL', -1587=>'AL', -1588=>'AL', -1589=>'AL', -1590=>'AL', -1591=>'AL', -1592=>'AL', -1593=>'AL', -1594=>'AL', -1600=>'AL', -1601=>'AL', -1602=>'AL', -1603=>'AL', -1604=>'AL', -1605=>'AL', -1606=>'AL', -1607=>'AL', -1608=>'AL', -1609=>'AL', -1610=>'AL', -1611=>'NSM', -1612=>'NSM', -1613=>'NSM', -1614=>'NSM', -1615=>'NSM', -1616=>'NSM', -1617=>'NSM', -1618=>'NSM', -1619=>'NSM', -1620=>'NSM', -1621=>'NSM', -1622=>'NSM', -1623=>'NSM', -1624=>'NSM', -1625=>'NSM', -1626=>'NSM', -1627=>'NSM', -1628=>'NSM', -1629=>'NSM', -1630=>'NSM', -1632=>'AN', -1633=>'AN', -1634=>'AN', -1635=>'AN', -1636=>'AN', -1637=>'AN', -1638=>'AN', -1639=>'AN', -1640=>'AN', -1641=>'AN', -1642=>'ET', -1643=>'AN', -1644=>'AN', -1645=>'AL', -1646=>'AL', -1647=>'AL', -1648=>'NSM', -1649=>'AL', -1650=>'AL', -1651=>'AL', -1652=>'AL', -1653=>'AL', -1654=>'AL', -1655=>'AL', -1656=>'AL', -1657=>'AL', -1658=>'AL', -1659=>'AL', -1660=>'AL', -1661=>'AL', -1662=>'AL', -1663=>'AL', -1664=>'AL', -1665=>'AL', -1666=>'AL', -1667=>'AL', -1668=>'AL', -1669=>'AL', -1670=>'AL', -1671=>'AL', -1672=>'AL', -1673=>'AL', -1674=>'AL', -1675=>'AL', -1676=>'AL', -1677=>'AL', -1678=>'AL', -1679=>'AL', -1680=>'AL', -1681=>'AL', -1682=>'AL', -1683=>'AL', -1684=>'AL', -1685=>'AL', -1686=>'AL', -1687=>'AL', -1688=>'AL', -1689=>'AL', -1690=>'AL', -1691=>'AL', -1692=>'AL', -1693=>'AL', -1694=>'AL', -1695=>'AL', -1696=>'AL', -1697=>'AL', -1698=>'AL', -1699=>'AL', -1700=>'AL', -1701=>'AL', -1702=>'AL', -1703=>'AL', -1704=>'AL', -1705=>'AL', -1706=>'AL', -1707=>'AL', -1708=>'AL', -1709=>'AL', -1710=>'AL', -1711=>'AL', -1712=>'AL', -1713=>'AL', -1714=>'AL', -1715=>'AL', -1716=>'AL', -1717=>'AL', -1718=>'AL', -1719=>'AL', -1720=>'AL', -1721=>'AL', -1722=>'AL', -1723=>'AL', -1724=>'AL', -1725=>'AL', -1726=>'AL', -1727=>'AL', -1728=>'AL', -1729=>'AL', -1730=>'AL', -1731=>'AL', -1732=>'AL', -1733=>'AL', -1734=>'AL', -1735=>'AL', -1736=>'AL', -1737=>'AL', -1738=>'AL', -1739=>'AL', -1740=>'AL', -1741=>'AL', -1742=>'AL', -1743=>'AL', -1744=>'AL', -1745=>'AL', -1746=>'AL', -1747=>'AL', -1748=>'AL', -1749=>'AL', -1750=>'NSM', -1751=>'NSM', -1752=>'NSM', -1753=>'NSM', -1754=>'NSM', -1755=>'NSM', -1756=>'NSM', -1757=>'AL', -1758=>'NSM', -1759=>'NSM', -1760=>'NSM', -1761=>'NSM', -1762=>'NSM', -1763=>'NSM', -1764=>'NSM', -1765=>'AL', -1766=>'AL', -1767=>'NSM', -1768=>'NSM', -1769=>'ON', -1770=>'NSM', -1771=>'NSM', -1772=>'NSM', -1773=>'NSM', -1774=>'AL', -1775=>'AL', -1776=>'EN', -1777=>'EN', -1778=>'EN', -1779=>'EN', -1780=>'EN', -1781=>'EN', -1782=>'EN', -1783=>'EN', -1784=>'EN', -1785=>'EN', -1786=>'AL', -1787=>'AL', -1788=>'AL', -1789=>'AL', -1790=>'AL', -1791=>'AL', -1792=>'AL', -1793=>'AL', -1794=>'AL', -1795=>'AL', -1796=>'AL', -1797=>'AL', -1798=>'AL', -1799=>'AL', -1800=>'AL', -1801=>'AL', -1802=>'AL', -1803=>'AL', -1804=>'AL', -1805=>'AL', -1807=>'BN', -1808=>'AL', -1809=>'NSM', -1810=>'AL', -1811=>'AL', -1812=>'AL', -1813=>'AL', -1814=>'AL', -1815=>'AL', -1816=>'AL', -1817=>'AL', -1818=>'AL', -1819=>'AL', -1820=>'AL', -1821=>'AL', -1822=>'AL', -1823=>'AL', -1824=>'AL', -1825=>'AL', -1826=>'AL', -1827=>'AL', -1828=>'AL', -1829=>'AL', -1830=>'AL', -1831=>'AL', -1832=>'AL', -1833=>'AL', -1834=>'AL', -1835=>'AL', -1836=>'AL', -1837=>'AL', -1838=>'AL', -1839=>'AL', -1840=>'NSM', -1841=>'NSM', -1842=>'NSM', -1843=>'NSM', -1844=>'NSM', -1845=>'NSM', -1846=>'NSM', -1847=>'NSM', -1848=>'NSM', -1849=>'NSM', -1850=>'NSM', -1851=>'NSM', -1852=>'NSM', -1853=>'NSM', -1854=>'NSM', -1855=>'NSM', -1856=>'NSM', -1857=>'NSM', -1858=>'NSM', -1859=>'NSM', -1860=>'NSM', -1861=>'NSM', -1862=>'NSM', -1863=>'NSM', -1864=>'NSM', -1865=>'NSM', -1866=>'NSM', -1869=>'AL', -1870=>'AL', -1871=>'AL', -1872=>'AL', -1873=>'AL', -1874=>'AL', -1875=>'AL', -1876=>'AL', -1877=>'AL', -1878=>'AL', -1879=>'AL', -1880=>'AL', -1881=>'AL', -1882=>'AL', -1883=>'AL', -1884=>'AL', -1885=>'AL', -1886=>'AL', -1887=>'AL', -1888=>'AL', -1889=>'AL', -1890=>'AL', -1891=>'AL', -1892=>'AL', -1893=>'AL', -1894=>'AL', -1895=>'AL', -1896=>'AL', -1897=>'AL', -1898=>'AL', -1899=>'AL', -1900=>'AL', -1901=>'AL', -1920=>'AL', -1921=>'AL', -1922=>'AL', -1923=>'AL', -1924=>'AL', -1925=>'AL', -1926=>'AL', -1927=>'AL', -1928=>'AL', -1929=>'AL', -1930=>'AL', -1931=>'AL', -1932=>'AL', -1933=>'AL', -1934=>'AL', -1935=>'AL', -1936=>'AL', -1937=>'AL', -1938=>'AL', -1939=>'AL', -1940=>'AL', -1941=>'AL', -1942=>'AL', -1943=>'AL', -1944=>'AL', -1945=>'AL', -1946=>'AL', -1947=>'AL', -1948=>'AL', -1949=>'AL', -1950=>'AL', -1951=>'AL', -1952=>'AL', -1953=>'AL', -1954=>'AL', -1955=>'AL', -1956=>'AL', -1957=>'AL', -1958=>'NSM', -1959=>'NSM', -1960=>'NSM', -1961=>'NSM', -1962=>'NSM', -1963=>'NSM', -1964=>'NSM', -1965=>'NSM', -1966=>'NSM', -1967=>'NSM', -1968=>'NSM', -1969=>'AL', -1984=>'R', -1985=>'R', -1986=>'R', -1987=>'R', -1988=>'R', -1989=>'R', -1990=>'R', -1991=>'R', -1992=>'R', -1993=>'R', -1994=>'R', -1995=>'R', -1996=>'R', -1997=>'R', -1998=>'R', -1999=>'R', -2000=>'R', -2001=>'R', -2002=>'R', -2003=>'R', -2004=>'R', -2005=>'R', -2006=>'R', -2007=>'R', -2008=>'R', -2009=>'R', -2010=>'R', -2011=>'R', -2012=>'R', -2013=>'R', -2014=>'R', -2015=>'R', -2016=>'R', -2017=>'R', -2018=>'R', -2019=>'R', -2020=>'R', -2021=>'R', -2022=>'R', -2023=>'R', -2024=>'R', -2025=>'R', -2026=>'R', -2027=>'NSM', -2028=>'NSM', -2029=>'NSM', -2030=>'NSM', -2031=>'NSM', -2032=>'NSM', -2033=>'NSM', -2034=>'NSM', -2035=>'NSM', -2036=>'R', -2037=>'R', -2038=>'ON', -2039=>'ON', -2040=>'ON', -2041=>'ON', -2042=>'R', -2305=>'NSM', -2306=>'NSM', -2307=>'L', -2308=>'L', -2309=>'L', -2310=>'L', -2311=>'L', -2312=>'L', -2313=>'L', -2314=>'L', -2315=>'L', -2316=>'L', -2317=>'L', -2318=>'L', -2319=>'L', -2320=>'L', -2321=>'L', -2322=>'L', -2323=>'L', -2324=>'L', -2325=>'L', -2326=>'L', -2327=>'L', -2328=>'L', -2329=>'L', -2330=>'L', -2331=>'L', -2332=>'L', -2333=>'L', -2334=>'L', -2335=>'L', -2336=>'L', -2337=>'L', -2338=>'L', -2339=>'L', -2340=>'L', -2341=>'L', -2342=>'L', -2343=>'L', -2344=>'L', -2345=>'L', -2346=>'L', -2347=>'L', -2348=>'L', -2349=>'L', -2350=>'L', -2351=>'L', -2352=>'L', -2353=>'L', -2354=>'L', -2355=>'L', -2356=>'L', -2357=>'L', -2358=>'L', -2359=>'L', -2360=>'L', -2361=>'L', -2364=>'NSM', -2365=>'L', -2366=>'L', -2367=>'L', -2368=>'L', -2369=>'NSM', -2370=>'NSM', -2371=>'NSM', -2372=>'NSM', -2373=>'NSM', -2374=>'NSM', -2375=>'NSM', -2376=>'NSM', -2377=>'L', -2378=>'L', -2379=>'L', -2380=>'L', -2381=>'NSM', -2384=>'L', -2385=>'NSM', -2386=>'NSM', -2387=>'NSM', -2388=>'NSM', -2392=>'L', -2393=>'L', -2394=>'L', -2395=>'L', -2396=>'L', -2397=>'L', -2398=>'L', -2399=>'L', -2400=>'L', -2401=>'L', -2402=>'NSM', -2403=>'NSM', -2404=>'L', -2405=>'L', -2406=>'L', -2407=>'L', -2408=>'L', -2409=>'L', -2410=>'L', -2411=>'L', -2412=>'L', -2413=>'L', -2414=>'L', -2415=>'L', -2416=>'L', -2427=>'L', -2428=>'L', -2429=>'L', -2430=>'L', -2431=>'L', -2433=>'NSM', -2434=>'L', -2435=>'L', -2437=>'L', -2438=>'L', -2439=>'L', -2440=>'L', -2441=>'L', -2442=>'L', -2443=>'L', -2444=>'L', -2447=>'L', -2448=>'L', -2451=>'L', -2452=>'L', -2453=>'L', -2454=>'L', -2455=>'L', -2456=>'L', -2457=>'L', -2458=>'L', -2459=>'L', -2460=>'L', -2461=>'L', -2462=>'L', -2463=>'L', -2464=>'L', -2465=>'L', -2466=>'L', -2467=>'L', -2468=>'L', -2469=>'L', -2470=>'L', -2471=>'L', -2472=>'L', -2474=>'L', -2475=>'L', -2476=>'L', -2477=>'L', -2478=>'L', -2479=>'L', -2480=>'L', -2482=>'L', -2486=>'L', -2487=>'L', -2488=>'L', -2489=>'L', -2492=>'NSM', -2493=>'L', -2494=>'L', -2495=>'L', -2496=>'L', -2497=>'NSM', -2498=>'NSM', -2499=>'NSM', -2500=>'NSM', -2503=>'L', -2504=>'L', -2507=>'L', -2508=>'L', -2509=>'NSM', -2510=>'L', -2519=>'L', -2524=>'L', -2525=>'L', -2527=>'L', -2528=>'L', -2529=>'L', -2530=>'NSM', -2531=>'NSM', -2534=>'L', -2535=>'L', -2536=>'L', -2537=>'L', -2538=>'L', -2539=>'L', -2540=>'L', -2541=>'L', -2542=>'L', -2543=>'L', -2544=>'L', -2545=>'L', -2546=>'ET', -2547=>'ET', -2548=>'L', -2549=>'L', -2550=>'L', -2551=>'L', -2552=>'L', -2553=>'L', -2554=>'L', -2561=>'NSM', -2562=>'NSM', -2563=>'L', -2565=>'L', -2566=>'L', -2567=>'L', -2568=>'L', -2569=>'L', -2570=>'L', -2575=>'L', -2576=>'L', -2579=>'L', -2580=>'L', -2581=>'L', -2582=>'L', -2583=>'L', -2584=>'L', -2585=>'L', -2586=>'L', -2587=>'L', -2588=>'L', -2589=>'L', -2590=>'L', -2591=>'L', -2592=>'L', -2593=>'L', -2594=>'L', -2595=>'L', -2596=>'L', -2597=>'L', -2598=>'L', -2599=>'L', -2600=>'L', -2602=>'L', -2603=>'L', -2604=>'L', -2605=>'L', -2606=>'L', -2607=>'L', -2608=>'L', -2610=>'L', -2611=>'L', -2613=>'L', -2614=>'L', -2616=>'L', -2617=>'L', -2620=>'NSM', -2622=>'L', -2623=>'L', -2624=>'L', -2625=>'NSM', -2626=>'NSM', -2631=>'NSM', -2632=>'NSM', -2635=>'NSM', -2636=>'NSM', -2637=>'NSM', -2649=>'L', -2650=>'L', -2651=>'L', -2652=>'L', -2654=>'L', -2662=>'L', -2663=>'L', -2664=>'L', -2665=>'L', -2666=>'L', -2667=>'L', -2668=>'L', -2669=>'L', -2670=>'L', -2671=>'L', -2672=>'NSM', -2673=>'NSM', -2674=>'L', -2675=>'L', -2676=>'L', -2689=>'NSM', -2690=>'NSM', -2691=>'L', -2693=>'L', -2694=>'L', -2695=>'L', -2696=>'L', -2697=>'L', -2698=>'L', -2699=>'L', -2700=>'L', -2701=>'L', -2703=>'L', -2704=>'L', -2705=>'L', -2707=>'L', -2708=>'L', -2709=>'L', -2710=>'L', -2711=>'L', -2712=>'L', -2713=>'L', -2714=>'L', -2715=>'L', -2716=>'L', -2717=>'L', -2718=>'L', -2719=>'L', -2720=>'L', -2721=>'L', -2722=>'L', -2723=>'L', -2724=>'L', -2725=>'L', -2726=>'L', -2727=>'L', -2728=>'L', -2730=>'L', -2731=>'L', -2732=>'L', -2733=>'L', -2734=>'L', -2735=>'L', -2736=>'L', -2738=>'L', -2739=>'L', -2741=>'L', -2742=>'L', -2743=>'L', -2744=>'L', -2745=>'L', -2748=>'NSM', -2749=>'L', -2750=>'L', -2751=>'L', -2752=>'L', -2753=>'NSM', -2754=>'NSM', -2755=>'NSM', -2756=>'NSM', -2757=>'NSM', -2759=>'NSM', -2760=>'NSM', -2761=>'L', -2763=>'L', -2764=>'L', -2765=>'NSM', -2768=>'L', -2784=>'L', -2785=>'L', -2786=>'NSM', -2787=>'NSM', -2790=>'L', -2791=>'L', -2792=>'L', -2793=>'L', -2794=>'L', -2795=>'L', -2796=>'L', -2797=>'L', -2798=>'L', -2799=>'L', -2801=>'ET', -2817=>'NSM', -2818=>'L', -2819=>'L', -2821=>'L', -2822=>'L', -2823=>'L', -2824=>'L', -2825=>'L', -2826=>'L', -2827=>'L', -2828=>'L', -2831=>'L', -2832=>'L', -2835=>'L', -2836=>'L', -2837=>'L', -2838=>'L', -2839=>'L', -2840=>'L', -2841=>'L', -2842=>'L', -2843=>'L', -2844=>'L', -2845=>'L', -2846=>'L', -2847=>'L', -2848=>'L', -2849=>'L', -2850=>'L', -2851=>'L', -2852=>'L', -2853=>'L', -2854=>'L', -2855=>'L', -2856=>'L', -2858=>'L', -2859=>'L', -2860=>'L', -2861=>'L', -2862=>'L', -2863=>'L', -2864=>'L', -2866=>'L', -2867=>'L', -2869=>'L', -2870=>'L', -2871=>'L', -2872=>'L', -2873=>'L', -2876=>'NSM', -2877=>'L', -2878=>'L', -2879=>'NSM', -2880=>'L', -2881=>'NSM', -2882=>'NSM', -2883=>'NSM', -2887=>'L', -2888=>'L', -2891=>'L', -2892=>'L', -2893=>'NSM', -2902=>'NSM', -2903=>'L', -2908=>'L', -2909=>'L', -2911=>'L', -2912=>'L', -2913=>'L', -2918=>'L', -2919=>'L', -2920=>'L', -2921=>'L', -2922=>'L', -2923=>'L', -2924=>'L', -2925=>'L', -2926=>'L', -2927=>'L', -2928=>'L', -2929=>'L', -2946=>'NSM', -2947=>'L', -2949=>'L', -2950=>'L', -2951=>'L', -2952=>'L', -2953=>'L', -2954=>'L', -2958=>'L', -2959=>'L', -2960=>'L', -2962=>'L', -2963=>'L', -2964=>'L', -2965=>'L', -2969=>'L', -2970=>'L', -2972=>'L', -2974=>'L', -2975=>'L', -2979=>'L', -2980=>'L', -2984=>'L', -2985=>'L', -2986=>'L', -2990=>'L', -2991=>'L', -2992=>'L', -2993=>'L', -2994=>'L', -2995=>'L', -2996=>'L', -2997=>'L', -2998=>'L', -2999=>'L', -3000=>'L', -3001=>'L', -3006=>'L', -3007=>'L', -3008=>'NSM', -3009=>'L', -3010=>'L', -3014=>'L', -3015=>'L', -3016=>'L', -3018=>'L', -3019=>'L', -3020=>'L', -3021=>'NSM', -3031=>'L', -3046=>'L', -3047=>'L', -3048=>'L', -3049=>'L', -3050=>'L', -3051=>'L', -3052=>'L', -3053=>'L', -3054=>'L', -3055=>'L', -3056=>'L', -3057=>'L', -3058=>'L', -3059=>'ON', -3060=>'ON', -3061=>'ON', -3062=>'ON', -3063=>'ON', -3064=>'ON', -3065=>'ET', -3066=>'ON', -3073=>'L', -3074=>'L', -3075=>'L', -3077=>'L', -3078=>'L', -3079=>'L', -3080=>'L', -3081=>'L', -3082=>'L', -3083=>'L', -3084=>'L', -3086=>'L', -3087=>'L', -3088=>'L', -3090=>'L', -3091=>'L', -3092=>'L', -3093=>'L', -3094=>'L', -3095=>'L', -3096=>'L', -3097=>'L', -3098=>'L', -3099=>'L', -3100=>'L', -3101=>'L', -3102=>'L', -3103=>'L', -3104=>'L', -3105=>'L', -3106=>'L', -3107=>'L', -3108=>'L', -3109=>'L', -3110=>'L', -3111=>'L', -3112=>'L', -3114=>'L', -3115=>'L', -3116=>'L', -3117=>'L', -3118=>'L', -3119=>'L', -3120=>'L', -3121=>'L', -3122=>'L', -3123=>'L', -3125=>'L', -3126=>'L', -3127=>'L', -3128=>'L', -3129=>'L', -3134=>'NSM', -3135=>'NSM', -3136=>'NSM', -3137=>'L', -3138=>'L', -3139=>'L', -3140=>'L', -3142=>'NSM', -3143=>'NSM', -3144=>'NSM', -3146=>'NSM', -3147=>'NSM', -3148=>'NSM', -3149=>'NSM', -3157=>'NSM', -3158=>'NSM', -3168=>'L', -3169=>'L', -3174=>'L', -3175=>'L', -3176=>'L', -3177=>'L', -3178=>'L', -3179=>'L', -3180=>'L', -3181=>'L', -3182=>'L', -3183=>'L', -3202=>'L', -3203=>'L', -3205=>'L', -3206=>'L', -3207=>'L', -3208=>'L', -3209=>'L', -3210=>'L', -3211=>'L', -3212=>'L', -3214=>'L', -3215=>'L', -3216=>'L', -3218=>'L', -3219=>'L', -3220=>'L', -3221=>'L', -3222=>'L', -3223=>'L', -3224=>'L', -3225=>'L', -3226=>'L', -3227=>'L', -3228=>'L', -3229=>'L', -3230=>'L', -3231=>'L', -3232=>'L', -3233=>'L', -3234=>'L', -3235=>'L', -3236=>'L', -3237=>'L', -3238=>'L', -3239=>'L', -3240=>'L', -3242=>'L', -3243=>'L', -3244=>'L', -3245=>'L', -3246=>'L', -3247=>'L', -3248=>'L', -3249=>'L', -3250=>'L', -3251=>'L', -3253=>'L', -3254=>'L', -3255=>'L', -3256=>'L', -3257=>'L', -3260=>'NSM', -3261=>'L', -3262=>'L', -3263=>'L', -3264=>'L', -3265=>'L', -3266=>'L', -3267=>'L', -3268=>'L', -3270=>'L', -3271=>'L', -3272=>'L', -3274=>'L', -3275=>'L', -3276=>'NSM', -3277=>'NSM', -3285=>'L', -3286=>'L', -3294=>'L', -3296=>'L', -3297=>'L', -3298=>'NSM', -3299=>'NSM', -3302=>'L', -3303=>'L', -3304=>'L', -3305=>'L', -3306=>'L', -3307=>'L', -3308=>'L', -3309=>'L', -3310=>'L', -3311=>'L', -3313=>'ON', -3314=>'ON', -3330=>'L', -3331=>'L', -3333=>'L', -3334=>'L', -3335=>'L', -3336=>'L', -3337=>'L', -3338=>'L', -3339=>'L', -3340=>'L', -3342=>'L', -3343=>'L', -3344=>'L', -3346=>'L', -3347=>'L', -3348=>'L', -3349=>'L', -3350=>'L', -3351=>'L', -3352=>'L', -3353=>'L', -3354=>'L', -3355=>'L', -3356=>'L', -3357=>'L', -3358=>'L', -3359=>'L', -3360=>'L', -3361=>'L', -3362=>'L', -3363=>'L', -3364=>'L', -3365=>'L', -3366=>'L', -3367=>'L', -3368=>'L', -3370=>'L', -3371=>'L', -3372=>'L', -3373=>'L', -3374=>'L', -3375=>'L', -3376=>'L', -3377=>'L', -3378=>'L', -3379=>'L', -3380=>'L', -3381=>'L', -3382=>'L', -3383=>'L', -3384=>'L', -3385=>'L', -3390=>'L', -3391=>'L', -3392=>'L', -3393=>'NSM', -3394=>'NSM', -3395=>'NSM', -3398=>'L', -3399=>'L', -3400=>'L', -3402=>'L', -3403=>'L', -3404=>'L', -3405=>'NSM', -3415=>'L', -3424=>'L', -3425=>'L', -3430=>'L', -3431=>'L', -3432=>'L', -3433=>'L', -3434=>'L', -3435=>'L', -3436=>'L', -3437=>'L', -3438=>'L', -3439=>'L', -3458=>'L', -3459=>'L', -3461=>'L', -3462=>'L', -3463=>'L', -3464=>'L', -3465=>'L', -3466=>'L', -3467=>'L', -3468=>'L', -3469=>'L', -3470=>'L', -3471=>'L', -3472=>'L', -3473=>'L', -3474=>'L', -3475=>'L', -3476=>'L', -3477=>'L', -3478=>'L', -3482=>'L', -3483=>'L', -3484=>'L', -3485=>'L', -3486=>'L', -3487=>'L', -3488=>'L', -3489=>'L', -3490=>'L', -3491=>'L', -3492=>'L', -3493=>'L', -3494=>'L', -3495=>'L', -3496=>'L', -3497=>'L', -3498=>'L', -3499=>'L', -3500=>'L', -3501=>'L', -3502=>'L', -3503=>'L', -3504=>'L', -3505=>'L', -3507=>'L', -3508=>'L', -3509=>'L', -3510=>'L', -3511=>'L', -3512=>'L', -3513=>'L', -3514=>'L', -3515=>'L', -3517=>'L', -3520=>'L', -3521=>'L', -3522=>'L', -3523=>'L', -3524=>'L', -3525=>'L', -3526=>'L', -3530=>'NSM', -3535=>'L', -3536=>'L', -3537=>'L', -3538=>'NSM', -3539=>'NSM', -3540=>'NSM', -3542=>'NSM', -3544=>'L', -3545=>'L', -3546=>'L', -3547=>'L', -3548=>'L', -3549=>'L', -3550=>'L', -3551=>'L', -3570=>'L', -3571=>'L', -3572=>'L', -3585=>'L', -3586=>'L', -3587=>'L', -3588=>'L', -3589=>'L', -3590=>'L', -3591=>'L', -3592=>'L', -3593=>'L', -3594=>'L', -3595=>'L', -3596=>'L', -3597=>'L', -3598=>'L', -3599=>'L', -3600=>'L', -3601=>'L', -3602=>'L', -3603=>'L', -3604=>'L', -3605=>'L', -3606=>'L', -3607=>'L', -3608=>'L', -3609=>'L', -3610=>'L', -3611=>'L', -3612=>'L', -3613=>'L', -3614=>'L', -3615=>'L', -3616=>'L', -3617=>'L', -3618=>'L', -3619=>'L', -3620=>'L', -3621=>'L', -3622=>'L', -3623=>'L', -3624=>'L', -3625=>'L', -3626=>'L', -3627=>'L', -3628=>'L', -3629=>'L', -3630=>'L', -3631=>'L', -3632=>'L', -3633=>'NSM', -3634=>'L', -3635=>'L', -3636=>'NSM', -3637=>'NSM', -3638=>'NSM', -3639=>'NSM', -3640=>'NSM', -3641=>'NSM', -3642=>'NSM', -3647=>'ET', -3648=>'L', -3649=>'L', -3650=>'L', -3651=>'L', -3652=>'L', -3653=>'L', -3654=>'L', -3655=>'NSM', -3656=>'NSM', -3657=>'NSM', -3658=>'NSM', -3659=>'NSM', -3660=>'NSM', -3661=>'NSM', -3662=>'NSM', -3663=>'L', -3664=>'L', -3665=>'L', -3666=>'L', -3667=>'L', -3668=>'L', -3669=>'L', -3670=>'L', -3671=>'L', -3672=>'L', -3673=>'L', -3674=>'L', -3675=>'L', -3713=>'L', -3714=>'L', -3716=>'L', -3719=>'L', -3720=>'L', -3722=>'L', -3725=>'L', -3732=>'L', -3733=>'L', -3734=>'L', -3735=>'L', -3737=>'L', -3738=>'L', -3739=>'L', -3740=>'L', -3741=>'L', -3742=>'L', -3743=>'L', -3745=>'L', -3746=>'L', -3747=>'L', -3749=>'L', -3751=>'L', -3754=>'L', -3755=>'L', -3757=>'L', -3758=>'L', -3759=>'L', -3760=>'L', -3761=>'NSM', -3762=>'L', -3763=>'L', -3764=>'NSM', -3765=>'NSM', -3766=>'NSM', -3767=>'NSM', -3768=>'NSM', -3769=>'NSM', -3771=>'NSM', -3772=>'NSM', -3773=>'L', -3776=>'L', -3777=>'L', -3778=>'L', -3779=>'L', -3780=>'L', -3782=>'L', -3784=>'NSM', -3785=>'NSM', -3786=>'NSM', -3787=>'NSM', -3788=>'NSM', -3789=>'NSM', -3792=>'L', -3793=>'L', -3794=>'L', -3795=>'L', -3796=>'L', -3797=>'L', -3798=>'L', -3799=>'L', -3800=>'L', -3801=>'L', -3804=>'L', -3805=>'L', -3840=>'L', -3841=>'L', -3842=>'L', -3843=>'L', -3844=>'L', -3845=>'L', -3846=>'L', -3847=>'L', -3848=>'L', -3849=>'L', -3850=>'L', -3851=>'L', -3852=>'L', -3853=>'L', -3854=>'L', -3855=>'L', -3856=>'L', -3857=>'L', -3858=>'L', -3859=>'L', -3860=>'L', -3861=>'L', -3862=>'L', -3863=>'L', -3864=>'NSM', -3865=>'NSM', -3866=>'L', -3867=>'L', -3868=>'L', -3869=>'L', -3870=>'L', -3871=>'L', -3872=>'L', -3873=>'L', -3874=>'L', -3875=>'L', -3876=>'L', -3877=>'L', -3878=>'L', -3879=>'L', -3880=>'L', -3881=>'L', -3882=>'L', -3883=>'L', -3884=>'L', -3885=>'L', -3886=>'L', -3887=>'L', -3888=>'L', -3889=>'L', -3890=>'L', -3891=>'L', -3892=>'L', -3893=>'NSM', -3894=>'L', -3895=>'NSM', -3896=>'L', -3897=>'NSM', -3898=>'ON', -3899=>'ON', -3900=>'ON', -3901=>'ON', -3902=>'L', -3903=>'L', -3904=>'L', -3905=>'L', -3906=>'L', -3907=>'L', -3908=>'L', -3909=>'L', -3910=>'L', -3911=>'L', -3913=>'L', -3914=>'L', -3915=>'L', -3916=>'L', -3917=>'L', -3918=>'L', -3919=>'L', -3920=>'L', -3921=>'L', -3922=>'L', -3923=>'L', -3924=>'L', -3925=>'L', -3926=>'L', -3927=>'L', -3928=>'L', -3929=>'L', -3930=>'L', -3931=>'L', -3932=>'L', -3933=>'L', -3934=>'L', -3935=>'L', -3936=>'L', -3937=>'L', -3938=>'L', -3939=>'L', -3940=>'L', -3941=>'L', -3942=>'L', -3943=>'L', -3944=>'L', -3945=>'L', -3946=>'L', -3953=>'NSM', -3954=>'NSM', -3955=>'NSM', -3956=>'NSM', -3957=>'NSM', -3958=>'NSM', -3959=>'NSM', -3960=>'NSM', -3961=>'NSM', -3962=>'NSM', -3963=>'NSM', -3964=>'NSM', -3965=>'NSM', -3966=>'NSM', -3967=>'L', -3968=>'NSM', -3969=>'NSM', -3970=>'NSM', -3971=>'NSM', -3972=>'NSM', -3973=>'L', -3974=>'NSM', -3975=>'NSM', -3976=>'L', -3977=>'L', -3978=>'L', -3979=>'L', -3984=>'NSM', -3985=>'NSM', -3986=>'NSM', -3987=>'NSM', -3988=>'NSM', -3989=>'NSM', -3990=>'NSM', -3991=>'NSM', -3993=>'NSM', -3994=>'NSM', -3995=>'NSM', -3996=>'NSM', -3997=>'NSM', -3998=>'NSM', -3999=>'NSM', -4000=>'NSM', -4001=>'NSM', -4002=>'NSM', -4003=>'NSM', -4004=>'NSM', -4005=>'NSM', -4006=>'NSM', -4007=>'NSM', -4008=>'NSM', -4009=>'NSM', -4010=>'NSM', -4011=>'NSM', -4012=>'NSM', -4013=>'NSM', -4014=>'NSM', -4015=>'NSM', -4016=>'NSM', -4017=>'NSM', -4018=>'NSM', -4019=>'NSM', -4020=>'NSM', -4021=>'NSM', -4022=>'NSM', -4023=>'NSM', -4024=>'NSM', -4025=>'NSM', -4026=>'NSM', -4027=>'NSM', -4028=>'NSM', -4030=>'L', -4031=>'L', -4032=>'L', -4033=>'L', -4034=>'L', -4035=>'L', -4036=>'L', -4037=>'L', -4038=>'NSM', -4039=>'L', -4040=>'L', -4041=>'L', -4042=>'L', -4043=>'L', -4044=>'L', -4047=>'L', -4048=>'L', -4049=>'L', -4096=>'L', -4097=>'L', -4098=>'L', -4099=>'L', -4100=>'L', -4101=>'L', -4102=>'L', -4103=>'L', -4104=>'L', -4105=>'L', -4106=>'L', -4107=>'L', -4108=>'L', -4109=>'L', -4110=>'L', -4111=>'L', -4112=>'L', -4113=>'L', -4114=>'L', -4115=>'L', -4116=>'L', -4117=>'L', -4118=>'L', -4119=>'L', -4120=>'L', -4121=>'L', -4122=>'L', -4123=>'L', -4124=>'L', -4125=>'L', -4126=>'L', -4127=>'L', -4128=>'L', -4129=>'L', -4131=>'L', -4132=>'L', -4133=>'L', -4134=>'L', -4135=>'L', -4137=>'L', -4138=>'L', -4140=>'L', -4141=>'NSM', -4142=>'NSM', -4143=>'NSM', -4144=>'NSM', -4145=>'L', -4146=>'NSM', -4150=>'NSM', -4151=>'NSM', -4152=>'L', -4153=>'NSM', -4160=>'L', -4161=>'L', -4162=>'L', -4163=>'L', -4164=>'L', -4165=>'L', -4166=>'L', -4167=>'L', -4168=>'L', -4169=>'L', -4170=>'L', -4171=>'L', -4172=>'L', -4173=>'L', -4174=>'L', -4175=>'L', -4176=>'L', -4177=>'L', -4178=>'L', -4179=>'L', -4180=>'L', -4181=>'L', -4182=>'L', -4183=>'L', -4184=>'NSM', -4185=>'NSM', -4256=>'L', -4257=>'L', -4258=>'L', -4259=>'L', -4260=>'L', -4261=>'L', -4262=>'L', -4263=>'L', -4264=>'L', -4265=>'L', -4266=>'L', -4267=>'L', -4268=>'L', -4269=>'L', -4270=>'L', -4271=>'L', -4272=>'L', -4273=>'L', -4274=>'L', -4275=>'L', -4276=>'L', -4277=>'L', -4278=>'L', -4279=>'L', -4280=>'L', -4281=>'L', -4282=>'L', -4283=>'L', -4284=>'L', -4285=>'L', -4286=>'L', -4287=>'L', -4288=>'L', -4289=>'L', -4290=>'L', -4291=>'L', -4292=>'L', -4293=>'L', -4304=>'L', -4305=>'L', -4306=>'L', -4307=>'L', -4308=>'L', -4309=>'L', -4310=>'L', -4311=>'L', -4312=>'L', -4313=>'L', -4314=>'L', -4315=>'L', -4316=>'L', -4317=>'L', -4318=>'L', -4319=>'L', -4320=>'L', -4321=>'L', -4322=>'L', -4323=>'L', -4324=>'L', -4325=>'L', -4326=>'L', -4327=>'L', -4328=>'L', -4329=>'L', -4330=>'L', -4331=>'L', -4332=>'L', -4333=>'L', -4334=>'L', -4335=>'L', -4336=>'L', -4337=>'L', -4338=>'L', -4339=>'L', -4340=>'L', -4341=>'L', -4342=>'L', -4343=>'L', -4344=>'L', -4345=>'L', -4346=>'L', -4347=>'L', -4348=>'L', -4352=>'L', -4353=>'L', -4354=>'L', -4355=>'L', -4356=>'L', -4357=>'L', -4358=>'L', -4359=>'L', -4360=>'L', -4361=>'L', -4362=>'L', -4363=>'L', -4364=>'L', -4365=>'L', -4366=>'L', -4367=>'L', -4368=>'L', -4369=>'L', -4370=>'L', -4371=>'L', -4372=>'L', -4373=>'L', -4374=>'L', -4375=>'L', -4376=>'L', -4377=>'L', -4378=>'L', -4379=>'L', -4380=>'L', -4381=>'L', -4382=>'L', -4383=>'L', -4384=>'L', -4385=>'L', -4386=>'L', -4387=>'L', -4388=>'L', -4389=>'L', -4390=>'L', -4391=>'L', -4392=>'L', -4393=>'L', -4394=>'L', -4395=>'L', -4396=>'L', -4397=>'L', -4398=>'L', -4399=>'L', -4400=>'L', -4401=>'L', -4402=>'L', -4403=>'L', -4404=>'L', -4405=>'L', -4406=>'L', -4407=>'L', -4408=>'L', -4409=>'L', -4410=>'L', -4411=>'L', -4412=>'L', -4413=>'L', -4414=>'L', -4415=>'L', -4416=>'L', -4417=>'L', -4418=>'L', -4419=>'L', -4420=>'L', -4421=>'L', -4422=>'L', -4423=>'L', -4424=>'L', -4425=>'L', -4426=>'L', -4427=>'L', -4428=>'L', -4429=>'L', -4430=>'L', -4431=>'L', -4432=>'L', -4433=>'L', -4434=>'L', -4435=>'L', -4436=>'L', -4437=>'L', -4438=>'L', -4439=>'L', -4440=>'L', -4441=>'L', -4447=>'L', -4448=>'L', -4449=>'L', -4450=>'L', -4451=>'L', -4452=>'L', -4453=>'L', -4454=>'L', -4455=>'L', -4456=>'L', -4457=>'L', -4458=>'L', -4459=>'L', -4460=>'L', -4461=>'L', -4462=>'L', -4463=>'L', -4464=>'L', -4465=>'L', -4466=>'L', -4467=>'L', -4468=>'L', -4469=>'L', -4470=>'L', -4471=>'L', -4472=>'L', -4473=>'L', -4474=>'L', -4475=>'L', -4476=>'L', -4477=>'L', -4478=>'L', -4479=>'L', -4480=>'L', -4481=>'L', -4482=>'L', -4483=>'L', -4484=>'L', -4485=>'L', -4486=>'L', -4487=>'L', -4488=>'L', -4489=>'L', -4490=>'L', -4491=>'L', -4492=>'L', -4493=>'L', -4494=>'L', -4495=>'L', -4496=>'L', -4497=>'L', -4498=>'L', -4499=>'L', -4500=>'L', -4501=>'L', -4502=>'L', -4503=>'L', -4504=>'L', -4505=>'L', -4506=>'L', -4507=>'L', -4508=>'L', -4509=>'L', -4510=>'L', -4511=>'L', -4512=>'L', -4513=>'L', -4514=>'L', -4520=>'L', -4521=>'L', -4522=>'L', -4523=>'L', -4524=>'L', -4525=>'L', -4526=>'L', -4527=>'L', -4528=>'L', -4529=>'L', -4530=>'L', -4531=>'L', -4532=>'L', -4533=>'L', -4534=>'L', -4535=>'L', -4536=>'L', -4537=>'L', -4538=>'L', -4539=>'L', -4540=>'L', -4541=>'L', -4542=>'L', -4543=>'L', -4544=>'L', -4545=>'L', -4546=>'L', -4547=>'L', -4548=>'L', -4549=>'L', -4550=>'L', -4551=>'L', -4552=>'L', -4553=>'L', -4554=>'L', -4555=>'L', -4556=>'L', -4557=>'L', -4558=>'L', -4559=>'L', -4560=>'L', -4561=>'L', -4562=>'L', -4563=>'L', -4564=>'L', -4565=>'L', -4566=>'L', -4567=>'L', -4568=>'L', -4569=>'L', -4570=>'L', -4571=>'L', -4572=>'L', -4573=>'L', -4574=>'L', -4575=>'L', -4576=>'L', -4577=>'L', -4578=>'L', -4579=>'L', -4580=>'L', -4581=>'L', -4582=>'L', -4583=>'L', -4584=>'L', -4585=>'L', -4586=>'L', -4587=>'L', -4588=>'L', -4589=>'L', -4590=>'L', -4591=>'L', -4592=>'L', -4593=>'L', -4594=>'L', -4595=>'L', -4596=>'L', -4597=>'L', -4598=>'L', -4599=>'L', -4600=>'L', -4601=>'L', -4608=>'L', -4609=>'L', -4610=>'L', -4611=>'L', -4612=>'L', -4613=>'L', -4614=>'L', -4615=>'L', -4616=>'L', -4617=>'L', -4618=>'L', -4619=>'L', -4620=>'L', -4621=>'L', -4622=>'L', -4623=>'L', -4624=>'L', -4625=>'L', -4626=>'L', -4627=>'L', -4628=>'L', -4629=>'L', -4630=>'L', -4631=>'L', -4632=>'L', -4633=>'L', -4634=>'L', -4635=>'L', -4636=>'L', -4637=>'L', -4638=>'L', -4639=>'L', -4640=>'L', -4641=>'L', -4642=>'L', -4643=>'L', -4644=>'L', -4645=>'L', -4646=>'L', -4647=>'L', -4648=>'L', -4649=>'L', -4650=>'L', -4651=>'L', -4652=>'L', -4653=>'L', -4654=>'L', -4655=>'L', -4656=>'L', -4657=>'L', -4658=>'L', -4659=>'L', -4660=>'L', -4661=>'L', -4662=>'L', -4663=>'L', -4664=>'L', -4665=>'L', -4666=>'L', -4667=>'L', -4668=>'L', -4669=>'L', -4670=>'L', -4671=>'L', -4672=>'L', -4673=>'L', -4674=>'L', -4675=>'L', -4676=>'L', -4677=>'L', -4678=>'L', -4679=>'L', -4680=>'L', -4682=>'L', -4683=>'L', -4684=>'L', -4685=>'L', -4688=>'L', -4689=>'L', -4690=>'L', -4691=>'L', -4692=>'L', -4693=>'L', -4694=>'L', -4696=>'L', -4698=>'L', -4699=>'L', -4700=>'L', -4701=>'L', -4704=>'L', -4705=>'L', -4706=>'L', -4707=>'L', -4708=>'L', -4709=>'L', -4710=>'L', -4711=>'L', -4712=>'L', -4713=>'L', -4714=>'L', -4715=>'L', -4716=>'L', -4717=>'L', -4718=>'L', -4719=>'L', -4720=>'L', -4721=>'L', -4722=>'L', -4723=>'L', -4724=>'L', -4725=>'L', -4726=>'L', -4727=>'L', -4728=>'L', -4729=>'L', -4730=>'L', -4731=>'L', -4732=>'L', -4733=>'L', -4734=>'L', -4735=>'L', -4736=>'L', -4737=>'L', -4738=>'L', -4739=>'L', -4740=>'L', -4741=>'L', -4742=>'L', -4743=>'L', -4744=>'L', -4746=>'L', -4747=>'L', -4748=>'L', -4749=>'L', -4752=>'L', -4753=>'L', -4754=>'L', -4755=>'L', -4756=>'L', -4757=>'L', -4758=>'L', -4759=>'L', -4760=>'L', -4761=>'L', -4762=>'L', -4763=>'L', -4764=>'L', -4765=>'L', -4766=>'L', -4767=>'L', -4768=>'L', -4769=>'L', -4770=>'L', -4771=>'L', -4772=>'L', -4773=>'L', -4774=>'L', -4775=>'L', -4776=>'L', -4777=>'L', -4778=>'L', -4779=>'L', -4780=>'L', -4781=>'L', -4782=>'L', -4783=>'L', -4784=>'L', -4786=>'L', -4787=>'L', -4788=>'L', -4789=>'L', -4792=>'L', -4793=>'L', -4794=>'L', -4795=>'L', -4796=>'L', -4797=>'L', -4798=>'L', -4800=>'L', -4802=>'L', -4803=>'L', -4804=>'L', -4805=>'L', -4808=>'L', -4809=>'L', -4810=>'L', -4811=>'L', -4812=>'L', -4813=>'L', -4814=>'L', -4815=>'L', -4816=>'L', -4817=>'L', -4818=>'L', -4819=>'L', -4820=>'L', -4821=>'L', -4822=>'L', -4824=>'L', -4825=>'L', -4826=>'L', -4827=>'L', -4828=>'L', -4829=>'L', -4830=>'L', -4831=>'L', -4832=>'L', -4833=>'L', -4834=>'L', -4835=>'L', -4836=>'L', -4837=>'L', -4838=>'L', -4839=>'L', -4840=>'L', -4841=>'L', -4842=>'L', -4843=>'L', -4844=>'L', -4845=>'L', -4846=>'L', -4847=>'L', -4848=>'L', -4849=>'L', -4850=>'L', -4851=>'L', -4852=>'L', -4853=>'L', -4854=>'L', -4855=>'L', -4856=>'L', -4857=>'L', -4858=>'L', -4859=>'L', -4860=>'L', -4861=>'L', -4862=>'L', -4863=>'L', -4864=>'L', -4865=>'L', -4866=>'L', -4867=>'L', -4868=>'L', -4869=>'L', -4870=>'L', -4871=>'L', -4872=>'L', -4873=>'L', -4874=>'L', -4875=>'L', -4876=>'L', -4877=>'L', -4878=>'L', -4879=>'L', -4880=>'L', -4882=>'L', -4883=>'L', -4884=>'L', -4885=>'L', -4888=>'L', -4889=>'L', -4890=>'L', -4891=>'L', -4892=>'L', -4893=>'L', -4894=>'L', -4895=>'L', -4896=>'L', -4897=>'L', -4898=>'L', -4899=>'L', -4900=>'L', -4901=>'L', -4902=>'L', -4903=>'L', -4904=>'L', -4905=>'L', -4906=>'L', -4907=>'L', -4908=>'L', -4909=>'L', -4910=>'L', -4911=>'L', -4912=>'L', -4913=>'L', -4914=>'L', -4915=>'L', -4916=>'L', -4917=>'L', -4918=>'L', -4919=>'L', -4920=>'L', -4921=>'L', -4922=>'L', -4923=>'L', -4924=>'L', -4925=>'L', -4926=>'L', -4927=>'L', -4928=>'L', -4929=>'L', -4930=>'L', -4931=>'L', -4932=>'L', -4933=>'L', -4934=>'L', -4935=>'L', -4936=>'L', -4937=>'L', -4938=>'L', -4939=>'L', -4940=>'L', -4941=>'L', -4942=>'L', -4943=>'L', -4944=>'L', -4945=>'L', -4946=>'L', -4947=>'L', -4948=>'L', -4949=>'L', -4950=>'L', -4951=>'L', -4952=>'L', -4953=>'L', -4954=>'L', -4959=>'NSM', -4960=>'L', -4961=>'L', -4962=>'L', -4963=>'L', -4964=>'L', -4965=>'L', -4966=>'L', -4967=>'L', -4968=>'L', -4969=>'L', -4970=>'L', -4971=>'L', -4972=>'L', -4973=>'L', -4974=>'L', -4975=>'L', -4976=>'L', -4977=>'L', -4978=>'L', -4979=>'L', -4980=>'L', -4981=>'L', -4982=>'L', -4983=>'L', -4984=>'L', -4985=>'L', -4986=>'L', -4987=>'L', -4988=>'L', -4992=>'L', -4993=>'L', -4994=>'L', -4995=>'L', -4996=>'L', -4997=>'L', -4998=>'L', -4999=>'L', -5000=>'L', -5001=>'L', -5002=>'L', -5003=>'L', -5004=>'L', -5005=>'L', -5006=>'L', -5007=>'L', -5008=>'ON', -5009=>'ON', -5010=>'ON', -5011=>'ON', -5012=>'ON', -5013=>'ON', -5014=>'ON', -5015=>'ON', -5016=>'ON', -5017=>'ON', -5024=>'L', -5025=>'L', -5026=>'L', -5027=>'L', -5028=>'L', -5029=>'L', -5030=>'L', -5031=>'L', -5032=>'L', -5033=>'L', -5034=>'L', -5035=>'L', -5036=>'L', -5037=>'L', -5038=>'L', -5039=>'L', -5040=>'L', -5041=>'L', -5042=>'L', -5043=>'L', -5044=>'L', -5045=>'L', -5046=>'L', -5047=>'L', -5048=>'L', -5049=>'L', -5050=>'L', -5051=>'L', -5052=>'L', -5053=>'L', -5054=>'L', -5055=>'L', -5056=>'L', -5057=>'L', -5058=>'L', -5059=>'L', -5060=>'L', -5061=>'L', -5062=>'L', -5063=>'L', -5064=>'L', -5065=>'L', -5066=>'L', -5067=>'L', -5068=>'L', -5069=>'L', -5070=>'L', -5071=>'L', -5072=>'L', -5073=>'L', -5074=>'L', -5075=>'L', -5076=>'L', -5077=>'L', -5078=>'L', -5079=>'L', -5080=>'L', -5081=>'L', -5082=>'L', -5083=>'L', -5084=>'L', -5085=>'L', -5086=>'L', -5087=>'L', -5088=>'L', -5089=>'L', -5090=>'L', -5091=>'L', -5092=>'L', -5093=>'L', -5094=>'L', -5095=>'L', -5096=>'L', -5097=>'L', -5098=>'L', -5099=>'L', -5100=>'L', -5101=>'L', -5102=>'L', -5103=>'L', -5104=>'L', -5105=>'L', -5106=>'L', -5107=>'L', -5108=>'L', -5121=>'L', -5122=>'L', -5123=>'L', -5124=>'L', -5125=>'L', -5126=>'L', -5127=>'L', -5128=>'L', -5129=>'L', -5130=>'L', -5131=>'L', -5132=>'L', -5133=>'L', -5134=>'L', -5135=>'L', -5136=>'L', -5137=>'L', -5138=>'L', -5139=>'L', -5140=>'L', -5141=>'L', -5142=>'L', -5143=>'L', -5144=>'L', -5145=>'L', -5146=>'L', -5147=>'L', -5148=>'L', -5149=>'L', -5150=>'L', -5151=>'L', -5152=>'L', -5153=>'L', -5154=>'L', -5155=>'L', -5156=>'L', -5157=>'L', -5158=>'L', -5159=>'L', -5160=>'L', -5161=>'L', -5162=>'L', -5163=>'L', -5164=>'L', -5165=>'L', -5166=>'L', -5167=>'L', -5168=>'L', -5169=>'L', -5170=>'L', -5171=>'L', -5172=>'L', -5173=>'L', -5174=>'L', -5175=>'L', -5176=>'L', -5177=>'L', -5178=>'L', -5179=>'L', -5180=>'L', -5181=>'L', -5182=>'L', -5183=>'L', -5184=>'L', -5185=>'L', -5186=>'L', -5187=>'L', -5188=>'L', -5189=>'L', -5190=>'L', -5191=>'L', -5192=>'L', -5193=>'L', -5194=>'L', -5195=>'L', -5196=>'L', -5197=>'L', -5198=>'L', -5199=>'L', -5200=>'L', -5201=>'L', -5202=>'L', -5203=>'L', -5204=>'L', -5205=>'L', -5206=>'L', -5207=>'L', -5208=>'L', -5209=>'L', -5210=>'L', -5211=>'L', -5212=>'L', -5213=>'L', -5214=>'L', -5215=>'L', -5216=>'L', -5217=>'L', -5218=>'L', -5219=>'L', -5220=>'L', -5221=>'L', -5222=>'L', -5223=>'L', -5224=>'L', -5225=>'L', -5226=>'L', -5227=>'L', -5228=>'L', -5229=>'L', -5230=>'L', -5231=>'L', -5232=>'L', -5233=>'L', -5234=>'L', -5235=>'L', -5236=>'L', -5237=>'L', -5238=>'L', -5239=>'L', -5240=>'L', -5241=>'L', -5242=>'L', -5243=>'L', -5244=>'L', -5245=>'L', -5246=>'L', -5247=>'L', -5248=>'L', -5249=>'L', -5250=>'L', -5251=>'L', -5252=>'L', -5253=>'L', -5254=>'L', -5255=>'L', -5256=>'L', -5257=>'L', -5258=>'L', -5259=>'L', -5260=>'L', -5261=>'L', -5262=>'L', -5263=>'L', -5264=>'L', -5265=>'L', -5266=>'L', -5267=>'L', -5268=>'L', -5269=>'L', -5270=>'L', -5271=>'L', -5272=>'L', -5273=>'L', -5274=>'L', -5275=>'L', -5276=>'L', -5277=>'L', -5278=>'L', -5279=>'L', -5280=>'L', -5281=>'L', -5282=>'L', -5283=>'L', -5284=>'L', -5285=>'L', -5286=>'L', -5287=>'L', -5288=>'L', -5289=>'L', -5290=>'L', -5291=>'L', -5292=>'L', -5293=>'L', -5294=>'L', -5295=>'L', -5296=>'L', -5297=>'L', -5298=>'L', -5299=>'L', -5300=>'L', -5301=>'L', -5302=>'L', -5303=>'L', -5304=>'L', -5305=>'L', -5306=>'L', -5307=>'L', -5308=>'L', -5309=>'L', -5310=>'L', -5311=>'L', -5312=>'L', -5313=>'L', -5314=>'L', -5315=>'L', -5316=>'L', -5317=>'L', -5318=>'L', -5319=>'L', -5320=>'L', -5321=>'L', -5322=>'L', -5323=>'L', -5324=>'L', -5325=>'L', -5326=>'L', -5327=>'L', -5328=>'L', -5329=>'L', -5330=>'L', -5331=>'L', -5332=>'L', -5333=>'L', -5334=>'L', -5335=>'L', -5336=>'L', -5337=>'L', -5338=>'L', -5339=>'L', -5340=>'L', -5341=>'L', -5342=>'L', -5343=>'L', -5344=>'L', -5345=>'L', -5346=>'L', -5347=>'L', -5348=>'L', -5349=>'L', -5350=>'L', -5351=>'L', -5352=>'L', -5353=>'L', -5354=>'L', -5355=>'L', -5356=>'L', -5357=>'L', -5358=>'L', -5359=>'L', -5360=>'L', -5361=>'L', -5362=>'L', -5363=>'L', -5364=>'L', -5365=>'L', -5366=>'L', -5367=>'L', -5368=>'L', -5369=>'L', -5370=>'L', -5371=>'L', -5372=>'L', -5373=>'L', -5374=>'L', -5375=>'L', -5376=>'L', -5377=>'L', -5378=>'L', -5379=>'L', -5380=>'L', -5381=>'L', -5382=>'L', -5383=>'L', -5384=>'L', -5385=>'L', -5386=>'L', -5387=>'L', -5388=>'L', -5389=>'L', -5390=>'L', -5391=>'L', -5392=>'L', -5393=>'L', -5394=>'L', -5395=>'L', -5396=>'L', -5397=>'L', -5398=>'L', -5399=>'L', -5400=>'L', -5401=>'L', -5402=>'L', -5403=>'L', -5404=>'L', -5405=>'L', -5406=>'L', -5407=>'L', -5408=>'L', -5409=>'L', -5410=>'L', -5411=>'L', -5412=>'L', -5413=>'L', -5414=>'L', -5415=>'L', -5416=>'L', -5417=>'L', -5418=>'L', -5419=>'L', -5420=>'L', -5421=>'L', -5422=>'L', -5423=>'L', -5424=>'L', -5425=>'L', -5426=>'L', -5427=>'L', -5428=>'L', -5429=>'L', -5430=>'L', -5431=>'L', -5432=>'L', -5433=>'L', -5434=>'L', -5435=>'L', -5436=>'L', -5437=>'L', -5438=>'L', -5439=>'L', -5440=>'L', -5441=>'L', -5442=>'L', -5443=>'L', -5444=>'L', -5445=>'L', -5446=>'L', -5447=>'L', -5448=>'L', -5449=>'L', -5450=>'L', -5451=>'L', -5452=>'L', -5453=>'L', -5454=>'L', -5455=>'L', -5456=>'L', -5457=>'L', -5458=>'L', -5459=>'L', -5460=>'L', -5461=>'L', -5462=>'L', -5463=>'L', -5464=>'L', -5465=>'L', -5466=>'L', -5467=>'L', -5468=>'L', -5469=>'L', -5470=>'L', -5471=>'L', -5472=>'L', -5473=>'L', -5474=>'L', -5475=>'L', -5476=>'L', -5477=>'L', -5478=>'L', -5479=>'L', -5480=>'L', -5481=>'L', -5482=>'L', -5483=>'L', -5484=>'L', -5485=>'L', -5486=>'L', -5487=>'L', -5488=>'L', -5489=>'L', -5490=>'L', -5491=>'L', -5492=>'L', -5493=>'L', -5494=>'L', -5495=>'L', -5496=>'L', -5497=>'L', -5498=>'L', -5499=>'L', -5500=>'L', -5501=>'L', -5502=>'L', -5503=>'L', -5504=>'L', -5505=>'L', -5506=>'L', -5507=>'L', -5508=>'L', -5509=>'L', -5510=>'L', -5511=>'L', -5512=>'L', -5513=>'L', -5514=>'L', -5515=>'L', -5516=>'L', -5517=>'L', -5518=>'L', -5519=>'L', -5520=>'L', -5521=>'L', -5522=>'L', -5523=>'L', -5524=>'L', -5525=>'L', -5526=>'L', -5527=>'L', -5528=>'L', -5529=>'L', -5530=>'L', -5531=>'L', -5532=>'L', -5533=>'L', -5534=>'L', -5535=>'L', -5536=>'L', -5537=>'L', -5538=>'L', -5539=>'L', -5540=>'L', -5541=>'L', -5542=>'L', -5543=>'L', -5544=>'L', -5545=>'L', -5546=>'L', -5547=>'L', -5548=>'L', -5549=>'L', -5550=>'L', -5551=>'L', -5552=>'L', -5553=>'L', -5554=>'L', -5555=>'L', -5556=>'L', -5557=>'L', -5558=>'L', -5559=>'L', -5560=>'L', -5561=>'L', -5562=>'L', -5563=>'L', -5564=>'L', -5565=>'L', -5566=>'L', -5567=>'L', -5568=>'L', -5569=>'L', -5570=>'L', -5571=>'L', -5572=>'L', -5573=>'L', -5574=>'L', -5575=>'L', -5576=>'L', -5577=>'L', -5578=>'L', -5579=>'L', -5580=>'L', -5581=>'L', -5582=>'L', -5583=>'L', -5584=>'L', -5585=>'L', -5586=>'L', -5587=>'L', -5588=>'L', -5589=>'L', -5590=>'L', -5591=>'L', -5592=>'L', -5593=>'L', -5594=>'L', -5595=>'L', -5596=>'L', -5597=>'L', -5598=>'L', -5599=>'L', -5600=>'L', -5601=>'L', -5602=>'L', -5603=>'L', -5604=>'L', -5605=>'L', -5606=>'L', -5607=>'L', -5608=>'L', -5609=>'L', -5610=>'L', -5611=>'L', -5612=>'L', -5613=>'L', -5614=>'L', -5615=>'L', -5616=>'L', -5617=>'L', -5618=>'L', -5619=>'L', -5620=>'L', -5621=>'L', -5622=>'L', -5623=>'L', -5624=>'L', -5625=>'L', -5626=>'L', -5627=>'L', -5628=>'L', -5629=>'L', -5630=>'L', -5631=>'L', -5632=>'L', -5633=>'L', -5634=>'L', -5635=>'L', -5636=>'L', -5637=>'L', -5638=>'L', -5639=>'L', -5640=>'L', -5641=>'L', -5642=>'L', -5643=>'L', -5644=>'L', -5645=>'L', -5646=>'L', -5647=>'L', -5648=>'L', -5649=>'L', -5650=>'L', -5651=>'L', -5652=>'L', -5653=>'L', -5654=>'L', -5655=>'L', -5656=>'L', -5657=>'L', -5658=>'L', -5659=>'L', -5660=>'L', -5661=>'L', -5662=>'L', -5663=>'L', -5664=>'L', -5665=>'L', -5666=>'L', -5667=>'L', -5668=>'L', -5669=>'L', -5670=>'L', -5671=>'L', -5672=>'L', -5673=>'L', -5674=>'L', -5675=>'L', -5676=>'L', -5677=>'L', -5678=>'L', -5679=>'L', -5680=>'L', -5681=>'L', -5682=>'L', -5683=>'L', -5684=>'L', -5685=>'L', -5686=>'L', -5687=>'L', -5688=>'L', -5689=>'L', -5690=>'L', -5691=>'L', -5692=>'L', -5693=>'L', -5694=>'L', -5695=>'L', -5696=>'L', -5697=>'L', -5698=>'L', -5699=>'L', -5700=>'L', -5701=>'L', -5702=>'L', -5703=>'L', -5704=>'L', -5705=>'L', -5706=>'L', -5707=>'L', -5708=>'L', -5709=>'L', -5710=>'L', -5711=>'L', -5712=>'L', -5713=>'L', -5714=>'L', -5715=>'L', -5716=>'L', -5717=>'L', -5718=>'L', -5719=>'L', -5720=>'L', -5721=>'L', -5722=>'L', -5723=>'L', -5724=>'L', -5725=>'L', -5726=>'L', -5727=>'L', -5728=>'L', -5729=>'L', -5730=>'L', -5731=>'L', -5732=>'L', -5733=>'L', -5734=>'L', -5735=>'L', -5736=>'L', -5737=>'L', -5738=>'L', -5739=>'L', -5740=>'L', -5741=>'L', -5742=>'L', -5743=>'L', -5744=>'L', -5745=>'L', -5746=>'L', -5747=>'L', -5748=>'L', -5749=>'L', -5750=>'L', -5760=>'WS', -5761=>'L', -5762=>'L', -5763=>'L', -5764=>'L', -5765=>'L', -5766=>'L', -5767=>'L', -5768=>'L', -5769=>'L', -5770=>'L', -5771=>'L', -5772=>'L', -5773=>'L', -5774=>'L', -5775=>'L', -5776=>'L', -5777=>'L', -5778=>'L', -5779=>'L', -5780=>'L', -5781=>'L', -5782=>'L', -5783=>'L', -5784=>'L', -5785=>'L', -5786=>'L', -5787=>'ON', -5788=>'ON', -5792=>'L', -5793=>'L', -5794=>'L', -5795=>'L', -5796=>'L', -5797=>'L', -5798=>'L', -5799=>'L', -5800=>'L', -5801=>'L', -5802=>'L', -5803=>'L', -5804=>'L', -5805=>'L', -5806=>'L', -5807=>'L', -5808=>'L', -5809=>'L', -5810=>'L', -5811=>'L', -5812=>'L', -5813=>'L', -5814=>'L', -5815=>'L', -5816=>'L', -5817=>'L', -5818=>'L', -5819=>'L', -5820=>'L', -5821=>'L', -5822=>'L', -5823=>'L', -5824=>'L', -5825=>'L', -5826=>'L', -5827=>'L', -5828=>'L', -5829=>'L', -5830=>'L', -5831=>'L', -5832=>'L', -5833=>'L', -5834=>'L', -5835=>'L', -5836=>'L', -5837=>'L', -5838=>'L', -5839=>'L', -5840=>'L', -5841=>'L', -5842=>'L', -5843=>'L', -5844=>'L', -5845=>'L', -5846=>'L', -5847=>'L', -5848=>'L', -5849=>'L', -5850=>'L', -5851=>'L', -5852=>'L', -5853=>'L', -5854=>'L', -5855=>'L', -5856=>'L', -5857=>'L', -5858=>'L', -5859=>'L', -5860=>'L', -5861=>'L', -5862=>'L', -5863=>'L', -5864=>'L', -5865=>'L', -5866=>'L', -5867=>'L', -5868=>'L', -5869=>'L', -5870=>'L', -5871=>'L', -5872=>'L', -5888=>'L', -5889=>'L', -5890=>'L', -5891=>'L', -5892=>'L', -5893=>'L', -5894=>'L', -5895=>'L', -5896=>'L', -5897=>'L', -5898=>'L', -5899=>'L', -5900=>'L', -5902=>'L', -5903=>'L', -5904=>'L', -5905=>'L', -5906=>'NSM', -5907=>'NSM', -5908=>'NSM', -5920=>'L', -5921=>'L', -5922=>'L', -5923=>'L', -5924=>'L', -5925=>'L', -5926=>'L', -5927=>'L', -5928=>'L', -5929=>'L', -5930=>'L', -5931=>'L', -5932=>'L', -5933=>'L', -5934=>'L', -5935=>'L', -5936=>'L', -5937=>'L', -5938=>'NSM', -5939=>'NSM', -5940=>'NSM', -5941=>'L', -5942=>'L', -5952=>'L', -5953=>'L', -5954=>'L', -5955=>'L', -5956=>'L', -5957=>'L', -5958=>'L', -5959=>'L', -5960=>'L', -5961=>'L', -5962=>'L', -5963=>'L', -5964=>'L', -5965=>'L', -5966=>'L', -5967=>'L', -5968=>'L', -5969=>'L', -5970=>'NSM', -5971=>'NSM', -5984=>'L', -5985=>'L', -5986=>'L', -5987=>'L', -5988=>'L', -5989=>'L', -5990=>'L', -5991=>'L', -5992=>'L', -5993=>'L', -5994=>'L', -5995=>'L', -5996=>'L', -5998=>'L', -5999=>'L', -6000=>'L', -6002=>'NSM', -6003=>'NSM', -6016=>'L', -6017=>'L', -6018=>'L', -6019=>'L', -6020=>'L', -6021=>'L', -6022=>'L', -6023=>'L', -6024=>'L', -6025=>'L', -6026=>'L', -6027=>'L', -6028=>'L', -6029=>'L', -6030=>'L', -6031=>'L', -6032=>'L', -6033=>'L', -6034=>'L', -6035=>'L', -6036=>'L', -6037=>'L', -6038=>'L', -6039=>'L', -6040=>'L', -6041=>'L', -6042=>'L', -6043=>'L', -6044=>'L', -6045=>'L', -6046=>'L', -6047=>'L', -6048=>'L', -6049=>'L', -6050=>'L', -6051=>'L', -6052=>'L', -6053=>'L', -6054=>'L', -6055=>'L', -6056=>'L', -6057=>'L', -6058=>'L', -6059=>'L', -6060=>'L', -6061=>'L', -6062=>'L', -6063=>'L', -6064=>'L', -6065=>'L', -6066=>'L', -6067=>'L', -6068=>'L', -6069=>'L', -6070=>'L', -6071=>'NSM', -6072=>'NSM', -6073=>'NSM', -6074=>'NSM', -6075=>'NSM', -6076=>'NSM', -6077=>'NSM', -6078=>'L', -6079=>'L', -6080=>'L', -6081=>'L', -6082=>'L', -6083=>'L', -6084=>'L', -6085=>'L', -6086=>'NSM', -6087=>'L', -6088=>'L', -6089=>'NSM', -6090=>'NSM', -6091=>'NSM', -6092=>'NSM', -6093=>'NSM', -6094=>'NSM', -6095=>'NSM', -6096=>'NSM', -6097=>'NSM', -6098=>'NSM', -6099=>'NSM', -6100=>'L', -6101=>'L', -6102=>'L', -6103=>'L', -6104=>'L', -6105=>'L', -6106=>'L', -6107=>'ET', -6108=>'L', -6109=>'NSM', -6112=>'L', -6113=>'L', -6114=>'L', -6115=>'L', -6116=>'L', -6117=>'L', -6118=>'L', -6119=>'L', -6120=>'L', -6121=>'L', -6128=>'ON', -6129=>'ON', -6130=>'ON', -6131=>'ON', -6132=>'ON', -6133=>'ON', -6134=>'ON', -6135=>'ON', -6136=>'ON', -6137=>'ON', -6144=>'ON', -6145=>'ON', -6146=>'ON', -6147=>'ON', -6148=>'ON', -6149=>'ON', -6150=>'ON', -6151=>'ON', -6152=>'ON', -6153=>'ON', -6154=>'ON', -6155=>'NSM', -6156=>'NSM', -6157=>'NSM', -6158=>'WS', -6160=>'L', -6161=>'L', -6162=>'L', -6163=>'L', -6164=>'L', -6165=>'L', -6166=>'L', -6167=>'L', -6168=>'L', -6169=>'L', -6176=>'L', -6177=>'L', -6178=>'L', -6179=>'L', -6180=>'L', -6181=>'L', -6182=>'L', -6183=>'L', -6184=>'L', -6185=>'L', -6186=>'L', -6187=>'L', -6188=>'L', -6189=>'L', -6190=>'L', -6191=>'L', -6192=>'L', -6193=>'L', -6194=>'L', -6195=>'L', -6196=>'L', -6197=>'L', -6198=>'L', -6199=>'L', -6200=>'L', -6201=>'L', -6202=>'L', -6203=>'L', -6204=>'L', -6205=>'L', -6206=>'L', -6207=>'L', -6208=>'L', -6209=>'L', -6210=>'L', -6211=>'L', -6212=>'L', -6213=>'L', -6214=>'L', -6215=>'L', -6216=>'L', -6217=>'L', -6218=>'L', -6219=>'L', -6220=>'L', -6221=>'L', -6222=>'L', -6223=>'L', -6224=>'L', -6225=>'L', -6226=>'L', -6227=>'L', -6228=>'L', -6229=>'L', -6230=>'L', -6231=>'L', -6232=>'L', -6233=>'L', -6234=>'L', -6235=>'L', -6236=>'L', -6237=>'L', -6238=>'L', -6239=>'L', -6240=>'L', -6241=>'L', -6242=>'L', -6243=>'L', -6244=>'L', -6245=>'L', -6246=>'L', -6247=>'L', -6248=>'L', -6249=>'L', -6250=>'L', -6251=>'L', -6252=>'L', -6253=>'L', -6254=>'L', -6255=>'L', -6256=>'L', -6257=>'L', -6258=>'L', -6259=>'L', -6260=>'L', -6261=>'L', -6262=>'L', -6263=>'L', -6272=>'L', -6273=>'L', -6274=>'L', -6275=>'L', -6276=>'L', -6277=>'L', -6278=>'L', -6279=>'L', -6280=>'L', -6281=>'L', -6282=>'L', -6283=>'L', -6284=>'L', -6285=>'L', -6286=>'L', -6287=>'L', -6288=>'L', -6289=>'L', -6290=>'L', -6291=>'L', -6292=>'L', -6293=>'L', -6294=>'L', -6295=>'L', -6296=>'L', -6297=>'L', -6298=>'L', -6299=>'L', -6300=>'L', -6301=>'L', -6302=>'L', -6303=>'L', -6304=>'L', -6305=>'L', -6306=>'L', -6307=>'L', -6308=>'L', -6309=>'L', -6310=>'L', -6311=>'L', -6312=>'L', -6313=>'NSM', -6400=>'L', -6401=>'L', -6402=>'L', -6403=>'L', -6404=>'L', -6405=>'L', -6406=>'L', -6407=>'L', -6408=>'L', -6409=>'L', -6410=>'L', -6411=>'L', -6412=>'L', -6413=>'L', -6414=>'L', -6415=>'L', -6416=>'L', -6417=>'L', -6418=>'L', -6419=>'L', -6420=>'L', -6421=>'L', -6422=>'L', -6423=>'L', -6424=>'L', -6425=>'L', -6426=>'L', -6427=>'L', -6428=>'L', -6432=>'NSM', -6433=>'NSM', -6434=>'NSM', -6435=>'L', -6436=>'L', -6437=>'L', -6438=>'L', -6439=>'NSM', -6440=>'NSM', -6441=>'NSM', -6442=>'NSM', -6443=>'NSM', -6448=>'L', -6449=>'L', -6450=>'NSM', -6451=>'L', -6452=>'L', -6453=>'L', -6454=>'L', -6455=>'L', -6456=>'L', -6457=>'NSM', -6458=>'NSM', -6459=>'NSM', -6464=>'ON', -6468=>'ON', -6469=>'ON', -6470=>'L', -6471=>'L', -6472=>'L', -6473=>'L', -6474=>'L', -6475=>'L', -6476=>'L', -6477=>'L', -6478=>'L', -6479=>'L', -6480=>'L', -6481=>'L', -6482=>'L', -6483=>'L', -6484=>'L', -6485=>'L', -6486=>'L', -6487=>'L', -6488=>'L', -6489=>'L', -6490=>'L', -6491=>'L', -6492=>'L', -6493=>'L', -6494=>'L', -6495=>'L', -6496=>'L', -6497=>'L', -6498=>'L', -6499=>'L', -6500=>'L', -6501=>'L', -6502=>'L', -6503=>'L', -6504=>'L', -6505=>'L', -6506=>'L', -6507=>'L', -6508=>'L', -6509=>'L', -6512=>'L', -6513=>'L', -6514=>'L', -6515=>'L', -6516=>'L', -6528=>'L', -6529=>'L', -6530=>'L', -6531=>'L', -6532=>'L', -6533=>'L', -6534=>'L', -6535=>'L', -6536=>'L', -6537=>'L', -6538=>'L', -6539=>'L', -6540=>'L', -6541=>'L', -6542=>'L', -6543=>'L', -6544=>'L', -6545=>'L', -6546=>'L', -6547=>'L', -6548=>'L', -6549=>'L', -6550=>'L', -6551=>'L', -6552=>'L', -6553=>'L', -6554=>'L', -6555=>'L', -6556=>'L', -6557=>'L', -6558=>'L', -6559=>'L', -6560=>'L', -6561=>'L', -6562=>'L', -6563=>'L', -6564=>'L', -6565=>'L', -6566=>'L', -6567=>'L', -6568=>'L', -6569=>'L', -6576=>'L', -6577=>'L', -6578=>'L', -6579=>'L', -6580=>'L', -6581=>'L', -6582=>'L', -6583=>'L', -6584=>'L', -6585=>'L', -6586=>'L', -6587=>'L', -6588=>'L', -6589=>'L', -6590=>'L', -6591=>'L', -6592=>'L', -6593=>'L', -6594=>'L', -6595=>'L', -6596=>'L', -6597=>'L', -6598=>'L', -6599=>'L', -6600=>'L', -6601=>'L', -6608=>'L', -6609=>'L', -6610=>'L', -6611=>'L', -6612=>'L', -6613=>'L', -6614=>'L', -6615=>'L', -6616=>'L', -6617=>'L', -6622=>'ON', -6623=>'ON', -6624=>'ON', -6625=>'ON', -6626=>'ON', -6627=>'ON', -6628=>'ON', -6629=>'ON', -6630=>'ON', -6631=>'ON', -6632=>'ON', -6633=>'ON', -6634=>'ON', -6635=>'ON', -6636=>'ON', -6637=>'ON', -6638=>'ON', -6639=>'ON', -6640=>'ON', -6641=>'ON', -6642=>'ON', -6643=>'ON', -6644=>'ON', -6645=>'ON', -6646=>'ON', -6647=>'ON', -6648=>'ON', -6649=>'ON', -6650=>'ON', -6651=>'ON', -6652=>'ON', -6653=>'ON', -6654=>'ON', -6655=>'ON', -6656=>'L', -6657=>'L', -6658=>'L', -6659=>'L', -6660=>'L', -6661=>'L', -6662=>'L', -6663=>'L', -6664=>'L', -6665=>'L', -6666=>'L', -6667=>'L', -6668=>'L', -6669=>'L', -6670=>'L', -6671=>'L', -6672=>'L', -6673=>'L', -6674=>'L', -6675=>'L', -6676=>'L', -6677=>'L', -6678=>'L', -6679=>'NSM', -6680=>'NSM', -6681=>'L', -6682=>'L', -6683=>'L', -6686=>'L', -6687=>'L', -6912=>'NSM', -6913=>'NSM', -6914=>'NSM', -6915=>'NSM', -6916=>'L', -6917=>'L', -6918=>'L', -6919=>'L', -6920=>'L', -6921=>'L', -6922=>'L', -6923=>'L', -6924=>'L', -6925=>'L', -6926=>'L', -6927=>'L', -6928=>'L', -6929=>'L', -6930=>'L', -6931=>'L', -6932=>'L', -6933=>'L', -6934=>'L', -6935=>'L', -6936=>'L', -6937=>'L', -6938=>'L', -6939=>'L', -6940=>'L', -6941=>'L', -6942=>'L', -6943=>'L', -6944=>'L', -6945=>'L', -6946=>'L', -6947=>'L', -6948=>'L', -6949=>'L', -6950=>'L', -6951=>'L', -6952=>'L', -6953=>'L', -6954=>'L', -6955=>'L', -6956=>'L', -6957=>'L', -6958=>'L', -6959=>'L', -6960=>'L', -6961=>'L', -6962=>'L', -6963=>'L', -6964=>'NSM', -6965=>'L', -6966=>'NSM', -6967=>'NSM', -6968=>'NSM', -6969=>'NSM', -6970=>'NSM', -6971=>'L', -6972=>'NSM', -6973=>'L', -6974=>'L', -6975=>'L', -6976=>'L', -6977=>'L', -6978=>'NSM', -6979=>'L', -6980=>'L', -6981=>'L', -6982=>'L', -6983=>'L', -6984=>'L', -6985=>'L', -6986=>'L', -6987=>'L', -6992=>'L', -6993=>'L', -6994=>'L', -6995=>'L', -6996=>'L', -6997=>'L', -6998=>'L', -6999=>'L', -7000=>'L', -7001=>'L', -7002=>'L', -7003=>'L', -7004=>'L', -7005=>'L', -7006=>'L', -7007=>'L', -7008=>'L', -7009=>'L', -7010=>'L', -7011=>'L', -7012=>'L', -7013=>'L', -7014=>'L', -7015=>'L', -7016=>'L', -7017=>'L', -7018=>'L', -7019=>'NSM', -7020=>'NSM', -7021=>'NSM', -7022=>'NSM', -7023=>'NSM', -7024=>'NSM', -7025=>'NSM', -7026=>'NSM', -7027=>'NSM', -7028=>'L', -7029=>'L', -7030=>'L', -7031=>'L', -7032=>'L', -7033=>'L', -7034=>'L', -7035=>'L', -7036=>'L', -7424=>'L', -7425=>'L', -7426=>'L', -7427=>'L', -7428=>'L', -7429=>'L', -7430=>'L', -7431=>'L', -7432=>'L', -7433=>'L', -7434=>'L', -7435=>'L', -7436=>'L', -7437=>'L', -7438=>'L', -7439=>'L', -7440=>'L', -7441=>'L', -7442=>'L', -7443=>'L', -7444=>'L', -7445=>'L', -7446=>'L', -7447=>'L', -7448=>'L', -7449=>'L', -7450=>'L', -7451=>'L', -7452=>'L', -7453=>'L', -7454=>'L', -7455=>'L', -7456=>'L', -7457=>'L', -7458=>'L', -7459=>'L', -7460=>'L', -7461=>'L', -7462=>'L', -7463=>'L', -7464=>'L', -7465=>'L', -7466=>'L', -7467=>'L', -7468=>'L', -7469=>'L', -7470=>'L', -7471=>'L', -7472=>'L', -7473=>'L', -7474=>'L', -7475=>'L', -7476=>'L', -7477=>'L', -7478=>'L', -7479=>'L', -7480=>'L', -7481=>'L', -7482=>'L', -7483=>'L', -7484=>'L', -7485=>'L', -7486=>'L', -7487=>'L', -7488=>'L', -7489=>'L', -7490=>'L', -7491=>'L', -7492=>'L', -7493=>'L', -7494=>'L', -7495=>'L', -7496=>'L', -7497=>'L', -7498=>'L', -7499=>'L', -7500=>'L', -7501=>'L', -7502=>'L', -7503=>'L', -7504=>'L', -7505=>'L', -7506=>'L', -7507=>'L', -7508=>'L', -7509=>'L', -7510=>'L', -7511=>'L', -7512=>'L', -7513=>'L', -7514=>'L', -7515=>'L', -7516=>'L', -7517=>'L', -7518=>'L', -7519=>'L', -7520=>'L', -7521=>'L', -7522=>'L', -7523=>'L', -7524=>'L', -7525=>'L', -7526=>'L', -7527=>'L', -7528=>'L', -7529=>'L', -7530=>'L', -7531=>'L', -7532=>'L', -7533=>'L', -7534=>'L', -7535=>'L', -7536=>'L', -7537=>'L', -7538=>'L', -7539=>'L', -7540=>'L', -7541=>'L', -7542=>'L', -7543=>'L', -7544=>'L', -7545=>'L', -7546=>'L', -7547=>'L', -7548=>'L', -7549=>'L', -7550=>'L', -7551=>'L', -7552=>'L', -7553=>'L', -7554=>'L', -7555=>'L', -7556=>'L', -7557=>'L', -7558=>'L', -7559=>'L', -7560=>'L', -7561=>'L', -7562=>'L', -7563=>'L', -7564=>'L', -7565=>'L', -7566=>'L', -7567=>'L', -7568=>'L', -7569=>'L', -7570=>'L', -7571=>'L', -7572=>'L', -7573=>'L', -7574=>'L', -7575=>'L', -7576=>'L', -7577=>'L', -7578=>'L', -7579=>'L', -7580=>'L', -7581=>'L', -7582=>'L', -7583=>'L', -7584=>'L', -7585=>'L', -7586=>'L', -7587=>'L', -7588=>'L', -7589=>'L', -7590=>'L', -7591=>'L', -7592=>'L', -7593=>'L', -7594=>'L', -7595=>'L', -7596=>'L', -7597=>'L', -7598=>'L', -7599=>'L', -7600=>'L', -7601=>'L', -7602=>'L', -7603=>'L', -7604=>'L', -7605=>'L', -7606=>'L', -7607=>'L', -7608=>'L', -7609=>'L', -7610=>'L', -7611=>'L', -7612=>'L', -7613=>'L', -7614=>'L', -7615=>'L', -7616=>'NSM', -7617=>'NSM', -7618=>'NSM', -7619=>'NSM', -7620=>'NSM', -7621=>'NSM', -7622=>'NSM', -7623=>'NSM', -7624=>'NSM', -7625=>'NSM', -7626=>'NSM', -7678=>'NSM', -7679=>'NSM', -7680=>'L', -7681=>'L', -7682=>'L', -7683=>'L', -7684=>'L', -7685=>'L', -7686=>'L', -7687=>'L', -7688=>'L', -7689=>'L', -7690=>'L', -7691=>'L', -7692=>'L', -7693=>'L', -7694=>'L', -7695=>'L', -7696=>'L', -7697=>'L', -7698=>'L', -7699=>'L', -7700=>'L', -7701=>'L', -7702=>'L', -7703=>'L', -7704=>'L', -7705=>'L', -7706=>'L', -7707=>'L', -7708=>'L', -7709=>'L', -7710=>'L', -7711=>'L', -7712=>'L', -7713=>'L', -7714=>'L', -7715=>'L', -7716=>'L', -7717=>'L', -7718=>'L', -7719=>'L', -7720=>'L', -7721=>'L', -7722=>'L', -7723=>'L', -7724=>'L', -7725=>'L', -7726=>'L', -7727=>'L', -7728=>'L', -7729=>'L', -7730=>'L', -7731=>'L', -7732=>'L', -7733=>'L', -7734=>'L', -7735=>'L', -7736=>'L', -7737=>'L', -7738=>'L', -7739=>'L', -7740=>'L', -7741=>'L', -7742=>'L', -7743=>'L', -7744=>'L', -7745=>'L', -7746=>'L', -7747=>'L', -7748=>'L', -7749=>'L', -7750=>'L', -7751=>'L', -7752=>'L', -7753=>'L', -7754=>'L', -7755=>'L', -7756=>'L', -7757=>'L', -7758=>'L', -7759=>'L', -7760=>'L', -7761=>'L', -7762=>'L', -7763=>'L', -7764=>'L', -7765=>'L', -7766=>'L', -7767=>'L', -7768=>'L', -7769=>'L', -7770=>'L', -7771=>'L', -7772=>'L', -7773=>'L', -7774=>'L', -7775=>'L', -7776=>'L', -7777=>'L', -7778=>'L', -7779=>'L', -7780=>'L', -7781=>'L', -7782=>'L', -7783=>'L', -7784=>'L', -7785=>'L', -7786=>'L', -7787=>'L', -7788=>'L', -7789=>'L', -7790=>'L', -7791=>'L', -7792=>'L', -7793=>'L', -7794=>'L', -7795=>'L', -7796=>'L', -7797=>'L', -7798=>'L', -7799=>'L', -7800=>'L', -7801=>'L', -7802=>'L', -7803=>'L', -7804=>'L', -7805=>'L', -7806=>'L', -7807=>'L', -7808=>'L', -7809=>'L', -7810=>'L', -7811=>'L', -7812=>'L', -7813=>'L', -7814=>'L', -7815=>'L', -7816=>'L', -7817=>'L', -7818=>'L', -7819=>'L', -7820=>'L', -7821=>'L', -7822=>'L', -7823=>'L', -7824=>'L', -7825=>'L', -7826=>'L', -7827=>'L', -7828=>'L', -7829=>'L', -7830=>'L', -7831=>'L', -7832=>'L', -7833=>'L', -7834=>'L', -7835=>'L', -7840=>'L', -7841=>'L', -7842=>'L', -7843=>'L', -7844=>'L', -7845=>'L', -7846=>'L', -7847=>'L', -7848=>'L', -7849=>'L', -7850=>'L', -7851=>'L', -7852=>'L', -7853=>'L', -7854=>'L', -7855=>'L', -7856=>'L', -7857=>'L', -7858=>'L', -7859=>'L', -7860=>'L', -7861=>'L', -7862=>'L', -7863=>'L', -7864=>'L', -7865=>'L', -7866=>'L', -7867=>'L', -7868=>'L', -7869=>'L', -7870=>'L', -7871=>'L', -7872=>'L', -7873=>'L', -7874=>'L', -7875=>'L', -7876=>'L', -7877=>'L', -7878=>'L', -7879=>'L', -7880=>'L', -7881=>'L', -7882=>'L', -7883=>'L', -7884=>'L', -7885=>'L', -7886=>'L', -7887=>'L', -7888=>'L', -7889=>'L', -7890=>'L', -7891=>'L', -7892=>'L', -7893=>'L', -7894=>'L', -7895=>'L', -7896=>'L', -7897=>'L', -7898=>'L', -7899=>'L', -7900=>'L', -7901=>'L', -7902=>'L', -7903=>'L', -7904=>'L', -7905=>'L', -7906=>'L', -7907=>'L', -7908=>'L', -7909=>'L', -7910=>'L', -7911=>'L', -7912=>'L', -7913=>'L', -7914=>'L', -7915=>'L', -7916=>'L', -7917=>'L', -7918=>'L', -7919=>'L', -7920=>'L', -7921=>'L', -7922=>'L', -7923=>'L', -7924=>'L', -7925=>'L', -7926=>'L', -7927=>'L', -7928=>'L', -7929=>'L', -7936=>'L', -7937=>'L', -7938=>'L', -7939=>'L', -7940=>'L', -7941=>'L', -7942=>'L', -7943=>'L', -7944=>'L', -7945=>'L', -7946=>'L', -7947=>'L', -7948=>'L', -7949=>'L', -7950=>'L', -7951=>'L', -7952=>'L', -7953=>'L', -7954=>'L', -7955=>'L', -7956=>'L', -7957=>'L', -7960=>'L', -7961=>'L', -7962=>'L', -7963=>'L', -7964=>'L', -7965=>'L', -7968=>'L', -7969=>'L', -7970=>'L', -7971=>'L', -7972=>'L', -7973=>'L', -7974=>'L', -7975=>'L', -7976=>'L', -7977=>'L', -7978=>'L', -7979=>'L', -7980=>'L', -7981=>'L', -7982=>'L', -7983=>'L', -7984=>'L', -7985=>'L', -7986=>'L', -7987=>'L', -7988=>'L', -7989=>'L', -7990=>'L', -7991=>'L', -7992=>'L', -7993=>'L', -7994=>'L', -7995=>'L', -7996=>'L', -7997=>'L', -7998=>'L', -7999=>'L', -8000=>'L', -8001=>'L', -8002=>'L', -8003=>'L', -8004=>'L', -8005=>'L', -8008=>'L', -8009=>'L', -8010=>'L', -8011=>'L', -8012=>'L', -8013=>'L', -8016=>'L', -8017=>'L', -8018=>'L', -8019=>'L', -8020=>'L', -8021=>'L', -8022=>'L', -8023=>'L', -8025=>'L', -8027=>'L', -8029=>'L', -8031=>'L', -8032=>'L', -8033=>'L', -8034=>'L', -8035=>'L', -8036=>'L', -8037=>'L', -8038=>'L', -8039=>'L', -8040=>'L', -8041=>'L', -8042=>'L', -8043=>'L', -8044=>'L', -8045=>'L', -8046=>'L', -8047=>'L', -8048=>'L', -8049=>'L', -8050=>'L', -8051=>'L', -8052=>'L', -8053=>'L', -8054=>'L', -8055=>'L', -8056=>'L', -8057=>'L', -8058=>'L', -8059=>'L', -8060=>'L', -8061=>'L', -8064=>'L', -8065=>'L', -8066=>'L', -8067=>'L', -8068=>'L', -8069=>'L', -8070=>'L', -8071=>'L', -8072=>'L', -8073=>'L', -8074=>'L', -8075=>'L', -8076=>'L', -8077=>'L', -8078=>'L', -8079=>'L', -8080=>'L', -8081=>'L', -8082=>'L', -8083=>'L', -8084=>'L', -8085=>'L', -8086=>'L', -8087=>'L', -8088=>'L', -8089=>'L', -8090=>'L', -8091=>'L', -8092=>'L', -8093=>'L', -8094=>'L', -8095=>'L', -8096=>'L', -8097=>'L', -8098=>'L', -8099=>'L', -8100=>'L', -8101=>'L', -8102=>'L', -8103=>'L', -8104=>'L', -8105=>'L', -8106=>'L', -8107=>'L', -8108=>'L', -8109=>'L', -8110=>'L', -8111=>'L', -8112=>'L', -8113=>'L', -8114=>'L', -8115=>'L', -8116=>'L', -8118=>'L', -8119=>'L', -8120=>'L', -8121=>'L', -8122=>'L', -8123=>'L', -8124=>'L', -8125=>'ON', -8126=>'L', -8127=>'ON', -8128=>'ON', -8129=>'ON', -8130=>'L', -8131=>'L', -8132=>'L', -8134=>'L', -8135=>'L', -8136=>'L', -8137=>'L', -8138=>'L', -8139=>'L', -8140=>'L', -8141=>'ON', -8142=>'ON', -8143=>'ON', -8144=>'L', -8145=>'L', -8146=>'L', -8147=>'L', -8150=>'L', -8151=>'L', -8152=>'L', -8153=>'L', -8154=>'L', -8155=>'L', -8157=>'ON', -8158=>'ON', -8159=>'ON', -8160=>'L', -8161=>'L', -8162=>'L', -8163=>'L', -8164=>'L', -8165=>'L', -8166=>'L', -8167=>'L', -8168=>'L', -8169=>'L', -8170=>'L', -8171=>'L', -8172=>'L', -8173=>'ON', -8174=>'ON', -8175=>'ON', -8178=>'L', -8179=>'L', -8180=>'L', -8182=>'L', -8183=>'L', -8184=>'L', -8185=>'L', -8186=>'L', -8187=>'L', -8188=>'L', -8189=>'ON', -8190=>'ON', -8192=>'WS', -8193=>'WS', -8194=>'WS', -8195=>'WS', -8196=>'WS', -8197=>'WS', -8198=>'WS', -8199=>'WS', -8200=>'WS', -8201=>'WS', -8202=>'WS', -8203=>'BN', -8204=>'BN', -8205=>'BN', -8206=>'L', -8207=>'R', -8208=>'ON', -8209=>'ON', -8210=>'ON', -8211=>'ON', -8212=>'ON', -8213=>'ON', -8214=>'ON', -8215=>'ON', -8216=>'ON', -8217=>'ON', -8218=>'ON', -8219=>'ON', -8220=>'ON', -8221=>'ON', -8222=>'ON', -8223=>'ON', -8224=>'ON', -8225=>'ON', -8226=>'ON', -8227=>'ON', -8228=>'ON', -8229=>'ON', -8230=>'ON', -8231=>'ON', -8232=>'WS', -8233=>'B', -8234=>'LRE', -8235=>'RLE', -8236=>'PDF', -8237=>'LRO', -8238=>'RLO', -8239=>'CS', -8240=>'ET', -8241=>'ET', -8242=>'ET', -8243=>'ET', -8244=>'ET', -8245=>'ON', -8246=>'ON', -8247=>'ON', -8248=>'ON', -8249=>'ON', -8250=>'ON', -8251=>'ON', -8252=>'ON', -8253=>'ON', -8254=>'ON', -8255=>'ON', -8256=>'ON', -8257=>'ON', -8258=>'ON', -8259=>'ON', -8260=>'CS', -8261=>'ON', -8262=>'ON', -8263=>'ON', -8264=>'ON', -8265=>'ON', -8266=>'ON', -8267=>'ON', -8268=>'ON', -8269=>'ON', -8270=>'ON', -8271=>'ON', -8272=>'ON', -8273=>'ON', -8274=>'ON', -8275=>'ON', -8276=>'ON', -8277=>'ON', -8278=>'ON', -8279=>'ON', -8280=>'ON', -8281=>'ON', -8282=>'ON', -8283=>'ON', -8284=>'ON', -8285=>'ON', -8286=>'ON', -8287=>'WS', -8288=>'BN', -8289=>'BN', -8290=>'BN', -8291=>'BN', -8298=>'BN', -8299=>'BN', -8300=>'BN', -8301=>'BN', -8302=>'BN', -8303=>'BN', -8304=>'EN', -8305=>'L', -8308=>'EN', -8309=>'EN', -8310=>'EN', -8311=>'EN', -8312=>'EN', -8313=>'EN', -8314=>'ES', -8315=>'ES', -8316=>'ON', -8317=>'ON', -8318=>'ON', -8319=>'L', -8320=>'EN', -8321=>'EN', -8322=>'EN', -8323=>'EN', -8324=>'EN', -8325=>'EN', -8326=>'EN', -8327=>'EN', -8328=>'EN', -8329=>'EN', -8330=>'ES', -8331=>'ES', -8332=>'ON', -8333=>'ON', -8334=>'ON', -8336=>'L', -8337=>'L', -8338=>'L', -8339=>'L', -8340=>'L', -8352=>'ET', -8353=>'ET', -8354=>'ET', -8355=>'ET', -8356=>'ET', -8357=>'ET', -8358=>'ET', -8359=>'ET', -8360=>'ET', -8361=>'ET', -8362=>'ET', -8363=>'ET', -8364=>'ET', -8365=>'ET', -8366=>'ET', -8367=>'ET', -8368=>'ET', -8369=>'ET', -8370=>'ET', -8371=>'ET', -8372=>'ET', -8373=>'ET', -8400=>'NSM', -8401=>'NSM', -8402=>'NSM', -8403=>'NSM', -8404=>'NSM', -8405=>'NSM', -8406=>'NSM', -8407=>'NSM', -8408=>'NSM', -8409=>'NSM', -8410=>'NSM', -8411=>'NSM', -8412=>'NSM', -8413=>'NSM', -8414=>'NSM', -8415=>'NSM', -8416=>'NSM', -8417=>'NSM', -8418=>'NSM', -8419=>'NSM', -8420=>'NSM', -8421=>'NSM', -8422=>'NSM', -8423=>'NSM', -8424=>'NSM', -8425=>'NSM', -8426=>'NSM', -8427=>'NSM', -8428=>'NSM', -8429=>'NSM', -8430=>'NSM', -8431=>'NSM', -8448=>'ON', -8449=>'ON', -8450=>'L', -8451=>'ON', -8452=>'ON', -8453=>'ON', -8454=>'ON', -8455=>'L', -8456=>'ON', -8457=>'ON', -8458=>'L', -8459=>'L', -8460=>'L', -8461=>'L', -8462=>'L', -8463=>'L', -8464=>'L', -8465=>'L', -8466=>'L', -8467=>'L', -8468=>'ON', -8469=>'L', -8470=>'ON', -8471=>'ON', -8472=>'ON', -8473=>'L', -8474=>'L', -8475=>'L', -8476=>'L', -8477=>'L', -8478=>'ON', -8479=>'ON', -8480=>'ON', -8481=>'ON', -8482=>'ON', -8483=>'ON', -8484=>'L', -8485=>'ON', -8486=>'L', -8487=>'ON', -8488=>'L', -8489=>'ON', -8490=>'L', -8491=>'L', -8492=>'L', -8493=>'L', -8494=>'ET', -8495=>'L', -8496=>'L', -8497=>'L', -8498=>'L', -8499=>'L', -8500=>'L', -8501=>'L', -8502=>'L', -8503=>'L', -8504=>'L', -8505=>'L', -8506=>'ON', -8507=>'ON', -8508=>'L', -8509=>'L', -8510=>'L', -8511=>'L', -8512=>'ON', -8513=>'ON', -8514=>'ON', -8515=>'ON', -8516=>'ON', -8517=>'L', -8518=>'L', -8519=>'L', -8520=>'L', -8521=>'L', -8522=>'ON', -8523=>'ON', -8524=>'ON', -8525=>'ON', -8526=>'L', -8531=>'ON', -8532=>'ON', -8533=>'ON', -8534=>'ON', -8535=>'ON', -8536=>'ON', -8537=>'ON', -8538=>'ON', -8539=>'ON', -8540=>'ON', -8541=>'ON', -8542=>'ON', -8543=>'ON', -8544=>'L', -8545=>'L', -8546=>'L', -8547=>'L', -8548=>'L', -8549=>'L', -8550=>'L', -8551=>'L', -8552=>'L', -8553=>'L', -8554=>'L', -8555=>'L', -8556=>'L', -8557=>'L', -8558=>'L', -8559=>'L', -8560=>'L', -8561=>'L', -8562=>'L', -8563=>'L', -8564=>'L', -8565=>'L', -8566=>'L', -8567=>'L', -8568=>'L', -8569=>'L', -8570=>'L', -8571=>'L', -8572=>'L', -8573=>'L', -8574=>'L', -8575=>'L', -8576=>'L', -8577=>'L', -8578=>'L', -8579=>'L', -8580=>'L', -8592=>'ON', -8593=>'ON', -8594=>'ON', -8595=>'ON', -8596=>'ON', -8597=>'ON', -8598=>'ON', -8599=>'ON', -8600=>'ON', -8601=>'ON', -8602=>'ON', -8603=>'ON', -8604=>'ON', -8605=>'ON', -8606=>'ON', -8607=>'ON', -8608=>'ON', -8609=>'ON', -8610=>'ON', -8611=>'ON', -8612=>'ON', -8613=>'ON', -8614=>'ON', -8615=>'ON', -8616=>'ON', -8617=>'ON', -8618=>'ON', -8619=>'ON', -8620=>'ON', -8621=>'ON', -8622=>'ON', -8623=>'ON', -8624=>'ON', -8625=>'ON', -8626=>'ON', -8627=>'ON', -8628=>'ON', -8629=>'ON', -8630=>'ON', -8631=>'ON', -8632=>'ON', -8633=>'ON', -8634=>'ON', -8635=>'ON', -8636=>'ON', -8637=>'ON', -8638=>'ON', -8639=>'ON', -8640=>'ON', -8641=>'ON', -8642=>'ON', -8643=>'ON', -8644=>'ON', -8645=>'ON', -8646=>'ON', -8647=>'ON', -8648=>'ON', -8649=>'ON', -8650=>'ON', -8651=>'ON', -8652=>'ON', -8653=>'ON', -8654=>'ON', -8655=>'ON', -8656=>'ON', -8657=>'ON', -8658=>'ON', -8659=>'ON', -8660=>'ON', -8661=>'ON', -8662=>'ON', -8663=>'ON', -8664=>'ON', -8665=>'ON', -8666=>'ON', -8667=>'ON', -8668=>'ON', -8669=>'ON', -8670=>'ON', -8671=>'ON', -8672=>'ON', -8673=>'ON', -8674=>'ON', -8675=>'ON', -8676=>'ON', -8677=>'ON', -8678=>'ON', -8679=>'ON', -8680=>'ON', -8681=>'ON', -8682=>'ON', -8683=>'ON', -8684=>'ON', -8685=>'ON', -8686=>'ON', -8687=>'ON', -8688=>'ON', -8689=>'ON', -8690=>'ON', -8691=>'ON', -8692=>'ON', -8693=>'ON', -8694=>'ON', -8695=>'ON', -8696=>'ON', -8697=>'ON', -8698=>'ON', -8699=>'ON', -8700=>'ON', -8701=>'ON', -8702=>'ON', -8703=>'ON', -8704=>'ON', -8705=>'ON', -8706=>'ON', -8707=>'ON', -8708=>'ON', -8709=>'ON', -8710=>'ON', -8711=>'ON', -8712=>'ON', -8713=>'ON', -8714=>'ON', -8715=>'ON', -8716=>'ON', -8717=>'ON', -8718=>'ON', -8719=>'ON', -8720=>'ON', -8721=>'ON', -8722=>'ES', -8723=>'ET', -8724=>'ON', -8725=>'ON', -8726=>'ON', -8727=>'ON', -8728=>'ON', -8729=>'ON', -8730=>'ON', -8731=>'ON', -8732=>'ON', -8733=>'ON', -8734=>'ON', -8735=>'ON', -8736=>'ON', -8737=>'ON', -8738=>'ON', -8739=>'ON', -8740=>'ON', -8741=>'ON', -8742=>'ON', -8743=>'ON', -8744=>'ON', -8745=>'ON', -8746=>'ON', -8747=>'ON', -8748=>'ON', -8749=>'ON', -8750=>'ON', -8751=>'ON', -8752=>'ON', -8753=>'ON', -8754=>'ON', -8755=>'ON', -8756=>'ON', -8757=>'ON', -8758=>'ON', -8759=>'ON', -8760=>'ON', -8761=>'ON', -8762=>'ON', -8763=>'ON', -8764=>'ON', -8765=>'ON', -8766=>'ON', -8767=>'ON', -8768=>'ON', -8769=>'ON', -8770=>'ON', -8771=>'ON', -8772=>'ON', -8773=>'ON', -8774=>'ON', -8775=>'ON', -8776=>'ON', -8777=>'ON', -8778=>'ON', -8779=>'ON', -8780=>'ON', -8781=>'ON', -8782=>'ON', -8783=>'ON', -8784=>'ON', -8785=>'ON', -8786=>'ON', -8787=>'ON', -8788=>'ON', -8789=>'ON', -8790=>'ON', -8791=>'ON', -8792=>'ON', -8793=>'ON', -8794=>'ON', -8795=>'ON', -8796=>'ON', -8797=>'ON', -8798=>'ON', -8799=>'ON', -8800=>'ON', -8801=>'ON', -8802=>'ON', -8803=>'ON', -8804=>'ON', -8805=>'ON', -8806=>'ON', -8807=>'ON', -8808=>'ON', -8809=>'ON', -8810=>'ON', -8811=>'ON', -8812=>'ON', -8813=>'ON', -8814=>'ON', -8815=>'ON', -8816=>'ON', -8817=>'ON', -8818=>'ON', -8819=>'ON', -8820=>'ON', -8821=>'ON', -8822=>'ON', -8823=>'ON', -8824=>'ON', -8825=>'ON', -8826=>'ON', -8827=>'ON', -8828=>'ON', -8829=>'ON', -8830=>'ON', -8831=>'ON', -8832=>'ON', -8833=>'ON', -8834=>'ON', -8835=>'ON', -8836=>'ON', -8837=>'ON', -8838=>'ON', -8839=>'ON', -8840=>'ON', -8841=>'ON', -8842=>'ON', -8843=>'ON', -8844=>'ON', -8845=>'ON', -8846=>'ON', -8847=>'ON', -8848=>'ON', -8849=>'ON', -8850=>'ON', -8851=>'ON', -8852=>'ON', -8853=>'ON', -8854=>'ON', -8855=>'ON', -8856=>'ON', -8857=>'ON', -8858=>'ON', -8859=>'ON', -8860=>'ON', -8861=>'ON', -8862=>'ON', -8863=>'ON', -8864=>'ON', -8865=>'ON', -8866=>'ON', -8867=>'ON', -8868=>'ON', -8869=>'ON', -8870=>'ON', -8871=>'ON', -8872=>'ON', -8873=>'ON', -8874=>'ON', -8875=>'ON', -8876=>'ON', -8877=>'ON', -8878=>'ON', -8879=>'ON', -8880=>'ON', -8881=>'ON', -8882=>'ON', -8883=>'ON', -8884=>'ON', -8885=>'ON', -8886=>'ON', -8887=>'ON', -8888=>'ON', -8889=>'ON', -8890=>'ON', -8891=>'ON', -8892=>'ON', -8893=>'ON', -8894=>'ON', -8895=>'ON', -8896=>'ON', -8897=>'ON', -8898=>'ON', -8899=>'ON', -8900=>'ON', -8901=>'ON', -8902=>'ON', -8903=>'ON', -8904=>'ON', -8905=>'ON', -8906=>'ON', -8907=>'ON', -8908=>'ON', -8909=>'ON', -8910=>'ON', -8911=>'ON', -8912=>'ON', -8913=>'ON', -8914=>'ON', -8915=>'ON', -8916=>'ON', -8917=>'ON', -8918=>'ON', -8919=>'ON', -8920=>'ON', -8921=>'ON', -8922=>'ON', -8923=>'ON', -8924=>'ON', -8925=>'ON', -8926=>'ON', -8927=>'ON', -8928=>'ON', -8929=>'ON', -8930=>'ON', -8931=>'ON', -8932=>'ON', -8933=>'ON', -8934=>'ON', -8935=>'ON', -8936=>'ON', -8937=>'ON', -8938=>'ON', -8939=>'ON', -8940=>'ON', -8941=>'ON', -8942=>'ON', -8943=>'ON', -8944=>'ON', -8945=>'ON', -8946=>'ON', -8947=>'ON', -8948=>'ON', -8949=>'ON', -8950=>'ON', -8951=>'ON', -8952=>'ON', -8953=>'ON', -8954=>'ON', -8955=>'ON', -8956=>'ON', -8957=>'ON', -8958=>'ON', -8959=>'ON', -8960=>'ON', -8961=>'ON', -8962=>'ON', -8963=>'ON', -8964=>'ON', -8965=>'ON', -8966=>'ON', -8967=>'ON', -8968=>'ON', -8969=>'ON', -8970=>'ON', -8971=>'ON', -8972=>'ON', -8973=>'ON', -8974=>'ON', -8975=>'ON', -8976=>'ON', -8977=>'ON', -8978=>'ON', -8979=>'ON', -8980=>'ON', -8981=>'ON', -8982=>'ON', -8983=>'ON', -8984=>'ON', -8985=>'ON', -8986=>'ON', -8987=>'ON', -8988=>'ON', -8989=>'ON', -8990=>'ON', -8991=>'ON', -8992=>'ON', -8993=>'ON', -8994=>'ON', -8995=>'ON', -8996=>'ON', -8997=>'ON', -8998=>'ON', -8999=>'ON', -9000=>'ON', -9001=>'ON', -9002=>'ON', -9003=>'ON', -9004=>'ON', -9005=>'ON', -9006=>'ON', -9007=>'ON', -9008=>'ON', -9009=>'ON', -9010=>'ON', -9011=>'ON', -9012=>'ON', -9013=>'ON', -9014=>'L', -9015=>'L', -9016=>'L', -9017=>'L', -9018=>'L', -9019=>'L', -9020=>'L', -9021=>'L', -9022=>'L', -9023=>'L', -9024=>'L', -9025=>'L', -9026=>'L', -9027=>'L', -9028=>'L', -9029=>'L', -9030=>'L', -9031=>'L', -9032=>'L', -9033=>'L', -9034=>'L', -9035=>'L', -9036=>'L', -9037=>'L', -9038=>'L', -9039=>'L', -9040=>'L', -9041=>'L', -9042=>'L', -9043=>'L', -9044=>'L', -9045=>'L', -9046=>'L', -9047=>'L', -9048=>'L', -9049=>'L', -9050=>'L', -9051=>'L', -9052=>'L', -9053=>'L', -9054=>'L', -9055=>'L', -9056=>'L', -9057=>'L', -9058=>'L', -9059=>'L', -9060=>'L', -9061=>'L', -9062=>'L', -9063=>'L', -9064=>'L', -9065=>'L', -9066=>'L', -9067=>'L', -9068=>'L', -9069=>'L', -9070=>'L', -9071=>'L', -9072=>'L', -9073=>'L', -9074=>'L', -9075=>'L', -9076=>'L', -9077=>'L', -9078=>'L', -9079=>'L', -9080=>'L', -9081=>'L', -9082=>'L', -9083=>'ON', -9084=>'ON', -9085=>'ON', -9086=>'ON', -9087=>'ON', -9088=>'ON', -9089=>'ON', -9090=>'ON', -9091=>'ON', -9092=>'ON', -9093=>'ON', -9094=>'ON', -9095=>'ON', -9096=>'ON', -9097=>'ON', -9098=>'ON', -9099=>'ON', -9100=>'ON', -9101=>'ON', -9102=>'ON', -9103=>'ON', -9104=>'ON', -9105=>'ON', -9106=>'ON', -9107=>'ON', -9108=>'ON', -9109=>'L', -9110=>'ON', -9111=>'ON', -9112=>'ON', -9113=>'ON', -9114=>'ON', -9115=>'ON', -9116=>'ON', -9117=>'ON', -9118=>'ON', -9119=>'ON', -9120=>'ON', -9121=>'ON', -9122=>'ON', -9123=>'ON', -9124=>'ON', -9125=>'ON', -9126=>'ON', -9127=>'ON', -9128=>'ON', -9129=>'ON', -9130=>'ON', -9131=>'ON', -9132=>'ON', -9133=>'ON', -9134=>'ON', -9135=>'ON', -9136=>'ON', -9137=>'ON', -9138=>'ON', -9139=>'ON', -9140=>'ON', -9141=>'ON', -9142=>'ON', -9143=>'ON', -9144=>'ON', -9145=>'ON', -9146=>'ON', -9147=>'ON', -9148=>'ON', -9149=>'ON', -9150=>'ON', -9151=>'ON', -9152=>'ON', -9153=>'ON', -9154=>'ON', -9155=>'ON', -9156=>'ON', -9157=>'ON', -9158=>'ON', -9159=>'ON', -9160=>'ON', -9161=>'ON', -9162=>'ON', -9163=>'ON', -9164=>'ON', -9165=>'ON', -9166=>'ON', -9167=>'ON', -9168=>'ON', -9169=>'ON', -9170=>'ON', -9171=>'ON', -9172=>'ON', -9173=>'ON', -9174=>'ON', -9175=>'ON', -9176=>'ON', -9177=>'ON', -9178=>'ON', -9179=>'ON', -9180=>'ON', -9181=>'ON', -9182=>'ON', -9183=>'ON', -9184=>'ON', -9185=>'ON', -9186=>'ON', -9187=>'ON', -9188=>'ON', -9189=>'ON', -9190=>'ON', -9191=>'ON', -9216=>'ON', -9217=>'ON', -9218=>'ON', -9219=>'ON', -9220=>'ON', -9221=>'ON', -9222=>'ON', -9223=>'ON', -9224=>'ON', -9225=>'ON', -9226=>'ON', -9227=>'ON', -9228=>'ON', -9229=>'ON', -9230=>'ON', -9231=>'ON', -9232=>'ON', -9233=>'ON', -9234=>'ON', -9235=>'ON', -9236=>'ON', -9237=>'ON', -9238=>'ON', -9239=>'ON', -9240=>'ON', -9241=>'ON', -9242=>'ON', -9243=>'ON', -9244=>'ON', -9245=>'ON', -9246=>'ON', -9247=>'ON', -9248=>'ON', -9249=>'ON', -9250=>'ON', -9251=>'ON', -9252=>'ON', -9253=>'ON', -9254=>'ON', -9280=>'ON', -9281=>'ON', -9282=>'ON', -9283=>'ON', -9284=>'ON', -9285=>'ON', -9286=>'ON', -9287=>'ON', -9288=>'ON', -9289=>'ON', -9290=>'ON', -9312=>'ON', -9313=>'ON', -9314=>'ON', -9315=>'ON', -9316=>'ON', -9317=>'ON', -9318=>'ON', -9319=>'ON', -9320=>'ON', -9321=>'ON', -9322=>'ON', -9323=>'ON', -9324=>'ON', -9325=>'ON', -9326=>'ON', -9327=>'ON', -9328=>'ON', -9329=>'ON', -9330=>'ON', -9331=>'ON', -9332=>'ON', -9333=>'ON', -9334=>'ON', -9335=>'ON', -9336=>'ON', -9337=>'ON', -9338=>'ON', -9339=>'ON', -9340=>'ON', -9341=>'ON', -9342=>'ON', -9343=>'ON', -9344=>'ON', -9345=>'ON', -9346=>'ON', -9347=>'ON', -9348=>'ON', -9349=>'ON', -9350=>'ON', -9351=>'ON', -9352=>'EN', -9353=>'EN', -9354=>'EN', -9355=>'EN', -9356=>'EN', -9357=>'EN', -9358=>'EN', -9359=>'EN', -9360=>'EN', -9361=>'EN', -9362=>'EN', -9363=>'EN', -9364=>'EN', -9365=>'EN', -9366=>'EN', -9367=>'EN', -9368=>'EN', -9369=>'EN', -9370=>'EN', -9371=>'EN', -9372=>'L', -9373=>'L', -9374=>'L', -9375=>'L', -9376=>'L', -9377=>'L', -9378=>'L', -9379=>'L', -9380=>'L', -9381=>'L', -9382=>'L', -9383=>'L', -9384=>'L', -9385=>'L', -9386=>'L', -9387=>'L', -9388=>'L', -9389=>'L', -9390=>'L', -9391=>'L', -9392=>'L', -9393=>'L', -9394=>'L', -9395=>'L', -9396=>'L', -9397=>'L', -9398=>'L', -9399=>'L', -9400=>'L', -9401=>'L', -9402=>'L', -9403=>'L', -9404=>'L', -9405=>'L', -9406=>'L', -9407=>'L', -9408=>'L', -9409=>'L', -9410=>'L', -9411=>'L', -9412=>'L', -9413=>'L', -9414=>'L', -9415=>'L', -9416=>'L', -9417=>'L', -9418=>'L', -9419=>'L', -9420=>'L', -9421=>'L', -9422=>'L', -9423=>'L', -9424=>'L', -9425=>'L', -9426=>'L', -9427=>'L', -9428=>'L', -9429=>'L', -9430=>'L', -9431=>'L', -9432=>'L', -9433=>'L', -9434=>'L', -9435=>'L', -9436=>'L', -9437=>'L', -9438=>'L', -9439=>'L', -9440=>'L', -9441=>'L', -9442=>'L', -9443=>'L', -9444=>'L', -9445=>'L', -9446=>'L', -9447=>'L', -9448=>'L', -9449=>'L', -9450=>'ON', -9451=>'ON', -9452=>'ON', -9453=>'ON', -9454=>'ON', -9455=>'ON', -9456=>'ON', -9457=>'ON', -9458=>'ON', -9459=>'ON', -9460=>'ON', -9461=>'ON', -9462=>'ON', -9463=>'ON', -9464=>'ON', -9465=>'ON', -9466=>'ON', -9467=>'ON', -9468=>'ON', -9469=>'ON', -9470=>'ON', -9471=>'ON', -9472=>'ON', -9473=>'ON', -9474=>'ON', -9475=>'ON', -9476=>'ON', -9477=>'ON', -9478=>'ON', -9479=>'ON', -9480=>'ON', -9481=>'ON', -9482=>'ON', -9483=>'ON', -9484=>'ON', -9485=>'ON', -9486=>'ON', -9487=>'ON', -9488=>'ON', -9489=>'ON', -9490=>'ON', -9491=>'ON', -9492=>'ON', -9493=>'ON', -9494=>'ON', -9495=>'ON', -9496=>'ON', -9497=>'ON', -9498=>'ON', -9499=>'ON', -9500=>'ON', -9501=>'ON', -9502=>'ON', -9503=>'ON', -9504=>'ON', -9505=>'ON', -9506=>'ON', -9507=>'ON', -9508=>'ON', -9509=>'ON', -9510=>'ON', -9511=>'ON', -9512=>'ON', -9513=>'ON', -9514=>'ON', -9515=>'ON', -9516=>'ON', -9517=>'ON', -9518=>'ON', -9519=>'ON', -9520=>'ON', -9521=>'ON', -9522=>'ON', -9523=>'ON', -9524=>'ON', -9525=>'ON', -9526=>'ON', -9527=>'ON', -9528=>'ON', -9529=>'ON', -9530=>'ON', -9531=>'ON', -9532=>'ON', -9533=>'ON', -9534=>'ON', -9535=>'ON', -9536=>'ON', -9537=>'ON', -9538=>'ON', -9539=>'ON', -9540=>'ON', -9541=>'ON', -9542=>'ON', -9543=>'ON', -9544=>'ON', -9545=>'ON', -9546=>'ON', -9547=>'ON', -9548=>'ON', -9549=>'ON', -9550=>'ON', -9551=>'ON', -9552=>'ON', -9553=>'ON', -9554=>'ON', -9555=>'ON', -9556=>'ON', -9557=>'ON', -9558=>'ON', -9559=>'ON', -9560=>'ON', -9561=>'ON', -9562=>'ON', -9563=>'ON', -9564=>'ON', -9565=>'ON', -9566=>'ON', -9567=>'ON', -9568=>'ON', -9569=>'ON', -9570=>'ON', -9571=>'ON', -9572=>'ON', -9573=>'ON', -9574=>'ON', -9575=>'ON', -9576=>'ON', -9577=>'ON', -9578=>'ON', -9579=>'ON', -9580=>'ON', -9581=>'ON', -9582=>'ON', -9583=>'ON', -9584=>'ON', -9585=>'ON', -9586=>'ON', -9587=>'ON', -9588=>'ON', -9589=>'ON', -9590=>'ON', -9591=>'ON', -9592=>'ON', -9593=>'ON', -9594=>'ON', -9595=>'ON', -9596=>'ON', -9597=>'ON', -9598=>'ON', -9599=>'ON', -9600=>'ON', -9601=>'ON', -9602=>'ON', -9603=>'ON', -9604=>'ON', -9605=>'ON', -9606=>'ON', -9607=>'ON', -9608=>'ON', -9609=>'ON', -9610=>'ON', -9611=>'ON', -9612=>'ON', -9613=>'ON', -9614=>'ON', -9615=>'ON', -9616=>'ON', -9617=>'ON', -9618=>'ON', -9619=>'ON', -9620=>'ON', -9621=>'ON', -9622=>'ON', -9623=>'ON', -9624=>'ON', -9625=>'ON', -9626=>'ON', -9627=>'ON', -9628=>'ON', -9629=>'ON', -9630=>'ON', -9631=>'ON', -9632=>'ON', -9633=>'ON', -9634=>'ON', -9635=>'ON', -9636=>'ON', -9637=>'ON', -9638=>'ON', -9639=>'ON', -9640=>'ON', -9641=>'ON', -9642=>'ON', -9643=>'ON', -9644=>'ON', -9645=>'ON', -9646=>'ON', -9647=>'ON', -9648=>'ON', -9649=>'ON', -9650=>'ON', -9651=>'ON', -9652=>'ON', -9653=>'ON', -9654=>'ON', -9655=>'ON', -9656=>'ON', -9657=>'ON', -9658=>'ON', -9659=>'ON', -9660=>'ON', -9661=>'ON', -9662=>'ON', -9663=>'ON', -9664=>'ON', -9665=>'ON', -9666=>'ON', -9667=>'ON', -9668=>'ON', -9669=>'ON', -9670=>'ON', -9671=>'ON', -9672=>'ON', -9673=>'ON', -9674=>'ON', -9675=>'ON', -9676=>'ON', -9677=>'ON', -9678=>'ON', -9679=>'ON', -9680=>'ON', -9681=>'ON', -9682=>'ON', -9683=>'ON', -9684=>'ON', -9685=>'ON', -9686=>'ON', -9687=>'ON', -9688=>'ON', -9689=>'ON', -9690=>'ON', -9691=>'ON', -9692=>'ON', -9693=>'ON', -9694=>'ON', -9695=>'ON', -9696=>'ON', -9697=>'ON', -9698=>'ON', -9699=>'ON', -9700=>'ON', -9701=>'ON', -9702=>'ON', -9703=>'ON', -9704=>'ON', -9705=>'ON', -9706=>'ON', -9707=>'ON', -9708=>'ON', -9709=>'ON', -9710=>'ON', -9711=>'ON', -9712=>'ON', -9713=>'ON', -9714=>'ON', -9715=>'ON', -9716=>'ON', -9717=>'ON', -9718=>'ON', -9719=>'ON', -9720=>'ON', -9721=>'ON', -9722=>'ON', -9723=>'ON', -9724=>'ON', -9725=>'ON', -9726=>'ON', -9727=>'ON', -9728=>'ON', -9729=>'ON', -9730=>'ON', -9731=>'ON', -9732=>'ON', -9733=>'ON', -9734=>'ON', -9735=>'ON', -9736=>'ON', -9737=>'ON', -9738=>'ON', -9739=>'ON', -9740=>'ON', -9741=>'ON', -9742=>'ON', -9743=>'ON', -9744=>'ON', -9745=>'ON', -9746=>'ON', -9747=>'ON', -9748=>'ON', -9749=>'ON', -9750=>'ON', -9751=>'ON', -9752=>'ON', -9753=>'ON', -9754=>'ON', -9755=>'ON', -9756=>'ON', -9757=>'ON', -9758=>'ON', -9759=>'ON', -9760=>'ON', -9761=>'ON', -9762=>'ON', -9763=>'ON', -9764=>'ON', -9765=>'ON', -9766=>'ON', -9767=>'ON', -9768=>'ON', -9769=>'ON', -9770=>'ON', -9771=>'ON', -9772=>'ON', -9773=>'ON', -9774=>'ON', -9775=>'ON', -9776=>'ON', -9777=>'ON', -9778=>'ON', -9779=>'ON', -9780=>'ON', -9781=>'ON', -9782=>'ON', -9783=>'ON', -9784=>'ON', -9785=>'ON', -9786=>'ON', -9787=>'ON', -9788=>'ON', -9789=>'ON', -9790=>'ON', -9791=>'ON', -9792=>'ON', -9793=>'ON', -9794=>'ON', -9795=>'ON', -9796=>'ON', -9797=>'ON', -9798=>'ON', -9799=>'ON', -9800=>'ON', -9801=>'ON', -9802=>'ON', -9803=>'ON', -9804=>'ON', -9805=>'ON', -9806=>'ON', -9807=>'ON', -9808=>'ON', -9809=>'ON', -9810=>'ON', -9811=>'ON', -9812=>'ON', -9813=>'ON', -9814=>'ON', -9815=>'ON', -9816=>'ON', -9817=>'ON', -9818=>'ON', -9819=>'ON', -9820=>'ON', -9821=>'ON', -9822=>'ON', -9823=>'ON', -9824=>'ON', -9825=>'ON', -9826=>'ON', -9827=>'ON', -9828=>'ON', -9829=>'ON', -9830=>'ON', -9831=>'ON', -9832=>'ON', -9833=>'ON', -9834=>'ON', -9835=>'ON', -9836=>'ON', -9837=>'ON', -9838=>'ON', -9839=>'ON', -9840=>'ON', -9841=>'ON', -9842=>'ON', -9843=>'ON', -9844=>'ON', -9845=>'ON', -9846=>'ON', -9847=>'ON', -9848=>'ON', -9849=>'ON', -9850=>'ON', -9851=>'ON', -9852=>'ON', -9853=>'ON', -9854=>'ON', -9855=>'ON', -9856=>'ON', -9857=>'ON', -9858=>'ON', -9859=>'ON', -9860=>'ON', -9861=>'ON', -9862=>'ON', -9863=>'ON', -9864=>'ON', -9865=>'ON', -9866=>'ON', -9867=>'ON', -9868=>'ON', -9869=>'ON', -9870=>'ON', -9871=>'ON', -9872=>'ON', -9873=>'ON', -9874=>'ON', -9875=>'ON', -9876=>'ON', -9877=>'ON', -9878=>'ON', -9879=>'ON', -9880=>'ON', -9881=>'ON', -9882=>'ON', -9883=>'ON', -9884=>'ON', -9888=>'ON', -9889=>'ON', -9890=>'ON', -9891=>'ON', -9892=>'ON', -9893=>'ON', -9894=>'ON', -9895=>'ON', -9896=>'ON', -9897=>'ON', -9898=>'ON', -9899=>'ON', -9900=>'L', -9901=>'ON', -9902=>'ON', -9903=>'ON', -9904=>'ON', -9905=>'ON', -9906=>'ON', -9985=>'ON', -9986=>'ON', -9987=>'ON', -9988=>'ON', -9990=>'ON', -9991=>'ON', -9992=>'ON', -9993=>'ON', -9996=>'ON', -9997=>'ON', -9998=>'ON', -9999=>'ON', -10000=>'ON', -10001=>'ON', -10002=>'ON', -10003=>'ON', -10004=>'ON', -10005=>'ON', -10006=>'ON', -10007=>'ON', -10008=>'ON', -10009=>'ON', -10010=>'ON', -10011=>'ON', -10012=>'ON', -10013=>'ON', -10014=>'ON', -10015=>'ON', -10016=>'ON', -10017=>'ON', -10018=>'ON', -10019=>'ON', -10020=>'ON', -10021=>'ON', -10022=>'ON', -10023=>'ON', -10025=>'ON', -10026=>'ON', -10027=>'ON', -10028=>'ON', -10029=>'ON', -10030=>'ON', -10031=>'ON', -10032=>'ON', -10033=>'ON', -10034=>'ON', -10035=>'ON', -10036=>'ON', -10037=>'ON', -10038=>'ON', -10039=>'ON', -10040=>'ON', -10041=>'ON', -10042=>'ON', -10043=>'ON', -10044=>'ON', -10045=>'ON', -10046=>'ON', -10047=>'ON', -10048=>'ON', -10049=>'ON', -10050=>'ON', -10051=>'ON', -10052=>'ON', -10053=>'ON', -10054=>'ON', -10055=>'ON', -10056=>'ON', -10057=>'ON', -10058=>'ON', -10059=>'ON', -10061=>'ON', -10063=>'ON', -10064=>'ON', -10065=>'ON', -10066=>'ON', -10070=>'ON', -10072=>'ON', -10073=>'ON', -10074=>'ON', -10075=>'ON', -10076=>'ON', -10077=>'ON', -10078=>'ON', -10081=>'ON', -10082=>'ON', -10083=>'ON', -10084=>'ON', -10085=>'ON', -10086=>'ON', -10087=>'ON', -10088=>'ON', -10089=>'ON', -10090=>'ON', -10091=>'ON', -10092=>'ON', -10093=>'ON', -10094=>'ON', -10095=>'ON', -10096=>'ON', -10097=>'ON', -10098=>'ON', -10099=>'ON', -10100=>'ON', -10101=>'ON', -10102=>'ON', -10103=>'ON', -10104=>'ON', -10105=>'ON', -10106=>'ON', -10107=>'ON', -10108=>'ON', -10109=>'ON', -10110=>'ON', -10111=>'ON', -10112=>'ON', -10113=>'ON', -10114=>'ON', -10115=>'ON', -10116=>'ON', -10117=>'ON', -10118=>'ON', -10119=>'ON', -10120=>'ON', -10121=>'ON', -10122=>'ON', -10123=>'ON', -10124=>'ON', -10125=>'ON', -10126=>'ON', -10127=>'ON', -10128=>'ON', -10129=>'ON', -10130=>'ON', -10131=>'ON', -10132=>'ON', -10136=>'ON', -10137=>'ON', -10138=>'ON', -10139=>'ON', -10140=>'ON', -10141=>'ON', -10142=>'ON', -10143=>'ON', -10144=>'ON', -10145=>'ON', -10146=>'ON', -10147=>'ON', -10148=>'ON', -10149=>'ON', -10150=>'ON', -10151=>'ON', -10152=>'ON', -10153=>'ON', -10154=>'ON', -10155=>'ON', -10156=>'ON', -10157=>'ON', -10158=>'ON', -10159=>'ON', -10161=>'ON', -10162=>'ON', -10163=>'ON', -10164=>'ON', -10165=>'ON', -10166=>'ON', -10167=>'ON', -10168=>'ON', -10169=>'ON', -10170=>'ON', -10171=>'ON', -10172=>'ON', -10173=>'ON', -10174=>'ON', -10176=>'ON', -10177=>'ON', -10178=>'ON', -10179=>'ON', -10180=>'ON', -10181=>'ON', -10182=>'ON', -10183=>'ON', -10184=>'ON', -10185=>'ON', -10186=>'ON', -10192=>'ON', -10193=>'ON', -10194=>'ON', -10195=>'ON', -10196=>'ON', -10197=>'ON', -10198=>'ON', -10199=>'ON', -10200=>'ON', -10201=>'ON', -10202=>'ON', -10203=>'ON', -10204=>'ON', -10205=>'ON', -10206=>'ON', -10207=>'ON', -10208=>'ON', -10209=>'ON', -10210=>'ON', -10211=>'ON', -10212=>'ON', -10213=>'ON', -10214=>'ON', -10215=>'ON', -10216=>'ON', -10217=>'ON', -10218=>'ON', -10219=>'ON', -10224=>'ON', -10225=>'ON', -10226=>'ON', -10227=>'ON', -10228=>'ON', -10229=>'ON', -10230=>'ON', -10231=>'ON', -10232=>'ON', -10233=>'ON', -10234=>'ON', -10235=>'ON', -10236=>'ON', -10237=>'ON', -10238=>'ON', -10239=>'ON', -10240=>'L', -10241=>'L', -10242=>'L', -10243=>'L', -10244=>'L', -10245=>'L', -10246=>'L', -10247=>'L', -10248=>'L', -10249=>'L', -10250=>'L', -10251=>'L', -10252=>'L', -10253=>'L', -10254=>'L', -10255=>'L', -10256=>'L', -10257=>'L', -10258=>'L', -10259=>'L', -10260=>'L', -10261=>'L', -10262=>'L', -10263=>'L', -10264=>'L', -10265=>'L', -10266=>'L', -10267=>'L', -10268=>'L', -10269=>'L', -10270=>'L', -10271=>'L', -10272=>'L', -10273=>'L', -10274=>'L', -10275=>'L', -10276=>'L', -10277=>'L', -10278=>'L', -10279=>'L', -10280=>'L', -10281=>'L', -10282=>'L', -10283=>'L', -10284=>'L', -10285=>'L', -10286=>'L', -10287=>'L', -10288=>'L', -10289=>'L', -10290=>'L', -10291=>'L', -10292=>'L', -10293=>'L', -10294=>'L', -10295=>'L', -10296=>'L', -10297=>'L', -10298=>'L', -10299=>'L', -10300=>'L', -10301=>'L', -10302=>'L', -10303=>'L', -10304=>'L', -10305=>'L', -10306=>'L', -10307=>'L', -10308=>'L', -10309=>'L', -10310=>'L', -10311=>'L', -10312=>'L', -10313=>'L', -10314=>'L', -10315=>'L', -10316=>'L', -10317=>'L', -10318=>'L', -10319=>'L', -10320=>'L', -10321=>'L', -10322=>'L', -10323=>'L', -10324=>'L', -10325=>'L', -10326=>'L', -10327=>'L', -10328=>'L', -10329=>'L', -10330=>'L', -10331=>'L', -10332=>'L', -10333=>'L', -10334=>'L', -10335=>'L', -10336=>'L', -10337=>'L', -10338=>'L', -10339=>'L', -10340=>'L', -10341=>'L', -10342=>'L', -10343=>'L', -10344=>'L', -10345=>'L', -10346=>'L', -10347=>'L', -10348=>'L', -10349=>'L', -10350=>'L', -10351=>'L', -10352=>'L', -10353=>'L', -10354=>'L', -10355=>'L', -10356=>'L', -10357=>'L', -10358=>'L', -10359=>'L', -10360=>'L', -10361=>'L', -10362=>'L', -10363=>'L', -10364=>'L', -10365=>'L', -10366=>'L', -10367=>'L', -10368=>'L', -10369=>'L', -10370=>'L', -10371=>'L', -10372=>'L', -10373=>'L', -10374=>'L', -10375=>'L', -10376=>'L', -10377=>'L', -10378=>'L', -10379=>'L', -10380=>'L', -10381=>'L', -10382=>'L', -10383=>'L', -10384=>'L', -10385=>'L', -10386=>'L', -10387=>'L', -10388=>'L', -10389=>'L', -10390=>'L', -10391=>'L', -10392=>'L', -10393=>'L', -10394=>'L', -10395=>'L', -10396=>'L', -10397=>'L', -10398=>'L', -10399=>'L', -10400=>'L', -10401=>'L', -10402=>'L', -10403=>'L', -10404=>'L', -10405=>'L', -10406=>'L', -10407=>'L', -10408=>'L', -10409=>'L', -10410=>'L', -10411=>'L', -10412=>'L', -10413=>'L', -10414=>'L', -10415=>'L', -10416=>'L', -10417=>'L', -10418=>'L', -10419=>'L', -10420=>'L', -10421=>'L', -10422=>'L', -10423=>'L', -10424=>'L', -10425=>'L', -10426=>'L', -10427=>'L', -10428=>'L', -10429=>'L', -10430=>'L', -10431=>'L', -10432=>'L', -10433=>'L', -10434=>'L', -10435=>'L', -10436=>'L', -10437=>'L', -10438=>'L', -10439=>'L', -10440=>'L', -10441=>'L', -10442=>'L', -10443=>'L', -10444=>'L', -10445=>'L', -10446=>'L', -10447=>'L', -10448=>'L', -10449=>'L', -10450=>'L', -10451=>'L', -10452=>'L', -10453=>'L', -10454=>'L', -10455=>'L', -10456=>'L', -10457=>'L', -10458=>'L', -10459=>'L', -10460=>'L', -10461=>'L', -10462=>'L', -10463=>'L', -10464=>'L', -10465=>'L', -10466=>'L', -10467=>'L', -10468=>'L', -10469=>'L', -10470=>'L', -10471=>'L', -10472=>'L', -10473=>'L', -10474=>'L', -10475=>'L', -10476=>'L', -10477=>'L', -10478=>'L', -10479=>'L', -10480=>'L', -10481=>'L', -10482=>'L', -10483=>'L', -10484=>'L', -10485=>'L', -10486=>'L', -10487=>'L', -10488=>'L', -10489=>'L', -10490=>'L', -10491=>'L', -10492=>'L', -10493=>'L', -10494=>'L', -10495=>'L', -10496=>'ON', -10497=>'ON', -10498=>'ON', -10499=>'ON', -10500=>'ON', -10501=>'ON', -10502=>'ON', -10503=>'ON', -10504=>'ON', -10505=>'ON', -10506=>'ON', -10507=>'ON', -10508=>'ON', -10509=>'ON', -10510=>'ON', -10511=>'ON', -10512=>'ON', -10513=>'ON', -10514=>'ON', -10515=>'ON', -10516=>'ON', -10517=>'ON', -10518=>'ON', -10519=>'ON', -10520=>'ON', -10521=>'ON', -10522=>'ON', -10523=>'ON', -10524=>'ON', -10525=>'ON', -10526=>'ON', -10527=>'ON', -10528=>'ON', -10529=>'ON', -10530=>'ON', -10531=>'ON', -10532=>'ON', -10533=>'ON', -10534=>'ON', -10535=>'ON', -10536=>'ON', -10537=>'ON', -10538=>'ON', -10539=>'ON', -10540=>'ON', -10541=>'ON', -10542=>'ON', -10543=>'ON', -10544=>'ON', -10545=>'ON', -10546=>'ON', -10547=>'ON', -10548=>'ON', -10549=>'ON', -10550=>'ON', -10551=>'ON', -10552=>'ON', -10553=>'ON', -10554=>'ON', -10555=>'ON', -10556=>'ON', -10557=>'ON', -10558=>'ON', -10559=>'ON', -10560=>'ON', -10561=>'ON', -10562=>'ON', -10563=>'ON', -10564=>'ON', -10565=>'ON', -10566=>'ON', -10567=>'ON', -10568=>'ON', -10569=>'ON', -10570=>'ON', -10571=>'ON', -10572=>'ON', -10573=>'ON', -10574=>'ON', -10575=>'ON', -10576=>'ON', -10577=>'ON', -10578=>'ON', -10579=>'ON', -10580=>'ON', -10581=>'ON', -10582=>'ON', -10583=>'ON', -10584=>'ON', -10585=>'ON', -10586=>'ON', -10587=>'ON', -10588=>'ON', -10589=>'ON', -10590=>'ON', -10591=>'ON', -10592=>'ON', -10593=>'ON', -10594=>'ON', -10595=>'ON', -10596=>'ON', -10597=>'ON', -10598=>'ON', -10599=>'ON', -10600=>'ON', -10601=>'ON', -10602=>'ON', -10603=>'ON', -10604=>'ON', -10605=>'ON', -10606=>'ON', -10607=>'ON', -10608=>'ON', -10609=>'ON', -10610=>'ON', -10611=>'ON', -10612=>'ON', -10613=>'ON', -10614=>'ON', -10615=>'ON', -10616=>'ON', -10617=>'ON', -10618=>'ON', -10619=>'ON', -10620=>'ON', -10621=>'ON', -10622=>'ON', -10623=>'ON', -10624=>'ON', -10625=>'ON', -10626=>'ON', -10627=>'ON', -10628=>'ON', -10629=>'ON', -10630=>'ON', -10631=>'ON', -10632=>'ON', -10633=>'ON', -10634=>'ON', -10635=>'ON', -10636=>'ON', -10637=>'ON', -10638=>'ON', -10639=>'ON', -10640=>'ON', -10641=>'ON', -10642=>'ON', -10643=>'ON', -10644=>'ON', -10645=>'ON', -10646=>'ON', -10647=>'ON', -10648=>'ON', -10649=>'ON', -10650=>'ON', -10651=>'ON', -10652=>'ON', -10653=>'ON', -10654=>'ON', -10655=>'ON', -10656=>'ON', -10657=>'ON', -10658=>'ON', -10659=>'ON', -10660=>'ON', -10661=>'ON', -10662=>'ON', -10663=>'ON', -10664=>'ON', -10665=>'ON', -10666=>'ON', -10667=>'ON', -10668=>'ON', -10669=>'ON', -10670=>'ON', -10671=>'ON', -10672=>'ON', -10673=>'ON', -10674=>'ON', -10675=>'ON', -10676=>'ON', -10677=>'ON', -10678=>'ON', -10679=>'ON', -10680=>'ON', -10681=>'ON', -10682=>'ON', -10683=>'ON', -10684=>'ON', -10685=>'ON', -10686=>'ON', -10687=>'ON', -10688=>'ON', -10689=>'ON', -10690=>'ON', -10691=>'ON', -10692=>'ON', -10693=>'ON', -10694=>'ON', -10695=>'ON', -10696=>'ON', -10697=>'ON', -10698=>'ON', -10699=>'ON', -10700=>'ON', -10701=>'ON', -10702=>'ON', -10703=>'ON', -10704=>'ON', -10705=>'ON', -10706=>'ON', -10707=>'ON', -10708=>'ON', -10709=>'ON', -10710=>'ON', -10711=>'ON', -10712=>'ON', -10713=>'ON', -10714=>'ON', -10715=>'ON', -10716=>'ON', -10717=>'ON', -10718=>'ON', -10719=>'ON', -10720=>'ON', -10721=>'ON', -10722=>'ON', -10723=>'ON', -10724=>'ON', -10725=>'ON', -10726=>'ON', -10727=>'ON', -10728=>'ON', -10729=>'ON', -10730=>'ON', -10731=>'ON', -10732=>'ON', -10733=>'ON', -10734=>'ON', -10735=>'ON', -10736=>'ON', -10737=>'ON', -10738=>'ON', -10739=>'ON', -10740=>'ON', -10741=>'ON', -10742=>'ON', -10743=>'ON', -10744=>'ON', -10745=>'ON', -10746=>'ON', -10747=>'ON', -10748=>'ON', -10749=>'ON', -10750=>'ON', -10751=>'ON', -10752=>'ON', -10753=>'ON', -10754=>'ON', -10755=>'ON', -10756=>'ON', -10757=>'ON', -10758=>'ON', -10759=>'ON', -10760=>'ON', -10761=>'ON', -10762=>'ON', -10763=>'ON', -10764=>'ON', -10765=>'ON', -10766=>'ON', -10767=>'ON', -10768=>'ON', -10769=>'ON', -10770=>'ON', -10771=>'ON', -10772=>'ON', -10773=>'ON', -10774=>'ON', -10775=>'ON', -10776=>'ON', -10777=>'ON', -10778=>'ON', -10779=>'ON', -10780=>'ON', -10781=>'ON', -10782=>'ON', -10783=>'ON', -10784=>'ON', -10785=>'ON', -10786=>'ON', -10787=>'ON', -10788=>'ON', -10789=>'ON', -10790=>'ON', -10791=>'ON', -10792=>'ON', -10793=>'ON', -10794=>'ON', -10795=>'ON', -10796=>'ON', -10797=>'ON', -10798=>'ON', -10799=>'ON', -10800=>'ON', -10801=>'ON', -10802=>'ON', -10803=>'ON', -10804=>'ON', -10805=>'ON', -10806=>'ON', -10807=>'ON', -10808=>'ON', -10809=>'ON', -10810=>'ON', -10811=>'ON', -10812=>'ON', -10813=>'ON', -10814=>'ON', -10815=>'ON', -10816=>'ON', -10817=>'ON', -10818=>'ON', -10819=>'ON', -10820=>'ON', -10821=>'ON', -10822=>'ON', -10823=>'ON', -10824=>'ON', -10825=>'ON', -10826=>'ON', -10827=>'ON', -10828=>'ON', -10829=>'ON', -10830=>'ON', -10831=>'ON', -10832=>'ON', -10833=>'ON', -10834=>'ON', -10835=>'ON', -10836=>'ON', -10837=>'ON', -10838=>'ON', -10839=>'ON', -10840=>'ON', -10841=>'ON', -10842=>'ON', -10843=>'ON', -10844=>'ON', -10845=>'ON', -10846=>'ON', -10847=>'ON', -10848=>'ON', -10849=>'ON', -10850=>'ON', -10851=>'ON', -10852=>'ON', -10853=>'ON', -10854=>'ON', -10855=>'ON', -10856=>'ON', -10857=>'ON', -10858=>'ON', -10859=>'ON', -10860=>'ON', -10861=>'ON', -10862=>'ON', -10863=>'ON', -10864=>'ON', -10865=>'ON', -10866=>'ON', -10867=>'ON', -10868=>'ON', -10869=>'ON', -10870=>'ON', -10871=>'ON', -10872=>'ON', -10873=>'ON', -10874=>'ON', -10875=>'ON', -10876=>'ON', -10877=>'ON', -10878=>'ON', -10879=>'ON', -10880=>'ON', -10881=>'ON', -10882=>'ON', -10883=>'ON', -10884=>'ON', -10885=>'ON', -10886=>'ON', -10887=>'ON', -10888=>'ON', -10889=>'ON', -10890=>'ON', -10891=>'ON', -10892=>'ON', -10893=>'ON', -10894=>'ON', -10895=>'ON', -10896=>'ON', -10897=>'ON', -10898=>'ON', -10899=>'ON', -10900=>'ON', -10901=>'ON', -10902=>'ON', -10903=>'ON', -10904=>'ON', -10905=>'ON', -10906=>'ON', -10907=>'ON', -10908=>'ON', -10909=>'ON', -10910=>'ON', -10911=>'ON', -10912=>'ON', -10913=>'ON', -10914=>'ON', -10915=>'ON', -10916=>'ON', -10917=>'ON', -10918=>'ON', -10919=>'ON', -10920=>'ON', -10921=>'ON', -10922=>'ON', -10923=>'ON', -10924=>'ON', -10925=>'ON', -10926=>'ON', -10927=>'ON', -10928=>'ON', -10929=>'ON', -10930=>'ON', -10931=>'ON', -10932=>'ON', -10933=>'ON', -10934=>'ON', -10935=>'ON', -10936=>'ON', -10937=>'ON', -10938=>'ON', -10939=>'ON', -10940=>'ON', -10941=>'ON', -10942=>'ON', -10943=>'ON', -10944=>'ON', -10945=>'ON', -10946=>'ON', -10947=>'ON', -10948=>'ON', -10949=>'ON', -10950=>'ON', -10951=>'ON', -10952=>'ON', -10953=>'ON', -10954=>'ON', -10955=>'ON', -10956=>'ON', -10957=>'ON', -10958=>'ON', -10959=>'ON', -10960=>'ON', -10961=>'ON', -10962=>'ON', -10963=>'ON', -10964=>'ON', -10965=>'ON', -10966=>'ON', -10967=>'ON', -10968=>'ON', -10969=>'ON', -10970=>'ON', -10971=>'ON', -10972=>'ON', -10973=>'ON', -10974=>'ON', -10975=>'ON', -10976=>'ON', -10977=>'ON', -10978=>'ON', -10979=>'ON', -10980=>'ON', -10981=>'ON', -10982=>'ON', -10983=>'ON', -10984=>'ON', -10985=>'ON', -10986=>'ON', -10987=>'ON', -10988=>'ON', -10989=>'ON', -10990=>'ON', -10991=>'ON', -10992=>'ON', -10993=>'ON', -10994=>'ON', -10995=>'ON', -10996=>'ON', -10997=>'ON', -10998=>'ON', -10999=>'ON', -11000=>'ON', -11001=>'ON', -11002=>'ON', -11003=>'ON', -11004=>'ON', -11005=>'ON', -11006=>'ON', -11007=>'ON', -11008=>'ON', -11009=>'ON', -11010=>'ON', -11011=>'ON', -11012=>'ON', -11013=>'ON', -11014=>'ON', -11015=>'ON', -11016=>'ON', -11017=>'ON', -11018=>'ON', -11019=>'ON', -11020=>'ON', -11021=>'ON', -11022=>'ON', -11023=>'ON', -11024=>'ON', -11025=>'ON', -11026=>'ON', -11027=>'ON', -11028=>'ON', -11029=>'ON', -11030=>'ON', -11031=>'ON', -11032=>'ON', -11033=>'ON', -11034=>'ON', -11040=>'ON', -11041=>'ON', -11042=>'ON', -11043=>'ON', -11264=>'L', -11265=>'L', -11266=>'L', -11267=>'L', -11268=>'L', -11269=>'L', -11270=>'L', -11271=>'L', -11272=>'L', -11273=>'L', -11274=>'L', -11275=>'L', -11276=>'L', -11277=>'L', -11278=>'L', -11279=>'L', -11280=>'L', -11281=>'L', -11282=>'L', -11283=>'L', -11284=>'L', -11285=>'L', -11286=>'L', -11287=>'L', -11288=>'L', -11289=>'L', -11290=>'L', -11291=>'L', -11292=>'L', -11293=>'L', -11294=>'L', -11295=>'L', -11296=>'L', -11297=>'L', -11298=>'L', -11299=>'L', -11300=>'L', -11301=>'L', -11302=>'L', -11303=>'L', -11304=>'L', -11305=>'L', -11306=>'L', -11307=>'L', -11308=>'L', -11309=>'L', -11310=>'L', -11312=>'L', -11313=>'L', -11314=>'L', -11315=>'L', -11316=>'L', -11317=>'L', -11318=>'L', -11319=>'L', -11320=>'L', -11321=>'L', -11322=>'L', -11323=>'L', -11324=>'L', -11325=>'L', -11326=>'L', -11327=>'L', -11328=>'L', -11329=>'L', -11330=>'L', -11331=>'L', -11332=>'L', -11333=>'L', -11334=>'L', -11335=>'L', -11336=>'L', -11337=>'L', -11338=>'L', -11339=>'L', -11340=>'L', -11341=>'L', -11342=>'L', -11343=>'L', -11344=>'L', -11345=>'L', -11346=>'L', -11347=>'L', -11348=>'L', -11349=>'L', -11350=>'L', -11351=>'L', -11352=>'L', -11353=>'L', -11354=>'L', -11355=>'L', -11356=>'L', -11357=>'L', -11358=>'L', -11360=>'L', -11361=>'L', -11362=>'L', -11363=>'L', -11364=>'L', -11365=>'L', -11366=>'L', -11367=>'L', -11368=>'L', -11369=>'L', -11370=>'L', -11371=>'L', -11372=>'L', -11380=>'L', -11381=>'L', -11382=>'L', -11383=>'L', -11392=>'L', -11393=>'L', -11394=>'L', -11395=>'L', -11396=>'L', -11397=>'L', -11398=>'L', -11399=>'L', -11400=>'L', -11401=>'L', -11402=>'L', -11403=>'L', -11404=>'L', -11405=>'L', -11406=>'L', -11407=>'L', -11408=>'L', -11409=>'L', -11410=>'L', -11411=>'L', -11412=>'L', -11413=>'L', -11414=>'L', -11415=>'L', -11416=>'L', -11417=>'L', -11418=>'L', -11419=>'L', -11420=>'L', -11421=>'L', -11422=>'L', -11423=>'L', -11424=>'L', -11425=>'L', -11426=>'L', -11427=>'L', -11428=>'L', -11429=>'L', -11430=>'L', -11431=>'L', -11432=>'L', -11433=>'L', -11434=>'L', -11435=>'L', -11436=>'L', -11437=>'L', -11438=>'L', -11439=>'L', -11440=>'L', -11441=>'L', -11442=>'L', -11443=>'L', -11444=>'L', -11445=>'L', -11446=>'L', -11447=>'L', -11448=>'L', -11449=>'L', -11450=>'L', -11451=>'L', -11452=>'L', -11453=>'L', -11454=>'L', -11455=>'L', -11456=>'L', -11457=>'L', -11458=>'L', -11459=>'L', -11460=>'L', -11461=>'L', -11462=>'L', -11463=>'L', -11464=>'L', -11465=>'L', -11466=>'L', -11467=>'L', -11468=>'L', -11469=>'L', -11470=>'L', -11471=>'L', -11472=>'L', -11473=>'L', -11474=>'L', -11475=>'L', -11476=>'L', -11477=>'L', -11478=>'L', -11479=>'L', -11480=>'L', -11481=>'L', -11482=>'L', -11483=>'L', -11484=>'L', -11485=>'L', -11486=>'L', -11487=>'L', -11488=>'L', -11489=>'L', -11490=>'L', -11491=>'L', -11492=>'L', -11493=>'ON', -11494=>'ON', -11495=>'ON', -11496=>'ON', -11497=>'ON', -11498=>'ON', -11513=>'ON', -11514=>'ON', -11515=>'ON', -11516=>'ON', -11517=>'ON', -11518=>'ON', -11519=>'ON', -11520=>'L', -11521=>'L', -11522=>'L', -11523=>'L', -11524=>'L', -11525=>'L', -11526=>'L', -11527=>'L', -11528=>'L', -11529=>'L', -11530=>'L', -11531=>'L', -11532=>'L', -11533=>'L', -11534=>'L', -11535=>'L', -11536=>'L', -11537=>'L', -11538=>'L', -11539=>'L', -11540=>'L', -11541=>'L', -11542=>'L', -11543=>'L', -11544=>'L', -11545=>'L', -11546=>'L', -11547=>'L', -11548=>'L', -11549=>'L', -11550=>'L', -11551=>'L', -11552=>'L', -11553=>'L', -11554=>'L', -11555=>'L', -11556=>'L', -11557=>'L', -11568=>'L', -11569=>'L', -11570=>'L', -11571=>'L', -11572=>'L', -11573=>'L', -11574=>'L', -11575=>'L', -11576=>'L', -11577=>'L', -11578=>'L', -11579=>'L', -11580=>'L', -11581=>'L', -11582=>'L', -11583=>'L', -11584=>'L', -11585=>'L', -11586=>'L', -11587=>'L', -11588=>'L', -11589=>'L', -11590=>'L', -11591=>'L', -11592=>'L', -11593=>'L', -11594=>'L', -11595=>'L', -11596=>'L', -11597=>'L', -11598=>'L', -11599=>'L', -11600=>'L', -11601=>'L', -11602=>'L', -11603=>'L', -11604=>'L', -11605=>'L', -11606=>'L', -11607=>'L', -11608=>'L', -11609=>'L', -11610=>'L', -11611=>'L', -11612=>'L', -11613=>'L', -11614=>'L', -11615=>'L', -11616=>'L', -11617=>'L', -11618=>'L', -11619=>'L', -11620=>'L', -11621=>'L', -11631=>'L', -11648=>'L', -11649=>'L', -11650=>'L', -11651=>'L', -11652=>'L', -11653=>'L', -11654=>'L', -11655=>'L', -11656=>'L', -11657=>'L', -11658=>'L', -11659=>'L', -11660=>'L', -11661=>'L', -11662=>'L', -11663=>'L', -11664=>'L', -11665=>'L', -11666=>'L', -11667=>'L', -11668=>'L', -11669=>'L', -11670=>'L', -11680=>'L', -11681=>'L', -11682=>'L', -11683=>'L', -11684=>'L', -11685=>'L', -11686=>'L', -11688=>'L', -11689=>'L', -11690=>'L', -11691=>'L', -11692=>'L', -11693=>'L', -11694=>'L', -11696=>'L', -11697=>'L', -11698=>'L', -11699=>'L', -11700=>'L', -11701=>'L', -11702=>'L', -11704=>'L', -11705=>'L', -11706=>'L', -11707=>'L', -11708=>'L', -11709=>'L', -11710=>'L', -11712=>'L', -11713=>'L', -11714=>'L', -11715=>'L', -11716=>'L', -11717=>'L', -11718=>'L', -11720=>'L', -11721=>'L', -11722=>'L', -11723=>'L', -11724=>'L', -11725=>'L', -11726=>'L', -11728=>'L', -11729=>'L', -11730=>'L', -11731=>'L', -11732=>'L', -11733=>'L', -11734=>'L', -11736=>'L', -11737=>'L', -11738=>'L', -11739=>'L', -11740=>'L', -11741=>'L', -11742=>'L', -11776=>'ON', -11777=>'ON', -11778=>'ON', -11779=>'ON', -11780=>'ON', -11781=>'ON', -11782=>'ON', -11783=>'ON', -11784=>'ON', -11785=>'ON', -11786=>'ON', -11787=>'ON', -11788=>'ON', -11789=>'ON', -11790=>'ON', -11791=>'ON', -11792=>'ON', -11793=>'ON', -11794=>'ON', -11795=>'ON', -11796=>'ON', -11797=>'ON', -11798=>'ON', -11799=>'ON', -11804=>'ON', -11805=>'ON', -11904=>'ON', -11905=>'ON', -11906=>'ON', -11907=>'ON', -11908=>'ON', -11909=>'ON', -11910=>'ON', -11911=>'ON', -11912=>'ON', -11913=>'ON', -11914=>'ON', -11915=>'ON', -11916=>'ON', -11917=>'ON', -11918=>'ON', -11919=>'ON', -11920=>'ON', -11921=>'ON', -11922=>'ON', -11923=>'ON', -11924=>'ON', -11925=>'ON', -11926=>'ON', -11927=>'ON', -11928=>'ON', -11929=>'ON', -11931=>'ON', -11932=>'ON', -11933=>'ON', -11934=>'ON', -11935=>'ON', -11936=>'ON', -11937=>'ON', -11938=>'ON', -11939=>'ON', -11940=>'ON', -11941=>'ON', -11942=>'ON', -11943=>'ON', -11944=>'ON', -11945=>'ON', -11946=>'ON', -11947=>'ON', -11948=>'ON', -11949=>'ON', -11950=>'ON', -11951=>'ON', -11952=>'ON', -11953=>'ON', -11954=>'ON', -11955=>'ON', -11956=>'ON', -11957=>'ON', -11958=>'ON', -11959=>'ON', -11960=>'ON', -11961=>'ON', -11962=>'ON', -11963=>'ON', -11964=>'ON', -11965=>'ON', -11966=>'ON', -11967=>'ON', -11968=>'ON', -11969=>'ON', -11970=>'ON', -11971=>'ON', -11972=>'ON', -11973=>'ON', -11974=>'ON', -11975=>'ON', -11976=>'ON', -11977=>'ON', -11978=>'ON', -11979=>'ON', -11980=>'ON', -11981=>'ON', -11982=>'ON', -11983=>'ON', -11984=>'ON', -11985=>'ON', -11986=>'ON', -11987=>'ON', -11988=>'ON', -11989=>'ON', -11990=>'ON', -11991=>'ON', -11992=>'ON', -11993=>'ON', -11994=>'ON', -11995=>'ON', -11996=>'ON', -11997=>'ON', -11998=>'ON', -11999=>'ON', -12000=>'ON', -12001=>'ON', -12002=>'ON', -12003=>'ON', -12004=>'ON', -12005=>'ON', -12006=>'ON', -12007=>'ON', -12008=>'ON', -12009=>'ON', -12010=>'ON', -12011=>'ON', -12012=>'ON', -12013=>'ON', -12014=>'ON', -12015=>'ON', -12016=>'ON', -12017=>'ON', -12018=>'ON', -12019=>'ON', -12032=>'ON', -12033=>'ON', -12034=>'ON', -12035=>'ON', -12036=>'ON', -12037=>'ON', -12038=>'ON', -12039=>'ON', -12040=>'ON', -12041=>'ON', -12042=>'ON', -12043=>'ON', -12044=>'ON', -12045=>'ON', -12046=>'ON', -12047=>'ON', -12048=>'ON', -12049=>'ON', -12050=>'ON', -12051=>'ON', -12052=>'ON', -12053=>'ON', -12054=>'ON', -12055=>'ON', -12056=>'ON', -12057=>'ON', -12058=>'ON', -12059=>'ON', -12060=>'ON', -12061=>'ON', -12062=>'ON', -12063=>'ON', -12064=>'ON', -12065=>'ON', -12066=>'ON', -12067=>'ON', -12068=>'ON', -12069=>'ON', -12070=>'ON', -12071=>'ON', -12072=>'ON', -12073=>'ON', -12074=>'ON', -12075=>'ON', -12076=>'ON', -12077=>'ON', -12078=>'ON', -12079=>'ON', -12080=>'ON', -12081=>'ON', -12082=>'ON', -12083=>'ON', -12084=>'ON', -12085=>'ON', -12086=>'ON', -12087=>'ON', -12088=>'ON', -12089=>'ON', -12090=>'ON', -12091=>'ON', -12092=>'ON', -12093=>'ON', -12094=>'ON', -12095=>'ON', -12096=>'ON', -12097=>'ON', -12098=>'ON', -12099=>'ON', -12100=>'ON', -12101=>'ON', -12102=>'ON', -12103=>'ON', -12104=>'ON', -12105=>'ON', -12106=>'ON', -12107=>'ON', -12108=>'ON', -12109=>'ON', -12110=>'ON', -12111=>'ON', -12112=>'ON', -12113=>'ON', -12114=>'ON', -12115=>'ON', -12116=>'ON', -12117=>'ON', -12118=>'ON', -12119=>'ON', -12120=>'ON', -12121=>'ON', -12122=>'ON', -12123=>'ON', -12124=>'ON', -12125=>'ON', -12126=>'ON', -12127=>'ON', -12128=>'ON', -12129=>'ON', -12130=>'ON', -12131=>'ON', -12132=>'ON', -12133=>'ON', -12134=>'ON', -12135=>'ON', -12136=>'ON', -12137=>'ON', -12138=>'ON', -12139=>'ON', -12140=>'ON', -12141=>'ON', -12142=>'ON', -12143=>'ON', -12144=>'ON', -12145=>'ON', -12146=>'ON', -12147=>'ON', -12148=>'ON', -12149=>'ON', -12150=>'ON', -12151=>'ON', -12152=>'ON', -12153=>'ON', -12154=>'ON', -12155=>'ON', -12156=>'ON', -12157=>'ON', -12158=>'ON', -12159=>'ON', -12160=>'ON', -12161=>'ON', -12162=>'ON', -12163=>'ON', -12164=>'ON', -12165=>'ON', -12166=>'ON', -12167=>'ON', -12168=>'ON', -12169=>'ON', -12170=>'ON', -12171=>'ON', -12172=>'ON', -12173=>'ON', -12174=>'ON', -12175=>'ON', -12176=>'ON', -12177=>'ON', -12178=>'ON', -12179=>'ON', -12180=>'ON', -12181=>'ON', -12182=>'ON', -12183=>'ON', -12184=>'ON', -12185=>'ON', -12186=>'ON', -12187=>'ON', -12188=>'ON', -12189=>'ON', -12190=>'ON', -12191=>'ON', -12192=>'ON', -12193=>'ON', -12194=>'ON', -12195=>'ON', -12196=>'ON', -12197=>'ON', -12198=>'ON', -12199=>'ON', -12200=>'ON', -12201=>'ON', -12202=>'ON', -12203=>'ON', -12204=>'ON', -12205=>'ON', -12206=>'ON', -12207=>'ON', -12208=>'ON', -12209=>'ON', -12210=>'ON', -12211=>'ON', -12212=>'ON', -12213=>'ON', -12214=>'ON', -12215=>'ON', -12216=>'ON', -12217=>'ON', -12218=>'ON', -12219=>'ON', -12220=>'ON', -12221=>'ON', -12222=>'ON', -12223=>'ON', -12224=>'ON', -12225=>'ON', -12226=>'ON', -12227=>'ON', -12228=>'ON', -12229=>'ON', -12230=>'ON', -12231=>'ON', -12232=>'ON', -12233=>'ON', -12234=>'ON', -12235=>'ON', -12236=>'ON', -12237=>'ON', -12238=>'ON', -12239=>'ON', -12240=>'ON', -12241=>'ON', -12242=>'ON', -12243=>'ON', -12244=>'ON', -12245=>'ON', -12272=>'ON', -12273=>'ON', -12274=>'ON', -12275=>'ON', -12276=>'ON', -12277=>'ON', -12278=>'ON', -12279=>'ON', -12280=>'ON', -12281=>'ON', -12282=>'ON', -12283=>'ON', -12288=>'WS', -12289=>'ON', -12290=>'ON', -12291=>'ON', -12292=>'ON', -12293=>'L', -12294=>'L', -12295=>'L', -12296=>'ON', -12297=>'ON', -12298=>'ON', -12299=>'ON', -12300=>'ON', -12301=>'ON', -12302=>'ON', -12303=>'ON', -12304=>'ON', -12305=>'ON', -12306=>'ON', -12307=>'ON', -12308=>'ON', -12309=>'ON', -12310=>'ON', -12311=>'ON', -12312=>'ON', -12313=>'ON', -12314=>'ON', -12315=>'ON', -12316=>'ON', -12317=>'ON', -12318=>'ON', -12319=>'ON', -12320=>'ON', -12321=>'L', -12322=>'L', -12323=>'L', -12324=>'L', -12325=>'L', -12326=>'L', -12327=>'L', -12328=>'L', -12329=>'L', -12330=>'NSM', -12331=>'NSM', -12332=>'NSM', -12333=>'NSM', -12334=>'NSM', -12335=>'NSM', -12336=>'ON', -12337=>'L', -12338=>'L', -12339=>'L', -12340=>'L', -12341=>'L', -12342=>'ON', -12343=>'ON', -12344=>'L', -12345=>'L', -12346=>'L', -12347=>'L', -12348=>'L', -12349=>'ON', -12350=>'ON', -12351=>'ON', -12353=>'L', -12354=>'L', -12355=>'L', -12356=>'L', -12357=>'L', -12358=>'L', -12359=>'L', -12360=>'L', -12361=>'L', -12362=>'L', -12363=>'L', -12364=>'L', -12365=>'L', -12366=>'L', -12367=>'L', -12368=>'L', -12369=>'L', -12370=>'L', -12371=>'L', -12372=>'L', -12373=>'L', -12374=>'L', -12375=>'L', -12376=>'L', -12377=>'L', -12378=>'L', -12379=>'L', -12380=>'L', -12381=>'L', -12382=>'L', -12383=>'L', -12384=>'L', -12385=>'L', -12386=>'L', -12387=>'L', -12388=>'L', -12389=>'L', -12390=>'L', -12391=>'L', -12392=>'L', -12393=>'L', -12394=>'L', -12395=>'L', -12396=>'L', -12397=>'L', -12398=>'L', -12399=>'L', -12400=>'L', -12401=>'L', -12402=>'L', -12403=>'L', -12404=>'L', -12405=>'L', -12406=>'L', -12407=>'L', -12408=>'L', -12409=>'L', -12410=>'L', -12411=>'L', -12412=>'L', -12413=>'L', -12414=>'L', -12415=>'L', -12416=>'L', -12417=>'L', -12418=>'L', -12419=>'L', -12420=>'L', -12421=>'L', -12422=>'L', -12423=>'L', -12424=>'L', -12425=>'L', -12426=>'L', -12427=>'L', -12428=>'L', -12429=>'L', -12430=>'L', -12431=>'L', -12432=>'L', -12433=>'L', -12434=>'L', -12435=>'L', -12436=>'L', -12437=>'L', -12438=>'L', -12441=>'NSM', -12442=>'NSM', -12443=>'ON', -12444=>'ON', -12445=>'L', -12446=>'L', -12447=>'L', -12448=>'ON', -12449=>'L', -12450=>'L', -12451=>'L', -12452=>'L', -12453=>'L', -12454=>'L', -12455=>'L', -12456=>'L', -12457=>'L', -12458=>'L', -12459=>'L', -12460=>'L', -12461=>'L', -12462=>'L', -12463=>'L', -12464=>'L', -12465=>'L', -12466=>'L', -12467=>'L', -12468=>'L', -12469=>'L', -12470=>'L', -12471=>'L', -12472=>'L', -12473=>'L', -12474=>'L', -12475=>'L', -12476=>'L', -12477=>'L', -12478=>'L', -12479=>'L', -12480=>'L', -12481=>'L', -12482=>'L', -12483=>'L', -12484=>'L', -12485=>'L', -12486=>'L', -12487=>'L', -12488=>'L', -12489=>'L', -12490=>'L', -12491=>'L', -12492=>'L', -12493=>'L', -12494=>'L', -12495=>'L', -12496=>'L', -12497=>'L', -12498=>'L', -12499=>'L', -12500=>'L', -12501=>'L', -12502=>'L', -12503=>'L', -12504=>'L', -12505=>'L', -12506=>'L', -12507=>'L', -12508=>'L', -12509=>'L', -12510=>'L', -12511=>'L', -12512=>'L', -12513=>'L', -12514=>'L', -12515=>'L', -12516=>'L', -12517=>'L', -12518=>'L', -12519=>'L', -12520=>'L', -12521=>'L', -12522=>'L', -12523=>'L', -12524=>'L', -12525=>'L', -12526=>'L', -12527=>'L', -12528=>'L', -12529=>'L', -12530=>'L', -12531=>'L', -12532=>'L', -12533=>'L', -12534=>'L', -12535=>'L', -12536=>'L', -12537=>'L', -12538=>'L', -12539=>'ON', -12540=>'L', -12541=>'L', -12542=>'L', -12543=>'L', -12549=>'L', -12550=>'L', -12551=>'L', -12552=>'L', -12553=>'L', -12554=>'L', -12555=>'L', -12556=>'L', -12557=>'L', -12558=>'L', -12559=>'L', -12560=>'L', -12561=>'L', -12562=>'L', -12563=>'L', -12564=>'L', -12565=>'L', -12566=>'L', -12567=>'L', -12568=>'L', -12569=>'L', -12570=>'L', -12571=>'L', -12572=>'L', -12573=>'L', -12574=>'L', -12575=>'L', -12576=>'L', -12577=>'L', -12578=>'L', -12579=>'L', -12580=>'L', -12581=>'L', -12582=>'L', -12583=>'L', -12584=>'L', -12585=>'L', -12586=>'L', -12587=>'L', -12588=>'L', -12593=>'L', -12594=>'L', -12595=>'L', -12596=>'L', -12597=>'L', -12598=>'L', -12599=>'L', -12600=>'L', -12601=>'L', -12602=>'L', -12603=>'L', -12604=>'L', -12605=>'L', -12606=>'L', -12607=>'L', -12608=>'L', -12609=>'L', -12610=>'L', -12611=>'L', -12612=>'L', -12613=>'L', -12614=>'L', -12615=>'L', -12616=>'L', -12617=>'L', -12618=>'L', -12619=>'L', -12620=>'L', -12621=>'L', -12622=>'L', -12623=>'L', -12624=>'L', -12625=>'L', -12626=>'L', -12627=>'L', -12628=>'L', -12629=>'L', -12630=>'L', -12631=>'L', -12632=>'L', -12633=>'L', -12634=>'L', -12635=>'L', -12636=>'L', -12637=>'L', -12638=>'L', -12639=>'L', -12640=>'L', -12641=>'L', -12642=>'L', -12643=>'L', -12644=>'L', -12645=>'L', -12646=>'L', -12647=>'L', -12648=>'L', -12649=>'L', -12650=>'L', -12651=>'L', -12652=>'L', -12653=>'L', -12654=>'L', -12655=>'L', -12656=>'L', -12657=>'L', -12658=>'L', -12659=>'L', -12660=>'L', -12661=>'L', -12662=>'L', -12663=>'L', -12664=>'L', -12665=>'L', -12666=>'L', -12667=>'L', -12668=>'L', -12669=>'L', -12670=>'L', -12671=>'L', -12672=>'L', -12673=>'L', -12674=>'L', -12675=>'L', -12676=>'L', -12677=>'L', -12678=>'L', -12679=>'L', -12680=>'L', -12681=>'L', -12682=>'L', -12683=>'L', -12684=>'L', -12685=>'L', -12686=>'L', -12688=>'L', -12689=>'L', -12690=>'L', -12691=>'L', -12692=>'L', -12693=>'L', -12694=>'L', -12695=>'L', -12696=>'L', -12697=>'L', -12698=>'L', -12699=>'L', -12700=>'L', -12701=>'L', -12702=>'L', -12703=>'L', -12704=>'L', -12705=>'L', -12706=>'L', -12707=>'L', -12708=>'L', -12709=>'L', -12710=>'L', -12711=>'L', -12712=>'L', -12713=>'L', -12714=>'L', -12715=>'L', -12716=>'L', -12717=>'L', -12718=>'L', -12719=>'L', -12720=>'L', -12721=>'L', -12722=>'L', -12723=>'L', -12724=>'L', -12725=>'L', -12726=>'L', -12727=>'L', -12736=>'ON', -12737=>'ON', -12738=>'ON', -12739=>'ON', -12740=>'ON', -12741=>'ON', -12742=>'ON', -12743=>'ON', -12744=>'ON', -12745=>'ON', -12746=>'ON', -12747=>'ON', -12748=>'ON', -12749=>'ON', -12750=>'ON', -12751=>'ON', -12784=>'L', -12785=>'L', -12786=>'L', -12787=>'L', -12788=>'L', -12789=>'L', -12790=>'L', -12791=>'L', -12792=>'L', -12793=>'L', -12794=>'L', -12795=>'L', -12796=>'L', -12797=>'L', -12798=>'L', -12799=>'L', -12800=>'L', -12801=>'L', -12802=>'L', -12803=>'L', -12804=>'L', -12805=>'L', -12806=>'L', -12807=>'L', -12808=>'L', -12809=>'L', -12810=>'L', -12811=>'L', -12812=>'L', -12813=>'L', -12814=>'L', -12815=>'L', -12816=>'L', -12817=>'L', -12818=>'L', -12819=>'L', -12820=>'L', -12821=>'L', -12822=>'L', -12823=>'L', -12824=>'L', -12825=>'L', -12826=>'L', -12827=>'L', -12828=>'L', -12829=>'ON', -12830=>'ON', -12832=>'L', -12833=>'L', -12834=>'L', -12835=>'L', -12836=>'L', -12837=>'L', -12838=>'L', -12839=>'L', -12840=>'L', -12841=>'L', -12842=>'L', -12843=>'L', -12844=>'L', -12845=>'L', -12846=>'L', -12847=>'L', -12848=>'L', -12849=>'L', -12850=>'L', -12851=>'L', -12852=>'L', -12853=>'L', -12854=>'L', -12855=>'L', -12856=>'L', -12857=>'L', -12858=>'L', -12859=>'L', -12860=>'L', -12861=>'L', -12862=>'L', -12863=>'L', -12864=>'L', -12865=>'L', -12866=>'L', -12867=>'L', -12880=>'ON', -12881=>'ON', -12882=>'ON', -12883=>'ON', -12884=>'ON', -12885=>'ON', -12886=>'ON', -12887=>'ON', -12888=>'ON', -12889=>'ON', -12890=>'ON', -12891=>'ON', -12892=>'ON', -12893=>'ON', -12894=>'ON', -12895=>'ON', -12896=>'L', -12897=>'L', -12898=>'L', -12899=>'L', -12900=>'L', -12901=>'L', -12902=>'L', -12903=>'L', -12904=>'L', -12905=>'L', -12906=>'L', -12907=>'L', -12908=>'L', -12909=>'L', -12910=>'L', -12911=>'L', -12912=>'L', -12913=>'L', -12914=>'L', -12915=>'L', -12916=>'L', -12917=>'L', -12918=>'L', -12919=>'L', -12920=>'L', -12921=>'L', -12922=>'L', -12923=>'L', -12924=>'ON', -12925=>'ON', -12926=>'ON', -12927=>'L', -12928=>'L', -12929=>'L', -12930=>'L', -12931=>'L', -12932=>'L', -12933=>'L', -12934=>'L', -12935=>'L', -12936=>'L', -12937=>'L', -12938=>'L', -12939=>'L', -12940=>'L', -12941=>'L', -12942=>'L', -12943=>'L', -12944=>'L', -12945=>'L', -12946=>'L', -12947=>'L', -12948=>'L', -12949=>'L', -12950=>'L', -12951=>'L', -12952=>'L', -12953=>'L', -12954=>'L', -12955=>'L', -12956=>'L', -12957=>'L', -12958=>'L', -12959=>'L', -12960=>'L', -12961=>'L', -12962=>'L', -12963=>'L', -12964=>'L', -12965=>'L', -12966=>'L', -12967=>'L', -12968=>'L', -12969=>'L', -12970=>'L', -12971=>'L', -12972=>'L', -12973=>'L', -12974=>'L', -12975=>'L', -12976=>'L', -12977=>'ON', -12978=>'ON', -12979=>'ON', -12980=>'ON', -12981=>'ON', -12982=>'ON', -12983=>'ON', -12984=>'ON', -12985=>'ON', -12986=>'ON', -12987=>'ON', -12988=>'ON', -12989=>'ON', -12990=>'ON', -12991=>'ON', -12992=>'L', -12993=>'L', -12994=>'L', -12995=>'L', -12996=>'L', -12997=>'L', -12998=>'L', -12999=>'L', -13000=>'L', -13001=>'L', -13002=>'L', -13003=>'L', -13004=>'ON', -13005=>'ON', -13006=>'ON', -13007=>'ON', -13008=>'L', -13009=>'L', -13010=>'L', -13011=>'L', -13012=>'L', -13013=>'L', -13014=>'L', -13015=>'L', -13016=>'L', -13017=>'L', -13018=>'L', -13019=>'L', -13020=>'L', -13021=>'L', -13022=>'L', -13023=>'L', -13024=>'L', -13025=>'L', -13026=>'L', -13027=>'L', -13028=>'L', -13029=>'L', -13030=>'L', -13031=>'L', -13032=>'L', -13033=>'L', -13034=>'L', -13035=>'L', -13036=>'L', -13037=>'L', -13038=>'L', -13039=>'L', -13040=>'L', -13041=>'L', -13042=>'L', -13043=>'L', -13044=>'L', -13045=>'L', -13046=>'L', -13047=>'L', -13048=>'L', -13049=>'L', -13050=>'L', -13051=>'L', -13052=>'L', -13053=>'L', -13054=>'L', -13056=>'L', -13057=>'L', -13058=>'L', -13059=>'L', -13060=>'L', -13061=>'L', -13062=>'L', -13063=>'L', -13064=>'L', -13065=>'L', -13066=>'L', -13067=>'L', -13068=>'L', -13069=>'L', -13070=>'L', -13071=>'L', -13072=>'L', -13073=>'L', -13074=>'L', -13075=>'L', -13076=>'L', -13077=>'L', -13078=>'L', -13079=>'L', -13080=>'L', -13081=>'L', -13082=>'L', -13083=>'L', -13084=>'L', -13085=>'L', -13086=>'L', -13087=>'L', -13088=>'L', -13089=>'L', -13090=>'L', -13091=>'L', -13092=>'L', -13093=>'L', -13094=>'L', -13095=>'L', -13096=>'L', -13097=>'L', -13098=>'L', -13099=>'L', -13100=>'L', -13101=>'L', -13102=>'L', -13103=>'L', -13104=>'L', -13105=>'L', -13106=>'L', -13107=>'L', -13108=>'L', -13109=>'L', -13110=>'L', -13111=>'L', -13112=>'L', -13113=>'L', -13114=>'L', -13115=>'L', -13116=>'L', -13117=>'L', -13118=>'L', -13119=>'L', -13120=>'L', -13121=>'L', -13122=>'L', -13123=>'L', -13124=>'L', -13125=>'L', -13126=>'L', -13127=>'L', -13128=>'L', -13129=>'L', -13130=>'L', -13131=>'L', -13132=>'L', -13133=>'L', -13134=>'L', -13135=>'L', -13136=>'L', -13137=>'L', -13138=>'L', -13139=>'L', -13140=>'L', -13141=>'L', -13142=>'L', -13143=>'L', -13144=>'L', -13145=>'L', -13146=>'L', -13147=>'L', -13148=>'L', -13149=>'L', -13150=>'L', -13151=>'L', -13152=>'L', -13153=>'L', -13154=>'L', -13155=>'L', -13156=>'L', -13157=>'L', -13158=>'L', -13159=>'L', -13160=>'L', -13161=>'L', -13162=>'L', -13163=>'L', -13164=>'L', -13165=>'L', -13166=>'L', -13167=>'L', -13168=>'L', -13169=>'L', -13170=>'L', -13171=>'L', -13172=>'L', -13173=>'L', -13174=>'L', -13175=>'ON', -13176=>'ON', -13177=>'ON', -13178=>'ON', -13179=>'L', -13180=>'L', -13181=>'L', -13182=>'L', -13183=>'L', -13184=>'L', -13185=>'L', -13186=>'L', -13187=>'L', -13188=>'L', -13189=>'L', -13190=>'L', -13191=>'L', -13192=>'L', -13193=>'L', -13194=>'L', -13195=>'L', -13196=>'L', -13197=>'L', -13198=>'L', -13199=>'L', -13200=>'L', -13201=>'L', -13202=>'L', -13203=>'L', -13204=>'L', -13205=>'L', -13206=>'L', -13207=>'L', -13208=>'L', -13209=>'L', -13210=>'L', -13211=>'L', -13212=>'L', -13213=>'L', -13214=>'L', -13215=>'L', -13216=>'L', -13217=>'L', -13218=>'L', -13219=>'L', -13220=>'L', -13221=>'L', -13222=>'L', -13223=>'L', -13224=>'L', -13225=>'L', -13226=>'L', -13227=>'L', -13228=>'L', -13229=>'L', -13230=>'L', -13231=>'L', -13232=>'L', -13233=>'L', -13234=>'L', -13235=>'L', -13236=>'L', -13237=>'L', -13238=>'L', -13239=>'L', -13240=>'L', -13241=>'L', -13242=>'L', -13243=>'L', -13244=>'L', -13245=>'L', -13246=>'L', -13247=>'L', -13248=>'L', -13249=>'L', -13250=>'L', -13251=>'L', -13252=>'L', -13253=>'L', -13254=>'L', -13255=>'L', -13256=>'L', -13257=>'L', -13258=>'L', -13259=>'L', -13260=>'L', -13261=>'L', -13262=>'L', -13263=>'L', -13264=>'L', -13265=>'L', -13266=>'L', -13267=>'L', -13268=>'L', -13269=>'L', -13270=>'L', -13271=>'L', -13272=>'L', -13273=>'L', -13274=>'L', -13275=>'L', -13276=>'L', -13277=>'L', -13278=>'ON', -13279=>'ON', -13280=>'L', -13281=>'L', -13282=>'L', -13283=>'L', -13284=>'L', -13285=>'L', -13286=>'L', -13287=>'L', -13288=>'L', -13289=>'L', -13290=>'L', -13291=>'L', -13292=>'L', -13293=>'L', -13294=>'L', -13295=>'L', -13296=>'L', -13297=>'L', -13298=>'L', -13299=>'L', -13300=>'L', -13301=>'L', -13302=>'L', -13303=>'L', -13304=>'L', -13305=>'L', -13306=>'L', -13307=>'L', -13308=>'L', -13309=>'L', -13310=>'L', -13311=>'ON', -13312=>'L', -19893=>'L', -19904=>'ON', -19905=>'ON', -19906=>'ON', -19907=>'ON', -19908=>'ON', -19909=>'ON', -19910=>'ON', -19911=>'ON', -19912=>'ON', -19913=>'ON', -19914=>'ON', -19915=>'ON', -19916=>'ON', -19917=>'ON', -19918=>'ON', -19919=>'ON', -19920=>'ON', -19921=>'ON', -19922=>'ON', -19923=>'ON', -19924=>'ON', -19925=>'ON', -19926=>'ON', -19927=>'ON', -19928=>'ON', -19929=>'ON', -19930=>'ON', -19931=>'ON', -19932=>'ON', -19933=>'ON', -19934=>'ON', -19935=>'ON', -19936=>'ON', -19937=>'ON', -19938=>'ON', -19939=>'ON', -19940=>'ON', -19941=>'ON', -19942=>'ON', -19943=>'ON', -19944=>'ON', -19945=>'ON', -19946=>'ON', -19947=>'ON', -19948=>'ON', -19949=>'ON', -19950=>'ON', -19951=>'ON', -19952=>'ON', -19953=>'ON', -19954=>'ON', -19955=>'ON', -19956=>'ON', -19957=>'ON', -19958=>'ON', -19959=>'ON', -19960=>'ON', -19961=>'ON', -19962=>'ON', -19963=>'ON', -19964=>'ON', -19965=>'ON', -19966=>'ON', -19967=>'ON', -19968=>'L', -40891=>'L', -40960=>'L', -40961=>'L', -40962=>'L', -40963=>'L', -40964=>'L', -40965=>'L', -40966=>'L', -40967=>'L', -40968=>'L', -40969=>'L', -40970=>'L', -40971=>'L', -40972=>'L', -40973=>'L', -40974=>'L', -40975=>'L', -40976=>'L', -40977=>'L', -40978=>'L', -40979=>'L', -40980=>'L', -40981=>'L', -40982=>'L', -40983=>'L', -40984=>'L', -40985=>'L', -40986=>'L', -40987=>'L', -40988=>'L', -40989=>'L', -40990=>'L', -40991=>'L', -40992=>'L', -40993=>'L', -40994=>'L', -40995=>'L', -40996=>'L', -40997=>'L', -40998=>'L', -40999=>'L', -41000=>'L', -41001=>'L', -41002=>'L', -41003=>'L', -41004=>'L', -41005=>'L', -41006=>'L', -41007=>'L', -41008=>'L', -41009=>'L', -41010=>'L', -41011=>'L', -41012=>'L', -41013=>'L', -41014=>'L', -41015=>'L', -41016=>'L', -41017=>'L', -41018=>'L', -41019=>'L', -41020=>'L', -41021=>'L', -41022=>'L', -41023=>'L', -41024=>'L', -41025=>'L', -41026=>'L', -41027=>'L', -41028=>'L', -41029=>'L', -41030=>'L', -41031=>'L', -41032=>'L', -41033=>'L', -41034=>'L', -41035=>'L', -41036=>'L', -41037=>'L', -41038=>'L', -41039=>'L', -41040=>'L', -41041=>'L', -41042=>'L', -41043=>'L', -41044=>'L', -41045=>'L', -41046=>'L', -41047=>'L', -41048=>'L', -41049=>'L', -41050=>'L', -41051=>'L', -41052=>'L', -41053=>'L', -41054=>'L', -41055=>'L', -41056=>'L', -41057=>'L', -41058=>'L', -41059=>'L', -41060=>'L', -41061=>'L', -41062=>'L', -41063=>'L', -41064=>'L', -41065=>'L', -41066=>'L', -41067=>'L', -41068=>'L', -41069=>'L', -41070=>'L', -41071=>'L', -41072=>'L', -41073=>'L', -41074=>'L', -41075=>'L', -41076=>'L', -41077=>'L', -41078=>'L', -41079=>'L', -41080=>'L', -41081=>'L', -41082=>'L', -41083=>'L', -41084=>'L', -41085=>'L', -41086=>'L', -41087=>'L', -41088=>'L', -41089=>'L', -41090=>'L', -41091=>'L', -41092=>'L', -41093=>'L', -41094=>'L', -41095=>'L', -41096=>'L', -41097=>'L', -41098=>'L', -41099=>'L', -41100=>'L', -41101=>'L', -41102=>'L', -41103=>'L', -41104=>'L', -41105=>'L', -41106=>'L', -41107=>'L', -41108=>'L', -41109=>'L', -41110=>'L', -41111=>'L', -41112=>'L', -41113=>'L', -41114=>'L', -41115=>'L', -41116=>'L', -41117=>'L', -41118=>'L', -41119=>'L', -41120=>'L', -41121=>'L', -41122=>'L', -41123=>'L', -41124=>'L', -41125=>'L', -41126=>'L', -41127=>'L', -41128=>'L', -41129=>'L', -41130=>'L', -41131=>'L', -41132=>'L', -41133=>'L', -41134=>'L', -41135=>'L', -41136=>'L', -41137=>'L', -41138=>'L', -41139=>'L', -41140=>'L', -41141=>'L', -41142=>'L', -41143=>'L', -41144=>'L', -41145=>'L', -41146=>'L', -41147=>'L', -41148=>'L', -41149=>'L', -41150=>'L', -41151=>'L', -41152=>'L', -41153=>'L', -41154=>'L', -41155=>'L', -41156=>'L', -41157=>'L', -41158=>'L', -41159=>'L', -41160=>'L', -41161=>'L', -41162=>'L', -41163=>'L', -41164=>'L', -41165=>'L', -41166=>'L', -41167=>'L', -41168=>'L', -41169=>'L', -41170=>'L', -41171=>'L', -41172=>'L', -41173=>'L', -41174=>'L', -41175=>'L', -41176=>'L', -41177=>'L', -41178=>'L', -41179=>'L', -41180=>'L', -41181=>'L', -41182=>'L', -41183=>'L', -41184=>'L', -41185=>'L', -41186=>'L', -41187=>'L', -41188=>'L', -41189=>'L', -41190=>'L', -41191=>'L', -41192=>'L', -41193=>'L', -41194=>'L', -41195=>'L', -41196=>'L', -41197=>'L', -41198=>'L', -41199=>'L', -41200=>'L', -41201=>'L', -41202=>'L', -41203=>'L', -41204=>'L', -41205=>'L', -41206=>'L', -41207=>'L', -41208=>'L', -41209=>'L', -41210=>'L', -41211=>'L', -41212=>'L', -41213=>'L', -41214=>'L', -41215=>'L', -41216=>'L', -41217=>'L', -41218=>'L', -41219=>'L', -41220=>'L', -41221=>'L', -41222=>'L', -41223=>'L', -41224=>'L', -41225=>'L', -41226=>'L', -41227=>'L', -41228=>'L', -41229=>'L', -41230=>'L', -41231=>'L', -41232=>'L', -41233=>'L', -41234=>'L', -41235=>'L', -41236=>'L', -41237=>'L', -41238=>'L', -41239=>'L', -41240=>'L', -41241=>'L', -41242=>'L', -41243=>'L', -41244=>'L', -41245=>'L', -41246=>'L', -41247=>'L', -41248=>'L', -41249=>'L', -41250=>'L', -41251=>'L', -41252=>'L', -41253=>'L', -41254=>'L', -41255=>'L', -41256=>'L', -41257=>'L', -41258=>'L', -41259=>'L', -41260=>'L', -41261=>'L', -41262=>'L', -41263=>'L', -41264=>'L', -41265=>'L', -41266=>'L', -41267=>'L', -41268=>'L', -41269=>'L', -41270=>'L', -41271=>'L', -41272=>'L', -41273=>'L', -41274=>'L', -41275=>'L', -41276=>'L', -41277=>'L', -41278=>'L', -41279=>'L', -41280=>'L', -41281=>'L', -41282=>'L', -41283=>'L', -41284=>'L', -41285=>'L', -41286=>'L', -41287=>'L', -41288=>'L', -41289=>'L', -41290=>'L', -41291=>'L', -41292=>'L', -41293=>'L', -41294=>'L', -41295=>'L', -41296=>'L', -41297=>'L', -41298=>'L', -41299=>'L', -41300=>'L', -41301=>'L', -41302=>'L', -41303=>'L', -41304=>'L', -41305=>'L', -41306=>'L', -41307=>'L', -41308=>'L', -41309=>'L', -41310=>'L', -41311=>'L', -41312=>'L', -41313=>'L', -41314=>'L', -41315=>'L', -41316=>'L', -41317=>'L', -41318=>'L', -41319=>'L', -41320=>'L', -41321=>'L', -41322=>'L', -41323=>'L', -41324=>'L', -41325=>'L', -41326=>'L', -41327=>'L', -41328=>'L', -41329=>'L', -41330=>'L', -41331=>'L', -41332=>'L', -41333=>'L', -41334=>'L', -41335=>'L', -41336=>'L', -41337=>'L', -41338=>'L', -41339=>'L', -41340=>'L', -41341=>'L', -41342=>'L', -41343=>'L', -41344=>'L', -41345=>'L', -41346=>'L', -41347=>'L', -41348=>'L', -41349=>'L', -41350=>'L', -41351=>'L', -41352=>'L', -41353=>'L', -41354=>'L', -41355=>'L', -41356=>'L', -41357=>'L', -41358=>'L', -41359=>'L', -41360=>'L', -41361=>'L', -41362=>'L', -41363=>'L', -41364=>'L', -41365=>'L', -41366=>'L', -41367=>'L', -41368=>'L', -41369=>'L', -41370=>'L', -41371=>'L', -41372=>'L', -41373=>'L', -41374=>'L', -41375=>'L', -41376=>'L', -41377=>'L', -41378=>'L', -41379=>'L', -41380=>'L', -41381=>'L', -41382=>'L', -41383=>'L', -41384=>'L', -41385=>'L', -41386=>'L', -41387=>'L', -41388=>'L', -41389=>'L', -41390=>'L', -41391=>'L', -41392=>'L', -41393=>'L', -41394=>'L', -41395=>'L', -41396=>'L', -41397=>'L', -41398=>'L', -41399=>'L', -41400=>'L', -41401=>'L', -41402=>'L', -41403=>'L', -41404=>'L', -41405=>'L', -41406=>'L', -41407=>'L', -41408=>'L', -41409=>'L', -41410=>'L', -41411=>'L', -41412=>'L', -41413=>'L', -41414=>'L', -41415=>'L', -41416=>'L', -41417=>'L', -41418=>'L', -41419=>'L', -41420=>'L', -41421=>'L', -41422=>'L', -41423=>'L', -41424=>'L', -41425=>'L', -41426=>'L', -41427=>'L', -41428=>'L', -41429=>'L', -41430=>'L', -41431=>'L', -41432=>'L', -41433=>'L', -41434=>'L', -41435=>'L', -41436=>'L', -41437=>'L', -41438=>'L', -41439=>'L', -41440=>'L', -41441=>'L', -41442=>'L', -41443=>'L', -41444=>'L', -41445=>'L', -41446=>'L', -41447=>'L', -41448=>'L', -41449=>'L', -41450=>'L', -41451=>'L', -41452=>'L', -41453=>'L', -41454=>'L', -41455=>'L', -41456=>'L', -41457=>'L', -41458=>'L', -41459=>'L', -41460=>'L', -41461=>'L', -41462=>'L', -41463=>'L', -41464=>'L', -41465=>'L', -41466=>'L', -41467=>'L', -41468=>'L', -41469=>'L', -41470=>'L', -41471=>'L', -41472=>'L', -41473=>'L', -41474=>'L', -41475=>'L', -41476=>'L', -41477=>'L', -41478=>'L', -41479=>'L', -41480=>'L', -41481=>'L', -41482=>'L', -41483=>'L', -41484=>'L', -41485=>'L', -41486=>'L', -41487=>'L', -41488=>'L', -41489=>'L', -41490=>'L', -41491=>'L', -41492=>'L', -41493=>'L', -41494=>'L', -41495=>'L', -41496=>'L', -41497=>'L', -41498=>'L', -41499=>'L', -41500=>'L', -41501=>'L', -41502=>'L', -41503=>'L', -41504=>'L', -41505=>'L', -41506=>'L', -41507=>'L', -41508=>'L', -41509=>'L', -41510=>'L', -41511=>'L', -41512=>'L', -41513=>'L', -41514=>'L', -41515=>'L', -41516=>'L', -41517=>'L', -41518=>'L', -41519=>'L', -41520=>'L', -41521=>'L', -41522=>'L', -41523=>'L', -41524=>'L', -41525=>'L', -41526=>'L', -41527=>'L', -41528=>'L', -41529=>'L', -41530=>'L', -41531=>'L', -41532=>'L', -41533=>'L', -41534=>'L', -41535=>'L', -41536=>'L', -41537=>'L', -41538=>'L', -41539=>'L', -41540=>'L', -41541=>'L', -41542=>'L', -41543=>'L', -41544=>'L', -41545=>'L', -41546=>'L', -41547=>'L', -41548=>'L', -41549=>'L', -41550=>'L', -41551=>'L', -41552=>'L', -41553=>'L', -41554=>'L', -41555=>'L', -41556=>'L', -41557=>'L', -41558=>'L', -41559=>'L', -41560=>'L', -41561=>'L', -41562=>'L', -41563=>'L', -41564=>'L', -41565=>'L', -41566=>'L', -41567=>'L', -41568=>'L', -41569=>'L', -41570=>'L', -41571=>'L', -41572=>'L', -41573=>'L', -41574=>'L', -41575=>'L', -41576=>'L', -41577=>'L', -41578=>'L', -41579=>'L', -41580=>'L', -41581=>'L', -41582=>'L', -41583=>'L', -41584=>'L', -41585=>'L', -41586=>'L', -41587=>'L', -41588=>'L', -41589=>'L', -41590=>'L', -41591=>'L', -41592=>'L', -41593=>'L', -41594=>'L', -41595=>'L', -41596=>'L', -41597=>'L', -41598=>'L', -41599=>'L', -41600=>'L', -41601=>'L', -41602=>'L', -41603=>'L', -41604=>'L', -41605=>'L', -41606=>'L', -41607=>'L', -41608=>'L', -41609=>'L', -41610=>'L', -41611=>'L', -41612=>'L', -41613=>'L', -41614=>'L', -41615=>'L', -41616=>'L', -41617=>'L', -41618=>'L', -41619=>'L', -41620=>'L', -41621=>'L', -41622=>'L', -41623=>'L', -41624=>'L', -41625=>'L', -41626=>'L', -41627=>'L', -41628=>'L', -41629=>'L', -41630=>'L', -41631=>'L', -41632=>'L', -41633=>'L', -41634=>'L', -41635=>'L', -41636=>'L', -41637=>'L', -41638=>'L', -41639=>'L', -41640=>'L', -41641=>'L', -41642=>'L', -41643=>'L', -41644=>'L', -41645=>'L', -41646=>'L', -41647=>'L', -41648=>'L', -41649=>'L', -41650=>'L', -41651=>'L', -41652=>'L', -41653=>'L', -41654=>'L', -41655=>'L', -41656=>'L', -41657=>'L', -41658=>'L', -41659=>'L', -41660=>'L', -41661=>'L', -41662=>'L', -41663=>'L', -41664=>'L', -41665=>'L', -41666=>'L', -41667=>'L', -41668=>'L', -41669=>'L', -41670=>'L', -41671=>'L', -41672=>'L', -41673=>'L', -41674=>'L', -41675=>'L', -41676=>'L', -41677=>'L', -41678=>'L', -41679=>'L', -41680=>'L', -41681=>'L', -41682=>'L', -41683=>'L', -41684=>'L', -41685=>'L', -41686=>'L', -41687=>'L', -41688=>'L', -41689=>'L', -41690=>'L', -41691=>'L', -41692=>'L', -41693=>'L', -41694=>'L', -41695=>'L', -41696=>'L', -41697=>'L', -41698=>'L', -41699=>'L', -41700=>'L', -41701=>'L', -41702=>'L', -41703=>'L', -41704=>'L', -41705=>'L', -41706=>'L', -41707=>'L', -41708=>'L', -41709=>'L', -41710=>'L', -41711=>'L', -41712=>'L', -41713=>'L', -41714=>'L', -41715=>'L', -41716=>'L', -41717=>'L', -41718=>'L', -41719=>'L', -41720=>'L', -41721=>'L', -41722=>'L', -41723=>'L', -41724=>'L', -41725=>'L', -41726=>'L', -41727=>'L', -41728=>'L', -41729=>'L', -41730=>'L', -41731=>'L', -41732=>'L', -41733=>'L', -41734=>'L', -41735=>'L', -41736=>'L', -41737=>'L', -41738=>'L', -41739=>'L', -41740=>'L', -41741=>'L', -41742=>'L', -41743=>'L', -41744=>'L', -41745=>'L', -41746=>'L', -41747=>'L', -41748=>'L', -41749=>'L', -41750=>'L', -41751=>'L', -41752=>'L', -41753=>'L', -41754=>'L', -41755=>'L', -41756=>'L', -41757=>'L', -41758=>'L', -41759=>'L', -41760=>'L', -41761=>'L', -41762=>'L', -41763=>'L', -41764=>'L', -41765=>'L', -41766=>'L', -41767=>'L', -41768=>'L', -41769=>'L', -41770=>'L', -41771=>'L', -41772=>'L', -41773=>'L', -41774=>'L', -41775=>'L', -41776=>'L', -41777=>'L', -41778=>'L', -41779=>'L', -41780=>'L', -41781=>'L', -41782=>'L', -41783=>'L', -41784=>'L', -41785=>'L', -41786=>'L', -41787=>'L', -41788=>'L', -41789=>'L', -41790=>'L', -41791=>'L', -41792=>'L', -41793=>'L', -41794=>'L', -41795=>'L', -41796=>'L', -41797=>'L', -41798=>'L', -41799=>'L', -41800=>'L', -41801=>'L', -41802=>'L', -41803=>'L', -41804=>'L', -41805=>'L', -41806=>'L', -41807=>'L', -41808=>'L', -41809=>'L', -41810=>'L', -41811=>'L', -41812=>'L', -41813=>'L', -41814=>'L', -41815=>'L', -41816=>'L', -41817=>'L', -41818=>'L', -41819=>'L', -41820=>'L', -41821=>'L', -41822=>'L', -41823=>'L', -41824=>'L', -41825=>'L', -41826=>'L', -41827=>'L', -41828=>'L', -41829=>'L', -41830=>'L', -41831=>'L', -41832=>'L', -41833=>'L', -41834=>'L', -41835=>'L', -41836=>'L', -41837=>'L', -41838=>'L', -41839=>'L', -41840=>'L', -41841=>'L', -41842=>'L', -41843=>'L', -41844=>'L', -41845=>'L', -41846=>'L', -41847=>'L', -41848=>'L', -41849=>'L', -41850=>'L', -41851=>'L', -41852=>'L', -41853=>'L', -41854=>'L', -41855=>'L', -41856=>'L', -41857=>'L', -41858=>'L', -41859=>'L', -41860=>'L', -41861=>'L', -41862=>'L', -41863=>'L', -41864=>'L', -41865=>'L', -41866=>'L', -41867=>'L', -41868=>'L', -41869=>'L', -41870=>'L', -41871=>'L', -41872=>'L', -41873=>'L', -41874=>'L', -41875=>'L', -41876=>'L', -41877=>'L', -41878=>'L', -41879=>'L', -41880=>'L', -41881=>'L', -41882=>'L', -41883=>'L', -41884=>'L', -41885=>'L', -41886=>'L', -41887=>'L', -41888=>'L', -41889=>'L', -41890=>'L', -41891=>'L', -41892=>'L', -41893=>'L', -41894=>'L', -41895=>'L', -41896=>'L', -41897=>'L', -41898=>'L', -41899=>'L', -41900=>'L', -41901=>'L', -41902=>'L', -41903=>'L', -41904=>'L', -41905=>'L', -41906=>'L', -41907=>'L', -41908=>'L', -41909=>'L', -41910=>'L', -41911=>'L', -41912=>'L', -41913=>'L', -41914=>'L', -41915=>'L', -41916=>'L', -41917=>'L', -41918=>'L', -41919=>'L', -41920=>'L', -41921=>'L', -41922=>'L', -41923=>'L', -41924=>'L', -41925=>'L', -41926=>'L', -41927=>'L', -41928=>'L', -41929=>'L', -41930=>'L', -41931=>'L', -41932=>'L', -41933=>'L', -41934=>'L', -41935=>'L', -41936=>'L', -41937=>'L', -41938=>'L', -41939=>'L', -41940=>'L', -41941=>'L', -41942=>'L', -41943=>'L', -41944=>'L', -41945=>'L', -41946=>'L', -41947=>'L', -41948=>'L', -41949=>'L', -41950=>'L', -41951=>'L', -41952=>'L', -41953=>'L', -41954=>'L', -41955=>'L', -41956=>'L', -41957=>'L', -41958=>'L', -41959=>'L', -41960=>'L', -41961=>'L', -41962=>'L', -41963=>'L', -41964=>'L', -41965=>'L', -41966=>'L', -41967=>'L', -41968=>'L', -41969=>'L', -41970=>'L', -41971=>'L', -41972=>'L', -41973=>'L', -41974=>'L', -41975=>'L', -41976=>'L', -41977=>'L', -41978=>'L', -41979=>'L', -41980=>'L', -41981=>'L', -41982=>'L', -41983=>'L', -41984=>'L', -41985=>'L', -41986=>'L', -41987=>'L', -41988=>'L', -41989=>'L', -41990=>'L', -41991=>'L', -41992=>'L', -41993=>'L', -41994=>'L', -41995=>'L', -41996=>'L', -41997=>'L', -41998=>'L', -41999=>'L', -42000=>'L', -42001=>'L', -42002=>'L', -42003=>'L', -42004=>'L', -42005=>'L', -42006=>'L', -42007=>'L', -42008=>'L', -42009=>'L', -42010=>'L', -42011=>'L', -42012=>'L', -42013=>'L', -42014=>'L', -42015=>'L', -42016=>'L', -42017=>'L', -42018=>'L', -42019=>'L', -42020=>'L', -42021=>'L', -42022=>'L', -42023=>'L', -42024=>'L', -42025=>'L', -42026=>'L', -42027=>'L', -42028=>'L', -42029=>'L', -42030=>'L', -42031=>'L', -42032=>'L', -42033=>'L', -42034=>'L', -42035=>'L', -42036=>'L', -42037=>'L', -42038=>'L', -42039=>'L', -42040=>'L', -42041=>'L', -42042=>'L', -42043=>'L', -42044=>'L', -42045=>'L', -42046=>'L', -42047=>'L', -42048=>'L', -42049=>'L', -42050=>'L', -42051=>'L', -42052=>'L', -42053=>'L', -42054=>'L', -42055=>'L', -42056=>'L', -42057=>'L', -42058=>'L', -42059=>'L', -42060=>'L', -42061=>'L', -42062=>'L', -42063=>'L', -42064=>'L', -42065=>'L', -42066=>'L', -42067=>'L', -42068=>'L', -42069=>'L', -42070=>'L', -42071=>'L', -42072=>'L', -42073=>'L', -42074=>'L', -42075=>'L', -42076=>'L', -42077=>'L', -42078=>'L', -42079=>'L', -42080=>'L', -42081=>'L', -42082=>'L', -42083=>'L', -42084=>'L', -42085=>'L', -42086=>'L', -42087=>'L', -42088=>'L', -42089=>'L', -42090=>'L', -42091=>'L', -42092=>'L', -42093=>'L', -42094=>'L', -42095=>'L', -42096=>'L', -42097=>'L', -42098=>'L', -42099=>'L', -42100=>'L', -42101=>'L', -42102=>'L', -42103=>'L', -42104=>'L', -42105=>'L', -42106=>'L', -42107=>'L', -42108=>'L', -42109=>'L', -42110=>'L', -42111=>'L', -42112=>'L', -42113=>'L', -42114=>'L', -42115=>'L', -42116=>'L', -42117=>'L', -42118=>'L', -42119=>'L', -42120=>'L', -42121=>'L', -42122=>'L', -42123=>'L', -42124=>'L', -42128=>'ON', -42129=>'ON', -42130=>'ON', -42131=>'ON', -42132=>'ON', -42133=>'ON', -42134=>'ON', -42135=>'ON', -42136=>'ON', -42137=>'ON', -42138=>'ON', -42139=>'ON', -42140=>'ON', -42141=>'ON', -42142=>'ON', -42143=>'ON', -42144=>'ON', -42145=>'ON', -42146=>'ON', -42147=>'ON', -42148=>'ON', -42149=>'ON', -42150=>'ON', -42151=>'ON', -42152=>'ON', -42153=>'ON', -42154=>'ON', -42155=>'ON', -42156=>'ON', -42157=>'ON', -42158=>'ON', -42159=>'ON', -42160=>'ON', -42161=>'ON', -42162=>'ON', -42163=>'ON', -42164=>'ON', -42165=>'ON', -42166=>'ON', -42167=>'ON', -42168=>'ON', -42169=>'ON', -42170=>'ON', -42171=>'ON', -42172=>'ON', -42173=>'ON', -42174=>'ON', -42175=>'ON', -42176=>'ON', -42177=>'ON', -42178=>'ON', -42179=>'ON', -42180=>'ON', -42181=>'ON', -42182=>'ON', -42752=>'ON', -42753=>'ON', -42754=>'ON', -42755=>'ON', -42756=>'ON', -42757=>'ON', -42758=>'ON', -42759=>'ON', -42760=>'ON', -42761=>'ON', -42762=>'ON', -42763=>'ON', -42764=>'ON', -42765=>'ON', -42766=>'ON', -42767=>'ON', -42768=>'ON', -42769=>'ON', -42770=>'ON', -42771=>'ON', -42772=>'ON', -42773=>'ON', -42774=>'ON', -42775=>'ON', -42776=>'ON', -42777=>'ON', -42778=>'ON', -42784=>'ON', -42785=>'ON', -43008=>'L', -43009=>'L', -43010=>'NSM', -43011=>'L', -43012=>'L', -43013=>'L', -43014=>'NSM', -43015=>'L', -43016=>'L', -43017=>'L', -43018=>'L', -43019=>'NSM', -43020=>'L', -43021=>'L', -43022=>'L', -43023=>'L', -43024=>'L', -43025=>'L', -43026=>'L', -43027=>'L', -43028=>'L', -43029=>'L', -43030=>'L', -43031=>'L', -43032=>'L', -43033=>'L', -43034=>'L', -43035=>'L', -43036=>'L', -43037=>'L', -43038=>'L', -43039=>'L', -43040=>'L', -43041=>'L', -43042=>'L', -43043=>'L', -43044=>'L', -43045=>'NSM', -43046=>'NSM', -43047=>'L', -43048=>'ON', -43049=>'ON', -43050=>'ON', -43051=>'ON', -43072=>'L', -43073=>'L', -43074=>'L', -43075=>'L', -43076=>'L', -43077=>'L', -43078=>'L', -43079=>'L', -43080=>'L', -43081=>'L', -43082=>'L', -43083=>'L', -43084=>'L', -43085=>'L', -43086=>'L', -43087=>'L', -43088=>'L', -43089=>'L', -43090=>'L', -43091=>'L', -43092=>'L', -43093=>'L', -43094=>'L', -43095=>'L', -43096=>'L', -43097=>'L', -43098=>'L', -43099=>'L', -43100=>'L', -43101=>'L', -43102=>'L', -43103=>'L', -43104=>'L', -43105=>'L', -43106=>'L', -43107=>'L', -43108=>'L', -43109=>'L', -43110=>'L', -43111=>'L', -43112=>'L', -43113=>'L', -43114=>'L', -43115=>'L', -43116=>'L', -43117=>'L', -43118=>'L', -43119=>'L', -43120=>'L', -43121=>'L', -43122=>'L', -43123=>'L', -43124=>'ON', -43125=>'ON', -43126=>'ON', -43127=>'ON', -44032=>'L', -55203=>'L', -55296=>'L', -56191=>'L', -56192=>'L', -56319=>'L', -56320=>'L', -57343=>'L', -57344=>'L', -63743=>'L', -63744=>'L', -63745=>'L', -63746=>'L', -63747=>'L', -63748=>'L', -63749=>'L', -63750=>'L', -63751=>'L', -63752=>'L', -63753=>'L', -63754=>'L', -63755=>'L', -63756=>'L', -63757=>'L', -63758=>'L', -63759=>'L', -63760=>'L', -63761=>'L', -63762=>'L', -63763=>'L', -63764=>'L', -63765=>'L', -63766=>'L', -63767=>'L', -63768=>'L', -63769=>'L', -63770=>'L', -63771=>'L', -63772=>'L', -63773=>'L', -63774=>'L', -63775=>'L', -63776=>'L', -63777=>'L', -63778=>'L', -63779=>'L', -63780=>'L', -63781=>'L', -63782=>'L', -63783=>'L', -63784=>'L', -63785=>'L', -63786=>'L', -63787=>'L', -63788=>'L', -63789=>'L', -63790=>'L', -63791=>'L', -63792=>'L', -63793=>'L', -63794=>'L', -63795=>'L', -63796=>'L', -63797=>'L', -63798=>'L', -63799=>'L', -63800=>'L', -63801=>'L', -63802=>'L', -63803=>'L', -63804=>'L', -63805=>'L', -63806=>'L', -63807=>'L', -63808=>'L', -63809=>'L', -63810=>'L', -63811=>'L', -63812=>'L', -63813=>'L', -63814=>'L', -63815=>'L', -63816=>'L', -63817=>'L', -63818=>'L', -63819=>'L', -63820=>'L', -63821=>'L', -63822=>'L', -63823=>'L', -63824=>'L', -63825=>'L', -63826=>'L', -63827=>'L', -63828=>'L', -63829=>'L', -63830=>'L', -63831=>'L', -63832=>'L', -63833=>'L', -63834=>'L', -63835=>'L', -63836=>'L', -63837=>'L', -63838=>'L', -63839=>'L', -63840=>'L', -63841=>'L', -63842=>'L', -63843=>'L', -63844=>'L', -63845=>'L', -63846=>'L', -63847=>'L', -63848=>'L', -63849=>'L', -63850=>'L', -63851=>'L', -63852=>'L', -63853=>'L', -63854=>'L', -63855=>'L', -63856=>'L', -63857=>'L', -63858=>'L', -63859=>'L', -63860=>'L', -63861=>'L', -63862=>'L', -63863=>'L', -63864=>'L', -63865=>'L', -63866=>'L', -63867=>'L', -63868=>'L', -63869=>'L', -63870=>'L', -63871=>'L', -63872=>'L', -63873=>'L', -63874=>'L', -63875=>'L', -63876=>'L', -63877=>'L', -63878=>'L', -63879=>'L', -63880=>'L', -63881=>'L', -63882=>'L', -63883=>'L', -63884=>'L', -63885=>'L', -63886=>'L', -63887=>'L', -63888=>'L', -63889=>'L', -63890=>'L', -63891=>'L', -63892=>'L', -63893=>'L', -63894=>'L', -63895=>'L', -63896=>'L', -63897=>'L', -63898=>'L', -63899=>'L', -63900=>'L', -63901=>'L', -63902=>'L', -63903=>'L', -63904=>'L', -63905=>'L', -63906=>'L', -63907=>'L', -63908=>'L', -63909=>'L', -63910=>'L', -63911=>'L', -63912=>'L', -63913=>'L', -63914=>'L', -63915=>'L', -63916=>'L', -63917=>'L', -63918=>'L', -63919=>'L', -63920=>'L', -63921=>'L', -63922=>'L', -63923=>'L', -63924=>'L', -63925=>'L', -63926=>'L', -63927=>'L', -63928=>'L', -63929=>'L', -63930=>'L', -63931=>'L', -63932=>'L', -63933=>'L', -63934=>'L', -63935=>'L', -63936=>'L', -63937=>'L', -63938=>'L', -63939=>'L', -63940=>'L', -63941=>'L', -63942=>'L', -63943=>'L', -63944=>'L', -63945=>'L', -63946=>'L', -63947=>'L', -63948=>'L', -63949=>'L', -63950=>'L', -63951=>'L', -63952=>'L', -63953=>'L', -63954=>'L', -63955=>'L', -63956=>'L', -63957=>'L', -63958=>'L', -63959=>'L', -63960=>'L', -63961=>'L', -63962=>'L', -63963=>'L', -63964=>'L', -63965=>'L', -63966=>'L', -63967=>'L', -63968=>'L', -63969=>'L', -63970=>'L', -63971=>'L', -63972=>'L', -63973=>'L', -63974=>'L', -63975=>'L', -63976=>'L', -63977=>'L', -63978=>'L', -63979=>'L', -63980=>'L', -63981=>'L', -63982=>'L', -63983=>'L', -63984=>'L', -63985=>'L', -63986=>'L', -63987=>'L', -63988=>'L', -63989=>'L', -63990=>'L', -63991=>'L', -63992=>'L', -63993=>'L', -63994=>'L', -63995=>'L', -63996=>'L', -63997=>'L', -63998=>'L', -63999=>'L', -64000=>'L', -64001=>'L', -64002=>'L', -64003=>'L', -64004=>'L', -64005=>'L', -64006=>'L', -64007=>'L', -64008=>'L', -64009=>'L', -64010=>'L', -64011=>'L', -64012=>'L', -64013=>'L', -64014=>'L', -64015=>'L', -64016=>'L', -64017=>'L', -64018=>'L', -64019=>'L', -64020=>'L', -64021=>'L', -64022=>'L', -64023=>'L', -64024=>'L', -64025=>'L', -64026=>'L', -64027=>'L', -64028=>'L', -64029=>'L', -64030=>'L', -64031=>'L', -64032=>'L', -64033=>'L', -64034=>'L', -64035=>'L', -64036=>'L', -64037=>'L', -64038=>'L', -64039=>'L', -64040=>'L', -64041=>'L', -64042=>'L', -64043=>'L', -64044=>'L', -64045=>'L', -64048=>'L', -64049=>'L', -64050=>'L', -64051=>'L', -64052=>'L', -64053=>'L', -64054=>'L', -64055=>'L', -64056=>'L', -64057=>'L', -64058=>'L', -64059=>'L', -64060=>'L', -64061=>'L', -64062=>'L', -64063=>'L', -64064=>'L', -64065=>'L', -64066=>'L', -64067=>'L', -64068=>'L', -64069=>'L', -64070=>'L', -64071=>'L', -64072=>'L', -64073=>'L', -64074=>'L', -64075=>'L', -64076=>'L', -64077=>'L', -64078=>'L', -64079=>'L', -64080=>'L', -64081=>'L', -64082=>'L', -64083=>'L', -64084=>'L', -64085=>'L', -64086=>'L', -64087=>'L', -64088=>'L', -64089=>'L', -64090=>'L', -64091=>'L', -64092=>'L', -64093=>'L', -64094=>'L', -64095=>'L', -64096=>'L', -64097=>'L', -64098=>'L', -64099=>'L', -64100=>'L', -64101=>'L', -64102=>'L', -64103=>'L', -64104=>'L', -64105=>'L', -64106=>'L', -64112=>'L', -64113=>'L', -64114=>'L', -64115=>'L', -64116=>'L', -64117=>'L', -64118=>'L', -64119=>'L', -64120=>'L', -64121=>'L', -64122=>'L', -64123=>'L', -64124=>'L', -64125=>'L', -64126=>'L', -64127=>'L', -64128=>'L', -64129=>'L', -64130=>'L', -64131=>'L', -64132=>'L', -64133=>'L', -64134=>'L', -64135=>'L', -64136=>'L', -64137=>'L', -64138=>'L', -64139=>'L', -64140=>'L', -64141=>'L', -64142=>'L', -64143=>'L', -64144=>'L', -64145=>'L', -64146=>'L', -64147=>'L', -64148=>'L', -64149=>'L', -64150=>'L', -64151=>'L', -64152=>'L', -64153=>'L', -64154=>'L', -64155=>'L', -64156=>'L', -64157=>'L', -64158=>'L', -64159=>'L', -64160=>'L', -64161=>'L', -64162=>'L', -64163=>'L', -64164=>'L', -64165=>'L', -64166=>'L', -64167=>'L', -64168=>'L', -64169=>'L', -64170=>'L', -64171=>'L', -64172=>'L', -64173=>'L', -64174=>'L', -64175=>'L', -64176=>'L', -64177=>'L', -64178=>'L', -64179=>'L', -64180=>'L', -64181=>'L', -64182=>'L', -64183=>'L', -64184=>'L', -64185=>'L', -64186=>'L', -64187=>'L', -64188=>'L', -64189=>'L', -64190=>'L', -64191=>'L', -64192=>'L', -64193=>'L', -64194=>'L', -64195=>'L', -64196=>'L', -64197=>'L', -64198=>'L', -64199=>'L', -64200=>'L', -64201=>'L', -64202=>'L', -64203=>'L', -64204=>'L', -64205=>'L', -64206=>'L', -64207=>'L', -64208=>'L', -64209=>'L', -64210=>'L', -64211=>'L', -64212=>'L', -64213=>'L', -64214=>'L', -64215=>'L', -64216=>'L', -64217=>'L', -64256=>'L', -64257=>'L', -64258=>'L', -64259=>'L', -64260=>'L', -64261=>'L', -64262=>'L', -64275=>'L', -64276=>'L', -64277=>'L', -64278=>'L', -64279=>'L', -64285=>'R', -64286=>'NSM', -64287=>'R', -64288=>'R', -64289=>'R', -64290=>'R', -64291=>'R', -64292=>'R', -64293=>'R', -64294=>'R', -64295=>'R', -64296=>'R', -64297=>'ES', -64298=>'R', -64299=>'R', -64300=>'R', -64301=>'R', -64302=>'R', -64303=>'R', -64304=>'R', -64305=>'R', -64306=>'R', -64307=>'R', -64308=>'R', -64309=>'R', -64310=>'R', -64312=>'R', -64313=>'R', -64314=>'R', -64315=>'R', -64316=>'R', -64318=>'R', -64320=>'R', -64321=>'R', -64323=>'R', -64324=>'R', -64326=>'R', -64327=>'R', -64328=>'R', -64329=>'R', -64330=>'R', -64331=>'R', -64332=>'R', -64333=>'R', -64334=>'R', -64335=>'R', -64336=>'AL', -64337=>'AL', -64338=>'AL', -64339=>'AL', -64340=>'AL', -64341=>'AL', -64342=>'AL', -64343=>'AL', -64344=>'AL', -64345=>'AL', -64346=>'AL', -64347=>'AL', -64348=>'AL', -64349=>'AL', -64350=>'AL', -64351=>'AL', -64352=>'AL', -64353=>'AL', -64354=>'AL', -64355=>'AL', -64356=>'AL', -64357=>'AL', -64358=>'AL', -64359=>'AL', -64360=>'AL', -64361=>'AL', -64362=>'AL', -64363=>'AL', -64364=>'AL', -64365=>'AL', -64366=>'AL', -64367=>'AL', -64368=>'AL', -64369=>'AL', -64370=>'AL', -64371=>'AL', -64372=>'AL', -64373=>'AL', -64374=>'AL', -64375=>'AL', -64376=>'AL', -64377=>'AL', -64378=>'AL', -64379=>'AL', -64380=>'AL', -64381=>'AL', -64382=>'AL', -64383=>'AL', -64384=>'AL', -64385=>'AL', -64386=>'AL', -64387=>'AL', -64388=>'AL', -64389=>'AL', -64390=>'AL', -64391=>'AL', -64392=>'AL', -64393=>'AL', -64394=>'AL', -64395=>'AL', -64396=>'AL', -64397=>'AL', -64398=>'AL', -64399=>'AL', -64400=>'AL', -64401=>'AL', -64402=>'AL', -64403=>'AL', -64404=>'AL', -64405=>'AL', -64406=>'AL', -64407=>'AL', -64408=>'AL', -64409=>'AL', -64410=>'AL', -64411=>'AL', -64412=>'AL', -64413=>'AL', -64414=>'AL', -64415=>'AL', -64416=>'AL', -64417=>'AL', -64418=>'AL', -64419=>'AL', -64420=>'AL', -64421=>'AL', -64422=>'AL', -64423=>'AL', -64424=>'AL', -64425=>'AL', -64426=>'AL', -64427=>'AL', -64428=>'AL', -64429=>'AL', -64430=>'AL', -64431=>'AL', -64432=>'AL', -64433=>'AL', -64467=>'AL', -64468=>'AL', -64469=>'AL', -64470=>'AL', -64471=>'AL', -64472=>'AL', -64473=>'AL', -64474=>'AL', -64475=>'AL', -64476=>'AL', -64477=>'AL', -64478=>'AL', -64479=>'AL', -64480=>'AL', -64481=>'AL', -64482=>'AL', -64483=>'AL', -64484=>'AL', -64485=>'AL', -64486=>'AL', -64487=>'AL', -64488=>'AL', -64489=>'AL', -64490=>'AL', -64491=>'AL', -64492=>'AL', -64493=>'AL', -64494=>'AL', -64495=>'AL', -64496=>'AL', -64497=>'AL', -64498=>'AL', -64499=>'AL', -64500=>'AL', -64501=>'AL', -64502=>'AL', -64503=>'AL', -64504=>'AL', -64505=>'AL', -64506=>'AL', -64507=>'AL', -64508=>'AL', -64509=>'AL', -64510=>'AL', -64511=>'AL', -64512=>'AL', -64513=>'AL', -64514=>'AL', -64515=>'AL', -64516=>'AL', -64517=>'AL', -64518=>'AL', -64519=>'AL', -64520=>'AL', -64521=>'AL', -64522=>'AL', -64523=>'AL', -64524=>'AL', -64525=>'AL', -64526=>'AL', -64527=>'AL', -64528=>'AL', -64529=>'AL', -64530=>'AL', -64531=>'AL', -64532=>'AL', -64533=>'AL', -64534=>'AL', -64535=>'AL', -64536=>'AL', -64537=>'AL', -64538=>'AL', -64539=>'AL', -64540=>'AL', -64541=>'AL', -64542=>'AL', -64543=>'AL', -64544=>'AL', -64545=>'AL', -64546=>'AL', -64547=>'AL', -64548=>'AL', -64549=>'AL', -64550=>'AL', -64551=>'AL', -64552=>'AL', -64553=>'AL', -64554=>'AL', -64555=>'AL', -64556=>'AL', -64557=>'AL', -64558=>'AL', -64559=>'AL', -64560=>'AL', -64561=>'AL', -64562=>'AL', -64563=>'AL', -64564=>'AL', -64565=>'AL', -64566=>'AL', -64567=>'AL', -64568=>'AL', -64569=>'AL', -64570=>'AL', -64571=>'AL', -64572=>'AL', -64573=>'AL', -64574=>'AL', -64575=>'AL', -64576=>'AL', -64577=>'AL', -64578=>'AL', -64579=>'AL', -64580=>'AL', -64581=>'AL', -64582=>'AL', -64583=>'AL', -64584=>'AL', -64585=>'AL', -64586=>'AL', -64587=>'AL', -64588=>'AL', -64589=>'AL', -64590=>'AL', -64591=>'AL', -64592=>'AL', -64593=>'AL', -64594=>'AL', -64595=>'AL', -64596=>'AL', -64597=>'AL', -64598=>'AL', -64599=>'AL', -64600=>'AL', -64601=>'AL', -64602=>'AL', -64603=>'AL', -64604=>'AL', -64605=>'AL', -64606=>'AL', -64607=>'AL', -64608=>'AL', -64609=>'AL', -64610=>'AL', -64611=>'AL', -64612=>'AL', -64613=>'AL', -64614=>'AL', -64615=>'AL', -64616=>'AL', -64617=>'AL', -64618=>'AL', -64619=>'AL', -64620=>'AL', -64621=>'AL', -64622=>'AL', -64623=>'AL', -64624=>'AL', -64625=>'AL', -64626=>'AL', -64627=>'AL', -64628=>'AL', -64629=>'AL', -64630=>'AL', -64631=>'AL', -64632=>'AL', -64633=>'AL', -64634=>'AL', -64635=>'AL', -64636=>'AL', -64637=>'AL', -64638=>'AL', -64639=>'AL', -64640=>'AL', -64641=>'AL', -64642=>'AL', -64643=>'AL', -64644=>'AL', -64645=>'AL', -64646=>'AL', -64647=>'AL', -64648=>'AL', -64649=>'AL', -64650=>'AL', -64651=>'AL', -64652=>'AL', -64653=>'AL', -64654=>'AL', -64655=>'AL', -64656=>'AL', -64657=>'AL', -64658=>'AL', -64659=>'AL', -64660=>'AL', -64661=>'AL', -64662=>'AL', -64663=>'AL', -64664=>'AL', -64665=>'AL', -64666=>'AL', -64667=>'AL', -64668=>'AL', -64669=>'AL', -64670=>'AL', -64671=>'AL', -64672=>'AL', -64673=>'AL', -64674=>'AL', -64675=>'AL', -64676=>'AL', -64677=>'AL', -64678=>'AL', -64679=>'AL', -64680=>'AL', -64681=>'AL', -64682=>'AL', -64683=>'AL', -64684=>'AL', -64685=>'AL', -64686=>'AL', -64687=>'AL', -64688=>'AL', -64689=>'AL', -64690=>'AL', -64691=>'AL', -64692=>'AL', -64693=>'AL', -64694=>'AL', -64695=>'AL', -64696=>'AL', -64697=>'AL', -64698=>'AL', -64699=>'AL', -64700=>'AL', -64701=>'AL', -64702=>'AL', -64703=>'AL', -64704=>'AL', -64705=>'AL', -64706=>'AL', -64707=>'AL', -64708=>'AL', -64709=>'AL', -64710=>'AL', -64711=>'AL', -64712=>'AL', -64713=>'AL', -64714=>'AL', -64715=>'AL', -64716=>'AL', -64717=>'AL', -64718=>'AL', -64719=>'AL', -64720=>'AL', -64721=>'AL', -64722=>'AL', -64723=>'AL', -64724=>'AL', -64725=>'AL', -64726=>'AL', -64727=>'AL', -64728=>'AL', -64729=>'AL', -64730=>'AL', -64731=>'AL', -64732=>'AL', -64733=>'AL', -64734=>'AL', -64735=>'AL', -64736=>'AL', -64737=>'AL', -64738=>'AL', -64739=>'AL', -64740=>'AL', -64741=>'AL', -64742=>'AL', -64743=>'AL', -64744=>'AL', -64745=>'AL', -64746=>'AL', -64747=>'AL', -64748=>'AL', -64749=>'AL', -64750=>'AL', -64751=>'AL', -64752=>'AL', -64753=>'AL', -64754=>'AL', -64755=>'AL', -64756=>'AL', -64757=>'AL', -64758=>'AL', -64759=>'AL', -64760=>'AL', -64761=>'AL', -64762=>'AL', -64763=>'AL', -64764=>'AL', -64765=>'AL', -64766=>'AL', -64767=>'AL', -64768=>'AL', -64769=>'AL', -64770=>'AL', -64771=>'AL', -64772=>'AL', -64773=>'AL', -64774=>'AL', -64775=>'AL', -64776=>'AL', -64777=>'AL', -64778=>'AL', -64779=>'AL', -64780=>'AL', -64781=>'AL', -64782=>'AL', -64783=>'AL', -64784=>'AL', -64785=>'AL', -64786=>'AL', -64787=>'AL', -64788=>'AL', -64789=>'AL', -64790=>'AL', -64791=>'AL', -64792=>'AL', -64793=>'AL', -64794=>'AL', -64795=>'AL', -64796=>'AL', -64797=>'AL', -64798=>'AL', -64799=>'AL', -64800=>'AL', -64801=>'AL', -64802=>'AL', -64803=>'AL', -64804=>'AL', -64805=>'AL', -64806=>'AL', -64807=>'AL', -64808=>'AL', -64809=>'AL', -64810=>'AL', -64811=>'AL', -64812=>'AL', -64813=>'AL', -64814=>'AL', -64815=>'AL', -64816=>'AL', -64817=>'AL', -64818=>'AL', -64819=>'AL', -64820=>'AL', -64821=>'AL', -64822=>'AL', -64823=>'AL', -64824=>'AL', -64825=>'AL', -64826=>'AL', -64827=>'AL', -64828=>'AL', -64829=>'AL', -64830=>'ON', -64831=>'ON', -64848=>'AL', -64849=>'AL', -64850=>'AL', -64851=>'AL', -64852=>'AL', -64853=>'AL', -64854=>'AL', -64855=>'AL', -64856=>'AL', -64857=>'AL', -64858=>'AL', -64859=>'AL', -64860=>'AL', -64861=>'AL', -64862=>'AL', -64863=>'AL', -64864=>'AL', -64865=>'AL', -64866=>'AL', -64867=>'AL', -64868=>'AL', -64869=>'AL', -64870=>'AL', -64871=>'AL', -64872=>'AL', -64873=>'AL', -64874=>'AL', -64875=>'AL', -64876=>'AL', -64877=>'AL', -64878=>'AL', -64879=>'AL', -64880=>'AL', -64881=>'AL', -64882=>'AL', -64883=>'AL', -64884=>'AL', -64885=>'AL', -64886=>'AL', -64887=>'AL', -64888=>'AL', -64889=>'AL', -64890=>'AL', -64891=>'AL', -64892=>'AL', -64893=>'AL', -64894=>'AL', -64895=>'AL', -64896=>'AL', -64897=>'AL', -64898=>'AL', -64899=>'AL', -64900=>'AL', -64901=>'AL', -64902=>'AL', -64903=>'AL', -64904=>'AL', -64905=>'AL', -64906=>'AL', -64907=>'AL', -64908=>'AL', -64909=>'AL', -64910=>'AL', -64911=>'AL', -64914=>'AL', -64915=>'AL', -64916=>'AL', -64917=>'AL', -64918=>'AL', -64919=>'AL', -64920=>'AL', -64921=>'AL', -64922=>'AL', -64923=>'AL', -64924=>'AL', -64925=>'AL', -64926=>'AL', -64927=>'AL', -64928=>'AL', -64929=>'AL', -64930=>'AL', -64931=>'AL', -64932=>'AL', -64933=>'AL', -64934=>'AL', -64935=>'AL', -64936=>'AL', -64937=>'AL', -64938=>'AL', -64939=>'AL', -64940=>'AL', -64941=>'AL', -64942=>'AL', -64943=>'AL', -64944=>'AL', -64945=>'AL', -64946=>'AL', -64947=>'AL', -64948=>'AL', -64949=>'AL', -64950=>'AL', -64951=>'AL', -64952=>'AL', -64953=>'AL', -64954=>'AL', -64955=>'AL', -64956=>'AL', -64957=>'AL', -64958=>'AL', -64959=>'AL', -64960=>'AL', -64961=>'AL', -64962=>'AL', -64963=>'AL', -64964=>'AL', -64965=>'AL', -64966=>'AL', -64967=>'AL', -65008=>'AL', -65009=>'AL', -65010=>'AL', -65011=>'AL', -65012=>'AL', -65013=>'AL', -65014=>'AL', -65015=>'AL', -65016=>'AL', -65017=>'AL', -65018=>'AL', -65019=>'AL', -65020=>'AL', -65021=>'ON', -65024=>'NSM', -65025=>'NSM', -65026=>'NSM', -65027=>'NSM', -65028=>'NSM', -65029=>'NSM', -65030=>'NSM', -65031=>'NSM', -65032=>'NSM', -65033=>'NSM', -65034=>'NSM', -65035=>'NSM', -65036=>'NSM', -65037=>'NSM', -65038=>'NSM', -65039=>'NSM', -65040=>'ON', -65041=>'ON', -65042=>'ON', -65043=>'ON', -65044=>'ON', -65045=>'ON', -65046=>'ON', -65047=>'ON', -65048=>'ON', -65049=>'ON', -65056=>'NSM', -65057=>'NSM', -65058=>'NSM', -65059=>'NSM', -65072=>'ON', -65073=>'ON', -65074=>'ON', -65075=>'ON', -65076=>'ON', -65077=>'ON', -65078=>'ON', -65079=>'ON', -65080=>'ON', -65081=>'ON', -65082=>'ON', -65083=>'ON', -65084=>'ON', -65085=>'ON', -65086=>'ON', -65087=>'ON', -65088=>'ON', -65089=>'ON', -65090=>'ON', -65091=>'ON', -65092=>'ON', -65093=>'ON', -65094=>'ON', -65095=>'ON', -65096=>'ON', -65097=>'ON', -65098=>'ON', -65099=>'ON', -65100=>'ON', -65101=>'ON', -65102=>'ON', -65103=>'ON', -65104=>'CS', -65105=>'ON', -65106=>'CS', -65108=>'ON', -65109=>'CS', -65110=>'ON', -65111=>'ON', -65112=>'ON', -65113=>'ON', -65114=>'ON', -65115=>'ON', -65116=>'ON', -65117=>'ON', -65118=>'ON', -65119=>'ET', -65120=>'ON', -65121=>'ON', -65122=>'ES', -65123=>'ES', -65124=>'ON', -65125=>'ON', -65126=>'ON', -65128=>'ON', -65129=>'ET', -65130=>'ET', -65131=>'ON', -65136=>'AL', -65137=>'AL', -65138=>'AL', -65139=>'AL', -65140=>'AL', -65142=>'AL', -65143=>'AL', -65144=>'AL', -65145=>'AL', -65146=>'AL', -65147=>'AL', -65148=>'AL', -65149=>'AL', -65150=>'AL', -65151=>'AL', -65152=>'AL', -65153=>'AL', -65154=>'AL', -65155=>'AL', -65156=>'AL', -65157=>'AL', -65158=>'AL', -65159=>'AL', -65160=>'AL', -65161=>'AL', -65162=>'AL', -65163=>'AL', -65164=>'AL', -65165=>'AL', -65166=>'AL', -65167=>'AL', -65168=>'AL', -65169=>'AL', -65170=>'AL', -65171=>'AL', -65172=>'AL', -65173=>'AL', -65174=>'AL', -65175=>'AL', -65176=>'AL', -65177=>'AL', -65178=>'AL', -65179=>'AL', -65180=>'AL', -65181=>'AL', -65182=>'AL', -65183=>'AL', -65184=>'AL', -65185=>'AL', -65186=>'AL', -65187=>'AL', -65188=>'AL', -65189=>'AL', -65190=>'AL', -65191=>'AL', -65192=>'AL', -65193=>'AL', -65194=>'AL', -65195=>'AL', -65196=>'AL', -65197=>'AL', -65198=>'AL', -65199=>'AL', -65200=>'AL', -65201=>'AL', -65202=>'AL', -65203=>'AL', -65204=>'AL', -65205=>'AL', -65206=>'AL', -65207=>'AL', -65208=>'AL', -65209=>'AL', -65210=>'AL', -65211=>'AL', -65212=>'AL', -65213=>'AL', -65214=>'AL', -65215=>'AL', -65216=>'AL', -65217=>'AL', -65218=>'AL', -65219=>'AL', -65220=>'AL', -65221=>'AL', -65222=>'AL', -65223=>'AL', -65224=>'AL', -65225=>'AL', -65226=>'AL', -65227=>'AL', -65228=>'AL', -65229=>'AL', -65230=>'AL', -65231=>'AL', -65232=>'AL', -65233=>'AL', -65234=>'AL', -65235=>'AL', -65236=>'AL', -65237=>'AL', -65238=>'AL', -65239=>'AL', -65240=>'AL', -65241=>'AL', -65242=>'AL', -65243=>'AL', -65244=>'AL', -65245=>'AL', -65246=>'AL', -65247=>'AL', -65248=>'AL', -65249=>'AL', -65250=>'AL', -65251=>'AL', -65252=>'AL', -65253=>'AL', -65254=>'AL', -65255=>'AL', -65256=>'AL', -65257=>'AL', -65258=>'AL', -65259=>'AL', -65260=>'AL', -65261=>'AL', -65262=>'AL', -65263=>'AL', -65264=>'AL', -65265=>'AL', -65266=>'AL', -65267=>'AL', -65268=>'AL', -65269=>'AL', -65270=>'AL', -65271=>'AL', -65272=>'AL', -65273=>'AL', -65274=>'AL', -65275=>'AL', -65276=>'AL', -65279=>'BN', -65281=>'ON', -65282=>'ON', -65283=>'ET', -65284=>'ET', -65285=>'ET', -65286=>'ON', -65287=>'ON', -65288=>'ON', -65289=>'ON', -65290=>'ON', -65291=>'ES', -65292=>'CS', -65293=>'ES', -65294=>'CS', -65295=>'CS', -65296=>'EN', -65297=>'EN', -65298=>'EN', -65299=>'EN', -65300=>'EN', -65301=>'EN', -65302=>'EN', -65303=>'EN', -65304=>'EN', -65305=>'EN', -65306=>'CS', -65307=>'ON', -65308=>'ON', -65309=>'ON', -65310=>'ON', -65311=>'ON', -65312=>'ON', -65313=>'L', -65314=>'L', -65315=>'L', -65316=>'L', -65317=>'L', -65318=>'L', -65319=>'L', -65320=>'L', -65321=>'L', -65322=>'L', -65323=>'L', -65324=>'L', -65325=>'L', -65326=>'L', -65327=>'L', -65328=>'L', -65329=>'L', -65330=>'L', -65331=>'L', -65332=>'L', -65333=>'L', -65334=>'L', -65335=>'L', -65336=>'L', -65337=>'L', -65338=>'L', -65339=>'ON', -65340=>'ON', -65341=>'ON', -65342=>'ON', -65343=>'ON', -65344=>'ON', -65345=>'L', -65346=>'L', -65347=>'L', -65348=>'L', -65349=>'L', -65350=>'L', -65351=>'L', -65352=>'L', -65353=>'L', -65354=>'L', -65355=>'L', -65356=>'L', -65357=>'L', -65358=>'L', -65359=>'L', -65360=>'L', -65361=>'L', -65362=>'L', -65363=>'L', -65364=>'L', -65365=>'L', -65366=>'L', -65367=>'L', -65368=>'L', -65369=>'L', -65370=>'L', -65371=>'ON', -65372=>'ON', -65373=>'ON', -65374=>'ON', -65375=>'ON', -65376=>'ON', -65377=>'ON', -65378=>'ON', -65379=>'ON', -65380=>'ON', -65381=>'ON', -65382=>'L', -65383=>'L', -65384=>'L', -65385=>'L', -65386=>'L', -65387=>'L', -65388=>'L', -65389=>'L', -65390=>'L', -65391=>'L', -65392=>'L', -65393=>'L', -65394=>'L', -65395=>'L', -65396=>'L', -65397=>'L', -65398=>'L', -65399=>'L', -65400=>'L', -65401=>'L', -65402=>'L', -65403=>'L', -65404=>'L', -65405=>'L', -65406=>'L', -65407=>'L', -65408=>'L', -65409=>'L', -65410=>'L', -65411=>'L', -65412=>'L', -65413=>'L', -65414=>'L', -65415=>'L', -65416=>'L', -65417=>'L', -65418=>'L', -65419=>'L', -65420=>'L', -65421=>'L', -65422=>'L', -65423=>'L', -65424=>'L', -65425=>'L', -65426=>'L', -65427=>'L', -65428=>'L', -65429=>'L', -65430=>'L', -65431=>'L', -65432=>'L', -65433=>'L', -65434=>'L', -65435=>'L', -65436=>'L', -65437=>'L', -65438=>'L', -65439=>'L', -65440=>'L', -65441=>'L', -65442=>'L', -65443=>'L', -65444=>'L', -65445=>'L', -65446=>'L', -65447=>'L', -65448=>'L', -65449=>'L', -65450=>'L', -65451=>'L', -65452=>'L', -65453=>'L', -65454=>'L', -65455=>'L', -65456=>'L', -65457=>'L', -65458=>'L', -65459=>'L', -65460=>'L', -65461=>'L', -65462=>'L', -65463=>'L', -65464=>'L', -65465=>'L', -65466=>'L', -65467=>'L', -65468=>'L', -65469=>'L', -65470=>'L', -65474=>'L', -65475=>'L', -65476=>'L', -65477=>'L', -65478=>'L', -65479=>'L', -65482=>'L', -65483=>'L', -65484=>'L', -65485=>'L', -65486=>'L', -65487=>'L', -65490=>'L', -65491=>'L', -65492=>'L', -65493=>'L', -65494=>'L', -65495=>'L', -65498=>'L', -65499=>'L', -65500=>'L', -65504=>'ET', -65505=>'ET', -65506=>'ON', -65507=>'ON', -65508=>'ON', -65509=>'ET', -65510=>'ET', -65512=>'ON', -65513=>'ON', -65514=>'ON', -65515=>'ON', -65516=>'ON', -65517=>'ON', -65518=>'ON', -65529=>'ON', -65530=>'ON', -65531=>'ON', -65532=>'ON', -65533=>'ON', -65536=>'L', -65537=>'L', -65538=>'L', -65539=>'L', -65540=>'L', -65541=>'L', -65542=>'L', -65543=>'L', -65544=>'L', -65545=>'L', -65546=>'L', -65547=>'L', -65549=>'L', -65550=>'L', -65551=>'L', -65552=>'L', -65553=>'L', -65554=>'L', -65555=>'L', -65556=>'L', -65557=>'L', -65558=>'L', -65559=>'L', -65560=>'L', -65561=>'L', -65562=>'L', -65563=>'L', -65564=>'L', -65565=>'L', -65566=>'L', -65567=>'L', -65568=>'L', -65569=>'L', -65570=>'L', -65571=>'L', -65572=>'L', -65573=>'L', -65574=>'L', -65576=>'L', -65577=>'L', -65578=>'L', -65579=>'L', -65580=>'L', -65581=>'L', -65582=>'L', -65583=>'L', -65584=>'L', -65585=>'L', -65586=>'L', -65587=>'L', -65588=>'L', -65589=>'L', -65590=>'L', -65591=>'L', -65592=>'L', -65593=>'L', -65594=>'L', -65596=>'L', -65597=>'L', -65599=>'L', -65600=>'L', -65601=>'L', -65602=>'L', -65603=>'L', -65604=>'L', -65605=>'L', -65606=>'L', -65607=>'L', -65608=>'L', -65609=>'L', -65610=>'L', -65611=>'L', -65612=>'L', -65613=>'L', -65616=>'L', -65617=>'L', -65618=>'L', -65619=>'L', -65620=>'L', -65621=>'L', -65622=>'L', -65623=>'L', -65624=>'L', -65625=>'L', -65626=>'L', -65627=>'L', -65628=>'L', -65629=>'L', -65664=>'L', -65665=>'L', -65666=>'L', -65667=>'L', -65668=>'L', -65669=>'L', -65670=>'L', -65671=>'L', -65672=>'L', -65673=>'L', -65674=>'L', -65675=>'L', -65676=>'L', -65677=>'L', -65678=>'L', -65679=>'L', -65680=>'L', -65681=>'L', -65682=>'L', -65683=>'L', -65684=>'L', -65685=>'L', -65686=>'L', -65687=>'L', -65688=>'L', -65689=>'L', -65690=>'L', -65691=>'L', -65692=>'L', -65693=>'L', -65694=>'L', -65695=>'L', -65696=>'L', -65697=>'L', -65698=>'L', -65699=>'L', -65700=>'L', -65701=>'L', -65702=>'L', -65703=>'L', -65704=>'L', -65705=>'L', -65706=>'L', -65707=>'L', -65708=>'L', -65709=>'L', -65710=>'L', -65711=>'L', -65712=>'L', -65713=>'L', -65714=>'L', -65715=>'L', -65716=>'L', -65717=>'L', -65718=>'L', -65719=>'L', -65720=>'L', -65721=>'L', -65722=>'L', -65723=>'L', -65724=>'L', -65725=>'L', -65726=>'L', -65727=>'L', -65728=>'L', -65729=>'L', -65730=>'L', -65731=>'L', -65732=>'L', -65733=>'L', -65734=>'L', -65735=>'L', -65736=>'L', -65737=>'L', -65738=>'L', -65739=>'L', -65740=>'L', -65741=>'L', -65742=>'L', -65743=>'L', -65744=>'L', -65745=>'L', -65746=>'L', -65747=>'L', -65748=>'L', -65749=>'L', -65750=>'L', -65751=>'L', -65752=>'L', -65753=>'L', -65754=>'L', -65755=>'L', -65756=>'L', -65757=>'L', -65758=>'L', -65759=>'L', -65760=>'L', -65761=>'L', -65762=>'L', -65763=>'L', -65764=>'L', -65765=>'L', -65766=>'L', -65767=>'L', -65768=>'L', -65769=>'L', -65770=>'L', -65771=>'L', -65772=>'L', -65773=>'L', -65774=>'L', -65775=>'L', -65776=>'L', -65777=>'L', -65778=>'L', -65779=>'L', -65780=>'L', -65781=>'L', -65782=>'L', -65783=>'L', -65784=>'L', -65785=>'L', -65786=>'L', -65792=>'L', -65793=>'ON', -65794=>'L', -65799=>'L', -65800=>'L', -65801=>'L', -65802=>'L', -65803=>'L', -65804=>'L', -65805=>'L', -65806=>'L', -65807=>'L', -65808=>'L', -65809=>'L', -65810=>'L', -65811=>'L', -65812=>'L', -65813=>'L', -65814=>'L', -65815=>'L', -65816=>'L', -65817=>'L', -65818=>'L', -65819=>'L', -65820=>'L', -65821=>'L', -65822=>'L', -65823=>'L', -65824=>'L', -65825=>'L', -65826=>'L', -65827=>'L', -65828=>'L', -65829=>'L', -65830=>'L', -65831=>'L', -65832=>'L', -65833=>'L', -65834=>'L', -65835=>'L', -65836=>'L', -65837=>'L', -65838=>'L', -65839=>'L', -65840=>'L', -65841=>'L', -65842=>'L', -65843=>'L', -65847=>'L', -65848=>'L', -65849=>'L', -65850=>'L', -65851=>'L', -65852=>'L', -65853=>'L', -65854=>'L', -65855=>'L', -65856=>'ON', -65857=>'ON', -65858=>'ON', -65859=>'ON', -65860=>'ON', -65861=>'ON', -65862=>'ON', -65863=>'ON', -65864=>'ON', -65865=>'ON', -65866=>'ON', -65867=>'ON', -65868=>'ON', -65869=>'ON', -65870=>'ON', -65871=>'ON', -65872=>'ON', -65873=>'ON', -65874=>'ON', -65875=>'ON', -65876=>'ON', -65877=>'ON', -65878=>'ON', -65879=>'ON', -65880=>'ON', -65881=>'ON', -65882=>'ON', -65883=>'ON', -65884=>'ON', -65885=>'ON', -65886=>'ON', -65887=>'ON', -65888=>'ON', -65889=>'ON', -65890=>'ON', -65891=>'ON', -65892=>'ON', -65893=>'ON', -65894=>'ON', -65895=>'ON', -65896=>'ON', -65897=>'ON', -65898=>'ON', -65899=>'ON', -65900=>'ON', -65901=>'ON', -65902=>'ON', -65903=>'ON', -65904=>'ON', -65905=>'ON', -65906=>'ON', -65907=>'ON', -65908=>'ON', -65909=>'ON', -65910=>'ON', -65911=>'ON', -65912=>'ON', -65913=>'ON', -65914=>'ON', -65915=>'ON', -65916=>'ON', -65917=>'ON', -65918=>'ON', -65919=>'ON', -65920=>'ON', -65921=>'ON', -65922=>'ON', -65923=>'ON', -65924=>'ON', -65925=>'ON', -65926=>'ON', -65927=>'ON', -65928=>'ON', -65929=>'ON', -65930=>'ON', -66304=>'L', -66305=>'L', -66306=>'L', -66307=>'L', -66308=>'L', -66309=>'L', -66310=>'L', -66311=>'L', -66312=>'L', -66313=>'L', -66314=>'L', -66315=>'L', -66316=>'L', -66317=>'L', -66318=>'L', -66319=>'L', -66320=>'L', -66321=>'L', -66322=>'L', -66323=>'L', -66324=>'L', -66325=>'L', -66326=>'L', -66327=>'L', -66328=>'L', -66329=>'L', -66330=>'L', -66331=>'L', -66332=>'L', -66333=>'L', -66334=>'L', -66336=>'L', -66337=>'L', -66338=>'L', -66339=>'L', -66352=>'L', -66353=>'L', -66354=>'L', -66355=>'L', -66356=>'L', -66357=>'L', -66358=>'L', -66359=>'L', -66360=>'L', -66361=>'L', -66362=>'L', -66363=>'L', -66364=>'L', -66365=>'L', -66366=>'L', -66367=>'L', -66368=>'L', -66369=>'L', -66370=>'L', -66371=>'L', -66372=>'L', -66373=>'L', -66374=>'L', -66375=>'L', -66376=>'L', -66377=>'L', -66378=>'L', -66432=>'L', -66433=>'L', -66434=>'L', -66435=>'L', -66436=>'L', -66437=>'L', -66438=>'L', -66439=>'L', -66440=>'L', -66441=>'L', -66442=>'L', -66443=>'L', -66444=>'L', -66445=>'L', -66446=>'L', -66447=>'L', -66448=>'L', -66449=>'L', -66450=>'L', -66451=>'L', -66452=>'L', -66453=>'L', -66454=>'L', -66455=>'L', -66456=>'L', -66457=>'L', -66458=>'L', -66459=>'L', -66460=>'L', -66461=>'L', -66463=>'L', -66464=>'L', -66465=>'L', -66466=>'L', -66467=>'L', -66468=>'L', -66469=>'L', -66470=>'L', -66471=>'L', -66472=>'L', -66473=>'L', -66474=>'L', -66475=>'L', -66476=>'L', -66477=>'L', -66478=>'L', -66479=>'L', -66480=>'L', -66481=>'L', -66482=>'L', -66483=>'L', -66484=>'L', -66485=>'L', -66486=>'L', -66487=>'L', -66488=>'L', -66489=>'L', -66490=>'L', -66491=>'L', -66492=>'L', -66493=>'L', -66494=>'L', -66495=>'L', -66496=>'L', -66497=>'L', -66498=>'L', -66499=>'L', -66504=>'L', -66505=>'L', -66506=>'L', -66507=>'L', -66508=>'L', -66509=>'L', -66510=>'L', -66511=>'L', -66512=>'L', -66513=>'L', -66514=>'L', -66515=>'L', -66516=>'L', -66517=>'L', -66560=>'L', -66561=>'L', -66562=>'L', -66563=>'L', -66564=>'L', -66565=>'L', -66566=>'L', -66567=>'L', -66568=>'L', -66569=>'L', -66570=>'L', -66571=>'L', -66572=>'L', -66573=>'L', -66574=>'L', -66575=>'L', -66576=>'L', -66577=>'L', -66578=>'L', -66579=>'L', -66580=>'L', -66581=>'L', -66582=>'L', -66583=>'L', -66584=>'L', -66585=>'L', -66586=>'L', -66587=>'L', -66588=>'L', -66589=>'L', -66590=>'L', -66591=>'L', -66592=>'L', -66593=>'L', -66594=>'L', -66595=>'L', -66596=>'L', -66597=>'L', -66598=>'L', -66599=>'L', -66600=>'L', -66601=>'L', -66602=>'L', -66603=>'L', -66604=>'L', -66605=>'L', -66606=>'L', -66607=>'L', -66608=>'L', -66609=>'L', -66610=>'L', -66611=>'L', -66612=>'L', -66613=>'L', -66614=>'L', -66615=>'L', -66616=>'L', -66617=>'L', -66618=>'L', -66619=>'L', -66620=>'L', -66621=>'L', -66622=>'L', -66623=>'L', -66624=>'L', -66625=>'L', -66626=>'L', -66627=>'L', -66628=>'L', -66629=>'L', -66630=>'L', -66631=>'L', -66632=>'L', -66633=>'L', -66634=>'L', -66635=>'L', -66636=>'L', -66637=>'L', -66638=>'L', -66639=>'L', -66640=>'L', -66641=>'L', -66642=>'L', -66643=>'L', -66644=>'L', -66645=>'L', -66646=>'L', -66647=>'L', -66648=>'L', -66649=>'L', -66650=>'L', -66651=>'L', -66652=>'L', -66653=>'L', -66654=>'L', -66655=>'L', -66656=>'L', -66657=>'L', -66658=>'L', -66659=>'L', -66660=>'L', -66661=>'L', -66662=>'L', -66663=>'L', -66664=>'L', -66665=>'L', -66666=>'L', -66667=>'L', -66668=>'L', -66669=>'L', -66670=>'L', -66671=>'L', -66672=>'L', -66673=>'L', -66674=>'L', -66675=>'L', -66676=>'L', -66677=>'L', -66678=>'L', -66679=>'L', -66680=>'L', -66681=>'L', -66682=>'L', -66683=>'L', -66684=>'L', -66685=>'L', -66686=>'L', -66687=>'L', -66688=>'L', -66689=>'L', -66690=>'L', -66691=>'L', -66692=>'L', -66693=>'L', -66694=>'L', -66695=>'L', -66696=>'L', -66697=>'L', -66698=>'L', -66699=>'L', -66700=>'L', -66701=>'L', -66702=>'L', -66703=>'L', -66704=>'L', -66705=>'L', -66706=>'L', -66707=>'L', -66708=>'L', -66709=>'L', -66710=>'L', -66711=>'L', -66712=>'L', -66713=>'L', -66714=>'L', -66715=>'L', -66716=>'L', -66717=>'L', -66720=>'L', -66721=>'L', -66722=>'L', -66723=>'L', -66724=>'L', -66725=>'L', -66726=>'L', -66727=>'L', -66728=>'L', -66729=>'L', -67584=>'R', -67585=>'R', -67586=>'R', -67587=>'R', -67588=>'R', -67589=>'R', -67592=>'R', -67594=>'R', -67595=>'R', -67596=>'R', -67597=>'R', -67598=>'R', -67599=>'R', -67600=>'R', -67601=>'R', -67602=>'R', -67603=>'R', -67604=>'R', -67605=>'R', -67606=>'R', -67607=>'R', -67608=>'R', -67609=>'R', -67610=>'R', -67611=>'R', -67612=>'R', -67613=>'R', -67614=>'R', -67615=>'R', -67616=>'R', -67617=>'R', -67618=>'R', -67619=>'R', -67620=>'R', -67621=>'R', -67622=>'R', -67623=>'R', -67624=>'R', -67625=>'R', -67626=>'R', -67627=>'R', -67628=>'R', -67629=>'R', -67630=>'R', -67631=>'R', -67632=>'R', -67633=>'R', -67634=>'R', -67635=>'R', -67636=>'R', -67637=>'R', -67639=>'R', -67640=>'R', -67644=>'R', -67647=>'R', -67840=>'R', -67841=>'R', -67842=>'R', -67843=>'R', -67844=>'R', -67845=>'R', -67846=>'R', -67847=>'R', -67848=>'R', -67849=>'R', -67850=>'R', -67851=>'R', -67852=>'R', -67853=>'R', -67854=>'R', -67855=>'R', -67856=>'R', -67857=>'R', -67858=>'R', -67859=>'R', -67860=>'R', -67861=>'R', -67862=>'R', -67863=>'R', -67864=>'R', -67865=>'R', -67871=>'ON', -68096=>'R', -68097=>'NSM', -68098=>'NSM', -68099=>'NSM', -68101=>'NSM', -68102=>'NSM', -68108=>'NSM', -68109=>'NSM', -68110=>'NSM', -68111=>'NSM', -68112=>'R', -68113=>'R', -68114=>'R', -68115=>'R', -68117=>'R', -68118=>'R', -68119=>'R', -68121=>'R', -68122=>'R', -68123=>'R', -68124=>'R', -68125=>'R', -68126=>'R', -68127=>'R', -68128=>'R', -68129=>'R', -68130=>'R', -68131=>'R', -68132=>'R', -68133=>'R', -68134=>'R', -68135=>'R', -68136=>'R', -68137=>'R', -68138=>'R', -68139=>'R', -68140=>'R', -68141=>'R', -68142=>'R', -68143=>'R', -68144=>'R', -68145=>'R', -68146=>'R', -68147=>'R', -68152=>'NSM', -68153=>'NSM', -68154=>'NSM', -68159=>'NSM', -68160=>'R', -68161=>'R', -68162=>'R', -68163=>'R', -68164=>'R', -68165=>'R', -68166=>'R', -68167=>'R', -68176=>'R', -68177=>'R', -68178=>'R', -68179=>'R', -68180=>'R', -68181=>'R', -68182=>'R', -68183=>'R', -68184=>'R', -73728=>'L', -73729=>'L', -73730=>'L', -73731=>'L', -73732=>'L', -73733=>'L', -73734=>'L', -73735=>'L', -73736=>'L', -73737=>'L', -73738=>'L', -73739=>'L', -73740=>'L', -73741=>'L', -73742=>'L', -73743=>'L', -73744=>'L', -73745=>'L', -73746=>'L', -73747=>'L', -73748=>'L', -73749=>'L', -73750=>'L', -73751=>'L', -73752=>'L', -73753=>'L', -73754=>'L', -73755=>'L', -73756=>'L', -73757=>'L', -73758=>'L', -73759=>'L', -73760=>'L', -73761=>'L', -73762=>'L', -73763=>'L', -73764=>'L', -73765=>'L', -73766=>'L', -73767=>'L', -73768=>'L', -73769=>'L', -73770=>'L', -73771=>'L', -73772=>'L', -73773=>'L', -73774=>'L', -73775=>'L', -73776=>'L', -73777=>'L', -73778=>'L', -73779=>'L', -73780=>'L', -73781=>'L', -73782=>'L', -73783=>'L', -73784=>'L', -73785=>'L', -73786=>'L', -73787=>'L', -73788=>'L', -73789=>'L', -73790=>'L', -73791=>'L', -73792=>'L', -73793=>'L', -73794=>'L', -73795=>'L', -73796=>'L', -73797=>'L', -73798=>'L', -73799=>'L', -73800=>'L', -73801=>'L', -73802=>'L', -73803=>'L', -73804=>'L', -73805=>'L', -73806=>'L', -73807=>'L', -73808=>'L', -73809=>'L', -73810=>'L', -73811=>'L', -73812=>'L', -73813=>'L', -73814=>'L', -73815=>'L', -73816=>'L', -73817=>'L', -73818=>'L', -73819=>'L', -73820=>'L', -73821=>'L', -73822=>'L', -73823=>'L', -73824=>'L', -73825=>'L', -73826=>'L', -73827=>'L', -73828=>'L', -73829=>'L', -73830=>'L', -73831=>'L', -73832=>'L', -73833=>'L', -73834=>'L', -73835=>'L', -73836=>'L', -73837=>'L', -73838=>'L', -73839=>'L', -73840=>'L', -73841=>'L', -73842=>'L', -73843=>'L', -73844=>'L', -73845=>'L', -73846=>'L', -73847=>'L', -73848=>'L', -73849=>'L', -73850=>'L', -73851=>'L', -73852=>'L', -73853=>'L', -73854=>'L', -73855=>'L', -73856=>'L', -73857=>'L', -73858=>'L', -73859=>'L', -73860=>'L', -73861=>'L', -73862=>'L', -73863=>'L', -73864=>'L', -73865=>'L', -73866=>'L', -73867=>'L', -73868=>'L', -73869=>'L', -73870=>'L', -73871=>'L', -73872=>'L', -73873=>'L', -73874=>'L', -73875=>'L', -73876=>'L', -73877=>'L', -73878=>'L', -73879=>'L', -73880=>'L', -73881=>'L', -73882=>'L', -73883=>'L', -73884=>'L', -73885=>'L', -73886=>'L', -73887=>'L', -73888=>'L', -73889=>'L', -73890=>'L', -73891=>'L', -73892=>'L', -73893=>'L', -73894=>'L', -73895=>'L', -73896=>'L', -73897=>'L', -73898=>'L', -73899=>'L', -73900=>'L', -73901=>'L', -73902=>'L', -73903=>'L', -73904=>'L', -73905=>'L', -73906=>'L', -73907=>'L', -73908=>'L', -73909=>'L', -73910=>'L', -73911=>'L', -73912=>'L', -73913=>'L', -73914=>'L', -73915=>'L', -73916=>'L', -73917=>'L', -73918=>'L', -73919=>'L', -73920=>'L', -73921=>'L', -73922=>'L', -73923=>'L', -73924=>'L', -73925=>'L', -73926=>'L', -73927=>'L', -73928=>'L', -73929=>'L', -73930=>'L', -73931=>'L', -73932=>'L', -73933=>'L', -73934=>'L', -73935=>'L', -73936=>'L', -73937=>'L', -73938=>'L', -73939=>'L', -73940=>'L', -73941=>'L', -73942=>'L', -73943=>'L', -73944=>'L', -73945=>'L', -73946=>'L', -73947=>'L', -73948=>'L', -73949=>'L', -73950=>'L', -73951=>'L', -73952=>'L', -73953=>'L', -73954=>'L', -73955=>'L', -73956=>'L', -73957=>'L', -73958=>'L', -73959=>'L', -73960=>'L', -73961=>'L', -73962=>'L', -73963=>'L', -73964=>'L', -73965=>'L', -73966=>'L', -73967=>'L', -73968=>'L', -73969=>'L', -73970=>'L', -73971=>'L', -73972=>'L', -73973=>'L', -73974=>'L', -73975=>'L', -73976=>'L', -73977=>'L', -73978=>'L', -73979=>'L', -73980=>'L', -73981=>'L', -73982=>'L', -73983=>'L', -73984=>'L', -73985=>'L', -73986=>'L', -73987=>'L', -73988=>'L', -73989=>'L', -73990=>'L', -73991=>'L', -73992=>'L', -73993=>'L', -73994=>'L', -73995=>'L', -73996=>'L', -73997=>'L', -73998=>'L', -73999=>'L', -74000=>'L', -74001=>'L', -74002=>'L', -74003=>'L', -74004=>'L', -74005=>'L', -74006=>'L', -74007=>'L', -74008=>'L', -74009=>'L', -74010=>'L', -74011=>'L', -74012=>'L', -74013=>'L', -74014=>'L', -74015=>'L', -74016=>'L', -74017=>'L', -74018=>'L', -74019=>'L', -74020=>'L', -74021=>'L', -74022=>'L', -74023=>'L', -74024=>'L', -74025=>'L', -74026=>'L', -74027=>'L', -74028=>'L', -74029=>'L', -74030=>'L', -74031=>'L', -74032=>'L', -74033=>'L', -74034=>'L', -74035=>'L', -74036=>'L', -74037=>'L', -74038=>'L', -74039=>'L', -74040=>'L', -74041=>'L', -74042=>'L', -74043=>'L', -74044=>'L', -74045=>'L', -74046=>'L', -74047=>'L', -74048=>'L', -74049=>'L', -74050=>'L', -74051=>'L', -74052=>'L', -74053=>'L', -74054=>'L', -74055=>'L', -74056=>'L', -74057=>'L', -74058=>'L', -74059=>'L', -74060=>'L', -74061=>'L', -74062=>'L', -74063=>'L', -74064=>'L', -74065=>'L', -74066=>'L', -74067=>'L', -74068=>'L', -74069=>'L', -74070=>'L', -74071=>'L', -74072=>'L', -74073=>'L', -74074=>'L', -74075=>'L', -74076=>'L', -74077=>'L', -74078=>'L', -74079=>'L', -74080=>'L', -74081=>'L', -74082=>'L', -74083=>'L', -74084=>'L', -74085=>'L', -74086=>'L', -74087=>'L', -74088=>'L', -74089=>'L', -74090=>'L', -74091=>'L', -74092=>'L', -74093=>'L', -74094=>'L', -74095=>'L', -74096=>'L', -74097=>'L', -74098=>'L', -74099=>'L', -74100=>'L', -74101=>'L', -74102=>'L', -74103=>'L', -74104=>'L', -74105=>'L', -74106=>'L', -74107=>'L', -74108=>'L', -74109=>'L', -74110=>'L', -74111=>'L', -74112=>'L', -74113=>'L', -74114=>'L', -74115=>'L', -74116=>'L', -74117=>'L', -74118=>'L', -74119=>'L', -74120=>'L', -74121=>'L', -74122=>'L', -74123=>'L', -74124=>'L', -74125=>'L', -74126=>'L', -74127=>'L', -74128=>'L', -74129=>'L', -74130=>'L', -74131=>'L', -74132=>'L', -74133=>'L', -74134=>'L', -74135=>'L', -74136=>'L', -74137=>'L', -74138=>'L', -74139=>'L', -74140=>'L', -74141=>'L', -74142=>'L', -74143=>'L', -74144=>'L', -74145=>'L', -74146=>'L', -74147=>'L', -74148=>'L', -74149=>'L', -74150=>'L', -74151=>'L', -74152=>'L', -74153=>'L', -74154=>'L', -74155=>'L', -74156=>'L', -74157=>'L', -74158=>'L', -74159=>'L', -74160=>'L', -74161=>'L', -74162=>'L', -74163=>'L', -74164=>'L', -74165=>'L', -74166=>'L', -74167=>'L', -74168=>'L', -74169=>'L', -74170=>'L', -74171=>'L', -74172=>'L', -74173=>'L', -74174=>'L', -74175=>'L', -74176=>'L', -74177=>'L', -74178=>'L', -74179=>'L', -74180=>'L', -74181=>'L', -74182=>'L', -74183=>'L', -74184=>'L', -74185=>'L', -74186=>'L', -74187=>'L', -74188=>'L', -74189=>'L', -74190=>'L', -74191=>'L', -74192=>'L', -74193=>'L', -74194=>'L', -74195=>'L', -74196=>'L', -74197=>'L', -74198=>'L', -74199=>'L', -74200=>'L', -74201=>'L', -74202=>'L', -74203=>'L', -74204=>'L', -74205=>'L', -74206=>'L', -74207=>'L', -74208=>'L', -74209=>'L', -74210=>'L', -74211=>'L', -74212=>'L', -74213=>'L', -74214=>'L', -74215=>'L', -74216=>'L', -74217=>'L', -74218=>'L', -74219=>'L', -74220=>'L', -74221=>'L', -74222=>'L', -74223=>'L', -74224=>'L', -74225=>'L', -74226=>'L', -74227=>'L', -74228=>'L', -74229=>'L', -74230=>'L', -74231=>'L', -74232=>'L', -74233=>'L', -74234=>'L', -74235=>'L', -74236=>'L', -74237=>'L', -74238=>'L', -74239=>'L', -74240=>'L', -74241=>'L', -74242=>'L', -74243=>'L', -74244=>'L', -74245=>'L', -74246=>'L', -74247=>'L', -74248=>'L', -74249=>'L', -74250=>'L', -74251=>'L', -74252=>'L', -74253=>'L', -74254=>'L', -74255=>'L', -74256=>'L', -74257=>'L', -74258=>'L', -74259=>'L', -74260=>'L', -74261=>'L', -74262=>'L', -74263=>'L', -74264=>'L', -74265=>'L', -74266=>'L', -74267=>'L', -74268=>'L', -74269=>'L', -74270=>'L', -74271=>'L', -74272=>'L', -74273=>'L', -74274=>'L', -74275=>'L', -74276=>'L', -74277=>'L', -74278=>'L', -74279=>'L', -74280=>'L', -74281=>'L', -74282=>'L', -74283=>'L', -74284=>'L', -74285=>'L', -74286=>'L', -74287=>'L', -74288=>'L', -74289=>'L', -74290=>'L', -74291=>'L', -74292=>'L', -74293=>'L', -74294=>'L', -74295=>'L', -74296=>'L', -74297=>'L', -74298=>'L', -74299=>'L', -74300=>'L', -74301=>'L', -74302=>'L', -74303=>'L', -74304=>'L', -74305=>'L', -74306=>'L', -74307=>'L', -74308=>'L', -74309=>'L', -74310=>'L', -74311=>'L', -74312=>'L', -74313=>'L', -74314=>'L', -74315=>'L', -74316=>'L', -74317=>'L', -74318=>'L', -74319=>'L', -74320=>'L', -74321=>'L', -74322=>'L', -74323=>'L', -74324=>'L', -74325=>'L', -74326=>'L', -74327=>'L', -74328=>'L', -74329=>'L', -74330=>'L', -74331=>'L', -74332=>'L', -74333=>'L', -74334=>'L', -74335=>'L', -74336=>'L', -74337=>'L', -74338=>'L', -74339=>'L', -74340=>'L', -74341=>'L', -74342=>'L', -74343=>'L', -74344=>'L', -74345=>'L', -74346=>'L', -74347=>'L', -74348=>'L', -74349=>'L', -74350=>'L', -74351=>'L', -74352=>'L', -74353=>'L', -74354=>'L', -74355=>'L', -74356=>'L', -74357=>'L', -74358=>'L', -74359=>'L', -74360=>'L', -74361=>'L', -74362=>'L', -74363=>'L', -74364=>'L', -74365=>'L', -74366=>'L', -74367=>'L', -74368=>'L', -74369=>'L', -74370=>'L', -74371=>'L', -74372=>'L', -74373=>'L', -74374=>'L', -74375=>'L', -74376=>'L', -74377=>'L', -74378=>'L', -74379=>'L', -74380=>'L', -74381=>'L', -74382=>'L', -74383=>'L', -74384=>'L', -74385=>'L', -74386=>'L', -74387=>'L', -74388=>'L', -74389=>'L', -74390=>'L', -74391=>'L', -74392=>'L', -74393=>'L', -74394=>'L', -74395=>'L', -74396=>'L', -74397=>'L', -74398=>'L', -74399=>'L', -74400=>'L', -74401=>'L', -74402=>'L', -74403=>'L', -74404=>'L', -74405=>'L', -74406=>'L', -74407=>'L', -74408=>'L', -74409=>'L', -74410=>'L', -74411=>'L', -74412=>'L', -74413=>'L', -74414=>'L', -74415=>'L', -74416=>'L', -74417=>'L', -74418=>'L', -74419=>'L', -74420=>'L', -74421=>'L', -74422=>'L', -74423=>'L', -74424=>'L', -74425=>'L', -74426=>'L', -74427=>'L', -74428=>'L', -74429=>'L', -74430=>'L', -74431=>'L', -74432=>'L', -74433=>'L', -74434=>'L', -74435=>'L', -74436=>'L', -74437=>'L', -74438=>'L', -74439=>'L', -74440=>'L', -74441=>'L', -74442=>'L', -74443=>'L', -74444=>'L', -74445=>'L', -74446=>'L', -74447=>'L', -74448=>'L', -74449=>'L', -74450=>'L', -74451=>'L', -74452=>'L', -74453=>'L', -74454=>'L', -74455=>'L', -74456=>'L', -74457=>'L', -74458=>'L', -74459=>'L', -74460=>'L', -74461=>'L', -74462=>'L', -74463=>'L', -74464=>'L', -74465=>'L', -74466=>'L', -74467=>'L', -74468=>'L', -74469=>'L', -74470=>'L', -74471=>'L', -74472=>'L', -74473=>'L', -74474=>'L', -74475=>'L', -74476=>'L', -74477=>'L', -74478=>'L', -74479=>'L', -74480=>'L', -74481=>'L', -74482=>'L', -74483=>'L', -74484=>'L', -74485=>'L', -74486=>'L', -74487=>'L', -74488=>'L', -74489=>'L', -74490=>'L', -74491=>'L', -74492=>'L', -74493=>'L', -74494=>'L', -74495=>'L', -74496=>'L', -74497=>'L', -74498=>'L', -74499=>'L', -74500=>'L', -74501=>'L', -74502=>'L', -74503=>'L', -74504=>'L', -74505=>'L', -74506=>'L', -74507=>'L', -74508=>'L', -74509=>'L', -74510=>'L', -74511=>'L', -74512=>'L', -74513=>'L', -74514=>'L', -74515=>'L', -74516=>'L', -74517=>'L', -74518=>'L', -74519=>'L', -74520=>'L', -74521=>'L', -74522=>'L', -74523=>'L', -74524=>'L', -74525=>'L', -74526=>'L', -74527=>'L', -74528=>'L', -74529=>'L', -74530=>'L', -74531=>'L', -74532=>'L', -74533=>'L', -74534=>'L', -74535=>'L', -74536=>'L', -74537=>'L', -74538=>'L', -74539=>'L', -74540=>'L', -74541=>'L', -74542=>'L', -74543=>'L', -74544=>'L', -74545=>'L', -74546=>'L', -74547=>'L', -74548=>'L', -74549=>'L', -74550=>'L', -74551=>'L', -74552=>'L', -74553=>'L', -74554=>'L', -74555=>'L', -74556=>'L', -74557=>'L', -74558=>'L', -74559=>'L', -74560=>'L', -74561=>'L', -74562=>'L', -74563=>'L', -74564=>'L', -74565=>'L', -74566=>'L', -74567=>'L', -74568=>'L', -74569=>'L', -74570=>'L', -74571=>'L', -74572=>'L', -74573=>'L', -74574=>'L', -74575=>'L', -74576=>'L', -74577=>'L', -74578=>'L', -74579=>'L', -74580=>'L', -74581=>'L', -74582=>'L', -74583=>'L', -74584=>'L', -74585=>'L', -74586=>'L', -74587=>'L', -74588=>'L', -74589=>'L', -74590=>'L', -74591=>'L', -74592=>'L', -74593=>'L', -74594=>'L', -74595=>'L', -74596=>'L', -74597=>'L', -74598=>'L', -74599=>'L', -74600=>'L', -74601=>'L', -74602=>'L', -74603=>'L', -74604=>'L', -74605=>'L', -74606=>'L', -74752=>'L', -74753=>'L', -74754=>'L', -74755=>'L', -74756=>'L', -74757=>'L', -74758=>'L', -74759=>'L', -74760=>'L', -74761=>'L', -74762=>'L', -74763=>'L', -74764=>'L', -74765=>'L', -74766=>'L', -74767=>'L', -74768=>'L', -74769=>'L', -74770=>'L', -74771=>'L', -74772=>'L', -74773=>'L', -74774=>'L', -74775=>'L', -74776=>'L', -74777=>'L', -74778=>'L', -74779=>'L', -74780=>'L', -74781=>'L', -74782=>'L', -74783=>'L', -74784=>'L', -74785=>'L', -74786=>'L', -74787=>'L', -74788=>'L', -74789=>'L', -74790=>'L', -74791=>'L', -74792=>'L', -74793=>'L', -74794=>'L', -74795=>'L', -74796=>'L', -74797=>'L', -74798=>'L', -74799=>'L', -74800=>'L', -74801=>'L', -74802=>'L', -74803=>'L', -74804=>'L', -74805=>'L', -74806=>'L', -74807=>'L', -74808=>'L', -74809=>'L', -74810=>'L', -74811=>'L', -74812=>'L', -74813=>'L', -74814=>'L', -74815=>'L', -74816=>'L', -74817=>'L', -74818=>'L', -74819=>'L', -74820=>'L', -74821=>'L', -74822=>'L', -74823=>'L', -74824=>'L', -74825=>'L', -74826=>'L', -74827=>'L', -74828=>'L', -74829=>'L', -74830=>'L', -74831=>'L', -74832=>'L', -74833=>'L', -74834=>'L', -74835=>'L', -74836=>'L', -74837=>'L', -74838=>'L', -74839=>'L', -74840=>'L', -74841=>'L', -74842=>'L', -74843=>'L', -74844=>'L', -74845=>'L', -74846=>'L', -74847=>'L', -74848=>'L', -74849=>'L', -74850=>'L', -74864=>'L', -74865=>'L', -74866=>'L', -74867=>'L', -118784=>'L', -118785=>'L', -118786=>'L', -118787=>'L', -118788=>'L', -118789=>'L', -118790=>'L', -118791=>'L', -118792=>'L', -118793=>'L', -118794=>'L', -118795=>'L', -118796=>'L', -118797=>'L', -118798=>'L', -118799=>'L', -118800=>'L', -118801=>'L', -118802=>'L', -118803=>'L', -118804=>'L', -118805=>'L', -118806=>'L', -118807=>'L', -118808=>'L', -118809=>'L', -118810=>'L', -118811=>'L', -118812=>'L', -118813=>'L', -118814=>'L', -118815=>'L', -118816=>'L', -118817=>'L', -118818=>'L', -118819=>'L', -118820=>'L', -118821=>'L', -118822=>'L', -118823=>'L', -118824=>'L', -118825=>'L', -118826=>'L', -118827=>'L', -118828=>'L', -118829=>'L', -118830=>'L', -118831=>'L', -118832=>'L', -118833=>'L', -118834=>'L', -118835=>'L', -118836=>'L', -118837=>'L', -118838=>'L', -118839=>'L', -118840=>'L', -118841=>'L', -118842=>'L', -118843=>'L', -118844=>'L', -118845=>'L', -118846=>'L', -118847=>'L', -118848=>'L', -118849=>'L', -118850=>'L', -118851=>'L', -118852=>'L', -118853=>'L', -118854=>'L', -118855=>'L', -118856=>'L', -118857=>'L', -118858=>'L', -118859=>'L', -118860=>'L', -118861=>'L', -118862=>'L', -118863=>'L', -118864=>'L', -118865=>'L', -118866=>'L', -118867=>'L', -118868=>'L', -118869=>'L', -118870=>'L', -118871=>'L', -118872=>'L', -118873=>'L', -118874=>'L', -118875=>'L', -118876=>'L', -118877=>'L', -118878=>'L', -118879=>'L', -118880=>'L', -118881=>'L', -118882=>'L', -118883=>'L', -118884=>'L', -118885=>'L', -118886=>'L', -118887=>'L', -118888=>'L', -118889=>'L', -118890=>'L', -118891=>'L', -118892=>'L', -118893=>'L', -118894=>'L', -118895=>'L', -118896=>'L', -118897=>'L', -118898=>'L', -118899=>'L', -118900=>'L', -118901=>'L', -118902=>'L', -118903=>'L', -118904=>'L', -118905=>'L', -118906=>'L', -118907=>'L', -118908=>'L', -118909=>'L', -118910=>'L', -118911=>'L', -118912=>'L', -118913=>'L', -118914=>'L', -118915=>'L', -118916=>'L', -118917=>'L', -118918=>'L', -118919=>'L', -118920=>'L', -118921=>'L', -118922=>'L', -118923=>'L', -118924=>'L', -118925=>'L', -118926=>'L', -118927=>'L', -118928=>'L', -118929=>'L', -118930=>'L', -118931=>'L', -118932=>'L', -118933=>'L', -118934=>'L', -118935=>'L', -118936=>'L', -118937=>'L', -118938=>'L', -118939=>'L', -118940=>'L', -118941=>'L', -118942=>'L', -118943=>'L', -118944=>'L', -118945=>'L', -118946=>'L', -118947=>'L', -118948=>'L', -118949=>'L', -118950=>'L', -118951=>'L', -118952=>'L', -118953=>'L', -118954=>'L', -118955=>'L', -118956=>'L', -118957=>'L', -118958=>'L', -118959=>'L', -118960=>'L', -118961=>'L', -118962=>'L', -118963=>'L', -118964=>'L', -118965=>'L', -118966=>'L', -118967=>'L', -118968=>'L', -118969=>'L', -118970=>'L', -118971=>'L', -118972=>'L', -118973=>'L', -118974=>'L', -118975=>'L', -118976=>'L', -118977=>'L', -118978=>'L', -118979=>'L', -118980=>'L', -118981=>'L', -118982=>'L', -118983=>'L', -118984=>'L', -118985=>'L', -118986=>'L', -118987=>'L', -118988=>'L', -118989=>'L', -118990=>'L', -118991=>'L', -118992=>'L', -118993=>'L', -118994=>'L', -118995=>'L', -118996=>'L', -118997=>'L', -118998=>'L', -118999=>'L', -119000=>'L', -119001=>'L', -119002=>'L', -119003=>'L', -119004=>'L', -119005=>'L', -119006=>'L', -119007=>'L', -119008=>'L', -119009=>'L', -119010=>'L', -119011=>'L', -119012=>'L', -119013=>'L', -119014=>'L', -119015=>'L', -119016=>'L', -119017=>'L', -119018=>'L', -119019=>'L', -119020=>'L', -119021=>'L', -119022=>'L', -119023=>'L', -119024=>'L', -119025=>'L', -119026=>'L', -119027=>'L', -119028=>'L', -119029=>'L', -119040=>'L', -119041=>'L', -119042=>'L', -119043=>'L', -119044=>'L', -119045=>'L', -119046=>'L', -119047=>'L', -119048=>'L', -119049=>'L', -119050=>'L', -119051=>'L', -119052=>'L', -119053=>'L', -119054=>'L', -119055=>'L', -119056=>'L', -119057=>'L', -119058=>'L', -119059=>'L', -119060=>'L', -119061=>'L', -119062=>'L', -119063=>'L', -119064=>'L', -119065=>'L', -119066=>'L', -119067=>'L', -119068=>'L', -119069=>'L', -119070=>'L', -119071=>'L', -119072=>'L', -119073=>'L', -119074=>'L', -119075=>'L', -119076=>'L', -119077=>'L', -119078=>'L', -119082=>'L', -119083=>'L', -119084=>'L', -119085=>'L', -119086=>'L', -119087=>'L', -119088=>'L', -119089=>'L', -119090=>'L', -119091=>'L', -119092=>'L', -119093=>'L', -119094=>'L', -119095=>'L', -119096=>'L', -119097=>'L', -119098=>'L', -119099=>'L', -119100=>'L', -119101=>'L', -119102=>'L', -119103=>'L', -119104=>'L', -119105=>'L', -119106=>'L', -119107=>'L', -119108=>'L', -119109=>'L', -119110=>'L', -119111=>'L', -119112=>'L', -119113=>'L', -119114=>'L', -119115=>'L', -119116=>'L', -119117=>'L', -119118=>'L', -119119=>'L', -119120=>'L', -119121=>'L', -119122=>'L', -119123=>'L', -119124=>'L', -119125=>'L', -119126=>'L', -119127=>'L', -119128=>'L', -119129=>'L', -119130=>'L', -119131=>'L', -119132=>'L', -119133=>'L', -119134=>'L', -119135=>'L', -119136=>'L', -119137=>'L', -119138=>'L', -119139=>'L', -119140=>'L', -119141=>'L', -119142=>'L', -119143=>'NSM', -119144=>'NSM', -119145=>'NSM', -119146=>'L', -119147=>'L', -119148=>'L', -119149=>'L', -119150=>'L', -119151=>'L', -119152=>'L', -119153=>'L', -119154=>'L', -119155=>'BN', -119156=>'BN', -119157=>'BN', -119158=>'BN', -119159=>'BN', -119160=>'BN', -119161=>'BN', -119162=>'BN', -119163=>'NSM', -119164=>'NSM', -119165=>'NSM', -119166=>'NSM', -119167=>'NSM', -119168=>'NSM', -119169=>'NSM', -119170=>'NSM', -119171=>'L', -119172=>'L', -119173=>'NSM', -119174=>'NSM', -119175=>'NSM', -119176=>'NSM', -119177=>'NSM', -119178=>'NSM', -119179=>'NSM', -119180=>'L', -119181=>'L', -119182=>'L', -119183=>'L', -119184=>'L', -119185=>'L', -119186=>'L', -119187=>'L', -119188=>'L', -119189=>'L', -119190=>'L', -119191=>'L', -119192=>'L', -119193=>'L', -119194=>'L', -119195=>'L', -119196=>'L', -119197=>'L', -119198=>'L', -119199=>'L', -119200=>'L', -119201=>'L', -119202=>'L', -119203=>'L', -119204=>'L', -119205=>'L', -119206=>'L', -119207=>'L', -119208=>'L', -119209=>'L', -119210=>'NSM', -119211=>'NSM', -119212=>'NSM', -119213=>'NSM', -119214=>'L', -119215=>'L', -119216=>'L', -119217=>'L', -119218=>'L', -119219=>'L', -119220=>'L', -119221=>'L', -119222=>'L', -119223=>'L', -119224=>'L', -119225=>'L', -119226=>'L', -119227=>'L', -119228=>'L', -119229=>'L', -119230=>'L', -119231=>'L', -119232=>'L', -119233=>'L', -119234=>'L', -119235=>'L', -119236=>'L', -119237=>'L', -119238=>'L', -119239=>'L', -119240=>'L', -119241=>'L', -119242=>'L', -119243=>'L', -119244=>'L', -119245=>'L', -119246=>'L', -119247=>'L', -119248=>'L', -119249=>'L', -119250=>'L', -119251=>'L', -119252=>'L', -119253=>'L', -119254=>'L', -119255=>'L', -119256=>'L', -119257=>'L', -119258=>'L', -119259=>'L', -119260=>'L', -119261=>'L', -119296=>'ON', -119297=>'ON', -119298=>'ON', -119299=>'ON', -119300=>'ON', -119301=>'ON', -119302=>'ON', -119303=>'ON', -119304=>'ON', -119305=>'ON', -119306=>'ON', -119307=>'ON', -119308=>'ON', -119309=>'ON', -119310=>'ON', -119311=>'ON', -119312=>'ON', -119313=>'ON', -119314=>'ON', -119315=>'ON', -119316=>'ON', -119317=>'ON', -119318=>'ON', -119319=>'ON', -119320=>'ON', -119321=>'ON', -119322=>'ON', -119323=>'ON', -119324=>'ON', -119325=>'ON', -119326=>'ON', -119327=>'ON', -119328=>'ON', -119329=>'ON', -119330=>'ON', -119331=>'ON', -119332=>'ON', -119333=>'ON', -119334=>'ON', -119335=>'ON', -119336=>'ON', -119337=>'ON', -119338=>'ON', -119339=>'ON', -119340=>'ON', -119341=>'ON', -119342=>'ON', -119343=>'ON', -119344=>'ON', -119345=>'ON', -119346=>'ON', -119347=>'ON', -119348=>'ON', -119349=>'ON', -119350=>'ON', -119351=>'ON', -119352=>'ON', -119353=>'ON', -119354=>'ON', -119355=>'ON', -119356=>'ON', -119357=>'ON', -119358=>'ON', -119359=>'ON', -119360=>'ON', -119361=>'ON', -119362=>'NSM', -119363=>'NSM', -119364=>'NSM', -119365=>'ON', -119552=>'ON', -119553=>'ON', -119554=>'ON', -119555=>'ON', -119556=>'ON', -119557=>'ON', -119558=>'ON', -119559=>'ON', -119560=>'ON', -119561=>'ON', -119562=>'ON', -119563=>'ON', -119564=>'ON', -119565=>'ON', -119566=>'ON', -119567=>'ON', -119568=>'ON', -119569=>'ON', -119570=>'ON', -119571=>'ON', -119572=>'ON', -119573=>'ON', -119574=>'ON', -119575=>'ON', -119576=>'ON', -119577=>'ON', -119578=>'ON', -119579=>'ON', -119580=>'ON', -119581=>'ON', -119582=>'ON', -119583=>'ON', -119584=>'ON', -119585=>'ON', -119586=>'ON', -119587=>'ON', -119588=>'ON', -119589=>'ON', -119590=>'ON', -119591=>'ON', -119592=>'ON', -119593=>'ON', -119594=>'ON', -119595=>'ON', -119596=>'ON', -119597=>'ON', -119598=>'ON', -119599=>'ON', -119600=>'ON', -119601=>'ON', -119602=>'ON', -119603=>'ON', -119604=>'ON', -119605=>'ON', -119606=>'ON', -119607=>'ON', -119608=>'ON', -119609=>'ON', -119610=>'ON', -119611=>'ON', -119612=>'ON', -119613=>'ON', -119614=>'ON', -119615=>'ON', -119616=>'ON', -119617=>'ON', -119618=>'ON', -119619=>'ON', -119620=>'ON', -119621=>'ON', -119622=>'ON', -119623=>'ON', -119624=>'ON', -119625=>'ON', -119626=>'ON', -119627=>'ON', -119628=>'ON', -119629=>'ON', -119630=>'ON', -119631=>'ON', -119632=>'ON', -119633=>'ON', -119634=>'ON', -119635=>'ON', -119636=>'ON', -119637=>'ON', -119638=>'ON', -119648=>'L', -119649=>'L', -119650=>'L', -119651=>'L', -119652=>'L', -119653=>'L', -119654=>'L', -119655=>'L', -119656=>'L', -119657=>'L', -119658=>'L', -119659=>'L', -119660=>'L', -119661=>'L', -119662=>'L', -119663=>'L', -119664=>'L', -119665=>'L', -119808=>'L', -119809=>'L', -119810=>'L', -119811=>'L', -119812=>'L', -119813=>'L', -119814=>'L', -119815=>'L', -119816=>'L', -119817=>'L', -119818=>'L', -119819=>'L', -119820=>'L', -119821=>'L', -119822=>'L', -119823=>'L', -119824=>'L', -119825=>'L', -119826=>'L', -119827=>'L', -119828=>'L', -119829=>'L', -119830=>'L', -119831=>'L', -119832=>'L', -119833=>'L', -119834=>'L', -119835=>'L', -119836=>'L', -119837=>'L', -119838=>'L', -119839=>'L', -119840=>'L', -119841=>'L', -119842=>'L', -119843=>'L', -119844=>'L', -119845=>'L', -119846=>'L', -119847=>'L', -119848=>'L', -119849=>'L', -119850=>'L', -119851=>'L', -119852=>'L', -119853=>'L', -119854=>'L', -119855=>'L', -119856=>'L', -119857=>'L', -119858=>'L', -119859=>'L', -119860=>'L', -119861=>'L', -119862=>'L', -119863=>'L', -119864=>'L', -119865=>'L', -119866=>'L', -119867=>'L', -119868=>'L', -119869=>'L', -119870=>'L', -119871=>'L', -119872=>'L', -119873=>'L', -119874=>'L', -119875=>'L', -119876=>'L', -119877=>'L', -119878=>'L', -119879=>'L', -119880=>'L', -119881=>'L', -119882=>'L', -119883=>'L', -119884=>'L', -119885=>'L', -119886=>'L', -119887=>'L', -119888=>'L', -119889=>'L', -119890=>'L', -119891=>'L', -119892=>'L', -119894=>'L', -119895=>'L', -119896=>'L', -119897=>'L', -119898=>'L', -119899=>'L', -119900=>'L', -119901=>'L', -119902=>'L', -119903=>'L', -119904=>'L', -119905=>'L', -119906=>'L', -119907=>'L', -119908=>'L', -119909=>'L', -119910=>'L', -119911=>'L', -119912=>'L', -119913=>'L', -119914=>'L', -119915=>'L', -119916=>'L', -119917=>'L', -119918=>'L', -119919=>'L', -119920=>'L', -119921=>'L', -119922=>'L', -119923=>'L', -119924=>'L', -119925=>'L', -119926=>'L', -119927=>'L', -119928=>'L', -119929=>'L', -119930=>'L', -119931=>'L', -119932=>'L', -119933=>'L', -119934=>'L', -119935=>'L', -119936=>'L', -119937=>'L', -119938=>'L', -119939=>'L', -119940=>'L', -119941=>'L', -119942=>'L', -119943=>'L', -119944=>'L', -119945=>'L', -119946=>'L', -119947=>'L', -119948=>'L', -119949=>'L', -119950=>'L', -119951=>'L', -119952=>'L', -119953=>'L', -119954=>'L', -119955=>'L', -119956=>'L', -119957=>'L', -119958=>'L', -119959=>'L', -119960=>'L', -119961=>'L', -119962=>'L', -119963=>'L', -119964=>'L', -119966=>'L', -119967=>'L', -119970=>'L', -119973=>'L', -119974=>'L', -119977=>'L', -119978=>'L', -119979=>'L', -119980=>'L', -119982=>'L', -119983=>'L', -119984=>'L', -119985=>'L', -119986=>'L', -119987=>'L', -119988=>'L', -119989=>'L', -119990=>'L', -119991=>'L', -119992=>'L', -119993=>'L', -119995=>'L', -119997=>'L', -119998=>'L', -119999=>'L', -120000=>'L', -120001=>'L', -120002=>'L', -120003=>'L', -120005=>'L', -120006=>'L', -120007=>'L', -120008=>'L', -120009=>'L', -120010=>'L', -120011=>'L', -120012=>'L', -120013=>'L', -120014=>'L', -120015=>'L', -120016=>'L', -120017=>'L', -120018=>'L', -120019=>'L', -120020=>'L', -120021=>'L', -120022=>'L', -120023=>'L', -120024=>'L', -120025=>'L', -120026=>'L', -120027=>'L', -120028=>'L', -120029=>'L', -120030=>'L', -120031=>'L', -120032=>'L', -120033=>'L', -120034=>'L', -120035=>'L', -120036=>'L', -120037=>'L', -120038=>'L', -120039=>'L', -120040=>'L', -120041=>'L', -120042=>'L', -120043=>'L', -120044=>'L', -120045=>'L', -120046=>'L', -120047=>'L', -120048=>'L', -120049=>'L', -120050=>'L', -120051=>'L', -120052=>'L', -120053=>'L', -120054=>'L', -120055=>'L', -120056=>'L', -120057=>'L', -120058=>'L', -120059=>'L', -120060=>'L', -120061=>'L', -120062=>'L', -120063=>'L', -120064=>'L', -120065=>'L', -120066=>'L', -120067=>'L', -120068=>'L', -120069=>'L', -120071=>'L', -120072=>'L', -120073=>'L', -120074=>'L', -120077=>'L', -120078=>'L', -120079=>'L', -120080=>'L', -120081=>'L', -120082=>'L', -120083=>'L', -120084=>'L', -120086=>'L', -120087=>'L', -120088=>'L', -120089=>'L', -120090=>'L', -120091=>'L', -120092=>'L', -120094=>'L', -120095=>'L', -120096=>'L', -120097=>'L', -120098=>'L', -120099=>'L', -120100=>'L', -120101=>'L', -120102=>'L', -120103=>'L', -120104=>'L', -120105=>'L', -120106=>'L', -120107=>'L', -120108=>'L', -120109=>'L', -120110=>'L', -120111=>'L', -120112=>'L', -120113=>'L', -120114=>'L', -120115=>'L', -120116=>'L', -120117=>'L', -120118=>'L', -120119=>'L', -120120=>'L', -120121=>'L', -120123=>'L', -120124=>'L', -120125=>'L', -120126=>'L', -120128=>'L', -120129=>'L', -120130=>'L', -120131=>'L', -120132=>'L', -120134=>'L', -120138=>'L', -120139=>'L', -120140=>'L', -120141=>'L', -120142=>'L', -120143=>'L', -120144=>'L', -120146=>'L', -120147=>'L', -120148=>'L', -120149=>'L', -120150=>'L', -120151=>'L', -120152=>'L', -120153=>'L', -120154=>'L', -120155=>'L', -120156=>'L', -120157=>'L', -120158=>'L', -120159=>'L', -120160=>'L', -120161=>'L', -120162=>'L', -120163=>'L', -120164=>'L', -120165=>'L', -120166=>'L', -120167=>'L', -120168=>'L', -120169=>'L', -120170=>'L', -120171=>'L', -120172=>'L', -120173=>'L', -120174=>'L', -120175=>'L', -120176=>'L', -120177=>'L', -120178=>'L', -120179=>'L', -120180=>'L', -120181=>'L', -120182=>'L', -120183=>'L', -120184=>'L', -120185=>'L', -120186=>'L', -120187=>'L', -120188=>'L', -120189=>'L', -120190=>'L', -120191=>'L', -120192=>'L', -120193=>'L', -120194=>'L', -120195=>'L', -120196=>'L', -120197=>'L', -120198=>'L', -120199=>'L', -120200=>'L', -120201=>'L', -120202=>'L', -120203=>'L', -120204=>'L', -120205=>'L', -120206=>'L', -120207=>'L', -120208=>'L', -120209=>'L', -120210=>'L', -120211=>'L', -120212=>'L', -120213=>'L', -120214=>'L', -120215=>'L', -120216=>'L', -120217=>'L', -120218=>'L', -120219=>'L', -120220=>'L', -120221=>'L', -120222=>'L', -120223=>'L', -120224=>'L', -120225=>'L', -120226=>'L', -120227=>'L', -120228=>'L', -120229=>'L', -120230=>'L', -120231=>'L', -120232=>'L', -120233=>'L', -120234=>'L', -120235=>'L', -120236=>'L', -120237=>'L', -120238=>'L', -120239=>'L', -120240=>'L', -120241=>'L', -120242=>'L', -120243=>'L', -120244=>'L', -120245=>'L', -120246=>'L', -120247=>'L', -120248=>'L', -120249=>'L', -120250=>'L', -120251=>'L', -120252=>'L', -120253=>'L', -120254=>'L', -120255=>'L', -120256=>'L', -120257=>'L', -120258=>'L', -120259=>'L', -120260=>'L', -120261=>'L', -120262=>'L', -120263=>'L', -120264=>'L', -120265=>'L', -120266=>'L', -120267=>'L', -120268=>'L', -120269=>'L', -120270=>'L', -120271=>'L', -120272=>'L', -120273=>'L', -120274=>'L', -120275=>'L', -120276=>'L', -120277=>'L', -120278=>'L', -120279=>'L', -120280=>'L', -120281=>'L', -120282=>'L', -120283=>'L', -120284=>'L', -120285=>'L', -120286=>'L', -120287=>'L', -120288=>'L', -120289=>'L', -120290=>'L', -120291=>'L', -120292=>'L', -120293=>'L', -120294=>'L', -120295=>'L', -120296=>'L', -120297=>'L', -120298=>'L', -120299=>'L', -120300=>'L', -120301=>'L', -120302=>'L', -120303=>'L', -120304=>'L', -120305=>'L', -120306=>'L', -120307=>'L', -120308=>'L', -120309=>'L', -120310=>'L', -120311=>'L', -120312=>'L', -120313=>'L', -120314=>'L', -120315=>'L', -120316=>'L', -120317=>'L', -120318=>'L', -120319=>'L', -120320=>'L', -120321=>'L', -120322=>'L', -120323=>'L', -120324=>'L', -120325=>'L', -120326=>'L', -120327=>'L', -120328=>'L', -120329=>'L', -120330=>'L', -120331=>'L', -120332=>'L', -120333=>'L', -120334=>'L', -120335=>'L', -120336=>'L', -120337=>'L', -120338=>'L', -120339=>'L', -120340=>'L', -120341=>'L', -120342=>'L', -120343=>'L', -120344=>'L', -120345=>'L', -120346=>'L', -120347=>'L', -120348=>'L', -120349=>'L', -120350=>'L', -120351=>'L', -120352=>'L', -120353=>'L', -120354=>'L', -120355=>'L', -120356=>'L', -120357=>'L', -120358=>'L', -120359=>'L', -120360=>'L', -120361=>'L', -120362=>'L', -120363=>'L', -120364=>'L', -120365=>'L', -120366=>'L', -120367=>'L', -120368=>'L', -120369=>'L', -120370=>'L', -120371=>'L', -120372=>'L', -120373=>'L', -120374=>'L', -120375=>'L', -120376=>'L', -120377=>'L', -120378=>'L', -120379=>'L', -120380=>'L', -120381=>'L', -120382=>'L', -120383=>'L', -120384=>'L', -120385=>'L', -120386=>'L', -120387=>'L', -120388=>'L', -120389=>'L', -120390=>'L', -120391=>'L', -120392=>'L', -120393=>'L', -120394=>'L', -120395=>'L', -120396=>'L', -120397=>'L', -120398=>'L', -120399=>'L', -120400=>'L', -120401=>'L', -120402=>'L', -120403=>'L', -120404=>'L', -120405=>'L', -120406=>'L', -120407=>'L', -120408=>'L', -120409=>'L', -120410=>'L', -120411=>'L', -120412=>'L', -120413=>'L', -120414=>'L', -120415=>'L', -120416=>'L', -120417=>'L', -120418=>'L', -120419=>'L', -120420=>'L', -120421=>'L', -120422=>'L', -120423=>'L', -120424=>'L', -120425=>'L', -120426=>'L', -120427=>'L', -120428=>'L', -120429=>'L', -120430=>'L', -120431=>'L', -120432=>'L', -120433=>'L', -120434=>'L', -120435=>'L', -120436=>'L', -120437=>'L', -120438=>'L', -120439=>'L', -120440=>'L', -120441=>'L', -120442=>'L', -120443=>'L', -120444=>'L', -120445=>'L', -120446=>'L', -120447=>'L', -120448=>'L', -120449=>'L', -120450=>'L', -120451=>'L', -120452=>'L', -120453=>'L', -120454=>'L', -120455=>'L', -120456=>'L', -120457=>'L', -120458=>'L', -120459=>'L', -120460=>'L', -120461=>'L', -120462=>'L', -120463=>'L', -120464=>'L', -120465=>'L', -120466=>'L', -120467=>'L', -120468=>'L', -120469=>'L', -120470=>'L', -120471=>'L', -120472=>'L', -120473=>'L', -120474=>'L', -120475=>'L', -120476=>'L', -120477=>'L', -120478=>'L', -120479=>'L', -120480=>'L', -120481=>'L', -120482=>'L', -120483=>'L', -120484=>'L', -120485=>'L', -120488=>'L', -120489=>'L', -120490=>'L', -120491=>'L', -120492=>'L', -120493=>'L', -120494=>'L', -120495=>'L', -120496=>'L', -120497=>'L', -120498=>'L', -120499=>'L', -120500=>'L', -120501=>'L', -120502=>'L', -120503=>'L', -120504=>'L', -120505=>'L', -120506=>'L', -120507=>'L', -120508=>'L', -120509=>'L', -120510=>'L', -120511=>'L', -120512=>'L', -120513=>'L', -120514=>'L', -120515=>'L', -120516=>'L', -120517=>'L', -120518=>'L', -120519=>'L', -120520=>'L', -120521=>'L', -120522=>'L', -120523=>'L', -120524=>'L', -120525=>'L', -120526=>'L', -120527=>'L', -120528=>'L', -120529=>'L', -120530=>'L', -120531=>'L', -120532=>'L', -120533=>'L', -120534=>'L', -120535=>'L', -120536=>'L', -120537=>'L', -120538=>'L', -120539=>'L', -120540=>'L', -120541=>'L', -120542=>'L', -120543=>'L', -120544=>'L', -120545=>'L', -120546=>'L', -120547=>'L', -120548=>'L', -120549=>'L', -120550=>'L', -120551=>'L', -120552=>'L', -120553=>'L', -120554=>'L', -120555=>'L', -120556=>'L', -120557=>'L', -120558=>'L', -120559=>'L', -120560=>'L', -120561=>'L', -120562=>'L', -120563=>'L', -120564=>'L', -120565=>'L', -120566=>'L', -120567=>'L', -120568=>'L', -120569=>'L', -120570=>'L', -120571=>'L', -120572=>'L', -120573=>'L', -120574=>'L', -120575=>'L', -120576=>'L', -120577=>'L', -120578=>'L', -120579=>'L', -120580=>'L', -120581=>'L', -120582=>'L', -120583=>'L', -120584=>'L', -120585=>'L', -120586=>'L', -120587=>'L', -120588=>'L', -120589=>'L', -120590=>'L', -120591=>'L', -120592=>'L', -120593=>'L', -120594=>'L', -120595=>'L', -120596=>'L', -120597=>'L', -120598=>'L', -120599=>'L', -120600=>'L', -120601=>'L', -120602=>'L', -120603=>'L', -120604=>'L', -120605=>'L', -120606=>'L', -120607=>'L', -120608=>'L', -120609=>'L', -120610=>'L', -120611=>'L', -120612=>'L', -120613=>'L', -120614=>'L', -120615=>'L', -120616=>'L', -120617=>'L', -120618=>'L', -120619=>'L', -120620=>'L', -120621=>'L', -120622=>'L', -120623=>'L', -120624=>'L', -120625=>'L', -120626=>'L', -120627=>'L', -120628=>'L', -120629=>'L', -120630=>'L', -120631=>'L', -120632=>'L', -120633=>'L', -120634=>'L', -120635=>'L', -120636=>'L', -120637=>'L', -120638=>'L', -120639=>'L', -120640=>'L', -120641=>'L', -120642=>'L', -120643=>'L', -120644=>'L', -120645=>'L', -120646=>'L', -120647=>'L', -120648=>'L', -120649=>'L', -120650=>'L', -120651=>'L', -120652=>'L', -120653=>'L', -120654=>'L', -120655=>'L', -120656=>'L', -120657=>'L', -120658=>'L', -120659=>'L', -120660=>'L', -120661=>'L', -120662=>'L', -120663=>'L', -120664=>'L', -120665=>'L', -120666=>'L', -120667=>'L', -120668=>'L', -120669=>'L', -120670=>'L', -120671=>'L', -120672=>'L', -120673=>'L', -120674=>'L', -120675=>'L', -120676=>'L', -120677=>'L', -120678=>'L', -120679=>'L', -120680=>'L', -120681=>'L', -120682=>'L', -120683=>'L', -120684=>'L', -120685=>'L', -120686=>'L', -120687=>'L', -120688=>'L', -120689=>'L', -120690=>'L', -120691=>'L', -120692=>'L', -120693=>'L', -120694=>'L', -120695=>'L', -120696=>'L', -120697=>'L', -120698=>'L', -120699=>'L', -120700=>'L', -120701=>'L', -120702=>'L', -120703=>'L', -120704=>'L', -120705=>'L', -120706=>'L', -120707=>'L', -120708=>'L', -120709=>'L', -120710=>'L', -120711=>'L', -120712=>'L', -120713=>'L', -120714=>'L', -120715=>'L', -120716=>'L', -120717=>'L', -120718=>'L', -120719=>'L', -120720=>'L', -120721=>'L', -120722=>'L', -120723=>'L', -120724=>'L', -120725=>'L', -120726=>'L', -120727=>'L', -120728=>'L', -120729=>'L', -120730=>'L', -120731=>'L', -120732=>'L', -120733=>'L', -120734=>'L', -120735=>'L', -120736=>'L', -120737=>'L', -120738=>'L', -120739=>'L', -120740=>'L', -120741=>'L', -120742=>'L', -120743=>'L', -120744=>'L', -120745=>'L', -120746=>'L', -120747=>'L', -120748=>'L', -120749=>'L', -120750=>'L', -120751=>'L', -120752=>'L', -120753=>'L', -120754=>'L', -120755=>'L', -120756=>'L', -120757=>'L', -120758=>'L', -120759=>'L', -120760=>'L', -120761=>'L', -120762=>'L', -120763=>'L', -120764=>'L', -120765=>'L', -120766=>'L', -120767=>'L', -120768=>'L', -120769=>'L', -120770=>'L', -120771=>'L', -120772=>'L', -120773=>'L', -120774=>'L', -120775=>'L', -120776=>'L', -120777=>'L', -120778=>'L', -120779=>'L', -120782=>'EN', -120783=>'EN', -120784=>'EN', -120785=>'EN', -120786=>'EN', -120787=>'EN', -120788=>'EN', -120789=>'EN', -120790=>'EN', -120791=>'EN', -120792=>'EN', -120793=>'EN', -120794=>'EN', -120795=>'EN', -120796=>'EN', -120797=>'EN', -120798=>'EN', -120799=>'EN', -120800=>'EN', -120801=>'EN', -120802=>'EN', -120803=>'EN', -120804=>'EN', -120805=>'EN', -120806=>'EN', -120807=>'EN', -120808=>'EN', -120809=>'EN', -120810=>'EN', -120811=>'EN', -120812=>'EN', -120813=>'EN', -120814=>'EN', -120815=>'EN', -120816=>'EN', -120817=>'EN', -120818=>'EN', -120819=>'EN', -120820=>'EN', -120821=>'EN', -120822=>'EN', -120823=>'EN', -120824=>'EN', -120825=>'EN', -120826=>'EN', -120827=>'EN', -120828=>'EN', -120829=>'EN', -120830=>'EN', -120831=>'EN', -131072=>'L', -173782=>'L', -194560=>'L', -194561=>'L', -194562=>'L', -194563=>'L', -194564=>'L', -194565=>'L', -194566=>'L', -194567=>'L', -194568=>'L', -194569=>'L', -194570=>'L', -194571=>'L', -194572=>'L', -194573=>'L', -194574=>'L', -194575=>'L', -194576=>'L', -194577=>'L', -194578=>'L', -194579=>'L', -194580=>'L', -194581=>'L', -194582=>'L', -194583=>'L', -194584=>'L', -194585=>'L', -194586=>'L', -194587=>'L', -194588=>'L', -194589=>'L', -194590=>'L', -194591=>'L', -194592=>'L', -194593=>'L', -194594=>'L', -194595=>'L', -194596=>'L', -194597=>'L', -194598=>'L', -194599=>'L', -194600=>'L', -194601=>'L', -194602=>'L', -194603=>'L', -194604=>'L', -194605=>'L', -194606=>'L', -194607=>'L', -194608=>'L', -194609=>'L', -194610=>'L', -194611=>'L', -194612=>'L', -194613=>'L', -194614=>'L', -194615=>'L', -194616=>'L', -194617=>'L', -194618=>'L', -194619=>'L', -194620=>'L', -194621=>'L', -194622=>'L', -194623=>'L', -194624=>'L', -194625=>'L', -194626=>'L', -194627=>'L', -194628=>'L', -194629=>'L', -194630=>'L', -194631=>'L', -194632=>'L', -194633=>'L', -194634=>'L', -194635=>'L', -194636=>'L', -194637=>'L', -194638=>'L', -194639=>'L', -194640=>'L', -194641=>'L', -194642=>'L', -194643=>'L', -194644=>'L', -194645=>'L', -194646=>'L', -194647=>'L', -194648=>'L', -194649=>'L', -194650=>'L', -194651=>'L', -194652=>'L', -194653=>'L', -194654=>'L', -194655=>'L', -194656=>'L', -194657=>'L', -194658=>'L', -194659=>'L', -194660=>'L', -194661=>'L', -194662=>'L', -194663=>'L', -194664=>'L', -194665=>'L', -194666=>'L', -194667=>'L', -194668=>'L', -194669=>'L', -194670=>'L', -194671=>'L', -194672=>'L', -194673=>'L', -194674=>'L', -194675=>'L', -194676=>'L', -194677=>'L', -194678=>'L', -194679=>'L', -194680=>'L', -194681=>'L', -194682=>'L', -194683=>'L', -194684=>'L', -194685=>'L', -194686=>'L', -194687=>'L', -194688=>'L', -194689=>'L', -194690=>'L', -194691=>'L', -194692=>'L', -194693=>'L', -194694=>'L', -194695=>'L', -194696=>'L', -194697=>'L', -194698=>'L', -194699=>'L', -194700=>'L', -194701=>'L', -194702=>'L', -194703=>'L', -194704=>'L', -194705=>'L', -194706=>'L', -194707=>'L', -194708=>'L', -194709=>'L', -194710=>'L', -194711=>'L', -194712=>'L', -194713=>'L', -194714=>'L', -194715=>'L', -194716=>'L', -194717=>'L', -194718=>'L', -194719=>'L', -194720=>'L', -194721=>'L', -194722=>'L', -194723=>'L', -194724=>'L', -194725=>'L', -194726=>'L', -194727=>'L', -194728=>'L', -194729=>'L', -194730=>'L', -194731=>'L', -194732=>'L', -194733=>'L', -194734=>'L', -194735=>'L', -194736=>'L', -194737=>'L', -194738=>'L', -194739=>'L', -194740=>'L', -194741=>'L', -194742=>'L', -194743=>'L', -194744=>'L', -194745=>'L', -194746=>'L', -194747=>'L', -194748=>'L', -194749=>'L', -194750=>'L', -194751=>'L', -194752=>'L', -194753=>'L', -194754=>'L', -194755=>'L', -194756=>'L', -194757=>'L', -194758=>'L', -194759=>'L', -194760=>'L', -194761=>'L', -194762=>'L', -194763=>'L', -194764=>'L', -194765=>'L', -194766=>'L', -194767=>'L', -194768=>'L', -194769=>'L', -194770=>'L', -194771=>'L', -194772=>'L', -194773=>'L', -194774=>'L', -194775=>'L', -194776=>'L', -194777=>'L', -194778=>'L', -194779=>'L', -194780=>'L', -194781=>'L', -194782=>'L', -194783=>'L', -194784=>'L', -194785=>'L', -194786=>'L', -194787=>'L', -194788=>'L', -194789=>'L', -194790=>'L', -194791=>'L', -194792=>'L', -194793=>'L', -194794=>'L', -194795=>'L', -194796=>'L', -194797=>'L', -194798=>'L', -194799=>'L', -194800=>'L', -194801=>'L', -194802=>'L', -194803=>'L', -194804=>'L', -194805=>'L', -194806=>'L', -194807=>'L', -194808=>'L', -194809=>'L', -194810=>'L', -194811=>'L', -194812=>'L', -194813=>'L', -194814=>'L', -194815=>'L', -194816=>'L', -194817=>'L', -194818=>'L', -194819=>'L', -194820=>'L', -194821=>'L', -194822=>'L', -194823=>'L', -194824=>'L', -194825=>'L', -194826=>'L', -194827=>'L', -194828=>'L', -194829=>'L', -194830=>'L', -194831=>'L', -194832=>'L', -194833=>'L', -194834=>'L', -194835=>'L', -194836=>'L', -194837=>'L', -194838=>'L', -194839=>'L', -194840=>'L', -194841=>'L', -194842=>'L', -194843=>'L', -194844=>'L', -194845=>'L', -194846=>'L', -194847=>'L', -194848=>'L', -194849=>'L', -194850=>'L', -194851=>'L', -194852=>'L', -194853=>'L', -194854=>'L', -194855=>'L', -194856=>'L', -194857=>'L', -194858=>'L', -194859=>'L', -194860=>'L', -194861=>'L', -194862=>'L', -194863=>'L', -194864=>'L', -194865=>'L', -194866=>'L', -194867=>'L', -194868=>'L', -194869=>'L', -194870=>'L', -194871=>'L', -194872=>'L', -194873=>'L', -194874=>'L', -194875=>'L', -194876=>'L', -194877=>'L', -194878=>'L', -194879=>'L', -194880=>'L', -194881=>'L', -194882=>'L', -194883=>'L', -194884=>'L', -194885=>'L', -194886=>'L', -194887=>'L', -194888=>'L', -194889=>'L', -194890=>'L', -194891=>'L', -194892=>'L', -194893=>'L', -194894=>'L', -194895=>'L', -194896=>'L', -194897=>'L', -194898=>'L', -194899=>'L', -194900=>'L', -194901=>'L', -194902=>'L', -194903=>'L', -194904=>'L', -194905=>'L', -194906=>'L', -194907=>'L', -194908=>'L', -194909=>'L', -194910=>'L', -194911=>'L', -194912=>'L', -194913=>'L', -194914=>'L', -194915=>'L', -194916=>'L', -194917=>'L', -194918=>'L', -194919=>'L', -194920=>'L', -194921=>'L', -194922=>'L', -194923=>'L', -194924=>'L', -194925=>'L', -194926=>'L', -194927=>'L', -194928=>'L', -194929=>'L', -194930=>'L', -194931=>'L', -194932=>'L', -194933=>'L', -194934=>'L', -194935=>'L', -194936=>'L', -194937=>'L', -194938=>'L', -194939=>'L', -194940=>'L', -194941=>'L', -194942=>'L', -194943=>'L', -194944=>'L', -194945=>'L', -194946=>'L', -194947=>'L', -194948=>'L', -194949=>'L', -194950=>'L', -194951=>'L', -194952=>'L', -194953=>'L', -194954=>'L', -194955=>'L', -194956=>'L', -194957=>'L', -194958=>'L', -194959=>'L', -194960=>'L', -194961=>'L', -194962=>'L', -194963=>'L', -194964=>'L', -194965=>'L', -194966=>'L', -194967=>'L', -194968=>'L', -194969=>'L', -194970=>'L', -194971=>'L', -194972=>'L', -194973=>'L', -194974=>'L', -194975=>'L', -194976=>'L', -194977=>'L', -194978=>'L', -194979=>'L', -194980=>'L', -194981=>'L', -194982=>'L', -194983=>'L', -194984=>'L', -194985=>'L', -194986=>'L', -194987=>'L', -194988=>'L', -194989=>'L', -194990=>'L', -194991=>'L', -194992=>'L', -194993=>'L', -194994=>'L', -194995=>'L', -194996=>'L', -194997=>'L', -194998=>'L', -194999=>'L', -195000=>'L', -195001=>'L', -195002=>'L', -195003=>'L', -195004=>'L', -195005=>'L', -195006=>'L', -195007=>'L', -195008=>'L', -195009=>'L', -195010=>'L', -195011=>'L', -195012=>'L', -195013=>'L', -195014=>'L', -195015=>'L', -195016=>'L', -195017=>'L', -195018=>'L', -195019=>'L', -195020=>'L', -195021=>'L', -195022=>'L', -195023=>'L', -195024=>'L', -195025=>'L', -195026=>'L', -195027=>'L', -195028=>'L', -195029=>'L', -195030=>'L', -195031=>'L', -195032=>'L', -195033=>'L', -195034=>'L', -195035=>'L', -195036=>'L', -195037=>'L', -195038=>'L', -195039=>'L', -195040=>'L', -195041=>'L', -195042=>'L', -195043=>'L', -195044=>'L', -195045=>'L', -195046=>'L', -195047=>'L', -195048=>'L', -195049=>'L', -195050=>'L', -195051=>'L', -195052=>'L', -195053=>'L', -195054=>'L', -195055=>'L', -195056=>'L', -195057=>'L', -195058=>'L', -195059=>'L', -195060=>'L', -195061=>'L', -195062=>'L', -195063=>'L', -195064=>'L', -195065=>'L', -195066=>'L', -195067=>'L', -195068=>'L', -195069=>'L', -195070=>'L', -195071=>'L', -195072=>'L', -195073=>'L', -195074=>'L', -195075=>'L', -195076=>'L', -195077=>'L', -195078=>'L', -195079=>'L', -195080=>'L', -195081=>'L', -195082=>'L', -195083=>'L', -195084=>'L', -195085=>'L', -195086=>'L', -195087=>'L', -195088=>'L', -195089=>'L', -195090=>'L', -195091=>'L', -195092=>'L', -195093=>'L', -195094=>'L', -195095=>'L', -195096=>'L', -195097=>'L', -195098=>'L', -195099=>'L', -195100=>'L', -195101=>'L', -917505=>'BN', -917536=>'BN', -917537=>'BN', -917538=>'BN', -917539=>'BN', -917540=>'BN', -917541=>'BN', -917542=>'BN', -917543=>'BN', -917544=>'BN', -917545=>'BN', -917546=>'BN', -917547=>'BN', -917548=>'BN', -917549=>'BN', -917550=>'BN', -917551=>'BN', -917552=>'BN', -917553=>'BN', -917554=>'BN', -917555=>'BN', -917556=>'BN', -917557=>'BN', -917558=>'BN', -917559=>'BN', -917560=>'BN', -917561=>'BN', -917562=>'BN', -917563=>'BN', -917564=>'BN', -917565=>'BN', -917566=>'BN', -917567=>'BN', -917568=>'BN', -917569=>'BN', -917570=>'BN', -917571=>'BN', -917572=>'BN', -917573=>'BN', -917574=>'BN', -917575=>'BN', -917576=>'BN', -917577=>'BN', -917578=>'BN', -917579=>'BN', -917580=>'BN', -917581=>'BN', -917582=>'BN', -917583=>'BN', -917584=>'BN', -917585=>'BN', -917586=>'BN', -917587=>'BN', -917588=>'BN', -917589=>'BN', -917590=>'BN', -917591=>'BN', -917592=>'BN', -917593=>'BN', -917594=>'BN', -917595=>'BN', -917596=>'BN', -917597=>'BN', -917598=>'BN', -917599=>'BN', -917600=>'BN', -917601=>'BN', -917602=>'BN', -917603=>'BN', -917604=>'BN', -917605=>'BN', -917606=>'BN', -917607=>'BN', -917608=>'BN', -917609=>'BN', -917610=>'BN', -917611=>'BN', -917612=>'BN', -917613=>'BN', -917614=>'BN', -917615=>'BN', -917616=>'BN', -917617=>'BN', -917618=>'BN', -917619=>'BN', -917620=>'BN', -917621=>'BN', -917622=>'BN', -917623=>'BN', -917624=>'BN', -917625=>'BN', -917626=>'BN', -917627=>'BN', -917628=>'BN', -917629=>'BN', -917630=>'BN', -917631=>'BN', -917760=>'NSM', -917761=>'NSM', -917762=>'NSM', -917763=>'NSM', -917764=>'NSM', -917765=>'NSM', -917766=>'NSM', -917767=>'NSM', -917768=>'NSM', -917769=>'NSM', -917770=>'NSM', -917771=>'NSM', -917772=>'NSM', -917773=>'NSM', -917774=>'NSM', -917775=>'NSM', -917776=>'NSM', -917777=>'NSM', -917778=>'NSM', -917779=>'NSM', -917780=>'NSM', -917781=>'NSM', -917782=>'NSM', -917783=>'NSM', -917784=>'NSM', -917785=>'NSM', -917786=>'NSM', -917787=>'NSM', -917788=>'NSM', -917789=>'NSM', -917790=>'NSM', -917791=>'NSM', -917792=>'NSM', -917793=>'NSM', -917794=>'NSM', -917795=>'NSM', -917796=>'NSM', -917797=>'NSM', -917798=>'NSM', -917799=>'NSM', -917800=>'NSM', -917801=>'NSM', -917802=>'NSM', -917803=>'NSM', -917804=>'NSM', -917805=>'NSM', -917806=>'NSM', -917807=>'NSM', -917808=>'NSM', -917809=>'NSM', -917810=>'NSM', -917811=>'NSM', -917812=>'NSM', -917813=>'NSM', -917814=>'NSM', -917815=>'NSM', -917816=>'NSM', -917817=>'NSM', -917818=>'NSM', -917819=>'NSM', -917820=>'NSM', -917821=>'NSM', -917822=>'NSM', -917823=>'NSM', -917824=>'NSM', -917825=>'NSM', -917826=>'NSM', -917827=>'NSM', -917828=>'NSM', -917829=>'NSM', -917830=>'NSM', -917831=>'NSM', -917832=>'NSM', -917833=>'NSM', -917834=>'NSM', -917835=>'NSM', -917836=>'NSM', -917837=>'NSM', -917838=>'NSM', -917839=>'NSM', -917840=>'NSM', -917841=>'NSM', -917842=>'NSM', -917843=>'NSM', -917844=>'NSM', -917845=>'NSM', -917846=>'NSM', -917847=>'NSM', -917848=>'NSM', -917849=>'NSM', -917850=>'NSM', -917851=>'NSM', -917852=>'NSM', -917853=>'NSM', -917854=>'NSM', -917855=>'NSM', -917856=>'NSM', -917857=>'NSM', -917858=>'NSM', -917859=>'NSM', -917860=>'NSM', -917861=>'NSM', -917862=>'NSM', -917863=>'NSM', -917864=>'NSM', -917865=>'NSM', -917866=>'NSM', -917867=>'NSM', -917868=>'NSM', -917869=>'NSM', -917870=>'NSM', -917871=>'NSM', -917872=>'NSM', -917873=>'NSM', -917874=>'NSM', -917875=>'NSM', -917876=>'NSM', -917877=>'NSM', -917878=>'NSM', -917879=>'NSM', -917880=>'NSM', -917881=>'NSM', -917882=>'NSM', -917883=>'NSM', -917884=>'NSM', -917885=>'NSM', -917886=>'NSM', -917887=>'NSM', -917888=>'NSM', -917889=>'NSM', -917890=>'NSM', -917891=>'NSM', -917892=>'NSM', -917893=>'NSM', -917894=>'NSM', -917895=>'NSM', -917896=>'NSM', -917897=>'NSM', -917898=>'NSM', -917899=>'NSM', -917900=>'NSM', -917901=>'NSM', -917902=>'NSM', -917903=>'NSM', -917904=>'NSM', -917905=>'NSM', -917906=>'NSM', -917907=>'NSM', -917908=>'NSM', -917909=>'NSM', -917910=>'NSM', -917911=>'NSM', -917912=>'NSM', -917913=>'NSM', -917914=>'NSM', -917915=>'NSM', -917916=>'NSM', -917917=>'NSM', -917918=>'NSM', -917919=>'NSM', -917920=>'NSM', -917921=>'NSM', -917922=>'NSM', -917923=>'NSM', -917924=>'NSM', -917925=>'NSM', -917926=>'NSM', -917927=>'NSM', -917928=>'NSM', -917929=>'NSM', -917930=>'NSM', -917931=>'NSM', -917932=>'NSM', -917933=>'NSM', -917934=>'NSM', -917935=>'NSM', -917936=>'NSM', -917937=>'NSM', -917938=>'NSM', -917939=>'NSM', -917940=>'NSM', -917941=>'NSM', -917942=>'NSM', -917943=>'NSM', -917944=>'NSM', -917945=>'NSM', -917946=>'NSM', -917947=>'NSM', -917948=>'NSM', -917949=>'NSM', -917950=>'NSM', -917951=>'NSM', -917952=>'NSM', -917953=>'NSM', -917954=>'NSM', -917955=>'NSM', -917956=>'NSM', -917957=>'NSM', -917958=>'NSM', -917959=>'NSM', -917960=>'NSM', -917961=>'NSM', -917962=>'NSM', -917963=>'NSM', -917964=>'NSM', -917965=>'NSM', -917966=>'NSM', -917967=>'NSM', -917968=>'NSM', -917969=>'NSM', -917970=>'NSM', -917971=>'NSM', -917972=>'NSM', -917973=>'NSM', -917974=>'NSM', -917975=>'NSM', -917976=>'NSM', -917977=>'NSM', -917978=>'NSM', -917979=>'NSM', -917980=>'NSM', -917981=>'NSM', -917982=>'NSM', -917983=>'NSM', -917984=>'NSM', -917985=>'NSM', -917986=>'NSM', -917987=>'NSM', -917988=>'NSM', -917989=>'NSM', -917990=>'NSM', -917991=>'NSM', -917992=>'NSM', -917993=>'NSM', -917994=>'NSM', -917995=>'NSM', -917996=>'NSM', -917997=>'NSM', -917998=>'NSM', -917999=>'NSM', -983040=>'L', -1048573=>'L', -1048576=>'L', -1114109=>'L' -); - -/** - * Mirror unicode characters. For information on bidi mirroring, see UAX #9: Bidirectional Algorithm, at http://www.unicode.org/unicode/reports/tr9/ - * @public - */ -public static $uni_mirror = array ( -0x0028=>0x0029, -0x0029=>0x0028, -0x003C=>0x003E, -0x003E=>0x003C, -0x005B=>0x005D, -0x005D=>0x005B, -0x007B=>0x007D, -0x007D=>0x007B, -0x00AB=>0x00BB, -0x00BB=>0x00AB, -0x0F3A=>0x0F3B, -0x0F3B=>0x0F3A, -0x0F3C=>0x0F3D, -0x0F3D=>0x0F3C, -0x169B=>0x169C, -0x169C=>0x169B, -0x2018=>0x2019, -0x2019=>0x2018, -0x201C=>0x201D, -0x201D=>0x201C, -0x2039=>0x203A, -0x203A=>0x2039, -0x2045=>0x2046, -0x2046=>0x2045, -0x207D=>0x207E, -0x207E=>0x207D, -0x208D=>0x208E, -0x208E=>0x208D, -0x2208=>0x220B, -0x2209=>0x220C, -0x220A=>0x220D, -0x220B=>0x2208, -0x220C=>0x2209, -0x220D=>0x220A, -0x2215=>0x29F5, -0x223C=>0x223D, -0x223D=>0x223C, -0x2243=>0x22CD, -0x2252=>0x2253, -0x2253=>0x2252, -0x2254=>0x2255, -0x2255=>0x2254, -0x2264=>0x2265, -0x2265=>0x2264, -0x2266=>0x2267, -0x2267=>0x2266, -0x2268=>0x2269, -0x2269=>0x2268, -0x226A=>0x226B, -0x226B=>0x226A, -0x226E=>0x226F, -0x226F=>0x226E, -0x2270=>0x2271, -0x2271=>0x2270, -0x2272=>0x2273, -0x2273=>0x2272, -0x2274=>0x2275, -0x2275=>0x2274, -0x2276=>0x2277, -0x2277=>0x2276, -0x2278=>0x2279, -0x2279=>0x2278, -0x227A=>0x227B, -0x227B=>0x227A, -0x227C=>0x227D, -0x227D=>0x227C, -0x227E=>0x227F, -0x227F=>0x227E, -0x2280=>0x2281, -0x2281=>0x2280, -0x2282=>0x2283, -0x2283=>0x2282, -0x2284=>0x2285, -0x2285=>0x2284, -0x2286=>0x2287, -0x2287=>0x2286, -0x2288=>0x2289, -0x2289=>0x2288, -0x228A=>0x228B, -0x228B=>0x228A, -0x228F=>0x2290, -0x2290=>0x228F, -0x2291=>0x2292, -0x2292=>0x2291, -0x2298=>0x29B8, -0x22A2=>0x22A3, -0x22A3=>0x22A2, -0x22A6=>0x2ADE, -0x22A8=>0x2AE4, -0x22A9=>0x2AE3, -0x22AB=>0x2AE5, -0x22B0=>0x22B1, -0x22B1=>0x22B0, -0x22B2=>0x22B3, -0x22B3=>0x22B2, -0x22B4=>0x22B5, -0x22B5=>0x22B4, -0x22B6=>0x22B7, -0x22B7=>0x22B6, -0x22C9=>0x22CA, -0x22CA=>0x22C9, -0x22CB=>0x22CC, -0x22CC=>0x22CB, -0x22CD=>0x2243, -0x22D0=>0x22D1, -0x22D1=>0x22D0, -0x22D6=>0x22D7, -0x22D7=>0x22D6, -0x22D8=>0x22D9, -0x22D9=>0x22D8, -0x22DA=>0x22DB, -0x22DB=>0x22DA, -0x22DC=>0x22DD, -0x22DD=>0x22DC, -0x22DE=>0x22DF, -0x22DF=>0x22DE, -0x22E0=>0x22E1, -0x22E1=>0x22E0, -0x22E2=>0x22E3, -0x22E3=>0x22E2, -0x22E4=>0x22E5, -0x22E5=>0x22E4, -0x22E6=>0x22E7, -0x22E7=>0x22E6, -0x22E8=>0x22E9, -0x22E9=>0x22E8, -0x22EA=>0x22EB, -0x22EB=>0x22EA, -0x22EC=>0x22ED, -0x22ED=>0x22EC, -0x22F0=>0x22F1, -0x22F1=>0x22F0, -0x22F2=>0x22FA, -0x22F3=>0x22FB, -0x22F4=>0x22FC, -0x22F6=>0x22FD, -0x22F7=>0x22FE, -0x22FA=>0x22F2, -0x22FB=>0x22F3, -0x22FC=>0x22F4, -0x22FD=>0x22F6, -0x22FE=>0x22F7, -0x2308=>0x2309, -0x2309=>0x2308, -0x230A=>0x230B, -0x230B=>0x230A, -0x2329=>0x232A, -0x232A=>0x2329, -0x2768=>0x2769, -0x2769=>0x2768, -0x276A=>0x276B, -0x276B=>0x276A, -0x276C=>0x276D, -0x276D=>0x276C, -0x276E=>0x276F, -0x276F=>0x276E, -0x2770=>0x2771, -0x2771=>0x2770, -0x2772=>0x2773, -0x2773=>0x2772, -0x2774=>0x2775, -0x2775=>0x2774, -0x27C3=>0x27C4, -0x27C4=>0x27C3, -0x27C5=>0x27C6, -0x27C6=>0x27C5, -0x27D5=>0x27D6, -0x27D6=>0x27D5, -0x27DD=>0x27DE, -0x27DE=>0x27DD, -0x27E2=>0x27E3, -0x27E3=>0x27E2, -0x27E4=>0x27E5, -0x27E5=>0x27E4, -0x27E6=>0x27E7, -0x27E7=>0x27E6, -0x27E8=>0x27E9, -0x27E9=>0x27E8, -0x27EA=>0x27EB, -0x27EB=>0x27EA, -0x2983=>0x2984, -0x2984=>0x2983, -0x2985=>0x2986, -0x2986=>0x2985, -0x2987=>0x2988, -0x2988=>0x2987, -0x2989=>0x298A, -0x298A=>0x2989, -0x298B=>0x298C, -0x298C=>0x298B, -0x298D=>0x2990, -0x298E=>0x298F, -0x298F=>0x298E, -0x2990=>0x298D, -0x2991=>0x2992, -0x2992=>0x2991, -0x2993=>0x2994, -0x2994=>0x2993, -0x2995=>0x2996, -0x2996=>0x2995, -0x2997=>0x2998, -0x2998=>0x2997, -0x29B8=>0x2298, -0x29C0=>0x29C1, -0x29C1=>0x29C0, -0x29C4=>0x29C5, -0x29C5=>0x29C4, -0x29CF=>0x29D0, -0x29D0=>0x29CF, -0x29D1=>0x29D2, -0x29D2=>0x29D1, -0x29D4=>0x29D5, -0x29D5=>0x29D4, -0x29D8=>0x29D9, -0x29D9=>0x29D8, -0x29DA=>0x29DB, -0x29DB=>0x29DA, -0x29F5=>0x2215, -0x29F8=>0x29F9, -0x29F9=>0x29F8, -0x29FC=>0x29FD, -0x29FD=>0x29FC, -0x2A2B=>0x2A2C, -0x2A2C=>0x2A2B, -0x2A2D=>0x2A2E, -0x2A2E=>0x2A2D, -0x2A34=>0x2A35, -0x2A35=>0x2A34, -0x2A3C=>0x2A3D, -0x2A3D=>0x2A3C, -0x2A64=>0x2A65, -0x2A65=>0x2A64, -0x2A79=>0x2A7A, -0x2A7A=>0x2A79, -0x2A7D=>0x2A7E, -0x2A7E=>0x2A7D, -0x2A7F=>0x2A80, -0x2A80=>0x2A7F, -0x2A81=>0x2A82, -0x2A82=>0x2A81, -0x2A83=>0x2A84, -0x2A84=>0x2A83, -0x2A8B=>0x2A8C, -0x2A8C=>0x2A8B, -0x2A91=>0x2A92, -0x2A92=>0x2A91, -0x2A93=>0x2A94, -0x2A94=>0x2A93, -0x2A95=>0x2A96, -0x2A96=>0x2A95, -0x2A97=>0x2A98, -0x2A98=>0x2A97, -0x2A99=>0x2A9A, -0x2A9A=>0x2A99, -0x2A9B=>0x2A9C, -0x2A9C=>0x2A9B, -0x2AA1=>0x2AA2, -0x2AA2=>0x2AA1, -0x2AA6=>0x2AA7, -0x2AA7=>0x2AA6, -0x2AA8=>0x2AA9, -0x2AA9=>0x2AA8, -0x2AAA=>0x2AAB, -0x2AAB=>0x2AAA, -0x2AAC=>0x2AAD, -0x2AAD=>0x2AAC, -0x2AAF=>0x2AB0, -0x2AB0=>0x2AAF, -0x2AB3=>0x2AB4, -0x2AB4=>0x2AB3, -0x2ABB=>0x2ABC, -0x2ABC=>0x2ABB, -0x2ABD=>0x2ABE, -0x2ABE=>0x2ABD, -0x2ABF=>0x2AC0, -0x2AC0=>0x2ABF, -0x2AC1=>0x2AC2, -0x2AC2=>0x2AC1, -0x2AC3=>0x2AC4, -0x2AC4=>0x2AC3, -0x2AC5=>0x2AC6, -0x2AC6=>0x2AC5, -0x2ACD=>0x2ACE, -0x2ACE=>0x2ACD, -0x2ACF=>0x2AD0, -0x2AD0=>0x2ACF, -0x2AD1=>0x2AD2, -0x2AD2=>0x2AD1, -0x2AD3=>0x2AD4, -0x2AD4=>0x2AD3, -0x2AD5=>0x2AD6, -0x2AD6=>0x2AD5, -0x2ADE=>0x22A6, -0x2AE3=>0x22A9, -0x2AE4=>0x22A8, -0x2AE5=>0x22AB, -0x2AEC=>0x2AED, -0x2AED=>0x2AEC, -0x2AF7=>0x2AF8, -0x2AF8=>0x2AF7, -0x2AF9=>0x2AFA, -0x2AFA=>0x2AF9, -0x2E02=>0x2E03, -0x2E03=>0x2E02, -0x2E04=>0x2E05, -0x2E05=>0x2E04, -0x2E09=>0x2E0A, -0x2E0A=>0x2E09, -0x2E0C=>0x2E0D, -0x2E0D=>0x2E0C, -0x2E1C=>0x2E1D, -0x2E1D=>0x2E1C, -0x3008=>0x3009, -0x3009=>0x3008, -0x300A=>0x300B, -0x300B=>0x300A, -0x300C=>0x300D, -0x300D=>0x300C, -0x300E=>0x300F, -0x300F=>0x300E, -0x3010=>0x3011, -0x3011=>0x3010, -0x3014=>0x3015, -0x3015=>0x3014, -0x3016=>0x3017, -0x3017=>0x3016, -0x3018=>0x3019, -0x3019=>0x3018, -0x301A=>0x301B, -0x301B=>0x301A, -0x301D=>0x301E, -0x301E=>0x301D, -0xFE59=>0xFE5A, -0xFE5A=>0xFE59, -0xFE5B=>0xFE5C, -0xFE5C=>0xFE5B, -0xFE5D=>0xFE5E, -0xFE5E=>0xFE5D, -0xFE64=>0xFE65, -0xFE65=>0xFE64, -0xFF08=>0xFF09, -0xFF09=>0xFF08, -0xFF1C=>0xFF1E, -0xFF1E=>0xFF1C, -0xFF3B=>0xFF3D, -0xFF3D=>0xFF3B, -0xFF5B=>0xFF5D, -0xFF5D=>0xFF5B, -0xFF5F=>0xFF60, -0xFF60=>0xFF5F, -0xFF62=>0xFF63, -0xFF63=>0xFF62); - -/** - * Arabic shape substitutions: char code => (isolated, final, initial, medial). - * @public - */ -public static $uni_arabicsubst = array( -1569=>array(65152), -1570=>array(65153, 65154, 65153, 65154), -1571=>array(65155, 65156, 65155, 65156), -1572=>array(65157, 65158), -1573=>array(65159, 65160, 65159, 65160), -1574=>array(65161, 65162, 65163, 65164), -1575=>array(65165, 65166, 65165, 65166), -1576=>array(65167, 65168, 65169, 65170), -1577=>array(65171, 65172), -1578=>array(65173, 65174, 65175, 65176), -1579=>array(65177, 65178, 65179, 65180), -1580=>array(65181, 65182, 65183, 65184), -1581=>array(65185, 65186, 65187, 65188), -1582=>array(65189, 65190, 65191, 65192), -1583=>array(65193, 65194, 65193, 65194), -1584=>array(65195, 65196, 65195, 65196), -1585=>array(65197, 65198, 65197, 65198), -1586=>array(65199, 65200, 65199, 65200), -1587=>array(65201, 65202, 65203, 65204), -1588=>array(65205, 65206, 65207, 65208), -1589=>array(65209, 65210, 65211, 65212), -1590=>array(65213, 65214, 65215, 65216), -1591=>array(65217, 65218, 65219, 65220), -1592=>array(65221, 65222, 65223, 65224), -1593=>array(65225, 65226, 65227, 65228), -1594=>array(65229, 65230, 65231, 65232), -1601=>array(65233, 65234, 65235, 65236), -1602=>array(65237, 65238, 65239, 65240), -1603=>array(65241, 65242, 65243, 65244), -1604=>array(65245, 65246, 65247, 65248), -1605=>array(65249, 65250, 65251, 65252), -1606=>array(65253, 65254, 65255, 65256), -1607=>array(65257, 65258, 65259, 65260), -1608=>array(65261, 65262, 65261, 65262), -1609=>array(65263, 65264, 64488, 64489), -1610=>array(65265, 65266, 65267, 65268), -1649=>array(64336, 64337), -1655=>array(64477), -1657=>array(64358, 64359, 64360, 64361), -1658=>array(64350, 64351, 64352, 64353), -1659=>array(64338, 64339, 64340, 64341), -1662=>array(64342, 64343, 64344, 64345), -1663=>array(64354, 64355, 64356, 64357), -1664=>array(64346, 64347, 64348, 64349), -1667=>array(64374, 64375, 64376, 64377), -1668=>array(64370, 64371, 64372, 64373), -1670=>array(64378, 64379, 64380, 64381), -1671=>array(64382, 64383, 64384, 64385), -1672=>array(64392, 64393), -1676=>array(64388, 64389), -1677=>array(64386, 64387), -1678=>array(64390, 64391), -1681=>array(64396, 64397), -1688=>array(64394, 64395, 64394, 64395), -1700=>array(64362, 64363, 64364, 64365), -1702=>array(64366, 64367, 64368, 64369), -1705=>array(64398, 64399, 64400, 64401), -1709=>array(64467, 64468, 64469, 64470), -1711=>array(64402, 64403, 64404, 64405), -1713=>array(64410, 64411, 64412, 64413), -1715=>array(64406, 64407, 64408, 64409), -1722=>array(64414, 64415), -1723=>array(64416, 64417, 64418, 64419), -1726=>array(64426, 64427, 64428, 64429), -1728=>array(64420, 64421), -1729=>array(64422, 64423, 64424, 64425), -1733=>array(64480, 64481), -1734=>array(64473, 64474), -1735=>array(64471, 64472), -1736=>array(64475, 64476), -1737=>array(64482, 64483), -1739=>array(64478, 64479), -1740=>array(64508, 64509, 64510, 64511), -1744=>array(64484, 64485, 64486, 64487), -1746=>array(64430, 64431), -1747=>array(64432, 64433) -); - -/** - * Arabic laa letter: (char code => isolated, final, initial, medial). - * @public - */ -public static $uni_laa_array = array ( -1570 =>array(65269, 65270, 65269, 65270), -1571 =>array(65271, 65272, 65271, 65272), -1573 =>array(65273, 65274, 65273, 65274), -1575 =>array(65275, 65276, 65275, 65276) -); - -/** - * Array of character substitutions for sequences of two diacritics symbols. - * Putting the combining mark and character in the same glyph allows us to avoid the two marks overlapping each other in an illegible manner. - * second NSM char code => substitution char - * @public - */ -public static $uni_diacritics = array ( -1612=>64606, # Shadda + Dammatan -1613=>64607, # Shadda + Kasratan -1614=>64608, # Shadda + Fatha -1615=>64609, # Shadda + Damma -1616=>64610 # Shadda + Kasra -); - -/** - * Array of character substitutions from UTF-8 Unicode to Latin1. - * @public - */ -public static $uni_utf8tolatin = array ( -8364=>128, # Euro1 -338=>140, # OE -352=>138, # Scaron -376=>159, # Ydieresis -381=>142, # Zcaron2 -8226=>149, # bullet3 -710=>136, # circumflex -8224=>134, # dagger -8225=>135, # daggerdbl -8230=>133, # ellipsis -8212=>151, # emdash -8211=>150, # endash -402=>131, # florin -8249=>139, # guilsinglleft -8250=>155, # guilsinglright -339=>156, # oe -8240=>137, # perthousand -8222=>132, # quotedblbase -8220=>147, # quotedblleft -8221=>148, # quotedblright -8216=>145, # quoteleft -8217=>146, # quoteright -8218=>130, # quotesinglbase -353=>154, # scaron -732=>152, # tilde -8482=>153, # trademark -382=>158 # zcaron2 -); - -/** - * Array of Encoding Maps. - * @public static - */ -public static $encmap = array( - -// encoding map for: cp874 -'cp874' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',128=>'Euro',129=>'.notdef',130=>'.notdef',131=>'.notdef',132=>'.notdef',133=>'ellipsis',134=>'.notdef',135=>'.notdef',136=>'.notdef',137=>'.notdef',138=>'.notdef',139=>'.notdef',140=>'.notdef',141=>'.notdef',142=>'.notdef',143=>'.notdef',144=>'.notdef',145=>'quoteleft',146=>'quoteright',147=>'quotedblleft',148=>'quotedblright',149=>'bullet',150=>'endash',151=>'emdash',152=>'.notdef',153=>'.notdef',154=>'.notdef',155=>'.notdef',156=>'.notdef',157=>'.notdef',158=>'.notdef',159=>'.notdef',160=>'space',161=>'kokaithai',162=>'khokhaithai',163=>'khokhuatthai',164=>'khokhwaithai',165=>'khokhonthai',166=>'khorakhangthai',167=>'ngonguthai',168=>'chochanthai',169=>'chochingthai',170=>'chochangthai',171=>'sosothai',172=>'chochoethai',173=>'yoyingthai',174=>'dochadathai',175=>'topatakthai',176=>'thothanthai',177=>'thonangmonthothai',178=>'thophuthaothai',179=>'nonenthai',180=>'dodekthai',181=>'totaothai',182=>'thothungthai',183=>'thothahanthai',184=>'thothongthai',185=>'nonuthai',186=>'bobaimaithai',187=>'poplathai',188=>'phophungthai',189=>'fofathai',190=>'phophanthai',191=>'fofanthai',192=>'phosamphaothai',193=>'momathai',194=>'yoyakthai',195=>'roruathai',196=>'ruthai',197=>'lolingthai',198=>'luthai',199=>'wowaenthai',200=>'sosalathai',201=>'sorusithai',202=>'sosuathai',203=>'hohipthai',204=>'lochulathai',205=>'oangthai',206=>'honokhukthai',207=>'paiyannoithai',208=>'saraathai',209=>'maihanakatthai',210=>'saraaathai',211=>'saraamthai',212=>'saraithai',213=>'saraiithai',214=>'sarauethai',215=>'saraueethai',216=>'sarauthai',217=>'sarauuthai',218=>'phinthuthai',219=>'.notdef',220=>'.notdef',221=>'.notdef',222=>'.notdef',223=>'bahtthai',224=>'saraethai',225=>'saraaethai',226=>'saraothai',227=>'saraaimaimuanthai',228=>'saraaimaimalaithai',229=>'lakkhangyaothai',230=>'maiyamokthai',231=>'maitaikhuthai',232=>'maiekthai',233=>'maithothai',234=>'maitrithai',235=>'maichattawathai',236=>'thanthakhatthai',237=>'nikhahitthai',238=>'yamakkanthai',239=>'fongmanthai',240=>'zerothai',241=>'onethai',242=>'twothai',243=>'threethai',244=>'fourthai',245=>'fivethai',246=>'sixthai',247=>'seventhai',248=>'eightthai',249=>'ninethai',250=>'angkhankhuthai',251=>'khomutthai',252=>'.notdef',253=>'.notdef',254=>'.notdef',255=>'.notdef'), - -// encoding map for: cp1250 -'cp1250' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',128=>'Euro',129=>'.notdef',130=>'quotesinglbase',131=>'.notdef',132=>'quotedblbase',133=>'ellipsis',134=>'dagger',135=>'daggerdbl',136=>'.notdef',137=>'perthousand',138=>'Scaron',139=>'guilsinglleft',140=>'Sacute',141=>'Tcaron',142=>'Zcaron',143=>'Zacute',144=>'.notdef',145=>'quoteleft',146=>'quoteright',147=>'quotedblleft',148=>'quotedblright',149=>'bullet',150=>'endash',151=>'emdash',152=>'.notdef',153=>'trademark',154=>'scaron',155=>'guilsinglright',156=>'sacute',157=>'tcaron',158=>'zcaron',159=>'zacute',160=>'space',161=>'caron',162=>'breve',163=>'Lslash',164=>'currency',165=>'Aogonek',166=>'brokenbar',167=>'section',168=>'dieresis',169=>'copyright',170=>'Scedilla',171=>'guillemotleft',172=>'logicalnot',173=>'hyphen',174=>'registered',175=>'Zdotaccent',176=>'degree',177=>'plusminus',178=>'ogonek',179=>'lslash',180=>'acute',181=>'mu',182=>'paragraph',183=>'periodcentered',184=>'cedilla',185=>'aogonek',186=>'scedilla',187=>'guillemotright',188=>'Lcaron',189=>'hungarumlaut',190=>'lcaron',191=>'zdotaccent',192=>'Racute',193=>'Aacute',194=>'Acircumflex',195=>'Abreve',196=>'Adieresis',197=>'Lacute',198=>'Cacute',199=>'Ccedilla',200=>'Ccaron',201=>'Eacute',202=>'Eogonek',203=>'Edieresis',204=>'Ecaron',205=>'Iacute',206=>'Icircumflex',207=>'Dcaron',208=>'Dcroat',209=>'Nacute',210=>'Ncaron',211=>'Oacute',212=>'Ocircumflex',213=>'Ohungarumlaut',214=>'Odieresis',215=>'multiply',216=>'Rcaron',217=>'Uring',218=>'Uacute',219=>'Uhungarumlaut',220=>'Udieresis',221=>'Yacute',222=>'Tcommaaccent',223=>'germandbls',224=>'racute',225=>'aacute',226=>'acircumflex',227=>'abreve',228=>'adieresis',229=>'lacute',230=>'cacute',231=>'ccedilla',232=>'ccaron',233=>'eacute',234=>'eogonek',235=>'edieresis',236=>'ecaron',237=>'iacute',238=>'icircumflex',239=>'dcaron',240=>'dcroat',241=>'nacute',242=>'ncaron',243=>'oacute',244=>'ocircumflex',245=>'ohungarumlaut',246=>'odieresis',247=>'divide',248=>'rcaron',249=>'uring',250=>'uacute',251=>'uhungarumlaut',252=>'udieresis',253=>'yacute',254=>'tcommaaccent',255=>'dotaccent'), - -// encoding map for: cp1251 -'cp1251' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',128=>'afii10051',129=>'afii10052',130=>'quotesinglbase',131=>'afii10100',132=>'quotedblbase',133=>'ellipsis',134=>'dagger',135=>'daggerdbl',136=>'Euro',137=>'perthousand',138=>'afii10058',139=>'guilsinglleft',140=>'afii10059',141=>'afii10061',142=>'afii10060',143=>'afii10145',144=>'afii10099',145=>'quoteleft',146=>'quoteright',147=>'quotedblleft',148=>'quotedblright',149=>'bullet',150=>'endash',151=>'emdash',152=>'.notdef',153=>'trademark',154=>'afii10106',155=>'guilsinglright',156=>'afii10107',157=>'afii10109',158=>'afii10108',159=>'afii10193',160=>'space',161=>'afii10062',162=>'afii10110',163=>'afii10057',164=>'currency',165=>'afii10050',166=>'brokenbar',167=>'section',168=>'afii10023',169=>'copyright',170=>'afii10053',171=>'guillemotleft',172=>'logicalnot',173=>'hyphen',174=>'registered',175=>'afii10056',176=>'degree',177=>'plusminus',178=>'afii10055',179=>'afii10103',180=>'afii10098',181=>'mu',182=>'paragraph',183=>'periodcentered',184=>'afii10071',185=>'afii61352',186=>'afii10101',187=>'guillemotright',188=>'afii10105',189=>'afii10054',190=>'afii10102',191=>'afii10104',192=>'afii10017',193=>'afii10018',194=>'afii10019',195=>'afii10020',196=>'afii10021',197=>'afii10022',198=>'afii10024',199=>'afii10025',200=>'afii10026',201=>'afii10027',202=>'afii10028',203=>'afii10029',204=>'afii10030',205=>'afii10031',206=>'afii10032',207=>'afii10033',208=>'afii10034',209=>'afii10035',210=>'afii10036',211=>'afii10037',212=>'afii10038',213=>'afii10039',214=>'afii10040',215=>'afii10041',216=>'afii10042',217=>'afii10043',218=>'afii10044',219=>'afii10045',220=>'afii10046',221=>'afii10047',222=>'afii10048',223=>'afii10049',224=>'afii10065',225=>'afii10066',226=>'afii10067',227=>'afii10068',228=>'afii10069',229=>'afii10070',230=>'afii10072',231=>'afii10073',232=>'afii10074',233=>'afii10075',234=>'afii10076',235=>'afii10077',236=>'afii10078',237=>'afii10079',238=>'afii10080',239=>'afii10081',240=>'afii10082',241=>'afii10083',242=>'afii10084',243=>'afii10085',244=>'afii10086',245=>'afii10087',246=>'afii10088',247=>'afii10089',248=>'afii10090',249=>'afii10091',250=>'afii10092',251=>'afii10093',252=>'afii10094',253=>'afii10095',254=>'afii10096',255=>'afii10097'), - -// encoding map for: cp1252 -'cp1252' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',128=>'Euro',129=>'.notdef',130=>'quotesinglbase',131=>'florin',132=>'quotedblbase',133=>'ellipsis',134=>'dagger',135=>'daggerdbl',136=>'circumflex',137=>'perthousand',138=>'Scaron',139=>'guilsinglleft',140=>'OE',141=>'.notdef',142=>'Zcaron',143=>'.notdef',144=>'.notdef',145=>'quoteleft',146=>'quoteright',147=>'quotedblleft',148=>'quotedblright',149=>'bullet',150=>'endash',151=>'emdash',152=>'tilde',153=>'trademark',154=>'scaron',155=>'guilsinglright',156=>'oe',157=>'.notdef',158=>'zcaron',159=>'Ydieresis',160=>'space',161=>'exclamdown',162=>'cent',163=>'sterling',164=>'currency',165=>'yen',166=>'brokenbar',167=>'section',168=>'dieresis',169=>'copyright',170=>'ordfeminine',171=>'guillemotleft',172=>'logicalnot',173=>'hyphen',174=>'registered',175=>'macron',176=>'degree',177=>'plusminus',178=>'twosuperior',179=>'threesuperior',180=>'acute',181=>'mu',182=>'paragraph',183=>'periodcentered',184=>'cedilla',185=>'onesuperior',186=>'ordmasculine',187=>'guillemotright',188=>'onequarter',189=>'onehalf',190=>'threequarters',191=>'questiondown',192=>'Agrave',193=>'Aacute',194=>'Acircumflex',195=>'Atilde',196=>'Adieresis',197=>'Aring',198=>'AE',199=>'Ccedilla',200=>'Egrave',201=>'Eacute',202=>'Ecircumflex',203=>'Edieresis',204=>'Igrave',205=>'Iacute',206=>'Icircumflex',207=>'Idieresis',208=>'Eth',209=>'Ntilde',210=>'Ograve',211=>'Oacute',212=>'Ocircumflex',213=>'Otilde',214=>'Odieresis',215=>'multiply',216=>'Oslash',217=>'Ugrave',218=>'Uacute',219=>'Ucircumflex',220=>'Udieresis',221=>'Yacute',222=>'Thorn',223=>'germandbls',224=>'agrave',225=>'aacute',226=>'acircumflex',227=>'atilde',228=>'adieresis',229=>'aring',230=>'ae',231=>'ccedilla',232=>'egrave',233=>'eacute',234=>'ecircumflex',235=>'edieresis',236=>'igrave',237=>'iacute',238=>'icircumflex',239=>'idieresis',240=>'eth',241=>'ntilde',242=>'ograve',243=>'oacute',244=>'ocircumflex',245=>'otilde',246=>'odieresis',247=>'divide',248=>'oslash',249=>'ugrave',250=>'uacute',251=>'ucircumflex',252=>'udieresis',253=>'yacute',254=>'thorn',255=>'ydieresis'), - -// encoding map for: cp1253 -'cp1253' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',128=>'Euro',129=>'.notdef',130=>'quotesinglbase',131=>'florin',132=>'quotedblbase',133=>'ellipsis',134=>'dagger',135=>'daggerdbl',136=>'.notdef',137=>'perthousand',138=>'.notdef',139=>'guilsinglleft',140=>'.notdef',141=>'.notdef',142=>'.notdef',143=>'.notdef',144=>'.notdef',145=>'quoteleft',146=>'quoteright',147=>'quotedblleft',148=>'quotedblright',149=>'bullet',150=>'endash',151=>'emdash',152=>'.notdef',153=>'trademark',154=>'.notdef',155=>'guilsinglright',156=>'.notdef',157=>'.notdef',158=>'.notdef',159=>'.notdef',160=>'space',161=>'dieresistonos',162=>'Alphatonos',163=>'sterling',164=>'currency',165=>'yen',166=>'brokenbar',167=>'section',168=>'dieresis',169=>'copyright',170=>'.notdef',171=>'guillemotleft',172=>'logicalnot',173=>'hyphen',174=>'registered',175=>'afii00208',176=>'degree',177=>'plusminus',178=>'twosuperior',179=>'threesuperior',180=>'tonos',181=>'mu',182=>'paragraph',183=>'periodcentered',184=>'Epsilontonos',185=>'Etatonos',186=>'Iotatonos',187=>'guillemotright',188=>'Omicrontonos',189=>'onehalf',190=>'Upsilontonos',191=>'Omegatonos',192=>'iotadieresistonos',193=>'Alpha',194=>'Beta',195=>'Gamma',196=>'Delta',197=>'Epsilon',198=>'Zeta',199=>'Eta',200=>'Theta',201=>'Iota',202=>'Kappa',203=>'Lambda',204=>'Mu',205=>'Nu',206=>'Xi',207=>'Omicron',208=>'Pi',209=>'Rho',210=>'.notdef',211=>'Sigma',212=>'Tau',213=>'Upsilon',214=>'Phi',215=>'Chi',216=>'Psi',217=>'Omega',218=>'Iotadieresis',219=>'Upsilondieresis',220=>'alphatonos',221=>'epsilontonos',222=>'etatonos',223=>'iotatonos',224=>'upsilondieresistonos',225=>'alpha',226=>'beta',227=>'gamma',228=>'delta',229=>'epsilon',230=>'zeta',231=>'eta',232=>'theta',233=>'iota',234=>'kappa',235=>'lambda',236=>'mu',237=>'nu',238=>'xi',239=>'omicron',240=>'pi',241=>'rho',242=>'sigma1',243=>'sigma',244=>'tau',245=>'upsilon',246=>'phi',247=>'chi',248=>'psi',249=>'omega',250=>'iotadieresis',251=>'upsilondieresis',252=>'omicrontonos',253=>'upsilontonos',254=>'omegatonos',255=>'.notdef'), - -// encoding map for: cp1254 -'cp1254' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',128=>'Euro',129=>'.notdef',130=>'quotesinglbase',131=>'florin',132=>'quotedblbase',133=>'ellipsis',134=>'dagger',135=>'daggerdbl',136=>'circumflex',137=>'perthousand',138=>'Scaron',139=>'guilsinglleft',140=>'OE',141=>'.notdef',142=>'.notdef',143=>'.notdef',144=>'.notdef',145=>'quoteleft',146=>'quoteright',147=>'quotedblleft',148=>'quotedblright',149=>'bullet',150=>'endash',151=>'emdash',152=>'tilde',153=>'trademark',154=>'scaron',155=>'guilsinglright',156=>'oe',157=>'.notdef',158=>'.notdef',159=>'Ydieresis',160=>'space',161=>'exclamdown',162=>'cent',163=>'sterling',164=>'currency',165=>'yen',166=>'brokenbar',167=>'section',168=>'dieresis',169=>'copyright',170=>'ordfeminine',171=>'guillemotleft',172=>'logicalnot',173=>'hyphen',174=>'registered',175=>'macron',176=>'degree',177=>'plusminus',178=>'twosuperior',179=>'threesuperior',180=>'acute',181=>'mu',182=>'paragraph',183=>'periodcentered',184=>'cedilla',185=>'onesuperior',186=>'ordmasculine',187=>'guillemotright',188=>'onequarter',189=>'onehalf',190=>'threequarters',191=>'questiondown',192=>'Agrave',193=>'Aacute',194=>'Acircumflex',195=>'Atilde',196=>'Adieresis',197=>'Aring',198=>'AE',199=>'Ccedilla',200=>'Egrave',201=>'Eacute',202=>'Ecircumflex',203=>'Edieresis',204=>'Igrave',205=>'Iacute',206=>'Icircumflex',207=>'Idieresis',208=>'Gbreve',209=>'Ntilde',210=>'Ograve',211=>'Oacute',212=>'Ocircumflex',213=>'Otilde',214=>'Odieresis',215=>'multiply',216=>'Oslash',217=>'Ugrave',218=>'Uacute',219=>'Ucircumflex',220=>'Udieresis',221=>'Idotaccent',222=>'Scedilla',223=>'germandbls',224=>'agrave',225=>'aacute',226=>'acircumflex',227=>'atilde',228=>'adieresis',229=>'aring',230=>'ae',231=>'ccedilla',232=>'egrave',233=>'eacute',234=>'ecircumflex',235=>'edieresis',236=>'igrave',237=>'iacute',238=>'icircumflex',239=>'idieresis',240=>'gbreve',241=>'ntilde',242=>'ograve',243=>'oacute',244=>'ocircumflex',245=>'otilde',246=>'odieresis',247=>'divide',248=>'oslash',249=>'ugrave',250=>'uacute',251=>'ucircumflex',252=>'udieresis',253=>'dotlessi',254=>'scedilla',255=>'ydieresis'), - -// encoding map for: cp1255 -'cp1255' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',128=>'Euro',129=>'.notdef',130=>'quotesinglbase',131=>'florin',132=>'quotedblbase',133=>'ellipsis',134=>'dagger',135=>'daggerdbl',136=>'circumflex',137=>'perthousand',138=>'.notdef',139=>'guilsinglleft',140=>'.notdef',141=>'.notdef',142=>'.notdef',143=>'.notdef',144=>'.notdef',145=>'quoteleft',146=>'quoteright',147=>'quotedblleft',148=>'quotedblright',149=>'bullet',150=>'endash',151=>'emdash',152=>'tilde',153=>'trademark',154=>'.notdef',155=>'guilsinglright',156=>'.notdef',157=>'.notdef',158=>'.notdef',159=>'.notdef',160=>'space',161=>'exclamdown',162=>'cent',163=>'sterling',164=>'afii57636',165=>'yen',166=>'brokenbar',167=>'section',168=>'dieresis',169=>'copyright',170=>'multiply',171=>'guillemotleft',172=>'logicalnot',173=>'sfthyphen',174=>'registered',175=>'macron',176=>'degree',177=>'plusminus',178=>'twosuperior',179=>'threesuperior',180=>'acute',181=>'mu',182=>'paragraph',183=>'middot',184=>'cedilla',185=>'onesuperior',186=>'divide',187=>'guillemotright',188=>'onequarter',189=>'onehalf',190=>'threequarters',191=>'questiondown',192=>'afii57799',193=>'afii57801',194=>'afii57800',195=>'afii57802',196=>'afii57793',197=>'afii57794',198=>'afii57795',199=>'afii57798',200=>'afii57797',201=>'afii57806',202=>'.notdef',203=>'afii57796',204=>'afii57807',205=>'afii57839',206=>'afii57645',207=>'afii57841',208=>'afii57842',209=>'afii57804',210=>'afii57803',211=>'afii57658',212=>'afii57716',213=>'afii57717',214=>'afii57718',215=>'gereshhebrew',216=>'gershayimhebrew',217=>'.notdef',218=>'.notdef',219=>'.notdef',220=>'.notdef',221=>'.notdef',222=>'.notdef',223=>'.notdef',224=>'afii57664',225=>'afii57665',226=>'afii57666',227=>'afii57667',228=>'afii57668',229=>'afii57669',230=>'afii57670',231=>'afii57671',232=>'afii57672',233=>'afii57673',234=>'afii57674',235=>'afii57675',236=>'afii57676',237=>'afii57677',238=>'afii57678',239=>'afii57679',240=>'afii57680',241=>'afii57681',242=>'afii57682',243=>'afii57683',244=>'afii57684',245=>'afii57685',246=>'afii57686',247=>'afii57687',248=>'afii57688',249=>'afii57689',250=>'afii57690',251=>'.notdef',252=>'.notdef',253=>'afii299',254=>'afii300',255=>'.notdef'), - -// encoding map for: cp1256 -'cp1256' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',128=>'Euro',129=>'afii57506',130=>'quotesinglbase',131=>'florin',132=>'quotedblbase',133=>'ellipsis',134=>'dagger',135=>'daggerdbl',136=>'circumflex',137=>'perthousand',138=>'afii57511',139=>'guilsinglleft',140=>'OE',141=>'afii57507',142=>'afii57508',143=>'afii57512',144=>'afii57509',145=>'quoteleft',146=>'quoteright',147=>'quotedblleft',148=>'quotedblright',149=>'bullet',150=>'endash',151=>'emdash',152=>'.notdef',153=>'trademark',154=>'afii57513',155=>'guilsinglright',156=>'oe',157=>'afii61664',158=>'afii301',159=>'afii57514',160=>'space',161=>'afii57388',162=>'cent',163=>'sterling',164=>'currency',165=>'yen',166=>'brokenbar',167=>'section',168=>'dieresis',169=>'copyright',170=>'.notdef',171=>'guillemotleft',172=>'logicalnot',173=>'hyphen',174=>'registered',175=>'macron',176=>'degree',177=>'plusminus',178=>'twosuperior',179=>'threesuperior',180=>'acute',181=>'mu',182=>'paragraph',183=>'periodcentered',184=>'cedilla',185=>'onesuperior',186=>'afii57403',187=>'guillemotright',188=>'onequarter',189=>'onehalf',190=>'threequarters',191=>'afii57407',192=>'.notdef',193=>'afii57409',194=>'afii57410',195=>'afii57411',196=>'afii57412',197=>'afii57413',198=>'afii57414',199=>'afii57415',200=>'afii57416',201=>'afii57417',202=>'afii57418',203=>'afii57419',204=>'afii57420',205=>'afii57421',206=>'afii57422',207=>'afii57423',208=>'afii57424',209=>'afii57425',210=>'afii57426',211=>'afii57427',212=>'afii57428',213=>'afii57429',214=>'afii57430',215=>'multiply',216=>'afii57431',217=>'afii57432',218=>'afii57433',219=>'afii57434',220=>'afii57440',221=>'afii57441',222=>'afii57442',223=>'afii57443',224=>'agrave',225=>'afii57444',226=>'acircumflex',227=>'afii57445',228=>'afii57446',229=>'afii57470',230=>'afii57448',231=>'ccedilla',232=>'egrave',233=>'eacute',234=>'ecircumflex',235=>'edieresis',236=>'afii57449',237=>'afii57450',238=>'icircumflex',239=>'idieresis',240=>'afii57451',241=>'afii57452',242=>'afii57453',243=>'afii57454',244=>'ocircumflex',245=>'afii57455',246=>'afii57456',247=>'divide',248=>'afii57457',249=>'ugrave',250=>'afii57458',251=>'ucircumflex',252=>'udieresis',253=>'afii299',254=>'afii300',255=>'afii57519'), - -// encoding map for: cp1257 -'cp1257' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',128=>'Euro',129=>'.notdef',130=>'quotesinglbase',131=>'.notdef',132=>'quotedblbase',133=>'ellipsis',134=>'dagger',135=>'daggerdbl',136=>'.notdef',137=>'perthousand',138=>'.notdef',139=>'guilsinglleft',140=>'.notdef',141=>'dieresis',142=>'caron',143=>'cedilla',144=>'.notdef',145=>'quoteleft',146=>'quoteright',147=>'quotedblleft',148=>'quotedblright',149=>'bullet',150=>'endash',151=>'emdash',152=>'.notdef',153=>'trademark',154=>'.notdef',155=>'guilsinglright',156=>'.notdef',157=>'macron',158=>'ogonek',159=>'.notdef',160=>'space',161=>'.notdef',162=>'cent',163=>'sterling',164=>'currency',165=>'.notdef',166=>'brokenbar',167=>'section',168=>'Oslash',169=>'copyright',170=>'Rcommaaccent',171=>'guillemotleft',172=>'logicalnot',173=>'hyphen',174=>'registered',175=>'AE',176=>'degree',177=>'plusminus',178=>'twosuperior',179=>'threesuperior',180=>'acute',181=>'mu',182=>'paragraph',183=>'periodcentered',184=>'oslash',185=>'onesuperior',186=>'rcommaaccent',187=>'guillemotright',188=>'onequarter',189=>'onehalf',190=>'threequarters',191=>'ae',192=>'Aogonek',193=>'Iogonek',194=>'Amacron',195=>'Cacute',196=>'Adieresis',197=>'Aring',198=>'Eogonek',199=>'Emacron',200=>'Ccaron',201=>'Eacute',202=>'Zacute',203=>'Edotaccent',204=>'Gcommaaccent',205=>'Kcommaaccent',206=>'Imacron',207=>'Lcommaaccent',208=>'Scaron',209=>'Nacute',210=>'Ncommaaccent',211=>'Oacute',212=>'Omacron',213=>'Otilde',214=>'Odieresis',215=>'multiply',216=>'Uogonek',217=>'Lslash',218=>'Sacute',219=>'Umacron',220=>'Udieresis',221=>'Zdotaccent',222=>'Zcaron',223=>'germandbls',224=>'aogonek',225=>'iogonek',226=>'amacron',227=>'cacute',228=>'adieresis',229=>'aring',230=>'eogonek',231=>'emacron',232=>'ccaron',233=>'eacute',234=>'zacute',235=>'edotaccent',236=>'gcommaaccent',237=>'kcommaaccent',238=>'imacron',239=>'lcommaaccent',240=>'scaron',241=>'nacute',242=>'ncommaaccent',243=>'oacute',244=>'omacron',245=>'otilde',246=>'odieresis',247=>'divide',248=>'uogonek',249=>'lslash',250=>'sacute',251=>'umacron',252=>'udieresis',253=>'zdotaccent',254=>'zcaron',255=>'dotaccent'), - -// encoding map for: cp1258 -'cp1258' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',128=>'Euro',129=>'.notdef',130=>'quotesinglbase',131=>'florin',132=>'quotedblbase',133=>'ellipsis',134=>'dagger',135=>'daggerdbl',136=>'circumflex',137=>'perthousand',138=>'.notdef',139=>'guilsinglleft',140=>'OE',141=>'.notdef',142=>'.notdef',143=>'.notdef',144=>'.notdef',145=>'quoteleft',146=>'quoteright',147=>'quotedblleft',148=>'quotedblright',149=>'bullet',150=>'endash',151=>'emdash',152=>'tilde',153=>'trademark',154=>'.notdef',155=>'guilsinglright',156=>'oe',157=>'.notdef',158=>'.notdef',159=>'Ydieresis',160=>'space',161=>'exclamdown',162=>'cent',163=>'sterling',164=>'currency',165=>'yen',166=>'brokenbar',167=>'section',168=>'dieresis',169=>'copyright',170=>'ordfeminine',171=>'guillemotleft',172=>'logicalnot',173=>'hyphen',174=>'registered',175=>'macron',176=>'degree',177=>'plusminus',178=>'twosuperior',179=>'threesuperior',180=>'acute',181=>'mu',182=>'paragraph',183=>'periodcentered',184=>'cedilla',185=>'onesuperior',186=>'ordmasculine',187=>'guillemotright',188=>'onequarter',189=>'onehalf',190=>'threequarters',191=>'questiondown',192=>'Agrave',193=>'Aacute',194=>'Acircumflex',195=>'Abreve',196=>'Adieresis',197=>'Aring',198=>'AE',199=>'Ccedilla',200=>'Egrave',201=>'Eacute',202=>'Ecircumflex',203=>'Edieresis',204=>'gravecomb',205=>'Iacute',206=>'Icircumflex',207=>'Idieresis',208=>'Dcroat',209=>'Ntilde',210=>'hookabovecomb',211=>'Oacute',212=>'Ocircumflex',213=>'Ohorn',214=>'Odieresis',215=>'multiply',216=>'Oslash',217=>'Ugrave',218=>'Uacute',219=>'Ucircumflex',220=>'Udieresis',221=>'Uhorn',222=>'tildecomb',223=>'germandbls',224=>'agrave',225=>'aacute',226=>'acircumflex',227=>'abreve',228=>'adieresis',229=>'aring',230=>'ae',231=>'ccedilla',232=>'egrave',233=>'eacute',234=>'ecircumflex',235=>'edieresis',236=>'acutecomb',237=>'iacute',238=>'icircumflex',239=>'idieresis',240=>'dcroat',241=>'ntilde',242=>'dotbelowcomb',243=>'oacute',244=>'ocircumflex',245=>'ohorn',246=>'odieresis',247=>'divide',248=>'oslash',249=>'ugrave',250=>'uacute',251=>'ucircumflex',252=>'udieresis',253=>'uhorn',254=>'dong',255=>'ydieresis'), - -// encoding map for: iso-8859-1 -'iso-8859-1' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',128=>'.notdef',129=>'.notdef',130=>'.notdef',131=>'.notdef',132=>'.notdef',133=>'.notdef',134=>'.notdef',135=>'.notdef',136=>'.notdef',137=>'.notdef',138=>'.notdef',139=>'.notdef',140=>'.notdef',141=>'.notdef',142=>'.notdef',143=>'.notdef',144=>'.notdef',145=>'.notdef',146=>'.notdef',147=>'.notdef',148=>'.notdef',149=>'.notdef',150=>'.notdef',151=>'.notdef',152=>'.notdef',153=>'.notdef',154=>'.notdef',155=>'.notdef',156=>'.notdef',157=>'.notdef',158=>'.notdef',159=>'.notdef',160=>'space',161=>'exclamdown',162=>'cent',163=>'sterling',164=>'currency',165=>'yen',166=>'brokenbar',167=>'section',168=>'dieresis',169=>'copyright',170=>'ordfeminine',171=>'guillemotleft',172=>'logicalnot',173=>'hyphen',174=>'registered',175=>'macron',176=>'degree',177=>'plusminus',178=>'twosuperior',179=>'threesuperior',180=>'acute',181=>'mu',182=>'paragraph',183=>'periodcentered',184=>'cedilla',185=>'onesuperior',186=>'ordmasculine',187=>'guillemotright',188=>'onequarter',189=>'onehalf',190=>'threequarters',191=>'questiondown',192=>'Agrave',193=>'Aacute',194=>'Acircumflex',195=>'Atilde',196=>'Adieresis',197=>'Aring',198=>'AE',199=>'Ccedilla',200=>'Egrave',201=>'Eacute',202=>'Ecircumflex',203=>'Edieresis',204=>'Igrave',205=>'Iacute',206=>'Icircumflex',207=>'Idieresis',208=>'Eth',209=>'Ntilde',210=>'Ograve',211=>'Oacute',212=>'Ocircumflex',213=>'Otilde',214=>'Odieresis',215=>'multiply',216=>'Oslash',217=>'Ugrave',218=>'Uacute',219=>'Ucircumflex',220=>'Udieresis',221=>'Yacute',222=>'Thorn',223=>'germandbls',224=>'agrave',225=>'aacute',226=>'acircumflex',227=>'atilde',228=>'adieresis',229=>'aring',230=>'ae',231=>'ccedilla',232=>'egrave',233=>'eacute',234=>'ecircumflex',235=>'edieresis',236=>'igrave',237=>'iacute',238=>'icircumflex',239=>'idieresis',240=>'eth',241=>'ntilde',242=>'ograve',243=>'oacute',244=>'ocircumflex',245=>'otilde',246=>'odieresis',247=>'divide',248=>'oslash',249=>'ugrave',250=>'uacute',251=>'ucircumflex',252=>'udieresis',253=>'yacute',254=>'thorn',255=>'ydieresis'), - -// encoding map for: iso-8859-2 -'iso-8859-2' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',128=>'.notdef',129=>'.notdef',130=>'.notdef',131=>'.notdef',132=>'.notdef',133=>'.notdef',134=>'.notdef',135=>'.notdef',136=>'.notdef',137=>'.notdef',138=>'.notdef',139=>'.notdef',140=>'.notdef',141=>'.notdef',142=>'.notdef',143=>'.notdef',144=>'.notdef',145=>'.notdef',146=>'.notdef',147=>'.notdef',148=>'.notdef',149=>'.notdef',150=>'.notdef',151=>'.notdef',152=>'.notdef',153=>'.notdef',154=>'.notdef',155=>'.notdef',156=>'.notdef',157=>'.notdef',158=>'.notdef',159=>'.notdef',160=>'space',161=>'Aogonek',162=>'breve',163=>'Lslash',164=>'currency',165=>'Lcaron',166=>'Sacute',167=>'section',168=>'dieresis',169=>'Scaron',170=>'Scedilla',171=>'Tcaron',172=>'Zacute',173=>'hyphen',174=>'Zcaron',175=>'Zdotaccent',176=>'degree',177=>'aogonek',178=>'ogonek',179=>'lslash',180=>'acute',181=>'lcaron',182=>'sacute',183=>'caron',184=>'cedilla',185=>'scaron',186=>'scedilla',187=>'tcaron',188=>'zacute',189=>'hungarumlaut',190=>'zcaron',191=>'zdotaccent',192=>'Racute',193=>'Aacute',194=>'Acircumflex',195=>'Abreve',196=>'Adieresis',197=>'Lacute',198=>'Cacute',199=>'Ccedilla',200=>'Ccaron',201=>'Eacute',202=>'Eogonek',203=>'Edieresis',204=>'Ecaron',205=>'Iacute',206=>'Icircumflex',207=>'Dcaron',208=>'Dcroat',209=>'Nacute',210=>'Ncaron',211=>'Oacute',212=>'Ocircumflex',213=>'Ohungarumlaut',214=>'Odieresis',215=>'multiply',216=>'Rcaron',217=>'Uring',218=>'Uacute',219=>'Uhungarumlaut',220=>'Udieresis',221=>'Yacute',222=>'Tcommaaccent',223=>'germandbls',224=>'racute',225=>'aacute',226=>'acircumflex',227=>'abreve',228=>'adieresis',229=>'lacute',230=>'cacute',231=>'ccedilla',232=>'ccaron',233=>'eacute',234=>'eogonek',235=>'edieresis',236=>'ecaron',237=>'iacute',238=>'icircumflex',239=>'dcaron',240=>'dcroat',241=>'nacute',242=>'ncaron',243=>'oacute',244=>'ocircumflex',245=>'ohungarumlaut',246=>'odieresis',247=>'divide',248=>'rcaron',249=>'uring',250=>'uacute',251=>'uhungarumlaut',252=>'udieresis',253=>'yacute',254=>'tcommaaccent',255=>'dotaccent'), - -// encoding map for: iso-8859-4 -'iso-8859-4' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',128=>'.notdef',129=>'.notdef',130=>'.notdef',131=>'.notdef',132=>'.notdef',133=>'.notdef',134=>'.notdef',135=>'.notdef',136=>'.notdef',137=>'.notdef',138=>'.notdef',139=>'.notdef',140=>'.notdef',141=>'.notdef',142=>'.notdef',143=>'.notdef',144=>'.notdef',145=>'.notdef',146=>'.notdef',147=>'.notdef',148=>'.notdef',149=>'.notdef',150=>'.notdef',151=>'.notdef',152=>'.notdef',153=>'.notdef',154=>'.notdef',155=>'.notdef',156=>'.notdef',157=>'.notdef',158=>'.notdef',159=>'.notdef',160=>'space',161=>'Aogonek',162=>'kgreenlandic',163=>'Rcommaaccent',164=>'currency',165=>'Itilde',166=>'Lcommaaccent',167=>'section',168=>'dieresis',169=>'Scaron',170=>'Emacron',171=>'Gcommaaccent',172=>'Tbar',173=>'hyphen',174=>'Zcaron',175=>'macron',176=>'degree',177=>'aogonek',178=>'ogonek',179=>'rcommaaccent',180=>'acute',181=>'itilde',182=>'lcommaaccent',183=>'caron',184=>'cedilla',185=>'scaron',186=>'emacron',187=>'gcommaaccent',188=>'tbar',189=>'Eng',190=>'zcaron',191=>'eng',192=>'Amacron',193=>'Aacute',194=>'Acircumflex',195=>'Atilde',196=>'Adieresis',197=>'Aring',198=>'AE',199=>'Iogonek',200=>'Ccaron',201=>'Eacute',202=>'Eogonek',203=>'Edieresis',204=>'Edotaccent',205=>'Iacute',206=>'Icircumflex',207=>'Imacron',208=>'Dcroat',209=>'Ncommaaccent',210=>'Omacron',211=>'Kcommaaccent',212=>'Ocircumflex',213=>'Otilde',214=>'Odieresis',215=>'multiply',216=>'Oslash',217=>'Uogonek',218=>'Uacute',219=>'Ucircumflex',220=>'Udieresis',221=>'Utilde',222=>'Umacron',223=>'germandbls',224=>'amacron',225=>'aacute',226=>'acircumflex',227=>'atilde',228=>'adieresis',229=>'aring',230=>'ae',231=>'iogonek',232=>'ccaron',233=>'eacute',234=>'eogonek',235=>'edieresis',236=>'edotaccent',237=>'iacute',238=>'icircumflex',239=>'imacron',240=>'dcroat',241=>'ncommaaccent',242=>'omacron',243=>'kcommaaccent',244=>'ocircumflex',245=>'otilde',246=>'odieresis',247=>'divide',248=>'oslash',249=>'uogonek',250=>'uacute',251=>'ucircumflex',252=>'udieresis',253=>'utilde',254=>'umacron',255=>'dotaccent'), - -// encoding map for: iso-8859-5 -'iso-8859-5' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',128=>'.notdef',129=>'.notdef',130=>'.notdef',131=>'.notdef',132=>'.notdef',133=>'.notdef',134=>'.notdef',135=>'.notdef',136=>'.notdef',137=>'.notdef',138=>'.notdef',139=>'.notdef',140=>'.notdef',141=>'.notdef',142=>'.notdef',143=>'.notdef',144=>'.notdef',145=>'.notdef',146=>'.notdef',147=>'.notdef',148=>'.notdef',149=>'.notdef',150=>'.notdef',151=>'.notdef',152=>'.notdef',153=>'.notdef',154=>'.notdef',155=>'.notdef',156=>'.notdef',157=>'.notdef',158=>'.notdef',159=>'.notdef',160=>'space',161=>'afii10023',162=>'afii10051',163=>'afii10052',164=>'afii10053',165=>'afii10054',166=>'afii10055',167=>'afii10056',168=>'afii10057',169=>'afii10058',170=>'afii10059',171=>'afii10060',172=>'afii10061',173=>'hyphen',174=>'afii10062',175=>'afii10145',176=>'afii10017',177=>'afii10018',178=>'afii10019',179=>'afii10020',180=>'afii10021',181=>'afii10022',182=>'afii10024',183=>'afii10025',184=>'afii10026',185=>'afii10027',186=>'afii10028',187=>'afii10029',188=>'afii10030',189=>'afii10031',190=>'afii10032',191=>'afii10033',192=>'afii10034',193=>'afii10035',194=>'afii10036',195=>'afii10037',196=>'afii10038',197=>'afii10039',198=>'afii10040',199=>'afii10041',200=>'afii10042',201=>'afii10043',202=>'afii10044',203=>'afii10045',204=>'afii10046',205=>'afii10047',206=>'afii10048',207=>'afii10049',208=>'afii10065',209=>'afii10066',210=>'afii10067',211=>'afii10068',212=>'afii10069',213=>'afii10070',214=>'afii10072',215=>'afii10073',216=>'afii10074',217=>'afii10075',218=>'afii10076',219=>'afii10077',220=>'afii10078',221=>'afii10079',222=>'afii10080',223=>'afii10081',224=>'afii10082',225=>'afii10083',226=>'afii10084',227=>'afii10085',228=>'afii10086',229=>'afii10087',230=>'afii10088',231=>'afii10089',232=>'afii10090',233=>'afii10091',234=>'afii10092',235=>'afii10093',236=>'afii10094',237=>'afii10095',238=>'afii10096',239=>'afii10097',240=>'afii61352',241=>'afii10071',242=>'afii10099',243=>'afii10100',244=>'afii10101',245=>'afii10102',246=>'afii10103',247=>'afii10104',248=>'afii10105',249=>'afii10106',250=>'afii10107',251=>'afii10108',252=>'afii10109',253=>'section',254=>'afii10110',255=>'afii10193'), - -// encoding map for: iso-8859-7 -'iso-8859-7' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',128=>'.notdef',129=>'.notdef',130=>'.notdef',131=>'.notdef',132=>'.notdef',133=>'.notdef',134=>'.notdef',135=>'.notdef',136=>'.notdef',137=>'.notdef',138=>'.notdef',139=>'.notdef',140=>'.notdef',141=>'.notdef',142=>'.notdef',143=>'.notdef',144=>'.notdef',145=>'.notdef',146=>'.notdef',147=>'.notdef',148=>'.notdef',149=>'.notdef',150=>'.notdef',151=>'.notdef',152=>'.notdef',153=>'.notdef',154=>'.notdef',155=>'.notdef',156=>'.notdef',157=>'.notdef',158=>'.notdef',159=>'.notdef',160=>'space',161=>'quoteleft',162=>'quoteright',163=>'sterling',164=>'.notdef',165=>'.notdef',166=>'brokenbar',167=>'section',168=>'dieresis',169=>'copyright',170=>'.notdef',171=>'guillemotleft',172=>'logicalnot',173=>'hyphen',174=>'.notdef',175=>'afii00208',176=>'degree',177=>'plusminus',178=>'twosuperior',179=>'threesuperior',180=>'tonos',181=>'dieresistonos',182=>'Alphatonos',183=>'periodcentered',184=>'Epsilontonos',185=>'Etatonos',186=>'Iotatonos',187=>'guillemotright',188=>'Omicrontonos',189=>'onehalf',190=>'Upsilontonos',191=>'Omegatonos',192=>'iotadieresistonos',193=>'Alpha',194=>'Beta',195=>'Gamma',196=>'Delta',197=>'Epsilon',198=>'Zeta',199=>'Eta',200=>'Theta',201=>'Iota',202=>'Kappa',203=>'Lambda',204=>'Mu',205=>'Nu',206=>'Xi',207=>'Omicron',208=>'Pi',209=>'Rho',210=>'.notdef',211=>'Sigma',212=>'Tau',213=>'Upsilon',214=>'Phi',215=>'Chi',216=>'Psi',217=>'Omega',218=>'Iotadieresis',219=>'Upsilondieresis',220=>'alphatonos',221=>'epsilontonos',222=>'etatonos',223=>'iotatonos',224=>'upsilondieresistonos',225=>'alpha',226=>'beta',227=>'gamma',228=>'delta',229=>'epsilon',230=>'zeta',231=>'eta',232=>'theta',233=>'iota',234=>'kappa',235=>'lambda',236=>'mu',237=>'nu',238=>'xi',239=>'omicron',240=>'pi',241=>'rho',242=>'sigma1',243=>'sigma',244=>'tau',245=>'upsilon',246=>'phi',247=>'chi',248=>'psi',249=>'omega',250=>'iotadieresis',251=>'upsilondieresis',252=>'omicrontonos',253=>'upsilontonos',254=>'omegatonos',255=>'.notdef'), - -// encoding map for: iso-8859-9 -'iso-8859-9' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',128=>'.notdef',129=>'.notdef',130=>'.notdef',131=>'.notdef',132=>'.notdef',133=>'.notdef',134=>'.notdef',135=>'.notdef',136=>'.notdef',137=>'.notdef',138=>'.notdef',139=>'.notdef',140=>'.notdef',141=>'.notdef',142=>'.notdef',143=>'.notdef',144=>'.notdef',145=>'.notdef',146=>'.notdef',147=>'.notdef',148=>'.notdef',149=>'.notdef',150=>'.notdef',151=>'.notdef',152=>'.notdef',153=>'.notdef',154=>'.notdef',155=>'.notdef',156=>'.notdef',157=>'.notdef',158=>'.notdef',159=>'.notdef',160=>'space',161=>'exclamdown',162=>'cent',163=>'sterling',164=>'currency',165=>'yen',166=>'brokenbar',167=>'section',168=>'dieresis',169=>'copyright',170=>'ordfeminine',171=>'guillemotleft',172=>'logicalnot',173=>'hyphen',174=>'registered',175=>'macron',176=>'degree',177=>'plusminus',178=>'twosuperior',179=>'threesuperior',180=>'acute',181=>'mu',182=>'paragraph',183=>'periodcentered',184=>'cedilla',185=>'onesuperior',186=>'ordmasculine',187=>'guillemotright',188=>'onequarter',189=>'onehalf',190=>'threequarters',191=>'questiondown',192=>'Agrave',193=>'Aacute',194=>'Acircumflex',195=>'Atilde',196=>'Adieresis',197=>'Aring',198=>'AE',199=>'Ccedilla',200=>'Egrave',201=>'Eacute',202=>'Ecircumflex',203=>'Edieresis',204=>'Igrave',205=>'Iacute',206=>'Icircumflex',207=>'Idieresis',208=>'Gbreve',209=>'Ntilde',210=>'Ograve',211=>'Oacute',212=>'Ocircumflex',213=>'Otilde',214=>'Odieresis',215=>'multiply',216=>'Oslash',217=>'Ugrave',218=>'Uacute',219=>'Ucircumflex',220=>'Udieresis',221=>'Idotaccent',222=>'Scedilla',223=>'germandbls',224=>'agrave',225=>'aacute',226=>'acircumflex',227=>'atilde',228=>'adieresis',229=>'aring',230=>'ae',231=>'ccedilla',232=>'egrave',233=>'eacute',234=>'ecircumflex',235=>'edieresis',236=>'igrave',237=>'iacute',238=>'icircumflex',239=>'idieresis',240=>'gbreve',241=>'ntilde',242=>'ograve',243=>'oacute',244=>'ocircumflex',245=>'otilde',246=>'odieresis',247=>'divide',248=>'oslash',249=>'ugrave',250=>'uacute',251=>'ucircumflex',252=>'udieresis',253=>'dotlessi',254=>'scedilla',255=>'ydieresis'), - -// encoding map for: iso-8859-11 -'iso-8859-11' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',128=>'.notdef',129=>'.notdef',130=>'.notdef',131=>'.notdef',132=>'.notdef',133=>'.notdef',134=>'.notdef',135=>'.notdef',136=>'.notdef',137=>'.notdef',138=>'.notdef',139=>'.notdef',140=>'.notdef',141=>'.notdef',142=>'.notdef',143=>'.notdef',144=>'.notdef',145=>'.notdef',146=>'.notdef',147=>'.notdef',148=>'.notdef',149=>'.notdef',150=>'.notdef',151=>'.notdef',152=>'.notdef',153=>'.notdef',154=>'.notdef',155=>'.notdef',156=>'.notdef',157=>'.notdef',158=>'.notdef',159=>'.notdef',160=>'space',161=>'kokaithai',162=>'khokhaithai',163=>'khokhuatthai',164=>'khokhwaithai',165=>'khokhonthai',166=>'khorakhangthai',167=>'ngonguthai',168=>'chochanthai',169=>'chochingthai',170=>'chochangthai',171=>'sosothai',172=>'chochoethai',173=>'yoyingthai',174=>'dochadathai',175=>'topatakthai',176=>'thothanthai',177=>'thonangmonthothai',178=>'thophuthaothai',179=>'nonenthai',180=>'dodekthai',181=>'totaothai',182=>'thothungthai',183=>'thothahanthai',184=>'thothongthai',185=>'nonuthai',186=>'bobaimaithai',187=>'poplathai',188=>'phophungthai',189=>'fofathai',190=>'phophanthai',191=>'fofanthai',192=>'phosamphaothai',193=>'momathai',194=>'yoyakthai',195=>'roruathai',196=>'ruthai',197=>'lolingthai',198=>'luthai',199=>'wowaenthai',200=>'sosalathai',201=>'sorusithai',202=>'sosuathai',203=>'hohipthai',204=>'lochulathai',205=>'oangthai',206=>'honokhukthai',207=>'paiyannoithai',208=>'saraathai',209=>'maihanakatthai',210=>'saraaathai',211=>'saraamthai',212=>'saraithai',213=>'saraiithai',214=>'sarauethai',215=>'saraueethai',216=>'sarauthai',217=>'sarauuthai',218=>'phinthuthai',219=>'.notdef',220=>'.notdef',221=>'.notdef',222=>'.notdef',223=>'bahtthai',224=>'saraethai',225=>'saraaethai',226=>'saraothai',227=>'saraaimaimuanthai',228=>'saraaimaimalaithai',229=>'lakkhangyaothai',230=>'maiyamokthai',231=>'maitaikhuthai',232=>'maiekthai',233=>'maithothai',234=>'maitrithai',235=>'maichattawathai',236=>'thanthakhatthai',237=>'nikhahitthai',238=>'yamakkanthai',239=>'fongmanthai',240=>'zerothai',241=>'onethai',242=>'twothai',243=>'threethai',244=>'fourthai',245=>'fivethai',246=>'sixthai',247=>'seventhai',248=>'eightthai',249=>'ninethai',250=>'angkhankhuthai',251=>'khomutthai',252=>'.notdef',253=>'.notdef',254=>'.notdef',255=>'.notdef'), - -// encoding map for: iso-8859-15 -'iso-8859-15' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',128=>'.notdef',129=>'.notdef',130=>'.notdef',131=>'.notdef',132=>'.notdef',133=>'.notdef',134=>'.notdef',135=>'.notdef',136=>'.notdef',137=>'.notdef',138=>'.notdef',139=>'.notdef',140=>'.notdef',141=>'.notdef',142=>'.notdef',143=>'.notdef',144=>'.notdef',145=>'.notdef',146=>'.notdef',147=>'.notdef',148=>'.notdef',149=>'.notdef',150=>'.notdef',151=>'.notdef',152=>'.notdef',153=>'.notdef',154=>'.notdef',155=>'.notdef',156=>'.notdef',157=>'.notdef',158=>'.notdef',159=>'.notdef',160=>'space',161=>'exclamdown',162=>'cent',163=>'sterling',164=>'Euro',165=>'yen',166=>'Scaron',167=>'section',168=>'scaron',169=>'copyright',170=>'ordfeminine',171=>'guillemotleft',172=>'logicalnot',173=>'hyphen',174=>'registered',175=>'macron',176=>'degree',177=>'plusminus',178=>'twosuperior',179=>'threesuperior',180=>'Zcaron',181=>'mu',182=>'paragraph',183=>'periodcentered',184=>'zcaron',185=>'onesuperior',186=>'ordmasculine',187=>'guillemotright',188=>'OE',189=>'oe',190=>'Ydieresis',191=>'questiondown',192=>'Agrave',193=>'Aacute',194=>'Acircumflex',195=>'Atilde',196=>'Adieresis',197=>'Aring',198=>'AE',199=>'Ccedilla',200=>'Egrave',201=>'Eacute',202=>'Ecircumflex',203=>'Edieresis',204=>'Igrave',205=>'Iacute',206=>'Icircumflex',207=>'Idieresis',208=>'Eth',209=>'Ntilde',210=>'Ograve',211=>'Oacute',212=>'Ocircumflex',213=>'Otilde',214=>'Odieresis',215=>'multiply',216=>'Oslash',217=>'Ugrave',218=>'Uacute',219=>'Ucircumflex',220=>'Udieresis',221=>'Yacute',222=>'Thorn',223=>'germandbls',224=>'agrave',225=>'aacute',226=>'acircumflex',227=>'atilde',228=>'adieresis',229=>'aring',230=>'ae',231=>'ccedilla',232=>'egrave',233=>'eacute',234=>'ecircumflex',235=>'edieresis',236=>'igrave',237=>'iacute',238=>'icircumflex',239=>'idieresis',240=>'eth',241=>'ntilde',242=>'ograve',243=>'oacute',244=>'ocircumflex',245=>'otilde',246=>'odieresis',247=>'divide',248=>'oslash',249=>'ugrave',250=>'uacute',251=>'ucircumflex',252=>'udieresis',253=>'yacute',254=>'thorn',255=>'ydieresis'), - -// encoding map for: iso-8859-16 -'iso-8859-16' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',128=>'.notdef',129=>'.notdef',130=>'.notdef',131=>'.notdef',132=>'.notdef',133=>'.notdef',134=>'.notdef',135=>'.notdef',136=>'.notdef',137=>'.notdef',138=>'.notdef',139=>'.notdef',140=>'.notdef',141=>'.notdef',142=>'.notdef',143=>'.notdef',144=>'.notdef',145=>'.notdef',146=>'.notdef',147=>'.notdef',148=>'.notdef',149=>'.notdef',150=>'.notdef',151=>'.notdef',152=>'.notdef',153=>'.notdef',154=>'.notdef',155=>'.notdef',156=>'.notdef',157=>'.notdef',158=>'.notdef',159=>'.notdef',160=>'space',161=>'Aogonek',162=>'aogonek',163=>'Lslash',164=>'Euro',165=>'quotedblbase',166=>'Scaron',167=>'section',168=>'scaron',169=>'copyright',170=>'Scommaaccent',171=>'guillemotleft',172=>'Zacute',173=>'hyphen',174=>'zacute',175=>'Zdotaccent',176=>'degree',177=>'plusminus',178=>'Ccaron',179=>'lslash',180=>'Zcaron',181=>'quotedblright',182=>'paragraph',183=>'periodcentered',184=>'zcaron',185=>'ccaron',186=>'scommaaccent',187=>'guillemotright',188=>'OE',189=>'oe',190=>'Ydieresis',191=>'zdotaccent',192=>'Agrave',193=>'Aacute',194=>'Acircumflex',195=>'Abreve',196=>'Adieresis',197=>'Cacute',198=>'AE',199=>'Ccedilla',200=>'Egrave',201=>'Eacute',202=>'Ecircumflex',203=>'Edieresis',204=>'Igrave',205=>'Iacute',206=>'Icircumflex',207=>'Idieresis',208=>'Dcroat',209=>'Nacute',210=>'Ograve',211=>'Oacute',212=>'Ocircumflex',213=>'Ohungarumlaut',214=>'Odieresis',215=>'Sacute',216=>'Uhungarumlaut',217=>'Ugrave',218=>'Uacute',219=>'Ucircumflex',220=>'Udieresis',221=>'Eogonek',222=>'Tcommaaccent',223=>'germandbls',224=>'agrave',225=>'aacute',226=>'acircumflex',227=>'abreve',228=>'adieresis',229=>'cacute',230=>'ae',231=>'ccedilla',232=>'egrave',233=>'eacute',234=>'ecircumflex',235=>'edieresis',236=>'igrave',237=>'iacute',238=>'icircumflex',239=>'idieresis',240=>'dcroat',241=>'nacute',242=>'ograve',243=>'oacute',244=>'ocircumflex',245=>'ohungarumlaut',246=>'odieresis',247=>'sacute',248=>'uhungarumlaut',249=>'ugrave',250=>'uacute',251=>'ucircumflex',252=>'udieresis',253=>'eogonek',254=>'tcommaaccent',255=>'ydieresis'), - -// encoding map for: koi8-r -'koi8-r' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',128=>'SF100000',129=>'SF110000',130=>'SF010000',131=>'SF030000',132=>'SF020000',133=>'SF040000',134=>'SF080000',135=>'SF090000',136=>'SF060000',137=>'SF070000',138=>'SF050000',139=>'upblock',140=>'dnblock',141=>'block',142=>'lfblock',143=>'rtblock',144=>'ltshade',145=>'shade',146=>'dkshade',147=>'integraltp',148=>'filledbox',149=>'periodcentered',150=>'radical',151=>'approxequal',152=>'lessequal',153=>'greaterequal',154=>'space',155=>'integralbt',156=>'degree',157=>'twosuperior',158=>'periodcentered',159=>'divide',160=>'SF430000',161=>'SF240000',162=>'SF510000',163=>'afii10071',164=>'SF520000',165=>'SF390000',166=>'SF220000',167=>'SF210000',168=>'SF250000',169=>'SF500000',170=>'SF490000',171=>'SF380000',172=>'SF280000',173=>'SF270000',174=>'SF260000',175=>'SF360000',176=>'SF370000',177=>'SF420000',178=>'SF190000',179=>'afii10023',180=>'SF200000',181=>'SF230000',182=>'SF470000',183=>'SF480000',184=>'SF410000',185=>'SF450000',186=>'SF460000',187=>'SF400000',188=>'SF540000',189=>'SF530000',190=>'SF440000',191=>'copyright',192=>'afii10096',193=>'afii10065',194=>'afii10066',195=>'afii10088',196=>'afii10069',197=>'afii10070',198=>'afii10086',199=>'afii10068',200=>'afii10087',201=>'afii10074',202=>'afii10075',203=>'afii10076',204=>'afii10077',205=>'afii10078',206=>'afii10079',207=>'afii10080',208=>'afii10081',209=>'afii10097',210=>'afii10082',211=>'afii10083',212=>'afii10084',213=>'afii10085',214=>'afii10072',215=>'afii10067',216=>'afii10094',217=>'afii10093',218=>'afii10073',219=>'afii10090',220=>'afii10095',221=>'afii10091',222=>'afii10089',223=>'afii10092',224=>'afii10048',225=>'afii10017',226=>'afii10018',227=>'afii10040',228=>'afii10021',229=>'afii10022',230=>'afii10038',231=>'afii10020',232=>'afii10039',233=>'afii10026',234=>'afii10027',235=>'afii10028',236=>'afii10029',237=>'afii10030',238=>'afii10031',239=>'afii10032',240=>'afii10033',241=>'afii10049',242=>'afii10034',243=>'afii10035',244=>'afii10036',245=>'afii10037',246=>'afii10024',247=>'afii10019',248=>'afii10046',249=>'afii10045',250=>'afii10025',251=>'afii10042',252=>'afii10047',253=>'afii10043',254=>'afii10041',255=>'afii10044'), - -// encoding map for: koi8-u -'koi8-u' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',128=>'SF100000',129=>'SF110000',130=>'SF010000',131=>'SF030000',132=>'SF020000',133=>'SF040000',134=>'SF080000',135=>'SF090000',136=>'SF060000',137=>'SF070000',138=>'SF050000',139=>'upblock',140=>'dnblock',141=>'block',142=>'lfblock',143=>'rtblock',144=>'ltshade',145=>'shade',146=>'dkshade',147=>'integraltp',148=>'filledbox',149=>'bullet',150=>'radical',151=>'approxequal',152=>'lessequal',153=>'greaterequal',154=>'space',155=>'integralbt',156=>'degree',157=>'twosuperior',158=>'periodcentered',159=>'divide',160=>'SF430000',161=>'SF240000',162=>'SF510000',163=>'afii10071',164=>'afii10101',165=>'SF390000',166=>'afii10103',167=>'afii10104',168=>'SF250000',169=>'SF500000',170=>'SF490000',171=>'SF380000',172=>'SF280000',173=>'afii10098',174=>'SF260000',175=>'SF360000',176=>'SF370000',177=>'SF420000',178=>'SF190000',179=>'afii10023',180=>'afii10053',181=>'SF230000',182=>'afii10055',183=>'afii10056',184=>'SF410000',185=>'SF450000',186=>'SF460000',187=>'SF400000',188=>'SF540000',189=>'afii10050',190=>'SF440000',191=>'copyright',192=>'afii10096',193=>'afii10065',194=>'afii10066',195=>'afii10088',196=>'afii10069',197=>'afii10070',198=>'afii10086',199=>'afii10068',200=>'afii10087',201=>'afii10074',202=>'afii10075',203=>'afii10076',204=>'afii10077',205=>'afii10078',206=>'afii10079',207=>'afii10080',208=>'afii10081',209=>'afii10097',210=>'afii10082',211=>'afii10083',212=>'afii10084',213=>'afii10085',214=>'afii10072',215=>'afii10067',216=>'afii10094',217=>'afii10093',218=>'afii10073',219=>'afii10090',220=>'afii10095',221=>'afii10091',222=>'afii10089',223=>'afii10092',224=>'afii10048',225=>'afii10017',226=>'afii10018',227=>'afii10040',228=>'afii10021',229=>'afii10022',230=>'afii10038',231=>'afii10020',232=>'afii10039',233=>'afii10026',234=>'afii10027',235=>'afii10028',236=>'afii10029',237=>'afii10030',238=>'afii10031',239=>'afii10032',240=>'afii10033',241=>'afii10049',242=>'afii10034',243=>'afii10035',244=>'afii10036',245=>'afii10037',246=>'afii10024',247=>'afii10019',248=>'afii10046',249=>'afii10045',250=>'afii10025',251=>'afii10042',252=>'afii10047',253=>'afii10043',254=>'afii10041',255=>'afii10044'), - -// encoding map for: symbol -'symbol' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',32=>'space',33=>'exclam',34=>'universal',35=>'numbersign',36=>'existential',37=>'percent',38=>'ampersand',39=>'suchthat',40=>'parenleft',41=>'parenright',42=>'asteriskmath',43=>'plus',44=>'comma',45=>'minus',46=>'period',47=>'slash',48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',64=>'congruent',65=>'Alpha',66=>'Beta',67=>'Chi',68=>'Delta',69=>'Epsilon',70=>'Phi',71=>'Gamma',72=>'Eta',73=>'Iota',74=>'theta1',75=>'Kappa',76=>'Lambda',77=>'Mu',78=>'Nu',79=>'Omicron',80=>'Pi',81=>'Theta',82=>'Rho',83=>'Sigma',84=>'Tau',85=>'Upsilon',86=>'sigma1',87=>'Omega',88=>'Xi',89=>'Psi',90=>'Zeta',91=>'bracketleft',92=>'therefore',93=>'bracketright',94=>'perpendicular',95=>'underscore',96=>'radicalex',97=>'alpha',98=>'beta',99=>'chi',100=>'delta',101=>'epsilon',102=>'phi',103=>'gamma',104=>'eta',105=>'iota',106=>'phi1',107=>'kappa',108=>'lambda',109=>'mu',110=>'nu',111=>'omicron',112=>'pi',113=>'theta',114=>'rho',115=>'sigma',116=>'tau',117=>'upsilon',118=>'omega1',119=>'omega',120=>'xi',121=>'psi',122=>'zeta',123=>'braceleft',124=>'bar',125=>'braceright',126=>'similar',127=>'.notdef',128=>'.notdef',129=>'.notdef',130=>'.notdef',131=>'.notdef',132=>'.notdef',133=>'.notdef',134=>'.notdef',135=>'.notdef',136=>'.notdef',137=>'.notdef',138=>'.notdef',139=>'.notdef',140=>'.notdef',141=>'.notdef',142=>'.notdef',143=>'.notdef',144=>'.notdef',145=>'.notdef',146=>'.notdef',147=>'.notdef',148=>'.notdef',149=>'.notdef',150=>'.notdef',151=>'.notdef',152=>'.notdef',153=>'.notdef',154=>'.notdef',155=>'.notdef',156=>'.notdef',157=>'.notdef',158=>'.notdef',159=>'.notdef',160=>'Euro',161=>'Upsilon1',162=>'minute',163=>'lessequal',164=>'fraction',165=>'infinity',166=>'florin',167=>'club',168=>'diamond',169=>'heart',170=>'spade',171=>'arrowboth',172=>'arrowleft',173=>'arrowup',174=>'arrowright',175=>'arrowdown',176=>'degree',177=>'plusminus',178=>'second',179=>'greaterequal',180=>'multiply',181=>'proportional',182=>'partialdiff',183=>'bullet',184=>'divide',185=>'notequal',186=>'equivalence',187=>'approxequal',188=>'ellipsis',189=>'arrowvertex',190=>'arrowhorizex',191=>'carriagereturn',192=>'aleph',193=>'Ifraktur',194=>'Rfraktur',195=>'weierstrass',196=>'circlemultiply',197=>'circleplus',198=>'emptyset',199=>'intersection',200=>'union',201=>'propersuperset',202=>'reflexsuperset',203=>'notsubset',204=>'propersubset',205=>'reflexsubset',206=>'element',207=>'notelement',208=>'angle',209=>'gradient',210=>'registerserif',211=>'copyrightserif',212=>'trademarkserif',213=>'product',214=>'radical',215=>'dotmath',216=>'logicalnot',217=>'logicaland',218=>'logicalor',219=>'arrowdblboth',220=>'arrowdblleft',221=>'arrowdblup',222=>'arrowdblright',223=>'arrowdbldown',224=>'lozenge',225=>'angleleft',226=>'registersans',227=>'copyrightsans',228=>'trademarksans',229=>'summation',230=>'parenlefttp',231=>'parenleftex',232=>'parenleftbt',233=>'bracketlefttp',234=>'bracketleftex',235=>'bracketleftbt',236=>'bracelefttp',237=>'braceleftmid',238=>'braceleftbt',239=>'braceex',240=>'.notdef',241=>'angleright',242=>'integral',243=>'integraltp',244=>'integralex',245=>'integralbt',246=>'parenrighttp',247=>'parenrightex',248=>'parenrightbt',249=>'bracketrighttp',250=>'bracketrightex',251=>'bracketrightbt',252=>'bracerighttp',253=>'bracerightmid',254=>'bracerightbt',255=>'.notdef',1226=>'registered',1227=>'copyright',1228=>'trademark') - -); // end of encoding maps - -/** - * ToUnicode map for Identity-H stream - * @public static - */ -public static $uni_identity_h = "/CIDInit /ProcSet findresource begin\n12 dict begin\nbegincmap\n/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> def\n/CMapName /Adobe-Identity-UCS def\n/CMapType 2 def\n/WMode 0 def\n1 begincodespacerange\n<0000> \nendcodespacerange\n100 beginbfrange\n<0000> <00ff> <0000>\n<0100> <01ff> <0100>\n<0200> <02ff> <0200>\n<0300> <03ff> <0300>\n<0400> <04ff> <0400>\n<0500> <05ff> <0500>\n<0600> <06ff> <0600>\n<0700> <07ff> <0700>\n<0800> <08ff> <0800>\n<0900> <09ff> <0900>\n<0a00> <0aff> <0a00>\n<0b00> <0bff> <0b00>\n<0c00> <0cff> <0c00>\n<0d00> <0dff> <0d00>\n<0e00> <0eff> <0e00>\n<0f00> <0fff> <0f00>\n<1000> <10ff> <1000>\n<1100> <11ff> <1100>\n<1200> <12ff> <1200>\n<1300> <13ff> <1300>\n<1400> <14ff> <1400>\n<1500> <15ff> <1500>\n<1600> <16ff> <1600>\n<1700> <17ff> <1700>\n<1800> <18ff> <1800>\n<1900> <19ff> <1900>\n<1a00> <1aff> <1a00>\n<1b00> <1bff> <1b00>\n<1c00> <1cff> <1c00>\n<1d00> <1dff> <1d00>\n<1e00> <1eff> <1e00>\n<1f00> <1fff> <1f00>\n<2000> <20ff> <2000>\n<2100> <21ff> <2100>\n<2200> <22ff> <2200>\n<2300> <23ff> <2300>\n<2400> <24ff> <2400>\n<2500> <25ff> <2500>\n<2600> <26ff> <2600>\n<2700> <27ff> <2700>\n<2800> <28ff> <2800>\n<2900> <29ff> <2900>\n<2a00> <2aff> <2a00>\n<2b00> <2bff> <2b00>\n<2c00> <2cff> <2c00>\n<2d00> <2dff> <2d00>\n<2e00> <2eff> <2e00>\n<2f00> <2fff> <2f00>\n<3000> <30ff> <3000>\n<3100> <31ff> <3100>\n<3200> <32ff> <3200>\n<3300> <33ff> <3300>\n<3400> <34ff> <3400>\n<3500> <35ff> <3500>\n<3600> <36ff> <3600>\n<3700> <37ff> <3700>\n<3800> <38ff> <3800>\n<3900> <39ff> <3900>\n<3a00> <3aff> <3a00>\n<3b00> <3bff> <3b00>\n<3c00> <3cff> <3c00>\n<3d00> <3dff> <3d00>\n<3e00> <3eff> <3e00>\n<3f00> <3fff> <3f00>\n<4000> <40ff> <4000>\n<4100> <41ff> <4100>\n<4200> <42ff> <4200>\n<4300> <43ff> <4300>\n<4400> <44ff> <4400>\n<4500> <45ff> <4500>\n<4600> <46ff> <4600>\n<4700> <47ff> <4700>\n<4800> <48ff> <4800>\n<4900> <49ff> <4900>\n<4a00> <4aff> <4a00>\n<4b00> <4bff> <4b00>\n<4c00> <4cff> <4c00>\n<4d00> <4dff> <4d00>\n<4e00> <4eff> <4e00>\n<4f00> <4fff> <4f00>\n<5000> <50ff> <5000>\n<5100> <51ff> <5100>\n<5200> <52ff> <5200>\n<5300> <53ff> <5300>\n<5400> <54ff> <5400>\n<5500> <55ff> <5500>\n<5600> <56ff> <5600>\n<5700> <57ff> <5700>\n<5800> <58ff> <5800>\n<5900> <59ff> <5900>\n<5a00> <5aff> <5a00>\n<5b00> <5bff> <5b00>\n<5c00> <5cff> <5c00>\n<5d00> <5dff> <5d00>\n<5e00> <5eff> <5e00>\n<5f00> <5fff> <5f00>\n<6000> <60ff> <6000>\n<6100> <61ff> <6100>\n<6200> <62ff> <6200>\n<6300> <63ff> <6300>\nendbfrange\n100 beginbfrange\n<6400> <64ff> <6400>\n<6500> <65ff> <6500>\n<6600> <66ff> <6600>\n<6700> <67ff> <6700>\n<6800> <68ff> <6800>\n<6900> <69ff> <6900>\n<6a00> <6aff> <6a00>\n<6b00> <6bff> <6b00>\n<6c00> <6cff> <6c00>\n<6d00> <6dff> <6d00>\n<6e00> <6eff> <6e00>\n<6f00> <6fff> <6f00>\n<7000> <70ff> <7000>\n<7100> <71ff> <7100>\n<7200> <72ff> <7200>\n<7300> <73ff> <7300>\n<7400> <74ff> <7400>\n<7500> <75ff> <7500>\n<7600> <76ff> <7600>\n<7700> <77ff> <7700>\n<7800> <78ff> <7800>\n<7900> <79ff> <7900>\n<7a00> <7aff> <7a00>\n<7b00> <7bff> <7b00>\n<7c00> <7cff> <7c00>\n<7d00> <7dff> <7d00>\n<7e00> <7eff> <7e00>\n<7f00> <7fff> <7f00>\n<8000> <80ff> <8000>\n<8100> <81ff> <8100>\n<8200> <82ff> <8200>\n<8300> <83ff> <8300>\n<8400> <84ff> <8400>\n<8500> <85ff> <8500>\n<8600> <86ff> <8600>\n<8700> <87ff> <8700>\n<8800> <88ff> <8800>\n<8900> <89ff> <8900>\n<8a00> <8aff> <8a00>\n<8b00> <8bff> <8b00>\n<8c00> <8cff> <8c00>\n<8d00> <8dff> <8d00>\n<8e00> <8eff> <8e00>\n<8f00> <8fff> <8f00>\n<9000> <90ff> <9000>\n<9100> <91ff> <9100>\n<9200> <92ff> <9200>\n<9300> <93ff> <9300>\n<9400> <94ff> <9400>\n<9500> <95ff> <9500>\n<9600> <96ff> <9600>\n<9700> <97ff> <9700>\n<9800> <98ff> <9800>\n<9900> <99ff> <9900>\n<9a00> <9aff> <9a00>\n<9b00> <9bff> <9b00>\n<9c00> <9cff> <9c00>\n<9d00> <9dff> <9d00>\n<9e00> <9eff> <9e00>\n<9f00> <9fff> <9f00>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \nendbfrange\n56 beginbfrange\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \nendbfrange\nendcmap\nCMapName currentdict /CMap defineresource pop\nend\nend"; - -} // END OF TCPDF_FONT_DATA CLASS - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/tcpdf_fonts.php b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/tcpdf_fonts.php deleted file mode 100644 index 218fb6d..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/tcpdf_fonts.php +++ /dev/null @@ -1,2654 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description :Font methods for TCPDF library. -// -//============================================================+ - -/** - * @file - * Unicode data and font methods for TCPDF library. - * @author Nicola Asuni - * @package com.tecnick.tcpdf - */ - -/** - * @class TCPDF_FONTS - * Font methods for TCPDF library. - * @package com.tecnick.tcpdf - * @version 1.1.0 - * @author Nicola Asuni - info@tecnick.com - */ -class TCPDF_FONTS { - - /** - * Static cache used for speed up uniord performances - * @protected - */ - protected static $cache_uniord = array(); - - /** - * Convert and add the selected TrueType or Type1 font to the fonts folder (that must be writeable). - * @param $fontfile (string) Font file (full path). - * @param $fonttype (string) Font type. Leave empty for autodetect mode. Valid values are: TrueTypeUnicode, TrueType, Type1, CID0JP = CID-0 Japanese, CID0KR = CID-0 Korean, CID0CS = CID-0 Chinese Simplified, CID0CT = CID-0 Chinese Traditional. - * @param $enc (string) Name of the encoding table to use. Leave empty for default mode. Omit this parameter for TrueType Unicode and symbolic fonts like Symbol or ZapfDingBats. - * @param $flags (int) Unsigned 32-bit integer containing flags specifying various characteristics of the font (PDF32000:2008 - 9.8.2 Font Descriptor Flags): +1 for fixed font; +4 for symbol or +32 for non-symbol; +64 for italic. Fixed and Italic mode are generally autodetected so you have to set it to 32 = non-symbolic font (default) or 4 = symbolic font. - * @param $outpath (string) Output path for generated font files (must be writeable by the web server). Leave empty for default font folder. - * @param $platid (int) Platform ID for CMAP table to extract (when building a Unicode font for Windows this value should be 3, for Macintosh should be 1). - * @param $encid (int) Encoding ID for CMAP table to extract (when building a Unicode font for Windows this value should be 1, for Macintosh should be 0). When Platform ID is 3, legal values for Encoding ID are: 0=Symbol, 1=Unicode, 2=ShiftJIS, 3=PRC, 4=Big5, 5=Wansung, 6=Johab, 7=Reserved, 8=Reserved, 9=Reserved, 10=UCS-4. - * @param $addcbbox (boolean) If true includes the character bounding box information on the php font file. - * @param $link (boolean) If true link to system font instead of copying the font data (not transportable) - Note: do not work with Type1 fonts. - * @return (string) TCPDF font name or boolean false in case of error. - * @author Nicola Asuni - * @since 5.9.123 (2010-09-30) - * @public static - */ - public static function addTTFfont($fontfile, $fonttype='', $enc='', $flags=32, $outpath='', $platid=3, $encid=1, $addcbbox=false, $link=false) { - if (!TCPDF_STATIC::file_exists($fontfile)) { - // Could not find file - return false; - } - // font metrics - $fmetric = array(); - // build new font name for TCPDF compatibility - $font_path_parts = pathinfo($fontfile); - if (!isset($font_path_parts['filename'])) { - $font_path_parts['filename'] = substr($font_path_parts['basename'], 0, -(strlen($font_path_parts['extension']) + 1)); - } - $font_name = strtolower($font_path_parts['filename']); - $font_name = preg_replace('/[^a-z0-9_]/', '', $font_name); - $search = array('bold', 'oblique', 'italic', 'regular'); - $replace = array('b', 'i', 'i', ''); - $font_name = str_replace($search, $replace, $font_name); - if (empty($font_name)) { - // set generic name - $font_name = 'tcpdffont'; - } - // set output path - if (empty($outpath)) { - $outpath = self::_getfontpath(); - } - // check if this font already exist - if (@TCPDF_STATIC::file_exists($outpath.$font_name.'.php')) { - // this font already exist (delete it from fonts folder to rebuild it) - return $font_name; - } - $fmetric['file'] = $font_name; - $fmetric['ctg'] = $font_name.'.ctg.z'; - // get font data - $font = file_get_contents($fontfile); - $fmetric['originalsize'] = strlen($font); - // autodetect font type - if (empty($fonttype)) { - if (TCPDF_STATIC::_getULONG($font, 0) == 0x10000) { - // True Type (Unicode or not) - $fonttype = 'TrueTypeUnicode'; - } elseif (substr($font, 0, 4) == 'OTTO') { - // Open Type (Unicode or not) - //Unsupported font format: OpenType with CFF data - return false; - } else { - // Type 1 - $fonttype = 'Type1'; - } - } - // set font type - switch ($fonttype) { - case 'CID0CT': - case 'CID0CS': - case 'CID0KR': - case 'CID0JP': { - $fmetric['type'] = 'cidfont0'; - break; - } - case 'Type1': { - $fmetric['type'] = 'Type1'; - if (empty($enc) AND (($flags & 4) == 0)) { - $enc = 'cp1252'; - } - break; - } - case 'TrueType': { - $fmetric['type'] = 'TrueType'; - break; - } - case 'TrueTypeUnicode': - default: { - $fmetric['type'] = 'TrueTypeUnicode'; - break; - } - } - // set encoding maps (if any) - $fmetric['enc'] = preg_replace('/[^A-Za-z0-9_\-]/', '', $enc); - $fmetric['diff'] = ''; - if (($fmetric['type'] == 'TrueType') OR ($fmetric['type'] == 'Type1')) { - if (!empty($enc) AND ($enc != 'cp1252') AND isset(TCPDF_FONT_DATA::$encmap[$enc])) { - // build differences from reference encoding - $enc_ref = TCPDF_FONT_DATA::$encmap['cp1252']; - $enc_target = TCPDF_FONT_DATA::$encmap[$enc]; - $last = 0; - for ($i = 32; $i <= 255; ++$i) { - if ($enc_target[$i] != $enc_ref[$i]) { - if ($i != ($last + 1)) { - $fmetric['diff'] .= $i.' '; - } - $last = $i; - $fmetric['diff'] .= '/'.$enc_target[$i].' '; - } - } - } - } - // parse the font by type - if ($fmetric['type'] == 'Type1') { - // ---------- TYPE 1 ---------- - // read first segment - $a = unpack('Cmarker/Ctype/Vsize', substr($font, 0, 6)); - if ($a['marker'] != 128) { - // Font file is not a valid binary Type1 - return false; - } - $fmetric['size1'] = $a['size']; - $data = substr($font, 6, $fmetric['size1']); - // read second segment - $a = unpack('Cmarker/Ctype/Vsize', substr($font, (6 + $fmetric['size1']), 6)); - if ($a['marker'] != 128) { - // Font file is not a valid binary Type1 - return false; - } - $fmetric['size2'] = $a['size']; - $encrypted = substr($font, (12 + $fmetric['size1']), $fmetric['size2']); - $data .= $encrypted; - // store compressed font - $fmetric['file'] .= '.z'; - $fp = TCPDF_STATIC::fopenLocal($outpath.$fmetric['file'], 'wb'); - fwrite($fp, gzcompress($data)); - fclose($fp); - // get font info - $fmetric['Flags'] = $flags; - preg_match ('#/FullName[\s]*\(([^\)]*)#', $font, $matches); - $fmetric['name'] = preg_replace('/[^a-zA-Z0-9_\-]/', '', $matches[1]); - preg_match('#/FontBBox[\s]*{([^}]*)#', $font, $matches); - $fmetric['bbox'] = trim($matches[1]); - $bv = explode(' ', $fmetric['bbox']); - $fmetric['Ascent'] = intval($bv[3]); - $fmetric['Descent'] = intval($bv[1]); - preg_match('#/ItalicAngle[\s]*([0-9\+\-]*)#', $font, $matches); - $fmetric['italicAngle'] = intval($matches[1]); - if ($fmetric['italicAngle'] != 0) { - $fmetric['Flags'] |= 64; - } - preg_match('#/UnderlinePosition[\s]*([0-9\+\-]*)#', $font, $matches); - $fmetric['underlinePosition'] = intval($matches[1]); - preg_match('#/UnderlineThickness[\s]*([0-9\+\-]*)#', $font, $matches); - $fmetric['underlineThickness'] = intval($matches[1]); - preg_match('#/isFixedPitch[\s]*([^\s]*)#', $font, $matches); - if ($matches[1] == 'true') { - $fmetric['Flags'] |= 1; - } - // get internal map - $imap = array(); - if (preg_match_all('#dup[\s]([0-9]+)[\s]*/([^\s]*)[\s]put#sU', $font, $fmap, PREG_SET_ORDER) > 0) { - foreach ($fmap as $v) { - $imap[$v[2]] = $v[1]; - } - } - // decrypt eexec encrypted part - $r = 55665; // eexec encryption constant - $c1 = 52845; - $c2 = 22719; - $elen = strlen($encrypted); - $eplain = ''; - for ($i = 0; $i < $elen; ++$i) { - $chr = ord($encrypted[$i]); - $eplain .= chr($chr ^ ($r >> 8)); - $r = ((($chr + $r) * $c1 + $c2) % 65536); - } - if (preg_match('#/ForceBold[\s]*([^\s]*)#', $eplain, $matches) > 0) { - if ($matches[1] == 'true') { - $fmetric['Flags'] |= 0x40000; - } - } - if (preg_match('#/StdVW[\s]*\[([^\]]*)#', $eplain, $matches) > 0) { - $fmetric['StemV'] = intval($matches[1]); - } else { - $fmetric['StemV'] = 70; - } - if (preg_match('#/StdHW[\s]*\[([^\]]*)#', $eplain, $matches) > 0) { - $fmetric['StemH'] = intval($matches[1]); - } else { - $fmetric['StemH'] = 30; - } - if (preg_match('#/BlueValues[\s]*\[([^\]]*)#', $eplain, $matches) > 0) { - $bv = explode(' ', $matches[1]); - if (count($bv) >= 6) { - $v1 = intval($bv[2]); - $v2 = intval($bv[4]); - if ($v1 <= $v2) { - $fmetric['XHeight'] = $v1; - $fmetric['CapHeight'] = $v2; - } else { - $fmetric['XHeight'] = $v2; - $fmetric['CapHeight'] = $v1; - } - } else { - $fmetric['XHeight'] = 450; - $fmetric['CapHeight'] = 700; - } - } else { - $fmetric['XHeight'] = 450; - $fmetric['CapHeight'] = 700; - } - // get the number of random bytes at the beginning of charstrings - if (preg_match('#/lenIV[\s]*([0-9]*)#', $eplain, $matches) > 0) { - $lenIV = intval($matches[1]); - } else { - $lenIV = 4; - } - $fmetric['Leading'] = 0; - // get charstring data - $eplain = substr($eplain, (strpos($eplain, '/CharStrings') + 1)); - preg_match_all('#/([A-Za-z0-9\.]*)[\s][0-9]+[\s]RD[\s](.*)[\s]ND#sU', $eplain, $matches, PREG_SET_ORDER); - if (!empty($enc) AND isset(TCPDF_FONT_DATA::$encmap[$enc])) { - $enc_map = TCPDF_FONT_DATA::$encmap[$enc]; - } else { - $enc_map = false; - } - $fmetric['cw'] = ''; - $fmetric['MaxWidth'] = 0; - $cwidths = array(); - foreach ($matches as $k => $v) { - $cid = 0; - if (isset($imap[$v[1]])) { - $cid = $imap[$v[1]]; - } elseif ($enc_map !== false) { - $cid = array_search($v[1], $enc_map); - if ($cid === false) { - $cid = 0; - } elseif ($cid > 1000) { - $cid -= 1000; - } - } - // decrypt charstring encrypted part - $r = 4330; // charstring encryption constant - $c1 = 52845; - $c2 = 22719; - $cd = $v[2]; - $clen = strlen($cd); - $ccom = array(); - for ($i = 0; $i < $clen; ++$i) { - $chr = ord($cd[$i]); - $ccom[] = ($chr ^ ($r >> 8)); - $r = ((($chr + $r) * $c1 + $c2) % 65536); - } - // decode numbers - $cdec = array(); - $ck = 0; - $i = $lenIV; - while ($i < $clen) { - if ($ccom[$i] < 32) { - $cdec[$ck] = $ccom[$i]; - if (($ck > 0) AND ($cdec[$ck] == 13)) { - // hsbw command: update width - $cwidths[$cid] = $cdec[($ck - 1)]; - } - ++$i; - } elseif (($ccom[$i] >= 32) AND ($ccom[$i] <= 246)) { - $cdec[$ck] = ($ccom[$i] - 139); - ++$i; - } elseif (($ccom[$i] >= 247) AND ($ccom[$i] <= 250)) { - $cdec[$ck] = ((($ccom[$i] - 247) * 256) + $ccom[($i + 1)] + 108); - $i += 2; - } elseif (($ccom[$i] >= 251) AND ($ccom[$i] <= 254)) { - $cdec[$ck] = ((-($ccom[$i] - 251) * 256) - $ccom[($i + 1)] - 108); - $i += 2; - } elseif ($ccom[$i] == 255) { - $sval = chr($ccom[($i + 1)]).chr($ccom[($i + 2)]).chr($ccom[($i + 3)]).chr($ccom[($i + 4)]); - $vsval = unpack('li', $sval); - $cdec[$ck] = $vsval['i']; - $i += 5; - } - ++$ck; - } - } // end for each matches - $fmetric['MissingWidth'] = $cwidths[0]; - $fmetric['MaxWidth'] = $fmetric['MissingWidth']; - $fmetric['AvgWidth'] = 0; - // set chars widths - for ($cid = 0; $cid <= 255; ++$cid) { - if (isset($cwidths[$cid])) { - if ($cwidths[$cid] > $fmetric['MaxWidth']) { - $fmetric['MaxWidth'] = $cwidths[$cid]; - } - $fmetric['AvgWidth'] += $cwidths[$cid]; - $fmetric['cw'] .= ','.$cid.'=>'.$cwidths[$cid]; - } else { - $fmetric['cw'] .= ','.$cid.'=>'.$fmetric['MissingWidth']; - } - } - $fmetric['AvgWidth'] = round($fmetric['AvgWidth'] / count($cwidths)); - } else { - // ---------- TRUE TYPE ---------- - $offset = 0; // offset position of the font data - if (TCPDF_STATIC::_getULONG($font, $offset) != 0x10000) { - // sfnt version must be 0x00010000 for TrueType version 1.0. - return false; - } - if ($fmetric['type'] != 'cidfont0') { - if ($link) { - // creates a symbolic link to the existing font - symlink($fontfile, $outpath.$fmetric['file']); - } else { - // store compressed font - $fmetric['file'] .= '.z'; - $fp = TCPDF_STATIC::fopenLocal($outpath.$fmetric['file'], 'wb'); - fwrite($fp, gzcompress($font)); - fclose($fp); - } - } - $offset += 4; - // get number of tables - $numTables = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - // skip searchRange, entrySelector and rangeShift - $offset += 6; - // tables array - $table = array(); - // ---------- get tables ---------- - for ($i = 0; $i < $numTables; ++$i) { - // get table info - $tag = substr($font, $offset, 4); - $offset += 4; - $table[$tag] = array(); - $table[$tag]['checkSum'] = TCPDF_STATIC::_getULONG($font, $offset); - $offset += 4; - $table[$tag]['offset'] = TCPDF_STATIC::_getULONG($font, $offset); - $offset += 4; - $table[$tag]['length'] = TCPDF_STATIC::_getULONG($font, $offset); - $offset += 4; - } - // check magicNumber - $offset = $table['head']['offset'] + 12; - if (TCPDF_STATIC::_getULONG($font, $offset) != 0x5F0F3CF5) { - // magicNumber must be 0x5F0F3CF5 - return false; - } - $offset += 4; - $offset += 2; // skip flags - // get FUnits - $fmetric['unitsPerEm'] = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - // units ratio constant - $urk = (1000 / $fmetric['unitsPerEm']); - $offset += 16; // skip created, modified - $xMin = round(TCPDF_STATIC::_getFWORD($font, $offset) * $urk); - $offset += 2; - $yMin = round(TCPDF_STATIC::_getFWORD($font, $offset) * $urk); - $offset += 2; - $xMax = round(TCPDF_STATIC::_getFWORD($font, $offset) * $urk); - $offset += 2; - $yMax = round(TCPDF_STATIC::_getFWORD($font, $offset) * $urk); - $offset += 2; - $fmetric['bbox'] = ''.$xMin.' '.$yMin.' '.$xMax.' '.$yMax.''; - $macStyle = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - // PDF font flags - $fmetric['Flags'] = $flags; - if (($macStyle & 2) == 2) { - // italic flag - $fmetric['Flags'] |= 64; - } - // get offset mode (indexToLocFormat : 0 = short, 1 = long) - $offset = $table['head']['offset'] + 50; - $short_offset = (TCPDF_STATIC::_getSHORT($font, $offset) == 0); - $offset += 2; - // get the offsets to the locations of the glyphs in the font, relative to the beginning of the glyphData table - $indexToLoc = array(); - $offset = $table['loca']['offset']; - if ($short_offset) { - // short version - $tot_num_glyphs = floor($table['loca']['length'] / 2); // numGlyphs + 1 - for ($i = 0; $i < $tot_num_glyphs; ++$i) { - $indexToLoc[$i] = TCPDF_STATIC::_getUSHORT($font, $offset) * 2; - if (isset($indexToLoc[($i - 1)]) && ($indexToLoc[$i] == $indexToLoc[($i - 1)])) { - // the last glyph didn't have an outline - unset($indexToLoc[($i - 1)]); - } - $offset += 2; - } - } else { - // long version - $tot_num_glyphs = floor($table['loca']['length'] / 4); // numGlyphs + 1 - for ($i = 0; $i < $tot_num_glyphs; ++$i) { - $indexToLoc[$i] = TCPDF_STATIC::_getULONG($font, $offset); - if (isset($indexToLoc[($i - 1)]) && ($indexToLoc[$i] == $indexToLoc[($i - 1)])) { - // the last glyph didn't have an outline - unset($indexToLoc[($i - 1)]); - } - $offset += 4; - } - } - // get glyphs indexes of chars from cmap table - $offset = $table['cmap']['offset'] + 2; - $numEncodingTables = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - $encodingTables = array(); - for ($i = 0; $i < $numEncodingTables; ++$i) { - $encodingTables[$i]['platformID'] = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - $encodingTables[$i]['encodingID'] = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - $encodingTables[$i]['offset'] = TCPDF_STATIC::_getULONG($font, $offset); - $offset += 4; - } - // ---------- get os/2 metrics ---------- - $offset = $table['OS/2']['offset']; - $offset += 2; // skip version - // xAvgCharWidth - $fmetric['AvgWidth'] = round(TCPDF_STATIC::_getFWORD($font, $offset) * $urk); - $offset += 2; - // usWeightClass - $usWeightClass = round(TCPDF_STATIC::_getUFWORD($font, $offset) * $urk); - // estimate StemV and StemH (400 = usWeightClass for Normal - Regular font) - $fmetric['StemV'] = round((70 * $usWeightClass) / 400); - $fmetric['StemH'] = round((30 * $usWeightClass) / 400); - $offset += 2; - $offset += 2; // usWidthClass - $fsType = TCPDF_STATIC::_getSHORT($font, $offset); - $offset += 2; - if ($fsType == 2) { - // This Font cannot be modified, embedded or exchanged in any manner without first obtaining permission of the legal owner. - return false; - } - // ---------- get font name ---------- - $fmetric['name'] = ''; - $offset = $table['name']['offset']; - $offset += 2; // skip Format selector (=0). - // Number of NameRecords that follow n. - $numNameRecords = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - // Offset to start of string storage (from start of table). - $stringStorageOffset = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - for ($i = 0; $i < $numNameRecords; ++$i) { - $offset += 6; // skip Platform ID, Platform-specific encoding ID, Language ID. - // Name ID. - $nameID = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - if ($nameID == 6) { - // String length (in bytes). - $stringLength = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - // String offset from start of storage area (in bytes). - $stringOffset = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - $offset = ($table['name']['offset'] + $stringStorageOffset + $stringOffset); - $fmetric['name'] = substr($font, $offset, $stringLength); - $fmetric['name'] = preg_replace('/[^a-zA-Z0-9_\-]/', '', $fmetric['name']); - break; - } else { - $offset += 4; // skip String length, String offset - } - } - if (empty($fmetric['name'])) { - $fmetric['name'] = $font_name; - } - // ---------- get post data ---------- - $offset = $table['post']['offset']; - $offset += 4; // skip Format Type - $fmetric['italicAngle'] = TCPDF_STATIC::_getFIXED($font, $offset); - $offset += 4; - $fmetric['underlinePosition'] = round(TCPDF_STATIC::_getFWORD($font, $offset) * $urk); - $offset += 2; - $fmetric['underlineThickness'] = round(TCPDF_STATIC::_getFWORD($font, $offset) * $urk); - $offset += 2; - $isFixedPitch = (TCPDF_STATIC::_getULONG($font, $offset) == 0) ? false : true; - $offset += 2; - if ($isFixedPitch) { - $fmetric['Flags'] |= 1; - } - // ---------- get hhea data ---------- - $offset = $table['hhea']['offset']; - $offset += 4; // skip Table version number - // Ascender - $fmetric['Ascent'] = round(TCPDF_STATIC::_getFWORD($font, $offset) * $urk); - $offset += 2; - // Descender - $fmetric['Descent'] = round(TCPDF_STATIC::_getFWORD($font, $offset) * $urk); - $offset += 2; - // LineGap - $fmetric['Leading'] = round(TCPDF_STATIC::_getFWORD($font, $offset) * $urk); - $offset += 2; - // advanceWidthMax - $fmetric['MaxWidth'] = round(TCPDF_STATIC::_getUFWORD($font, $offset) * $urk); - $offset += 2; - $offset += 22; // skip some values - // get the number of hMetric entries in hmtx table - $numberOfHMetrics = TCPDF_STATIC::_getUSHORT($font, $offset); - // ---------- get maxp data ---------- - $offset = $table['maxp']['offset']; - $offset += 4; // skip Table version number - // get the the number of glyphs in the font. - $numGlyphs = TCPDF_STATIC::_getUSHORT($font, $offset); - // ---------- get CIDToGIDMap ---------- - $ctg = array(); - foreach ($encodingTables as $enctable) { - // get only specified Platform ID and Encoding ID - if (($enctable['platformID'] == $platid) AND ($enctable['encodingID'] == $encid)) { - $offset = $table['cmap']['offset'] + $enctable['offset']; - $format = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - switch ($format) { - case 0: { // Format 0: Byte encoding table - $offset += 4; // skip length and version/language - for ($c = 0; $c < 256; ++$c) { - $g = TCPDF_STATIC::_getBYTE($font, $offset); - $ctg[$c] = $g; - ++$offset; - } - break; - } - case 2: { // Format 2: High-byte mapping through table - $offset += 4; // skip length and version/language - $numSubHeaders = 0; - for ($i = 0; $i < 256; ++$i) { - // Array that maps high bytes to subHeaders: value is subHeader index * 8. - $subHeaderKeys[$i] = (TCPDF_STATIC::_getUSHORT($font, $offset) / 8); - $offset += 2; - if ($numSubHeaders < $subHeaderKeys[$i]) { - $numSubHeaders = $subHeaderKeys[$i]; - } - } - // the number of subHeaders is equal to the max of subHeaderKeys + 1 - ++$numSubHeaders; - // read subHeader structures - $subHeaders = array(); - $numGlyphIndexArray = 0; - for ($k = 0; $k < $numSubHeaders; ++$k) { - $subHeaders[$k]['firstCode'] = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - $subHeaders[$k]['entryCount'] = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - $subHeaders[$k]['idDelta'] = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - $subHeaders[$k]['idRangeOffset'] = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - $subHeaders[$k]['idRangeOffset'] -= (2 + (($numSubHeaders - $k - 1) * 8)); - $subHeaders[$k]['idRangeOffset'] /= 2; - $numGlyphIndexArray += $subHeaders[$k]['entryCount']; - } - for ($k = 0; $k < $numGlyphIndexArray; ++$k) { - $glyphIndexArray[$k] = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - } - for ($i = 0; $i < 256; ++$i) { - $k = $subHeaderKeys[$i]; - if ($k == 0) { - // one byte code - $c = $i; - $g = $glyphIndexArray[0]; - $ctg[$c] = $g; - } else { - // two bytes code - $start_byte = $subHeaders[$k]['firstCode']; - $end_byte = $start_byte + $subHeaders[$k]['entryCount']; - for ($j = $start_byte; $j < $end_byte; ++$j) { - // combine high and low bytes - $c = (($i << 8) + $j); - $idRangeOffset = ($subHeaders[$k]['idRangeOffset'] + $j - $subHeaders[$k]['firstCode']); - $g = ($glyphIndexArray[$idRangeOffset] + $subHeaders[$k]['idDelta']) % 65536; - if ($g < 0) { - $g = 0; - } - $ctg[$c] = $g; - } - } - } - break; - } - case 4: { // Format 4: Segment mapping to delta values - $length = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - $offset += 2; // skip version/language - $segCount = floor(TCPDF_STATIC::_getUSHORT($font, $offset) / 2); - $offset += 2; - $offset += 6; // skip searchRange, entrySelector, rangeShift - $endCount = array(); // array of end character codes for each segment - for ($k = 0; $k < $segCount; ++$k) { - $endCount[$k] = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - } - $offset += 2; // skip reservedPad - $startCount = array(); // array of start character codes for each segment - for ($k = 0; $k < $segCount; ++$k) { - $startCount[$k] = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - } - $idDelta = array(); // delta for all character codes in segment - for ($k = 0; $k < $segCount; ++$k) { - $idDelta[$k] = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - } - $idRangeOffset = array(); // Offsets into glyphIdArray or 0 - for ($k = 0; $k < $segCount; ++$k) { - $idRangeOffset[$k] = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - } - $gidlen = (floor($length / 2) - 8 - (4 * $segCount)); - $glyphIdArray = array(); // glyph index array - for ($k = 0; $k < $gidlen; ++$k) { - $glyphIdArray[$k] = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - } - for ($k = 0; $k < $segCount - 1; ++$k) { - for ($c = $startCount[$k]; $c <= $endCount[$k]; ++$c) { - if ($idRangeOffset[$k] == 0) { - $g = ($idDelta[$k] + $c) % 65536; - } else { - $gid = (floor($idRangeOffset[$k] / 2) + ($c - $startCount[$k]) - ($segCount - $k)); - $g = ($glyphIdArray[$gid] + $idDelta[$k]) % 65536; - } - if ($g < 0) { - $g = 0; - } - $ctg[$c] = $g; - } - } - break; - } - case 6: { // Format 6: Trimmed table mapping - $offset += 4; // skip length and version/language - $firstCode = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - $entryCount = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - for ($k = 0; $k < $entryCount; ++$k) { - $c = ($k + $firstCode); - $g = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - $ctg[$c] = $g; - } - break; - } - case 8: { // Format 8: Mixed 16-bit and 32-bit coverage - $offset += 10; // skip reserved, length and version/language - for ($k = 0; $k < 8192; ++$k) { - $is32[$k] = TCPDF_STATIC::_getBYTE($font, $offset); - ++$offset; - } - $nGroups = TCPDF_STATIC::_getULONG($font, $offset); - $offset += 4; - for ($i = 0; $i < $nGroups; ++$i) { - $startCharCode = TCPDF_STATIC::_getULONG($font, $offset); - $offset += 4; - $endCharCode = TCPDF_STATIC::_getULONG($font, $offset); - $offset += 4; - $startGlyphID = TCPDF_STATIC::_getULONG($font, $offset); - $offset += 4; - for ($k = $startCharCode; $k <= $endCharCode; ++$k) { - $is32idx = floor($c / 8); - if ((isset($is32[$is32idx])) AND (($is32[$is32idx] & (1 << (7 - ($c % 8)))) == 0)) { - $c = $k; - } else { - // 32 bit format - // convert to decimal (http://www.unicode.org/faq//utf_bom.html#utf16-4) - //LEAD_OFFSET = (0xD800 - (0x10000 >> 10)) = 55232 - //SURROGATE_OFFSET = (0x10000 - (0xD800 << 10) - 0xDC00) = -56613888 - $c = ((55232 + ($k >> 10)) << 10) + (0xDC00 + ($k & 0x3FF)) -56613888; - } - $ctg[$c] = 0; - ++$startGlyphID; - } - } - break; - } - case 10: { // Format 10: Trimmed array - $offset += 10; // skip reserved, length and version/language - $startCharCode = TCPDF_STATIC::_getULONG($font, $offset); - $offset += 4; - $numChars = TCPDF_STATIC::_getULONG($font, $offset); - $offset += 4; - for ($k = 0; $k < $numChars; ++$k) { - $c = ($k + $startCharCode); - $g = TCPDF_STATIC::_getUSHORT($font, $offset); - $ctg[$c] = $g; - $offset += 2; - } - break; - } - case 12: { // Format 12: Segmented coverage - $offset += 10; // skip length and version/language - $nGroups = TCPDF_STATIC::_getULONG($font, $offset); - $offset += 4; - for ($k = 0; $k < $nGroups; ++$k) { - $startCharCode = TCPDF_STATIC::_getULONG($font, $offset); - $offset += 4; - $endCharCode = TCPDF_STATIC::_getULONG($font, $offset); - $offset += 4; - $startGlyphCode = TCPDF_STATIC::_getULONG($font, $offset); - $offset += 4; - for ($c = $startCharCode; $c <= $endCharCode; ++$c) { - $ctg[$c] = $startGlyphCode; - ++$startGlyphCode; - } - } - break; - } - case 13: { // Format 13: Many-to-one range mappings - // to be implemented ... - break; - } - case 14: { // Format 14: Unicode Variation Sequences - // to be implemented ... - break; - } - } - } - } - if (!isset($ctg[0])) { - $ctg[0] = 0; - } - // get xHeight (height of x) - $offset = ($table['glyf']['offset'] + $indexToLoc[$ctg[120]] + 4); - $yMin = TCPDF_STATIC::_getFWORD($font, $offset); - $offset += 4; - $yMax = TCPDF_STATIC::_getFWORD($font, $offset); - $offset += 2; - $fmetric['XHeight'] = round(($yMax - $yMin) * $urk); - // get CapHeight (height of H) - $offset = ($table['glyf']['offset'] + $indexToLoc[$ctg[72]] + 4); - $yMin = TCPDF_STATIC::_getFWORD($font, $offset); - $offset += 4; - $yMax = TCPDF_STATIC::_getFWORD($font, $offset); - $offset += 2; - $fmetric['CapHeight'] = round(($yMax - $yMin) * $urk); - // ceate widths array - $cw = array(); - $offset = $table['hmtx']['offset']; - for ($i = 0 ; $i < $numberOfHMetrics; ++$i) { - $cw[$i] = round(TCPDF_STATIC::_getUFWORD($font, $offset) * $urk); - $offset += 4; // skip lsb - } - if ($numberOfHMetrics < $numGlyphs) { - // fill missing widths with the last value - $cw = array_pad($cw, $numGlyphs, $cw[($numberOfHMetrics - 1)]); - } - $fmetric['MissingWidth'] = $cw[0]; - $fmetric['cw'] = ''; - $fmetric['cbbox'] = ''; - for ($cid = 0; $cid <= 65535; ++$cid) { - if (isset($ctg[$cid])) { - if (isset($cw[$ctg[$cid]])) { - $fmetric['cw'] .= ','.$cid.'=>'.$cw[$ctg[$cid]]; - } - if ($addcbbox AND isset($indexToLoc[$ctg[$cid]])) { - $offset = ($table['glyf']['offset'] + $indexToLoc[$ctg[$cid]]); - $xMin = round(TCPDF_STATIC::_getFWORD($font, $offset + 2) * $urk); - $yMin = round(TCPDF_STATIC::_getFWORD($font, $offset + 4) * $urk); - $xMax = round(TCPDF_STATIC::_getFWORD($font, $offset + 6) * $urk); - $yMax = round(TCPDF_STATIC::_getFWORD($font, $offset + 8) * $urk); - $fmetric['cbbox'] .= ','.$cid.'=>array('.$xMin.','.$yMin.','.$xMax.','.$yMax.')'; - } - } - } - } // end of true type - if (($fmetric['type'] == 'TrueTypeUnicode') AND (count($ctg) == 256)) { - $fmetric['type'] = 'TrueType'; - } - // ---------- create php font file ---------- - $pfile = '<'.'?'.'php'."\n"; - $pfile .= '// TCPDF FONT FILE DESCRIPTION'."\n"; - $pfile .= '$type=\''.$fmetric['type'].'\';'."\n"; - $pfile .= '$name=\''.$fmetric['name'].'\';'."\n"; - $pfile .= '$up='.$fmetric['underlinePosition'].';'."\n"; - $pfile .= '$ut='.$fmetric['underlineThickness'].';'."\n"; - if ($fmetric['MissingWidth'] > 0) { - $pfile .= '$dw='.$fmetric['MissingWidth'].';'."\n"; - } else { - $pfile .= '$dw='.$fmetric['AvgWidth'].';'."\n"; - } - $pfile .= '$diff=\''.$fmetric['diff'].'\';'."\n"; - if ($fmetric['type'] == 'Type1') { - // Type 1 - $pfile .= '$enc=\''.$fmetric['enc'].'\';'."\n"; - $pfile .= '$file=\''.$fmetric['file'].'\';'."\n"; - $pfile .= '$size1='.$fmetric['size1'].';'."\n"; - $pfile .= '$size2='.$fmetric['size2'].';'."\n"; - } else { - $pfile .= '$originalsize='.$fmetric['originalsize'].';'."\n"; - if ($fmetric['type'] == 'cidfont0') { - // CID-0 - switch ($fonttype) { - case 'CID0JP': { - $pfile .= '// Japanese'."\n"; - $pfile .= '$enc=\'UniJIS-UTF16-H\';'."\n"; - $pfile .= '$cidinfo=array(\'Registry\'=>\'Adobe\', \'Ordering\'=>\'Japan1\',\'Supplement\'=>5);'."\n"; - $pfile .= 'include(dirname(__FILE__).\'/uni2cid_aj16.php\');'."\n"; - break; - } - case 'CID0KR': { - $pfile .= '// Korean'."\n"; - $pfile .= '$enc=\'UniKS-UTF16-H\';'."\n"; - $pfile .= '$cidinfo=array(\'Registry\'=>\'Adobe\', \'Ordering\'=>\'Korea1\',\'Supplement\'=>0);'."\n"; - $pfile .= 'include(dirname(__FILE__).\'/uni2cid_ak12.php\');'."\n"; - break; - } - case 'CID0CS': { - $pfile .= '// Chinese Simplified'."\n"; - $pfile .= '$enc=\'UniGB-UTF16-H\';'."\n"; - $pfile .= '$cidinfo=array(\'Registry\'=>\'Adobe\', \'Ordering\'=>\'GB1\',\'Supplement\'=>2);'."\n"; - $pfile .= 'include(dirname(__FILE__).\'/uni2cid_ag15.php\');'."\n"; - break; - } - case 'CID0CT': - default: { - $pfile .= '// Chinese Traditional'."\n"; - $pfile .= '$enc=\'UniCNS-UTF16-H\';'."\n"; - $pfile .= '$cidinfo=array(\'Registry\'=>\'Adobe\', \'Ordering\'=>\'CNS1\',\'Supplement\'=>0);'."\n"; - $pfile .= 'include(dirname(__FILE__).\'/uni2cid_aj16.php\');'."\n"; - break; - } - } - } else { - // TrueType - $pfile .= '$enc=\''.$fmetric['enc'].'\';'."\n"; - $pfile .= '$file=\''.$fmetric['file'].'\';'."\n"; - $pfile .= '$ctg=\''.$fmetric['ctg'].'\';'."\n"; - // create CIDToGIDMap - $cidtogidmap = str_pad('', 131072, "\x00"); // (256 * 256 * 2) = 131072 - foreach ($ctg as $cid => $gid) { - $cidtogidmap = self::updateCIDtoGIDmap($cidtogidmap, $cid, $ctg[$cid]); - } - // store compressed CIDToGIDMap - $fp = TCPDF_STATIC::fopenLocal($outpath.$fmetric['ctg'], 'wb'); - fwrite($fp, gzcompress($cidtogidmap)); - fclose($fp); - } - } - $pfile .= '$desc=array('; - $pfile .= '\'Flags\'=>'.$fmetric['Flags'].','; - $pfile .= '\'FontBBox\'=>\'['.$fmetric['bbox'].']\','; - $pfile .= '\'ItalicAngle\'=>'.$fmetric['italicAngle'].','; - $pfile .= '\'Ascent\'=>'.$fmetric['Ascent'].','; - $pfile .= '\'Descent\'=>'.$fmetric['Descent'].','; - $pfile .= '\'Leading\'=>'.$fmetric['Leading'].','; - $pfile .= '\'CapHeight\'=>'.$fmetric['CapHeight'].','; - $pfile .= '\'XHeight\'=>'.$fmetric['XHeight'].','; - $pfile .= '\'StemV\'=>'.$fmetric['StemV'].','; - $pfile .= '\'StemH\'=>'.$fmetric['StemH'].','; - $pfile .= '\'AvgWidth\'=>'.$fmetric['AvgWidth'].','; - $pfile .= '\'MaxWidth\'=>'.$fmetric['MaxWidth'].','; - $pfile .= '\'MissingWidth\'=>'.$fmetric['MissingWidth'].''; - $pfile .= ');'."\n"; - if (!empty($fmetric['cbbox'])) { - $pfile .= '$cbbox=array('.substr($fmetric['cbbox'], 1).');'."\n"; - } - $pfile .= '$cw=array('.substr($fmetric['cw'], 1).');'."\n"; - $pfile .= '// --- EOF ---'."\n"; - // store file - $fp = TCPDF_STATIC::fopenLocal($outpath.$font_name.'.php', 'w'); - fwrite($fp, $pfile); - fclose($fp); - // return TCPDF font name - return $font_name; - } - - /** - * Returs the checksum of a TTF table. - * @param $table (string) table to check - * @param $length (int) length of table in bytes - * @return int checksum - * @author Nicola Asuni - * @since 5.2.000 (2010-06-02) - * @public static - */ - public static function _getTTFtableChecksum($table, $length) { - $sum = 0; - $tlen = ($length / 4); - $offset = 0; - for ($i = 0; $i < $tlen; ++$i) { - $v = unpack('Ni', substr($table, $offset, 4)); - $sum += $v['i']; - $offset += 4; - } - $sum = unpack('Ni', pack('N', $sum)); - return $sum['i']; - } - - /** - * Returns a subset of the TrueType font data without the unused glyphs. - * @param $font (string) TrueType font data. - * @param $subsetchars (array) Array of used characters (the glyphs to keep). - * @return (string) A subset of TrueType font data without the unused glyphs. - * @author Nicola Asuni - * @since 5.2.000 (2010-06-02) - * @public static - */ - public static function _getTrueTypeFontSubset($font, $subsetchars) { - ksort($subsetchars); - $offset = 0; // offset position of the font data - if (TCPDF_STATIC::_getULONG($font, $offset) != 0x10000) { - // sfnt version must be 0x00010000 for TrueType version 1.0. - return $font; - } - $offset += 4; - // get number of tables - $numTables = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - // skip searchRange, entrySelector and rangeShift - $offset += 6; - // tables array - $table = array(); - // for each table - for ($i = 0; $i < $numTables; ++$i) { - // get table info - $tag = substr($font, $offset, 4); - $offset += 4; - $table[$tag] = array(); - $table[$tag]['checkSum'] = TCPDF_STATIC::_getULONG($font, $offset); - $offset += 4; - $table[$tag]['offset'] = TCPDF_STATIC::_getULONG($font, $offset); - $offset += 4; - $table[$tag]['length'] = TCPDF_STATIC::_getULONG($font, $offset); - $offset += 4; - } - // check magicNumber - $offset = $table['head']['offset'] + 12; - if (TCPDF_STATIC::_getULONG($font, $offset) != 0x5F0F3CF5) { - // magicNumber must be 0x5F0F3CF5 - return $font; - } - $offset += 4; - // get offset mode (indexToLocFormat : 0 = short, 1 = long) - $offset = $table['head']['offset'] + 50; - $short_offset = (TCPDF_STATIC::_getSHORT($font, $offset) == 0); - $offset += 2; - // get the offsets to the locations of the glyphs in the font, relative to the beginning of the glyphData table - $indexToLoc = array(); - $offset = $table['loca']['offset']; - if ($short_offset) { - // short version - $tot_num_glyphs = floor($table['loca']['length'] / 2); // numGlyphs + 1 - for ($i = 0; $i < $tot_num_glyphs; ++$i) { - $indexToLoc[$i] = TCPDF_STATIC::_getUSHORT($font, $offset) * 2; - $offset += 2; - } - } else { - // long version - $tot_num_glyphs = ($table['loca']['length'] / 4); // numGlyphs + 1 - for ($i = 0; $i < $tot_num_glyphs; ++$i) { - $indexToLoc[$i] = TCPDF_STATIC::_getULONG($font, $offset); - $offset += 4; - } - } - // get glyphs indexes of chars from cmap table - $subsetglyphs = array(); // glyph IDs on key - $subsetglyphs[0] = true; // character codes that do not correspond to any glyph in the font should be mapped to glyph index 0 - $offset = $table['cmap']['offset'] + 2; - $numEncodingTables = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - $encodingTables = array(); - for ($i = 0; $i < $numEncodingTables; ++$i) { - $encodingTables[$i]['platformID'] = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - $encodingTables[$i]['encodingID'] = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - $encodingTables[$i]['offset'] = TCPDF_STATIC::_getULONG($font, $offset); - $offset += 4; - } - foreach ($encodingTables as $enctable) { - // get all platforms and encodings - $offset = $table['cmap']['offset'] + $enctable['offset']; - $format = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - switch ($format) { - case 0: { // Format 0: Byte encoding table - $offset += 4; // skip length and version/language - for ($c = 0; $c < 256; ++$c) { - if (isset($subsetchars[$c])) { - $g = TCPDF_STATIC::_getBYTE($font, $offset); - $subsetglyphs[$g] = true; - } - ++$offset; - } - break; - } - case 2: { // Format 2: High-byte mapping through table - $offset += 4; // skip length and version/language - $numSubHeaders = 0; - for ($i = 0; $i < 256; ++$i) { - // Array that maps high bytes to subHeaders: value is subHeader index * 8. - $subHeaderKeys[$i] = (TCPDF_STATIC::_getUSHORT($font, $offset) / 8); - $offset += 2; - if ($numSubHeaders < $subHeaderKeys[$i]) { - $numSubHeaders = $subHeaderKeys[$i]; - } - } - // the number of subHeaders is equal to the max of subHeaderKeys + 1 - ++$numSubHeaders; - // read subHeader structures - $subHeaders = array(); - $numGlyphIndexArray = 0; - for ($k = 0; $k < $numSubHeaders; ++$k) { - $subHeaders[$k]['firstCode'] = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - $subHeaders[$k]['entryCount'] = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - $subHeaders[$k]['idDelta'] = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - $subHeaders[$k]['idRangeOffset'] = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - $subHeaders[$k]['idRangeOffset'] -= (2 + (($numSubHeaders - $k - 1) * 8)); - $subHeaders[$k]['idRangeOffset'] /= 2; - $numGlyphIndexArray += $subHeaders[$k]['entryCount']; - } - for ($k = 0; $k < $numGlyphIndexArray; ++$k) { - $glyphIndexArray[$k] = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - } - for ($i = 0; $i < 256; ++$i) { - $k = $subHeaderKeys[$i]; - if ($k == 0) { - // one byte code - $c = $i; - if (isset($subsetchars[$c])) { - $g = $glyphIndexArray[0]; - $subsetglyphs[$g] = true; - } - } else { - // two bytes code - $start_byte = $subHeaders[$k]['firstCode']; - $end_byte = $start_byte + $subHeaders[$k]['entryCount']; - for ($j = $start_byte; $j < $end_byte; ++$j) { - // combine high and low bytes - $c = (($i << 8) + $j); - if (isset($subsetchars[$c])) { - $idRangeOffset = ($subHeaders[$k]['idRangeOffset'] + $j - $subHeaders[$k]['firstCode']); - $g = ($glyphIndexArray[$idRangeOffset] + $subHeaders[$k]['idDelta']) % 65536; - if ($g < 0) { - $g = 0; - } - $subsetglyphs[$g] = true; - } - } - } - } - break; - } - case 4: { // Format 4: Segment mapping to delta values - $length = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - $offset += 2; // skip version/language - $segCount = floor(TCPDF_STATIC::_getUSHORT($font, $offset) / 2); - $offset += 2; - $offset += 6; // skip searchRange, entrySelector, rangeShift - $endCount = array(); // array of end character codes for each segment - for ($k = 0; $k < $segCount; ++$k) { - $endCount[$k] = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - } - $offset += 2; // skip reservedPad - $startCount = array(); // array of start character codes for each segment - for ($k = 0; $k < $segCount; ++$k) { - $startCount[$k] = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - } - $idDelta = array(); // delta for all character codes in segment - for ($k = 0; $k < $segCount; ++$k) { - $idDelta[$k] = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - } - $idRangeOffset = array(); // Offsets into glyphIdArray or 0 - for ($k = 0; $k < $segCount; ++$k) { - $idRangeOffset[$k] = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - } - $gidlen = (floor($length / 2) - 8 - (4 * $segCount)); - $glyphIdArray = array(); // glyph index array - for ($k = 0; $k < $gidlen; ++$k) { - $glyphIdArray[$k] = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - } - for ($k = 0; $k < $segCount; ++$k) { - for ($c = $startCount[$k]; $c <= $endCount[$k]; ++$c) { - if (isset($subsetchars[$c])) { - if ($idRangeOffset[$k] == 0) { - $g = ($idDelta[$k] + $c) % 65536; - } else { - $gid = (floor($idRangeOffset[$k] / 2) + ($c - $startCount[$k]) - ($segCount - $k)); - $g = ($glyphIdArray[$gid] + $idDelta[$k]) % 65536; - } - if ($g < 0) { - $g = 0; - } - $subsetglyphs[$g] = true; - } - } - } - break; - } - case 6: { // Format 6: Trimmed table mapping - $offset += 4; // skip length and version/language - $firstCode = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - $entryCount = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - for ($k = 0; $k < $entryCount; ++$k) { - $c = ($k + $firstCode); - if (isset($subsetchars[$c])) { - $g = TCPDF_STATIC::_getUSHORT($font, $offset); - $subsetglyphs[$g] = true; - } - $offset += 2; - } - break; - } - case 8: { // Format 8: Mixed 16-bit and 32-bit coverage - $offset += 10; // skip reserved, length and version/language - for ($k = 0; $k < 8192; ++$k) { - $is32[$k] = TCPDF_STATIC::_getBYTE($font, $offset); - ++$offset; - } - $nGroups = TCPDF_STATIC::_getULONG($font, $offset); - $offset += 4; - for ($i = 0; $i < $nGroups; ++$i) { - $startCharCode = TCPDF_STATIC::_getULONG($font, $offset); - $offset += 4; - $endCharCode = TCPDF_STATIC::_getULONG($font, $offset); - $offset += 4; - $startGlyphID = TCPDF_STATIC::_getULONG($font, $offset); - $offset += 4; - for ($k = $startCharCode; $k <= $endCharCode; ++$k) { - $is32idx = floor($c / 8); - if ((isset($is32[$is32idx])) AND (($is32[$is32idx] & (1 << (7 - ($c % 8)))) == 0)) { - $c = $k; - } else { - // 32 bit format - // convert to decimal (http://www.unicode.org/faq//utf_bom.html#utf16-4) - //LEAD_OFFSET = (0xD800 - (0x10000 >> 10)) = 55232 - //SURROGATE_OFFSET = (0x10000 - (0xD800 << 10) - 0xDC00) = -56613888 - $c = ((55232 + ($k >> 10)) << 10) + (0xDC00 + ($k & 0x3FF)) -56613888; - } - if (isset($subsetchars[$c])) { - $subsetglyphs[$startGlyphID] = true; - } - ++$startGlyphID; - } - } - break; - } - case 10: { // Format 10: Trimmed array - $offset += 10; // skip reserved, length and version/language - $startCharCode = TCPDF_STATIC::_getULONG($font, $offset); - $offset += 4; - $numChars = TCPDF_STATIC::_getULONG($font, $offset); - $offset += 4; - for ($k = 0; $k < $numChars; ++$k) { - $c = ($k + $startCharCode); - if (isset($subsetchars[$c])) { - $g = TCPDF_STATIC::_getUSHORT($font, $offset); - $subsetglyphs[$g] = true; - } - $offset += 2; - } - break; - } - case 12: { // Format 12: Segmented coverage - $offset += 10; // skip length and version/language - $nGroups = TCPDF_STATIC::_getULONG($font, $offset); - $offset += 4; - for ($k = 0; $k < $nGroups; ++$k) { - $startCharCode = TCPDF_STATIC::_getULONG($font, $offset); - $offset += 4; - $endCharCode = TCPDF_STATIC::_getULONG($font, $offset); - $offset += 4; - $startGlyphCode = TCPDF_STATIC::_getULONG($font, $offset); - $offset += 4; - for ($c = $startCharCode; $c <= $endCharCode; ++$c) { - if (isset($subsetchars[$c])) { - $subsetglyphs[$startGlyphCode] = true; - } - ++$startGlyphCode; - } - } - break; - } - case 13: { // Format 13: Many-to-one range mappings - // to be implemented ... - break; - } - case 14: { // Format 14: Unicode Variation Sequences - // to be implemented ... - break; - } - } - } - // include all parts of composite glyphs - $new_sga = $subsetglyphs; - while (!empty($new_sga)) { - $sga = $new_sga; - $new_sga = array(); - foreach ($sga as $key => $val) { - if (isset($indexToLoc[$key])) { - $offset = ($table['glyf']['offset'] + $indexToLoc[$key]); - $numberOfContours = TCPDF_STATIC::_getSHORT($font, $offset); - $offset += 2; - if ($numberOfContours < 0) { // composite glyph - $offset += 8; // skip xMin, yMin, xMax, yMax - do { - $flags = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - $glyphIndex = TCPDF_STATIC::_getUSHORT($font, $offset); - $offset += 2; - if (!isset($subsetglyphs[$glyphIndex])) { - // add missing glyphs - $new_sga[$glyphIndex] = true; - } - // skip some bytes by case - if ($flags & 1) { - $offset += 4; - } else { - $offset += 2; - } - if ($flags & 8) { - $offset += 2; - } elseif ($flags & 64) { - $offset += 4; - } elseif ($flags & 128) { - $offset += 8; - } - } while ($flags & 32); - } - } - } - $subsetglyphs += $new_sga; - } - // sort glyphs by key (and remove duplicates) - ksort($subsetglyphs); - // build new glyf and loca tables - $glyf = ''; - $loca = ''; - $offset = 0; - $glyf_offset = $table['glyf']['offset']; - for ($i = 0; $i < $tot_num_glyphs; ++$i) { - if (isset($subsetglyphs[$i])) { - $length = ($indexToLoc[($i + 1)] - $indexToLoc[$i]); - $glyf .= substr($font, ($glyf_offset + $indexToLoc[$i]), $length); - } else { - $length = 0; - } - if ($short_offset) { - $loca .= pack('n', floor($offset / 2)); - } else { - $loca .= pack('N', $offset); - } - $offset += $length; - } - // array of table names to preserve (loca and glyf tables will be added later) - // the cmap table is not needed and shall not be present, since the mapping from character codes to glyph descriptions is provided separately - $table_names = array ('head', 'hhea', 'hmtx', 'maxp', 'cvt ', 'fpgm', 'prep'); // minimum required table names - // get the tables to preserve - $offset = 12; - foreach ($table as $tag => $val) { - if (in_array($tag, $table_names)) { - $table[$tag]['data'] = substr($font, $table[$tag]['offset'], $table[$tag]['length']); - if ($tag == 'head') { - // set the checkSumAdjustment to 0 - $table[$tag]['data'] = substr($table[$tag]['data'], 0, 8)."\x0\x0\x0\x0".substr($table[$tag]['data'], 12); - } - $pad = 4 - ($table[$tag]['length'] % 4); - if ($pad != 4) { - // the length of a table must be a multiple of four bytes - $table[$tag]['length'] += $pad; - $table[$tag]['data'] .= str_repeat("\x0", $pad); - } - $table[$tag]['offset'] = $offset; - $offset += $table[$tag]['length']; - // check sum is not changed (so keep the following line commented) - //$table[$tag]['checkSum'] = self::_getTTFtableChecksum($table[$tag]['data'], $table[$tag]['length']); - } else { - unset($table[$tag]); - } - } - // add loca - $table['loca']['data'] = $loca; - $table['loca']['length'] = strlen($loca); - $pad = 4 - ($table['loca']['length'] % 4); - if ($pad != 4) { - // the length of a table must be a multiple of four bytes - $table['loca']['length'] += $pad; - $table['loca']['data'] .= str_repeat("\x0", $pad); - } - $table['loca']['offset'] = $offset; - $table['loca']['checkSum'] = self::_getTTFtableChecksum($table['loca']['data'], $table['loca']['length']); - $offset += $table['loca']['length']; - // add glyf - $table['glyf']['data'] = $glyf; - $table['glyf']['length'] = strlen($glyf); - $pad = 4 - ($table['glyf']['length'] % 4); - if ($pad != 4) { - // the length of a table must be a multiple of four bytes - $table['glyf']['length'] += $pad; - $table['glyf']['data'] .= str_repeat("\x0", $pad); - } - $table['glyf']['offset'] = $offset; - $table['glyf']['checkSum'] = self::_getTTFtableChecksum($table['glyf']['data'], $table['glyf']['length']); - // rebuild font - $font = ''; - $font .= pack('N', 0x10000); // sfnt version - $numTables = count($table); - $font .= pack('n', $numTables); // numTables - $entrySelector = floor(log($numTables, 2)); - $searchRange = pow(2, $entrySelector) * 16; - $rangeShift = ($numTables * 16) - $searchRange; - $font .= pack('n', $searchRange); // searchRange - $font .= pack('n', $entrySelector); // entrySelector - $font .= pack('n', $rangeShift); // rangeShift - $offset = ($numTables * 16); - foreach ($table as $tag => $data) { - $font .= $tag; // tag - $font .= pack('N', $data['checkSum']); // checkSum - $font .= pack('N', ($data['offset'] + $offset)); // offset - $font .= pack('N', $data['length']); // length - } - foreach ($table as $data) { - $font .= $data['data']; - } - // set checkSumAdjustment on head table - $checkSumAdjustment = 0xB1B0AFBA - self::_getTTFtableChecksum($font, strlen($font)); - $font = substr($font, 0, $table['head']['offset'] + 8).pack('N', $checkSumAdjustment).substr($font, $table['head']['offset'] + 12); - return $font; - } - - /** - * Outputs font widths - * @param $font (array) font data - * @param $cidoffset (int) offset for CID values - * @return PDF command string for font widths - * @author Nicola Asuni - * @since 4.4.000 (2008-12-07) - * @public static - */ - public static function _putfontwidths($font, $cidoffset=0) { - ksort($font['cw']); - $rangeid = 0; - $range = array(); - $prevcid = -2; - $prevwidth = -1; - $interval = false; - // for each character - foreach ($font['cw'] as $cid => $width) { - $cid -= $cidoffset; - if ($font['subset'] AND (!isset($font['subsetchars'][$cid]))) { - // ignore the unused characters (font subsetting) - continue; - } - if ($width != $font['dw']) { - if ($cid == ($prevcid + 1)) { - // consecutive CID - if ($width == $prevwidth) { - if ($width == $range[$rangeid][0]) { - $range[$rangeid][] = $width; - } else { - array_pop($range[$rangeid]); - // new range - $rangeid = $prevcid; - $range[$rangeid] = array(); - $range[$rangeid][] = $prevwidth; - $range[$rangeid][] = $width; - } - $interval = true; - $range[$rangeid]['interval'] = true; - } else { - if ($interval) { - // new range - $rangeid = $cid; - $range[$rangeid] = array(); - $range[$rangeid][] = $width; - } else { - $range[$rangeid][] = $width; - } - $interval = false; - } - } else { - // new range - $rangeid = $cid; - $range[$rangeid] = array(); - $range[$rangeid][] = $width; - $interval = false; - } - $prevcid = $cid; - $prevwidth = $width; - } - } - // optimize ranges - $prevk = -1; - $nextk = -1; - $prevint = false; - foreach ($range as $k => $ws) { - $cws = count($ws); - if (($k == $nextk) AND (!$prevint) AND ((!isset($ws['interval'])) OR ($cws < 4))) { - if (isset($range[$k]['interval'])) { - unset($range[$k]['interval']); - } - $range[$prevk] = array_merge($range[$prevk], $range[$k]); - unset($range[$k]); - } else { - $prevk = $k; - } - $nextk = $k + $cws; - if (isset($ws['interval'])) { - if ($cws > 3) { - $prevint = true; - } else { - $prevint = false; - } - if (isset($range[$k]['interval'])) { - unset($range[$k]['interval']); - } - --$nextk; - } else { - $prevint = false; - } - } - // output data - $w = ''; - foreach ($range as $k => $ws) { - if (count(array_count_values($ws)) == 1) { - // interval mode is more compact - $w .= ' '.$k.' '.($k + count($ws) - 1).' '.$ws[0]; - } else { - // range mode - $w .= ' '.$k.' [ '.implode(' ', $ws).' ]'; - } - } - return '/W ['.$w.' ]'; - } - - - - - /** - * Update the CIDToGIDMap string with a new value. - * @param $map (string) CIDToGIDMap. - * @param $cid (int) CID value. - * @param $gid (int) GID value. - * @return (string) CIDToGIDMap. - * @author Nicola Asuni - * @since 5.9.123 (2011-09-29) - * @public static - */ - public static function updateCIDtoGIDmap($map, $cid, $gid) { - if (($cid >= 0) AND ($cid <= 0xFFFF) AND ($gid >= 0)) { - if ($gid > 0xFFFF) { - $gid -= 0x10000; - } - $map[($cid * 2)] = chr($gid >> 8); - $map[(($cid * 2) + 1)] = chr($gid & 0xFF); - } - return $map; - } - - /** - * Return fonts path - * @return string - * @public static - */ - public static function _getfontpath() { - if (!defined('K_PATH_FONTS') AND is_dir($fdir = realpath(dirname(__FILE__).'/../fonts'))) { - if (substr($fdir, -1) != '/') { - $fdir .= '/'; - } - define('K_PATH_FONTS', $fdir); - } - return defined('K_PATH_FONTS') ? K_PATH_FONTS : ''; - } - - - - /** - * Return font full path - * @param $file (string) Font file name. - * @param $fontdir (string) Font directory (set to false fto search on default directories) - * @return string Font full path or empty string - * @author Nicola Asuni - * @since 6.0.025 - * @public static - */ - public static function getFontFullPath($file, $fontdir=false) { - $fontfile = ''; - // search files on various directories - if (($fontdir !== false) AND @TCPDF_STATIC::file_exists($fontdir.$file)) { - $fontfile = $fontdir.$file; - } elseif (@TCPDF_STATIC::file_exists(self::_getfontpath().$file)) { - $fontfile = self::_getfontpath().$file; - } elseif (@TCPDF_STATIC::file_exists($file)) { - $fontfile = $file; - } - return $fontfile; - } - - - - - /** - * Get a reference font size. - * @param $size (string) String containing font size value. - * @param $refsize (float) Reference font size in points. - * @return float value in points - * @public static - */ - public static function getFontRefSize($size, $refsize=12) { - switch ($size) { - case 'xx-small': { - $size = ($refsize - 4); - break; - } - case 'x-small': { - $size = ($refsize - 3); - break; - } - case 'small': { - $size = ($refsize - 2); - break; - } - case 'medium': { - $size = $refsize; - break; - } - case 'large': { - $size = ($refsize + 2); - break; - } - case 'x-large': { - $size = ($refsize + 4); - break; - } - case 'xx-large': { - $size = ($refsize + 6); - break; - } - case 'smaller': { - $size = ($refsize - 3); - break; - } - case 'larger': { - $size = ($refsize + 3); - break; - } - } - return $size; - } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// ==================================================================================================================== -// REIMPLEMENTED -// ==================================================================================================================== - - - - - - - - - /** - * Returns the unicode caracter specified by the value - * @param $c (int) UTF-8 value - * @param $unicode (boolean) True if we are in unicode mode, false otherwise. - * @return Returns the specified character. - * @since 2.3.000 (2008-03-05) - * @public static - */ - public static function unichr($c, $unicode=true) { - $c = intval($c); - if (!$unicode) { - return chr($c); - } elseif ($c <= 0x7F) { - // one byte - return chr($c); - } elseif ($c <= 0x7FF) { - // two bytes - return chr(0xC0 | $c >> 6).chr(0x80 | $c & 0x3F); - } elseif ($c <= 0xFFFF) { - // three bytes - return chr(0xE0 | $c >> 12).chr(0x80 | $c >> 6 & 0x3F).chr(0x80 | $c & 0x3F); - } elseif ($c <= 0x10FFFF) { - // four bytes - return chr(0xF0 | $c >> 18).chr(0x80 | $c >> 12 & 0x3F).chr(0x80 | $c >> 6 & 0x3F).chr(0x80 | $c & 0x3F); - } else { - return ''; - } - } - - /** - * Returns the unicode caracter specified by UTF-8 value - * @param $c (int) UTF-8 value - * @return Returns the specified character. - * @public static - */ - public static function unichrUnicode($c) { - return self::unichr($c, true); - } - - /** - * Returns the unicode caracter specified by ASCII value - * @param $c (int) UTF-8 value - * @return Returns the specified character. - * @public static - */ - public static function unichrASCII($c) { - return self::unichr($c, false); - } - - /** - * Converts array of UTF-8 characters to UTF16-BE string.
    - * Based on: http://www.faqs.org/rfcs/rfc2781.html - *
    -	 *   Encoding UTF-16:
    -	 *
    -	 *   Encoding of a single character from an ISO 10646 character value to
    -	 *    UTF-16 proceeds as follows. Let U be the character number, no greater
    -	 *    than 0x10FFFF.
    -	 *
    -	 *    1) If U < 0x10000, encode U as a 16-bit unsigned integer and
    -	 *       terminate.
    -	 *
    -	 *    2) Let U' = U - 0x10000. Because U is less than or equal to 0x10FFFF,
    -	 *       U' must be less than or equal to 0xFFFFF. That is, U' can be
    -	 *       represented in 20 bits.
    -	 *
    -	 *    3) Initialize two 16-bit unsigned integers, W1 and W2, to 0xD800 and
    -	 *       0xDC00, respectively. These integers each have 10 bits free to
    -	 *       encode the character value, for a total of 20 bits.
    -	 *
    -	 *    4) Assign the 10 high-order bits of the 20-bit U' to the 10 low-order
    -	 *       bits of W1 and the 10 low-order bits of U' to the 10 low-order
    -	 *       bits of W2. Terminate.
    -	 *
    -	 *    Graphically, steps 2 through 4 look like:
    -	 *    U' = yyyyyyyyyyxxxxxxxxxx
    -	 *    W1 = 110110yyyyyyyyyy
    -	 *    W2 = 110111xxxxxxxxxx
    -	 * 
    - * @param $unicode (array) array containing UTF-8 unicode values - * @param $setbom (boolean) if true set the Byte Order Mark (BOM = 0xFEFF) - * @return string - * @protected - * @author Nicola Asuni - * @since 2.1.000 (2008-01-08) - * @public static - */ - public static function arrUTF8ToUTF16BE($unicode, $setbom=false) { - $outstr = ''; // string to be returned - if ($setbom) { - $outstr .= "\xFE\xFF"; // Byte Order Mark (BOM) - } - foreach ($unicode as $char) { - if ($char == 0x200b) { - // skip Unicode Character 'ZERO WIDTH SPACE' (DEC:8203, U+200B) - } elseif ($char == 0xFFFD) { - $outstr .= "\xFF\xFD"; // replacement character - } elseif ($char < 0x10000) { - $outstr .= chr($char >> 0x08); - $outstr .= chr($char & 0xFF); - } else { - $char -= 0x10000; - $w1 = 0xD800 | ($char >> 0x0a); - $w2 = 0xDC00 | ($char & 0x3FF); - $outstr .= chr($w1 >> 0x08); - $outstr .= chr($w1 & 0xFF); - $outstr .= chr($w2 >> 0x08); - $outstr .= chr($w2 & 0xFF); - } - } - return $outstr; - } - - /** - * Convert an array of UTF8 values to array of unicode characters - * @param $ta (array) The input array of UTF8 values. - * @param $isunicode (boolean) True for Unicode mode, false otherwise. - * @return Return array of unicode characters - * @since 4.5.037 (2009-04-07) - * @public static - */ - public static function UTF8ArrayToUniArray($ta, $isunicode=true) { - if ($isunicode) { - return array_map(array('TCPDF_FONTS', 'unichrUnicode'), $ta); - } - return array_map(array('TCPDF_FONTS', 'unichrASCII'), $ta); - } - - /** - * Extract a slice of the $strarr array and return it as string. - * @param $strarr (string) The input array of characters. - * @param $start (int) the starting element of $strarr. - * @param $end (int) first element that will not be returned. - * @param $unicode (boolean) True if we are in unicode mode, false otherwise. - * @return Return part of a string - * @public static - */ - public static function UTF8ArrSubString($strarr, $start='', $end='', $unicode=true) { - if (strlen($start) == 0) { - $start = 0; - } - if (strlen($end) == 0) { - $end = count($strarr); - } - $string = ''; - for ($i = $start; $i < $end; ++$i) { - $string .= self::unichr($strarr[$i], $unicode); - } - return $string; - } - - /** - * Extract a slice of the $uniarr array and return it as string. - * @param $uniarr (string) The input array of characters. - * @param $start (int) the starting element of $strarr. - * @param $end (int) first element that will not be returned. - * @return Return part of a string - * @since 4.5.037 (2009-04-07) - * @public static - */ - public static function UniArrSubString($uniarr, $start='', $end='') { - if (strlen($start) == 0) { - $start = 0; - } - if (strlen($end) == 0) { - $end = count($uniarr); - } - $string = ''; - for ($i=$start; $i < $end; ++$i) { - $string .= $uniarr[$i]; - } - return $string; - } - - /** - * Converts UTF-8 characters array to array of Latin1 characters array
    - * @param $unicode (array) array containing UTF-8 unicode values - * @return array - * @author Nicola Asuni - * @since 4.8.023 (2010-01-15) - * @public static - */ - public static function UTF8ArrToLatin1Arr($unicode) { - $outarr = array(); // array to be returned - foreach ($unicode as $char) { - if ($char < 256) { - $outarr[] = $char; - } elseif (array_key_exists($char, TCPDF_FONT_DATA::$uni_utf8tolatin)) { - // map from UTF-8 - $outarr[] = TCPDF_FONT_DATA::$uni_utf8tolatin[$char]; - } elseif ($char == 0xFFFD) { - // skip - } else { - $outarr[] = 63; // '?' character - } - } - return $outarr; - } - - /** - * Converts UTF-8 characters array to array of Latin1 string
    - * @param $unicode (array) array containing UTF-8 unicode values - * @return array - * @author Nicola Asuni - * @since 4.8.023 (2010-01-15) - * @public static - */ - public static function UTF8ArrToLatin1($unicode) { - $outstr = ''; // string to be returned - foreach ($unicode as $char) { - if ($char < 256) { - $outstr .= chr($char); - } elseif (array_key_exists($char, TCPDF_FONT_DATA::$uni_utf8tolatin)) { - // map from UTF-8 - $outstr .= chr(TCPDF_FONT_DATA::$uni_utf8tolatin[$char]); - } elseif ($char == 0xFFFD) { - // skip - } else { - $outstr .= '?'; - } - } - return $outstr; - } - - /** - * Converts UTF-8 character to integer value.
    - * Uses the getUniord() method if the value is not cached. - * @param $uch (string) character string to process. - * @return integer Unicode value - * @public static - */ - public static function uniord($uch) { - if (!isset(self::$cache_uniord[$uch])) { - self::$cache_uniord[$uch] = self::getUniord($uch); - } - return self::$cache_uniord[$uch]; - } - - /** - * Converts UTF-8 character to integer value.
    - * Invalid byte sequences will be replaced with 0xFFFD (replacement character)
    - * Based on: http://www.faqs.org/rfcs/rfc3629.html - *
    -	 *    Char. number range  |        UTF-8 octet sequence
    -	 *       (hexadecimal)    |              (binary)
    -	 *    --------------------+-----------------------------------------------
    -	 *    0000 0000-0000 007F | 0xxxxxxx
    -	 *    0000 0080-0000 07FF | 110xxxxx 10xxxxxx
    -	 *    0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
    -	 *    0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
    -	 *    ---------------------------------------------------------------------
    -	 *
    -	 *   ABFN notation:
    -	 *   ---------------------------------------------------------------------
    -	 *   UTF8-octets = *( UTF8-char )
    -	 *   UTF8-char   = UTF8-1 / UTF8-2 / UTF8-3 / UTF8-4
    -	 *   UTF8-1      = %x00-7F
    -	 *   UTF8-2      = %xC2-DF UTF8-tail
    -	 *
    -	 *   UTF8-3      = %xE0 %xA0-BF UTF8-tail / %xE1-EC 2( UTF8-tail ) /
    -	 *                 %xED %x80-9F UTF8-tail / %xEE-EF 2( UTF8-tail )
    -	 *   UTF8-4      = %xF0 %x90-BF 2( UTF8-tail ) / %xF1-F3 3( UTF8-tail ) /
    -	 *                 %xF4 %x80-8F 2( UTF8-tail )
    -	 *   UTF8-tail   = %x80-BF
    -	 *   ---------------------------------------------------------------------
    -	 * 
    - * @param $uch (string) character string to process. - * @return integer Unicode value - * @author Nicola Asuni - * @public static - */ - public static function getUniord($uch) { - if (function_exists('mb_convert_encoding')) { - list(, $char) = @unpack('N', mb_convert_encoding($uch, 'UCS-4BE', 'UTF-8')); - if ($char >= 0) { - return $char; - } - } - $bytes = array(); // array containing single character byte sequences - $countbytes = 0; - $numbytes = 1; // number of octetc needed to represent the UTF-8 character - $length = strlen($uch); - for ($i = 0; $i < $length; ++$i) { - $char = ord($uch[$i]); // get one string character at time - if ($countbytes == 0) { // get starting octect - if ($char <= 0x7F) { - return $char; // use the character "as is" because is ASCII - } elseif (($char >> 0x05) == 0x06) { // 2 bytes character (0x06 = 110 BIN) - $bytes[] = ($char - 0xC0) << 0x06; - ++$countbytes; - $numbytes = 2; - } elseif (($char >> 0x04) == 0x0E) { // 3 bytes character (0x0E = 1110 BIN) - $bytes[] = ($char - 0xE0) << 0x0C; - ++$countbytes; - $numbytes = 3; - } elseif (($char >> 0x03) == 0x1E) { // 4 bytes character (0x1E = 11110 BIN) - $bytes[] = ($char - 0xF0) << 0x12; - ++$countbytes; - $numbytes = 4; - } else { - // use replacement character for other invalid sequences - return 0xFFFD; - } - } elseif (($char >> 0x06) == 0x02) { // bytes 2, 3 and 4 must start with 0x02 = 10 BIN - $bytes[] = $char - 0x80; - ++$countbytes; - if ($countbytes == $numbytes) { - // compose UTF-8 bytes to a single unicode value - $char = $bytes[0]; - for ($j = 1; $j < $numbytes; ++$j) { - $char += ($bytes[$j] << (($numbytes - $j - 1) * 0x06)); - } - if ((($char >= 0xD800) AND ($char <= 0xDFFF)) OR ($char >= 0x10FFFF)) { - // The definition of UTF-8 prohibits encoding character numbers between - // U+D800 and U+DFFF, which are reserved for use with the UTF-16 - // encoding form (as surrogate pairs) and do not directly represent - // characters. - return 0xFFFD; // use replacement character - } else { - return $char; - } - } - } else { - // use replacement character for other invalid sequences - return 0xFFFD; - } - } - return 0xFFFD; - } - - /** - * Converts UTF-8 strings to codepoints array.
    - * Invalid byte sequences will be replaced with 0xFFFD (replacement character)
    - * @param $str (string) string to process. - * @param $isunicode (boolean) True when the documetn is in Unicode mode, false otherwise. - * @param $currentfont (array) Reference to current font array. - * @return array containing codepoints (UTF-8 characters values) - * @author Nicola Asuni - * @public static - */ - public static function UTF8StringToArray($str, $isunicode=true, &$currentfont) { - if ($isunicode) { - // requires PCRE unicode support turned on - $chars = TCPDF_STATIC::pregSplit('//','u', $str, -1, PREG_SPLIT_NO_EMPTY); - $carr = array_map(array('TCPDF_FONTS', 'uniord'), $chars); - } else { - $chars = str_split($str); - $carr = array_map('ord', $chars); - } - if (is_array($currentfont['subsetchars']) && is_array($carr)) { - $currentfont['subsetchars'] += array_fill_keys($carr, true); - } else { - $currentfont['subsetchars'] = array_merge($currentfont['subsetchars'], $carr); - } - return $carr; - } - - /** - * Converts UTF-8 strings to Latin1 when using the standard 14 core fonts.
    - * @param $str (string) string to process. - * @param $isunicode (boolean) True when the documetn is in Unicode mode, false otherwise. - * @param $currentfont (array) Reference to current font array. - * @return string - * @since 3.2.000 (2008-06-23) - * @public static - */ - public static function UTF8ToLatin1($str, $isunicode=true, &$currentfont) { - $unicode = self::UTF8StringToArray($str, $isunicode, $currentfont); // array containing UTF-8 unicode values - return self::UTF8ArrToLatin1($unicode); - } - - /** - * Converts UTF-8 strings to UTF16-BE.
    - * @param $str (string) string to process. - * @param $setbom (boolean) if true set the Byte Order Mark (BOM = 0xFEFF) - * @param $isunicode (boolean) True when the documetn is in Unicode mode, false otherwise. - * @param $currentfont (array) Reference to current font array. - * @return string - * @author Nicola Asuni - * @since 1.53.0.TC005 (2005-01-05) - * @public static - */ - public static function UTF8ToUTF16BE($str, $setbom=false, $isunicode=true, &$currentfont) { - if (!$isunicode) { - return $str; // string is not in unicode - } - $unicode = self::UTF8StringToArray($str, $isunicode, $currentfont); // array containing UTF-8 unicode values - return self::arrUTF8ToUTF16BE($unicode, $setbom); - } - - /** - * Reverse the RLT substrings using the Bidirectional Algorithm (http://unicode.org/reports/tr9/). - * @param $str (string) string to manipulate. - * @param $setbom (bool) if true set the Byte Order Mark (BOM = 0xFEFF) - * @param $forcertl (bool) if true forces RTL text direction - * @param $isunicode (boolean) True if the document is in Unicode mode, false otherwise. - * @param $currentfont (array) Reference to current font array. - * @return string - * @author Nicola Asuni - * @since 2.1.000 (2008-01-08) - * @public static - */ - public static function utf8StrRev($str, $setbom=false, $forcertl=false, $isunicode=true, &$currentfont) { - return self::utf8StrArrRev(self::UTF8StringToArray($str, $isunicode, $currentfont), $str, $setbom, $forcertl, $isunicode, $currentfont); - } - - /** - * Reverse the RLT substrings array using the Bidirectional Algorithm (http://unicode.org/reports/tr9/). - * @param $arr (array) array of unicode values. - * @param $str (string) string to manipulate (or empty value). - * @param $setbom (bool) if true set the Byte Order Mark (BOM = 0xFEFF) - * @param $forcertl (bool) if true forces RTL text direction - * @param $isunicode (boolean) True if the document is in Unicode mode, false otherwise. - * @param $currentfont (array) Reference to current font array. - * @return string - * @author Nicola Asuni - * @since 4.9.000 (2010-03-27) - * @public static - */ - public static function utf8StrArrRev($arr, $str='', $setbom=false, $forcertl=false, $isunicode=true, &$currentfont) { - return self::arrUTF8ToUTF16BE(self::utf8Bidi($arr, $str, $forcertl, $isunicode, $currentfont), $setbom); - } - - /** - * Reverse the RLT substrings using the Bidirectional Algorithm (http://unicode.org/reports/tr9/). - * @param $ta (array) array of characters composing the string. - * @param $str (string) string to process - * @param $forcertl (bool) if 'R' forces RTL, if 'L' forces LTR - * @param $isunicode (boolean) True if the document is in Unicode mode, false otherwise. - * @param $currentfont (array) Reference to current font array. - * @return array of unicode chars - * @author Nicola Asuni - * @since 2.4.000 (2008-03-06) - * @public static - */ - public static function utf8Bidi($ta, $str='', $forcertl=false, $isunicode=true, &$currentfont) { - // paragraph embedding level - $pel = 0; - // max level - $maxlevel = 0; - if (TCPDF_STATIC::empty_string($str)) { - // create string from array - $str = self::UTF8ArrSubString($ta, '', '', $isunicode); - } - // check if string contains arabic text - if (preg_match(TCPDF_FONT_DATA::$uni_RE_PATTERN_ARABIC, $str)) { - $arabic = true; - } else { - $arabic = false; - } - // check if string contains RTL text - if (!($forcertl OR $arabic OR preg_match(TCPDF_FONT_DATA::$uni_RE_PATTERN_RTL, $str))) { - return $ta; - } - - // get number of chars - $numchars = count($ta); - - if ($forcertl == 'R') { - $pel = 1; - } elseif ($forcertl == 'L') { - $pel = 0; - } else { - // P2. In each paragraph, find the first character of type L, AL, or R. - // P3. If a character is found in P2 and it is of type AL or R, then set the paragraph embedding level to one; otherwise, set it to zero. - for ($i=0; $i < $numchars; ++$i) { - $type = TCPDF_FONT_DATA::$uni_type[$ta[$i]]; - if ($type == 'L') { - $pel = 0; - break; - } elseif (($type == 'AL') OR ($type == 'R')) { - $pel = 1; - break; - } - } - } - - // Current Embedding Level - $cel = $pel; - // directional override status - $dos = 'N'; - $remember = array(); - // start-of-level-run - $sor = $pel % 2 ? 'R' : 'L'; - $eor = $sor; - - // Array of characters data - $chardata = Array(); - - // X1. Begin by setting the current embedding level to the paragraph embedding level. Set the directional override status to neutral. Process each character iteratively, applying rules X2 through X9. Only embedding levels from 0 to 61 are valid in this phase. - // In the resolution of levels in rules I1 and I2, the maximum embedding level of 62 can be reached. - for ($i=0; $i < $numchars; ++$i) { - if ($ta[$i] == TCPDF_FONT_DATA::$uni_RLE) { - // X2. With each RLE, compute the least greater odd embedding level. - // a. If this new level would be valid, then this embedding code is valid. Remember (push) the current embedding level and override status. Reset the current level to this new level, and reset the override status to neutral. - // b. If the new level would not be valid, then this code is invalid. Do not change the current level or override status. - $next_level = $cel + ($cel % 2) + 1; - if ($next_level < 62) { - $remember[] = array('num' => TCPDF_FONT_DATA::$uni_RLE, 'cel' => $cel, 'dos' => $dos); - $cel = $next_level; - $dos = 'N'; - $sor = $eor; - $eor = $cel % 2 ? 'R' : 'L'; - } - } elseif ($ta[$i] == TCPDF_FONT_DATA::$uni_LRE) { - // X3. With each LRE, compute the least greater even embedding level. - // a. If this new level would be valid, then this embedding code is valid. Remember (push) the current embedding level and override status. Reset the current level to this new level, and reset the override status to neutral. - // b. If the new level would not be valid, then this code is invalid. Do not change the current level or override status. - $next_level = $cel + 2 - ($cel % 2); - if ( $next_level < 62 ) { - $remember[] = array('num' => TCPDF_FONT_DATA::$uni_LRE, 'cel' => $cel, 'dos' => $dos); - $cel = $next_level; - $dos = 'N'; - $sor = $eor; - $eor = $cel % 2 ? 'R' : 'L'; - } - } elseif ($ta[$i] == TCPDF_FONT_DATA::$uni_RLO) { - // X4. With each RLO, compute the least greater odd embedding level. - // a. If this new level would be valid, then this embedding code is valid. Remember (push) the current embedding level and override status. Reset the current level to this new level, and reset the override status to right-to-left. - // b. If the new level would not be valid, then this code is invalid. Do not change the current level or override status. - $next_level = $cel + ($cel % 2) + 1; - if ($next_level < 62) { - $remember[] = array('num' => TCPDF_FONT_DATA::$uni_RLO, 'cel' => $cel, 'dos' => $dos); - $cel = $next_level; - $dos = 'R'; - $sor = $eor; - $eor = $cel % 2 ? 'R' : 'L'; - } - } elseif ($ta[$i] == TCPDF_FONT_DATA::$uni_LRO) { - // X5. With each LRO, compute the least greater even embedding level. - // a. If this new level would be valid, then this embedding code is valid. Remember (push) the current embedding level and override status. Reset the current level to this new level, and reset the override status to left-to-right. - // b. If the new level would not be valid, then this code is invalid. Do not change the current level or override status. - $next_level = $cel + 2 - ($cel % 2); - if ( $next_level < 62 ) { - $remember[] = array('num' => TCPDF_FONT_DATA::$uni_LRO, 'cel' => $cel, 'dos' => $dos); - $cel = $next_level; - $dos = 'L'; - $sor = $eor; - $eor = $cel % 2 ? 'R' : 'L'; - } - } elseif ($ta[$i] == TCPDF_FONT_DATA::$uni_PDF) { - // X7. With each PDF, determine the matching embedding or override code. If there was a valid matching code, restore (pop) the last remembered (pushed) embedding level and directional override. - if (count($remember)) { - $last = count($remember ) - 1; - if (($remember[$last]['num'] == TCPDF_FONT_DATA::$uni_RLE) OR - ($remember[$last]['num'] == TCPDF_FONT_DATA::$uni_LRE) OR - ($remember[$last]['num'] == TCPDF_FONT_DATA::$uni_RLO) OR - ($remember[$last]['num'] == TCPDF_FONT_DATA::$uni_LRO)) { - $match = array_pop($remember); - $cel = $match['cel']; - $dos = $match['dos']; - $sor = $eor; - $eor = ($cel > $match['cel'] ? $cel : $match['cel']) % 2 ? 'R' : 'L'; - } - } - } elseif (($ta[$i] != TCPDF_FONT_DATA::$uni_RLE) AND - ($ta[$i] != TCPDF_FONT_DATA::$uni_LRE) AND - ($ta[$i] != TCPDF_FONT_DATA::$uni_RLO) AND - ($ta[$i] != TCPDF_FONT_DATA::$uni_LRO) AND - ($ta[$i] != TCPDF_FONT_DATA::$uni_PDF)) { - // X6. For all types besides RLE, LRE, RLO, LRO, and PDF: - // a. Set the level of the current character to the current embedding level. - // b. Whenever the directional override status is not neutral, reset the current character type to the directional override status. - if ($dos != 'N') { - $chardir = $dos; - } else { - if (isset(TCPDF_FONT_DATA::$uni_type[$ta[$i]])) { - $chardir = TCPDF_FONT_DATA::$uni_type[$ta[$i]]; - } else { - $chardir = 'L'; - } - } - // stores string characters and other information - $chardata[] = array('char' => $ta[$i], 'level' => $cel, 'type' => $chardir, 'sor' => $sor, 'eor' => $eor); - } - } // end for each char - - // X8. All explicit directional embeddings and overrides are completely terminated at the end of each paragraph. Paragraph separators are not included in the embedding. - // X9. Remove all RLE, LRE, RLO, LRO, PDF, and BN codes. - // X10. The remaining rules are applied to each run of characters at the same level. For each run, determine the start-of-level-run (sor) and end-of-level-run (eor) type, either L or R. This depends on the higher of the two levels on either side of the boundary (at the start or end of the paragraph, the level of the 'other' run is the base embedding level). If the higher level is odd, the type is R; otherwise, it is L. - - // 3.3.3 Resolving Weak Types - // Weak types are now resolved one level run at a time. At level run boundaries where the type of the character on the other side of the boundary is required, the type assigned to sor or eor is used. - // Nonspacing marks are now resolved based on the previous characters. - $numchars = count($chardata); - - // W1. Examine each nonspacing mark (NSM) in the level run, and change the type of the NSM to the type of the previous character. If the NSM is at the start of the level run, it will get the type of sor. - $prevlevel = -1; // track level changes - $levcount = 0; // counts consecutive chars at the same level - for ($i=0; $i < $numchars; ++$i) { - if ($chardata[$i]['type'] == 'NSM') { - if ($levcount) { - $chardata[$i]['type'] = $chardata[$i]['sor']; - } elseif ($i > 0) { - $chardata[$i]['type'] = $chardata[($i-1)]['type']; - } - } - if ($chardata[$i]['level'] != $prevlevel) { - $levcount = 0; - } else { - ++$levcount; - } - $prevlevel = $chardata[$i]['level']; - } - - // W2. Search backward from each instance of a European number until the first strong type (R, L, AL, or sor) is found. If an AL is found, change the type of the European number to Arabic number. - $prevlevel = -1; - $levcount = 0; - for ($i=0; $i < $numchars; ++$i) { - if ($chardata[$i]['char'] == 'EN') { - for ($j=$levcount; $j >= 0; $j--) { - if ($chardata[$j]['type'] == 'AL') { - $chardata[$i]['type'] = 'AN'; - } elseif (($chardata[$j]['type'] == 'L') OR ($chardata[$j]['type'] == 'R')) { - break; - } - } - } - if ($chardata[$i]['level'] != $prevlevel) { - $levcount = 0; - } else { - ++$levcount; - } - $prevlevel = $chardata[$i]['level']; - } - - // W3. Change all ALs to R. - for ($i=0; $i < $numchars; ++$i) { - if ($chardata[$i]['type'] == 'AL') { - $chardata[$i]['type'] = 'R'; - } - } - - // W4. A single European separator between two European numbers changes to a European number. A single common separator between two numbers of the same type changes to that type. - $prevlevel = -1; - $levcount = 0; - for ($i=0; $i < $numchars; ++$i) { - if (($levcount > 0) AND (($i+1) < $numchars) AND ($chardata[($i+1)]['level'] == $prevlevel)) { - if (($chardata[$i]['type'] == 'ES') AND ($chardata[($i-1)]['type'] == 'EN') AND ($chardata[($i+1)]['type'] == 'EN')) { - $chardata[$i]['type'] = 'EN'; - } elseif (($chardata[$i]['type'] == 'CS') AND ($chardata[($i-1)]['type'] == 'EN') AND ($chardata[($i+1)]['type'] == 'EN')) { - $chardata[$i]['type'] = 'EN'; - } elseif (($chardata[$i]['type'] == 'CS') AND ($chardata[($i-1)]['type'] == 'AN') AND ($chardata[($i+1)]['type'] == 'AN')) { - $chardata[$i]['type'] = 'AN'; - } - } - if ($chardata[$i]['level'] != $prevlevel) { - $levcount = 0; - } else { - ++$levcount; - } - $prevlevel = $chardata[$i]['level']; - } - - // W5. A sequence of European terminators adjacent to European numbers changes to all European numbers. - $prevlevel = -1; - $levcount = 0; - for ($i=0; $i < $numchars; ++$i) { - if ($chardata[$i]['type'] == 'ET') { - if (($levcount > 0) AND ($chardata[($i-1)]['type'] == 'EN')) { - $chardata[$i]['type'] = 'EN'; - } else { - $j = $i+1; - while (($j < $numchars) AND ($chardata[$j]['level'] == $prevlevel)) { - if ($chardata[$j]['type'] == 'EN') { - $chardata[$i]['type'] = 'EN'; - break; - } elseif ($chardata[$j]['type'] != 'ET') { - break; - } - ++$j; - } - } - } - if ($chardata[$i]['level'] != $prevlevel) { - $levcount = 0; - } else { - ++$levcount; - } - $prevlevel = $chardata[$i]['level']; - } - - // W6. Otherwise, separators and terminators change to Other Neutral. - $prevlevel = -1; - $levcount = 0; - for ($i=0; $i < $numchars; ++$i) { - if (($chardata[$i]['type'] == 'ET') OR ($chardata[$i]['type'] == 'ES') OR ($chardata[$i]['type'] == 'CS')) { - $chardata[$i]['type'] = 'ON'; - } - if ($chardata[$i]['level'] != $prevlevel) { - $levcount = 0; - } else { - ++$levcount; - } - $prevlevel = $chardata[$i]['level']; - } - - //W7. Search backward from each instance of a European number until the first strong type (R, L, or sor) is found. If an L is found, then change the type of the European number to L. - $prevlevel = -1; - $levcount = 0; - for ($i=0; $i < $numchars; ++$i) { - if ($chardata[$i]['char'] == 'EN') { - for ($j=$levcount; $j >= 0; $j--) { - if ($chardata[$j]['type'] == 'L') { - $chardata[$i]['type'] = 'L'; - } elseif ($chardata[$j]['type'] == 'R') { - break; - } - } - } - if ($chardata[$i]['level'] != $prevlevel) { - $levcount = 0; - } else { - ++$levcount; - } - $prevlevel = $chardata[$i]['level']; - } - - // N1. A sequence of neutrals takes the direction of the surrounding strong text if the text on both sides has the same direction. European and Arabic numbers act as if they were R in terms of their influence on neutrals. Start-of-level-run (sor) and end-of-level-run (eor) are used at level run boundaries. - $prevlevel = -1; - $levcount = 0; - for ($i=0; $i < $numchars; ++$i) { - if (($levcount > 0) AND (($i+1) < $numchars) AND ($chardata[($i+1)]['level'] == $prevlevel)) { - if (($chardata[$i]['type'] == 'N') AND ($chardata[($i-1)]['type'] == 'L') AND ($chardata[($i+1)]['type'] == 'L')) { - $chardata[$i]['type'] = 'L'; - } elseif (($chardata[$i]['type'] == 'N') AND - (($chardata[($i-1)]['type'] == 'R') OR ($chardata[($i-1)]['type'] == 'EN') OR ($chardata[($i-1)]['type'] == 'AN')) AND - (($chardata[($i+1)]['type'] == 'R') OR ($chardata[($i+1)]['type'] == 'EN') OR ($chardata[($i+1)]['type'] == 'AN'))) { - $chardata[$i]['type'] = 'R'; - } elseif ($chardata[$i]['type'] == 'N') { - // N2. Any remaining neutrals take the embedding direction - $chardata[$i]['type'] = $chardata[$i]['sor']; - } - } elseif (($levcount == 0) AND (($i+1) < $numchars) AND ($chardata[($i+1)]['level'] == $prevlevel)) { - // first char - if (($chardata[$i]['type'] == 'N') AND ($chardata[$i]['sor'] == 'L') AND ($chardata[($i+1)]['type'] == 'L')) { - $chardata[$i]['type'] = 'L'; - } elseif (($chardata[$i]['type'] == 'N') AND - (($chardata[$i]['sor'] == 'R') OR ($chardata[$i]['sor'] == 'EN') OR ($chardata[$i]['sor'] == 'AN')) AND - (($chardata[($i+1)]['type'] == 'R') OR ($chardata[($i+1)]['type'] == 'EN') OR ($chardata[($i+1)]['type'] == 'AN'))) { - $chardata[$i]['type'] = 'R'; - } elseif ($chardata[$i]['type'] == 'N') { - // N2. Any remaining neutrals take the embedding direction - $chardata[$i]['type'] = $chardata[$i]['sor']; - } - } elseif (($levcount > 0) AND ((($i+1) == $numchars) OR (($i+1) < $numchars) AND ($chardata[($i+1)]['level'] != $prevlevel))) { - //last char - if (($chardata[$i]['type'] == 'N') AND ($chardata[($i-1)]['type'] == 'L') AND ($chardata[$i]['eor'] == 'L')) { - $chardata[$i]['type'] = 'L'; - } elseif (($chardata[$i]['type'] == 'N') AND - (($chardata[($i-1)]['type'] == 'R') OR ($chardata[($i-1)]['type'] == 'EN') OR ($chardata[($i-1)]['type'] == 'AN')) AND - (($chardata[$i]['eor'] == 'R') OR ($chardata[$i]['eor'] == 'EN') OR ($chardata[$i]['eor'] == 'AN'))) { - $chardata[$i]['type'] = 'R'; - } elseif ($chardata[$i]['type'] == 'N') { - // N2. Any remaining neutrals take the embedding direction - $chardata[$i]['type'] = $chardata[$i]['sor']; - } - } elseif ($chardata[$i]['type'] == 'N') { - // N2. Any remaining neutrals take the embedding direction - $chardata[$i]['type'] = $chardata[$i]['sor']; - } - if ($chardata[$i]['level'] != $prevlevel) { - $levcount = 0; - } else { - ++$levcount; - } - $prevlevel = $chardata[$i]['level']; - } - - // I1. For all characters with an even (left-to-right) embedding direction, those of type R go up one level and those of type AN or EN go up two levels. - // I2. For all characters with an odd (right-to-left) embedding direction, those of type L, EN or AN go up one level. - for ($i=0; $i < $numchars; ++$i) { - $odd = $chardata[$i]['level'] % 2; - if ($odd) { - if (($chardata[$i]['type'] == 'L') OR ($chardata[$i]['type'] == 'AN') OR ($chardata[$i]['type'] == 'EN')) { - $chardata[$i]['level'] += 1; - } - } else { - if ($chardata[$i]['type'] == 'R') { - $chardata[$i]['level'] += 1; - } elseif (($chardata[$i]['type'] == 'AN') OR ($chardata[$i]['type'] == 'EN')) { - $chardata[$i]['level'] += 2; - } - } - $maxlevel = max($chardata[$i]['level'],$maxlevel); - } - - // L1. On each line, reset the embedding level of the following characters to the paragraph embedding level: - // 1. Segment separators, - // 2. Paragraph separators, - // 3. Any sequence of whitespace characters preceding a segment separator or paragraph separator, and - // 4. Any sequence of white space characters at the end of the line. - for ($i=0; $i < $numchars; ++$i) { - if (($chardata[$i]['type'] == 'B') OR ($chardata[$i]['type'] == 'S')) { - $chardata[$i]['level'] = $pel; - } elseif ($chardata[$i]['type'] == 'WS') { - $j = $i+1; - while ($j < $numchars) { - if ((($chardata[$j]['type'] == 'B') OR ($chardata[$j]['type'] == 'S')) OR - (($j == ($numchars-1)) AND ($chardata[$j]['type'] == 'WS'))) { - $chardata[$i]['level'] = $pel; - break; - } elseif ($chardata[$j]['type'] != 'WS') { - break; - } - ++$j; - } - } - } - - // Arabic Shaping - // Cursively connected scripts, such as Arabic or Syriac, require the selection of positional character shapes that depend on adjacent characters. Shaping is logically applied after the Bidirectional Algorithm is used and is limited to characters within the same directional run. - if ($arabic) { - $endedletter = array(1569,1570,1571,1572,1573,1575,1577,1583,1584,1585,1586,1608,1688); - $alfletter = array(1570,1571,1573,1575); - $chardata2 = $chardata; - $laaletter = false; - $charAL = array(); - $x = 0; - for ($i=0; $i < $numchars; ++$i) { - if ((TCPDF_FONT_DATA::$uni_type[$chardata[$i]['char']] == 'AL') OR ($chardata[$i]['char'] == 32) OR ($chardata[$i]['char'] == 8204)) { - $charAL[$x] = $chardata[$i]; - $charAL[$x]['i'] = $i; - $chardata[$i]['x'] = $x; - ++$x; - } - } - $numAL = $x; - for ($i=0; $i < $numchars; ++$i) { - $thischar = $chardata[$i]; - if ($i > 0) { - $prevchar = $chardata[($i-1)]; - } else { - $prevchar = false; - } - if (($i+1) < $numchars) { - $nextchar = $chardata[($i+1)]; - } else { - $nextchar = false; - } - if (TCPDF_FONT_DATA::$uni_type[$thischar['char']] == 'AL') { - $x = $thischar['x']; - if ($x > 0) { - $prevchar = $charAL[($x-1)]; - } else { - $prevchar = false; - } - if (($x+1) < $numAL) { - $nextchar = $charAL[($x+1)]; - } else { - $nextchar = false; - } - // if laa letter - if (($prevchar !== false) AND ($prevchar['char'] == 1604) AND (in_array($thischar['char'], $alfletter))) { - $arabicarr = TCPDF_FONT_DATA::$uni_laa_array; - $laaletter = true; - if ($x > 1) { - $prevchar = $charAL[($x-2)]; - } else { - $prevchar = false; - } - } else { - $arabicarr = TCPDF_FONT_DATA::$uni_arabicsubst; - $laaletter = false; - } - if (($prevchar !== false) AND ($nextchar !== false) AND - ((TCPDF_FONT_DATA::$uni_type[$prevchar['char']] == 'AL') OR (TCPDF_FONT_DATA::$uni_type[$prevchar['char']] == 'NSM')) AND - ((TCPDF_FONT_DATA::$uni_type[$nextchar['char']] == 'AL') OR (TCPDF_FONT_DATA::$uni_type[$nextchar['char']] == 'NSM')) AND - ($prevchar['type'] == $thischar['type']) AND - ($nextchar['type'] == $thischar['type']) AND - ($nextchar['char'] != 1567)) { - if (in_array($prevchar['char'], $endedletter)) { - if (isset($arabicarr[$thischar['char']][2])) { - // initial - $chardata2[$i]['char'] = $arabicarr[$thischar['char']][2]; - } - } else { - if (isset($arabicarr[$thischar['char']][3])) { - // medial - $chardata2[$i]['char'] = $arabicarr[$thischar['char']][3]; - } - } - } elseif (($nextchar !== false) AND - ((TCPDF_FONT_DATA::$uni_type[$nextchar['char']] == 'AL') OR (TCPDF_FONT_DATA::$uni_type[$nextchar['char']] == 'NSM')) AND - ($nextchar['type'] == $thischar['type']) AND - ($nextchar['char'] != 1567)) { - if (isset($arabicarr[$chardata[$i]['char']][2])) { - // initial - $chardata2[$i]['char'] = $arabicarr[$thischar['char']][2]; - } - } elseif ((($prevchar !== false) AND - ((TCPDF_FONT_DATA::$uni_type[$prevchar['char']] == 'AL') OR (TCPDF_FONT_DATA::$uni_type[$prevchar['char']] == 'NSM')) AND - ($prevchar['type'] == $thischar['type'])) OR - (($nextchar !== false) AND ($nextchar['char'] == 1567))) { - // final - if (($i > 1) AND ($thischar['char'] == 1607) AND - ($chardata[$i-1]['char'] == 1604) AND - ($chardata[$i-2]['char'] == 1604)) { - //Allah Word - // mark characters to delete with false - $chardata2[$i-2]['char'] = false; - $chardata2[$i-1]['char'] = false; - $chardata2[$i]['char'] = 65010; - } else { - if (($prevchar !== false) AND in_array($prevchar['char'], $endedletter)) { - if (isset($arabicarr[$thischar['char']][0])) { - // isolated - $chardata2[$i]['char'] = $arabicarr[$thischar['char']][0]; - } - } else { - if (isset($arabicarr[$thischar['char']][1])) { - // final - $chardata2[$i]['char'] = $arabicarr[$thischar['char']][1]; - } - } - } - } elseif (isset($arabicarr[$thischar['char']][0])) { - // isolated - $chardata2[$i]['char'] = $arabicarr[$thischar['char']][0]; - } - // if laa letter - if ($laaletter) { - // mark characters to delete with false - $chardata2[($charAL[($x-1)]['i'])]['char'] = false; - } - } // end if AL (Arabic Letter) - } // end for each char - /* - * Combining characters that can occur with Arabic Shadda (0651 HEX, 1617 DEC) are replaced. - * Putting the combining mark and shadda in the same glyph allows us to avoid the two marks overlapping each other in an illegible manner. - */ - for ($i = 0; $i < ($numchars-1); ++$i) { - if (($chardata2[$i]['char'] == 1617) AND (isset(TCPDF_FONT_DATA::$uni_diacritics[($chardata2[$i+1]['char'])]))) { - // check if the subtitution font is defined on current font - if (isset($currentfont['cw'][(TCPDF_FONT_DATA::$uni_diacritics[($chardata2[$i+1]['char'])])])) { - $chardata2[$i]['char'] = false; - $chardata2[$i+1]['char'] = TCPDF_FONT_DATA::$uni_diacritics[($chardata2[$i+1]['char'])]; - } - } - } - // remove marked characters - foreach ($chardata2 as $key => $value) { - if ($value['char'] === false) { - unset($chardata2[$key]); - } - } - $chardata = array_values($chardata2); - $numchars = count($chardata); - unset($chardata2); - unset($arabicarr); - unset($laaletter); - unset($charAL); - } - - // L2. From the highest level found in the text to the lowest odd level on each line, including intermediate levels not actually present in the text, reverse any contiguous sequence of characters that are at that level or higher. - for ($j=$maxlevel; $j > 0; $j--) { - $ordarray = Array(); - $revarr = Array(); - $onlevel = false; - for ($i=0; $i < $numchars; ++$i) { - if ($chardata[$i]['level'] >= $j) { - $onlevel = true; - if (isset(TCPDF_FONT_DATA::$uni_mirror[$chardata[$i]['char']])) { - // L4. A character is depicted by a mirrored glyph if and only if (a) the resolved directionality of that character is R, and (b) the Bidi_Mirrored property value of that character is true. - $chardata[$i]['char'] = TCPDF_FONT_DATA::$uni_mirror[$chardata[$i]['char']]; - } - $revarr[] = $chardata[$i]; - } else { - if ($onlevel) { - $revarr = array_reverse($revarr); - $ordarray = array_merge($ordarray, $revarr); - $revarr = Array(); - $onlevel = false; - } - $ordarray[] = $chardata[$i]; - } - } - if ($onlevel) { - $revarr = array_reverse($revarr); - $ordarray = array_merge($ordarray, $revarr); - } - $chardata = $ordarray; - } - $ordarray = array(); - foreach ($chardata as $cd) { - $ordarray[] = $cd['char']; - // store char values for subsetting - $currentfont['subsetchars'][$cd['char']] = true; - } - return $ordarray; - } - -} // END OF TCPDF_FONTS CLASS - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/tcpdf_images.php b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/tcpdf_images.php deleted file mode 100644 index 5e504f2..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/tcpdf_images.php +++ /dev/null @@ -1,360 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : -// Static image methods used by the TCPDF class. -// -//============================================================+ - -/** - * @file - * This is a PHP class that contains static image methods for the TCPDF class.
    - * @package com.tecnick.tcpdf - * @author Nicola Asuni - * @version 1.0.005 - */ - -/** - * @class TCPDF_IMAGES - * Static image methods used by the TCPDF class. - * @package com.tecnick.tcpdf - * @brief PHP class for generating PDF documents without requiring external extensions. - * @version 1.0.005 - * @author Nicola Asuni - info@tecnick.com - */ -class TCPDF_IMAGES { - - /** - * Array of hinheritable SVG properties. - * @since 5.0.000 (2010-05-02) - * @public static - */ - public static $svginheritprop = array('clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cursor', 'direction', 'display', 'fill', 'fill-opacity', 'fill-rule', 'font', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'glyph-orientation-horizontal', 'glyph-orientation-vertical', 'image-rendering', 'kerning', 'letter-spacing', 'marker', 'marker-end', 'marker-mid', 'marker-start', 'pointer-events', 'shape-rendering', 'stroke', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke-width', 'text-anchor', 'text-rendering', 'visibility', 'word-spacing', 'writing-mode'); - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /** - * Return the image type given the file name or array returned by getimagesize() function. - * @param $imgfile (string) image file name - * @param $iminfo (array) array of image information returned by getimagesize() function. - * @return string image type - * @since 4.8.017 (2009-11-27) - * @public static - */ - public static function getImageFileType($imgfile, $iminfo=array()) { - $type = ''; - if (isset($iminfo['mime']) AND !empty($iminfo['mime'])) { - $mime = explode('/', $iminfo['mime']); - if ((count($mime) > 1) AND ($mime[0] == 'image') AND (!empty($mime[1]))) { - $type = strtolower(trim($mime[1])); - } - } - if (empty($type)) { - $fileinfo = pathinfo($imgfile); - if (isset($fileinfo['extension']) AND (!TCPDF_STATIC::empty_string($fileinfo['extension']))) { - $type = strtolower(trim($fileinfo['extension'])); - } - } - if ($type == 'jpg') { - $type = 'jpeg'; - } - return $type; - } - - /** - * Set the transparency for the given GD image. - * @param $new_image (image) GD image object - * @param $image (image) GD image object. - * return GD image object. - * @since 4.9.016 (2010-04-20) - * @public static - */ - public static function setGDImageTransparency($new_image, $image) { - // default transparency color (white) - $tcol = array('red' => 255, 'green' => 255, 'blue' => 255); - // transparency index - $tid = imagecolortransparent($image); - $palletsize = imagecolorstotal($image); - if (($tid >= 0) AND ($tid < $palletsize)) { - // get the colors for the transparency index - $tcol = imagecolorsforindex($image, $tid); - } - $tid = imagecolorallocate($new_image, $tcol['red'], $tcol['green'], $tcol['blue']); - imagefill($new_image, 0, 0, $tid); - imagecolortransparent($new_image, $tid); - return $new_image; - } - - /** - * Convert the loaded image to a PNG and then return a structure for the PDF creator. - * This function requires GD library and write access to the directory defined on K_PATH_CACHE constant. - * @param $image (image) Image object. - * @param $tempfile (string) Temporary file name. - * return image PNG image object. - * @since 4.9.016 (2010-04-20) - * @public static - */ - public static function _toPNG($image, $tempfile) { - // turn off interlaced mode - imageinterlace($image, 0); - // create temporary PNG image - imagepng($image, $tempfile); - // remove image from memory - imagedestroy($image); - // get PNG image data - $retvars = self::_parsepng($tempfile); - // tidy up by removing temporary image - unlink($tempfile); - return $retvars; - } - - /** - * Convert the loaded image to a JPEG and then return a structure for the PDF creator. - * This function requires GD library and write access to the directory defined on K_PATH_CACHE constant. - * @param $image (image) Image object. - * @param $quality (int) JPEG quality. - * @param $tempfile (string) Temporary file name. - * return image JPEG image object. - * @public static - */ - public static function _toJPEG($image, $quality, $tempfile) { - imagejpeg($image, $tempfile, $quality); - imagedestroy($image); - $retvars = self::_parsejpeg($tempfile); - // tidy up by removing temporary image - unlink($tempfile); - return $retvars; - } - - /** - * Extract info from a JPEG file without using the GD library. - * @param $file (string) image file to parse - * @return array structure containing the image data - * @public static - */ - public static function _parsejpeg($file) { - // check if is a local file - if (!@TCPDF_STATIC::file_exists($file)) { - return false; - } - $a = getimagesize($file); - if (empty($a)) { - //Missing or incorrect image file - return false; - } - if ($a[2] != 2) { - // Not a JPEG file - return false; - } - // bits per pixel - $bpc = isset($a['bits']) ? intval($a['bits']) : 8; - // number of image channels - if (!isset($a['channels'])) { - $channels = 3; - } else { - $channels = intval($a['channels']); - } - // default colour space - switch ($channels) { - case 1: { - $colspace = 'DeviceGray'; - break; - } - case 3: { - $colspace = 'DeviceRGB'; - break; - } - case 4: { - $colspace = 'DeviceCMYK'; - break; - } - default: { - $channels = 3; - $colspace = 'DeviceRGB'; - break; - } - } - // get file content - $data = file_get_contents($file); - // check for embedded ICC profile - $icc = array(); - $offset = 0; - while (($pos = strpos($data, "ICC_PROFILE\0", $offset)) !== false) { - // get ICC sequence length - $length = (TCPDF_STATIC::_getUSHORT($data, ($pos - 2)) - 16); - // marker sequence number - $msn = max(1, ord($data[($pos + 12)])); - // number of markers (total of APP2 used) - $nom = max(1, ord($data[($pos + 13)])); - // get sequence segment - $icc[($msn - 1)] = substr($data, ($pos + 14), $length); - // move forward to next sequence - $offset = ($pos + 14 + $length); - } - // order and compact ICC segments - if (count($icc) > 0) { - ksort($icc); - $icc = implode('', $icc); - if ((ord($icc[36]) != 0x61) OR (ord($icc[37]) != 0x63) OR (ord($icc[38]) != 0x73) OR (ord($icc[39]) != 0x70)) { - // invalid ICC profile - $icc = false; - } - } else { - $icc = false; - } - return array('w' => $a[0], 'h' => $a[1], 'ch' => $channels, 'icc' => $icc, 'cs' => $colspace, 'bpc' => $bpc, 'f' => 'DCTDecode', 'data' => $data); - } - - /** - * Extract info from a PNG file without using the GD library. - * @param $file (string) image file to parse - * @return array structure containing the image data - * @public static - */ - public static function _parsepng($file) { - $f = @fopen($file, 'rb'); - if ($f === false) { - // Can't open image file - return false; - } - //Check signature - if (fread($f, 8) != chr(137).'PNG'.chr(13).chr(10).chr(26).chr(10)) { - // Not a PNG file - return false; - } - //Read header chunk - fread($f, 4); - if (fread($f, 4) != 'IHDR') { - //Incorrect PNG file - return false; - } - $w = TCPDF_STATIC::_freadint($f); - $h = TCPDF_STATIC::_freadint($f); - $bpc = ord(fread($f, 1)); - $ct = ord(fread($f, 1)); - if ($ct == 0) { - $colspace = 'DeviceGray'; - } elseif ($ct == 2) { - $colspace = 'DeviceRGB'; - } elseif ($ct == 3) { - $colspace = 'Indexed'; - } else { - // alpha channel - fclose($f); - return 'pngalpha'; - } - if (ord(fread($f, 1)) != 0) { - // Unknown compression method - fclose($f); - return false; - } - if (ord(fread($f, 1)) != 0) { - // Unknown filter method - fclose($f); - return false; - } - if (ord(fread($f, 1)) != 0) { - // Interlacing not supported - fclose($f); - return false; - } - fread($f, 4); - $channels = ($ct == 2 ? 3 : 1); - $parms = '/DecodeParms << /Predictor 15 /Colors '.$channels.' /BitsPerComponent '.$bpc.' /Columns '.$w.' >>'; - //Scan chunks looking for palette, transparency and image data - $pal = ''; - $trns = ''; - $data = ''; - $icc = false; - $n = TCPDF_STATIC::_freadint($f); - do { - $type = fread($f, 4); - if ($type == 'PLTE') { - // read palette - $pal = TCPDF_STATIC::rfread($f, $n); - fread($f, 4); - } elseif ($type == 'tRNS') { - // read transparency info - $t = TCPDF_STATIC::rfread($f, $n); - if ($ct == 0) { // DeviceGray - $trns = array(ord($t[1])); - } elseif ($ct == 2) { // DeviceRGB - $trns = array(ord($t[1]), ord($t[3]), ord($t[5])); - } else { // Indexed - if ($n > 0) { - $trns = array(); - for ($i = 0; $i < $n; ++ $i) { - $trns[] = ord($t[$i]); - } - } - } - fread($f, 4); - } elseif ($type == 'IDAT') { - // read image data block - $data .= TCPDF_STATIC::rfread($f, $n); - fread($f, 4); - } elseif ($type == 'iCCP') { - // skip profile name - $len = 0; - while ((ord(fread($f, 1)) != 0) AND ($len < 80)) { - ++$len; - } - // get compression method - if (ord(fread($f, 1)) != 0) { - // Unknown filter method - fclose($f); - return false; - } - // read ICC Color Profile - $icc = TCPDF_STATIC::rfread($f, ($n - $len - 2)); - // decompress profile - $icc = gzuncompress($icc); - fread($f, 4); - } elseif ($type == 'IEND') { - break; - } else { - TCPDF_STATIC::rfread($f, $n + 4); - } - $n = TCPDF_STATIC::_freadint($f); - } while ($n); - if (($colspace == 'Indexed') AND (empty($pal))) { - // Missing palette - fclose($f); - return false; - } - fclose($f); - return array('w' => $w, 'h' => $h, 'ch' => $channels, 'icc' => $icc, 'cs' => $colspace, 'bpc' => $bpc, 'f' => 'FlateDecode', 'parms' => $parms, 'pal' => $pal, 'trns' => $trns, 'data' => $data); - } - -} // END OF TCPDF_IMAGES CLASS - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/tcpdf_static.php b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/tcpdf_static.php deleted file mode 100644 index 7d2c1f5..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/include/tcpdf_static.php +++ /dev/null @@ -1,2616 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : -// Static methods used by the TCPDF class. -// -//============================================================+ - -/** - * @file - * This is a PHP class that contains static methods for the TCPDF class.
    - * @package com.tecnick.tcpdf - * @author Nicola Asuni - * @version 1.1.2 - */ - -/** - * @class TCPDF_STATIC - * Static methods used by the TCPDF class. - * @package com.tecnick.tcpdf - * @brief PHP class for generating PDF documents without requiring external extensions. - * @version 1.1.1 - * @author Nicola Asuni - info@tecnick.com - */ -class TCPDF_STATIC { - - /** - * Current TCPDF version. - * @private static - */ - private static $tcpdf_version = '6.3.2'; - - /** - * String alias for total number of pages. - * @public static - */ - public static $alias_tot_pages = '{:ptp:}'; - - /** - * String alias for page number. - * @public static - */ - public static $alias_num_page = '{:pnp:}'; - - /** - * String alias for total number of pages in a single group. - * @public static - */ - public static $alias_group_tot_pages = '{:ptg:}'; - - /** - * String alias for group page number. - * @public static - */ - public static $alias_group_num_page = '{:png:}'; - - /** - * String alias for right shift compensation used to correctly align page numbers on the right. - * @public static - */ - public static $alias_right_shift = '{rsc:'; - - /** - * Encryption padding string. - * @public static - */ - public static $enc_padding = "\x28\xBF\x4E\x5E\x4E\x75\x8A\x41\x64\x00\x4E\x56\xFF\xFA\x01\x08\x2E\x2E\x00\xB6\xD0\x68\x3E\x80\x2F\x0C\xA9\xFE\x64\x53\x69\x7A"; - - /** - * ByteRange placemark used during digital signature process. - * @since 4.6.028 (2009-08-25) - * @public static - */ - public static $byterange_string = '/ByteRange[0 ********** ********** **********]'; - - /** - * Array page boxes names - * @public static - */ - public static $pageboxes = array('MediaBox', 'CropBox', 'BleedBox', 'TrimBox', 'ArtBox'); - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /** - * Return the current TCPDF version. - * @return TCPDF version string - * @since 5.9.012 (2010-11-10) - * @public static - */ - public static function getTCPDFVersion() { - return self::$tcpdf_version; - } - - /** - * Return the current TCPDF producer. - * @return TCPDF producer string - * @since 6.0.000 (2013-03-16) - * @public static - */ - public static function getTCPDFProducer() { - return "\x54\x43\x50\x44\x46\x20".self::getTCPDFVersion()."\x20\x28\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x74\x63\x70\x64\x66\x2e\x6f\x72\x67\x29"; - } - - /** - * Sets the current active configuration setting of magic_quotes_runtime (if the set_magic_quotes_runtime function exist) - * @param $mqr (boolean) FALSE for off, TRUE for on. - * @since 4.6.025 (2009-08-17) - * @public static - */ - public static function set_mqr($mqr) { - if (!defined('PHP_VERSION_ID')) { - $version = PHP_VERSION; - define('PHP_VERSION_ID', (($version[0] * 10000) + ($version[2] * 100) + $version[4])); - } - if (PHP_VERSION_ID < 50300) { - @set_magic_quotes_runtime($mqr); - } - } - - /** - * Gets the current active configuration setting of magic_quotes_runtime (if the get_magic_quotes_runtime function exist) - * @return Returns 0 if magic quotes runtime is off or get_magic_quotes_runtime doesn't exist, 1 otherwise. - * @since 4.6.025 (2009-08-17) - * @public static - */ - public static function get_mqr() { - if (!defined('PHP_VERSION_ID')) { - $version = PHP_VERSION; - define('PHP_VERSION_ID', (($version[0] * 10000) + ($version[2] * 100) + $version[4])); - } - if (PHP_VERSION_ID < 50300) { - return @get_magic_quotes_runtime(); - } - return 0; - } - - /** - * Check if the URL exist. - * @param $url (string) URL to check. - * @return Boolean true if the URl exist, false otherwise. - * @since 5.9.204 (2013-01-28) - * @public static - */ - public static function isValidURL($url) { - $headers = @get_headers($url); - return (strpos($headers[0], '200') !== false); - } - - /** - * Removes SHY characters from text. - * Unicode Data:
      - *
    • Name : SOFT HYPHEN, commonly abbreviated as SHY
    • - *
    • HTML Entity (decimal): "&#173;"
    • - *
    • HTML Entity (hex): "&#xad;"
    • - *
    • HTML Entity (named): "&shy;"
    • - *
    • How to type in Microsoft Windows: [Alt +00AD] or [Alt 0173]
    • - *
    • UTF-8 (hex): 0xC2 0xAD (c2ad)
    • - *
    • UTF-8 character: chr(194).chr(173)
    • - *
    - * @param $txt (string) input string - * @param $unicode (boolean) True if we are in unicode mode, false otherwise. - * @return string without SHY characters. - * @since (4.5.019) 2009-02-28 - * @public static - */ - public static function removeSHY($txt='', $unicode=true) { - $txt = preg_replace('/([\\xc2]{1}[\\xad]{1})/', '', $txt); - if (!$unicode) { - $txt = preg_replace('/([\\xad]{1})/', '', $txt); - } - return $txt; - } - - - /** - * Get the border mode accounting for multicell position (opens bottom side of multicell crossing pages) - * @param $brd (mixed) Indicates if borders must be drawn around the cell block. The value can be a number:
    • 0: no border (default)
    • 1: frame
    or a string containing some or all of the following characters (in any order):
    • L: left
    • T: top
    • R: right
    • B: bottom
    or an array of line styles for each border group: array('LTRB' => array('width' => 2, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0))) - * @param $position (string) multicell position: 'start', 'middle', 'end' - * @param $opencell (boolean) True when the cell is left open at the page bottom, false otherwise. - * @return border mode array - * @since 4.4.002 (2008-12-09) - * @public static - */ - public static function getBorderMode($brd, $position='start', $opencell=true) { - if ((!$opencell) OR empty($brd)) { - return $brd; - } - if ($brd == 1) { - $brd = 'LTRB'; - } - if (is_string($brd)) { - // convert string to array - $slen = strlen($brd); - $newbrd = array(); - for ($i = 0; $i < $slen; ++$i) { - $newbrd[$brd[$i]] = array('cap' => 'square', 'join' => 'miter'); - } - $brd = $newbrd; - } - foreach ($brd as $border => $style) { - switch ($position) { - case 'start': { - if (strpos($border, 'B') !== false) { - // remove bottom line - $newkey = str_replace('B', '', $border); - if (strlen($newkey) > 0) { - $brd[$newkey] = $style; - } - unset($brd[$border]); - } - break; - } - case 'middle': { - if (strpos($border, 'B') !== false) { - // remove bottom line - $newkey = str_replace('B', '', $border); - if (strlen($newkey) > 0) { - $brd[$newkey] = $style; - } - unset($brd[$border]); - $border = $newkey; - } - if (strpos($border, 'T') !== false) { - // remove bottom line - $newkey = str_replace('T', '', $border); - if (strlen($newkey) > 0) { - $brd[$newkey] = $style; - } - unset($brd[$border]); - } - break; - } - case 'end': { - if (strpos($border, 'T') !== false) { - // remove bottom line - $newkey = str_replace('T', '', $border); - if (strlen($newkey) > 0) { - $brd[$newkey] = $style; - } - unset($brd[$border]); - } - break; - } - } - } - return $brd; - } - - /** - * Determine whether a string is empty. - * @param $str (string) string to be checked - * @return boolean true if string is empty - * @since 4.5.044 (2009-04-16) - * @public static - */ - public static function empty_string($str) { - return (is_null($str) OR (is_string($str) AND (strlen($str) == 0))); - } - - /** - * Returns a temporary filename for caching object on filesystem. - * @param $type (string) Type of file (name of the subdir on the tcpdf cache folder). - * @param $file_id (string) TCPDF file_id. - * @return string filename. - * @since 4.5.000 (2008-12-31) - * @public static - */ - public static function getObjFilename($type='tmp', $file_id='') { - return tempnam(K_PATH_CACHE, '__tcpdf_'.$file_id.'_'.$type.'_'.md5(TCPDF_STATIC::getRandomSeed()).'_'); - } - - /** - * Add "\" before "\", "(" and ")" - * @param $s (string) string to escape. - * @return string escaped string. - * @public static - */ - public static function _escape($s) { - // the chr(13) substitution fixes the Bugs item #1421290. - return strtr($s, array(')' => '\\)', '(' => '\\(', '\\' => '\\\\', chr(13) => '\r')); - } - - /** - * Escape some special characters (< > &) for XML output. - * @param $str (string) Input string to convert. - * @return converted string - * @since 5.9.121 (2011-09-28) - * @public static - */ - public static function _escapeXML($str) { - $replaceTable = array("\0" => '', '&' => '&', '<' => '<', '>' => '>'); - $str = strtr($str, $replaceTable); - return $str; - } - - /** - * Creates a copy of a class object - * @param $object (object) class object to be cloned - * @return cloned object - * @since 4.5.029 (2009-03-19) - * @public static - */ - public static function objclone($object) { - if (($object instanceof Imagick) AND (version_compare(phpversion('imagick'), '3.0.1') !== 1)) { - // on the versions after 3.0.1 the clone() method was deprecated in favour of clone keyword - return @$object->clone(); - } - return @clone($object); - } - - /** - * Output input data and compress it if possible. - * @param $data (string) Data to output. - * @param $length (int) Data length in bytes. - * @since 5.9.086 - * @public static - */ - public static function sendOutputData($data, $length) { - if (!isset($_SERVER['HTTP_ACCEPT_ENCODING']) OR empty($_SERVER['HTTP_ACCEPT_ENCODING'])) { - // the content length may vary if the server is using compression - header('Content-Length: '.$length); - } - echo $data; - } - - /** - * Replace page number aliases with number. - * @param $page (string) Page content. - * @param $replace (array) Array of replacements (array keys are replacement strings, values are alias arrays). - * @param $diff (int) If passed, this will be set to the total char number difference between alias and replacements. - * @return replaced page content and updated $diff parameter as array. - * @public static - */ - public static function replacePageNumAliases($page, $replace, $diff=0) { - foreach ($replace as $rep) { - foreach ($rep[3] as $a) { - if (strpos($page, $a) !== false) { - $page = str_replace($a, $rep[0], $page); - $diff += ($rep[2] - $rep[1]); - } - } - } - return array($page, $diff); - } - - /** - * Returns timestamp in seconds from formatted date-time. - * @param $date (string) Formatted date-time. - * @return int seconds. - * @since 5.9.152 (2012-03-23) - * @public static - */ - public static function getTimestamp($date) { - if (($date[0] == 'D') AND ($date[1] == ':')) { - // remove date prefix if present - $date = substr($date, 2); - } - return strtotime($date); - } - - /** - * Returns a formatted date-time. - * @param $time (int) Time in seconds. - * @return string escaped date string. - * @since 5.9.152 (2012-03-23) - * @public static - */ - public static function getFormattedDate($time) { - return substr_replace(date('YmdHisO', intval($time)), '\'', (0 - 2), 0).'\''; - } - - /** - * Returns a string containing random data to be used as a seed for encryption methods. - * @param $seed (string) starting seed value - * @return string containing random data - * @author Nicola Asuni - * @since 5.9.006 (2010-10-19) - * @public static - */ - public static function getRandomSeed($seed='') { - $rnd = uniqid(rand().microtime(true), true); - if (function_exists('posix_getpid')) { - $rnd .= posix_getpid(); - } - if (function_exists('openssl_random_pseudo_bytes') AND (strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN')) { - // this is not used on windows systems because it is very slow for a know bug - $rnd .= openssl_random_pseudo_bytes(512); - } else { - for ($i = 0; $i < 23; ++$i) { - $rnd .= uniqid('', true); - } - } - return $rnd.$seed.__FILE__.serialize($_SERVER).microtime(true); - } - - /** - * Encrypts a string using MD5 and returns it's value as a binary string. - * @param $str (string) input string - * @return String MD5 encrypted binary string - * @since 2.0.000 (2008-01-02) - * @public static - */ - public static function _md5_16($str) { - return pack('H*', md5($str)); - } - - /** - * Returns the input text exrypted using AES algorithm and the specified key. - * This method requires openssl or mcrypt. Text is padded to 16bytes blocks - * @param $key (string) encryption key - * @param $text (String) input text to be encrypted - * @return String encrypted text - * @author Nicola Asuni - * @since 5.0.005 (2010-05-11) - * @public static - */ - public static function _AES($key, $text) { - // padding (RFC 2898, PKCS #5: Password-Based Cryptography Specification Version 2.0) - $padding = 16 - (strlen($text) % 16); - $text .= str_repeat(chr($padding), $padding); - if (extension_loaded('openssl')) { - $iv = openssl_random_pseudo_bytes (openssl_cipher_iv_length('aes-256-cbc')); - $text = openssl_encrypt($text, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv); - return $iv.substr($text, 0, -16); - } - $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC), MCRYPT_RAND); - $text = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $text, MCRYPT_MODE_CBC, $iv); - $text = $iv.$text; - return $text; - } - - /** - * Returns the input text exrypted using AES algorithm and the specified key. - * This method requires openssl or mcrypt. Text is not padded - * @param $key (string) encryption key - * @param $text (String) input text to be encrypted - * @return String encrypted text - * @author Nicola Asuni - * @since TODO - * @public static - */ - public static function _AESnopad($key, $text) { - if (extension_loaded('openssl')) { - $iv = str_repeat("\x00", openssl_cipher_iv_length('aes-256-cbc')); - $text = openssl_encrypt($text, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv); - return substr($text, 0, -16); - } - $iv = str_repeat("\x00", mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC)); - $text = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $text, MCRYPT_MODE_CBC, $iv); - return $text; - } - - /** - * Returns the input text encrypted using RC4 algorithm and the specified key. - * RC4 is the standard encryption algorithm used in PDF format - * @param $key (string) Encryption key. - * @param $text (String) Input text to be encrypted. - * @param $last_enc_key (String) Reference to last RC4 key encrypted. - * @param $last_enc_key_c (String) Reference to last RC4 computed key. - * @return String encrypted text - * @since 2.0.000 (2008-01-02) - * @author Klemen Vodopivec, Nicola Asuni - * @public static - */ - public static function _RC4($key, $text, &$last_enc_key, &$last_enc_key_c) { - if (function_exists('mcrypt_encrypt') AND ($out = @mcrypt_encrypt(MCRYPT_ARCFOUR, $key, $text, MCRYPT_MODE_STREAM, ''))) { - // try to use mcrypt function if exist - return $out; - } - if ($last_enc_key != $key) { - $k = str_repeat($key, ((256 / strlen($key)) + 1)); - $rc4 = range(0, 255); - $j = 0; - for ($i = 0; $i < 256; ++$i) { - $t = $rc4[$i]; - $j = ($j + $t + ord($k[$i])) % 256; - $rc4[$i] = $rc4[$j]; - $rc4[$j] = $t; - } - $last_enc_key = $key; - $last_enc_key_c = $rc4; - } else { - $rc4 = $last_enc_key_c; - } - $len = strlen($text); - $a = 0; - $b = 0; - $out = ''; - for ($i = 0; $i < $len; ++$i) { - $a = ($a + 1) % 256; - $t = $rc4[$a]; - $b = ($b + $t) % 256; - $rc4[$a] = $rc4[$b]; - $rc4[$b] = $t; - $k = $rc4[($rc4[$a] + $rc4[$b]) % 256]; - $out .= chr(ord($text[$i]) ^ $k); - } - return $out; - } - - /** - * Return the permission code used on encryption (P value). - * @param $permissions (Array) the set of permissions (specify the ones you want to block). - * @param $mode (int) encryption strength: 0 = RC4 40 bit; 1 = RC4 128 bit; 2 = AES 128 bit; 3 = AES 256 bit. - * @since 5.0.005 (2010-05-12) - * @author Nicola Asuni - * @public static - */ - public static function getUserPermissionCode($permissions, $mode=0) { - $options = array( - 'owner' => 2, // bit 2 -- inverted logic: cleared by default - 'print' => 4, // bit 3 - 'modify' => 8, // bit 4 - 'copy' => 16, // bit 5 - 'annot-forms' => 32, // bit 6 - 'fill-forms' => 256, // bit 9 - 'extract' => 512, // bit 10 - 'assemble' => 1024,// bit 11 - 'print-high' => 2048 // bit 12 - ); - $protection = 2147422012; // 32 bit: (01111111 11111111 00001111 00111100) - foreach ($permissions as $permission) { - if (isset($options[$permission])) { - if (($mode > 0) OR ($options[$permission] <= 32)) { - // set only valid permissions - if ($options[$permission] == 2) { - // the logic for bit 2 is inverted (cleared by default) - $protection += $options[$permission]; - } else { - $protection -= $options[$permission]; - } - } - } - } - return $protection; - } - - /** - * Convert hexadecimal string to string - * @param $bs (string) byte-string to convert - * @return String - * @since 5.0.005 (2010-05-12) - * @author Nicola Asuni - * @public static - */ - public static function convertHexStringToString($bs) { - $string = ''; // string to be returned - $bslength = strlen($bs); - if (($bslength % 2) != 0) { - // padding - $bs .= '0'; - ++$bslength; - } - for ($i = 0; $i < $bslength; $i += 2) { - $string .= chr(hexdec($bs[$i].$bs[($i + 1)])); - } - return $string; - } - - /** - * Convert string to hexadecimal string (byte string) - * @param $s (string) string to convert - * @return byte string - * @since 5.0.010 (2010-05-17) - * @author Nicola Asuni - * @public static - */ - public static function convertStringToHexString($s) { - $bs = ''; - $chars = preg_split('//', $s, -1, PREG_SPLIT_NO_EMPTY); - foreach ($chars as $c) { - $bs .= sprintf('%02s', dechex(ord($c))); - } - return $bs; - } - - /** - * Convert encryption P value to a string of bytes, low-order byte first. - * @param $protection (string) 32bit encryption permission value (P value) - * @return String - * @since 5.0.005 (2010-05-12) - * @author Nicola Asuni - * @public static - */ - public static function getEncPermissionsString($protection) { - $binprot = sprintf('%032b', $protection); - $str = chr(bindec(substr($binprot, 24, 8))); - $str .= chr(bindec(substr($binprot, 16, 8))); - $str .= chr(bindec(substr($binprot, 8, 8))); - $str .= chr(bindec(substr($binprot, 0, 8))); - return $str; - } - - /** - * Encode a name object. - * @param $name (string) Name object to encode. - * @return (string) Encoded name object. - * @author Nicola Asuni - * @since 5.9.097 (2011-06-23) - * @public static - */ - public static function encodeNameObject($name) { - $escname = ''; - $length = strlen($name); - for ($i = 0; $i < $length; ++$i) { - $chr = $name[$i]; - if (preg_match('/[0-9a-zA-Z#_=-]/', $chr) == 1) { - $escname .= $chr; - } else { - $escname .= sprintf('#%02X', ord($chr)); - } - } - return $escname; - } - - /** - * Convert JavaScript form fields properties array to Annotation Properties array. - * @param $prop (array) javascript field properties. Possible values are described on official Javascript for Acrobat API reference. - * @param $spot_colors (array) Reference to spot colors array. - * @param $rtl (boolean) True if in Right-To-Left text direction mode, false otherwise. - * @return array of annotation properties - * @author Nicola Asuni - * @since 4.8.000 (2009-09-06) - * @public static - */ - public static function getAnnotOptFromJSProp($prop, &$spot_colors, $rtl=false) { - if (isset($prop['aopt']) AND is_array($prop['aopt'])) { - // the annotation options area lready defined - return $prop['aopt']; - } - $opt = array(); // value to be returned - // alignment: Controls how the text is laid out within the text field. - if (isset($prop['alignment'])) { - switch ($prop['alignment']) { - case 'left': { - $opt['q'] = 0; - break; - } - case 'center': { - $opt['q'] = 1; - break; - } - case 'right': { - $opt['q'] = 2; - break; - } - default: { - $opt['q'] = ($rtl)?2:0; - break; - } - } - } - // lineWidth: Specifies the thickness of the border when stroking the perimeter of a field's rectangle. - if (isset($prop['lineWidth'])) { - $linewidth = intval($prop['lineWidth']); - } else { - $linewidth = 1; - } - // borderStyle: The border style for a field. - if (isset($prop['borderStyle'])) { - switch ($prop['borderStyle']) { - case 'border.d': - case 'dashed': { - $opt['border'] = array(0, 0, $linewidth, array(3, 2)); - $opt['bs'] = array('w'=>$linewidth, 's'=>'D', 'd'=>array(3, 2)); - break; - } - case 'border.b': - case 'beveled': { - $opt['border'] = array(0, 0, $linewidth); - $opt['bs'] = array('w'=>$linewidth, 's'=>'B'); - break; - } - case 'border.i': - case 'inset': { - $opt['border'] = array(0, 0, $linewidth); - $opt['bs'] = array('w'=>$linewidth, 's'=>'I'); - break; - } - case 'border.u': - case 'underline': { - $opt['border'] = array(0, 0, $linewidth); - $opt['bs'] = array('w'=>$linewidth, 's'=>'U'); - break; - } - case 'border.s': - case 'solid': { - $opt['border'] = array(0, 0, $linewidth); - $opt['bs'] = array('w'=>$linewidth, 's'=>'S'); - break; - } - default: { - break; - } - } - } - if (isset($prop['border']) AND is_array($prop['border'])) { - $opt['border'] = $prop['border']; - } - if (!isset($opt['mk'])) { - $opt['mk'] = array(); - } - if (!isset($opt['mk']['if'])) { - $opt['mk']['if'] = array(); - } - $opt['mk']['if']['a'] = array(0.5, 0.5); - // buttonAlignX: Controls how space is distributed from the left of the button face with respect to the icon. - if (isset($prop['buttonAlignX'])) { - $opt['mk']['if']['a'][0] = $prop['buttonAlignX']; - } - // buttonAlignY: Controls how unused space is distributed from the bottom of the button face with respect to the icon. - if (isset($prop['buttonAlignY'])) { - $opt['mk']['if']['a'][1] = $prop['buttonAlignY']; - } - // buttonFitBounds: If true, the extent to which the icon may be scaled is set to the bounds of the button field. - if (isset($prop['buttonFitBounds']) AND ($prop['buttonFitBounds'] == 'true')) { - $opt['mk']['if']['fb'] = true; - } - // buttonScaleHow: Controls how the icon is scaled (if necessary) to fit inside the button face. - if (isset($prop['buttonScaleHow'])) { - switch ($prop['buttonScaleHow']) { - case 'scaleHow.proportional': { - $opt['mk']['if']['s'] = 'P'; - break; - } - case 'scaleHow.anamorphic': { - $opt['mk']['if']['s'] = 'A'; - break; - } - } - } - // buttonScaleWhen: Controls when an icon is scaled to fit inside the button face. - if (isset($prop['buttonScaleWhen'])) { - switch ($prop['buttonScaleWhen']) { - case 'scaleWhen.always': { - $opt['mk']['if']['sw'] = 'A'; - break; - } - case 'scaleWhen.never': { - $opt['mk']['if']['sw'] = 'N'; - break; - } - case 'scaleWhen.tooBig': { - $opt['mk']['if']['sw'] = 'B'; - break; - } - case 'scaleWhen.tooSmall': { - $opt['mk']['if']['sw'] = 'S'; - break; - } - } - } - // buttonPosition: Controls how the text and the icon of the button are positioned with respect to each other within the button face. - if (isset($prop['buttonPosition'])) { - switch ($prop['buttonPosition']) { - case 0: - case 'position.textOnly': { - $opt['mk']['tp'] = 0; - break; - } - case 1: - case 'position.iconOnly': { - $opt['mk']['tp'] = 1; - break; - } - case 2: - case 'position.iconTextV': { - $opt['mk']['tp'] = 2; - break; - } - case 3: - case 'position.textIconV': { - $opt['mk']['tp'] = 3; - break; - } - case 4: - case 'position.iconTextH': { - $opt['mk']['tp'] = 4; - break; - } - case 5: - case 'position.textIconH': { - $opt['mk']['tp'] = 5; - break; - } - case 6: - case 'position.overlay': { - $opt['mk']['tp'] = 6; - break; - } - } - } - // fillColor: Specifies the background color for a field. - if (isset($prop['fillColor'])) { - if (is_array($prop['fillColor'])) { - $opt['mk']['bg'] = $prop['fillColor']; - } else { - $opt['mk']['bg'] = TCPDF_COLORS::convertHTMLColorToDec($prop['fillColor'], $spot_colors); - } - } - // strokeColor: Specifies the stroke color for a field that is used to stroke the rectangle of the field with a line as large as the line width. - if (isset($prop['strokeColor'])) { - if (is_array($prop['strokeColor'])) { - $opt['mk']['bc'] = $prop['strokeColor']; - } else { - $opt['mk']['bc'] = TCPDF_COLORS::convertHTMLColorToDec($prop['strokeColor'], $spot_colors); - } - } - // rotation: The rotation of a widget in counterclockwise increments. - if (isset($prop['rotation'])) { - $opt['mk']['r'] = $prop['rotation']; - } - // charLimit: Limits the number of characters that a user can type into a text field. - if (isset($prop['charLimit'])) { - $opt['maxlen'] = intval($prop['charLimit']); - } - if (!isset($ff)) { - $ff = 0; // default value - } - // readonly: The read-only characteristic of a field. If a field is read-only, the user can see the field but cannot change it. - if (isset($prop['readonly']) AND ($prop['readonly'] == 'true')) { - $ff += 1 << 0; - } - // required: Specifies whether a field requires a value. - if (isset($prop['required']) AND ($prop['required'] == 'true')) { - $ff += 1 << 1; - } - // multiline: Controls how text is wrapped within the field. - if (isset($prop['multiline']) AND ($prop['multiline'] == 'true')) { - $ff += 1 << 12; - } - // password: Specifies whether the field should display asterisks when data is entered in the field. - if (isset($prop['password']) AND ($prop['password'] == 'true')) { - $ff += 1 << 13; - } - // NoToggleToOff: If set, exactly one radio button shall be selected at all times; selecting the currently selected button has no effect. - if (isset($prop['NoToggleToOff']) AND ($prop['NoToggleToOff'] == 'true')) { - $ff += 1 << 14; - } - // Radio: If set, the field is a set of radio buttons. - if (isset($prop['Radio']) AND ($prop['Radio'] == 'true')) { - $ff += 1 << 15; - } - // Pushbutton: If set, the field is a pushbutton that does not retain a permanent value. - if (isset($prop['Pushbutton']) AND ($prop['Pushbutton'] == 'true')) { - $ff += 1 << 16; - } - // Combo: If set, the field is a combo box; if clear, the field is a list box. - if (isset($prop['Combo']) AND ($prop['Combo'] == 'true')) { - $ff += 1 << 17; - } - // editable: Controls whether a combo box is editable. - if (isset($prop['editable']) AND ($prop['editable'] == 'true')) { - $ff += 1 << 18; - } - // Sort: If set, the field's option items shall be sorted alphabetically. - if (isset($prop['Sort']) AND ($prop['Sort'] == 'true')) { - $ff += 1 << 19; - } - // fileSelect: If true, sets the file-select flag in the Options tab of the text field (Field is Used for File Selection). - if (isset($prop['fileSelect']) AND ($prop['fileSelect'] == 'true')) { - $ff += 1 << 20; - } - // multipleSelection: If true, indicates that a list box allows a multiple selection of items. - if (isset($prop['multipleSelection']) AND ($prop['multipleSelection'] == 'true')) { - $ff += 1 << 21; - } - // doNotSpellCheck: If true, spell checking is not performed on this editable text field. - if (isset($prop['doNotSpellCheck']) AND ($prop['doNotSpellCheck'] == 'true')) { - $ff += 1 << 22; - } - // doNotScroll: If true, the text field does not scroll and the user, therefore, is limited by the rectangular region designed for the field. - if (isset($prop['doNotScroll']) AND ($prop['doNotScroll'] == 'true')) { - $ff += 1 << 23; - } - // comb: If set to true, the field background is drawn as series of boxes (one for each character in the value of the field) and each character of the content is drawn within those boxes. The number of boxes drawn is determined from the charLimit property. It applies only to text fields. The setter will also raise if any of the following field properties are also set multiline, password, and fileSelect. A side-effect of setting this property is that the doNotScroll property is also set. - if (isset($prop['comb']) AND ($prop['comb'] == 'true')) { - $ff += 1 << 24; - } - // radiosInUnison: If false, even if a group of radio buttons have the same name and export value, they behave in a mutually exclusive fashion, like HTML radio buttons. - if (isset($prop['radiosInUnison']) AND ($prop['radiosInUnison'] == 'true')) { - $ff += 1 << 25; - } - // richText: If true, the field allows rich text formatting. - if (isset($prop['richText']) AND ($prop['richText'] == 'true')) { - $ff += 1 << 25; - } - // commitOnSelChange: Controls whether a field value is committed after a selection change. - if (isset($prop['commitOnSelChange']) AND ($prop['commitOnSelChange'] == 'true')) { - $ff += 1 << 26; - } - $opt['ff'] = $ff; - // defaultValue: The default value of a field - that is, the value that the field is set to when the form is reset. - if (isset($prop['defaultValue'])) { - $opt['dv'] = $prop['defaultValue']; - } - $f = 4; // default value for annotation flags - // readonly: The read-only characteristic of a field. If a field is read-only, the user can see the field but cannot change it. - if (isset($prop['readonly']) AND ($prop['readonly'] == 'true')) { - $f += 1 << 6; - } - // display: Controls whether the field is hidden or visible on screen and in print. - if (isset($prop['display'])) { - if ($prop['display'] == 'display.visible') { - // - } elseif ($prop['display'] == 'display.hidden') { - $f += 1 << 1; - } elseif ($prop['display'] == 'display.noPrint') { - $f -= 1 << 2; - } elseif ($prop['display'] == 'display.noView') { - $f += 1 << 5; - } - } - $opt['f'] = $f; - // currentValueIndices: Reads and writes single or multiple values of a list box or combo box. - if (isset($prop['currentValueIndices']) AND is_array($prop['currentValueIndices'])) { - $opt['i'] = $prop['currentValueIndices']; - } - // value: The value of the field data that the user has entered. - if (isset($prop['value'])) { - if (is_array($prop['value'])) { - $opt['opt'] = array(); - foreach ($prop['value'] AS $key => $optval) { - // exportValues: An array of strings representing the export values for the field. - if (isset($prop['exportValues'][$key])) { - $opt['opt'][$key] = array($prop['exportValues'][$key], $prop['value'][$key]); - } else { - $opt['opt'][$key] = $prop['value'][$key]; - } - } - } else { - $opt['v'] = $prop['value']; - } - } - // richValue: This property specifies the text contents and formatting of a rich text field. - if (isset($prop['richValue'])) { - $opt['rv'] = $prop['richValue']; - } - // submitName: If nonempty, used during form submission instead of name. Only applicable if submitting in HTML format (that is, URL-encoded). - if (isset($prop['submitName'])) { - $opt['tm'] = $prop['submitName']; - } - // name: Fully qualified field name. - if (isset($prop['name'])) { - $opt['t'] = $prop['name']; - } - // userName: The user name (short description string) of the field. - if (isset($prop['userName'])) { - $opt['tu'] = $prop['userName']; - } - // highlight: Defines how a button reacts when a user clicks it. - if (isset($prop['highlight'])) { - switch ($prop['highlight']) { - case 'none': - case 'highlight.n': { - $opt['h'] = 'N'; - break; - } - case 'invert': - case 'highlight.i': { - $opt['h'] = 'i'; - break; - } - case 'push': - case 'highlight.p': { - $opt['h'] = 'P'; - break; - } - case 'outline': - case 'highlight.o': { - $opt['h'] = 'O'; - break; - } - } - } - // Unsupported options: - // - calcOrderIndex: Changes the calculation order of fields in the document. - // - delay: Delays the redrawing of a field's appearance. - // - defaultStyle: This property defines the default style attributes for the form field. - // - style: Allows the user to set the glyph style of a check box or radio button. - // - textColor, textFont, textSize - return $opt; - } - - /** - * Format the page numbers. - * This method can be overriden for custom formats. - * @param $num (int) page number - * @since 4.2.005 (2008-11-06) - * @public static - */ - public static function formatPageNumber($num) { - return number_format((float)$num, 0, '', '.'); - } - - /** - * Format the page numbers on the Table Of Content. - * This method can be overriden for custom formats. - * @param $num (int) page number - * @since 4.5.001 (2009-01-04) - * @see addTOC(), addHTMLTOC() - * @public static - */ - public static function formatTOCPageNumber($num) { - return number_format((float)$num, 0, '', '.'); - } - - /** - * Extracts the CSS properties from a CSS string. - * @param $cssdata (string) string containing CSS definitions. - * @return An array where the keys are the CSS selectors and the values are the CSS properties. - * @author Nicola Asuni - * @since 5.1.000 (2010-05-25) - * @public static - */ - public static function extractCSSproperties($cssdata) { - if (empty($cssdata)) { - return array(); - } - // remove comments - $cssdata = preg_replace('/\/\*[^\*]*\*\//', '', $cssdata); - // remove newlines and multiple spaces - $cssdata = preg_replace('/[\s]+/', ' ', $cssdata); - // remove some spaces - $cssdata = preg_replace('/[\s]*([;:\{\}]{1})[\s]*/', '\\1', $cssdata); - // remove empty blocks - $cssdata = preg_replace('/([^\}\{]+)\{\}/', '', $cssdata); - // replace media type parenthesis - $cssdata = preg_replace('/@media[\s]+([^\{]*)\{/i', '@media \\1§', $cssdata); - $cssdata = preg_replace('/\}\}/si', '}§', $cssdata); - // trim string - $cssdata = trim($cssdata); - // find media blocks (all, braille, embossed, handheld, print, projection, screen, speech, tty, tv) - $cssblocks = array(); - $matches = array(); - if (preg_match_all('/@media[\s]+([^\§]*)§([^§]*)§/i', $cssdata, $matches) > 0) { - foreach ($matches[1] as $key => $type) { - $cssblocks[$type] = $matches[2][$key]; - } - // remove media blocks - $cssdata = preg_replace('/@media[\s]+([^\§]*)§([^§]*)§/i', '', $cssdata); - } - // keep 'all' and 'print' media, other media types are discarded - if (isset($cssblocks['all']) AND !empty($cssblocks['all'])) { - $cssdata .= $cssblocks['all']; - } - if (isset($cssblocks['print']) AND !empty($cssblocks['print'])) { - $cssdata .= $cssblocks['print']; - } - // reset css blocks array - $cssblocks = array(); - $matches = array(); - // explode css data string into array - if (substr($cssdata, -1) == '}') { - // remove last parethesis - $cssdata = substr($cssdata, 0, -1); - } - $matches = explode('}', $cssdata); - foreach ($matches as $key => $block) { - // index 0 contains the CSS selector, index 1 contains CSS properties - $cssblocks[$key] = explode('{', $block); - if (!isset($cssblocks[$key][1])) { - // remove empty definitions - unset($cssblocks[$key]); - } - } - // split groups of selectors (comma-separated list of selectors) - foreach ($cssblocks as $key => $block) { - if (strpos($block[0], ',') > 0) { - $selectors = explode(',', $block[0]); - foreach ($selectors as $sel) { - $cssblocks[] = array(0 => trim($sel), 1 => $block[1]); - } - unset($cssblocks[$key]); - } - } - // covert array to selector => properties - $cssdata = array(); - foreach ($cssblocks as $block) { - $selector = $block[0]; - // calculate selector's specificity - $matches = array(); - $a = 0; // the declaration is not from is a 'style' attribute - $b = intval(preg_match_all('/[\#]/', $selector, $matches)); // number of ID attributes - $c = intval(preg_match_all('/[\[\.]/', $selector, $matches)); // number of other attributes - $c += intval(preg_match_all('/[\:]link|visited|hover|active|focus|target|lang|enabled|disabled|checked|indeterminate|root|nth|first|last|only|empty|contains|not/i', $selector, $matches)); // number of pseudo-classes - $d = intval(preg_match_all('/[\>\+\~\s]{1}[a-zA-Z0-9]+/', ' '.$selector, $matches)); // number of element names - $d += intval(preg_match_all('/[\:][\:]/', $selector, $matches)); // number of pseudo-elements - $specificity = $a.$b.$c.$d; - // add specificity to the beginning of the selector - $cssdata[$specificity.' '.$selector] = $block[1]; - } - // sort selectors alphabetically to account for specificity - ksort($cssdata, SORT_STRING); - // return array - return $cssdata; - } - - /** - * Cleanup HTML code (requires HTML Tidy library). - * @param $html (string) htmlcode to fix - * @param $default_css (string) CSS commands to add - * @param $tagvs (array) parameters for setHtmlVSpace method - * @param $tidy_options (array) options for tidy_parse_string function - * @param $tagvspaces (array) Array of vertical spaces for tags. - * @return string XHTML code cleaned up - * @author Nicola Asuni - * @since 5.9.017 (2010-11-16) - * @see setHtmlVSpace() - * @public static - */ - public static function fixHTMLCode($html, $default_css='', $tagvs='', $tidy_options='', &$tagvspaces) { - // configure parameters for HTML Tidy - if ($tidy_options === '') { - $tidy_options = array ( - 'clean' => 1, - 'drop-empty-paras' => 0, - 'drop-proprietary-attributes' => 1, - 'fix-backslash' => 1, - 'hide-comments' => 1, - 'join-styles' => 1, - 'lower-literals' => 1, - 'merge-divs' => 1, - 'merge-spans' => 1, - 'output-xhtml' => 1, - 'word-2000' => 1, - 'wrap' => 0, - 'output-bom' => 0, - //'char-encoding' => 'utf8', - //'input-encoding' => 'utf8', - //'output-encoding' => 'utf8' - ); - } - // clean up the HTML code - $tidy = tidy_parse_string($html, $tidy_options); - // fix the HTML - $tidy->cleanRepair(); - // get the CSS part - $tidy_head = tidy_get_head($tidy); - $css = $tidy_head->value; - $css = preg_replace('/]+)>/ims', ''; - // get the body part - $tidy_body = tidy_get_body($tidy); - $html = $tidy_body->value; - // fix some self-closing tags - $html = str_replace('
    ', '
    ', $html); - // remove some empty tag blocks - $html = preg_replace('/]*)><\/div>/', '', $html); - $html = preg_replace('/]*)><\/p>/', '', $html); - if ($tagvs !== '') { - // set vertical space for some XHTML tags - $tagvspaces = $tagvs; - } - // return the cleaned XHTML code + CSS - return $css.$html; - } - - /** - * Returns true if the CSS selector is valid for the selected HTML tag - * @param $dom (array) array of HTML tags and properties - * @param $key (int) key of the current HTML tag - * @param $selector (string) CSS selector string - * @return true if the selector is valid, false otherwise - * @since 5.1.000 (2010-05-25) - * @public static - */ - public static function isValidCSSSelectorForTag($dom, $key, $selector) { - $valid = false; // value to be returned - $tag = $dom[$key]['value']; - $class = array(); - if (isset($dom[$key]['attribute']['class']) AND !empty($dom[$key]['attribute']['class'])) { - $class = explode(' ', strtolower($dom[$key]['attribute']['class'])); - } - $id = ''; - if (isset($dom[$key]['attribute']['id']) AND !empty($dom[$key]['attribute']['id'])) { - $id = strtolower($dom[$key]['attribute']['id']); - } - $selector = preg_replace('/([\>\+\~\s]{1})([\.]{1})([^\>\+\~\s]*)/si', '\\1*.\\3', $selector); - $matches = array(); - if (preg_match_all('/([\>\+\~\s]{1})([a-zA-Z0-9\*]+)([^\>\+\~\s]*)/si', $selector, $matches, PREG_PATTERN_ORDER | PREG_OFFSET_CAPTURE) > 0) { - $parentop = array_pop($matches[1]); - $operator = $parentop[0]; - $offset = $parentop[1]; - $lasttag = array_pop($matches[2]); - $lasttag = strtolower(trim($lasttag[0])); - if (($lasttag == '*') OR ($lasttag == $tag)) { - // the last element on selector is our tag or 'any tag' - $attrib = array_pop($matches[3]); - $attrib = strtolower(trim($attrib[0])); - if (!empty($attrib)) { - // check if matches class, id, attribute, pseudo-class or pseudo-element - switch ($attrib[0]) { - case '.': { // class - if (in_array(substr($attrib, 1), $class)) { - $valid = true; - } - break; - } - case '#': { // ID - if (substr($attrib, 1) == $id) { - $valid = true; - } - break; - } - case '[': { // attribute - $attrmatch = array(); - if (preg_match('/\[([a-zA-Z0-9]*)[\s]*([\~\^\$\*\|\=]*)[\s]*["]?([^"\]]*)["]?\]/i', $attrib, $attrmatch) > 0) { - $att = strtolower($attrmatch[1]); - $val = $attrmatch[3]; - if (isset($dom[$key]['attribute'][$att])) { - switch ($attrmatch[2]) { - case '=': { - if ($dom[$key]['attribute'][$att] == $val) { - $valid = true; - } - break; - } - case '~=': { - if (in_array($val, explode(' ', $dom[$key]['attribute'][$att]))) { - $valid = true; - } - break; - } - case '^=': { - if ($val == substr($dom[$key]['attribute'][$att], 0, strlen($val))) { - $valid = true; - } - break; - } - case '$=': { - if ($val == substr($dom[$key]['attribute'][$att], -strlen($val))) { - $valid = true; - } - break; - } - case '*=': { - if (strpos($dom[$key]['attribute'][$att], $val) !== false) { - $valid = true; - } - break; - } - case '|=': { - if ($dom[$key]['attribute'][$att] == $val) { - $valid = true; - } elseif (preg_match('/'.$val.'[\-]{1}/i', $dom[$key]['attribute'][$att]) > 0) { - $valid = true; - } - break; - } - default: { - $valid = true; - } - } - } - } - break; - } - case ':': { // pseudo-class or pseudo-element - if ($attrib[1] == ':') { // pseudo-element - // pseudo-elements are not supported! - // (::first-line, ::first-letter, ::before, ::after) - } else { // pseudo-class - // pseudo-classes are not supported! - // (:root, :nth-child(n), :nth-last-child(n), :nth-of-type(n), :nth-last-of-type(n), :first-child, :last-child, :first-of-type, :last-of-type, :only-child, :only-of-type, :empty, :link, :visited, :active, :hover, :focus, :target, :lang(fr), :enabled, :disabled, :checked) - } - break; - } - } // end of switch - } else { - $valid = true; - } - if ($valid AND ($offset > 0)) { - $valid = false; - // check remaining selector part - $selector = substr($selector, 0, $offset); - switch ($operator) { - case ' ': { // descendant of an element - while ($dom[$key]['parent'] > 0) { - if (self::isValidCSSSelectorForTag($dom, $dom[$key]['parent'], $selector)) { - $valid = true; - break; - } else { - $key = $dom[$key]['parent']; - } - } - break; - } - case '>': { // child of an element - $valid = self::isValidCSSSelectorForTag($dom, $dom[$key]['parent'], $selector); - break; - } - case '+': { // immediately preceded by an element - for ($i = ($key - 1); $i > $dom[$key]['parent']; --$i) { - if ($dom[$i]['tag'] AND $dom[$i]['opening']) { - $valid = self::isValidCSSSelectorForTag($dom, $i, $selector); - break; - } - } - break; - } - case '~': { // preceded by an element - for ($i = ($key - 1); $i > $dom[$key]['parent']; --$i) { - if ($dom[$i]['tag'] AND $dom[$i]['opening']) { - if (self::isValidCSSSelectorForTag($dom, $i, $selector)) { - break; - } - } - } - break; - } - } - } - } - } - return $valid; - } - - /** - * Returns the styles array that apply for the selected HTML tag. - * @param $dom (array) array of HTML tags and properties - * @param $key (int) key of the current HTML tag - * @param $css (array) array of CSS properties - * @return array containing CSS properties - * @since 5.1.000 (2010-05-25) - * @public static - */ - public static function getCSSdataArray($dom, $key, $css) { - $cssarray = array(); // style to be returned - // get parent CSS selectors - $selectors = array(); - if (isset($dom[($dom[$key]['parent'])]['csssel'])) { - $selectors = $dom[($dom[$key]['parent'])]['csssel']; - } - // get all styles that apply - foreach($css as $selector => $style) { - $pos = strpos($selector, ' '); - // get specificity - $specificity = substr($selector, 0, $pos); - // remove specificity - $selector = substr($selector, $pos); - // check if this selector apply to current tag - if (self::isValidCSSSelectorForTag($dom, $key, $selector)) { - if (!in_array($selector, $selectors)) { - // add style if not already added on parent selector - $cssarray[] = array('k' => $selector, 's' => $specificity, 'c' => $style); - $selectors[] = $selector; - } - } - } - if (isset($dom[$key]['attribute']['style'])) { - // attach inline style (latest properties have high priority) - $cssarray[] = array('k' => '', 's' => '1000', 'c' => $dom[$key]['attribute']['style']); - } - // order the css array to account for specificity - $cssordered = array(); - foreach ($cssarray as $key => $val) { - $skey = sprintf('%04d', $key); - $cssordered[$val['s'].'_'.$skey] = $val; - } - // sort selectors alphabetically to account for specificity - ksort($cssordered, SORT_STRING); - return array($selectors, $cssordered); - } - - /** - * Compact CSS data array into single string. - * @param $css (array) array of CSS properties - * @return string containing merged CSS properties - * @since 5.9.070 (2011-04-19) - * @public static - */ - public static function getTagStyleFromCSSarray($css) { - $tagstyle = ''; // value to be returned - foreach ($css as $style) { - // split single css commands - $csscmds = explode(';', $style['c']); - foreach ($csscmds as $cmd) { - if (!empty($cmd)) { - $pos = strpos($cmd, ':'); - if ($pos !== false) { - $cmd = substr($cmd, 0, ($pos + 1)); - if (strpos($tagstyle, $cmd) !== false) { - // remove duplicate commands (last commands have high priority) - $tagstyle = preg_replace('/'.$cmd.'[^;]+/i', '', $tagstyle); - } - } - } - } - $tagstyle .= ';'.$style['c']; - } - // remove multiple semicolons - $tagstyle = preg_replace('/[;]+/', ';', $tagstyle); - return $tagstyle; - } - - /** - * Returns the Roman representation of an integer number - * @param $number (int) number to convert - * @return string roman representation of the specified number - * @since 4.4.004 (2008-12-10) - * @public static - */ - public static function intToRoman($number) { - $roman = ''; - while ($number >= 1000) { - $roman .= 'M'; - $number -= 1000; - } - while ($number >= 900) { - $roman .= 'CM'; - $number -= 900; - } - while ($number >= 500) { - $roman .= 'D'; - $number -= 500; - } - while ($number >= 400) { - $roman .= 'CD'; - $number -= 400; - } - while ($number >= 100) { - $roman .= 'C'; - $number -= 100; - } - while ($number >= 90) { - $roman .= 'XC'; - $number -= 90; - } - while ($number >= 50) { - $roman .= 'L'; - $number -= 50; - } - while ($number >= 40) { - $roman .= 'XL'; - $number -= 40; - } - while ($number >= 10) { - $roman .= 'X'; - $number -= 10; - } - while ($number >= 9) { - $roman .= 'IX'; - $number -= 9; - } - while ($number >= 5) { - $roman .= 'V'; - $number -= 5; - } - while ($number >= 4) { - $roman .= 'IV'; - $number -= 4; - } - while ($number >= 1) { - $roman .= 'I'; - --$number; - } - return $roman; - } - - /** - * Find position of last occurrence of a substring in a string - * @param $haystack (string) The string to search in. - * @param $needle (string) substring to search. - * @param $offset (int) May be specified to begin searching an arbitrary number of characters into the string. - * @return Returns the position where the needle exists. Returns FALSE if the needle was not found. - * @since 4.8.038 (2010-03-13) - * @public static - */ - public static function revstrpos($haystack, $needle, $offset = 0) { - $length = strlen($haystack); - $offset = ($offset > 0)?($length - $offset):abs($offset); - $pos = strpos(strrev($haystack), strrev($needle), $offset); - return ($pos === false)?false:($length - $pos - strlen($needle)); - } - - /** - * Returns an array of hyphenation patterns. - * @param $file (string) TEX file containing hypenation patterns. TEX pattrns can be downloaded from http://www.ctan.org/tex-archive/language/hyph-utf8/tex/generic/hyph-utf8/patterns/ - * @return array of hyphenation patterns - * @author Nicola Asuni - * @since 4.9.012 (2010-04-12) - * @public static - */ - public static function getHyphenPatternsFromTEX($file) { - // TEX patterns are available at: - // http://www.ctan.org/tex-archive/language/hyph-utf8/tex/generic/hyph-utf8/patterns/ - $data = file_get_contents($file); - $patterns = array(); - // remove comments - $data = preg_replace('/\%[^\n]*/', '', $data); - // extract the patterns part - preg_match('/\\\\patterns\{([^\}]*)\}/i', $data, $matches); - $data = trim(substr($matches[0], 10, -1)); - // extract each pattern - $patterns_array = preg_split('/[\s]+/', $data); - // create new language array of patterns - $patterns = array(); - foreach($patterns_array as $val) { - if (!TCPDF_STATIC::empty_string($val)) { - $val = trim($val); - $val = str_replace('\'', '\\\'', $val); - $key = preg_replace('/[0-9]+/', '', $val); - $patterns[$key] = $val; - } - } - return $patterns; - } - - /** - * Get the Path-Painting Operators. - * @param $style (string) Style of rendering. Possible values are: - *
      - *
    • S or D: Stroke the path.
    • - *
    • s or d: Close and stroke the path.
    • - *
    • f or F: Fill the path, using the nonzero winding number rule to determine the region to fill.
    • - *
    • f* or F*: Fill the path, using the even-odd rule to determine the region to fill.
    • - *
    • B or FD or DF: Fill and then stroke the path, using the nonzero winding number rule to determine the region to fill.
    • - *
    • B* or F*D or DF*: Fill and then stroke the path, using the even-odd rule to determine the region to fill.
    • - *
    • b or fd or df: Close, fill, and then stroke the path, using the nonzero winding number rule to determine the region to fill.
    • - *
    • b or f*d or df*: Close, fill, and then stroke the path, using the even-odd rule to determine the region to fill.
    • - *
    • CNZ: Clipping mode using the even-odd rule to determine which regions lie inside the clipping path.
    • - *
    • CEO: Clipping mode using the nonzero winding number rule to determine which regions lie inside the clipping path
    • - *
    • n: End the path object without filling or stroking it.
    • - *
    - * @param $default (string) default style - * @author Nicola Asuni - * @since 5.0.000 (2010-04-30) - * @public static - */ - public static function getPathPaintOperator($style, $default='S') { - $op = ''; - switch($style) { - case 'S': - case 'D': { - $op = 'S'; - break; - } - case 's': - case 'd': { - $op = 's'; - break; - } - case 'f': - case 'F': { - $op = 'f'; - break; - } - case 'f*': - case 'F*': { - $op = 'f*'; - break; - } - case 'B': - case 'FD': - case 'DF': { - $op = 'B'; - break; - } - case 'B*': - case 'F*D': - case 'DF*': { - $op = 'B*'; - break; - } - case 'b': - case 'fd': - case 'df': { - $op = 'b'; - break; - } - case 'b*': - case 'f*d': - case 'df*': { - $op = 'b*'; - break; - } - case 'CNZ': { - $op = 'W n'; - break; - } - case 'CEO': { - $op = 'W* n'; - break; - } - case 'n': { - $op = 'n'; - break; - } - default: { - if (!empty($default)) { - $op = self::getPathPaintOperator($default, ''); - } else { - $op = ''; - } - } - } - return $op; - } - - /** - * Get the product of two SVG tranformation matrices - * @param $ta (array) first SVG tranformation matrix - * @param $tb (array) second SVG tranformation matrix - * @return transformation array - * @author Nicola Asuni - * @since 5.0.000 (2010-05-02) - * @public static - */ - public static function getTransformationMatrixProduct($ta, $tb) { - $tm = array(); - $tm[0] = ($ta[0] * $tb[0]) + ($ta[2] * $tb[1]); - $tm[1] = ($ta[1] * $tb[0]) + ($ta[3] * $tb[1]); - $tm[2] = ($ta[0] * $tb[2]) + ($ta[2] * $tb[3]); - $tm[3] = ($ta[1] * $tb[2]) + ($ta[3] * $tb[3]); - $tm[4] = ($ta[0] * $tb[4]) + ($ta[2] * $tb[5]) + $ta[4]; - $tm[5] = ($ta[1] * $tb[4]) + ($ta[3] * $tb[5]) + $ta[5]; - return $tm; - } - - /** - * Get the tranformation matrix from SVG transform attribute - * @param $attribute (string) transformation - * @return array of transformations - * @author Nicola Asuni - * @since 5.0.000 (2010-05-02) - * @public static - */ - public static function getSVGTransformMatrix($attribute) { - // identity matrix - $tm = array(1, 0, 0, 1, 0, 0); - $transform = array(); - if (preg_match_all('/(matrix|translate|scale|rotate|skewX|skewY)[\s]*\(([^\)]+)\)/si', $attribute, $transform, PREG_SET_ORDER) > 0) { - foreach ($transform as $key => $data) { - if (!empty($data[2])) { - $a = 1; - $b = 0; - $c = 0; - $d = 1; - $e = 0; - $f = 0; - $regs = array(); - switch ($data[1]) { - case 'matrix': { - if (preg_match('/([a-z0-9\-\.]+)[\,\s]+([a-z0-9\-\.]+)[\,\s]+([a-z0-9\-\.]+)[\,\s]+([a-z0-9\-\.]+)[\,\s]+([a-z0-9\-\.]+)[\,\s]+([a-z0-9\-\.]+)/si', $data[2], $regs)) { - $a = $regs[1]; - $b = $regs[2]; - $c = $regs[3]; - $d = $regs[4]; - $e = $regs[5]; - $f = $regs[6]; - } - break; - } - case 'translate': { - if (preg_match('/([a-z0-9\-\.]+)[\,\s]+([a-z0-9\-\.]+)/si', $data[2], $regs)) { - $e = $regs[1]; - $f = $regs[2]; - } elseif (preg_match('/([a-z0-9\-\.]+)/si', $data[2], $regs)) { - $e = $regs[1]; - } - break; - } - case 'scale': { - if (preg_match('/([a-z0-9\-\.]+)[\,\s]+([a-z0-9\-\.]+)/si', $data[2], $regs)) { - $a = $regs[1]; - $d = $regs[2]; - } elseif (preg_match('/([a-z0-9\-\.]+)/si', $data[2], $regs)) { - $a = $regs[1]; - $d = $a; - } - break; - } - case 'rotate': { - if (preg_match('/([0-9\-\.]+)[\,\s]+([a-z0-9\-\.]+)[\,\s]+([a-z0-9\-\.]+)/si', $data[2], $regs)) { - $ang = deg2rad($regs[1]); - $x = $regs[2]; - $y = $regs[3]; - $a = cos($ang); - $b = sin($ang); - $c = -$b; - $d = $a; - $e = ($x * (1 - $a)) - ($y * $c); - $f = ($y * (1 - $d)) - ($x * $b); - } elseif (preg_match('/([0-9\-\.]+)/si', $data[2], $regs)) { - $ang = deg2rad($regs[1]); - $a = cos($ang); - $b = sin($ang); - $c = -$b; - $d = $a; - $e = 0; - $f = 0; - } - break; - } - case 'skewX': { - if (preg_match('/([0-9\-\.]+)/si', $data[2], $regs)) { - $c = tan(deg2rad($regs[1])); - } - break; - } - case 'skewY': { - if (preg_match('/([0-9\-\.]+)/si', $data[2], $regs)) { - $b = tan(deg2rad($regs[1])); - } - break; - } - } - $tm = self::getTransformationMatrixProduct($tm, array($a, $b, $c, $d, $e, $f)); - } - } - } - return $tm; - } - - /** - * Returns the angle in radiants between two vectors - * @param $x1 (int) X coordinate of first vector point - * @param $y1 (int) Y coordinate of first vector point - * @param $x2 (int) X coordinate of second vector point - * @param $y2 (int) Y coordinate of second vector point - * @author Nicola Asuni - * @since 5.0.000 (2010-05-04) - * @public static - */ - public static function getVectorsAngle($x1, $y1, $x2, $y2) { - $dprod = ($x1 * $x2) + ($y1 * $y2); - $dist1 = sqrt(($x1 * $x1) + ($y1 * $y1)); - $dist2 = sqrt(($x2 * $x2) + ($y2 * $y2)); - $angle = acos($dprod / ($dist1 * $dist2)); - if (is_nan($angle)) { - $angle = M_PI; - } - if ((($x1 * $y2) - ($x2 * $y1)) < 0) { - $angle *= -1; - } - return $angle; - } - - /** - * Split string by a regular expression. - * This is a wrapper for the preg_split function to avoid the bug: https://bugs.php.net/bug.php?id=45850 - * @param $pattern (string) The regular expression pattern to search for without the modifiers, as a string. - * @param $modifiers (string) The modifiers part of the pattern, - * @param $subject (string) The input string. - * @param $limit (int) If specified, then only substrings up to limit are returned with the rest of the string being placed in the last substring. A limit of -1, 0 or NULL means "no limit" and, as is standard across PHP, you can use NULL to skip to the flags parameter. - * @param $flags (int) The flags as specified on the preg_split PHP function. - * @return Returns an array containing substrings of subject split along boundaries matched by pattern.modifier - * @author Nicola Asuni - * @since 6.0.023 - * @public static - */ - public static function pregSplit($pattern, $modifiers, $subject, $limit=NULL, $flags=NULL) { - // the bug only happens on PHP 5.2 when using the u modifier - if ((strpos($modifiers, 'u') === FALSE) OR (count(preg_split('//u', "\n\t", -1, PREG_SPLIT_NO_EMPTY)) == 2)) { - return preg_split($pattern.$modifiers, $subject, $limit, $flags); - } - // preg_split is bugged - try alternative solution - $ret = array(); - while (($nl = strpos($subject, "\n")) !== FALSE) { - $ret = array_merge($ret, preg_split($pattern.$modifiers, substr($subject, 0, $nl), $limit, $flags)); - $ret[] = "\n"; - $subject = substr($subject, ($nl + 1)); - } - if (strlen($subject) > 0) { - $ret = array_merge($ret, preg_split($pattern.$modifiers, $subject, $limit, $flags)); - } - return $ret; - } - - /** - * Wrapper to use fopen only with local files - * @param filename (string) Name of the file to open - * @param $mode (string) - * @return Returns a file pointer resource on success, or FALSE on error. - * @public static - */ - public static function fopenLocal($filename, $mode) { - if (strpos($filename, '://') === false) { - $filename = 'file://'.$filename; - } elseif (stream_is_local($filename) !== true) { - return false; - } - return fopen($filename, $mode); - } - - /** - * Check if the URL exist. - * @param url (string) URL to check. - * @return Returns TRUE if the URL exists; FALSE otherwise. - * @public static - */ - public static function url_exists($url) { - $crs = curl_init(); - curl_setopt($crs, CURLOPT_URL, $url); - curl_setopt($crs, CURLOPT_NOBODY, true); - curl_setopt($crs, CURLOPT_FAILONERROR, true); - if ((ini_get('open_basedir') == '') && (!ini_get('safe_mode'))) { - curl_setopt($crs, CURLOPT_FOLLOWLOCATION, true); - } - curl_setopt($crs, CURLOPT_CONNECTTIMEOUT, 5); - curl_setopt($crs, CURLOPT_TIMEOUT, 30); - curl_setopt($crs, CURLOPT_SSL_VERIFYPEER, false); - curl_setopt($crs, CURLOPT_SSL_VERIFYHOST, false); - curl_setopt($crs, CURLOPT_USERAGENT, 'tc-lib-file'); - curl_exec($crs); - $code = curl_getinfo($crs, CURLINFO_HTTP_CODE); - curl_close($crs); - return ($code == 200); - } - - /** - * Wrapper for file_exists. - * Checks whether a file or directory exists. - * Only allows some protocols and local files. - * @param filename (string) Path to the file or directory. - * @return Returns TRUE if the file or directory specified by filename exists; FALSE otherwise. - * @public static - */ - public static function file_exists($filename) { - if (preg_match('|^https?://|', $filename) == 1) { - return self::url_exists($filename); - } - if (strpos($filename, '://')) { - return false; // only support http and https wrappers for security reasons - } - return @file_exists($filename); - } - - /** - * Reads entire file into a string. - * The file can be also an URL. - * @param $file (string) Name of the file or URL to read. - * @return The function returns the read data or FALSE on failure. - * @author Nicola Asuni - * @since 6.0.025 - * @public static - */ - public static function fileGetContents($file) { - $alt = array($file); - // - if ((strlen($file) > 1) - && ($file[0] === '/') - && ($file[1] !== '/') - && !empty($_SERVER['DOCUMENT_ROOT']) - && ($_SERVER['DOCUMENT_ROOT'] !== '/') - ) { - $findroot = strpos($file, $_SERVER['DOCUMENT_ROOT']); - if (($findroot === false) || ($findroot > 1)) { - $alt[] = htmlspecialchars_decode(urldecode($_SERVER['DOCUMENT_ROOT'].$file)); - } - } - // - $protocol = 'http'; - if (!empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) != 'off')) { - $protocol .= 's'; - } - // - $url = $file; - if (preg_match('%^//%', $url) && !empty($_SERVER['HTTP_HOST'])) { - $url = $protocol.':'.str_replace(' ', '%20', $url); - } - $url = htmlspecialchars_decode($url); - $alt[] = $url; - // - if (preg_match('%^(https?)://%', $url) - && empty($_SERVER['HTTP_HOST']) - && empty($_SERVER['DOCUMENT_ROOT']) - ) { - $urldata = parse_url($url); - if (empty($urldata['query'])) { - $host = $protocol.'://'.$_SERVER['HTTP_HOST']; - if (strpos($url, $host) === 0) { - // convert URL to full server path - $tmp = str_replace($host, $_SERVER['DOCUMENT_ROOT'], $url); - $alt[] = htmlspecialchars_decode(urldecode($tmp)); - } - } - } - // - if (isset($_SERVER['SCRIPT_URI']) - && !preg_match('%^(https?|ftp)://%', $file) - && !preg_match('%^//%', $file) - ) { - $urldata = @parse_url($_SERVER['SCRIPT_URI']); - $alt[] = $urldata['scheme'].'://'.$urldata['host'].(($file[0] == '/') ? '' : '/').$file; - } - // - $alt = array_unique($alt); - foreach ($alt as $path) { - if (!self::file_exists($path)) { - continue; - } - $ret = @file_get_contents($path); - if ( $ret != false ) { - return $ret; - } - // try to use CURL for URLs - if (!ini_get('allow_url_fopen') - && function_exists('curl_init') - && preg_match('%^(https?|ftp)://%', $path) - ) { - // try to get remote file data using cURL - $crs = curl_init(); - curl_setopt($crs, CURLOPT_URL, $path); - curl_setopt($crs, CURLOPT_BINARYTRANSFER, true); - curl_setopt($crs, CURLOPT_FAILONERROR, true); - curl_setopt($crs, CURLOPT_RETURNTRANSFER, true); - if ((ini_get('open_basedir') == '') && (!ini_get('safe_mode'))) { - curl_setopt($crs, CURLOPT_FOLLOWLOCATION, true); - } - curl_setopt($crs, CURLOPT_CONNECTTIMEOUT, 5); - curl_setopt($crs, CURLOPT_TIMEOUT, 30); - curl_setopt($crs, CURLOPT_SSL_VERIFYPEER, false); - curl_setopt($crs, CURLOPT_SSL_VERIFYHOST, false); - curl_setopt($crs, CURLOPT_USERAGENT, 'tc-lib-file'); - $ret = curl_exec($crs); - curl_close($crs); - if ($ret !== false) { - return $ret; - } - } - } - return false; - } - - /** - * Get ULONG from string (Big Endian 32-bit unsigned integer). - * @param $str (string) string from where to extract value - * @param $offset (int) point from where to read the data - * @return int 32 bit value - * @author Nicola Asuni - * @since 5.2.000 (2010-06-02) - * @public static - */ - public static function _getULONG($str, $offset) { - $v = unpack('Ni', substr($str, $offset, 4)); - return $v['i']; - } - - /** - * Get USHORT from string (Big Endian 16-bit unsigned integer). - * @param $str (string) string from where to extract value - * @param $offset (int) point from where to read the data - * @return int 16 bit value - * @author Nicola Asuni - * @since 5.2.000 (2010-06-02) - * @public static - */ - public static function _getUSHORT($str, $offset) { - $v = unpack('ni', substr($str, $offset, 2)); - return $v['i']; - } - - /** - * Get SHORT from string (Big Endian 16-bit signed integer). - * @param $str (string) String from where to extract value. - * @param $offset (int) Point from where to read the data. - * @return int 16 bit value - * @author Nicola Asuni - * @since 5.2.000 (2010-06-02) - * @public static - */ - public static function _getSHORT($str, $offset) { - $v = unpack('si', substr($str, $offset, 2)); - return $v['i']; - } - - /** - * Get FWORD from string (Big Endian 16-bit signed integer). - * @param $str (string) String from where to extract value. - * @param $offset (int) Point from where to read the data. - * @return int 16 bit value - * @author Nicola Asuni - * @since 5.9.123 (2011-09-30) - * @public static - */ - public static function _getFWORD($str, $offset) { - $v = self::_getUSHORT($str, $offset); - if ($v > 0x7fff) { - $v -= 0x10000; - } - return $v; - } - - /** - * Get UFWORD from string (Big Endian 16-bit unsigned integer). - * @param $str (string) string from where to extract value - * @param $offset (int) point from where to read the data - * @return int 16 bit value - * @author Nicola Asuni - * @since 5.9.123 (2011-09-30) - * @public static - */ - public static function _getUFWORD($str, $offset) { - $v = self::_getUSHORT($str, $offset); - return $v; - } - - /** - * Get FIXED from string (32-bit signed fixed-point number (16.16). - * @param $str (string) string from where to extract value - * @param $offset (int) point from where to read the data - * @return int 16 bit value - * @author Nicola Asuni - * @since 5.9.123 (2011-09-30) - * @public static - */ - public static function _getFIXED($str, $offset) { - // mantissa - $m = self::_getFWORD($str, $offset); - // fraction - $f = self::_getUSHORT($str, ($offset + 2)); - $v = floatval(''.$m.'.'.$f.''); - return $v; - } - - /** - * Get BYTE from string (8-bit unsigned integer). - * @param $str (string) String from where to extract value. - * @param $offset (int) Point from where to read the data. - * @return int 8 bit value - * @author Nicola Asuni - * @since 5.2.000 (2010-06-02) - * @public static - */ - public static function _getBYTE($str, $offset) { - $v = unpack('Ci', substr($str, $offset, 1)); - return $v['i']; - } - /** - * Binary-safe and URL-safe file read. - * Reads up to length bytes from the file pointer referenced by handle. Reading stops as soon as one of the following conditions is met: length bytes have been read; EOF (end of file) is reached. - * @param $handle (resource) - * @param $length (int) - * @return Returns the read string or FALSE in case of error. - * @author Nicola Asuni - * @since 4.5.027 (2009-03-16) - * @public static - */ - public static function rfread($handle, $length) { - $data = fread($handle, $length); - if ($data === false) { - return false; - } - $rest = ($length - strlen($data)); - if (($rest > 0) && !feof($handle)) { - $data .= self::rfread($handle, $rest); - } - return $data; - } - - /** - * Read a 4-byte (32 bit) integer from file. - * @param $f (string) file name. - * @return 4-byte integer - * @public static - */ - public static function _freadint($f) { - $a = unpack('Ni', fread($f, 4)); - return $a['i']; - } - - - /** - * Array of page formats - * measures are calculated in this way: (inches * 72) or (millimeters * 72 / 25.4) - * @public static - */ - public static $page_formats = array( - // ISO 216 A Series + 2 SIS 014711 extensions - 'A0' => array( 2383.937, 3370.394), // = ( 841 x 1189 ) mm = ( 33.11 x 46.81 ) in - 'A1' => array( 1683.780, 2383.937), // = ( 594 x 841 ) mm = ( 23.39 x 33.11 ) in - 'A2' => array( 1190.551, 1683.780), // = ( 420 x 594 ) mm = ( 16.54 x 23.39 ) in - 'A3' => array( 841.890, 1190.551), // = ( 297 x 420 ) mm = ( 11.69 x 16.54 ) in - 'A4' => array( 595.276, 841.890), // = ( 210 x 297 ) mm = ( 8.27 x 11.69 ) in - 'A5' => array( 419.528, 595.276), // = ( 148 x 210 ) mm = ( 5.83 x 8.27 ) in - 'A6' => array( 297.638, 419.528), // = ( 105 x 148 ) mm = ( 4.13 x 5.83 ) in - 'A7' => array( 209.764, 297.638), // = ( 74 x 105 ) mm = ( 2.91 x 4.13 ) in - 'A8' => array( 147.402, 209.764), // = ( 52 x 74 ) mm = ( 2.05 x 2.91 ) in - 'A9' => array( 104.882, 147.402), // = ( 37 x 52 ) mm = ( 1.46 x 2.05 ) in - 'A10' => array( 73.701, 104.882), // = ( 26 x 37 ) mm = ( 1.02 x 1.46 ) in - 'A11' => array( 51.024, 73.701), // = ( 18 x 26 ) mm = ( 0.71 x 1.02 ) in - 'A12' => array( 36.850, 51.024), // = ( 13 x 18 ) mm = ( 0.51 x 0.71 ) in - // ISO 216 B Series + 2 SIS 014711 extensions - 'B0' => array( 2834.646, 4008.189), // = ( 1000 x 1414 ) mm = ( 39.37 x 55.67 ) in - 'B1' => array( 2004.094, 2834.646), // = ( 707 x 1000 ) mm = ( 27.83 x 39.37 ) in - 'B2' => array( 1417.323, 2004.094), // = ( 500 x 707 ) mm = ( 19.69 x 27.83 ) in - 'B3' => array( 1000.630, 1417.323), // = ( 353 x 500 ) mm = ( 13.90 x 19.69 ) in - 'B4' => array( 708.661, 1000.630), // = ( 250 x 353 ) mm = ( 9.84 x 13.90 ) in - 'B5' => array( 498.898, 708.661), // = ( 176 x 250 ) mm = ( 6.93 x 9.84 ) in - 'B6' => array( 354.331, 498.898), // = ( 125 x 176 ) mm = ( 4.92 x 6.93 ) in - 'B7' => array( 249.449, 354.331), // = ( 88 x 125 ) mm = ( 3.46 x 4.92 ) in - 'B8' => array( 175.748, 249.449), // = ( 62 x 88 ) mm = ( 2.44 x 3.46 ) in - 'B9' => array( 124.724, 175.748), // = ( 44 x 62 ) mm = ( 1.73 x 2.44 ) in - 'B10' => array( 87.874, 124.724), // = ( 31 x 44 ) mm = ( 1.22 x 1.73 ) in - 'B11' => array( 62.362, 87.874), // = ( 22 x 31 ) mm = ( 0.87 x 1.22 ) in - 'B12' => array( 42.520, 62.362), // = ( 15 x 22 ) mm = ( 0.59 x 0.87 ) in - // ISO 216 C Series + 2 SIS 014711 extensions + 5 EXTENSION - 'C0' => array( 2599.370, 3676.535), // = ( 917 x 1297 ) mm = ( 36.10 x 51.06 ) in - 'C1' => array( 1836.850, 2599.370), // = ( 648 x 917 ) mm = ( 25.51 x 36.10 ) in - 'C2' => array( 1298.268, 1836.850), // = ( 458 x 648 ) mm = ( 18.03 x 25.51 ) in - 'C3' => array( 918.425, 1298.268), // = ( 324 x 458 ) mm = ( 12.76 x 18.03 ) in - 'C4' => array( 649.134, 918.425), // = ( 229 x 324 ) mm = ( 9.02 x 12.76 ) in - 'C5' => array( 459.213, 649.134), // = ( 162 x 229 ) mm = ( 6.38 x 9.02 ) in - 'C6' => array( 323.150, 459.213), // = ( 114 x 162 ) mm = ( 4.49 x 6.38 ) in - 'C7' => array( 229.606, 323.150), // = ( 81 x 114 ) mm = ( 3.19 x 4.49 ) in - 'C8' => array( 161.575, 229.606), // = ( 57 x 81 ) mm = ( 2.24 x 3.19 ) in - 'C9' => array( 113.386, 161.575), // = ( 40 x 57 ) mm = ( 1.57 x 2.24 ) in - 'C10' => array( 79.370, 113.386), // = ( 28 x 40 ) mm = ( 1.10 x 1.57 ) in - 'C11' => array( 56.693, 79.370), // = ( 20 x 28 ) mm = ( 0.79 x 1.10 ) in - 'C12' => array( 39.685, 56.693), // = ( 14 x 20 ) mm = ( 0.55 x 0.79 ) in - 'C76' => array( 229.606, 459.213), // = ( 81 x 162 ) mm = ( 3.19 x 6.38 ) in - 'DL' => array( 311.811, 623.622), // = ( 110 x 220 ) mm = ( 4.33 x 8.66 ) in - 'DLE' => array( 323.150, 637.795), // = ( 114 x 225 ) mm = ( 4.49 x 8.86 ) in - 'DLX' => array( 340.158, 666.142), // = ( 120 x 235 ) mm = ( 4.72 x 9.25 ) in - 'DLP' => array( 280.630, 595.276), // = ( 99 x 210 ) mm = ( 3.90 x 8.27 ) in (1/3 A4) - // SIS 014711 E Series - 'E0' => array( 2491.654, 3517.795), // = ( 879 x 1241 ) mm = ( 34.61 x 48.86 ) in - 'E1' => array( 1757.480, 2491.654), // = ( 620 x 879 ) mm = ( 24.41 x 34.61 ) in - 'E2' => array( 1247.244, 1757.480), // = ( 440 x 620 ) mm = ( 17.32 x 24.41 ) in - 'E3' => array( 878.740, 1247.244), // = ( 310 x 440 ) mm = ( 12.20 x 17.32 ) in - 'E4' => array( 623.622, 878.740), // = ( 220 x 310 ) mm = ( 8.66 x 12.20 ) in - 'E5' => array( 439.370, 623.622), // = ( 155 x 220 ) mm = ( 6.10 x 8.66 ) in - 'E6' => array( 311.811, 439.370), // = ( 110 x 155 ) mm = ( 4.33 x 6.10 ) in - 'E7' => array( 221.102, 311.811), // = ( 78 x 110 ) mm = ( 3.07 x 4.33 ) in - 'E8' => array( 155.906, 221.102), // = ( 55 x 78 ) mm = ( 2.17 x 3.07 ) in - 'E9' => array( 110.551, 155.906), // = ( 39 x 55 ) mm = ( 1.54 x 2.17 ) in - 'E10' => array( 76.535, 110.551), // = ( 27 x 39 ) mm = ( 1.06 x 1.54 ) in - 'E11' => array( 53.858, 76.535), // = ( 19 x 27 ) mm = ( 0.75 x 1.06 ) in - 'E12' => array( 36.850, 53.858), // = ( 13 x 19 ) mm = ( 0.51 x 0.75 ) in - // SIS 014711 G Series - 'G0' => array( 2715.591, 3838.110), // = ( 958 x 1354 ) mm = ( 37.72 x 53.31 ) in - 'G1' => array( 1919.055, 2715.591), // = ( 677 x 958 ) mm = ( 26.65 x 37.72 ) in - 'G2' => array( 1357.795, 1919.055), // = ( 479 x 677 ) mm = ( 18.86 x 26.65 ) in - 'G3' => array( 958.110, 1357.795), // = ( 338 x 479 ) mm = ( 13.31 x 18.86 ) in - 'G4' => array( 677.480, 958.110), // = ( 239 x 338 ) mm = ( 9.41 x 13.31 ) in - 'G5' => array( 479.055, 677.480), // = ( 169 x 239 ) mm = ( 6.65 x 9.41 ) in - 'G6' => array( 337.323, 479.055), // = ( 119 x 169 ) mm = ( 4.69 x 6.65 ) in - 'G7' => array( 238.110, 337.323), // = ( 84 x 119 ) mm = ( 3.31 x 4.69 ) in - 'G8' => array( 167.244, 238.110), // = ( 59 x 84 ) mm = ( 2.32 x 3.31 ) in - 'G9' => array( 119.055, 167.244), // = ( 42 x 59 ) mm = ( 1.65 x 2.32 ) in - 'G10' => array( 82.205, 119.055), // = ( 29 x 42 ) mm = ( 1.14 x 1.65 ) in - 'G11' => array( 59.528, 82.205), // = ( 21 x 29 ) mm = ( 0.83 x 1.14 ) in - 'G12' => array( 39.685, 59.528), // = ( 14 x 21 ) mm = ( 0.55 x 0.83 ) in - // ISO Press - 'RA0' => array( 2437.795, 3458.268), // = ( 860 x 1220 ) mm = ( 33.86 x 48.03 ) in - 'RA1' => array( 1729.134, 2437.795), // = ( 610 x 860 ) mm = ( 24.02 x 33.86 ) in - 'RA2' => array( 1218.898, 1729.134), // = ( 430 x 610 ) mm = ( 16.93 x 24.02 ) in - 'RA3' => array( 864.567, 1218.898), // = ( 305 x 430 ) mm = ( 12.01 x 16.93 ) in - 'RA4' => array( 609.449, 864.567), // = ( 215 x 305 ) mm = ( 8.46 x 12.01 ) in - 'SRA0' => array( 2551.181, 3628.346), // = ( 900 x 1280 ) mm = ( 35.43 x 50.39 ) in - 'SRA1' => array( 1814.173, 2551.181), // = ( 640 x 900 ) mm = ( 25.20 x 35.43 ) in - 'SRA2' => array( 1275.591, 1814.173), // = ( 450 x 640 ) mm = ( 17.72 x 25.20 ) in - 'SRA3' => array( 907.087, 1275.591), // = ( 320 x 450 ) mm = ( 12.60 x 17.72 ) in - 'SRA4' => array( 637.795, 907.087), // = ( 225 x 320 ) mm = ( 8.86 x 12.60 ) in - // German DIN 476 - '4A0' => array( 4767.874, 6740.787), // = ( 1682 x 2378 ) mm = ( 66.22 x 93.62 ) in - '2A0' => array( 3370.394, 4767.874), // = ( 1189 x 1682 ) mm = ( 46.81 x 66.22 ) in - // Variations on the ISO Standard - 'A2_EXTRA' => array( 1261.417, 1754.646), // = ( 445 x 619 ) mm = ( 17.52 x 24.37 ) in - 'A3+' => array( 932.598, 1369.134), // = ( 329 x 483 ) mm = ( 12.95 x 19.02 ) in - 'A3_EXTRA' => array( 912.756, 1261.417), // = ( 322 x 445 ) mm = ( 12.68 x 17.52 ) in - 'A3_SUPER' => array( 864.567, 1440.000), // = ( 305 x 508 ) mm = ( 12.01 x 20.00 ) in - 'SUPER_A3' => array( 864.567, 1380.472), // = ( 305 x 487 ) mm = ( 12.01 x 19.17 ) in - 'A4_EXTRA' => array( 666.142, 912.756), // = ( 235 x 322 ) mm = ( 9.25 x 12.68 ) in - 'A4_SUPER' => array( 649.134, 912.756), // = ( 229 x 322 ) mm = ( 9.02 x 12.68 ) in - 'SUPER_A4' => array( 643.465, 1009.134), // = ( 227 x 356 ) mm = ( 8.94 x 14.02 ) in - 'A4_LONG' => array( 595.276, 986.457), // = ( 210 x 348 ) mm = ( 8.27 x 13.70 ) in - 'F4' => array( 595.276, 935.433), // = ( 210 x 330 ) mm = ( 8.27 x 12.99 ) in - 'SO_B5_EXTRA' => array( 572.598, 782.362), // = ( 202 x 276 ) mm = ( 7.95 x 10.87 ) in - 'A5_EXTRA' => array( 490.394, 666.142), // = ( 173 x 235 ) mm = ( 6.81 x 9.25 ) in - // ANSI Series - 'ANSI_E' => array( 2448.000, 3168.000), // = ( 864 x 1118 ) mm = ( 34.00 x 44.00 ) in - 'ANSI_D' => array( 1584.000, 2448.000), // = ( 559 x 864 ) mm = ( 22.00 x 34.00 ) in - 'ANSI_C' => array( 1224.000, 1584.000), // = ( 432 x 559 ) mm = ( 17.00 x 22.00 ) in - 'ANSI_B' => array( 792.000, 1224.000), // = ( 279 x 432 ) mm = ( 11.00 x 17.00 ) in - 'ANSI_A' => array( 612.000, 792.000), // = ( 216 x 279 ) mm = ( 8.50 x 11.00 ) in - // Traditional 'Loose' North American Paper Sizes - 'USLEDGER' => array( 1224.000, 792.000), // = ( 432 x 279 ) mm = ( 17.00 x 11.00 ) in - 'LEDGER' => array( 1224.000, 792.000), // = ( 432 x 279 ) mm = ( 17.00 x 11.00 ) in - 'ORGANIZERK' => array( 792.000, 1224.000), // = ( 279 x 432 ) mm = ( 11.00 x 17.00 ) in - 'BIBLE' => array( 792.000, 1224.000), // = ( 279 x 432 ) mm = ( 11.00 x 17.00 ) in - 'USTABLOID' => array( 792.000, 1224.000), // = ( 279 x 432 ) mm = ( 11.00 x 17.00 ) in - 'TABLOID' => array( 792.000, 1224.000), // = ( 279 x 432 ) mm = ( 11.00 x 17.00 ) in - 'ORGANIZERM' => array( 612.000, 792.000), // = ( 216 x 279 ) mm = ( 8.50 x 11.00 ) in - 'USLETTER' => array( 612.000, 792.000), // = ( 216 x 279 ) mm = ( 8.50 x 11.00 ) in - 'LETTER' => array( 612.000, 792.000), // = ( 216 x 279 ) mm = ( 8.50 x 11.00 ) in - 'USLEGAL' => array( 612.000, 1008.000), // = ( 216 x 356 ) mm = ( 8.50 x 14.00 ) in - 'LEGAL' => array( 612.000, 1008.000), // = ( 216 x 356 ) mm = ( 8.50 x 14.00 ) in - 'GOVERNMENTLETTER' => array( 576.000, 756.000), // = ( 203 x 267 ) mm = ( 8.00 x 10.50 ) in - 'GLETTER' => array( 576.000, 756.000), // = ( 203 x 267 ) mm = ( 8.00 x 10.50 ) in - 'JUNIORLEGAL' => array( 576.000, 360.000), // = ( 203 x 127 ) mm = ( 8.00 x 5.00 ) in - 'JLEGAL' => array( 576.000, 360.000), // = ( 203 x 127 ) mm = ( 8.00 x 5.00 ) in - // Other North American Paper Sizes - 'QUADDEMY' => array( 2520.000, 3240.000), // = ( 889 x 1143 ) mm = ( 35.00 x 45.00 ) in - 'SUPER_B' => array( 936.000, 1368.000), // = ( 330 x 483 ) mm = ( 13.00 x 19.00 ) in - 'QUARTO' => array( 648.000, 792.000), // = ( 229 x 279 ) mm = ( 9.00 x 11.00 ) in - 'GOVERNMENTLEGAL' => array( 612.000, 936.000), // = ( 216 x 330 ) mm = ( 8.50 x 13.00 ) in - 'FOLIO' => array( 612.000, 936.000), // = ( 216 x 330 ) mm = ( 8.50 x 13.00 ) in - 'MONARCH' => array( 522.000, 756.000), // = ( 184 x 267 ) mm = ( 7.25 x 10.50 ) in - 'EXECUTIVE' => array( 522.000, 756.000), // = ( 184 x 267 ) mm = ( 7.25 x 10.50 ) in - 'ORGANIZERL' => array( 396.000, 612.000), // = ( 140 x 216 ) mm = ( 5.50 x 8.50 ) in - 'STATEMENT' => array( 396.000, 612.000), // = ( 140 x 216 ) mm = ( 5.50 x 8.50 ) in - 'MEMO' => array( 396.000, 612.000), // = ( 140 x 216 ) mm = ( 5.50 x 8.50 ) in - 'FOOLSCAP' => array( 595.440, 936.000), // = ( 210 x 330 ) mm = ( 8.27 x 13.00 ) in - 'COMPACT' => array( 306.000, 486.000), // = ( 108 x 171 ) mm = ( 4.25 x 6.75 ) in - 'ORGANIZERJ' => array( 198.000, 360.000), // = ( 70 x 127 ) mm = ( 2.75 x 5.00 ) in - // Canadian standard CAN 2-9.60M - 'P1' => array( 1587.402, 2437.795), // = ( 560 x 860 ) mm = ( 22.05 x 33.86 ) in - 'P2' => array( 1218.898, 1587.402), // = ( 430 x 560 ) mm = ( 16.93 x 22.05 ) in - 'P3' => array( 793.701, 1218.898), // = ( 280 x 430 ) mm = ( 11.02 x 16.93 ) in - 'P4' => array( 609.449, 793.701), // = ( 215 x 280 ) mm = ( 8.46 x 11.02 ) in - 'P5' => array( 396.850, 609.449), // = ( 140 x 215 ) mm = ( 5.51 x 8.46 ) in - 'P6' => array( 303.307, 396.850), // = ( 107 x 140 ) mm = ( 4.21 x 5.51 ) in - // North American Architectural Sizes - 'ARCH_E' => array( 2592.000, 3456.000), // = ( 914 x 1219 ) mm = ( 36.00 x 48.00 ) in - 'ARCH_E1' => array( 2160.000, 3024.000), // = ( 762 x 1067 ) mm = ( 30.00 x 42.00 ) in - 'ARCH_D' => array( 1728.000, 2592.000), // = ( 610 x 914 ) mm = ( 24.00 x 36.00 ) in - 'BROADSHEET' => array( 1296.000, 1728.000), // = ( 457 x 610 ) mm = ( 18.00 x 24.00 ) in - 'ARCH_C' => array( 1296.000, 1728.000), // = ( 457 x 610 ) mm = ( 18.00 x 24.00 ) in - 'ARCH_B' => array( 864.000, 1296.000), // = ( 305 x 457 ) mm = ( 12.00 x 18.00 ) in - 'ARCH_A' => array( 648.000, 864.000), // = ( 229 x 305 ) mm = ( 9.00 x 12.00 ) in - // -- North American Envelope Sizes - // - Announcement Envelopes - 'ANNENV_A2' => array( 314.640, 414.000), // = ( 111 x 146 ) mm = ( 4.37 x 5.75 ) in - 'ANNENV_A6' => array( 342.000, 468.000), // = ( 121 x 165 ) mm = ( 4.75 x 6.50 ) in - 'ANNENV_A7' => array( 378.000, 522.000), // = ( 133 x 184 ) mm = ( 5.25 x 7.25 ) in - 'ANNENV_A8' => array( 396.000, 584.640), // = ( 140 x 206 ) mm = ( 5.50 x 8.12 ) in - 'ANNENV_A10' => array( 450.000, 692.640), // = ( 159 x 244 ) mm = ( 6.25 x 9.62 ) in - 'ANNENV_SLIM' => array( 278.640, 638.640), // = ( 98 x 225 ) mm = ( 3.87 x 8.87 ) in - // - Commercial Envelopes - 'COMMENV_N6_1/4' => array( 252.000, 432.000), // = ( 89 x 152 ) mm = ( 3.50 x 6.00 ) in - 'COMMENV_N6_3/4' => array( 260.640, 468.000), // = ( 92 x 165 ) mm = ( 3.62 x 6.50 ) in - 'COMMENV_N8' => array( 278.640, 540.000), // = ( 98 x 191 ) mm = ( 3.87 x 7.50 ) in - 'COMMENV_N9' => array( 278.640, 638.640), // = ( 98 x 225 ) mm = ( 3.87 x 8.87 ) in - 'COMMENV_N10' => array( 296.640, 684.000), // = ( 105 x 241 ) mm = ( 4.12 x 9.50 ) in - 'COMMENV_N11' => array( 324.000, 746.640), // = ( 114 x 263 ) mm = ( 4.50 x 10.37 ) in - 'COMMENV_N12' => array( 342.000, 792.000), // = ( 121 x 279 ) mm = ( 4.75 x 11.00 ) in - 'COMMENV_N14' => array( 360.000, 828.000), // = ( 127 x 292 ) mm = ( 5.00 x 11.50 ) in - // - Catalogue Envelopes - 'CATENV_N1' => array( 432.000, 648.000), // = ( 152 x 229 ) mm = ( 6.00 x 9.00 ) in - 'CATENV_N1_3/4' => array( 468.000, 684.000), // = ( 165 x 241 ) mm = ( 6.50 x 9.50 ) in - 'CATENV_N2' => array( 468.000, 720.000), // = ( 165 x 254 ) mm = ( 6.50 x 10.00 ) in - 'CATENV_N3' => array( 504.000, 720.000), // = ( 178 x 254 ) mm = ( 7.00 x 10.00 ) in - 'CATENV_N6' => array( 540.000, 756.000), // = ( 191 x 267 ) mm = ( 7.50 x 10.50 ) in - 'CATENV_N7' => array( 576.000, 792.000), // = ( 203 x 279 ) mm = ( 8.00 x 11.00 ) in - 'CATENV_N8' => array( 594.000, 810.000), // = ( 210 x 286 ) mm = ( 8.25 x 11.25 ) in - 'CATENV_N9_1/2' => array( 612.000, 756.000), // = ( 216 x 267 ) mm = ( 8.50 x 10.50 ) in - 'CATENV_N9_3/4' => array( 630.000, 810.000), // = ( 222 x 286 ) mm = ( 8.75 x 11.25 ) in - 'CATENV_N10_1/2' => array( 648.000, 864.000), // = ( 229 x 305 ) mm = ( 9.00 x 12.00 ) in - 'CATENV_N12_1/2' => array( 684.000, 900.000), // = ( 241 x 318 ) mm = ( 9.50 x 12.50 ) in - 'CATENV_N13_1/2' => array( 720.000, 936.000), // = ( 254 x 330 ) mm = ( 10.00 x 13.00 ) in - 'CATENV_N14_1/4' => array( 810.000, 882.000), // = ( 286 x 311 ) mm = ( 11.25 x 12.25 ) in - 'CATENV_N14_1/2' => array( 828.000, 1044.000), // = ( 292 x 368 ) mm = ( 11.50 x 14.50 ) in - // Japanese (JIS P 0138-61) Standard B-Series - 'JIS_B0' => array( 2919.685, 4127.244), // = ( 1030 x 1456 ) mm = ( 40.55 x 57.32 ) in - 'JIS_B1' => array( 2063.622, 2919.685), // = ( 728 x 1030 ) mm = ( 28.66 x 40.55 ) in - 'JIS_B2' => array( 1459.843, 2063.622), // = ( 515 x 728 ) mm = ( 20.28 x 28.66 ) in - 'JIS_B3' => array( 1031.811, 1459.843), // = ( 364 x 515 ) mm = ( 14.33 x 20.28 ) in - 'JIS_B4' => array( 728.504, 1031.811), // = ( 257 x 364 ) mm = ( 10.12 x 14.33 ) in - 'JIS_B5' => array( 515.906, 728.504), // = ( 182 x 257 ) mm = ( 7.17 x 10.12 ) in - 'JIS_B6' => array( 362.835, 515.906), // = ( 128 x 182 ) mm = ( 5.04 x 7.17 ) in - 'JIS_B7' => array( 257.953, 362.835), // = ( 91 x 128 ) mm = ( 3.58 x 5.04 ) in - 'JIS_B8' => array( 181.417, 257.953), // = ( 64 x 91 ) mm = ( 2.52 x 3.58 ) in - 'JIS_B9' => array( 127.559, 181.417), // = ( 45 x 64 ) mm = ( 1.77 x 2.52 ) in - 'JIS_B10' => array( 90.709, 127.559), // = ( 32 x 45 ) mm = ( 1.26 x 1.77 ) in - 'JIS_B11' => array( 62.362, 90.709), // = ( 22 x 32 ) mm = ( 0.87 x 1.26 ) in - 'JIS_B12' => array( 45.354, 62.362), // = ( 16 x 22 ) mm = ( 0.63 x 0.87 ) in - // PA Series - 'PA0' => array( 2381.102, 3174.803), // = ( 840 x 1120 ) mm = ( 33.07 x 44.09 ) in - 'PA1' => array( 1587.402, 2381.102), // = ( 560 x 840 ) mm = ( 22.05 x 33.07 ) in - 'PA2' => array( 1190.551, 1587.402), // = ( 420 x 560 ) mm = ( 16.54 x 22.05 ) in - 'PA3' => array( 793.701, 1190.551), // = ( 280 x 420 ) mm = ( 11.02 x 16.54 ) in - 'PA4' => array( 595.276, 793.701), // = ( 210 x 280 ) mm = ( 8.27 x 11.02 ) in - 'PA5' => array( 396.850, 595.276), // = ( 140 x 210 ) mm = ( 5.51 x 8.27 ) in - 'PA6' => array( 297.638, 396.850), // = ( 105 x 140 ) mm = ( 4.13 x 5.51 ) in - 'PA7' => array( 198.425, 297.638), // = ( 70 x 105 ) mm = ( 2.76 x 4.13 ) in - 'PA8' => array( 147.402, 198.425), // = ( 52 x 70 ) mm = ( 2.05 x 2.76 ) in - 'PA9' => array( 99.213, 147.402), // = ( 35 x 52 ) mm = ( 1.38 x 2.05 ) in - 'PA10' => array( 73.701, 99.213), // = ( 26 x 35 ) mm = ( 1.02 x 1.38 ) in - // Standard Photographic Print Sizes - 'PASSPORT_PHOTO' => array( 99.213, 127.559), // = ( 35 x 45 ) mm = ( 1.38 x 1.77 ) in - 'E' => array( 233.858, 340.157), // = ( 82 x 120 ) mm = ( 3.25 x 4.72 ) in - 'L' => array( 252.283, 360.000), // = ( 89 x 127 ) mm = ( 3.50 x 5.00 ) in - '3R' => array( 252.283, 360.000), // = ( 89 x 127 ) mm = ( 3.50 x 5.00 ) in - 'KG' => array( 289.134, 430.866), // = ( 102 x 152 ) mm = ( 4.02 x 5.98 ) in - '4R' => array( 289.134, 430.866), // = ( 102 x 152 ) mm = ( 4.02 x 5.98 ) in - '4D' => array( 340.157, 430.866), // = ( 120 x 152 ) mm = ( 4.72 x 5.98 ) in - '2L' => array( 360.000, 504.567), // = ( 127 x 178 ) mm = ( 5.00 x 7.01 ) in - '5R' => array( 360.000, 504.567), // = ( 127 x 178 ) mm = ( 5.00 x 7.01 ) in - '8P' => array( 430.866, 575.433), // = ( 152 x 203 ) mm = ( 5.98 x 7.99 ) in - '6R' => array( 430.866, 575.433), // = ( 152 x 203 ) mm = ( 5.98 x 7.99 ) in - '6P' => array( 575.433, 720.000), // = ( 203 x 254 ) mm = ( 7.99 x 10.00 ) in - '8R' => array( 575.433, 720.000), // = ( 203 x 254 ) mm = ( 7.99 x 10.00 ) in - '6PW' => array( 575.433, 864.567), // = ( 203 x 305 ) mm = ( 7.99 x 12.01 ) in - 'S8R' => array( 575.433, 864.567), // = ( 203 x 305 ) mm = ( 7.99 x 12.01 ) in - '4P' => array( 720.000, 864.567), // = ( 254 x 305 ) mm = ( 10.00 x 12.01 ) in - '10R' => array( 720.000, 864.567), // = ( 254 x 305 ) mm = ( 10.00 x 12.01 ) in - '4PW' => array( 720.000, 1080.000), // = ( 254 x 381 ) mm = ( 10.00 x 15.00 ) in - 'S10R' => array( 720.000, 1080.000), // = ( 254 x 381 ) mm = ( 10.00 x 15.00 ) in - '11R' => array( 790.866, 1009.134), // = ( 279 x 356 ) mm = ( 10.98 x 14.02 ) in - 'S11R' => array( 790.866, 1224.567), // = ( 279 x 432 ) mm = ( 10.98 x 17.01 ) in - '12R' => array( 864.567, 1080.000), // = ( 305 x 381 ) mm = ( 12.01 x 15.00 ) in - 'S12R' => array( 864.567, 1292.598), // = ( 305 x 456 ) mm = ( 12.01 x 17.95 ) in - // Common Newspaper Sizes - 'NEWSPAPER_BROADSHEET' => array( 2125.984, 1700.787), // = ( 750 x 600 ) mm = ( 29.53 x 23.62 ) in - 'NEWSPAPER_BERLINER' => array( 1332.283, 892.913), // = ( 470 x 315 ) mm = ( 18.50 x 12.40 ) in - 'NEWSPAPER_TABLOID' => array( 1218.898, 793.701), // = ( 430 x 280 ) mm = ( 16.93 x 11.02 ) in - 'NEWSPAPER_COMPACT' => array( 1218.898, 793.701), // = ( 430 x 280 ) mm = ( 16.93 x 11.02 ) in - // Business Cards - 'CREDIT_CARD' => array( 153.014, 242.646), // = ( 54 x 86 ) mm = ( 2.13 x 3.37 ) in - 'BUSINESS_CARD' => array( 153.014, 242.646), // = ( 54 x 86 ) mm = ( 2.13 x 3.37 ) in - 'BUSINESS_CARD_ISO7810' => array( 153.014, 242.646), // = ( 54 x 86 ) mm = ( 2.13 x 3.37 ) in - 'BUSINESS_CARD_ISO216' => array( 147.402, 209.764), // = ( 52 x 74 ) mm = ( 2.05 x 2.91 ) in - 'BUSINESS_CARD_IT' => array( 155.906, 240.945), // = ( 55 x 85 ) mm = ( 2.17 x 3.35 ) in - 'BUSINESS_CARD_UK' => array( 155.906, 240.945), // = ( 55 x 85 ) mm = ( 2.17 x 3.35 ) in - 'BUSINESS_CARD_FR' => array( 155.906, 240.945), // = ( 55 x 85 ) mm = ( 2.17 x 3.35 ) in - 'BUSINESS_CARD_DE' => array( 155.906, 240.945), // = ( 55 x 85 ) mm = ( 2.17 x 3.35 ) in - 'BUSINESS_CARD_ES' => array( 155.906, 240.945), // = ( 55 x 85 ) mm = ( 2.17 x 3.35 ) in - 'BUSINESS_CARD_CA' => array( 144.567, 252.283), // = ( 51 x 89 ) mm = ( 2.01 x 3.50 ) in - 'BUSINESS_CARD_US' => array( 144.567, 252.283), // = ( 51 x 89 ) mm = ( 2.01 x 3.50 ) in - 'BUSINESS_CARD_JP' => array( 155.906, 257.953), // = ( 55 x 91 ) mm = ( 2.17 x 3.58 ) in - 'BUSINESS_CARD_HK' => array( 153.071, 255.118), // = ( 54 x 90 ) mm = ( 2.13 x 3.54 ) in - 'BUSINESS_CARD_AU' => array( 155.906, 255.118), // = ( 55 x 90 ) mm = ( 2.17 x 3.54 ) in - 'BUSINESS_CARD_DK' => array( 155.906, 255.118), // = ( 55 x 90 ) mm = ( 2.17 x 3.54 ) in - 'BUSINESS_CARD_SE' => array( 155.906, 255.118), // = ( 55 x 90 ) mm = ( 2.17 x 3.54 ) in - 'BUSINESS_CARD_RU' => array( 141.732, 255.118), // = ( 50 x 90 ) mm = ( 1.97 x 3.54 ) in - 'BUSINESS_CARD_CZ' => array( 141.732, 255.118), // = ( 50 x 90 ) mm = ( 1.97 x 3.54 ) in - 'BUSINESS_CARD_FI' => array( 141.732, 255.118), // = ( 50 x 90 ) mm = ( 1.97 x 3.54 ) in - 'BUSINESS_CARD_HU' => array( 141.732, 255.118), // = ( 50 x 90 ) mm = ( 1.97 x 3.54 ) in - 'BUSINESS_CARD_IL' => array( 141.732, 255.118), // = ( 50 x 90 ) mm = ( 1.97 x 3.54 ) in - // Billboards - '4SHEET' => array( 2880.000, 4320.000), // = ( 1016 x 1524 ) mm = ( 40.00 x 60.00 ) in - '6SHEET' => array( 3401.575, 5102.362), // = ( 1200 x 1800 ) mm = ( 47.24 x 70.87 ) in - '12SHEET' => array( 8640.000, 4320.000), // = ( 3048 x 1524 ) mm = (120.00 x 60.00 ) in - '16SHEET' => array( 5760.000, 8640.000), // = ( 2032 x 3048 ) mm = ( 80.00 x 120.00) in - '32SHEET' => array(11520.000, 8640.000), // = ( 4064 x 3048 ) mm = (160.00 x 120.00) in - '48SHEET' => array(17280.000, 8640.000), // = ( 6096 x 3048 ) mm = (240.00 x 120.00) in - '64SHEET' => array(23040.000, 8640.000), // = ( 8128 x 3048 ) mm = (320.00 x 120.00) in - '96SHEET' => array(34560.000, 8640.000), // = (12192 x 3048 ) mm = (480.00 x 120.00) in - // -- Old European Sizes - // - Old Imperial English Sizes - 'EN_EMPEROR' => array( 3456.000, 5184.000), // = ( 1219 x 1829 ) mm = ( 48.00 x 72.00 ) in - 'EN_ANTIQUARIAN' => array( 2232.000, 3816.000), // = ( 787 x 1346 ) mm = ( 31.00 x 53.00 ) in - 'EN_GRAND_EAGLE' => array( 2070.000, 3024.000), // = ( 730 x 1067 ) mm = ( 28.75 x 42.00 ) in - 'EN_DOUBLE_ELEPHANT' => array( 1926.000, 2880.000), // = ( 679 x 1016 ) mm = ( 26.75 x 40.00 ) in - 'EN_ATLAS' => array( 1872.000, 2448.000), // = ( 660 x 864 ) mm = ( 26.00 x 34.00 ) in - 'EN_COLOMBIER' => array( 1692.000, 2484.000), // = ( 597 x 876 ) mm = ( 23.50 x 34.50 ) in - 'EN_ELEPHANT' => array( 1656.000, 2016.000), // = ( 584 x 711 ) mm = ( 23.00 x 28.00 ) in - 'EN_DOUBLE_DEMY' => array( 1620.000, 2556.000), // = ( 572 x 902 ) mm = ( 22.50 x 35.50 ) in - 'EN_IMPERIAL' => array( 1584.000, 2160.000), // = ( 559 x 762 ) mm = ( 22.00 x 30.00 ) in - 'EN_PRINCESS' => array( 1548.000, 2016.000), // = ( 546 x 711 ) mm = ( 21.50 x 28.00 ) in - 'EN_CARTRIDGE' => array( 1512.000, 1872.000), // = ( 533 x 660 ) mm = ( 21.00 x 26.00 ) in - 'EN_DOUBLE_LARGE_POST' => array( 1512.000, 2376.000), // = ( 533 x 838 ) mm = ( 21.00 x 33.00 ) in - 'EN_ROYAL' => array( 1440.000, 1800.000), // = ( 508 x 635 ) mm = ( 20.00 x 25.00 ) in - 'EN_SHEET' => array( 1404.000, 1692.000), // = ( 495 x 597 ) mm = ( 19.50 x 23.50 ) in - 'EN_HALF_POST' => array( 1404.000, 1692.000), // = ( 495 x 597 ) mm = ( 19.50 x 23.50 ) in - 'EN_SUPER_ROYAL' => array( 1368.000, 1944.000), // = ( 483 x 686 ) mm = ( 19.00 x 27.00 ) in - 'EN_DOUBLE_POST' => array( 1368.000, 2196.000), // = ( 483 x 775 ) mm = ( 19.00 x 30.50 ) in - 'EN_MEDIUM' => array( 1260.000, 1656.000), // = ( 445 x 584 ) mm = ( 17.50 x 23.00 ) in - 'EN_DEMY' => array( 1260.000, 1620.000), // = ( 445 x 572 ) mm = ( 17.50 x 22.50 ) in - 'EN_LARGE_POST' => array( 1188.000, 1512.000), // = ( 419 x 533 ) mm = ( 16.50 x 21.00 ) in - 'EN_COPY_DRAUGHT' => array( 1152.000, 1440.000), // = ( 406 x 508 ) mm = ( 16.00 x 20.00 ) in - 'EN_POST' => array( 1116.000, 1386.000), // = ( 394 x 489 ) mm = ( 15.50 x 19.25 ) in - 'EN_CROWN' => array( 1080.000, 1440.000), // = ( 381 x 508 ) mm = ( 15.00 x 20.00 ) in - 'EN_PINCHED_POST' => array( 1062.000, 1332.000), // = ( 375 x 470 ) mm = ( 14.75 x 18.50 ) in - 'EN_BRIEF' => array( 972.000, 1152.000), // = ( 343 x 406 ) mm = ( 13.50 x 16.00 ) in - 'EN_FOOLSCAP' => array( 972.000, 1224.000), // = ( 343 x 432 ) mm = ( 13.50 x 17.00 ) in - 'EN_SMALL_FOOLSCAP' => array( 954.000, 1188.000), // = ( 337 x 419 ) mm = ( 13.25 x 16.50 ) in - 'EN_POTT' => array( 900.000, 1080.000), // = ( 318 x 381 ) mm = ( 12.50 x 15.00 ) in - // - Old Imperial Belgian Sizes - 'BE_GRAND_AIGLE' => array( 1984.252, 2948.031), // = ( 700 x 1040 ) mm = ( 27.56 x 40.94 ) in - 'BE_COLOMBIER' => array( 1757.480, 2409.449), // = ( 620 x 850 ) mm = ( 24.41 x 33.46 ) in - 'BE_DOUBLE_CARRE' => array( 1757.480, 2607.874), // = ( 620 x 920 ) mm = ( 24.41 x 36.22 ) in - 'BE_ELEPHANT' => array( 1746.142, 2182.677), // = ( 616 x 770 ) mm = ( 24.25 x 30.31 ) in - 'BE_PETIT_AIGLE' => array( 1700.787, 2381.102), // = ( 600 x 840 ) mm = ( 23.62 x 33.07 ) in - 'BE_GRAND_JESUS' => array( 1559.055, 2069.291), // = ( 550 x 730 ) mm = ( 21.65 x 28.74 ) in - 'BE_JESUS' => array( 1530.709, 2069.291), // = ( 540 x 730 ) mm = ( 21.26 x 28.74 ) in - 'BE_RAISIN' => array( 1417.323, 1842.520), // = ( 500 x 650 ) mm = ( 19.69 x 25.59 ) in - 'BE_GRAND_MEDIAN' => array( 1303.937, 1714.961), // = ( 460 x 605 ) mm = ( 18.11 x 23.82 ) in - 'BE_DOUBLE_POSTE' => array( 1233.071, 1601.575), // = ( 435 x 565 ) mm = ( 17.13 x 22.24 ) in - 'BE_COQUILLE' => array( 1218.898, 1587.402), // = ( 430 x 560 ) mm = ( 16.93 x 22.05 ) in - 'BE_PETIT_MEDIAN' => array( 1176.378, 1502.362), // = ( 415 x 530 ) mm = ( 16.34 x 20.87 ) in - 'BE_RUCHE' => array( 1020.472, 1303.937), // = ( 360 x 460 ) mm = ( 14.17 x 18.11 ) in - 'BE_PROPATRIA' => array( 977.953, 1218.898), // = ( 345 x 430 ) mm = ( 13.58 x 16.93 ) in - 'BE_LYS' => array( 898.583, 1125.354), // = ( 317 x 397 ) mm = ( 12.48 x 15.63 ) in - 'BE_POT' => array( 870.236, 1088.504), // = ( 307 x 384 ) mm = ( 12.09 x 15.12 ) in - 'BE_ROSETTE' => array( 765.354, 983.622), // = ( 270 x 347 ) mm = ( 10.63 x 13.66 ) in - // - Old Imperial French Sizes - 'FR_UNIVERS' => array( 2834.646, 3685.039), // = ( 1000 x 1300 ) mm = ( 39.37 x 51.18 ) in - 'FR_DOUBLE_COLOMBIER' => array( 2551.181, 3571.654), // = ( 900 x 1260 ) mm = ( 35.43 x 49.61 ) in - 'FR_GRANDE_MONDE' => array( 2551.181, 3571.654), // = ( 900 x 1260 ) mm = ( 35.43 x 49.61 ) in - 'FR_DOUBLE_SOLEIL' => array( 2267.717, 3401.575), // = ( 800 x 1200 ) mm = ( 31.50 x 47.24 ) in - 'FR_DOUBLE_JESUS' => array( 2154.331, 3174.803), // = ( 760 x 1120 ) mm = ( 29.92 x 44.09 ) in - 'FR_GRAND_AIGLE' => array( 2125.984, 3004.724), // = ( 750 x 1060 ) mm = ( 29.53 x 41.73 ) in - 'FR_PETIT_AIGLE' => array( 1984.252, 2664.567), // = ( 700 x 940 ) mm = ( 27.56 x 37.01 ) in - 'FR_DOUBLE_RAISIN' => array( 1842.520, 2834.646), // = ( 650 x 1000 ) mm = ( 25.59 x 39.37 ) in - 'FR_JOURNAL' => array( 1842.520, 2664.567), // = ( 650 x 940 ) mm = ( 25.59 x 37.01 ) in - 'FR_COLOMBIER_AFFICHE' => array( 1785.827, 2551.181), // = ( 630 x 900 ) mm = ( 24.80 x 35.43 ) in - 'FR_DOUBLE_CAVALIER' => array( 1757.480, 2607.874), // = ( 620 x 920 ) mm = ( 24.41 x 36.22 ) in - 'FR_CLOCHE' => array( 1700.787, 2267.717), // = ( 600 x 800 ) mm = ( 23.62 x 31.50 ) in - 'FR_SOLEIL' => array( 1700.787, 2267.717), // = ( 600 x 800 ) mm = ( 23.62 x 31.50 ) in - 'FR_DOUBLE_CARRE' => array( 1587.402, 2551.181), // = ( 560 x 900 ) mm = ( 22.05 x 35.43 ) in - 'FR_DOUBLE_COQUILLE' => array( 1587.402, 2494.488), // = ( 560 x 880 ) mm = ( 22.05 x 34.65 ) in - 'FR_JESUS' => array( 1587.402, 2154.331), // = ( 560 x 760 ) mm = ( 22.05 x 29.92 ) in - 'FR_RAISIN' => array( 1417.323, 1842.520), // = ( 500 x 650 ) mm = ( 19.69 x 25.59 ) in - 'FR_CAVALIER' => array( 1303.937, 1757.480), // = ( 460 x 620 ) mm = ( 18.11 x 24.41 ) in - 'FR_DOUBLE_COURONNE' => array( 1303.937, 2040.945), // = ( 460 x 720 ) mm = ( 18.11 x 28.35 ) in - 'FR_CARRE' => array( 1275.591, 1587.402), // = ( 450 x 560 ) mm = ( 17.72 x 22.05 ) in - 'FR_COQUILLE' => array( 1247.244, 1587.402), // = ( 440 x 560 ) mm = ( 17.32 x 22.05 ) in - 'FR_DOUBLE_TELLIERE' => array( 1247.244, 1927.559), // = ( 440 x 680 ) mm = ( 17.32 x 26.77 ) in - 'FR_DOUBLE_CLOCHE' => array( 1133.858, 1700.787), // = ( 400 x 600 ) mm = ( 15.75 x 23.62 ) in - 'FR_DOUBLE_POT' => array( 1133.858, 1757.480), // = ( 400 x 620 ) mm = ( 15.75 x 24.41 ) in - 'FR_ECU' => array( 1133.858, 1474.016), // = ( 400 x 520 ) mm = ( 15.75 x 20.47 ) in - 'FR_COURONNE' => array( 1020.472, 1303.937), // = ( 360 x 460 ) mm = ( 14.17 x 18.11 ) in - 'FR_TELLIERE' => array( 963.780, 1247.244), // = ( 340 x 440 ) mm = ( 13.39 x 17.32 ) in - 'FR_POT' => array( 878.740, 1133.858), // = ( 310 x 400 ) mm = ( 12.20 x 15.75 ) in - ); - - - /** - * Get page dimensions from format name. - * @param $format (mixed) The format name @see self::$page_format
      - * @return array containing page width and height in points - * @since 5.0.010 (2010-05-17) - * @public static - */ - public static function getPageSizeFromFormat($format) { - if (isset(self::$page_formats[$format])) { - return self::$page_formats[$format]; - } - return self::$page_formats['A4']; - } - - /** - * Set page boundaries. - * @param $page (int) page number - * @param $type (string) valid values are:
      • 'MediaBox' : the boundaries of the physical medium on which the page shall be displayed or printed;
      • 'CropBox' : the visible region of default user space;
      • 'BleedBox' : the region to which the contents of the page shall be clipped when output in a production environment;
      • 'TrimBox' : the intended dimensions of the finished page after trimming;
      • 'ArtBox' : the page's meaningful content (including potential white space).
      - * @param $llx (float) lower-left x coordinate in user units. - * @param $lly (float) lower-left y coordinate in user units. - * @param $urx (float) upper-right x coordinate in user units. - * @param $ury (float) upper-right y coordinate in user units. - * @param $points (boolean) If true uses user units as unit of measure, otherwise uses PDF points. - * @param $k (float) Scale factor (number of points in user unit). - * @param $pagedim (array) Array of page dimensions. - * @return pagedim array of page dimensions. - * @since 5.0.010 (2010-05-17) - * @public static - */ - public static function setPageBoxes($page, $type, $llx, $lly, $urx, $ury, $points=false, $k, $pagedim=array()) { - if (!isset($pagedim[$page])) { - // initialize array - $pagedim[$page] = array(); - } - if (!in_array($type, self::$pageboxes)) { - return; - } - if ($points) { - $k = 1; - } - $pagedim[$page][$type]['llx'] = ($llx * $k); - $pagedim[$page][$type]['lly'] = ($lly * $k); - $pagedim[$page][$type]['urx'] = ($urx * $k); - $pagedim[$page][$type]['ury'] = ($ury * $k); - return $pagedim; - } - - /** - * Swap X and Y coordinates of page boxes (change page boxes orientation). - * @param $page (int) page number - * @param $pagedim (array) Array of page dimensions. - * @return pagedim array of page dimensions. - * @since 5.0.010 (2010-05-17) - * @public static - */ - public static function swapPageBoxCoordinates($page, $pagedim) { - foreach (self::$pageboxes as $type) { - // swap X and Y coordinates - if (isset($pagedim[$page][$type])) { - $tmp = $pagedim[$page][$type]['llx']; - $pagedim[$page][$type]['llx'] = $pagedim[$page][$type]['lly']; - $pagedim[$page][$type]['lly'] = $tmp; - $tmp = $pagedim[$page][$type]['urx']; - $pagedim[$page][$type]['urx'] = $pagedim[$page][$type]['ury']; - $pagedim[$page][$type]['ury'] = $tmp; - } - } - return $pagedim; - } - - /** - * Get the canonical page layout mode. - * @param $layout (string) The page layout. Possible values are:
      • SinglePage Display one page at a time
      • OneColumn Display the pages in one column
      • TwoColumnLeft Display the pages in two columns, with odd-numbered pages on the left
      • TwoColumnRight Display the pages in two columns, with odd-numbered pages on the right
      • TwoPageLeft (PDF 1.5) Display the pages two at a time, with odd-numbered pages on the left
      • TwoPageRight (PDF 1.5) Display the pages two at a time, with odd-numbered pages on the right
      - * @return (string) Canonical page layout name. - * @public static - */ - public static function getPageLayoutMode($layout='SinglePage') { - switch ($layout) { - case 'default': - case 'single': - case 'SinglePage': { - $layout_mode = 'SinglePage'; - break; - } - case 'continuous': - case 'OneColumn': { - $layout_mode = 'OneColumn'; - break; - } - case 'two': - case 'TwoColumnLeft': { - $layout_mode = 'TwoColumnLeft'; - break; - } - case 'TwoColumnRight': { - $layout_mode = 'TwoColumnRight'; - break; - } - case 'TwoPageLeft': { - $layout_mode = 'TwoPageLeft'; - break; - } - case 'TwoPageRight': { - $layout_mode = 'TwoPageRight'; - break; - } - default: { - $layout_mode = 'SinglePage'; - } - } - return $layout_mode; - } - - /** - * Get the canonical page layout mode. - * @param $mode (string) A name object specifying how the document should be displayed when opened:
      • UseNone Neither document outline nor thumbnail images visible
      • UseOutlines Document outline visible
      • UseThumbs Thumbnail images visible
      • FullScreen Full-screen mode, with no menu bar, window controls, or any other window visible
      • UseOC (PDF 1.5) Optional content group panel visible
      • UseAttachments (PDF 1.6) Attachments panel visible
      - * @return (string) Canonical page mode name. - * @public static - */ - public static function getPageMode($mode='UseNone') { - switch ($mode) { - case 'UseNone': { - $page_mode = 'UseNone'; - break; - } - case 'UseOutlines': { - $page_mode = 'UseOutlines'; - break; - } - case 'UseThumbs': { - $page_mode = 'UseThumbs'; - break; - } - case 'FullScreen': { - $page_mode = 'FullScreen'; - break; - } - case 'UseOC': { - $page_mode = 'UseOC'; - break; - } - case '': { - $page_mode = 'UseAttachments'; - break; - } - default: { - $page_mode = 'UseNone'; - } - } - return $page_mode; - } - - -} // END OF TCPDF_STATIC CLASS - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/tcpdf.php b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/tcpdf.php deleted file mode 100644 index 0ee30bc..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/tcpdf.php +++ /dev/null @@ -1,24569 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : -// This is a PHP class for generating PDF documents without requiring external extensions. -// -// NOTE: -// This class was originally derived in 2002 from the Public -// Domain FPDF class by Olivier Plathey (http://www.fpdf.org), -// but now is almost entirely rewritten and contains thousands of -// new lines of code and hundreds new features. -// -// Main features: -// * no external libraries are required for the basic functions; -// * all standard page formats, custom page formats, custom margins and units of measure; -// * UTF-8 Unicode and Right-To-Left languages; -// * TrueTypeUnicode, TrueType, Type1 and CID-0 fonts; -// * font subsetting; -// * methods to publish some XHTML + CSS code, Javascript and Forms; -// * images, graphic (geometric figures) and transformation methods; -// * supports JPEG, PNG and SVG images natively, all images supported by GD (GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM) and all images supported via ImageMagick (http://www.imagemagick.org/www/formats.html) -// * 1D and 2D barcodes: CODE 39, ANSI MH10.8M-1983, USD-3, 3 of 9, CODE 93, USS-93, Standard 2 of 5, Interleaved 2 of 5, CODE 128 A/B/C, 2 and 5 Digits UPC-Based Extension, EAN 8, EAN 13, UPC-A, UPC-E, MSI, POSTNET, PLANET, RMS4CC (Royal Mail 4-state Customer Code), CBC (Customer Bar Code), KIX (Klant index - Customer index), Intelligent Mail Barcode, Onecode, USPS-B-3200, CODABAR, CODE 11, PHARMACODE, PHARMACODE TWO-TRACKS, Datamatrix, QR-Code, PDF417; -// * JPEG and PNG ICC profiles, Grayscale, RGB, CMYK, Spot Colors and Transparencies; -// * automatic page header and footer management; -// * document encryption up to 256 bit and digital signature certifications; -// * transactions to UNDO commands; -// * PDF annotations, including links, text and file attachments; -// * text rendering modes (fill, stroke and clipping); -// * multiple columns mode; -// * no-write page regions; -// * bookmarks, named destinations and table of content; -// * text hyphenation; -// * text stretching and spacing (tracking); -// * automatic page break, line break and text alignments including justification; -// * automatic page numbering and page groups; -// * move and delete pages; -// * page compression (requires php-zlib extension); -// * XOBject Templates; -// * Layers and object visibility. -// * PDF/A-1b support -//============================================================+ - -/** - * @file - * This is a PHP class for generating PDF documents without requiring external extensions.
      - * TCPDF project (http://www.tcpdf.org) was originally derived in 2002 from the Public Domain FPDF class by Olivier Plathey (http://www.fpdf.org), but now is almost entirely rewritten.
      - *

      TCPDF main features are:

      - *
        - *
      • no external libraries are required for the basic functions;
      • - *
      • all standard page formats, custom page formats, custom margins and units of measure;
      • - *
      • UTF-8 Unicode and Right-To-Left languages;
      • - *
      • TrueTypeUnicode, TrueType, Type1 and CID-0 fonts;
      • - *
      • font subsetting;
      • - *
      • methods to publish some XHTML + CSS code, Javascript and Forms;
      • - *
      • images, graphic (geometric figures) and transformation methods; - *
      • supports JPEG, PNG and SVG images natively, all images supported by GD (GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM) and all images supported via ImageMagick (http://www.imagemagick.org/www/formats.html)
      • - *
      • 1D and 2D barcodes: CODE 39, ANSI MH10.8M-1983, USD-3, 3 of 9, CODE 93, USS-93, Standard 2 of 5, Interleaved 2 of 5, CODE 128 A/B/C, 2 and 5 Digits UPC-Based Extension, EAN 8, EAN 13, UPC-A, UPC-E, MSI, POSTNET, PLANET, RMS4CC (Royal Mail 4-state Customer Code), CBC (Customer Bar Code), KIX (Klant index - Customer index), Intelligent Mail Barcode, Onecode, USPS-B-3200, CODABAR, CODE 11, PHARMACODE, PHARMACODE TWO-TRACKS, Datamatrix, QR-Code, PDF417;
      • - *
      • JPEG and PNG ICC profiles, Grayscale, RGB, CMYK, Spot Colors and Transparencies;
      • - *
      • automatic page header and footer management;
      • - *
      • document encryption up to 256 bit and digital signature certifications;
      • - *
      • transactions to UNDO commands;
      • - *
      • PDF annotations, including links, text and file attachments;
      • - *
      • text rendering modes (fill, stroke and clipping);
      • - *
      • multiple columns mode;
      • - *
      • no-write page regions;
      • - *
      • bookmarks, named destinations and table of content;
      • - *
      • text hyphenation;
      • - *
      • text stretching and spacing (tracking);
      • - *
      • automatic page break, line break and text alignments including justification;
      • - *
      • automatic page numbering and page groups;
      • - *
      • move and delete pages;
      • - *
      • page compression (requires php-zlib extension);
      • - *
      • XOBject Templates;
      • - *
      • Layers and object visibility;
      • - *
      • PDF/A-1b support.
      • - *
      - * Tools to encode your unicode fonts are on fonts/utils directory.

      - * @package com.tecnick.tcpdf - * @author Nicola Asuni - * @version 6.3.2 - */ - -// TCPDF configuration -require_once(dirname(__FILE__).'/tcpdf_autoconfig.php'); -// TCPDF static font methods and data -require_once(dirname(__FILE__).'/include/tcpdf_font_data.php'); -// TCPDF static font methods and data -require_once(dirname(__FILE__).'/include/tcpdf_fonts.php'); -// TCPDF static color methods and data -require_once(dirname(__FILE__).'/include/tcpdf_colors.php'); -// TCPDF static image methods and data -require_once(dirname(__FILE__).'/include/tcpdf_images.php'); -// TCPDF static methods and data -require_once(dirname(__FILE__).'/include/tcpdf_static.php'); - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -/** - * @class TCPDF - * PHP class for generating PDF documents without requiring external extensions. - * TCPDF project (http://www.tcpdf.org) has been originally derived in 2002 from the Public Domain FPDF class by Olivier Plathey (http://www.fpdf.org), but now is almost entirely rewritten.
      - * @package com.tecnick.tcpdf - * @brief PHP class for generating PDF documents without requiring external extensions. - * @version 6.3.2 - * @author Nicola Asuni - info@tecnick.com - * @IgnoreAnnotation("protected") - * @IgnoreAnnotation("public") - * @IgnoreAnnotation("pre") - */ -class TCPDF { - - // Protected properties - - /** - * Current page number. - * @protected - */ - protected $page; - - /** - * Current object number. - * @protected - */ - protected $n; - - /** - * Array of object offsets. - * @protected - */ - protected $offsets = array(); - - /** - * Array of object IDs for each page. - * @protected - */ - protected $pageobjects = array(); - - /** - * Buffer holding in-memory PDF. - * @protected - */ - protected $buffer; - - /** - * Array containing pages. - * @protected - */ - protected $pages = array(); - - /** - * Current document state. - * @protected - */ - protected $state; - - /** - * Compression flag. - * @protected - */ - protected $compress; - - /** - * Current page orientation (P = Portrait, L = Landscape). - * @protected - */ - protected $CurOrientation; - - /** - * Page dimensions. - * @protected - */ - protected $pagedim = array(); - - /** - * Scale factor (number of points in user unit). - * @protected - */ - protected $k; - - /** - * Width of page format in points. - * @protected - */ - protected $fwPt; - - /** - * Height of page format in points. - * @protected - */ - protected $fhPt; - - /** - * Current width of page in points. - * @protected - */ - protected $wPt; - - /** - * Current height of page in points. - * @protected - */ - protected $hPt; - - /** - * Current width of page in user unit. - * @protected - */ - protected $w; - - /** - * Current height of page in user unit. - * @protected - */ - protected $h; - - /** - * Left margin. - * @protected - */ - protected $lMargin; - - /** - * Right margin. - * @protected - */ - protected $rMargin; - - /** - * Cell left margin (used by regions). - * @protected - */ - protected $clMargin; - - /** - * Cell right margin (used by regions). - * @protected - */ - protected $crMargin; - - /** - * Top margin. - * @protected - */ - protected $tMargin; - - /** - * Page break margin. - * @protected - */ - protected $bMargin; - - /** - * Array of cell internal paddings ('T' => top, 'R' => right, 'B' => bottom, 'L' => left). - * @since 5.9.000 (2010-10-03) - * @protected - */ - protected $cell_padding = array('T' => 0, 'R' => 0, 'B' => 0, 'L' => 0); - - /** - * Array of cell margins ('T' => top, 'R' => right, 'B' => bottom, 'L' => left). - * @since 5.9.000 (2010-10-04) - * @protected - */ - protected $cell_margin = array('T' => 0, 'R' => 0, 'B' => 0, 'L' => 0); - - /** - * Current horizontal position in user unit for cell positioning. - * @protected - */ - protected $x; - - /** - * Current vertical position in user unit for cell positioning. - * @protected - */ - protected $y; - - /** - * Height of last cell printed. - * @protected - */ - protected $lasth; - - /** - * Line width in user unit. - * @protected - */ - protected $LineWidth; - - /** - * Array of standard font names. - * @protected - */ - protected $CoreFonts; - - /** - * Array of used fonts. - * @protected - */ - protected $fonts = array(); - - /** - * Array of font files. - * @protected - */ - protected $FontFiles = array(); - - /** - * Array of encoding differences. - * @protected - */ - protected $diffs = array(); - - /** - * Array of used images. - * @protected - */ - protected $images = array(); - - /** - * Depth of the svg tag, to keep track if the svg tag is a subtag or the root tag. - * @protected - */ - protected $svg_tag_depth = 0; - - /** - * Array of Annotations in pages. - * @protected - */ - protected $PageAnnots = array(); - - /** - * Array of internal links. - * @protected - */ - protected $links = array(); - - /** - * Current font family. - * @protected - */ - protected $FontFamily; - - /** - * Current font style. - * @protected - */ - protected $FontStyle; - - /** - * Current font ascent (distance between font top and baseline). - * @protected - * @since 2.8.000 (2007-03-29) - */ - protected $FontAscent; - - /** - * Current font descent (distance between font bottom and baseline). - * @protected - * @since 2.8.000 (2007-03-29) - */ - protected $FontDescent; - - /** - * Underlining flag. - * @protected - */ - protected $underline; - - /** - * Overlining flag. - * @protected - */ - protected $overline; - - /** - * Current font info. - * @protected - */ - protected $CurrentFont; - - /** - * Current font size in points. - * @protected - */ - protected $FontSizePt; - - /** - * Current font size in user unit. - * @protected - */ - protected $FontSize; - - /** - * Commands for drawing color. - * @protected - */ - protected $DrawColor; - - /** - * Commands for filling color. - * @protected - */ - protected $FillColor; - - /** - * Commands for text color. - * @protected - */ - protected $TextColor; - - /** - * Indicates whether fill and text colors are different. - * @protected - */ - protected $ColorFlag; - - /** - * Automatic page breaking. - * @protected - */ - protected $AutoPageBreak; - - /** - * Threshold used to trigger page breaks. - * @protected - */ - protected $PageBreakTrigger; - - /** - * Flag set when processing page header. - * @protected - */ - protected $InHeader = false; - - /** - * Flag set when processing page footer. - * @protected - */ - protected $InFooter = false; - - /** - * Zoom display mode. - * @protected - */ - protected $ZoomMode; - - /** - * Layout display mode. - * @protected - */ - protected $LayoutMode; - - /** - * If true set the document information dictionary in Unicode. - * @protected - */ - protected $docinfounicode = true; - - /** - * Document title. - * @protected - */ - protected $title = ''; - - /** - * Document subject. - * @protected - */ - protected $subject = ''; - - /** - * Document author. - * @protected - */ - protected $author = ''; - - /** - * Document keywords. - * @protected - */ - protected $keywords = ''; - - /** - * Document creator. - * @protected - */ - protected $creator = ''; - - /** - * Starting page number. - * @protected - */ - protected $starting_page_number = 1; - - /** - * The right-bottom (or left-bottom for RTL) corner X coordinate of last inserted image. - * @since 2002-07-31 - * @author Nicola Asuni - * @protected - */ - protected $img_rb_x; - - /** - * The right-bottom corner Y coordinate of last inserted image. - * @since 2002-07-31 - * @author Nicola Asuni - * @protected - */ - protected $img_rb_y; - - /** - * Adjusting factor to convert pixels to user units. - * @since 2004-06-14 - * @author Nicola Asuni - * @protected - */ - protected $imgscale = 1; - - /** - * Boolean flag set to true when the input text is unicode (require unicode fonts). - * @since 2005-01-02 - * @author Nicola Asuni - * @protected - */ - protected $isunicode = false; - - /** - * PDF version. - * @since 1.5.3 - * @protected - */ - protected $PDFVersion = '1.7'; - - /** - * ID of the stored default header template (-1 = not set). - * @protected - */ - protected $header_xobjid = false; - - /** - * If true reset the Header Xobject template at each page - * @protected - */ - protected $header_xobj_autoreset = false; - - /** - * Minimum distance between header and top page margin. - * @protected - */ - protected $header_margin; - - /** - * Minimum distance between footer and bottom page margin. - * @protected - */ - protected $footer_margin; - - /** - * Original left margin value. - * @protected - * @since 1.53.0.TC013 - */ - protected $original_lMargin; - - /** - * Original right margin value. - * @protected - * @since 1.53.0.TC013 - */ - protected $original_rMargin; - - /** - * Default font used on page header. - * @protected - */ - protected $header_font; - - /** - * Default font used on page footer. - * @protected - */ - protected $footer_font; - - /** - * Language templates. - * @protected - */ - protected $l; - - /** - * Barcode to print on page footer (only if set). - * @protected - */ - protected $barcode = false; - - /** - * Boolean flag to print/hide page header. - * @protected - */ - protected $print_header = true; - - /** - * Boolean flag to print/hide page footer. - * @protected - */ - protected $print_footer = true; - - /** - * Header image logo. - * @protected - */ - protected $header_logo = ''; - - /** - * Width of header image logo in user units. - * @protected - */ - protected $header_logo_width = 30; - - /** - * Title to be printed on default page header. - * @protected - */ - protected $header_title = ''; - - /** - * String to pring on page header after title. - * @protected - */ - protected $header_string = ''; - - /** - * Color for header text (RGB array). - * @since 5.9.174 (2012-07-25) - * @protected - */ - protected $header_text_color = array(0,0,0); - - /** - * Color for header line (RGB array). - * @since 5.9.174 (2012-07-25) - * @protected - */ - protected $header_line_color = array(0,0,0); - - /** - * Color for footer text (RGB array). - * @since 5.9.174 (2012-07-25) - * @protected - */ - protected $footer_text_color = array(0,0,0); - - /** - * Color for footer line (RGB array). - * @since 5.9.174 (2012-07-25) - * @protected - */ - protected $footer_line_color = array(0,0,0); - - /** - * Text shadow data array. - * @since 5.9.174 (2012-07-25) - * @protected - */ - protected $txtshadow = array('enabled'=>false, 'depth_w'=>0, 'depth_h'=>0, 'color'=>false, 'opacity'=>1, 'blend_mode'=>'Normal'); - - /** - * Default number of columns for html table. - * @protected - */ - protected $default_table_columns = 4; - - // variables for html parser - - /** - * HTML PARSER: array to store current link and rendering styles. - * @protected - */ - protected $HREF = array(); - - /** - * List of available fonts on filesystem. - * @protected - */ - protected $fontlist = array(); - - /** - * Current foreground color. - * @protected - */ - protected $fgcolor; - - /** - * HTML PARSER: array of boolean values, true in case of ordered list (OL), false otherwise. - * @protected - */ - protected $listordered = array(); - - /** - * HTML PARSER: array count list items on nested lists. - * @protected - */ - protected $listcount = array(); - - /** - * HTML PARSER: current list nesting level. - * @protected - */ - protected $listnum = 0; - - /** - * HTML PARSER: indent amount for lists. - * @protected - */ - protected $listindent = 0; - - /** - * HTML PARSER: current list indententation level. - * @protected - */ - protected $listindentlevel = 0; - - /** - * Current background color. - * @protected - */ - protected $bgcolor; - - /** - * Temporary font size in points. - * @protected - */ - protected $tempfontsize = 10; - - /** - * Spacer string for LI tags. - * @protected - */ - protected $lispacer = ''; - - /** - * Default encoding. - * @protected - * @since 1.53.0.TC010 - */ - protected $encoding = 'UTF-8'; - - /** - * PHP internal encoding. - * @protected - * @since 1.53.0.TC016 - */ - protected $internal_encoding; - - /** - * Boolean flag to indicate if the document language is Right-To-Left. - * @protected - * @since 2.0.000 - */ - protected $rtl = false; - - /** - * Boolean flag used to force RTL or LTR string direction. - * @protected - * @since 2.0.000 - */ - protected $tmprtl = false; - - // --- Variables used for document encryption: - - /** - * IBoolean flag indicating whether document is protected. - * @protected - * @since 2.0.000 (2008-01-02) - */ - protected $encrypted; - - /** - * Array containing encryption settings. - * @protected - * @since 5.0.005 (2010-05-11) - */ - protected $encryptdata = array(); - - /** - * Last RC4 key encrypted (cached for optimisation). - * @protected - * @since 2.0.000 (2008-01-02) - */ - protected $last_enc_key; - - /** - * Last RC4 computed key. - * @protected - * @since 2.0.000 (2008-01-02) - */ - protected $last_enc_key_c; - - /** - * File ID (used on document trailer). - * @protected - * @since 5.0.005 (2010-05-12) - */ - protected $file_id; - - // --- bookmark --- - - /** - * Outlines for bookmark. - * @protected - * @since 2.1.002 (2008-02-12) - */ - protected $outlines = array(); - - /** - * Outline root for bookmark. - * @protected - * @since 2.1.002 (2008-02-12) - */ - protected $OutlineRoot; - - // --- javascript and form --- - - /** - * Javascript code. - * @protected - * @since 2.1.002 (2008-02-12) - */ - protected $javascript = ''; - - /** - * Javascript counter. - * @protected - * @since 2.1.002 (2008-02-12) - */ - protected $n_js; - - /** - * line through state - * @protected - * @since 2.8.000 (2008-03-19) - */ - protected $linethrough; - - /** - * Array with additional document-wide usage rights for the document. - * @protected - * @since 5.8.014 (2010-08-23) - */ - protected $ur = array(); - - /** - * DPI (Dot Per Inch) Document Resolution (do not change). - * @protected - * @since 3.0.000 (2008-03-27) - */ - protected $dpi = 72; - - /** - * Array of page numbers were a new page group was started (the page numbers are the keys of the array). - * @protected - * @since 3.0.000 (2008-03-27) - */ - protected $newpagegroup = array(); - - /** - * Array that contains the number of pages in each page group. - * @protected - * @since 3.0.000 (2008-03-27) - */ - protected $pagegroups = array(); - - /** - * Current page group number. - * @protected - * @since 3.0.000 (2008-03-27) - */ - protected $currpagegroup = 0; - - /** - * Array of transparency objects and parameters. - * @protected - * @since 3.0.000 (2008-03-27) - */ - protected $extgstates; - - /** - * Set the default JPEG compression quality (1-100). - * @protected - * @since 3.0.000 (2008-03-27) - */ - protected $jpeg_quality; - - /** - * Default cell height ratio. - * @protected - * @since 3.0.014 (2008-05-23) - */ - protected $cell_height_ratio = K_CELL_HEIGHT_RATIO; - - /** - * PDF viewer preferences. - * @protected - * @since 3.1.000 (2008-06-09) - */ - protected $viewer_preferences; - - /** - * A name object specifying how the document should be displayed when opened. - * @protected - * @since 3.1.000 (2008-06-09) - */ - protected $PageMode; - - /** - * Array for storing gradient information. - * @protected - * @since 3.1.000 (2008-06-09) - */ - protected $gradients = array(); - - /** - * Array used to store positions inside the pages buffer (keys are the page numbers). - * @protected - * @since 3.2.000 (2008-06-26) - */ - protected $intmrk = array(); - - /** - * Array used to store positions inside the pages buffer (keys are the page numbers). - * @protected - * @since 5.7.000 (2010-08-03) - */ - protected $bordermrk = array(); - - /** - * Array used to store page positions to track empty pages (keys are the page numbers). - * @protected - * @since 5.8.007 (2010-08-18) - */ - protected $emptypagemrk = array(); - - /** - * Array used to store content positions inside the pages buffer (keys are the page numbers). - * @protected - * @since 4.6.021 (2009-07-20) - */ - protected $cntmrk = array(); - - /** - * Array used to store footer positions of each page. - * @protected - * @since 3.2.000 (2008-07-01) - */ - protected $footerpos = array(); - - /** - * Array used to store footer length of each page. - * @protected - * @since 4.0.014 (2008-07-29) - */ - protected $footerlen = array(); - - /** - * Boolean flag to indicate if a new line is created. - * @protected - * @since 3.2.000 (2008-07-01) - */ - protected $newline = true; - - /** - * End position of the latest inserted line. - * @protected - * @since 3.2.000 (2008-07-01) - */ - protected $endlinex = 0; - - /** - * PDF string for width value of the last line. - * @protected - * @since 4.0.006 (2008-07-16) - */ - protected $linestyleWidth = ''; - - /** - * PDF string for CAP value of the last line. - * @protected - * @since 4.0.006 (2008-07-16) - */ - protected $linestyleCap = '0 J'; - - /** - * PDF string for join value of the last line. - * @protected - * @since 4.0.006 (2008-07-16) - */ - protected $linestyleJoin = '0 j'; - - /** - * PDF string for dash value of the last line. - * @protected - * @since 4.0.006 (2008-07-16) - */ - protected $linestyleDash = '[] 0 d'; - - /** - * Boolean flag to indicate if marked-content sequence is open. - * @protected - * @since 4.0.013 (2008-07-28) - */ - protected $openMarkedContent = false; - - /** - * Count the latest inserted vertical spaces on HTML. - * @protected - * @since 4.0.021 (2008-08-24) - */ - protected $htmlvspace = 0; - - /** - * Array of Spot colors. - * @protected - * @since 4.0.024 (2008-09-12) - */ - protected $spot_colors = array(); - - /** - * Symbol used for HTML unordered list items. - * @protected - * @since 4.0.028 (2008-09-26) - */ - protected $lisymbol = ''; - - /** - * String used to mark the beginning and end of EPS image blocks. - * @protected - * @since 4.1.000 (2008-10-18) - */ - protected $epsmarker = 'x#!#EPS#!#x'; - - /** - * Array of transformation matrix. - * @protected - * @since 4.2.000 (2008-10-29) - */ - protected $transfmatrix = array(); - - /** - * Current key for transformation matrix. - * @protected - * @since 4.8.005 (2009-09-17) - */ - protected $transfmatrix_key = 0; - - /** - * Booklet mode for double-sided pages. - * @protected - * @since 4.2.000 (2008-10-29) - */ - protected $booklet = false; - - /** - * Epsilon value used for float calculations. - * @protected - * @since 4.2.000 (2008-10-29) - */ - protected $feps = 0.005; - - /** - * Array used for custom vertical spaces for HTML tags. - * @protected - * @since 4.2.001 (2008-10-30) - */ - protected $tagvspaces = array(); - - /** - * HTML PARSER: custom indent amount for lists. Negative value means disabled. - * @protected - * @since 4.2.007 (2008-11-12) - */ - protected $customlistindent = -1; - - /** - * Boolean flag to indicate if the border of the cell sides that cross the page should be removed. - * @protected - * @since 4.2.010 (2008-11-14) - */ - protected $opencell = true; - - /** - * Array of files to embedd. - * @protected - * @since 4.4.000 (2008-12-07) - */ - protected $embeddedfiles = array(); - - /** - * Boolean flag to indicate if we are inside a PRE tag. - * @protected - * @since 4.4.001 (2008-12-08) - */ - protected $premode = false; - - /** - * Array used to store positions of graphics transformation blocks inside the page buffer. - * keys are the page numbers - * @protected - * @since 4.4.002 (2008-12-09) - */ - protected $transfmrk = array(); - - /** - * Default color for html links. - * @protected - * @since 4.4.003 (2008-12-09) - */ - protected $htmlLinkColorArray = array(0, 0, 255); - - /** - * Default font style to add to html links. - * @protected - * @since 4.4.003 (2008-12-09) - */ - protected $htmlLinkFontStyle = 'U'; - - /** - * Counts the number of pages. - * @protected - * @since 4.5.000 (2008-12-31) - */ - protected $numpages = 0; - - /** - * Array containing page lengths in bytes. - * @protected - * @since 4.5.000 (2008-12-31) - */ - protected $pagelen = array(); - - /** - * Counts the number of pages. - * @protected - * @since 4.5.000 (2008-12-31) - */ - protected $numimages = 0; - - /** - * Store the image keys. - * @protected - * @since 4.5.000 (2008-12-31) - */ - protected $imagekeys = array(); - - /** - * Length of the buffer in bytes. - * @protected - * @since 4.5.000 (2008-12-31) - */ - protected $bufferlen = 0; - - /** - * Counts the number of fonts. - * @protected - * @since 4.5.000 (2009-01-02) - */ - protected $numfonts = 0; - - /** - * Store the font keys. - * @protected - * @since 4.5.000 (2009-01-02) - */ - protected $fontkeys = array(); - - /** - * Store the font object IDs. - * @protected - * @since 4.8.001 (2009-09-09) - */ - protected $font_obj_ids = array(); - - /** - * Store the fage status (true when opened, false when closed). - * @protected - * @since 4.5.000 (2009-01-02) - */ - protected $pageopen = array(); - - /** - * Default monospace font. - * @protected - * @since 4.5.025 (2009-03-10) - */ - protected $default_monospaced_font = 'courier'; - - /** - * Cloned copy of the current class object. - * @protected - * @since 4.5.029 (2009-03-19) - */ - protected $objcopy; - - /** - * Array used to store the lengths of cache files. - * @protected - * @since 4.5.029 (2009-03-19) - */ - protected $cache_file_length = array(); - - /** - * Table header content to be repeated on each new page. - * @protected - * @since 4.5.030 (2009-03-20) - */ - protected $thead = ''; - - /** - * Margins used for table header. - * @protected - * @since 4.5.030 (2009-03-20) - */ - protected $theadMargins = array(); - - /** - * Boolean flag to enable document digital signature. - * @protected - * @since 4.6.005 (2009-04-24) - */ - protected $sign = false; - - /** - * Digital signature data. - * @protected - * @since 4.6.005 (2009-04-24) - */ - protected $signature_data = array(); - - /** - * Digital signature max length. - * @protected - * @since 4.6.005 (2009-04-24) - */ - protected $signature_max_length = 11742; - - /** - * Data for digital signature appearance. - * @protected - * @since 5.3.011 (2010-06-16) - */ - protected $signature_appearance = array('page' => 1, 'rect' => '0 0 0 0'); - - /** - * Array of empty digital signature appearances. - * @protected - * @since 5.9.101 (2011-07-06) - */ - protected $empty_signature_appearance = array(); - - /** - * Boolean flag to enable document timestamping with TSA. - * @protected - * @since 6.0.085 (2014-06-19) - */ - protected $tsa_timestamp = false; - - /** - * Timestamping data. - * @protected - * @since 6.0.085 (2014-06-19) - */ - protected $tsa_data = array(); - - /** - * Regular expression used to find blank characters (required for word-wrapping). - * @protected - * @since 4.6.006 (2009-04-28) - */ - protected $re_spaces = '/[^\S\xa0]/'; - - /** - * Array of $re_spaces parts. - * @protected - * @since 5.5.011 (2010-07-09) - */ - protected $re_space = array('p' => '[^\S\xa0]', 'm' => ''); - - /** - * Digital signature object ID. - * @protected - * @since 4.6.022 (2009-06-23) - */ - protected $sig_obj_id = 0; - - /** - * ID of page objects. - * @protected - * @since 4.7.000 (2009-08-29) - */ - protected $page_obj_id = array(); - - /** - * List of form annotations IDs. - * @protected - * @since 4.8.000 (2009-09-07) - */ - protected $form_obj_id = array(); - - /** - * Deafult Javascript field properties. Possible values are described on official Javascript for Acrobat API reference. Annotation options can be directly specified using the 'aopt' entry. - * @protected - * @since 4.8.000 (2009-09-07) - */ - protected $default_form_prop = array('lineWidth'=>1, 'borderStyle'=>'solid', 'fillColor'=>array(255, 255, 255), 'strokeColor'=>array(128, 128, 128)); - - /** - * Javascript objects array. - * @protected - * @since 4.8.000 (2009-09-07) - */ - protected $js_objects = array(); - - /** - * Current form action (used during XHTML rendering). - * @protected - * @since 4.8.000 (2009-09-07) - */ - protected $form_action = ''; - - /** - * Current form encryption type (used during XHTML rendering). - * @protected - * @since 4.8.000 (2009-09-07) - */ - protected $form_enctype = 'application/x-www-form-urlencoded'; - - /** - * Current method to submit forms. - * @protected - * @since 4.8.000 (2009-09-07) - */ - protected $form_mode = 'post'; - - /** - * List of fonts used on form fields (fontname => fontkey). - * @protected - * @since 4.8.001 (2009-09-09) - */ - protected $annotation_fonts = array(); - - /** - * List of radio buttons parent objects. - * @protected - * @since 4.8.001 (2009-09-09) - */ - protected $radiobutton_groups = array(); - - /** - * List of radio group objects IDs. - * @protected - * @since 4.8.001 (2009-09-09) - */ - protected $radio_groups = array(); - - /** - * Text indentation value (used for text-indent CSS attribute). - * @protected - * @since 4.8.006 (2009-09-23) - */ - protected $textindent = 0; - - /** - * Store page number when startTransaction() is called. - * @protected - * @since 4.8.006 (2009-09-23) - */ - protected $start_transaction_page = 0; - - /** - * Store Y position when startTransaction() is called. - * @protected - * @since 4.9.001 (2010-03-28) - */ - protected $start_transaction_y = 0; - - /** - * True when we are printing the thead section on a new page. - * @protected - * @since 4.8.027 (2010-01-25) - */ - protected $inthead = false; - - /** - * Array of column measures (width, space, starting Y position). - * @protected - * @since 4.9.001 (2010-03-28) - */ - protected $columns = array(); - - /** - * Number of colums. - * @protected - * @since 4.9.001 (2010-03-28) - */ - protected $num_columns = 1; - - /** - * Current column number. - * @protected - * @since 4.9.001 (2010-03-28) - */ - protected $current_column = 0; - - /** - * Starting page for columns. - * @protected - * @since 4.9.001 (2010-03-28) - */ - protected $column_start_page = 0; - - /** - * Maximum page and column selected. - * @protected - * @since 5.8.000 (2010-08-11) - */ - protected $maxselcol = array('page' => 0, 'column' => 0); - - /** - * Array of: X difference between table cell x start and starting page margin, cellspacing, cellpadding. - * @protected - * @since 5.8.000 (2010-08-11) - */ - protected $colxshift = array('x' => 0, 's' => array('H' => 0, 'V' => 0), 'p' => array('L' => 0, 'T' => 0, 'R' => 0, 'B' => 0)); - - /** - * Text rendering mode: 0 = Fill text; 1 = Stroke text; 2 = Fill, then stroke text; 3 = Neither fill nor stroke text (invisible); 4 = Fill text and add to path for clipping; 5 = Stroke text and add to path for clipping; 6 = Fill, then stroke text and add to path for clipping; 7 = Add text to path for clipping. - * @protected - * @since 4.9.008 (2010-04-03) - */ - protected $textrendermode = 0; - - /** - * Text stroke width in doc units. - * @protected - * @since 4.9.008 (2010-04-03) - */ - protected $textstrokewidth = 0; - - /** - * Current stroke color. - * @protected - * @since 4.9.008 (2010-04-03) - */ - protected $strokecolor; - - /** - * Default unit of measure for document. - * @protected - * @since 5.0.000 (2010-04-22) - */ - protected $pdfunit = 'mm'; - - /** - * Boolean flag true when we are on TOC (Table Of Content) page. - * @protected - */ - protected $tocpage = false; - - /** - * Boolean flag: if true convert vector images (SVG, EPS) to raster image using GD or ImageMagick library. - * @protected - * @since 5.0.000 (2010-04-26) - */ - protected $rasterize_vector_images = false; - - /** - * Boolean flag: if true enables font subsetting by default. - * @protected - * @since 5.3.002 (2010-06-07) - */ - protected $font_subsetting = true; - - /** - * Array of default graphic settings. - * @protected - * @since 5.5.008 (2010-07-02) - */ - protected $default_graphic_vars = array(); - - /** - * Array of XObjects. - * @protected - * @since 5.8.014 (2010-08-23) - */ - protected $xobjects = array(); - - /** - * Boolean value true when we are inside an XObject. - * @protected - * @since 5.8.017 (2010-08-24) - */ - protected $inxobj = false; - - /** - * Current XObject ID. - * @protected - * @since 5.8.017 (2010-08-24) - */ - protected $xobjid = ''; - - /** - * Percentage of character stretching. - * @protected - * @since 5.9.000 (2010-09-29) - */ - protected $font_stretching = 100; - - /** - * Increases or decreases the space between characters in a text by the specified amount (tracking). - * @protected - * @since 5.9.000 (2010-09-29) - */ - protected $font_spacing = 0; - - /** - * Array of no-write regions. - * ('page' => page number or empy for current page, 'xt' => X top, 'yt' => Y top, 'xb' => X bottom, 'yb' => Y bottom, 'side' => page side 'L' = left or 'R' = right) - * @protected - * @since 5.9.003 (2010-10-14) - */ - protected $page_regions = array(); - - /** - * Boolean value true when page region check is active. - * @protected - */ - protected $check_page_regions = true; - - /** - * Array of PDF layers data. - * @protected - * @since 5.9.102 (2011-07-13) - */ - protected $pdflayers = array(); - - /** - * A dictionary of names and corresponding destinations (Dests key on document Catalog). - * @protected - * @since 5.9.097 (2011-06-23) - */ - protected $dests = array(); - - /** - * Object ID for Named Destinations - * @protected - * @since 5.9.097 (2011-06-23) - */ - protected $n_dests; - - /** - * Embedded Files Names - * @protected - * @since 5.9.204 (2013-01-23) - */ - protected $efnames = array(); - - /** - * Directory used for the last SVG image. - * @protected - * @since 5.0.000 (2010-05-05) - */ - protected $svgdir = ''; - - /** - * Deafult unit of measure for SVG. - * @protected - * @since 5.0.000 (2010-05-02) - */ - protected $svgunit = 'px'; - - /** - * Array of SVG gradients. - * @protected - * @since 5.0.000 (2010-05-02) - */ - protected $svggradients = array(); - - /** - * ID of last SVG gradient. - * @protected - * @since 5.0.000 (2010-05-02) - */ - protected $svggradientid = 0; - - /** - * Boolean value true when in SVG defs group. - * @protected - * @since 5.0.000 (2010-05-02) - */ - protected $svgdefsmode = false; - - /** - * Array of SVG defs. - * @protected - * @since 5.0.000 (2010-05-02) - */ - protected $svgdefs = array(); - - /** - * Boolean value true when in SVG clipPath tag. - * @protected - * @since 5.0.000 (2010-04-26) - */ - protected $svgclipmode = false; - - /** - * Array of SVG clipPath commands. - * @protected - * @since 5.0.000 (2010-05-02) - */ - protected $svgclippaths = array(); - - /** - * Array of SVG clipPath tranformation matrix. - * @protected - * @since 5.8.022 (2010-08-31) - */ - protected $svgcliptm = array(); - - /** - * ID of last SVG clipPath. - * @protected - * @since 5.0.000 (2010-05-02) - */ - protected $svgclipid = 0; - - /** - * SVG text. - * @protected - * @since 5.0.000 (2010-05-02) - */ - protected $svgtext = ''; - - /** - * SVG text properties. - * @protected - * @since 5.8.013 (2010-08-23) - */ - protected $svgtextmode = array(); - - /** - * Array of SVG properties. - * @protected - * @since 5.0.000 (2010-05-02) - */ - protected $svgstyles = array(array( - 'alignment-baseline' => 'auto', - 'baseline-shift' => 'baseline', - 'clip' => 'auto', - 'clip-path' => 'none', - 'clip-rule' => 'nonzero', - 'color' => 'black', - 'color-interpolation' => 'sRGB', - 'color-interpolation-filters' => 'linearRGB', - 'color-profile' => 'auto', - 'color-rendering' => 'auto', - 'cursor' => 'auto', - 'direction' => 'ltr', - 'display' => 'inline', - 'dominant-baseline' => 'auto', - 'enable-background' => 'accumulate', - 'fill' => 'black', - 'fill-opacity' => 1, - 'fill-rule' => 'nonzero', - 'filter' => 'none', - 'flood-color' => 'black', - 'flood-opacity' => 1, - 'font' => '', - 'font-family' => 'helvetica', - 'font-size' => 'medium', - 'font-size-adjust' => 'none', - 'font-stretch' => 'normal', - 'font-style' => 'normal', - 'font-variant' => 'normal', - 'font-weight' => 'normal', - 'glyph-orientation-horizontal' => '0deg', - 'glyph-orientation-vertical' => 'auto', - 'image-rendering' => 'auto', - 'kerning' => 'auto', - 'letter-spacing' => 'normal', - 'lighting-color' => 'white', - 'marker' => '', - 'marker-end' => 'none', - 'marker-mid' => 'none', - 'marker-start' => 'none', - 'mask' => 'none', - 'opacity' => 1, - 'overflow' => 'auto', - 'pointer-events' => 'visiblePainted', - 'shape-rendering' => 'auto', - 'stop-color' => 'black', - 'stop-opacity' => 1, - 'stroke' => 'none', - 'stroke-dasharray' => 'none', - 'stroke-dashoffset' => 0, - 'stroke-linecap' => 'butt', - 'stroke-linejoin' => 'miter', - 'stroke-miterlimit' => 4, - 'stroke-opacity' => 1, - 'stroke-width' => 1, - 'text-anchor' => 'start', - 'text-decoration' => 'none', - 'text-rendering' => 'auto', - 'unicode-bidi' => 'normal', - 'visibility' => 'visible', - 'word-spacing' => 'normal', - 'writing-mode' => 'lr-tb', - 'text-color' => 'black', - 'transfmatrix' => array(1, 0, 0, 1, 0, 0) - )); - - /** - * If true force sRGB color profile for all document. - * @protected - * @since 5.9.121 (2011-09-28) - */ - protected $force_srgb = false; - - /** - * If true set the document to PDF/A mode. - * @protected - * @since 5.9.121 (2011-09-27) - */ - protected $pdfa_mode = false; - - /** - * version of PDF/A mode (1 - 3). - * @protected - * @since 6.2.26 (2019-03-12) - */ - protected $pdfa_version = 1; - - /** - * Document creation date-time - * @protected - * @since 5.9.152 (2012-03-22) - */ - protected $doc_creation_timestamp; - - /** - * Document modification date-time - * @protected - * @since 5.9.152 (2012-03-22) - */ - protected $doc_modification_timestamp; - - /** - * Custom XMP data. - * @protected - * @since 5.9.128 (2011-10-06) - */ - protected $custom_xmp = ''; - - /** - * Custom XMP RDF data. - * @protected - * @since 6.3.0 (2019-09-19) - */ - protected $custom_xmp_rdf = ''; - - /** - * Overprint mode array. - * (Check the "Entries in a Graphics State Parameter Dictionary" on PDF 32000-1:2008). - * @protected - * @since 5.9.152 (2012-03-23) - */ - protected $overprint = array('OP' => false, 'op' => false, 'OPM' => 0); - - /** - * Alpha mode array. - * (Check the "Entries in a Graphics State Parameter Dictionary" on PDF 32000-1:2008). - * @protected - * @since 5.9.152 (2012-03-23) - */ - protected $alpha = array('CA' => 1, 'ca' => 1, 'BM' => '/Normal', 'AIS' => false); - - /** - * Define the page boundaries boxes to be set on document. - * @protected - * @since 5.9.152 (2012-03-23) - */ - protected $page_boxes = array('MediaBox', 'CropBox', 'BleedBox', 'TrimBox', 'ArtBox'); - - /** - * If true print TCPDF meta link. - * @protected - * @since 5.9.152 (2012-03-23) - */ - protected $tcpdflink = true; - - /** - * Cache array for computed GD gamma values. - * @protected - * @since 5.9.1632 (2012-06-05) - */ - protected $gdgammacache = array(); - - //------------------------------------------------------------ - // METHODS - //------------------------------------------------------------ - - /** - * This is the class constructor. - * It allows to set up the page format, the orientation and the measure unit used in all the methods (except for the font sizes). - * - * IMPORTANT: Please note that this method sets the mb_internal_encoding to ASCII, so if you are using the mbstring module functions with TCPDF you need to correctly set/unset the mb_internal_encoding when needed. - * - * @param $orientation (string) page orientation. Possible values are (case insensitive):
      • P or Portrait (default)
      • L or Landscape
      • '' (empty string) for automatic orientation
      - * @param $unit (string) User measure unit. Possible values are:
      • pt: point
      • mm: millimeter (default)
      • cm: centimeter
      • in: inch

      A point equals 1/72 of inch, that is to say about 0.35 mm (an inch being 2.54 cm). This is a very common unit in typography; font sizes are expressed in that unit. - * @param $format (mixed) The format used for pages. It can be either: one of the string values specified at getPageSizeFromFormat() or an array of parameters specified at setPageFormat(). - * @param $unicode (boolean) TRUE means that the input text is unicode (default = true) - * @param $encoding (string) Charset encoding (used only when converting back html entities); default is UTF-8. - * @param $diskcache (boolean) DEPRECATED FEATURE - * @param $pdfa (integer) If not false, set the document to PDF/A mode and the good version (1 or 3). - * @public - * @see getPageSizeFromFormat(), setPageFormat() - */ - public function __construct($orientation='P', $unit='mm', $format='A4', $unicode=true, $encoding='UTF-8', $diskcache=false, $pdfa=false) { - /* Set internal character encoding to ASCII */ - if (function_exists('mb_internal_encoding') AND mb_internal_encoding()) { - $this->internal_encoding = mb_internal_encoding(); - mb_internal_encoding('ASCII'); - } - // set file ID for trailer - $serformat = (is_array($format) ? json_encode($format) : $format); - $this->file_id = md5(TCPDF_STATIC::getRandomSeed('TCPDF'.$orientation.$unit.$serformat.$encoding)); - $this->font_obj_ids = array(); - $this->page_obj_id = array(); - $this->form_obj_id = array(); - - // set pdf/a mode - if ($pdfa != false) { - $this->pdfa_mode = true; - $this->pdfa_version = $pdfa; // 1 or 3 - } else - $this->pdfa_mode = false; - - $this->force_srgb = false; - // set language direction - $this->rtl = false; - $this->tmprtl = false; - // some checks - $this->_dochecks(); - // initialization of properties - $this->isunicode = $unicode; - $this->page = 0; - $this->transfmrk[0] = array(); - $this->pagedim = array(); - $this->n = 2; - $this->buffer = ''; - $this->pages = array(); - $this->state = 0; - $this->fonts = array(); - $this->FontFiles = array(); - $this->diffs = array(); - $this->images = array(); - $this->links = array(); - $this->gradients = array(); - $this->InFooter = false; - $this->lasth = 0; - $this->FontFamily = defined('PDF_FONT_NAME_MAIN')?PDF_FONT_NAME_MAIN:'helvetica'; - $this->FontStyle = ''; - $this->FontSizePt = 12; - $this->underline = false; - $this->overline = false; - $this->linethrough = false; - $this->DrawColor = '0 G'; - $this->FillColor = '0 g'; - $this->TextColor = '0 g'; - $this->ColorFlag = false; - $this->pdflayers = array(); - // encryption values - $this->encrypted = false; - $this->last_enc_key = ''; - // standard Unicode fonts - $this->CoreFonts = array( - 'courier'=>'Courier', - 'courierB'=>'Courier-Bold', - 'courierI'=>'Courier-Oblique', - 'courierBI'=>'Courier-BoldOblique', - 'helvetica'=>'Helvetica', - 'helveticaB'=>'Helvetica-Bold', - 'helveticaI'=>'Helvetica-Oblique', - 'helveticaBI'=>'Helvetica-BoldOblique', - 'times'=>'Times-Roman', - 'timesB'=>'Times-Bold', - 'timesI'=>'Times-Italic', - 'timesBI'=>'Times-BoldItalic', - 'symbol'=>'Symbol', - 'zapfdingbats'=>'ZapfDingbats' - ); - // set scale factor - $this->setPageUnit($unit); - // set page format and orientation - $this->setPageFormat($format, $orientation); - // page margins (1 cm) - $margin = 28.35 / $this->k; - $this->SetMargins($margin, $margin); - $this->clMargin = $this->lMargin; - $this->crMargin = $this->rMargin; - // internal cell padding - $cpadding = $margin / 10; - $this->setCellPaddings($cpadding, 0, $cpadding, 0); - // cell margins - $this->setCellMargins(0, 0, 0, 0); - // line width (0.2 mm) - $this->LineWidth = 0.57 / $this->k; - $this->linestyleWidth = sprintf('%F w', ($this->LineWidth * $this->k)); - $this->linestyleCap = '0 J'; - $this->linestyleJoin = '0 j'; - $this->linestyleDash = '[] 0 d'; - // automatic page break - $this->SetAutoPageBreak(true, (2 * $margin)); - // full width display mode - $this->SetDisplayMode('fullwidth'); - // compression - $this->SetCompression(); - // set default PDF version number - $this->setPDFVersion(); - $this->tcpdflink = true; - $this->encoding = $encoding; - $this->HREF = array(); - $this->getFontsList(); - $this->fgcolor = array('R' => 0, 'G' => 0, 'B' => 0); - $this->strokecolor = array('R' => 0, 'G' => 0, 'B' => 0); - $this->bgcolor = array('R' => 255, 'G' => 255, 'B' => 255); - $this->extgstates = array(); - $this->setTextShadow(); - // signature - $this->sign = false; - $this->tsa_timestamp = false; - $this->tsa_data = array(); - $this->signature_appearance = array('page' => 1, 'rect' => '0 0 0 0', 'name' => 'Signature'); - $this->empty_signature_appearance = array(); - // user's rights - $this->ur['enabled'] = false; - $this->ur['document'] = '/FullSave'; - $this->ur['annots'] = '/Create/Delete/Modify/Copy/Import/Export'; - $this->ur['form'] = '/Add/Delete/FillIn/Import/Export/SubmitStandalone/SpawnTemplate'; - $this->ur['signature'] = '/Modify'; - $this->ur['ef'] = '/Create/Delete/Modify/Import'; - $this->ur['formex'] = ''; - // set default JPEG quality - $this->jpeg_quality = 75; - // initialize some settings - TCPDF_FONTS::utf8Bidi(array(), '', false, $this->isunicode, $this->CurrentFont); - // set default font - $this->SetFont($this->FontFamily, $this->FontStyle, $this->FontSizePt); - $this->setHeaderFont(array($this->FontFamily, $this->FontStyle, $this->FontSizePt)); - $this->setFooterFont(array($this->FontFamily, $this->FontStyle, $this->FontSizePt)); - // check if PCRE Unicode support is enabled - if ($this->isunicode AND (@preg_match('/\pL/u', 'a') == 1)) { - // PCRE unicode support is turned ON - // \s : any whitespace character - // \p{Z} : any separator - // \p{Lo} : Unicode letter or ideograph that does not have lowercase and uppercase variants. Is used to chunk chinese words. - // \xa0 : Unicode Character 'NO-BREAK SPACE' (U+00A0) - //$this->setSpacesRE('/(?!\xa0)[\s\p{Z}\p{Lo}]/u'); - $this->setSpacesRE('/(?!\xa0)[\s\p{Z}]/u'); - } else { - // PCRE unicode support is turned OFF - $this->setSpacesRE('/[^\S\xa0]/'); - } - $this->default_form_prop = array('lineWidth'=>1, 'borderStyle'=>'solid', 'fillColor'=>array(255, 255, 255), 'strokeColor'=>array(128, 128, 128)); - // set document creation and modification timestamp - $this->doc_creation_timestamp = time(); - $this->doc_modification_timestamp = $this->doc_creation_timestamp; - // get default graphic vars - $this->default_graphic_vars = $this->getGraphicVars(); - $this->header_xobj_autoreset = false; - $this->custom_xmp = ''; - $this->custom_xmp_rdf = ''; - // Call cleanup method after script execution finishes or exit() is called. - // NOTE: This will not be executed if the process is killed with a SIGTERM or SIGKILL signal. - register_shutdown_function(array($this, '_destroy'), true); - } - - /** - * Default destructor. - * @public - * @since 1.53.0.TC016 - */ - public function __destruct() { - // cleanup - $this->_destroy(true); - } - - /** - * Set the units of measure for the document. - * @param $unit (string) User measure unit. Possible values are:
      • pt: point
      • mm: millimeter (default)
      • cm: centimeter
      • in: inch

      A point equals 1/72 of inch, that is to say about 0.35 mm (an inch being 2.54 cm). This is a very common unit in typography; font sizes are expressed in that unit. - * @public - * @since 3.0.015 (2008-06-06) - */ - public function setPageUnit($unit) { - $unit = strtolower($unit); - //Set scale factor - switch ($unit) { - // points - case 'px': - case 'pt': { - $this->k = 1; - break; - } - // millimeters - case 'mm': { - $this->k = $this->dpi / 25.4; - break; - } - // centimeters - case 'cm': { - $this->k = $this->dpi / 2.54; - break; - } - // inches - case 'in': { - $this->k = $this->dpi; - break; - } - // unsupported unit - default : { - $this->Error('Incorrect unit: '.$unit); - break; - } - } - $this->pdfunit = $unit; - if (isset($this->CurOrientation)) { - $this->setPageOrientation($this->CurOrientation); - } - } - - /** - * Change the format of the current page - * @param $format (mixed) The format used for pages. It can be either: one of the string values specified at getPageSizeFromFormat() documentation or an array of two numbers (width, height) or an array containing the following measures and options:
        - *
      • ['format'] = page format name (one of the above);
      • - *
      • ['Rotate'] : The number of degrees by which the page shall be rotated clockwise when displayed or printed. The value shall be a multiple of 90.
      • - *
      • ['PZ'] : The page's preferred zoom (magnification) factor.
      • - *
      • ['MediaBox'] : the boundaries of the physical medium on which the page shall be displayed or printed:
      • - *
      • ['MediaBox']['llx'] : lower-left x coordinate
      • - *
      • ['MediaBox']['lly'] : lower-left y coordinate
      • - *
      • ['MediaBox']['urx'] : upper-right x coordinate
      • - *
      • ['MediaBox']['ury'] : upper-right y coordinate
      • - *
      • ['CropBox'] : the visible region of default user space:
      • - *
      • ['CropBox']['llx'] : lower-left x coordinate
      • - *
      • ['CropBox']['lly'] : lower-left y coordinate
      • - *
      • ['CropBox']['urx'] : upper-right x coordinate
      • - *
      • ['CropBox']['ury'] : upper-right y coordinate
      • - *
      • ['BleedBox'] : the region to which the contents of the page shall be clipped when output in a production environment:
      • - *
      • ['BleedBox']['llx'] : lower-left x coordinate
      • - *
      • ['BleedBox']['lly'] : lower-left y coordinate
      • - *
      • ['BleedBox']['urx'] : upper-right x coordinate
      • - *
      • ['BleedBox']['ury'] : upper-right y coordinate
      • - *
      • ['TrimBox'] : the intended dimensions of the finished page after trimming:
      • - *
      • ['TrimBox']['llx'] : lower-left x coordinate
      • - *
      • ['TrimBox']['lly'] : lower-left y coordinate
      • - *
      • ['TrimBox']['urx'] : upper-right x coordinate
      • - *
      • ['TrimBox']['ury'] : upper-right y coordinate
      • - *
      • ['ArtBox'] : the extent of the page's meaningful content:
      • - *
      • ['ArtBox']['llx'] : lower-left x coordinate
      • - *
      • ['ArtBox']['lly'] : lower-left y coordinate
      • - *
      • ['ArtBox']['urx'] : upper-right x coordinate
      • - *
      • ['ArtBox']['ury'] : upper-right y coordinate
      • - *
      • ['BoxColorInfo'] :specify the colours and other visual characteristics that should be used in displaying guidelines on the screen for each of the possible page boundaries other than the MediaBox:
      • - *
      • ['BoxColorInfo'][BOXTYPE]['C'] : an array of three numbers in the range 0-255, representing the components in the DeviceRGB colour space.
      • - *
      • ['BoxColorInfo'][BOXTYPE]['W'] : the guideline width in default user units
      • - *
      • ['BoxColorInfo'][BOXTYPE]['S'] : the guideline style: S = Solid; D = Dashed
      • - *
      • ['BoxColorInfo'][BOXTYPE]['D'] : dash array defining a pattern of dashes and gaps to be used in drawing dashed guidelines
      • - *
      • ['trans'] : the style and duration of the visual transition to use when moving from another page to the given page during a presentation
      • - *
      • ['trans']['Dur'] : The page's display duration (also called its advance timing): the maximum length of time, in seconds, that the page shall be displayed during presentations before the viewer application shall automatically advance to the next page.
      • - *
      • ['trans']['S'] : transition style : Split, Blinds, Box, Wipe, Dissolve, Glitter, R, Fly, Push, Cover, Uncover, Fade
      • - *
      • ['trans']['D'] : The duration of the transition effect, in seconds.
      • - *
      • ['trans']['Dm'] : (Split and Blinds transition styles only) The dimension in which the specified transition effect shall occur: H = Horizontal, V = Vertical. Default value: H.
      • - *
      • ['trans']['M'] : (Split, Box and Fly transition styles only) The direction of motion for the specified transition effect: I = Inward from the edges of the page, O = Outward from the center of the pageDefault value: I.
      • - *
      • ['trans']['Di'] : (Wipe, Glitter, Fly, Cover, Uncover and Push transition styles only) The direction in which the specified transition effect shall moves, expressed in degrees counterclockwise starting from a left-to-right direction. If the value is a number, it shall be one of: 0 = Left to right, 90 = Bottom to top (Wipe only), 180 = Right to left (Wipe only), 270 = Top to bottom, 315 = Top-left to bottom-right (Glitter only). If the value is a name, it shall be None, which is relevant only for the Fly transition when the value of SS is not 1.0. Default value: 0.
      • - *
      • ['trans']['SS'] : (Fly transition style only) The starting or ending scale at which the changes shall be drawn. If M specifies an inward transition, the scale of the changes drawn shall progress from SS to 1.0 over the course of the transition. If M specifies an outward transition, the scale of the changes drawn shall progress from 1.0 to SS over the course of the transition. Default: 1.0.
      • - *
      • ['trans']['B'] : (Fly transition style only) If true, the area that shall be flown in is rectangular and opaque. Default: false.
      • - *
      - * @param $orientation (string) page orientation. Possible values are (case insensitive):
        - *
      • P or Portrait (default)
      • - *
      • L or Landscape
      • - *
      • '' (empty string) for automatic orientation
      • - *
      - * @protected - * @since 3.0.015 (2008-06-06) - * @see getPageSizeFromFormat() - */ - protected function setPageFormat($format, $orientation='P') { - if (!empty($format) AND isset($this->pagedim[$this->page])) { - // remove inherited values - unset($this->pagedim[$this->page]); - } - if (is_string($format)) { - // get page measures from format name - $pf = TCPDF_STATIC::getPageSizeFromFormat($format); - $this->fwPt = $pf[0]; - $this->fhPt = $pf[1]; - } else { - // the boundaries of the physical medium on which the page shall be displayed or printed - if (isset($format['MediaBox'])) { - $this->pagedim = TCPDF_STATIC::setPageBoxes($this->page, 'MediaBox', $format['MediaBox']['llx'], $format['MediaBox']['lly'], $format['MediaBox']['urx'], $format['MediaBox']['ury'], false, $this->k, $this->pagedim); - $this->fwPt = (($format['MediaBox']['urx'] - $format['MediaBox']['llx']) * $this->k); - $this->fhPt = (($format['MediaBox']['ury'] - $format['MediaBox']['lly']) * $this->k); - } else { - if (isset($format[0]) AND is_numeric($format[0]) AND isset($format[1]) AND is_numeric($format[1])) { - $pf = array(($format[0] * $this->k), ($format[1] * $this->k)); - } else { - if (!isset($format['format'])) { - // default value - $format['format'] = 'A4'; - } - $pf = TCPDF_STATIC::getPageSizeFromFormat($format['format']); - } - $this->fwPt = $pf[0]; - $this->fhPt = $pf[1]; - $this->pagedim = TCPDF_STATIC::setPageBoxes($this->page, 'MediaBox', 0, 0, $this->fwPt, $this->fhPt, true, $this->k, $this->pagedim); - } - // the visible region of default user space - if (isset($format['CropBox'])) { - $this->pagedim = TCPDF_STATIC::setPageBoxes($this->page, 'CropBox', $format['CropBox']['llx'], $format['CropBox']['lly'], $format['CropBox']['urx'], $format['CropBox']['ury'], false, $this->k, $this->pagedim); - } - // the region to which the contents of the page shall be clipped when output in a production environment - if (isset($format['BleedBox'])) { - $this->pagedim = TCPDF_STATIC::setPageBoxes($this->page, 'BleedBox', $format['BleedBox']['llx'], $format['BleedBox']['lly'], $format['BleedBox']['urx'], $format['BleedBox']['ury'], false, $this->k, $this->pagedim); - } - // the intended dimensions of the finished page after trimming - if (isset($format['TrimBox'])) { - $this->pagedim = TCPDF_STATIC::setPageBoxes($this->page, 'TrimBox', $format['TrimBox']['llx'], $format['TrimBox']['lly'], $format['TrimBox']['urx'], $format['TrimBox']['ury'], false, $this->k, $this->pagedim); - } - // the page's meaningful content (including potential white space) - if (isset($format['ArtBox'])) { - $this->pagedim = TCPDF_STATIC::setPageBoxes($this->page, 'ArtBox', $format['ArtBox']['llx'], $format['ArtBox']['lly'], $format['ArtBox']['urx'], $format['ArtBox']['ury'], false, $this->k, $this->pagedim); - } - // specify the colours and other visual characteristics that should be used in displaying guidelines on the screen for the various page boundaries - if (isset($format['BoxColorInfo'])) { - $this->pagedim[$this->page]['BoxColorInfo'] = $format['BoxColorInfo']; - } - if (isset($format['Rotate']) AND (($format['Rotate'] % 90) == 0)) { - // The number of degrees by which the page shall be rotated clockwise when displayed or printed. The value shall be a multiple of 90. - $this->pagedim[$this->page]['Rotate'] = intval($format['Rotate']); - } - if (isset($format['PZ'])) { - // The page's preferred zoom (magnification) factor - $this->pagedim[$this->page]['PZ'] = floatval($format['PZ']); - } - if (isset($format['trans'])) { - // The style and duration of the visual transition to use when moving from another page to the given page during a presentation - if (isset($format['trans']['Dur'])) { - // The page's display duration - $this->pagedim[$this->page]['trans']['Dur'] = floatval($format['trans']['Dur']); - } - $stansition_styles = array('Split', 'Blinds', 'Box', 'Wipe', 'Dissolve', 'Glitter', 'R', 'Fly', 'Push', 'Cover', 'Uncover', 'Fade'); - if (isset($format['trans']['S']) AND in_array($format['trans']['S'], $stansition_styles)) { - // The transition style that shall be used when moving to this page from another during a presentation - $this->pagedim[$this->page]['trans']['S'] = $format['trans']['S']; - $valid_effect = array('Split', 'Blinds'); - $valid_vals = array('H', 'V'); - if (isset($format['trans']['Dm']) AND in_array($format['trans']['S'], $valid_effect) AND in_array($format['trans']['Dm'], $valid_vals)) { - $this->pagedim[$this->page]['trans']['Dm'] = $format['trans']['Dm']; - } - $valid_effect = array('Split', 'Box', 'Fly'); - $valid_vals = array('I', 'O'); - if (isset($format['trans']['M']) AND in_array($format['trans']['S'], $valid_effect) AND in_array($format['trans']['M'], $valid_vals)) { - $this->pagedim[$this->page]['trans']['M'] = $format['trans']['M']; - } - $valid_effect = array('Wipe', 'Glitter', 'Fly', 'Cover', 'Uncover', 'Push'); - if (isset($format['trans']['Di']) AND in_array($format['trans']['S'], $valid_effect)) { - if (((($format['trans']['Di'] == 90) OR ($format['trans']['Di'] == 180)) AND ($format['trans']['S'] == 'Wipe')) - OR (($format['trans']['Di'] == 315) AND ($format['trans']['S'] == 'Glitter')) - OR (($format['trans']['Di'] == 0) OR ($format['trans']['Di'] == 270))) { - $this->pagedim[$this->page]['trans']['Di'] = intval($format['trans']['Di']); - } - } - if (isset($format['trans']['SS']) AND ($format['trans']['S'] == 'Fly')) { - $this->pagedim[$this->page]['trans']['SS'] = floatval($format['trans']['SS']); - } - if (isset($format['trans']['B']) AND ($format['trans']['B'] === true) AND ($format['trans']['S'] == 'Fly')) { - $this->pagedim[$this->page]['trans']['B'] = 'true'; - } - } else { - $this->pagedim[$this->page]['trans']['S'] = 'R'; - } - if (isset($format['trans']['D'])) { - // The duration of the transition effect, in seconds - $this->pagedim[$this->page]['trans']['D'] = floatval($format['trans']['D']); - } else { - $this->pagedim[$this->page]['trans']['D'] = 1; - } - } - } - $this->setPageOrientation($orientation); - } - - /** - * Set page orientation. - * @param $orientation (string) page orientation. Possible values are (case insensitive):
      • P or Portrait (default)
      • L or Landscape
      • '' (empty string) for automatic orientation
      - * @param $autopagebreak (boolean) Boolean indicating if auto-page-break mode should be on or off. - * @param $bottommargin (float) bottom margin of the page. - * @public - * @since 3.0.015 (2008-06-06) - */ - public function setPageOrientation($orientation, $autopagebreak='', $bottommargin='') { - if (!isset($this->pagedim[$this->page]['MediaBox'])) { - // the boundaries of the physical medium on which the page shall be displayed or printed - $this->pagedim = TCPDF_STATIC::setPageBoxes($this->page, 'MediaBox', 0, 0, $this->fwPt, $this->fhPt, true, $this->k, $this->pagedim); - } - if (!isset($this->pagedim[$this->page]['CropBox'])) { - // the visible region of default user space - $this->pagedim = TCPDF_STATIC::setPageBoxes($this->page, 'CropBox', $this->pagedim[$this->page]['MediaBox']['llx'], $this->pagedim[$this->page]['MediaBox']['lly'], $this->pagedim[$this->page]['MediaBox']['urx'], $this->pagedim[$this->page]['MediaBox']['ury'], true, $this->k, $this->pagedim); - } - if (!isset($this->pagedim[$this->page]['BleedBox'])) { - // the region to which the contents of the page shall be clipped when output in a production environment - $this->pagedim = TCPDF_STATIC::setPageBoxes($this->page, 'BleedBox', $this->pagedim[$this->page]['CropBox']['llx'], $this->pagedim[$this->page]['CropBox']['lly'], $this->pagedim[$this->page]['CropBox']['urx'], $this->pagedim[$this->page]['CropBox']['ury'], true, $this->k, $this->pagedim); - } - if (!isset($this->pagedim[$this->page]['TrimBox'])) { - // the intended dimensions of the finished page after trimming - $this->pagedim = TCPDF_STATIC::setPageBoxes($this->page, 'TrimBox', $this->pagedim[$this->page]['CropBox']['llx'], $this->pagedim[$this->page]['CropBox']['lly'], $this->pagedim[$this->page]['CropBox']['urx'], $this->pagedim[$this->page]['CropBox']['ury'], true, $this->k, $this->pagedim); - } - if (!isset($this->pagedim[$this->page]['ArtBox'])) { - // the page's meaningful content (including potential white space) - $this->pagedim = TCPDF_STATIC::setPageBoxes($this->page, 'ArtBox', $this->pagedim[$this->page]['CropBox']['llx'], $this->pagedim[$this->page]['CropBox']['lly'], $this->pagedim[$this->page]['CropBox']['urx'], $this->pagedim[$this->page]['CropBox']['ury'], true, $this->k, $this->pagedim); - } - if (!isset($this->pagedim[$this->page]['Rotate'])) { - // The number of degrees by which the page shall be rotated clockwise when displayed or printed. The value shall be a multiple of 90. - $this->pagedim[$this->page]['Rotate'] = 0; - } - if (!isset($this->pagedim[$this->page]['PZ'])) { - // The page's preferred zoom (magnification) factor - $this->pagedim[$this->page]['PZ'] = 1; - } - if ($this->fwPt > $this->fhPt) { - // landscape - $default_orientation = 'L'; - } else { - // portrait - $default_orientation = 'P'; - } - $valid_orientations = array('P', 'L'); - if (empty($orientation)) { - $orientation = $default_orientation; - } else { - $orientation = strtoupper($orientation[0]); - } - if (in_array($orientation, $valid_orientations) AND ($orientation != $default_orientation)) { - $this->CurOrientation = $orientation; - $this->wPt = $this->fhPt; - $this->hPt = $this->fwPt; - } else { - $this->CurOrientation = $default_orientation; - $this->wPt = $this->fwPt; - $this->hPt = $this->fhPt; - } - if ((abs($this->pagedim[$this->page]['MediaBox']['urx'] - $this->hPt) < $this->feps) AND (abs($this->pagedim[$this->page]['MediaBox']['ury'] - $this->wPt) < $this->feps)){ - // swap X and Y coordinates (change page orientation) - $this->pagedim = TCPDF_STATIC::swapPageBoxCoordinates($this->page, $this->pagedim); - } - $this->w = ($this->wPt / $this->k); - $this->h = ($this->hPt / $this->k); - if (TCPDF_STATIC::empty_string($autopagebreak)) { - if (isset($this->AutoPageBreak)) { - $autopagebreak = $this->AutoPageBreak; - } else { - $autopagebreak = true; - } - } - if (TCPDF_STATIC::empty_string($bottommargin)) { - if (isset($this->bMargin)) { - $bottommargin = $this->bMargin; - } else { - // default value = 2 cm - $bottommargin = 2 * 28.35 / $this->k; - } - } - $this->SetAutoPageBreak($autopagebreak, $bottommargin); - // store page dimensions - $this->pagedim[$this->page]['w'] = $this->wPt; - $this->pagedim[$this->page]['h'] = $this->hPt; - $this->pagedim[$this->page]['wk'] = $this->w; - $this->pagedim[$this->page]['hk'] = $this->h; - $this->pagedim[$this->page]['tm'] = $this->tMargin; - $this->pagedim[$this->page]['bm'] = $bottommargin; - $this->pagedim[$this->page]['lm'] = $this->lMargin; - $this->pagedim[$this->page]['rm'] = $this->rMargin; - $this->pagedim[$this->page]['pb'] = $autopagebreak; - $this->pagedim[$this->page]['or'] = $this->CurOrientation; - $this->pagedim[$this->page]['olm'] = $this->original_lMargin; - $this->pagedim[$this->page]['orm'] = $this->original_rMargin; - } - - /** - * Set regular expression to detect withespaces or word separators. - * The pattern delimiter must be the forward-slash character "/". - * Some example patterns are: - *
      -	 * Non-Unicode or missing PCRE unicode support: "/[^\S\xa0]/"
      -	 * Unicode and PCRE unicode support: "/(?!\xa0)[\s\p{Z}]/u"
      -	 * Unicode and PCRE unicode support in Chinese mode: "/(?!\xa0)[\s\p{Z}\p{Lo}]/u"
      -	 * if PCRE unicode support is turned ON ("\P" is the negate class of "\p"):
      -	 *      \s     : any whitespace character
      -	 *      \p{Z}  : any separator
      -	 *      \p{Lo} : Unicode letter or ideograph that does not have lowercase and uppercase variants. Is used to chunk chinese words.
      -	 *      \xa0   : Unicode Character 'NO-BREAK SPACE' (U+00A0)
      -	 * 
      - * @param $re (string) regular expression (leave empty for default). - * @public - * @since 4.6.016 (2009-06-15) - */ - public function setSpacesRE($re='/[^\S\xa0]/') { - $this->re_spaces = $re; - $re_parts = explode('/', $re); - // get pattern parts - $this->re_space = array(); - if (isset($re_parts[1]) AND !empty($re_parts[1])) { - $this->re_space['p'] = $re_parts[1]; - } else { - $this->re_space['p'] = '[\s]'; - } - // set pattern modifiers - if (isset($re_parts[2]) AND !empty($re_parts[2])) { - $this->re_space['m'] = $re_parts[2]; - } else { - $this->re_space['m'] = ''; - } - } - - /** - * Enable or disable Right-To-Left language mode - * @param $enable (Boolean) if true enable Right-To-Left language mode. - * @param $resetx (Boolean) if true reset the X position on direction change. - * @public - * @since 2.0.000 (2008-01-03) - */ - public function setRTL($enable, $resetx=true) { - $enable = $enable ? true : false; - $resetx = ($resetx AND ($enable != $this->rtl)); - $this->rtl = $enable; - $this->tmprtl = false; - if ($resetx) { - $this->Ln(0); - } - } - - /** - * Return the RTL status - * @return boolean - * @public - * @since 4.0.012 (2008-07-24) - */ - public function getRTL() { - return $this->rtl; - } - - /** - * Force temporary RTL language direction - * @param $mode (mixed) can be false, 'L' for LTR or 'R' for RTL - * @public - * @since 2.1.000 (2008-01-09) - */ - public function setTempRTL($mode) { - $newmode = false; - switch (strtoupper($mode)) { - case 'LTR': - case 'L': { - if ($this->rtl) { - $newmode = 'L'; - } - break; - } - case 'RTL': - case 'R': { - if (!$this->rtl) { - $newmode = 'R'; - } - break; - } - case false: - default: { - $newmode = false; - break; - } - } - $this->tmprtl = $newmode; - } - - /** - * Return the current temporary RTL status - * @return boolean - * @public - * @since 4.8.014 (2009-11-04) - */ - public function isRTLTextDir() { - return ($this->rtl OR ($this->tmprtl == 'R')); - } - - /** - * Set the last cell height. - * @param $h (float) cell height. - * @author Nicola Asuni - * @public - * @since 1.53.0.TC034 - */ - public function setLastH($h) { - $this->lasth = $h; - } - - /** - * Return the cell height - * @param $fontsize (int) Font size in internal units - * @param $padding (boolean) If true add cell padding - * @public - */ - public function getCellHeight($fontsize, $padding=TRUE) { - $height = ($fontsize * $this->cell_height_ratio); - if ($padding) { - $height += ($this->cell_padding['T'] + $this->cell_padding['B']); - } - return round($height, 6); - } - - /** - * Reset the last cell height. - * @public - * @since 5.9.000 (2010-10-03) - */ - public function resetLastH() { - $this->lasth = $this->getCellHeight($this->FontSize); - } - - /** - * Get the last cell height. - * @return last cell height - * @public - * @since 4.0.017 (2008-08-05) - */ - public function getLastH() { - return $this->lasth; - } - - /** - * Set the adjusting factor to convert pixels to user units. - * @param $scale (float) adjusting factor to convert pixels to user units. - * @author Nicola Asuni - * @public - * @since 1.5.2 - */ - public function setImageScale($scale) { - $this->imgscale = $scale; - } - - /** - * Returns the adjusting factor to convert pixels to user units. - * @return float adjusting factor to convert pixels to user units. - * @author Nicola Asuni - * @public - * @since 1.5.2 - */ - public function getImageScale() { - return $this->imgscale; - } - - /** - * Returns an array of page dimensions: - *
      • $this->pagedim[$this->page]['w'] = page width in points
      • $this->pagedim[$this->page]['h'] = height in points
      • $this->pagedim[$this->page]['wk'] = page width in user units
      • $this->pagedim[$this->page]['hk'] = page height in user units
      • $this->pagedim[$this->page]['tm'] = top margin
      • $this->pagedim[$this->page]['bm'] = bottom margin
      • $this->pagedim[$this->page]['lm'] = left margin
      • $this->pagedim[$this->page]['rm'] = right margin
      • $this->pagedim[$this->page]['pb'] = auto page break
      • $this->pagedim[$this->page]['or'] = page orientation
      • $this->pagedim[$this->page]['olm'] = original left margin
      • $this->pagedim[$this->page]['orm'] = original right margin
      • $this->pagedim[$this->page]['Rotate'] = The number of degrees by which the page shall be rotated clockwise when displayed or printed. The value shall be a multiple of 90.
      • $this->pagedim[$this->page]['PZ'] = The page's preferred zoom (magnification) factor.
      • $this->pagedim[$this->page]['trans'] : the style and duration of the visual transition to use when moving from another page to the given page during a presentation
        • $this->pagedim[$this->page]['trans']['Dur'] = The page's display duration (also called its advance timing): the maximum length of time, in seconds, that the page shall be displayed during presentations before the viewer application shall automatically advance to the next page.
        • $this->pagedim[$this->page]['trans']['S'] = transition style : Split, Blinds, Box, Wipe, Dissolve, Glitter, R, Fly, Push, Cover, Uncover, Fade
        • $this->pagedim[$this->page]['trans']['D'] = The duration of the transition effect, in seconds.
        • $this->pagedim[$this->page]['trans']['Dm'] = (Split and Blinds transition styles only) The dimension in which the specified transition effect shall occur: H = Horizontal, V = Vertical. Default value: H.
        • $this->pagedim[$this->page]['trans']['M'] = (Split, Box and Fly transition styles only) The direction of motion for the specified transition effect: I = Inward from the edges of the page, O = Outward from the center of the pageDefault value: I.
        • $this->pagedim[$this->page]['trans']['Di'] = (Wipe, Glitter, Fly, Cover, Uncover and Push transition styles only) The direction in which the specified transition effect shall moves, expressed in degrees counterclockwise starting from a left-to-right direction. If the value is a number, it shall be one of: 0 = Left to right, 90 = Bottom to top (Wipe only), 180 = Right to left (Wipe only), 270 = Top to bottom, 315 = Top-left to bottom-right (Glitter only). If the value is a name, it shall be None, which is relevant only for the Fly transition when the value of SS is not 1.0. Default value: 0.
        • $this->pagedim[$this->page]['trans']['SS'] = (Fly transition style only) The starting or ending scale at which the changes shall be drawn. If M specifies an inward transition, the scale of the changes drawn shall progress from SS to 1.0 over the course of the transition. If M specifies an outward transition, the scale of the changes drawn shall progress from 1.0 to SS over the course of the transition. Default: 1.0.
        • $this->pagedim[$this->page]['trans']['B'] = (Fly transition style only) If true, the area that shall be flown in is rectangular and opaque. Default: false.
      • $this->pagedim[$this->page]['MediaBox'] : the boundaries of the physical medium on which the page shall be displayed or printed
        • $this->pagedim[$this->page]['MediaBox']['llx'] = lower-left x coordinate in points
        • $this->pagedim[$this->page]['MediaBox']['lly'] = lower-left y coordinate in points
        • $this->pagedim[$this->page]['MediaBox']['urx'] = upper-right x coordinate in points
        • $this->pagedim[$this->page]['MediaBox']['ury'] = upper-right y coordinate in points
      • $this->pagedim[$this->page]['CropBox'] : the visible region of default user space
        • $this->pagedim[$this->page]['CropBox']['llx'] = lower-left x coordinate in points
        • $this->pagedim[$this->page]['CropBox']['lly'] = lower-left y coordinate in points
        • $this->pagedim[$this->page]['CropBox']['urx'] = upper-right x coordinate in points
        • $this->pagedim[$this->page]['CropBox']['ury'] = upper-right y coordinate in points
      • $this->pagedim[$this->page]['BleedBox'] : the region to which the contents of the page shall be clipped when output in a production environment
        • $this->pagedim[$this->page]['BleedBox']['llx'] = lower-left x coordinate in points
        • $this->pagedim[$this->page]['BleedBox']['lly'] = lower-left y coordinate in points
        • $this->pagedim[$this->page]['BleedBox']['urx'] = upper-right x coordinate in points
        • $this->pagedim[$this->page]['BleedBox']['ury'] = upper-right y coordinate in points
      • $this->pagedim[$this->page]['TrimBox'] : the intended dimensions of the finished page after trimming
        • $this->pagedim[$this->page]['TrimBox']['llx'] = lower-left x coordinate in points
        • $this->pagedim[$this->page]['TrimBox']['lly'] = lower-left y coordinate in points
        • $this->pagedim[$this->page]['TrimBox']['urx'] = upper-right x coordinate in points
        • $this->pagedim[$this->page]['TrimBox']['ury'] = upper-right y coordinate in points
      • $this->pagedim[$this->page]['ArtBox'] : the extent of the page's meaningful content
        • $this->pagedim[$this->page]['ArtBox']['llx'] = lower-left x coordinate in points
        • $this->pagedim[$this->page]['ArtBox']['lly'] = lower-left y coordinate in points
        • $this->pagedim[$this->page]['ArtBox']['urx'] = upper-right x coordinate in points
        • $this->pagedim[$this->page]['ArtBox']['ury'] = upper-right y coordinate in points
      - * @param $pagenum (int) page number (empty = current page) - * @return array of page dimensions. - * @author Nicola Asuni - * @public - * @since 4.5.027 (2009-03-16) - */ - public function getPageDimensions($pagenum='') { - if (empty($pagenum)) { - $pagenum = $this->page; - } - return $this->pagedim[$pagenum]; - } - - /** - * Returns the page width in units. - * @param $pagenum (int) page number (empty = current page) - * @return int page width. - * @author Nicola Asuni - * @public - * @since 1.5.2 - * @see getPageDimensions() - */ - public function getPageWidth($pagenum='') { - if (empty($pagenum)) { - return $this->w; - } - return $this->pagedim[$pagenum]['w']; - } - - /** - * Returns the page height in units. - * @param $pagenum (int) page number (empty = current page) - * @return int page height. - * @author Nicola Asuni - * @public - * @since 1.5.2 - * @see getPageDimensions() - */ - public function getPageHeight($pagenum='') { - if (empty($pagenum)) { - return $this->h; - } - return $this->pagedim[$pagenum]['h']; - } - - /** - * Returns the page break margin. - * @param $pagenum (int) page number (empty = current page) - * @return int page break margin. - * @author Nicola Asuni - * @public - * @since 1.5.2 - * @see getPageDimensions() - */ - public function getBreakMargin($pagenum='') { - if (empty($pagenum)) { - return $this->bMargin; - } - return $this->pagedim[$pagenum]['bm']; - } - - /** - * Returns the scale factor (number of points in user unit). - * @return int scale factor. - * @author Nicola Asuni - * @public - * @since 1.5.2 - */ - public function getScaleFactor() { - return $this->k; - } - - /** - * Defines the left, top and right margins. - * @param $left (float) Left margin. - * @param $top (float) Top margin. - * @param $right (float) Right margin. Default value is the left one. - * @param $keepmargins (boolean) if true overwrites the default page margins - * @public - * @since 1.0 - * @see SetLeftMargin(), SetTopMargin(), SetRightMargin(), SetAutoPageBreak() - */ - public function SetMargins($left, $top, $right=-1, $keepmargins=false) { - //Set left, top and right margins - $this->lMargin = $left; - $this->tMargin = $top; - if ($right == -1) { - $right = $left; - } - $this->rMargin = $right; - if ($keepmargins) { - // overwrite original values - $this->original_lMargin = $this->lMargin; - $this->original_rMargin = $this->rMargin; - } - } - - /** - * Defines the left margin. The method can be called before creating the first page. If the current abscissa gets out of page, it is brought back to the margin. - * @param $margin (float) The margin. - * @public - * @since 1.4 - * @see SetTopMargin(), SetRightMargin(), SetAutoPageBreak(), SetMargins() - */ - public function SetLeftMargin($margin) { - //Set left margin - $this->lMargin = $margin; - if (($this->page > 0) AND ($this->x < $margin)) { - $this->x = $margin; - } - } - - /** - * Defines the top margin. The method can be called before creating the first page. - * @param $margin (float) The margin. - * @public - * @since 1.5 - * @see SetLeftMargin(), SetRightMargin(), SetAutoPageBreak(), SetMargins() - */ - public function SetTopMargin($margin) { - //Set top margin - $this->tMargin = $margin; - if (($this->page > 0) AND ($this->y < $margin)) { - $this->y = $margin; - } - } - - /** - * Defines the right margin. The method can be called before creating the first page. - * @param $margin (float) The margin. - * @public - * @since 1.5 - * @see SetLeftMargin(), SetTopMargin(), SetAutoPageBreak(), SetMargins() - */ - public function SetRightMargin($margin) { - $this->rMargin = $margin; - if (($this->page > 0) AND ($this->x > ($this->w - $margin))) { - $this->x = $this->w - $margin; - } - } - - /** - * Set the same internal Cell padding for top, right, bottom, left- - * @param $pad (float) internal padding. - * @public - * @since 2.1.000 (2008-01-09) - * @see getCellPaddings(), setCellPaddings() - */ - public function SetCellPadding($pad) { - if ($pad >= 0) { - $this->cell_padding['L'] = $pad; - $this->cell_padding['T'] = $pad; - $this->cell_padding['R'] = $pad; - $this->cell_padding['B'] = $pad; - } - } - - /** - * Set the internal Cell paddings. - * @param $left (float) left padding - * @param $top (float) top padding - * @param $right (float) right padding - * @param $bottom (float) bottom padding - * @public - * @since 5.9.000 (2010-10-03) - * @see getCellPaddings(), SetCellPadding() - */ - public function setCellPaddings($left='', $top='', $right='', $bottom='') { - if (($left !== '') AND ($left >= 0)) { - $this->cell_padding['L'] = $left; - } - if (($top !== '') AND ($top >= 0)) { - $this->cell_padding['T'] = $top; - } - if (($right !== '') AND ($right >= 0)) { - $this->cell_padding['R'] = $right; - } - if (($bottom !== '') AND ($bottom >= 0)) { - $this->cell_padding['B'] = $bottom; - } - } - - /** - * Get the internal Cell padding array. - * @return array of padding values - * @public - * @since 5.9.000 (2010-10-03) - * @see setCellPaddings(), SetCellPadding() - */ - public function getCellPaddings() { - return $this->cell_padding; - } - - /** - * Set the internal Cell margins. - * @param $left (float) left margin - * @param $top (float) top margin - * @param $right (float) right margin - * @param $bottom (float) bottom margin - * @public - * @since 5.9.000 (2010-10-03) - * @see getCellMargins() - */ - public function setCellMargins($left='', $top='', $right='', $bottom='') { - if (($left !== '') AND ($left >= 0)) { - $this->cell_margin['L'] = $left; - } - if (($top !== '') AND ($top >= 0)) { - $this->cell_margin['T'] = $top; - } - if (($right !== '') AND ($right >= 0)) { - $this->cell_margin['R'] = $right; - } - if (($bottom !== '') AND ($bottom >= 0)) { - $this->cell_margin['B'] = $bottom; - } - } - - /** - * Get the internal Cell margin array. - * @return array of margin values - * @public - * @since 5.9.000 (2010-10-03) - * @see setCellMargins() - */ - public function getCellMargins() { - return $this->cell_margin; - } - - /** - * Adjust the internal Cell padding array to take account of the line width. - * @param $brd (mixed) Indicates if borders must be drawn around the cell. The value can be a number:
      • 0: no border (default)
      • 1: frame
      or a string containing some or all of the following characters (in any order):
      • L: left
      • T: top
      • R: right
      • B: bottom
      or an array of line styles for each border group - for example: array('LTRB' => array('width' => 2, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0))) - * @return array of adjustments - * @public - * @since 5.9.000 (2010-10-03) - */ - protected function adjustCellPadding($brd=0) { - if (empty($brd)) { - return; - } - if (is_string($brd)) { - // convert string to array - $slen = strlen($brd); - $newbrd = array(); - for ($i = 0; $i < $slen; ++$i) { - $newbrd[$brd[$i]] = true; - } - $brd = $newbrd; - } elseif (($brd === 1) OR ($brd === true) OR (is_numeric($brd) AND (intval($brd) > 0))) { - $brd = array('LRTB' => true); - } - if (!is_array($brd)) { - return; - } - // store current cell padding - $cp = $this->cell_padding; - // select border mode - if (isset($brd['mode'])) { - $mode = $brd['mode']; - unset($brd['mode']); - } else { - $mode = 'normal'; - } - // process borders - foreach ($brd as $border => $style) { - $line_width = $this->LineWidth; - if (is_array($style) AND isset($style['width'])) { - // get border width - $line_width = $style['width']; - } - $adj = 0; // line width inside the cell - switch ($mode) { - case 'ext': { - $adj = 0; - break; - } - case 'int': { - $adj = $line_width; - break; - } - case 'normal': - default: { - $adj = ($line_width / 2); - break; - } - } - // correct internal cell padding if required to avoid overlap between text and lines - if ((strpos($border,'T') !== false) AND ($this->cell_padding['T'] < $adj)) { - $this->cell_padding['T'] = $adj; - } - if ((strpos($border,'R') !== false) AND ($this->cell_padding['R'] < $adj)) { - $this->cell_padding['R'] = $adj; - } - if ((strpos($border,'B') !== false) AND ($this->cell_padding['B'] < $adj)) { - $this->cell_padding['B'] = $adj; - } - if ((strpos($border,'L') !== false) AND ($this->cell_padding['L'] < $adj)) { - $this->cell_padding['L'] = $adj; - } - } - return array('T' => ($this->cell_padding['T'] - $cp['T']), 'R' => ($this->cell_padding['R'] - $cp['R']), 'B' => ($this->cell_padding['B'] - $cp['B']), 'L' => ($this->cell_padding['L'] - $cp['L'])); - } - - /** - * Enables or disables the automatic page breaking mode. When enabling, the second parameter is the distance from the bottom of the page that defines the triggering limit. By default, the mode is on and the margin is 2 cm. - * @param $auto (boolean) Boolean indicating if mode should be on or off. - * @param $margin (float) Distance from the bottom of the page. - * @public - * @since 1.0 - * @see Cell(), MultiCell(), AcceptPageBreak() - */ - public function SetAutoPageBreak($auto, $margin=0) { - $this->AutoPageBreak = $auto ? true : false; - $this->bMargin = $margin; - $this->PageBreakTrigger = $this->h - $margin; - } - - /** - * Return the auto-page-break mode (true or false). - * @return boolean auto-page-break mode - * @public - * @since 5.9.088 - */ - public function getAutoPageBreak() { - return $this->AutoPageBreak; - } - - /** - * Defines the way the document is to be displayed by the viewer. - * @param $zoom (mixed) The zoom to use. It can be one of the following string values or a number indicating the zooming factor to use.
      • fullpage: displays the entire page on screen
      • fullwidth: uses maximum width of window
      • real: uses real size (equivalent to 100% zoom)
      • default: uses viewer default mode
      - * @param $layout (string) The page layout. Possible values are:
      • SinglePage Display one page at a time
      • OneColumn Display the pages in one column
      • TwoColumnLeft Display the pages in two columns, with odd-numbered pages on the left
      • TwoColumnRight Display the pages in two columns, with odd-numbered pages on the right
      • TwoPageLeft (PDF 1.5) Display the pages two at a time, with odd-numbered pages on the left
      • TwoPageRight (PDF 1.5) Display the pages two at a time, with odd-numbered pages on the right
      - * @param $mode (string) A name object specifying how the document should be displayed when opened:
      • UseNone Neither document outline nor thumbnail images visible
      • UseOutlines Document outline visible
      • UseThumbs Thumbnail images visible
      • FullScreen Full-screen mode, with no menu bar, window controls, or any other window visible
      • UseOC (PDF 1.5) Optional content group panel visible
      • UseAttachments (PDF 1.6) Attachments panel visible
      - * @public - * @since 1.2 - */ - public function SetDisplayMode($zoom, $layout='SinglePage', $mode='UseNone') { - if (($zoom == 'fullpage') OR ($zoom == 'fullwidth') OR ($zoom == 'real') OR ($zoom == 'default') OR (!is_string($zoom))) { - $this->ZoomMode = $zoom; - } else { - $this->Error('Incorrect zoom display mode: '.$zoom); - } - $this->LayoutMode = TCPDF_STATIC::getPageLayoutMode($layout); - $this->PageMode = TCPDF_STATIC::getPageMode($mode); - } - - /** - * Activates or deactivates page compression. When activated, the internal representation of each page is compressed, which leads to a compression ratio of about 2 for the resulting document. Compression is on by default. - * Note: the Zlib extension is required for this feature. If not present, compression will be turned off. - * @param $compress (boolean) Boolean indicating if compression must be enabled. - * @public - * @since 1.4 - */ - public function SetCompression($compress=true) { - $this->compress = false; - if (function_exists('gzcompress')) { - if ($compress) { - if ( !$this->pdfa_mode) { - $this->compress = true; - } - } - } - } - - /** - * Set flag to force sRGB_IEC61966-2.1 black scaled ICC color profile for the whole document. - * @param $mode (boolean) If true force sRGB output intent. - * @public - * @since 5.9.121 (2011-09-28) - */ - public function setSRGBmode($mode=false) { - $this->force_srgb = $mode ? true : false; - } - - /** - * Turn on/off Unicode mode for document information dictionary (meta tags). - * This has effect only when unicode mode is set to false. - * @param $unicode (boolean) if true set the meta information in Unicode - * @since 5.9.027 (2010-12-01) - * @public - */ - public function SetDocInfoUnicode($unicode=true) { - $this->docinfounicode = $unicode ? true : false; - } - - /** - * Defines the title of the document. - * @param $title (string) The title. - * @public - * @since 1.2 - * @see SetAuthor(), SetCreator(), SetKeywords(), SetSubject() - */ - public function SetTitle($title) { - $this->title = $title; - } - - /** - * Defines the subject of the document. - * @param $subject (string) The subject. - * @public - * @since 1.2 - * @see SetAuthor(), SetCreator(), SetKeywords(), SetTitle() - */ - public function SetSubject($subject) { - $this->subject = $subject; - } - - /** - * Defines the author of the document. - * @param $author (string) The name of the author. - * @public - * @since 1.2 - * @see SetCreator(), SetKeywords(), SetSubject(), SetTitle() - */ - public function SetAuthor($author) { - $this->author = $author; - } - - /** - * Associates keywords with the document, generally in the form 'keyword1 keyword2 ...'. - * @param $keywords (string) The list of keywords. - * @public - * @since 1.2 - * @see SetAuthor(), SetCreator(), SetSubject(), SetTitle() - */ - public function SetKeywords($keywords) { - $this->keywords = $keywords; - } - - /** - * Defines the creator of the document. This is typically the name of the application that generates the PDF. - * @param $creator (string) The name of the creator. - * @public - * @since 1.2 - * @see SetAuthor(), SetKeywords(), SetSubject(), SetTitle() - */ - public function SetCreator($creator) { - $this->creator = $creator; - } - - /** - * Throw an exception or print an error message and die if the K_TCPDF_PARSER_THROW_EXCEPTION_ERROR constant is set to true. - * @param $msg (string) The error message - * @public - * @since 1.0 - */ - public function Error($msg) { - // unset all class variables - $this->_destroy(true); - if (defined('K_TCPDF_THROW_EXCEPTION_ERROR') AND !K_TCPDF_THROW_EXCEPTION_ERROR) { - die('TCPDF ERROR: '.$msg); - } else { - throw new Exception('TCPDF ERROR: '.$msg); - } - } - - /** - * This method begins the generation of the PDF document. - * It is not necessary to call it explicitly because AddPage() does it automatically. - * Note: no page is created by this method - * @public - * @since 1.0 - * @see AddPage(), Close() - */ - public function Open() { - $this->state = 1; - } - - /** - * Terminates the PDF document. - * It is not necessary to call this method explicitly because Output() does it automatically. - * If the document contains no page, AddPage() is called to prevent from getting an invalid document. - * @public - * @since 1.0 - * @see Open(), Output() - */ - public function Close() { - if ($this->state == 3) { - return; - } - if ($this->page == 0) { - $this->AddPage(); - } - $this->endLayer(); - if ($this->tcpdflink) { - // save current graphic settings - $gvars = $this->getGraphicVars(); - $this->setEqualColumns(); - $this->lastpage(true); - $this->SetAutoPageBreak(false); - $this->x = 0; - $this->y = $this->h - (1 / $this->k); - $this->lMargin = 0; - $this->_outSaveGraphicsState(); - $font = defined('PDF_FONT_NAME_MAIN')?PDF_FONT_NAME_MAIN:'helvetica'; - $this->SetFont($font, '', 1); - $this->setTextRenderingMode(0, false, false); - $msg = "\x50\x6f\x77\x65\x72\x65\x64\x20\x62\x79\x20\x54\x43\x50\x44\x46\x20\x28\x77\x77\x77\x2e\x74\x63\x70\x64\x66\x2e\x6f\x72\x67\x29"; - $lnk = "\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x74\x63\x70\x64\x66\x2e\x6f\x72\x67"; - $this->Cell(0, 0, $msg, 0, 0, 'L', 0, $lnk, 0, false, 'D', 'B'); - $this->_outRestoreGraphicsState(); - // restore graphic settings - $this->setGraphicVars($gvars); - } - // close page - $this->endPage(); - // close document - $this->_enddoc(); - // unset all class variables (except critical ones) - $this->_destroy(false); - } - - /** - * Move pointer at the specified document page and update page dimensions. - * @param $pnum (int) page number (1 ... numpages) - * @param $resetmargins (boolean) if true reset left, right, top margins and Y position. - * @public - * @since 2.1.000 (2008-01-07) - * @see getPage(), lastpage(), getNumPages() - */ - public function setPage($pnum, $resetmargins=false) { - if (($pnum == $this->page) AND ($this->state == 2)) { - return; - } - if (($pnum > 0) AND ($pnum <= $this->numpages)) { - $this->state = 2; - // save current graphic settings - //$gvars = $this->getGraphicVars(); - $oldpage = $this->page; - $this->page = $pnum; - $this->wPt = $this->pagedim[$this->page]['w']; - $this->hPt = $this->pagedim[$this->page]['h']; - $this->w = $this->pagedim[$this->page]['wk']; - $this->h = $this->pagedim[$this->page]['hk']; - $this->tMargin = $this->pagedim[$this->page]['tm']; - $this->bMargin = $this->pagedim[$this->page]['bm']; - $this->original_lMargin = $this->pagedim[$this->page]['olm']; - $this->original_rMargin = $this->pagedim[$this->page]['orm']; - $this->AutoPageBreak = $this->pagedim[$this->page]['pb']; - $this->CurOrientation = $this->pagedim[$this->page]['or']; - $this->SetAutoPageBreak($this->AutoPageBreak, $this->bMargin); - // restore graphic settings - //$this->setGraphicVars($gvars); - if ($resetmargins) { - $this->lMargin = $this->pagedim[$this->page]['olm']; - $this->rMargin = $this->pagedim[$this->page]['orm']; - $this->SetY($this->tMargin); - } else { - // account for booklet mode - if ($this->pagedim[$this->page]['olm'] != $this->pagedim[$oldpage]['olm']) { - $deltam = $this->pagedim[$this->page]['olm'] - $this->pagedim[$this->page]['orm']; - $this->lMargin += $deltam; - $this->rMargin -= $deltam; - } - } - } else { - $this->Error('Wrong page number on setPage() function: '.$pnum); - } - } - - /** - * Reset pointer to the last document page. - * @param $resetmargins (boolean) if true reset left, right, top margins and Y position. - * @public - * @since 2.0.000 (2008-01-04) - * @see setPage(), getPage(), getNumPages() - */ - public function lastPage($resetmargins=false) { - $this->setPage($this->getNumPages(), $resetmargins); - } - - /** - * Get current document page number. - * @return int page number - * @public - * @since 2.1.000 (2008-01-07) - * @see setPage(), lastpage(), getNumPages() - */ - public function getPage() { - return $this->page; - } - - /** - * Get the total number of insered pages. - * @return int number of pages - * @public - * @since 2.1.000 (2008-01-07) - * @see setPage(), getPage(), lastpage() - */ - public function getNumPages() { - return $this->numpages; - } - - /** - * Adds a new TOC (Table Of Content) page to the document. - * @param $orientation (string) page orientation. - * @param $format (mixed) The format used for pages. It can be either: one of the string values specified at getPageSizeFromFormat() or an array of parameters specified at setPageFormat(). - * @param $keepmargins (boolean) if true overwrites the default page margins with the current margins - * @public - * @since 5.0.001 (2010-05-06) - * @see AddPage(), startPage(), endPage(), endTOCPage() - */ - public function addTOCPage($orientation='', $format='', $keepmargins=false) { - $this->AddPage($orientation, $format, $keepmargins, true); - } - - /** - * Terminate the current TOC (Table Of Content) page - * @public - * @since 5.0.001 (2010-05-06) - * @see AddPage(), startPage(), endPage(), addTOCPage() - */ - public function endTOCPage() { - $this->endPage(true); - } - - /** - * Adds a new page to the document. If a page is already present, the Footer() method is called first to output the footer (if enabled). Then the page is added, the current position set to the top-left corner according to the left and top margins (or top-right if in RTL mode), and Header() is called to display the header (if enabled). - * The origin of the coordinate system is at the top-left corner (or top-right for RTL) and increasing ordinates go downwards. - * @param $orientation (string) page orientation. Possible values are (case insensitive):
      • P or PORTRAIT (default)
      • L or LANDSCAPE
      - * @param $format (mixed) The format used for pages. It can be either: one of the string values specified at getPageSizeFromFormat() or an array of parameters specified at setPageFormat(). - * @param $keepmargins (boolean) if true overwrites the default page margins with the current margins - * @param $tocpage (boolean) if true set the tocpage state to true (the added page will be used to display Table Of Content). - * @public - * @since 1.0 - * @see startPage(), endPage(), addTOCPage(), endTOCPage(), getPageSizeFromFormat(), setPageFormat() - */ - public function AddPage($orientation='', $format='', $keepmargins=false, $tocpage=false) { - if ($this->inxobj) { - // we are inside an XObject template - return; - } - if (!isset($this->original_lMargin) OR $keepmargins) { - $this->original_lMargin = $this->lMargin; - } - if (!isset($this->original_rMargin) OR $keepmargins) { - $this->original_rMargin = $this->rMargin; - } - // terminate previous page - $this->endPage(); - // start new page - $this->startPage($orientation, $format, $tocpage); - } - - /** - * Terminate the current page - * @param $tocpage (boolean) if true set the tocpage state to false (end the page used to display Table Of Content). - * @public - * @since 4.2.010 (2008-11-14) - * @see AddPage(), startPage(), addTOCPage(), endTOCPage() - */ - public function endPage($tocpage=false) { - // check if page is already closed - if (($this->page == 0) OR ($this->numpages > $this->page) OR (!$this->pageopen[$this->page])) { - return; - } - // print page footer - $this->setFooter(); - // close page - $this->_endpage(); - // mark page as closed - $this->pageopen[$this->page] = false; - if ($tocpage) { - $this->tocpage = false; - } - } - - /** - * Starts a new page to the document. The page must be closed using the endPage() function. - * The origin of the coordinate system is at the top-left corner and increasing ordinates go downwards. - * @param $orientation (string) page orientation. Possible values are (case insensitive):
      • P or PORTRAIT (default)
      • L or LANDSCAPE
      - * @param $format (mixed) The format used for pages. It can be either: one of the string values specified at getPageSizeFromFormat() or an array of parameters specified at setPageFormat(). - * @param $tocpage (boolean) if true the page is designated to contain the Table-Of-Content. - * @since 4.2.010 (2008-11-14) - * @see AddPage(), endPage(), addTOCPage(), endTOCPage(), getPageSizeFromFormat(), setPageFormat() - * @public - */ - public function startPage($orientation='', $format='', $tocpage=false) { - if ($tocpage) { - $this->tocpage = true; - } - // move page numbers of documents to be attached - if ($this->tocpage) { - // move reference to unexistent pages (used for page attachments) - // adjust outlines - $tmpoutlines = $this->outlines; - foreach ($tmpoutlines as $key => $outline) { - if (!$outline['f'] AND ($outline['p'] > $this->numpages)) { - $this->outlines[$key]['p'] = ($outline['p'] + 1); - } - } - // adjust dests - $tmpdests = $this->dests; - foreach ($tmpdests as $key => $dest) { - if (!$dest['f'] AND ($dest['p'] > $this->numpages)) { - $this->dests[$key]['p'] = ($dest['p'] + 1); - } - } - // adjust links - $tmplinks = $this->links; - foreach ($tmplinks as $key => $link) { - if (!$link['f'] AND ($link['p'] > $this->numpages)) { - $this->links[$key]['p'] = ($link['p'] + 1); - } - } - } - if ($this->numpages > $this->page) { - // this page has been already added - $this->setPage($this->page + 1); - $this->SetY($this->tMargin); - return; - } - // start a new page - if ($this->state == 0) { - $this->Open(); - } - ++$this->numpages; - $this->swapMargins($this->booklet); - // save current graphic settings - $gvars = $this->getGraphicVars(); - // start new page - $this->_beginpage($orientation, $format); - // mark page as open - $this->pageopen[$this->page] = true; - // restore graphic settings - $this->setGraphicVars($gvars); - // mark this point - $this->setPageMark(); - // print page header - $this->setHeader(); - // restore graphic settings - $this->setGraphicVars($gvars); - // mark this point - $this->setPageMark(); - // print table header (if any) - $this->setTableHeader(); - // set mark for empty page check - $this->emptypagemrk[$this->page]= $this->pagelen[$this->page]; - } - - /** - * Set start-writing mark on current page stream used to put borders and fills. - * Borders and fills are always created after content and inserted on the position marked by this method. - * This function must be called after calling Image() function for a background image. - * Background images must be always inserted before calling Multicell() or WriteHTMLCell() or WriteHTML() functions. - * @public - * @since 4.0.016 (2008-07-30) - */ - public function setPageMark() { - $this->intmrk[$this->page] = $this->pagelen[$this->page]; - $this->bordermrk[$this->page] = $this->intmrk[$this->page]; - $this->setContentMark(); - } - - /** - * Set start-writing mark on selected page. - * Borders and fills are always created after content and inserted on the position marked by this method. - * @param $page (int) page number (default is the current page) - * @protected - * @since 4.6.021 (2009-07-20) - */ - protected function setContentMark($page=0) { - if ($page <= 0) { - $page = $this->page; - } - if (isset($this->footerlen[$page])) { - $this->cntmrk[$page] = $this->pagelen[$page] - $this->footerlen[$page]; - } else { - $this->cntmrk[$page] = $this->pagelen[$page]; - } - } - - /** - * Set header data. - * @param $ln (string) header image logo - * @param $lw (string) header image logo width in mm - * @param $ht (string) string to print as title on document header - * @param $hs (string) string to print on document header - * @param $tc (array) RGB array color for text. - * @param $lc (array) RGB array color for line. - * @public - */ - public function setHeaderData($ln='', $lw=0, $ht='', $hs='', $tc=array(0,0,0), $lc=array(0,0,0)) { - $this->header_logo = $ln; - $this->header_logo_width = $lw; - $this->header_title = $ht; - $this->header_string = $hs; - $this->header_text_color = $tc; - $this->header_line_color = $lc; - } - - /** - * Set footer data. - * @param $tc (array) RGB array color for text. - * @param $lc (array) RGB array color for line. - * @public - */ - public function setFooterData($tc=array(0,0,0), $lc=array(0,0,0)) { - $this->footer_text_color = $tc; - $this->footer_line_color = $lc; - } - - /** - * Returns header data: - *
      • $ret['logo'] = logo image
      • $ret['logo_width'] = width of the image logo in user units
      • $ret['title'] = header title
      • $ret['string'] = header description string
      - * @return array() - * @public - * @since 4.0.012 (2008-07-24) - */ - public function getHeaderData() { - $ret = array(); - $ret['logo'] = $this->header_logo; - $ret['logo_width'] = $this->header_logo_width; - $ret['title'] = $this->header_title; - $ret['string'] = $this->header_string; - $ret['text_color'] = $this->header_text_color; - $ret['line_color'] = $this->header_line_color; - return $ret; - } - - /** - * Set header margin. - * (minimum distance between header and top page margin) - * @param $hm (int) distance in user units - * @public - */ - public function setHeaderMargin($hm=10) { - $this->header_margin = $hm; - } - - /** - * Returns header margin in user units. - * @return float - * @since 4.0.012 (2008-07-24) - * @public - */ - public function getHeaderMargin() { - return $this->header_margin; - } - - /** - * Set footer margin. - * (minimum distance between footer and bottom page margin) - * @param $fm (int) distance in user units - * @public - */ - public function setFooterMargin($fm=10) { - $this->footer_margin = $fm; - } - - /** - * Returns footer margin in user units. - * @return float - * @since 4.0.012 (2008-07-24) - * @public - */ - public function getFooterMargin() { - return $this->footer_margin; - } - /** - * Set a flag to print page header. - * @param $val (boolean) set to true to print the page header (default), false otherwise. - * @public - */ - public function setPrintHeader($val=true) { - $this->print_header = $val ? true : false; - } - - /** - * Set a flag to print page footer. - * @param $val (boolean) set to true to print the page footer (default), false otherwise. - * @public - */ - public function setPrintFooter($val=true) { - $this->print_footer = $val ? true : false; - } - - /** - * Return the right-bottom (or left-bottom for RTL) corner X coordinate of last inserted image - * @return float - * @public - */ - public function getImageRBX() { - return $this->img_rb_x; - } - - /** - * Return the right-bottom (or left-bottom for RTL) corner Y coordinate of last inserted image - * @return float - * @public - */ - public function getImageRBY() { - return $this->img_rb_y; - } - - /** - * Reset the xobject template used by Header() method. - * @public - */ - public function resetHeaderTemplate() { - $this->header_xobjid = false; - } - - /** - * Set a flag to automatically reset the xobject template used by Header() method at each page. - * @param $val (boolean) set to true to reset Header xobject template at each page, false otherwise. - * @public - */ - public function setHeaderTemplateAutoreset($val=true) { - $this->header_xobj_autoreset = $val ? true : false; - } - - /** - * This method is used to render the page header. - * It is automatically called by AddPage() and could be overwritten in your own inherited class. - * @public - */ - public function Header() { - if ($this->header_xobjid === false) { - // start a new XObject Template - $this->header_xobjid = $this->startTemplate($this->w, $this->tMargin); - $headerfont = $this->getHeaderFont(); - $headerdata = $this->getHeaderData(); - $this->y = $this->header_margin; - if ($this->rtl) { - $this->x = $this->w - $this->original_rMargin; - } else { - $this->x = $this->original_lMargin; - } - if (($headerdata['logo']) AND ($headerdata['logo'] != K_BLANK_IMAGE)) { - $imgtype = TCPDF_IMAGES::getImageFileType(K_PATH_IMAGES.$headerdata['logo']); - if (($imgtype == 'eps') OR ($imgtype == 'ai')) { - $this->ImageEps(K_PATH_IMAGES.$headerdata['logo'], '', '', $headerdata['logo_width']); - } elseif ($imgtype == 'svg') { - $this->ImageSVG(K_PATH_IMAGES.$headerdata['logo'], '', '', $headerdata['logo_width']); - } else { - $this->Image(K_PATH_IMAGES.$headerdata['logo'], '', '', $headerdata['logo_width']); - } - $imgy = $this->getImageRBY(); - } else { - $imgy = $this->y; - } - $cell_height = $this->getCellHeight($headerfont[2] / $this->k); - // set starting margin for text data cell - if ($this->getRTL()) { - $header_x = $this->original_rMargin + ($headerdata['logo_width'] * 1.1); - } else { - $header_x = $this->original_lMargin + ($headerdata['logo_width'] * 1.1); - } - $cw = $this->w - $this->original_lMargin - $this->original_rMargin - ($headerdata['logo_width'] * 1.1); - $this->SetTextColorArray($this->header_text_color); - // header title - $this->SetFont($headerfont[0], 'B', $headerfont[2] + 1); - $this->SetX($header_x); - $this->Cell($cw, $cell_height, $headerdata['title'], 0, 1, '', 0, '', 0); - // header string - $this->SetFont($headerfont[0], $headerfont[1], $headerfont[2]); - $this->SetX($header_x); - $this->MultiCell($cw, $cell_height, $headerdata['string'], 0, '', 0, 1, '', '', true, 0, false, true, 0, 'T', false); - // print an ending header line - $this->SetLineStyle(array('width' => 0.85 / $this->k, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => $headerdata['line_color'])); - $this->SetY((2.835 / $this->k) + max($imgy, $this->y)); - if ($this->rtl) { - $this->SetX($this->original_rMargin); - } else { - $this->SetX($this->original_lMargin); - } - $this->Cell(($this->w - $this->original_lMargin - $this->original_rMargin), 0, '', 'T', 0, 'C'); - $this->endTemplate(); - } - // print header template - $x = 0; - $dx = 0; - if (!$this->header_xobj_autoreset AND $this->booklet AND (($this->page % 2) == 0)) { - // adjust margins for booklet mode - $dx = ($this->original_lMargin - $this->original_rMargin); - } - if ($this->rtl) { - $x = $this->w + $dx; - } else { - $x = 0 + $dx; - } - $this->printTemplate($this->header_xobjid, $x, 0, 0, 0, '', '', false); - if ($this->header_xobj_autoreset) { - // reset header xobject template at each page - $this->header_xobjid = false; - } - } - - /** - * This method is used to render the page footer. - * It is automatically called by AddPage() and could be overwritten in your own inherited class. - * @public - */ - public function Footer() { - $cur_y = $this->y; - $this->SetTextColorArray($this->footer_text_color); - //set style for cell border - $line_width = (0.85 / $this->k); - $this->SetLineStyle(array('width' => $line_width, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => $this->footer_line_color)); - //print document barcode - $barcode = $this->getBarcode(); - if (!empty($barcode)) { - $this->Ln($line_width); - $barcode_width = round(($this->w - $this->original_lMargin - $this->original_rMargin) / 3); - $style = array( - 'position' => $this->rtl?'R':'L', - 'align' => $this->rtl?'R':'L', - 'stretch' => false, - 'fitwidth' => true, - 'cellfitalign' => '', - 'border' => false, - 'padding' => 0, - 'fgcolor' => array(0,0,0), - 'bgcolor' => false, - 'text' => false - ); - $this->write1DBarcode($barcode, 'C128', '', $cur_y + $line_width, '', (($this->footer_margin / 3) - $line_width), 0.3, $style, ''); - } - $w_page = isset($this->l['w_page']) ? $this->l['w_page'].' ' : ''; - if (empty($this->pagegroups)) { - $pagenumtxt = $w_page.$this->getAliasNumPage().' / '.$this->getAliasNbPages(); - } else { - $pagenumtxt = $w_page.$this->getPageNumGroupAlias().' / '.$this->getPageGroupAlias(); - } - $this->SetY($cur_y); - //Print page number - if ($this->getRTL()) { - $this->SetX($this->original_rMargin); - $this->Cell(0, 0, $pagenumtxt, 'T', 0, 'L'); - } else { - $this->SetX($this->original_lMargin); - $this->Cell(0, 0, $this->getAliasRightShift().$pagenumtxt, 'T', 0, 'R'); - } - } - - /** - * This method is used to render the page header. - * @protected - * @since 4.0.012 (2008-07-24) - */ - protected function setHeader() { - if (!$this->print_header OR ($this->state != 2)) { - return; - } - $this->InHeader = true; - $this->setGraphicVars($this->default_graphic_vars); - $temp_thead = $this->thead; - $temp_theadMargins = $this->theadMargins; - $lasth = $this->lasth; - $newline = $this->newline; - $this->_outSaveGraphicsState(); - $this->rMargin = $this->original_rMargin; - $this->lMargin = $this->original_lMargin; - $this->SetCellPadding(0); - //set current position - if ($this->rtl) { - $this->SetXY($this->original_rMargin, $this->header_margin); - } else { - $this->SetXY($this->original_lMargin, $this->header_margin); - } - $this->SetFont($this->header_font[0], $this->header_font[1], $this->header_font[2]); - $this->Header(); - //restore position - if ($this->rtl) { - $this->SetXY($this->original_rMargin, $this->tMargin); - } else { - $this->SetXY($this->original_lMargin, $this->tMargin); - } - $this->_outRestoreGraphicsState(); - $this->lasth = $lasth; - $this->thead = $temp_thead; - $this->theadMargins = $temp_theadMargins; - $this->newline = $newline; - $this->InHeader = false; - } - - /** - * This method is used to render the page footer. - * @protected - * @since 4.0.012 (2008-07-24) - */ - protected function setFooter() { - if ($this->state != 2) { - return; - } - $this->InFooter = true; - // save current graphic settings - $gvars = $this->getGraphicVars(); - // mark this point - $this->footerpos[$this->page] = $this->pagelen[$this->page]; - $this->_out("\n"); - if ($this->print_footer) { - $this->setGraphicVars($this->default_graphic_vars); - $this->current_column = 0; - $this->num_columns = 1; - $temp_thead = $this->thead; - $temp_theadMargins = $this->theadMargins; - $lasth = $this->lasth; - $this->_outSaveGraphicsState(); - $this->rMargin = $this->original_rMargin; - $this->lMargin = $this->original_lMargin; - $this->SetCellPadding(0); - //set current position - $footer_y = $this->h - $this->footer_margin; - if ($this->rtl) { - $this->SetXY($this->original_rMargin, $footer_y); - } else { - $this->SetXY($this->original_lMargin, $footer_y); - } - $this->SetFont($this->footer_font[0], $this->footer_font[1], $this->footer_font[2]); - $this->Footer(); - //restore position - if ($this->rtl) { - $this->SetXY($this->original_rMargin, $this->tMargin); - } else { - $this->SetXY($this->original_lMargin, $this->tMargin); - } - $this->_outRestoreGraphicsState(); - $this->lasth = $lasth; - $this->thead = $temp_thead; - $this->theadMargins = $temp_theadMargins; - } - // restore graphic settings - $this->setGraphicVars($gvars); - $this->current_column = $gvars['current_column']; - $this->num_columns = $gvars['num_columns']; - // calculate footer length - $this->footerlen[$this->page] = $this->pagelen[$this->page] - $this->footerpos[$this->page] + 1; - $this->InFooter = false; - } - - /** - * Check if we are on the page body (excluding page header and footer). - * @return true if we are not in page header nor in page footer, false otherwise. - * @protected - * @since 5.9.091 (2011-06-15) - */ - protected function inPageBody() { - return (($this->InHeader === false) AND ($this->InFooter === false)); - } - - /** - * This method is used to render the table header on new page (if any). - * @protected - * @since 4.5.030 (2009-03-25) - */ - protected function setTableHeader() { - if ($this->num_columns > 1) { - // multi column mode - return; - } - if (isset($this->theadMargins['top'])) { - // restore the original top-margin - $this->tMargin = $this->theadMargins['top']; - $this->pagedim[$this->page]['tm'] = $this->tMargin; - $this->y = $this->tMargin; - } - if (!TCPDF_STATIC::empty_string($this->thead) AND (!$this->inthead)) { - // set margins - $prev_lMargin = $this->lMargin; - $prev_rMargin = $this->rMargin; - $prev_cell_padding = $this->cell_padding; - $this->lMargin = $this->theadMargins['lmargin'] + ($this->pagedim[$this->page]['olm'] - $this->pagedim[$this->theadMargins['page']]['olm']); - $this->rMargin = $this->theadMargins['rmargin'] + ($this->pagedim[$this->page]['orm'] - $this->pagedim[$this->theadMargins['page']]['orm']); - $this->cell_padding = $this->theadMargins['cell_padding']; - if ($this->rtl) { - $this->x = $this->w - $this->rMargin; - } else { - $this->x = $this->lMargin; - } - // account for special "cell" mode - if ($this->theadMargins['cell']) { - if ($this->rtl) { - $this->x -= $this->cell_padding['R']; - } else { - $this->x += $this->cell_padding['L']; - } - } - $gvars = $this->getGraphicVars(); - if (!empty($this->theadMargins['gvars'])) { - // set the correct graphic style - $this->setGraphicVars($this->theadMargins['gvars']); - $this->rMargin = $gvars['rMargin']; - $this->lMargin = $gvars['lMargin']; - } - // print table header - $this->writeHTML($this->thead, false, false, false, false, ''); - $this->setGraphicVars($gvars); - // set new top margin to skip the table headers - if (!isset($this->theadMargins['top'])) { - $this->theadMargins['top'] = $this->tMargin; - } - // store end of header position - if (!isset($this->columns[0]['th'])) { - $this->columns[0]['th'] = array(); - } - $this->columns[0]['th']['\''.$this->page.'\''] = $this->y; - $this->tMargin = $this->y; - $this->pagedim[$this->page]['tm'] = $this->tMargin; - $this->lasth = 0; - $this->lMargin = $prev_lMargin; - $this->rMargin = $prev_rMargin; - $this->cell_padding = $prev_cell_padding; - } - } - - /** - * Returns the current page number. - * @return int page number - * @public - * @since 1.0 - * @see getAliasNbPages() - */ - public function PageNo() { - return $this->page; - } - - /** - * Returns the array of spot colors. - * @return (array) Spot colors array. - * @public - * @since 6.0.038 (2013-09-30) - */ - public function getAllSpotColors() { - return $this->spot_colors; - } - - /** - * Defines a new spot color. - * It can be expressed in RGB components or gray scale. - * The method can be called before the first page is created and the value is retained from page to page. - * @param $name (string) Full name of the spot color. - * @param $c (float) Cyan color for CMYK. Value between 0 and 100. - * @param $m (float) Magenta color for CMYK. Value between 0 and 100. - * @param $y (float) Yellow color for CMYK. Value between 0 and 100. - * @param $k (float) Key (Black) color for CMYK. Value between 0 and 100. - * @public - * @since 4.0.024 (2008-09-12) - * @see SetDrawSpotColor(), SetFillSpotColor(), SetTextSpotColor() - */ - public function AddSpotColor($name, $c, $m, $y, $k) { - if (!isset($this->spot_colors[$name])) { - $i = (1 + count($this->spot_colors)); - $this->spot_colors[$name] = array('C' => $c, 'M' => $m, 'Y' => $y, 'K' => $k, 'name' => $name, 'i' => $i); - } - } - - /** - * Set the spot color for the specified type ('draw', 'fill', 'text'). - * @param $type (string) Type of object affected by this color: ('draw', 'fill', 'text'). - * @param $name (string) Name of the spot color. - * @param $tint (float) Intensity of the color (from 0 to 100 ; 100 = full intensity by default). - * @return (string) PDF color command. - * @public - * @since 5.9.125 (2011-10-03) - */ - public function setSpotColor($type, $name, $tint=100) { - $spotcolor = TCPDF_COLORS::getSpotColor($name, $this->spot_colors); - if ($spotcolor === false) { - $this->Error('Undefined spot color: '.$name.', you must add it using the AddSpotColor() method.'); - } - $tint = (max(0, min(100, $tint)) / 100); - $pdfcolor = sprintf('/CS%d ', $this->spot_colors[$name]['i']); - switch ($type) { - case 'draw': { - $pdfcolor .= sprintf('CS %F SCN', $tint); - $this->DrawColor = $pdfcolor; - $this->strokecolor = $spotcolor; - break; - } - case 'fill': { - $pdfcolor .= sprintf('cs %F scn', $tint); - $this->FillColor = $pdfcolor; - $this->bgcolor = $spotcolor; - break; - } - case 'text': { - $pdfcolor .= sprintf('cs %F scn', $tint); - $this->TextColor = $pdfcolor; - $this->fgcolor = $spotcolor; - break; - } - } - $this->ColorFlag = ($this->FillColor != $this->TextColor); - if ($this->state == 2) { - $this->_out($pdfcolor); - } - if ($this->inxobj) { - // we are inside an XObject template - $this->xobjects[$this->xobjid]['spot_colors'][$name] = $this->spot_colors[$name]; - } - return $pdfcolor; - } - - /** - * Defines the spot color used for all drawing operations (lines, rectangles and cell borders). - * @param $name (string) Name of the spot color. - * @param $tint (float) Intensity of the color (from 0 to 100 ; 100 = full intensity by default). - * @public - * @since 4.0.024 (2008-09-12) - * @see AddSpotColor(), SetFillSpotColor(), SetTextSpotColor() - */ - public function SetDrawSpotColor($name, $tint=100) { - $this->setSpotColor('draw', $name, $tint); - } - - /** - * Defines the spot color used for all filling operations (filled rectangles and cell backgrounds). - * @param $name (string) Name of the spot color. - * @param $tint (float) Intensity of the color (from 0 to 100 ; 100 = full intensity by default). - * @public - * @since 4.0.024 (2008-09-12) - * @see AddSpotColor(), SetDrawSpotColor(), SetTextSpotColor() - */ - public function SetFillSpotColor($name, $tint=100) { - $this->setSpotColor('fill', $name, $tint); - } - - /** - * Defines the spot color used for text. - * @param $name (string) Name of the spot color. - * @param $tint (int) Intensity of the color (from 0 to 100 ; 100 = full intensity by default). - * @public - * @since 4.0.024 (2008-09-12) - * @see AddSpotColor(), SetDrawSpotColor(), SetFillSpotColor() - */ - public function SetTextSpotColor($name, $tint=100) { - $this->setSpotColor('text', $name, $tint); - } - - /** - * Set the color array for the specified type ('draw', 'fill', 'text'). - * It can be expressed in RGB, CMYK or GRAY SCALE components. - * The method can be called before the first page is created and the value is retained from page to page. - * @param $type (string) Type of object affected by this color: ('draw', 'fill', 'text'). - * @param $color (array) Array of colors (1=gray, 3=RGB, 4=CMYK or 5=spotcolor=CMYK+name values). - * @param $ret (boolean) If true do not send the PDF command. - * @return (string) The PDF command or empty string. - * @public - * @since 3.1.000 (2008-06-11) - */ - public function setColorArray($type, $color, $ret=false) { - if (is_array($color)) { - $color = array_values($color); - // component: grey, RGB red or CMYK cyan - $c = isset($color[0]) ? $color[0] : -1; - // component: RGB green or CMYK magenta - $m = isset($color[1]) ? $color[1] : -1; - // component: RGB blue or CMYK yellow - $y = isset($color[2]) ? $color[2] : -1; - // component: CMYK black - $k = isset($color[3]) ? $color[3] : -1; - // color name - $name = isset($color[4]) ? $color[4] : ''; - if ($c >= 0) { - return $this->setColor($type, $c, $m, $y, $k, $ret, $name); - } - } - return ''; - } - - /** - * Defines the color used for all drawing operations (lines, rectangles and cell borders). - * It can be expressed in RGB, CMYK or GRAY SCALE components. - * The method can be called before the first page is created and the value is retained from page to page. - * @param $color (array) Array of colors (1, 3 or 4 values). - * @param $ret (boolean) If true do not send the PDF command. - * @return string the PDF command - * @public - * @since 3.1.000 (2008-06-11) - * @see SetDrawColor() - */ - public function SetDrawColorArray($color, $ret=false) { - return $this->setColorArray('draw', $color, $ret); - } - - /** - * Defines the color used for all filling operations (filled rectangles and cell backgrounds). - * It can be expressed in RGB, CMYK or GRAY SCALE components. - * The method can be called before the first page is created and the value is retained from page to page. - * @param $color (array) Array of colors (1, 3 or 4 values). - * @param $ret (boolean) If true do not send the PDF command. - * @public - * @since 3.1.000 (2008-6-11) - * @see SetFillColor() - */ - public function SetFillColorArray($color, $ret=false) { - return $this->setColorArray('fill', $color, $ret); - } - - /** - * Defines the color used for text. It can be expressed in RGB components or gray scale. - * The method can be called before the first page is created and the value is retained from page to page. - * @param $color (array) Array of colors (1, 3 or 4 values). - * @param $ret (boolean) If true do not send the PDF command. - * @public - * @since 3.1.000 (2008-6-11) - * @see SetFillColor() - */ - public function SetTextColorArray($color, $ret=false) { - return $this->setColorArray('text', $color, $ret); - } - - /** - * Defines the color used by the specified type ('draw', 'fill', 'text'). - * @param $type (string) Type of object affected by this color: ('draw', 'fill', 'text'). - * @param $col1 (float) GRAY level for single color, or Red color for RGB (0-255), or CYAN color for CMYK (0-100). - * @param $col2 (float) GREEN color for RGB (0-255), or MAGENTA color for CMYK (0-100). - * @param $col3 (float) BLUE color for RGB (0-255), or YELLOW color for CMYK (0-100). - * @param $col4 (float) KEY (BLACK) color for CMYK (0-100). - * @param $ret (boolean) If true do not send the command. - * @param $name (string) spot color name (if any) - * @return (string) The PDF command or empty string. - * @public - * @since 5.9.125 (2011-10-03) - */ - public function setColor($type, $col1=0, $col2=-1, $col3=-1, $col4=-1, $ret=false, $name='') { - // set default values - if (!is_numeric($col1)) { - $col1 = 0; - } - if (!is_numeric($col2)) { - $col2 = -1; - } - if (!is_numeric($col3)) { - $col3 = -1; - } - if (!is_numeric($col4)) { - $col4 = -1; - } - // set color by case - $suffix = ''; - if (($col2 == -1) AND ($col3 == -1) AND ($col4 == -1)) { - // Grey scale - $col1 = max(0, min(255, $col1)); - $intcolor = array('G' => $col1); - $pdfcolor = sprintf('%F ', ($col1 / 255)); - $suffix = 'g'; - } elseif ($col4 == -1) { - // RGB - $col1 = max(0, min(255, $col1)); - $col2 = max(0, min(255, $col2)); - $col3 = max(0, min(255, $col3)); - $intcolor = array('R' => $col1, 'G' => $col2, 'B' => $col3); - $pdfcolor = sprintf('%F %F %F ', ($col1 / 255), ($col2 / 255), ($col3 / 255)); - $suffix = 'rg'; - } else { - $col1 = max(0, min(100, $col1)); - $col2 = max(0, min(100, $col2)); - $col3 = max(0, min(100, $col3)); - $col4 = max(0, min(100, $col4)); - if (empty($name)) { - // CMYK - $intcolor = array('C' => $col1, 'M' => $col2, 'Y' => $col3, 'K' => $col4); - $pdfcolor = sprintf('%F %F %F %F ', ($col1 / 100), ($col2 / 100), ($col3 / 100), ($col4 / 100)); - $suffix = 'k'; - } else { - // SPOT COLOR - $intcolor = array('C' => $col1, 'M' => $col2, 'Y' => $col3, 'K' => $col4, 'name' => $name); - $this->AddSpotColor($name, $col1, $col2, $col3, $col4); - $pdfcolor = $this->setSpotColor($type, $name, 100); - } - } - switch ($type) { - case 'draw': { - $pdfcolor .= strtoupper($suffix); - $this->DrawColor = $pdfcolor; - $this->strokecolor = $intcolor; - break; - } - case 'fill': { - $pdfcolor .= $suffix; - $this->FillColor = $pdfcolor; - $this->bgcolor = $intcolor; - break; - } - case 'text': { - $pdfcolor .= $suffix; - $this->TextColor = $pdfcolor; - $this->fgcolor = $intcolor; - break; - } - } - $this->ColorFlag = ($this->FillColor != $this->TextColor); - if (($type != 'text') AND ($this->state == 2)) { - if (!$ret) { - $this->_out($pdfcolor); - } - return $pdfcolor; - } - return ''; - } - - /** - * Defines the color used for all drawing operations (lines, rectangles and cell borders). It can be expressed in RGB components or gray scale. The method can be called before the first page is created and the value is retained from page to page. - * @param $col1 (float) GRAY level for single color, or Red color for RGB (0-255), or CYAN color for CMYK (0-100). - * @param $col2 (float) GREEN color for RGB (0-255), or MAGENTA color for CMYK (0-100). - * @param $col3 (float) BLUE color for RGB (0-255), or YELLOW color for CMYK (0-100). - * @param $col4 (float) KEY (BLACK) color for CMYK (0-100). - * @param $ret (boolean) If true do not send the command. - * @param $name (string) spot color name (if any) - * @return string the PDF command - * @public - * @since 1.3 - * @see SetDrawColorArray(), SetFillColor(), SetTextColor(), Line(), Rect(), Cell(), MultiCell() - */ - public function SetDrawColor($col1=0, $col2=-1, $col3=-1, $col4=-1, $ret=false, $name='') { - return $this->setColor('draw', $col1, $col2, $col3, $col4, $ret, $name); - } - - /** - * Defines the color used for all filling operations (filled rectangles and cell backgrounds). It can be expressed in RGB components or gray scale. The method can be called before the first page is created and the value is retained from page to page. - * @param $col1 (float) GRAY level for single color, or Red color for RGB (0-255), or CYAN color for CMYK (0-100). - * @param $col2 (float) GREEN color for RGB (0-255), or MAGENTA color for CMYK (0-100). - * @param $col3 (float) BLUE color for RGB (0-255), or YELLOW color for CMYK (0-100). - * @param $col4 (float) KEY (BLACK) color for CMYK (0-100). - * @param $ret (boolean) If true do not send the command. - * @param $name (string) Spot color name (if any). - * @return (string) The PDF command. - * @public - * @since 1.3 - * @see SetFillColorArray(), SetDrawColor(), SetTextColor(), Rect(), Cell(), MultiCell() - */ - public function SetFillColor($col1=0, $col2=-1, $col3=-1, $col4=-1, $ret=false, $name='') { - return $this->setColor('fill', $col1, $col2, $col3, $col4, $ret, $name); - } - - /** - * Defines the color used for text. It can be expressed in RGB components or gray scale. The method can be called before the first page is created and the value is retained from page to page. - * @param $col1 (float) GRAY level for single color, or Red color for RGB (0-255), or CYAN color for CMYK (0-100). - * @param $col2 (float) GREEN color for RGB (0-255), or MAGENTA color for CMYK (0-100). - * @param $col3 (float) BLUE color for RGB (0-255), or YELLOW color for CMYK (0-100). - * @param $col4 (float) KEY (BLACK) color for CMYK (0-100). - * @param $ret (boolean) If true do not send the command. - * @param $name (string) Spot color name (if any). - * @return (string) Empty string. - * @public - * @since 1.3 - * @see SetTextColorArray(), SetDrawColor(), SetFillColor(), Text(), Cell(), MultiCell() - */ - public function SetTextColor($col1=0, $col2=-1, $col3=-1, $col4=-1, $ret=false, $name='') { - return $this->setColor('text', $col1, $col2, $col3, $col4, $ret, $name); - } - - /** - * Returns the length of a string in user unit. A font must be selected.
      - * @param $s (string) The string whose length is to be computed - * @param $fontname (string) Family font. It can be either a name defined by AddFont() or one of the standard families. It is also possible to pass an empty string, in that case, the current family is retained. - * @param $fontstyle (string) Font style. Possible values are (case insensitive):
      • empty string: regular
      • B: bold
      • I: italic
      • U: underline
      • D: line-through
      • O: overline
      or any combination. The default value is regular. - * @param $fontsize (float) Font size in points. The default value is the current size. - * @param $getarray (boolean) if true returns an array of characters widths, if false returns the total length. - * @return mixed int total string length or array of characted widths - * @author Nicola Asuni - * @public - * @since 1.2 - */ - public function GetStringWidth($s, $fontname='', $fontstyle='', $fontsize=0, $getarray=false) { - return $this->GetArrStringWidth(TCPDF_FONTS::utf8Bidi(TCPDF_FONTS::UTF8StringToArray($s, $this->isunicode, $this->CurrentFont), $s, $this->tmprtl, $this->isunicode, $this->CurrentFont), $fontname, $fontstyle, $fontsize, $getarray); - } - - /** - * Returns the string length of an array of chars in user unit or an array of characters widths. A font must be selected.
      - * @param $sa (string) The array of chars whose total length is to be computed - * @param $fontname (string) Family font. It can be either a name defined by AddFont() or one of the standard families. It is also possible to pass an empty string, in that case, the current family is retained. - * @param $fontstyle (string) Font style. Possible values are (case insensitive):
      • empty string: regular
      • B: bold
      • I: italic
      • U: underline
      • D: line through
      • O: overline
      or any combination. The default value is regular. - * @param $fontsize (float) Font size in points. The default value is the current size. - * @param $getarray (boolean) if true returns an array of characters widths, if false returns the total length. - * @return mixed int total string length or array of characted widths - * @author Nicola Asuni - * @public - * @since 2.4.000 (2008-03-06) - */ - public function GetArrStringWidth($sa, $fontname='', $fontstyle='', $fontsize=0, $getarray=false) { - // store current values - if (!TCPDF_STATIC::empty_string($fontname)) { - $prev_FontFamily = $this->FontFamily; - $prev_FontStyle = $this->FontStyle; - $prev_FontSizePt = $this->FontSizePt; - $this->SetFont($fontname, $fontstyle, $fontsize, '', 'default', false); - } - // convert UTF-8 array to Latin1 if required - if ($this->isunicode AND (!$this->isUnicodeFont())) { - $sa = TCPDF_FONTS::UTF8ArrToLatin1Arr($sa); - } - $w = 0; // total width - $wa = array(); // array of characters widths - foreach ($sa as $ck => $char) { - // character width - $cw = $this->GetCharWidth($char, isset($sa[($ck + 1)])); - $wa[] = $cw; - $w += $cw; - } - // restore previous values - if (!TCPDF_STATIC::empty_string($fontname)) { - $this->SetFont($prev_FontFamily, $prev_FontStyle, $prev_FontSizePt, '', 'default', false); - } - if ($getarray) { - return $wa; - } - return $w; - } - - /** - * Returns the length of the char in user unit for the current font considering current stretching and spacing (tracking). - * @param $char (int) The char code whose length is to be returned - * @param $notlast (boolean) If false ignore the font-spacing. - * @return float char width - * @author Nicola Asuni - * @public - * @since 2.4.000 (2008-03-06) - */ - public function GetCharWidth($char, $notlast=true) { - // get raw width - $chw = $this->getRawCharWidth($char); - if (($this->font_spacing < 0) OR (($this->font_spacing > 0) AND $notlast)) { - // increase/decrease font spacing - $chw += $this->font_spacing; - } - if ($this->font_stretching != 100) { - // fixed stretching mode - $chw *= ($this->font_stretching / 100); - } - return $chw; - } - - /** - * Returns the length of the char in user unit for the current font. - * @param $char (int) The char code whose length is to be returned - * @return float char width - * @author Nicola Asuni - * @public - * @since 5.9.000 (2010-09-28) - */ - public function getRawCharWidth($char) { - if ($char == 173) { - // SHY character will not be printed - return (0); - } - if (isset($this->CurrentFont['cw'][$char])) { - $w = $this->CurrentFont['cw'][$char]; - } elseif (isset($this->CurrentFont['dw'])) { - // default width - $w = $this->CurrentFont['dw']; - } elseif (isset($this->CurrentFont['cw'][32])) { - // default width - $w = $this->CurrentFont['cw'][32]; - } else { - $w = 600; - } - return $this->getAbsFontMeasure($w); - } - - /** - * Returns the numbero of characters in a string. - * @param $s (string) The input string. - * @return int number of characters - * @public - * @since 2.0.0001 (2008-01-07) - */ - public function GetNumChars($s) { - if ($this->isUnicodeFont()) { - return count(TCPDF_FONTS::UTF8StringToArray($s, $this->isunicode, $this->CurrentFont)); - } - return strlen($s); - } - - /** - * Fill the list of available fonts ($this->fontlist). - * @protected - * @since 4.0.013 (2008-07-28) - */ - protected function getFontsList() { - if (($fontsdir = opendir(TCPDF_FONTS::_getfontpath())) !== false) { - while (($file = readdir($fontsdir)) !== false) { - if (substr($file, -4) == '.php') { - array_push($this->fontlist, strtolower(basename($file, '.php'))); - } - } - closedir($fontsdir); - } - } - - /** - * Imports a TrueType, Type1, core, or CID0 font and makes it available. - * It is necessary to generate a font definition file first (read /fonts/utils/README.TXT). - * The definition file (and the font file itself when embedding) must be present either in the current directory or in the one indicated by K_PATH_FONTS if the constant is defined. If it could not be found, the error "Could not include font definition file" is generated. - * @param $family (string) Font family. The name can be chosen arbitrarily. If it is a standard family name, it will override the corresponding font. - * @param $style (string) Font style. Possible values are (case insensitive):
      • empty string: regular (default)
      • B: bold
      • I: italic
      • BI or IB: bold italic
      - * @param $fontfile (string) The font definition file. By default, the name is built from the family and style, in lower case with no spaces. - * @return array containing the font data, or false in case of error. - * @param $subset (mixed) if true embedd only a subset of the font (stores only the information related to the used characters); if false embedd full font; if 'default' uses the default value set using setFontSubsetting(). This option is valid only for TrueTypeUnicode fonts. If you want to enable users to change the document, set this parameter to false. If you subset the font, the person who receives your PDF would need to have your same font in order to make changes to your PDF. The file size of the PDF would also be smaller because you are embedding only part of a font. - * @public - * @since 1.5 - * @see SetFont(), setFontSubsetting() - */ - public function AddFont($family, $style='', $fontfile='', $subset='default') { - if ($subset === 'default') { - $subset = $this->font_subsetting; - } - if ($this->pdfa_mode) { - $subset = false; - } - if (TCPDF_STATIC::empty_string($family)) { - if (!TCPDF_STATIC::empty_string($this->FontFamily)) { - $family = $this->FontFamily; - } else { - $this->Error('Empty font family'); - } - } - // move embedded styles on $style - if (substr($family, -1) == 'I') { - $style .= 'I'; - $family = substr($family, 0, -1); - } - if (substr($family, -1) == 'B') { - $style .= 'B'; - $family = substr($family, 0, -1); - } - // normalize family name - $family = strtolower($family); - if ((!$this->isunicode) AND ($family == 'arial')) { - $family = 'helvetica'; - } - if (($family == 'symbol') OR ($family == 'zapfdingbats')) { - $style = ''; - } - if ($this->pdfa_mode AND (isset($this->CoreFonts[$family]))) { - // all fonts must be embedded - $family = 'pdfa'.$family; - } - $tempstyle = strtoupper($style); - $style = ''; - // underline - if (strpos($tempstyle, 'U') !== false) { - $this->underline = true; - } else { - $this->underline = false; - } - // line-through (deleted) - if (strpos($tempstyle, 'D') !== false) { - $this->linethrough = true; - } else { - $this->linethrough = false; - } - // overline - if (strpos($tempstyle, 'O') !== false) { - $this->overline = true; - } else { - $this->overline = false; - } - // bold - if (strpos($tempstyle, 'B') !== false) { - $style .= 'B'; - } - // oblique - if (strpos($tempstyle, 'I') !== false) { - $style .= 'I'; - } - $bistyle = $style; - $fontkey = $family.$style; - $font_style = $style.($this->underline ? 'U' : '').($this->linethrough ? 'D' : '').($this->overline ? 'O' : ''); - $fontdata = array('fontkey' => $fontkey, 'family' => $family, 'style' => $font_style); - // check if the font has been already added - $fb = $this->getFontBuffer($fontkey); - if ($fb !== false) { - if ($this->inxobj) { - // we are inside an XObject template - $this->xobjects[$this->xobjid]['fonts'][$fontkey] = $fb['i']; - } - return $fontdata; - } - // get specified font directory (if any) - $fontdir = false; - if (!TCPDF_STATIC::empty_string($fontfile)) { - $fontdir = dirname($fontfile); - if (TCPDF_STATIC::empty_string($fontdir) OR ($fontdir == '.')) { - $fontdir = ''; - } else { - $fontdir .= '/'; - } - } - // true when the font style variation is missing - $missing_style = false; - // search and include font file - if (TCPDF_STATIC::empty_string($fontfile) OR (!@TCPDF_STATIC::file_exists($fontfile))) { - // build a standard filenames for specified font - $tmp_fontfile = str_replace(' ', '', $family).strtolower($style).'.php'; - $fontfile = TCPDF_FONTS::getFontFullPath($tmp_fontfile, $fontdir); - if (TCPDF_STATIC::empty_string($fontfile)) { - $missing_style = true; - // try to remove the style part - $tmp_fontfile = str_replace(' ', '', $family).'.php'; - $fontfile = TCPDF_FONTS::getFontFullPath($tmp_fontfile, $fontdir); - } - } - // include font file - if (!TCPDF_STATIC::empty_string($fontfile) AND (@TCPDF_STATIC::file_exists($fontfile))) { - include($fontfile); - } else { - $this->Error('Could not include font definition file: '.$family.''); - } - // check font parameters - if ((!isset($type)) OR (!isset($cw))) { - $this->Error('The font definition file has a bad format: '.$fontfile.''); - } - // SET default parameters - if (!isset($file) OR TCPDF_STATIC::empty_string($file)) { - $file = ''; - } - if (!isset($enc) OR TCPDF_STATIC::empty_string($enc)) { - $enc = ''; - } - if (!isset($cidinfo) OR TCPDF_STATIC::empty_string($cidinfo)) { - $cidinfo = array('Registry'=>'Adobe', 'Ordering'=>'Identity', 'Supplement'=>0); - $cidinfo['uni2cid'] = array(); - } - if (!isset($ctg) OR TCPDF_STATIC::empty_string($ctg)) { - $ctg = ''; - } - if (!isset($desc) OR TCPDF_STATIC::empty_string($desc)) { - $desc = array(); - } - if (!isset($up) OR TCPDF_STATIC::empty_string($up)) { - $up = -100; - } - if (!isset($ut) OR TCPDF_STATIC::empty_string($ut)) { - $ut = 50; - } - if (!isset($cw) OR TCPDF_STATIC::empty_string($cw)) { - $cw = array(); - } - if (!isset($dw) OR TCPDF_STATIC::empty_string($dw)) { - // set default width - if (isset($desc['MissingWidth']) AND ($desc['MissingWidth'] > 0)) { - $dw = $desc['MissingWidth']; - } elseif (isset($cw[32])) { - $dw = $cw[32]; - } else { - $dw = 600; - } - } - ++$this->numfonts; - if ($type == 'core') { - $name = $this->CoreFonts[$fontkey]; - $subset = false; - } elseif (($type == 'TrueType') OR ($type == 'Type1')) { - $subset = false; - } elseif ($type == 'TrueTypeUnicode') { - $enc = 'Identity-H'; - } elseif ($type == 'cidfont0') { - if ($this->pdfa_mode) { - $this->Error('All fonts must be embedded in PDF/A mode!'); - } - } else { - $this->Error('Unknow font type: '.$type.''); - } - // set name if unset - if (!isset($name) OR empty($name)) { - $name = $fontkey; - } - // create artificial font style variations if missing (only works with non-embedded fonts) - if (($type != 'core') AND $missing_style) { - // style variations - $styles = array('' => '', 'B' => ',Bold', 'I' => ',Italic', 'BI' => ',BoldItalic'); - $name .= $styles[$bistyle]; - // artificial bold - if (strpos($bistyle, 'B') !== false) { - if (isset($desc['StemV'])) { - // from normal to bold - $desc['StemV'] = round($desc['StemV'] * 1.75); - } else { - // bold - $desc['StemV'] = 123; - } - } - // artificial italic - if (strpos($bistyle, 'I') !== false) { - if (isset($desc['ItalicAngle'])) { - $desc['ItalicAngle'] -= 11; - } else { - $desc['ItalicAngle'] = -11; - } - if (isset($desc['Flags'])) { - $desc['Flags'] |= 64; //bit 7 - } else { - $desc['Flags'] = 64; - } - } - } - // check if the array of characters bounding boxes is defined - if (!isset($cbbox)) { - $cbbox = array(); - } - // initialize subsetchars - $subsetchars = array_fill(0, 255, true); - $this->setFontBuffer($fontkey, array('fontkey' => $fontkey, 'i' => $this->numfonts, 'type' => $type, 'name' => $name, 'desc' => $desc, 'up' => $up, 'ut' => $ut, 'cw' => $cw, 'cbbox' => $cbbox, 'dw' => $dw, 'enc' => $enc, 'cidinfo' => $cidinfo, 'file' => $file, 'ctg' => $ctg, 'subset' => $subset, 'subsetchars' => $subsetchars)); - if ($this->inxobj) { - // we are inside an XObject template - $this->xobjects[$this->xobjid]['fonts'][$fontkey] = $this->numfonts; - } - if (isset($diff) AND (!empty($diff))) { - //Search existing encodings - $d = 0; - $nb = count($this->diffs); - for ($i=1; $i <= $nb; ++$i) { - if ($this->diffs[$i] == $diff) { - $d = $i; - break; - } - } - if ($d == 0) { - $d = $nb + 1; - $this->diffs[$d] = $diff; - } - $this->setFontSubBuffer($fontkey, 'diff', $d); - } - if (!TCPDF_STATIC::empty_string($file)) { - if (!isset($this->FontFiles[$file])) { - if ((strcasecmp($type,'TrueType') == 0) OR (strcasecmp($type, 'TrueTypeUnicode') == 0)) { - $this->FontFiles[$file] = array('length1' => $originalsize, 'fontdir' => $fontdir, 'subset' => $subset, 'fontkeys' => array($fontkey)); - } elseif ($type != 'core') { - $this->FontFiles[$file] = array('length1' => $size1, 'length2' => $size2, 'fontdir' => $fontdir, 'subset' => $subset, 'fontkeys' => array($fontkey)); - } - } else { - // update fontkeys that are sharing this font file - $this->FontFiles[$file]['subset'] = ($this->FontFiles[$file]['subset'] AND $subset); - if (!in_array($fontkey, $this->FontFiles[$file]['fontkeys'])) { - $this->FontFiles[$file]['fontkeys'][] = $fontkey; - } - } - } - return $fontdata; - } - - /** - * Sets the font used to print character strings. - * The font can be either a standard one or a font added via the AddFont() method. Standard fonts use Windows encoding cp1252 (Western Europe). - * The method can be called before the first page is created and the font is retained from page to page. - * If you just wish to change the current font size, it is simpler to call SetFontSize(). - * Note: for the standard fonts, the font metric files must be accessible. There are three possibilities for this:
      • They are in the current directory (the one where the running script lies)
      • They are in one of the directories defined by the include_path parameter
      • They are in the directory defined by the K_PATH_FONTS constant

      - * @param $family (string) Family font. It can be either a name defined by AddFont() or one of the standard Type1 families (case insensitive):
      • times (Times-Roman)
      • timesb (Times-Bold)
      • timesi (Times-Italic)
      • timesbi (Times-BoldItalic)
      • helvetica (Helvetica)
      • helveticab (Helvetica-Bold)
      • helveticai (Helvetica-Oblique)
      • helveticabi (Helvetica-BoldOblique)
      • courier (Courier)
      • courierb (Courier-Bold)
      • courieri (Courier-Oblique)
      • courierbi (Courier-BoldOblique)
      • symbol (Symbol)
      • zapfdingbats (ZapfDingbats)
      It is also possible to pass an empty string. In that case, the current family is retained. - * @param $style (string) Font style. Possible values are (case insensitive):
      • empty string: regular
      • B: bold
      • I: italic
      • U: underline
      • D: line through
      • O: overline
      or any combination. The default value is regular. Bold and italic styles do not apply to Symbol and ZapfDingbats basic fonts or other fonts when not defined. - * @param $size (float) Font size in points. The default value is the current size. If no size has been specified since the beginning of the document, the value taken is 12 - * @param $fontfile (string) The font definition file. By default, the name is built from the family and style, in lower case with no spaces. - * @param $subset (mixed) if true embedd only a subset of the font (stores only the information related to the used characters); if false embedd full font; if 'default' uses the default value set using setFontSubsetting(). This option is valid only for TrueTypeUnicode fonts. If you want to enable users to change the document, set this parameter to false. If you subset the font, the person who receives your PDF would need to have your same font in order to make changes to your PDF. The file size of the PDF would also be smaller because you are embedding only part of a font. - * @param $out (boolean) if true output the font size command, otherwise only set the font properties. - * @author Nicola Asuni - * @public - * @since 1.0 - * @see AddFont(), SetFontSize() - */ - public function SetFont($family, $style='', $size=null, $fontfile='', $subset='default', $out=true) { - //Select a font; size given in points - if ($size === null) { - $size = $this->FontSizePt; - } - if ($size < 0) { - $size = 0; - } - // try to add font (if not already added) - $fontdata = $this->AddFont($family, $style, $fontfile, $subset); - $this->FontFamily = $fontdata['family']; - $this->FontStyle = $fontdata['style']; - if (isset($this->CurrentFont['fontkey']) AND isset($this->CurrentFont['subsetchars'])) { - // save subset chars of the previous font - $this->setFontSubBuffer($this->CurrentFont['fontkey'], 'subsetchars', $this->CurrentFont['subsetchars']); - } - $this->CurrentFont = $this->getFontBuffer($fontdata['fontkey']); - $this->SetFontSize($size, $out); - } - - /** - * Defines the size of the current font. - * @param $size (float) The font size in points. - * @param $out (boolean) if true output the font size command, otherwise only set the font properties. - * @public - * @since 1.0 - * @see SetFont() - */ - public function SetFontSize($size, $out=true) { - $size = (float)$size; - // font size in points - $this->FontSizePt = $size; - // font size in user units - $this->FontSize = $size / $this->k; - // calculate some font metrics - if (isset($this->CurrentFont['desc']['FontBBox'])) { - $bbox = explode(' ', substr($this->CurrentFont['desc']['FontBBox'], 1, -1)); - $font_height = ((intval($bbox[3]) - intval($bbox[1])) * $size / 1000); - } else { - $font_height = $size * 1.219; - } - if (isset($this->CurrentFont['desc']['Ascent']) AND ($this->CurrentFont['desc']['Ascent'] > 0)) { - $font_ascent = ($this->CurrentFont['desc']['Ascent'] * $size / 1000); - } - if (isset($this->CurrentFont['desc']['Descent']) AND ($this->CurrentFont['desc']['Descent'] <= 0)) { - $font_descent = (- $this->CurrentFont['desc']['Descent'] * $size / 1000); - } - if (!isset($font_ascent) AND !isset($font_descent)) { - // core font - $font_ascent = 0.76 * $font_height; - $font_descent = $font_height - $font_ascent; - } elseif (!isset($font_descent)) { - $font_descent = $font_height - $font_ascent; - } elseif (!isset($font_ascent)) { - $font_ascent = $font_height - $font_descent; - } - $this->FontAscent = ($font_ascent / $this->k); - $this->FontDescent = ($font_descent / $this->k); - if ($out AND ($this->page > 0) AND (isset($this->CurrentFont['i'])) AND ($this->state == 2)) { - $this->_out(sprintf('BT /F%d %F Tf ET', $this->CurrentFont['i'], $this->FontSizePt)); - } - } - - /** - * Returns the bounding box of the current font in user units. - * @return array - * @public - * @since 5.9.152 (2012-03-23) - */ - public function getFontBBox() { - $fbbox = array(); - if (isset($this->CurrentFont['desc']['FontBBox'])) { - $tmpbbox = explode(' ', substr($this->CurrentFont['desc']['FontBBox'], 1, -1)); - $fbbox = array_map(array($this,'getAbsFontMeasure'), $tmpbbox); - } else { - // Find max width - if (isset($this->CurrentFont['desc']['MaxWidth'])) { - $maxw = $this->getAbsFontMeasure(intval($this->CurrentFont['desc']['MaxWidth'])); - } else { - $maxw = 0; - if (isset($this->CurrentFont['desc']['MissingWidth'])) { - $maxw = max($maxw, $this->CurrentFont['desc']['MissingWidth']); - } - if (isset($this->CurrentFont['desc']['AvgWidth'])) { - $maxw = max($maxw, $this->CurrentFont['desc']['AvgWidth']); - } - if (isset($this->CurrentFont['dw'])) { - $maxw = max($maxw, $this->CurrentFont['dw']); - } - foreach ($this->CurrentFont['cw'] as $char => $w) { - $maxw = max($maxw, $w); - } - if ($maxw == 0) { - $maxw = 600; - } - $maxw = $this->getAbsFontMeasure($maxw); - } - $fbbox = array(0, (0 - $this->FontDescent), $maxw, $this->FontAscent); - } - return $fbbox; - } - - /** - * Convert a relative font measure into absolute value. - * @param $s (int) Font measure. - * @return float Absolute measure. - * @since 5.9.186 (2012-09-13) - */ - public function getAbsFontMeasure($s) { - return ($s * $this->FontSize / 1000); - } - - /** - * Returns the glyph bounding box of the specified character in the current font in user units. - * @param $char (int) Input character code. - * @return mixed array(xMin, yMin, xMax, yMax) or FALSE if not defined. - * @since 5.9.186 (2012-09-13) - */ - public function getCharBBox($char) { - $c = intval($char); - if (isset($this->CurrentFont['cw'][$c])) { - // glyph is defined ... use zero width & height for glyphs without outlines - $result = array(0,0,0,0); - if (isset($this->CurrentFont['cbbox'][$c])) { - $result = $this->CurrentFont['cbbox'][$c]; - } - return array_map(array($this,'getAbsFontMeasure'), $result); - } - return false; - } - - /** - * Return the font descent value - * @param $font (string) font name - * @param $style (string) font style - * @param $size (float) The size (in points) - * @return int font descent - * @public - * @author Nicola Asuni - * @since 4.9.003 (2010-03-30) - */ - public function getFontDescent($font, $style='', $size=0) { - $fontdata = $this->AddFont($font, $style); - $fontinfo = $this->getFontBuffer($fontdata['fontkey']); - if (isset($fontinfo['desc']['Descent']) AND ($fontinfo['desc']['Descent'] <= 0)) { - $descent = (- $fontinfo['desc']['Descent'] * $size / 1000); - } else { - $descent = (1.219 * 0.24 * $size); - } - return ($descent / $this->k); - } - - /** - * Return the font ascent value. - * @param $font (string) font name - * @param $style (string) font style - * @param $size (float) The size (in points) - * @return int font ascent - * @public - * @author Nicola Asuni - * @since 4.9.003 (2010-03-30) - */ - public function getFontAscent($font, $style='', $size=0) { - $fontdata = $this->AddFont($font, $style); - $fontinfo = $this->getFontBuffer($fontdata['fontkey']); - if (isset($fontinfo['desc']['Ascent']) AND ($fontinfo['desc']['Ascent'] > 0)) { - $ascent = ($fontinfo['desc']['Ascent'] * $size / 1000); - } else { - $ascent = 1.219 * 0.76 * $size; - } - return ($ascent / $this->k); - } - - /** - * Return true in the character is present in the specified font. - * @param $char (mixed) Character to check (integer value or string) - * @param $font (string) Font name (family name). - * @param $style (string) Font style. - * @return (boolean) true if the char is defined, false otherwise. - * @public - * @since 5.9.153 (2012-03-28) - */ - public function isCharDefined($char, $font='', $style='') { - if (is_string($char)) { - // get character code - $char = TCPDF_FONTS::UTF8StringToArray($char, $this->isunicode, $this->CurrentFont); - $char = $char[0]; - } - if (TCPDF_STATIC::empty_string($font)) { - if (TCPDF_STATIC::empty_string($style)) { - return (isset($this->CurrentFont['cw'][intval($char)])); - } - $font = $this->FontFamily; - } - $fontdata = $this->AddFont($font, $style); - $fontinfo = $this->getFontBuffer($fontdata['fontkey']); - return (isset($fontinfo['cw'][intval($char)])); - } - - /** - * Replace missing font characters on selected font with specified substitutions. - * @param $text (string) Text to process. - * @param $font (string) Font name (family name). - * @param $style (string) Font style. - * @param $subs (array) Array of possible character substitutions. The key is the character to check (integer value) and the value is a single intege value or an array of possible substitutes. - * @return (string) Processed text. - * @public - * @since 5.9.153 (2012-03-28) - */ - public function replaceMissingChars($text, $font='', $style='', $subs=array()) { - if (empty($subs)) { - return $text; - } - if (TCPDF_STATIC::empty_string($font)) { - $font = $this->FontFamily; - } - $fontdata = $this->AddFont($font, $style); - $fontinfo = $this->getFontBuffer($fontdata['fontkey']); - $uniarr = TCPDF_FONTS::UTF8StringToArray($text, $this->isunicode, $this->CurrentFont); - foreach ($uniarr as $k => $chr) { - if (!isset($fontinfo['cw'][$chr])) { - // this character is missing on the selected font - if (isset($subs[$chr])) { - // we have available substitutions - if (is_array($subs[$chr])) { - foreach($subs[$chr] as $s) { - if (isset($fontinfo['cw'][$s])) { - $uniarr[$k] = $s; - break; - } - } - } elseif (isset($fontinfo['cw'][$subs[$chr]])) { - $uniarr[$k] = $subs[$chr]; - } - } - } - } - return TCPDF_FONTS::UniArrSubString(TCPDF_FONTS::UTF8ArrayToUniArray($uniarr, $this->isunicode)); - } - - /** - * Defines the default monospaced font. - * @param $font (string) Font name. - * @public - * @since 4.5.025 - */ - public function SetDefaultMonospacedFont($font) { - $this->default_monospaced_font = $font; - } - - /** - * Creates a new internal link and returns its identifier. An internal link is a clickable area which directs to another place within the document.
      - * The identifier can then be passed to Cell(), Write(), Image() or Link(). The destination is defined with SetLink(). - * @public - * @since 1.5 - * @see Cell(), Write(), Image(), Link(), SetLink() - */ - public function AddLink() { - // create a new internal link - $n = count($this->links) + 1; - $this->links[$n] = array('p' => 0, 'y' => 0, 'f' => false); - return $n; - } - - /** - * Defines the page and position a link points to. - * @param $link (int) The link identifier returned by AddLink() - * @param $y (float) Ordinate of target position; -1 indicates the current position. The default value is 0 (top of page) - * @param $page (int) Number of target page; -1 indicates the current page (default value). If you prefix a page number with the * character, then this page will not be changed when adding/deleting/moving pages. - * @public - * @since 1.5 - * @see AddLink() - */ - public function SetLink($link, $y=0, $page=-1) { - $fixed = false; - if (!empty($page) AND ($page[0] == '*')) { - $page = intval(substr($page, 1)); - // this page number will not be changed when moving/add/deleting pages - $fixed = true; - } - if ($page < 0) { - $page = $this->page; - } - if ($y == -1) { - $y = $this->y; - } - $this->links[$link] = array('p' => $page, 'y' => $y, 'f' => $fixed); - } - - /** - * Puts a link on a rectangular area of the page. - * Text or image links are generally put via Cell(), Write() or Image(), but this method can be useful for instance to define a clickable area inside an image. - * @param $x (float) Abscissa of the upper-left corner of the rectangle - * @param $y (float) Ordinate of the upper-left corner of the rectangle - * @param $w (float) Width of the rectangle - * @param $h (float) Height of the rectangle - * @param $link (mixed) URL or identifier returned by AddLink() - * @param $spaces (int) number of spaces on the text to link - * @public - * @since 1.5 - * @see AddLink(), Annotation(), Cell(), Write(), Image() - */ - public function Link($x, $y, $w, $h, $link, $spaces=0) { - $this->Annotation($x, $y, $w, $h, $link, array('Subtype'=>'Link'), $spaces); - } - - /** - * Puts a markup annotation on a rectangular area of the page. - * !!!!THE ANNOTATION SUPPORT IS NOT YET FULLY IMPLEMENTED !!!! - * @param $x (float) Abscissa of the upper-left corner of the rectangle - * @param $y (float) Ordinate of the upper-left corner of the rectangle - * @param $w (float) Width of the rectangle - * @param $h (float) Height of the rectangle - * @param $text (string) annotation text or alternate content - * @param $opt (array) array of options (see section 8.4 of PDF reference 1.7). - * @param $spaces (int) number of spaces on the text to link - * @public - * @since 4.0.018 (2008-08-06) - */ - public function Annotation($x, $y, $w, $h, $text, $opt=array('Subtype'=>'Text'), $spaces=0) { - if ($this->inxobj) { - // store parameters for later use on template - $this->xobjects[$this->xobjid]['annotations'][] = array('x' => $x, 'y' => $y, 'w' => $w, 'h' => $h, 'text' => $text, 'opt' => $opt, 'spaces' => $spaces); - return; - } - if ($x === '') { - $x = $this->x; - } - if ($y === '') { - $y = $this->y; - } - // check page for no-write regions and adapt page margins if necessary - list($x, $y) = $this->checkPageRegions($h, $x, $y); - // recalculate coordinates to account for graphic transformations - if (isset($this->transfmatrix) AND !empty($this->transfmatrix)) { - for ($i=$this->transfmatrix_key; $i > 0; --$i) { - $maxid = count($this->transfmatrix[$i]) - 1; - for ($j=$maxid; $j >= 0; --$j) { - $ctm = $this->transfmatrix[$i][$j]; - if (isset($ctm['a'])) { - $x = $x * $this->k; - $y = ($this->h - $y) * $this->k; - $w = $w * $this->k; - $h = $h * $this->k; - // top left - $xt = $x; - $yt = $y; - $x1 = ($ctm['a'] * $xt) + ($ctm['c'] * $yt) + $ctm['e']; - $y1 = ($ctm['b'] * $xt) + ($ctm['d'] * $yt) + $ctm['f']; - // top right - $xt = $x + $w; - $yt = $y; - $x2 = ($ctm['a'] * $xt) + ($ctm['c'] * $yt) + $ctm['e']; - $y2 = ($ctm['b'] * $xt) + ($ctm['d'] * $yt) + $ctm['f']; - // bottom left - $xt = $x; - $yt = $y - $h; - $x3 = ($ctm['a'] * $xt) + ($ctm['c'] * $yt) + $ctm['e']; - $y3 = ($ctm['b'] * $xt) + ($ctm['d'] * $yt) + $ctm['f']; - // bottom right - $xt = $x + $w; - $yt = $y - $h; - $x4 = ($ctm['a'] * $xt) + ($ctm['c'] * $yt) + $ctm['e']; - $y4 = ($ctm['b'] * $xt) + ($ctm['d'] * $yt) + $ctm['f']; - // new coordinates (rectangle area) - $x = min($x1, $x2, $x3, $x4); - $y = max($y1, $y2, $y3, $y4); - $w = (max($x1, $x2, $x3, $x4) - $x) / $this->k; - $h = ($y - min($y1, $y2, $y3, $y4)) / $this->k; - $x = $x / $this->k; - $y = $this->h - ($y / $this->k); - } - } - } - } - if ($this->page <= 0) { - $page = 1; - } else { - $page = $this->page; - } - if (!isset($this->PageAnnots[$page])) { - $this->PageAnnots[$page] = array(); - } - $this->PageAnnots[$page][] = array('n' => ++$this->n, 'x' => $x, 'y' => $y, 'w' => $w, 'h' => $h, 'txt' => $text, 'opt' => $opt, 'numspaces' => $spaces); - if (!$this->pdfa_mode || ($this->pdfa_mode && $this->pdfa_version == 3)) { - if ((($opt['Subtype'] == 'FileAttachment') OR ($opt['Subtype'] == 'Sound')) AND (!TCPDF_STATIC::empty_string($opt['FS'])) - AND (@TCPDF_STATIC::file_exists($opt['FS']) OR TCPDF_STATIC::isValidURL($opt['FS'])) - AND (!isset($this->embeddedfiles[basename($opt['FS'])]))) { - $this->embeddedfiles[basename($opt['FS'])] = array('f' => ++$this->n, 'n' => ++$this->n, 'file' => $opt['FS']); - } - } - // Add widgets annotation's icons - if (isset($opt['mk']['i']) AND @TCPDF_STATIC::file_exists($opt['mk']['i'])) { - $this->Image($opt['mk']['i'], '', '', 10, 10, '', '', '', false, 300, '', false, false, 0, false, true); - } - if (isset($opt['mk']['ri']) AND @TCPDF_STATIC::file_exists($opt['mk']['ri'])) { - $this->Image($opt['mk']['ri'], '', '', 0, 0, '', '', '', false, 300, '', false, false, 0, false, true); - } - if (isset($opt['mk']['ix']) AND @TCPDF_STATIC::file_exists($opt['mk']['ix'])) { - $this->Image($opt['mk']['ix'], '', '', 0, 0, '', '', '', false, 300, '', false, false, 0, false, true); - } - } - - /** - * Embedd the attached files. - * @since 4.4.000 (2008-12-07) - * @protected - * @see Annotation() - */ - protected function _putEmbeddedFiles() { - if ($this->pdfa_mode && $this->pdfa_version != 3) { - // embedded files are not allowed in PDF/A mode version 1 and 2 - return; - } - reset($this->embeddedfiles); - foreach ($this->embeddedfiles as $filename => $filedata) { - $data = TCPDF_STATIC::fileGetContents($filedata['file']); - if ($data !== FALSE) { - $rawsize = strlen($data); - if ($rawsize > 0) { - // update name tree - $this->efnames[$filename] = $filedata['f'].' 0 R'; - // embedded file specification object - $out = $this->_getobj($filedata['f'])."\n"; - $out .= '<_datastring($filename, $filedata['f']); - $out .= ' /UF '.$this->_datastring($filename, $filedata['f']); - $out .= ' /AFRelationship /Source'; - $out .= ' /EF <> >>'; - $out .= "\n".'endobj'; - $this->_out($out); - // embedded file object - $filter = ''; - if ($this->compress) { - $data = gzcompress($data); - $filter = ' /Filter /FlateDecode'; - } - - if ($this->pdfa_version == 3) { - $filter = ' /Subtype /text#2Fxml'; - } - - $stream = $this->_getrawstream($data, $filedata['n']); - $out = $this->_getobj($filedata['n'])."\n"; - $out .= '<< /Type /EmbeddedFile'.$filter.' /Length '.strlen($stream).' /Params <> >>'; - $out .= ' stream'."\n".$stream."\n".'endstream'; - $out .= "\n".'endobj'; - $this->_out($out); - } - } - } - } - - /** - * Prints a text cell at the specified position. - * This method allows to place a string precisely on the page. - * @param $x (float) Abscissa of the cell origin - * @param $y (float) Ordinate of the cell origin - * @param $txt (string) String to print - * @param $fstroke (int) outline size in user units (false = disable) - * @param $fclip (boolean) if true activate clipping mode (you must call StartTransform() before this function and StopTransform() to stop the clipping tranformation). - * @param $ffill (boolean) if true fills the text - * @param $border (mixed) Indicates if borders must be drawn around the cell. The value can be a number:
      • 0: no border (default)
      • 1: frame
      or a string containing some or all of the following characters (in any order):
      • L: left
      • T: top
      • R: right
      • B: bottom
      or an array of line styles for each border group - for example: array('LTRB' => array('width' => 2, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0))) - * @param $ln (int) Indicates where the current position should go after the call. Possible values are:
      • 0: to the right (or left for RTL languages)
      • 1: to the beginning of the next line
      • 2: below
      Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value: 0. - * @param $align (string) Allows to center or align the text. Possible values are:
      • L or empty string: left align (default value)
      • C: center
      • R: right align
      • J: justify
      - * @param $fill (boolean) Indicates if the cell background must be painted (true) or transparent (false). - * @param $link (mixed) URL or identifier returned by AddLink(). - * @param $stretch (int) font stretch mode:
      • 0 = disabled
      • 1 = horizontal scaling only if text is larger than cell width
      • 2 = forced horizontal scaling to fit cell width
      • 3 = character spacing only if text is larger than cell width
      • 4 = forced character spacing to fit cell width
      General font stretching and scaling values will be preserved when possible. - * @param $ignore_min_height (boolean) if true ignore automatic minimum height value. - * @param $calign (string) cell vertical alignment relative to the specified Y value. Possible values are:
      • T : cell top
      • A : font top
      • L : font baseline
      • D : font bottom
      • B : cell bottom
      - * @param $valign (string) text vertical alignment inside the cell. Possible values are:
      • T : top
      • C : center
      • B : bottom
      - * @param $rtloff (boolean) if true uses the page top-left corner as origin of axis for $x and $y initial position. - * @public - * @since 1.0 - * @see Cell(), Write(), MultiCell(), WriteHTML(), WriteHTMLCell() - */ - public function Text($x, $y, $txt, $fstroke=false, $fclip=false, $ffill=true, $border=0, $ln=0, $align='', $fill=false, $link='', $stretch=0, $ignore_min_height=false, $calign='T', $valign='M', $rtloff=false) { - $textrendermode = $this->textrendermode; - $textstrokewidth = $this->textstrokewidth; - $this->setTextRenderingMode($fstroke, $ffill, $fclip); - $this->SetXY($x, $y, $rtloff); - $this->Cell(0, 0, $txt, $border, $ln, $align, $fill, $link, $stretch, $ignore_min_height, $calign, $valign); - // restore previous rendering mode - $this->textrendermode = $textrendermode; - $this->textstrokewidth = $textstrokewidth; - } - - /** - * Whenever a page break condition is met, the method is called, and the break is issued or not depending on the returned value. - * The default implementation returns a value according to the mode selected by SetAutoPageBreak().
      - * This method is called automatically and should not be called directly by the application. - * @return boolean - * @public - * @since 1.4 - * @see SetAutoPageBreak() - */ - public function AcceptPageBreak() { - if ($this->num_columns > 1) { - // multi column mode - if ($this->current_column < ($this->num_columns - 1)) { - // go to next column - $this->selectColumn($this->current_column + 1); - } elseif ($this->AutoPageBreak) { - // add a new page - $this->AddPage(); - // set first column - $this->selectColumn(0); - } - // avoid page breaking from checkPageBreak() - return false; - } - return $this->AutoPageBreak; - } - - /** - * Add page if needed. - * @param $h (float) Cell height. Default value: 0. - * @param $y (mixed) starting y position, leave empty for current position. - * @param $addpage (boolean) if true add a page, otherwise only return the true/false state - * @return boolean true in case of page break, false otherwise. - * @since 3.2.000 (2008-07-01) - * @protected - */ - protected function checkPageBreak($h=0, $y='', $addpage=true) { - if (TCPDF_STATIC::empty_string($y)) { - $y = $this->y; - } - $current_page = $this->page; - if ((($y + $h) > $this->PageBreakTrigger) AND ($this->inPageBody()) AND ($this->AcceptPageBreak())) { - if ($addpage) { - //Automatic page break - $x = $this->x; - $this->AddPage($this->CurOrientation); - $this->y = $this->tMargin; - $oldpage = $this->page - 1; - if ($this->rtl) { - if ($this->pagedim[$this->page]['orm'] != $this->pagedim[$oldpage]['orm']) { - $this->x = $x - ($this->pagedim[$this->page]['orm'] - $this->pagedim[$oldpage]['orm']); - } else { - $this->x = $x; - } - } else { - if ($this->pagedim[$this->page]['olm'] != $this->pagedim[$oldpage]['olm']) { - $this->x = $x + ($this->pagedim[$this->page]['olm'] - $this->pagedim[$oldpage]['olm']); - } else { - $this->x = $x; - } - } - } - return true; - } - if ($current_page != $this->page) { - // account for columns mode - return true; - } - return false; - } - - /** - * Prints a cell (rectangular area) with optional borders, background color and character string. The upper-left corner of the cell corresponds to the current position. The text can be aligned or centered. After the call, the current position moves to the right or to the next line. It is possible to put a link on the text.
      - * If automatic page breaking is enabled and the cell goes beyond the limit, a page break is done before outputting. - * @param $w (float) Cell width. If 0, the cell extends up to the right margin. - * @param $h (float) Cell height. Default value: 0. - * @param $txt (string) String to print. Default value: empty string. - * @param $border (mixed) Indicates if borders must be drawn around the cell. The value can be a number:
      • 0: no border (default)
      • 1: frame
      or a string containing some or all of the following characters (in any order):
      • L: left
      • T: top
      • R: right
      • B: bottom
      or an array of line styles for each border group - for example: array('LTRB' => array('width' => 2, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0))) - * @param $ln (int) Indicates where the current position should go after the call. Possible values are:
      • 0: to the right (or left for RTL languages)
      • 1: to the beginning of the next line
      • 2: below
      Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value: 0. - * @param $align (string) Allows to center or align the text. Possible values are:
      • L or empty string: left align (default value)
      • C: center
      • R: right align
      • J: justify
      - * @param $fill (boolean) Indicates if the cell background must be painted (true) or transparent (false). - * @param $link (mixed) URL or identifier returned by AddLink(). - * @param $stretch (int) font stretch mode:
      • 0 = disabled
      • 1 = horizontal scaling only if text is larger than cell width
      • 2 = forced horizontal scaling to fit cell width
      • 3 = character spacing only if text is larger than cell width
      • 4 = forced character spacing to fit cell width
      General font stretching and scaling values will be preserved when possible. - * @param $ignore_min_height (boolean) if true ignore automatic minimum height value. - * @param $calign (string) cell vertical alignment relative to the specified Y value. Possible values are:
      • T : cell top
      • C : center
      • B : cell bottom
      • A : font top
      • L : font baseline
      • D : font bottom
      - * @param $valign (string) text vertical alignment inside the cell. Possible values are:
      • T : top
      • C : center
      • B : bottom
      - * @public - * @since 1.0 - * @see SetFont(), SetDrawColor(), SetFillColor(), SetTextColor(), SetLineWidth(), AddLink(), Ln(), MultiCell(), Write(), SetAutoPageBreak() - */ - public function Cell($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=false, $link='', $stretch=0, $ignore_min_height=false, $calign='T', $valign='M') { - $prev_cell_margin = $this->cell_margin; - $prev_cell_padding = $this->cell_padding; - $this->adjustCellPadding($border); - if (!$ignore_min_height) { - $min_cell_height = $this->getCellHeight($this->FontSize); - if ($h < $min_cell_height) { - $h = $min_cell_height; - } - } - $this->checkPageBreak($h + $this->cell_margin['T'] + $this->cell_margin['B']); - // apply text shadow if enabled - if ($this->txtshadow['enabled']) { - // save data - $x = $this->x; - $y = $this->y; - $bc = $this->bgcolor; - $fc = $this->fgcolor; - $sc = $this->strokecolor; - $alpha = $this->alpha; - // print shadow - $this->x += $this->txtshadow['depth_w']; - $this->y += $this->txtshadow['depth_h']; - $this->SetFillColorArray($this->txtshadow['color']); - $this->SetTextColorArray($this->txtshadow['color']); - $this->SetDrawColorArray($this->txtshadow['color']); - if ($this->txtshadow['opacity'] != $alpha['CA']) { - $this->setAlpha($this->txtshadow['opacity'], $this->txtshadow['blend_mode']); - } - if ($this->state == 2) { - $this->_out($this->getCellCode($w, $h, $txt, $border, $ln, $align, $fill, $link, $stretch, true, $calign, $valign)); - } - //restore data - $this->x = $x; - $this->y = $y; - $this->SetFillColorArray($bc); - $this->SetTextColorArray($fc); - $this->SetDrawColorArray($sc); - if ($this->txtshadow['opacity'] != $alpha['CA']) { - $this->setAlpha($alpha['CA'], $alpha['BM'], $alpha['ca'], $alpha['AIS']); - } - } - if ($this->state == 2) { - $this->_out($this->getCellCode($w, $h, $txt, $border, $ln, $align, $fill, $link, $stretch, true, $calign, $valign)); - } - $this->cell_padding = $prev_cell_padding; - $this->cell_margin = $prev_cell_margin; - } - - /** - * Returns the PDF string code to print a cell (rectangular area) with optional borders, background color and character string. The upper-left corner of the cell corresponds to the current position. The text can be aligned or centered. After the call, the current position moves to the right or to the next line. It is possible to put a link on the text.
      - * If automatic page breaking is enabled and the cell goes beyond the limit, a page break is done before outputting. - * @param $w (float) Cell width. If 0, the cell extends up to the right margin. - * @param $h (float) Cell height. Default value: 0. - * @param $txt (string) String to print. Default value: empty string. - * @param $border (mixed) Indicates if borders must be drawn around the cell. The value can be a number:
      • 0: no border (default)
      • 1: frame
      or a string containing some or all of the following characters (in any order):
      • L: left
      • T: top
      • R: right
      • B: bottom
      or an array of line styles for each border group - for example: array('LTRB' => array('width' => 2, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0))) - * @param $ln (int) Indicates where the current position should go after the call. Possible values are:
      • 0: to the right (or left for RTL languages)
      • 1: to the beginning of the next line
      • 2: below
      Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value: 0. - * @param $align (string) Allows to center or align the text. Possible values are:
      • L or empty string: left align (default value)
      • C: center
      • R: right align
      • J: justify
      - * @param $fill (boolean) Indicates if the cell background must be painted (true) or transparent (false). - * @param $link (mixed) URL or identifier returned by AddLink(). - * @param $stretch (int) font stretch mode:
      • 0 = disabled
      • 1 = horizontal scaling only if text is larger than cell width
      • 2 = forced horizontal scaling to fit cell width
      • 3 = character spacing only if text is larger than cell width
      • 4 = forced character spacing to fit cell width
      General font stretching and scaling values will be preserved when possible. - * @param $ignore_min_height (boolean) if true ignore automatic minimum height value. - * @param $calign (string) cell vertical alignment relative to the specified Y value. Possible values are:
      • T : cell top
      • C : center
      • B : cell bottom
      • A : font top
      • L : font baseline
      • D : font bottom
      - * @param $valign (string) text vertical alignment inside the cell. Possible values are:
      • T : top
      • M : middle
      • B : bottom
      - * @return string containing cell code - * @protected - * @since 1.0 - * @see Cell() - */ - protected function getCellCode($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=false, $link='', $stretch=0, $ignore_min_height=false, $calign='T', $valign='M') { - // replace 'NO-BREAK SPACE' (U+00A0) character with a simple space - $txt = str_replace(TCPDF_FONTS::unichr(160, $this->isunicode), ' ', $txt); - $prev_cell_margin = $this->cell_margin; - $prev_cell_padding = $this->cell_padding; - $txt = TCPDF_STATIC::removeSHY($txt, $this->isunicode); - $rs = ''; //string to be returned - $this->adjustCellPadding($border); - if (!$ignore_min_height) { - $min_cell_height = $this->getCellHeight($this->FontSize); - if ($h < $min_cell_height) { - $h = $min_cell_height; - } - } - $k = $this->k; - // check page for no-write regions and adapt page margins if necessary - list($this->x, $this->y) = $this->checkPageRegions($h, $this->x, $this->y); - if ($this->rtl) { - $x = $this->x - $this->cell_margin['R']; - } else { - $x = $this->x + $this->cell_margin['L']; - } - $y = $this->y + $this->cell_margin['T']; - $prev_font_stretching = $this->font_stretching; - $prev_font_spacing = $this->font_spacing; - // cell vertical alignment - switch ($calign) { - case 'A': { - // font top - switch ($valign) { - case 'T': { - // top - $y -= $this->cell_padding['T']; - break; - } - case 'B': { - // bottom - $y -= ($h - $this->cell_padding['B'] - $this->FontAscent - $this->FontDescent); - break; - } - default: - case 'C': - case 'M': { - // center - $y -= (($h - $this->FontAscent - $this->FontDescent) / 2); - break; - } - } - break; - } - case 'L': { - // font baseline - switch ($valign) { - case 'T': { - // top - $y -= ($this->cell_padding['T'] + $this->FontAscent); - break; - } - case 'B': { - // bottom - $y -= ($h - $this->cell_padding['B'] - $this->FontDescent); - break; - } - default: - case 'C': - case 'M': { - // center - $y -= (($h + $this->FontAscent - $this->FontDescent) / 2); - break; - } - } - break; - } - case 'D': { - // font bottom - switch ($valign) { - case 'T': { - // top - $y -= ($this->cell_padding['T'] + $this->FontAscent + $this->FontDescent); - break; - } - case 'B': { - // bottom - $y -= ($h - $this->cell_padding['B']); - break; - } - default: - case 'C': - case 'M': { - // center - $y -= (($h + $this->FontAscent + $this->FontDescent) / 2); - break; - } - } - break; - } - case 'B': { - // cell bottom - $y -= $h; - break; - } - case 'C': - case 'M': { - // cell center - $y -= ($h / 2); - break; - } - default: - case 'T': { - // cell top - break; - } - } - // text vertical alignment - switch ($valign) { - case 'T': { - // top - $yt = $y + $this->cell_padding['T']; - break; - } - case 'B': { - // bottom - $yt = $y + $h - $this->cell_padding['B'] - $this->FontAscent - $this->FontDescent; - break; - } - default: - case 'C': - case 'M': { - // center - $yt = $y + (($h - $this->FontAscent - $this->FontDescent) / 2); - break; - } - } - $basefonty = $yt + $this->FontAscent; - if (TCPDF_STATIC::empty_string($w) OR ($w <= 0)) { - if ($this->rtl) { - $w = $x - $this->lMargin; - } else { - $w = $this->w - $this->rMargin - $x; - } - } - $s = ''; - // fill and borders - if (is_string($border) AND (strlen($border) == 4)) { - // full border - $border = 1; - } - if ($fill OR ($border == 1)) { - if ($fill) { - $op = ($border == 1) ? 'B' : 'f'; - } else { - $op = 'S'; - } - if ($this->rtl) { - $xk = (($x - $w) * $k); - } else { - $xk = ($x * $k); - } - $s .= sprintf('%F %F %F %F re %s ', $xk, (($this->h - $y) * $k), ($w * $k), (-$h * $k), $op); - } - // draw borders - $s .= $this->getCellBorder($x, $y, $w, $h, $border); - if ($txt != '') { - $txt2 = $txt; - if ($this->isunicode) { - if (($this->CurrentFont['type'] == 'core') OR ($this->CurrentFont['type'] == 'TrueType') OR ($this->CurrentFont['type'] == 'Type1')) { - $txt2 = TCPDF_FONTS::UTF8ToLatin1($txt2, $this->isunicode, $this->CurrentFont); - } else { - $unicode = TCPDF_FONTS::UTF8StringToArray($txt, $this->isunicode, $this->CurrentFont); // array of UTF-8 unicode values - $unicode = TCPDF_FONTS::utf8Bidi($unicode, '', $this->tmprtl, $this->isunicode, $this->CurrentFont); - // replace thai chars (if any) - if (defined('K_THAI_TOPCHARS') AND (K_THAI_TOPCHARS == true)) { - // number of chars - $numchars = count($unicode); - // po pla, for far, for fan - $longtail = array(0x0e1b, 0x0e1d, 0x0e1f); - // do chada, to patak - $lowtail = array(0x0e0e, 0x0e0f); - // mai hun arkad, sara i, sara ii, sara ue, sara uee - $upvowel = array(0x0e31, 0x0e34, 0x0e35, 0x0e36, 0x0e37); - // mai ek, mai tho, mai tri, mai chattawa, karan - $tonemark = array(0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c); - // sara u, sara uu, pinthu - $lowvowel = array(0x0e38, 0x0e39, 0x0e3a); - $output = array(); - for ($i = 0; $i < $numchars; $i++) { - if (($unicode[$i] >= 0x0e00) && ($unicode[$i] <= 0x0e5b)) { - $ch0 = $unicode[$i]; - $ch1 = ($i > 0) ? $unicode[($i - 1)] : 0; - $ch2 = ($i > 1) ? $unicode[($i - 2)] : 0; - $chn = ($i < ($numchars - 1)) ? $unicode[($i + 1)] : 0; - if (in_array($ch0, $tonemark)) { - if ($chn == 0x0e33) { - // sara um - if (in_array($ch1, $longtail)) { - // tonemark at upper left - $output[] = $this->replaceChar($ch0, (0xf713 + $ch0 - 0x0e48)); - } else { - // tonemark at upper right (normal position) - $output[] = $ch0; - } - } elseif (in_array($ch1, $longtail) OR (in_array($ch2, $longtail) AND in_array($ch1, $lowvowel))) { - // tonemark at lower left - $output[] = $this->replaceChar($ch0, (0xf705 + $ch0 - 0x0e48)); - } elseif (in_array($ch1, $upvowel)) { - if (in_array($ch2, $longtail)) { - // tonemark at upper left - $output[] = $this->replaceChar($ch0, (0xf713 + $ch0 - 0x0e48)); - } else { - // tonemark at upper right (normal position) - $output[] = $ch0; - } - } else { - // tonemark at lower right - $output[] = $this->replaceChar($ch0, (0xf70a + $ch0 - 0x0e48)); - } - } elseif (($ch0 == 0x0e33) AND (in_array($ch1, $longtail) OR (in_array($ch2, $longtail) AND in_array($ch1, $tonemark)))) { - // add lower left nikhahit and sara aa - if ($this->isCharDefined(0xf711) AND $this->isCharDefined(0x0e32)) { - $output[] = 0xf711; - $this->CurrentFont['subsetchars'][0xf711] = true; - $output[] = 0x0e32; - $this->CurrentFont['subsetchars'][0x0e32] = true; - } else { - $output[] = $ch0; - } - } elseif (in_array($ch1, $longtail)) { - if ($ch0 == 0x0e31) { - // lower left mai hun arkad - $output[] = $this->replaceChar($ch0, 0xf710); - } elseif (in_array($ch0, $upvowel)) { - // lower left - $output[] = $this->replaceChar($ch0, (0xf701 + $ch0 - 0x0e34)); - } elseif ($ch0 == 0x0e47) { - // lower left mai tai koo - $output[] = $this->replaceChar($ch0, 0xf712); - } else { - // normal character - $output[] = $ch0; - } - } elseif (in_array($ch1, $lowtail) AND in_array($ch0, $lowvowel)) { - // lower vowel - $output[] = $this->replaceChar($ch0, (0xf718 + $ch0 - 0x0e38)); - } elseif (($ch0 == 0x0e0d) AND in_array($chn, $lowvowel)) { - // yo ying without lower part - $output[] = $this->replaceChar($ch0, 0xf70f); - } elseif (($ch0 == 0x0e10) AND in_array($chn, $lowvowel)) { - // tho santan without lower part - $output[] = $this->replaceChar($ch0, 0xf700); - } else { - $output[] = $ch0; - } - } else { - // non-thai character - $output[] = $unicode[$i]; - } - } - $unicode = $output; - // update font subsetchars - $this->setFontSubBuffer($this->CurrentFont['fontkey'], 'subsetchars', $this->CurrentFont['subsetchars']); - } // end of K_THAI_TOPCHARS - $txt2 = TCPDF_FONTS::arrUTF8ToUTF16BE($unicode, false); - } - } - $txt2 = TCPDF_STATIC::_escape($txt2); - // get current text width (considering general font stretching and spacing) - $txwidth = $this->GetStringWidth($txt); - $width = $txwidth; - // check for stretch mode - if ($stretch > 0) { - // calculate ratio between cell width and text width - if ($width <= 0) { - $ratio = 1; - } else { - $ratio = (($w - $this->cell_padding['L'] - $this->cell_padding['R']) / $width); - } - // check if stretching is required - if (($ratio < 1) OR (($ratio > 1) AND (($stretch % 2) == 0))) { - // the text will be stretched to fit cell width - if ($stretch > 2) { - // set new character spacing - $this->font_spacing += ($w - $this->cell_padding['L'] - $this->cell_padding['R'] - $width) / (max(($this->GetNumChars($txt) - 1), 1) * ($this->font_stretching / 100)); - } else { - // set new horizontal stretching - $this->font_stretching *= $ratio; - } - // recalculate text width (the text fills the entire cell) - $width = $w - $this->cell_padding['L'] - $this->cell_padding['R']; - // reset alignment - $align = ''; - } - } - if ($this->font_stretching != 100) { - // apply font stretching - $rs .= sprintf('BT %F Tz ET ', $this->font_stretching); - } - if ($this->font_spacing != 0) { - // increase/decrease font spacing - $rs .= sprintf('BT %F Tc ET ', ($this->font_spacing * $this->k)); - } - if ($this->ColorFlag AND ($this->textrendermode < 4)) { - $s .= 'q '.$this->TextColor.' '; - } - // rendering mode - $s .= sprintf('BT %d Tr %F w ET ', $this->textrendermode, ($this->textstrokewidth * $this->k)); - // count number of spaces - $ns = substr_count($txt, chr(32)); - // Justification - $spacewidth = 0; - if (($align == 'J') AND ($ns > 0)) { - if ($this->isUnicodeFont()) { - // get string width without spaces - $width = $this->GetStringWidth(str_replace(' ', '', $txt)); - // calculate average space width - $spacewidth = -1000 * ($w - $width - $this->cell_padding['L'] - $this->cell_padding['R']) / ($ns?$ns:1) / ($this->FontSize?$this->FontSize:1); - if ($this->font_stretching != 100) { - // word spacing is affected by stretching - $spacewidth /= ($this->font_stretching / 100); - } - // set word position to be used with TJ operator - $txt2 = str_replace(chr(0).chr(32), ') '.sprintf('%F', $spacewidth).' (', $txt2); - $unicode_justification = true; - } else { - // get string width - $width = $txwidth; - // new space width - $spacewidth = (($w - $width - $this->cell_padding['L'] - $this->cell_padding['R']) / ($ns?$ns:1)) * $this->k; - if ($this->font_stretching != 100) { - // word spacing (Tw) is affected by stretching - $spacewidth /= ($this->font_stretching / 100); - } - // set word spacing - $rs .= sprintf('BT %F Tw ET ', $spacewidth); - } - $width = $w - $this->cell_padding['L'] - $this->cell_padding['R']; - } - // replace carriage return characters - $txt2 = str_replace("\r", ' ', $txt2); - switch ($align) { - case 'C': { - $dx = ($w - $width) / 2; - break; - } - case 'R': { - if ($this->rtl) { - $dx = $this->cell_padding['R']; - } else { - $dx = $w - $width - $this->cell_padding['R']; - } - break; - } - case 'L': { - if ($this->rtl) { - $dx = $w - $width - $this->cell_padding['L']; - } else { - $dx = $this->cell_padding['L']; - } - break; - } - case 'J': - default: { - if ($this->rtl) { - $dx = $this->cell_padding['R']; - } else { - $dx = $this->cell_padding['L']; - } - break; - } - } - if ($this->rtl) { - $xdx = $x - $dx - $width; - } else { - $xdx = $x + $dx; - } - $xdk = $xdx * $k; - // print text - $s .= sprintf('BT %F %F Td [(%s)] TJ ET', $xdk, (($this->h - $basefonty) * $k), $txt2); - if (isset($uniblock)) { - // print overlapping characters as separate string - $xshift = 0; // horizontal shift - $ty = (($this->h - $basefonty + (0.2 * $this->FontSize)) * $k); - $spw = (($w - $txwidth - $this->cell_padding['L'] - $this->cell_padding['R']) / ($ns?$ns:1)); - foreach ($uniblock as $uk => $uniarr) { - if (($uk % 2) == 0) { - // x space to skip - if ($spacewidth != 0) { - // justification shift - $xshift += (count(array_keys($uniarr, 32)) * $spw); - } - $xshift += $this->GetArrStringWidth($uniarr); // + shift justification - } else { - // character to print - $topchr = TCPDF_FONTS::arrUTF8ToUTF16BE($uniarr, false); - $topchr = TCPDF_STATIC::_escape($topchr); - $s .= sprintf(' BT %F %F Td [(%s)] TJ ET', ($xdk + ($xshift * $k)), $ty, $topchr); - } - } - } - if ($this->underline) { - $s .= ' '.$this->_dounderlinew($xdx, $basefonty, $width); - } - if ($this->linethrough) { - $s .= ' '.$this->_dolinethroughw($xdx, $basefonty, $width); - } - if ($this->overline) { - $s .= ' '.$this->_dooverlinew($xdx, $basefonty, $width); - } - if ($this->ColorFlag AND ($this->textrendermode < 4)) { - $s .= ' Q'; - } - if ($link) { - $this->Link($xdx, $yt, $width, ($this->FontAscent + $this->FontDescent), $link, $ns); - } - } - // output cell - if ($s) { - // output cell - $rs .= $s; - if ($this->font_spacing != 0) { - // reset font spacing mode - $rs .= ' BT 0 Tc ET'; - } - if ($this->font_stretching != 100) { - // reset font stretching mode - $rs .= ' BT 100 Tz ET'; - } - } - // reset word spacing - if (!$this->isUnicodeFont() AND ($align == 'J')) { - $rs .= ' BT 0 Tw ET'; - } - // reset stretching and spacing - $this->font_stretching = $prev_font_stretching; - $this->font_spacing = $prev_font_spacing; - $this->lasth = $h; - if ($ln > 0) { - //Go to the beginning of the next line - $this->y = $y + $h + $this->cell_margin['B']; - if ($ln == 1) { - if ($this->rtl) { - $this->x = $this->w - $this->rMargin; - } else { - $this->x = $this->lMargin; - } - } - } else { - // go left or right by case - if ($this->rtl) { - $this->x = $x - $w - $this->cell_margin['L']; - } else { - $this->x = $x + $w + $this->cell_margin['R']; - } - } - $gstyles = ''.$this->linestyleWidth.' '.$this->linestyleCap.' '.$this->linestyleJoin.' '.$this->linestyleDash.' '.$this->DrawColor.' '.$this->FillColor."\n"; - $rs = $gstyles.$rs; - $this->cell_padding = $prev_cell_padding; - $this->cell_margin = $prev_cell_margin; - return $rs; - } - - /** - * Replace a char if is defined on the current font. - * @param $oldchar (int) Integer code (unicode) of the character to replace. - * @param $newchar (int) Integer code (unicode) of the new character. - * @return int the replaced char or the old char in case the new char i not defined - * @protected - * @since 5.9.167 (2012-06-22) - */ - protected function replaceChar($oldchar, $newchar) { - if ($this->isCharDefined($newchar)) { - // add the new char on the subset list - $this->CurrentFont['subsetchars'][$newchar] = true; - // return the new character - return $newchar; - } - // return the old char - return $oldchar; - } - - /** - * Returns the code to draw the cell border - * @param $x (float) X coordinate. - * @param $y (float) Y coordinate. - * @param $w (float) Cell width. - * @param $h (float) Cell height. - * @param $brd (mixed) Indicates if borders must be drawn around the cell. The value can be a number:
      • 0: no border (default)
      • 1: frame
      or a string containing some or all of the following characters (in any order):
      • L: left
      • T: top
      • R: right
      • B: bottom
      or an array of line styles for each border group - for example: array('LTRB' => array('width' => 2, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0))) - * @return string containing cell border code - * @protected - * @see SetLineStyle() - * @since 5.7.000 (2010-08-02) - */ - protected function getCellBorder($x, $y, $w, $h, $brd) { - $s = ''; // string to be returned - if (empty($brd)) { - return $s; - } - if ($brd == 1) { - $brd = array('LRTB' => true); - } - // calculate coordinates for border - $k = $this->k; - if ($this->rtl) { - $xeL = ($x - $w) * $k; - $xeR = $x * $k; - } else { - $xeL = $x * $k; - $xeR = ($x + $w) * $k; - } - $yeL = (($this->h - ($y + $h)) * $k); - $yeT = (($this->h - $y) * $k); - $xeT = $xeL; - $xeB = $xeR; - $yeR = $yeT; - $yeB = $yeL; - if (is_string($brd)) { - // convert string to array - $slen = strlen($brd); - $newbrd = array(); - for ($i = 0; $i < $slen; ++$i) { - $newbrd[$brd[$i]] = array('cap' => 'square', 'join' => 'miter'); - } - $brd = $newbrd; - } - if (isset($brd['mode'])) { - $mode = $brd['mode']; - unset($brd['mode']); - } else { - $mode = 'normal'; - } - foreach ($brd as $border => $style) { - if (is_array($style) AND !empty($style)) { - // apply border style - $prev_style = $this->linestyleWidth.' '.$this->linestyleCap.' '.$this->linestyleJoin.' '.$this->linestyleDash.' '.$this->DrawColor.' '; - $s .= $this->SetLineStyle($style, true)."\n"; - } - switch ($mode) { - case 'ext': { - $off = (($this->LineWidth / 2) * $k); - $xL = $xeL - $off; - $xR = $xeR + $off; - $yT = $yeT + $off; - $yL = $yeL - $off; - $xT = $xL; - $xB = $xR; - $yR = $yT; - $yB = $yL; - $w += $this->LineWidth; - $h += $this->LineWidth; - break; - } - case 'int': { - $off = ($this->LineWidth / 2) * $k; - $xL = $xeL + $off; - $xR = $xeR - $off; - $yT = $yeT - $off; - $yL = $yeL + $off; - $xT = $xL; - $xB = $xR; - $yR = $yT; - $yB = $yL; - $w -= $this->LineWidth; - $h -= $this->LineWidth; - break; - } - case 'normal': - default: { - $xL = $xeL; - $xT = $xeT; - $xB = $xeB; - $xR = $xeR; - $yL = $yeL; - $yT = $yeT; - $yB = $yeB; - $yR = $yeR; - break; - } - } - // draw borders by case - if (strlen($border) == 4) { - $s .= sprintf('%F %F %F %F re S ', $xT, $yT, ($w * $k), (-$h * $k)); - } elseif (strlen($border) == 3) { - if (strpos($border,'B') === false) { // LTR - $s .= sprintf('%F %F m ', $xL, $yL); - $s .= sprintf('%F %F l ', $xT, $yT); - $s .= sprintf('%F %F l ', $xR, $yR); - $s .= sprintf('%F %F l ', $xB, $yB); - $s .= 'S '; - } elseif (strpos($border,'L') === false) { // TRB - $s .= sprintf('%F %F m ', $xT, $yT); - $s .= sprintf('%F %F l ', $xR, $yR); - $s .= sprintf('%F %F l ', $xB, $yB); - $s .= sprintf('%F %F l ', $xL, $yL); - $s .= 'S '; - } elseif (strpos($border,'T') === false) { // RBL - $s .= sprintf('%F %F m ', $xR, $yR); - $s .= sprintf('%F %F l ', $xB, $yB); - $s .= sprintf('%F %F l ', $xL, $yL); - $s .= sprintf('%F %F l ', $xT, $yT); - $s .= 'S '; - } elseif (strpos($border,'R') === false) { // BLT - $s .= sprintf('%F %F m ', $xB, $yB); - $s .= sprintf('%F %F l ', $xL, $yL); - $s .= sprintf('%F %F l ', $xT, $yT); - $s .= sprintf('%F %F l ', $xR, $yR); - $s .= 'S '; - } - } elseif (strlen($border) == 2) { - if ((strpos($border,'L') !== false) AND (strpos($border,'T') !== false)) { // LT - $s .= sprintf('%F %F m ', $xL, $yL); - $s .= sprintf('%F %F l ', $xT, $yT); - $s .= sprintf('%F %F l ', $xR, $yR); - $s .= 'S '; - } elseif ((strpos($border,'T') !== false) AND (strpos($border,'R') !== false)) { // TR - $s .= sprintf('%F %F m ', $xT, $yT); - $s .= sprintf('%F %F l ', $xR, $yR); - $s .= sprintf('%F %F l ', $xB, $yB); - $s .= 'S '; - } elseif ((strpos($border,'R') !== false) AND (strpos($border,'B') !== false)) { // RB - $s .= sprintf('%F %F m ', $xR, $yR); - $s .= sprintf('%F %F l ', $xB, $yB); - $s .= sprintf('%F %F l ', $xL, $yL); - $s .= 'S '; - } elseif ((strpos($border,'B') !== false) AND (strpos($border,'L') !== false)) { // BL - $s .= sprintf('%F %F m ', $xB, $yB); - $s .= sprintf('%F %F l ', $xL, $yL); - $s .= sprintf('%F %F l ', $xT, $yT); - $s .= 'S '; - } elseif ((strpos($border,'L') !== false) AND (strpos($border,'R') !== false)) { // LR - $s .= sprintf('%F %F m ', $xL, $yL); - $s .= sprintf('%F %F l ', $xT, $yT); - $s .= 'S '; - $s .= sprintf('%F %F m ', $xR, $yR); - $s .= sprintf('%F %F l ', $xB, $yB); - $s .= 'S '; - } elseif ((strpos($border,'T') !== false) AND (strpos($border,'B') !== false)) { // TB - $s .= sprintf('%F %F m ', $xT, $yT); - $s .= sprintf('%F %F l ', $xR, $yR); - $s .= 'S '; - $s .= sprintf('%F %F m ', $xB, $yB); - $s .= sprintf('%F %F l ', $xL, $yL); - $s .= 'S '; - } - } else { // strlen($border) == 1 - if (strpos($border,'L') !== false) { // L - $s .= sprintf('%F %F m ', $xL, $yL); - $s .= sprintf('%F %F l ', $xT, $yT); - $s .= 'S '; - } elseif (strpos($border,'T') !== false) { // T - $s .= sprintf('%F %F m ', $xT, $yT); - $s .= sprintf('%F %F l ', $xR, $yR); - $s .= 'S '; - } elseif (strpos($border,'R') !== false) { // R - $s .= sprintf('%F %F m ', $xR, $yR); - $s .= sprintf('%F %F l ', $xB, $yB); - $s .= 'S '; - } elseif (strpos($border,'B') !== false) { // B - $s .= sprintf('%F %F m ', $xB, $yB); - $s .= sprintf('%F %F l ', $xL, $yL); - $s .= 'S '; - } - } - if (is_array($style) AND !empty($style)) { - // reset border style to previous value - $s .= "\n".$this->linestyleWidth.' '.$this->linestyleCap.' '.$this->linestyleJoin.' '.$this->linestyleDash.' '.$this->DrawColor."\n"; - } - } - return $s; - } - - /** - * This method allows printing text with line breaks. - * They can be automatic (as soon as the text reaches the right border of the cell) or explicit (via the \n character). As many cells as necessary are output, one below the other.
      - * Text can be aligned, centered or justified. The cell block can be framed and the background painted. - * @param $w (float) Width of cells. If 0, they extend up to the right margin of the page. - * @param $h (float) Cell minimum height. The cell extends automatically if needed. - * @param $txt (string) String to print - * @param $border (mixed) Indicates if borders must be drawn around the cell. The value can be a number:
      • 0: no border (default)
      • 1: frame
      or a string containing some or all of the following characters (in any order):
      • L: left
      • T: top
      • R: right
      • B: bottom
      or an array of line styles for each border group - for example: array('LTRB' => array('width' => 2, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0))) - * @param $align (string) Allows to center or align the text. Possible values are:
      • L or empty string: left align
      • C: center
      • R: right align
      • J: justification (default value when $ishtml=false)
      - * @param $fill (boolean) Indicates if the cell background must be painted (true) or transparent (false). - * @param $ln (int) Indicates where the current position should go after the call. Possible values are:
      • 0: to the right
      • 1: to the beginning of the next line [DEFAULT]
      • 2: below
      - * @param $x (float) x position in user units - * @param $y (float) y position in user units - * @param $reseth (boolean) if true reset the last cell height (default true). - * @param $stretch (int) font stretch mode:
      • 0 = disabled
      • 1 = horizontal scaling only if text is larger than cell width
      • 2 = forced horizontal scaling to fit cell width
      • 3 = character spacing only if text is larger than cell width
      • 4 = forced character spacing to fit cell width
      General font stretching and scaling values will be preserved when possible. - * @param $ishtml (boolean) INTERNAL USE ONLY -- set to true if $txt is HTML content (default = false). Never set this parameter to true, use instead writeHTMLCell() or writeHTML() methods. - * @param $autopadding (boolean) if true, uses internal padding and automatically adjust it to account for line width. - * @param $maxh (float) maximum height. It should be >= $h and less then remaining space to the bottom of the page, or 0 for disable this feature. This feature works only when $ishtml=false. - * @param $valign (string) Vertical alignment of text (requires $maxh = $h > 0). Possible values are:
      • T: TOP
      • M: middle
      • B: bottom
      . This feature works only when $ishtml=false and the cell must fit in a single page. - * @param $fitcell (boolean) if true attempt to fit all the text within the cell by reducing the font size (do not work in HTML mode). $maxh must be greater than 0 and equal to $h. - * @return int Return the number of cells or 1 for html mode. - * @public - * @since 1.3 - * @see SetFont(), SetDrawColor(), SetFillColor(), SetTextColor(), SetLineWidth(), Cell(), Write(), SetAutoPageBreak() - */ - public function MultiCell($w, $h, $txt, $border=0, $align='J', $fill=false, $ln=1, $x='', $y='', $reseth=true, $stretch=0, $ishtml=false, $autopadding=true, $maxh=0, $valign='T', $fitcell=false) { - $prev_cell_margin = $this->cell_margin; - $prev_cell_padding = $this->cell_padding; - // adjust internal padding - $this->adjustCellPadding($border); - $mc_padding = $this->cell_padding; - $mc_margin = $this->cell_margin; - $this->cell_padding['T'] = 0; - $this->cell_padding['B'] = 0; - $this->setCellMargins(0, 0, 0, 0); - if (TCPDF_STATIC::empty_string($this->lasth) OR $reseth) { - // reset row height - $this->resetLastH(); - } - if (!TCPDF_STATIC::empty_string($y)) { - $this->SetY($y); // set y in order to convert negative y values to positive ones - } - $y = $this->GetY(); - $resth = 0; - if (($h > 0) AND $this->inPageBody() AND (($y + $h + $mc_margin['T'] + $mc_margin['B']) > $this->PageBreakTrigger)) { - // spit cell in more pages/columns - $newh = ($this->PageBreakTrigger - $y); - $resth = ($h - $newh); // cell to be printed on the next page/column - $h = $newh; - } - // get current page number - $startpage = $this->page; - // get current column - $startcolumn = $this->current_column; - if (!TCPDF_STATIC::empty_string($x)) { - $this->SetX($x); - } else { - $x = $this->GetX(); - } - // check page for no-write regions and adapt page margins if necessary - list($x, $y) = $this->checkPageRegions(0, $x, $y); - // apply margins - $oy = $y + $mc_margin['T']; - if ($this->rtl) { - $ox = ($this->w - $x - $mc_margin['R']); - } else { - $ox = ($x + $mc_margin['L']); - } - $this->x = $ox; - $this->y = $oy; - // set width - if (TCPDF_STATIC::empty_string($w) OR ($w <= 0)) { - if ($this->rtl) { - $w = ($this->x - $this->lMargin - $mc_margin['L']); - } else { - $w = ($this->w - $this->x - $this->rMargin - $mc_margin['R']); - } - } - // store original margin values - $lMargin = $this->lMargin; - $rMargin = $this->rMargin; - if ($this->rtl) { - $this->rMargin = ($this->w - $this->x); - $this->lMargin = ($this->x - $w); - } else { - $this->lMargin = ($this->x); - $this->rMargin = ($this->w - $this->x - $w); - } - $this->clMargin = $this->lMargin; - $this->crMargin = $this->rMargin; - if ($autopadding) { - // add top padding - $this->y += $mc_padding['T']; - } - if ($ishtml) { // ******* Write HTML text - $this->writeHTML($txt, true, false, $reseth, true, $align); - $nl = 1; - } else { // ******* Write simple text - $prev_FontSizePt = $this->FontSizePt; - if ($fitcell) { - // ajust height values - $tobottom = ($this->h - $this->y - $this->bMargin - $this->cell_padding['T'] - $this->cell_padding['B']); - $h = $maxh = max(min($h, $tobottom), min($maxh, $tobottom)); - } - // vertical alignment - if ($maxh > 0) { - // get text height - $text_height = $this->getStringHeight($w, $txt, $reseth, $autopadding, $mc_padding, $border); - if ($fitcell AND ($text_height > $maxh) AND ($this->FontSizePt > 1)) { - // try to reduce font size to fit text on cell (use a quick search algorithm) - $fmin = 1; - $fmax = $this->FontSizePt; - $diff_epsilon = (1 / $this->k); // one point (min resolution) - $maxit = (2 * min(100, max(10, intval($fmax)))); // max number of iterations - while ($maxit >= 0) { - $fmid = (($fmax + $fmin) / 2); - $this->SetFontSize($fmid, false); - $this->resetLastH(); - $text_height = $this->getStringHeight($w, $txt, $reseth, $autopadding, $mc_padding, $border); - $diff = ($maxh - $text_height); - if ($diff >= 0) { - if ($diff <= $diff_epsilon) { - break; - } - $fmin = $fmid; - } else { - $fmax = $fmid; - } - --$maxit; - } - if ($maxit < 0) { - // premature exit, we get the minimum font value to fit the cell - $this->SetFontSize($fmin); - $this->resetLastH(); - $text_height = $this->getStringHeight($w, $txt, $reseth, $autopadding, $mc_padding, $border); - } else { - $this->SetFontSize($fmid); - $this->resetLastH(); - } - } - if ($text_height < $maxh) { - if ($valign == 'M') { - // text vertically centered - $this->y += (($maxh - $text_height) / 2); - } elseif ($valign == 'B') { - // text vertically aligned on bottom - $this->y += ($maxh - $text_height); - } - } - } - $nl = $this->Write($this->lasth, $txt, '', 0, $align, true, $stretch, false, true, $maxh, 0, $mc_margin); - if ($fitcell) { - // restore font size - $this->SetFontSize($prev_FontSizePt); - } - } - if ($autopadding) { - // add bottom padding - $this->y += $mc_padding['B']; - } - // Get end-of-text Y position - $currentY = $this->y; - // get latest page number - $endpage = $this->page; - if ($resth > 0) { - $skip = ($endpage - $startpage); - $tmpresth = $resth; - while ($tmpresth > 0) { - if ($skip <= 0) { - // add a page (or trig AcceptPageBreak() for multicolumn mode) - $this->checkPageBreak($this->PageBreakTrigger + 1); - } - if ($this->num_columns > 1) { - $tmpresth -= ($this->h - $this->y - $this->bMargin); - } else { - $tmpresth -= ($this->h - $this->tMargin - $this->bMargin); - } - --$skip; - } - $currentY = $this->y; - $endpage = $this->page; - } - // get latest column - $endcolumn = $this->current_column; - if ($this->num_columns == 0) { - $this->num_columns = 1; - } - // disable page regions check - $check_page_regions = $this->check_page_regions; - $this->check_page_regions = false; - // get border modes - $border_start = TCPDF_STATIC::getBorderMode($border, $position='start', $this->opencell); - $border_end = TCPDF_STATIC::getBorderMode($border, $position='end', $this->opencell); - $border_middle = TCPDF_STATIC::getBorderMode($border, $position='middle', $this->opencell); - // design borders around HTML cells. - for ($page = $startpage; $page <= $endpage; ++$page) { // for each page - $ccode = ''; - $this->setPage($page); - if ($this->num_columns < 2) { - // single-column mode - $this->SetX($x); - $this->y = $this->tMargin; - } - // account for margin changes - if ($page > $startpage) { - if (($this->rtl) AND ($this->pagedim[$page]['orm'] != $this->pagedim[$startpage]['orm'])) { - $this->x -= ($this->pagedim[$page]['orm'] - $this->pagedim[$startpage]['orm']); - } elseif ((!$this->rtl) AND ($this->pagedim[$page]['olm'] != $this->pagedim[$startpage]['olm'])) { - $this->x += ($this->pagedim[$page]['olm'] - $this->pagedim[$startpage]['olm']); - } - } - if ($startpage == $endpage) { - // single page - for ($column = $startcolumn; $column <= $endcolumn; ++$column) { // for each column - if ($column != $this->current_column) { - $this->selectColumn($column); - } - if ($this->rtl) { - $this->x -= $mc_margin['R']; - } else { - $this->x += $mc_margin['L']; - } - if ($startcolumn == $endcolumn) { // single column - $cborder = $border; - $h = max($h, ($currentY - $oy)); - $this->y = $oy; - } elseif ($column == $startcolumn) { // first column - $cborder = $border_start; - $this->y = $oy; - $h = $this->h - $this->y - $this->bMargin; - } elseif ($column == $endcolumn) { // end column - $cborder = $border_end; - $h = $currentY - $this->y; - if ($resth > $h) { - $h = $resth; - } - } else { // middle column - $cborder = $border_middle; - $h = $this->h - $this->y - $this->bMargin; - $resth -= $h; - } - $ccode .= $this->getCellCode($w, $h, '', $cborder, 1, '', $fill, '', 0, true)."\n"; - } // end for each column - } elseif ($page == $startpage) { // first page - for ($column = $startcolumn; $column < $this->num_columns; ++$column) { // for each column - if ($column != $this->current_column) { - $this->selectColumn($column); - } - if ($this->rtl) { - $this->x -= $mc_margin['R']; - } else { - $this->x += $mc_margin['L']; - } - if ($column == $startcolumn) { // first column - $cborder = $border_start; - $this->y = $oy; - $h = $this->h - $this->y - $this->bMargin; - } else { // middle column - $cborder = $border_middle; - $h = $this->h - $this->y - $this->bMargin; - $resth -= $h; - } - $ccode .= $this->getCellCode($w, $h, '', $cborder, 1, '', $fill, '', 0, true)."\n"; - } // end for each column - } elseif ($page == $endpage) { // last page - for ($column = 0; $column <= $endcolumn; ++$column) { // for each column - if ($column != $this->current_column) { - $this->selectColumn($column); - } - if ($this->rtl) { - $this->x -= $mc_margin['R']; - } else { - $this->x += $mc_margin['L']; - } - if ($column == $endcolumn) { - // end column - $cborder = $border_end; - $h = $currentY - $this->y; - if ($resth > $h) { - $h = $resth; - } - } else { - // middle column - $cborder = $border_middle; - $h = $this->h - $this->y - $this->bMargin; - $resth -= $h; - } - $ccode .= $this->getCellCode($w, $h, '', $cborder, 1, '', $fill, '', 0, true)."\n"; - } // end for each column - } else { // middle page - for ($column = 0; $column < $this->num_columns; ++$column) { // for each column - $this->selectColumn($column); - if ($this->rtl) { - $this->x -= $mc_margin['R']; - } else { - $this->x += $mc_margin['L']; - } - $cborder = $border_middle; - $h = $this->h - $this->y - $this->bMargin; - $resth -= $h; - $ccode .= $this->getCellCode($w, $h, '', $cborder, 1, '', $fill, '', 0, true)."\n"; - } // end for each column - } - if ($cborder OR $fill) { - $offsetlen = strlen($ccode); - // draw border and fill - if ($this->inxobj) { - // we are inside an XObject template - if (end($this->xobjects[$this->xobjid]['transfmrk']) !== false) { - $pagemarkkey = key($this->xobjects[$this->xobjid]['transfmrk']); - $pagemark = $this->xobjects[$this->xobjid]['transfmrk'][$pagemarkkey]; - $this->xobjects[$this->xobjid]['transfmrk'][$pagemarkkey] += $offsetlen; - } else { - $pagemark = $this->xobjects[$this->xobjid]['intmrk']; - $this->xobjects[$this->xobjid]['intmrk'] += $offsetlen; - } - $pagebuff = $this->xobjects[$this->xobjid]['outdata']; - $pstart = substr($pagebuff, 0, $pagemark); - $pend = substr($pagebuff, $pagemark); - $this->xobjects[$this->xobjid]['outdata'] = $pstart.$ccode.$pend; - } else { - if (end($this->transfmrk[$this->page]) !== false) { - $pagemarkkey = key($this->transfmrk[$this->page]); - $pagemark = $this->transfmrk[$this->page][$pagemarkkey]; - $this->transfmrk[$this->page][$pagemarkkey] += $offsetlen; - } elseif ($this->InFooter) { - $pagemark = $this->footerpos[$this->page]; - $this->footerpos[$this->page] += $offsetlen; - } else { - $pagemark = $this->intmrk[$this->page]; - $this->intmrk[$this->page] += $offsetlen; - } - $pagebuff = $this->getPageBuffer($this->page); - $pstart = substr($pagebuff, 0, $pagemark); - $pend = substr($pagebuff, $pagemark); - $this->setPageBuffer($this->page, $pstart.$ccode.$pend); - } - } - } // end for each page - // restore page regions check - $this->check_page_regions = $check_page_regions; - // Get end-of-cell Y position - $currentY = $this->GetY(); - // restore previous values - if ($this->num_columns > 1) { - $this->selectColumn(); - } else { - // restore original margins - $this->lMargin = $lMargin; - $this->rMargin = $rMargin; - if ($this->page > $startpage) { - // check for margin variations between pages (i.e. booklet mode) - $dl = ($this->pagedim[$this->page]['olm'] - $this->pagedim[$startpage]['olm']); - $dr = ($this->pagedim[$this->page]['orm'] - $this->pagedim[$startpage]['orm']); - if (($dl != 0) OR ($dr != 0)) { - $this->lMargin += $dl; - $this->rMargin += $dr; - } - } - } - if ($ln > 0) { - //Go to the beginning of the next line - $this->SetY($currentY + $mc_margin['B']); - if ($ln == 2) { - $this->SetX($x + $w + $mc_margin['L'] + $mc_margin['R']); - } - } else { - // go left or right by case - $this->setPage($startpage); - $this->y = $y; - $this->SetX($x + $w + $mc_margin['L'] + $mc_margin['R']); - } - $this->setContentMark(); - $this->cell_padding = $prev_cell_padding; - $this->cell_margin = $prev_cell_margin; - $this->clMargin = $this->lMargin; - $this->crMargin = $this->rMargin; - return $nl; - } - - /** - * This method return the estimated number of lines for print a simple text string using Multicell() method. - * @param $txt (string) String for calculating his height - * @param $w (float) Width of cells. If 0, they extend up to the right margin of the page. - * @param $reseth (boolean) if true reset the last cell height (default false). - * @param $autopadding (boolean) if true, uses internal padding and automatically adjust it to account for line width (default true). - * @param $cellpadding (float) Internal cell padding, if empty uses default cell padding. - * @param $border (mixed) Indicates if borders must be drawn around the cell. The value can be a number:
      • 0: no border (default)
      • 1: frame
      or a string containing some or all of the following characters (in any order):
      • L: left
      • T: top
      • R: right
      • B: bottom
      or an array of line styles for each border group - for example: array('LTRB' => array('width' => 2, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0))) - * @return float Return the minimal height needed for multicell method for printing the $txt param. - * @author Alexander Escalona Fern\E1ndez, Nicola Asuni - * @public - * @since 4.5.011 - */ - public function getNumLines($txt, $w=0, $reseth=false, $autopadding=true, $cellpadding='', $border=0) { - if ($txt === NULL) { - return 0; - } - if ($txt === '') { - // empty string - return 1; - } - // adjust internal padding - $prev_cell_padding = $this->cell_padding; - $prev_lasth = $this->lasth; - if (is_array($cellpadding)) { - $this->cell_padding = $cellpadding; - } - $this->adjustCellPadding($border); - if (TCPDF_STATIC::empty_string($w) OR ($w <= 0)) { - if ($this->rtl) { - $w = $this->x - $this->lMargin; - } else { - $w = $this->w - $this->rMargin - $this->x; - } - } - $wmax = $w - $this->cell_padding['L'] - $this->cell_padding['R']; - if ($reseth) { - // reset row height - $this->resetLastH(); - } - $lines = 1; - $sum = 0; - $chars = TCPDF_FONTS::utf8Bidi(TCPDF_FONTS::UTF8StringToArray($txt, $this->isunicode, $this->CurrentFont), $txt, $this->tmprtl, $this->isunicode, $this->CurrentFont); - $charsWidth = $this->GetArrStringWidth($chars, '', '', 0, true); - $length = count($chars); - $lastSeparator = -1; - for ($i = 0; $i < $length; ++$i) { - $c = $chars[$i]; - $charWidth = $charsWidth[$i]; - if (($c != 160) - AND (($c == 173) - OR preg_match($this->re_spaces, TCPDF_FONTS::unichr($c, $this->isunicode)) - OR (($c == 45) - AND ($i > 0) AND ($i < ($length - 1)) - AND @preg_match('/[\p{L}]/'.$this->re_space['m'], TCPDF_FONTS::unichr($chars[($i - 1)], $this->isunicode)) - AND @preg_match('/[\p{L}]/'.$this->re_space['m'], TCPDF_FONTS::unichr($chars[($i + 1)], $this->isunicode)) - ) - ) - ) { - $lastSeparator = $i; - } - if ((($sum + $charWidth) > $wmax) OR ($c == 10)) { - ++$lines; - if ($c == 10) { - $lastSeparator = -1; - $sum = 0; - } elseif ($lastSeparator != -1) { - $i = $lastSeparator; - $lastSeparator = -1; - $sum = 0; - } else { - $sum = $charWidth; - } - } else { - $sum += $charWidth; - } - } - if ($chars[($length - 1)] == 10) { - --$lines; - } - $this->cell_padding = $prev_cell_padding; - $this->lasth = $prev_lasth; - return $lines; - } - - /** - * This method return the estimated height needed for printing a simple text string using the Multicell() method. - * Generally, if you want to know the exact height for a block of content you can use the following alternative technique: - * @pre - * // store current object - * $pdf->startTransaction(); - * // store starting values - * $start_y = $pdf->GetY(); - * $start_page = $pdf->getPage(); - * // call your printing functions with your parameters - * // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * $pdf->MultiCell($w=0, $h=0, $txt, $border=1, $align='L', $fill=false, $ln=1, $x='', $y='', $reseth=true, $stretch=0, $ishtml=false, $autopadding=true, $maxh=0); - * // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * // get the new Y - * $end_y = $pdf->GetY(); - * $end_page = $pdf->getPage(); - * // calculate height - * $height = 0; - * if ($end_page == $start_page) { - * $height = $end_y - $start_y; - * } else { - * for ($page=$start_page; $page <= $end_page; ++$page) { - * $this->setPage($page); - * if ($page == $start_page) { - * // first page - * $height += $this->h - $start_y - $this->bMargin; - * } elseif ($page == $end_page) { - * // last page - * $height += $end_y - $this->tMargin; - * } else { - * $height += $this->h - $this->tMargin - $this->bMargin; - * } - * } - * } - * // restore previous object - * $pdf = $pdf->rollbackTransaction(); - * - * @param $w (float) Width of cells. If 0, they extend up to the right margin of the page. - * @param $txt (string) String for calculating his height - * @param $reseth (boolean) if true reset the last cell height (default false). - * @param $autopadding (boolean) if true, uses internal padding and automatically adjust it to account for line width (default true). - * @param $cellpadding (float) Internal cell padding, if empty uses default cell padding. - * @param $border (mixed) Indicates if borders must be drawn around the cell. The value can be a number:
      • 0: no border (default)
      • 1: frame
      or a string containing some or all of the following characters (in any order):
      • L: left
      • T: top
      • R: right
      • B: bottom
      or an array of line styles for each border group - for example: array('LTRB' => array('width' => 2, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0))) - * @return float Return the minimal height needed for multicell method for printing the $txt param. - * @author Nicola Asuni, Alexander Escalona Fern\E1ndez - * @public - */ - public function getStringHeight($w, $txt, $reseth=false, $autopadding=true, $cellpadding='', $border=0) { - // adjust internal padding - $prev_cell_padding = $this->cell_padding; - $prev_lasth = $this->lasth; - if (is_array($cellpadding)) { - $this->cell_padding = $cellpadding; - } - $this->adjustCellPadding($border); - $lines = $this->getNumLines($txt, $w, $reseth, $autopadding, $cellpadding, $border); - $height = $this->getCellHeight(($lines * $this->FontSize), $autopadding); - $this->cell_padding = $prev_cell_padding; - $this->lasth = $prev_lasth; - return $height; - } - - /** - * This method prints text from the current position.
      - * @param $h (float) Line height - * @param $txt (string) String to print - * @param $link (mixed) URL or identifier returned by AddLink() - * @param $fill (boolean) Indicates if the cell background must be painted (true) or transparent (false). - * @param $align (string) Allows to center or align the text. Possible values are:
      • L or empty string: left align (default value)
      • C: center
      • R: right align
      • J: justify
      - * @param $ln (boolean) if true set cursor at the bottom of the line, otherwise set cursor at the top of the line. - * @param $stretch (int) font stretch mode:
      • 0 = disabled
      • 1 = horizontal scaling only if text is larger than cell width
      • 2 = forced horizontal scaling to fit cell width
      • 3 = character spacing only if text is larger than cell width
      • 4 = forced character spacing to fit cell width
      General font stretching and scaling values will be preserved when possible. - * @param $firstline (boolean) if true prints only the first line and return the remaining string. - * @param $firstblock (boolean) if true the string is the starting of a line. - * @param $maxh (float) maximum height. It should be >= $h and less then remaining space to the bottom of the page, or 0 for disable this feature. - * @param $wadj (float) first line width will be reduced by this amount (used in HTML mode). - * @param $margin (array) margin array of the parent container - * @return mixed Return the number of cells or the remaining string if $firstline = true. - * @public - * @since 1.5 - */ - public function Write($h, $txt, $link='', $fill=false, $align='', $ln=false, $stretch=0, $firstline=false, $firstblock=false, $maxh=0, $wadj=0, $margin='') { - // check page for no-write regions and adapt page margins if necessary - list($this->x, $this->y) = $this->checkPageRegions($h, $this->x, $this->y); - if (strlen($txt) == 0) { - // fix empty text - $txt = ' '; - } - if ($margin === '') { - // set default margins - $margin = $this->cell_margin; - } - // remove carriage returns - $s = str_replace("\r", '', $txt); - // check if string contains arabic text - if (preg_match(TCPDF_FONT_DATA::$uni_RE_PATTERN_ARABIC, $s)) { - $arabic = true; - } else { - $arabic = false; - } - // check if string contains RTL text - if ($arabic OR ($this->tmprtl == 'R') OR preg_match(TCPDF_FONT_DATA::$uni_RE_PATTERN_RTL, $s)) { - $rtlmode = true; - } else { - $rtlmode = false; - } - // get a char width - $chrwidth = $this->GetCharWidth(46); // dot character - // get array of unicode values - $chars = TCPDF_FONTS::UTF8StringToArray($s, $this->isunicode, $this->CurrentFont); - // calculate maximum width for a single character on string - $chrw = $this->GetArrStringWidth($chars, '', '', 0, true); - array_walk($chrw, array($this, 'getRawCharWidth')); - $maxchwidth = max($chrw); - // get array of chars - $uchars = TCPDF_FONTS::UTF8ArrayToUniArray($chars, $this->isunicode); - // get the number of characters - $nb = count($chars); - // replacement for SHY character (minus symbol) - $shy_replacement = 45; - $shy_replacement_char = TCPDF_FONTS::unichr($shy_replacement, $this->isunicode); - // widht for SHY replacement - $shy_replacement_width = $this->GetCharWidth($shy_replacement); - // page width - $pw = $w = $this->w - $this->lMargin - $this->rMargin; - // calculate remaining line width ($w) - if ($this->rtl) { - $w = $this->x - $this->lMargin; - } else { - $w = $this->w - $this->rMargin - $this->x; - } - // max column width - $wmax = ($w - $wadj); - if (!$firstline) { - $wmax -= ($this->cell_padding['L'] + $this->cell_padding['R']); - } - if ((!$firstline) AND (($chrwidth > $wmax) OR ($maxchwidth > $wmax))) { - // the maximum width character do not fit on column - return ''; - } - // minimum row height - $row_height = max($h, $this->getCellHeight($this->FontSize)); - // max Y - $maxy = $this->y + $maxh - max($row_height, $h); - $start_page = $this->page; - $i = 0; // character position - $j = 0; // current starting position - $sep = -1; // position of the last blank space - $prevsep = $sep; // previous separator - $shy = false; // true if the last blank is a soft hypen (SHY) - $prevshy = $shy; // previous shy mode - $l = 0; // current string length - $nl = 0; //number of lines - $linebreak = false; - $pc = 0; // previous character - // for each character - while ($i < $nb) { - if (($maxh > 0) AND ($this->y > $maxy) ) { - break; - } - //Get the current character - $c = $chars[$i]; - if ($c == 10) { // 10 = "\n" = new line - //Explicit line break - if ($align == 'J') { - if ($this->rtl) { - $talign = 'R'; - } else { - $talign = 'L'; - } - } else { - $talign = $align; - } - $tmpstr = TCPDF_FONTS::UniArrSubString($uchars, $j, $i); - if ($firstline) { - $startx = $this->x; - $tmparr = array_slice($chars, $j, ($i - $j)); - if ($rtlmode) { - $tmparr = TCPDF_FONTS::utf8Bidi($tmparr, $tmpstr, $this->tmprtl, $this->isunicode, $this->CurrentFont); - } - $linew = $this->GetArrStringWidth($tmparr); - unset($tmparr); - if ($this->rtl) { - $this->endlinex = $startx - $linew; - } else { - $this->endlinex = $startx + $linew; - } - $w = $linew; - $tmpcellpadding = $this->cell_padding; - if ($maxh == 0) { - $this->SetCellPadding(0); - } - } - if ($firstblock AND $this->isRTLTextDir()) { - $tmpstr = $this->stringRightTrim($tmpstr); - } - // Skip newlines at the beginning of a page or column - if (!empty($tmpstr) OR ($this->y < ($this->PageBreakTrigger - $row_height))) { - $this->Cell($w, $h, $tmpstr, 0, 1, $talign, $fill, $link, $stretch); - } - unset($tmpstr); - if ($firstline) { - $this->cell_padding = $tmpcellpadding; - return (TCPDF_FONTS::UniArrSubString($uchars, $i)); - } - ++$nl; - $j = $i + 1; - $l = 0; - $sep = -1; - $prevsep = $sep; - $shy = false; - // account for margin changes - if ((($this->y + $this->lasth) > $this->PageBreakTrigger) AND ($this->inPageBody())) { - $this->AcceptPageBreak(); - if ($this->rtl) { - $this->x -= $margin['R']; - } else { - $this->x += $margin['L']; - } - $this->lMargin += $margin['L']; - $this->rMargin += $margin['R']; - } - $w = $this->getRemainingWidth(); - $wmax = ($w - $this->cell_padding['L'] - $this->cell_padding['R']); - } else { - // 160 is the non-breaking space. - // 173 is SHY (Soft Hypen). - // \p{Z} or \p{Separator}: any kind of Unicode whitespace or invisible separator. - // \p{Lo} or \p{Other_Letter}: a Unicode letter or ideograph that does not have lowercase and uppercase variants. - // \p{Lo} is needed because Chinese characters are packed next to each other without spaces in between. - if (($c != 160) - AND (($c == 173) - OR preg_match($this->re_spaces, TCPDF_FONTS::unichr($c, $this->isunicode)) - OR (($c == 45) - AND ($i < ($nb - 1)) - AND @preg_match('/[\p{L}]/'.$this->re_space['m'], TCPDF_FONTS::unichr($pc, $this->isunicode)) - AND @preg_match('/[\p{L}]/'.$this->re_space['m'], TCPDF_FONTS::unichr($chars[($i + 1)], $this->isunicode)) - ) - ) - ) { - // update last blank space position - $prevsep = $sep; - $sep = $i; - // check if is a SHY - if (($c == 173) OR ($c == 45)) { - $prevshy = $shy; - $shy = true; - if ($pc == 45) { - $tmp_shy_replacement_width = 0; - $tmp_shy_replacement_char = ''; - } else { - $tmp_shy_replacement_width = $shy_replacement_width; - $tmp_shy_replacement_char = $shy_replacement_char; - } - } else { - $shy = false; - } - } - // update string length - if ($this->isUnicodeFont() AND ($arabic)) { - // with bidirectional algorithm some chars may be changed affecting the line length - // *** very slow *** - $l = $this->GetArrStringWidth(TCPDF_FONTS::utf8Bidi(array_slice($chars, $j, ($i - $j)), '', $this->tmprtl, $this->isunicode, $this->CurrentFont)); - } else { - $l += $this->GetCharWidth($c); - } - if (($l > $wmax) OR (($c == 173) AND (($l + $tmp_shy_replacement_width) >= $wmax))) { - if (($c == 173) AND (($l + $tmp_shy_replacement_width) > $wmax)) { - $sep = $prevsep; - $shy = $prevshy; - } - // we have reached the end of column - if ($sep == -1) { - // check if the line was already started - if (($this->rtl AND ($this->x <= ($this->w - $this->rMargin - $this->cell_padding['R'] - $margin['R'] - $chrwidth))) - OR ((!$this->rtl) AND ($this->x >= ($this->lMargin + $this->cell_padding['L'] + $margin['L'] + $chrwidth)))) { - // print a void cell and go to next line - $this->Cell($w, $h, '', 0, 1); - $linebreak = true; - if ($firstline) { - return (TCPDF_FONTS::UniArrSubString($uchars, $j)); - } - } else { - // truncate the word because do not fit on column - $tmpstr = TCPDF_FONTS::UniArrSubString($uchars, $j, $i); - if ($firstline) { - $startx = $this->x; - $tmparr = array_slice($chars, $j, ($i - $j)); - if ($rtlmode) { - $tmparr = TCPDF_FONTS::utf8Bidi($tmparr, $tmpstr, $this->tmprtl, $this->isunicode, $this->CurrentFont); - } - $linew = $this->GetArrStringWidth($tmparr); - unset($tmparr); - if ($this->rtl) { - $this->endlinex = $startx - $linew; - } else { - $this->endlinex = $startx + $linew; - } - $w = $linew; - $tmpcellpadding = $this->cell_padding; - if ($maxh == 0) { - $this->SetCellPadding(0); - } - } - if ($firstblock AND $this->isRTLTextDir()) { - $tmpstr = $this->stringRightTrim($tmpstr); - } - $this->Cell($w, $h, $tmpstr, 0, 1, $align, $fill, $link, $stretch); - unset($tmpstr); - if ($firstline) { - $this->cell_padding = $tmpcellpadding; - return (TCPDF_FONTS::UniArrSubString($uchars, $i)); - } - $j = $i; - --$i; - } - } else { - // word wrapping - if ($this->rtl AND (!$firstblock) AND ($sep < $i)) { - $endspace = 1; - } else { - $endspace = 0; - } - // check the length of the next string - $strrest = TCPDF_FONTS::UniArrSubString($uchars, ($sep + $endspace)); - $nextstr = TCPDF_STATIC::pregSplit('/'.$this->re_space['p'].'/', $this->re_space['m'], $this->stringTrim($strrest)); - if (isset($nextstr[0]) AND ($this->GetStringWidth($nextstr[0]) > $pw)) { - // truncate the word because do not fit on a full page width - $tmpstr = TCPDF_FONTS::UniArrSubString($uchars, $j, $i); - if ($firstline) { - $startx = $this->x; - $tmparr = array_slice($chars, $j, ($i - $j)); - if ($rtlmode) { - $tmparr = TCPDF_FONTS::utf8Bidi($tmparr, $tmpstr, $this->tmprtl, $this->isunicode, $this->CurrentFont); - } - $linew = $this->GetArrStringWidth($tmparr); - unset($tmparr); - if ($this->rtl) { - $this->endlinex = ($startx - $linew); - } else { - $this->endlinex = ($startx + $linew); - } - $w = $linew; - $tmpcellpadding = $this->cell_padding; - if ($maxh == 0) { - $this->SetCellPadding(0); - } - } - if ($firstblock AND $this->isRTLTextDir()) { - $tmpstr = $this->stringRightTrim($tmpstr); - } - $this->Cell($w, $h, $tmpstr, 0, 1, $align, $fill, $link, $stretch); - unset($tmpstr); - if ($firstline) { - $this->cell_padding = $tmpcellpadding; - return (TCPDF_FONTS::UniArrSubString($uchars, $i)); - } - $j = $i; - --$i; - } else { - // word wrapping - if ($shy) { - // add hypen (minus symbol) at the end of the line - $shy_width = $tmp_shy_replacement_width; - if ($this->rtl) { - $shy_char_left = $tmp_shy_replacement_char; - $shy_char_right = ''; - } else { - $shy_char_left = ''; - $shy_char_right = $tmp_shy_replacement_char; - } - } else { - $shy_width = 0; - $shy_char_left = ''; - $shy_char_right = ''; - } - $tmpstr = TCPDF_FONTS::UniArrSubString($uchars, $j, ($sep + $endspace)); - if ($firstline) { - $startx = $this->x; - $tmparr = array_slice($chars, $j, (($sep + $endspace) - $j)); - if ($rtlmode) { - $tmparr = TCPDF_FONTS::utf8Bidi($tmparr, $tmpstr, $this->tmprtl, $this->isunicode, $this->CurrentFont); - } - $linew = $this->GetArrStringWidth($tmparr); - unset($tmparr); - if ($this->rtl) { - $this->endlinex = $startx - $linew - $shy_width; - } else { - $this->endlinex = $startx + $linew + $shy_width; - } - $w = $linew; - $tmpcellpadding = $this->cell_padding; - if ($maxh == 0) { - $this->SetCellPadding(0); - } - } - // print the line - if ($firstblock AND $this->isRTLTextDir()) { - $tmpstr = $this->stringRightTrim($tmpstr); - } - $this->Cell($w, $h, $shy_char_left.$tmpstr.$shy_char_right, 0, 1, $align, $fill, $link, $stretch); - unset($tmpstr); - if ($firstline) { - if ($chars[$sep] == 45) { - $endspace += 1; - } - // return the remaining text - $this->cell_padding = $tmpcellpadding; - return (TCPDF_FONTS::UniArrSubString($uchars, ($sep + $endspace))); - } - $i = $sep; - $sep = -1; - $shy = false; - $j = ($i + 1); - } - } - // account for margin changes - if ((($this->y + $this->lasth) > $this->PageBreakTrigger) AND ($this->inPageBody())) { - $this->AcceptPageBreak(); - if ($this->rtl) { - $this->x -= $margin['R']; - } else { - $this->x += $margin['L']; - } - $this->lMargin += $margin['L']; - $this->rMargin += $margin['R']; - } - $w = $this->getRemainingWidth(); - $wmax = $w - $this->cell_padding['L'] - $this->cell_padding['R']; - if ($linebreak) { - $linebreak = false; - } else { - ++$nl; - $l = 0; - } - } - } - // save last character - $pc = $c; - ++$i; - } // end while i < nb - // print last substring (if any) - if ($l > 0) { - switch ($align) { - case 'J': - case 'C': { - $w = $w; - break; - } - case 'L': { - if ($this->rtl) { - $w = $w; - } else { - $w = $l; - } - break; - } - case 'R': { - if ($this->rtl) { - $w = $l; - } else { - $w = $w; - } - break; - } - default: { - $w = $l; - break; - } - } - $tmpstr = TCPDF_FONTS::UniArrSubString($uchars, $j, $nb); - if ($firstline) { - $startx = $this->x; - $tmparr = array_slice($chars, $j, ($nb - $j)); - if ($rtlmode) { - $tmparr = TCPDF_FONTS::utf8Bidi($tmparr, $tmpstr, $this->tmprtl, $this->isunicode, $this->CurrentFont); - } - $linew = $this->GetArrStringWidth($tmparr); - unset($tmparr); - if ($this->rtl) { - $this->endlinex = $startx - $linew; - } else { - $this->endlinex = $startx + $linew; - } - $w = $linew; - $tmpcellpadding = $this->cell_padding; - if ($maxh == 0) { - $this->SetCellPadding(0); - } - } - if ($firstblock AND $this->isRTLTextDir()) { - $tmpstr = $this->stringRightTrim($tmpstr); - } - $this->Cell($w, $h, $tmpstr, 0, $ln, $align, $fill, $link, $stretch); - unset($tmpstr); - if ($firstline) { - $this->cell_padding = $tmpcellpadding; - return (TCPDF_FONTS::UniArrSubString($uchars, $nb)); - } - ++$nl; - } - if ($firstline) { - return ''; - } - return $nl; - } - - /** - * Returns the remaining width between the current position and margins. - * @return int Return the remaining width - * @protected - */ - protected function getRemainingWidth() { - list($this->x, $this->y) = $this->checkPageRegions(0, $this->x, $this->y); - if ($this->rtl) { - return ($this->x - $this->lMargin); - } else { - return ($this->w - $this->rMargin - $this->x); - } - } - - /** - * Set the block dimensions accounting for page breaks and page/column fitting - * @param $w (float) width - * @param $h (float) height - * @param $x (float) X coordinate - * @param $y (float) Y coodiante - * @param $fitonpage (boolean) if true the block is resized to not exceed page dimensions. - * @return array($w, $h, $x, $y) - * @protected - * @since 5.5.009 (2010-07-05) - */ - protected function fitBlock($w, $h, $x, $y, $fitonpage=false) { - if ($w <= 0) { - // set maximum width - $w = ($this->w - $this->lMargin - $this->rMargin); - if ($w <= 0) { - $w = 1; - } - } - if ($h <= 0) { - // set maximum height - $h = ($this->PageBreakTrigger - $this->tMargin); - if ($h <= 0) { - $h = 1; - } - } - // resize the block to be vertically contained on a single page or single column - if ($fitonpage OR $this->AutoPageBreak) { - $ratio_wh = ($w / $h); - if ($h > ($this->PageBreakTrigger - $this->tMargin)) { - $h = $this->PageBreakTrigger - $this->tMargin; - $w = ($h * $ratio_wh); - } - // resize the block to be horizontally contained on a single page or single column - if ($fitonpage) { - $maxw = ($this->w - $this->lMargin - $this->rMargin); - if ($w > $maxw) { - $w = $maxw; - $h = ($w / $ratio_wh); - } - } - } - // Check whether we need a new page or new column first as this does not fit - $prev_x = $this->x; - $prev_y = $this->y; - if ($this->checkPageBreak($h, $y) OR ($this->y < $prev_y)) { - $y = $this->y; - if ($this->rtl) { - $x += ($prev_x - $this->x); - } else { - $x += ($this->x - $prev_x); - } - $this->newline = true; - } - // resize the block to be contained on the remaining available page or column space - if ($fitonpage) { - $ratio_wh = ($w / $h); - if (($y + $h) > $this->PageBreakTrigger) { - $h = $this->PageBreakTrigger - $y; - $w = ($h * $ratio_wh); - } - if ((!$this->rtl) AND (($x + $w) > ($this->w - $this->rMargin))) { - $w = $this->w - $this->rMargin - $x; - $h = ($w / $ratio_wh); - } elseif (($this->rtl) AND (($x - $w) < ($this->lMargin))) { - $w = $x - $this->lMargin; - $h = ($w / $ratio_wh); - } - } - return array($w, $h, $x, $y); - } - - /** - * Puts an image in the page. - * The upper-left corner must be given. - * The dimensions can be specified in different ways:
        - *
      • explicit width and height (expressed in user unit)
      • - *
      • one explicit dimension, the other being calculated automatically in order to keep the original proportions
      • - *
      • no explicit dimension, in which case the image is put at 72 dpi
      - * Supported formats are JPEG and PNG images whitout GD library and all images supported by GD: GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM; - * The format can be specified explicitly or inferred from the file extension.
      - * It is possible to put a link on the image.
      - * Remark: if an image is used several times, only one copy will be embedded in the file.
      - * @param $file (string) Name of the file containing the image or a '@' character followed by the image data string. To link an image without embedding it on the document, set an asterisk character before the URL (i.e.: '*http://www.example.com/image.jpg'). - * @param $x (float) Abscissa of the upper-left corner (LTR) or upper-right corner (RTL). - * @param $y (float) Ordinate of the upper-left corner (LTR) or upper-right corner (RTL). - * @param $w (float) Width of the image in the page. If not specified or equal to zero, it is automatically calculated. - * @param $h (float) Height of the image in the page. If not specified or equal to zero, it is automatically calculated. - * @param $type (string) Image format. Possible values are (case insensitive): JPEG and PNG (whitout GD library) and all images supported by GD: GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM;. If not specified, the type is inferred from the file extension. - * @param $link (mixed) URL or identifier returned by AddLink(). - * @param $align (string) Indicates the alignment of the pointer next to image insertion relative to image height. The value can be:
      • T: top-right for LTR or top-left for RTL
      • M: middle-right for LTR or middle-left for RTL
      • B: bottom-right for LTR or bottom-left for RTL
      • N: next line
      - * @param $resize (mixed) If true resize (reduce) the image to fit $w and $h (requires GD or ImageMagick library); if false do not resize; if 2 force resize in all cases (upscaling and downscaling). - * @param $dpi (int) dot-per-inch resolution used on resize - * @param $palign (string) Allows to center or align the image on the current line. Possible values are:
      • L : left align
      • C : center
      • R : right align
      • '' : empty string : left for LTR or right for RTL
      - * @param $ismask (boolean) true if this image is a mask, false otherwise - * @param $imgmask (mixed) image object returned by this function or false - * @param $border (mixed) Indicates if borders must be drawn around the cell. The value can be a number:
      • 0: no border (default)
      • 1: frame
      or a string containing some or all of the following characters (in any order):
      • L: left
      • T: top
      • R: right
      • B: bottom
      or an array of line styles for each border group - for example: array('LTRB' => array('width' => 2, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0))) - * @param $fitbox (mixed) If not false scale image dimensions proportionally to fit within the ($w, $h) box. $fitbox can be true or a 2 characters string indicating the image alignment inside the box. The first character indicate the horizontal alignment (L = left, C = center, R = right) the second character indicate the vertical algnment (T = top, M = middle, B = bottom). - * @param $hidden (boolean) If true do not display the image. - * @param $fitonpage (boolean) If true the image is resized to not exceed page dimensions. - * @param $alt (boolean) If true the image will be added as alternative and not directly printed (the ID of the image will be returned). - * @param $altimgs (array) Array of alternate images IDs. Each alternative image must be an array with two values: an integer representing the image ID (the value returned by the Image method) and a boolean value to indicate if the image is the default for printing. - * @return image information - * @public - * @since 1.1 - */ - public function Image($file, $x='', $y='', $w=0, $h=0, $type='', $link='', $align='', $resize=false, $dpi=300, $palign='', $ismask=false, $imgmask=false, $border=0, $fitbox=false, $hidden=false, $fitonpage=false, $alt=false, $altimgs=array()) { - if ($this->state != 2) { - return; - } - if (strcmp($x, '') === 0) { - $x = $this->x; - } - if (strcmp($y, '') === 0) { - $y = $this->y; - } - // check page for no-write regions and adapt page margins if necessary - list($x, $y) = $this->checkPageRegions($h, $x, $y); - $exurl = ''; // external streams - $imsize = FALSE; - // check if we are passing an image as file or string - if ($file[0] === '@') { - // image from string - $imgdata = substr($file, 1); - } else { // image file - if ($file[0] === '*') { - // image as external stream - $file = substr($file, 1); - $exurl = $file; - } - // check if file exist and it is valid - if (!@TCPDF_STATIC::file_exists($file)) { - return false; - } - if (($imsize = @getimagesize($file)) === FALSE) { - if (in_array($file, $this->imagekeys)) { - // get existing image data - $info = $this->getImageBuffer($file); - $imsize = array($info['w'], $info['h']); - } elseif (strpos($file, '__tcpdf_'.$this->file_id.'_img') === FALSE) { - $imgdata = TCPDF_STATIC::fileGetContents($file); - } - } - } - if (!empty($imgdata)) { - // copy image to cache - $original_file = $file; - $file = TCPDF_STATIC::getObjFilename('img', $this->file_id); - $fp = TCPDF_STATIC::fopenLocal($file, 'w'); - if (!$fp) { - $this->Error('Unable to write file: '.$file); - } - fwrite($fp, $imgdata); - fclose($fp); - unset($imgdata); - $imsize = @getimagesize($file); - if ($imsize === FALSE) { - unlink($file); - $file = $original_file; - } - } - if ($imsize === FALSE) { - if (($w > 0) AND ($h > 0)) { - // get measures from specified data - $pw = $this->getHTMLUnitToUnits($w, 0, $this->pdfunit, true) * $this->imgscale * $this->k; - $ph = $this->getHTMLUnitToUnits($h, 0, $this->pdfunit, true) * $this->imgscale * $this->k; - $imsize = array($pw, $ph); - } else { - $this->Error('[Image] Unable to get the size of the image: '.$file); - } - } - // file hash - $filehash = md5($file); - // get original image width and height in pixels - list($pixw, $pixh) = $imsize; - // calculate image width and height on document - if (($w <= 0) AND ($h <= 0)) { - // convert image size to document unit - $w = $this->pixelsToUnits($pixw); - $h = $this->pixelsToUnits($pixh); - } elseif ($w <= 0) { - $w = $h * $pixw / $pixh; - } elseif ($h <= 0) { - $h = $w * $pixh / $pixw; - } elseif (($fitbox !== false) AND ($w > 0) AND ($h > 0)) { - if (strlen($fitbox) !== 2) { - // set default alignment - $fitbox = '--'; - } - // scale image dimensions proportionally to fit within the ($w, $h) box - if ((($w * $pixh) / ($h * $pixw)) < 1) { - // store current height - $oldh = $h; - // calculate new height - $h = $w * $pixh / $pixw; - // height difference - $hdiff = ($oldh - $h); - // vertical alignment - switch (strtoupper($fitbox[1])) { - case 'T': { - break; - } - case 'M': { - $y += ($hdiff / 2); - break; - } - case 'B': { - $y += $hdiff; - break; - } - } - } else { - // store current width - $oldw = $w; - // calculate new width - $w = $h * $pixw / $pixh; - // width difference - $wdiff = ($oldw - $w); - // horizontal alignment - switch (strtoupper($fitbox[0])) { - case 'L': { - if ($this->rtl) { - $x -= $wdiff; - } - break; - } - case 'C': { - if ($this->rtl) { - $x -= ($wdiff / 2); - } else { - $x += ($wdiff / 2); - } - break; - } - case 'R': { - if (!$this->rtl) { - $x += $wdiff; - } - break; - } - } - } - } - // fit the image on available space - list($w, $h, $x, $y) = $this->fitBlock($w, $h, $x, $y, $fitonpage); - // calculate new minimum dimensions in pixels - $neww = round($w * $this->k * $dpi / $this->dpi); - $newh = round($h * $this->k * $dpi / $this->dpi); - // check if resize is necessary (resize is used only to reduce the image) - $newsize = ($neww * $newh); - $pixsize = ($pixw * $pixh); - if (intval($resize) == 2) { - $resize = true; - } elseif ($newsize >= $pixsize) { - $resize = false; - } - // check if image has been already added on document - $newimage = true; - if (in_array($file, $this->imagekeys)) { - $newimage = false; - // get existing image data - $info = $this->getImageBuffer($file); - if (strpos($file, '__tcpdf_'.$this->file_id.'_imgmask_') === FALSE) { - // check if the newer image is larger - $oldsize = ($info['w'] * $info['h']); - if ((($oldsize < $newsize) AND ($resize)) OR (($oldsize < $pixsize) AND (!$resize))) { - $newimage = true; - } - } - } elseif (($ismask === false) AND ($imgmask === false) AND (strpos($file, '__tcpdf_'.$this->file_id.'_imgmask_') === FALSE)) { - // create temp image file (without alpha channel) - $tempfile_plain = K_PATH_CACHE.'__tcpdf_'.$this->file_id.'_imgmask_plain_'.$filehash; - // create temp alpha file - $tempfile_alpha = K_PATH_CACHE.'__tcpdf_'.$this->file_id.'_imgmask_alpha_'.$filehash; - // check for cached images - if (in_array($tempfile_plain, $this->imagekeys)) { - // get existing image data - $info = $this->getImageBuffer($tempfile_plain); - // check if the newer image is larger - $oldsize = ($info['w'] * $info['h']); - if ((($oldsize < $newsize) AND ($resize)) OR (($oldsize < $pixsize) AND (!$resize))) { - $newimage = true; - } else { - $newimage = false; - // embed mask image - $imgmask = $this->Image($tempfile_alpha, $x, $y, $w, $h, 'PNG', '', '', $resize, $dpi, '', true, false); - // embed image, masked with previously embedded mask - return $this->Image($tempfile_plain, $x, $y, $w, $h, $type, $link, $align, $resize, $dpi, $palign, false, $imgmask); - } - } - } - if ($newimage) { - //First use of image, get info - $type = strtolower($type); - if ($type == '') { - $type = TCPDF_IMAGES::getImageFileType($file, $imsize); - } elseif ($type == 'jpg') { - $type = 'jpeg'; - } - $mqr = TCPDF_STATIC::get_mqr(); - TCPDF_STATIC::set_mqr(false); - // Specific image handlers (defined on TCPDF_IMAGES CLASS) - $mtd = '_parse'.$type; - // GD image handler function - $gdfunction = 'imagecreatefrom'.$type; - $info = false; - if ((method_exists('TCPDF_IMAGES', $mtd)) AND (!($resize AND (function_exists($gdfunction) OR extension_loaded('imagick'))))) { - // TCPDF image functions - $info = TCPDF_IMAGES::$mtd($file); - if (($ismask === false) AND ($imgmask === false) AND (strpos($file, '__tcpdf_'.$this->file_id.'_imgmask_') === FALSE) - AND (($info === 'pngalpha') OR (isset($info['trns']) AND !empty($info['trns'])))) { - return $this->ImagePngAlpha($file, $x, $y, $pixw, $pixh, $w, $h, 'PNG', $link, $align, $resize, $dpi, $palign, $filehash); - } - } - if (($info === false) AND function_exists($gdfunction)) { - try { - // GD library - $img = $gdfunction($file); - if ($img !== false) { - if ($resize) { - $imgr = imagecreatetruecolor($neww, $newh); - if (($type == 'gif') OR ($type == 'png')) { - $imgr = TCPDF_IMAGES::setGDImageTransparency($imgr, $img); - } - imagecopyresampled($imgr, $img, 0, 0, 0, 0, $neww, $newh, $pixw, $pixh); - $img = $imgr; - } - if (($type == 'gif') OR ($type == 'png')) { - $info = TCPDF_IMAGES::_toPNG($img, TCPDF_STATIC::getObjFilename('img', $this->file_id)); - } else { - $info = TCPDF_IMAGES::_toJPEG($img, $this->jpeg_quality, TCPDF_STATIC::getObjFilename('img', $this->file_id)); - } - } - } catch(Exception $e) { - $info = false; - } - } - if (($info === false) AND extension_loaded('imagick')) { - try { - // ImageMagick library - $img = new Imagick(); - if ($type == 'svg') { - if ($file[0] === '@') { - // image from string - $svgimg = substr($file, 1); - } else { - // get SVG file content - $svgimg = TCPDF_STATIC::fileGetContents($file); - } - if ($svgimg !== FALSE) { - // get width and height - $regs = array(); - if (preg_match('/]*)>/si', $svgimg, $regs)) { - $svgtag = $regs[1]; - $tmp = array(); - if (preg_match('/[\s]+width[\s]*=[\s]*"([^"]*)"/si', $svgtag, $tmp)) { - $ow = $this->getHTMLUnitToUnits($tmp[1], 1, $this->svgunit, false); - $owu = sprintf('%F', ($ow * $dpi / 72)).$this->pdfunit; - $svgtag = preg_replace('/[\s]+width[\s]*=[\s]*"[^"]*"/si', ' width="'.$owu.'"', $svgtag, 1); - } else { - $ow = $w; - } - $tmp = array(); - if (preg_match('/[\s]+height[\s]*=[\s]*"([^"]*)"/si', $svgtag, $tmp)) { - $oh = $this->getHTMLUnitToUnits($tmp[1], 1, $this->svgunit, false); - $ohu = sprintf('%F', ($oh * $dpi / 72)).$this->pdfunit; - $svgtag = preg_replace('/[\s]+height[\s]*=[\s]*"[^"]*"/si', ' height="'.$ohu.'"', $svgtag, 1); - } else { - $oh = $h; - } - $tmp = array(); - if (!preg_match('/[\s]+viewBox[\s]*=[\s]*"[\s]*([0-9\.]+)[\s]+([0-9\.]+)[\s]+([0-9\.]+)[\s]+([0-9\.]+)[\s]*"/si', $svgtag, $tmp)) { - $vbw = ($ow * $this->imgscale * $this->k); - $vbh = ($oh * $this->imgscale * $this->k); - $vbox = sprintf(' viewBox="0 0 %F %F" ', $vbw, $vbh); - $svgtag = $vbox.$svgtag; - } - $svgimg = preg_replace('/]*)>/si', '', $svgimg, 1); - } - $img->readImageBlob($svgimg); - } - } else { - $img->readImage($file); - } - if ($resize) { - $img->resizeImage($neww, $newh, 10, 1, false); - } - $img->setCompressionQuality($this->jpeg_quality); - $img->setImageFormat('jpeg'); - $tempname = TCPDF_STATIC::getObjFilename('img', $this->file_id); - $img->writeImage($tempname); - $info = TCPDF_IMAGES::_parsejpeg($tempname); - unlink($tempname); - $img->destroy(); - } catch(Exception $e) { - $info = false; - } - } - if ($info === false) { - // unable to process image - return; - } - TCPDF_STATIC::set_mqr($mqr); - if ($ismask) { - // force grayscale - $info['cs'] = 'DeviceGray'; - } - if ($imgmask !== false) { - $info['masked'] = $imgmask; - } - if (!empty($exurl)) { - $info['exurl'] = $exurl; - } - // array of alternative images - $info['altimgs'] = $altimgs; - // add image to document - $info['i'] = $this->setImageBuffer($file, $info); - } - // set alignment - $this->img_rb_y = $y + $h; - // set alignment - if ($this->rtl) { - if ($palign == 'L') { - $ximg = $this->lMargin; - } elseif ($palign == 'C') { - $ximg = ($this->w + $this->lMargin - $this->rMargin - $w) / 2; - } elseif ($palign == 'R') { - $ximg = $this->w - $this->rMargin - $w; - } else { - $ximg = $x - $w; - } - $this->img_rb_x = $ximg; - } else { - if ($palign == 'L') { - $ximg = $this->lMargin; - } elseif ($palign == 'C') { - $ximg = ($this->w + $this->lMargin - $this->rMargin - $w) / 2; - } elseif ($palign == 'R') { - $ximg = $this->w - $this->rMargin - $w; - } else { - $ximg = $x; - } - $this->img_rb_x = $ximg + $w; - } - if ($ismask OR $hidden) { - // image is not displayed - return $info['i']; - } - $xkimg = $ximg * $this->k; - if (!$alt) { - // only non-alternative immages will be set - $this->_out(sprintf('q %F 0 0 %F %F %F cm /I%u Do Q', ($w * $this->k), ($h * $this->k), $xkimg, (($this->h - ($y + $h)) * $this->k), $info['i'])); - } - if (!empty($border)) { - $bx = $this->x; - $by = $this->y; - $this->x = $ximg; - if ($this->rtl) { - $this->x += $w; - } - $this->y = $y; - $this->Cell($w, $h, '', $border, 0, '', 0, '', 0, true); - $this->x = $bx; - $this->y = $by; - } - if ($link) { - $this->Link($ximg, $y, $w, $h, $link, 0); - } - // set pointer to align the next text/objects - switch($align) { - case 'T': { - $this->y = $y; - $this->x = $this->img_rb_x; - break; - } - case 'M': { - $this->y = $y + round($h/2); - $this->x = $this->img_rb_x; - break; - } - case 'B': { - $this->y = $this->img_rb_y; - $this->x = $this->img_rb_x; - break; - } - case 'N': { - $this->SetY($this->img_rb_y); - break; - } - default:{ - break; - } - } - $this->endlinex = $this->img_rb_x; - if ($this->inxobj) { - // we are inside an XObject template - $this->xobjects[$this->xobjid]['images'][] = $info['i']; - } - return $info['i']; - } - - /** - * Extract info from a PNG image with alpha channel using the Imagick or GD library. - * @param $file (string) Name of the file containing the image. - * @param $x (float) Abscissa of the upper-left corner. - * @param $y (float) Ordinate of the upper-left corner. - * @param $wpx (float) Original width of the image in pixels. - * @param $hpx (float) original height of the image in pixels. - * @param $w (float) Width of the image in the page. If not specified or equal to zero, it is automatically calculated. - * @param $h (float) Height of the image in the page. If not specified or equal to zero, it is automatically calculated. - * @param $type (string) Image format. Possible values are (case insensitive): JPEG and PNG (whitout GD library) and all images supported by GD: GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM;. If not specified, the type is inferred from the file extension. - * @param $link (mixed) URL or identifier returned by AddLink(). - * @param $align (string) Indicates the alignment of the pointer next to image insertion relative to image height. The value can be:
      • T: top-right for LTR or top-left for RTL
      • M: middle-right for LTR or middle-left for RTL
      • B: bottom-right for LTR or bottom-left for RTL
      • N: next line
      - * @param $resize (boolean) If true resize (reduce) the image to fit $w and $h (requires GD library). - * @param $dpi (int) dot-per-inch resolution used on resize - * @param $palign (string) Allows to center or align the image on the current line. Possible values are:
      • L : left align
      • C : center
      • R : right align
      • '' : empty string : left for LTR or right for RTL
      - * @param $filehash (string) File hash used to build unique file names. - * @author Nicola Asuni - * @protected - * @since 4.3.007 (2008-12-04) - * @see Image() - */ - protected function ImagePngAlpha($file, $x, $y, $wpx, $hpx, $w, $h, $type, $link, $align, $resize, $dpi, $palign, $filehash='') { - // create temp images - if (empty($filehash)) { - $filehash = md5($file); - } - // create temp image file (without alpha channel) - $tempfile_plain = K_PATH_CACHE.'__tcpdf_'.$this->file_id.'_imgmask_plain_'.$filehash; - // create temp alpha file - $tempfile_alpha = K_PATH_CACHE.'__tcpdf_'.$this->file_id.'_imgmask_alpha_'.$filehash; - $parsed = false; - $parse_error = ''; - // ImageMagick extension - if (($parsed === false) AND extension_loaded('imagick')) { - try { - // ImageMagick library - $img = new Imagick(); - $img->readImage($file); - // clone image object - $imga = TCPDF_STATIC::objclone($img); - // extract alpha channel - if (method_exists($img, 'setImageAlphaChannel') AND defined('Imagick::ALPHACHANNEL_EXTRACT')) { - $img->setImageAlphaChannel(Imagick::ALPHACHANNEL_EXTRACT); - } else { - $img->separateImageChannel(8); // 8 = (imagick::CHANNEL_ALPHA | imagick::CHANNEL_OPACITY | imagick::CHANNEL_MATTE); - $img->negateImage(true); - } - $img->setImageFormat('png'); - $img->writeImage($tempfile_alpha); - // remove alpha channel - if (method_exists($imga, 'setImageMatte')) { - $imga->setImageMatte(false); - } else { - $imga->separateImageChannel(39); // 39 = (imagick::CHANNEL_ALL & ~(imagick::CHANNEL_ALPHA | imagick::CHANNEL_OPACITY | imagick::CHANNEL_MATTE)); - } - $imga->setImageFormat('png'); - $imga->writeImage($tempfile_plain); - $parsed = true; - } catch (Exception $e) { - // Imagemagick fails, try with GD - $parse_error = 'Imagick library error: '.$e->getMessage(); - } - } - // GD extension - if (($parsed === false) AND function_exists('imagecreatefrompng')) { - try { - // generate images - $img = imagecreatefrompng($file); - $imgalpha = imagecreate($wpx, $hpx); - // generate gray scale palette (0 -> 255) - for ($c = 0; $c < 256; ++$c) { - ImageColorAllocate($imgalpha, $c, $c, $c); - } - // extract alpha channel - for ($xpx = 0; $xpx < $wpx; ++$xpx) { - for ($ypx = 0; $ypx < $hpx; ++$ypx) { - $color = imagecolorat($img, $xpx, $ypx); - // get and correct gamma color - $alpha = $this->getGDgamma($img, $color); - imagesetpixel($imgalpha, $xpx, $ypx, $alpha); - } - } - imagepng($imgalpha, $tempfile_alpha); - imagedestroy($imgalpha); - // extract image without alpha channel - $imgplain = imagecreatetruecolor($wpx, $hpx); - imagecopy($imgplain, $img, 0, 0, 0, 0, $wpx, $hpx); - imagepng($imgplain, $tempfile_plain); - imagedestroy($imgplain); - $parsed = true; - } catch (Exception $e) { - // GD fails - $parse_error = 'GD library error: '.$e->getMessage(); - } - } - if ($parsed === false) { - if (empty($parse_error)) { - $this->Error('TCPDF requires the Imagick or GD extension to handle PNG images with alpha channel.'); - } else { - $this->Error($parse_error); - } - } - // embed mask image - $imgmask = $this->Image($tempfile_alpha, $x, $y, $w, $h, 'PNG', '', '', $resize, $dpi, '', true, false); - // embed image, masked with previously embedded mask - $this->Image($tempfile_plain, $x, $y, $w, $h, $type, $link, $align, $resize, $dpi, $palign, false, $imgmask); - } - - /** - * Get the GD-corrected PNG gamma value from alpha color - * @param $img (int) GD image Resource ID. - * @param $c (int) alpha color - * @protected - * @since 4.3.007 (2008-12-04) - */ - protected function getGDgamma($img, $c) { - if (!isset($this->gdgammacache['#'.$c])) { - $colors = imagecolorsforindex($img, $c); - // GD alpha is only 7 bit (0 -> 127) - $this->gdgammacache['#'.$c] = (((127 - $colors['alpha']) / 127) * 255); - // correct gamma - $this->gdgammacache['#'.$c] = (pow(($this->gdgammacache['#'.$c] / 255), 2.2) * 255); - // store the latest values on cache to improve performances - if (count($this->gdgammacache) > 8) { - // remove one element from the cache array - array_shift($this->gdgammacache); - } - } - return $this->gdgammacache['#'.$c]; - } - - /** - * Performs a line break. - * The current abscissa goes back to the left margin and the ordinate increases by the amount passed in parameter. - * @param $h (float) The height of the break. By default, the value equals the height of the last printed cell. - * @param $cell (boolean) if true add the current left (or right o for RTL) padding to the X coordinate - * @public - * @since 1.0 - * @see Cell() - */ - public function Ln($h='', $cell=false) { - if (($this->num_columns > 1) AND ($this->y == $this->columns[$this->current_column]['y']) AND isset($this->columns[$this->current_column]['x']) AND ($this->x == $this->columns[$this->current_column]['x'])) { - // revove vertical space from the top of the column - return; - } - if ($cell) { - if ($this->rtl) { - $cellpadding = $this->cell_padding['R']; - } else { - $cellpadding = $this->cell_padding['L']; - } - } else { - $cellpadding = 0; - } - if ($this->rtl) { - $this->x = $this->w - $this->rMargin - $cellpadding; - } else { - $this->x = $this->lMargin + $cellpadding; - } - if (is_string($h)) { - $h = $this->lasth; - } - $this->y += $h; - $this->newline = true; - } - - /** - * Returns the relative X value of current position. - * The value is relative to the left border for LTR languages and to the right border for RTL languages. - * @return float - * @public - * @since 1.2 - * @see SetX(), GetY(), SetY() - */ - public function GetX() { - //Get x position - if ($this->rtl) { - return ($this->w - $this->x); - } else { - return $this->x; - } - } - - /** - * Returns the absolute X value of current position. - * @return float - * @public - * @since 1.2 - * @see SetX(), GetY(), SetY() - */ - public function GetAbsX() { - return $this->x; - } - - /** - * Returns the ordinate of the current position. - * @return float - * @public - * @since 1.0 - * @see SetY(), GetX(), SetX() - */ - public function GetY() { - return $this->y; - } - - /** - * Defines the abscissa of the current position. - * If the passed value is negative, it is relative to the right of the page (or left if language is RTL). - * @param $x (float) The value of the abscissa in user units. - * @param $rtloff (boolean) if true always uses the page top-left corner as origin of axis. - * @public - * @since 1.2 - * @see GetX(), GetY(), SetY(), SetXY() - */ - public function SetX($x, $rtloff=false) { - $x = floatval($x); - if (!$rtloff AND $this->rtl) { - if ($x >= 0) { - $this->x = $this->w - $x; - } else { - $this->x = abs($x); - } - } else { - if ($x >= 0) { - $this->x = $x; - } else { - $this->x = $this->w + $x; - } - } - if ($this->x < 0) { - $this->x = 0; - } - if ($this->x > $this->w) { - $this->x = $this->w; - } - } - - /** - * Moves the current abscissa back to the left margin and sets the ordinate. - * If the passed value is negative, it is relative to the bottom of the page. - * @param $y (float) The value of the ordinate in user units. - * @param $resetx (bool) if true (default) reset the X position. - * @param $rtloff (boolean) if true always uses the page top-left corner as origin of axis. - * @public - * @since 1.0 - * @see GetX(), GetY(), SetY(), SetXY() - */ - public function SetY($y, $resetx=true, $rtloff=false) { - $y = floatval($y); - if ($resetx) { - //reset x - if (!$rtloff AND $this->rtl) { - $this->x = $this->w - $this->rMargin; - } else { - $this->x = $this->lMargin; - } - } - if ($y >= 0) { - $this->y = $y; - } else { - $this->y = $this->h + $y; - } - if ($this->y < 0) { - $this->y = 0; - } - if ($this->y > $this->h) { - $this->y = $this->h; - } - } - - /** - * Defines the abscissa and ordinate of the current position. - * If the passed values are negative, they are relative respectively to the right and bottom of the page. - * @param $x (float) The value of the abscissa. - * @param $y (float) The value of the ordinate. - * @param $rtloff (boolean) if true always uses the page top-left corner as origin of axis. - * @public - * @since 1.2 - * @see SetX(), SetY() - */ - public function SetXY($x, $y, $rtloff=false) { - $this->SetY($y, false, $rtloff); - $this->SetX($x, $rtloff); - } - - /** - * Set the absolute X coordinate of the current pointer. - * @param $x (float) The value of the abscissa in user units. - * @public - * @since 5.9.186 (2012-09-13) - * @see setAbsX(), setAbsY(), SetAbsXY() - */ - public function SetAbsX($x) { - $this->x = floatval($x); - } - - /** - * Set the absolute Y coordinate of the current pointer. - * @param $y (float) (float) The value of the ordinate in user units. - * @public - * @since 5.9.186 (2012-09-13) - * @see setAbsX(), setAbsY(), SetAbsXY() - */ - public function SetAbsY($y) { - $this->y = floatval($y); - } - - /** - * Set the absolute X and Y coordinates of the current pointer. - * @param $x (float) The value of the abscissa in user units. - * @param $y (float) (float) The value of the ordinate in user units. - * @public - * @since 5.9.186 (2012-09-13) - * @see setAbsX(), setAbsY(), SetAbsXY() - */ - public function SetAbsXY($x, $y) { - $this->SetAbsX($x); - $this->SetAbsY($y); - } - - /** - * Send the document to a given destination: string, local file or browser. - * In the last case, the plug-in may be used (if present) or a download ("Save as" dialog box) may be forced.
      - * The method first calls Close() if necessary to terminate the document. - * @param $name (string) The name of the file when saved. Note that special characters are removed and blanks characters are replaced with the underscore character. - * @param $dest (string) Destination where to send the document. It can take one of the following values:
      • I: send the file inline to the browser (default). The plug-in is used if available. The name given by name is used when one selects the "Save as" option on the link generating the PDF.
      • D: send to the browser and force a file download with the name given by name.
      • F: save to a local server file with the name given by name.
      • S: return the document as a string (name is ignored).
      • FI: equivalent to F + I option
      • FD: equivalent to F + D option
      • E: return the document as base64 mime multi-part email attachment (RFC 2045)
      - * @return string - * @public - * @since 1.0 - * @see Close() - */ - public function Output($name='doc.pdf', $dest='I') { - //Output PDF to some destination - //Finish document if necessary - if ($this->state < 3) { - $this->Close(); - } - //Normalize parameters - if (is_bool($dest)) { - $dest = $dest ? 'D' : 'F'; - } - $dest = strtoupper($dest); - if ($dest[0] != 'F') { - $name = preg_replace('/[\s]+/', '_', $name); - $name = preg_replace('/[^a-zA-Z0-9_\.-]/', '', $name); - } - if ($this->sign) { - // *** apply digital signature to the document *** - // get the document content - $pdfdoc = $this->getBuffer(); - // remove last newline - $pdfdoc = substr($pdfdoc, 0, -1); - // remove filler space - $byterange_string_len = strlen(TCPDF_STATIC::$byterange_string); - // define the ByteRange - $byte_range = array(); - $byte_range[0] = 0; - $byte_range[1] = strpos($pdfdoc, TCPDF_STATIC::$byterange_string) + $byterange_string_len + 10; - $byte_range[2] = $byte_range[1] + $this->signature_max_length + 2; - $byte_range[3] = strlen($pdfdoc) - $byte_range[2]; - $pdfdoc = substr($pdfdoc, 0, $byte_range[1]).substr($pdfdoc, $byte_range[2]); - // replace the ByteRange - $byterange = sprintf('/ByteRange[0 %u %u %u]', $byte_range[1], $byte_range[2], $byte_range[3]); - $byterange .= str_repeat(' ', ($byterange_string_len - strlen($byterange))); - $pdfdoc = str_replace(TCPDF_STATIC::$byterange_string, $byterange, $pdfdoc); - // write the document to a temporary folder - $tempdoc = TCPDF_STATIC::getObjFilename('doc', $this->file_id); - $f = TCPDF_STATIC::fopenLocal($tempdoc, 'wb'); - if (!$f) { - $this->Error('Unable to create temporary file: '.$tempdoc); - } - $pdfdoc_length = strlen($pdfdoc); - fwrite($f, $pdfdoc, $pdfdoc_length); - fclose($f); - // get digital signature via openssl library - $tempsign = TCPDF_STATIC::getObjFilename('sig', $this->file_id); - if (empty($this->signature_data['extracerts'])) { - openssl_pkcs7_sign($tempdoc, $tempsign, $this->signature_data['signcert'], array($this->signature_data['privkey'], $this->signature_data['password']), array(), PKCS7_BINARY | PKCS7_DETACHED); - } else { - openssl_pkcs7_sign($tempdoc, $tempsign, $this->signature_data['signcert'], array($this->signature_data['privkey'], $this->signature_data['password']), array(), PKCS7_BINARY | PKCS7_DETACHED, $this->signature_data['extracerts']); - } - // read signature - $signature = file_get_contents($tempsign); - // extract signature - $signature = substr($signature, $pdfdoc_length); - $signature = substr($signature, (strpos($signature, "%%EOF\n\n------") + 13)); - $tmparr = explode("\n\n", $signature); - $signature = $tmparr[1]; - // decode signature - $signature = base64_decode(trim($signature)); - // add TSA timestamp to signature - $signature = $this->applyTSA($signature); - // convert signature to hex - $signature = current(unpack('H*', $signature)); - $signature = str_pad($signature, $this->signature_max_length, '0'); - // Add signature to the document - $this->buffer = substr($pdfdoc, 0, $byte_range[1]).'<'.$signature.'>'.substr($pdfdoc, $byte_range[1]); - $this->bufferlen = strlen($this->buffer); - } - switch($dest) { - case 'I': { - // Send PDF to the standard output - if (ob_get_contents()) { - $this->Error('Some data has already been output, can\'t send PDF file'); - } - if (php_sapi_name() != 'cli') { - // send output to a browser - header('Content-Type: application/pdf'); - if (headers_sent()) { - $this->Error('Some data has already been output to browser, can\'t send PDF file'); - } - header('Cache-Control: private, must-revalidate, post-check=0, pre-check=0, max-age=1'); - //header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1 - header('Pragma: public'); - header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past - header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); - header('Content-Disposition: inline; filename="'.basename($name).'"'); - TCPDF_STATIC::sendOutputData($this->getBuffer(), $this->bufferlen); - } else { - echo $this->getBuffer(); - } - break; - } - case 'D': { - // download PDF as file - if (ob_get_contents()) { - $this->Error('Some data has already been output, can\'t send PDF file'); - } - header('Content-Description: File Transfer'); - if (headers_sent()) { - $this->Error('Some data has already been output to browser, can\'t send PDF file'); - } - header('Cache-Control: private, must-revalidate, post-check=0, pre-check=0, max-age=1'); - //header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1 - header('Pragma: public'); - header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past - header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); - // force download dialog - if (strpos(php_sapi_name(), 'cgi') === false) { - header('Content-Type: application/force-download'); - header('Content-Type: application/octet-stream', false); - header('Content-Type: application/download', false); - header('Content-Type: application/pdf', false); - } else { - header('Content-Type: application/pdf'); - } - // use the Content-Disposition header to supply a recommended filename - header('Content-Disposition: attachment; filename="'.basename($name).'"'); - header('Content-Transfer-Encoding: binary'); - TCPDF_STATIC::sendOutputData($this->getBuffer(), $this->bufferlen); - break; - } - case 'F': - case 'FI': - case 'FD': { - // save PDF to a local file - $f = TCPDF_STATIC::fopenLocal($name, 'wb'); - if (!$f) { - $this->Error('Unable to create output file: '.$name); - } - fwrite($f, $this->getBuffer(), $this->bufferlen); - fclose($f); - if ($dest == 'FI') { - // send headers to browser - header('Content-Type: application/pdf'); - header('Cache-Control: private, must-revalidate, post-check=0, pre-check=0, max-age=1'); - //header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1 - header('Pragma: public'); - header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past - header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); - header('Content-Disposition: inline; filename="'.basename($name).'"'); - TCPDF_STATIC::sendOutputData(file_get_contents($name), filesize($name)); - } elseif ($dest == 'FD') { - // send headers to browser - if (ob_get_contents()) { - $this->Error('Some data has already been output, can\'t send PDF file'); - } - header('Content-Description: File Transfer'); - if (headers_sent()) { - $this->Error('Some data has already been output to browser, can\'t send PDF file'); - } - header('Cache-Control: private, must-revalidate, post-check=0, pre-check=0, max-age=1'); - header('Pragma: public'); - header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past - header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); - // force download dialog - if (strpos(php_sapi_name(), 'cgi') === false) { - header('Content-Type: application/force-download'); - header('Content-Type: application/octet-stream', false); - header('Content-Type: application/download', false); - header('Content-Type: application/pdf', false); - } else { - header('Content-Type: application/pdf'); - } - // use the Content-Disposition header to supply a recommended filename - header('Content-Disposition: attachment; filename="'.basename($name).'"'); - header('Content-Transfer-Encoding: binary'); - TCPDF_STATIC::sendOutputData(file_get_contents($name), filesize($name)); - } - break; - } - case 'E': { - // return PDF as base64 mime multi-part email attachment (RFC 2045) - $retval = 'Content-Type: application/pdf;'."\r\n"; - $retval .= ' name="'.$name.'"'."\r\n"; - $retval .= 'Content-Transfer-Encoding: base64'."\r\n"; - $retval .= 'Content-Disposition: attachment;'."\r\n"; - $retval .= ' filename="'.$name.'"'."\r\n\r\n"; - $retval .= chunk_split(base64_encode($this->getBuffer()), 76, "\r\n"); - return $retval; - } - case 'S': { - // returns PDF as a string - return $this->getBuffer(); - } - default: { - $this->Error('Incorrect output destination: '.$dest); - } - } - return ''; - } - - protected static $cleaned_ids = array(); - /** - * Unset all class variables except the following critical variables. - * @param $destroyall (boolean) if true destroys all class variables, otherwise preserves critical variables. - * @param $preserve_objcopy (boolean) if true preserves the objcopy variable - * @public - * @since 4.5.016 (2009-02-24) - */ - public function _destroy($destroyall=false, $preserve_objcopy=false) { - // restore internal encoding - if (isset($this->internal_encoding) AND !empty($this->internal_encoding)) { - mb_internal_encoding($this->internal_encoding); - } - if (isset(self::$cleaned_ids[$this->file_id])) { - $destroyall = false; - } - if ($destroyall AND !$preserve_objcopy) { - self::$cleaned_ids[$this->file_id] = true; - // remove all temporary files - if ($handle = opendir(K_PATH_CACHE)) { - while ( false !== ( $file_name = readdir( $handle ) ) ) { - if (strpos($file_name, '__tcpdf_'.$this->file_id.'_') === 0) { - unlink(K_PATH_CACHE.$file_name); - } - } - closedir($handle); - } - if (isset($this->imagekeys)) { - foreach($this->imagekeys as $file) { - unlink($file); - } - } - } - $preserve = array( - 'file_id', - 'internal_encoding', - 'state', - 'bufferlen', - 'buffer', - 'cached_files', - 'sign', - 'signature_data', - 'signature_max_length', - 'byterange_string', - 'tsa_timestamp', - 'tsa_data' - ); - foreach (array_keys(get_object_vars($this)) as $val) { - if ($destroyall OR !in_array($val, $preserve)) { - if ((!$preserve_objcopy OR ($val != 'objcopy')) AND ($val != 'file_id') AND isset($this->$val)) { - unset($this->$val); - } - } - } - } - - /** - * Check for locale-related bug - * @protected - */ - protected function _dochecks() { - //Check for locale-related bug - if (1.1 == 1) { - $this->Error('Don\'t alter the locale before including class file'); - } - //Check for decimal separator - if (sprintf('%.1F', 1.0) != '1.0') { - setlocale(LC_NUMERIC, 'C'); - } - } - - /** - * Return an array containing variations for the basic page number alias. - * @param $a (string) Base alias. - * @return array of page number aliases - * @protected - */ - protected function getInternalPageNumberAliases($a= '') { - $alias = array(); - // build array of Unicode + ASCII variants (the order is important) - $alias = array('u' => array(), 'a' => array()); - $u = '{'.$a.'}'; - $alias['u'][] = TCPDF_STATIC::_escape($u); - if ($this->isunicode) { - $alias['u'][] = TCPDF_STATIC::_escape(TCPDF_FONTS::UTF8ToLatin1($u, $this->isunicode, $this->CurrentFont)); - $alias['u'][] = TCPDF_STATIC::_escape(TCPDF_FONTS::utf8StrRev($u, false, $this->tmprtl, $this->isunicode, $this->CurrentFont)); - $alias['a'][] = TCPDF_STATIC::_escape(TCPDF_FONTS::UTF8ToLatin1($a, $this->isunicode, $this->CurrentFont)); - $alias['a'][] = TCPDF_STATIC::_escape(TCPDF_FONTS::utf8StrRev($a, false, $this->tmprtl, $this->isunicode, $this->CurrentFont)); - } - $alias['a'][] = TCPDF_STATIC::_escape($a); - return $alias; - } - - /** - * Return an array containing all internal page aliases. - * @return array of page number aliases - * @protected - */ - protected function getAllInternalPageNumberAliases() { - $basic_alias = array(TCPDF_STATIC::$alias_tot_pages, TCPDF_STATIC::$alias_num_page, TCPDF_STATIC::$alias_group_tot_pages, TCPDF_STATIC::$alias_group_num_page, TCPDF_STATIC::$alias_right_shift); - $pnalias = array(); - foreach($basic_alias as $k => $a) { - $pnalias[$k] = $this->getInternalPageNumberAliases($a); - } - return $pnalias; - } - - /** - * Replace right shift page number aliases with spaces to correct right alignment. - * This works perfectly only when using monospaced fonts. - * @param $page (string) Page content. - * @param $aliases (array) Array of page aliases. - * @param $diff (int) initial difference to add. - * @return replaced page content. - * @protected - */ - protected function replaceRightShiftPageNumAliases($page, $aliases, $diff) { - foreach ($aliases as $type => $alias) { - foreach ($alias as $a) { - // find position of compensation factor - $startnum = (strpos($a, ':') + 1); - $a = substr($a, 0, $startnum); - if (($pos = strpos($page, $a)) !== false) { - // end of alias - $endnum = strpos($page, '}', $pos); - // string to be replaced - $aa = substr($page, $pos, ($endnum - $pos + 1)); - // get compensation factor - $ratio = substr($page, ($pos + $startnum), ($endnum - $pos - $startnum)); - $ratio = preg_replace('/[^0-9\.]/', '', $ratio); - $ratio = floatval($ratio); - if ($type == 'u') { - $chrdiff = floor(($diff + 12) * $ratio); - $shift = str_repeat(' ', $chrdiff); - $shift = TCPDF_FONTS::UTF8ToUTF16BE($shift, false, $this->isunicode, $this->CurrentFont); - } else { - $chrdiff = floor(($diff + 11) * $ratio); - $shift = str_repeat(' ', $chrdiff); - } - $page = str_replace($aa, $shift, $page); - } - } - } - return $page; - } - - /** - * Set page boxes to be included on page descriptions. - * @param $boxes (array) Array of page boxes to set on document: ('MediaBox', 'CropBox', 'BleedBox', 'TrimBox', 'ArtBox'). - * @protected - */ - protected function setPageBoxTypes($boxes) { - $this->page_boxes = array(); - foreach ($boxes as $box) { - if (in_array($box, TCPDF_STATIC::$pageboxes)) { - $this->page_boxes[] = $box; - } - } - } - - /** - * Output pages (and replace page number aliases). - * @protected - */ - protected function _putpages() { - $filter = ($this->compress) ? '/Filter /FlateDecode ' : ''; - // get internal aliases for page numbers - $pnalias = $this->getAllInternalPageNumberAliases(); - $num_pages = $this->numpages; - $ptpa = TCPDF_STATIC::formatPageNumber(($this->starting_page_number + $num_pages - 1)); - $ptpu = TCPDF_FONTS::UTF8ToUTF16BE($ptpa, false, $this->isunicode, $this->CurrentFont); - $ptp_num_chars = $this->GetNumChars($ptpa); - $pagegroupnum = 0; - $groupnum = 0; - $ptgu = 1; - $ptga = 1; - $ptg_num_chars = 1; - for ($n = 1; $n <= $num_pages; ++$n) { - // get current page - $temppage = $this->getPageBuffer($n); - $pagelen = strlen($temppage); - // set replacements for total pages number - $pnpa = TCPDF_STATIC::formatPageNumber(($this->starting_page_number + $n - 1)); - $pnpu = TCPDF_FONTS::UTF8ToUTF16BE($pnpa, false, $this->isunicode, $this->CurrentFont); - $pnp_num_chars = $this->GetNumChars($pnpa); - $pdiff = 0; // difference used for right shift alignment of page numbers - $gdiff = 0; // difference used for right shift alignment of page group numbers - if (!empty($this->pagegroups)) { - if (isset($this->newpagegroup[$n])) { - $pagegroupnum = 0; - ++$groupnum; - $ptga = TCPDF_STATIC::formatPageNumber($this->pagegroups[$groupnum]); - $ptgu = TCPDF_FONTS::UTF8ToUTF16BE($ptga, false, $this->isunicode, $this->CurrentFont); - $ptg_num_chars = $this->GetNumChars($ptga); - } - ++$pagegroupnum; - $pnga = TCPDF_STATIC::formatPageNumber($pagegroupnum); - $pngu = TCPDF_FONTS::UTF8ToUTF16BE($pnga, false, $this->isunicode, $this->CurrentFont); - $png_num_chars = $this->GetNumChars($pnga); - // replace page numbers - $replace = array(); - $replace[] = array($ptgu, $ptg_num_chars, 9, $pnalias[2]['u']); - $replace[] = array($ptga, $ptg_num_chars, 7, $pnalias[2]['a']); - $replace[] = array($pngu, $png_num_chars, 9, $pnalias[3]['u']); - $replace[] = array($pnga, $png_num_chars, 7, $pnalias[3]['a']); - list($temppage, $gdiff) = TCPDF_STATIC::replacePageNumAliases($temppage, $replace, $gdiff); - } - // replace page numbers - $replace = array(); - $replace[] = array($ptpu, $ptp_num_chars, 9, $pnalias[0]['u']); - $replace[] = array($ptpa, $ptp_num_chars, 7, $pnalias[0]['a']); - $replace[] = array($pnpu, $pnp_num_chars, 9, $pnalias[1]['u']); - $replace[] = array($pnpa, $pnp_num_chars, 7, $pnalias[1]['a']); - list($temppage, $pdiff) = TCPDF_STATIC::replacePageNumAliases($temppage, $replace, $pdiff); - // replace right shift alias - $temppage = $this->replaceRightShiftPageNumAliases($temppage, $pnalias[4], max($pdiff, $gdiff)); - // replace EPS marker - $temppage = str_replace($this->epsmarker, '', $temppage); - //Page - $this->page_obj_id[$n] = $this->_newobj(); - $out = '<<'; - $out .= ' /Type /Page'; - $out .= ' /Parent 1 0 R'; - if (empty($this->signature_data['approval']) OR ($this->signature_data['approval'] != 'A')) { - $out .= ' /LastModified '.$this->_datestring(0, $this->doc_modification_timestamp); - } - $out .= ' /Resources 2 0 R'; - foreach ($this->page_boxes as $box) { - $out .= ' /'.$box; - $out .= sprintf(' [%F %F %F %F]', $this->pagedim[$n][$box]['llx'], $this->pagedim[$n][$box]['lly'], $this->pagedim[$n][$box]['urx'], $this->pagedim[$n][$box]['ury']); - } - if (isset($this->pagedim[$n]['BoxColorInfo']) AND !empty($this->pagedim[$n]['BoxColorInfo'])) { - $out .= ' /BoxColorInfo <<'; - foreach ($this->page_boxes as $box) { - if (isset($this->pagedim[$n]['BoxColorInfo'][$box])) { - $out .= ' /'.$box.' <<'; - if (isset($this->pagedim[$n]['BoxColorInfo'][$box]['C'])) { - $color = $this->pagedim[$n]['BoxColorInfo'][$box]['C']; - $out .= ' /C ['; - $out .= sprintf(' %F %F %F', ($color[0] / 255), ($color[1] / 255), ($color[2] / 255)); - $out .= ' ]'; - } - if (isset($this->pagedim[$n]['BoxColorInfo'][$box]['W'])) { - $out .= ' /W '.($this->pagedim[$n]['BoxColorInfo'][$box]['W'] * $this->k); - } - if (isset($this->pagedim[$n]['BoxColorInfo'][$box]['S'])) { - $out .= ' /S /'.$this->pagedim[$n]['BoxColorInfo'][$box]['S']; - } - if (isset($this->pagedim[$n]['BoxColorInfo'][$box]['D'])) { - $dashes = $this->pagedim[$n]['BoxColorInfo'][$box]['D']; - $out .= ' /D ['; - foreach ($dashes as $dash) { - $out .= sprintf(' %F', ($dash * $this->k)); - } - $out .= ' ]'; - } - $out .= ' >>'; - } - } - $out .= ' >>'; - } - $out .= ' /Contents '.($this->n + 1).' 0 R'; - $out .= ' /Rotate '.$this->pagedim[$n]['Rotate']; - if (!$this->pdfa_mode) { - $out .= ' /Group << /Type /Group /S /Transparency /CS /DeviceRGB >>'; - } - if (isset($this->pagedim[$n]['trans']) AND !empty($this->pagedim[$n]['trans'])) { - // page transitions - if (isset($this->pagedim[$n]['trans']['Dur'])) { - $out .= ' /Dur '.$this->pagedim[$n]['trans']['Dur']; - } - $out .= ' /Trans <<'; - $out .= ' /Type /Trans'; - if (isset($this->pagedim[$n]['trans']['S'])) { - $out .= ' /S /'.$this->pagedim[$n]['trans']['S']; - } - if (isset($this->pagedim[$n]['trans']['D'])) { - $out .= ' /D '.$this->pagedim[$n]['trans']['D']; - } - if (isset($this->pagedim[$n]['trans']['Dm'])) { - $out .= ' /Dm /'.$this->pagedim[$n]['trans']['Dm']; - } - if (isset($this->pagedim[$n]['trans']['M'])) { - $out .= ' /M /'.$this->pagedim[$n]['trans']['M']; - } - if (isset($this->pagedim[$n]['trans']['Di'])) { - $out .= ' /Di '.$this->pagedim[$n]['trans']['Di']; - } - if (isset($this->pagedim[$n]['trans']['SS'])) { - $out .= ' /SS '.$this->pagedim[$n]['trans']['SS']; - } - if (isset($this->pagedim[$n]['trans']['B'])) { - $out .= ' /B '.$this->pagedim[$n]['trans']['B']; - } - $out .= ' >>'; - } - $out .= $this->_getannotsrefs($n); - $out .= ' /PZ '.$this->pagedim[$n]['PZ']; - $out .= ' >>'; - $out .= "\n".'endobj'; - $this->_out($out); - //Page content - $p = ($this->compress) ? gzcompress($temppage) : $temppage; - $this->_newobj(); - $p = $this->_getrawstream($p); - $this->_out('<<'.$filter.'/Length '.strlen($p).'>> stream'."\n".$p."\n".'endstream'."\n".'endobj'); - } - //Pages root - $out = $this->_getobj(1)."\n"; - $out .= '<< /Type /Pages /Kids ['; - foreach($this->page_obj_id as $page_obj) { - $out .= ' '.$page_obj.' 0 R'; - } - $out .= ' ] /Count '.$num_pages.' >>'; - $out .= "\n".'endobj'; - $this->_out($out); - } - - /** - * Get references to page annotations. - * @param $n (int) page number - * @return string - * @protected - * @author Nicola Asuni - * @since 5.0.010 (2010-05-17) - */ - protected function _getannotsrefs($n) { - if (!(isset($this->PageAnnots[$n]) OR ($this->sign AND isset($this->signature_data['cert_type'])))) { - return ''; - } - $out = ' /Annots ['; - if (isset($this->PageAnnots[$n])) { - foreach ($this->PageAnnots[$n] as $key => $val) { - if (!in_array($val['n'], $this->radio_groups)) { - $out .= ' '.$val['n'].' 0 R'; - } - } - // add radiobutton groups - if (isset($this->radiobutton_groups[$n])) { - foreach ($this->radiobutton_groups[$n] as $key => $data) { - if (isset($data['n'])) { - $out .= ' '.$data['n'].' 0 R'; - } - } - } - } - if ($this->sign AND ($n == $this->signature_appearance['page']) AND isset($this->signature_data['cert_type'])) { - // set reference for signature object - $out .= ' '.$this->sig_obj_id.' 0 R'; - } - if (!empty($this->empty_signature_appearance)) { - foreach ($this->empty_signature_appearance as $esa) { - if ($esa['page'] == $n) { - // set reference for empty signature objects - $out .= ' '.$esa['objid'].' 0 R'; - } - } - } - $out .= ' ]'; - return $out; - } - - /** - * Output annotations objects for all pages. - * !!! THIS METHOD IS NOT YET COMPLETED !!! - * See section 12.5 of PDF 32000_2008 reference. - * @protected - * @author Nicola Asuni - * @since 4.0.018 (2008-08-06) - */ - protected function _putannotsobjs() { - // reset object counter - for ($n=1; $n <= $this->numpages; ++$n) { - if (isset($this->PageAnnots[$n])) { - // set page annotations - foreach ($this->PageAnnots[$n] as $key => $pl) { - $annot_obj_id = $this->PageAnnots[$n][$key]['n']; - // create annotation object for grouping radiobuttons - if (isset($this->radiobutton_groups[$n][$pl['txt']]) AND is_array($this->radiobutton_groups[$n][$pl['txt']])) { - $radio_button_obj_id = $this->radiobutton_groups[$n][$pl['txt']]['n']; - $annots = '<<'; - $annots .= ' /Type /Annot'; - $annots .= ' /Subtype /Widget'; - $annots .= ' /Rect [0 0 0 0]'; - if ($this->radiobutton_groups[$n][$pl['txt']]['#readonly#']) { - // read only - $annots .= ' /F 68'; - $annots .= ' /Ff 49153'; - } else { - $annots .= ' /F 4'; // default print for PDF/A - $annots .= ' /Ff 49152'; - } - $annots .= ' /T '.$this->_datastring($pl['txt'], $radio_button_obj_id); - if (isset($pl['opt']['tu']) AND is_string($pl['opt']['tu'])) { - $annots .= ' /TU '.$this->_datastring($pl['opt']['tu'], $radio_button_obj_id); - } - $annots .= ' /FT /Btn'; - $annots .= ' /Kids ['; - $defval = ''; - foreach ($this->radiobutton_groups[$n][$pl['txt']] as $key => $data) { - if (isset($data['kid'])) { - $annots .= ' '.$data['kid'].' 0 R'; - if ($data['def'] !== 'Off') { - $defval = $data['def']; - } - } - } - $annots .= ' ]'; - if (!empty($defval)) { - $annots .= ' /V /'.$defval; - } - $annots .= ' >>'; - $this->_out($this->_getobj($radio_button_obj_id)."\n".$annots."\n".'endobj'); - $this->form_obj_id[] = $radio_button_obj_id; - // store object id to be used on Parent entry of Kids - $this->radiobutton_groups[$n][$pl['txt']] = $radio_button_obj_id; - } - $formfield = false; - $pl['opt'] = array_change_key_case($pl['opt'], CASE_LOWER); - $a = $pl['x'] * $this->k; - $b = $this->pagedim[$n]['h'] - (($pl['y'] + $pl['h']) * $this->k); - $c = $pl['w'] * $this->k; - $d = $pl['h'] * $this->k; - $rect = sprintf('%F %F %F %F', $a, $b, $a+$c, $b+$d); - // create new annotation object - $annots = '<_textstring($pl['txt'], $annot_obj_id); - } - $annots .= ' /P '.$this->page_obj_id[$n].' 0 R'; - $annots .= ' /NM '.$this->_datastring(sprintf('%04u-%04u', $n, $key), $annot_obj_id); - $annots .= ' /M '.$this->_datestring($annot_obj_id, $this->doc_modification_timestamp); - if (isset($pl['opt']['f'])) { - $fval = 0; - if (is_array($pl['opt']['f'])) { - foreach ($pl['opt']['f'] as $f) { - switch (strtolower($f)) { - case 'invisible': { - $fval += 1 << 0; - break; - } - case 'hidden': { - $fval += 1 << 1; - break; - } - case 'print': { - $fval += 1 << 2; - break; - } - case 'nozoom': { - $fval += 1 << 3; - break; - } - case 'norotate': { - $fval += 1 << 4; - break; - } - case 'noview': { - $fval += 1 << 5; - break; - } - case 'readonly': { - $fval += 1 << 6; - break; - } - case 'locked': { - $fval += 1 << 8; - break; - } - case 'togglenoview': { - $fval += 1 << 9; - break; - } - case 'lockedcontents': { - $fval += 1 << 10; - break; - } - default: { - break; - } - } - } - } else { - $fval = intval($pl['opt']['f']); - } - } else { - $fval = 4; - } - if ($this->pdfa_mode) { - // force print flag for PDF/A mode - $fval |= 4; - } - $annots .= ' /F '.intval($fval); - if (isset($pl['opt']['as']) AND is_string($pl['opt']['as'])) { - $annots .= ' /AS /'.$pl['opt']['as']; - } - if (isset($pl['opt']['ap'])) { - // appearance stream - $annots .= ' /AP <<'; - if (is_array($pl['opt']['ap'])) { - foreach ($pl['opt']['ap'] as $apmode => $apdef) { - // $apmode can be: n = normal; r = rollover; d = down; - $annots .= ' /'.strtoupper($apmode); - if (is_array($apdef)) { - $annots .= ' <<'; - foreach ($apdef as $apstate => $stream) { - // reference to XObject that define the appearance for this mode-state - $apsobjid = $this->_putAPXObject($c, $d, $stream); - $annots .= ' /'.$apstate.' '.$apsobjid.' 0 R'; - } - $annots .= ' >>'; - } else { - // reference to XObject that define the appearance for this mode - $apsobjid = $this->_putAPXObject($c, $d, $apdef); - $annots .= ' '.$apsobjid.' 0 R'; - } - } - } else { - $annots .= $pl['opt']['ap']; - } - $annots .= ' >>'; - } - if (isset($pl['opt']['bs']) AND (is_array($pl['opt']['bs']))) { - $annots .= ' /BS <<'; - $annots .= ' /Type /Border'; - if (isset($pl['opt']['bs']['w'])) { - $annots .= ' /W '.intval($pl['opt']['bs']['w']); - } - $bstyles = array('S', 'D', 'B', 'I', 'U'); - if (isset($pl['opt']['bs']['s']) AND in_array($pl['opt']['bs']['s'], $bstyles)) { - $annots .= ' /S /'.$pl['opt']['bs']['s']; - } - if (isset($pl['opt']['bs']['d']) AND (is_array($pl['opt']['bs']['d']))) { - $annots .= ' /D ['; - foreach ($pl['opt']['bs']['d'] as $cord) { - $annots .= ' '.intval($cord); - } - $annots .= ']'; - } - $annots .= ' >>'; - } else { - $annots .= ' /Border ['; - if (isset($pl['opt']['border']) AND (count($pl['opt']['border']) >= 3)) { - $annots .= intval($pl['opt']['border'][0]).' '; - $annots .= intval($pl['opt']['border'][1]).' '; - $annots .= intval($pl['opt']['border'][2]); - if (isset($pl['opt']['border'][3]) AND is_array($pl['opt']['border'][3])) { - $annots .= ' ['; - foreach ($pl['opt']['border'][3] as $dash) { - $annots .= intval($dash).' '; - } - $annots .= ']'; - } - } else { - $annots .= '0 0 0'; - } - $annots .= ']'; - } - if (isset($pl['opt']['be']) AND (is_array($pl['opt']['be']))) { - $annots .= ' /BE <<'; - $bstyles = array('S', 'C'); - if (isset($pl['opt']['be']['s']) AND in_array($pl['opt']['be']['s'], $bstyles)) { - $annots .= ' /S /'.$pl['opt']['bs']['s']; - } else { - $annots .= ' /S /S'; - } - if (isset($pl['opt']['be']['i']) AND ($pl['opt']['be']['i'] >= 0) AND ($pl['opt']['be']['i'] <= 2)) { - $annots .= ' /I '.sprintf(' %F', $pl['opt']['be']['i']); - } - $annots .= '>>'; - } - if (isset($pl['opt']['c']) AND (is_array($pl['opt']['c'])) AND !empty($pl['opt']['c'])) { - $annots .= ' /C '.TCPDF_COLORS::getColorStringFromArray($pl['opt']['c']); - } - //$annots .= ' /StructParent '; - //$annots .= ' /OC '; - $markups = array('text', 'freetext', 'line', 'square', 'circle', 'polygon', 'polyline', 'highlight', 'underline', 'squiggly', 'strikeout', 'stamp', 'caret', 'ink', 'fileattachment', 'sound'); - if (in_array(strtolower($pl['opt']['subtype']), $markups)) { - // this is a markup type - if (isset($pl['opt']['t']) AND is_string($pl['opt']['t'])) { - $annots .= ' /T '.$this->_textstring($pl['opt']['t'], $annot_obj_id); - } - //$annots .= ' /Popup '; - if (isset($pl['opt']['ca'])) { - $annots .= ' /CA '.sprintf('%F', floatval($pl['opt']['ca'])); - } - if (isset($pl['opt']['rc'])) { - $annots .= ' /RC '.$this->_textstring($pl['opt']['rc'], $annot_obj_id); - } - $annots .= ' /CreationDate '.$this->_datestring($annot_obj_id, $this->doc_creation_timestamp); - //$annots .= ' /IRT '; - if (isset($pl['opt']['subj'])) { - $annots .= ' /Subj '.$this->_textstring($pl['opt']['subj'], $annot_obj_id); - } - //$annots .= ' /RT '; - //$annots .= ' /IT '; - //$annots .= ' /ExData '; - } - $lineendings = array('Square', 'Circle', 'Diamond', 'OpenArrow', 'ClosedArrow', 'None', 'Butt', 'ROpenArrow', 'RClosedArrow', 'Slash'); - // Annotation types - switch (strtolower($pl['opt']['subtype'])) { - case 'text': { - if (isset($pl['opt']['open'])) { - $annots .= ' /Open '. (strtolower($pl['opt']['open']) == 'true' ? 'true' : 'false'); - } - $iconsapp = array('Comment', 'Help', 'Insert', 'Key', 'NewParagraph', 'Note', 'Paragraph'); - if (isset($pl['opt']['name']) AND in_array($pl['opt']['name'], $iconsapp)) { - $annots .= ' /Name /'.$pl['opt']['name']; - } else { - $annots .= ' /Name /Note'; - } - $statemodels = array('Marked', 'Review'); - if (isset($pl['opt']['statemodel']) AND in_array($pl['opt']['statemodel'], $statemodels)) { - $annots .= ' /StateModel /'.$pl['opt']['statemodel']; - } else { - $pl['opt']['statemodel'] = 'Marked'; - $annots .= ' /StateModel /'.$pl['opt']['statemodel']; - } - if ($pl['opt']['statemodel'] == 'Marked') { - $states = array('Accepted', 'Unmarked'); - } else { - $states = array('Accepted', 'Rejected', 'Cancelled', 'Completed', 'None'); - } - if (isset($pl['opt']['state']) AND in_array($pl['opt']['state'], $states)) { - $annots .= ' /State /'.$pl['opt']['state']; - } else { - if ($pl['opt']['statemodel'] == 'Marked') { - $annots .= ' /State /Unmarked'; - } else { - $annots .= ' /State /None'; - } - } - break; - } - case 'link': { - if (is_string($pl['txt']) && !empty($pl['txt'])) { - if ($pl['txt'][0] == '#') { - // internal destination - $annots .= ' /A <>'; - } elseif ($pl['txt'][0] == '%') { - // embedded PDF file - $filename = basename(substr($pl['txt'], 1)); - $annots .= ' /A << /S /GoToE /D [0 /Fit] /NewWindow true /T << /R /C /P '.($n - 1).' /A '.$this->embeddedfiles[$filename]['a'].' >> >>'; - } elseif ($pl['txt'][0] == '*') { - // embedded generic file - $filename = basename(substr($pl['txt'], 1)); - $jsa = 'var D=event.target.doc;var MyData=D.dataObjects;for (var i in MyData) if (MyData[i].path=="'.$filename.'") D.exportDataObject( { cName : MyData[i].name, nLaunch : 2});'; - $annots .= ' /A << /S /JavaScript /JS '.$this->_textstring($jsa, $annot_obj_id).'>>'; - } else { - $parsedUrl = parse_url($pl['txt']); - if (empty($parsedUrl['scheme']) AND (!empty($parsedUrl['path']) && strtolower(substr($parsedUrl['path'], -4)) == '.pdf')) { - // relative link to a PDF file - $dest = '[0 /Fit]'; // default page 0 - if (!empty($parsedUrl['fragment'])) { - // check for named destination - $tmp = explode('=', $parsedUrl['fragment']); - $dest = '('.((count($tmp) == 2) ? $tmp[1] : $tmp[0]).')'; - } - $annots .= ' /A <_datastring($this->unhtmlentities($parsedUrl['path']), $annot_obj_id).' /NewWindow true>>'; - } else { - // external URI link - $annots .= ' /A <_datastring($this->unhtmlentities($pl['txt']), $annot_obj_id).'>>'; - } - } - } elseif (isset($this->links[$pl['txt']])) { - // internal link ID - $l = $this->links[$pl['txt']]; - if (isset($this->page_obj_id[($l['p'])])) { - $annots .= sprintf(' /Dest [%u 0 R /XYZ 0 %F null]', $this->page_obj_id[($l['p'])], ($this->pagedim[$l['p']]['h'] - ($l['y'] * $this->k))); - } - } - $hmodes = array('N', 'I', 'O', 'P'); - if (isset($pl['opt']['h']) AND in_array($pl['opt']['h'], $hmodes)) { - $annots .= ' /H /'.$pl['opt']['h']; - } else { - $annots .= ' /H /I'; - } - //$annots .= ' /PA '; - //$annots .= ' /Quadpoints '; - break; - } - case 'freetext': { - if (isset($pl['opt']['da']) AND !empty($pl['opt']['da'])) { - $annots .= ' /DA ('.$pl['opt']['da'].')'; - } - if (isset($pl['opt']['q']) AND ($pl['opt']['q'] >= 0) AND ($pl['opt']['q'] <= 2)) { - $annots .= ' /Q '.intval($pl['opt']['q']); - } - if (isset($pl['opt']['rc'])) { - $annots .= ' /RC '.$this->_textstring($pl['opt']['rc'], $annot_obj_id); - } - if (isset($pl['opt']['ds'])) { - $annots .= ' /DS '.$this->_textstring($pl['opt']['ds'], $annot_obj_id); - } - if (isset($pl['opt']['cl']) AND is_array($pl['opt']['cl'])) { - $annots .= ' /CL ['; - foreach ($pl['opt']['cl'] as $cl) { - $annots .= sprintf('%F ', $cl * $this->k); - } - $annots .= ']'; - } - $tfit = array('FreeText', 'FreeTextCallout', 'FreeTextTypeWriter'); - if (isset($pl['opt']['it']) AND in_array($pl['opt']['it'], $tfit)) { - $annots .= ' /IT /'.$pl['opt']['it']; - } - if (isset($pl['opt']['rd']) AND is_array($pl['opt']['rd'])) { - $l = $pl['opt']['rd'][0] * $this->k; - $r = $pl['opt']['rd'][1] * $this->k; - $t = $pl['opt']['rd'][2] * $this->k; - $b = $pl['opt']['rd'][3] * $this->k; - $annots .= ' /RD ['.sprintf('%F %F %F %F', $l, $r, $t, $b).']'; - } - if (isset($pl['opt']['le']) AND in_array($pl['opt']['le'], $lineendings)) { - $annots .= ' /LE /'.$pl['opt']['le']; - } - break; - } - case 'line': { - break; - } - case 'square': { - break; - } - case 'circle': { - break; - } - case 'polygon': { - break; - } - case 'polyline': { - break; - } - case 'highlight': { - break; - } - case 'underline': { - break; - } - case 'squiggly': { - break; - } - case 'strikeout': { - break; - } - case 'stamp': { - break; - } - case 'caret': { - break; - } - case 'ink': { - break; - } - case 'popup': { - break; - } - case 'fileattachment': { - if ($this->pdfa_mode && $this->pdfa_version != 3) { - // embedded files are not allowed in PDF/A mode version 1 and 2 - break; - } - if (!isset($pl['opt']['fs'])) { - break; - } - $filename = basename($pl['opt']['fs']); - if (isset($this->embeddedfiles[$filename]['f'])) { - $annots .= ' /FS '.$this->embeddedfiles[$filename]['f'].' 0 R'; - $iconsapp = array('Graph', 'Paperclip', 'PushPin', 'Tag'); - if (isset($pl['opt']['name']) AND in_array($pl['opt']['name'], $iconsapp)) { - $annots .= ' /Name /'.$pl['opt']['name']; - } else { - $annots .= ' /Name /PushPin'; - } - // index (zero-based) of the annotation in the Annots array of this page - $this->embeddedfiles[$filename]['a'] = $key; - } - break; - } - case 'sound': { - if (!isset($pl['opt']['fs'])) { - break; - } - $filename = basename($pl['opt']['fs']); - if (isset($this->embeddedfiles[$filename]['f'])) { - // ... TO BE COMPLETED ... - // /R /C /B /E /CO /CP - $annots .= ' /Sound '.$this->embeddedfiles[$filename]['f'].' 0 R'; - $iconsapp = array('Speaker', 'Mic'); - if (isset($pl['opt']['name']) AND in_array($pl['opt']['name'], $iconsapp)) { - $annots .= ' /Name /'.$pl['opt']['name']; - } else { - $annots .= ' /Name /Speaker'; - } - } - break; - } - case 'movie': { - break; - } - case 'widget': { - $hmode = array('N', 'I', 'O', 'P', 'T'); - if (isset($pl['opt']['h']) AND in_array($pl['opt']['h'], $hmode)) { - $annots .= ' /H /'.$pl['opt']['h']; - } - if (isset($pl['opt']['mk']) AND (is_array($pl['opt']['mk'])) AND !empty($pl['opt']['mk'])) { - $annots .= ' /MK <<'; - if (isset($pl['opt']['mk']['r'])) { - $annots .= ' /R '.$pl['opt']['mk']['r']; - } - if (isset($pl['opt']['mk']['bc']) AND (is_array($pl['opt']['mk']['bc']))) { - $annots .= ' /BC '.TCPDF_COLORS::getColorStringFromArray($pl['opt']['mk']['bc']); - } - if (isset($pl['opt']['mk']['bg']) AND (is_array($pl['opt']['mk']['bg']))) { - $annots .= ' /BG '.TCPDF_COLORS::getColorStringFromArray($pl['opt']['mk']['bg']); - } - if (isset($pl['opt']['mk']['ca'])) { - $annots .= ' /CA '.$pl['opt']['mk']['ca']; - } - if (isset($pl['opt']['mk']['rc'])) { - $annots .= ' /RC '.$pl['opt']['mk']['rc']; - } - if (isset($pl['opt']['mk']['ac'])) { - $annots .= ' /AC '.$pl['opt']['mk']['ac']; - } - if (isset($pl['opt']['mk']['i'])) { - $info = $this->getImageBuffer($pl['opt']['mk']['i']); - if ($info !== false) { - $annots .= ' /I '.$info['n'].' 0 R'; - } - } - if (isset($pl['opt']['mk']['ri'])) { - $info = $this->getImageBuffer($pl['opt']['mk']['ri']); - if ($info !== false) { - $annots .= ' /RI '.$info['n'].' 0 R'; - } - } - if (isset($pl['opt']['mk']['ix'])) { - $info = $this->getImageBuffer($pl['opt']['mk']['ix']); - if ($info !== false) { - $annots .= ' /IX '.$info['n'].' 0 R'; - } - } - if (isset($pl['opt']['mk']['if']) AND (is_array($pl['opt']['mk']['if'])) AND !empty($pl['opt']['mk']['if'])) { - $annots .= ' /IF <<'; - $if_sw = array('A', 'B', 'S', 'N'); - if (isset($pl['opt']['mk']['if']['sw']) AND in_array($pl['opt']['mk']['if']['sw'], $if_sw)) { - $annots .= ' /SW /'.$pl['opt']['mk']['if']['sw']; - } - $if_s = array('A', 'P'); - if (isset($pl['opt']['mk']['if']['s']) AND in_array($pl['opt']['mk']['if']['s'], $if_s)) { - $annots .= ' /S /'.$pl['opt']['mk']['if']['s']; - } - if (isset($pl['opt']['mk']['if']['a']) AND (is_array($pl['opt']['mk']['if']['a'])) AND !empty($pl['opt']['mk']['if']['a'])) { - $annots .= sprintf(' /A [%F %F]', $pl['opt']['mk']['if']['a'][0], $pl['opt']['mk']['if']['a'][1]); - } - if (isset($pl['opt']['mk']['if']['fb']) AND ($pl['opt']['mk']['if']['fb'])) { - $annots .= ' /FB true'; - } - $annots .= '>>'; - } - if (isset($pl['opt']['mk']['tp']) AND ($pl['opt']['mk']['tp'] >= 0) AND ($pl['opt']['mk']['tp'] <= 6)) { - $annots .= ' /TP '.intval($pl['opt']['mk']['tp']); - } - $annots .= '>>'; - } // end MK - // --- Entries for field dictionaries --- - if (isset($this->radiobutton_groups[$n][$pl['txt']])) { - // set parent - $annots .= ' /Parent '.$this->radiobutton_groups[$n][$pl['txt']].' 0 R'; - } - if (isset($pl['opt']['t']) AND is_string($pl['opt']['t'])) { - $annots .= ' /T '.$this->_datastring($pl['opt']['t'], $annot_obj_id); - } - if (isset($pl['opt']['tu']) AND is_string($pl['opt']['tu'])) { - $annots .= ' /TU '.$this->_datastring($pl['opt']['tu'], $annot_obj_id); - } - if (isset($pl['opt']['tm']) AND is_string($pl['opt']['tm'])) { - $annots .= ' /TM '.$this->_datastring($pl['opt']['tm'], $annot_obj_id); - } - if (isset($pl['opt']['ff'])) { - if (is_array($pl['opt']['ff'])) { - // array of bit settings - $flag = 0; - foreach($pl['opt']['ff'] as $val) { - $flag += 1 << ($val - 1); - } - } else { - $flag = intval($pl['opt']['ff']); - } - $annots .= ' /Ff '.$flag; - } - if (isset($pl['opt']['maxlen'])) { - $annots .= ' /MaxLen '.intval($pl['opt']['maxlen']); - } - if (isset($pl['opt']['v'])) { - $annots .= ' /V'; - if (is_array($pl['opt']['v'])) { - foreach ($pl['opt']['v'] AS $optval) { - if (is_float($optval)) { - $optval = sprintf('%F', $optval); - } - $annots .= ' '.$optval; - } - } else { - $annots .= ' '.$this->_textstring($pl['opt']['v'], $annot_obj_id); - } - } - if (isset($pl['opt']['dv'])) { - $annots .= ' /DV'; - if (is_array($pl['opt']['dv'])) { - foreach ($pl['opt']['dv'] AS $optval) { - if (is_float($optval)) { - $optval = sprintf('%F', $optval); - } - $annots .= ' '.$optval; - } - } else { - $annots .= ' '.$this->_textstring($pl['opt']['dv'], $annot_obj_id); - } - } - if (isset($pl['opt']['rv'])) { - $annots .= ' /RV'; - if (is_array($pl['opt']['rv'])) { - foreach ($pl['opt']['rv'] AS $optval) { - if (is_float($optval)) { - $optval = sprintf('%F', $optval); - } - $annots .= ' '.$optval; - } - } else { - $annots .= ' '.$this->_textstring($pl['opt']['rv'], $annot_obj_id); - } - } - if (isset($pl['opt']['a']) AND !empty($pl['opt']['a'])) { - $annots .= ' /A << '.$pl['opt']['a'].' >>'; - } - if (isset($pl['opt']['aa']) AND !empty($pl['opt']['aa'])) { - $annots .= ' /AA << '.$pl['opt']['aa'].' >>'; - } - if (isset($pl['opt']['da']) AND !empty($pl['opt']['da'])) { - $annots .= ' /DA ('.$pl['opt']['da'].')'; - } - if (isset($pl['opt']['q']) AND ($pl['opt']['q'] >= 0) AND ($pl['opt']['q'] <= 2)) { - $annots .= ' /Q '.intval($pl['opt']['q']); - } - if (isset($pl['opt']['opt']) AND (is_array($pl['opt']['opt'])) AND !empty($pl['opt']['opt'])) { - $annots .= ' /Opt ['; - foreach($pl['opt']['opt'] AS $copt) { - if (is_array($copt)) { - $annots .= ' ['.$this->_textstring($copt[0], $annot_obj_id).' '.$this->_textstring($copt[1], $annot_obj_id).']'; - } else { - $annots .= ' '.$this->_textstring($copt, $annot_obj_id); - } - } - $annots .= ']'; - } - if (isset($pl['opt']['ti'])) { - $annots .= ' /TI '.intval($pl['opt']['ti']); - } - if (isset($pl['opt']['i']) AND (is_array($pl['opt']['i'])) AND !empty($pl['opt']['i'])) { - $annots .= ' /I ['; - foreach($pl['opt']['i'] AS $copt) { - $annots .= intval($copt).' '; - } - $annots .= ']'; - } - break; - } - case 'screen': { - break; - } - case 'printermark': { - break; - } - case 'trapnet': { - break; - } - case 'watermark': { - break; - } - case '3d': { - break; - } - default: { - break; - } - } - $annots .= '>>'; - // create new annotation object - $this->_out($this->_getobj($annot_obj_id)."\n".$annots."\n".'endobj'); - if ($formfield AND !isset($this->radiobutton_groups[$n][$pl['txt']])) { - // store reference of form object - $this->form_obj_id[] = $annot_obj_id; - } - } - } - } // end for each page - } - - /** - * Put appearance streams XObject used to define annotation's appearance states. - * @param $w (int) annotation width - * @param $h (int) annotation height - * @param $stream (string) appearance stream - * @return int object ID - * @protected - * @since 4.8.001 (2009-09-09) - */ - protected function _putAPXObject($w=0, $h=0, $stream='') { - $stream = trim($stream); - $out = $this->_getobj()."\n"; - $this->xobjects['AX'.$this->n] = array('n' => $this->n); - $out .= '<<'; - $out .= ' /Type /XObject'; - $out .= ' /Subtype /Form'; - $out .= ' /FormType 1'; - if ($this->compress) { - $stream = gzcompress($stream); - $out .= ' /Filter /FlateDecode'; - } - $rect = sprintf('%F %F', $w, $h); - $out .= ' /BBox [0 0 '.$rect.']'; - $out .= ' /Matrix [1 0 0 1 0 0]'; - $out .= ' /Resources 2 0 R'; - $stream = $this->_getrawstream($stream); - $out .= ' /Length '.strlen($stream); - $out .= ' >>'; - $out .= ' stream'."\n".$stream."\n".'endstream'; - $out .= "\n".'endobj'; - $this->_out($out); - return $this->n; - } - - /** - * Output fonts. - * @author Nicola Asuni - * @protected - */ - protected function _putfonts() { - $nf = $this->n; - foreach ($this->diffs as $diff) { - //Encodings - $this->_newobj(); - $this->_out('<< /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences ['.$diff.'] >>'."\n".'endobj'); - } - $mqr = TCPDF_STATIC::get_mqr(); - TCPDF_STATIC::set_mqr(false); - foreach ($this->FontFiles as $file => $info) { - // search and get font file to embedd - $fontfile = TCPDF_FONTS::getFontFullPath($file, $info['fontdir']); - if (!TCPDF_STATIC::empty_string($fontfile)) { - $font = file_get_contents($fontfile); - $compressed = (substr($file, -2) == '.z'); - if ((!$compressed) AND (isset($info['length2']))) { - $header = (ord($font[0]) == 128); - if ($header) { - // strip first binary header - $font = substr($font, 6); - } - if ($header AND (ord($font[$info['length1']]) == 128)) { - // strip second binary header - $font = substr($font, 0, $info['length1']).substr($font, ($info['length1'] + 6)); - } - } elseif ($info['subset'] AND ((!$compressed) OR ($compressed AND function_exists('gzcompress')))) { - if ($compressed) { - // uncompress font - $font = gzuncompress($font); - } - // merge subset characters - $subsetchars = array(); // used chars - foreach ($info['fontkeys'] as $fontkey) { - $fontinfo = $this->getFontBuffer($fontkey); - $subsetchars += $fontinfo['subsetchars']; - } - // rebuild a font subset - $font = TCPDF_FONTS::_getTrueTypeFontSubset($font, $subsetchars); - // calculate new font length - $info['length1'] = strlen($font); - if ($compressed) { - // recompress font - $font = gzcompress($font); - } - } - $this->_newobj(); - $this->FontFiles[$file]['n'] = $this->n; - $stream = $this->_getrawstream($font); - $out = '<< /Length '.strlen($stream); - if ($compressed) { - $out .= ' /Filter /FlateDecode'; - } - $out .= ' /Length1 '.$info['length1']; - if (isset($info['length2'])) { - $out .= ' /Length2 '.$info['length2'].' /Length3 0'; - } - $out .= ' >>'; - $out .= ' stream'."\n".$stream."\n".'endstream'; - $out .= "\n".'endobj'; - $this->_out($out); - } - } - TCPDF_STATIC::set_mqr($mqr); - foreach ($this->fontkeys as $k) { - //Font objects - $font = $this->getFontBuffer($k); - $type = $font['type']; - $name = $font['name']; - if ($type == 'core') { - // standard core font - $out = $this->_getobj($this->font_obj_ids[$k])."\n"; - $out .= '<annotation_fonts[$k] = $font['i']; - } - $out .= ' >>'; - $out .= "\n".'endobj'; - $this->_out($out); - } elseif (($type == 'Type1') OR ($type == 'TrueType')) { - // additional Type1 or TrueType font - $out = $this->_getobj($this->font_obj_ids[$k])."\n"; - $out .= '<n + 1).' 0 R'; - $out .= ' /FontDescriptor '.($this->n + 2).' 0 R'; - if ($font['enc']) { - if (isset($font['diff'])) { - $out .= ' /Encoding '.($nf + $font['diff']).' 0 R'; - } else { - $out .= ' /Encoding /WinAnsiEncoding'; - } - } - $out .= ' >>'; - $out .= "\n".'endobj'; - $this->_out($out); - // Widths - $this->_newobj(); - $s = '['; - for ($i = 32; $i < 256; ++$i) { - if (isset($font['cw'][$i])) { - $s .= $font['cw'][$i].' '; - } else { - $s .= $font['dw'].' '; - } - } - $s .= ']'; - $s .= "\n".'endobj'; - $this->_out($s); - //Descriptor - $this->_newobj(); - $s = '< $fdv) { - if (is_float($fdv)) { - $fdv = sprintf('%F', $fdv); - } - $s .= ' /'.$fdk.' '.$fdv.''; - } - if (!TCPDF_STATIC::empty_string($font['file'])) { - $s .= ' /FontFile'.($type == 'Type1' ? '' : '2').' '.$this->FontFiles[$font['file']]['n'].' 0 R'; - } - $s .= '>>'; - $s .= "\n".'endobj'; - $this->_out($s); - } else { - // additional types - $mtd = '_put'.strtolower($type); - if (!method_exists($this, $mtd)) { - $this->Error('Unsupported font type: '.$type); - } - $this->$mtd($font); - } - } - } - - /** - * Adds unicode fonts.
      - * Based on PDF Reference 1.3 (section 5) - * @param $font (array) font data - * @protected - * @author Nicola Asuni - * @since 1.52.0.TC005 (2005-01-05) - */ - protected function _puttruetypeunicode($font) { - $fontname = ''; - if ($font['subset']) { - // change name for font subsetting - $subtag = sprintf('%06u', $font['i']); - $subtag = strtr($subtag, '0123456789', 'ABCDEFGHIJ'); - $fontname .= $subtag.'+'; - } - $fontname .= $font['name']; - // Type0 Font - // A composite font composed of other fonts, organized hierarchically - $out = $this->_getobj($this->font_obj_ids[$font['fontkey']])."\n"; - $out .= '<< /Type /Font'; - $out .= ' /Subtype /Type0'; - $out .= ' /BaseFont /'.$fontname; - $out .= ' /Name /F'.$font['i']; - $out .= ' /Encoding /'.$font['enc']; - $out .= ' /ToUnicode '.($this->n + 1).' 0 R'; - $out .= ' /DescendantFonts ['.($this->n + 2).' 0 R]'; - $out .= ' >>'; - $out .= "\n".'endobj'; - $this->_out($out); - // ToUnicode map for Identity-H - $stream = TCPDF_FONT_DATA::$uni_identity_h; - // ToUnicode Object - $this->_newobj(); - $stream = ($this->compress) ? gzcompress($stream) : $stream; - $filter = ($this->compress) ? '/Filter /FlateDecode ' : ''; - $stream = $this->_getrawstream($stream); - $this->_out('<<'.$filter.'/Length '.strlen($stream).'>> stream'."\n".$stream."\n".'endstream'."\n".'endobj'); - // CIDFontType2 - // A CIDFont whose glyph descriptions are based on TrueType font technology - $oid = $this->_newobj(); - $out = '<< /Type /Font'; - $out .= ' /Subtype /CIDFontType2'; - $out .= ' /BaseFont /'.$fontname; - // A dictionary containing entries that define the character collection of the CIDFont. - $cidinfo = '/Registry '.$this->_datastring($font['cidinfo']['Registry'], $oid); - $cidinfo .= ' /Ordering '.$this->_datastring($font['cidinfo']['Ordering'], $oid); - $cidinfo .= ' /Supplement '.$font['cidinfo']['Supplement']; - $out .= ' /CIDSystemInfo << '.$cidinfo.' >>'; - $out .= ' /FontDescriptor '.($this->n + 1).' 0 R'; - $out .= ' /DW '.$font['dw']; // default width - $out .= "\n".TCPDF_FONTS::_putfontwidths($font, 0); - if (isset($font['ctg']) AND (!TCPDF_STATIC::empty_string($font['ctg']))) { - $out .= "\n".'/CIDToGIDMap '.($this->n + 2).' 0 R'; - } - $out .= ' >>'; - $out .= "\n".'endobj'; - $this->_out($out); - // Font descriptor - // A font descriptor describing the CIDFont default metrics other than its glyph widths - $this->_newobj(); - $out = '<< /Type /FontDescriptor'; - $out .= ' /FontName /'.$fontname; - foreach ($font['desc'] as $key => $value) { - if (is_float($value)) { - $value = sprintf('%F', $value); - } - $out .= ' /'.$key.' '.$value; - } - $fontdir = false; - if (!TCPDF_STATIC::empty_string($font['file'])) { - // A stream containing a TrueType font - $out .= ' /FontFile2 '.$this->FontFiles[$font['file']]['n'].' 0 R'; - $fontdir = $this->FontFiles[$font['file']]['fontdir']; - } - $out .= ' >>'; - $out .= "\n".'endobj'; - $this->_out($out); - if (isset($font['ctg']) AND (!TCPDF_STATIC::empty_string($font['ctg']))) { - $this->_newobj(); - // Embed CIDToGIDMap - // A specification of the mapping from CIDs to glyph indices - // search and get CTG font file to embedd - $ctgfile = strtolower($font['ctg']); - // search and get ctg font file to embedd - $fontfile = TCPDF_FONTS::getFontFullPath($ctgfile, $fontdir); - if (TCPDF_STATIC::empty_string($fontfile)) { - $this->Error('Font file not found: '.$ctgfile); - } - $stream = $this->_getrawstream(file_get_contents($fontfile)); - $out = '<< /Length '.strlen($stream).''; - if (substr($fontfile, -2) == '.z') { // check file extension - // Decompresses data encoded using the public-domain - // zlib/deflate compression method, reproducing the - // original text or binary data - $out .= ' /Filter /FlateDecode'; - } - $out .= ' >>'; - $out .= ' stream'."\n".$stream."\n".'endstream'; - $out .= "\n".'endobj'; - $this->_out($out); - } - } - - /** - * Output CID-0 fonts. - * A Type 0 CIDFont contains glyph descriptions based on the Adobe Type 1 font format - * @param $font (array) font data - * @protected - * @author Andrew Whitehead, Nicola Asuni, Yukihiro Nakadaira - * @since 3.2.000 (2008-06-23) - */ - protected function _putcidfont0($font) { - $cidoffset = 0; - if (!isset($font['cw'][1])) { - $cidoffset = 31; - } - if (isset($font['cidinfo']['uni2cid'])) { - // convert unicode to cid. - $uni2cid = $font['cidinfo']['uni2cid']; - $cw = array(); - foreach ($font['cw'] as $uni => $width) { - if (isset($uni2cid[$uni])) { - $cw[($uni2cid[$uni] + $cidoffset)] = $width; - } elseif ($uni < 256) { - $cw[$uni] = $width; - } // else unknown character - } - $font = array_merge($font, array('cw' => $cw)); - } - $name = $font['name']; - $enc = $font['enc']; - if ($enc) { - $longname = $name.'-'.$enc; - } else { - $longname = $name; - } - $out = $this->_getobj($this->font_obj_ids[$font['fontkey']])."\n"; - $out .= '<n + 1).' 0 R]'; - $out .= ' >>'; - $out .= "\n".'endobj'; - $this->_out($out); - $oid = $this->_newobj(); - $out = '<_datastring($font['cidinfo']['Registry'], $oid); - $cidinfo .= ' /Ordering '.$this->_datastring($font['cidinfo']['Ordering'], $oid); - $cidinfo .= ' /Supplement '.$font['cidinfo']['Supplement']; - $out .= ' /CIDSystemInfo <<'.$cidinfo.'>>'; - $out .= ' /FontDescriptor '.($this->n + 1).' 0 R'; - $out .= ' /DW '.$font['dw']; - $out .= "\n".TCPDF_FONTS::_putfontwidths($font, $cidoffset); - $out .= ' >>'; - $out .= "\n".'endobj'; - $this->_out($out); - $this->_newobj(); - $s = '< $v) { - if ($k != 'Style') { - if (is_float($v)) { - $v = sprintf('%F', $v); - } - $s .= ' /'.$k.' '.$v.''; - } - } - $s .= '>>'; - $s .= "\n".'endobj'; - $this->_out($s); - } - - /** - * Output images. - * @protected - */ - protected function _putimages() { - $filter = ($this->compress) ? '/Filter /FlateDecode ' : ''; - foreach ($this->imagekeys as $file) { - $info = $this->getImageBuffer($file); - // set object for alternate images array - if ((!$this->pdfa_mode) AND isset($info['altimgs']) AND !empty($info['altimgs'])) { - $altoid = $this->_newobj(); - $out = '['; - foreach ($info['altimgs'] as $altimage) { - if (isset($this->xobjects['I'.$altimage[0]]['n'])) { - $out .= ' << /Image '.$this->xobjects['I'.$altimage[0]]['n'].' 0 R'; - $out .= ' /DefaultForPrinting'; - if ($altimage[1] === true) { - $out .= ' true'; - } else { - $out .= ' false'; - } - $out .= ' >>'; - } - } - $out .= ' ]'; - $out .= "\n".'endobj'; - $this->_out($out); - } - // set image object - $oid = $this->_newobj(); - $this->xobjects['I'.$info['i']] = array('n' => $oid); - $this->setImageSubBuffer($file, 'n', $this->n); - $out = '<n - 1).' 0 R'; - } - // set color space - $icc = false; - if (isset($info['icc']) AND ($info['icc'] !== false)) { - // ICC Colour Space - $icc = true; - $out .= ' /ColorSpace [/ICCBased '.($this->n + 1).' 0 R]'; - } elseif ($info['cs'] == 'Indexed') { - // Indexed Colour Space - $out .= ' /ColorSpace [/Indexed /DeviceRGB '.((strlen($info['pal']) / 3) - 1).' '.($this->n + 1).' 0 R]'; - } else { - // Device Colour Space - $out .= ' /ColorSpace /'.$info['cs']; - } - if ($info['cs'] == 'DeviceCMYK') { - $out .= ' /Decode [1 0 1 0 1 0 1 0]'; - } - $out .= ' /BitsPerComponent '.$info['bpc']; - if (isset($altoid) AND ($altoid > 0)) { - // reference to alternate images dictionary - $out .= ' /Alternates '.$altoid.' 0 R'; - } - if (isset($info['exurl']) AND !empty($info['exurl'])) { - // external stream - $out .= ' /Length 0'; - $out .= ' /F << /FS /URL /F '.$this->_datastring($info['exurl'], $oid).' >>'; - if (isset($info['f'])) { - $out .= ' /FFilter /'.$info['f']; - } - $out .= ' >>'; - $out .= ' stream'."\n".'endstream'; - } else { - if (isset($info['f'])) { - $out .= ' /Filter /'.$info['f']; - } - if (isset($info['parms'])) { - $out .= ' '.$info['parms']; - } - if (isset($info['trns']) AND is_array($info['trns'])) { - $trns = ''; - $count_info = count($info['trns']); - if ($info['cs'] == 'Indexed') { - $maxval =(pow(2, $info['bpc']) - 1); - for ($i = 0; $i < $count_info; ++$i) { - if (($info['trns'][$i] != 0) AND ($info['trns'][$i] != $maxval)) { - // this is not a binary type mask @TODO: create a SMask - $trns = ''; - break; - } elseif (empty($trns) AND ($info['trns'][$i] == 0)) { - // store the first fully transparent value - $trns .= $i.' '.$i.' '; - } - } - } else { - // grayscale or RGB - for ($i = 0; $i < $count_info; ++$i) { - if ($info['trns'][$i] == 0) { - $trns .= $info['trns'][$i].' '.$info['trns'][$i].' '; - } - } - } - // Colour Key Masking - if (!empty($trns)) { - $out .= ' /Mask ['.$trns.']'; - } - } - $stream = $this->_getrawstream($info['data']); - $out .= ' /Length '.strlen($stream).' >>'; - $out .= ' stream'."\n".$stream."\n".'endstream'; - } - $out .= "\n".'endobj'; - $this->_out($out); - if ($icc) { - // ICC colour profile - $this->_newobj(); - $icc = ($this->compress) ? gzcompress($info['icc']) : $info['icc']; - $icc = $this->_getrawstream($icc); - $this->_out('<> stream'."\n".$icc."\n".'endstream'."\n".'endobj'); - } elseif ($info['cs'] == 'Indexed') { - // colour palette - $this->_newobj(); - $pal = ($this->compress) ? gzcompress($info['pal']) : $info['pal']; - $pal = $this->_getrawstream($pal); - $this->_out('<<'.$filter.'/Length '.strlen($pal).'>> stream'."\n".$pal."\n".'endstream'."\n".'endobj'); - } - } - } - - /** - * Output Form XObjects Templates. - * @author Nicola Asuni - * @since 5.8.017 (2010-08-24) - * @protected - * @see startTemplate(), endTemplate(), printTemplate() - */ - protected function _putxobjects() { - foreach ($this->xobjects as $key => $data) { - if (isset($data['outdata'])) { - $stream = str_replace($this->epsmarker, '', trim($data['outdata'])); - $out = $this->_getobj($data['n'])."\n"; - $out .= '<<'; - $out .= ' /Type /XObject'; - $out .= ' /Subtype /Form'; - $out .= ' /FormType 1'; - if ($this->compress) { - $stream = gzcompress($stream); - $out .= ' /Filter /FlateDecode'; - } - $out .= sprintf(' /BBox [%F %F %F %F]', ($data['x'] * $this->k), (-$data['y'] * $this->k), (($data['w'] + $data['x']) * $this->k), (($data['h'] - $data['y']) * $this->k)); - $out .= ' /Matrix [1 0 0 1 0 0]'; - $out .= ' /Resources <<'; - $out .= ' /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]'; - if (!$this->pdfa_mode) { - // transparency - if (isset($data['extgstates']) AND !empty($data['extgstates'])) { - $out .= ' /ExtGState <<'; - foreach ($data['extgstates'] as $k => $extgstate) { - if (isset($this->extgstates[$k]['name'])) { - $out .= ' /'.$this->extgstates[$k]['name']; - } else { - $out .= ' /GS'.$k; - } - $out .= ' '.$this->extgstates[$k]['n'].' 0 R'; - } - $out .= ' >>'; - } - if (isset($data['gradients']) AND !empty($data['gradients'])) { - $gp = ''; - $gs = ''; - foreach ($data['gradients'] as $id => $grad) { - // gradient patterns - $gp .= ' /p'.$id.' '.$this->gradients[$id]['pattern'].' 0 R'; - // gradient shadings - $gs .= ' /Sh'.$id.' '.$this->gradients[$id]['id'].' 0 R'; - } - $out .= ' /Pattern <<'.$gp.' >>'; - $out .= ' /Shading <<'.$gs.' >>'; - } - } - // spot colors - if (isset($data['spot_colors']) AND !empty($data['spot_colors'])) { - $out .= ' /ColorSpace <<'; - foreach ($data['spot_colors'] as $name => $color) { - $out .= ' /CS'.$color['i'].' '.$this->spot_colors[$name]['n'].' 0 R'; - } - $out .= ' >>'; - } - // fonts - if (!empty($data['fonts'])) { - $out .= ' /Font <<'; - foreach ($data['fonts'] as $fontkey => $fontid) { - $out .= ' /F'.$fontid.' '.$this->font_obj_ids[$fontkey].' 0 R'; - } - $out .= ' >>'; - } - // images or nested xobjects - if (!empty($data['images']) OR !empty($data['xobjects'])) { - $out .= ' /XObject <<'; - foreach ($data['images'] as $imgid) { - $out .= ' /I'.$imgid.' '.$this->xobjects['I'.$imgid]['n'].' 0 R'; - } - foreach ($data['xobjects'] as $sub_id => $sub_objid) { - $out .= ' /'.$sub_id.' '.$sub_objid['n'].' 0 R'; - } - $out .= ' >>'; - } - $out .= ' >>'; //end resources - if (isset($data['group']) AND ($data['group'] !== false)) { - // set transparency group - $out .= ' /Group << /Type /Group /S /Transparency'; - if (is_array($data['group'])) { - if (isset($data['group']['CS']) AND !empty($data['group']['CS'])) { - $out .= ' /CS /'.$data['group']['CS']; - } - if (isset($data['group']['I'])) { - $out .= ' /I /'.($data['group']['I']===true?'true':'false'); - } - if (isset($data['group']['K'])) { - $out .= ' /K /'.($data['group']['K']===true?'true':'false'); - } - } - $out .= ' >>'; - } - $stream = $this->_getrawstream($stream, $data['n']); - $out .= ' /Length '.strlen($stream); - $out .= ' >>'; - $out .= ' stream'."\n".$stream."\n".'endstream'; - $out .= "\n".'endobj'; - $this->_out($out); - } - } - } - - /** - * Output Spot Colors Resources. - * @protected - * @since 4.0.024 (2008-09-12) - */ - protected function _putspotcolors() { - foreach ($this->spot_colors as $name => $color) { - $this->_newobj(); - $this->spot_colors[$name]['n'] = $this->n; - $out = '[/Separation /'.str_replace(' ', '#20', $name); - $out .= ' /DeviceCMYK <<'; - $out .= ' /Range [0 1 0 1 0 1 0 1] /C0 [0 0 0 0]'; - $out .= ' '.sprintf('/C1 [%F %F %F %F] ', ($color['C'] / 100), ($color['M'] / 100), ($color['Y'] / 100), ($color['K'] / 100)); - $out .= ' /FunctionType 2 /Domain [0 1] /N 1>>]'; - $out .= "\n".'endobj'; - $this->_out($out); - } - } - - /** - * Return XObjects Dictionary. - * @return string XObjects dictionary - * @protected - * @since 5.8.014 (2010-08-23) - */ - protected function _getxobjectdict() { - $out = ''; - foreach ($this->xobjects as $id => $objid) { - $out .= ' /'.$id.' '.$objid['n'].' 0 R'; - } - return $out; - } - - /** - * Output Resources Dictionary. - * @protected - */ - protected function _putresourcedict() { - $out = $this->_getobj(2)."\n"; - $out .= '<< /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]'; - $out .= ' /Font <<'; - foreach ($this->fontkeys as $fontkey) { - $font = $this->getFontBuffer($fontkey); - $out .= ' /F'.$font['i'].' '.$font['n'].' 0 R'; - } - $out .= ' >>'; - $out .= ' /XObject <<'; - $out .= $this->_getxobjectdict(); - $out .= ' >>'; - // layers - if (!empty($this->pdflayers)) { - $out .= ' /Properties <<'; - foreach ($this->pdflayers as $layer) { - $out .= ' /'.$layer['layer'].' '.$layer['objid'].' 0 R'; - } - $out .= ' >>'; - } - if (!$this->pdfa_mode) { - // transparency - if (isset($this->extgstates) AND !empty($this->extgstates)) { - $out .= ' /ExtGState <<'; - foreach ($this->extgstates as $k => $extgstate) { - if (isset($extgstate['name'])) { - $out .= ' /'.$extgstate['name']; - } else { - $out .= ' /GS'.$k; - } - $out .= ' '.$extgstate['n'].' 0 R'; - } - $out .= ' >>'; - } - if (isset($this->gradients) AND !empty($this->gradients)) { - $gp = ''; - $gs = ''; - foreach ($this->gradients as $id => $grad) { - // gradient patterns - $gp .= ' /p'.$id.' '.$grad['pattern'].' 0 R'; - // gradient shadings - $gs .= ' /Sh'.$id.' '.$grad['id'].' 0 R'; - } - $out .= ' /Pattern <<'.$gp.' >>'; - $out .= ' /Shading <<'.$gs.' >>'; - } - } - // spot colors - if (isset($this->spot_colors) AND !empty($this->spot_colors)) { - $out .= ' /ColorSpace <<'; - foreach ($this->spot_colors as $color) { - $out .= ' /CS'.$color['i'].' '.$color['n'].' 0 R'; - } - $out .= ' >>'; - } - $out .= ' >>'; - $out .= "\n".'endobj'; - $this->_out($out); - } - - /** - * Output Resources. - * @protected - */ - protected function _putresources() { - $this->_putextgstates(); - $this->_putocg(); - $this->_putfonts(); - $this->_putimages(); - $this->_putspotcolors(); - $this->_putshaders(); - $this->_putxobjects(); - $this->_putresourcedict(); - $this->_putdests(); - $this->_putEmbeddedFiles(); - $this->_putannotsobjs(); - $this->_putjavascript(); - $this->_putbookmarks(); - $this->_putencryption(); - } - - /** - * Adds some Metadata information (Document Information Dictionary) - * (see Chapter 14.3.3 Document Information Dictionary of PDF32000_2008.pdf Reference) - * @return int object id - * @protected - */ - protected function _putinfo() { - $oid = $this->_newobj(); - $out = '<<'; - // store current isunicode value - $prev_isunicode = $this->isunicode; - if ($this->docinfounicode) { - $this->isunicode = true; - } - if (!TCPDF_STATIC::empty_string($this->title)) { - // The document's title. - $out .= ' /Title '.$this->_textstring($this->title, $oid); - } - if (!TCPDF_STATIC::empty_string($this->author)) { - // The name of the person who created the document. - $out .= ' /Author '.$this->_textstring($this->author, $oid); - } - if (!TCPDF_STATIC::empty_string($this->subject)) { - // The subject of the document. - $out .= ' /Subject '.$this->_textstring($this->subject, $oid); - } - if (!TCPDF_STATIC::empty_string($this->keywords)) { - // Keywords associated with the document. - $out .= ' /Keywords '.$this->_textstring($this->keywords, $oid); - } - if (!TCPDF_STATIC::empty_string($this->creator)) { - // If the document was converted to PDF from another format, the name of the conforming product that created the original document from which it was converted. - $out .= ' /Creator '.$this->_textstring($this->creator, $oid); - } - // restore previous isunicode value - $this->isunicode = $prev_isunicode; - // default producer - $out .= ' /Producer '.$this->_textstring(TCPDF_STATIC::getTCPDFProducer(), $oid); - // The date and time the document was created, in human-readable form - $out .= ' /CreationDate '.$this->_datestring(0, $this->doc_creation_timestamp); - // The date and time the document was most recently modified, in human-readable form - $out .= ' /ModDate '.$this->_datestring(0, $this->doc_modification_timestamp); - // A name object indicating whether the document has been modified to include trapping information - $out .= ' /Trapped /False'; - $out .= ' >>'; - $out .= "\n".'endobj'; - $this->_out($out); - return $oid; - } - - /** - * Set additional XMP data to be added on the default XMP data just before the end of "x:xmpmeta" tag. - * IMPORTANT: This data is added as-is without controls, so you have to validate your data before using this method! - * @param $xmp (string) Custom XMP data. - * @since 5.9.128 (2011-10-06) - * @public - */ - public function setExtraXMP($xmp) { - $this->custom_xmp = $xmp; - } - - /** - * Set additional XMP data to be added on the default XMP data just before the end of "rdf:RDF" tag. - * IMPORTANT: This data is added as-is without controls, so you have to validate your data before using this method! - * @param $xmp (string) Custom XMP RDF data. - * @since 6.3.0 (2019-09-19) - * @public - */ - public function setExtraXMPRDF($xmp) { - $this->custom_xmp_rdf = $xmp; - } - - /** - * Put XMP data object and return ID. - * @return (int) The object ID. - * @since 5.9.121 (2011-09-28) - * @protected - */ - protected function _putXMP() { - $oid = $this->_newobj(); - // store current isunicode value - $prev_isunicode = $this->isunicode; - $this->isunicode = true; - $prev_encrypted = $this->encrypted; - $this->encrypted = false; - // set XMP data - $xmp = 'isunicode).'" id="W5M0MpCehiHzreSzNTczkc9d"?>'."\n"; - $xmp .= ''."\n"; - $xmp .= "\t".''."\n"; - $xmp .= "\t\t".''."\n"; - $xmp .= "\t\t\t".'application/pdf'."\n"; - $xmp .= "\t\t\t".''."\n"; - $xmp .= "\t\t\t\t".''."\n"; - $xmp .= "\t\t\t\t\t".''.TCPDF_STATIC::_escapeXML($this->title).''."\n"; - $xmp .= "\t\t\t\t".''."\n"; - $xmp .= "\t\t\t".''."\n"; - $xmp .= "\t\t\t".''."\n"; - $xmp .= "\t\t\t\t".''."\n"; - $xmp .= "\t\t\t\t\t".''.TCPDF_STATIC::_escapeXML($this->author).''."\n"; - $xmp .= "\t\t\t\t".''."\n"; - $xmp .= "\t\t\t".''."\n"; - $xmp .= "\t\t\t".''."\n"; - $xmp .= "\t\t\t\t".''."\n"; - $xmp .= "\t\t\t\t\t".''.TCPDF_STATIC::_escapeXML($this->subject).''."\n"; - $xmp .= "\t\t\t\t".''."\n"; - $xmp .= "\t\t\t".''."\n"; - $xmp .= "\t\t\t".''."\n"; - $xmp .= "\t\t\t\t".''."\n"; - $xmp .= "\t\t\t\t\t".''.TCPDF_STATIC::_escapeXML($this->keywords).''."\n"; - $xmp .= "\t\t\t\t".''."\n"; - $xmp .= "\t\t\t".''."\n"; - $xmp .= "\t\t".''."\n"; - // convert doc creation date format - $dcdate = TCPDF_STATIC::getFormattedDate($this->doc_creation_timestamp); - $doccreationdate = substr($dcdate, 0, 4).'-'.substr($dcdate, 4, 2).'-'.substr($dcdate, 6, 2); - $doccreationdate .= 'T'.substr($dcdate, 8, 2).':'.substr($dcdate, 10, 2).':'.substr($dcdate, 12, 2); - $doccreationdate .= substr($dcdate, 14, 3).':'.substr($dcdate, 18, 2); - $doccreationdate = TCPDF_STATIC::_escapeXML($doccreationdate); - // convert doc modification date format - $dmdate = TCPDF_STATIC::getFormattedDate($this->doc_modification_timestamp); - $docmoddate = substr($dmdate, 0, 4).'-'.substr($dmdate, 4, 2).'-'.substr($dmdate, 6, 2); - $docmoddate .= 'T'.substr($dmdate, 8, 2).':'.substr($dmdate, 10, 2).':'.substr($dmdate, 12, 2); - $docmoddate .= substr($dmdate, 14, 3).':'.substr($dmdate, 18, 2); - $docmoddate = TCPDF_STATIC::_escapeXML($docmoddate); - $xmp .= "\t\t".''."\n"; - $xmp .= "\t\t\t".''.$doccreationdate.''."\n"; - $xmp .= "\t\t\t".''.$this->creator.''."\n"; - $xmp .= "\t\t\t".''.$docmoddate.''."\n"; - $xmp .= "\t\t\t".''.$doccreationdate.''."\n"; - $xmp .= "\t\t".''."\n"; - $xmp .= "\t\t".''."\n"; - $xmp .= "\t\t\t".''.TCPDF_STATIC::_escapeXML($this->keywords).''."\n"; - $xmp .= "\t\t\t".''.TCPDF_STATIC::_escapeXML(TCPDF_STATIC::getTCPDFProducer()).''."\n"; - $xmp .= "\t\t".''."\n"; - $xmp .= "\t\t".''."\n"; - $uuid = 'uuid:'.substr($this->file_id, 0, 8).'-'.substr($this->file_id, 8, 4).'-'.substr($this->file_id, 12, 4).'-'.substr($this->file_id, 16, 4).'-'.substr($this->file_id, 20, 12); - $xmp .= "\t\t\t".''.$uuid.''."\n"; - $xmp .= "\t\t\t".''.$uuid.''."\n"; - $xmp .= "\t\t".''."\n"; - if ($this->pdfa_mode) { - $xmp .= "\t\t".''."\n"; - $xmp .= "\t\t\t".''.$this->pdfa_version.''."\n"; - $xmp .= "\t\t\t".'B'."\n"; - $xmp .= "\t\t".''."\n"; - } - // XMP extension schemas - $xmp .= "\t\t".''."\n"; - $xmp .= "\t\t\t".''."\n"; - $xmp .= "\t\t\t\t".''."\n"; - $xmp .= "\t\t\t\t\t".''."\n"; - $xmp .= "\t\t\t\t\t\t".'http://ns.adobe.com/pdf/1.3/'."\n"; - $xmp .= "\t\t\t\t\t\t".'pdf'."\n"; - $xmp .= "\t\t\t\t\t\t".'Adobe PDF Schema'."\n"; - $xmp .= "\t\t\t\t\t".''."\n"; - $xmp .= "\t\t\t\t\t".''."\n"; - $xmp .= "\t\t\t\t\t\t".'http://ns.adobe.com/xap/1.0/mm/'."\n"; - $xmp .= "\t\t\t\t\t\t".'xmpMM'."\n"; - $xmp .= "\t\t\t\t\t\t".'XMP Media Management Schema'."\n"; - $xmp .= "\t\t\t\t\t\t".''."\n"; - $xmp .= "\t\t\t\t\t\t\t".''."\n"; - $xmp .= "\t\t\t\t\t\t\t\t".''."\n"; - $xmp .= "\t\t\t\t\t\t\t\t\t".'internal'."\n"; - $xmp .= "\t\t\t\t\t\t\t\t\t".'UUID based identifier for specific incarnation of a document'."\n"; - $xmp .= "\t\t\t\t\t\t\t\t\t".'InstanceID'."\n"; - $xmp .= "\t\t\t\t\t\t\t\t\t".'URI'."\n"; - $xmp .= "\t\t\t\t\t\t\t\t".''."\n"; - $xmp .= "\t\t\t\t\t\t\t".''."\n"; - $xmp .= "\t\t\t\t\t\t".''."\n"; - $xmp .= "\t\t\t\t\t".''."\n"; - $xmp .= "\t\t\t\t\t".''."\n"; - $xmp .= "\t\t\t\t\t\t".'http://www.aiim.org/pdfa/ns/id/'."\n"; - $xmp .= "\t\t\t\t\t\t".'pdfaid'."\n"; - $xmp .= "\t\t\t\t\t\t".'PDF/A ID Schema'."\n"; - $xmp .= "\t\t\t\t\t\t".''."\n"; - $xmp .= "\t\t\t\t\t\t\t".''."\n"; - $xmp .= "\t\t\t\t\t\t\t\t".''."\n"; - $xmp .= "\t\t\t\t\t\t\t\t\t".'internal'."\n"; - $xmp .= "\t\t\t\t\t\t\t\t\t".'Part of PDF/A standard'."\n"; - $xmp .= "\t\t\t\t\t\t\t\t\t".'part'."\n"; - $xmp .= "\t\t\t\t\t\t\t\t\t".'Integer'."\n"; - $xmp .= "\t\t\t\t\t\t\t\t".''."\n"; - $xmp .= "\t\t\t\t\t\t\t\t".''."\n"; - $xmp .= "\t\t\t\t\t\t\t\t\t".'internal'."\n"; - $xmp .= "\t\t\t\t\t\t\t\t\t".'Amendment of PDF/A standard'."\n"; - $xmp .= "\t\t\t\t\t\t\t\t\t".'amd'."\n"; - $xmp .= "\t\t\t\t\t\t\t\t\t".'Text'."\n"; - $xmp .= "\t\t\t\t\t\t\t\t".''."\n"; - $xmp .= "\t\t\t\t\t\t\t\t".''."\n"; - $xmp .= "\t\t\t\t\t\t\t\t\t".'internal'."\n"; - $xmp .= "\t\t\t\t\t\t\t\t\t".'Conformance level of PDF/A standard'."\n"; - $xmp .= "\t\t\t\t\t\t\t\t\t".'conformance'."\n"; - $xmp .= "\t\t\t\t\t\t\t\t\t".'Text'."\n"; - $xmp .= "\t\t\t\t\t\t\t\t".''."\n"; - $xmp .= "\t\t\t\t\t\t\t".''."\n"; - $xmp .= "\t\t\t\t\t\t".''."\n"; - $xmp .= "\t\t\t\t\t".''."\n"; - $xmp .= "\t\t\t\t".''."\n"; - $xmp .= "\t\t\t".''."\n"; - $xmp .= "\t\t".''."\n"; - $xmp .= $this->custom_xmp_rdf; - $xmp .= "\t".''."\n"; - $xmp .= $this->custom_xmp; - $xmp .= ''."\n"; - $xmp .= ''; - $out = '<< /Type /Metadata /Subtype /XML /Length '.strlen($xmp).' >> stream'."\n".$xmp."\n".'endstream'."\n".'endobj'; - // restore previous isunicode value - $this->isunicode = $prev_isunicode; - $this->encrypted = $prev_encrypted; - $this->_out($out); - return $oid; - } - - /** - * Output Catalog. - * @return int object id - * @protected - */ - protected function _putcatalog() { - // put XMP - $xmpobj = $this->_putXMP(); - // if required, add standard sRGB ICC colour profile - if ($this->pdfa_mode OR $this->force_srgb) { - $iccobj = $this->_newobj(); - $icc = file_get_contents(dirname(__FILE__).'/include/sRGB.icc'); - $filter = ''; - if ($this->compress) { - $filter = ' /Filter /FlateDecode'; - $icc = gzcompress($icc); - } - $icc = $this->_getrawstream($icc); - $this->_out('<> stream'."\n".$icc."\n".'endstream'."\n".'endobj'); - } - // start catalog - $oid = $this->_newobj(); - $out = '<< /Type /Catalog'; - $out .= ' /Version /'.$this->PDFVersion; - //$out .= ' /Extensions <<>>'; - $out .= ' /Pages 1 0 R'; - //$out .= ' /PageLabels ' //...; - $out .= ' /Names <<'; - if ((!$this->pdfa_mode) AND !empty($this->n_js)) { - $out .= ' /JavaScript '.$this->n_js; - } - if (!empty($this->efnames)) { - $out .= ' /EmbeddedFiles <efnames AS $fn => $fref) { - $out .= ' '.$this->_datastring($fn).' '.$fref; - } - $out .= ' ]>>'; - } - $out .= ' >>'; - if (!empty($this->dests)) { - $out .= ' /Dests '.($this->n_dests).' 0 R'; - } - $out .= $this->_putviewerpreferences(); - if (isset($this->LayoutMode) AND (!TCPDF_STATIC::empty_string($this->LayoutMode))) { - $out .= ' /PageLayout /'.$this->LayoutMode; - } - if (isset($this->PageMode) AND (!TCPDF_STATIC::empty_string($this->PageMode))) { - $out .= ' /PageMode /'.$this->PageMode; - } - if (count($this->outlines) > 0) { - $out .= ' /Outlines '.$this->OutlineRoot.' 0 R'; - $out .= ' /PageMode /UseOutlines'; - } - //$out .= ' /Threads []'; - if ($this->ZoomMode == 'fullpage') { - $out .= ' /OpenAction ['.$this->page_obj_id[1].' 0 R /Fit]'; - } elseif ($this->ZoomMode == 'fullwidth') { - $out .= ' /OpenAction ['.$this->page_obj_id[1].' 0 R /FitH null]'; - } elseif ($this->ZoomMode == 'real') { - $out .= ' /OpenAction ['.$this->page_obj_id[1].' 0 R /XYZ null null 1]'; - } elseif (!is_string($this->ZoomMode)) { - $out .= sprintf(' /OpenAction ['.$this->page_obj_id[1].' 0 R /XYZ null null %F]', ($this->ZoomMode / 100)); - } - //$out .= ' /AA <<>>'; - //$out .= ' /URI <<>>'; - $out .= ' /Metadata '.$xmpobj.' 0 R'; - //$out .= ' /StructTreeRoot <<>>'; - //$out .= ' /MarkInfo <<>>'; - if (isset($this->l['a_meta_language'])) { - $out .= ' /Lang '.$this->_textstring($this->l['a_meta_language'], $oid); - } - //$out .= ' /SpiderInfo <<>>'; - // set OutputIntent to sRGB IEC61966-2.1 if required - if ($this->pdfa_mode OR $this->force_srgb) { - $out .= ' /OutputIntents [<<'; - $out .= ' /Type /OutputIntent'; - $out .= ' /S /GTS_PDFA1'; - $out .= ' /OutputCondition '.$this->_textstring('sRGB IEC61966-2.1', $oid); - $out .= ' /OutputConditionIdentifier '.$this->_textstring('sRGB IEC61966-2.1', $oid); - $out .= ' /RegistryName '.$this->_textstring('http://www.color.org', $oid); - $out .= ' /Info '.$this->_textstring('sRGB IEC61966-2.1', $oid); - $out .= ' /DestOutputProfile '.$iccobj.' 0 R'; - $out .= ' >>]'; - } - //$out .= ' /PieceInfo <<>>'; - if (!empty($this->pdflayers)) { - $lyrobjs = ''; - $lyrobjs_off = ''; - $lyrobjs_lock = ''; - foreach ($this->pdflayers as $layer) { - $layer_obj_ref = ' '.$layer['objid'].' 0 R'; - $lyrobjs .= $layer_obj_ref; - if ($layer['view'] === false) { - $lyrobjs_off .= $layer_obj_ref; - } - if ($layer['lock']) { - $lyrobjs_lock .= $layer_obj_ref; - } - } - $out .= ' /OCProperties << /OCGs ['.$lyrobjs.']'; - $out .= ' /D <<'; - $out .= ' /Name '.$this->_textstring('Layers', $oid); - $out .= ' /Creator '.$this->_textstring('TCPDF', $oid); - $out .= ' /BaseState /ON'; - $out .= ' /OFF ['.$lyrobjs_off.']'; - $out .= ' /Locked ['.$lyrobjs_lock.']'; - $out .= ' /Intent /View'; - $out .= ' /AS ['; - $out .= ' << /Event /Print /OCGs ['.$lyrobjs.'] /Category [/Print] >>'; - $out .= ' << /Event /View /OCGs ['.$lyrobjs.'] /Category [/View] >>'; - $out .= ' ]'; - $out .= ' /Order ['.$lyrobjs.']'; - $out .= ' /ListMode /AllPages'; - //$out .= ' /RBGroups ['..']'; - //$out .= ' /Locked ['..']'; - $out .= ' >>'; - $out .= ' >>'; - } - // AcroForm - if (!empty($this->form_obj_id) - OR ($this->sign AND isset($this->signature_data['cert_type'])) - OR !empty($this->empty_signature_appearance)) { - $out .= ' /AcroForm <<'; - $objrefs = ''; - if ($this->sign AND isset($this->signature_data['cert_type'])) { - // set reference for signature object - $objrefs .= $this->sig_obj_id.' 0 R'; - } - if (!empty($this->empty_signature_appearance)) { - foreach ($this->empty_signature_appearance as $esa) { - // set reference for empty signature objects - $objrefs .= ' '.$esa['objid'].' 0 R'; - } - } - if (!empty($this->form_obj_id)) { - foreach($this->form_obj_id as $objid) { - $objrefs .= ' '.$objid.' 0 R'; - } - } - $out .= ' /Fields ['.$objrefs.']'; - // It's better to turn off this value and set the appearance stream for each annotation (/AP) to avoid conflicts with signature fields. - if (empty($this->signature_data['approval']) OR ($this->signature_data['approval'] != 'A')) { - $out .= ' /NeedAppearances false'; - } - if ($this->sign AND isset($this->signature_data['cert_type'])) { - if ($this->signature_data['cert_type'] > 0) { - $out .= ' /SigFlags 3'; - } else { - $out .= ' /SigFlags 1'; - } - } - //$out .= ' /CO '; - if (isset($this->annotation_fonts) AND !empty($this->annotation_fonts)) { - $out .= ' /DR <<'; - $out .= ' /Font <<'; - foreach ($this->annotation_fonts as $fontkey => $fontid) { - $out .= ' /F'.$fontid.' '.$this->font_obj_ids[$fontkey].' 0 R'; - } - $out .= ' >> >>'; - } - $font = $this->getFontBuffer('helvetica'); - $out .= ' /DA (/F'.$font['i'].' 0 Tf 0 g)'; - $out .= ' /Q '.(($this->rtl)?'2':'0'); - //$out .= ' /XFA '; - $out .= ' >>'; - // signatures - if ($this->sign AND isset($this->signature_data['cert_type']) - AND (empty($this->signature_data['approval']) OR ($this->signature_data['approval'] != 'A'))) { - if ($this->signature_data['cert_type'] > 0) { - $out .= ' /Perms << /DocMDP '.($this->sig_obj_id + 1).' 0 R >>'; - } else { - $out .= ' /Perms << /UR3 '.($this->sig_obj_id + 1).' 0 R >>'; - } - } - } - //$out .= ' /Legal <<>>'; - //$out .= ' /Requirements []'; - //$out .= ' /Collection <<>>'; - //$out .= ' /NeedsRendering true'; - $out .= ' >>'; - $out .= "\n".'endobj'; - $this->_out($out); - return $oid; - } - - /** - * Output viewer preferences. - * @return string for viewer preferences - * @author Nicola asuni - * @since 3.1.000 (2008-06-09) - * @protected - */ - protected function _putviewerpreferences() { - $vp = $this->viewer_preferences; - $out = ' /ViewerPreferences <<'; - if ($this->rtl) { - $out .= ' /Direction /R2L'; - } else { - $out .= ' /Direction /L2R'; - } - if (isset($vp['HideToolbar']) AND ($vp['HideToolbar'])) { - $out .= ' /HideToolbar true'; - } - if (isset($vp['HideMenubar']) AND ($vp['HideMenubar'])) { - $out .= ' /HideMenubar true'; - } - if (isset($vp['HideWindowUI']) AND ($vp['HideWindowUI'])) { - $out .= ' /HideWindowUI true'; - } - if (isset($vp['FitWindow']) AND ($vp['FitWindow'])) { - $out .= ' /FitWindow true'; - } - if (isset($vp['CenterWindow']) AND ($vp['CenterWindow'])) { - $out .= ' /CenterWindow true'; - } - if (isset($vp['DisplayDocTitle']) AND ($vp['DisplayDocTitle'])) { - $out .= ' /DisplayDocTitle true'; - } - if (isset($vp['NonFullScreenPageMode'])) { - $out .= ' /NonFullScreenPageMode /'.$vp['NonFullScreenPageMode']; - } - if (isset($vp['ViewArea'])) { - $out .= ' /ViewArea /'.$vp['ViewArea']; - } - if (isset($vp['ViewClip'])) { - $out .= ' /ViewClip /'.$vp['ViewClip']; - } - if (isset($vp['PrintArea'])) { - $out .= ' /PrintArea /'.$vp['PrintArea']; - } - if (isset($vp['PrintClip'])) { - $out .= ' /PrintClip /'.$vp['PrintClip']; - } - if (isset($vp['PrintScaling'])) { - $out .= ' /PrintScaling /'.$vp['PrintScaling']; - } - if (isset($vp['Duplex']) AND (!TCPDF_STATIC::empty_string($vp['Duplex']))) { - $out .= ' /Duplex /'.$vp['Duplex']; - } - if (isset($vp['PickTrayByPDFSize'])) { - if ($vp['PickTrayByPDFSize']) { - $out .= ' /PickTrayByPDFSize true'; - } else { - $out .= ' /PickTrayByPDFSize false'; - } - } - if (isset($vp['PrintPageRange'])) { - $PrintPageRangeNum = ''; - foreach ($vp['PrintPageRange'] as $k => $v) { - $PrintPageRangeNum .= ' '.($v - 1).''; - } - $out .= ' /PrintPageRange ['.substr($PrintPageRangeNum,1).']'; - } - if (isset($vp['NumCopies'])) { - $out .= ' /NumCopies '.intval($vp['NumCopies']); - } - $out .= ' >>'; - return $out; - } - - /** - * Output PDF File Header (7.5.2). - * @protected - */ - protected function _putheader() { - $this->_out('%PDF-'.$this->PDFVersion); - $this->_out('%'.chr(0xe2).chr(0xe3).chr(0xcf).chr(0xd3)); - } - - /** - * Output end of document (EOF). - * @protected - */ - protected function _enddoc() { - if (isset($this->CurrentFont['fontkey']) AND isset($this->CurrentFont['subsetchars'])) { - // save subset chars of the previous font - $this->setFontSubBuffer($this->CurrentFont['fontkey'], 'subsetchars', $this->CurrentFont['subsetchars']); - } - $this->state = 1; - $this->_putheader(); - $this->_putpages(); - $this->_putresources(); - // empty signature fields - if (!empty($this->empty_signature_appearance)) { - foreach ($this->empty_signature_appearance as $key => $esa) { - // widget annotation for empty signature - $out = $this->_getobj($esa['objid'])."\n"; - $out .= '<< /Type /Annot'; - $out .= ' /Subtype /Widget'; - $out .= ' /Rect ['.$esa['rect'].']'; - $out .= ' /P '.$this->page_obj_id[($esa['page'])].' 0 R'; // link to signature appearance page - $out .= ' /F 4'; - $out .= ' /FT /Sig'; - $signame = $esa['name'].sprintf(' [%03d]', ($key + 1)); - $out .= ' /T '.$this->_textstring($signame, $esa['objid']); - $out .= ' /Ff 0'; - $out .= ' >>'; - $out .= "\n".'endobj'; - $this->_out($out); - } - } - // Signature - if ($this->sign AND isset($this->signature_data['cert_type'])) { - // widget annotation for signature - $out = $this->_getobj($this->sig_obj_id)."\n"; - $out .= '<< /Type /Annot'; - $out .= ' /Subtype /Widget'; - $out .= ' /Rect ['.$this->signature_appearance['rect'].']'; - $out .= ' /P '.$this->page_obj_id[($this->signature_appearance['page'])].' 0 R'; // link to signature appearance page - $out .= ' /F 4'; - $out .= ' /FT /Sig'; - $out .= ' /T '.$this->_textstring($this->signature_appearance['name'], $this->sig_obj_id); - $out .= ' /Ff 0'; - $out .= ' /V '.($this->sig_obj_id + 1).' 0 R'; - $out .= ' >>'; - $out .= "\n".'endobj'; - $this->_out($out); - // signature - $this->_putsignature(); - } - // Info - $objid_info = $this->_putinfo(); - // Catalog - $objid_catalog = $this->_putcatalog(); - // Cross-ref - $o = $this->bufferlen; - // XREF section - $this->_out('xref'); - $this->_out('0 '.($this->n + 1)); - $this->_out('0000000000 65535 f '); - $freegen = ($this->n + 2); - for ($i=1; $i <= $this->n; ++$i) { - if (!isset($this->offsets[$i]) AND ($i > 1)) { - $this->_out(sprintf('0000000000 %05d f ', $freegen)); - ++$freegen; - } else { - $this->_out(sprintf('%010d 00000 n ', $this->offsets[$i])); - } - } - // TRAILER - $out = 'trailer'."\n"; - $out .= '<<'; - $out .= ' /Size '.($this->n + 1); - $out .= ' /Root '.$objid_catalog.' 0 R'; - $out .= ' /Info '.$objid_info.' 0 R'; - if ($this->encrypted) { - $out .= ' /Encrypt '.$this->encryptdata['objid'].' 0 R'; - } - $out .= ' /ID [ <'.$this->file_id.'> <'.$this->file_id.'> ]'; - $out .= ' >>'; - $this->_out($out); - $this->_out('startxref'); - $this->_out($o); - $this->_out('%%EOF'); - $this->state = 3; // end-of-doc - } - - /** - * Initialize a new page. - * @param $orientation (string) page orientation. Possible values are (case insensitive):
      • P or PORTRAIT (default)
      • L or LANDSCAPE
      - * @param $format (mixed) The format used for pages. It can be either: one of the string values specified at getPageSizeFromFormat() or an array of parameters specified at setPageFormat(). - * @protected - * @see getPageSizeFromFormat(), setPageFormat() - */ - protected function _beginpage($orientation='', $format='') { - ++$this->page; - $this->pageobjects[$this->page] = array(); - $this->setPageBuffer($this->page, ''); - // initialize array for graphics tranformation positions inside a page buffer - $this->transfmrk[$this->page] = array(); - $this->state = 2; - if (TCPDF_STATIC::empty_string($orientation)) { - if (isset($this->CurOrientation)) { - $orientation = $this->CurOrientation; - } elseif ($this->fwPt > $this->fhPt) { - // landscape - $orientation = 'L'; - } else { - // portrait - $orientation = 'P'; - } - } - if (TCPDF_STATIC::empty_string($format)) { - $this->pagedim[$this->page] = $this->pagedim[($this->page - 1)]; - $this->setPageOrientation($orientation); - } else { - $this->setPageFormat($format, $orientation); - } - if ($this->rtl) { - $this->x = $this->w - $this->rMargin; - } else { - $this->x = $this->lMargin; - } - $this->y = $this->tMargin; - if (isset($this->newpagegroup[$this->page])) { - // start a new group - $this->currpagegroup = $this->newpagegroup[$this->page]; - $this->pagegroups[$this->currpagegroup] = 1; - } elseif (isset($this->currpagegroup) AND ($this->currpagegroup > 0)) { - ++$this->pagegroups[$this->currpagegroup]; - } - } - - /** - * Mark end of page. - * @protected - */ - protected function _endpage() { - $this->setVisibility('all'); - $this->state = 1; - } - - /** - * Begin a new object and return the object number. - * @return int object number - * @protected - */ - protected function _newobj() { - $this->_out($this->_getobj()); - return $this->n; - } - - /** - * Return the starting object string for the selected object ID. - * @param $objid (int) Object ID (leave empty to get a new ID). - * @return string the starting object string - * @protected - * @since 5.8.009 (2010-08-20) - */ - protected function _getobj($objid='') { - if ($objid === '') { - ++$this->n; - $objid = $this->n; - } - $this->offsets[$objid] = $this->bufferlen; - $this->pageobjects[$this->page][] = $objid; - return $objid.' 0 obj'; - } - - /** - * Underline text. - * @param $x (int) X coordinate - * @param $y (int) Y coordinate - * @param $txt (string) text to underline - * @protected - */ - protected function _dounderline($x, $y, $txt) { - $w = $this->GetStringWidth($txt); - return $this->_dounderlinew($x, $y, $w); - } - - /** - * Underline for rectangular text area. - * @param $x (int) X coordinate - * @param $y (int) Y coordinate - * @param $w (int) width to underline - * @protected - * @since 4.8.008 (2009-09-29) - */ - protected function _dounderlinew($x, $y, $w) { - $linew = - $this->CurrentFont['ut'] / 1000 * $this->FontSizePt; - return sprintf('%F %F %F %F re f', $x * $this->k, ((($this->h - $y) * $this->k) + $linew), $w * $this->k, $linew); - } - - /** - * Line through text. - * @param $x (int) X coordinate - * @param $y (int) Y coordinate - * @param $txt (string) text to linethrough - * @protected - */ - protected function _dolinethrough($x, $y, $txt) { - $w = $this->GetStringWidth($txt); - return $this->_dolinethroughw($x, $y, $w); - } - - /** - * Line through for rectangular text area. - * @param $x (int) X coordinate - * @param $y (int) Y coordinate - * @param $w (int) line length (width) - * @protected - * @since 4.9.008 (2009-09-29) - */ - protected function _dolinethroughw($x, $y, $w) { - $linew = - $this->CurrentFont['ut'] / 1000 * $this->FontSizePt; - return sprintf('%F %F %F %F re f', $x * $this->k, ((($this->h - $y) * $this->k) + $linew + ($this->FontSizePt / 3)), $w * $this->k, $linew); - } - - /** - * Overline text. - * @param $x (int) X coordinate - * @param $y (int) Y coordinate - * @param $txt (string) text to overline - * @protected - * @since 4.9.015 (2010-04-19) - */ - protected function _dooverline($x, $y, $txt) { - $w = $this->GetStringWidth($txt); - return $this->_dooverlinew($x, $y, $w); - } - - /** - * Overline for rectangular text area. - * @param $x (int) X coordinate - * @param $y (int) Y coordinate - * @param $w (int) width to overline - * @protected - * @since 4.9.015 (2010-04-19) - */ - protected function _dooverlinew($x, $y, $w) { - $linew = - $this->CurrentFont['ut'] / 1000 * $this->FontSizePt; - return sprintf('%F %F %F %F re f', $x * $this->k, (($this->h - $y + $this->FontAscent) * $this->k) - $linew, $w * $this->k, $linew); - - } - - /** - * Format a data string for meta information - * @param $s (string) data string to escape. - * @param $n (int) object ID - * @return string escaped string. - * @protected - */ - protected function _datastring($s, $n=0) { - if ($n == 0) { - $n = $this->n; - } - $s = $this->_encrypt_data($n, $s); - return '('. TCPDF_STATIC::_escape($s).')'; - } - - /** - * Set the document creation timestamp - * @param $time (mixed) Document creation timestamp in seconds or date-time string. - * @public - * @since 5.9.152 (2012-03-23) - */ - public function setDocCreationTimestamp($time) { - if (is_string($time)) { - $time = TCPDF_STATIC::getTimestamp($time); - } - $this->doc_creation_timestamp = intval($time); - } - - /** - * Set the document modification timestamp - * @param $time (mixed) Document modification timestamp in seconds or date-time string. - * @public - * @since 5.9.152 (2012-03-23) - */ - public function setDocModificationTimestamp($time) { - if (is_string($time)) { - $time = TCPDF_STATIC::getTimestamp($time); - } - $this->doc_modification_timestamp = intval($time); - } - - /** - * Returns document creation timestamp in seconds. - * @return (int) Creation timestamp in seconds. - * @public - * @since 5.9.152 (2012-03-23) - */ - public function getDocCreationTimestamp() { - return $this->doc_creation_timestamp; - } - - /** - * Returns document modification timestamp in seconds. - * @return (int) Modfication timestamp in seconds. - * @public - * @since 5.9.152 (2012-03-23) - */ - public function getDocModificationTimestamp() { - return $this->doc_modification_timestamp; - } - - /** - * Returns a formatted date for meta information - * @param $n (int) Object ID. - * @param $timestamp (int) Timestamp to convert. - * @return string escaped date string. - * @protected - * @since 4.6.028 (2009-08-25) - */ - protected function _datestring($n=0, $timestamp=0) { - if ((empty($timestamp)) OR ($timestamp < 0)) { - $timestamp = $this->doc_creation_timestamp; - } - return $this->_datastring('D:'.TCPDF_STATIC::getFormattedDate($timestamp), $n); - } - - /** - * Format a text string for meta information - * @param $s (string) string to escape. - * @param $n (int) object ID - * @return string escaped string. - * @protected - */ - protected function _textstring($s, $n=0) { - if ($this->isunicode) { - //Convert string to UTF-16BE - $s = TCPDF_FONTS::UTF8ToUTF16BE($s, true, $this->isunicode, $this->CurrentFont); - } - return $this->_datastring($s, $n); - } - - /** - * get raw output stream. - * @param $s (string) string to output. - * @param $n (int) object reference for encryption mode - * @protected - * @author Nicola Asuni - * @since 5.5.000 (2010-06-22) - */ - protected function _getrawstream($s, $n=0) { - if ($n <= 0) { - // default to current object - $n = $this->n; - } - return $this->_encrypt_data($n, $s); - } - - /** - * Output a string to the document. - * @param $s (string) string to output. - * @protected - */ - protected function _out($s) { - if ($this->state == 2) { - if ($this->inxobj) { - // we are inside an XObject template - $this->xobjects[$this->xobjid]['outdata'] .= $s."\n"; - } elseif ((!$this->InFooter) AND isset($this->footerlen[$this->page]) AND ($this->footerlen[$this->page] > 0)) { - // puts data before page footer - $pagebuff = $this->getPageBuffer($this->page); - $page = substr($pagebuff, 0, -$this->footerlen[$this->page]); - $footer = substr($pagebuff, -$this->footerlen[$this->page]); - $this->setPageBuffer($this->page, $page.$s."\n".$footer); - // update footer position - $this->footerpos[$this->page] += strlen($s."\n"); - } else { - // set page data - $this->setPageBuffer($this->page, $s."\n", true); - } - } elseif ($this->state > 0) { - // set general data - $this->setBuffer($s."\n"); - } - } - - /** - * Set header font. - * @param $font (array) Array describing the basic font parameters: (family, style, size). - * @public - * @since 1.1 - */ - public function setHeaderFont($font) { - $this->header_font = $font; - } - - /** - * Get header font. - * @return array() Array describing the basic font parameters: (family, style, size). - * @public - * @since 4.0.012 (2008-07-24) - */ - public function getHeaderFont() { - return $this->header_font; - } - - /** - * Set footer font. - * @param $font (array) Array describing the basic font parameters: (family, style, size). - * @public - * @since 1.1 - */ - public function setFooterFont($font) { - $this->footer_font = $font; - } - - /** - * Get Footer font. - * @return array() Array describing the basic font parameters: (family, style, size). - * @public - * @since 4.0.012 (2008-07-24) - */ - public function getFooterFont() { - return $this->footer_font; - } - - /** - * Set language array. - * @param $language (array) - * @public - * @since 1.1 - */ - public function setLanguageArray($language) { - $this->l = $language; - if (isset($this->l['a_meta_dir'])) { - $this->rtl = $this->l['a_meta_dir']=='rtl' ? true : false; - } else { - $this->rtl = false; - } - } - - /** - * Returns the PDF data. - * @public - */ - public function getPDFData() { - if ($this->state < 3) { - $this->Close(); - } - return $this->buffer; - } - - /** - * Output anchor link. - * @param $url (string) link URL or internal link (i.e.: <a href="#23,4.5">link to page 23 at 4.5 Y position</a>) - * @param $name (string) link name - * @param $fill (boolean) Indicates if the cell background must be painted (true) or transparent (false). - * @param $firstline (boolean) if true prints only the first line and return the remaining string. - * @param $color (array) array of RGB text color - * @param $style (string) font style (U, D, B, I) - * @param $firstblock (boolean) if true the string is the starting of a line. - * @return the number of cells used or the remaining text if $firstline = true; - * @public - */ - public function addHtmlLink($url, $name, $fill=false, $firstline=false, $color='', $style=-1, $firstblock=false) { - if (isset($url[1]) AND ($url[0] == '#') AND is_numeric($url[1])) { - // convert url to internal link - $lnkdata = explode(',', $url); - if (isset($lnkdata[0]) ) { - $page = substr($lnkdata[0], 1); - if (isset($lnkdata[1]) AND (strlen($lnkdata[1]) > 0)) { - $lnky = floatval($lnkdata[1]); - } else { - $lnky = 0; - } - $url = $this->AddLink(); - $this->SetLink($url, $lnky, $page); - } - } - // store current settings - $prevcolor = $this->fgcolor; - $prevstyle = $this->FontStyle; - if (empty($color)) { - $this->SetTextColorArray($this->htmlLinkColorArray); - } else { - $this->SetTextColorArray($color); - } - if ($style == -1) { - $this->SetFont('', $this->FontStyle.$this->htmlLinkFontStyle); - } else { - $this->SetFont('', $this->FontStyle.$style); - } - $ret = $this->Write($this->lasth, $name, $url, $fill, '', false, 0, $firstline, $firstblock, 0); - // restore settings - $this->SetFont('', $prevstyle); - $this->SetTextColorArray($prevcolor); - return $ret; - } - - /** - * Converts pixels to User's Units. - * @param $px (int) pixels - * @return float value in user's unit - * @public - * @see setImageScale(), getImageScale() - */ - public function pixelsToUnits($px) { - return ($px / ($this->imgscale * $this->k)); - } - - /** - * Reverse function for htmlentities. - * Convert entities in UTF-8. - * @param $text_to_convert (string) Text to convert. - * @return string converted text string - * @public - */ - public function unhtmlentities($text_to_convert) { - return @html_entity_decode($text_to_convert, ENT_QUOTES, $this->encoding); - } - - // ENCRYPTION METHODS ---------------------------------- - - /** - * Compute encryption key depending on object number where the encrypted data is stored. - * This is used for all strings and streams without crypt filter specifier. - * @param $n (int) object number - * @return int object key - * @protected - * @author Nicola Asuni - * @since 2.0.000 (2008-01-02) - */ - protected function _objectkey($n) { - $objkey = $this->encryptdata['key'].pack('VXxx', $n); - if ($this->encryptdata['mode'] == 2) { // AES-128 - // AES padding - $objkey .= "\x73\x41\x6C\x54"; // sAlT - } - $objkey = substr(TCPDF_STATIC::_md5_16($objkey), 0, (($this->encryptdata['Length'] / 8) + 5)); - $objkey = substr($objkey, 0, 16); - return $objkey; - } - - /** - * Encrypt the input string. - * @param $n (int) object number - * @param $s (string) data string to encrypt - * @return encrypted string - * @protected - * @author Nicola Asuni - * @since 5.0.005 (2010-05-11) - */ - protected function _encrypt_data($n, $s) { - if (!$this->encrypted) { - return $s; - } - switch ($this->encryptdata['mode']) { - case 0: // RC4-40 - case 1: { // RC4-128 - $s = TCPDF_STATIC::_RC4($this->_objectkey($n), $s, $this->last_enc_key, $this->last_enc_key_c); - break; - } - case 2: { // AES-128 - $s = TCPDF_STATIC::_AES($this->_objectkey($n), $s); - break; - } - case 3: { // AES-256 - $s = TCPDF_STATIC::_AES($this->encryptdata['key'], $s); - break; - } - } - return $s; - } - - /** - * Put encryption on PDF document. - * @protected - * @author Nicola Asuni - * @since 2.0.000 (2008-01-02) - */ - protected function _putencryption() { - if (!$this->encrypted) { - return; - } - $this->encryptdata['objid'] = $this->_newobj(); - $out = '<<'; - if (!isset($this->encryptdata['Filter']) OR empty($this->encryptdata['Filter'])) { - $this->encryptdata['Filter'] = 'Standard'; - } - $out .= ' /Filter /'.$this->encryptdata['Filter']; - if (isset($this->encryptdata['SubFilter']) AND !empty($this->encryptdata['SubFilter'])) { - $out .= ' /SubFilter /'.$this->encryptdata['SubFilter']; - } - if (!isset($this->encryptdata['V']) OR empty($this->encryptdata['V'])) { - $this->encryptdata['V'] = 1; - } - // V is a code specifying the algorithm to be used in encrypting and decrypting the document - $out .= ' /V '.$this->encryptdata['V']; - if (isset($this->encryptdata['Length']) AND !empty($this->encryptdata['Length'])) { - // The length of the encryption key, in bits. The value shall be a multiple of 8, in the range 40 to 256 - $out .= ' /Length '.$this->encryptdata['Length']; - } else { - $out .= ' /Length 40'; - } - if ($this->encryptdata['V'] >= 4) { - if (!isset($this->encryptdata['StmF']) OR empty($this->encryptdata['StmF'])) { - $this->encryptdata['StmF'] = 'Identity'; - } - if (!isset($this->encryptdata['StrF']) OR empty($this->encryptdata['StrF'])) { - // The name of the crypt filter that shall be used when decrypting all strings in the document. - $this->encryptdata['StrF'] = 'Identity'; - } - // A dictionary whose keys shall be crypt filter names and whose values shall be the corresponding crypt filter dictionaries. - if (isset($this->encryptdata['CF']) AND !empty($this->encryptdata['CF'])) { - $out .= ' /CF <<'; - $out .= ' /'.$this->encryptdata['StmF'].' <<'; - $out .= ' /Type /CryptFilter'; - if (isset($this->encryptdata['CF']['CFM']) AND !empty($this->encryptdata['CF']['CFM'])) { - // The method used - $out .= ' /CFM /'.$this->encryptdata['CF']['CFM']; - if ($this->encryptdata['pubkey']) { - $out .= ' /Recipients ['; - foreach ($this->encryptdata['Recipients'] as $rec) { - $out .= ' <'.$rec.'>'; - } - $out .= ' ]'; - if (isset($this->encryptdata['CF']['EncryptMetadata']) AND (!$this->encryptdata['CF']['EncryptMetadata'])) { - $out .= ' /EncryptMetadata false'; - } else { - $out .= ' /EncryptMetadata true'; - } - } - } else { - $out .= ' /CFM /None'; - } - if (isset($this->encryptdata['CF']['AuthEvent']) AND !empty($this->encryptdata['CF']['AuthEvent'])) { - // The event to be used to trigger the authorization that is required to access encryption keys used by this filter. - $out .= ' /AuthEvent /'.$this->encryptdata['CF']['AuthEvent']; - } else { - $out .= ' /AuthEvent /DocOpen'; - } - if (isset($this->encryptdata['CF']['Length']) AND !empty($this->encryptdata['CF']['Length'])) { - // The bit length of the encryption key. - $out .= ' /Length '.$this->encryptdata['CF']['Length']; - } - $out .= ' >> >>'; - } - // The name of the crypt filter that shall be used by default when decrypting streams. - $out .= ' /StmF /'.$this->encryptdata['StmF']; - // The name of the crypt filter that shall be used when decrypting all strings in the document. - $out .= ' /StrF /'.$this->encryptdata['StrF']; - if (isset($this->encryptdata['EFF']) AND !empty($this->encryptdata['EFF'])) { - // The name of the crypt filter that shall be used when encrypting embedded file streams that do not have their own crypt filter specifier. - $out .= ' /EFF /'.$this->encryptdata['']; - } - } - // Additional encryption dictionary entries for the standard security handler - if ($this->encryptdata['pubkey']) { - if (($this->encryptdata['V'] < 4) AND isset($this->encryptdata['Recipients']) AND !empty($this->encryptdata['Recipients'])) { - $out .= ' /Recipients ['; - foreach ($this->encryptdata['Recipients'] as $rec) { - $out .= ' <'.$rec.'>'; - } - $out .= ' ]'; - } - } else { - $out .= ' /R'; - if ($this->encryptdata['V'] == 5) { // AES-256 - $out .= ' 5'; - $out .= ' /OE ('.TCPDF_STATIC::_escape($this->encryptdata['OE']).')'; - $out .= ' /UE ('.TCPDF_STATIC::_escape($this->encryptdata['UE']).')'; - $out .= ' /Perms ('.TCPDF_STATIC::_escape($this->encryptdata['perms']).')'; - } elseif ($this->encryptdata['V'] == 4) { // AES-128 - $out .= ' 4'; - } elseif ($this->encryptdata['V'] < 2) { // RC-40 - $out .= ' 2'; - } else { // RC-128 - $out .= ' 3'; - } - $out .= ' /O ('.TCPDF_STATIC::_escape($this->encryptdata['O']).')'; - $out .= ' /U ('.TCPDF_STATIC::_escape($this->encryptdata['U']).')'; - $out .= ' /P '.$this->encryptdata['P']; - if (isset($this->encryptdata['EncryptMetadata']) AND (!$this->encryptdata['EncryptMetadata'])) { - $out .= ' /EncryptMetadata false'; - } else { - $out .= ' /EncryptMetadata true'; - } - } - $out .= ' >>'; - $out .= "\n".'endobj'; - $this->_out($out); - } - - /** - * Compute U value (used for encryption) - * @return string U value - * @protected - * @since 2.0.000 (2008-01-02) - * @author Nicola Asuni - */ - protected function _Uvalue() { - if ($this->encryptdata['mode'] == 0) { // RC4-40 - return TCPDF_STATIC::_RC4($this->encryptdata['key'], TCPDF_STATIC::$enc_padding, $this->last_enc_key, $this->last_enc_key_c); - } elseif ($this->encryptdata['mode'] < 3) { // RC4-128, AES-128 - $tmp = TCPDF_STATIC::_md5_16(TCPDF_STATIC::$enc_padding.$this->encryptdata['fileid']); - $enc = TCPDF_STATIC::_RC4($this->encryptdata['key'], $tmp, $this->last_enc_key, $this->last_enc_key_c); - $len = strlen($tmp); - for ($i = 1; $i <= 19; ++$i) { - $ek = ''; - for ($j = 0; $j < $len; ++$j) { - $ek .= chr(ord($this->encryptdata['key'][$j]) ^ $i); - } - $enc = TCPDF_STATIC::_RC4($ek, $enc, $this->last_enc_key, $this->last_enc_key_c); - } - $enc .= str_repeat("\x00", 16); - return substr($enc, 0, 32); - } elseif ($this->encryptdata['mode'] == 3) { // AES-256 - $seed = TCPDF_STATIC::_md5_16(TCPDF_STATIC::getRandomSeed()); - // User Validation Salt - $this->encryptdata['UVS'] = substr($seed, 0, 8); - // User Key Salt - $this->encryptdata['UKS'] = substr($seed, 8, 16); - return hash('sha256', $this->encryptdata['user_password'].$this->encryptdata['UVS'], true).$this->encryptdata['UVS'].$this->encryptdata['UKS']; - } - } - - /** - * Compute UE value (used for encryption) - * @return string UE value - * @protected - * @since 5.9.006 (2010-10-19) - * @author Nicola Asuni - */ - protected function _UEvalue() { - $hashkey = hash('sha256', $this->encryptdata['user_password'].$this->encryptdata['UKS'], true); - return TCPDF_STATIC::_AESnopad($hashkey, $this->encryptdata['key']); - } - - /** - * Compute O value (used for encryption) - * @return string O value - * @protected - * @since 2.0.000 (2008-01-02) - * @author Nicola Asuni - */ - protected function _Ovalue() { - if ($this->encryptdata['mode'] < 3) { // RC4-40, RC4-128, AES-128 - $tmp = TCPDF_STATIC::_md5_16($this->encryptdata['owner_password']); - if ($this->encryptdata['mode'] > 0) { - for ($i = 0; $i < 50; ++$i) { - $tmp = TCPDF_STATIC::_md5_16($tmp); - } - } - $owner_key = substr($tmp, 0, ($this->encryptdata['Length'] / 8)); - $enc = TCPDF_STATIC::_RC4($owner_key, $this->encryptdata['user_password'], $this->last_enc_key, $this->last_enc_key_c); - if ($this->encryptdata['mode'] > 0) { - $len = strlen($owner_key); - for ($i = 1; $i <= 19; ++$i) { - $ek = ''; - for ($j = 0; $j < $len; ++$j) { - $ek .= chr(ord($owner_key[$j]) ^ $i); - } - $enc = TCPDF_STATIC::_RC4($ek, $enc, $this->last_enc_key, $this->last_enc_key_c); - } - } - return $enc; - } elseif ($this->encryptdata['mode'] == 3) { // AES-256 - $seed = TCPDF_STATIC::_md5_16(TCPDF_STATIC::getRandomSeed()); - // Owner Validation Salt - $this->encryptdata['OVS'] = substr($seed, 0, 8); - // Owner Key Salt - $this->encryptdata['OKS'] = substr($seed, 8, 16); - return hash('sha256', $this->encryptdata['owner_password'].$this->encryptdata['OVS'].$this->encryptdata['U'], true).$this->encryptdata['OVS'].$this->encryptdata['OKS']; - } - } - - /** - * Compute OE value (used for encryption) - * @return string OE value - * @protected - * @since 5.9.006 (2010-10-19) - * @author Nicola Asuni - */ - protected function _OEvalue() { - $hashkey = hash('sha256', $this->encryptdata['owner_password'].$this->encryptdata['OKS'].$this->encryptdata['U'], true); - return TCPDF_STATIC::_AESnopad($hashkey, $this->encryptdata['key']); - } - - /** - * Convert password for AES-256 encryption mode - * @param $password (string) password - * @return string password - * @protected - * @since 5.9.006 (2010-10-19) - * @author Nicola Asuni - */ - protected function _fixAES256Password($password) { - $psw = ''; // password to be returned - $psw_array = TCPDF_FONTS::utf8Bidi(TCPDF_FONTS::UTF8StringToArray($password, $this->isunicode, $this->CurrentFont), $password, $this->rtl, $this->isunicode, $this->CurrentFont); - foreach ($psw_array as $c) { - $psw .= TCPDF_FONTS::unichr($c, $this->isunicode); - } - return substr($psw, 0, 127); - } - - /** - * Compute encryption key - * @protected - * @since 2.0.000 (2008-01-02) - * @author Nicola Asuni - */ - protected function _generateencryptionkey() { - $keybytelen = ($this->encryptdata['Length'] / 8); - if (!$this->encryptdata['pubkey']) { // standard mode - if ($this->encryptdata['mode'] == 3) { // AES-256 - // generate 256 bit random key - $this->encryptdata['key'] = substr(hash('sha256', TCPDF_STATIC::getRandomSeed(), true), 0, $keybytelen); - // truncate passwords - $this->encryptdata['user_password'] = $this->_fixAES256Password($this->encryptdata['user_password']); - $this->encryptdata['owner_password'] = $this->_fixAES256Password($this->encryptdata['owner_password']); - // Compute U value - $this->encryptdata['U'] = $this->_Uvalue(); - // Compute UE value - $this->encryptdata['UE'] = $this->_UEvalue(); - // Compute O value - $this->encryptdata['O'] = $this->_Ovalue(); - // Compute OE value - $this->encryptdata['OE'] = $this->_OEvalue(); - // Compute P value - $this->encryptdata['P'] = $this->encryptdata['protection']; - // Computing the encryption dictionary's Perms (permissions) value - $perms = TCPDF_STATIC::getEncPermissionsString($this->encryptdata['protection']); // bytes 0-3 - $perms .= chr(255).chr(255).chr(255).chr(255); // bytes 4-7 - if (isset($this->encryptdata['CF']['EncryptMetadata']) AND (!$this->encryptdata['CF']['EncryptMetadata'])) { // byte 8 - $perms .= 'F'; - } else { - $perms .= 'T'; - } - $perms .= 'adb'; // bytes 9-11 - $perms .= 'nick'; // bytes 12-15 - $this->encryptdata['perms'] = TCPDF_STATIC::_AESnopad($this->encryptdata['key'], $perms); - } else { // RC4-40, RC4-128, AES-128 - // Pad passwords - $this->encryptdata['user_password'] = substr($this->encryptdata['user_password'].TCPDF_STATIC::$enc_padding, 0, 32); - $this->encryptdata['owner_password'] = substr($this->encryptdata['owner_password'].TCPDF_STATIC::$enc_padding, 0, 32); - // Compute O value - $this->encryptdata['O'] = $this->_Ovalue(); - // get default permissions (reverse byte order) - $permissions = TCPDF_STATIC::getEncPermissionsString($this->encryptdata['protection']); - // Compute encryption key - $tmp = TCPDF_STATIC::_md5_16($this->encryptdata['user_password'].$this->encryptdata['O'].$permissions.$this->encryptdata['fileid']); - if ($this->encryptdata['mode'] > 0) { - for ($i = 0; $i < 50; ++$i) { - $tmp = TCPDF_STATIC::_md5_16(substr($tmp, 0, $keybytelen)); - } - } - $this->encryptdata['key'] = substr($tmp, 0, $keybytelen); - // Compute U value - $this->encryptdata['U'] = $this->_Uvalue(); - // Compute P value - $this->encryptdata['P'] = $this->encryptdata['protection']; - } - } else { // Public-Key mode - // random 20-byte seed - $seed = sha1(TCPDF_STATIC::getRandomSeed(), true); - $recipient_bytes = ''; - foreach ($this->encryptdata['pubkeys'] as $pubkey) { - // for each public certificate - if (isset($pubkey['p'])) { - $pkprotection = TCPDF_STATIC::getUserPermissionCode($pubkey['p'], $this->encryptdata['mode']); - } else { - $pkprotection = $this->encryptdata['protection']; - } - // get default permissions (reverse byte order) - $pkpermissions = TCPDF_STATIC::getEncPermissionsString($pkprotection); - // envelope data - $envelope = $seed.$pkpermissions; - // write the envelope data to a temporary file - $tempkeyfile = TCPDF_STATIC::getObjFilename('key', $this->file_id); - $f = TCPDF_STATIC::fopenLocal($tempkeyfile, 'wb'); - if (!$f) { - $this->Error('Unable to create temporary key file: '.$tempkeyfile); - } - $envelope_length = strlen($envelope); - fwrite($f, $envelope, $envelope_length); - fclose($f); - $tempencfile = TCPDF_STATIC::getObjFilename('enc', $this->file_id); - if (!openssl_pkcs7_encrypt($tempkeyfile, $tempencfile, $pubkey['c'], array(), PKCS7_BINARY | PKCS7_DETACHED)) { - $this->Error('Unable to encrypt the file: '.$tempkeyfile); - } - // read encryption signature - $signature = file_get_contents($tempencfile, false, null, $envelope_length); - // extract signature - $signature = substr($signature, strpos($signature, 'Content-Disposition')); - $tmparr = explode("\n\n", $signature); - $signature = trim($tmparr[1]); - unset($tmparr); - // decode signature - $signature = base64_decode($signature); - // convert signature to hex - $hexsignature = current(unpack('H*', $signature)); - // store signature on recipients array - $this->encryptdata['Recipients'][] = $hexsignature; - // The bytes of each item in the Recipients array of PKCS#7 objects in the order in which they appear in the array - $recipient_bytes .= $signature; - } - // calculate encryption key - if ($this->encryptdata['mode'] == 3) { // AES-256 - $this->encryptdata['key'] = substr(hash('sha256', $seed.$recipient_bytes, true), 0, $keybytelen); - } else { // RC4-40, RC4-128, AES-128 - $this->encryptdata['key'] = substr(sha1($seed.$recipient_bytes, true), 0, $keybytelen); - } - } - } - - /** - * Set document protection - * Remark: the protection against modification is for people who have the full Acrobat product. - * If you don't set any password, the document will open as usual. If you set a user password, the PDF viewer will ask for it before displaying the document. The master password, if different from the user one, can be used to get full access. - * Note: protecting a document requires to encrypt it, which increases the processing time a lot. This can cause a PHP time-out in some cases, especially if the document contains images or fonts. - * @param $permissions (Array) the set of permissions (specify the ones you want to block):
      • print : Print the document;
      • modify : Modify the contents of the document by operations other than those controlled by 'fill-forms', 'extract' and 'assemble';
      • copy : Copy or otherwise extract text and graphics from the document;
      • annot-forms : Add or modify text annotations, fill in interactive form fields, and, if 'modify' is also set, create or modify interactive form fields (including signature fields);
      • fill-forms : Fill in existing interactive form fields (including signature fields), even if 'annot-forms' is not specified;
      • extract : Extract text and graphics (in support of accessibility to users with disabilities or for other purposes);
      • assemble : Assemble the document (insert, rotate, or delete pages and create bookmarks or thumbnail images), even if 'modify' is not set;
      • print-high : Print the document to a representation from which a faithful digital copy of the PDF content could be generated. When this is not set, printing is limited to a low-level representation of the appearance, possibly of degraded quality.
      • owner : (inverted logic - only for public-key) when set permits change of encryption and enables all other permissions.
      - * @param $user_pass (String) user password. Empty by default. - * @param $owner_pass (String) owner password. If not specified, a random value is used. - * @param $mode (int) encryption strength: 0 = RC4 40 bit; 1 = RC4 128 bit; 2 = AES 128 bit; 3 = AES 256 bit. - * @param $pubkeys (String) array of recipients containing public-key certificates ('c') and permissions ('p'). For example: array(array('c' => 'file://../examples/data/cert/tcpdf.crt', 'p' => array('print'))) - * @public - * @since 2.0.000 (2008-01-02) - * @author Nicola Asuni - */ - public function SetProtection($permissions=array('print', 'modify', 'copy', 'annot-forms', 'fill-forms', 'extract', 'assemble', 'print-high'), $user_pass='', $owner_pass=null, $mode=0, $pubkeys=null) { - if ($this->pdfa_mode) { - // encryption is not allowed in PDF/A mode - return; - } - $this->encryptdata['protection'] = TCPDF_STATIC::getUserPermissionCode($permissions, $mode); - if (($pubkeys !== null) AND (is_array($pubkeys))) { - // public-key mode - $this->encryptdata['pubkeys'] = $pubkeys; - if ($mode == 0) { - // public-Key Security requires at least 128 bit - $mode = 1; - } - if (!function_exists('openssl_pkcs7_encrypt')) { - $this->Error('Public-Key Security requires openssl library.'); - } - // Set Public-Key filter (available are: Entrust.PPKEF, Adobe.PPKLite, Adobe.PubSec) - $this->encryptdata['pubkey'] = true; - $this->encryptdata['Filter'] = 'Adobe.PubSec'; - $this->encryptdata['StmF'] = 'DefaultCryptFilter'; - $this->encryptdata['StrF'] = 'DefaultCryptFilter'; - } else { - // standard mode (password mode) - $this->encryptdata['pubkey'] = false; - $this->encryptdata['Filter'] = 'Standard'; - $this->encryptdata['StmF'] = 'StdCF'; - $this->encryptdata['StrF'] = 'StdCF'; - } - if ($mode > 1) { // AES - if (!extension_loaded('openssl') && !extension_loaded('mcrypt')) { - $this->Error('AES encryption requires openssl or mcrypt extension (http://www.php.net/manual/en/mcrypt.requirements.php).'); - } - if (extension_loaded('openssl') && !in_array('aes-256-cbc', openssl_get_cipher_methods())) { - $this->Error('AES encryption requires openssl/aes-256-cbc cypher.'); - } - if (extension_loaded('mcrypt') && mcrypt_get_cipher_name(MCRYPT_RIJNDAEL_128) === false) { - $this->Error('AES encryption requires MCRYPT_RIJNDAEL_128 cypher.'); - } - if (($mode == 3) AND !function_exists('hash')) { - // the Hash extension requires no external libraries and is enabled by default as of PHP 5.1.2. - $this->Error('AES 256 encryption requires HASH Message Digest Framework (http://www.php.net/manual/en/book.hash.php).'); - } - } - if ($owner_pass === null) { - $owner_pass = md5(TCPDF_STATIC::getRandomSeed()); - } - $this->encryptdata['user_password'] = $user_pass; - $this->encryptdata['owner_password'] = $owner_pass; - $this->encryptdata['mode'] = $mode; - switch ($mode) { - case 0: { // RC4 40 bit - $this->encryptdata['V'] = 1; - $this->encryptdata['Length'] = 40; - $this->encryptdata['CF']['CFM'] = 'V2'; - break; - } - case 1: { // RC4 128 bit - $this->encryptdata['V'] = 2; - $this->encryptdata['Length'] = 128; - $this->encryptdata['CF']['CFM'] = 'V2'; - if ($this->encryptdata['pubkey']) { - $this->encryptdata['SubFilter'] = 'adbe.pkcs7.s4'; - $this->encryptdata['Recipients'] = array(); - } - break; - } - case 2: { // AES 128 bit - $this->encryptdata['V'] = 4; - $this->encryptdata['Length'] = 128; - $this->encryptdata['CF']['CFM'] = 'AESV2'; - $this->encryptdata['CF']['Length'] = 128; - if ($this->encryptdata['pubkey']) { - $this->encryptdata['SubFilter'] = 'adbe.pkcs7.s5'; - $this->encryptdata['Recipients'] = array(); - } - break; - } - case 3: { // AES 256 bit - $this->encryptdata['V'] = 5; - $this->encryptdata['Length'] = 256; - $this->encryptdata['CF']['CFM'] = 'AESV3'; - $this->encryptdata['CF']['Length'] = 256; - if ($this->encryptdata['pubkey']) { - $this->encryptdata['SubFilter'] = 'adbe.pkcs7.s5'; - $this->encryptdata['Recipients'] = array(); - } - break; - } - } - $this->encrypted = true; - $this->encryptdata['fileid'] = TCPDF_STATIC::convertHexStringToString($this->file_id); - $this->_generateencryptionkey(); - } - - // END OF ENCRYPTION FUNCTIONS ------------------------- - - // START TRANSFORMATIONS SECTION ----------------------- - - /** - * Starts a 2D tranformation saving current graphic state. - * This function must be called before scaling, mirroring, translation, rotation and skewing. - * Use StartTransform() before, and StopTransform() after the transformations to restore the normal behavior. - * @public - * @since 2.1.000 (2008-01-07) - * @see StartTransform(), StopTransform() - */ - public function StartTransform() { - if ($this->state != 2) { - return; - } - $this->_outSaveGraphicsState(); - if ($this->inxobj) { - // we are inside an XObject template - $this->xobjects[$this->xobjid]['transfmrk'][] = strlen($this->xobjects[$this->xobjid]['outdata']); - } else { - $this->transfmrk[$this->page][] = $this->pagelen[$this->page]; - } - ++$this->transfmatrix_key; - $this->transfmatrix[$this->transfmatrix_key] = array(); - } - - /** - * Stops a 2D tranformation restoring previous graphic state. - * This function must be called after scaling, mirroring, translation, rotation and skewing. - * Use StartTransform() before, and StopTransform() after the transformations to restore the normal behavior. - * @public - * @since 2.1.000 (2008-01-07) - * @see StartTransform(), StopTransform() - */ - public function StopTransform() { - if ($this->state != 2) { - return; - } - $this->_outRestoreGraphicsState(); - if (isset($this->transfmatrix[$this->transfmatrix_key])) { - array_pop($this->transfmatrix[$this->transfmatrix_key]); - --$this->transfmatrix_key; - } - if ($this->inxobj) { - // we are inside an XObject template - array_pop($this->xobjects[$this->xobjid]['transfmrk']); - } else { - array_pop($this->transfmrk[$this->page]); - } - } - /** - * Horizontal Scaling. - * @param $s_x (float) scaling factor for width as percent. 0 is not allowed. - * @param $x (int) abscissa of the scaling center. Default is current x position - * @param $y (int) ordinate of the scaling center. Default is current y position - * @public - * @since 2.1.000 (2008-01-07) - * @see StartTransform(), StopTransform() - */ - public function ScaleX($s_x, $x='', $y='') { - $this->Scale($s_x, 100, $x, $y); - } - - /** - * Vertical Scaling. - * @param $s_y (float) scaling factor for height as percent. 0 is not allowed. - * @param $x (int) abscissa of the scaling center. Default is current x position - * @param $y (int) ordinate of the scaling center. Default is current y position - * @public - * @since 2.1.000 (2008-01-07) - * @see StartTransform(), StopTransform() - */ - public function ScaleY($s_y, $x='', $y='') { - $this->Scale(100, $s_y, $x, $y); - } - - /** - * Vertical and horizontal proportional Scaling. - * @param $s (float) scaling factor for width and height as percent. 0 is not allowed. - * @param $x (int) abscissa of the scaling center. Default is current x position - * @param $y (int) ordinate of the scaling center. Default is current y position - * @public - * @since 2.1.000 (2008-01-07) - * @see StartTransform(), StopTransform() - */ - public function ScaleXY($s, $x='', $y='') { - $this->Scale($s, $s, $x, $y); - } - - /** - * Vertical and horizontal non-proportional Scaling. - * @param $s_x (float) scaling factor for width as percent. 0 is not allowed. - * @param $s_y (float) scaling factor for height as percent. 0 is not allowed. - * @param $x (int) abscissa of the scaling center. Default is current x position - * @param $y (int) ordinate of the scaling center. Default is current y position - * @public - * @since 2.1.000 (2008-01-07) - * @see StartTransform(), StopTransform() - */ - public function Scale($s_x, $s_y, $x='', $y='') { - if ($x === '') { - $x = $this->x; - } - if ($y === '') { - $y = $this->y; - } - if (($s_x == 0) OR ($s_y == 0)) { - $this->Error('Please do not use values equal to zero for scaling'); - } - $y = ($this->h - $y) * $this->k; - $x *= $this->k; - //calculate elements of transformation matrix - $s_x /= 100; - $s_y /= 100; - $tm = array(); - $tm[0] = $s_x; - $tm[1] = 0; - $tm[2] = 0; - $tm[3] = $s_y; - $tm[4] = $x * (1 - $s_x); - $tm[5] = $y * (1 - $s_y); - //scale the coordinate system - $this->Transform($tm); - } - - /** - * Horizontal Mirroring. - * @param $x (int) abscissa of the point. Default is current x position - * @public - * @since 2.1.000 (2008-01-07) - * @see StartTransform(), StopTransform() - */ - public function MirrorH($x='') { - $this->Scale(-100, 100, $x); - } - - /** - * Verical Mirroring. - * @param $y (int) ordinate of the point. Default is current y position - * @public - * @since 2.1.000 (2008-01-07) - * @see StartTransform(), StopTransform() - */ - public function MirrorV($y='') { - $this->Scale(100, -100, '', $y); - } - - /** - * Point reflection mirroring. - * @param $x (int) abscissa of the point. Default is current x position - * @param $y (int) ordinate of the point. Default is current y position - * @public - * @since 2.1.000 (2008-01-07) - * @see StartTransform(), StopTransform() - */ - public function MirrorP($x='',$y='') { - $this->Scale(-100, -100, $x, $y); - } - - /** - * Reflection against a straight line through point (x, y) with the gradient angle (angle). - * @param $angle (float) gradient angle of the straight line. Default is 0 (horizontal line). - * @param $x (int) abscissa of the point. Default is current x position - * @param $y (int) ordinate of the point. Default is current y position - * @public - * @since 2.1.000 (2008-01-07) - * @see StartTransform(), StopTransform() - */ - public function MirrorL($angle=0, $x='',$y='') { - $this->Scale(-100, 100, $x, $y); - $this->Rotate(-2*($angle-90), $x, $y); - } - - /** - * Translate graphic object horizontally. - * @param $t_x (int) movement to the right (or left for RTL) - * @public - * @since 2.1.000 (2008-01-07) - * @see StartTransform(), StopTransform() - */ - public function TranslateX($t_x) { - $this->Translate($t_x, 0); - } - - /** - * Translate graphic object vertically. - * @param $t_y (int) movement to the bottom - * @public - * @since 2.1.000 (2008-01-07) - * @see StartTransform(), StopTransform() - */ - public function TranslateY($t_y) { - $this->Translate(0, $t_y); - } - - /** - * Translate graphic object horizontally and vertically. - * @param $t_x (int) movement to the right - * @param $t_y (int) movement to the bottom - * @public - * @since 2.1.000 (2008-01-07) - * @see StartTransform(), StopTransform() - */ - public function Translate($t_x, $t_y) { - //calculate elements of transformation matrix - $tm = array(); - $tm[0] = 1; - $tm[1] = 0; - $tm[2] = 0; - $tm[3] = 1; - $tm[4] = $t_x * $this->k; - $tm[5] = -$t_y * $this->k; - //translate the coordinate system - $this->Transform($tm); - } - - /** - * Rotate object. - * @param $angle (float) angle in degrees for counter-clockwise rotation - * @param $x (int) abscissa of the rotation center. Default is current x position - * @param $y (int) ordinate of the rotation center. Default is current y position - * @public - * @since 2.1.000 (2008-01-07) - * @see StartTransform(), StopTransform() - */ - public function Rotate($angle, $x='', $y='') { - if ($x === '') { - $x = $this->x; - } - if ($y === '') { - $y = $this->y; - } - $y = ($this->h - $y) * $this->k; - $x *= $this->k; - //calculate elements of transformation matrix - $tm = array(); - $tm[0] = cos(deg2rad($angle)); - $tm[1] = sin(deg2rad($angle)); - $tm[2] = -$tm[1]; - $tm[3] = $tm[0]; - $tm[4] = $x + ($tm[1] * $y) - ($tm[0] * $x); - $tm[5] = $y - ($tm[0] * $y) - ($tm[1] * $x); - //rotate the coordinate system around ($x,$y) - $this->Transform($tm); - } - - /** - * Skew horizontally. - * @param $angle_x (float) angle in degrees between -90 (skew to the left) and 90 (skew to the right) - * @param $x (int) abscissa of the skewing center. default is current x position - * @param $y (int) ordinate of the skewing center. default is current y position - * @public - * @since 2.1.000 (2008-01-07) - * @see StartTransform(), StopTransform() - */ - public function SkewX($angle_x, $x='', $y='') { - $this->Skew($angle_x, 0, $x, $y); - } - - /** - * Skew vertically. - * @param $angle_y (float) angle in degrees between -90 (skew to the bottom) and 90 (skew to the top) - * @param $x (int) abscissa of the skewing center. default is current x position - * @param $y (int) ordinate of the skewing center. default is current y position - * @public - * @since 2.1.000 (2008-01-07) - * @see StartTransform(), StopTransform() - */ - public function SkewY($angle_y, $x='', $y='') { - $this->Skew(0, $angle_y, $x, $y); - } - - /** - * Skew. - * @param $angle_x (float) angle in degrees between -90 (skew to the left) and 90 (skew to the right) - * @param $angle_y (float) angle in degrees between -90 (skew to the bottom) and 90 (skew to the top) - * @param $x (int) abscissa of the skewing center. default is current x position - * @param $y (int) ordinate of the skewing center. default is current y position - * @public - * @since 2.1.000 (2008-01-07) - * @see StartTransform(), StopTransform() - */ - public function Skew($angle_x, $angle_y, $x='', $y='') { - if ($x === '') { - $x = $this->x; - } - if ($y === '') { - $y = $this->y; - } - if (($angle_x <= -90) OR ($angle_x >= 90) OR ($angle_y <= -90) OR ($angle_y >= 90)) { - $this->Error('Please use values between -90 and +90 degrees for Skewing.'); - } - $x *= $this->k; - $y = ($this->h - $y) * $this->k; - //calculate elements of transformation matrix - $tm = array(); - $tm[0] = 1; - $tm[1] = tan(deg2rad($angle_y)); - $tm[2] = tan(deg2rad($angle_x)); - $tm[3] = 1; - $tm[4] = -$tm[2] * $y; - $tm[5] = -$tm[1] * $x; - //skew the coordinate system - $this->Transform($tm); - } - - /** - * Apply graphic transformations. - * @param $tm (array) transformation matrix - * @protected - * @since 2.1.000 (2008-01-07) - * @see StartTransform(), StopTransform() - */ - protected function Transform($tm) { - if ($this->state != 2) { - return; - } - $this->_out(sprintf('%F %F %F %F %F %F cm', $tm[0], $tm[1], $tm[2], $tm[3], $tm[4], $tm[5])); - // add tranformation matrix - $this->transfmatrix[$this->transfmatrix_key][] = array('a' => $tm[0], 'b' => $tm[1], 'c' => $tm[2], 'd' => $tm[3], 'e' => $tm[4], 'f' => $tm[5]); - // update transformation mark - if ($this->inxobj) { - // we are inside an XObject template - if (end($this->xobjects[$this->xobjid]['transfmrk']) !== false) { - $key = key($this->xobjects[$this->xobjid]['transfmrk']); - $this->xobjects[$this->xobjid]['transfmrk'][$key] = strlen($this->xobjects[$this->xobjid]['outdata']); - } - } elseif (end($this->transfmrk[$this->page]) !== false) { - $key = key($this->transfmrk[$this->page]); - $this->transfmrk[$this->page][$key] = $this->pagelen[$this->page]; - } - } - - // END TRANSFORMATIONS SECTION ------------------------- - - // START GRAPHIC FUNCTIONS SECTION --------------------- - // The following section is based on the code provided by David Hernandez Sanz - - /** - * Defines the line width. By default, the value equals 0.2 mm. The method can be called before the first page is created and the value is retained from page to page. - * @param $width (float) The width. - * @public - * @since 1.0 - * @see Line(), Rect(), Cell(), MultiCell() - */ - public function SetLineWidth($width) { - //Set line width - $this->LineWidth = $width; - $this->linestyleWidth = sprintf('%F w', ($width * $this->k)); - if ($this->state == 2) { - $this->_out($this->linestyleWidth); - } - } - - /** - * Returns the current the line width. - * @return int Line width - * @public - * @since 2.1.000 (2008-01-07) - * @see Line(), SetLineWidth() - */ - public function GetLineWidth() { - return $this->LineWidth; - } - - /** - * Set line style. - * @param $style (array) Line style. Array with keys among the following: - *
        - *
      • width (float): Width of the line in user units.
      • - *
      • cap (string): Type of cap to put on the line. Possible values are: - * butt, round, square. The difference between "square" and "butt" is that - * "square" projects a flat end past the end of the line.
      • - *
      • join (string): Type of join. Possible values are: miter, round, - * bevel.
      • - *
      • dash (mixed): Dash pattern. Is 0 (without dash) or string with - * series of length values, which are the lengths of the on and off dashes. - * For example: "2" represents 2 on, 2 off, 2 on, 2 off, ...; "2,1" is 2 on, - * 1 off, 2 on, 1 off, ...
      • - *
      • phase (integer): Modifier on the dash pattern which is used to shift - * the point at which the pattern starts.
      • - *
      • color (array): Draw color. Format: array(GREY) or array(R,G,B) or array(C,M,Y,K) or array(C,M,Y,K,SpotColorName).
      • - *
      - * @param $ret (boolean) if true do not send the command. - * @return string the PDF command - * @public - * @since 2.1.000 (2008-01-08) - */ - public function SetLineStyle($style, $ret=false) { - $s = ''; // string to be returned - if (!is_array($style)) { - return; - } - if (isset($style['width'])) { - $this->LineWidth = $style['width']; - $this->linestyleWidth = sprintf('%F w', ($style['width'] * $this->k)); - $s .= $this->linestyleWidth.' '; - } - if (isset($style['cap'])) { - $ca = array('butt' => 0, 'round'=> 1, 'square' => 2); - if (isset($ca[$style['cap']])) { - $this->linestyleCap = $ca[$style['cap']].' J'; - $s .= $this->linestyleCap.' '; - } - } - if (isset($style['join'])) { - $ja = array('miter' => 0, 'round' => 1, 'bevel' => 2); - if (isset($ja[$style['join']])) { - $this->linestyleJoin = $ja[$style['join']].' j'; - $s .= $this->linestyleJoin.' '; - } - } - if (isset($style['dash'])) { - $dash_string = ''; - if ($style['dash']) { - if (preg_match('/^.+,/', $style['dash']) > 0) { - $tab = explode(',', $style['dash']); - } else { - $tab = array($style['dash']); - } - $dash_string = ''; - foreach ($tab as $i => $v) { - if ($i) { - $dash_string .= ' '; - } - $dash_string .= sprintf('%F', $v); - } - } - if (!isset($style['phase']) OR !$style['dash']) { - $style['phase'] = 0; - } - $this->linestyleDash = sprintf('[%s] %F d', $dash_string, $style['phase']); - $s .= $this->linestyleDash.' '; - } - if (isset($style['color'])) { - $s .= $this->SetDrawColorArray($style['color'], true).' '; - } - if (!$ret AND ($this->state == 2)) { - $this->_out($s); - } - return $s; - } - - /** - * Begin a new subpath by moving the current point to coordinates (x, y), omitting any connecting line segment. - * @param $x (float) Abscissa of point. - * @param $y (float) Ordinate of point. - * @protected - * @since 2.1.000 (2008-01-08) - */ - protected function _outPoint($x, $y) { - if ($this->state == 2) { - $this->_out(sprintf('%F %F m', ($x * $this->k), (($this->h - $y) * $this->k))); - } - } - - /** - * Append a straight line segment from the current point to the point (x, y). - * The new current point shall be (x, y). - * @param $x (float) Abscissa of end point. - * @param $y (float) Ordinate of end point. - * @protected - * @since 2.1.000 (2008-01-08) - */ - protected function _outLine($x, $y) { - if ($this->state == 2) { - $this->_out(sprintf('%F %F l', ($x * $this->k), (($this->h - $y) * $this->k))); - } - } - - /** - * Append a rectangle to the current path as a complete subpath, with lower-left corner (x, y) and dimensions widthand height in user space. - * @param $x (float) Abscissa of upper-left corner. - * @param $y (float) Ordinate of upper-left corner. - * @param $w (float) Width. - * @param $h (float) Height. - * @param $op (string) options - * @protected - * @since 2.1.000 (2008-01-08) - */ - protected function _outRect($x, $y, $w, $h, $op) { - if ($this->state == 2) { - $this->_out(sprintf('%F %F %F %F re %s', ($x * $this->k), (($this->h - $y) * $this->k), ($w * $this->k), (-$h * $this->k), $op)); - } - } - - /** - * Append a cubic Bezier curve to the current path. The curve shall extend from the current point to the point (x3, y3), using (x1, y1) and (x2, y2) as the Bezier control points. - * The new current point shall be (x3, y3). - * @param $x1 (float) Abscissa of control point 1. - * @param $y1 (float) Ordinate of control point 1. - * @param $x2 (float) Abscissa of control point 2. - * @param $y2 (float) Ordinate of control point 2. - * @param $x3 (float) Abscissa of end point. - * @param $y3 (float) Ordinate of end point. - * @protected - * @since 2.1.000 (2008-01-08) - */ - protected function _outCurve($x1, $y1, $x2, $y2, $x3, $y3) { - if ($this->state == 2) { - $this->_out(sprintf('%F %F %F %F %F %F c', ($x1 * $this->k), (($this->h - $y1) * $this->k), ($x2 * $this->k), (($this->h - $y2) * $this->k), ($x3 * $this->k), (($this->h - $y3) * $this->k))); - } - } - - /** - * Append a cubic Bezier curve to the current path. The curve shall extend from the current point to the point (x3, y3), using the current point and (x2, y2) as the Bezier control points. - * The new current point shall be (x3, y3). - * @param $x2 (float) Abscissa of control point 2. - * @param $y2 (float) Ordinate of control point 2. - * @param $x3 (float) Abscissa of end point. - * @param $y3 (float) Ordinate of end point. - * @protected - * @since 4.9.019 (2010-04-26) - */ - protected function _outCurveV($x2, $y2, $x3, $y3) { - if ($this->state == 2) { - $this->_out(sprintf('%F %F %F %F v', ($x2 * $this->k), (($this->h - $y2) * $this->k), ($x3 * $this->k), (($this->h - $y3) * $this->k))); - } - } - - /** - * Append a cubic Bezier curve to the current path. The curve shall extend from the current point to the point (x3, y3), using (x1, y1) and (x3, y3) as the Bezier control points. - * The new current point shall be (x3, y3). - * @param $x1 (float) Abscissa of control point 1. - * @param $y1 (float) Ordinate of control point 1. - * @param $x3 (float) Abscissa of end point. - * @param $y3 (float) Ordinate of end point. - * @protected - * @since 2.1.000 (2008-01-08) - */ - protected function _outCurveY($x1, $y1, $x3, $y3) { - if ($this->state == 2) { - $this->_out(sprintf('%F %F %F %F y', ($x1 * $this->k), (($this->h - $y1) * $this->k), ($x3 * $this->k), (($this->h - $y3) * $this->k))); - } - } - - /** - * Draws a line between two points. - * @param $x1 (float) Abscissa of first point. - * @param $y1 (float) Ordinate of first point. - * @param $x2 (float) Abscissa of second point. - * @param $y2 (float) Ordinate of second point. - * @param $style (array) Line style. Array like for SetLineStyle(). Default value: default line style (empty array). - * @public - * @since 1.0 - * @see SetLineWidth(), SetDrawColor(), SetLineStyle() - */ - public function Line($x1, $y1, $x2, $y2, $style=array()) { - if ($this->state != 2) { - return; - } - if (is_array($style)) { - $this->SetLineStyle($style); - } - $this->_outPoint($x1, $y1); - $this->_outLine($x2, $y2); - $this->_out('S'); - } - - /** - * Draws a rectangle. - * @param $x (float) Abscissa of upper-left corner. - * @param $y (float) Ordinate of upper-left corner. - * @param $w (float) Width. - * @param $h (float) Height. - * @param $style (string) Style of rendering. See the getPathPaintOperator() function for more information. - * @param $border_style (array) Border style of rectangle. Array with keys among the following: - *
        - *
      • all: Line style of all borders. Array like for SetLineStyle().
      • - *
      • L, T, R, B or combinations: Line style of left, top, right or bottom border. Array like for SetLineStyle().
      • - *
      - * If a key is not present or is null, the correspondent border is not drawn. Default value: default line style (empty array). - * @param $fill_color (array) Fill color. Format: array(GREY) or array(R,G,B) or array(C,M,Y,K) or array(C,M,Y,K,SpotColorName). Default value: default color (empty array). - * @public - * @since 1.0 - * @see SetLineStyle() - */ - public function Rect($x, $y, $w, $h, $style='', $border_style=array(), $fill_color=array()) { - if ($this->state != 2) { - return; - } - if (empty($style)) { - $style = 'S'; - } - if (!(strpos($style, 'F') === false) AND !empty($fill_color)) { - // set background color - $this->SetFillColorArray($fill_color); - } - if (!empty($border_style)) { - if (isset($border_style['all']) AND !empty($border_style['all'])) { - //set global style for border - $this->SetLineStyle($border_style['all']); - $border_style = array(); - } else { - // remove stroke operator from style - $opnostroke = array('S' => '', 'D' => '', 's' => '', 'd' => '', 'B' => 'F', 'FD' => 'F', 'DF' => 'F', 'B*' => 'F*', 'F*D' => 'F*', 'DF*' => 'F*', 'b' => 'f', 'fd' => 'f', 'df' => 'f', 'b*' => 'f*', 'f*d' => 'f*', 'df*' => 'f*' ); - if (isset($opnostroke[$style])) { - $style = $opnostroke[$style]; - } - } - } - if (!empty($style)) { - $op = TCPDF_STATIC::getPathPaintOperator($style); - $this->_outRect($x, $y, $w, $h, $op); - } - if (!empty($border_style)) { - $border_style2 = array(); - foreach ($border_style as $line => $value) { - $length = strlen($line); - for ($i = 0; $i < $length; ++$i) { - $border_style2[$line[$i]] = $value; - } - } - $border_style = $border_style2; - if (isset($border_style['L']) AND $border_style['L']) { - $this->Line($x, $y, $x, $y + $h, $border_style['L']); - } - if (isset($border_style['T']) AND $border_style['T']) { - $this->Line($x, $y, $x + $w, $y, $border_style['T']); - } - if (isset($border_style['R']) AND $border_style['R']) { - $this->Line($x + $w, $y, $x + $w, $y + $h, $border_style['R']); - } - if (isset($border_style['B']) AND $border_style['B']) { - $this->Line($x, $y + $h, $x + $w, $y + $h, $border_style['B']); - } - } - } - - /** - * Draws a Bezier curve. - * The Bezier curve is a tangent to the line between the control points at - * either end of the curve. - * @param $x0 (float) Abscissa of start point. - * @param $y0 (float) Ordinate of start point. - * @param $x1 (float) Abscissa of control point 1. - * @param $y1 (float) Ordinate of control point 1. - * @param $x2 (float) Abscissa of control point 2. - * @param $y2 (float) Ordinate of control point 2. - * @param $x3 (float) Abscissa of end point. - * @param $y3 (float) Ordinate of end point. - * @param $style (string) Style of rendering. See the getPathPaintOperator() function for more information. - * @param $line_style (array) Line style of curve. Array like for SetLineStyle(). Default value: default line style (empty array). - * @param $fill_color (array) Fill color. Format: array(GREY) or array(R,G,B) or array(C,M,Y,K) or array(C,M,Y,K,SpotColorName). Default value: default color (empty array). - * @public - * @see SetLineStyle() - * @since 2.1.000 (2008-01-08) - */ - public function Curve($x0, $y0, $x1, $y1, $x2, $y2, $x3, $y3, $style='', $line_style=array(), $fill_color=array()) { - if ($this->state != 2) { - return; - } - if (!(false === strpos($style, 'F')) AND isset($fill_color)) { - $this->SetFillColorArray($fill_color); - } - $op = TCPDF_STATIC::getPathPaintOperator($style); - if ($line_style) { - $this->SetLineStyle($line_style); - } - $this->_outPoint($x0, $y0); - $this->_outCurve($x1, $y1, $x2, $y2, $x3, $y3); - $this->_out($op); - } - - /** - * Draws a poly-Bezier curve. - * Each Bezier curve segment is a tangent to the line between the control points at - * either end of the curve. - * @param $x0 (float) Abscissa of start point. - * @param $y0 (float) Ordinate of start point. - * @param $segments (float) An array of bezier descriptions. Format: array(x1, y1, x2, y2, x3, y3). - * @param $style (string) Style of rendering. See the getPathPaintOperator() function for more information. - * @param $line_style (array) Line style of curve. Array like for SetLineStyle(). Default value: default line style (empty array). - * @param $fill_color (array) Fill color. Format: array(GREY) or array(R,G,B) or array(C,M,Y,K) or array(C,M,Y,K,SpotColorName). Default value: default color (empty array). - * @public - * @see SetLineStyle() - * @since 3.0008 (2008-05-12) - */ - public function Polycurve($x0, $y0, $segments, $style='', $line_style=array(), $fill_color=array()) { - if ($this->state != 2) { - return; - } - if (!(false === strpos($style, 'F')) AND isset($fill_color)) { - $this->SetFillColorArray($fill_color); - } - $op = TCPDF_STATIC::getPathPaintOperator($style); - if ($op == 'f') { - $line_style = array(); - } - if ($line_style) { - $this->SetLineStyle($line_style); - } - $this->_outPoint($x0, $y0); - foreach ($segments as $segment) { - list($x1, $y1, $x2, $y2, $x3, $y3) = $segment; - $this->_outCurve($x1, $y1, $x2, $y2, $x3, $y3); - } - $this->_out($op); - } - - /** - * Draws an ellipse. - * An ellipse is formed from n Bezier curves. - * @param $x0 (float) Abscissa of center point. - * @param $y0 (float) Ordinate of center point. - * @param $rx (float) Horizontal radius. - * @param $ry (float) Vertical radius (if ry = 0 then is a circle, see Circle()). Default value: 0. - * @param $angle: (float) Angle oriented (anti-clockwise). Default value: 0. - * @param $astart: (float) Angle start of draw line. Default value: 0. - * @param $afinish: (float) Angle finish of draw line. Default value: 360. - * @param $style (string) Style of rendering. See the getPathPaintOperator() function for more information. - * @param $line_style (array) Line style of ellipse. Array like for SetLineStyle(). Default value: default line style (empty array). - * @param $fill_color (array) Fill color. Format: array(GREY) or array(R,G,B) or array(C,M,Y,K) or array(C,M,Y,K,SpotColorName). Default value: default color (empty array). - * @param $nc (integer) Number of curves used to draw a 90 degrees portion of ellipse. - * @author Nicola Asuni - * @public - * @since 2.1.000 (2008-01-08) - */ - public function Ellipse($x0, $y0, $rx, $ry='', $angle=0, $astart=0, $afinish=360, $style='', $line_style=array(), $fill_color=array(), $nc=2) { - if ($this->state != 2) { - return; - } - if (TCPDF_STATIC::empty_string($ry) OR ($ry == 0)) { - $ry = $rx; - } - if (!(false === strpos($style, 'F')) AND isset($fill_color)) { - $this->SetFillColorArray($fill_color); - } - $op = TCPDF_STATIC::getPathPaintOperator($style); - if ($op == 'f') { - $line_style = array(); - } - if ($line_style) { - $this->SetLineStyle($line_style); - } - $this->_outellipticalarc($x0, $y0, $rx, $ry, $angle, $astart, $afinish, false, $nc, true, true, false); - $this->_out($op); - } - - /** - * Append an elliptical arc to the current path. - * An ellipse is formed from n Bezier curves. - * @param $xc (float) Abscissa of center point. - * @param $yc (float) Ordinate of center point. - * @param $rx (float) Horizontal radius. - * @param $ry (float) Vertical radius (if ry = 0 then is a circle, see Circle()). Default value: 0. - * @param $xang: (float) Angle between the X-axis and the major axis of the ellipse. Default value: 0. - * @param $angs: (float) Angle start of draw line. Default value: 0. - * @param $angf: (float) Angle finish of draw line. Default value: 360. - * @param $pie (boolean) if true do not mark the border point (used to draw pie sectors). - * @param $nc (integer) Number of curves used to draw a 90 degrees portion of ellipse. - * @param $startpoint (boolean) if true output a starting point. - * @param $ccw (boolean) if true draws in counter-clockwise. - * @param $svg (boolean) if true the angles are in svg mode (already calculated). - * @return array bounding box coordinates (x min, y min, x max, y max) - * @author Nicola Asuni - * @protected - * @since 4.9.019 (2010-04-26) - */ - protected function _outellipticalarc($xc, $yc, $rx, $ry, $xang=0, $angs=0, $angf=360, $pie=false, $nc=2, $startpoint=true, $ccw=true, $svg=false) { - if (($rx <= 0) OR ($ry < 0)) { - return; - } - $k = $this->k; - if ($nc < 2) { - $nc = 2; - } - $xmin = 2147483647; - $ymin = 2147483647; - $xmax = 0; - $ymax = 0; - if ($pie) { - // center of the arc - $this->_outPoint($xc, $yc); - } - $xang = deg2rad((float) $xang); - $angs = deg2rad((float) $angs); - $angf = deg2rad((float) $angf); - if ($svg) { - $as = $angs; - $af = $angf; - } else { - $as = atan2((sin($angs) / $ry), (cos($angs) / $rx)); - $af = atan2((sin($angf) / $ry), (cos($angf) / $rx)); - } - if ($as < 0) { - $as += (2 * M_PI); - } - if ($af < 0) { - $af += (2 * M_PI); - } - if ($ccw AND ($as > $af)) { - // reverse rotation - $as -= (2 * M_PI); - } elseif (!$ccw AND ($as < $af)) { - // reverse rotation - $af -= (2 * M_PI); - } - $total_angle = ($af - $as); - if ($nc < 2) { - $nc = 2; - } - // total arcs to draw - $nc *= (2 * abs($total_angle) / M_PI); - $nc = round($nc) + 1; - // angle of each arc - $arcang = ($total_angle / $nc); - // center point in PDF coordinates - $x0 = $xc; - $y0 = ($this->h - $yc); - // starting angle - $ang = $as; - $alpha = sin($arcang) * ((sqrt(4 + (3 * pow(tan(($arcang) / 2), 2))) - 1) / 3); - $cos_xang = cos($xang); - $sin_xang = sin($xang); - $cos_ang = cos($ang); - $sin_ang = sin($ang); - // first arc point - $px1 = $x0 + ($rx * $cos_xang * $cos_ang) - ($ry * $sin_xang * $sin_ang); - $py1 = $y0 + ($rx * $sin_xang * $cos_ang) + ($ry * $cos_xang * $sin_ang); - // first Bezier control point - $qx1 = ($alpha * ((-$rx * $cos_xang * $sin_ang) - ($ry * $sin_xang * $cos_ang))); - $qy1 = ($alpha * ((-$rx * $sin_xang * $sin_ang) + ($ry * $cos_xang * $cos_ang))); - if ($pie) { - // line from center to arc starting point - $this->_outLine($px1, $this->h - $py1); - } elseif ($startpoint) { - // arc starting point - $this->_outPoint($px1, $this->h - $py1); - } - // draw arcs - for ($i = 1; $i <= $nc; ++$i) { - // starting angle - $ang = $as + ($i * $arcang); - if ($i == $nc) { - $ang = $af; - } - $cos_ang = cos($ang); - $sin_ang = sin($ang); - // second arc point - $px2 = $x0 + ($rx * $cos_xang * $cos_ang) - ($ry * $sin_xang * $sin_ang); - $py2 = $y0 + ($rx * $sin_xang * $cos_ang) + ($ry * $cos_xang * $sin_ang); - // second Bezier control point - $qx2 = ($alpha * ((-$rx * $cos_xang * $sin_ang) - ($ry * $sin_xang * $cos_ang))); - $qy2 = ($alpha * ((-$rx * $sin_xang * $sin_ang) + ($ry * $cos_xang * $cos_ang))); - // draw arc - $cx1 = ($px1 + $qx1); - $cy1 = ($this->h - ($py1 + $qy1)); - $cx2 = ($px2 - $qx2); - $cy2 = ($this->h - ($py2 - $qy2)); - $cx3 = $px2; - $cy3 = ($this->h - $py2); - $this->_outCurve($cx1, $cy1, $cx2, $cy2, $cx3, $cy3); - // get bounding box coordinates - $xmin = min($xmin, $cx1, $cx2, $cx3); - $ymin = min($ymin, $cy1, $cy2, $cy3); - $xmax = max($xmax, $cx1, $cx2, $cx3); - $ymax = max($ymax, $cy1, $cy2, $cy3); - // move to next point - $px1 = $px2; - $py1 = $py2; - $qx1 = $qx2; - $qy1 = $qy2; - } - if ($pie) { - $this->_outLine($xc, $yc); - // get bounding box coordinates - $xmin = min($xmin, $xc); - $ymin = min($ymin, $yc); - $xmax = max($xmax, $xc); - $ymax = max($ymax, $yc); - } - return array($xmin, $ymin, $xmax, $ymax); - } - - /** - * Draws a circle. - * A circle is formed from n Bezier curves. - * @param $x0 (float) Abscissa of center point. - * @param $y0 (float) Ordinate of center point. - * @param $r (float) Radius. - * @param $angstr: (float) Angle start of draw line. Default value: 0. - * @param $angend: (float) Angle finish of draw line. Default value: 360. - * @param $style (string) Style of rendering. See the getPathPaintOperator() function for more information. - * @param $line_style (array) Line style of circle. Array like for SetLineStyle(). Default value: default line style (empty array). - * @param $fill_color (array) Fill color. Format: array(red, green, blue). Default value: default color (empty array). - * @param $nc (integer) Number of curves used to draw a 90 degrees portion of circle. - * @public - * @since 2.1.000 (2008-01-08) - */ - public function Circle($x0, $y0, $r, $angstr=0, $angend=360, $style='', $line_style=array(), $fill_color=array(), $nc=2) { - $this->Ellipse($x0, $y0, $r, $r, 0, $angstr, $angend, $style, $line_style, $fill_color, $nc); - } - - /** - * Draws a polygonal line - * @param $p (array) Points 0 to ($np - 1). Array with values (x0, y0, x1, y1,..., x(np-1), y(np - 1)) - * @param $style (string) Style of rendering. See the getPathPaintOperator() function for more information. - * @param $line_style (array) Line style of polygon. Array with keys among the following: - *
        - *
      • all: Line style of all lines. Array like for SetLineStyle().
      • - *
      • 0 to ($np - 1): Line style of each line. Array like for SetLineStyle().
      • - *
      - * If a key is not present or is null, not draws the line. Default value is default line style (empty array). - * @param $fill_color (array) Fill color. Format: array(GREY) or array(R,G,B) or array(C,M,Y,K) or array(C,M,Y,K,SpotColorName). Default value: default color (empty array). - * @since 4.8.003 (2009-09-15) - * @public - */ - public function PolyLine($p, $style='', $line_style=array(), $fill_color=array()) { - $this->Polygon($p, $style, $line_style, $fill_color, false); - } - - /** - * Draws a polygon. - * @param $p (array) Points 0 to ($np - 1). Array with values (x0, y0, x1, y1,..., x(np-1), y(np - 1)) - * @param $style (string) Style of rendering. See the getPathPaintOperator() function for more information. - * @param $line_style (array) Line style of polygon. Array with keys among the following: - *
        - *
      • all: Line style of all lines. Array like for SetLineStyle().
      • - *
      • 0 to ($np - 1): Line style of each line. Array like for SetLineStyle().
      • - *
      - * If a key is not present or is null, not draws the line. Default value is default line style (empty array). - * @param $fill_color (array) Fill color. Format: array(GREY) or array(R,G,B) or array(C,M,Y,K) or array(C,M,Y,K,SpotColorName). Default value: default color (empty array). - * @param $closed (boolean) if true the polygon is closes, otherwise will remain open - * @public - * @since 2.1.000 (2008-01-08) - */ - public function Polygon($p, $style='', $line_style=array(), $fill_color=array(), $closed=true) { - if ($this->state != 2) { - return; - } - $nc = count($p); // number of coordinates - $np = $nc / 2; // number of points - if ($closed) { - // close polygon by adding the first 2 points at the end (one line) - for ($i = 0; $i < 4; ++$i) { - $p[$nc + $i] = $p[$i]; - } - // copy style for the last added line - if (isset($line_style[0])) { - $line_style[$np] = $line_style[0]; - } - $nc += 4; - } - if (!(false === strpos($style, 'F')) AND isset($fill_color)) { - $this->SetFillColorArray($fill_color); - } - $op = TCPDF_STATIC::getPathPaintOperator($style); - if ($op == 'f') { - $line_style = array(); - } - $draw = true; - if ($line_style) { - if (isset($line_style['all'])) { - $this->SetLineStyle($line_style['all']); - } else { - $draw = false; - if ($op == 'B') { - // draw fill - $op = 'f'; - $this->_outPoint($p[0], $p[1]); - for ($i = 2; $i < $nc; $i = $i + 2) { - $this->_outLine($p[$i], $p[$i + 1]); - } - $this->_out($op); - } - // draw outline - $this->_outPoint($p[0], $p[1]); - for ($i = 2; $i < $nc; $i = $i + 2) { - $line_num = ($i / 2) - 1; - if (isset($line_style[$line_num])) { - if ($line_style[$line_num] != 0) { - if (is_array($line_style[$line_num])) { - $this->_out('S'); - $this->SetLineStyle($line_style[$line_num]); - $this->_outPoint($p[$i - 2], $p[$i - 1]); - $this->_outLine($p[$i], $p[$i + 1]); - $this->_out('S'); - $this->_outPoint($p[$i], $p[$i + 1]); - } else { - $this->_outLine($p[$i], $p[$i + 1]); - } - } - } else { - $this->_outLine($p[$i], $p[$i + 1]); - } - } - $this->_out($op); - } - } - if ($draw) { - $this->_outPoint($p[0], $p[1]); - for ($i = 2; $i < $nc; $i = $i + 2) { - $this->_outLine($p[$i], $p[$i + 1]); - } - $this->_out($op); - } - } - - /** - * Draws a regular polygon. - * @param $x0 (float) Abscissa of center point. - * @param $y0 (float) Ordinate of center point. - * @param $r: (float) Radius of inscribed circle. - * @param $ns (integer) Number of sides. - * @param $angle (float) Angle oriented (anti-clockwise). Default value: 0. - * @param $draw_circle (boolean) Draw inscribed circle or not. Default value: false. - * @param $style (string) Style of rendering. See the getPathPaintOperator() function for more information. - * @param $line_style (array) Line style of polygon sides. Array with keys among the following: - *
        - *
      • all: Line style of all sides. Array like for SetLineStyle().
      • - *
      • 0 to ($ns - 1): Line style of each side. Array like for SetLineStyle().
      • - *
      - * If a key is not present or is null, not draws the side. Default value is default line style (empty array). - * @param $fill_color (array) Fill color. Format: array(red, green, blue). Default value: default color (empty array). - * @param $circle_style (string) Style of rendering of inscribed circle (if draws). Possible values are: - *
        - *
      • D or empty string: Draw (default).
      • - *
      • F: Fill.
      • - *
      • DF or FD: Draw and fill.
      • - *
      • CNZ: Clipping mode (using the even-odd rule to determine which regions lie inside the clipping path).
      • - *
      • CEO: Clipping mode (using the nonzero winding number rule to determine which regions lie inside the clipping path).
      • - *
      - * @param $circle_outLine_style (array) Line style of inscribed circle (if draws). Array like for SetLineStyle(). Default value: default line style (empty array). - * @param $circle_fill_color (array) Fill color of inscribed circle (if draws). Format: array(red, green, blue). Default value: default color (empty array). - * @public - * @since 2.1.000 (2008-01-08) - */ - public function RegularPolygon($x0, $y0, $r, $ns, $angle=0, $draw_circle=false, $style='', $line_style=array(), $fill_color=array(), $circle_style='', $circle_outLine_style=array(), $circle_fill_color=array()) { - if (3 > $ns) { - $ns = 3; - } - if ($draw_circle) { - $this->Circle($x0, $y0, $r, 0, 360, $circle_style, $circle_outLine_style, $circle_fill_color); - } - $p = array(); - for ($i = 0; $i < $ns; ++$i) { - $a = $angle + ($i * 360 / $ns); - $a_rad = deg2rad((float) $a); - $p[] = $x0 + ($r * sin($a_rad)); - $p[] = $y0 + ($r * cos($a_rad)); - } - $this->Polygon($p, $style, $line_style, $fill_color); - } - - /** - * Draws a star polygon - * @param $x0 (float) Abscissa of center point. - * @param $y0 (float) Ordinate of center point. - * @param $r (float) Radius of inscribed circle. - * @param $nv (integer) Number of vertices. - * @param $ng (integer) Number of gap (if ($ng % $nv = 1) then is a regular polygon). - * @param $angle: (float) Angle oriented (anti-clockwise). Default value: 0. - * @param $draw_circle: (boolean) Draw inscribed circle or not. Default value is false. - * @param $style (string) Style of rendering. See the getPathPaintOperator() function for more information. - * @param $line_style (array) Line style of polygon sides. Array with keys among the following: - *
        - *
      • all: Line style of all sides. Array like for - * SetLineStyle().
      • - *
      • 0 to (n - 1): Line style of each side. Array like for SetLineStyle().
      • - *
      - * If a key is not present or is null, not draws the side. Default value is default line style (empty array). - * @param $fill_color (array) Fill color. Format: array(red, green, blue). Default value: default color (empty array). - * @param $circle_style (string) Style of rendering of inscribed circle (if draws). Possible values are: - *
        - *
      • D or empty string: Draw (default).
      • - *
      • F: Fill.
      • - *
      • DF or FD: Draw and fill.
      • - *
      • CNZ: Clipping mode (using the even-odd rule to determine which regions lie inside the clipping path).
      • - *
      • CEO: Clipping mode (using the nonzero winding number rule to determine which regions lie inside the clipping path).
      • - *
      - * @param $circle_outLine_style (array) Line style of inscribed circle (if draws). Array like for SetLineStyle(). Default value: default line style (empty array). - * @param $circle_fill_color (array) Fill color of inscribed circle (if draws). Format: array(red, green, blue). Default value: default color (empty array). - * @public - * @since 2.1.000 (2008-01-08) - */ - public function StarPolygon($x0, $y0, $r, $nv, $ng, $angle=0, $draw_circle=false, $style='', $line_style=array(), $fill_color=array(), $circle_style='', $circle_outLine_style=array(), $circle_fill_color=array()) { - if ($nv < 2) { - $nv = 2; - } - if ($draw_circle) { - $this->Circle($x0, $y0, $r, 0, 360, $circle_style, $circle_outLine_style, $circle_fill_color); - } - $p2 = array(); - $visited = array(); - for ($i = 0; $i < $nv; ++$i) { - $a = $angle + ($i * 360 / $nv); - $a_rad = deg2rad((float) $a); - $p2[] = $x0 + ($r * sin($a_rad)); - $p2[] = $y0 + ($r * cos($a_rad)); - $visited[] = false; - } - $p = array(); - $i = 0; - do { - $p[] = $p2[$i * 2]; - $p[] = $p2[($i * 2) + 1]; - $visited[$i] = true; - $i += $ng; - $i %= $nv; - } while (!$visited[$i]); - $this->Polygon($p, $style, $line_style, $fill_color); - } - - /** - * Draws a rounded rectangle. - * @param $x (float) Abscissa of upper-left corner. - * @param $y (float) Ordinate of upper-left corner. - * @param $w (float) Width. - * @param $h (float) Height. - * @param $r (float) the radius of the circle used to round off the corners of the rectangle. - * @param $round_corner (string) Draws rounded corner or not. String with a 0 (not rounded i-corner) or 1 (rounded i-corner) in i-position. Positions are, in order and begin to 0: top right, bottom right, bottom left and top left. Default value: all rounded corner ("1111"). - * @param $style (string) Style of rendering. See the getPathPaintOperator() function for more information. - * @param $border_style (array) Border style of rectangle. Array like for SetLineStyle(). Default value: default line style (empty array). - * @param $fill_color (array) Fill color. Format: array(GREY) or array(R,G,B) or array(C,M,Y,K) or array(C,M,Y,K,SpotColorName). Default value: default color (empty array). - * @public - * @since 2.1.000 (2008-01-08) - */ - public function RoundedRect($x, $y, $w, $h, $r, $round_corner='1111', $style='', $border_style=array(), $fill_color=array()) { - $this->RoundedRectXY($x, $y, $w, $h, $r, $r, $round_corner, $style, $border_style, $fill_color); - } - - /** - * Draws a rounded rectangle. - * @param $x (float) Abscissa of upper-left corner. - * @param $y (float) Ordinate of upper-left corner. - * @param $w (float) Width. - * @param $h (float) Height. - * @param $rx (float) the x-axis radius of the ellipse used to round off the corners of the rectangle. - * @param $ry (float) the y-axis radius of the ellipse used to round off the corners of the rectangle. - * @param $round_corner (string) Draws rounded corner or not. String with a 0 (not rounded i-corner) or 1 (rounded i-corner) in i-position. Positions are, in order and begin to 0: top right, bottom right, bottom left and top left. Default value: all rounded corner ("1111"). - * @param $style (string) Style of rendering. See the getPathPaintOperator() function for more information. - * @param $border_style (array) Border style of rectangle. Array like for SetLineStyle(). Default value: default line style (empty array). - * @param $fill_color (array) Fill color. Format: array(GREY) or array(R,G,B) or array(C,M,Y,K) or array(C,M,Y,K,SpotColorName). Default value: default color (empty array). - * @public - * @since 4.9.019 (2010-04-22) - */ - public function RoundedRectXY($x, $y, $w, $h, $rx, $ry, $round_corner='1111', $style='', $border_style=array(), $fill_color=array()) { - if ($this->state != 2) { - return; - } - if (($round_corner == '0000') OR (($rx == $ry) AND ($rx == 0))) { - // Not rounded - $this->Rect($x, $y, $w, $h, $style, $border_style, $fill_color); - return; - } - // Rounded - if (!(false === strpos($style, 'F')) AND isset($fill_color)) { - $this->SetFillColorArray($fill_color); - } - $op = TCPDF_STATIC::getPathPaintOperator($style); - if ($op == 'f') { - $border_style = array(); - } - if ($border_style) { - $this->SetLineStyle($border_style); - } - $MyArc = 4 / 3 * (sqrt(2) - 1); - $this->_outPoint($x + $rx, $y); - $xc = $x + $w - $rx; - $yc = $y + $ry; - $this->_outLine($xc, $y); - if ($round_corner[0]) { - $this->_outCurve($xc + ($rx * $MyArc), $yc - $ry, $xc + $rx, $yc - ($ry * $MyArc), $xc + $rx, $yc); - } else { - $this->_outLine($x + $w, $y); - } - $xc = $x + $w - $rx; - $yc = $y + $h - $ry; - $this->_outLine($x + $w, $yc); - if ($round_corner[1]) { - $this->_outCurve($xc + $rx, $yc + ($ry * $MyArc), $xc + ($rx * $MyArc), $yc + $ry, $xc, $yc + $ry); - } else { - $this->_outLine($x + $w, $y + $h); - } - $xc = $x + $rx; - $yc = $y + $h - $ry; - $this->_outLine($xc, $y + $h); - if ($round_corner[2]) { - $this->_outCurve($xc - ($rx * $MyArc), $yc + $ry, $xc - $rx, $yc + ($ry * $MyArc), $xc - $rx, $yc); - } else { - $this->_outLine($x, $y + $h); - } - $xc = $x + $rx; - $yc = $y + $ry; - $this->_outLine($x, $yc); - if ($round_corner[3]) { - $this->_outCurve($xc - $rx, $yc - ($ry * $MyArc), $xc - ($rx * $MyArc), $yc - $ry, $xc, $yc - $ry); - } else { - $this->_outLine($x, $y); - $this->_outLine($x + $rx, $y); - } - $this->_out($op); - } - - /** - * Draws a grahic arrow. - * @param $x0 (float) Abscissa of first point. - * @param $y0 (float) Ordinate of first point. - * @param $x1 (float) Abscissa of second point. - * @param $y1 (float) Ordinate of second point. - * @param $head_style (int) (0 = draw only arrowhead arms, 1 = draw closed arrowhead, but no fill, 2 = closed and filled arrowhead, 3 = filled arrowhead) - * @param $arm_size (float) length of arrowhead arms - * @param $arm_angle (int) angle between an arm and the shaft - * @author Piotr Galecki, Nicola Asuni, Andy Meier - * @since 4.6.018 (2009-07-10) - */ - public function Arrow($x0, $y0, $x1, $y1, $head_style=0, $arm_size=5, $arm_angle=15) { - // getting arrow direction angle - // 0 deg angle is when both arms go along X axis. angle grows clockwise. - $dir_angle = atan2(($y0 - $y1), ($x0 - $x1)); - if ($dir_angle < 0) { - $dir_angle += (2 * M_PI); - } - $arm_angle = deg2rad($arm_angle); - $sx1 = $x1; - $sy1 = $y1; - if ($head_style > 0) { - // calculate the stopping point for the arrow shaft - $sx1 = $x1 + (($arm_size - $this->LineWidth) * cos($dir_angle)); - $sy1 = $y1 + (($arm_size - $this->LineWidth) * sin($dir_angle)); - } - // main arrow line / shaft - $this->Line($x0, $y0, $sx1, $sy1); - // left arrowhead arm tip - $x2L = $x1 + ($arm_size * cos($dir_angle + $arm_angle)); - $y2L = $y1 + ($arm_size * sin($dir_angle + $arm_angle)); - // right arrowhead arm tip - $x2R = $x1 + ($arm_size * cos($dir_angle - $arm_angle)); - $y2R = $y1 + ($arm_size * sin($dir_angle - $arm_angle)); - $mode = 'D'; - $style = array(); - switch ($head_style) { - case 0: { - // draw only arrowhead arms - $mode = 'D'; - $style = array(1, 1, 0); - break; - } - case 1: { - // draw closed arrowhead, but no fill - $mode = 'D'; - break; - } - case 2: { - // closed and filled arrowhead - $mode = 'DF'; - break; - } - case 3: { - // filled arrowhead - $mode = 'F'; - break; - } - } - $this->Polygon(array($x2L, $y2L, $x1, $y1, $x2R, $y2R), $mode, $style, array()); - } - - // END GRAPHIC FUNCTIONS SECTION ----------------------- - - /** - * Add a Named Destination. - * NOTE: destination names are unique, so only last entry will be saved. - * @param $name (string) Destination name. - * @param $y (float) Y position in user units of the destiantion on the selected page (default = -1 = current position; 0 = page start;). - * @param $page (int|string) Target page number (leave empty for current page). If you prefix a page number with the * character, then this page will not be changed when adding/deleting/moving pages. - * @param $x (float) X position in user units of the destiantion on the selected page (default = -1 = current position;). - * @return (string) Stripped named destination identifier or false in case of error. - * @public - * @author Christian Deligant, Nicola Asuni - * @since 5.9.097 (2011-06-23) - */ - public function setDestination($name, $y=-1, $page='', $x=-1) { - // remove unsupported characters - $name = TCPDF_STATIC::encodeNameObject($name); - if (TCPDF_STATIC::empty_string($name)) { - return false; - } - if ($y == -1) { - $y = $this->GetY(); - } elseif ($y < 0) { - $y = 0; - } elseif ($y > $this->h) { - $y = $this->h; - } - if ($x == -1) { - $x = $this->GetX(); - } elseif ($x < 0) { - $x = 0; - } elseif ($x > $this->w) { - $x = $this->w; - } - $fixed = false; - if (!empty($page) AND ($page[0] == '*')) { - $page = intval(substr($page, 1)); - // this page number will not be changed when moving/add/deleting pages - $fixed = true; - } - if (empty($page)) { - $page = $this->PageNo(); - if (empty($page)) { - return; - } - } - $this->dests[$name] = array('x' => $x, 'y' => $y, 'p' => $page, 'f' => $fixed); - return $name; - } - - /** - * Return the Named Destination array. - * @return (array) Named Destination array. - * @public - * @author Nicola Asuni - * @since 5.9.097 (2011-06-23) - */ - public function getDestination() { - return $this->dests; - } - - /** - * Insert Named Destinations. - * @protected - * @author Johannes G\FCntert, Nicola Asuni - * @since 5.9.098 (2011-06-23) - */ - protected function _putdests() { - if (empty($this->dests)) { - return; - } - $this->n_dests = $this->_newobj(); - $out = ' <<'; - foreach($this->dests as $name => $o) { - $out .= ' /'.$name.' '.sprintf('[%u 0 R /XYZ %F %F null]', $this->page_obj_id[($o['p'])], ($o['x'] * $this->k), ($this->pagedim[$o['p']]['h'] - ($o['y'] * $this->k))); - } - $out .= ' >>'; - $out .= "\n".'endobj'; - $this->_out($out); - } - - /** - * Adds a bookmark - alias for Bookmark(). - * @param $txt (string) Bookmark description. - * @param $level (int) Bookmark level (minimum value is 0). - * @param $y (float) Y position in user units of the bookmark on the selected page (default = -1 = current position; 0 = page start;). - * @param $page (int|string) Target page number (leave empty for current page). If you prefix a page number with the * character, then this page will not be changed when adding/deleting/moving pages. - * @param $style (string) Font style: B = Bold, I = Italic, BI = Bold + Italic. - * @param $color (array) RGB color array (values from 0 to 255). - * @param $x (float) X position in user units of the bookmark on the selected page (default = -1 = current position;). - * @param $link (mixed) URL, or numerical link ID, or named destination (# character followed by the destination name), or embedded file (* character followed by the file name). - * @public - */ - public function setBookmark($txt, $level=0, $y=-1, $page='', $style='', $color=array(0,0,0), $x=-1, $link='') { - $this->Bookmark($txt, $level, $y, $page, $style, $color, $x, $link); - } - - /** - * Adds a bookmark. - * @param $txt (string) Bookmark description. - * @param $level (int) Bookmark level (minimum value is 0). - * @param $y (float) Y position in user units of the bookmark on the selected page (default = -1 = current position; 0 = page start;). - * @param $page (int|string) Target page number (leave empty for current page). If you prefix a page number with the * character, then this page will not be changed when adding/deleting/moving pages. - * @param $style (string) Font style: B = Bold, I = Italic, BI = Bold + Italic. - * @param $color (array) RGB color array (values from 0 to 255). - * @param $x (float) X position in user units of the bookmark on the selected page (default = -1 = current position;). - * @param $link (mixed) URL, or numerical link ID, or named destination (# character followed by the destination name), or embedded file (* character followed by the file name). - * @public - * @since 2.1.002 (2008-02-12) - */ - public function Bookmark($txt, $level=0, $y=-1, $page='', $style='', $color=array(0,0,0), $x=-1, $link='') { - if ($level < 0) { - $level = 0; - } - if (isset($this->outlines[0])) { - $lastoutline = end($this->outlines); - $maxlevel = $lastoutline['l'] + 1; - } else { - $maxlevel = 0; - } - if ($level > $maxlevel) { - $level = $maxlevel; - } - if ($y == -1) { - $y = $this->GetY(); - } elseif ($y < 0) { - $y = 0; - } elseif ($y > $this->h) { - $y = $this->h; - } - if ($x == -1) { - $x = $this->GetX(); - } elseif ($x < 0) { - $x = 0; - } elseif ($x > $this->w) { - $x = $this->w; - } - $fixed = false; - if (!empty($page) AND ($page[0] == '*')) { - $page = intval(substr($page, 1)); - // this page number will not be changed when moving/add/deleting pages - $fixed = true; - } - if (empty($page)) { - $page = $this->PageNo(); - if (empty($page)) { - return; - } - } - $this->outlines[] = array('t' => $txt, 'l' => $level, 'x' => $x, 'y' => $y, 'p' => $page, 'f' => $fixed, 's' => strtoupper($style), 'c' => $color, 'u' => $link); - } - - /** - * Sort bookmarks for page and key. - * @protected - * @since 5.9.119 (2011-09-19) - */ - protected function sortBookmarks() { - // get sorting columns - $outline_p = array(); - $outline_y = array(); - foreach ($this->outlines as $key => $row) { - $outline_p[$key] = $row['p']; - $outline_k[$key] = $key; - } - // sort outlines by page and original position - array_multisort($outline_p, SORT_NUMERIC, SORT_ASC, $outline_k, SORT_NUMERIC, SORT_ASC, $this->outlines); - } - - /** - * Create a bookmark PDF string. - * @protected - * @author Olivier Plathey, Nicola Asuni - * @since 2.1.002 (2008-02-12) - */ - protected function _putbookmarks() { - $nb = count($this->outlines); - if ($nb == 0) { - return; - } - // sort bookmarks - $this->sortBookmarks(); - $lru = array(); - $level = 0; - foreach ($this->outlines as $i => $o) { - if ($o['l'] > 0) { - $parent = $lru[($o['l'] - 1)]; - //Set parent and last pointers - $this->outlines[$i]['parent'] = $parent; - $this->outlines[$parent]['last'] = $i; - if ($o['l'] > $level) { - //Level increasing: set first pointer - $this->outlines[$parent]['first'] = $i; - } - } else { - $this->outlines[$i]['parent'] = $nb; - } - if (($o['l'] <= $level) AND ($i > 0)) { - //Set prev and next pointers - $prev = $lru[$o['l']]; - $this->outlines[$prev]['next'] = $i; - $this->outlines[$i]['prev'] = $prev; - } - $lru[$o['l']] = $i; - $level = $o['l']; - } - //Outline items - $n = $this->n + 1; - $nltags = '/|<\/(blockquote|dd|dl|div|dt|h1|h2|h3|h4|h5|h6|hr|li|ol|p|pre|ul|tcpdf|table|tr|td)>/si'; - foreach ($this->outlines as $i => $o) { - $oid = $this->_newobj(); - // covert HTML title to string - $title = preg_replace($nltags, "\n", $o['t']); - $title = preg_replace("/[\r]+/si", '', $title); - $title = preg_replace("/[\n]+/si", "\n", $title); - $title = strip_tags($title); - $title = $this->stringTrim($title); - $out = '<_textstring($title, $oid); - $out .= ' /Parent '.($n + $o['parent']).' 0 R'; - if (isset($o['prev'])) { - $out .= ' /Prev '.($n + $o['prev']).' 0 R'; - } - if (isset($o['next'])) { - $out .= ' /Next '.($n + $o['next']).' 0 R'; - } - if (isset($o['first'])) { - $out .= ' /First '.($n + $o['first']).' 0 R'; - } - if (isset($o['last'])) { - $out .= ' /Last '.($n + $o['last']).' 0 R'; - } - if (isset($o['u']) AND !empty($o['u'])) { - // link - if (is_string($o['u'])) { - if ($o['u'][0] == '#') { - // internal destination - $out .= ' /Dest /'.TCPDF_STATIC::encodeNameObject(substr($o['u'], 1)); - } elseif ($o['u'][0] == '%') { - // embedded PDF file - $filename = basename(substr($o['u'], 1)); - $out .= ' /A <embeddedfiles[$filename]['a'].' >> >>'; - } elseif ($o['u'][0] == '*') { - // embedded generic file - $filename = basename(substr($o['u'], 1)); - $jsa = 'var D=event.target.doc;var MyData=D.dataObjects;for (var i in MyData) if (MyData[i].path=="'.$filename.'") D.exportDataObject( { cName : MyData[i].name, nLaunch : 2});'; - $out .= ' /A <_textstring($jsa, $oid).'>>'; - } else { - // external URI link - $out .= ' /A <_datastring($this->unhtmlentities($o['u']), $oid).'>>'; - } - } elseif (isset($this->links[$o['u']])) { - // internal link ID - $l = $this->links[$o['u']]; - if (isset($this->page_obj_id[($l['p'])])) { - $out .= sprintf(' /Dest [%u 0 R /XYZ 0 %F null]', $this->page_obj_id[($l['p'])], ($this->pagedim[$l['p']]['h'] - ($l['y'] * $this->k))); - } - } - } elseif (isset($this->page_obj_id[($o['p'])])) { - // link to a page - $out .= ' '.sprintf('/Dest [%u 0 R /XYZ %F %F null]', $this->page_obj_id[($o['p'])], ($o['x'] * $this->k), ($this->pagedim[$o['p']]['h'] - ($o['y'] * $this->k))); - } - // set font style - $style = 0; - if (!empty($o['s'])) { - // bold - if (strpos($o['s'], 'B') !== false) { - $style |= 2; - } - // oblique - if (strpos($o['s'], 'I') !== false) { - $style |= 1; - } - } - $out .= sprintf(' /F %d', $style); - // set bookmark color - if (isset($o['c']) AND is_array($o['c']) AND (count($o['c']) == 3)) { - $color = array_values($o['c']); - $out .= sprintf(' /C [%F %F %F]', ($color[0] / 255), ($color[1] / 255), ($color[2] / 255)); - } else { - // black - $out .= ' /C [0.0 0.0 0.0]'; - } - $out .= ' /Count 0'; // normally closed item - $out .= ' >>'; - $out .= "\n".'endobj'; - $this->_out($out); - } - //Outline root - $this->OutlineRoot = $this->_newobj(); - $this->_out('<< /Type /Outlines /First '.$n.' 0 R /Last '.($n + $lru[0]).' 0 R >>'."\n".'endobj'); - } - - // --- JAVASCRIPT ------------------------------------------------------ - - /** - * Adds a javascript - * @param $script (string) Javascript code - * @public - * @author Johannes G\FCntert, Nicola Asuni - * @since 2.1.002 (2008-02-12) - */ - public function IncludeJS($script) { - $this->javascript .= $script; - } - - /** - * Adds a javascript object and return object ID - * @param $script (string) Javascript code - * @param $onload (boolean) if true executes this object when opening the document - * @return int internal object ID - * @public - * @author Nicola Asuni - * @since 4.8.000 (2009-09-07) - */ - public function addJavascriptObject($script, $onload=false) { - if ($this->pdfa_mode) { - // javascript is not allowed in PDF/A mode - return false; - } - ++$this->n; - $this->js_objects[$this->n] = array('n' => $this->n, 'js' => $script, 'onload' => $onload); - return $this->n; - } - - /** - * Create a javascript PDF string. - * @protected - * @author Johannes G\FCntert, Nicola Asuni - * @since 2.1.002 (2008-02-12) - */ - protected function _putjavascript() { - if ($this->pdfa_mode OR (empty($this->javascript) AND empty($this->js_objects))) { - return; - } - if (strpos($this->javascript, 'this.addField') > 0) { - if (!$this->ur['enabled']) { - //$this->setUserRights(); - } - // the following two lines are used to avoid form fields duplication after saving - // The addField method only works when releasing user rights (UR3) - $jsa = sprintf("ftcpdfdocsaved=this.addField('%s','%s',%d,[%F,%F,%F,%F]);", 'tcpdfdocsaved', 'text', 0, 0, 1, 0, 1); - $jsb = "getField('tcpdfdocsaved').value='saved';"; - $this->javascript = $jsa."\n".$this->javascript."\n".$jsb; - } - // name tree for javascript - $this->n_js = '<< /Names ['; - if (!empty($this->javascript)) { - $this->n_js .= ' (EmbeddedJS) '.($this->n + 1).' 0 R'; - } - if (!empty($this->js_objects)) { - foreach ($this->js_objects as $key => $val) { - if ($val['onload']) { - $this->n_js .= ' (JS'.$key.') '.$key.' 0 R'; - } - } - } - $this->n_js .= ' ] >>'; - // default Javascript object - if (!empty($this->javascript)) { - $obj_id = $this->_newobj(); - $out = '<< /S /JavaScript'; - $out .= ' /JS '.$this->_textstring($this->javascript, $obj_id); - $out .= ' >>'; - $out .= "\n".'endobj'; - $this->_out($out); - } - // additional Javascript objects - if (!empty($this->js_objects)) { - foreach ($this->js_objects as $key => $val) { - $out = $this->_getobj($key)."\n".' << /S /JavaScript /JS '.$this->_textstring($val['js'], $key).' >>'."\n".'endobj'; - $this->_out($out); - } - } - } - - /** - * Adds a javascript form field. - * @param $type (string) field type - * @param $name (string) field name - * @param $x (int) horizontal position - * @param $y (int) vertical position - * @param $w (int) width - * @param $h (int) height - * @param $prop (array) javascript field properties. Possible values are described on official Javascript for Acrobat API reference. - * @protected - * @author Denis Van Nuffelen, Nicola Asuni - * @since 2.1.002 (2008-02-12) - */ - protected function _addfield($type, $name, $x, $y, $w, $h, $prop) { - if ($this->rtl) { - $x = $x - $w; - } - // the followind avoid fields duplication after saving the document - $this->javascript .= "if (getField('tcpdfdocsaved').value != 'saved') {"; - $k = $this->k; - $this->javascript .= sprintf("f".$name."=this.addField('%s','%s',%u,[%F,%F,%F,%F]);", $name, $type, $this->PageNo()-1, $x*$k, ($this->h-$y)*$k+1, ($x+$w)*$k, ($this->h-$y-$h)*$k+1)."\n"; - $this->javascript .= 'f'.$name.'.textSize='.$this->FontSizePt.";\n"; - foreach($prop as $key => $val) { - if (strcmp(substr($key, -5), 'Color') == 0) { - $val = TCPDF_COLORS::_JScolor($val); - } else { - $val = "'".$val."'"; - } - $this->javascript .= 'f'.$name.'.'.$key.'='.$val.";\n"; - } - if ($this->rtl) { - $this->x -= $w; - } else { - $this->x += $w; - } - $this->javascript .= '}'; - } - - // --- FORM FIELDS ----------------------------------------------------- - - - - /** - * Set default properties for form fields. - * @param $prop (array) javascript field properties. Possible values are described on official Javascript for Acrobat API reference. - * @public - * @author Nicola Asuni - * @since 4.8.000 (2009-09-06) - */ - public function setFormDefaultProp($prop=array()) { - $this->default_form_prop = $prop; - } - - /** - * Return the default properties for form fields. - * @return array $prop javascript field properties. Possible values are described on official Javascript for Acrobat API reference. - * @public - * @author Nicola Asuni - * @since 4.8.000 (2009-09-06) - */ - public function getFormDefaultProp() { - return $this->default_form_prop; - } - - /** - * Creates a text field - * @param $name (string) field name - * @param $w (float) Width of the rectangle - * @param $h (float) Height of the rectangle - * @param $prop (array) javascript field properties. Possible values are described on official Javascript for Acrobat API reference. - * @param $opt (array) annotation parameters. Possible values are described on official PDF32000_2008 reference. - * @param $x (float) Abscissa of the upper-left corner of the rectangle - * @param $y (float) Ordinate of the upper-left corner of the rectangle - * @param $js (boolean) if true put the field using JavaScript (requires Acrobat Writer to be rendered). - * @public - * @author Nicola Asuni - * @since 4.8.000 (2009-09-07) - */ - public function TextField($name, $w, $h, $prop=array(), $opt=array(), $x='', $y='', $js=false) { - if ($x === '') { - $x = $this->x; - } - if ($y === '') { - $y = $this->y; - } - // check page for no-write regions and adapt page margins if necessary - list($x, $y) = $this->checkPageRegions($h, $x, $y); - if ($js) { - $this->_addfield('text', $name, $x, $y, $w, $h, $prop); - return; - } - // get default style - $prop = array_merge($this->getFormDefaultProp(), $prop); - // get annotation data - $popt = TCPDF_STATIC::getAnnotOptFromJSProp($prop, $this->spot_colors, $this->rtl); - // set default appearance stream - $this->annotation_fonts[$this->CurrentFont['fontkey']] = $this->CurrentFont['i']; - $fontstyle = sprintf('/F%d %F Tf %s', $this->CurrentFont['i'], $this->FontSizePt, $this->TextColor); - $popt['da'] = $fontstyle; - // build appearance stream - $popt['ap'] = array(); - $popt['ap']['n'] = '/Tx BMC q '.$fontstyle.' '; - $text = ''; - if (isset($prop['value']) AND !empty($prop['value'])) { - $text = $prop['value']; - } elseif (isset($opt['v']) AND !empty($opt['v'])) { - $text = $opt['v']; - } - $tmpid = $this->startTemplate($w, $h, false); - $align = ''; - if (isset($popt['q'])) { - switch ($popt['q']) { - case 0: { - $align = 'L'; - break; - } - case 1: { - $align = 'C'; - break; - } - case 2: { - $align = 'R'; - break; - } - default: { - $align = ''; - break; - } - } - } - $this->MultiCell($w, $h, $text, 0, $align, false, 0, 0, 0, true, 0, false, true, 0, 'T', false); - $this->endTemplate(); - --$this->n; - $popt['ap']['n'] .= $this->xobjects[$tmpid]['outdata']; - unset($this->xobjects[$tmpid]); - $popt['ap']['n'] .= 'Q EMC'; - // merge options - $opt = array_merge($popt, $opt); - // remove some conflicting options - unset($opt['bs']); - // set remaining annotation data - $opt['Subtype'] = 'Widget'; - $opt['ft'] = 'Tx'; - $opt['t'] = $name; - // Additional annotation's parameters (check _putannotsobj() method): - //$opt['f'] - //$opt['as'] - //$opt['bs'] - //$opt['be'] - //$opt['c'] - //$opt['border'] - //$opt['h'] - //$opt['mk']; - //$opt['mk']['r'] - //$opt['mk']['bc']; - //$opt['mk']['bg']; - unset($opt['mk']['ca']); - unset($opt['mk']['rc']); - unset($opt['mk']['ac']); - unset($opt['mk']['i']); - unset($opt['mk']['ri']); - unset($opt['mk']['ix']); - unset($opt['mk']['if']); - //$opt['mk']['if']['sw']; - //$opt['mk']['if']['s']; - //$opt['mk']['if']['a']; - //$opt['mk']['if']['fb']; - unset($opt['mk']['tp']); - //$opt['tu'] - //$opt['tm'] - //$opt['ff'] - //$opt['v'] - //$opt['dv'] - //$opt['a'] - //$opt['aa'] - //$opt['q'] - $this->Annotation($x, $y, $w, $h, $name, $opt, 0); - if ($this->rtl) { - $this->x -= $w; - } else { - $this->x += $w; - } - } - - /** - * Creates a RadioButton field. - * @param $name (string) Field name. - * @param $w (int) Width of the radio button. - * @param $prop (array) Javascript field properties. Possible values are described on official Javascript for Acrobat API reference. - * @param $opt (array) Annotation parameters. Possible values are described on official PDF32000_2008 reference. - * @param $onvalue (string) Value to be returned if selected. - * @param $checked (boolean) Define the initial state. - * @param $x (float) Abscissa of the upper-left corner of the rectangle - * @param $y (float) Ordinate of the upper-left corner of the rectangle - * @param $js (boolean) If true put the field using JavaScript (requires Acrobat Writer to be rendered). - * @public - * @author Nicola Asuni - * @since 4.8.000 (2009-09-07) - */ - public function RadioButton($name, $w, $prop=array(), $opt=array(), $onvalue='On', $checked=false, $x='', $y='', $js=false) { - if ($x === '') { - $x = $this->x; - } - if ($y === '') { - $y = $this->y; - } - // check page for no-write regions and adapt page margins if necessary - list($x, $y) = $this->checkPageRegions($w, $x, $y); - if ($js) { - $this->_addfield('radiobutton', $name, $x, $y, $w, $w, $prop); - return; - } - if (TCPDF_STATIC::empty_string($onvalue)) { - $onvalue = 'On'; - } - if ($checked) { - $defval = $onvalue; - } else { - $defval = 'Off'; - } - // set font - $font = 'zapfdingbats'; - if ($this->pdfa_mode) { - // all fonts must be embedded - $font = 'pdfa'.$font; - } - $this->AddFont($font); - $tmpfont = $this->getFontBuffer($font); - // set data for parent group - if (!isset($this->radiobutton_groups[$this->page])) { - $this->radiobutton_groups[$this->page] = array(); - } - if (!isset($this->radiobutton_groups[$this->page][$name])) { - $this->radiobutton_groups[$this->page][$name] = array(); - ++$this->n; - $this->radiobutton_groups[$this->page][$name]['n'] = $this->n; - $this->radio_groups[] = $this->n; - } - $kid = ($this->n + 1); - // save object ID to be added on Kids entry on parent object - $this->radiobutton_groups[$this->page][$name][] = array('kid' => $kid, 'def' => $defval); - // get default style - $prop = array_merge($this->getFormDefaultProp(), $prop); - $prop['NoToggleToOff'] = 'true'; - $prop['Radio'] = 'true'; - $prop['borderStyle'] = 'inset'; - // get annotation data - $popt = TCPDF_STATIC::getAnnotOptFromJSProp($prop, $this->spot_colors, $this->rtl); - // set additional default options - $this->annotation_fonts[$tmpfont['fontkey']] = $tmpfont['i']; - $fontstyle = sprintf('/F%d %F Tf %s', $tmpfont['i'], $this->FontSizePt, $this->TextColor); - $popt['da'] = $fontstyle; - // build appearance stream - $popt['ap'] = array(); - $popt['ap']['n'] = array(); - $fx = ((($w - $this->getAbsFontMeasure($tmpfont['cw'][108])) / 2) * $this->k); - $fy = (($w - ((($tmpfont['desc']['Ascent'] - $tmpfont['desc']['Descent']) * $this->FontSizePt / 1000) / $this->k)) * $this->k); - $popt['ap']['n'][$onvalue] = sprintf('q %s BT /F%d %F Tf %F %F Td ('.chr(108).') Tj ET Q', $this->TextColor, $tmpfont['i'], $this->FontSizePt, $fx, $fy); - $popt['ap']['n']['Off'] = sprintf('q %s BT /F%d %F Tf %F %F Td ('.chr(109).') Tj ET Q', $this->TextColor, $tmpfont['i'], $this->FontSizePt, $fx, $fy); - if (!isset($popt['mk'])) { - $popt['mk'] = array(); - } - $popt['mk']['ca'] = '(l)'; - // merge options - $opt = array_merge($popt, $opt); - // set remaining annotation data - $opt['Subtype'] = 'Widget'; - $opt['ft'] = 'Btn'; - if ($checked) { - $opt['v'] = array('/'.$onvalue); - $opt['as'] = $onvalue; - } else { - $opt['as'] = 'Off'; - } - // store readonly flag - if (!isset($this->radiobutton_groups[$this->page][$name]['#readonly#'])) { - $this->radiobutton_groups[$this->page][$name]['#readonly#'] = false; - } - $this->radiobutton_groups[$this->page][$name]['#readonly#'] |= ($opt['f'] & 64); - $this->Annotation($x, $y, $w, $w, $name, $opt, 0); - if ($this->rtl) { - $this->x -= $w; - } else { - $this->x += $w; - } - } - - /** - * Creates a List-box field - * @param $name (string) field name - * @param $w (int) width - * @param $h (int) height - * @param $values (array) array containing the list of values. - * @param $prop (array) javascript field properties. Possible values are described on official Javascript for Acrobat API reference. - * @param $opt (array) annotation parameters. Possible values are described on official PDF32000_2008 reference. - * @param $x (float) Abscissa of the upper-left corner of the rectangle - * @param $y (float) Ordinate of the upper-left corner of the rectangle - * @param $js (boolean) if true put the field using JavaScript (requires Acrobat Writer to be rendered). - * @public - * @author Nicola Asuni - * @since 4.8.000 (2009-09-07) - */ - public function ListBox($name, $w, $h, $values, $prop=array(), $opt=array(), $x='', $y='', $js=false) { - if ($x === '') { - $x = $this->x; - } - if ($y === '') { - $y = $this->y; - } - // check page for no-write regions and adapt page margins if necessary - list($x, $y) = $this->checkPageRegions($h, $x, $y); - if ($js) { - $this->_addfield('listbox', $name, $x, $y, $w, $h, $prop); - $s = ''; - foreach ($values as $value) { - if (is_array($value)) { - $s .= ',[\''.addslashes($value[1]).'\',\''.addslashes($value[0]).'\']'; - } else { - $s .= ',[\''.addslashes($value).'\',\''.addslashes($value).'\']'; - } - } - $this->javascript .= 'f'.$name.'.setItems('.substr($s, 1).');'."\n"; - return; - } - // get default style - $prop = array_merge($this->getFormDefaultProp(), $prop); - // get annotation data - $popt = TCPDF_STATIC::getAnnotOptFromJSProp($prop, $this->spot_colors, $this->rtl); - // set additional default values - $this->annotation_fonts[$this->CurrentFont['fontkey']] = $this->CurrentFont['i']; - $fontstyle = sprintf('/F%d %F Tf %s', $this->CurrentFont['i'], $this->FontSizePt, $this->TextColor); - $popt['da'] = $fontstyle; - // build appearance stream - $popt['ap'] = array(); - $popt['ap']['n'] = '/Tx BMC q '.$fontstyle.' '; - $text = ''; - foreach($values as $item) { - if (is_array($item)) { - $text .= $item[1]."\n"; - } else { - $text .= $item."\n"; - } - } - $tmpid = $this->startTemplate($w, $h, false); - $this->MultiCell($w, $h, $text, 0, '', false, 0, 0, 0, true, 0, false, true, 0, 'T', false); - $this->endTemplate(); - --$this->n; - $popt['ap']['n'] .= $this->xobjects[$tmpid]['outdata']; - unset($this->xobjects[$tmpid]); - $popt['ap']['n'] .= 'Q EMC'; - // merge options - $opt = array_merge($popt, $opt); - // set remaining annotation data - $opt['Subtype'] = 'Widget'; - $opt['ft'] = 'Ch'; - $opt['t'] = $name; - $opt['opt'] = $values; - unset($opt['mk']['ca']); - unset($opt['mk']['rc']); - unset($opt['mk']['ac']); - unset($opt['mk']['i']); - unset($opt['mk']['ri']); - unset($opt['mk']['ix']); - unset($opt['mk']['if']); - unset($opt['mk']['tp']); - $this->Annotation($x, $y, $w, $h, $name, $opt, 0); - if ($this->rtl) { - $this->x -= $w; - } else { - $this->x += $w; - } - } - - /** - * Creates a Combo-box field - * @param $name (string) field name - * @param $w (int) width - * @param $h (int) height - * @param $values (array) array containing the list of values. - * @param $prop (array) javascript field properties. Possible values are described on official Javascript for Acrobat API reference. - * @param $opt (array) annotation parameters. Possible values are described on official PDF32000_2008 reference. - * @param $x (float) Abscissa of the upper-left corner of the rectangle - * @param $y (float) Ordinate of the upper-left corner of the rectangle - * @param $js (boolean) if true put the field using JavaScript (requires Acrobat Writer to be rendered). - * @public - * @author Nicola Asuni - * @since 4.8.000 (2009-09-07) - */ - public function ComboBox($name, $w, $h, $values, $prop=array(), $opt=array(), $x='', $y='', $js=false) { - if ($x === '') { - $x = $this->x; - } - if ($y === '') { - $y = $this->y; - } - // check page for no-write regions and adapt page margins if necessary - list($x, $y) = $this->checkPageRegions($h, $x, $y); - if ($js) { - $this->_addfield('combobox', $name, $x, $y, $w, $h, $prop); - $s = ''; - foreach ($values as $value) { - if (is_array($value)) { - $s .= ',[\''.addslashes($value[1]).'\',\''.addslashes($value[0]).'\']'; - } else { - $s .= ',[\''.addslashes($value).'\',\''.addslashes($value).'\']'; - } - } - $this->javascript .= 'f'.$name.'.setItems('.substr($s, 1).');'."\n"; - return; - } - // get default style - $prop = array_merge($this->getFormDefaultProp(), $prop); - $prop['Combo'] = true; - // get annotation data - $popt = TCPDF_STATIC::getAnnotOptFromJSProp($prop, $this->spot_colors, $this->rtl); - // set additional default options - $this->annotation_fonts[$this->CurrentFont['fontkey']] = $this->CurrentFont['i']; - $fontstyle = sprintf('/F%d %F Tf %s', $this->CurrentFont['i'], $this->FontSizePt, $this->TextColor); - $popt['da'] = $fontstyle; - // build appearance stream - $popt['ap'] = array(); - $popt['ap']['n'] = '/Tx BMC q '.$fontstyle.' '; - $text = ''; - foreach($values as $item) { - if (is_array($item)) { - $text .= $item[1]."\n"; - } else { - $text .= $item."\n"; - } - } - $tmpid = $this->startTemplate($w, $h, false); - $this->MultiCell($w, $h, $text, 0, '', false, 0, 0, 0, true, 0, false, true, 0, 'T', false); - $this->endTemplate(); - --$this->n; - $popt['ap']['n'] .= $this->xobjects[$tmpid]['outdata']; - unset($this->xobjects[$tmpid]); - $popt['ap']['n'] .= 'Q EMC'; - // merge options - $opt = array_merge($popt, $opt); - // set remaining annotation data - $opt['Subtype'] = 'Widget'; - $opt['ft'] = 'Ch'; - $opt['t'] = $name; - $opt['opt'] = $values; - unset($opt['mk']['ca']); - unset($opt['mk']['rc']); - unset($opt['mk']['ac']); - unset($opt['mk']['i']); - unset($opt['mk']['ri']); - unset($opt['mk']['ix']); - unset($opt['mk']['if']); - unset($opt['mk']['tp']); - $this->Annotation($x, $y, $w, $h, $name, $opt, 0); - if ($this->rtl) { - $this->x -= $w; - } else { - $this->x += $w; - } - } - - /** - * Creates a CheckBox field - * @param $name (string) field name - * @param $w (int) width - * @param $checked (boolean) define the initial state. - * @param $prop (array) javascript field properties. Possible values are described on official Javascript for Acrobat API reference. - * @param $opt (array) annotation parameters. Possible values are described on official PDF32000_2008 reference. - * @param $onvalue (string) value to be returned if selected. - * @param $x (float) Abscissa of the upper-left corner of the rectangle - * @param $y (float) Ordinate of the upper-left corner of the rectangle - * @param $js (boolean) if true put the field using JavaScript (requires Acrobat Writer to be rendered). - * @public - * @author Nicola Asuni - * @since 4.8.000 (2009-09-07) - */ - public function CheckBox($name, $w, $checked=false, $prop=array(), $opt=array(), $onvalue='Yes', $x='', $y='', $js=false) { - if ($x === '') { - $x = $this->x; - } - if ($y === '') { - $y = $this->y; - } - // check page for no-write regions and adapt page margins if necessary - list($x, $y) = $this->checkPageRegions($w, $x, $y); - if ($js) { - $this->_addfield('checkbox', $name, $x, $y, $w, $w, $prop); - return; - } - if (!isset($prop['value'])) { - $prop['value'] = array('Yes'); - } - // get default style - $prop = array_merge($this->getFormDefaultProp(), $prop); - $prop['borderStyle'] = 'inset'; - // get annotation data - $popt = TCPDF_STATIC::getAnnotOptFromJSProp($prop, $this->spot_colors, $this->rtl); - // set additional default options - $font = 'zapfdingbats'; - if ($this->pdfa_mode) { - // all fonts must be embedded - $font = 'pdfa'.$font; - } - $this->AddFont($font); - $tmpfont = $this->getFontBuffer($font); - $this->annotation_fonts[$tmpfont['fontkey']] = $tmpfont['i']; - $fontstyle = sprintf('/F%d %F Tf %s', $tmpfont['i'], $this->FontSizePt, $this->TextColor); - $popt['da'] = $fontstyle; - // build appearance stream - $popt['ap'] = array(); - $popt['ap']['n'] = array(); - $fx = ((($w - $this->getAbsFontMeasure($tmpfont['cw'][110])) / 2) * $this->k); - $fy = (($w - ((($tmpfont['desc']['Ascent'] - $tmpfont['desc']['Descent']) * $this->FontSizePt / 1000) / $this->k)) * $this->k); - $popt['ap']['n']['Yes'] = sprintf('q %s BT /F%d %F Tf %F %F Td ('.chr(110).') Tj ET Q', $this->TextColor, $tmpfont['i'], $this->FontSizePt, $fx, $fy); - $popt['ap']['n']['Off'] = sprintf('q %s BT /F%d %F Tf %F %F Td ('.chr(111).') Tj ET Q', $this->TextColor, $tmpfont['i'], $this->FontSizePt, $fx, $fy); - // merge options - $opt = array_merge($popt, $opt); - // set remaining annotation data - $opt['Subtype'] = 'Widget'; - $opt['ft'] = 'Btn'; - $opt['t'] = $name; - if (TCPDF_STATIC::empty_string($onvalue)) { - $onvalue = 'Yes'; - } - $opt['opt'] = array($onvalue); - if ($checked) { - $opt['v'] = array('/Yes'); - $opt['as'] = 'Yes'; - } else { - $opt['v'] = array('/Off'); - $opt['as'] = 'Off'; - } - $this->Annotation($x, $y, $w, $w, $name, $opt, 0); - if ($this->rtl) { - $this->x -= $w; - } else { - $this->x += $w; - } - } - - /** - * Creates a button field - * @param $name (string) field name - * @param $w (int) width - * @param $h (int) height - * @param $caption (string) caption. - * @param $action (mixed) action triggered by pressing the button. Use a string to specify a javascript action. Use an array to specify a form action options as on section 12.7.5 of PDF32000_2008. - * @param $prop (array) javascript field properties. Possible values are described on official Javascript for Acrobat API reference. - * @param $opt (array) annotation parameters. Possible values are described on official PDF32000_2008 reference. - * @param $x (float) Abscissa of the upper-left corner of the rectangle - * @param $y (float) Ordinate of the upper-left corner of the rectangle - * @param $js (boolean) if true put the field using JavaScript (requires Acrobat Writer to be rendered). - * @public - * @author Nicola Asuni - * @since 4.8.000 (2009-09-07) - */ - public function Button($name, $w, $h, $caption, $action, $prop=array(), $opt=array(), $x='', $y='', $js=false) { - if ($x === '') { - $x = $this->x; - } - if ($y === '') { - $y = $this->y; - } - // check page for no-write regions and adapt page margins if necessary - list($x, $y) = $this->checkPageRegions($h, $x, $y); - if ($js) { - $this->_addfield('button', $name, $this->x, $this->y, $w, $h, $prop); - $this->javascript .= 'f'.$name.".buttonSetCaption('".addslashes($caption)."');\n"; - $this->javascript .= 'f'.$name.".setAction('MouseUp','".addslashes($action)."');\n"; - $this->javascript .= 'f'.$name.".highlight='push';\n"; - $this->javascript .= 'f'.$name.".print=false;\n"; - return; - } - // get default style - $prop = array_merge($this->getFormDefaultProp(), $prop); - $prop['Pushbutton'] = 'true'; - $prop['highlight'] = 'push'; - $prop['display'] = 'display.noPrint'; - // get annotation data - $popt = TCPDF_STATIC::getAnnotOptFromJSProp($prop, $this->spot_colors, $this->rtl); - $this->annotation_fonts[$this->CurrentFont['fontkey']] = $this->CurrentFont['i']; - $fontstyle = sprintf('/F%d %F Tf %s', $this->CurrentFont['i'], $this->FontSizePt, $this->TextColor); - $popt['da'] = $fontstyle; - // build appearance stream - $popt['ap'] = array(); - $popt['ap']['n'] = '/Tx BMC q '.$fontstyle.' '; - $tmpid = $this->startTemplate($w, $h, false); - $bw = (2 / $this->k); // border width - $border = array( - 'L' => array('width' => $bw, 'cap' => 'square', 'join' => 'miter', 'dash' => 0, 'color' => array(231)), - 'R' => array('width' => $bw, 'cap' => 'square', 'join' => 'miter', 'dash' => 0, 'color' => array(51)), - 'T' => array('width' => $bw, 'cap' => 'square', 'join' => 'miter', 'dash' => 0, 'color' => array(231)), - 'B' => array('width' => $bw, 'cap' => 'square', 'join' => 'miter', 'dash' => 0, 'color' => array(51))); - $this->SetFillColor(204); - $this->Cell($w, $h, $caption, $border, 0, 'C', true, '', 1, false, 'T', 'M'); - $this->endTemplate(); - --$this->n; - $popt['ap']['n'] .= $this->xobjects[$tmpid]['outdata']; - unset($this->xobjects[$tmpid]); - $popt['ap']['n'] .= 'Q EMC'; - // set additional default options - if (!isset($popt['mk'])) { - $popt['mk'] = array(); - } - $ann_obj_id = ($this->n + 1); - if (!empty($action) AND !is_array($action)) { - $ann_obj_id = ($this->n + 2); - } - $popt['mk']['ca'] = $this->_textstring($caption, $ann_obj_id); - $popt['mk']['rc'] = $this->_textstring($caption, $ann_obj_id); - $popt['mk']['ac'] = $this->_textstring($caption, $ann_obj_id); - // merge options - $opt = array_merge($popt, $opt); - // set remaining annotation data - $opt['Subtype'] = 'Widget'; - $opt['ft'] = 'Btn'; - $opt['t'] = $caption; - $opt['v'] = $name; - if (!empty($action)) { - if (is_array($action)) { - // form action options as on section 12.7.5 of PDF32000_2008. - $opt['aa'] = '/D <<'; - $bmode = array('SubmitForm', 'ResetForm', 'ImportData'); - foreach ($action AS $key => $val) { - if (($key == 'S') AND in_array($val, $bmode)) { - $opt['aa'] .= ' /S /'.$val; - } elseif (($key == 'F') AND (!empty($val))) { - $opt['aa'] .= ' /F '.$this->_datastring($val, $ann_obj_id); - } elseif (($key == 'Fields') AND is_array($val) AND !empty($val)) { - $opt['aa'] .= ' /Fields ['; - foreach ($val AS $field) { - $opt['aa'] .= ' '.$this->_textstring($field, $ann_obj_id); - } - $opt['aa'] .= ']'; - } elseif (($key == 'Flags')) { - $ff = 0; - if (is_array($val)) { - foreach ($val AS $flag) { - switch ($flag) { - case 'Include/Exclude': { - $ff += 1 << 0; - break; - } - case 'IncludeNoValueFields': { - $ff += 1 << 1; - break; - } - case 'ExportFormat': { - $ff += 1 << 2; - break; - } - case 'GetMethod': { - $ff += 1 << 3; - break; - } - case 'SubmitCoordinates': { - $ff += 1 << 4; - break; - } - case 'XFDF': { - $ff += 1 << 5; - break; - } - case 'IncludeAppendSaves': { - $ff += 1 << 6; - break; - } - case 'IncludeAnnotations': { - $ff += 1 << 7; - break; - } - case 'SubmitPDF': { - $ff += 1 << 8; - break; - } - case 'CanonicalFormat': { - $ff += 1 << 9; - break; - } - case 'ExclNonUserAnnots': { - $ff += 1 << 10; - break; - } - case 'ExclFKey': { - $ff += 1 << 11; - break; - } - case 'EmbedForm': { - $ff += 1 << 13; - break; - } - } - } - } else { - $ff = intval($val); - } - $opt['aa'] .= ' /Flags '.$ff; - } - } - $opt['aa'] .= ' >>'; - } else { - // Javascript action or raw action command - $js_obj_id = $this->addJavascriptObject($action); - $opt['aa'] = '/D '.$js_obj_id.' 0 R'; - } - } - $this->Annotation($x, $y, $w, $h, $name, $opt, 0); - if ($this->rtl) { - $this->x -= $w; - } else { - $this->x += $w; - } - } - - // --- END FORMS FIELDS ------------------------------------------------ - - /** - * Add certification signature (DocMDP or UR3) - * You can set only one signature type - * @protected - * @author Nicola Asuni - * @since 4.6.008 (2009-05-07) - */ - protected function _putsignature() { - if ((!$this->sign) OR (!isset($this->signature_data['cert_type']))) { - return; - } - $sigobjid = ($this->sig_obj_id + 1); - $out = $this->_getobj($sigobjid)."\n"; - $out .= '<< /Type /Sig'; - $out .= ' /Filter /Adobe.PPKLite'; - $out .= ' /SubFilter /adbe.pkcs7.detached'; - $out .= ' '.TCPDF_STATIC::$byterange_string; - $out .= ' /Contents<'.str_repeat('0', $this->signature_max_length).'>'; - if (empty($this->signature_data['approval']) OR ($this->signature_data['approval'] != 'A')) { - $out .= ' /Reference ['; // array of signature reference dictionaries - $out .= ' << /Type /SigRef'; - if ($this->signature_data['cert_type'] > 0) { - $out .= ' /TransformMethod /DocMDP'; - $out .= ' /TransformParams <<'; - $out .= ' /Type /TransformParams'; - $out .= ' /P '.$this->signature_data['cert_type']; - $out .= ' /V /1.2'; - } else { - $out .= ' /TransformMethod /UR3'; - $out .= ' /TransformParams <<'; - $out .= ' /Type /TransformParams'; - $out .= ' /V /2.2'; - if (!TCPDF_STATIC::empty_string($this->ur['document'])) { - $out .= ' /Document['.$this->ur['document'].']'; - } - if (!TCPDF_STATIC::empty_string($this->ur['form'])) { - $out .= ' /Form['.$this->ur['form'].']'; - } - if (!TCPDF_STATIC::empty_string($this->ur['signature'])) { - $out .= ' /Signature['.$this->ur['signature'].']'; - } - if (!TCPDF_STATIC::empty_string($this->ur['annots'])) { - $out .= ' /Annots['.$this->ur['annots'].']'; - } - if (!TCPDF_STATIC::empty_string($this->ur['ef'])) { - $out .= ' /EF['.$this->ur['ef'].']'; - } - if (!TCPDF_STATIC::empty_string($this->ur['formex'])) { - $out .= ' /FormEX['.$this->ur['formex'].']'; - } - } - $out .= ' >>'; // close TransformParams - // optional digest data (values must be calculated and replaced later) - //$out .= ' /Data ********** 0 R'; - //$out .= ' /DigestMethod/MD5'; - //$out .= ' /DigestLocation[********** 34]'; - //$out .= ' /DigestValue<********************************>'; - $out .= ' >>'; - $out .= ' ]'; // end of reference - } - if (isset($this->signature_data['info']['Name']) AND !TCPDF_STATIC::empty_string($this->signature_data['info']['Name'])) { - $out .= ' /Name '.$this->_textstring($this->signature_data['info']['Name'], $sigobjid); - } - if (isset($this->signature_data['info']['Location']) AND !TCPDF_STATIC::empty_string($this->signature_data['info']['Location'])) { - $out .= ' /Location '.$this->_textstring($this->signature_data['info']['Location'], $sigobjid); - } - if (isset($this->signature_data['info']['Reason']) AND !TCPDF_STATIC::empty_string($this->signature_data['info']['Reason'])) { - $out .= ' /Reason '.$this->_textstring($this->signature_data['info']['Reason'], $sigobjid); - } - if (isset($this->signature_data['info']['ContactInfo']) AND !TCPDF_STATIC::empty_string($this->signature_data['info']['ContactInfo'])) { - $out .= ' /ContactInfo '.$this->_textstring($this->signature_data['info']['ContactInfo'], $sigobjid); - } - $out .= ' /M '.$this->_datestring($sigobjid, $this->doc_modification_timestamp); - $out .= ' >>'; - $out .= "\n".'endobj'; - $this->_out($out); - } - - /** - * Set User's Rights for PDF Reader - * WARNING: This is experimental and currently do not work. - * Check the PDF Reference 8.7.1 Transform Methods, - * Table 8.105 Entries in the UR transform parameters dictionary - * @param $enable (boolean) if true enable user's rights on PDF reader - * @param $document (string) Names specifying additional document-wide usage rights for the document. The only defined value is "/FullSave", which permits a user to save the document along with modified form and/or annotation data. - * @param $annots (string) Names specifying additional annotation-related usage rights for the document. Valid names in PDF 1.5 and later are /Create/Delete/Modify/Copy/Import/Export, which permit the user to perform the named operation on annotations. - * @param $form (string) Names specifying additional form-field-related usage rights for the document. Valid names are: /Add/Delete/FillIn/Import/Export/SubmitStandalone/SpawnTemplate - * @param $signature (string) Names specifying additional signature-related usage rights for the document. The only defined value is /Modify, which permits a user to apply a digital signature to an existing signature form field or clear a signed signature form field. - * @param $ef (string) Names specifying additional usage rights for named embedded files in the document. Valid names are /Create/Delete/Modify/Import, which permit the user to perform the named operation on named embedded files - Names specifying additional embedded-files-related usage rights for the document. - * @param $formex (string) Names specifying additional form-field-related usage rights. The only valid name is BarcodePlaintext, which permits text form field data to be encoded as a plaintext two-dimensional barcode. - * @public - * @author Nicola Asuni - * @since 2.9.000 (2008-03-26) - */ - public function setUserRights( - $enable=true, - $document='/FullSave', - $annots='/Create/Delete/Modify/Copy/Import/Export', - $form='/Add/Delete/FillIn/Import/Export/SubmitStandalone/SpawnTemplate', - $signature='/Modify', - $ef='/Create/Delete/Modify/Import', - $formex='') { - $this->ur['enabled'] = $enable; - $this->ur['document'] = $document; - $this->ur['annots'] = $annots; - $this->ur['form'] = $form; - $this->ur['signature'] = $signature; - $this->ur['ef'] = $ef; - $this->ur['formex'] = $formex; - if (!$this->sign) { - $this->setSignature('', '', '', '', 0, array()); - } - } - - /** - * Enable document signature (requires the OpenSSL Library). - * The digital signature improve document authenticity and integrity and allows o enable extra features on Acrobat Reader. - * To create self-signed signature: openssl req -x509 -nodes -days 365000 -newkey rsa:1024 -keyout tcpdf.crt -out tcpdf.crt - * To export crt to p12: openssl pkcs12 -export -in tcpdf.crt -out tcpdf.p12 - * To convert pfx certificate to pem: openssl pkcs12 -in tcpdf.pfx -out tcpdf.crt -nodes - * @param $signing_cert (mixed) signing certificate (string or filename prefixed with 'file://') - * @param $private_key (mixed) private key (string or filename prefixed with 'file://') - * @param $private_key_password (string) password - * @param $extracerts (string) specifies the name of a file containing a bunch of extra certificates to include in the signature which can for example be used to help the recipient to verify the certificate that you used. - * @param $cert_type (int) The access permissions granted for this document. Valid values shall be: 1 = No changes to the document shall be permitted; any change to the document shall invalidate the signature; 2 = Permitted changes shall be filling in forms, instantiating page templates, and signing; other changes shall invalidate the signature; 3 = Permitted changes shall be the same as for 2, as well as annotation creation, deletion, and modification; other changes shall invalidate the signature. - * @param $info (array) array of option information: Name, Location, Reason, ContactInfo. - * @param $approval (string) Enable approval signature eg. for PDF incremental update - * @public - * @author Nicola Asuni - * @since 4.6.005 (2009-04-24) - */ - public function setSignature($signing_cert='', $private_key='', $private_key_password='', $extracerts='', $cert_type=2, $info=array(), $approval='') { - // to create self-signed signature: openssl req -x509 -nodes -days 365000 -newkey rsa:1024 -keyout tcpdf.crt -out tcpdf.crt - // to export crt to p12: openssl pkcs12 -export -in tcpdf.crt -out tcpdf.p12 - // to convert pfx certificate to pem: openssl - // OpenSSL> pkcs12 -in -out -nodes - $this->sign = true; - ++$this->n; - $this->sig_obj_id = $this->n; // signature widget - ++$this->n; // signature object ($this->sig_obj_id + 1) - $this->signature_data = array(); - if (strlen($signing_cert) == 0) { - $this->Error('Please provide a certificate file and password!'); - } - if (strlen($private_key) == 0) { - $private_key = $signing_cert; - } - $this->signature_data['signcert'] = $signing_cert; - $this->signature_data['privkey'] = $private_key; - $this->signature_data['password'] = $private_key_password; - $this->signature_data['extracerts'] = $extracerts; - $this->signature_data['cert_type'] = $cert_type; - $this->signature_data['info'] = $info; - $this->signature_data['approval'] = $approval; - } - - /** - * Set the digital signature appearance (a cliccable rectangle area to get signature properties) - * @param $x (float) Abscissa of the upper-left corner. - * @param $y (float) Ordinate of the upper-left corner. - * @param $w (float) Width of the signature area. - * @param $h (float) Height of the signature area. - * @param $page (int) option page number (if < 0 the current page is used). - * @param $name (string) Name of the signature. - * @public - * @author Nicola Asuni - * @since 5.3.011 (2010-06-17) - */ - public function setSignatureAppearance($x=0, $y=0, $w=0, $h=0, $page=-1, $name='') { - $this->signature_appearance = $this->getSignatureAppearanceArray($x, $y, $w, $h, $page, $name); - } - - /** - * Add an empty digital signature appearance (a cliccable rectangle area to get signature properties) - * @param $x (float) Abscissa of the upper-left corner. - * @param $y (float) Ordinate of the upper-left corner. - * @param $w (float) Width of the signature area. - * @param $h (float) Height of the signature area. - * @param $page (int) option page number (if < 0 the current page is used). - * @param $name (string) Name of the signature. - * @public - * @author Nicola Asuni - * @since 5.9.101 (2011-07-06) - */ - public function addEmptySignatureAppearance($x=0, $y=0, $w=0, $h=0, $page=-1, $name='') { - ++$this->n; - $this->empty_signature_appearance[] = array('objid' => $this->n) + $this->getSignatureAppearanceArray($x, $y, $w, $h, $page, $name); - } - - /** - * Get the array that defines the signature appearance (page and rectangle coordinates). - * @param $x (float) Abscissa of the upper-left corner. - * @param $y (float) Ordinate of the upper-left corner. - * @param $w (float) Width of the signature area. - * @param $h (float) Height of the signature area. - * @param $page (int) option page number (if < 0 the current page is used). - * @param $name (string) Name of the signature. - * @return (array) Array defining page and rectangle coordinates of signature appearance. - * @protected - * @author Nicola Asuni - * @since 5.9.101 (2011-07-06) - */ - protected function getSignatureAppearanceArray($x=0, $y=0, $w=0, $h=0, $page=-1, $name='') { - $sigapp = array(); - if (($page < 1) OR ($page > $this->numpages)) { - $sigapp['page'] = $this->page; - } else { - $sigapp['page'] = intval($page); - } - if (empty($name)) { - $sigapp['name'] = 'Signature'; - } else { - $sigapp['name'] = $name; - } - $a = $x * $this->k; - $b = $this->pagedim[($sigapp['page'])]['h'] - (($y + $h) * $this->k); - $c = $w * $this->k; - $d = $h * $this->k; - $sigapp['rect'] = sprintf('%F %F %F %F', $a, $b, ($a + $c), ($b + $d)); - return $sigapp; - } - - /** - * Enable document timestamping (requires the OpenSSL Library). - * The trusted timestamping improve document security that means that no one should be able to change the document once it has been recorded. - * Use with digital signature only! - * @param $tsa_host (string) Time Stamping Authority (TSA) server (prefixed with 'https://') - * @param $tsa_username (string) Specifies the username for TSA authorization (optional) OR specifies the TSA authorization PEM file (see: example_66.php, optional) - * @param $tsa_password (string) Specifies the password for TSA authorization (optional) - * @param $tsa_cert (string) Specifies the location of TSA certificate for authorization (optional for cURL) - * @public - * @author Richard Stockinger - * @since 6.0.090 (2014-06-16) - */ - public function setTimeStamp($tsa_host='', $tsa_username='', $tsa_password='', $tsa_cert='') { - $this->tsa_data = array(); - if (!function_exists('curl_init')) { - $this->Error('Please enable cURL PHP extension!'); - } - if (strlen($tsa_host) == 0) { - $this->Error('Please specify the host of Time Stamping Authority (TSA)!'); - } - $this->tsa_data['tsa_host'] = $tsa_host; - if (is_file($tsa_username)) { - $this->tsa_data['tsa_auth'] = $tsa_username; - } else { - $this->tsa_data['tsa_username'] = $tsa_username; - } - $this->tsa_data['tsa_password'] = $tsa_password; - $this->tsa_data['tsa_cert'] = $tsa_cert; - $this->tsa_timestamp = true; - } - - /** - * NOT YET IMPLEMENTED - * Request TSA for a timestamp - * @param $signature (string) Digital signature as binary string - * @return (string) Timestamped digital signature - * @protected - * @author Richard Stockinger - * @since 6.0.090 (2014-06-16) - */ - protected function applyTSA($signature) { - if (!$this->tsa_timestamp) { - return $signature; - } - //@TODO: implement this feature - return $signature; - } - - /** - * Create a new page group. - * NOTE: call this function before calling AddPage() - * @param $page (int) starting group page (leave empty for next page). - * @public - * @since 3.0.000 (2008-03-27) - */ - public function startPageGroup($page='') { - if (empty($page)) { - $page = $this->page + 1; - } - $this->newpagegroup[$page] = sizeof($this->newpagegroup) + 1; - } - - /** - * Set the starting page number. - * @param $num (int) Starting page number. - * @since 5.9.093 (2011-06-16) - * @public - */ - public function setStartingPageNumber($num=1) { - $this->starting_page_number = max(0, intval($num)); - } - - /** - * Returns the string alias used right align page numbers. - * If the current font is unicode type, the returned string wil contain an additional open curly brace. - * @return string - * @since 5.9.099 (2011-06-27) - * @public - */ - public function getAliasRightShift() { - // calculate aproximatively the ratio between widths of aliases and replacements. - $ref = '{'.TCPDF_STATIC::$alias_right_shift.'}{'.TCPDF_STATIC::$alias_tot_pages.'}{'.TCPDF_STATIC::$alias_num_page.'}'; - $rep = str_repeat(' ', $this->GetNumChars($ref)); - $wrep = $this->GetStringWidth($rep); - if ($wrep > 0) { - $wdiff = max(1, ($this->GetStringWidth($ref) / $wrep)); - } else { - $wdiff = 1; - } - $sdiff = sprintf('%F', $wdiff); - $alias = TCPDF_STATIC::$alias_right_shift.$sdiff.'}'; - if ($this->isUnicodeFont()) { - $alias = '{'.$alias; - } - return $alias; - } - - /** - * Returns the string alias used for the total number of pages. - * If the current font is unicode type, the returned string is surrounded by additional curly braces. - * This alias will be replaced by the total number of pages in the document. - * @return string - * @since 4.0.018 (2008-08-08) - * @public - */ - public function getAliasNbPages() { - if ($this->isUnicodeFont()) { - return '{'.TCPDF_STATIC::$alias_tot_pages.'}'; - } - return TCPDF_STATIC::$alias_tot_pages; - } - - /** - * Returns the string alias used for the page number. - * If the current font is unicode type, the returned string is surrounded by additional curly braces. - * This alias will be replaced by the page number. - * @return string - * @since 4.5.000 (2009-01-02) - * @public - */ - public function getAliasNumPage() { - if ($this->isUnicodeFont()) { - return '{'.TCPDF_STATIC::$alias_num_page.'}'; - } - return TCPDF_STATIC::$alias_num_page; - } - - /** - * Return the alias for the total number of pages in the current page group. - * If the current font is unicode type, the returned string is surrounded by additional curly braces. - * This alias will be replaced by the total number of pages in this group. - * @return alias of the current page group - * @public - * @since 3.0.000 (2008-03-27) - */ - public function getPageGroupAlias() { - if ($this->isUnicodeFont()) { - return '{'.TCPDF_STATIC::$alias_group_tot_pages.'}'; - } - return TCPDF_STATIC::$alias_group_tot_pages; - } - - /** - * Return the alias for the page number on the current page group. - * If the current font is unicode type, the returned string is surrounded by additional curly braces. - * This alias will be replaced by the page number (relative to the belonging group). - * @return alias of the current page group - * @public - * @since 4.5.000 (2009-01-02) - */ - public function getPageNumGroupAlias() { - if ($this->isUnicodeFont()) { - return '{'.TCPDF_STATIC::$alias_group_num_page.'}'; - } - return TCPDF_STATIC::$alias_group_num_page; - } - - /** - * Return the current page in the group. - * @return current page in the group - * @public - * @since 3.0.000 (2008-03-27) - */ - public function getGroupPageNo() { - return $this->pagegroups[$this->currpagegroup]; - } - - /** - * Returns the current group page number formatted as a string. - * @public - * @since 4.3.003 (2008-11-18) - * @see PaneNo(), formatPageNumber() - */ - public function getGroupPageNoFormatted() { - return TCPDF_STATIC::formatPageNumber($this->getGroupPageNo()); - } - - /** - * Returns the current page number formatted as a string. - * @public - * @since 4.2.005 (2008-11-06) - * @see PaneNo(), formatPageNumber() - */ - public function PageNoFormatted() { - return TCPDF_STATIC::formatPageNumber($this->PageNo()); - } - - /** - * Put pdf layers. - * @protected - * @since 3.0.000 (2008-03-27) - */ - protected function _putocg() { - if (empty($this->pdflayers)) { - return; - } - foreach ($this->pdflayers as $key => $layer) { - $this->pdflayers[$key]['objid'] = $this->_newobj(); - $out = '<< /Type /OCG'; - $out .= ' /Name '.$this->_textstring($layer['name'], $this->pdflayers[$key]['objid']); - $out .= ' /Usage <<'; - if (isset($layer['print']) AND ($layer['print'] !== NULL)) { - $out .= ' /Print <>'; - } - $out .= ' /View <>'; - $out .= ' >> >>'; - $out .= "\n".'endobj'; - $this->_out($out); - } - } - - /** - * Start a new pdf layer. - * @param $name (string) Layer name (only a-z letters and numbers). Leave empty for automatic name. - * @param $print (boolean|null) Set to TRUE to print this layer, FALSE to not print and NULL to not set this option - * @param $view (boolean) Set to true to view this layer. - * @param $lock (boolean) If true lock the layer - * @public - * @since 5.9.102 (2011-07-13) - */ - public function startLayer($name='', $print=true, $view=true, $lock=true) { - if ($this->state != 2) { - return; - } - $layer = sprintf('LYR%03d', (count($this->pdflayers) + 1)); - if (empty($name)) { - $name = $layer; - } else { - $name = preg_replace('/[^a-zA-Z0-9_\-]/', '', $name); - } - $this->pdflayers[] = array('layer' => $layer, 'name' => $name, 'print' => $print, 'view' => $view, 'lock' => $lock); - $this->openMarkedContent = true; - $this->_out('/OC /'.$layer.' BDC'); - } - - /** - * End the current PDF layer. - * @public - * @since 5.9.102 (2011-07-13) - */ - public function endLayer() { - if ($this->state != 2) { - return; - } - if ($this->openMarkedContent) { - // close existing open marked-content layer - $this->_out('EMC'); - $this->openMarkedContent = false; - } - } - - /** - * Set the visibility of the successive elements. - * This can be useful, for instance, to put a background - * image or color that will show on screen but won't print. - * @param $v (string) visibility mode. Legal values are: all, print, screen or view. - * @public - * @since 3.0.000 (2008-03-27) - */ - public function setVisibility($v) { - if ($this->state != 2) { - return; - } - $this->endLayer(); - switch($v) { - case 'print': { - $this->startLayer('Print', true, false); - break; - } - case 'view': - case 'screen': { - $this->startLayer('View', false, true); - break; - } - case 'all': { - $this->_out(''); - break; - } - default: { - $this->Error('Incorrect visibility: '.$v); - break; - } - } - } - - /** - * Add transparency parameters to the current extgstate - * @param $parms (array) parameters - * @return the number of extgstates - * @protected - * @since 3.0.000 (2008-03-27) - */ - protected function addExtGState($parms) { - if ($this->pdfa_mode) { - // transparencies are not allowed in PDF/A mode - return; - } - // check if this ExtGState already exist - foreach ($this->extgstates as $i => $ext) { - if ($ext['parms'] == $parms) { - if ($this->inxobj) { - // we are inside an XObject template - $this->xobjects[$this->xobjid]['extgstates'][$i] = $ext; - } - // return reference to existing ExtGState - return $i; - } - } - $n = (count($this->extgstates) + 1); - $this->extgstates[$n] = array('parms' => $parms); - if ($this->inxobj) { - // we are inside an XObject template - $this->xobjects[$this->xobjid]['extgstates'][$n] = $this->extgstates[$n]; - } - return $n; - } - - /** - * Add an extgstate - * @param $gs (array) extgstate - * @protected - * @since 3.0.000 (2008-03-27) - */ - protected function setExtGState($gs) { - if ($this->pdfa_mode OR ($this->state != 2)) { - // transparency is not allowed in PDF/A mode - return; - } - $this->_out(sprintf('/GS%d gs', $gs)); - } - - /** - * Put extgstates for object transparency - * @protected - * @since 3.0.000 (2008-03-27) - */ - protected function _putextgstates() { - foreach ($this->extgstates as $i => $ext) { - $this->extgstates[$i]['n'] = $this->_newobj(); - $out = '<< /Type /ExtGState'; - foreach ($ext['parms'] as $k => $v) { - if (is_float($v)) { - $v = sprintf('%F', $v); - } elseif ($v === true) { - $v = 'true'; - } elseif ($v === false) { - $v = 'false'; - } - $out .= ' /'.$k.' '.$v; - } - $out .= ' >>'; - $out .= "\n".'endobj'; - $this->_out($out); - } - } - - /** - * Set overprint mode for stroking (OP) and non-stroking (op) painting operations. - * (Check the "Entries in a Graphics State Parameter Dictionary" on PDF 32000-1:2008). - * @param $stroking (boolean) If true apply overprint for stroking operations. - * @param $nonstroking (boolean) If true apply overprint for painting operations other than stroking. - * @param $mode (integer) Overprint mode: (0 = each source colour component value replaces the value previously painted for the corresponding device colorant; 1 = a tint value of 0.0 for a source colour component shall leave the corresponding component of the previously painted colour unchanged). - * @public - * @since 5.9.152 (2012-03-23) - */ - public function setOverprint($stroking=true, $nonstroking='', $mode=0) { - if ($this->state != 2) { - return; - } - $stroking = $stroking ? true : false; - if (TCPDF_STATIC::empty_string($nonstroking)) { - // default value if not set - $nonstroking = $stroking; - } else { - $nonstroking = $nonstroking ? true : false; - } - if (($mode != 0) AND ($mode != 1)) { - $mode = 0; - } - $this->overprint = array('OP' => $stroking, 'op' => $nonstroking, 'OPM' => $mode); - $gs = $this->addExtGState($this->overprint); - $this->setExtGState($gs); - } - - /** - * Get the overprint mode array (OP, op, OPM). - * (Check the "Entries in a Graphics State Parameter Dictionary" on PDF 32000-1:2008). - * @return array. - * @public - * @since 5.9.152 (2012-03-23) - */ - public function getOverprint() { - return $this->overprint; - } - - /** - * Set alpha for stroking (CA) and non-stroking (ca) operations. - * @param $stroking (float) Alpha value for stroking operations: real value from 0 (transparent) to 1 (opaque). - * @param $bm (string) blend mode, one of the following: Normal, Multiply, Screen, Overlay, Darken, Lighten, ColorDodge, ColorBurn, HardLight, SoftLight, Difference, Exclusion, Hue, Saturation, Color, Luminosity - * @param $nonstroking (float) Alpha value for non-stroking operations: real value from 0 (transparent) to 1 (opaque). - * @param $ais (boolean) - * @public - * @since 3.0.000 (2008-03-27) - */ - public function setAlpha($stroking=1, $bm='Normal', $nonstroking='', $ais=false) { - if ($this->pdfa_mode) { - // transparency is not allowed in PDF/A mode - return; - } - $stroking = floatval($stroking); - if (TCPDF_STATIC::empty_string($nonstroking)) { - // default value if not set - $nonstroking = $stroking; - } else { - $nonstroking = floatval($nonstroking); - } - if ($bm[0] == '/') { - // remove trailing slash - $bm = substr($bm, 1); - } - if (!in_array($bm, array('Normal', 'Multiply', 'Screen', 'Overlay', 'Darken', 'Lighten', 'ColorDodge', 'ColorBurn', 'HardLight', 'SoftLight', 'Difference', 'Exclusion', 'Hue', 'Saturation', 'Color', 'Luminosity'))) { - $bm = 'Normal'; - } - $ais = $ais ? true : false; - $this->alpha = array('CA' => $stroking, 'ca' => $nonstroking, 'BM' => '/'.$bm, 'AIS' => $ais); - $gs = $this->addExtGState($this->alpha); - $this->setExtGState($gs); - } - - /** - * Get the alpha mode array (CA, ca, BM, AIS). - * (Check the "Entries in a Graphics State Parameter Dictionary" on PDF 32000-1:2008). - * @return array. - * @public - * @since 5.9.152 (2012-03-23) - */ - public function getAlpha() { - return $this->alpha; - } - - /** - * Set the default JPEG compression quality (1-100) - * @param $quality (int) JPEG quality, integer between 1 and 100 - * @public - * @since 3.0.000 (2008-03-27) - */ - public function setJPEGQuality($quality) { - if (($quality < 1) OR ($quality > 100)) { - $quality = 75; - } - $this->jpeg_quality = intval($quality); - } - - /** - * Set the default number of columns in a row for HTML tables. - * @param $cols (int) number of columns - * @public - * @since 3.0.014 (2008-06-04) - */ - public function setDefaultTableColumns($cols=4) { - $this->default_table_columns = intval($cols); - } - - /** - * Set the height of the cell (line height) respect the font height. - * @param $h (int) cell proportion respect font height (typical value = 1.25). - * @public - * @since 3.0.014 (2008-06-04) - */ - public function setCellHeightRatio($h) { - $this->cell_height_ratio = $h; - } - - /** - * return the height of cell repect font height. - * @public - * @since 4.0.012 (2008-07-24) - */ - public function getCellHeightRatio() { - return $this->cell_height_ratio; - } - - /** - * Set the PDF version (check PDF reference for valid values). - * @param $version (string) PDF document version. - * @public - * @since 3.1.000 (2008-06-09) - */ - public function setPDFVersion($version='1.7') { - if ($this->pdfa_mode && $this->pdfa_version == 1 ) { - // PDF/A mode - $this->PDFVersion = '1.4'; - } else { - $this->PDFVersion = $version; - } - } - - /** - * Set the viewer preferences dictionary controlling the way the document is to be presented on the screen or in print. - * (see Section 8.1 of PDF reference, "Viewer Preferences"). - *
      • HideToolbar boolean (Optional) A flag specifying whether to hide the viewer application's tool bars when the document is active. Default value: false.
      • HideMenubar boolean (Optional) A flag specifying whether to hide the viewer application's menu bar when the document is active. Default value: false.
      • HideWindowUI boolean (Optional) A flag specifying whether to hide user interface elements in the document's window (such as scroll bars and navigation controls), leaving only the document's contents displayed. Default value: false.
      • FitWindow boolean (Optional) A flag specifying whether to resize the document's window to fit the size of the first displayed page. Default value: false.
      • CenterWindow boolean (Optional) A flag specifying whether to position the document's window in the center of the screen. Default value: false.
      • DisplayDocTitle boolean (Optional; PDF 1.4) A flag specifying whether the window's title bar should display the document title taken from the Title entry of the document information dictionary (see Section 10.2.1, "Document Information Dictionary"). If false, the title bar should instead display the name of the PDF file containing the document. Default value: false.
      • NonFullScreenPageMode name (Optional) The document's page mode, specifying how to display the document on exiting full-screen mode:
        • UseNone Neither document outline nor thumbnail images visible
        • UseOutlines Document outline visible
        • UseThumbs Thumbnail images visible
        • UseOC Optional content group panel visible
        This entry is meaningful only if the value of the PageMode entry in the catalog dictionary (see Section 3.6.1, "Document Catalog") is FullScreen; it is ignored otherwise. Default value: UseNone.
      • ViewArea name (Optional; PDF 1.4) The name of the page boundary representing the area of a page to be displayed when viewing the document on the screen. Valid values are (see Section 10.10.1, "Page Boundaries").:
        • MediaBox
        • CropBox (default)
        • BleedBox
        • TrimBox
        • ArtBox
      • ViewClip name (Optional; PDF 1.4) The name of the page boundary to which the contents of a page are to be clipped when viewing the document on the screen. Valid values are (see Section 10.10.1, "Page Boundaries").:
        • MediaBox
        • CropBox (default)
        • BleedBox
        • TrimBox
        • ArtBox
      • PrintArea name (Optional; PDF 1.4) The name of the page boundary representing the area of a page to be rendered when printing the document. Valid values are (see Section 10.10.1, "Page Boundaries").:
        • MediaBox
        • CropBox (default)
        • BleedBox
        • TrimBox
        • ArtBox
      • PrintClip name (Optional; PDF 1.4) The name of the page boundary to which the contents of a page are to be clipped when printing the document. Valid values are (see Section 10.10.1, "Page Boundaries").:
        • MediaBox
        • CropBox (default)
        • BleedBox
        • TrimBox
        • ArtBox
      • PrintScaling name (Optional; PDF 1.6) The page scaling option to be selected when a print dialog is displayed for this document. Valid values are:
        • None, which indicates that the print dialog should reflect no page scaling
        • AppDefault (default), which indicates that applications should use the current print scaling
      • Duplex name (Optional; PDF 1.7) The paper handling option to use when printing the file from the print dialog. The following values are valid:
        • Simplex - Print single-sided
        • DuplexFlipShortEdge - Duplex and flip on the short edge of the sheet
        • DuplexFlipLongEdge - Duplex and flip on the long edge of the sheet
        Default value: none
      • PickTrayByPDFSize boolean (Optional; PDF 1.7) A flag specifying whether the PDF page size is used to select the input paper tray. This setting influences only the preset values used to populate the print dialog presented by a PDF viewer application. If PickTrayByPDFSize is true, the check box in the print dialog associated with input paper tray is checked. Note: This setting has no effect on Mac OS systems, which do not provide the ability to pick the input tray by size.
      • PrintPageRange array (Optional; PDF 1.7) The page numbers used to initialize the print dialog box when the file is printed. The first page of the PDF file is denoted by 1. Each pair consists of the first and last pages in the sub-range. An odd number of integers causes this entry to be ignored. Negative numbers cause the entire array to be ignored. Default value: as defined by PDF viewer application
      • NumCopies integer (Optional; PDF 1.7) The number of copies to be printed when the print dialog is opened for this file. Supported values are the integers 2 through 5. Values outside this range are ignored. Default value: as defined by PDF viewer application, but typically 1
      - * @param $preferences (array) array of options. - * @author Nicola Asuni - * @public - * @since 3.1.000 (2008-06-09) - */ - public function setViewerPreferences($preferences) { - $this->viewer_preferences = $preferences; - } - - /** - * Paints color transition registration bars - * @param $x (float) abscissa of the top left corner of the rectangle. - * @param $y (float) ordinate of the top left corner of the rectangle. - * @param $w (float) width of the rectangle. - * @param $h (float) height of the rectangle. - * @param $transition (boolean) if true prints tcolor transitions to white. - * @param $vertical (boolean) if true prints bar vertically. - * @param $colors (string) colors to print separated by comma. Valid values are: A,W,R,G,B,C,M,Y,K,RGB,CMYK,ALL,ALLSPOT,. Where: A = grayscale black, W = grayscale white, R = RGB red, G RGB green, B RGB blue, C = CMYK cyan, M = CMYK magenta, Y = CMYK yellow, K = CMYK key/black, RGB = RGB registration color, CMYK = CMYK registration color, ALL = Spot registration color, ALLSPOT = print all defined spot colors, = name of the spot color to print. - * @author Nicola Asuni - * @since 4.9.000 (2010-03-26) - * @public - */ - public function colorRegistrationBar($x, $y, $w, $h, $transition=true, $vertical=false, $colors='A,R,G,B,C,M,Y,K') { - if (strpos($colors, 'ALLSPOT') !== false) { - // expand spot colors - $spot_colors = ''; - foreach ($this->spot_colors as $spot_color_name => $v) { - $spot_colors .= ','.$spot_color_name; - } - if (!empty($spot_colors)) { - $spot_colors = substr($spot_colors, 1); - $colors = str_replace('ALLSPOT', $spot_colors, $colors); - } else { - $colors = str_replace('ALLSPOT', 'NONE', $colors); - } - } - $bars = explode(',', $colors); - $numbars = count($bars); // number of bars to print - if ($numbars <= 0) { - return; - } - // set bar measures - if ($vertical) { - $coords = array(0, 0, 0, 1); - $wb = $w / $numbars; // bar width - $hb = $h; // bar height - $xd = $wb; // delta x - $yd = 0; // delta y - } else { - $coords = array(1, 0, 0, 0); - $wb = $w; // bar width - $hb = $h / $numbars; // bar height - $xd = 0; // delta x - $yd = $hb; // delta y - } - $xb = $x; - $yb = $y; - foreach ($bars as $col) { - switch ($col) { - // set transition colors - case 'A': { // BLACK (GRAYSCALE) - $col_a = array(255); - $col_b = array(0); - break; - } - case 'W': { // WHITE (GRAYSCALE) - $col_a = array(0); - $col_b = array(255); - break; - } - case 'R': { // RED (RGB) - $col_a = array(255,255,255); - $col_b = array(255,0,0); - break; - } - case 'G': { // GREEN (RGB) - $col_a = array(255,255,255); - $col_b = array(0,255,0); - break; - } - case 'B': { // BLUE (RGB) - $col_a = array(255,255,255); - $col_b = array(0,0,255); - break; - } - case 'C': { // CYAN (CMYK) - $col_a = array(0,0,0,0); - $col_b = array(100,0,0,0); - break; - } - case 'M': { // MAGENTA (CMYK) - $col_a = array(0,0,0,0); - $col_b = array(0,100,0,0); - break; - } - case 'Y': { // YELLOW (CMYK) - $col_a = array(0,0,0,0); - $col_b = array(0,0,100,0); - break; - } - case 'K': { // KEY - BLACK (CMYK) - $col_a = array(0,0,0,0); - $col_b = array(0,0,0,100); - break; - } - case 'RGB': { // BLACK REGISTRATION (RGB) - $col_a = array(255,255,255); - $col_b = array(0,0,0); - break; - } - case 'CMYK': { // BLACK REGISTRATION (CMYK) - $col_a = array(0,0,0,0); - $col_b = array(100,100,100,100); - break; - } - case 'ALL': { // SPOT COLOR REGISTRATION - $col_a = array(0,0,0,0,'None'); - $col_b = array(100,100,100,100,'All'); - break; - } - case 'NONE': { // SKIP THIS COLOR - $col_a = array(0,0,0,0,'None'); - $col_b = array(0,0,0,0,'None'); - break; - } - default: { // SPECIFIC SPOT COLOR NAME - $col_a = array(0,0,0,0,'None'); - $col_b = TCPDF_COLORS::getSpotColor($col, $this->spot_colors); - if ($col_b === false) { - // in case of error defaults to the registration color - $col_b = array(100,100,100,100,'All'); - } - break; - } - } - if ($col != 'NONE') { - if ($transition) { - // color gradient - $this->LinearGradient($xb, $yb, $wb, $hb, $col_a, $col_b, $coords); - } else { - $this->SetFillColorArray($col_b); - // colored rectangle - $this->Rect($xb, $yb, $wb, $hb, 'F', array()); - } - $xb += $xd; - $yb += $yd; - } - } - } - - /** - * Paints crop marks. - * @param $x (float) abscissa of the crop mark center. - * @param $y (float) ordinate of the crop mark center. - * @param $w (float) width of the crop mark. - * @param $h (float) height of the crop mark. - * @param $type (string) type of crop mark, one symbol per type separated by comma: T = TOP, F = BOTTOM, L = LEFT, R = RIGHT, TL = A = TOP-LEFT, TR = B = TOP-RIGHT, BL = C = BOTTOM-LEFT, BR = D = BOTTOM-RIGHT. - * @param $color (array) crop mark color (default spot registration color). - * @author Nicola Asuni - * @since 4.9.000 (2010-03-26) - * @public - */ - public function cropMark($x, $y, $w, $h, $type='T,R,B,L', $color=array(100,100,100,100,'All')) { - $this->SetLineStyle(array('width' => (0.5 / $this->k), 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => $color)); - $type = strtoupper($type); - $type = preg_replace('/[^A-Z\-\,]*/', '', $type); - // split type in single components - $type = str_replace('-', ',', $type); - $type = str_replace('TL', 'T,L', $type); - $type = str_replace('TR', 'T,R', $type); - $type = str_replace('BL', 'F,L', $type); - $type = str_replace('BR', 'F,R', $type); - $type = str_replace('A', 'T,L', $type); - $type = str_replace('B', 'T,R', $type); - $type = str_replace('T,RO', 'BO', $type); - $type = str_replace('C', 'F,L', $type); - $type = str_replace('D', 'F,R', $type); - $crops = explode(',', strtoupper($type)); - // remove duplicates - $crops = array_unique($crops); - $dw = ($w / 4); // horizontal space to leave before the intersection point - $dh = ($h / 4); // vertical space to leave before the intersection point - foreach ($crops as $crop) { - switch ($crop) { - case 'T': - case 'TOP': { - $x1 = $x; - $y1 = ($y - $h); - $x2 = $x; - $y2 = ($y - $dh); - break; - } - case 'F': - case 'BOTTOM': { - $x1 = $x; - $y1 = ($y + $dh); - $x2 = $x; - $y2 = ($y + $h); - break; - } - case 'L': - case 'LEFT': { - $x1 = ($x - $w); - $y1 = $y; - $x2 = ($x - $dw); - $y2 = $y; - break; - } - case 'R': - case 'RIGHT': { - $x1 = ($x + $dw); - $y1 = $y; - $x2 = ($x + $w); - $y2 = $y; - break; - } - } - $this->Line($x1, $y1, $x2, $y2); - } - } - - /** - * Paints a registration mark - * @param $x (float) abscissa of the registration mark center. - * @param $y (float) ordinate of the registration mark center. - * @param $r (float) radius of the crop mark. - * @param $double (boolean) if true print two concentric crop marks. - * @param $cola (array) crop mark color (default spot registration color 'All'). - * @param $colb (array) second crop mark color (default spot registration color 'None'). - * @author Nicola Asuni - * @since 4.9.000 (2010-03-26) - * @public - */ - public function registrationMark($x, $y, $r, $double=false, $cola=array(100,100,100,100,'All'), $colb=array(0,0,0,0,'None')) { - $line_style = array('width' => max((0.5 / $this->k),($r / 30)), 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => $cola); - $this->SetFillColorArray($cola); - $this->PieSector($x, $y, $r, 90, 180, 'F'); - $this->PieSector($x, $y, $r, 270, 360, 'F'); - $this->Circle($x, $y, $r, 0, 360, 'C', $line_style, array(), 8); - if ($double) { - $ri = $r * 0.5; - $this->SetFillColorArray($colb); - $this->PieSector($x, $y, $ri, 90, 180, 'F'); - $this->PieSector($x, $y, $ri, 270, 360, 'F'); - $this->SetFillColorArray($cola); - $this->PieSector($x, $y, $ri, 0, 90, 'F'); - $this->PieSector($x, $y, $ri, 180, 270, 'F'); - $this->Circle($x, $y, $ri, 0, 360, 'C', $line_style, array(), 8); - } - } - - /** - * Paints a CMYK registration mark - * @param $x (float) abscissa of the registration mark center. - * @param $y (float) ordinate of the registration mark center. - * @param $r (float) radius of the crop mark. - * @author Nicola Asuni - * @since 6.0.038 (2013-09-30) - * @public - */ - public function registrationMarkCMYK($x, $y, $r) { - // line width - $lw = max((0.5 / $this->k),($r / 8)); - // internal radius - $ri = ($r * 0.6); - // external radius - $re = ($r * 1.3); - // Cyan - $this->SetFillColorArray(array(100,0,0,0)); - $this->PieSector($x, $y, $ri, 270, 360, 'F'); - // Magenta - $this->SetFillColorArray(array(0,100,0,0)); - $this->PieSector($x, $y, $ri, 0, 90, 'F'); - // Yellow - $this->SetFillColorArray(array(0,0,100,0)); - $this->PieSector($x, $y, $ri, 90, 180, 'F'); - // Key - black - $this->SetFillColorArray(array(0,0,0,100)); - $this->PieSector($x, $y, $ri, 180, 270, 'F'); - // registration color - $line_style = array('width' => $lw, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(100,100,100,100,'All')); - $this->SetFillColorArray(array(100,100,100,100,'All')); - // external circle - $this->Circle($x, $y, $r, 0, 360, 'C', $line_style, array(), 8); - // cross lines - $this->Line($x, ($y - $re), $x, ($y - $ri)); - $this->Line($x, ($y + $ri), $x, ($y + $re)); - $this->Line(($x - $re), $y, ($x - $ri), $y); - $this->Line(($x + $ri), $y, ($x + $re), $y); - } - - /** - * Paints a linear colour gradient. - * @param $x (float) abscissa of the top left corner of the rectangle. - * @param $y (float) ordinate of the top left corner of the rectangle. - * @param $w (float) width of the rectangle. - * @param $h (float) height of the rectangle. - * @param $col1 (array) first color (Grayscale, RGB or CMYK components). - * @param $col2 (array) second color (Grayscale, RGB or CMYK components). - * @param $coords (array) array of the form (x1, y1, x2, y2) which defines the gradient vector (see linear_gradient_coords.jpg). The default value is from left to right (x1=0, y1=0, x2=1, y2=0). - * @author Andreas W\FCrmser, Nicola Asuni - * @since 3.1.000 (2008-06-09) - * @public - */ - public function LinearGradient($x, $y, $w, $h, $col1=array(), $col2=array(), $coords=array(0,0,1,0)) { - $this->Clip($x, $y, $w, $h); - $this->Gradient(2, $coords, array(array('color' => $col1, 'offset' => 0, 'exponent' => 1), array('color' => $col2, 'offset' => 1, 'exponent' => 1)), array(), false); - } - - /** - * Paints a radial colour gradient. - * @param $x (float) abscissa of the top left corner of the rectangle. - * @param $y (float) ordinate of the top left corner of the rectangle. - * @param $w (float) width of the rectangle. - * @param $h (float) height of the rectangle. - * @param $col1 (array) first color (Grayscale, RGB or CMYK components). - * @param $col2 (array) second color (Grayscale, RGB or CMYK components). - * @param $coords (array) array of the form (fx, fy, cx, cy, r) where (fx, fy) is the starting point of the gradient with color1, (cx, cy) is the center of the circle with color2, and r is the radius of the circle (see radial_gradient_coords.jpg). (fx, fy) should be inside the circle, otherwise some areas will not be defined. - * @author Andreas W\FCrmser, Nicola Asuni - * @since 3.1.000 (2008-06-09) - * @public - */ - public function RadialGradient($x, $y, $w, $h, $col1=array(), $col2=array(), $coords=array(0.5,0.5,0.5,0.5,1)) { - $this->Clip($x, $y, $w, $h); - $this->Gradient(3, $coords, array(array('color' => $col1, 'offset' => 0, 'exponent' => 1), array('color' => $col2, 'offset' => 1, 'exponent' => 1)), array(), false); - } - - /** - * Paints a coons patch mesh. - * @param $x (float) abscissa of the top left corner of the rectangle. - * @param $y (float) ordinate of the top left corner of the rectangle. - * @param $w (float) width of the rectangle. - * @param $h (float) height of the rectangle. - * @param $col1 (array) first color (lower left corner) (RGB components). - * @param $col2 (array) second color (lower right corner) (RGB components). - * @param $col3 (array) third color (upper right corner) (RGB components). - * @param $col4 (array) fourth color (upper left corner) (RGB components). - * @param $coords (array)
      • for one patch mesh: array(float x1, float y1, .... float x12, float y12): 12 pairs of coordinates (normally from 0 to 1) which specify the Bezier control points that define the patch. First pair is the lower left edge point, next is its right control point (control point 2). Then the other points are defined in the order: control point 1, edge point, control point 2 going counter-clockwise around the patch. Last (x12, y12) is the first edge point's left control point (control point 1).
      • for two or more patch meshes: array[number of patches]: arrays with the following keys for each patch: f: where to put that patch (0 = first patch, 1, 2, 3 = right, top and left of precedent patch - I didn't figure this out completely - just try and error ;-) points: 12 pairs of coordinates of the Bezier control points as above for the first patch, 8 pairs of coordinates for the following patches, ignoring the coordinates already defined by the precedent patch (I also didn't figure out the order of these - also: try and see what's happening) colors: must be 4 colors for the first patch, 2 colors for the following patches
      - * @param $coords_min (array) minimum value used by the coordinates. If a coordinate's value is smaller than this it will be cut to coords_min. default: 0 - * @param $coords_max (array) maximum value used by the coordinates. If a coordinate's value is greater than this it will be cut to coords_max. default: 1 - * @param $antialias (boolean) A flag indicating whether to filter the shading function to prevent aliasing artifacts. - * @author Andreas W\FCrmser, Nicola Asuni - * @since 3.1.000 (2008-06-09) - * @public - */ - public function CoonsPatchMesh($x, $y, $w, $h, $col1=array(), $col2=array(), $col3=array(), $col4=array(), $coords=array(0.00,0.0,0.33,0.00,0.67,0.00,1.00,0.00,1.00,0.33,1.00,0.67,1.00,1.00,0.67,1.00,0.33,1.00,0.00,1.00,0.00,0.67,0.00,0.33), $coords_min=0, $coords_max=1, $antialias=false) { - if ($this->pdfa_mode OR ($this->state != 2)) { - return; - } - $this->Clip($x, $y, $w, $h); - $n = count($this->gradients) + 1; - $this->gradients[$n] = array(); - $this->gradients[$n]['type'] = 6; //coons patch mesh - $this->gradients[$n]['coords'] = array(); - $this->gradients[$n]['antialias'] = $antialias; - $this->gradients[$n]['colors'] = array(); - $this->gradients[$n]['transparency'] = false; - //check the coords array if it is the simple array or the multi patch array - if (!isset($coords[0]['f'])) { - //simple array -> convert to multi patch array - if (!isset($col1[1])) { - $col1[1] = $col1[2] = $col1[0]; - } - if (!isset($col2[1])) { - $col2[1] = $col2[2] = $col2[0]; - } - if (!isset($col3[1])) { - $col3[1] = $col3[2] = $col3[0]; - } - if (!isset($col4[1])) { - $col4[1] = $col4[2] = $col4[0]; - } - $patch_array[0]['f'] = 0; - $patch_array[0]['points'] = $coords; - $patch_array[0]['colors'][0]['r'] = $col1[0]; - $patch_array[0]['colors'][0]['g'] = $col1[1]; - $patch_array[0]['colors'][0]['b'] = $col1[2]; - $patch_array[0]['colors'][1]['r'] = $col2[0]; - $patch_array[0]['colors'][1]['g'] = $col2[1]; - $patch_array[0]['colors'][1]['b'] = $col2[2]; - $patch_array[0]['colors'][2]['r'] = $col3[0]; - $patch_array[0]['colors'][2]['g'] = $col3[1]; - $patch_array[0]['colors'][2]['b'] = $col3[2]; - $patch_array[0]['colors'][3]['r'] = $col4[0]; - $patch_array[0]['colors'][3]['g'] = $col4[1]; - $patch_array[0]['colors'][3]['b'] = $col4[2]; - } else { - //multi patch array - $patch_array = $coords; - } - $bpcd = 65535; //16 bits per coordinate - //build the data stream - $this->gradients[$n]['stream'] = ''; - $count_patch = count($patch_array); - for ($i=0; $i < $count_patch; ++$i) { - $this->gradients[$n]['stream'] .= chr($patch_array[$i]['f']); //start with the edge flag as 8 bit - $count_points = count($patch_array[$i]['points']); - for ($j=0; $j < $count_points; ++$j) { - //each point as 16 bit - $patch_array[$i]['points'][$j] = (($patch_array[$i]['points'][$j] - $coords_min) / ($coords_max - $coords_min)) * $bpcd; - if ($patch_array[$i]['points'][$j] < 0) { - $patch_array[$i]['points'][$j] = 0; - } - if ($patch_array[$i]['points'][$j] > $bpcd) { - $patch_array[$i]['points'][$j] = $bpcd; - } - $this->gradients[$n]['stream'] .= chr(floor($patch_array[$i]['points'][$j] / 256)); - $this->gradients[$n]['stream'] .= chr(floor($patch_array[$i]['points'][$j] % 256)); - } - $count_cols = count($patch_array[$i]['colors']); - for ($j=0; $j < $count_cols; ++$j) { - //each color component as 8 bit - $this->gradients[$n]['stream'] .= chr($patch_array[$i]['colors'][$j]['r']); - $this->gradients[$n]['stream'] .= chr($patch_array[$i]['colors'][$j]['g']); - $this->gradients[$n]['stream'] .= chr($patch_array[$i]['colors'][$j]['b']); - } - } - //paint the gradient - $this->_out('/Sh'.$n.' sh'); - //restore previous Graphic State - $this->_outRestoreGraphicsState(); - if ($this->inxobj) { - // we are inside an XObject template - $this->xobjects[$this->xobjid]['gradients'][$n] = $this->gradients[$n]; - } - } - - /** - * Set a rectangular clipping area. - * @param $x (float) abscissa of the top left corner of the rectangle (or top right corner for RTL mode). - * @param $y (float) ordinate of the top left corner of the rectangle. - * @param $w (float) width of the rectangle. - * @param $h (float) height of the rectangle. - * @author Andreas W\FCrmser, Nicola Asuni - * @since 3.1.000 (2008-06-09) - * @protected - */ - protected function Clip($x, $y, $w, $h) { - if ($this->state != 2) { - return; - } - if ($this->rtl) { - $x = $this->w - $x - $w; - } - //save current Graphic State - $s = 'q'; - //set clipping area - $s .= sprintf(' %F %F %F %F re W n', $x*$this->k, ($this->h-$y)*$this->k, $w*$this->k, -$h*$this->k); - //set up transformation matrix for gradient - $s .= sprintf(' %F 0 0 %F %F %F cm', $w*$this->k, $h*$this->k, $x*$this->k, ($this->h-($y+$h))*$this->k); - $this->_out($s); - } - - /** - * Output gradient. - * @param $type (int) type of gradient (1 Function-based shading; 2 Axial shading; 3 Radial shading; 4 Free-form Gouraud-shaded triangle mesh; 5 Lattice-form Gouraud-shaded triangle mesh; 6 Coons patch mesh; 7 Tensor-product patch mesh). (Not all types are currently supported) - * @param $coords (array) array of coordinates. - * @param $stops (array) array gradient color components: color = array of GRAY, RGB or CMYK color components; offset = (0 to 1) represents a location along the gradient vector; exponent = exponent of the exponential interpolation function (default = 1). - * @param $background (array) An array of colour components appropriate to the colour space, specifying a single background colour value. - * @param $antialias (boolean) A flag indicating whether to filter the shading function to prevent aliasing artifacts. - * @author Nicola Asuni - * @since 3.1.000 (2008-06-09) - * @public - */ - public function Gradient($type, $coords, $stops, $background=array(), $antialias=false) { - if ($this->pdfa_mode OR ($this->state != 2)) { - return; - } - $n = count($this->gradients) + 1; - $this->gradients[$n] = array(); - $this->gradients[$n]['type'] = $type; - $this->gradients[$n]['coords'] = $coords; - $this->gradients[$n]['antialias'] = $antialias; - $this->gradients[$n]['colors'] = array(); - $this->gradients[$n]['transparency'] = false; - // color space - $numcolspace = count($stops[0]['color']); - $bcolor = array_values($background); - switch($numcolspace) { - case 5: // SPOT - case 4: { // CMYK - $this->gradients[$n]['colspace'] = 'DeviceCMYK'; - if (!empty($background)) { - $this->gradients[$n]['background'] = sprintf('%F %F %F %F', $bcolor[0]/100, $bcolor[1]/100, $bcolor[2]/100, $bcolor[3]/100); - } - break; - } - case 3: { // RGB - $this->gradients[$n]['colspace'] = 'DeviceRGB'; - if (!empty($background)) { - $this->gradients[$n]['background'] = sprintf('%F %F %F', $bcolor[0]/255, $bcolor[1]/255, $bcolor[2]/255); - } - break; - } - case 1: { // GRAY SCALE - $this->gradients[$n]['colspace'] = 'DeviceGray'; - if (!empty($background)) { - $this->gradients[$n]['background'] = sprintf('%F', $bcolor[0]/255); - } - break; - } - } - $num_stops = count($stops); - $last_stop_id = $num_stops - 1; - foreach ($stops as $key => $stop) { - $this->gradients[$n]['colors'][$key] = array(); - // offset represents a location along the gradient vector - if (isset($stop['offset'])) { - $this->gradients[$n]['colors'][$key]['offset'] = $stop['offset']; - } else { - if ($key == 0) { - $this->gradients[$n]['colors'][$key]['offset'] = 0; - } elseif ($key == $last_stop_id) { - $this->gradients[$n]['colors'][$key]['offset'] = 1; - } else { - $offsetstep = (1 - $this->gradients[$n]['colors'][($key - 1)]['offset']) / ($num_stops - $key); - $this->gradients[$n]['colors'][$key]['offset'] = $this->gradients[$n]['colors'][($key - 1)]['offset'] + $offsetstep; - } - } - if (isset($stop['opacity'])) { - $this->gradients[$n]['colors'][$key]['opacity'] = $stop['opacity']; - if ((!$this->pdfa_mode) AND ($stop['opacity'] < 1)) { - $this->gradients[$n]['transparency'] = true; - } - } else { - $this->gradients[$n]['colors'][$key]['opacity'] = 1; - } - // exponent for the exponential interpolation function - if (isset($stop['exponent'])) { - $this->gradients[$n]['colors'][$key]['exponent'] = $stop['exponent']; - } else { - $this->gradients[$n]['colors'][$key]['exponent'] = 1; - } - // set colors - $color = array_values($stop['color']); - switch($numcolspace) { - case 5: // SPOT - case 4: { // CMYK - $this->gradients[$n]['colors'][$key]['color'] = sprintf('%F %F %F %F', $color[0]/100, $color[1]/100, $color[2]/100, $color[3]/100); - break; - } - case 3: { // RGB - $this->gradients[$n]['colors'][$key]['color'] = sprintf('%F %F %F', $color[0]/255, $color[1]/255, $color[2]/255); - break; - } - case 1: { // GRAY SCALE - $this->gradients[$n]['colors'][$key]['color'] = sprintf('%F', $color[0]/255); - break; - } - } - } - if ($this->gradients[$n]['transparency']) { - // paint luminosity gradient - $this->_out('/TGS'.$n.' gs'); - } - //paint the gradient - $this->_out('/Sh'.$n.' sh'); - //restore previous Graphic State - $this->_outRestoreGraphicsState(); - if ($this->inxobj) { - // we are inside an XObject template - $this->xobjects[$this->xobjid]['gradients'][$n] = $this->gradients[$n]; - } - } - - /** - * Output gradient shaders. - * @author Nicola Asuni - * @since 3.1.000 (2008-06-09) - * @protected - */ - function _putshaders() { - if ($this->pdfa_mode) { - return; - } - $idt = count($this->gradients); //index for transparency gradients - foreach ($this->gradients as $id => $grad) { - if (($grad['type'] == 2) OR ($grad['type'] == 3)) { - $fc = $this->_newobj(); - $out = '<<'; - $out .= ' /FunctionType 3'; - $out .= ' /Domain [0 1]'; - $functions = ''; - $bounds = ''; - $encode = ''; - $i = 1; - $num_cols = count($grad['colors']); - $lastcols = $num_cols - 1; - for ($i = 1; $i < $num_cols; ++$i) { - $functions .= ($fc + $i).' 0 R '; - if ($i < $lastcols) { - $bounds .= sprintf('%F ', $grad['colors'][$i]['offset']); - } - $encode .= '0 1 '; - } - $out .= ' /Functions ['.trim($functions).']'; - $out .= ' /Bounds ['.trim($bounds).']'; - $out .= ' /Encode ['.trim($encode).']'; - $out .= ' >>'; - $out .= "\n".'endobj'; - $this->_out($out); - for ($i = 1; $i < $num_cols; ++$i) { - $this->_newobj(); - $out = '<<'; - $out .= ' /FunctionType 2'; - $out .= ' /Domain [0 1]'; - $out .= ' /C0 ['.$grad['colors'][($i - 1)]['color'].']'; - $out .= ' /C1 ['.$grad['colors'][$i]['color'].']'; - $out .= ' /N '.$grad['colors'][$i]['exponent']; - $out .= ' >>'; - $out .= "\n".'endobj'; - $this->_out($out); - } - // set transparency functions - if ($grad['transparency']) { - $ft = $this->_newobj(); - $out = '<<'; - $out .= ' /FunctionType 3'; - $out .= ' /Domain [0 1]'; - $functions = ''; - $i = 1; - $num_cols = count($grad['colors']); - for ($i = 1; $i < $num_cols; ++$i) { - $functions .= ($ft + $i).' 0 R '; - } - $out .= ' /Functions ['.trim($functions).']'; - $out .= ' /Bounds ['.trim($bounds).']'; - $out .= ' /Encode ['.trim($encode).']'; - $out .= ' >>'; - $out .= "\n".'endobj'; - $this->_out($out); - for ($i = 1; $i < $num_cols; ++$i) { - $this->_newobj(); - $out = '<<'; - $out .= ' /FunctionType 2'; - $out .= ' /Domain [0 1]'; - $out .= ' /C0 ['.$grad['colors'][($i - 1)]['opacity'].']'; - $out .= ' /C1 ['.$grad['colors'][$i]['opacity'].']'; - $out .= ' /N '.$grad['colors'][$i]['exponent']; - $out .= ' >>'; - $out .= "\n".'endobj'; - $this->_out($out); - } - } - } - // set shading object - $this->_newobj(); - $out = '<< /ShadingType '.$grad['type']; - if (isset($grad['colspace'])) { - $out .= ' /ColorSpace /'.$grad['colspace']; - } else { - $out .= ' /ColorSpace /DeviceRGB'; - } - if (isset($grad['background']) AND !empty($grad['background'])) { - $out .= ' /Background ['.$grad['background'].']'; - } - if (isset($grad['antialias']) AND ($grad['antialias'] === true)) { - $out .= ' /AntiAlias true'; - } - if ($grad['type'] == 2) { - $out .= ' '.sprintf('/Coords [%F %F %F %F]', $grad['coords'][0], $grad['coords'][1], $grad['coords'][2], $grad['coords'][3]); - $out .= ' /Domain [0 1]'; - $out .= ' /Function '.$fc.' 0 R'; - $out .= ' /Extend [true true]'; - $out .= ' >>'; - } elseif ($grad['type'] == 3) { - //x0, y0, r0, x1, y1, r1 - //at this this time radius of inner circle is 0 - $out .= ' '.sprintf('/Coords [%F %F 0 %F %F %F]', $grad['coords'][0], $grad['coords'][1], $grad['coords'][2], $grad['coords'][3], $grad['coords'][4]); - $out .= ' /Domain [0 1]'; - $out .= ' /Function '.$fc.' 0 R'; - $out .= ' /Extend [true true]'; - $out .= ' >>'; - } elseif ($grad['type'] == 6) { - $out .= ' /BitsPerCoordinate 16'; - $out .= ' /BitsPerComponent 8'; - $out .= ' /Decode[0 1 0 1 0 1 0 1 0 1]'; - $out .= ' /BitsPerFlag 8'; - $stream = $this->_getrawstream($grad['stream']); - $out .= ' /Length '.strlen($stream); - $out .= ' >>'; - $out .= ' stream'."\n".$stream."\n".'endstream'; - } - $out .= "\n".'endobj'; - $this->_out($out); - if ($grad['transparency']) { - $shading_transparency = preg_replace('/\/ColorSpace \/[^\s]+/si', '/ColorSpace /DeviceGray', $out); - $shading_transparency = preg_replace('/\/Function [0-9]+ /si', '/Function '.$ft.' ', $shading_transparency); - } - $this->gradients[$id]['id'] = $this->n; - // set pattern object - $this->_newobj(); - $out = '<< /Type /Pattern /PatternType 2'; - $out .= ' /Shading '.$this->gradients[$id]['id'].' 0 R'; - $out .= ' >>'; - $out .= "\n".'endobj'; - $this->_out($out); - $this->gradients[$id]['pattern'] = $this->n; - // set shading and pattern for transparency mask - if ($grad['transparency']) { - // luminosity pattern - $idgs = $id + $idt; - $this->_newobj(); - $this->_out($shading_transparency); - $this->gradients[$idgs]['id'] = $this->n; - $this->_newobj(); - $out = '<< /Type /Pattern /PatternType 2'; - $out .= ' /Shading '.$this->gradients[$idgs]['id'].' 0 R'; - $out .= ' >>'; - $out .= "\n".'endobj'; - $this->_out($out); - $this->gradients[$idgs]['pattern'] = $this->n; - // luminosity XObject - $oid = $this->_newobj(); - $this->xobjects['LX'.$oid] = array('n' => $oid); - $filter = ''; - $stream = 'q /a0 gs /Pattern cs /p'.$idgs.' scn 0 0 '.$this->wPt.' '.$this->hPt.' re f Q'; - if ($this->compress) { - $filter = ' /Filter /FlateDecode'; - $stream = gzcompress($stream); - } - $stream = $this->_getrawstream($stream); - $out = '<< /Type /XObject /Subtype /Form /FormType 1'.$filter; - $out .= ' /Length '.strlen($stream); - $rect = sprintf('%F %F', $this->wPt, $this->hPt); - $out .= ' /BBox [0 0 '.$rect.']'; - $out .= ' /Group << /Type /Group /S /Transparency /CS /DeviceGray >>'; - $out .= ' /Resources <<'; - $out .= ' /ExtGState << /a0 << /ca 1 /CA 1 >> >>'; - $out .= ' /Pattern << /p'.$idgs.' '.$this->gradients[$idgs]['pattern'].' 0 R >>'; - $out .= ' >>'; - $out .= ' >> '; - $out .= ' stream'."\n".$stream."\n".'endstream'; - $out .= "\n".'endobj'; - $this->_out($out); - // SMask - $this->_newobj(); - $out = '<< /Type /Mask /S /Luminosity /G '.($this->n - 1).' 0 R >>'."\n".'endobj'; - $this->_out($out); - // ExtGState - $this->_newobj(); - $out = '<< /Type /ExtGState /SMask '.($this->n - 1).' 0 R /AIS false >>'."\n".'endobj'; - $this->_out($out); - $this->extgstates[] = array('n' => $this->n, 'name' => 'TGS'.$id); - } - } - } - - /** - * Draw the sector of a circle. - * It can be used for instance to render pie charts. - * @param $xc (float) abscissa of the center. - * @param $yc (float) ordinate of the center. - * @param $r (float) radius. - * @param $a (float) start angle (in degrees). - * @param $b (float) end angle (in degrees). - * @param $style (string) Style of rendering. See the getPathPaintOperator() function for more information. - * @param $cw: (float) indicates whether to go clockwise (default: true). - * @param $o: (float) origin of angles (0 for 3 o'clock, 90 for noon, 180 for 9 o'clock, 270 for 6 o'clock). Default: 90. - * @author Maxime Delorme, Nicola Asuni - * @since 3.1.000 (2008-06-09) - * @public - */ - public function PieSector($xc, $yc, $r, $a, $b, $style='FD', $cw=true, $o=90) { - $this->PieSectorXY($xc, $yc, $r, $r, $a, $b, $style, $cw, $o); - } - - /** - * Draw the sector of an ellipse. - * It can be used for instance to render pie charts. - * @param $xc (float) abscissa of the center. - * @param $yc (float) ordinate of the center. - * @param $rx (float) the x-axis radius. - * @param $ry (float) the y-axis radius. - * @param $a (float) start angle (in degrees). - * @param $b (float) end angle (in degrees). - * @param $style (string) Style of rendering. See the getPathPaintOperator() function for more information. - * @param $cw: (float) indicates whether to go clockwise. - * @param $o: (float) origin of angles (0 for 3 o'clock, 90 for noon, 180 for 9 o'clock, 270 for 6 o'clock). - * @param $nc (integer) Number of curves used to draw a 90 degrees portion of arc. - * @author Maxime Delorme, Nicola Asuni - * @since 3.1.000 (2008-06-09) - * @public - */ - public function PieSectorXY($xc, $yc, $rx, $ry, $a, $b, $style='FD', $cw=false, $o=0, $nc=2) { - if ($this->state != 2) { - return; - } - if ($this->rtl) { - $xc = ($this->w - $xc); - } - $op = TCPDF_STATIC::getPathPaintOperator($style); - if ($op == 'f') { - $line_style = array(); - } - if ($cw) { - $d = $b; - $b = (360 - $a + $o); - $a = (360 - $d + $o); - } else { - $b += $o; - $a += $o; - } - $this->_outellipticalarc($xc, $yc, $rx, $ry, 0, $a, $b, true, $nc); - $this->_out($op); - } - - /** - * Embed vector-based Adobe Illustrator (AI) or AI-compatible EPS files. - * NOTE: EPS is not yet fully implemented, use the setRasterizeVectorImages() method to enable/disable rasterization of vector images using ImageMagick library. - * Only vector drawing is supported, not text or bitmap. - * Although the script was successfully tested with various AI format versions, best results are probably achieved with files that were exported in the AI3 format (tested with Illustrator CS2, Freehand MX and Photoshop CS2). - * @param $file (string) Name of the file containing the image or a '@' character followed by the EPS/AI data string. - * @param $x (float) Abscissa of the upper-left corner. - * @param $y (float) Ordinate of the upper-left corner. - * @param $w (float) Width of the image in the page. If not specified or equal to zero, it is automatically calculated. - * @param $h (float) Height of the image in the page. If not specified or equal to zero, it is automatically calculated. - * @param $link (mixed) URL or identifier returned by AddLink(). - * @param $useBoundingBox (boolean) specifies whether to position the bounding box (true) or the complete canvas (false) at location (x,y). Default value is true. - * @param $align (string) Indicates the alignment of the pointer next to image insertion relative to image height. The value can be:
      • T: top-right for LTR or top-left for RTL
      • M: middle-right for LTR or middle-left for RTL
      • B: bottom-right for LTR or bottom-left for RTL
      • N: next line
      - * @param $palign (string) Allows to center or align the image on the current line. Possible values are:
      • L : left align
      • C : center
      • R : right align
      • '' : empty string : left for LTR or right for RTL
      - * @param $border (mixed) Indicates if borders must be drawn around the cell. The value can be a number:
      • 0: no border (default)
      • 1: frame
      or a string containing some or all of the following characters (in any order):
      • L: left
      • T: top
      • R: right
      • B: bottom
      or an array of line styles for each border group - for example: array('LTRB' => array('width' => 2, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0))) - * @param $fitonpage (boolean) if true the image is resized to not exceed page dimensions. - * @param $fixoutvals (boolean) if true remove values outside the bounding box. - * @author Valentin Schmidt, Nicola Asuni - * @since 3.1.000 (2008-06-09) - * @public - */ - public function ImageEps($file, $x='', $y='', $w=0, $h=0, $link='', $useBoundingBox=true, $align='', $palign='', $border=0, $fitonpage=false, $fixoutvals=false) { - if ($this->state != 2) { - return; - } - if ($this->rasterize_vector_images AND ($w > 0) AND ($h > 0)) { - // convert EPS to raster image using GD or ImageMagick libraries - return $this->Image($file, $x, $y, $w, $h, 'EPS', $link, $align, true, 300, $palign, false, false, $border, false, false, $fitonpage); - } - if ($x === '') { - $x = $this->x; - } - if ($y === '') { - $y = $this->y; - } - // check page for no-write regions and adapt page margins if necessary - list($x, $y) = $this->checkPageRegions($h, $x, $y); - $k = $this->k; - if ($file[0] === '@') { // image from string - $data = substr($file, 1); - } else { // EPS/AI file - $data = TCPDF_STATIC::fileGetContents($file); - } - if ($data === FALSE) { - $this->Error('EPS file not found: '.$file); - } - $regs = array(); - // EPS/AI compatibility check (only checks files created by Adobe Illustrator!) - preg_match("/%%Creator:([^\r\n]+)/", $data, $regs); # find Creator - if (count($regs) > 1) { - $version_str = trim($regs[1]); # e.g. "Adobe Illustrator(R) 8.0" - if (strpos($version_str, 'Adobe Illustrator') !== false) { - $versexp = explode(' ', $version_str); - $version = (float)array_pop($versexp); - if ($version >= 9) { - $this->Error('This version of Adobe Illustrator file is not supported: '.$file); - } - } - } - // strip binary bytes in front of PS-header - $start = strpos($data, '%!PS-Adobe'); - if ($start > 0) { - $data = substr($data, $start); - } - // find BoundingBox params - preg_match("/%%BoundingBox:([^\r\n]+)/", $data, $regs); - if (count($regs) > 1) { - list($x1, $y1, $x2, $y2) = explode(' ', trim($regs[1])); - } else { - $this->Error('No BoundingBox found in EPS/AI file: '.$file); - } - $start = strpos($data, '%%EndSetup'); - if ($start === false) { - $start = strpos($data, '%%EndProlog'); - } - if ($start === false) { - $start = strpos($data, '%%BoundingBox'); - } - $data = substr($data, $start); - $end = strpos($data, '%%PageTrailer'); - if ($end===false) { - $end = strpos($data, 'showpage'); - } - if ($end) { - $data = substr($data, 0, $end); - } - // calculate image width and height on document - if (($w <= 0) AND ($h <= 0)) { - $w = ($x2 - $x1) / $k; - $h = ($y2 - $y1) / $k; - } elseif ($w <= 0) { - $w = ($x2-$x1) / $k * ($h / (($y2 - $y1) / $k)); - } elseif ($h <= 0) { - $h = ($y2 - $y1) / $k * ($w / (($x2 - $x1) / $k)); - } - // fit the image on available space - list($w, $h, $x, $y) = $this->fitBlock($w, $h, $x, $y, $fitonpage); - if ($this->rasterize_vector_images) { - // convert EPS to raster image using GD or ImageMagick libraries - return $this->Image($file, $x, $y, $w, $h, 'EPS', $link, $align, true, 300, $palign, false, false, $border, false, false, $fitonpage); - } - // set scaling factors - $scale_x = $w / (($x2 - $x1) / $k); - $scale_y = $h / (($y2 - $y1) / $k); - // set alignment - $this->img_rb_y = $y + $h; - // set alignment - if ($this->rtl) { - if ($palign == 'L') { - $ximg = $this->lMargin; - } elseif ($palign == 'C') { - $ximg = ($this->w + $this->lMargin - $this->rMargin - $w) / 2; - } elseif ($palign == 'R') { - $ximg = $this->w - $this->rMargin - $w; - } else { - $ximg = $x - $w; - } - $this->img_rb_x = $ximg; - } else { - if ($palign == 'L') { - $ximg = $this->lMargin; - } elseif ($palign == 'C') { - $ximg = ($this->w + $this->lMargin - $this->rMargin - $w) / 2; - } elseif ($palign == 'R') { - $ximg = $this->w - $this->rMargin - $w; - } else { - $ximg = $x; - } - $this->img_rb_x = $ximg + $w; - } - if ($useBoundingBox) { - $dx = $ximg * $k - $x1; - $dy = $y * $k - $y1; - } else { - $dx = $ximg * $k; - $dy = $y * $k; - } - // save the current graphic state - $this->_out('q'.$this->epsmarker); - // translate - $this->_out(sprintf('%F %F %F %F %F %F cm', 1, 0, 0, 1, $dx, $dy + ($this->hPt - (2 * $y * $k) - ($y2 - $y1)))); - // scale - if (isset($scale_x)) { - $this->_out(sprintf('%F %F %F %F %F %F cm', $scale_x, 0, 0, $scale_y, $x1 * (1 - $scale_x), $y2 * (1 - $scale_y))); - } - // handle pc/unix/mac line endings - $lines = preg_split('/[\r\n]+/si', $data, -1, PREG_SPLIT_NO_EMPTY); - $u=0; - $cnt = count($lines); - for ($i=0; $i < $cnt; ++$i) { - $line = $lines[$i]; - if (($line == '') OR ($line[0] == '%')) { - continue; - } - $len = strlen($line); - // check for spot color names - $color_name = ''; - if (strcasecmp('x', substr(trim($line), -1)) == 0) { - if (preg_match('/\([^\)]*\)/', $line, $matches) > 0) { - // extract spot color name - $color_name = $matches[0]; - // remove color name from string - $line = str_replace(' '.$color_name, '', $line); - // remove pharentesis from color name - $color_name = substr($color_name, 1, -1); - } - } - $chunks = explode(' ', $line); - $cmd = trim(array_pop($chunks)); - // RGB - if (($cmd == 'Xa') OR ($cmd == 'XA')) { - $b = array_pop($chunks); - $g = array_pop($chunks); - $r = array_pop($chunks); - $this->_out(''.$r.' '.$g.' '.$b.' '.($cmd=='Xa'?'rg':'RG')); //substr($line, 0, -2).'rg' -> in EPS (AI8): c m y k r g b rg! - continue; - } - $skip = false; - if ($fixoutvals) { - // check for values outside the bounding box - switch ($cmd) { - case 'm': - case 'l': - case 'L': { - // skip values outside bounding box - foreach ($chunks as $key => $val) { - if ((($key % 2) == 0) AND (($val < $x1) OR ($val > $x2))) { - $skip = true; - } elseif ((($key % 2) != 0) AND (($val < $y1) OR ($val > $y2))) { - $skip = true; - } - } - } - } - } - switch ($cmd) { - case 'm': - case 'l': - case 'v': - case 'y': - case 'c': - case 'k': - case 'K': - case 'g': - case 'G': - case 's': - case 'S': - case 'J': - case 'j': - case 'w': - case 'M': - case 'd': - case 'n': { - if ($skip) { - break; - } - $this->_out($line); - break; - } - case 'x': {// custom fill color - if (empty($color_name)) { - // CMYK color - list($col_c, $col_m, $col_y, $col_k) = $chunks; - $this->_out(''.$col_c.' '.$col_m.' '.$col_y.' '.$col_k.' k'); - } else { - // Spot Color (CMYK + tint) - list($col_c, $col_m, $col_y, $col_k, $col_t) = $chunks; - $this->AddSpotColor($color_name, ($col_c * 100), ($col_m * 100), ($col_y * 100), ($col_k * 100)); - $color_cmd = sprintf('/CS%d cs %F scn', $this->spot_colors[$color_name]['i'], (1 - $col_t)); - $this->_out($color_cmd); - } - break; - } - case 'X': { // custom stroke color - if (empty($color_name)) { - // CMYK color - list($col_c, $col_m, $col_y, $col_k) = $chunks; - $this->_out(''.$col_c.' '.$col_m.' '.$col_y.' '.$col_k.' K'); - } else { - // Spot Color (CMYK + tint) - list($col_c, $col_m, $col_y, $col_k, $col_t) = $chunks; - $this->AddSpotColor($color_name, ($col_c * 100), ($col_m * 100), ($col_y * 100), ($col_k * 100)); - $color_cmd = sprintf('/CS%d CS %F SCN', $this->spot_colors[$color_name]['i'], (1 - $col_t)); - $this->_out($color_cmd); - } - break; - } - case 'Y': - case 'N': - case 'V': - case 'L': - case 'C': { - if ($skip) { - break; - } - $line[($len - 1)] = strtolower($cmd); - $this->_out($line); - break; - } - case 'b': - case 'B': { - $this->_out($cmd . '*'); - break; - } - case 'f': - case 'F': { - if ($u > 0) { - $isU = false; - $max = min(($i + 5), $cnt); - for ($j = ($i + 1); $j < $max; ++$j) { - $isU = ($isU OR (($lines[$j] == 'U') OR ($lines[$j] == '*U'))); - } - if ($isU) { - $this->_out('f*'); - } - } else { - $this->_out('f*'); - } - break; - } - case '*u': { - ++$u; - break; - } - case '*U': { - --$u; - break; - } - } - } - // restore previous graphic state - $this->_out($this->epsmarker.'Q'); - if (!empty($border)) { - $bx = $this->x; - $by = $this->y; - $this->x = $ximg; - if ($this->rtl) { - $this->x += $w; - } - $this->y = $y; - $this->Cell($w, $h, '', $border, 0, '', 0, '', 0, true); - $this->x = $bx; - $this->y = $by; - } - if ($link) { - $this->Link($ximg, $y, $w, $h, $link, 0); - } - // set pointer to align the next text/objects - switch($align) { - case 'T':{ - $this->y = $y; - $this->x = $this->img_rb_x; - break; - } - case 'M':{ - $this->y = $y + round($h/2); - $this->x = $this->img_rb_x; - break; - } - case 'B':{ - $this->y = $this->img_rb_y; - $this->x = $this->img_rb_x; - break; - } - case 'N':{ - $this->SetY($this->img_rb_y); - break; - } - default:{ - break; - } - } - $this->endlinex = $this->img_rb_x; - } - - /** - * Set document barcode. - * @param $bc (string) barcode - * @public - */ - public function setBarcode($bc='') { - $this->barcode = $bc; - } - - /** - * Get current barcode. - * @return string - * @public - * @since 4.0.012 (2008-07-24) - */ - public function getBarcode() { - return $this->barcode; - } - - /** - * Print a Linear Barcode. - * @param $code (string) code to print - * @param $type (string) type of barcode (see tcpdf_barcodes_1d.php for supported formats). - * @param $x (int) x position in user units (empty string = current x position) - * @param $y (int) y position in user units (empty string = current y position) - * @param $w (int) width in user units (empty string = remaining page width) - * @param $h (int) height in user units (empty string = remaining page height) - * @param $xres (float) width of the smallest bar in user units (empty string = default value = 0.4mm) - * @param $style (array) array of options:
        - *
      • boolean $style['border'] if true prints a border
      • - *
      • int $style['padding'] padding to leave around the barcode in user units (set to 'auto' for automatic padding)
      • - *
      • int $style['hpadding'] horizontal padding in user units (set to 'auto' for automatic padding)
      • - *
      • int $style['vpadding'] vertical padding in user units (set to 'auto' for automatic padding)
      • - *
      • array $style['fgcolor'] color array for bars and text
      • - *
      • mixed $style['bgcolor'] color array for background (set to false for transparent)
      • - *
      • boolean $style['text'] if true prints text below the barcode
      • - *
      • string $style['label'] override default label
      • - *
      • string $style['font'] font name for text
      • int $style['fontsize'] font size for text
      • - *
      • int $style['stretchtext']: 0 = disabled; 1 = horizontal scaling only if necessary; 2 = forced horizontal scaling; 3 = character spacing only if necessary; 4 = forced character spacing.
      • - *
      • string $style['position'] horizontal position of the containing barcode cell on the page: L = left margin; C = center; R = right margin.
      • - *
      • string $style['align'] horizontal position of the barcode on the containing rectangle: L = left; C = center; R = right.
      • - *
      • string $style['stretch'] if true stretch the barcode to best fit the available width, otherwise uses $xres resolution for a single bar.
      • - *
      • string $style['fitwidth'] if true reduce the width to fit the barcode width + padding. When this option is enabled the 'stretch' option is automatically disabled.
      • - *
      • string $style['cellfitalign'] this option works only when 'fitwidth' is true and 'position' is unset or empty. Set the horizontal position of the containing barcode cell inside the specified rectangle: L = left; C = center; R = right.
      - * @param $align (string) Indicates the alignment of the pointer next to barcode insertion relative to barcode height. The value can be:
      • T: top-right for LTR or top-left for RTL
      • M: middle-right for LTR or middle-left for RTL
      • B: bottom-right for LTR or bottom-left for RTL
      • N: next line
      - * @author Nicola Asuni - * @since 3.1.000 (2008-06-09) - * @public - */ - public function write1DBarcode($code, $type, $x='', $y='', $w='', $h='', $xres='', $style=array(), $align='') { - if (TCPDF_STATIC::empty_string(trim($code))) { - return; - } - require_once(dirname(__FILE__).'/tcpdf_barcodes_1d.php'); - // save current graphic settings - $gvars = $this->getGraphicVars(); - // create new barcode object - $barcodeobj = new TCPDFBarcode($code, $type); - $arrcode = $barcodeobj->getBarcodeArray(); - if (($arrcode === false) OR empty($arrcode) OR ($arrcode['maxw'] <= 0)) { - $this->Error('Error in 1D barcode string'); - } - if ($arrcode['maxh'] <= 0) { - $arrcode['maxh'] = 1; - } - // set default values - if (!isset($style['position'])) { - $style['position'] = ''; - } elseif ($style['position'] == 'S') { - // keep this for backward compatibility - $style['position'] = ''; - $style['stretch'] = true; - } - if (!isset($style['fitwidth'])) { - if (!isset($style['stretch'])) { - $style['fitwidth'] = true; - } else { - $style['fitwidth'] = false; - } - } - if ($style['fitwidth']) { - // disable stretch - $style['stretch'] = false; - } - if (!isset($style['stretch'])) { - if (($w === '') OR ($w <= 0)) { - $style['stretch'] = false; - } else { - $style['stretch'] = true; - } - } - if (!isset($style['fgcolor'])) { - $style['fgcolor'] = array(0,0,0); // default black - } - if (!isset($style['bgcolor'])) { - $style['bgcolor'] = false; // default transparent - } - if (!isset($style['border'])) { - $style['border'] = false; - } - $fontsize = 0; - if (!isset($style['text'])) { - $style['text'] = false; - } - if ($style['text'] AND isset($style['font'])) { - if (isset($style['fontsize'])) { - $fontsize = $style['fontsize']; - } - $this->SetFont($style['font'], '', $fontsize); - } - if (!isset($style['stretchtext'])) { - $style['stretchtext'] = 4; - } - if ($x === '') { - $x = $this->x; - } - if ($y === '') { - $y = $this->y; - } - // check page for no-write regions and adapt page margins if necessary - list($x, $y) = $this->checkPageRegions($h, $x, $y); - if (($w === '') OR ($w <= 0)) { - if ($this->rtl) { - $w = $x - $this->lMargin; - } else { - $w = $this->w - $this->rMargin - $x; - } - } - // padding - if (!isset($style['padding'])) { - $padding = 0; - } elseif ($style['padding'] === 'auto') { - $padding = 10 * ($w / ($arrcode['maxw'] + 20)); - } else { - $padding = floatval($style['padding']); - } - // horizontal padding - if (!isset($style['hpadding'])) { - $hpadding = $padding; - } elseif ($style['hpadding'] === 'auto') { - $hpadding = 10 * ($w / ($arrcode['maxw'] + 20)); - } else { - $hpadding = floatval($style['hpadding']); - } - // vertical padding - if (!isset($style['vpadding'])) { - $vpadding = $padding; - } elseif ($style['vpadding'] === 'auto') { - $vpadding = ($hpadding / 2); - } else { - $vpadding = floatval($style['vpadding']); - } - // calculate xres (single bar width) - $max_xres = ($w - (2 * $hpadding)) / $arrcode['maxw']; - if ($style['stretch']) { - $xres = $max_xres; - } else { - if (TCPDF_STATIC::empty_string($xres)) { - $xres = (0.141 * $this->k); // default bar width = 0.4 mm - } - if ($xres > $max_xres) { - // correct xres to fit on $w - $xres = $max_xres; - } - if ((isset($style['padding']) AND ($style['padding'] === 'auto')) - OR (isset($style['hpadding']) AND ($style['hpadding'] === 'auto'))) { - $hpadding = 10 * $xres; - if (isset($style['vpadding']) AND ($style['vpadding'] === 'auto')) { - $vpadding = ($hpadding / 2); - } - } - } - if ($style['fitwidth']) { - $wold = $w; - $w = (($arrcode['maxw'] * $xres) + (2 * $hpadding)); - if (isset($style['cellfitalign'])) { - switch ($style['cellfitalign']) { - case 'L': { - if ($this->rtl) { - $x -= ($wold - $w); - } - break; - } - case 'R': { - if (!$this->rtl) { - $x += ($wold - $w); - } - break; - } - case 'C': { - if ($this->rtl) { - $x -= (($wold - $w) / 2); - } else { - $x += (($wold - $w) / 2); - } - break; - } - default : { - break; - } - } - } - } - $text_height = $this->getCellHeight($fontsize / $this->k); - // height - if (($h === '') OR ($h <= 0)) { - // set default height - $h = (($arrcode['maxw'] * $xres) / 3) + (2 * $vpadding) + $text_height; - } - $barh = $h - $text_height - (2 * $vpadding); - if ($barh <=0) { - // try to reduce font or padding to fit barcode on available height - if ($text_height > $h) { - $fontsize = (($h * $this->k) / (4 * $this->cell_height_ratio)); - $text_height = $this->getCellHeight($fontsize / $this->k); - $this->SetFont($style['font'], '', $fontsize); - } - if ($vpadding > 0) { - $vpadding = (($h - $text_height) / 4); - } - $barh = $h - $text_height - (2 * $vpadding); - } - // fit the barcode on available space - list($w, $h, $x, $y) = $this->fitBlock($w, $h, $x, $y, false); - // set alignment - $this->img_rb_y = $y + $h; - // set alignment - if ($this->rtl) { - if ($style['position'] == 'L') { - $xpos = $this->lMargin; - } elseif ($style['position'] == 'C') { - $xpos = ($this->w + $this->lMargin - $this->rMargin - $w) / 2; - } elseif ($style['position'] == 'R') { - $xpos = $this->w - $this->rMargin - $w; - } else { - $xpos = $x - $w; - } - $this->img_rb_x = $xpos; - } else { - if ($style['position'] == 'L') { - $xpos = $this->lMargin; - } elseif ($style['position'] == 'C') { - $xpos = ($this->w + $this->lMargin - $this->rMargin - $w) / 2; - } elseif ($style['position'] == 'R') { - $xpos = $this->w - $this->rMargin - $w; - } else { - $xpos = $x; - } - $this->img_rb_x = $xpos + $w; - } - $xpos_rect = $xpos; - if (!isset($style['align'])) { - $style['align'] = 'C'; - } - switch ($style['align']) { - case 'L': { - $xpos = $xpos_rect + $hpadding; - break; - } - case 'R': { - $xpos = $xpos_rect + ($w - ($arrcode['maxw'] * $xres)) - $hpadding; - break; - } - case 'C': - default : { - $xpos = $xpos_rect + (($w - ($arrcode['maxw'] * $xres)) / 2); - break; - } - } - $xpos_text = $xpos; - // barcode is always printed in LTR direction - $tempRTL = $this->rtl; - $this->rtl = false; - // print background color - if ($style['bgcolor']) { - $this->Rect($xpos_rect, $y, $w, $h, $style['border'] ? 'DF' : 'F', '', $style['bgcolor']); - } elseif ($style['border']) { - $this->Rect($xpos_rect, $y, $w, $h, 'D'); - } - // set foreground color - $this->SetDrawColorArray($style['fgcolor']); - $this->SetTextColorArray($style['fgcolor']); - // print bars - foreach ($arrcode['bcode'] as $k => $v) { - $bw = ($v['w'] * $xres); - if ($v['t']) { - // draw a vertical bar - $ypos = $y + $vpadding + ($v['p'] * $barh / $arrcode['maxh']); - $this->Rect($xpos, $ypos, $bw, ($v['h'] * $barh / $arrcode['maxh']), 'F', array(), $style['fgcolor']); - } - $xpos += $bw; - } - // print text - if ($style['text']) { - if (isset($style['label']) AND !TCPDF_STATIC::empty_string($style['label'])) { - $label = $style['label']; - } else { - $label = $code; - } - $txtwidth = ($arrcode['maxw'] * $xres); - if ($this->GetStringWidth($label) > $txtwidth) { - $style['stretchtext'] = 2; - } - // print text - $this->x = $xpos_text; - $this->y = $y + $vpadding + $barh; - $cellpadding = $this->cell_padding; - $this->SetCellPadding(0); - $this->Cell($txtwidth, '', $label, 0, 0, 'C', false, '', $style['stretchtext'], false, 'T', 'T'); - $this->cell_padding = $cellpadding; - } - // restore original direction - $this->rtl = $tempRTL; - // restore previous settings - $this->setGraphicVars($gvars); - // set pointer to align the next text/objects - switch($align) { - case 'T':{ - $this->y = $y; - $this->x = $this->img_rb_x; - break; - } - case 'M':{ - $this->y = $y + round($h / 2); - $this->x = $this->img_rb_x; - break; - } - case 'B':{ - $this->y = $this->img_rb_y; - $this->x = $this->img_rb_x; - break; - } - case 'N':{ - $this->SetY($this->img_rb_y); - break; - } - default:{ - break; - } - } - $this->endlinex = $this->img_rb_x; - } - - /** - * Print 2D Barcode. - * @param $code (string) code to print - * @param $type (string) type of barcode (see tcpdf_barcodes_2d.php for supported formats). - * @param $x (int) x position in user units - * @param $y (int) y position in user units - * @param $w (int) width in user units - * @param $h (int) height in user units - * @param $style (array) array of options:
        - *
      • boolean $style['border'] if true prints a border around the barcode
      • - *
      • int $style['padding'] padding to leave around the barcode in barcode units (set to 'auto' for automatic padding)
      • - *
      • int $style['hpadding'] horizontal padding in barcode units (set to 'auto' for automatic padding)
      • - *
      • int $style['vpadding'] vertical padding in barcode units (set to 'auto' for automatic padding)
      • - *
      • int $style['module_width'] width of a single module in points
      • - *
      • int $style['module_height'] height of a single module in points
      • - *
      • array $style['fgcolor'] color array for bars and text
      • - *
      • mixed $style['bgcolor'] color array for background or false for transparent
      • - *
      • string $style['position'] barcode position on the page: L = left margin; C = center; R = right margin; S = stretch
      • - * @param $align (string) Indicates the alignment of the pointer next to barcode insertion relative to barcode height. The value can be:
        • T: top-right for LTR or top-left for RTL
        • M: middle-right for LTR or middle-left for RTL
        • B: bottom-right for LTR or bottom-left for RTL
        • N: next line
        - * @param $distort (boolean) if true distort the barcode to fit width and height, otherwise preserve aspect ratio - * @author Nicola Asuni - * @since 4.5.037 (2009-04-07) - * @public - */ - public function write2DBarcode($code, $type, $x='', $y='', $w='', $h='', $style=array(), $align='', $distort=false) { - if (TCPDF_STATIC::empty_string(trim($code))) { - return; - } - require_once(dirname(__FILE__).'/tcpdf_barcodes_2d.php'); - // save current graphic settings - $gvars = $this->getGraphicVars(); - // create new barcode object - $barcodeobj = new TCPDF2DBarcode($code, $type); - $arrcode = $barcodeobj->getBarcodeArray(); - if (($arrcode === false) OR empty($arrcode) OR !isset($arrcode['num_rows']) OR ($arrcode['num_rows'] == 0) OR !isset($arrcode['num_cols']) OR ($arrcode['num_cols'] == 0)) { - $this->Error('Error in 2D barcode string'); - } - // set default values - if (!isset($style['position'])) { - $style['position'] = ''; - } - if (!isset($style['fgcolor'])) { - $style['fgcolor'] = array(0,0,0); // default black - } - if (!isset($style['bgcolor'])) { - $style['bgcolor'] = false; // default transparent - } - if (!isset($style['border'])) { - $style['border'] = false; - } - // padding - if (!isset($style['padding'])) { - $style['padding'] = 0; - } elseif ($style['padding'] === 'auto') { - $style['padding'] = 4; - } - if (!isset($style['hpadding'])) { - $style['hpadding'] = $style['padding']; - } elseif ($style['hpadding'] === 'auto') { - $style['hpadding'] = 4; - } - if (!isset($style['vpadding'])) { - $style['vpadding'] = $style['padding']; - } elseif ($style['vpadding'] === 'auto') { - $style['vpadding'] = 4; - } - $hpad = (2 * $style['hpadding']); - $vpad = (2 * $style['vpadding']); - // cell (module) dimension - if (!isset($style['module_width'])) { - $style['module_width'] = 1; // width of a single module in points - } - if (!isset($style['module_height'])) { - $style['module_height'] = 1; // height of a single module in points - } - if ($x === '') { - $x = $this->x; - } - if ($y === '') { - $y = $this->y; - } - // check page for no-write regions and adapt page margins if necessary - list($x, $y) = $this->checkPageRegions($h, $x, $y); - // number of barcode columns and rows - $rows = $arrcode['num_rows']; - $cols = $arrcode['num_cols']; - if (($rows <= 0) || ($cols <= 0)){ - $this->Error('Error in 2D barcode string'); - } - // module width and height - $mw = $style['module_width']; - $mh = $style['module_height']; - if (($mw <= 0) OR ($mh <= 0)) { - $this->Error('Error in 2D barcode string'); - } - // get max dimensions - if ($this->rtl) { - $maxw = $x - $this->lMargin; - } else { - $maxw = $this->w - $this->rMargin - $x; - } - $maxh = ($this->h - $this->tMargin - $this->bMargin); - $ratioHW = ((($rows * $mh) + $hpad) / (($cols * $mw) + $vpad)); - $ratioWH = ((($cols * $mw) + $vpad) / (($rows * $mh) + $hpad)); - if (!$distort) { - if (($maxw * $ratioHW) > $maxh) { - $maxw = $maxh * $ratioWH; - } - if (($maxh * $ratioWH) > $maxw) { - $maxh = $maxw * $ratioHW; - } - } - // set maximum dimensions - if ($w > $maxw) { - $w = $maxw; - } - if ($h > $maxh) { - $h = $maxh; - } - // set dimensions - if ((($w === '') OR ($w <= 0)) AND (($h === '') OR ($h <= 0))) { - $w = ($cols + $hpad) * ($mw / $this->k); - $h = ($rows + $vpad) * ($mh / $this->k); - } elseif (($w === '') OR ($w <= 0)) { - $w = $h * $ratioWH; - } elseif (($h === '') OR ($h <= 0)) { - $h = $w * $ratioHW; - } - // barcode size (excluding padding) - $bw = ($w * $cols) / ($cols + $hpad); - $bh = ($h * $rows) / ($rows + $vpad); - // dimension of single barcode cell unit - $cw = $bw / $cols; - $ch = $bh / $rows; - if (!$distort) { - if (($cw / $ch) > ($mw / $mh)) { - // correct horizontal distortion - $cw = $ch * $mw / $mh; - $bw = $cw * $cols; - $style['hpadding'] = ($w - $bw) / (2 * $cw); - } else { - // correct vertical distortion - $ch = $cw * $mh / $mw; - $bh = $ch * $rows; - $style['vpadding'] = ($h - $bh) / (2 * $ch); - } - } - // fit the barcode on available space - list($w, $h, $x, $y) = $this->fitBlock($w, $h, $x, $y, false); - // set alignment - $this->img_rb_y = $y + $h; - // set alignment - if ($this->rtl) { - if ($style['position'] == 'L') { - $xpos = $this->lMargin; - } elseif ($style['position'] == 'C') { - $xpos = ($this->w + $this->lMargin - $this->rMargin - $w) / 2; - } elseif ($style['position'] == 'R') { - $xpos = $this->w - $this->rMargin - $w; - } else { - $xpos = $x - $w; - } - $this->img_rb_x = $xpos; - } else { - if ($style['position'] == 'L') { - $xpos = $this->lMargin; - } elseif ($style['position'] == 'C') { - $xpos = ($this->w + $this->lMargin - $this->rMargin - $w) / 2; - } elseif ($style['position'] == 'R') { - $xpos = $this->w - $this->rMargin - $w; - } else { - $xpos = $x; - } - $this->img_rb_x = $xpos + $w; - } - $xstart = $xpos + ($style['hpadding'] * $cw); - $ystart = $y + ($style['vpadding'] * $ch); - // barcode is always printed in LTR direction - $tempRTL = $this->rtl; - $this->rtl = false; - // print background color - if ($style['bgcolor']) { - $this->Rect($xpos, $y, $w, $h, $style['border'] ? 'DF' : 'F', '', $style['bgcolor']); - } elseif ($style['border']) { - $this->Rect($xpos, $y, $w, $h, 'D'); - } - // set foreground color - $this->SetDrawColorArray($style['fgcolor']); - // print barcode cells - // for each row - for ($r = 0; $r < $rows; ++$r) { - $xr = $xstart; - // for each column - for ($c = 0; $c < $cols; ++$c) { - if ($arrcode['bcode'][$r][$c] == 1) { - // draw a single barcode cell - $this->Rect($xr, $ystart, $cw, $ch, 'F', array(), $style['fgcolor']); - } - $xr += $cw; - } - $ystart += $ch; - } - // restore original direction - $this->rtl = $tempRTL; - // restore previous settings - $this->setGraphicVars($gvars); - // set pointer to align the next text/objects - switch($align) { - case 'T':{ - $this->y = $y; - $this->x = $this->img_rb_x; - break; - } - case 'M':{ - $this->y = $y + round($h/2); - $this->x = $this->img_rb_x; - break; - } - case 'B':{ - $this->y = $this->img_rb_y; - $this->x = $this->img_rb_x; - break; - } - case 'N':{ - $this->SetY($this->img_rb_y); - break; - } - default:{ - break; - } - } - $this->endlinex = $this->img_rb_x; - } - - /** - * Returns an array containing current margins: - *
          -
        • $ret['left'] = left margin
        • -
        • $ret['right'] = right margin
        • -
        • $ret['top'] = top margin
        • -
        • $ret['bottom'] = bottom margin
        • -
        • $ret['header'] = header margin
        • -
        • $ret['footer'] = footer margin
        • -
        • $ret['cell'] = cell padding array
        • -
        • $ret['padding_left'] = cell left padding
        • -
        • $ret['padding_top'] = cell top padding
        • -
        • $ret['padding_right'] = cell right padding
        • -
        • $ret['padding_bottom'] = cell bottom padding
        • - *
        - * @return array containing all margins measures - * @public - * @since 3.2.000 (2008-06-23) - */ - public function getMargins() { - $ret = array( - 'left' => $this->lMargin, - 'right' => $this->rMargin, - 'top' => $this->tMargin, - 'bottom' => $this->bMargin, - 'header' => $this->header_margin, - 'footer' => $this->footer_margin, - 'cell' => $this->cell_padding, - 'padding_left' => $this->cell_padding['L'], - 'padding_top' => $this->cell_padding['T'], - 'padding_right' => $this->cell_padding['R'], - 'padding_bottom' => $this->cell_padding['B'] - ); - return $ret; - } - - /** - * Returns an array containing original margins: - *
          -
        • $ret['left'] = left margin
        • -
        • $ret['right'] = right margin
        • - *
        - * @return array containing all margins measures - * @public - * @since 4.0.012 (2008-07-24) - */ - public function getOriginalMargins() { - $ret = array( - 'left' => $this->original_lMargin, - 'right' => $this->original_rMargin - ); - return $ret; - } - - /** - * Returns the current font size. - * @return current font size - * @public - * @since 3.2.000 (2008-06-23) - */ - public function getFontSize() { - return $this->FontSize; - } - - /** - * Returns the current font size in points unit. - * @return current font size in points unit - * @public - * @since 3.2.000 (2008-06-23) - */ - public function getFontSizePt() { - return $this->FontSizePt; - } - - /** - * Returns the current font family name. - * @return string current font family name - * @public - * @since 4.3.008 (2008-12-05) - */ - public function getFontFamily() { - return $this->FontFamily; - } - - /** - * Returns the current font style. - * @return string current font style - * @public - * @since 4.3.008 (2008-12-05) - */ - public function getFontStyle() { - return $this->FontStyle; - } - - /** - * Cleanup HTML code (requires HTML Tidy library). - * @param $html (string) htmlcode to fix - * @param $default_css (string) CSS commands to add - * @param $tagvs (array) parameters for setHtmlVSpace method - * @param $tidy_options (array) options for tidy_parse_string function - * @return string XHTML code cleaned up - * @author Nicola Asuni - * @public - * @since 5.9.017 (2010-11-16) - * @see setHtmlVSpace() - */ - public function fixHTMLCode($html, $default_css='', $tagvs='', $tidy_options='') { - return TCPDF_STATIC::fixHTMLCode($html, $default_css, $tagvs, $tidy_options, $this->tagvspaces); - } - - /** - * Returns the border width from CSS property - * @param $width (string) border width - * @return int with in user units - * @protected - * @since 5.7.000 (2010-08-02) - */ - protected function getCSSBorderWidth($width) { - if ($width == 'thin') { - $width = (2 / $this->k); - } elseif ($width == 'medium') { - $width = (4 / $this->k); - } elseif ($width == 'thick') { - $width = (6 / $this->k); - } else { - $width = $this->getHTMLUnitToUnits($width, 1, 'px', false); - } - return $width; - } - - /** - * Returns the border dash style from CSS property - * @param $style (string) border style to convert - * @return int sash style (return -1 in case of none or hidden border) - * @protected - * @since 5.7.000 (2010-08-02) - */ - protected function getCSSBorderDashStyle($style) { - switch (strtolower($style)) { - case 'none': - case 'hidden': { - $dash = -1; - break; - } - case 'dotted': { - $dash = 1; - break; - } - case 'dashed': { - $dash = 3; - break; - } - case 'double': - case 'groove': - case 'ridge': - case 'inset': - case 'outset': - case 'solid': - default: { - $dash = 0; - break; - } - } - return $dash; - } - - /** - * Returns the border style array from CSS border properties - * @param $cssborder (string) border properties - * @return array containing border properties - * @protected - * @since 5.7.000 (2010-08-02) - */ - protected function getCSSBorderStyle($cssborder) { - $bprop = preg_split('/[\s]+/', trim($cssborder)); - $border = array(); // value to be returned - switch (count($bprop)) { - case 3: { - $width = $bprop[0]; - $style = $bprop[1]; - $color = $bprop[2]; - break; - } - case 2: { - $width = 'medium'; - $style = $bprop[0]; - $color = $bprop[1]; - break; - } - case 1: { - $width = 'medium'; - $style = $bprop[0]; - $color = 'black'; - break; - } - default: { - $width = 'medium'; - $style = 'solid'; - $color = 'black'; - break; - } - } - if ($style == 'none') { - return array(); - } - $border['cap'] = 'square'; - $border['join'] = 'miter'; - $border['dash'] = $this->getCSSBorderDashStyle($style); - if ($border['dash'] < 0) { - return array(); - } - $border['width'] = $this->getCSSBorderWidth($width); - $border['color'] = TCPDF_COLORS::convertHTMLColorToDec($color, $this->spot_colors); - return $border; - } - - /** - * Get the internal Cell padding from CSS attribute. - * @param $csspadding (string) padding properties - * @param $width (float) width of the containing element - * @return array of cell paddings - * @public - * @since 5.9.000 (2010-10-04) - */ - public function getCSSPadding($csspadding, $width=0) { - $padding = preg_split('/[\s]+/', trim($csspadding)); - $cell_padding = array(); // value to be returned - switch (count($padding)) { - case 4: { - $cell_padding['T'] = $padding[0]; - $cell_padding['R'] = $padding[1]; - $cell_padding['B'] = $padding[2]; - $cell_padding['L'] = $padding[3]; - break; - } - case 3: { - $cell_padding['T'] = $padding[0]; - $cell_padding['R'] = $padding[1]; - $cell_padding['B'] = $padding[2]; - $cell_padding['L'] = $padding[1]; - break; - } - case 2: { - $cell_padding['T'] = $padding[0]; - $cell_padding['R'] = $padding[1]; - $cell_padding['B'] = $padding[0]; - $cell_padding['L'] = $padding[1]; - break; - } - case 1: { - $cell_padding['T'] = $padding[0]; - $cell_padding['R'] = $padding[0]; - $cell_padding['B'] = $padding[0]; - $cell_padding['L'] = $padding[0]; - break; - } - default: { - return $this->cell_padding; - } - } - if ($width == 0) { - $width = $this->w - $this->lMargin - $this->rMargin; - } - $cell_padding['T'] = $this->getHTMLUnitToUnits($cell_padding['T'], $width, 'px', false); - $cell_padding['R'] = $this->getHTMLUnitToUnits($cell_padding['R'], $width, 'px', false); - $cell_padding['B'] = $this->getHTMLUnitToUnits($cell_padding['B'], $width, 'px', false); - $cell_padding['L'] = $this->getHTMLUnitToUnits($cell_padding['L'], $width, 'px', false); - return $cell_padding; - } - - /** - * Get the internal Cell margin from CSS attribute. - * @param $cssmargin (string) margin properties - * @param $width (float) width of the containing element - * @return array of cell margins - * @public - * @since 5.9.000 (2010-10-04) - */ - public function getCSSMargin($cssmargin, $width=0) { - $margin = preg_split('/[\s]+/', trim($cssmargin)); - $cell_margin = array(); // value to be returned - switch (count($margin)) { - case 4: { - $cell_margin['T'] = $margin[0]; - $cell_margin['R'] = $margin[1]; - $cell_margin['B'] = $margin[2]; - $cell_margin['L'] = $margin[3]; - break; - } - case 3: { - $cell_margin['T'] = $margin[0]; - $cell_margin['R'] = $margin[1]; - $cell_margin['B'] = $margin[2]; - $cell_margin['L'] = $margin[1]; - break; - } - case 2: { - $cell_margin['T'] = $margin[0]; - $cell_margin['R'] = $margin[1]; - $cell_margin['B'] = $margin[0]; - $cell_margin['L'] = $margin[1]; - break; - } - case 1: { - $cell_margin['T'] = $margin[0]; - $cell_margin['R'] = $margin[0]; - $cell_margin['B'] = $margin[0]; - $cell_margin['L'] = $margin[0]; - break; - } - default: { - return $this->cell_margin; - } - } - if ($width == 0) { - $width = $this->w - $this->lMargin - $this->rMargin; - } - $cell_margin['T'] = $this->getHTMLUnitToUnits(str_replace('auto', '0', $cell_margin['T']), $width, 'px', false); - $cell_margin['R'] = $this->getHTMLUnitToUnits(str_replace('auto', '0', $cell_margin['R']), $width, 'px', false); - $cell_margin['B'] = $this->getHTMLUnitToUnits(str_replace('auto', '0', $cell_margin['B']), $width, 'px', false); - $cell_margin['L'] = $this->getHTMLUnitToUnits(str_replace('auto', '0', $cell_margin['L']), $width, 'px', false); - return $cell_margin; - } - - /** - * Get the border-spacing from CSS attribute. - * @param $cssbspace (string) border-spacing CSS properties - * @param $width (float) width of the containing element - * @return array of border spacings - * @public - * @since 5.9.010 (2010-10-27) - */ - public function getCSSBorderMargin($cssbspace, $width=0) { - $space = preg_split('/[\s]+/', trim($cssbspace)); - $border_spacing = array(); // value to be returned - switch (count($space)) { - case 2: { - $border_spacing['H'] = $space[0]; - $border_spacing['V'] = $space[1]; - break; - } - case 1: { - $border_spacing['H'] = $space[0]; - $border_spacing['V'] = $space[0]; - break; - } - default: { - return array('H' => 0, 'V' => 0); - } - } - if ($width == 0) { - $width = $this->w - $this->lMargin - $this->rMargin; - } - $border_spacing['H'] = $this->getHTMLUnitToUnits($border_spacing['H'], $width, 'px', false); - $border_spacing['V'] = $this->getHTMLUnitToUnits($border_spacing['V'], $width, 'px', false); - return $border_spacing; - } - - /** - * Returns the letter-spacing value from CSS value - * @param $spacing (string) letter-spacing value - * @param $parent (float) font spacing (tracking) value of the parent element - * @return float quantity to increases or decreases the space between characters in a text. - * @protected - * @since 5.9.000 (2010-10-02) - */ - protected function getCSSFontSpacing($spacing, $parent=0) { - $val = 0; // value to be returned - $spacing = trim($spacing); - switch ($spacing) { - case 'normal': { - $val = 0; - break; - } - case 'inherit': { - if ($parent == 'normal') { - $val = 0; - } else { - $val = $parent; - } - break; - } - default: { - $val = $this->getHTMLUnitToUnits($spacing, 0, 'px', false); - } - } - return $val; - } - - /** - * Returns the percentage of font stretching from CSS value - * @param $stretch (string) stretch mode - * @param $parent (float) stretch value of the parent element - * @return float font stretching percentage - * @protected - * @since 5.9.000 (2010-10-02) - */ - protected function getCSSFontStretching($stretch, $parent=100) { - $val = 100; // value to be returned - $stretch = trim($stretch); - switch ($stretch) { - case 'ultra-condensed': { - $val = 40; - break; - } - case 'extra-condensed': { - $val = 55; - break; - } - case 'condensed': { - $val = 70; - break; - } - case 'semi-condensed': { - $val = 85; - break; - } - case 'normal': { - $val = 100; - break; - } - case 'semi-expanded': { - $val = 115; - break; - } - case 'expanded': { - $val = 130; - break; - } - case 'extra-expanded': { - $val = 145; - break; - } - case 'ultra-expanded': { - $val = 160; - break; - } - case 'wider': { - $val = ($parent + 10); - break; - } - case 'narrower': { - $val = ($parent - 10); - break; - } - case 'inherit': { - if ($parent == 'normal') { - $val = 100; - } else { - $val = $parent; - } - break; - } - default: { - $val = $this->getHTMLUnitToUnits($stretch, 100, '%', false); - } - } - return $val; - } - - /** - * Convert HTML string containing font size value to points - * @param $val (string) String containing font size value and unit. - * @param $refsize (float) Reference font size in points. - * @param $parent_size (float) Parent font size in points. - * @param $defaultunit (string) Default unit (can be one of the following: %, em, ex, px, in, mm, pc, pt). - * @return float value in points - * @public - */ - public function getHTMLFontUnits($val, $refsize=12, $parent_size=12, $defaultunit='pt') { - $refsize = TCPDF_FONTS::getFontRefSize($refsize); - $parent_size = TCPDF_FONTS::getFontRefSize($parent_size, $refsize); - switch ($val) { - case 'xx-small': { - $size = ($refsize - 4); - break; - } - case 'x-small': { - $size = ($refsize - 3); - break; - } - case 'small': { - $size = ($refsize - 2); - break; - } - case 'medium': { - $size = $refsize; - break; - } - case 'large': { - $size = ($refsize + 2); - break; - } - case 'x-large': { - $size = ($refsize + 4); - break; - } - case 'xx-large': { - $size = ($refsize + 6); - break; - } - case 'smaller': { - $size = ($parent_size - 3); - break; - } - case 'larger': { - $size = ($parent_size + 3); - break; - } - default: { - $size = $this->getHTMLUnitToUnits($val, $parent_size, $defaultunit, true); - } - } - return $size; - } - - /** - * Returns the HTML DOM array. - * @param $html (string) html code - * @return array - * @protected - * @since 3.2.000 (2008-06-20) - */ - protected function getHtmlDomArray($html) { - // array of CSS styles ( selector => properties). - $css = array(); - // get CSS array defined at previous call - $matches = array(); - if (preg_match_all('/([^\<]*)<\/cssarray>/isU', $html, $matches) > 0) { - if (isset($matches[1][0])) { - $css = array_merge($css, json_decode($this->unhtmlentities($matches[1][0]), true)); - } - $html = preg_replace('/(.*?)<\/cssarray>/isU', '', $html); - } - // extract external CSS files - $matches = array(); - if (preg_match_all('/]*)>/isU', $html, $matches) > 0) { - foreach ($matches[1] as $key => $link) { - $type = array(); - if (preg_match('/type[\s]*=[\s]*"text\/css"/', $link, $type)) { - $type = array(); - preg_match('/media[\s]*=[\s]*"([^"]*)"/', $link, $type); - // get 'all' and 'print' media, other media types are discarded - // (all, braille, embossed, handheld, print, projection, screen, speech, tty, tv) - if (empty($type) OR (isset($type[1]) AND (($type[1] == 'all') OR ($type[1] == 'print')))) { - $type = array(); - if (preg_match('/href[\s]*=[\s]*"([^"]*)"/', $link, $type) > 0) { - // read CSS data file - $cssdata = TCPDF_STATIC::fileGetContents(trim($type[1])); - if (($cssdata !== FALSE) AND (strlen($cssdata) > 0)) { - $css = array_merge($css, TCPDF_STATIC::extractCSSproperties($cssdata)); - } - } - } - } - } - } - // extract style tags - $matches = array(); - if (preg_match_all('/]*)>([^\<]*)<\/style>/isU', $html, $matches) > 0) { - foreach ($matches[1] as $key => $media) { - $type = array(); - preg_match('/media[\s]*=[\s]*"([^"]*)"/', $media, $type); - // get 'all' and 'print' media, other media types are discarded - // (all, braille, embossed, handheld, print, projection, screen, speech, tty, tv) - if (empty($type) OR (isset($type[1]) AND (($type[1] == 'all') OR ($type[1] == 'print')))) { - $cssdata = $matches[2][$key]; - $css = array_merge($css, TCPDF_STATIC::extractCSSproperties($cssdata)); - } - } - } - // create a special tag to contain the CSS array (used for table content) - $csstagarray = ''.htmlentities(json_encode($css)).''; - // remove head and style blocks - $html = preg_replace('/]*)>(.*?)<\/head>/siU', '', $html); - $html = preg_replace('/]*)>([^\<]*)<\/style>/isU', '', $html); - // define block tags - $blocktags = array('blockquote','br','dd','dl','div','dt','h1','h2','h3','h4','h5','h6','hr','li','ol','p','pre','ul','tcpdf','table','tr','td'); - // define self-closing tags - $selfclosingtags = array('area','base','basefont','br','hr','input','img','link','meta'); - // remove all unsupported tags (the line below lists all supported tags) - $html = strip_tags($html, '




  • ', $offset)) !== false) { - $html_a = substr($html, 0, $offset); - $html_b = substr($html, $offset, ($pos - $offset + 11)); - while (preg_match("']*)>(.*?)\n(.*?)'si", $html_b)) { - // preserve newlines on 'si", "\\2\\3", $html_b); - $html_b = preg_replace("']*)>(.*?)[\"](.*?)'si", "\\2''\\3", $html_b); - } - $html = $html_a.$html_b.substr($html, $pos + 11); - $offset = strlen($html_a.$html_b); - } - $html = preg_replace('/([\s]*)', $html); - $offset = 0; - while (($offset < strlen($html)) AND ($pos = strpos($html, '', $offset)) !== false) { - $html_a = substr($html, 0, $offset); - $html_b = substr($html, $offset, ($pos - $offset + 9)); - while (preg_match("']*)>(.*?)'si", $html_b)) { - $html_b = preg_replace("']*)>(.*?)'si", "\\2#!TaB!#\\4#!NwL!#", $html_b); - $html_b = preg_replace("']*)>(.*?)'si", "\\2#!NwL!#", $html_b); - } - $html = $html_a.$html_b.substr($html, $pos + 9); - $offset = strlen($html_a.$html_b); - } - if (preg_match("']*)>'si", "'si", "\" />", $html); - } - $html = str_replace("\n", ' ', $html); - // restore textarea newlines - $html = str_replace('', "\n", $html); - // remove extra spaces from code - $html = preg_replace('/[\s]+<\/(table|tr|ul|ol|dl)>/', '', $html); - $html = preg_replace('/'.$this->re_space['p'].'+<\/(td|th|li|dt|dd)>/'.$this->re_space['m'], '', $html); - $html = preg_replace('/[\s]+<(tr|td|th|li|dt|dd)/', '<\\1', $html); - $html = preg_replace('/'.$this->re_space['p'].'+<(ul|ol|dl|br)/'.$this->re_space['m'], '<\\1', $html); - $html = preg_replace('/<\/(table|tr|td|th|blockquote|dd|dt|dl|div|dt|h1|h2|h3|h4|h5|h6|hr|li|ol|ul|p)>[\s]+<', $html); - $html = preg_replace('/<\/(td|th)>/', '', $html); - $html = preg_replace('/<\/table>([\s]*)/', '
    ', $html); - $html = preg_replace('/'.$this->re_space['p'].'+re_space['m'], chr(32).']*)>[\s]+([^\<])/xi', ' \\2', $html); - $html = preg_replace('/]*)>/xi', '', $html); - $html = preg_replace('/]*)>([^\<]*)<\/textarea>/xi', '', $html); - $html = preg_replace('/]*)><\/li>/', ' 
  • ', $html); - $html = preg_replace('/]*)>'.$this->re_space['p'].'*re_space['m'], ' \/]*)>[\s]/', '<\\1> ', $html); // preserve some spaces - $html = preg_replace('/[\s]<\/([^\>]*)>/', ' ', $html); // preserve some spaces - $html = preg_replace('//', '', $html); // fix sub/sup alignment - $html = preg_replace('/'.$this->re_space['p'].'+/'.$this->re_space['m'], chr(32), $html); // replace multiple spaces with a single space - // trim string - $html = $this->stringTrim($html); - // fix br tag after li - $html = preg_replace('/
  • ]*)>/', '
  • {{ user.username|e }}
  • - * {% endfor %} - * - */ -final class ForTokenParser extends AbstractTokenParser -{ - public function parse(Token $token) - { - $lineno = $token->getLine(); - $stream = $this->parser->getStream(); - $targets = $this->parser->getExpressionParser()->parseAssignmentExpression(); - $stream->expect(/* Token::OPERATOR_TYPE */ 8, 'in'); - $seq = $this->parser->getExpressionParser()->parseExpression(); - - $ifexpr = null; - if ($stream->nextIf(/* Token::NAME_TYPE */ 5, 'if')) { - @trigger_error(sprintf('Using an "if" condition on "for" tag in "%s" at line %d is deprecated since Twig 2.10.0, use a "filter" filter or an "if" condition inside the "for" body instead (if your condition depends on a variable updated inside the loop).', $stream->getSourceContext()->getName(), $lineno), E_USER_DEPRECATED); - - $ifexpr = $this->parser->getExpressionParser()->parseExpression(); - } - - $stream->expect(/* Token::BLOCK_END_TYPE */ 3); - $body = $this->parser->subparse([$this, 'decideForFork']); - if ('else' == $stream->next()->getValue()) { - $stream->expect(/* Token::BLOCK_END_TYPE */ 3); - $else = $this->parser->subparse([$this, 'decideForEnd'], true); - } else { - $else = null; - } - $stream->expect(/* Token::BLOCK_END_TYPE */ 3); - - if (\count($targets) > 1) { - $keyTarget = $targets->getNode(0); - $keyTarget = new AssignNameExpression($keyTarget->getAttribute('name'), $keyTarget->getTemplateLine()); - $valueTarget = $targets->getNode(1); - $valueTarget = new AssignNameExpression($valueTarget->getAttribute('name'), $valueTarget->getTemplateLine()); - } else { - $keyTarget = new AssignNameExpression('_key', $lineno); - $valueTarget = $targets->getNode(0); - $valueTarget = new AssignNameExpression($valueTarget->getAttribute('name'), $valueTarget->getTemplateLine()); - } - - if ($ifexpr) { - $this->checkLoopUsageCondition($stream, $ifexpr); - $this->checkLoopUsageBody($stream, $body); - } - - return new ForNode($keyTarget, $valueTarget, $seq, $ifexpr, $body, $else, $lineno, $this->getTag()); - } - - public function decideForFork(Token $token) - { - return $token->test(['else', 'endfor']); - } - - public function decideForEnd(Token $token) - { - return $token->test('endfor'); - } - - // the loop variable cannot be used in the condition - private function checkLoopUsageCondition(TokenStream $stream, Node $node) - { - if ($node instanceof GetAttrExpression && $node->getNode('node') instanceof NameExpression && 'loop' == $node->getNode('node')->getAttribute('name')) { - throw new SyntaxError('The "loop" variable cannot be used in a looping condition.', $node->getTemplateLine(), $stream->getSourceContext()); - } - - foreach ($node as $n) { - if (!$n) { - continue; - } - - $this->checkLoopUsageCondition($stream, $n); - } - } - - // check usage of non-defined loop-items - // it does not catch all problems (for instance when a for is included into another or when the variable is used in an include) - private function checkLoopUsageBody(TokenStream $stream, Node $node) - { - if ($node instanceof GetAttrExpression && $node->getNode('node') instanceof NameExpression && 'loop' == $node->getNode('node')->getAttribute('name')) { - $attribute = $node->getNode('attribute'); - if ($attribute instanceof ConstantExpression && \in_array($attribute->getAttribute('value'), ['length', 'revindex0', 'revindex', 'last'])) { - throw new SyntaxError(sprintf('The "loop.%s" variable is not defined when looping with a condition.', $attribute->getAttribute('value')), $node->getTemplateLine(), $stream->getSourceContext()); - } - } - - // should check for parent.loop.XXX usage - if ($node instanceof ForNode) { - return; - } - - foreach ($node as $n) { - if (!$n) { - continue; - } - - $this->checkLoopUsageBody($stream, $n); - } - } - - public function getTag() - { - return 'for'; - } -} - -class_alias('Twig\TokenParser\ForTokenParser', 'Twig_TokenParser_For'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/FromTokenParser.php b/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/FromTokenParser.php deleted file mode 100644 index dd49f2f..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/FromTokenParser.php +++ /dev/null @@ -1,65 +0,0 @@ -parser->getExpressionParser()->parseExpression(); - $stream = $this->parser->getStream(); - $stream->expect(/* Token::NAME_TYPE */ 5, 'import'); - - $targets = []; - do { - $name = $stream->expect(/* Token::NAME_TYPE */ 5)->getValue(); - - $alias = $name; - if ($stream->nextIf('as')) { - $alias = $stream->expect(/* Token::NAME_TYPE */ 5)->getValue(); - } - - $targets[$name] = $alias; - - if (!$stream->nextIf(/* Token::PUNCTUATION_TYPE */ 9, ',')) { - break; - } - } while (true); - - $stream->expect(/* Token::BLOCK_END_TYPE */ 3); - - $var = new AssignNameExpression($this->parser->getVarName(), $token->getLine()); - $node = new ImportNode($macro, $var, $token->getLine(), $this->getTag(), $this->parser->isMainScope()); - - foreach ($targets as $name => $alias) { - $this->parser->addImportedSymbol('function', $alias, 'macro_'.$name, $var); - } - - return $node; - } - - public function getTag() - { - return 'from'; - } -} - -class_alias('Twig\TokenParser\FromTokenParser', 'Twig_TokenParser_From'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/IfTokenParser.php b/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/IfTokenParser.php deleted file mode 100644 index 8ad99f0..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/IfTokenParser.php +++ /dev/null @@ -1,89 +0,0 @@ - - * {% for user in users %} - *
  • {{ user.username|e }}
  • - * {% endfor %} - * - * {% endif %} - */ -final class IfTokenParser extends AbstractTokenParser -{ - public function parse(Token $token) - { - $lineno = $token->getLine(); - $expr = $this->parser->getExpressionParser()->parseExpression(); - $stream = $this->parser->getStream(); - $stream->expect(/* Token::BLOCK_END_TYPE */ 3); - $body = $this->parser->subparse([$this, 'decideIfFork']); - $tests = [$expr, $body]; - $else = null; - - $end = false; - while (!$end) { - switch ($stream->next()->getValue()) { - case 'else': - $stream->expect(/* Token::BLOCK_END_TYPE */ 3); - $else = $this->parser->subparse([$this, 'decideIfEnd']); - break; - - case 'elseif': - $expr = $this->parser->getExpressionParser()->parseExpression(); - $stream->expect(/* Token::BLOCK_END_TYPE */ 3); - $body = $this->parser->subparse([$this, 'decideIfFork']); - $tests[] = $expr; - $tests[] = $body; - break; - - case 'endif': - $end = true; - break; - - default: - throw new SyntaxError(sprintf('Unexpected end of template. Twig was looking for the following tags "else", "elseif", or "endif" to close the "if" block started at line %d).', $lineno), $stream->getCurrent()->getLine(), $stream->getSourceContext()); - } - } - - $stream->expect(/* Token::BLOCK_END_TYPE */ 3); - - return new IfNode(new Node($tests), $else, $lineno, $this->getTag()); - } - - public function decideIfFork(Token $token) - { - return $token->test(['elseif', 'else', 'endif']); - } - - public function decideIfEnd(Token $token) - { - return $token->test(['endif']); - } - - public function getTag() - { - return 'if'; - } -} - -class_alias('Twig\TokenParser\IfTokenParser', 'Twig_TokenParser_If'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/ImportTokenParser.php b/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/ImportTokenParser.php deleted file mode 100644 index b5674c1..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/ImportTokenParser.php +++ /dev/null @@ -1,43 +0,0 @@ -parser->getExpressionParser()->parseExpression(); - $this->parser->getStream()->expect(/* Token::NAME_TYPE */ 5, 'as'); - $var = new AssignNameExpression($this->parser->getStream()->expect(/* Token::NAME_TYPE */ 5)->getValue(), $token->getLine()); - $this->parser->getStream()->expect(/* Token::BLOCK_END_TYPE */ 3); - - $this->parser->addImportedSymbol('template', $var->getAttribute('name')); - - return new ImportNode($macro, $var, $token->getLine(), $this->getTag(), $this->parser->isMainScope()); - } - - public function getTag() - { - return 'import'; - } -} - -class_alias('Twig\TokenParser\ImportTokenParser', 'Twig_TokenParser_Import'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/IncludeTokenParser.php b/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/IncludeTokenParser.php deleted file mode 100644 index e1e95da..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/IncludeTokenParser.php +++ /dev/null @@ -1,68 +0,0 @@ -parser->getExpressionParser()->parseExpression(); - - list($variables, $only, $ignoreMissing) = $this->parseArguments(); - - return new IncludeNode($expr, $variables, $only, $ignoreMissing, $token->getLine(), $this->getTag()); - } - - protected function parseArguments() - { - $stream = $this->parser->getStream(); - - $ignoreMissing = false; - if ($stream->nextIf(/* Token::NAME_TYPE */ 5, 'ignore')) { - $stream->expect(/* Token::NAME_TYPE */ 5, 'missing'); - - $ignoreMissing = true; - } - - $variables = null; - if ($stream->nextIf(/* Token::NAME_TYPE */ 5, 'with')) { - $variables = $this->parser->getExpressionParser()->parseExpression(); - } - - $only = false; - if ($stream->nextIf(/* Token::NAME_TYPE */ 5, 'only')) { - $only = true; - } - - $stream->expect(/* Token::BLOCK_END_TYPE */ 3); - - return [$variables, $only, $ignoreMissing]; - } - - public function getTag() - { - return 'include'; - } -} - -class_alias('Twig\TokenParser\IncludeTokenParser', 'Twig_TokenParser_Include'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/MacroTokenParser.php b/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/MacroTokenParser.php deleted file mode 100644 index d267387..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/MacroTokenParser.php +++ /dev/null @@ -1,66 +0,0 @@ - - * {% endmacro %} - */ -final class MacroTokenParser extends AbstractTokenParser -{ - public function parse(Token $token) - { - $lineno = $token->getLine(); - $stream = $this->parser->getStream(); - $name = $stream->expect(/* Token::NAME_TYPE */ 5)->getValue(); - - $arguments = $this->parser->getExpressionParser()->parseArguments(true, true); - - $stream->expect(/* Token::BLOCK_END_TYPE */ 3); - $this->parser->pushLocalScope(); - $body = $this->parser->subparse([$this, 'decideBlockEnd'], true); - if ($token = $stream->nextIf(/* Token::NAME_TYPE */ 5)) { - $value = $token->getValue(); - - if ($value != $name) { - throw new SyntaxError(sprintf('Expected endmacro for macro "%s" (but "%s" given).', $name, $value), $stream->getCurrent()->getLine(), $stream->getSourceContext()); - } - } - $this->parser->popLocalScope(); - $stream->expect(/* Token::BLOCK_END_TYPE */ 3); - - $this->parser->setMacro($name, new MacroNode($name, new BodyNode([$body]), $arguments, $lineno, $this->getTag())); - - return new Node(); - } - - public function decideBlockEnd(Token $token) - { - return $token->test('endmacro'); - } - - public function getTag() - { - return 'macro'; - } -} - -class_alias('Twig\TokenParser\MacroTokenParser', 'Twig_TokenParser_Macro'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/SandboxTokenParser.php b/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/SandboxTokenParser.php deleted file mode 100644 index 1f57987..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/SandboxTokenParser.php +++ /dev/null @@ -1,65 +0,0 @@ -parser->getStream(); - $stream->expect(/* Token::BLOCK_END_TYPE */ 3); - $body = $this->parser->subparse([$this, 'decideBlockEnd'], true); - $stream->expect(/* Token::BLOCK_END_TYPE */ 3); - - // in a sandbox tag, only include tags are allowed - if (!$body instanceof IncludeNode) { - foreach ($body as $node) { - if ($node instanceof TextNode && ctype_space($node->getAttribute('data'))) { - continue; - } - - if (!$node instanceof IncludeNode) { - throw new SyntaxError('Only "include" tags are allowed within a "sandbox" section.', $node->getTemplateLine(), $stream->getSourceContext()); - } - } - } - - return new SandboxNode($body, $token->getLine(), $this->getTag()); - } - - public function decideBlockEnd(Token $token) - { - return $token->test('endsandbox'); - } - - public function getTag() - { - return 'sandbox'; - } -} - -class_alias('Twig\TokenParser\SandboxTokenParser', 'Twig_TokenParser_Sandbox'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/SetTokenParser.php b/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/SetTokenParser.php deleted file mode 100644 index 82fee26..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/SetTokenParser.php +++ /dev/null @@ -1,72 +0,0 @@ -getLine(); - $stream = $this->parser->getStream(); - $names = $this->parser->getExpressionParser()->parseAssignmentExpression(); - - $capture = false; - if ($stream->nextIf(/* Token::OPERATOR_TYPE */ 8, '=')) { - $values = $this->parser->getExpressionParser()->parseMultitargetExpression(); - - $stream->expect(/* Token::BLOCK_END_TYPE */ 3); - - if (\count($names) !== \count($values)) { - throw new SyntaxError('When using set, you must have the same number of variables and assignments.', $stream->getCurrent()->getLine(), $stream->getSourceContext()); - } - } else { - $capture = true; - - if (\count($names) > 1) { - throw new SyntaxError('When using set with a block, you cannot have a multi-target.', $stream->getCurrent()->getLine(), $stream->getSourceContext()); - } - - $stream->expect(/* Token::BLOCK_END_TYPE */ 3); - - $values = $this->parser->subparse([$this, 'decideBlockEnd'], true); - $stream->expect(/* Token::BLOCK_END_TYPE */ 3); - } - - return new SetNode($capture, $names, $values, $lineno, $this->getTag()); - } - - public function decideBlockEnd(Token $token) - { - return $token->test('endset'); - } - - public function getTag() - { - return 'set'; - } -} - -class_alias('Twig\TokenParser\SetTokenParser', 'Twig_TokenParser_Set'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/SpacelessTokenParser.php b/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/SpacelessTokenParser.php deleted file mode 100644 index b58624d..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/SpacelessTokenParser.php +++ /dev/null @@ -1,56 +0,0 @@ - - * foo - * - * {% endspaceless %} - * {# output will be
    foo
    #} - * - * @deprecated since Twig 2.7, to be removed in 3.0 (use the "spaceless" filter with the "apply" tag instead) - */ -final class SpacelessTokenParser extends AbstractTokenParser -{ - public function parse(Token $token) - { - $stream = $this->parser->getStream(); - $lineno = $token->getLine(); - - @trigger_error(sprintf('The spaceless tag in "%s" at line %d is deprecated since Twig 2.7, use the "spaceless" filter with the "apply" tag instead.', $stream->getSourceContext()->getName(), $lineno), E_USER_DEPRECATED); - - $stream->expect(/* Token::BLOCK_END_TYPE */ 3); - $body = $this->parser->subparse([$this, 'decideSpacelessEnd'], true); - $stream->expect(/* Token::BLOCK_END_TYPE */ 3); - - return new SpacelessNode($body, $lineno, $this->getTag()); - } - - public function decideSpacelessEnd(Token $token) - { - return $token->test('endspaceless'); - } - - public function getTag() - { - return 'spaceless'; - } -} - -class_alias('Twig\TokenParser\SpacelessTokenParser', 'Twig_TokenParser_Spaceless'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/TokenParserInterface.php b/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/TokenParserInterface.php deleted file mode 100644 index 6f34106..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/TokenParserInterface.php +++ /dev/null @@ -1,52 +0,0 @@ - - */ -interface TokenParserInterface -{ - /** - * Sets the parser associated with this token parser. - */ - public function setParser(Parser $parser); - - /** - * Parses a token and returns a node. - * - * @return Node - * - * @throws SyntaxError - */ - public function parse(Token $token); - - /** - * Gets the tag name associated with this token parser. - * - * @return string The tag name - */ - public function getTag(); -} - -class_alias('Twig\TokenParser\TokenParserInterface', 'Twig_TokenParserInterface'); - -// Ensure that the aliased name is loaded to keep BC for classes implementing the typehint with the old aliased name. -class_exists('Twig\Token'); -class_exists('Twig\Parser'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/UseTokenParser.php b/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/UseTokenParser.php deleted file mode 100644 index 266efe5..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/UseTokenParser.php +++ /dev/null @@ -1,73 +0,0 @@ -parser->getExpressionParser()->parseExpression(); - $stream = $this->parser->getStream(); - - if (!$template instanceof ConstantExpression) { - throw new SyntaxError('The template references in a "use" statement must be a string.', $stream->getCurrent()->getLine(), $stream->getSourceContext()); - } - - $targets = []; - if ($stream->nextIf('with')) { - do { - $name = $stream->expect(/* Token::NAME_TYPE */ 5)->getValue(); - - $alias = $name; - if ($stream->nextIf('as')) { - $alias = $stream->expect(/* Token::NAME_TYPE */ 5)->getValue(); - } - - $targets[$name] = new ConstantExpression($alias, -1); - - if (!$stream->nextIf(/* Token::PUNCTUATION_TYPE */ 9, ',')) { - break; - } - } while (true); - } - - $stream->expect(/* Token::BLOCK_END_TYPE */ 3); - - $this->parser->addTrait(new Node(['template' => $template, 'targets' => new Node($targets)])); - - return new Node(); - } - - public function getTag() - { - return 'use'; - } -} - -class_alias('Twig\TokenParser\UseTokenParser', 'Twig_TokenParser_Use'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/WithTokenParser.php b/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/WithTokenParser.php deleted file mode 100644 index c184fd7..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/WithTokenParser.php +++ /dev/null @@ -1,55 +0,0 @@ - - */ -final class WithTokenParser extends AbstractTokenParser -{ - public function parse(Token $token) - { - $stream = $this->parser->getStream(); - - $variables = null; - $only = false; - if (!$stream->test(/* Token::BLOCK_END_TYPE */ 3)) { - $variables = $this->parser->getExpressionParser()->parseExpression(); - $only = (bool) $stream->nextIf(/* Token::NAME_TYPE */ 5, 'only'); - } - - $stream->expect(/* Token::BLOCK_END_TYPE */ 3); - - $body = $this->parser->subparse([$this, 'decideWithEnd'], true); - - $stream->expect(/* Token::BLOCK_END_TYPE */ 3); - - return new WithNode($body, $variables, $only, $token->getLine(), $this->getTag()); - } - - public function decideWithEnd(Token $token) - { - return $token->test('endwith'); - } - - public function getTag() - { - return 'with'; - } -} - -class_alias('Twig\TokenParser\WithTokenParser', 'Twig_TokenParser_With'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/TokenStream.php b/srcs/phpmyadmin/vendor/twig/twig/src/TokenStream.php deleted file mode 100644 index 3fb9e86..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/TokenStream.php +++ /dev/null @@ -1,134 +0,0 @@ - - */ -final class TokenStream -{ - private $tokens; - private $current = 0; - private $source; - - public function __construct(array $tokens, Source $source = null) - { - $this->tokens = $tokens; - $this->source = $source ?: new Source('', ''); - } - - public function __toString() - { - return implode("\n", $this->tokens); - } - - public function injectTokens(array $tokens) - { - $this->tokens = array_merge(\array_slice($this->tokens, 0, $this->current), $tokens, \array_slice($this->tokens, $this->current)); - } - - /** - * Sets the pointer to the next token and returns the old one. - */ - public function next(): Token - { - if (!isset($this->tokens[++$this->current])) { - throw new SyntaxError('Unexpected end of template.', $this->tokens[$this->current - 1]->getLine(), $this->source); - } - - return $this->tokens[$this->current - 1]; - } - - /** - * Tests a token, sets the pointer to the next one and returns it or throws a syntax error. - * - * @return Token|null The next token if the condition is true, null otherwise - */ - public function nextIf($primary, $secondary = null) - { - if ($this->tokens[$this->current]->test($primary, $secondary)) { - return $this->next(); - } - } - - /** - * Tests a token and returns it or throws a syntax error. - */ - public function expect($type, $value = null, string $message = null): Token - { - $token = $this->tokens[$this->current]; - if (!$token->test($type, $value)) { - $line = $token->getLine(); - throw new SyntaxError(sprintf('%sUnexpected token "%s"%s ("%s" expected%s).', - $message ? $message.'. ' : '', - Token::typeToEnglish($token->getType()), - $token->getValue() ? sprintf(' of value "%s"', $token->getValue()) : '', - Token::typeToEnglish($type), $value ? sprintf(' with value "%s"', $value) : ''), - $line, - $this->source - ); - } - $this->next(); - - return $token; - } - - /** - * Looks at the next token. - */ - public function look(int $number = 1): Token - { - if (!isset($this->tokens[$this->current + $number])) { - throw new SyntaxError('Unexpected end of template.', $this->tokens[$this->current + $number - 1]->getLine(), $this->source); - } - - return $this->tokens[$this->current + $number]; - } - - /** - * Tests the current token. - */ - public function test($primary, $secondary = null): bool - { - return $this->tokens[$this->current]->test($primary, $secondary); - } - - /** - * Checks if end of stream was reached. - */ - public function isEOF(): bool - { - return /* Token::EOF_TYPE */ -1 === $this->tokens[$this->current]->getType(); - } - - public function getCurrent(): Token - { - return $this->tokens[$this->current]; - } - - /** - * Gets the source associated with this stream. - * - * @internal - */ - public function getSourceContext(): Source - { - return $this->source; - } -} - -class_alias('Twig\TokenStream', 'Twig_TokenStream'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/TwigFilter.php b/srcs/phpmyadmin/vendor/twig/twig/src/TwigFilter.php deleted file mode 100644 index 9e7b838..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/TwigFilter.php +++ /dev/null @@ -1,150 +0,0 @@ - - * - * @see https://twig.symfony.com/doc/templates.html#filters - */ -class TwigFilter -{ - private $name; - private $callable; - private $options; - private $arguments = []; - - /** - * Creates a template filter. - * - * @param string $name Name of this filter - * @param callable|null $callable A callable implementing the filter. If null, you need to overwrite the "node_class" option to customize compilation. - * @param array $options Options array - */ - public function __construct(string $name, $callable = null, array $options = []) - { - if (__CLASS__ !== \get_class($this)) { - @trigger_error('Overriding '.__CLASS__.' is deprecated since Twig 2.4.0 and the class will be final in 3.0.', E_USER_DEPRECATED); - } - - $this->name = $name; - $this->callable = $callable; - $this->options = array_merge([ - 'needs_environment' => false, - 'needs_context' => false, - 'is_variadic' => false, - 'is_safe' => null, - 'is_safe_callback' => null, - 'pre_escape' => null, - 'preserves_safety' => null, - 'node_class' => FilterExpression::class, - 'deprecated' => false, - 'alternative' => null, - ], $options); - } - - public function getName() - { - return $this->name; - } - - /** - * Returns the callable to execute for this filter. - * - * @return callable|null - */ - public function getCallable() - { - return $this->callable; - } - - public function getNodeClass() - { - return $this->options['node_class']; - } - - public function setArguments($arguments) - { - $this->arguments = $arguments; - } - - public function getArguments() - { - return $this->arguments; - } - - public function needsEnvironment() - { - return $this->options['needs_environment']; - } - - public function needsContext() - { - return $this->options['needs_context']; - } - - public function getSafe(Node $filterArgs) - { - if (null !== $this->options['is_safe']) { - return $this->options['is_safe']; - } - - if (null !== $this->options['is_safe_callback']) { - return $this->options['is_safe_callback']($filterArgs); - } - } - - public function getPreservesSafety() - { - return $this->options['preserves_safety']; - } - - public function getPreEscape() - { - return $this->options['pre_escape']; - } - - public function isVariadic() - { - return $this->options['is_variadic']; - } - - public function isDeprecated() - { - return (bool) $this->options['deprecated']; - } - - public function getDeprecatedVersion() - { - return $this->options['deprecated']; - } - - public function getAlternative() - { - return $this->options['alternative']; - } -} - -// For Twig 1.x compatibility -class_alias('Twig\TwigFilter', 'Twig_SimpleFilter', false); - -class_alias('Twig\TwigFilter', 'Twig_Filter'); - -// Ensure that the aliased name is loaded to keep BC for classes implementing the typehint with the old aliased name. -class_exists('Twig\Node\Node'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/TwigFunction.php b/srcs/phpmyadmin/vendor/twig/twig/src/TwigFunction.php deleted file mode 100644 index c5779af..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/TwigFunction.php +++ /dev/null @@ -1,140 +0,0 @@ - - * - * @see https://twig.symfony.com/doc/templates.html#functions - */ -class TwigFunction -{ - private $name; - private $callable; - private $options; - private $arguments = []; - - /** - * Creates a template function. - * - * @param string $name Name of this function - * @param callable|null $callable A callable implementing the function. If null, you need to overwrite the "node_class" option to customize compilation. - * @param array $options Options array - */ - public function __construct(string $name, $callable = null, array $options = []) - { - if (__CLASS__ !== \get_class($this)) { - @trigger_error('Overriding '.__CLASS__.' is deprecated since Twig 2.4.0 and the class will be final in 3.0.', E_USER_DEPRECATED); - } - - $this->name = $name; - $this->callable = $callable; - $this->options = array_merge([ - 'needs_environment' => false, - 'needs_context' => false, - 'is_variadic' => false, - 'is_safe' => null, - 'is_safe_callback' => null, - 'node_class' => FunctionExpression::class, - 'deprecated' => false, - 'alternative' => null, - ], $options); - } - - public function getName() - { - return $this->name; - } - - /** - * Returns the callable to execute for this function. - * - * @return callable|null - */ - public function getCallable() - { - return $this->callable; - } - - public function getNodeClass() - { - return $this->options['node_class']; - } - - public function setArguments($arguments) - { - $this->arguments = $arguments; - } - - public function getArguments() - { - return $this->arguments; - } - - public function needsEnvironment() - { - return $this->options['needs_environment']; - } - - public function needsContext() - { - return $this->options['needs_context']; - } - - public function getSafe(Node $functionArgs) - { - if (null !== $this->options['is_safe']) { - return $this->options['is_safe']; - } - - if (null !== $this->options['is_safe_callback']) { - return $this->options['is_safe_callback']($functionArgs); - } - - return []; - } - - public function isVariadic() - { - return $this->options['is_variadic']; - } - - public function isDeprecated() - { - return (bool) $this->options['deprecated']; - } - - public function getDeprecatedVersion() - { - return $this->options['deprecated']; - } - - public function getAlternative() - { - return $this->options['alternative']; - } -} - -// For Twig 1.x compatibility -class_alias('Twig\TwigFunction', 'Twig_SimpleFunction', false); - -class_alias('Twig\TwigFunction', 'Twig_Function'); - -// Ensure that the aliased name is loaded to keep BC for classes implementing the typehint with the old aliased name. -class_exists('Twig\Node\Node'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/TwigTest.php b/srcs/phpmyadmin/vendor/twig/twig/src/TwigTest.php deleted file mode 100644 index e15da41..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/TwigTest.php +++ /dev/null @@ -1,109 +0,0 @@ - - * - * @see https://twig.symfony.com/doc/templates.html#test-operator - */ -class TwigTest -{ - private $name; - private $callable; - private $options; - private $arguments = []; - - /** - * Creates a template test. - * - * @param string $name Name of this test - * @param callable|null $callable A callable implementing the test. If null, you need to overwrite the "node_class" option to customize compilation. - * @param array $options Options array - */ - public function __construct(string $name, $callable = null, array $options = []) - { - if (__CLASS__ !== \get_class($this)) { - @trigger_error('Overriding '.__CLASS__.' is deprecated since Twig 2.4.0 and the class will be final in 3.0.', E_USER_DEPRECATED); - } - - $this->name = $name; - $this->callable = $callable; - $this->options = array_merge([ - 'is_variadic' => false, - 'node_class' => TestExpression::class, - 'deprecated' => false, - 'alternative' => null, - ], $options); - } - - public function getName() - { - return $this->name; - } - - /** - * Returns the callable to execute for this test. - * - * @return callable|null - */ - public function getCallable() - { - return $this->callable; - } - - public function getNodeClass() - { - return $this->options['node_class']; - } - - public function setArguments($arguments) - { - $this->arguments = $arguments; - } - - public function getArguments() - { - return $this->arguments; - } - - public function isVariadic() - { - return $this->options['is_variadic']; - } - - public function isDeprecated() - { - return (bool) $this->options['deprecated']; - } - - public function getDeprecatedVersion() - { - return $this->options['deprecated']; - } - - public function getAlternative() - { - return $this->options['alternative']; - } -} - -// For Twig 1.x compatibility -class_alias('Twig\TwigTest', 'Twig_SimpleTest', false); - -class_alias('Twig\TwigTest', 'Twig_Test'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Util/DeprecationCollector.php b/srcs/phpmyadmin/vendor/twig/twig/src/Util/DeprecationCollector.php deleted file mode 100644 index d373698..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Util/DeprecationCollector.php +++ /dev/null @@ -1,79 +0,0 @@ - - */ -final class DeprecationCollector -{ - private $twig; - - public function __construct(Environment $twig) - { - $this->twig = $twig; - } - - /** - * Returns deprecations for templates contained in a directory. - * - * @param string $dir A directory where templates are stored - * @param string $ext Limit the loaded templates by extension - * - * @return array An array of deprecations - */ - public function collectDir($dir, $ext = '.twig') - { - $iterator = new \RegexIterator( - new \RecursiveIteratorIterator( - new \RecursiveDirectoryIterator($dir), \RecursiveIteratorIterator::LEAVES_ONLY - ), '{'.preg_quote($ext).'$}' - ); - - return $this->collect(new TemplateDirIterator($iterator)); - } - - /** - * Returns deprecations for passed templates. - * - * @param \Traversable $iterator An iterator of templates (where keys are template names and values the contents of the template) - * - * @return array An array of deprecations - */ - public function collect(\Traversable $iterator) - { - $deprecations = []; - set_error_handler(function ($type, $msg) use (&$deprecations) { - if (E_USER_DEPRECATED === $type) { - $deprecations[] = $msg; - } - }); - - foreach ($iterator as $name => $contents) { - try { - $this->twig->parse($this->twig->tokenize(new Source($contents, $name))); - } catch (SyntaxError $e) { - // ignore templates containing syntax errors - } - } - - restore_error_handler(); - - return $deprecations; - } -} - -class_alias('Twig\Util\DeprecationCollector', 'Twig_Util_DeprecationCollector'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Util/TemplateDirIterator.php b/srcs/phpmyadmin/vendor/twig/twig/src/Util/TemplateDirIterator.php deleted file mode 100644 index 1ab0dac..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Util/TemplateDirIterator.php +++ /dev/null @@ -1,30 +0,0 @@ - - */ -class TemplateDirIterator extends \IteratorIterator -{ - public function current() - { - return file_get_contents(parent::current()); - } - - public function key() - { - return (string) parent::key(); - } -} - -class_alias('Twig\Util\TemplateDirIterator', 'Twig_Util_TemplateDirIterator'); diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.dependabot/config.yml b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.dependabot/config.yml deleted file mode 100644 index 9b4a5b8..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.dependabot/config.yml +++ /dev/null @@ -1,14 +0,0 @@ -version: 1 -update_configs: - - package_manager: 'javascript' - directory: '/' - update_schedule: 'monthly' - default_reviewers: - - 'williamdes' - - - package_manager: 'php:composer' - directory: '/' - update_schedule: 'monthly' - default_reviewers: - - 'williamdes' - diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.editorconfig b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.editorconfig deleted file mode 100644 index f9366fa..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.editorconfig +++ /dev/null @@ -1,8 +0,0 @@ -root = true - -[*] -indent_style = space -indent_size = 4 -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.gitmodules b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.gitmodules deleted file mode 100644 index d63a336..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "docs"] - path = docs - url = git@github.com:williamdes/mariadb-mysql-kbs diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.jshintignore b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.jshintignore deleted file mode 100644 index 3788ae8..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.jshintignore +++ /dev/null @@ -1,9 +0,0 @@ -/tmp -/build -/docs -vendor -scripts/vendor -node_modules -dist -data -/.nyc_output diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.jshintrc b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.jshintrc deleted file mode 100644 index 227f9ca..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.jshintrc +++ /dev/null @@ -1,11 +0,0 @@ -{ - "strict": true, - "curly": true, - "quotmark": "simple", - "esversion": 6, - "browser": false, - "mocha": true, - "node": true, - "noempty": true, - "debug": false -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.npmignore b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.npmignore deleted file mode 100644 index 10ef25b..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.npmignore +++ /dev/null @@ -1,30 +0,0 @@ -/scripts -/data -/dist/merged-raw.json -/test -*.php -/composer.json -/composer.lock -/.prettierignore -/.gitignore -/phpcs.xml -/phpstan.neon -/.travis.yml -/dist/merged-raw.md -/docs -/vendor -/tmp -/.gitmodules -/build -/schemas -CODEOWNERS -/coverage -/coverage.lcov -/.nyc_output -/.editorconfig -/.jshintrc -/.dependabot -/.git -/williamdes-mariadb-mysql-kbs-*.tar -/.jshintignore -/.phpunit.result.cache diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.prettierignore b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.prettierignore deleted file mode 100644 index 4c741f5..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.prettierignore +++ /dev/null @@ -1,8 +0,0 @@ -/tmp -/build -/docs -vendor -node_modules -dist -data -/.nyc_output diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.travis.yml b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.travis.yml deleted file mode 100644 index fe33e14..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/.travis.yml +++ /dev/null @@ -1,174 +0,0 @@ -language: php - -before_install: - - openssl aes-256-cbc -K $encrypted_ab8f92ccaef0_key -iv $encrypted_ab8f92ccaef0_iv -in scripts/sudo-bot/keys.tar.enc -out scripts/sudo-bot/keys.tar -d - - tar -C scripts/sudo-bot/ -xvf scripts/sudo-bot/keys.tar -before_script: - - './scripts/ci/install-reporters.sh' - - './scripts/ci/install.sh' -script: - - ./scripts/ci/ci-$CI_TYPE.sh -install: - - if [ "$CI_COMPOSER" = "yes" ]; then composer install --ansi --prefer-dist --no-interaction --optimize-autoloader --no-suggest --no-progress; fi - - if [ "$CI_NPM" = "yes" ]; then npm ci; fi - - if [ "$CI_OLD_NPM" = "yes" ]; then npm install; fi -after_script: - - if [ "$TRAVIS_BUILD_STAGE_NAME" = "tests" ] && [ "$CI_TYPE" != "mocha" ]; then ./codacy-coverage.phar clover build/logs/clover.xml; else echo "skipped codacy"; fi -stages: - - name: lint - if: NOT type = cron - - name: tests - if: NOT type = cron - - name: robot - if: type = cron -jobs: - include: - - stage: lint - php: '7.3' - env: - - CI_TYPE=phpstan - - CI_COMPOSER=yes - name: 'PHPSTAN - PHP 7.3' - - stage: lint - php: '7.3' - env: - - CI_TYPE=phpcs - - CI_COMPOSER=yes - name: 'PHPCS - PHP 7.3' - - stage: tests - php: '7.1' - env: - - CI_TYPE=phpunit - - CI_COMPOSER=yes - name: 'PHPUNIT - PHP 7.1' - after_success: - - bash <(curl -s https://codecov.io/bash) -cF php - - stage: tests - php: '7.2' - env: - - CI_TYPE=phpunit - - CI_COMPOSER=yes - name: 'PHPUNIT - PHP 7.2' - after_success: - - bash <(curl -s https://codecov.io/bash) -cF php - - stage: tests - php: '7.3' - env: - - CI_TYPE=phpunit - - CI_COMPOSER=yes - name: 'PHPUNIT - PHP 7.3' - after_success: - - bash <(curl -s https://codecov.io/bash) -cF php - - stage: tests - os: osx - language: node_js - node_js: '10' - env: - - CI_TYPE=phpunit - - CI_COMPOSER=yes - name: 'PHPUNIT - PHP 7.1' - addons: - homebrew: - update: true - packages: - - php@7.1 - - composer - before_install: - - mkdir ~/.homebrew_logs - - export HOMEBREW_LOGS="~/.homebrew_logs" - - export HOMEBREW_TEMP="/tmp" - - export HOMEBREW_INSTALL_BADGE="🌻" - after_success: - - bash <(curl -s https://codecov.io/bash) -cF php - - stage: tests - os: osx - language: node_js - node_js: '10' - env: - - CI_TYPE=phpunit - - CI_COMPOSER=yes - name: 'PHPUNIT - PHP 7.2' - addons: - homebrew: - update: true - packages: - - php@7.2 - - composer - before_install: - - mkdir ~/.homebrew_logs - - export HOMEBREW_LOGS="~/.homebrew_logs" - - export HOMEBREW_TEMP="/tmp" - - export HOMEBREW_INSTALL_BADGE="🌻" - after_success: - - bash <(curl -s https://codecov.io/bash) -cF php - - stage: tests - os: osx - language: node_js - node_js: '10' - env: - - CI_TYPE=phpunit - - CI_COMPOSER=yes - name: 'PHPUNIT - PHP 7.3' - addons: - homebrew: - update: true - packages: - - php@7.3 - - composer - before_install: - - echo "memory_limit=-1" > /usr/local/etc/php/7.3/conf.d/50-travis-ci.ini - - echo "pcre.jit=0" >> /usr/local/etc/php/7.3/conf.d/50-travis-ci.ini - - mkdir ~/.homebrew_logs - - export HOMEBREW_LOGS="~/.homebrew_logs" - - export HOMEBREW_TEMP="/tmp" - - export HOMEBREW_INSTALL_BADGE="🌻" - after_success: - - bash <(curl -s https://codecov.io/bash) -cF php - - stage: robot - php: '7.2' - node_js: 'stable' - env: - - CI_TYPE=cron - - CI_OLD_NPM=yes - - CI_COMPOSER=yes - name: 'Create a pull-request to update data' - - stage: tests - language: node_js - node_js: 'stable' - env: - - CI_TYPE=mocha - - CI_NPM=yes - name: 'MOCHA - NODE stable' - after_success: - - bash <(curl -s https://codecov.io/bash) -cF javascript - - stage: lint - language: node_js - node_js: 'stable' - env: - - CI_TYPE=lint - - CI_NPM=yes - name: 'LINT - NODE stable' - - stage: lint - language: php - php: '7.3' - env: - - CI_TYPE=lint - - CI_COMPOSER=yes - name: 'LINT - PHP 7.3' - script: composer run phpcs -cache: - ccache: true - directories: - - $HOME/.composer/cache/ - - $HOME/.cache/bower - - $HOME/.npm - - $HOME/.cache/ci - - /var/cache/apt - - $HOME/Library/Caches/Homebrew -before_cache: - - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew cleanup; fi -addons: - apt: - update: false -git: - submodules: false diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/CHANGELOG.md b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/CHANGELOG.md deleted file mode 100644 index afb48fb..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/CHANGELOG.md +++ /dev/null @@ -1,424 +0,0 @@ -# Changelog -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). - -## [Unreleased] -## [v1.2.8] - -### Added - -- [8ca6999](https://github.com/williamdes/mariadb-mysql-kbs/commit/8ca6999e1487a9f43846530a3cc241ef7109b5bf) add: .gitattributes file - -### Changed - -- [b4afbca](https://github.com/williamdes/mariadb-mysql-kbs/commit/b4afbcabc7b40ebfb5b072de568f60063cf86adb) update: dependencies -- [856b39c](https://github.com/williamdes/mariadb-mysql-kbs/commit/856b39cbc7027bfee0f22c661960f694bbf08b32) update: [MySQL] updates -- [9d7b3c3](https://github.com/williamdes/mariadb-mysql-kbs/commit/9d7b3c3b973a3b0fa8fae5adc25f5ef02909203d) update: .gitattributes file -- [9eab800](https://github.com/williamdes/mariadb-mysql-kbs/commit/9eab8008ee3fc91c8817e744fc3755e7815cee47) update: .gitattributes file -- [530c6a6](https://github.com/williamdes/mariadb-mysql-kbs/commit/530c6a68d0f12eca9f1b0f4fd0f7d55f825847ae) update: [MariaDB] updates -- [53bae92](https://github.com/williamdes/mariadb-mysql-kbs/commit/53bae92f735f39271c881858074961fe3bc2e39e) update: [MariaDB] && [MySQL] updates -- [aeb2ffd](https://github.com/williamdes/mariadb-mysql-kbs/commit/aeb2ffd26fb7810d16a92330978f87f06da280a7) update: [MariaDB] && [MySQL] updates -- [fd9ac5e](https://github.com/williamdes/mariadb-mysql-kbs/commit/fd9ac5e27e321e4625150e70dac8cb645fcfbfb6) update: [MariaDB] && [MySQL] updates -- [0860955](https://github.com/williamdes/mariadb-mysql-kbs/commit/0860955d111d44d4e0a6ee3e8392724cbfc32e2a) update: dependencies -- [215fcf3](https://github.com/williamdes/mariadb-mysql-kbs/commit/215fcf3849a0441c55abd64d7f56119428994218) update: [MySQL] updates -- [0434d0a](https://github.com/williamdes/mariadb-mysql-kbs/commit/0434d0a918087e1f0f3679ba007ab12d06b6c00d) update: [MySQL] updates -- [9a65d87](https://github.com/williamdes/mariadb-mysql-kbs/commit/9a65d879cbb67aaf34450d518b6df3d651ee23f5) update: [MariaDB] && [MySQL] updates -- [6f6f19f](https://github.com/williamdes/mariadb-mysql-kbs/commit/6f6f19fd404bee47239fe6648bca607ceb0b97e0) update: dependencies - -### Fixed - -- [baee0c0](https://github.com/williamdes/mariadb-mysql-kbs/commit/baee0c02d1428d8d1c8d7e0824bdb5463e68cc7f) fix: some MySQL and MariaDB fixes -- [185ebb2](https://github.com/williamdes/mariadb-mysql-kbs/commit/185ebb223ba0904e65395f226a13b3bc708014fb) fix: cleanCli undefined - -## [v1.2.7] - -### Changed - -- [6416780](https://github.com/williamdes/mariadb-mysql-kbs/commit/64167803686aff4090f72a6d89826364b1d88d7d) update: package version to 1.2.7 -- [520d89c](https://github.com/williamdes/mariadb-mysql-kbs/commit/520d89cbe75a088444e3536e7a2f0be31449efba) update: [security] bump lodash from 4.17.11 to 4.17.14 -- [cf60c43](https://github.com/williamdes/mariadb-mysql-kbs/commit/cf60c43cc4e7d7c284fa5181707343145f2d88f5) update: [security] bump lodash.merge from 4.6.1 to 4.6.2 -- [dfda544](https://github.com/williamdes/mariadb-mysql-kbs/commit/dfda544ecf47bf8cd995e3aebfb445d07f25bf5c) update: [MariaDB] && [MySQL] updates -- [4b31b18](https://github.com/williamdes/mariadb-mysql-kbs/commit/4b31b18c50a25f3e32a19d2b13218ef18166daa8) update: [MariaDB] && [MySQL] updates and other changes - -## [v1.2.6] - -### Added - -- [1c5ccf2](https://github.com/williamdes/mariadb-mysql-kbs/commit/1c5ccf288d2f96e8e18451bf17964de4bc8f38f4) add: SECURITY.md -- [61a933f](https://github.com/williamdes/mariadb-mysql-kbs/commit/61a933f6e0d67f4287ba73243f2d69417b76f609) added: dependencies up to date badge -- [a55aa0c](https://github.com/williamdes/mariadb-mysql-kbs/commit/a55aa0c33ed0f9a70921a5b5ee205f3a79442413) added: php lint to CI and removed apt cache key -- [b3edac6](https://github.com/williamdes/mariadb-mysql-kbs/commit/b3edac617d653623b1840f7dbc89bac9276c3f82) add: .phpunit.result.cache to ignores -- [77830b6](https://github.com/williamdes/mariadb-mysql-kbs/commit/77830b64be3803c7880702e0ba900d5946a11501) add: test command to composer.json -- [0daf1a8](https://github.com/williamdes/mariadb-mysql-kbs/commit/0daf1a866d8ae22033297df652e6795052ab2ebe) added: jshint to dev dependencies -- [3987131](https://github.com/williamdes/mariadb-mysql-kbs/commit/398713113a0387a3b666d52c55766a8dbb8bbad5) added: .jshintignore - -### Changed - -- [09de4e1](https://github.com/williamdes/mariadb-mysql-kbs/commit/09de4e1288b236fb38686f926c5567b88d2bb661) update: prettier from 1.17.1 to 1.18.2 -- [e4a96c9](https://github.com/williamdes/mariadb-mysql-kbs/commit/e4a96c94f85ca7e1fefe3a93761d20895790f857) update: package version to 1.2.6 -- [57a2f9c](https://github.com/williamdes/mariadb-mysql-kbs/commit/57a2f9cac2a45792cdc1ae214bc33308614cf9f2) update: [MariaDB] && [MySQL] updates -- [1ba2bdd](https://github.com/williamdes/mariadb-mysql-kbs/commit/1ba2bdd21b634d29aff5dd4dd0620e24b4fee2c7) update: [MariaDB] && [MySQL] updates -- [10e8854](https://github.com/williamdes/mariadb-mysql-kbs/commit/10e88548866862ef2c4313ec591c075ac7d70fa6) update: .travis.yml -- [414e4a6](https://github.com/williamdes/mariadb-mysql-kbs/commit/414e4a670f64056824c9712d6d3f067fcd27c6bc) update: @sudo-bot from 1.1.7 to 1.1.8 -- [2f8f42c](https://github.com/williamdes/mariadb-mysql-kbs/commit/2f8f42c8ceeae3c3cfdaeebd93d5ac299fad2c0e) update: @sudo-bot from 1.1.6 to 1.1.7 -- [9477c48](https://github.com/williamdes/mariadb-mysql-kbs/commit/9477c4866349d8e997ffd534a53297bd88e4b690) update: @sudo-bot from 1.1.5 to 1.1.6 -- [824f4f0](https://github.com/williamdes/mariadb-mysql-kbs/commit/824f4f01517dbf5e0654d486402545001d3f2015) update: [MySQL] data -- [55d6f72](https://github.com/williamdes/mariadb-mysql-kbs/commit/55d6f72913e24c2f32f2c9c3df285ba117f10f8a) update: [MariaDB] data -- [f679d22](https://github.com/williamdes/mariadb-mysql-kbs/commit/f679d2207b5c8d99044471de6e492b3ccd5b4a78) updated: dependencies and package-lock.json -- [46f52d8](https://github.com/williamdes/mariadb-mysql-kbs/commit/46f52d8c91a332480b7f5907d28fea3e391662df) update: [MySQL] data -- [22a609b](https://github.com/williamdes/mariadb-mysql-kbs/commit/22a609b4072296a943102965f79b6e9a2be61fc2) updated: swaggest/json-schema from 0.12.3+ to 0.12.9+ & phpunit command -- [18d2e32](https://github.com/williamdes/mariadb-mysql-kbs/commit/18d2e3237f3ed8a316fe3c4c2683012196b2ac9d) update: [MySQL] data -- [c5cafc6](https://github.com/williamdes/mariadb-mysql-kbs/commit/c5cafc66b59aee56e0db8ca42a0ddb8e0fc14f7e) update: [MariaDB] && [MySQL] updates -- [b2f66ca](https://github.com/williamdes/mariadb-mysql-kbs/commit/b2f66ca3851a5908d491769cacb4cbc726c558bd) updated: dependencies and package-lock.json -- [ac490c2](https://github.com/williamdes/mariadb-mysql-kbs/commit/ac490c2c6f3b7267fb72cb06d7990e547dd435d3) update: @sudo-bot cron script and README.md -- [13b93dc](https://github.com/williamdes/mariadb-mysql-kbs/commit/13b93dc37cb2f2e1d5ebfe6cc990a1065920da7a) update: [MariaDB] && [MySQL] updates -- [a9ddf62](https://github.com/williamdes/mariadb-mysql-kbs/commit/a9ddf62d554500b04a52ca0d425cceab955a656a) updated: prettier and mocha dependencies -- [1df9f60](https://github.com/williamdes/mariadb-mysql-kbs/commit/1df9f6031d72257f4b2e5223ed78d3ded32bfa6a) update: [MariaDB] && [MySQL] updates -- [1862d41](https://github.com/williamdes/mariadb-mysql-kbs/commit/1862d4158b6b285da798b9919af39686de683205) updated: sudo-bot and codecov npm dependencies -- [d2c8b8e](https://github.com/williamdes/mariadb-mysql-kbs/commit/d2c8b8ebdcdc603084c4235e78f93fd4c9f24c8d) update: [MySQL] updates - -### Removed - -- [f2d43b0](https://github.com/williamdes/mariadb-mysql-kbs/commit/f2d43b099df2442e5599130c86a72200811c4dbf) removed: spy script (useless) - -### Fixed - -- [4277ed2](https://github.com/williamdes/mariadb-mysql-kbs/commit/4277ed250f2500cb4c47253796f35dfba69d88b2) fix: alert detected by lgtm -- [6d386ce](https://github.com/williamdes/mariadb-mysql-kbs/commit/6d386ce5f1a7f225dd8b38f82f7a0c4aa2f3bdd2) fix: CI @sudo-bot script -- [b8ab559](https://github.com/williamdes/mariadb-mysql-kbs/commit/b8ab5592c5d54a35a6767b3a10c26d7fd53a7689) fix: MariaDB script -- [2362512](https://github.com/williamdes/mariadb-mysql-kbs/commit/2362512aa8da242158303620d4d2509229769e85) fix: move crawler to dev-dependencies -- [f106ca1](https://github.com/williamdes/mariadb-mysql-kbs/commit/f106ca1f2e2e6ba92bbae29bf343de90b0292717) fix: CI and .gitignore and phpstan command -- [ba2631e](https://github.com/williamdes/mariadb-mysql-kbs/commit/ba2631e1fd3265e58764ee06ce1a8bc37ab11813) fix: cleaner and add tests -- [e80c410](https://github.com/williamdes/mariadb-mysql-kbs/commit/e80c410f72cb8f899cab74eb72026db1026e6457) fix: @sudo-bot CI -- [a7cf7bd](https://github.com/williamdes/mariadb-mysql-kbs/commit/a7cf7bdf0a9ce4e49d6f7b56e26a58c71fa79ec0) fix: remove renamed file -- [8fd2d9f](https://github.com/williamdes/mariadb-mysql-kbs/commit/8fd2d9fc7a0507f35a44266a0c1a84f927f1a770) fix: @sudo-bot CI -- [cc7aac7](https://github.com/williamdes/mariadb-mysql-kbs/commit/cc7aac74f2ba0341661b65ab49b65ebd1afd1e41) fixed: CI reporting for non mocha tests -- [b40a61b](https://github.com/williamdes/mariadb-mysql-kbs/commit/b40a61bd0c0d3a2ecf3bdf6532bee02009fc1245) fix: @sudo-bot use 'npm ci' when package-lock.json exists -- [43b8e95](https://github.com/williamdes/mariadb-mysql-kbs/commit/43b8e95d27bfdba9a242b04c7e105e418a7fc816) fix: CI rename style to lint -- [7bb4a5b](https://github.com/williamdes/mariadb-mysql-kbs/commit/7bb4a5b6f6e062e775b6a54ab30a6d86528916a0) fixed: jshint setup -- [9143014](https://github.com/williamdes/mariadb-mysql-kbs/commit/91430143cc7687ca6650761b66f20ea39ff9ebc8) fixed: .npmignore - -### Improvements - -- [b4d600b](https://github.com/williamdes/mariadb-mysql-kbs/commit/b4d600b77993743c52b2f962b444a54be34b1107) improved: Improved extraction process and fixed bugs -- [7e81a29](https://github.com/williamdes/mariadb-mysql-kbs/commit/7e81a2943dd7bb6bfa369f056548b3239b9fbbaf) improved: move MariaDB and MySQL script to crawler and jquery -- [8190342](https://github.com/williamdes/mariadb-mysql-kbs/commit/8190342314ab1fa767c25b3960d2f8c17660a145) improved: Replace jsdom by crawler -- [be05dea](https://github.com/williamdes/mariadb-mysql-kbs/commit/be05dea67bb8cbc8f0ebb766d6236fdcfd89fea3) improved: CI install of npm and composer packages -- [e4b65db](https://github.com/williamdes/mariadb-mysql-kbs/commit/e4b65dbc851f623564afb3464014dc4ff49ada52) improved: Moved phpcs and phpcbf commands to composer -- [53bd313](https://github.com/williamdes/mariadb-mysql-kbs/commit/53bd31394c5b4a3f42692a54933f083d94347e9b) improved: Use namespace for tests -- [97f6095](https://github.com/williamdes/mariadb-mysql-kbs/commit/97f609580f412cdcd38ff61b20bfa69507661e60) improved: schemas testing -- [ed45a4d](https://github.com/williamdes/mariadb-mysql-kbs/commit/ed45a4db9216193a1e9ef42ea06a11fdd1c089ab) improved: added tests for each .json file format -- [5b51377](https://github.com/williamdes/mariadb-mysql-kbs/commit/5b51377f96821bb8778cf301f05d8573ea873c52) improved: Use phpunit for exception expectations -- [e646cd4](https://github.com/williamdes/mariadb-mysql-kbs/commit/e646cd4118a57131b99bdd8ac3d4d15b700b0ca4) improved: Move spy to cleaner and add tests -- [bc65814](https://github.com/williamdes/mariadb-mysql-kbs/commit/bc658145bde334580b3b495211081aa361099a4f) improved: extract scripts and use Promise and callbacks - -## [v1.2.5] - -### Added - -- [046c3fe](https://github.com/williamdes/mariadb-mysql-kbs/commit/046c3fe15cbf57d89e283b62f5a8b03c576a0337) added: php7.3 and osx php7.3 to test matrix -- [2491c41](https://github.com/williamdes/mariadb-mysql-kbs/commit/2491c415adaa65ab37b47d52cfb322d95fe7767d) added: snyk and dependabot to README.md -- [3fa4313](https://github.com/williamdes/mariadb-mysql-kbs/commit/3fa43131b44f8b5407bb63411589ffa61dcb75b9) added: dependabot config -- [571ccf3](https://github.com/williamdes/mariadb-mysql-kbs/commit/571ccf3edc1b3b5cfa0245d5518063a9434d0835) added: LGTM and fixed changelog -- [a068fde](https://github.com/williamdes/mariadb-mysql-kbs/commit/a068fde4a0421f96d4e1897170b409d638f9aabe) added: merged data and tests to PR template -- [effd148](https://github.com/williamdes/mariadb-mysql-kbs/commit/effd1487a0227d1092455838abd73e145808fd01) added: template for sudo-bot and mocha -- [d17883b](https://github.com/williamdes/mariadb-mysql-kbs/commit/d17883bc5b41d187f9c3132a8577fd470fb3213e) added: sudo-bot - -### Changed - -- [44264b0](https://github.com/williamdes/mariadb-mysql-kbs/commit/44264b03e02d0908749b696f68721fac99cbd133) update: package version to 1.2.5 -- [97ec035](https://github.com/williamdes/mariadb-mysql-kbs/commit/97ec035605cca060e3b7abf92d46ada85465a6d2) update: [MySQL] updates -- [9eb743f](https://github.com/williamdes/mariadb-mysql-kbs/commit/9eb743f65f4a1fbc80abab0247fe6e3896c98930) update: commit message format -- [5366e10](https://github.com/williamdes/mariadb-mysql-kbs/commit/5366e10a0625fa9f95f7eac7a43dfb9af43f72b6) updated: package-lock.json and package.json and changelog -- [2786d1a](https://github.com/williamdes/mariadb-mysql-kbs/commit/2786d1a5c98dd3b93bfca8706cc9d7e92b1770a7) updated: MySQL data -- [9cffbf6](https://github.com/williamdes/mariadb-mysql-kbs/commit/9cffbf64046836229d9c3f83674b213848833036) updated: MariaDB data -- [13d7ba4](https://github.com/williamdes/mariadb-mysql-kbs/commit/13d7ba4510e9957352790a02551eb247f4b17ad6) updated: composer.json && updated: composer.lock -- [7e80648](https://github.com/williamdes/mariadb-mysql-kbs/commit/7e80648f583ce760ab717a0a942bd6f576ede4bc) updated: composer.lock -- [affedaf](https://github.com/williamdes/mariadb-mysql-kbs/commit/affedaf9c5762fc01c5b6084b31f321de5e50140) updated: package-lock.json and dependabot config -- [0f8b1a0](https://github.com/williamdes/mariadb-mysql-kbs/commit/0f8b1a05978fc5d0573c0eacc23a97df17cc032e) updated: changelog 📖 -- [e031ee1](https://github.com/williamdes/mariadb-mysql-kbs/commit/e031ee1af193878dfccf7892c2aa553bc76f4f00) updated: package.json & package-lock.json -- [b4675f3](https://github.com/williamdes/mariadb-mysql-kbs/commit/b4675f313ad67ef4bee7a661014d0ffcf9911bd2) updated: sudo-bot -- [dd0ff5c](https://github.com/williamdes/mariadb-mysql-kbs/commit/dd0ff5c9448f65dde6d5ef829589e2115292aa20) updated: [MySQL] & [MariaDB] data -- [852b3a2](https://github.com/williamdes/mariadb-mysql-kbs/commit/852b3a2a527f620310fe2b90877d15ef315a60c9) updated: composer.lock and package-lock.json and updated package.json -- [ef766fd](https://github.com/williamdes/mariadb-mysql-kbs/commit/ef766fd9991e4fd1e80bb7b14abb2a352ecd4689) updated: changelog 📖 - -### Removed - -- [16a3d25](https://github.com/williamdes/mariadb-mysql-kbs/commit/16a3d259263d00eab648fa9bce2249e993be0aeb) removed: composer.lock -- [b0f997d](https://github.com/williamdes/mariadb-mysql-kbs/commit/b0f997d2abc033740a35d14cf16982356b207f16) removed: old changelog script -- [ab83775](https://github.com/williamdes/mariadb-mysql-kbs/commit/ab83775286f122b186526c106079e798525ca307) removed: deploy on tag - -### Fixed - -- [741b07e](https://github.com/williamdes/mariadb-mysql-kbs/commit/741b07e927b55cf35e918085462e0052153ff8dc) fix: .npmignore .gitignore and composer archive ignore -- [3e5ca71](https://github.com/williamdes/mariadb-mysql-kbs/commit/3e5ca71a782aeedd4e6a726ae1737905ca74d7e6) fix: composer non feature branches and nyc coverage -- [b00a8b0](https://github.com/williamdes/mariadb-mysql-kbs/commit/b00a8b09496f193c3289bf6f3c2ece4cd3a95967) fix: osx CI -- [9ac6e9b](https://github.com/williamdes/mariadb-mysql-kbs/commit/9ac6e9bf898de7760f7f53ddabdc28a2c5a548bb) fixed: changelog -- [127889d](https://github.com/williamdes/mariadb-mysql-kbs/commit/127889df59911291084b8b7815b98519002abd04) fixed: changelog -- [2b23349](https://github.com/williamdes/mariadb-mysql-kbs/commit/2b23349f867450f308a37045486ac6b61eb25a99) fixed: Travis CI -- [5377cec](https://github.com/williamdes/mariadb-mysql-kbs/commit/5377cec845b0cc0888a23a8185e24553f7c2a476) fixed: NPM package name in README.md -- [1b433f8](https://github.com/williamdes/mariadb-mysql-kbs/commit/1b433f8f30c6f1cb4ad42540f869614f13239fbb) fixed: nyc coverage -- [2f24409](https://github.com/williamdes/mariadb-mysql-kbs/commit/2f244099934d2d125d01d55dbe5c2388c09693ff) fixed: Coverage report and ignore files -- [8bee75a](https://github.com/williamdes/mariadb-mysql-kbs/commit/8bee75af85dc02e8be72fae9ff9e29c0670c7b77) fixed: CI coverage -- [ae75ce8](https://github.com/williamdes/mariadb-mysql-kbs/commit/ae75ce8c4fd44cdae42748f3ab769cdd0401868c) fixed: CI & mocha tests installation -- [8fa12ea](https://github.com/williamdes/mariadb-mysql-kbs/commit/8fa12eaab4a917677828a4f12f0b07f936c8a023) fixed: composer namespace -- [ee2c058](https://github.com/williamdes/mariadb-mysql-kbs/commit/ee2c05800e170ed0743b5905db43450359ca10e6) fixed: travis CI and other files -- [a4974c5](https://github.com/williamdes/mariadb-mysql-kbs/commit/a4974c5050132cd38945d2c639fdd614fb080d11) fix: OSX CI -- [a6a9ed8](https://github.com/williamdes/mariadb-mysql-kbs/commit/a6a9ed8d17fc672413bbebc5908928a1ad80a679) fix: OSX on CI -- [4762da9](https://github.com/williamdes/mariadb-mysql-kbs/commit/4762da9723c8da0378d990a3a9062b89ac71f4f6) fixed: npm ignore - -### Improvements - -- [f4cd7a0](https://github.com/williamdes/mariadb-mysql-kbs/commit/f4cd7a000f32939649796c8880f34dc2c8ceee93) style: prettier -- [40ca56a](https://github.com/williamdes/mariadb-mysql-kbs/commit/40ca56af22aafc5fc314e1c1dee7520ae2cf69b9) style: prettier on changelog.js - -## [v1.2.4] - -### Added - -- [5c00bb6](https://github.com/williamdes/mariadb-mysql-kbs/commit/5c00bb63e8423d092b5e21689e14ee83e9fc918f) added: deploy on tag -- [83b9b19](https://github.com/williamdes/mariadb-mysql-kbs/commit/83b9b19fe47b2a62065c5c3f3f67d1582b6554f1) added: Travis CI labels -- [00a10ea](https://github.com/williamdes/mariadb-mysql-kbs/commit/00a10eab8e00aaa0d073062957de291a02a472e5) added: sudo-bot cron script :factory: -- [071ef1d](https://github.com/williamdes/mariadb-mysql-kbs/commit/071ef1d991a718e972cf551f962e9a5f7b2f51c3) added: CODEOWNERS :lock: -- [4f71020](https://github.com/williamdes/mariadb-mysql-kbs/commit/4f7102047f310df55c85b0967aa872ada8d9fec5) added: [MariaDB] system-versioned-tables - -### Changed - -- [3092bc0](https://github.com/williamdes/mariadb-mysql-kbs/commit/3092bc0a3d03d580466b86de4036130e644ec94d) updated: composer.json & package.json - version 1.2.4 -- [797b1f3](https://github.com/williamdes/mariadb-mysql-kbs/commit/797b1f304443c18076cfa5e910af8c5f23703601) updated: [MySQL] & [MariaDB] data -- [c999377](https://github.com/williamdes/mariadb-mysql-kbs/commit/c9993779f679c7b02161977b6733706b7e793f08) updated: [MySQL] data -- [03d5d6e](https://github.com/williamdes/mariadb-mysql-kbs/commit/03d5d6ea73e29023466449021cb5441b67ffeea6) updated: [MariaDB] data -- [68f2187](https://github.com/williamdes/mariadb-mysql-kbs/commit/68f2187842df8cba506394ccbbb3ddcc7bc401fc) updated: changelog :book: - -### Fixed - -- [247f98b](https://github.com/williamdes/mariadb-mysql-kbs/commit/247f98b3d21ddd43d336e9f62af5808980bc3806) fixed: OSX tests -- [10e4ff6](https://github.com/williamdes/mariadb-mysql-kbs/commit/10e4ff6ff34c65248815d64c2699e5f2f7847c24) fixed: typo -- [cb792c8](https://github.com/williamdes/mariadb-mysql-kbs/commit/cb792c8133d5c48116d940a3e92657c51f8b4f64) fixed: npm ignore - -## [v1.2.3] - -### Added - -- [03cb762](https://github.com/williamdes/mariadb-mysql-kbs/commit/03cb7629b06f8d64e7b6ebced942a10d3d59c410) added: json schema validation for merged-ultraslim.json -- [fd46f68](https://github.com/williamdes/mariadb-mysql-kbs/commit/fd46f68ba96ffe28c53eeda1c2e41bb9e157d936) added: swaggest/json-schema - -### Changed - -- [8076644](https://github.com/williamdes/mariadb-mysql-kbs/commit/80766444c4443ba3101e4da6d0b3cfeef3c06351) updated: composer.json & package.json - version 1.2.3 -- [9bd0602](https://github.com/williamdes/mariadb-mysql-kbs/commit/9bd06026ca172822f806a7d0625b2ddf85e47e54) updated: api docs :book: -- [fb2f2f6](https://github.com/williamdes/mariadb-mysql-kbs/commit/fb2f2f6f6cdba32d4518529a272cbbf3ed37391f) updated: changelog :book: -- [6696ca7](https://github.com/williamdes/mariadb-mysql-kbs/commit/6696ca745ce172a24d1fb5ae1fefe82ae10b222a) updated: merged data -- [143e1f2](https://github.com/williamdes/mariadb-mysql-kbs/commit/143e1f24f559469f2f13bab7da5366d59d54e2fd) updated: [MariaDB] data -- [c99e2f7](https://github.com/williamdes/mariadb-mysql-kbs/commit/c99e2f7e07faedef1db039c5fc5c7c44f5dc8c52) updated: [MySQL] data -- [c2903a2](https://github.com/williamdes/mariadb-mysql-kbs/commit/c2903a29e2f2f60988276f21dc1f23464133ac4b) updated: composer.lock :lock: -- [5378614](https://github.com/williamdes/mariadb-mysql-kbs/commit/53786144f25bf89d0a040f3be6bc0378a17661f0) updated: changelog :book: - -### Removed - -- [2ab9b3c](https://github.com/williamdes/mariadb-mysql-kbs/commit/2ab9b3ce7aa43af77c47d0c096b3c7363203a053) removed: validate file -- [84fe040](https://github.com/williamdes/mariadb-mysql-kbs/commit/84fe040254d39f239286bbe77427298d590e5547) removed: testbench file - -### Fixed - -- [8abb014](https://github.com/williamdes/mariadb-mysql-kbs/commit/8abb01492af0b8c054cb878fa79560b774a637be) fixed: npm ignore - -### Improvements - -- [c920fd8](https://github.com/williamdes/mariadb-mysql-kbs/commit/c920fd8ea1c9a4be5d01237dd93ab3aef8caaa4e) improved: Tests :rocket: :package: - -## [v1.2.2] - -### Added - -- [e95b8dc](https://github.com/williamdes/mariadb-mysql-kbs/commit/e95b8dc10379bf00236ed0ee24abc0723b6a743a) added: phpcs rules -- [e402e0c](https://github.com/williamdes/mariadb-mysql-kbs/commit/e402e0c03086b8712b68d084bca1f5118ec282af) added: getVariable -- [4e7ae6f](https://github.com/williamdes/mariadb-mysql-kbs/commit/4e7ae6f4e2b349f25f68c028b1e5c3dab171b8b5) added: badges and install intructions :book: -- [9bed254](https://github.com/williamdes/mariadb-mysql-kbs/commit/9bed254abc3ac85b46aa8f6ddd3eb0fd03f32008) added: npm ignore -- [47c5d56](https://github.com/williamdes/mariadb-mysql-kbs/commit/47c5d56b7549050fc7b71da971cc5fc64f5790fb) added: changelog :book: -- [bbeed46](https://github.com/williamdes/mariadb-mysql-kbs/commit/bbeed466908936e25fa7685509e4b0834d2636f6) added: changelog generator :book: -- [5cf8a17](https://github.com/williamdes/mariadb-mysql-kbs/commit/5cf8a17fe58762591da828de2aeb930d55d70027) added: [MariaDB] more documentation - -### Changed - -- [5b6a4bd](https://github.com/williamdes/mariadb-mysql-kbs/commit/5b6a4bdca787a6204fd8ce9fdfffa3ea7cd43ee7) updated: composer.json & package.json + :lock: - version 1.2.2 -- [aa546c7](https://github.com/williamdes/mariadb-mysql-kbs/commit/aa546c73a3cd940d01f0866663c3a0ea99f1be4e) updated: changelog :book: -- [1777f13](https://github.com/williamdes/mariadb-mysql-kbs/commit/1777f13df5866179ce749ecb5b5c00988897f757) updated: prettier -- [e94a9db](https://github.com/williamdes/mariadb-mysql-kbs/commit/e94a9db838d678ccc3db039dccf116eb38586b2a) updated: [MySQL] & [MariaDB] data -- [59e5baa](https://github.com/williamdes/mariadb-mysql-kbs/commit/59e5baa7a31ac72c2ff4a17b5aefec40f98ed6a1) updated: release script -- [5140d06](https://github.com/williamdes/mariadb-mysql-kbs/commit/5140d062bb32ea80fe9155843d99f6a32e178782) updated: api docs -- [2bc0164](https://github.com/williamdes/mariadb-mysql-kbs/commit/2bc016434ed62141a45f3890cf5711bbd0f8755f) updated: composer.lock :lock: -- [c6cb704](https://github.com/williamdes/mariadb-mysql-kbs/commit/c6cb704b8711f2510769494362c60c63cc7cab6f) updated: composer.json & package.json -- [e2c6706](https://github.com/williamdes/mariadb-mysql-kbs/commit/e2c6706c74d9274f63f4185b108e6b335ecff14f) updated: changelog generator :book: -- [fb4cabe](https://github.com/williamdes/mariadb-mysql-kbs/commit/fb4cabe90393f1a7ec863f759be3795cdea36f84) updated: submodule commit hash - -### Fixed - -- [06737df](https://github.com/williamdes/mariadb-mysql-kbs/commit/06737dfb47665487ce9fb5cf7b490f54614fc0b2) fixed: phpcs rule -- [9acaab8](https://github.com/williamdes/mariadb-mysql-kbs/commit/9acaab87b15b2e9be1a21d9a3703faeb04bcaaf8) fixes: @throws is allowed in phpdoc -- [d4870a6](https://github.com/williamdes/mariadb-mysql-kbs/commit/d4870a6d02ff314001403cc1a1c45b93cce734ea) fixes: dataType bug - -### Improvements - -- [8af998f](https://github.com/williamdes/mariadb-mysql-kbs/commit/8af998fec0d2e95ddcedb3c586b44bd4df46eead) style: composer.json & package.json -- [5241c13](https://github.com/williamdes/mariadb-mysql-kbs/commit/5241c1338a87293d25ed25413aac50a801c1bcb2) style: phpcs & prettier -- [e5d987c](https://github.com/williamdes/mariadb-mysql-kbs/commit/e5d987c475b64bc002ffac46daab7068a8d7f506) style: phpcs & prettier - -## [v1.2.1] - -### Added - -- [fe488b8](https://github.com/williamdes/mariadb-mysql-kbs/commit/fe488b8008f153ba71e7b4a30432182db9c78e29) added: KBException>Exception -- [016346b](https://github.com/williamdes/mariadb-mysql-kbs/commit/016346bb53487b9761475468b35bffa1d73103f1) added: markdown format :package: :book: -- [8742aa0](https://github.com/williamdes/mariadb-mysql-kbs/commit/8742aa0cb2cb669b6df9e8d3637f18b12fc1fab7) added: markdown format in data :package: -- [5c01220](https://github.com/williamdes/mariadb-mysql-kbs/commit/5c0122006d029180bf358ece53c94194f8b58035) added: API docs :book: - -### Changed - -- [057b23f](https://github.com/williamdes/mariadb-mysql-kbs/commit/057b23face95ef95e977d7e145e58cb4b68aac3f) updated: composer.json & package.* - version 1.2.1 -- [bdaf01a](https://github.com/williamdes/mariadb-mysql-kbs/commit/bdaf01ae451c3b221b65ac7fe6462a17532055cd) updated: prettier ignore & composer archive & phpcs -- [f8786b2](https://github.com/williamdes/mariadb-mysql-kbs/commit/f8786b2d0519aaa1d37d4a74631830e360347975) updated: [MySQL] & [MariaDB] data -- [f64d72c](https://github.com/williamdes/mariadb-mysql-kbs/commit/f64d72c8db530449f3b72e9a71e3819518a5374d) updated: travis config -- [7df7e60](https://github.com/williamdes/mariadb-mysql-kbs/commit/7df7e60acf154fada34f3346669672b12f885732) updated: README :book: -- [bdf4e22](https://github.com/williamdes/mariadb-mysql-kbs/commit/bdf4e22b2d75523a63cc03c91b640485aceed1be) updated: phpcs & phpstan config - -### Fixed - -- [c16e655](https://github.com/williamdes/mariadb-mysql-kbs/commit/c16e655bd9ed2eebdb0cb8292184911794f3f808) fixes: command line bug in data -- [3637458](https://github.com/williamdes/mariadb-mysql-kbs/commit/3637458d2df6c1642ec323a405e73fc403aa693e) fixes: bug in validValues - -### Improvements - -- [08a29f0](https://github.com/williamdes/mariadb-mysql-kbs/commit/08a29f07bb2f600a06cf552fdca8426d95f9ba96) style: phpcs fixes - -## [v1.2.0] - -### Added - -- [1928c75](https://github.com/williamdes/mariadb-mysql-kbs/commit/1928c755602b21f6f80b6480216b2defed345950) added: getVariableType in API :rocket: -- [94b083c](https://github.com/williamdes/mariadb-mysql-kbs/commit/94b083cea9e669693d1be369fb454ae002a2a40b) added: variable type & ultraslim php :package: -- [e7368b7](https://github.com/williamdes/mariadb-mysql-kbs/commit/e7368b75acf63b22c87fa311b7bf784ddbf56540) added: spy script :eye: -- [ab2594e](https://github.com/williamdes/mariadb-mysql-kbs/commit/ab2594e07a2c7fdfb246f6a63c7f8a79eca47db8) added: [MySQL] documentation -- [e16eb29](https://github.com/williamdes/mariadb-mysql-kbs/commit/e16eb29a36a1cdc94e18041c6cd0fda1e468bda8) added: [MySQL] documentation -- [4e86741](https://github.com/williamdes/mariadb-mysql-kbs/commit/4e86741f2fc5d91f3011569ad78e6cafb63f4462) added: [MySQL] documentations -- [e156e4f](https://github.com/williamdes/mariadb-mysql-kbs/commit/e156e4f1301a9368e7ce4c63e631a4d6cd57911a) added: [MySQL] documentations -- [58751e1](https://github.com/williamdes/mariadb-mysql-kbs/commit/58751e1ebc7ada1a958886ce6ec9c572848a1572) added: JSON key sorter -- [0a66b68](https://github.com/williamdes/mariadb-mysql-kbs/commit/0a66b680e8ad0eddb88a683dc8dea9a148eb3740) added: [MySQL] data -- [f744088](https://github.com/williamdes/mariadb-mysql-kbs/commit/f744088ae963d7d060e120102465750fc5d7ab06) added: [MySQL] replication options documentation - -### Changed - -- [bf3be0f](https://github.com/williamdes/mariadb-mysql-kbs/commit/bf3be0f2f91e4299e23665cfe97df9e2489b578c) updated: composer.* & package.* - version 1.2.0 -- [599dee7](https://github.com/williamdes/mariadb-mysql-kbs/commit/599dee7e07f72826e339442d00fe0ee1ace42cc0) updated: phpcs & phpstan config -- [0dee19e](https://github.com/williamdes/mariadb-mysql-kbs/commit/0dee19efb1081b196b2fd9100b52b2174bbed786) updated: composer.json archive -- [a7f947e](https://github.com/williamdes/mariadb-mysql-kbs/commit/a7f947efc9ca76126482c052937b1e6bbc332457) updated: merged data -- [414021d](https://github.com/williamdes/mariadb-mysql-kbs/commit/414021daa725c39190cbc402ccee2f0b1740b132) updated: [MySQL] & [MariaDB] data -- [84fe8e7](https://github.com/williamdes/mariadb-mysql-kbs/commit/84fe8e7d46006f7b25e087f953b6db0ed3f5c07c) updated: phpstan config -- [e8eb1d4](https://github.com/williamdes/mariadb-mysql-kbs/commit/e8eb1d4b8400ea54efbc1a82217dc1af26c115df) updated: [MySQL] data -- [9d78bfc](https://github.com/williamdes/mariadb-mysql-kbs/commit/9d78bfc93c86776418591bb66242c867bedca8fb) updated: merged data -- [17370d6](https://github.com/williamdes/mariadb-mysql-kbs/commit/17370d6c621cda7008775bbaa2bfc5be4c9b66b2) updated: [MySQL] data -- [5e57001](https://github.com/williamdes/mariadb-mysql-kbs/commit/5e5700191aab19fc29411b7ecda0b0d597433a84) updated: merged data -- [c6badc1](https://github.com/williamdes/mariadb-mysql-kbs/commit/c6badc1a999df9d8b1b04fa9ba96800023d19348) updated: merged data -- [76281af](https://github.com/williamdes/mariadb-mysql-kbs/commit/76281af259455b8efd2b1a91597fb738afd2d607) updated: merged data -- [89ae61b](https://github.com/williamdes/mariadb-mysql-kbs/commit/89ae61bf3c68f0217167b4002fe0771620330558) updated: [MySQL] data -- [93f47a5](https://github.com/williamdes/mariadb-mysql-kbs/commit/93f47a54eedaef85b4b581ee5062d7eb7139f3f6) updated: [MySQL] & [MariaDB] data -- [9519e64](https://github.com/williamdes/mariadb-mysql-kbs/commit/9519e64c826e823599cbcb8f2054ee7fc19105a0) updated: merged data - -### Removed - -- [0c37939](https://github.com/williamdes/mariadb-mysql-kbs/commit/0c37939a1ac2fc5b206b0b4954ee48b3cef089d8) removed: :bug: dataType from data, now type - -### Fixed - -- [d33d2a1](https://github.com/williamdes/mariadb-mysql-kbs/commit/d33d2a1e7a99b77ef9aa2c37b2c06a52c9942c24) fixes: reported errors -- [34a58da](https://github.com/williamdes/mariadb-mysql-kbs/commit/34a58daba6097f2ad7ca4790b6afd51a81fcd3ef) fixes: dataType bug in spy :eye -- [42720e2](https://github.com/williamdes/mariadb-mysql-kbs/commit/42720e214b4821063636822e49d8dc8326d8dfa2) fixes: type bug -- [6e012b3](https://github.com/williamdes/mariadb-mysql-kbs/commit/6e012b3e511de60f2ebfb43e49a166762e0806a5) fixes: not array bug in merge -- [69484ae](https://github.com/williamdes/mariadb-mysql-kbs/commit/69484ae383825aa464895fd15190c057834ea498) fixes: key does not exist - -### Improvements - -- [0335da9](https://github.com/williamdes/mariadb-mysql-kbs/commit/0335da9b73afa5a8be956efc7766b1687225bb0e) improved: API :rocket: -- [362e136](https://github.com/williamdes/mariadb-mysql-kbs/commit/362e136166d6fbdaee17a4a409f9bcfc2a37920c) improved: [MySQL] extract script -- [042d762](https://github.com/williamdes/mariadb-mysql-kbs/commit/042d762b739bf8d84790246fedb6f04d1d0d3d2a) style: phpstan & prettier - -## [v1.1.0] - -### Added - -- [1dc3bf7](https://github.com/williamdes/mariadb-mysql-kbs/commit/1dc3bf7a651060398b9b6a28e1cb3b99cdf1f71e) added: prettier -- [797487a](https://github.com/williamdes/mariadb-mysql-kbs/commit/797487abd268ad01f6ecf05b8c3577d147ca5083) added: Search & phpcs & phpstan & travis & phpunit & test -- [ccb19a2](https://github.com/williamdes/mariadb-mysql-kbs/commit/ccb19a2a9a8c9d453ae8fec4c1b3d36771edd370) added: data from data builder -- [5586808](https://github.com/williamdes/mariadb-mysql-kbs/commit/55868083a95b6e7926e1fb4f51cde2cd08129fac) added: data builder - -### Changed - -- [0a0b691](https://github.com/williamdes/mariadb-mysql-kbs/commit/0a0b6913a40827ca9a9f4c094f7788a16c154436) updated: composer.json - version 1.1.0 -- [d5a006d](https://github.com/williamdes/mariadb-mysql-kbs/commit/d5a006dbee72acc89feb60a867a7c8342cff6f61) updated: merge script -- [d891c83](https://github.com/williamdes/mariadb-mysql-kbs/commit/d891c83d44039bd9b74ea9b490b22a0d3c1e24da) updated: [MariaDB] kb url -- [5879b6f](https://github.com/williamdes/mariadb-mysql-kbs/commit/5879b6fa1ee361c7ede73b76f8939bde26033797) updated: .gitignore -- [29523ef](https://github.com/williamdes/mariadb-mysql-kbs/commit/29523efca1f4e65d8df7516a4dc004292511b365) updated: composer.json -- [1d0bcea](https://github.com/williamdes/mariadb-mysql-kbs/commit/1d0bcea1d4df934e7ac019826274e6705cb89eb5) updated: [MariaDB] data -- [39d5440](https://github.com/williamdes/mariadb-mysql-kbs/commit/39d54407d4ee11d76b6f074ba525a49d89466e1c) updated: [MySQL] & [MariaDB] data - -### Fixed - -- [8adc939](https://github.com/williamdes/mariadb-mysql-kbs/commit/8adc939a8128c20f11e806b97231d083cb5a9af0) fixed: phpcs config -- [e1bd1e6](https://github.com/williamdes/mariadb-mysql-kbs/commit/e1bd1e6a188f37780c988c58a929bae979d6c4ef) fixed: composer.json autoload -- [04865bb](https://github.com/williamdes/mariadb-mysql-kbs/commit/04865bb1f58c16d2faa74ebf516ebda64a4c4623) fixed: scope bug - -### Improvements - -- [bbd013e](https://github.com/williamdes/mariadb-mysql-kbs/commit/bbd013e4fbf23ea437e0e5cbde05af471906ef49) style: phpstan & prettier - -## [v1.0.0] - -### Added - -- [7a8fb1b](https://github.com/williamdes/mariadb-mysql-kbs/commit/7a8fb1ba9b28671c73b2f1cea54ce52bb3d7048b) added: composer.json -- [9719ee0](https://github.com/williamdes/mariadb-mysql-kbs/commit/9719ee02f688922ce43643035d93d4a93151cea2) added: [MySQL] data -- [d5b9751](https://github.com/williamdes/mariadb-mysql-kbs/commit/d5b975183c319a5ac0a9f341e69afe4eb15cfb8b) added: more MySQL documentations -- [b536a33](https://github.com/williamdes/mariadb-mysql-kbs/commit/b536a33ff4a3d95fa996aa269eb02687a5761c65) added: [MariaDB] data -- [951a927](https://github.com/williamdes/mariadb-mysql-kbs/commit/951a9272f1880f666425e4c1742778ef5bdd4f00) added: more MariaDB system variables -- [c03f2a6](https://github.com/williamdes/mariadb-mysql-kbs/commit/c03f2a63c002b28cae44d8f060ac09d2969e229c) added: [MariaDB] data -- [f45ad15](https://github.com/williamdes/mariadb-mysql-kbs/commit/f45ad15cfff626159a60396abbb5ff085514ccd1) added: [MariaDB] server status variables documentation -- [dc2e800](https://github.com/williamdes/mariadb-mysql-kbs/commit/dc2e800d6d493c30be62bc1e78e84404f994e8d3) added: [MySQL] data -- [4a1e8da](https://github.com/williamdes/mariadb-mysql-kbs/commit/4a1e8da123a15738288bdac1504333ef69df1ebf) added: more documentations for MySQL -- [b35e824](https://github.com/williamdes/mariadb-mysql-kbs/commit/b35e824cc58be1f2b3c7fece095e0a331fb09a9d) added: support for command line -- [6404ab5](https://github.com/williamdes/mariadb-mysql-kbs/commit/6404ab5ad48a2f76702dcbd2fbf40bf7c8976fde) added: [MySQL] data -- [3d7fec8](https://github.com/williamdes/mariadb-mysql-kbs/commit/3d7fec83c1debca9ef636d32c51073e56b354ea6) added: MySQL script -- [cb6e800](https://github.com/williamdes/mariadb-mysql-kbs/commit/cb6e800fd15eb7e2a582d489a17bf86dec079d58) test: Added test for common.js -- [ecccb66](https://github.com/williamdes/mariadb-mysql-kbs/commit/ecccb6694c6b80b3a14b707fdda2318e68c9f5da) added: [MariaDB] data -- [b99b2b5](https://github.com/williamdes/mariadb-mysql-kbs/commit/b99b2b5482c9d089092a6106080299574629443c) added: files -- [e05b05a](https://github.com/williamdes/mariadb-mysql-kbs/commit/e05b05aa96895dee2c3222e93cdddfcb4055d950) added: package.json & :lock: -- [9783044](https://github.com/williamdes/mariadb-mysql-kbs/commit/9783044b051820a9ae893da2d7e488bc4a3f37c6) added: .gitignore & README -- [28e9e01](https://github.com/williamdes/mariadb-mysql-kbs/commit/28e9e010dc027dee17a55f5eedad776dcf983e95) added: LICENSE - -### Changed - -- [c0c22b9](https://github.com/williamdes/mariadb-mysql-kbs/commit/c0c22b92e6f8bd77addeae4a5e097f56cb4cc88e) updated: data -- [1f61c63](https://github.com/williamdes/mariadb-mysql-kbs/commit/1f61c634686785d7cca3d291368c9a3e737ebff8) updated: data -- [4f7f893](https://github.com/williamdes/mariadb-mysql-kbs/commit/4f7f893870fe295e698b4f6df91b5ba9ae1e88ea) updated: [MariaDB] data -- [0a95903](https://github.com/williamdes/mariadb-mysql-kbs/commit/0a95903495d9f293b419b41e763845ee3146f989) changed: Moved code in common.js - -### Fixed - -- [dded735](https://github.com/williamdes/mariadb-mysql-kbs/commit/dded735a2f1a16a31973fa623a29000c6e8e0fea) fixed: [MySQL] link -- [d9cd2a8](https://github.com/williamdes/mariadb-mysql-kbs/commit/d9cd2a8123a67d6adfddf0414988b98fcac9f082) fixed: bug in MariaDB script - - -[Unreleased]: https://github.com/williamdes/mariadb-mysql-kbs/compare/v1.2.8...HEAD -[v1.2.8]: https://github.com/williamdes/mariadb-mysql-kbs/compare/v1.2.7...v1.2.8 -[v1.2.7]: https://github.com/williamdes/mariadb-mysql-kbs/compare/v1.2.6...v1.2.7 -[v1.2.6]: https://github.com/williamdes/mariadb-mysql-kbs/compare/v1.2.5...v1.2.6 -[v1.2.5]: https://github.com/williamdes/mariadb-mysql-kbs/compare/v1.2.4...v1.2.5 -[v1.2.4]: https://github.com/williamdes/mariadb-mysql-kbs/compare/v1.2.3...v1.2.4 -[v1.2.3]: https://github.com/williamdes/mariadb-mysql-kbs/compare/v1.2.2...v1.2.3 -[v1.2.2]: https://github.com/williamdes/mariadb-mysql-kbs/compare/v1.2.1...v1.2.2 -[v1.2.1]: https://github.com/williamdes/mariadb-mysql-kbs/compare/v1.2.0...v1.2.1 -[v1.2.0]: https://github.com/williamdes/mariadb-mysql-kbs/compare/v1.1.0...v1.2.0 -[v1.1.0]: https://github.com/williamdes/mariadb-mysql-kbs/compare/v1.0.0...v1.1.0 -[v1.0.0]: https://github.com/williamdes/mariadb-mysql-kbs/compare/28e9e010dc027dee17a55f5eedad776dcf983e95...v1.0.0 - diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/CODEOWNERS b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/CODEOWNERS deleted file mode 100644 index d4ced25..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/CODEOWNERS +++ /dev/null @@ -1,5 +0,0 @@ -data/* @williamdes -dist/* @williamdes -.travis.yml @williamdes -LICENCE @williamdes - diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/LICENSE b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/LICENSE deleted file mode 100644 index 14e2f77..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/LICENSE +++ /dev/null @@ -1,373 +0,0 @@ -Mozilla Public License Version 2.0 -================================== - -1. Definitions --------------- - -1.1. "Contributor" - means each individual or legal entity that creates, contributes to - the creation of, or owns Covered Software. - -1.2. "Contributor Version" - means the combination of the Contributions of others (if any) used - by a Contributor and that particular Contributor's Contribution. - -1.3. "Contribution" - means Covered Software of a particular Contributor. - -1.4. "Covered Software" - means Source Code Form to which the initial Contributor has attached - the notice in Exhibit A, the Executable Form of such Source Code - Form, and Modifications of such Source Code Form, in each case - including portions thereof. - -1.5. "Incompatible With Secondary Licenses" - means - - (a) that the initial Contributor has attached the notice described - in Exhibit B to the Covered Software; or - - (b) that the Covered Software was made available under the terms of - version 1.1 or earlier of the License, but not also under the - terms of a Secondary License. - -1.6. "Executable Form" - means any form of the work other than Source Code Form. - -1.7. "Larger Work" - means a work that combines Covered Software with other material, in - a separate file or files, that is not Covered Software. - -1.8. "License" - means this document. - -1.9. "Licensable" - means having the right to grant, to the maximum extent possible, - whether at the time of the initial grant or subsequently, any and - all of the rights conveyed by this License. - -1.10. "Modifications" - means any of the following: - - (a) any file in Source Code Form that results from an addition to, - deletion from, or modification of the contents of Covered - Software; or - - (b) any new file in Source Code Form that contains any Covered - Software. - -1.11. "Patent Claims" of a Contributor - means any patent claim(s), including without limitation, method, - process, and apparatus claims, in any patent Licensable by such - Contributor that would be infringed, but for the grant of the - License, by the making, using, selling, offering for sale, having - made, import, or transfer of either its Contributions or its - Contributor Version. - -1.12. "Secondary License" - means either the GNU General Public License, Version 2.0, the GNU - Lesser General Public License, Version 2.1, the GNU Affero General - Public License, Version 3.0, or any later versions of those - licenses. - -1.13. "Source Code Form" - means the form of the work preferred for making modifications. - -1.14. "You" (or "Your") - means an individual or a legal entity exercising rights under this - License. For legal entities, "You" includes any entity that - controls, is controlled by, or is under common control with You. For - purposes of this definition, "control" means (a) the power, direct - or indirect, to cause the direction or management of such entity, - whether by contract or otherwise, or (b) ownership of more than - fifty percent (50%) of the outstanding shares or beneficial - ownership of such entity. - -2. License Grants and Conditions --------------------------------- - -2.1. Grants - -Each Contributor hereby grants You a world-wide, royalty-free, -non-exclusive license: - -(a) under intellectual property rights (other than patent or trademark) - Licensable by such Contributor to use, reproduce, make available, - modify, display, perform, distribute, and otherwise exploit its - Contributions, either on an unmodified basis, with Modifications, or - as part of a Larger Work; and - -(b) under Patent Claims of such Contributor to make, use, sell, offer - for sale, have made, import, and otherwise transfer either its - Contributions or its Contributor Version. - -2.2. Effective Date - -The licenses granted in Section 2.1 with respect to any Contribution -become effective for each Contribution on the date the Contributor first -distributes such Contribution. - -2.3. Limitations on Grant Scope - -The licenses granted in this Section 2 are the only rights granted under -this License. No additional rights or licenses will be implied from the -distribution or licensing of Covered Software under this License. -Notwithstanding Section 2.1(b) above, no patent license is granted by a -Contributor: - -(a) for any code that a Contributor has removed from Covered Software; - or - -(b) for infringements caused by: (i) Your and any other third party's - modifications of Covered Software, or (ii) the combination of its - Contributions with other software (except as part of its Contributor - Version); or - -(c) under Patent Claims infringed by Covered Software in the absence of - its Contributions. - -This License does not grant any rights in the trademarks, service marks, -or logos of any Contributor (except as may be necessary to comply with -the notice requirements in Section 3.4). - -2.4. Subsequent Licenses - -No Contributor makes additional grants as a result of Your choice to -distribute the Covered Software under a subsequent version of this -License (see Section 10.2) or under the terms of a Secondary License (if -permitted under the terms of Section 3.3). - -2.5. Representation - -Each Contributor represents that the Contributor believes its -Contributions are its original creation(s) or it has sufficient rights -to grant the rights to its Contributions conveyed by this License. - -2.6. Fair Use - -This License is not intended to limit any rights You have under -applicable copyright doctrines of fair use, fair dealing, or other -equivalents. - -2.7. Conditions - -Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted -in Section 2.1. - -3. Responsibilities -------------------- - -3.1. Distribution of Source Form - -All distribution of Covered Software in Source Code Form, including any -Modifications that You create or to which You contribute, must be under -the terms of this License. You must inform recipients that the Source -Code Form of the Covered Software is governed by the terms of this -License, and how they can obtain a copy of this License. You may not -attempt to alter or restrict the recipients' rights in the Source Code -Form. - -3.2. Distribution of Executable Form - -If You distribute Covered Software in Executable Form then: - -(a) such Covered Software must also be made available in Source Code - Form, as described in Section 3.1, and You must inform recipients of - the Executable Form how they can obtain a copy of such Source Code - Form by reasonable means in a timely manner, at a charge no more - than the cost of distribution to the recipient; and - -(b) You may distribute such Executable Form under the terms of this - License, or sublicense it under different terms, provided that the - license for the Executable Form does not attempt to limit or alter - the recipients' rights in the Source Code Form under this License. - -3.3. Distribution of a Larger Work - -You may create and distribute a Larger Work under terms of Your choice, -provided that You also comply with the requirements of this License for -the Covered Software. If the Larger Work is a combination of Covered -Software with a work governed by one or more Secondary Licenses, and the -Covered Software is not Incompatible With Secondary Licenses, this -License permits You to additionally distribute such Covered Software -under the terms of such Secondary License(s), so that the recipient of -the Larger Work may, at their option, further distribute the Covered -Software under the terms of either this License or such Secondary -License(s). - -3.4. Notices - -You may not remove or alter the substance of any license notices -(including copyright notices, patent notices, disclaimers of warranty, -or limitations of liability) contained within the Source Code Form of -the Covered Software, except that You may alter any license notices to -the extent required to remedy known factual inaccuracies. - -3.5. Application of Additional Terms - -You may choose to offer, and to charge a fee for, warranty, support, -indemnity or liability obligations to one or more recipients of Covered -Software. However, You may do so only on Your own behalf, and not on -behalf of any Contributor. You must make it absolutely clear that any -such warranty, support, indemnity, or liability obligation is offered by -You alone, and You hereby agree to indemnify every Contributor for any -liability incurred by such Contributor as a result of warranty, support, -indemnity or liability terms You offer. You may include additional -disclaimers of warranty and limitations of liability specific to any -jurisdiction. - -4. Inability to Comply Due to Statute or Regulation ---------------------------------------------------- - -If it is impossible for You to comply with any of the terms of this -License with respect to some or all of the Covered Software due to -statute, judicial order, or regulation then You must: (a) comply with -the terms of this License to the maximum extent possible; and (b) -describe the limitations and the code they affect. Such description must -be placed in a text file included with all distributions of the Covered -Software under this License. Except to the extent prohibited by statute -or regulation, such description must be sufficiently detailed for a -recipient of ordinary skill to be able to understand it. - -5. Termination --------------- - -5.1. The rights granted under this License will terminate automatically -if You fail to comply with any of its terms. However, if You become -compliant, then the rights granted under this License from a particular -Contributor are reinstated (a) provisionally, unless and until such -Contributor explicitly and finally terminates Your grants, and (b) on an -ongoing basis, if such Contributor fails to notify You of the -non-compliance by some reasonable means prior to 60 days after You have -come back into compliance. Moreover, Your grants from a particular -Contributor are reinstated on an ongoing basis if such Contributor -notifies You of the non-compliance by some reasonable means, this is the -first time You have received notice of non-compliance with this License -from such Contributor, and You become compliant prior to 30 days after -Your receipt of the notice. - -5.2. If You initiate litigation against any entity by asserting a patent -infringement claim (excluding declaratory judgment actions, -counter-claims, and cross-claims) alleging that a Contributor Version -directly or indirectly infringes any patent, then the rights granted to -You by any and all Contributors for the Covered Software under Section -2.1 of this License shall terminate. - -5.3. In the event of termination under Sections 5.1 or 5.2 above, all -end user license agreements (excluding distributors and resellers) which -have been validly granted by You or Your distributors under this License -prior to termination shall survive termination. - -************************************************************************ -* * -* 6. Disclaimer of Warranty * -* ------------------------- * -* * -* Covered Software is provided under this License on an "as is" * -* basis, without warranty of any kind, either expressed, implied, or * -* statutory, including, without limitation, warranties that the * -* Covered Software is free of defects, merchantable, fit for a * -* particular purpose or non-infringing. The entire risk as to the * -* quality and performance of the Covered Software is with You. * -* Should any Covered Software prove defective in any respect, You * -* (not any Contributor) assume the cost of any necessary servicing, * -* repair, or correction. This disclaimer of warranty constitutes an * -* essential part of this License. No use of any Covered Software is * -* authorized under this License except under this disclaimer. * -* * -************************************************************************ - -************************************************************************ -* * -* 7. Limitation of Liability * -* -------------------------- * -* * -* Under no circumstances and under no legal theory, whether tort * -* (including negligence), contract, or otherwise, shall any * -* Contributor, or anyone who distributes Covered Software as * -* permitted above, be liable to You for any direct, indirect, * -* special, incidental, or consequential damages of any character * -* including, without limitation, damages for lost profits, loss of * -* goodwill, work stoppage, computer failure or malfunction, or any * -* and all other commercial damages or losses, even if such party * -* shall have been informed of the possibility of such damages. This * -* limitation of liability shall not apply to liability for death or * -* personal injury resulting from such party's negligence to the * -* extent applicable law prohibits such limitation. Some * -* jurisdictions do not allow the exclusion or limitation of * -* incidental or consequential damages, so this exclusion and * -* limitation may not apply to You. * -* * -************************************************************************ - -8. Litigation -------------- - -Any litigation relating to this License may be brought only in the -courts of a jurisdiction where the defendant maintains its principal -place of business and such litigation shall be governed by laws of that -jurisdiction, without reference to its conflict-of-law provisions. -Nothing in this Section shall prevent a party's ability to bring -cross-claims or counter-claims. - -9. Miscellaneous ----------------- - -This License represents the complete agreement concerning the subject -matter hereof. If any provision of this License is held to be -unenforceable, such provision shall be reformed only to the extent -necessary to make it enforceable. Any law or regulation which provides -that the language of a contract shall be construed against the drafter -shall not be used to construe this License against a Contributor. - -10. Versions of the License ---------------------------- - -10.1. New Versions - -Mozilla Foundation is the license steward. Except as provided in Section -10.3, no one other than the license steward has the right to modify or -publish new versions of this License. Each version will be given a -distinguishing version number. - -10.2. Effect of New Versions - -You may distribute the Covered Software under the terms of the version -of the License under which You originally received the Covered Software, -or under the terms of any subsequent version published by the license -steward. - -10.3. Modified Versions - -If you create software not governed by this License, and you want to -create a new license for such software, you may create and use a -modified version of this License if you rename the license and remove -any references to the name of the license steward (except to note that -such modified license differs from this License). - -10.4. Distributing Source Code Form that is Incompatible With Secondary -Licenses - -If You choose to distribute Source Code Form that is Incompatible With -Secondary Licenses under the terms of this version of the License, the -notice described in Exhibit B of this License must be attached. - -Exhibit A - Source Code Form License Notice -------------------------------------------- - - This Source Code Form is subject to the terms of the Mozilla Public - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at http://mozilla.org/MPL/2.0/. - -If it is not possible or desirable to put the notice in a particular -file, then You may include the notice in a location (such as a LICENSE -file in a relevant directory) where a recipient would be likely to look -for such a notice. - -You may add additional accurate notices of copyright ownership. - -Exhibit B - "Incompatible With Secondary Licenses" Notice ---------------------------------------------------------- - - This Source Code Form is "Incompatible With Secondary Licenses", as - defined by the Mozilla Public License, v. 2.0. diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/README.md b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/README.md deleted file mode 100644 index b4ce614..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/README.md +++ /dev/null @@ -1,46 +0,0 @@ -# An index of the MariaDB and MySQL Knowledge bases - -[![Build Status](https://travis-ci.com/williamdes/mariadb-mysql-kbs.svg?branch=master)](https://travis-ci.com/williamdes/mariadb-mysql-kbs) -[![Codacy Badge](https://api.codacy.com/project/badge/Grade/e89ffd4b2c8a4f14ae98c282c8934f31)](https://www.codacy.com/app/williamdes/mariadb-mysql-kbs?utm_source=github.com&utm_medium=referral&utm_content=williamdes/mariadb-mysql-kbs&utm_campaign=Badge_Grade) -[![codecov](https://codecov.io/gh/williamdes/mariadb-mysql-kbs/branch/master/graph/badge.svg)](https://codecov.io/gh/williamdes/mariadb-mysql-kbs) -[![License](https://poser.pugx.org/williamdes/mariadb-mysql-kbs/license)](https://packagist.org/packages/williamdes/mariadb-mysql-kbs) -[![Latest Stable Version](https://poser.pugx.org/williamdes/mariadb-mysql-kbs/v/stable)](https://packagist.org/packages/williamdes/mariadb-mysql-kbs) -[![npm version](https://badge.fury.io/js/mariadb-mysql-kbs.svg)](https://badge.fury.io/js/mariadb-mysql-kbs) -[![Total alerts](https://img.shields.io/lgtm/alerts/g/williamdes/mariadb-mysql-kbs.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/williamdes/mariadb-mysql-kbs/alerts/) -[![Language grade: JavaScript](https://img.shields.io/lgtm/grade/javascript/g/williamdes/mariadb-mysql-kbs.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/williamdes/mariadb-mysql-kbs/context:javascript) -[![Known Vulnerabilities](https://snyk.io/test/github/williamdes/mariadb-mysql-kbs/badge.svg)](https://snyk.io/test/github/williamdes/mariadb-mysql-kbs) -[![Dependabot](https://badgen.net/badge/Dependabot/enabled/green?icon=dependabot)](https://dependabot.com/) -[![dependencies Status](https://david-dm.org/williamdes/mariadb-mysql-kbs/status.svg)](https://david-dm.org/williamdes/mariadb-mysql-kbs) - -[API doc](https://williamdes.github.io/mariadb-mysql-kbs/Williamdes/MariaDBMySQLKBS.html) - -### In this respository you can find some data from knowledge bases - -Raw extracted data : `/data/` - -Merged data : `/dist/` - -### Merged data -- JSON format (raw, slim, ultraslim) -- PHP format (ultraslim) - -### Update the data - -```bash -npm run build -``` - -```bash -composer run build -``` - -### Install - -```bash -composer require williamdes/mariadb-mysql-kbs -``` - -```bash -npm install --save mariadb-mysql-kbs -``` - diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/SECURITY.md b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/SECURITY.md deleted file mode 100644 index 6fa9ca9..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/SECURITY.md +++ /dev/null @@ -1,12 +0,0 @@ -# Security Policy - -## Supported Versions - - -| Version | Supported | -| ------- | ------------------ | -| 1.2.x | :white_check_mark: | - -## Reporting a Vulnerability - -Send an email to : williamdes [at] wdes [dot] fr diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/composer.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/composer.json deleted file mode 100644 index a0eed1e..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/composer.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "name": "williamdes/mariadb-mysql-kbs", - "description": "An index of the MariaDB and MySQL Knowledge bases", - "homepage": "https://github.com/williamdes/mariadb-mysql-kbs", - "type": "library", - "readme": "https://github.com/williamdes/mariadb-mysql-kbs/blob/master/README.md", - "license": "MPL-2.0", - "version": "1.2.8", - "keywords": [ - "mariadb", - "mysql", - "dataset", - "kb", - "knowledge-base", - "json", - "library", - "mysql-knowledge-bases", - "mariadb-knowledge-bases", - "composer-package", - "npm-package" - ], - "support": { - "email": "williamdes@wdes.fr", - "issues": "https://github.com/williamdes/mariadb-mysql-kbs/issues", - "source": "https://github.com/williamdes/mariadb-mysql-kbs" - }, - "authors": [ - { - "name": "William Desportes", - "email": "williamdes@wdes.fr" - } - ], - "scripts": { - "build": "php src/merge.php", - "test": "phpunit --testdox --configuration ./test/phpunit.xml", - "phpstan": "phpstan analyse src test --configuration=phpstan.neon --level=max --memory-limit=100M", - "phpcs": "phpcs --standard=phpcs.xml --no-cache --colors -p -n", - "phpcbf": "phpcbf --standard=phpcs.xml" - }, - "require": { - "php": "^7.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.0 || ^8.0", - "phpstan/phpstan": "^0.11.3", - "slevomat/coding-standard": "^5.0", - "squizlabs/php_codesniffer": "^3.3", - "php-school/cli-menu": "^3.0", - "swaggest/json-schema": "^0.12.9" - }, - "archive": { - "exclude": [ - "/scripts", - "/data", - "/dist/merged-raw.json", - "/test", - "*.js", - "/.dependabot", - "/.jshintrc", - "/.npmignore", - "/.editorconfig", - "/.gitmodules", - "/CODEOWNERS", - "/williamdes-mariadb-mysql-kbs-*.tar", - "/docs", - "/package.json", - "/package-lock.json", - "/.prettierignore", - "/.gitignore", - "/phpcs.xml", - "/phpstan.neon", - "/.travis.yml", - "/dist/merged-raw.md", - "/.jshintignore", - "/.phpunit.result.cache" - ] - }, - "autoload": { - "psr-4": { - "Williamdes\\MariaDBMySQLKBS\\": "src/" - } - }, - "autoload-dev": { - "psr-4": { - "Williamdes\\MariaDBMySQLKBS\\Test\\": "test/" - } - }, - "non-feature-branches": ["update/*"] -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-aria-server-status-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-aria-server-status-variables.json deleted file mode 100644 index 6bc0ad5..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-aria-server-status-variables.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "data": [ - { - "id": "aria_pagecache_blocks_not_flushed", - "name": "Aria_pagecache_blocks_not_flushed", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "aria_pagecache_blocks_unused", - "name": "Aria_pagecache_blocks_unused", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "aria_pagecache_blocks_used", - "name": "Aria_pagecache_blocks_used", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "aria_pagecache_read_requests", - "name": "Aria_pagecache_read_requests", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "aria_pagecache_reads", - "name": "Aria_pagecache_reads", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "aria_pagecache_write_requests", - "name": "Aria_pagecache_write_requests", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "aria_pagecache_writes", - "name": "Aria_pagecache_writes", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "aria_transaction_log_syncs", - "name": "Aria_transaction_log_syncs", - "scope": [ - "global" - ], - "type": "integer" - } - ], - "name": "aria-server-status-variables", - "url": "https://mariadb.com/kb/en/library/documentation/aria-server-status-variables/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-aria-system-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-aria-system-variables.json deleted file mode 100644 index 7d1d8ed..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-aria-system-variables.json +++ /dev/null @@ -1,362 +0,0 @@ -{ - "data": [ - { - "cli": "--aria-block-size=#", - "default": "8192", - "dynamic": false, - "id": "aria_block_size", - "name": "aria_block_size", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--aria-checkpoint-interval=#", - "default": "30", - "dynamic": true, - "id": "aria_checkpoint_interval", - "name": "aria_checkpoint_interval", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "aria-checkpoint-log-activity=#", - "default": "1048576", - "dynamic": true, - "id": "aria_checkpoint_log_activity", - "name": "aria_checkpoint_log_activity", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "aria-encrypt-tables={0|1}", - "default": "OFF", - "dynamic": true, - "id": "aria_encrypt_tables", - "name": "aria_encrypt_tables", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--aria-force-start-after-recovery-failures=#", - "default": "0", - "dynamic": false, - "id": "aria_force_start_after_recovery_failures", - "name": "aria_force_start_after_recovery_failures", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--aria_group_commit=\"value\"", - "default": "none", - "dynamic": false, - "id": "aria_group_commit", - "name": "aria_group_commit", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "none", - "hard", - "soft" - ] - }, - { - "cli": "--aria_group_commit_interval=#", - "default": "0 (no waiting)", - "dynamic": false, - "id": "aria_group_commit_interval", - "name": "aria_group_commit_interval", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--aria-log-file-size=#", - "default": "1073741824", - "dynamic": true, - "id": "aria_log_file_size", - "name": "aria_log_file_size", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--aria-log-purge-type=name", - "default": "immediate", - "dynamic": true, - "id": "aria_log_purge_type", - "name": "aria_log_purge_type", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "immediate", - "external", - "at_flush" - ] - }, - { - "cli": "--aria-max-sort-file-size=#", - "default": "9223372036853727232", - "dynamic": true, - "id": "aria_max_sort_file_size", - "name": "aria_max_sort_file_size", - "range": { - "from": 0, - "to": 9223372036854776000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--aria-page-checksum=#", - "default": "ON", - "dynamic": true, - "id": "aria_page_checksum", - "name": "aria_page_checksum", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--aria-pagecache-age-threshold=#", - "default": "300", - "dynamic": true, - "id": "aria_pagecache_age_threshold", - "name": "aria_pagecache_age_threshold", - "range": { - "from": 100, - "to": 9999900 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--aria-pagecache-buffer-size=#", - "default": "134217720 (128MB)", - "dynamic": false, - "id": "aria_pagecache_buffer_size", - "name": "aria_pagecache_buffer_size", - "range": { - "from": 131072, - "to": "upwards" - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--aria-pagecache-division-limit=#", - "default": "100", - "dynamic": true, - "id": "aria_pagecache_division_limit", - "name": "aria_pagecache_division_limit", - "range": { - "from": 1, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--aria-pagecache-file-hash-size=#", - "default": "512", - "dynamic": false, - "id": "aria_pagecache_file_hash_size", - "name": "aria_pagecache_file_hash_size", - "range": { - "from": 128, - "to": 16384 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "aria_recover", - "name": "aria_recover" - }, - { - "cli": "--aria-recover-options[=#]", - "default": "BACKUP,QUICK (>= MariaDB 10.2.4), NORMAL (<= MariaDB 10.2.3)", - "dynamic": true, - "id": "aria_recover_options", - "name": "aria_recover_options", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "NORMAL", - "BACKUP", - "FORCE", - "QUICK", - "OFF" - ] - }, - { - "cli": "--aria-repair-threads=#", - "default": "1", - "dynamic": true, - "id": "aria_repair_threads", - "name": "aria_repair_threads", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--aria-sort-buffer-size=#", - "default": "268434432 (from MariaDB 10.0.3), 134217728 (before MariaDB 10.0.3)", - "dynamic": true, - "id": "aria_sort_buffer_size", - "name": "aria_sort_buffer_size", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--aria-stats-method=#", - "default": "nulls_unequal", - "dynamic": true, - "id": "aria_stats_method", - "name": "aria_stats_method", - "scope": [ - "global", - "session" - ], - "type": "integer", - "validValues": [ - "nulls_equal", - "nulls_unequal", - "nulls_ignored" - ] - }, - { - "cli": "--aria-sync-log-dir=#", - "default": "NEWFILE", - "dynamic": true, - "id": "aria_sync_log_dir", - "name": "aria_sync_log_dir", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "NEWFILE", - "NEVER", - "ALWAYS" - ] - }, - { - "default": "ON", - "dynamic": false, - "id": "aria_used_for_temp_tables", - "name": "aria_used_for_temp_tables", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--deadlock-search-depth-long=#", - "default": "15", - "dynamic": true, - "id": "deadlock_search_depth_long", - "name": "deadlock_search_depth_long", - "range": { - "from": 0, - "to": 33 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--deadlock-search-depth-short=#", - "default": "4", - "dynamic": true, - "id": "deadlock_search_depth_short", - "name": "deadlock_search_depth_short", - "range": { - "from": 0, - "to": 32 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--deadlock-timeout-long=#", - "default": "50000000", - "dynamic": true, - "id": "deadlock_timeout_long", - "name": "deadlock_timeout_long", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--deadlock-timeout-short=#", - "default": "10000", - "dynamic": true, - "id": "deadlock_timeout_short", - "name": "deadlock_timeout_short", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - } - ], - "name": "aria-system-variables", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-cassandra-status-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-cassandra-status-variables.json deleted file mode 100644 index 4defd76..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-cassandra-status-variables.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "data": [ - { - "id": "cassandra_multiget_keys_scanned", - "name": "Cassandra_multiget_keys_scanned", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "cassandra_multiget_reads", - "name": "Cassandra_multiget_reads", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "cassandra_multiget_rows_read", - "name": "Cassandra_multiget_rows_read", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "cassandra_network_exceptions", - "name": "Cassandra_network_exceptions", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "cassandra_row_insert_batches", - "name": "Cassandra_row_insert_batches", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "cassandra_row_inserts", - "name": "Cassandra_row_inserts", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "cassandra_timeout_exceptions", - "name": "Cassandra_timeout_exceptions", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "cassandra_unavailable_exceptions", - "name": "Cassandra_unavailable_exceptions", - "scope": [ - "global", - "session" - ], - "type": "integer" - } - ], - "name": "cassandra-status-variables", - "url": "https://mariadb.com/kb/en/library/documentation/cassandra-status-variables/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-cassandra-system-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-cassandra-system-variables.json deleted file mode 100644 index 5494b90..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-cassandra-system-variables.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "data": [ - { - "dynamic": true, - "id": "cassandra_default_thrift_host", - "name": "cassandra_default_thrift_host", - "scope": [ - "global" - ], - "type": "string" - }, - { - "default": "3", - "dynamic": true, - "id": "cassandra_failure_retries", - "name": "cassandra_failure_retries", - "scope": [ - "global", - "session" - ], - "type": "integer", - "validValues": [ - "1", - "1073741824" - ] - }, - { - "default": "100", - "dynamic": true, - "id": "cassandra_insert_batch_size", - "name": "cassandra_insert_batch_size", - "scope": [ - "global", - "session" - ], - "type": "integer", - "validValues": [ - "1", - "1073741824" - ] - }, - { - "default": "100", - "dynamic": true, - "id": "cassandra_multiget_batch_size", - "name": "cassandra_multiget_batch_size", - "scope": [ - "global", - "session" - ], - "type": "integer", - "validValues": [ - "1", - "1073741824" - ] - }, - { - "default": "ONE", - "id": "cassandra_read_consistency", - "name": "cassandra_read_consistency", - "scope": [ - "global", - "session" - ], - "validValues": [ - "ONE", - "TWO", - "THREE", - "ANY", - "ALL", - "QUORUM", - "EACH_QUORUM", - "LOCAL_QUORUM", - "\n" - ] - }, - { - "default": "10000", - "id": "cassandra_rnd_batch_size", - "name": "cassandra_rnd_batch_size", - "scope": [ - "global", - "session" - ], - "validValues": [ - "1", - "1073741824" - ] - }, - { - "default": "ONE", - "id": "cassandra_write_consistency", - "name": "cassandra_write_consistency", - "scope": [ - "global", - "session" - ], - "validValues": [ - "ONE", - "TWO", - "THREE", - "ANY", - "ALL", - "QUORUM", - "EACH_QUORUM", - "LOCAL_QUORUM", - "\n" - ] - } - ], - "name": "cassandra-system-variables", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/cassandra/cassandra-system-variables/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-connect-system-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-connect-system-variables.json deleted file mode 100644 index 06c0876..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-connect-system-variables.json +++ /dev/null @@ -1,188 +0,0 @@ -{ - "data": [ - { - "cli": "--connect-class-path=value", - "default": "", - "dynamic": false, - "id": "connect_class_path", - "name": "connect_class_path", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--connect-cond-push={0|1}", - "default": "ON", - "dynamic": true, - "id": "connect_cond_push", - "name": "connect_cond_push", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--connect-conv-size=#", - "default": ">= MariaDB 10.4.8, MariaDB 10.3.18, MariaDB 10.2.27: 1024, <= MariaDB 10.4.7, MariaDB 10.3.17, MariaDB 10.2.26: 8192", - "dynamic": true, - "id": "connect_conv_size", - "name": "connect_conv_size", - "range": { - "from": 0, - "to": 65500 - }, - "scope": [ - "session", - "global" - ], - "type": "integer" - }, - { - "cli": "--connect-enable-mongo={0|1}", - "default": "OFF", - "dynamic": false, - "id": "connect_enable_mongo", - "name": "connect_enable_mongo", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--connect-exact-info=#", - "default": "OFF", - "dynamic": true, - "id": "connect_exact_info", - "name": "connect_exact_info", - "scope": [ - "session" - ], - "type": "boolean" - }, - { - "cli": "--connect-indx-map=#", - "default": "OFF", - "dynamic": true, - "id": "connect_indx_map", - "name": "connect_indx_map", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--connect-java-wrapper=val", - "default": "wrappers/JdbcInterface", - "dynamic": true, - "id": "connect_java_wrapper", - "name": "connect_java_wrapper", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "cli": "--connect-json-grp-size=#", - "default": "10", - "dynamic": true, - "id": "connect_json_grp_size", - "name": "connect_json_grp_size", - "range": { - "from": 1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--connect-json-null=value", - "default": "", - "dynamic": true, - "id": "connect_json_null", - "name": "connect_json_null", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "cli": "--connect-jvm_path=value", - "default": "", - "dynamic": false, - "id": "connect_jvm_path", - "name": "connect_jvm_path", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--connect-type-conv=#", - "default": "YES (>= Connect 1.06.006), NO (<= Connect 1.06.005)", - "dynamic": true, - "id": "connect_type_conv", - "name": "connect_type_conv", - "scope": [ - "session", - "global" - ], - "validValues": [ - "NO", - "YES", - "SKIP" - ] - }, - { - "cli": "--connect-use-tempfile=#", - "default": "AUTO", - "dynamic": true, - "id": "connect_use_tempfile", - "name": "connect_use_tempfile", - "scope": [ - "session" - ] - }, - { - "cli": "--connect-work-size=#", - "default": "67108864", - "dynamic": true, - "id": "connect_work_size", - "name": "connect_work_size", - "range": { - "from": 4194304, - "to": "upwards" - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--connect-xtrace=#", - "default": "0", - "dynamic": true, - "id": "connect_xtrace", - "name": "connect_xtrace", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "set", - "validValues": [] - } - ], - "name": "connect-system-variables", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-galera-cluster-status-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-galera-cluster-status-variables.json deleted file mode 100644 index 93cb321..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-galera-cluster-status-variables.json +++ /dev/null @@ -1,276 +0,0 @@ -{ - "data": [ - { - "id": "wsrep_apply_oooe", - "name": "wsrep_apply_oooe" - }, - { - "id": "wsrep_apply_oool", - "name": "wsrep_apply_oool" - }, - { - "id": "wsrep_apply_window", - "name": "wsrep_apply_window" - }, - { - "id": "wsrep_cert_deps_distance", - "name": "wsrep_cert_deps_distance" - }, - { - "id": "wsrep_cert_index_size", - "name": "wsrep_cert_index_size", - "type": "integer" - }, - { - "id": "wsrep_cert_interval", - "name": "wsrep_cert_interval", - "type": "integer" - }, - { - "id": "wsrep_cluster_capabilities", - "name": "wsrep_cluster_capabilities" - }, - { - "id": "wsrep_cluster_conf_id", - "name": "wsrep_cluster_conf_id", - "type": "integer" - }, - { - "id": "wsrep_cluster_size", - "name": "wsrep_cluster_size", - "type": "integer" - }, - { - "id": "wsrep_cluster_state_uuid", - "name": "wsrep_cluster_state_uuid" - }, - { - "id": "wsrep_cluster_status", - "name": "wsrep_cluster_status" - }, - { - "id": "wsrep_cluster_weight", - "name": "wsrep_cluster_weight" - }, - { - "id": "wsrep_commit_oooe", - "name": "wsrep_commit_oooe" - }, - { - "id": "wsrep_commit_oool", - "name": "wsrep_commit_oool" - }, - { - "id": "wsrep_commit_window", - "name": "wsrep_commit_window" - }, - { - "id": "wsrep_connected", - "name": "wsrep_connected" - }, - { - "id": "wsrep_desync_count", - "name": "wsrep_desync_count", - "type": "integer" - }, - { - "id": "wsrep_evs_delayed", - "name": "wsrep_evs_delayed" - }, - { - "id": "wsrep_evs_evict_list", - "name": "wsrep_evs_evict_list" - }, - { - "id": "wsrep_evs_repl_latency", - "name": "wsrep_evs_repl_latency" - }, - { - "id": "wsrep_evs_state", - "name": "wsrep_evs_state" - }, - { - "id": "wsrep_flow_control_paused", - "name": "wsrep_flow_control_paused" - }, - { - "id": "wsrep_flow_control_paused_ns", - "name": "wsrep_flow_control_paused_ns" - }, - { - "id": "wsrep_flow_control_recv", - "name": "wsrep_flow_control_recv", - "type": "integer" - }, - { - "id": "wsrep_flow_control_sent", - "name": "wsrep_flow_control_sent", - "type": "integer" - }, - { - "id": "wsrep_gcomm_uuid", - "name": "wsrep_gcomm_uuid" - }, - { - "id": "wsrep_incoming_addresses", - "name": "wsrep_incoming_addresses" - }, - { - "id": "wsrep_last_committed", - "name": "wsrep_last_committed", - "type": "integer" - }, - { - "id": "wsrep_local_bf_aborts", - "name": "wsrep_local_bf_aborts", - "type": "integer" - }, - { - "id": "wsrep_local_cached_downto", - "name": "wsrep_local_cached_downto" - }, - { - "id": "wsrep_local_cert_failures", - "name": "wsrep_local_cert_failures", - "type": "integer" - }, - { - "id": "wsrep_local_commits", - "name": "wsrep_local_commits", - "type": "integer" - }, - { - "id": "wsrep_local_index", - "name": "wsrep_local_index" - }, - { - "id": "wsrep_local_recv_queue", - "name": "wsrep_local_recv_queue", - "type": "integer" - }, - { - "id": "wsrep_local_recv_queue_avg", - "name": "wsrep_local_recv_queue_avg" - }, - { - "id": "wsrep_local_recv_queue_max", - "name": "wsrep_local_recv_queue_max" - }, - { - "id": "wsrep_local_recv_queue_min", - "name": "wsrep_local_recv_queue_min" - }, - { - "id": "wsrep_local_replays", - "name": "wsrep_local_replays", - "type": "integer" - }, - { - "id": "wsrep_local_send_queue", - "name": "wsrep_local_send_queue", - "type": "integer" - }, - { - "id": "wsrep_local_send_queue_avg", - "name": "wsrep_local_send_queue_avg" - }, - { - "id": "wsrep_local_send_queue_max", - "name": "wsrep_local_send_queue_max" - }, - { - "id": "wsrep_local_send_queue_min", - "name": "wsrep_local_send_queue_min" - }, - { - "id": "wsrep_local_state", - "name": "wsrep_local_state" - }, - { - "id": "wsrep_local_state_comment", - "name": "wsrep_local_state_comment" - }, - { - "id": "wsrep_local_state_uuid", - "name": "wsrep_local_state_uuid" - }, - { - "id": "wsrep_open_connections", - "name": "wsrep_open_connections", - "type": "integer" - }, - { - "id": "wsrep_open_transactions", - "name": "wsrep_open_transactions", - "type": "integer" - }, - { - "id": "wsrep_protocol_version", - "name": "wsrep_protocol_version" - }, - { - "id": "wsrep_provider_name", - "name": "wsrep_provider_name" - }, - { - "id": "wsrep_provider_vendor", - "name": "wsrep_provider_vendor" - }, - { - "id": "wsrep_provider_version", - "name": "wsrep_provider_version", - "type": "integer" - }, - { - "id": "wsrep_ready", - "name": "wsrep_ready" - }, - { - "id": "wsrep_received", - "name": "wsrep_received", - "type": "integer" - }, - { - "id": "wsrep_received_bytes", - "name": "wsrep_received_bytes", - "type": "byte" - }, - { - "id": "wsrep_repl_data_bytes", - "name": "wsrep_repl_data_bytes", - "type": "integer" - }, - { - "id": "wsrep_repl_keys", - "name": "wsrep_repl_keys", - "type": "integer" - }, - { - "id": "wsrep_repl_keys_bytes", - "name": "wsrep_repl_keys_bytes", - "type": "integer" - }, - { - "id": "wsrep_repl_other_bytes", - "name": "wsrep_repl_other_bytes", - "type": "integer" - }, - { - "id": "wsrep_replicated", - "name": "wsrep_replicated", - "type": "integer" - }, - { - "id": "wsrep_replicated_bytes", - "name": "wsrep_replicated_bytes", - "type": "byte" - }, - { - "id": "wsrep_thread_count", - "name": "wsrep_thread_count", - "type": "integer" - } - ], - "name": "galera-cluster-status-variables", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-galera-cluster-system-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-galera-cluster-system-variables.json deleted file mode 100644 index 9e893ea..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-galera-cluster-system-variables.json +++ /dev/null @@ -1,626 +0,0 @@ -{ - "data": [ - { - "cli": "--wsrep-auto-increment-control[={0|1}]", - "default": "ON", - "dynamic": true, - "id": "wsrep_auto_increment_control", - "name": "wsrep_auto_increment_control", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--wsrep-causal-reads[={0|1}]", - "default": "OFF", - "dynamic": true, - "id": "wsrep_causal_reads", - "name": "wsrep_causal_reads", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--wsrep-certifcation-rules", - "default": "strict", - "dynamic": true, - "id": "wsrep_certification_rules", - "name": "wsrep_certification_rules", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "strict", - "optimized" - ] - }, - { - "cli": "--wsrep-certify-nonPK[={0|1}]", - "default": "ON", - "dynamic": true, - "id": "wsrep_certify_nonpk", - "name": "wsrep_certify_nonPK", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--wsrep-cluster-address=value", - "dynamic": false, - "id": "wsrep_cluster_address", - "name": "wsrep_cluster_address", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--wsrep-cluster-name=value", - "default": "my_wsrep_cluster", - "dynamic": true, - "id": "wsrep_cluster_name", - "name": "wsrep_cluster_name", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--wsrep-convert-LOCK-to-trx[={0|1}]", - "default": "OFF", - "dynamic": true, - "id": "wsrep_convert_lock_to_trx", - "name": "wsrep_convert_LOCK_to_trx", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--wsrep-data-home-dir=value", - "default": "The datadir variable value.", - "dynamic": false, - "id": "wsrep_data_home_dir", - "name": "wsrep_data_home_dir", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--wsrep-dbug-option=value", - "dynamic": true, - "id": "wsrep_dbug_option", - "name": "wsrep_dbug_option", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--wsrep-debug[={0|1}]", - "default": "NONE (>= MariaDB 10.4.3), OFF (<= MariaDB 10.4.2)", - "dynamic": true, - "id": "wsrep_debug", - "name": "wsrep_debug", - "scope": [ - "global" - ] - }, - { - "cli": "--wsrep-desync[={0|1}]", - "default": "OFF", - "dynamic": true, - "id": "wsrep_desync", - "name": "wsrep_desync", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--wsrep-dirty-reads[={0|1}]", - "default": "OFF", - "dynamic": true, - "id": "wsrep_dirty_reads", - "name": "wsrep_dirty_reads", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "validValues": [ - "ON", - "OFF" - ] - }, - { - "cli": "--wsrep-drupal-282555-workaround[={0|1}]", - "default": "OFF", - "dynamic": true, - "id": "wsrep_drupal_282555_workaround", - "name": "wsrep_drupal_282555_workaround", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--wsrep-forced-binlog-format=value", - "default": "NONE", - "dynamic": true, - "id": "wsrep_forced_binlog_format", - "name": "wsrep_forced_binlog_format", - "scope": [ - "global" - ], - "validValues": [ - "STATEMENT", - "ROW", - "MIXED", - "NONE" - ] - }, - { - "cli": "--wsrep-gtid-domain-id=#", - "default": "0", - "dynamic": true, - "id": "wsrep_gtid_domain_id", - "name": "wsrep_gtid_domain_id", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--wsrep-gtid-mode[={0|1}]", - "default": "OFF", - "dynamic": true, - "id": "wsrep_gtid_mode", - "name": "wsrep_gtid_mode", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--wsrep-ignore-apply-errors", - "default": "0", - "dynamic": true, - "id": "wsrep_ignore_apply_errors", - "name": "wsrep_ignore_apply_errors", - "range": { - "from": 0, - "to": 7 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--wsrep-load-data-splitting[={0|1}]", - "default": "OFF (>= MariaDB 10.4.3), ON (<= MariaDB 10.4.2)", - "dynamic": true, - "id": "wsrep_load_data_splitting", - "name": "wsrep_load_data_splitting", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--wsrep-log-conflicts[={0|1}]", - "default": "OFF", - "dynamic": true, - "id": "wsrep_log_conflicts", - "name": "wsrep_log_conflicts", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--wsrep-max-ws-rows=#", - "default": "0 (>= MariaDB Galera 10.0.27, MariaDB 10.1.17), 131072 (<= MariaDB Galera 10.0.26, MariaDB 10.1.16)", - "dynamic": true, - "id": "wsrep_max_ws_rows", - "name": "wsrep_max_ws_rows", - "range": { - "from": 0, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--wsrep-max-ws-size=#", - "default": "2147483647 (2GB, >= MariaDB Galera 10.0.27, MariaDB 10.1.17), 1073741824 (1GB, <= MariaDB Galera 10.0.26, MariaDB 10.1.16)", - "dynamic": true, - "id": "wsrep_max_ws_size", - "name": "wsrep_max_ws_size", - "range": { - "from": 1024, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--wsrep-mysql-replication-bundle=#", - "default": "0", - "dynamic": false, - "id": "wsrep_mysql_replication_bundle", - "name": "wsrep_mysql_replication_bundle", - "range": { - "from": 0, - "to": 1000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--wsrep-node-address=value", - "default": "Primary network address, usually eth0 with a default port of 4567, or 0.0.0.0 if no IP address.", - "dynamic": false, - "id": "wsrep_node_address", - "name": "wsrep_node_address", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--wsrep-node-incoming-address=value", - "default": "AUTO", - "dynamic": false, - "id": "wsrep_node_incoming_address", - "name": "wsrep_node_incoming_address", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--wsrep-node-name=value", - "default": "The server's hostname.", - "dynamic": true, - "id": "wsrep_node_name", - "name": "wsrep_node_name", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--wsrep-notify-command=value", - "default": "Empty", - "dynamic": true, - "id": "wsrep_notify_cmd", - "name": "wsrep_notify_cmd", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--wsrep-on[={0|1}]", - "default": "OFF (>= MariaDB 10.1), ON (<= MariaDB Galera Cluster 10.0),", - "dynamic": true, - "id": "wsrep_on", - "name": "wsrep_on", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "validValues": [ - "ON", - "OFF" - ] - }, - { - "cli": "--wsrep-OSU-method[=value]", - "default": "TOI", - "dynamic": true, - "id": "wsrep_osu_method", - "name": "wsrep_OSU_method", - "scope": [ - "global", - "session" - ], - "validValues": [ - "TOI", - "RSU" - ] - }, - { - "default": "None", - "dynamic": false, - "id": "wsrep_patch_version", - "name": "wsrep_patch_version", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--wsrep-provider=value", - "default": "None", - "dynamic": true, - "id": "wsrep_provider", - "name": "wsrep_provider", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--wsrep-provider-options=value", - "default": "Empty", - "dynamic": false, - "id": "wsrep_provider_options", - "name": "wsrep_provider_options", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--wsrep-recover[={0|1}]", - "default": "OFF", - "dynamic": false, - "id": "wsrep_recover", - "name": "wsrep_recover", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--wsrep-reject-queries[=value]", - "default": "NONE", - "dynamic": true, - "id": "wsrep_reject_queries", - "name": "wsrep_reject_queries", - "scope": [ - "global" - ], - "validValues": [ - "NONE", - "ALL", - "ALL_KILL" - ] - }, - { - "cli": "--wsrep-replicate-myisam[={0|1}]", - "default": "OFF", - "dynamic": true, - "id": "wsrep_replicate_myisam", - "name": "wsrep_replicate_myisam", - "scope": [ - "global" - ], - "type": "boolean", - "validValues": [ - "ON", - "OFF" - ] - }, - { - "cli": "--wsrep-restart-slave[={0|1}]", - "default": "OFF", - "dynamic": true, - "id": "wsrep_restart_slave", - "name": "wsrep_restart_slave", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--wsrep-retry-autocommit=value", - "default": "1", - "dynamic": false, - "id": "wsrep_retry_autocommit", - "name": "wsrep_retry_autocommit", - "range": { - "from": 0, - "to": 10000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--wsrep-slave-FK-checks[={0|1}]", - "default": "ON", - "dynamic": true, - "id": "wsrep_slave_fk_checks", - "name": "wsrep_slave_FK_checks", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--wsrep-slave-threads=#", - "default": "1", - "dynamic": true, - "id": "wsrep_slave_threads", - "name": "wsrep_slave_threads", - "range": { - "from": 1, - "to": 512 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--wsrep-slave-UK-checks[={0|1}]", - "default": "OFF", - "dynamic": true, - "id": "wsrep_slave_uk_checks", - "name": "wsrep_slave_UK_checks", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--wsrep-sr-store=val", - "default": "table", - "dynamic": false, - "id": "wsrep_sr_store", - "name": "wsrep_sr_store", - "scope": [ - "global" - ], - "validValues": [ - "table", - "none" - ] - }, - { - "cli": "--wsrep-sst-auth=value", - "default": "(Empty)", - "dynamic": true, - "id": "wsrep_sst_auth", - "name": "wsrep_sst_auth", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--wsrep-sst-donor=value", - "default": "", - "dynamic": true, - "id": "wsrep_sst_donor", - "name": "wsrep_sst_donor", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--wsrep-sst-donor-rejects-queries[={0|1}]", - "default": "OFF", - "dynamic": true, - "id": "wsrep_sst_donor_rejects_queries", - "name": "wsrep_sst_donor_rejects_queries", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--wsrep-sst-method=value", - "default": "rsync", - "dynamic": true, - "id": "wsrep_sst_method", - "name": "wsrep_sst_method", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "rsync", - "mysqldump", - "xtrabackup", - "xtrabackup-v2", - "mariabackup" - ] - }, - { - "cli": "--wsrep-sst-receive-address=value", - "default": "AUTO", - "dynamic": true, - "id": "wsrep_sst_receive_address", - "name": "wsrep_sst_receive_address", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--wsrep-start-position=value", - "default": "00000000-0000-0000-0000-000000000000:-1", - "dynamic": true, - "id": "wsrep_start_position", - "name": "wsrep_start_position", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--wsrep-sync-wait=#", - "default": "0", - "dynamic": true, - "id": "wsrep_sync_wait", - "name": "wsrep_sync_wait", - "range": { - "from": 0, - "to": 15 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--wsrep-trx-fragment-size=#", - "default": "0", - "dynamic": true, - "id": "wsrep_trx_fragment_size", - "name": "wsrep_trx_fragment_size", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--wsrep-trx-fragment-unit=value", - "default": "bytes", - "dynamic": true, - "id": "wsrep_trx_fragment_unit", - "name": "wsrep_trx_fragment_unit", - "scope": [ - "global", - "session" - ], - "validValues": [ - "bytes", - "rows", - "statements" - ] - } - ], - "name": "galera-cluster-system-variables", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-gtid-system-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-gtid-system-variables.json deleted file mode 100644 index 934ffef..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-gtid-system-variables.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "data": [ - { - "default": "Null", - "dynamic": false, - "id": "gtid_binlog_pos", - "name": "gtid_binlog_pos", - "scope": [ - "global" - ], - "type": "string" - }, - { - "default": "Null", - "dynamic": true, - "id": "gtid_binlog_state", - "name": "gtid_binlog_state", - "scope": [ - "global" - ], - "type": "string" - }, - { - "default": "Null", - "dynamic": false, - "id": "gtid_current_pos", - "name": "gtid_current_pos", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--gtid-domain-id=#", - "default": "0", - "dynamic": true, - "id": "gtid_domain_id", - "name": "gtid_domain_id", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ] - }, - { - "dynamic": false, - "id": "last_gtid", - "name": "last_gtid", - "scope": [ - "session" - ], - "type": "string" - }, - { - "dynamic": true, - "id": "server_id", - "name": "server_id", - "scope": [ - "global", - "session" - ] - }, - { - "default": "Null", - "dynamic": true, - "id": "gtid_seq_no", - "name": "gtid_seq_no", - "scope": [ - "session" - ] - }, - { - "cli": "--gtid-ignore-duplicates=#", - "default": "OFF", - "dynamic": true, - "id": "gtid_ignore_duplicates", - "name": "gtid_ignore_duplicates", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--gtid-pos-auto-engines=value", - "default": "empty", - "dynamic": true, - "id": "gtid_pos_auto_engines", - "name": "gtid_pos_auto_engines", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--gtid-cleanup-batch-size=#", - "default": "64", - "dynamic": true, - "id": "gtid_cleanup_batch_size", - "name": "gtid_cleanup_batch_size", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer" - } - ], - "name": "gtid-system-variables", - "url": "https://mariadb.com/kb/en/library/documentation/gtid/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-mariadb-audit-plugin-status-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-mariadb-audit-plugin-status-variables.json deleted file mode 100644 index a84ccca..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-mariadb-audit-plugin-status-variables.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "data": [ - { - "id": "server_audit_active", - "name": "Server_audit_active", - "type": "boolean" - }, - { - "id": "server_audit_current_log", - "name": "Server_audit_current_log", - "type": "string" - }, - { - "id": "server_audit_last_error", - "name": "Server_audit_last_error", - "type": "string" - }, - { - "default": "0", - "id": "server_audit_writes_failed", - "name": "Server_audit_writes_failed", - "type": "integer" - } - ], - "name": "mariadb-audit-plugin-status-variables", - "url": "https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-status-variables/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-mariadb-audit-plugin-system-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-mariadb-audit-plugin-system-variables.json deleted file mode 100644 index 163fa1f..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-mariadb-audit-plugin-system-variables.json +++ /dev/null @@ -1,244 +0,0 @@ -{ - "data": [ - { - "cli": "--server-audit-events=value", - "default": "Empty string", - "dynamic": true, - "id": "server_audit_events", - "name": "server_audit_events", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "CONNECT", - "QUERY", - "TABLE", - "CONNECT", - "QUERY", - "TABLE", - "QUERY_DDL", - "QUERY_DML", - "CONNECT", - "QUERY", - "TABLE", - "QUERY_DDL", - "QUERY_DML", - "QUERY_DCL", - "CONNECT", - "QUERY", - "TABLE", - "QUERY_DDL", - "QUERY_DML", - "QUERY_DCL", - "QUERY_DML_NO_SELECT" - ] - }, - { - "cli": "--server-audit-excl-users=value", - "default": "Empty string", - "dynamic": true, - "id": "server_audit_excl_users", - "name": "server_audit_excl_users", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--server-audit-file-path=value", - "default": "server_audit.log", - "dynamic": true, - "id": "server_audit_file_path", - "name": "server_audit_file_path", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--server-audit-rotate-now[={0|1}]", - "default": "OFF", - "dynamic": true, - "id": "server_audit_file_rotate_now", - "name": "server_audit_file_rotate_now", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--server-audit-rotate-size=#", - "default": "1000000", - "dynamic": true, - "id": "server_audit_file_rotate_size", - "name": "server_audit_file_rotate_size", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--server-audit-rotations=#", - "default": "9", - "dynamic": true, - "id": "server_audit_file_rotations", - "name": "server_audit_file_rotations", - "range": { - "from": 0, - "to": 999 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--server-audit-incl-users=value", - "default": "Empty string", - "dynamic": true, - "id": "server_audit_incl_users", - "name": "server_audit_incl_users", - "scope": [ - "global" - ], - "type": "string" - }, - { - "default": "Empty string", - "dynamic": false, - "id": "server_audit_loc_info", - "name": "server_audit_loc_info", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--server-audit-logging[={0|1}]", - "default": "OFF", - "dynamic": true, - "id": "server_audit_logging", - "name": "server_audit_logging", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--server-audit-mode[=#]", - "id": "server_audit_mode", - "name": "server_audit_mode" - }, - { - "cli": "--server-audit-output-type=value", - "default": "file", - "dynamic": true, - "id": "server_audit_output_type", - "name": "server_audit_output_type", - "scope": [ - "global" - ], - "validValues": [ - "SYSLOG", - "FILE" - ] - }, - { - "cli": "--server-audit-query-log-limit=#", - "default": "1024", - "dynamic": true, - "id": "server_audit_query_log_limit", - "name": "server_audit_query_log_limit", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--server-audit-syslog-facility=value", - "default": "LOG_USER", - "dynamic": true, - "id": "server_audit_syslog_facility", - "name": "server_audit_syslog_facility", - "scope": [ - "global" - ], - "validValues": [ - "LOG_USER", - "LOG_MAIL", - "LOG_DAEMON", - "LOG_AUTH", - "LOG_SYSLOG", - "LOG_LPR", - "LOG_NEWS", - "LOG_UUCP", - "LOG_CRON", - "LOG_AUTHPRIV", - "LOG_FTP", - "LOG_LOCAL0", - "LOG_LOCAL7" - ] - }, - { - "cli": "--server-audit-syslog-ident=value", - "default": "mysql-server_auditing", - "dynamic": true, - "id": "server_audit_syslog_ident", - "name": "server_audit_syslog_ident", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--server-audit-syslog-info=value", - "default": "Empty string", - "dynamic": true, - "id": "server_audit_syslog_info", - "name": "server_audit_syslog_info", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--server-audit-syslog-priority=value", - "default": "LOG_INFO", - "dynamic": true, - "id": "server_audit_syslog_priority", - "name": "server_audit_syslog_priority", - "scope": [ - "global" - ], - "validValues": [ - "LOG_EMERG", - "LOG_ALERT", - "LOG_CRIT", - "LOG_ERR", - "LOG_WARNING", - "LOG_NOTICE", - "LOG_INFO", - "LOG_DEBUG" - ] - }, - { - "cli": "--server-audit=val", - "default": "ON", - "id": "server_audit", - "name": "server_audit", - "validValues": [ - "OFF", - "ON", - "FORCE", - "FORCE_PLUS_PERMANENT" - ] - } - ], - "name": "mariadb-audit-plugin-system-variables", - "url": "https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-mroonga-status-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-mroonga-status-variables.json deleted file mode 100644 index 920bd2f..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-mroonga-status-variables.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "data": [ - { - "id": "mroonga_count_skip", - "name": "Mroonga_count_skip", - "type": "integer" - }, - { - "id": "mroonga_fast_order_limit", - "name": "Mroonga_fast_order_limit", - "type": "integer" - } - ], - "name": "mroonga-status-variables", - "url": "https://mariadb.com/kb/en/library/documentation/mroonga-status-variables/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-mroonga-system-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-mroonga-system-variables.json deleted file mode 100644 index d374d7a..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-mroonga-system-variables.json +++ /dev/null @@ -1,256 +0,0 @@ -{ - "data": [ - { - "cli": "--mroonga-action-on-fulltext-query-error=value", - "default": "ERROR_AND_LOG", - "dynamic": true, - "id": "mroonga_action_on_fulltext_query_error", - "name": "mroonga_action_on_fulltext_query_error", - "scope": [ - "global", - "session" - ] - }, - { - "cli": "--mroonga-boolean-mode-syntax-flags=value", - "default": "DEFAULT", - "dynamic": true, - "id": "mroonga_boolean_mode_syntax_flags", - "name": "mroonga_boolean_mode_syntax_flags", - "scope": [ - "global", - "session" - ] - }, - { - "cli": "--mroonga-database-path-prefix=value", - "default": "(Empty)", - "dynamic": true, - "id": "mroonga_database_path_prefix", - "name": "mroonga_database_path_prefix", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--mroonga-default-parser=value", - "default": "TokenBigram", - "dynamic": true, - "id": "mroonga_default_parser", - "name": "mroonga_default_parser", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--mroonga-default-tokenizer=value", - "default": "TokenBigram", - "dynamic": true, - "id": "mroonga_default_tokenizer", - "name": "mroonga_default_tokenizer", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "cli": "--mroonga-default-wrapper-engine=value", - "default": "(Empty)", - "dynamic": false, - "id": "mroonga_default_wrapper_engine", - "name": "mroonga_default_wrapper_engine", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--mroonga-dry-write[={0|1}]", - "default": "off", - "dynamic": true, - "id": "mroonga_dry_write", - "name": "mroonga_dry_write", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--mroonga-enable-operations-recording={0|1}", - "default": "ON", - "dynamic": true, - "id": "mroonga_enable_operations_recording", - "name": "mroonga_enable_operations_recording", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--mroonga-enable-optimization={0|1}", - "default": "on", - "dynamic": true, - "id": "mroonga_enable_optimization", - "name": "mroonga_enable_optimization", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "ON", - "dynamic": false, - "id": "mroonga_libgroonga_embedded", - "name": "mroonga_libgroonga_embedded", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "default": "OFF", - "dynamic": false, - "id": "mroonga_libgroonga_support_lz4", - "name": "mroonga_libgroonga_support_lz4", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "default": "ON", - "dynamic": false, - "id": "mroonga_libgroonga_support_zlib", - "name": "mroonga_libgroonga_support_zlib", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "default": "OFF", - "dynamic": false, - "id": "mroonga_libgroonga_support_zstd", - "name": "mroonga_libgroonga_support_zstd", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "dynamic": false, - "id": "mroonga_libgroonga_version", - "name": "mroonga_libgroonga_version", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--mroonga-lock-timeout=#", - "default": "900000", - "dynamic": true, - "id": "mroonga_lock_timeout", - "name": "mroonga_lock_timeout", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--mroonga-log-file=value", - "default": "groonga.log", - "dynamic": true, - "id": "mroonga_log_file", - "name": "mroonga_log_file", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--mroonga-log-level=value", - "default": "NOTICE", - "dynamic": true, - "id": "mroonga_log_level", - "name": "mroonga_log_level", - "scope": [ - "global" - ] - }, - { - "cli": "--mroonga-match-escalation-threshold=#", - "default": "0", - "dynamic": true, - "id": "mroonga_match_escalation_threshold", - "name": "mroonga_match_escalation_threshold", - "range": { - "from": -1, - "to": 9223372036854776000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--mroonga-max-n-records-for-estimate=#", - "default": "1000", - "dynamic": true, - "id": "mroonga_max_n_records_for_estimate", - "name": "mroonga_max_n_records_for_estimate", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--mroonga-query-log-file=filename", - "default": "(Empty string)", - "dynamic": true, - "id": "mroonga_query_log_file", - "name": "mroonga_query_log_file", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--mroonga-vector-column-delimiter=value", - "default": "(white space)", - "dynamic": true, - "id": "mroonga_vector_column_delimiter", - "name": "mroonga_vector_column_delimiter", - "scope": [ - "global" - ], - "type": "string" - }, - { - "dynamic": false, - "id": "mroonga_version", - "name": "mroonga_version", - "scope": [ - "global" - ], - "type": "string" - } - ], - "name": "mroonga-system-variables", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-myisam-system-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-myisam-system-variables.json deleted file mode 100644 index eecfb82..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-myisam-system-variables.json +++ /dev/null @@ -1,222 +0,0 @@ -{ - "data": [ - { - "cli": "--key-buffer-size=#", - "default": "134217728", - "dynamic": true, - "id": "key_buffer_size", - "name": "key_buffer_size", - "range": { - "from": 8, - "to": "upwards" - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--key-cache-age-threshold=#", - "default": "300", - "dynamic": true, - "id": "key_cache_age_threshold", - "name": "key_cache_age_threshold", - "range": { - "from": 100, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--key-cache-block-size=#", - "default": "1024", - "dynamic": true, - "id": "key_cache_block_size", - "name": "key_cache_block_size", - "range": { - "from": 512, - "to": 16384 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--key-cache-division-limit=#", - "default": "100", - "dynamic": true, - "id": "key_cache_division_limit", - "name": "key_cache_division_limit", - "range": { - "from": 1, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--key-cache-file-hash-size=#", - "default": "512", - "dynamic": true, - "id": "key_cache_file_hash_size", - "name": "key_cache_file_hash_size", - "range": { - "from": 128, - "to": 16384 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--key-cache-segments=#", - "default": "0 (non-segmented)", - "dynamic": true, - "id": "key_cache_segments", - "name": "key_cache_segments", - "range": { - "from": 0, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--myisam-block-size=#", - "default": "1024", - "dynamic": false, - "id": "myisam_block_size", - "name": "myisam_block_size", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--myisam-data-pointer-size=#", - "default": "6", - "dynamic": true, - "id": "myisam_data_pointer_size", - "name": "myisam_data_pointer_size", - "range": { - "from": 2, - "to": 7 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "myisam_max_extra_sort_file_size", - "name": "myisam_max_extra_sort_file_size" - }, - { - "cli": "--myisam-max-sort-file-size=#", - "dynamic": true, - "id": "myisam_max_sort_file_size", - "name": "myisam_max_sort_file_size", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--myisam-mmap-size=#", - "dynamic": true, - "id": "myisam_mmap_size", - "name": "myisam_mmap_size", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--myisam-recover-options[=name]", - "default": "BACKUP,QUICK (>= MariaDB 10.2.4), DEFAULT (<= MariaDB 10.2.3, >= MariaDB 5.1.44), OFF (<= MariaDB 5.1.42)", - "dynamic": false, - "id": "myisam_recover_options", - "name": "myisam_recover_options", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "OFF", - "DEFAULT", - "BACKUP", - "BACKUP_ALL", - "FORCE", - "QUICK" - ] - }, - { - "cli": "--myisam-repair-threads=#", - "default": "1", - "dynamic": true, - "id": "myisam_repair_threads", - "name": "myisam_repair_threads", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--myisam-sort-buffer-size=#", - "default": "134217720 (128MB), 8388608 (8MB - before MariaDB 10.0.3)", - "dynamic": true, - "id": "myisam_sort_buffer_size", - "name": "myisam_sort_buffer_size", - "range": { - "from": 4096, - "to": 18446744073709548000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--myisam-stats-method=name", - "default": "nulls_equal", - "dynamic": true, - "id": "myisam_stats_method", - "name": "myisam_stats_method", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "nulls_equal", - "nulls_unequal", - "nulls_ignored" - ] - }, - { - "cli": "--myisam-use-mmap", - "default": "OFF", - "dynamic": true, - "id": "myisam_use_mmap", - "name": "myisam_use_mmap", - "scope": [ - "global" - ], - "type": "boolean" - } - ], - "name": "myisam-system-variables", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-myrocks-system-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-myrocks-system-variables.json deleted file mode 100644 index 72f5fc5..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-myrocks-system-variables.json +++ /dev/null @@ -1,1732 +0,0 @@ -{ - "data": [ - { - "cli": "--rocksdb-access-hint-on-compaction-start=#", - "default": "1", - "dynamic": false, - "id": "rocksdb_access_hint_on_compaction_start", - "name": "rocksdb_access_hint_on_compaction_start", - "range": { - "from": 0, - "to": 3 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-advise-random-on-open={0|1}", - "default": "ON", - "dynamic": false, - "id": "rocksdb_advise_random_on_open", - "name": "rocksdb_advise_random_on_open", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-allow-concurrent-memtable-write={0|1}", - "default": "OFF", - "dynamic": false, - "id": "rocksdb_allow_concurrent_memtable_write", - "name": "rocksdb_allow_concurrent_memtable_write", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-allow-mmap-reads={0|1}", - "default": "OFF", - "dynamic": false, - "id": "rocksdb_allow_mmap_reads", - "name": "rocksdb_allow_mmap_reads", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-allow-mmap-writes={0|1}", - "default": "OFF", - "dynamic": false, - "id": "rocksdb_allow_mmap_writes", - "name": "rocksdb_allow_mmap_writes", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-background-sync={0|1}", - "default": "OFF", - "dynamic": false, - "id": "rocksdb_background_sync", - "name": "rocksdb_background_sync", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-base-background-compactions=#", - "default": "1", - "dynamic": false, - "id": "rocksdb_base_background_compactions", - "name": "rocksdb_base_background_compactions", - "range": { - "from": -1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-blind-delete-primary-key={0|1}", - "default": "OFF", - "dynamic": true, - "id": "rocksdb_blind_delete_primary_key", - "name": "rocksdb_blind_delete_primary_key", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-block-cache-size=#", - "default": "536870912", - "dynamic": false, - "id": "rocksdb_block_cache_size", - "name": "rocksdb_block_cache_size", - "range": { - "from": 1024, - "to": 9223372036854776000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-block-restart-interval=#", - "default": "16", - "dynamic": false, - "id": "rocksdb_block_restart_interval", - "name": "rocksdb_block_restart_interval", - "range": { - "from": 1, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-block-size=#", - "default": "4096", - "dynamic": false, - "id": "rocksdb_block_size", - "name": "rocksdb_block_size", - "range": { - "from": 1, - "to": 18446744073709552000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-block-size-deviation=#", - "default": "10", - "dynamic": false, - "id": "rocksdb_block_size_deviation", - "name": "rocksdb_block_size_deviation", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-bulk-load={0|1}", - "default": "OFF", - "dynamic": true, - "id": "rocksdb_bulk_load", - "name": "rocksdb_bulk_load", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-bulk-load_allow_unsorted={0|1}", - "default": "OFF", - "dynamic": true, - "id": "rocksdb_bulk_load_allow_unsorted", - "name": "rocksdb_bulk_load_allow_unsorted", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-bulk-load-size=#", - "default": "1000", - "dynamic": true, - "id": "rocksdb_bulk_load_size", - "name": "rocksdb_bulk_load_size", - "range": { - "from": 1, - "to": 1073741824 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-bytes-per-sync=#", - "default": "0", - "dynamic": false, - "id": "rocksdb_bytes_per_sync", - "name": "rocksdb_bytes_per_sync", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-cache-index-and-filter_blocks={0|1}", - "default": "ON", - "dynamic": false, - "id": "rocksdb_cache_index_and_filter_blocks", - "name": "rocksdb_cache_index_and_filter_blocks", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-checksums-pct=#", - "default": "100", - "dynamic": true, - "id": "rocksdb_checksums_pct", - "name": "rocksdb_checksums_pct", - "range": { - "from": 0, - "to": 100 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-collect-sst-properties={0|1}", - "default": "ON", - "dynamic": false, - "id": "rocksdb_collect_sst_properties", - "name": "rocksdb_collect_sst_properties", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-commit-in-the-middle={0|1}", - "default": "OFF", - "dynamic": true, - "id": "rocksdb_commit_in_the_middle", - "name": "rocksdb_commit_in_the_middle", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-compact-cf=value", - "default": "(Empty)", - "dynamic": true, - "id": "rocksdb_compact_cf", - "name": "rocksdb_compact_cf", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--rocksdb-compaction-readahead-size=#", - "default": "0", - "dynamic": true, - "id": "rocksdb_compaction_readahead_size", - "name": "rocksdb_compaction_readahead_size", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-compaction-sequential-deletes=#", - "default": "0", - "dynamic": true, - "id": "rocksdb_compaction_sequential_deletes", - "name": "rocksdb_compaction_sequential_deletes", - "range": { - "from": 0, - "to": 2000000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-compaction-sequential-deletes-count-sd={0|1}", - "default": "OFF", - "dynamic": true, - "id": "rocksdb_compaction_sequential_deletes_count_sd", - "name": "rocksdb_compaction_sequential_deletes_count_sd", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-compaction-sequential-deletes-file-size=#", - "default": "0", - "dynamic": true, - "id": "rocksdb_compaction_sequential_deletes_file_size", - "name": "rocksdb_compaction_sequential_deletes_file_size", - "range": { - "from": -1, - "to": 9223372036854776000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-compaction-sequential-deletes-window=#", - "default": "0", - "dynamic": true, - "id": "rocksdb_compaction_sequential_deletes_window", - "name": "rocksdb_compaction_sequential_deletes_window", - "range": { - "from": 0, - "to": 2000000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-coconcurrent-prepare={0|1}", - "default": "1", - "dynamic": false, - "id": "rocksdb_concurrent_prepare", - "name": "rocksdb_concurrent_prepare", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-create-checkpoint=value", - "default": "(Empty)", - "dynamic": true, - "id": "rocksdb_create_checkpoint", - "name": "rocksdb_create_checkpoint", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--rocksdb-create-if-missing={0|1}", - "default": "ON", - "dynamic": false, - "id": "rocksdb_create_if_missing", - "name": "rocksdb_create_if_missing", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-create-missing-column-families={0|1}", - "default": "OFF", - "dynamic": false, - "id": "rocksdb_create_missing_column_families", - "name": "rocksdb_create_missing_column_families", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-datadir[=value]", - "default": "./.rocksdb", - "dynamic": false, - "id": "rocksdb_datadir", - "name": "rocksdb_datadir", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--rocksdb-db-write-buffer-size=#", - "default": "0", - "dynamic": false, - "id": "rocksdb_db_write_buffer_size", - "name": "rocksdb_db_write_buffer_size", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-deadlock-detect={0|1}", - "default": "OFF", - "dynamic": true, - "id": "rocksdb_deadlock_detect", - "name": "rocksdb_deadlock_detect", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-deadlock-detect-depth=#", - "default": "50", - "dynamic": true, - "id": "rocksdb_deadlock_detect_depth", - "name": "rocksdb_deadlock_detect_depth", - "range": { - "from": 2, - "to": 18446744073709552000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-debug-optimizer-no-zero-cardinality={0|1}", - "default": "ON", - "dynamic": true, - "id": "rocksdb_debug_optimizer_no_zero_cardinality", - "name": "rocksdb_debug_optimizer_no_zero_cardinality", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-debug-ttl-ignore-pk={0|1}", - "default": "OFF", - "dynamic": true, - "id": "rocksdb_debug_ttl_ignore_pk", - "name": "rocksdb_debug_ttl_ignore_pk", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-debug-ttl-read-filter-ts=#", - "default": "0", - "dynamic": true, - "id": "rocksdb_debug_ttl_read_filter_ts", - "name": "rocksdb_debug_ttl_read_filter_ts", - "range": { - "from": -3600, - "to": 3600 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-debug-ttl-read-filter-ts=#", - "default": "0", - "dynamic": true, - "id": "rocksdb_debug_ttl_rec_ts", - "name": "rocksdb_debug_ttl_rec_ts", - "range": { - "from": -3600, - "to": 3600 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-debug-ttl-snapshot-ts=#", - "default": "0", - "dynamic": true, - "id": "rocksdb_debug_ttl_snapshot_ts", - "name": "rocksdb_debug_ttl_snapshot_ts", - "range": { - "from": -3600, - "to": 3600 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-default-cf-options=value", - "default": "(Empty)", - "dynamic": false, - "id": "rocksdb_default_cf_options", - "name": "rocksdb_default_cf_options", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--rocksdb-delayed-write-rate=#", - "default": "16777216", - "dynamic": true, - "id": "rocksdb_delayed_write_rate", - "name": "rocksdb_delayed_write_rate", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-delete-obsolete-files-period-micros=#", - "default": "21600000000", - "dynamic": false, - "id": "rocksdb_delete_obsolete_files_period_micros", - "name": "rocksdb_delete_obsolete_files_period_micros", - "range": { - "from": 0, - "to": 9223372036854776000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-enable-2pc={0|1}", - "default": "ON", - "dynamic": true, - "id": "rocksdb_enable_2pc", - "name": "rocksdb_enable_2pc", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-enable-bulk-load-api={0|1}", - "default": "ON", - "dynamic": false, - "id": "rocksdb_enable_bulk_load_api", - "name": "rocksdb_enable_bulk_load_api", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-enable-thread-tracking={0|1}", - "default": "OFF", - "dynamic": false, - "id": "rocksdb_enable_thread_tracking", - "name": "rocksdb_enable_thread_tracking", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-enable-ttl={0|1}", - "default": "ON", - "dynamic": true, - "id": "rocksdb_enable_ttl", - "name": "rocksdb_enable_ttl", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-enable-ttl-read-filtering={0|1}", - "default": "ON", - "dynamic": true, - "id": "rocksdb_enable_ttl_read_filtering", - "name": "rocksdb_enable_ttl_read_filtering", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-enable-write-thread-adaptive-yield={0|1}", - "default": "OFF", - "dynamic": true, - "id": "rocksdb_enable_write_thread_adaptive_yield", - "name": "rocksdb_enable_write_thread_adaptive_yield", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-error-if-exists={0|1}", - "default": "OFF", - "dynamic": false, - "id": "rocksdb_error_if_exists", - "name": "rocksdb_error_if_exists", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-flush-log-at-trx-commit=#", - "default": "1", - "dynamic": true, - "id": "rocksdb_flush_log_at_trx_commit", - "name": "rocksdb_flush_log_at_trx_commit", - "range": { - "from": 0, - "to": 2 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-flush-memtable-on-analyze={0|1}", - "default": "ON", - "dynamic": true, - "id": "rocksdb_flush_memtable_on_analyze", - "name": "rocksdb_flush_memtable_on_analyze", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-force-compute-memtable-stats={0|1}", - "default": "ON", - "dynamic": true, - "id": "rocksdb_force_compute_memtable_stats", - "name": "rocksdb_force_compute_memtable_stats", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-force-compute-memtable-stats-cachetime=#", - "default": "60000000", - "dynamic": true, - "id": "rocksdb_force_compute_memtable_stats_cachetime", - "name": "rocksdb_force_compute_memtable_stats_cachetime", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-force-flush-memtable-and-lzero-now={0|1}", - "default": "OFF", - "dynamic": true, - "id": "rocksdb_force_flush_memtable_and_lzero_now", - "name": "rocksdb_force_flush_memtable_and_lzero_now", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-force-flush-memtable-now={0|1}", - "default": "OFF", - "dynamic": true, - "id": "rocksdb_force_flush_memtable_now", - "name": "rocksdb_force_flush_memtable_now", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-force-index-records-in-range=#", - "default": "1", - "dynamic": true, - "id": "rocksdb_force_index_records_in_range", - "name": "rocksdb_force_index_records_in_range", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-git-hash=value=#", - "default": "As per git revision.", - "dynamic": false, - "id": "rocksdb_git_hash", - "name": "rocksdb_git_hash", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--rocksdb-hash-index-allow-collision={0|1}", - "default": "ON", - "dynamic": false, - "id": "rocksdb_hash_index_allow_collision", - "name": "rocksdb_hash_index_allow_collision", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-index-type=value", - "default": "kBinarySearch", - "dynamic": false, - "id": "rocksdb_index_type", - "name": "rocksdb_index_type", - "scope": [ - "global" - ], - "validValues": [ - "kBinarySearch", - "kHashSearch" - ] - }, - { - "cli": "--rocksdb-info-log-level=value", - "default": "error_level", - "dynamic": true, - "id": "rocksdb_info_log_level", - "name": "rocksdb_info_log_level", - "scope": [ - "global" - ], - "validValues": [ - "error_level", - "debug_level", - "info_level", - "warn_level", - "fatal_level" - ] - }, - { - "cli": "--rocksdb-io-write-timeout=#", - "default": "0", - "dynamic": true, - "id": "rocksdb_io_write_timeout", - "name": "rocksdb_io_write_timeout", - "scope": [ - "global" - ], - "type": "integer", - "validValues": [ - "0", - "4294967295" - ] - }, - { - "cli": "--rocksdb-is-fd-close-on-exec={0|1}", - "default": "ON", - "dynamic": false, - "id": "rocksdb_is_fd_close_on_exec", - "name": "rocksdb_is_fd_close_on_exec", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-keep-log-file-num=#", - "default": "1000", - "dynamic": false, - "id": "rocksdb_keep_log_file_num", - "name": "rocksdb_keep_log_file_num", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-large_prefix={0|1}", - "default": "OFF", - "dynamic": true, - "id": "rocksdb_large_prefix", - "name": "rocksdb_large_prefix", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-lock-scanned-rows={0|1}", - "default": "OFF", - "dynamic": true, - "id": "rocksdb_lock_scanned_rows", - "name": "rocksdb_lock_scanned_rows", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-lock-wait-timeout=#", - "default": "1", - "dynamic": true, - "id": "rocksdb_lock_wait_timeout", - "name": "rocksdb_lock_wait_timeout", - "range": { - "from": 1, - "to": 1073741824 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-log-file-time-to_roll=#", - "default": "0", - "dynamic": false, - "id": "rocksdb_log_file_time_to_roll", - "name": "rocksdb_log_file_time_to_roll", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-manifest-preallocation-size=#", - "default": "0", - "dynamic": false, - "id": "rocksdb_manifest_preallocation_size", - "name": "rocksdb_manifest_preallocation_size", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-manual-wal-flush={0|1}", - "default": "ON", - "dynamic": false, - "id": "rocksdb_manual_wal_flush", - "name": "rocksdb_manual_wal_flush", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-master-skip-tx-api={0|1}", - "default": "OFF", - "dynamic": true, - "id": "rocksdb_master_skip_tx_api", - "name": "rocksdb_master_skip_tx_api", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-max-background-compactions=#", - "default": "1", - "dynamic": true, - "id": "rocksdb_max_background_compactions", - "name": "rocksdb_max_background_compactions", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-max-background-flushes=#", - "default": "1", - "dynamic": false, - "id": "rocksdb_max_background_flushes", - "name": "rocksdb_max_background_flushes", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-max-background-jobs=#", - "default": "2", - "dynamic": true, - "id": "rocksdb_max_background_jobs", - "name": "rocksdb_max_background_jobs", - "range": { - "from": -1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-max-latest-deadlocks=#", - "default": "5", - "dynamic": true, - "id": "rocksdb_max_latest_deadlocks", - "name": "rocksdb_max_latest_deadlocks", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-max-log-file-size=#", - "default": "0", - "dynamic": false, - "id": "rocksdb_max_log_file_size", - "name": "rocksdb_max_log_file_size", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-manifest-log-file-size=#", - "default": "18446744073709551615", - "dynamic": false, - "id": "rocksdb_max_manifest_file_size", - "name": "rocksdb_max_manifest_file_size", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-max-open-files=#", - "default": "-1", - "dynamic": false, - "id": "rocksdb_max_open_files", - "name": "rocksdb_max_open_files", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-max-row-locks=#", - "default": "1048576", - "dynamic": true, - "id": "rocksdb_max_row_locks", - "name": "rocksdb_max_row_locks", - "range": { - "from": 1, - "to": 1073741824 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-max-subcompactions=#", - "default": "1", - "dynamic": false, - "id": "rocksdb_max_subcompactions", - "name": "rocksdb_max_subcompactions", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-max-total-wal-size=#", - "default": "0", - "dynamic": false, - "id": "rocksdb_max_total_wal_size", - "name": "rocksdb_max_total_wal_size", - "range": { - "from": 0, - "to": 9223372036854776000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-merge-buf-size=#", - "default": "67108864", - "dynamic": true, - "id": "rocksdb_merge_buf_size", - "name": "rocksdb_merge_buf_size", - "range": { - "from": 100, - "to": 18446744073709552000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-merge-combine-read-size=#", - "default": "1073741824", - "dynamic": true, - "id": "rocksdb_merge_combine_read_size", - "name": "rocksdb_merge_combine_read_size", - "range": { - "from": 100, - "to": 18446744073709552000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-merge-tmp-file-removal-delay-ms=#", - "default": "0", - "dynamic": true, - "id": "rocksdb_merge_tmp_file_removal_delay_ms", - "name": "rocksdb_merge_tmp_file_removal_delay_ms", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-new-table-reader-for-compaction-inputs={0|1}", - "default": "OFF", - "dynamic": false, - "id": "rocksdb_new_table_reader_for_compaction_inputs", - "name": "rocksdb_new_table_reader_for_compaction_inputs", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-no-block-cache={0|1}", - "default": "OFF", - "dynamic": false, - "id": "rocksdb_no_block_cache", - "name": "rocksdb_no_block_cache", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-override-cf-options=value", - "default": "(Empty)", - "dynamic": false, - "id": "rocksdb_override_cf_options", - "name": "rocksdb_override_cf_options", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--rocksdb-paranoid-checks={0|1}", - "default": "ON", - "dynamic": false, - "id": "rocksdb_paranoid_checks", - "name": "rocksdb_paranoid_checks", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-pause-background-work={0|1}", - "default": "OFF", - "dynamic": true, - "id": "rocksdb_pause_background_work", - "name": "rocksdb_pause_background_work", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-perf-context-level=#", - "default": "0", - "dynamic": true, - "id": "rocksdb_perf_context_level", - "name": "rocksdb_perf_context_level", - "range": { - "from": 0, - "to": 4 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-persistent-cache-path=value", - "default": "(Empty)", - "dynamic": false, - "id": "rocksdb_persistent_cache_path", - "name": "rocksdb_persistent_cache_path", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--rocksdb-persistent-cache-size-mb=#", - "default": "0", - "dynamic": false, - "id": "rocksdb_persistent_cache_size_mb", - "name": "rocksdb_persistent_cache_size_mb", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-pin-l0-filter-and-index-blocks-in-cache={0|1}", - "default": "ON", - "dynamic": false, - "id": "rocksdb_pin_l0_filter_and_index_blocks_in_cache", - "name": "rocksdb_pin_l0_filter_and_index_blocks_in_cache", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-print-snapshot-conflict-queries={0|1}", - "default": "OFF", - "dynamic": true, - "id": "rocksdb_print_snapshot_conflict_queries", - "name": "rocksdb_print_snapshot_conflict_queries", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-rate-limiter-bytes-per-sec=#", - "default": "0", - "dynamic": true, - "id": "rocksdb_rate_limiter_bytes_per_sec", - "name": "rocksdb_rate_limiter_bytes_per_sec", - "range": { - "from": 0, - "to": 9223372036854776000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-read-free-rpl-tables=value", - "default": "(Empty)", - "dynamic": true, - "id": "rocksdb_read_free_rpl_tables", - "name": "rocksdb_read_free_rpl_tables", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "cli": "--rocksdb-records-in-range=#", - "default": "0", - "dynamic": true, - "id": "rocksdb_records_in_range", - "name": "rocksdb_records_in_range", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-reset-stats={0|1}", - "default": "OFF", - "dynamic": true, - "id": "rocksdb_reset_stats", - "name": "rocksdb_reset_stats", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-seconds-between-stat-computes=#", - "default": "3600", - "dynamic": true, - "id": "rocksdb_seconds_between_stat_computes", - "name": "rocksdb_seconds_between_stat_computes", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-signal-drop-index-thread={0|1}", - "default": "OFF", - "dynamic": true, - "id": "rocksdb_signal_drop_index_thread", - "name": "rocksdb_signal_drop_index_thread", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-sim-cache-size=#", - "default": "0", - "dynamic": false, - "id": "rocksdb_sim_cache_size", - "name": "rocksdb_sim_cache_size", - "range": { - "from": 0, - "to": 9223372036854776000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-skip-bloom-filter-on_read={0|1}", - "default": "OFF", - "dynamic": true, - "id": "rocksdb_skip_bloom_filter_on_read", - "name": "rocksdb_skip_bloom_filter_on_read", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-skip-fill-cache={0|1}", - "default": "OFF", - "dynamic": true, - "id": "rocksdb_skip_fill_cache", - "name": "rocksdb_skip_fill_cache", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-skip-unique-check-tables=value", - "default": ".*", - "dynamic": true, - "id": "rocksdb_skip_unique_check_tables", - "name": "rocksdb_skip_unique_check_tables", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "cli": "--rocksdb-sst-mgr-rate-bytes-per-sec=#", - "default": "0", - "dynamic": true, - "id": "rocksdb_sst_mgr_rate_bytes_per_sec", - "name": "rocksdb_sst_mgr_rate_bytes_per_sec", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-stats-dump-period-sec=#", - "default": "600", - "dynamic": false, - "id": "rocksdb_stats_dump_period_sec", - "name": "rocksdb_stats_dump_period_sec", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-store-row-debug-checksums={0|1}", - "default": "OFF", - "dynamic": true, - "id": "rocksdb_store_row_debug_checksums", - "name": "rocksdb_store_row_debug_checksums", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-strict-collation-check={0|1}", - "default": "ON", - "dynamic": true, - "id": "rocksdb_strict_collation_check", - "name": "rocksdb_strict_collation_check", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-strict-collation-exceptions=value", - "default": "(Empty)", - "dynamic": true, - "id": "rocksdb_strict_collation_exceptions", - "name": "rocksdb_strict_collation_exceptions", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--rocksdb-supported-compression-types=value", - "default": "Snappy,Zlib", - "dynamic": false, - "id": "rocksdb_supported_compression_types", - "name": "rocksdb_supported_compression_types", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--rocksdb-table-cache-numshardbits=#", - "default": "6", - "dynamic": false, - "id": "rocksdb_table_cache_numshardbits", - "name": "rocksdb_table_cache_numshardbits", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-table-stats-sampling-pct=#", - "default": "10", - "dynamic": true, - "id": "rocksdb_table_stats_sampling_pct", - "name": "rocksdb_table_stats_sampling_pct", - "range": { - "from": 0, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-tmpdir[=value]", - "default": "(Empty)", - "dynamic": true, - "id": "rocksdb_tmpdir", - "name": "rocksdb_tmpdir", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "cli": "--rocksdb-trace-sst-api={0|1}", - "default": "OFF", - "dynamic": true, - "id": "rocksdb_trace_sst_api", - "name": "rocksdb_trace_sst_api", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-unsafe-for-binlog={0|1}", - "default": "OFF", - "dynamic": true, - "id": "rocksdb_unsafe_for_binlog", - "name": "rocksdb_unsafe_for_binlog", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-update-cf-options=value", - "default": "(Empty)", - "dynamic": true, - "id": "rocksdb_update_cf_options", - "name": "rocksdb_update_cf_options", - "scope": [ - "global" - ] - }, - { - "cli": "--rocksdb-use-adaptive-mutex={0|1}", - "default": "OFF", - "dynamic": false, - "id": "rocksdb_use_adaptive_mutex", - "name": "rocksdb_use_adaptive_mutex", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-use-clock-cache={0|1}", - "default": "OFF", - "dynamic": false, - "id": "rocksdb_use_clock_cache", - "name": "rocksdb_use_clock_cache", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-use-direct-io-for-flush-and-compaction={0|1}", - "default": "OFF", - "dynamic": false, - "id": "rocksdb_use_direct_io_for_flush_and_compaction", - "name": "rocksdb_use_direct_io_for_flush_and_compaction", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-use-direct-reads={0|1}", - "default": "OFF", - "dynamic": false, - "id": "rocksdb_use_direct_reads", - "name": "rocksdb_use_direct_reads", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-use-direct-reads={0|1}", - "default": "OFF", - "dynamic": false, - "id": "rocksdb_use_direct_writes", - "name": "rocksdb_use_direct_writes", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-use-fsync={0|1}", - "default": "OFF", - "dynamic": false, - "id": "rocksdb_use_fsync", - "name": "rocksdb_use_fsync", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-validate-tables=#", - "default": "1", - "dynamic": false, - "id": "rocksdb_validate_tables", - "name": "rocksdb_validate_tables", - "range": { - "from": 0, - "to": 2 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-verify-row-debug-checksums={0|1}", - "default": "OFF", - "dynamic": true, - "id": "rocksdb_verify_row_debug_checksums", - "name": "rocksdb_verify_row_debug_checksums", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-wal-bytes-per-sync=#", - "default": "0", - "dynamic": false, - "id": "rocksdb_wal_bytes_per_sync", - "name": "rocksdb_wal_bytes_per_sync", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-wal-dir=value", - "default": "(Empty)", - "dynamic": false, - "id": "rocksdb_wal_dir", - "name": "rocksdb_wal_dir", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--rocksdb-wal-recovery-mode=#", - "default": "1", - "dynamic": true, - "id": "rocksdb_wal_recovery_mode", - "name": "rocksdb_wal_recovery_mode", - "range": { - "from": 0, - "to": 3 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-wal-size-limit-mb=#", - "default": "0", - "dynamic": false, - "id": "rocksdb_wal_size_limit_mb", - "name": "rocksdb_wal_size_limit_mb", - "range": { - "from": 0, - "to": 9223372036854776000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-wal-ttl-seconds=#", - "default": "0", - "dynamic": false, - "id": "rocksdb_wal_ttl_seconds", - "name": "rocksdb_wal_ttl_seconds", - "range": { - "from": 0, - "to": 9223372036854776000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-whole-key-filtering={0|1}", - "default": "ON", - "dynamic": false, - "id": "rocksdb_whole_key_filtering", - "name": "rocksdb_whole_key_filtering", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-write-batch-max-bytes=#", - "default": "0", - "dynamic": true, - "id": "rocksdb_write_batch_max_bytes", - "name": "rocksdb_write_batch_max_bytes", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--rocksdb-write-disable-wal={0|1}", - "default": "OFF", - "dynamic": true, - "id": "rocksdb_write_disable_wal", - "name": "rocksdb_write_disable_wal", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--rocksdb-write-ignore-missing-column-familiesl={0|1}", - "default": "OFF", - "dynamic": true, - "id": "rocksdb_write_ignore_missing_column_families", - "name": "rocksdb_write_ignore_missing_column_families", - "scope": [ - "global", - "session" - ], - "type": "boolean" - } - ], - "name": "myrocks-system-variables", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-oqgraph-system-and-status-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-oqgraph-system-and-status-variables.json deleted file mode 100644 index 79fc71f..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-oqgraph-system-and-status-variables.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "data": [ - { - "default": "0", - "dynamic": true, - "id": "oqgraph_allow_create_integer_latch", - "name": "oqgraph_allow_create_integer_latch", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "id": "oqgraph_boost_version", - "name": "Oqgraph_boost_version", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "id": "oqgraph_compat_mode", - "name": "Oqgraph_compat_mode", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "id": "oqgraph_verbose_debug", - "name": "Oqgraph_verbose_debug", - "scope": [ - "global", - "session" - ], - "type": "string" - } - ], - "name": "oqgraph-system-and-status-variables", - "url": "https://mariadb.com/kb/en/library/documentation/oqgraph-system-and-status-variables/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-performance-schema-system-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-performance-schema-system-variables.json deleted file mode 100644 index c7792af..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-performance-schema-system-variables.json +++ /dev/null @@ -1,482 +0,0 @@ -{ - "data": [ - { - "cli": "--performance-schema=#", - "default": "OFF (>= MariaDB 10.0.12), ON (<= MariaDB 10.0.11)", - "dynamic": false, - "id": "performance_schema", - "name": "performance_schema", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--performance-schema-accounts-size=#", - "default": "-1 (>= MariaDB 10.0.12), 10 (<= MariaDB 10.0.11)", - "dynamic": false, - "id": "performance_schema_accounts_size", - "name": "performance_schema_accounts_size", - "range": { - "from": -1, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-digests-size=#", - "default": "-1 (>= MariaDB 10.0.12), 1000 (<= MariaDB 10.0.11)", - "dynamic": false, - "id": "performance_schema_digests_size", - "name": "performance_schema_digests_size", - "range": { - "from": -1, - "to": 200 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-events-stages-history-long-size=#", - "default": "-1 (>= MariaDB 10.0.12), 10000 (<= MariaDB 10.0.11)", - "dynamic": false, - "id": "performance_schema_events_stages_history_long_size", - "name": "performance_schema_events_stages_history_long_size", - "range": { - "from": -1, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-events-stages-history-size=#", - "default": "-1 (>= MariaDB 10.0.12), 10 (<= MariaDB 10.0.11)", - "dynamic": false, - "id": "performance_schema_events_stages_history_size", - "name": "performance_schema_events_stages_history_size", - "range": { - "from": -1, - "to": 1024 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-events-statements-history-long-size=#", - "default": "-1 (>= MariaDB 10.0.12), 100 (<= MariaDB 10.0.11)", - "dynamic": false, - "id": "performance_schema_events_statements_history_long_size", - "name": "performance_schema_events_statements_history_long_size", - "range": { - "from": -1, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-events-statements-history-size=#", - "default": "-1 (>= MariaDB 10.0.12), 5 (<= MariaDB 10.0.11)", - "dynamic": false, - "id": "performance_schema_events_statements_history_size", - "name": "performance_schema_events_statements_history_size", - "range": { - "from": -1, - "to": 1024 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-events-waits-history-long-size=#", - "default": "-1 (>= MariaDB 10.0.12), 100 (<= MariaDB 10.0.11)", - "dynamic": false, - "id": "performance_schema_events_waits_history_long_size", - "name": "performance_schema_events_waits_history_long_size", - "range": { - "from": -1, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-events-waits-history-size=#", - "default": "-1 (>= MariaDB 10.0.12), 5 (<= MariaDB 10.0.11)", - "dynamic": false, - "id": "performance_schema_events_waits_history_size", - "name": "performance_schema_events_waits_history_size", - "range": { - "from": -1, - "to": 1024 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-hosts-size=#", - "default": "-1 (>= MariaDB 10.0.12), 20 (<= MariaDB 10.0.11)", - "dynamic": false, - "id": "performance_schema_hosts_size", - "name": "performance_schema_hosts_size", - "range": { - "from": -1, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-cond-classes=#", - "default": "80", - "dynamic": false, - "id": "performance_schema_max_cond_classes", - "name": "performance_schema_max_cond_classes", - "range": { - "from": 0, - "to": 256 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-cond-instances=#", - "default": "-1 (>= MariaDB 10.0.12), 1000 (<= MariaDB 10.0.11)", - "dynamic": false, - "id": "performance_schema_max_cond_instances", - "name": "performance_schema_max_cond_instances", - "range": { - "from": -1, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-digest-length=#", - "default": "1024", - "dynamic": false, - "id": "performance_schema_max_digest_length", - "name": "performance_schema_max_digest_length", - "range": { - "from": 0, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-file-classes=#", - "default": "50", - "dynamic": false, - "id": "performance_schema_max_file_classes", - "name": "performance_schema_max_file_classes", - "range": { - "from": 0, - "to": 256 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-file-handles=#", - "default": "32768", - "dynamic": false, - "id": "performance_schema_max_file_handles", - "name": "performance_schema_max_file_handles", - "range": { - "from": -1, - "to": 32768 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-file-instances=#", - "default": "-1 (>= MariaDB 10.0.12), 10000 (<= MariaDB 10.0.11)", - "dynamic": false, - "id": "performance_schema_max_file_instances", - "name": "performance_schema_max_file_instances", - "range": { - "from": -1, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-mutex-classes=#", - "default": "200", - "dynamic": false, - "id": "performance_schema_max_mutex_classes", - "name": "performance_schema_max_mutex_classes", - "range": { - "from": 0, - "to": 256 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-mutex-instances=#", - "default": "-1 (>= MariaDB 10.0.12), 1000000 (<= MariaDB 10.0.11)", - "dynamic": false, - "id": "performance_schema_max_mutex_instances", - "name": "performance_schema_max_mutex_instances", - "range": { - "from": -1, - "to": 104857600 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-rwlock-classes=#", - "default": "40", - "dynamic": false, - "id": "performance_schema_max_rwlock_classes", - "name": "performance_schema_max_rwlock_classes", - "range": { - "from": 0, - "to": 256 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-rwlock-instances=#", - "default": "-1 (>= MariaDB 10.0.12), 1000000 (<= MariaDB 10.0.11)", - "dynamic": false, - "id": "performance_schema_max_rwlock_instances", - "name": "performance_schema_max_rwlock_instances", - "range": { - "from": -1, - "to": 104857600 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-socket-classes=#", - "default": "10", - "dynamic": false, - "id": "performance_schema_max_socket_classes", - "name": "performance_schema_max_socket_classes", - "range": { - "from": 0, - "to": 256 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-socket-instances=#", - "default": "-1 (>= MariaDB 10.0.12)", - "dynamic": false, - "id": "performance_schema_max_socket_instances", - "name": "performance_schema_max_socket_instances", - "range": { - "from": -1, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-stage-classes=#", - "default": "160 (>= MariaDB 10.3.3), 150 (<= MariaDB 10.3.2)", - "dynamic": false, - "id": "performance_schema_max_stage_classes", - "name": "performance_schema_max_stage_classes", - "range": { - "from": 0, - "to": 256 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-statement-classes=#", - "default": "(autosized)", - "dynamic": false, - "id": "performance_schema_max_statement_classes", - "name": "performance_schema_max_statement_classes", - "range": { - "from": 0, - "to": 256 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-table-handles=#", - "default": "-1 (>= MariaDB 10.0.12), 10000 (<= MariaDB 10.0.11)", - "dynamic": false, - "id": "performance_schema_max_table_handles", - "name": "performance_schema_max_table_handles", - "range": { - "from": -1, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-table-instances=#", - "default": "-1 (>= MariaDB 10.0.12), 1000 (<= MariaDB 10.0.11)", - "dynamic": false, - "id": "performance_schema_max_table_instances", - "name": "performance_schema_max_table_instances", - "range": { - "from": -1, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-thread-classes=#", - "default": "50", - "dynamic": false, - "id": "performance_schema_max_thread_classes", - "name": "performance_schema_max_thread_classes", - "range": { - "from": 0, - "to": 256 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-thread-instances=#", - "default": "-1 (>= MariaDB 10.0.12), 1000 (<= MariaDB 10.0.11)", - "dynamic": false, - "id": "performance_schema_max_thread_instances", - "name": "performance_schema_max_thread_instances", - "range": { - "from": -1, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-session-connect-attrs-size=#", - "default": "-1 (>= MariaDB 10.0.12)", - "dynamic": false, - "id": "performance_schema_session_connect_attrs_size", - "name": "performance_schema_session_connect_attrs_size", - "range": { - "from": -1, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-setup-actors-size=#", - "default": "100", - "dynamic": false, - "id": "performance_schema_setup_actors_size", - "name": "performance_schema_setup_actors_size", - "range": { - "from": 0, - "to": 1024 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-setup-objects-size=#", - "default": "100", - "dynamic": false, - "id": "performance_schema_setup_objects_size", - "name": "performance_schema_setup_objects_size", - "range": { - "from": 0, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-users-size=#", - "default": "-1 (>= MariaDB 10.0.12)", - "dynamic": false, - "id": "performance_schema_users_size", - "name": "performance_schema_users_size", - "range": { - "from": -1, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - } - ], - "name": "performance-schema-system-variables", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-replication-and-binary-log-server-system-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-replication-and-binary-log-server-system-variables.json deleted file mode 100644 index 9dd715b..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-replication-and-binary-log-server-system-variables.json +++ /dev/null @@ -1,988 +0,0 @@ -{ - "data": [ - { - "cli": "--auto-increment-increment[=#]", - "default": "1", - "dynamic": true, - "id": "auto_increment_increment", - "name": "auto_increment_increment", - "range": { - "from": 1, - "to": 65535 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--auto-increment-offset[=#]", - "default": "1", - "dynamic": true, - "id": "auto_increment_offset", - "name": "auto_increment_offset", - "range": { - "from": 1, - "to": 65535 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--binlog-annotate-row-events[={0|1}]", - "default": "ON (>= MariaDB 10.2.4), OFF (<= MariaDB 10.2.3)", - "dynamic": true, - "id": "binlog_annotate_row_events", - "name": "binlog_annotate_row_events", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--binlog-cache-size=#", - "default": "32768", - "dynamic": true, - "id": "binlog_cache_size", - "name": "binlog_cache_size", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--binlog-checksum=name\n--binlog-checksum=[0|1]", - "default": "CRC32 (>= MariaDB 10.2.1), NONE (<= MariaDB 10.2.0)", - "dynamic": true, - "id": "binlog_checksum", - "name": "binlog_checksum", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "NONE", - "0", - "CRC32", - "1" - ] - }, - { - "cli": "--binlog-commit-wait-count=#]", - "default": "0", - "dynamic": true, - "id": "binlog_commit_wait_count", - "name": "binlog_commit_wait_count", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--binlog-commit-wait-usec#", - "default": "100000", - "dynamic": true, - "id": "binlog_commit_wait_usec", - "name": "binlog_commit_wait_usec", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--binlog-direct-non-transactional-updates[=value]", - "default": "OFF (0)", - "dynamic": true, - "id": "binlog_direct_non_transactional_updates", - "name": "binlog_direct_non_transactional_updates", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--binlog-file-cache-size=#", - "default": "16384", - "dynamic": true, - "id": "binlog_file_cache_size", - "name": "binlog_file_cache_size", - "range": { - "from": 8192, - "to": 18446744073709552000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--binlog-format=format", - "default": "MIXED (>= MariaDB 10.2.4), STATEMENT (<= MariaDB 10.2.3)", - "dynamic": true, - "id": "binlog_format", - "name": "binlog_format", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "ROW", - "STATEMENT", - "MIXED" - ] - }, - { - "cli": "--binlog-optimize-thread-scheduling or --skip-binlog-optimize-thread-scheduling", - "default": "ON", - "dynamic": false, - "id": "binlog_optimize_thread_scheduling", - "name": "binlog_optimize_thread_scheduling", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--binlog-row-image=value", - "default": "FULL", - "dynamic": true, - "id": "binlog_row_image", - "name": "binlog_row_image", - "scope": [ - "global", - "session" - ], - "validValues": [ - "FULL", - "NOBLOB", - "MINIMAL" - ] - }, - { - "cli": "--binlog-row-metadata=value", - "default": "NO_LOG", - "dynamic": true, - "id": "binlog_row_metadata", - "name": "binlog_row_metadata", - "scope": [ - "global", - "session" - ], - "validValues": [ - "NO_LOG", - "MINIMAL", - "FULL" - ] - }, - { - "cli": "--binlog-stmt-cache-size=#", - "default": "32768", - "dynamic": true, - "id": "binlog_stmt_cache_size", - "name": "binlog_stmt_cache_size", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "default": "'' (empty string)", - "dynamic": true, - "id": "default_master_connection", - "name": "default_master_connection", - "scope": [ - "session" - ], - "type": "string" - }, - { - "cli": "--encrypt-binlog[={0|1}]", - "default": "OFF", - "dynamic": false, - "id": "encrypt_binlog", - "name": "encrypt_binlog", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--expire-logs-days=#", - "default": "0", - "dynamic": true, - "id": "expire_logs_days", - "name": "expire_logs_days", - "range": { - "from": 0, - "to": 99 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--init-slave=name", - "dynamic": true, - "id": "init_slave", - "name": "init_slave", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--log-bin[=name]", - "default": "OFF", - "dynamic": false, - "id": "log_bin", - "name": "log_bin", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "dynamic": false, - "id": "log_bin_basename", - "name": "log_bin_basename", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--log-bin-compress", - "default": "OFF", - "dynamic": true, - "id": "log_bin_compress", - "name": "log_bin_compress", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--log-bin-compress-min-len", - "default": "256", - "dynamic": true, - "id": "log_bin_compress_min_len", - "name": "log_bin_compress_min_len", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--log-bin-index=name", - "dynamic": false, - "id": "log_bin_index", - "name": "log_bin_index", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--log-bin-trust-function-creators[={0|1}]", - "default": "OFF", - "dynamic": true, - "id": "log_bin_trust_function_creators", - "name": "log_bin_trust_function_creators", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--log-slow-slave-statements", - "default": "ON (>= MariaDB 10.2.4), OFF (<= MariaDB 10.2.3)", - "dynamic": true, - "id": "log_slow_slave_statements", - "name": "log_slow_slave_statements", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--log-slave-updates", - "default": "OFF", - "dynamic": false, - "id": "log_slave_updates", - "name": "log_slave_updates", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--master-verify-checksum=[0|1]", - "default": "OFF (0)", - "id": "master_verify_checksum", - "name": "master_verify_checksum", - "scope": [ - "global" - ] - }, - { - "cli": "--max-binlog-cache-size=#", - "default": "18446744073709547520", - "dynamic": true, - "id": "max_binlog_cache_size", - "name": "max_binlog_cache_size", - "range": { - "from": 4096, - "to": 18446744073709548000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--max-binlog-size=#", - "default": "1073741824 (1GB)", - "dynamic": true, - "id": "max_binlog_size", - "name": "max_binlog_size", - "range": { - "from": 4096, - "to": 1073741824 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--max-binlog-stmt-cache-size=#", - "default": "18446744073709547520 (64 bit), 4294963200 (32 bit)", - "dynamic": true, - "id": "max_binlog_stmt_cache_size", - "name": "max_binlog_stmt_cache_size", - "range": { - "from": 4096, - "to": 18446744073709548000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--max-relay-log-size=#", - "default": "0", - "dynamic": true, - "id": "max_relay_log_size", - "name": "max_relay_log_size", - "range": { - "from": 0, - "to": 4096 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--read-binlog-speed-limit=#", - "default": "0 (no limit)", - "dynamic": true, - "id": "read_binlog_speed_limit", - "name": "read_binlog_speed_limit", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--relay-log=file_name", - "default": "'' (none)", - "dynamic": false, - "id": "relay_log", - "name": "relay_log", - "scope": [ - "global" - ] - }, - { - "dynamic": false, - "id": "relay_log_basename", - "name": "relay_log_basename", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--relay-log-index=name", - "dynamic": false, - "id": "relay_log_index", - "name": "relay_log_index", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--relay-log-info-file=file_name", - "default": "relay-log.info", - "dynamic": false, - "id": "relay_log_info_file", - "name": "relay_log_info_file", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--relay-log-purge={0|1}", - "default": "ON", - "dynamic": true, - "id": "relay_log_purge", - "name": "relay_log_purge", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--relay-log-recovery", - "default": "OFF", - "dynamic": true, - "id": "relay_log_recovery", - "name": "relay_log_recovery", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--relay-log-space-limit=#", - "default": "0", - "dynamic": false, - "id": "relay_log_space_limit", - "name": "relay_log_space_limit", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--replicate-annotate-row-events", - "default": "ON (>= MariaDB 10.2.4), OFF (<= MariaDB 10.2.3)", - "dynamic": false, - "id": "replicate_annotate_row_events", - "name": "replicate_annotate_row_events", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--replicate-do-db=name", - "default": "'' (empty)", - "dynamic": true, - "id": "replicate_do_db", - "name": "replicate_do_db", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--replicate-do-table=name", - "default": "'' (empty)", - "dynamic": true, - "id": "replicate_do_table", - "name": "replicate_do_table", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--replicate-events-marked-for-skip", - "default": "replicate", - "dynamic": true, - "id": "replicate_events_marked_for_skip", - "name": "replicate_events_marked_for_skip", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "REPLICATE", - "FILTER_ON_SLAVE", - "FILTER_ON_MASTER" - ] - }, - { - "cli": "--replicate-ignore-db=name", - "default": "'' (empty)", - "dynamic": true, - "id": "replicate_ignore_db", - "name": "replicate_ignore_db", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--replicate-ignore-table=name", - "default": "'' (empty)", - "dynamic": true, - "id": "replicate_ignore_table", - "name": "replicate_ignore_table", - "scope": [ - "global" - ], - "type": "string" - }, - { - "id": "replicate_rewrite_db", - "name": "replicate_rewrite_db" - }, - { - "cli": "--replicate-wild-do-table=name", - "default": "'' (empty)", - "dynamic": true, - "id": "replicate_wild_do_table", - "name": "replicate_wild_do_table", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--replicate-wild-ignore-table=name", - "default": "'' (empty)", - "dynamic": true, - "id": "replicate_wild_ignore_table", - "name": "replicate_wild_ignore_table", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--report-host=host_name", - "dynamic": false, - "id": "report_host", - "name": "report_host", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--report-password=password", - "dynamic": false, - "id": "report_password", - "name": "report_password", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--report-port=#", - "default": "0", - "dynamic": false, - "id": "report_port", - "name": "report_port", - "range": { - "from": 0, - "to": 65535 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--report-user=name", - "dynamic": false, - "id": "report_user", - "name": "report_user", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--server-id =#", - "default": "1 (>= MariaDB 10.2.2), 0 (<= MariaDB 10.2.1)", - "dynamic": true, - "id": "server_id", - "name": "server_id", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "default": "OFF", - "dynamic": true, - "id": "skip_parallel_replication", - "name": "skip_parallel_replication", - "scope": [ - "session" - ], - "type": "boolean" - }, - { - "default": "OFF", - "dynamic": true, - "id": "skip_replication", - "name": "skip_replication", - "scope": [ - "session" - ], - "type": "boolean" - }, - { - "cli": "--slave-compressed-protocol", - "default": "0", - "dynamic": true, - "id": "slave_compressed_protocol", - "name": "slave_compressed_protocol", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--slave-ddl-exec-mode=name", - "default": "IDEMPOTENT", - "dynamic": true, - "id": "slave_ddl_exec_mode", - "name": "slave_ddl_exec_mode", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "IDEMPOTENT", - "STRICT" - ] - }, - { - "cli": "--slave-domain-parallel-threads=#", - "default": "0", - "dynamic": true, - "id": "slave_domain_parallel_threads", - "name": "slave_domain_parallel_threads", - "scope": [ - "global" - ], - "type": "integer", - "validValues": [ - "0", - "16383" - ] - }, - { - "default": "IDEMPOTENT (NDB), STRICT (All)", - "dynamic": true, - "id": "slave_exec_mode", - "name": "slave_exec_mode", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "IDEMPOTENT", - "STRICT" - ] - }, - { - "cli": "--slave-load-tmpdir=path", - "default": "/tmp", - "dynamic": false, - "id": "slave_load_tmpdir", - "name": "slave_load_tmpdir", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--slave-max-allowed-packet=#", - "default": "1073741824", - "dynamic": true, - "id": "slave_max_allowed_packet", - "name": "slave_max_allowed_packet", - "range": { - "from": 1024, - "to": 1073741824 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--slave-net-timeout=#", - "default": "60 (1 minute) (>= MariaDB 10.2.4), 3600 (1 hour) (<= MariaDB 10.2.3)", - "dynamic": true, - "id": "slave_net_timeout", - "name": "slave_net_timeout", - "range": { - "from": 1, - "to": "upwards" - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--slave-parallel-max-queued=#", - "default": "131072", - "dynamic": true, - "id": "slave_parallel_max_queued", - "name": "slave_parallel_max_queued", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "default": "conservative", - "dynamic": false, - "id": "slave_parallel_mode", - "name": "slave_parallel_mode", - "scope": [ - "global" - ], - "validValues": [ - "conservative", - "optimistic", - "none", - "aggressive", - "minimal" - ] - }, - { - "cli": "--slave-parallel-threads=#", - "default": "0", - "dynamic": true, - "id": "slave_parallel_threads", - "name": "slave_parallel_threads", - "range": { - "from": 0, - "to": 16383 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--slave-parallel-workers=#", - "id": "slave_parallel_workers", - "name": "slave_parallel_workers" - }, - { - "cli": "--slave-run-triggers-for-rbr=value", - "default": "NO", - "id": "slave_run_triggers_for_rbr", - "name": "slave_run_triggers_for_rbr", - "scope": [ - "global" - ], - "validValues": [ - "NO", - "YES", - "LOGGING" - ] - }, - { - "cli": "--slave-skip-errors=[error_code1,error_code2,...|all|ddl_exist_errors]", - "default": "OFF", - "dynamic": false, - "id": "slave_skip_errors", - "name": "slave_skip_errors", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "[list of error codes]", - "ALL", - "OFF" - ] - }, - { - "cli": "--slave-sql-verify-checksum=[0|1]", - "default": "ON (1)", - "id": "slave_sql_verify_checksum", - "name": "slave_sql_verify_checksum", - "scope": [ - "global" - ] - }, - { - "cli": "--slave-transaction-retries=#", - "default": "10", - "dynamic": true, - "id": "slave_transaction_retries", - "name": "slave_transaction_retries", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--slave-transaction_retry-errors=[error_code1,error_code2,...]", - "default": "1158,1159,1160,1161,1205,1213,1429,2013,12701 (>= MariaDB 10.4.5), 1213,1205 (>= MariaDB 10.3.3)", - "dynamic": false, - "id": "slave_transaction_retry_errors", - "name": "slave_transaction_retry_errors", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "comma-separated list of error codes" - ] - }, - { - "cli": "--slave-transaction-retry-interval=#", - "default": "0", - "dynamic": true, - "id": "slave_transaction_retry_interval", - "name": "slave_transaction_retry_interval", - "range": { - "from": 0, - "to": 3600 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--slave-type-conversions=set", - "default": "Empty variable", - "dynamic": true, - "id": "slave_type_conversions", - "name": "slave_type_conversions", - "scope": [ - "global" - ], - "type": "set", - "validValues": [ - "ALL_LOSSY", - "ALL_NON_LOSSY" - ] - }, - { - "default": "1", - "dynamic": true, - "id": "sql_log_bin", - "name": "sql_log_bin", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "0", - "dynamic": true, - "id": "sql_slave_skip_counter", - "name": "sql_slave_skip_counter", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--sync-binlog=#", - "default": "0", - "dynamic": true, - "id": "sync_binlog", - "name": "sync_binlog", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--sync-master-info=#", - "default": "10000 (>= MariaDB 10.1.7), 0 (<= MariaDB 10.1.6)", - "dynamic": true, - "id": "sync_master_info", - "name": "sync_master_info", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--sync-relay-log=#", - "default": "10000 (>= MariaDB 10.1.7), 0 (<= MariaDB 10.1.6)", - "dynamic": true, - "id": "sync_relay_log", - "name": "sync_relay_log", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--sync-relay-log-info=#", - "default": "10000 (>= MariaDB 10.1.7), 0 (<= MariaDB 10.1.6)", - "dynamic": true, - "id": "sync_relay_log_info", - "name": "sync_relay_log_info", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - } - ], - "name": "replication-and-binary-log-server-system-variables", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-replication-and-binary-log-status-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-replication-and-binary-log-status-variables.json deleted file mode 100644 index d82a2b8..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-replication-and-binary-log-status-variables.json +++ /dev/null @@ -1,328 +0,0 @@ -{ - "data": [ - { - "id": "binlog_bytes_written", - "name": "Binlog_bytes_written", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "binlog_cache_disk_use", - "name": "Binlog_cache_disk_use", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "binlog_cache_use", - "name": "Binlog_cache_use", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "binlog_commits", - "name": "Binlog_commits", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "binlog_group_commit_trigger_count", - "name": "Binlog_group_commit_trigger_count", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "binlog_group_commit_trigger_lock_wait", - "name": "Binlog_group_commit_trigger_lock_wait", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "binlog_group_commit_trigger_timeout", - "name": "Binlog_group_commit_trigger_timeout", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "binlog_group_commits", - "name": "Binlog_group_commits", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "binlog_snapshot_file", - "name": "Binlog_snapshot_file", - "scope": [ - "global" - ], - "type": "string" - }, - { - "id": "binlog_snapshot_position", - "name": "Binlog_snapshot_position", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "binlog_stmt_cache_disk_use", - "name": "Binlog_stmt_cache_disk_use", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "binlog_stmt_cache_use", - "name": "Binlog_stmt_cache_use", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "com_change_master", - "name": "Com_change_master", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_master_status", - "name": "Com_show_master_status", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_new_master", - "name": "Com_show_new_master", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_slave_hosts", - "name": "Com_show_slave_hosts", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_slave_status", - "name": "Com_show_slave_status", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_slave_start", - "name": "Com_slave_start", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_slave_stop", - "name": "Com_slave_stop", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_start_all_slaves", - "name": "Com_start_all_slaves", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_start_slave", - "name": "Com_start_slave", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_stop_all_slaves", - "name": "Com_stop_all_slaves", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_stop_slave", - "name": "Com_stop_slave", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "master_gtid_wait_count", - "name": "Master_gtid_wait_count", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "master_gtid_wait_time", - "name": "Master_gtid_wait_time", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "master_gtid_wait_timeouts", - "name": "Master_gtid_wait_timeouts", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "rpl_status", - "name": "Rpl_status" - }, - { - "id": "rpl_transactions_multi_engine", - "name": "Rpl_transactions_multi_engine", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "slave_connections", - "name": "Slave_connections", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "slave_heartbeat_period", - "name": "Slave_heartbeat_period", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "slave_open_temp_tables", - "name": "Slave_open_temp_tables", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "slave_received_heartbeats", - "name": "Slave_received_heartbeats", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "slave_retried_transactions", - "name": "Slave_retried_transactions", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "slave_running", - "name": "Slave_running", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "slave_skipped_errors", - "name": "Slave_skipped_errors", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "slaves_connected", - "name": "Slaves_connected", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "slaves_running", - "name": "Slaves_running", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "transactions_gtid_foreign_engine", - "name": "Transactions_gtid_foreign_engine", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "transactions_multi_engine", - "name": "Transactions_multi_engine", - "scope": [ - "global" - ], - "type": "integer" - } - ], - "name": "replication-and-binary-log-status-variables", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-semisynchronous-replication-plugin-status-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-semisynchronous-replication-plugin-status-variables.json deleted file mode 100644 index 41b0db3..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-semisynchronous-replication-plugin-status-variables.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "data": [ - { - "id": "rpl_semi_sync_master_clients", - "name": "Rpl_semi_sync_master_clients", - "type": "integer" - }, - { - "id": "rpl_semi_sync_master_net_avg_wait_time", - "name": "Rpl_semi_sync_master_net_avg_wait_time", - "type": "integer" - }, - { - "id": "rpl_semi_sync_master_net_wait_time", - "name": "Rpl_semi_sync_master_net_wait_time", - "type": "integer" - }, - { - "id": "rpl_semi_sync_master_net_waits", - "name": "Rpl_semi_sync_master_net_waits", - "type": "integer" - }, - { - "id": "rpl_semi_sync_master_no_times", - "name": "Rpl_semi_sync_master_no_times", - "type": "integer" - }, - { - "id": "rpl_semi_sync_master_no_tx", - "name": "Rpl_semi_sync_master_no_tx", - "type": "integer" - }, - { - "id": "rpl_semi_sync_master_status", - "name": "Rpl_semi_sync_master_status", - "type": "boolean" - }, - { - "id": "rpl_semi_sync_master_timefunc_failures", - "name": "Rpl_semi_sync_master_timefunc_failures", - "type": "integer" - }, - { - "id": "rpl_semi_sync_master_tx_avg_wait_time", - "name": "Rpl_semi_sync_master_tx_avg_wait_time", - "type": "integer" - }, - { - "id": "rpl_semi_sync_master_tx_wait_time", - "name": "Rpl_semi_sync_master_tx_wait_time", - "type": "integer" - }, - { - "id": "rpl_semi_sync_master_tx_waits", - "name": "Rpl_semi_sync_master_tx_waits", - "type": "integer" - }, - { - "id": "rpl_semi_sync_master_wait_pos_backtraverse", - "name": "Rpl_semi_sync_master_wait_pos_backtraverse", - "type": "integer" - }, - { - "id": "rpl_semi_sync_master_wait_sessions", - "name": "Rpl_semi_sync_master_wait_sessions", - "type": "integer" - }, - { - "id": "rpl_semi_sync_master_yes_tx", - "name": "Rpl_semi_sync_master_yes_tx", - "type": "integer" - }, - { - "id": "rpl_semi_sync_slave_status", - "name": "Rpl_semi_sync_slave_status", - "type": "boolean" - } - ], - "name": "semisynchronous-replication-plugin-status-variables", - "url": "https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-semisynchronous-replication-system-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-semisynchronous-replication-system-variables.json deleted file mode 100644 index 2e2cff6..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-semisynchronous-replication-system-variables.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "data": [ - { - "cli": "--rpl-semi-sync-master-enabled[={0|1}]", - "default": "OFF", - "dynamic": true, - "id": "rpl_semi_sync_master_enabled", - "name": "rpl_semi_sync_master_enabled", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rpl-semi-sync-master-timeout[=#]", - "default": "10000 (10 seconds)", - "dynamic": true, - "id": "rpl_semi_sync_master_timeout", - "name": "rpl_semi_sync_master_timeout", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rpl-semi-sync-master-trace-level[=#]", - "default": "32", - "dynamic": true, - "id": "rpl_semi_sync_master_trace_level", - "name": "rpl_semi_sync_master_trace_level", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rpl-semi-sync-master-wait-no-slave[={0|1}]", - "default": "ON", - "dynamic": true, - "id": "rpl_semi_sync_master_wait_no_slave", - "name": "rpl_semi_sync_master_wait_no_slave", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rpl-semi-sync-master-wait-point=value", - "default": "AFTER_COMMIT", - "dynamic": true, - "id": "rpl_semi_sync_master_wait_point", - "name": "rpl_semi_sync_master_wait_point", - "scope": [ - "global" - ], - "validValues": [ - "AFTER_SYNC", - "AFTER_COMMIT" - ] - }, - { - "cli": "--rpl-semi-sync-slave-delay-master[={0|1}]", - "default": "OFF", - "dynamic": true, - "id": "rpl_semi_sync_slave_delay_master", - "name": "rpl_semi_sync_slave_delay_master", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rpl-semi-sync-slave-enabled[={0|1}]", - "default": "OFF", - "dynamic": true, - "id": "rpl_semi_sync_slave_enabled", - "name": "rpl_semi_sync_slave_enabled", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rpl-semi-sync-slave-kill-conn-timeout[={0|1}]", - "default": "5", - "dynamic": true, - "id": "rpl_semi_sync_slave_kill_conn_timeout", - "name": "rpl_semi_sync_slave_kill_conn_timeout", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rpl-semi-sync-slave-trace_level[=#]", - "default": "32", - "dynamic": true, - "id": "rpl_semi_sync_slave_trace_level", - "name": "rpl_semi_sync_slave_trace_level", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rpl-semi-sync-master=value", - "default": "ON", - "id": "rpl_semi_sync_master", - "name": "rpl_semi_sync_master", - "validValues": [ - "OFF", - "ON", - "FORCE", - "FORCE_PLUS_PERMANENT" - ] - }, - { - "cli": "--rpl-semi-sync-slave=value", - "default": "ON", - "id": "rpl_semi_sync_slave", - "name": "rpl_semi_sync_slave", - "validValues": [ - "OFF", - "ON", - "FORCE", - "FORCE_PLUS_PERMANENT" - ] - } - ], - "name": "semisynchronous-replication-system-variables", - "url": "https://mariadb.com/kb/en/library/documentation/semisynchronous-replication/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-server-status-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-server-status-variables.json deleted file mode 100644 index 91d597e..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-server-status-variables.json +++ /dev/null @@ -1,3001 +0,0 @@ -{ - "data": [ - { - "id": "aborted_clients", - "name": "Aborted_clients", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "aborted_connects", - "name": "Aborted_connects", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "aborted_connects_preauth", - "name": "Aborted_connects_preauth", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "access_denied_errors", - "name": "Access_denied_errors", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "acl_column_grants", - "name": "Acl_column_grants", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "acl_database_grants", - "name": "Acl_database_grants", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "acl_function_grants", - "name": "Acl_function_grants", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "acl_package_body_grants", - "name": "Acl_package_body_grants", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "acl_package_spec_grants", - "name": "Acl_package_spec_grants", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "acl_procedure_grants", - "name": "Acl_procedure_grants", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "acl_proxy_users", - "name": "Acl_proxy_users", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "acl_role_grants", - "name": "Acl_role_grants", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "acl_roles", - "name": "Acl_roles", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "acl_table_grants", - "name": "Acl_table_grants", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "acl_users", - "name": "Acl_users", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "busy_time", - "name": "Busy_time", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "bytes_received", - "name": "Bytes_received", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "bytes_sent", - "name": "Bytes_sent", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_admin_commands", - "name": "Com_admin_commands", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_alter_db", - "name": "Com_alter_db", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_alter_db_upgrade", - "name": "Com_alter_db_upgrade", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_alter_event", - "name": "Com_alter_event", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_alter_function", - "name": "Com_alter_function", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_alter_procedure", - "name": "Com_alter_procedure", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_alter_sequence", - "name": "Com_alter_sequence", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_alter_server", - "name": "Com_alter_server", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_alter_table", - "name": "Com_alter_table", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_alter_tablespace", - "name": "Com_alter_tablespace", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_alter_user", - "name": "Com_alter_user", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_analyze", - "name": "Com_analyze", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_assign_to_keycache", - "name": "Com_assign_to_keycache", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_backup", - "name": "Com_backup", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_backup_lock", - "name": "Com_backup_lock", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_backup_table", - "name": "Com_backup_table", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_begin", - "name": "Com_begin", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_binlog", - "name": "Com_binlog", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_call_procedure", - "name": "Com_call_procedure", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_change_db", - "name": "Com_change_db", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_check", - "name": "Com_check", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_checksum", - "name": "Com_checksum", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_commit", - "name": "Com_commit", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_compound_sql", - "name": "Com_compound_sql", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_create_db", - "name": "Com_create_db", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_create_event", - "name": "Com_create_event", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_create_function", - "name": "Com_create_function", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_create_index", - "name": "Com_create_index", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_create_package", - "name": "Com_create_package", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_create_package_body", - "name": "Com_create_package_body", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_create_procedure", - "name": "Com_create_procedure", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_create_role", - "name": "Com_create_role", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_create_sequence", - "name": "Com_create_sequence", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_create_server", - "name": "Com_create_server", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_create_table", - "name": "Com_create_table", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_create_temporary_table", - "name": "Com_create_temporary_table", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_create_trigger", - "name": "Com_create_trigger", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_create_udf", - "name": "Com_create_udf", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_create_user", - "name": "Com_create_user", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_create_view", - "name": "Com_create_view", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_dealloc_sql", - "name": "Com_dealloc_sql", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_delete", - "name": "Com_delete", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_delete_multi", - "name": "Com_delete_multi", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_do", - "name": "Com_do", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_drop_db", - "name": "Com_drop_db", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_drop_event", - "name": "Com_drop_event", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_drop_function", - "name": "Com_drop_function", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_drop_index", - "name": "Com_drop_index", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_drop_package", - "name": "Com_drop_package", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_drop_package_body", - "name": "Com_drop_package_body", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_drop_procedure", - "name": "Com_drop_procedure", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_drop_role", - "name": "Com_drop_role", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_drop_sequence", - "name": "Com_drop_sequence", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_drop_server", - "name": "Com_drop_server", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_drop_table", - "name": "Com_drop_table", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_drop_temporary_table", - "name": "Com_drop_temporary_table", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_drop_trigger", - "name": "Com_drop_trigger", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_drop_user", - "name": "Com_drop_user", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_drop_view", - "name": "Com_drop_view", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_empty_query", - "name": "Com_empty_query", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_execute_immediate", - "name": "Com_execute_immediate", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_execute_sql", - "name": "Com_execute_sql", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_flush", - "name": "Com_flush", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_get_diagnostics", - "name": "Com_get_diagnostics", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_grant", - "name": "Com_grant", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_grant_role", - "name": "Com_grant_role", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_ha_close", - "name": "Com_ha_close", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_ha_open", - "name": "Com_ha_open", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_ha_read", - "name": "Com_ha_read", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_help", - "name": "Com_help", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_insert", - "name": "Com_insert", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_insert_select", - "name": "Com_insert_select", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_install_plugin", - "name": "Com_install_plugin", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_kill", - "name": "Com_kill", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_load", - "name": "Com_load", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_load_master_data", - "name": "Com_load_master_data", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_load_master_table", - "name": "Com_load_master_table", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_multi", - "name": "Com_multi", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_lock_tables", - "name": "Com_lock_tables", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_optimize", - "name": "Com_optimize", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_preload_keys", - "name": "Com_preload_keys", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_prepare_sql", - "name": "Com_prepare_sql", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_purge", - "name": "Com_purge", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_purge_before_date", - "name": "Com_purge_before_date", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_release_savepoint", - "name": "Com_release_savepoint", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_rename_table", - "name": "Com_rename_table", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_rename_user", - "name": "Com_rename_user", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_repair", - "name": "Com_repair", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_replace", - "name": "Com_replace", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_replace_select", - "name": "Com_replace_select", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_reset", - "name": "Com_reset", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_resignal", - "name": "Com_resignal", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_restore_table", - "name": "Com_restore_table", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_revoke", - "name": "Com_revoke", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_revoke_all", - "name": "Com_revoke_all", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_revoke_grant", - "name": "Com_revoke_grant", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_rollback", - "name": "Com_rollback", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_rollback_to_savepoint", - "name": "Com_rollback_to_savepoint", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_savepoint", - "name": "Com_savepoint", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_select", - "name": "Com_select", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_set_option", - "name": "Com_set_option", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_signal", - "name": "Com_signal", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_authors", - "name": "Com_show_authors", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_binlog_events", - "name": "Com_show_binlog_events", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_binlogs", - "name": "Com_show_binlogs", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_charsets", - "name": "Com_show_charsets", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_client_statistics", - "name": "Com_show_client_statistics", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_collations", - "name": "Com_show_collations", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_column_types", - "name": "Com_show_column_types", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_contributors", - "name": "Com_show_contributors", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_create_db", - "name": "Com_show_create_db", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_create_event", - "name": "Com_show_create_event", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_create_func", - "name": "Com_show_create_func", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_create_package", - "name": "Com_show_create_package", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_create_package_body", - "name": "Com_show_create_package_body", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_create_proc", - "name": "Com_show_create_proc", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_create_table", - "name": "Com_show_create_table", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_create_trigger", - "name": "Com_show_create_trigger", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_create_user", - "name": "Com_show_create_user", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_databases", - "name": "Com_show_databases", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_engine_logs", - "name": "Com_show_engine_logs", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_engine_mutex", - "name": "Com_show_engine_mutex", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_engine_status", - "name": "Com_show_engine_status", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_events", - "name": "Com_show_events", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_errors", - "name": "Com_show_errors", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_explain", - "name": "Com_show_explain", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_fields", - "name": "Com_show_fields", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_function_status", - "name": "Com_show_function_status", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_generic", - "name": "Com_show_generic", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_grants", - "name": "Com_show_grants", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_keys", - "name": "Com_show_keys", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_index_statistics", - "name": "Com_show_index_statistics", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_open_tables", - "name": "Com_show_open_tables", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_package_status", - "name": "Com_show_package_status", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_package_body_status", - "name": "Com_show_package_body_status", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_plugins", - "name": "Com_show_plugins", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_privileges", - "name": "Com_show_privileges", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_procedure_status", - "name": "Com_show_procedure_status", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_processlist", - "name": "Com_show_processlist", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_profile", - "name": "Com_show_profile", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_profiles", - "name": "Com_show_profiles", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_relaylog_events", - "name": "Com_show_relaylog_events", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_status", - "name": "Com_show_status", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_storage_engines", - "name": "Com_show_storage_engines", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_table_statistics", - "name": "Com_show_table_statistics", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_table_status", - "name": "Com_show_table_status", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_tables", - "name": "Com_show_tables", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_triggers", - "name": "Com_show_triggers", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_user_statistics", - "name": "Com_show_user_statistics", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_variable", - "name": "Com_show_variable", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_show_warnings", - "name": "Com_show_warnings", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_shutdown", - "name": "Com_shutdown", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_stmt_close", - "name": "Com_stmt_close", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_stmt_execute", - "name": "Com_stmt_execute", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_stmt_fetch", - "name": "Com_stmt_fetch", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_stmt_prepare", - "name": "Com_stmt_prepare", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_stmt_reprepare", - "name": "Com_stmt_reprepare", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_stmt_reset", - "name": "Com_stmt_reset", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_stmt_send_long_data", - "name": "Com_stmt_send_long_data", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_truncate", - "name": "Com_truncate", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_uninstall_plugin", - "name": "Com_uninstall_plugin", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_unlock_tables", - "name": "Com_unlock_tables", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_update", - "name": "Com_update", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_update_multi", - "name": "Com_update_multi", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_xa_commit", - "name": "Com_xa_commit", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_xa_end", - "name": "Com_xa_end", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_xa_prepare", - "name": "Com_xa_prepare", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_xa_recover", - "name": "Com_xa_recover", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_xa_rollback", - "name": "Com_xa_rollback", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "com_xa_start", - "name": "Com_xa_start", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "compression", - "name": "Compression", - "scope": [ - "session" - ], - "type": "boolean" - }, - { - "id": "connection_errors_accept", - "name": "Connection_errors_accept", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "connection_errors_internal", - "name": "Connection_errors_internal", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "connection_errors_max_connections", - "name": "Connection_errors_max_connections", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "connection_errors_peer_address", - "name": "Connection_errors_peer_address", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "connection_errors_select", - "name": "Connection_errors_select", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "connection_errors_tcpwrap", - "name": "Connection_errors_tcpwrap", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "connections", - "name": "Connections", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "cpu_time", - "name": "Cpu_time", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "created_tmp_disk_tables", - "name": "Created_tmp_disk_tables", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "created_tmp_files", - "name": "Created_tmp_files", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "created_tmp_tables", - "name": "Created_tmp_tables", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "delayed_errors", - "name": "Delayed_errors", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "delayed_insert_threads", - "name": "Delayed_insert_threads", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "delayed_writes", - "name": "Delayed_writes", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "delete_scan", - "name": "Delete_scan", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "empty_queries", - "name": "Empty_queries", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "executed_events", - "name": "Executed_events", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "executed_triggers", - "name": "Executed_triggers", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "feature_application_time_periods", - "name": "Feature_application_time_periods", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "feature_check_constraint", - "name": "Feature_check_constraint", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "feature_custom_aggregate_functions", - "name": "Feature_custom_aggregate_functions", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "feature_delay_key_write", - "name": "Feature_delay_key_write", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "feature_dynamic_columns", - "name": "Feature_dynamic_columns", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "feature_fulltext", - "name": "Feature_fulltext", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "feature_gis", - "name": "Feature_gis", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "feature_invisible_columns", - "name": "Feature_invisible_columns", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "feature_json", - "name": "Feature_json", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "feature_locale", - "name": "Feature_locale", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "feature_subquery", - "name": "Feature_subquery", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "feature_system_versioning", - "name": "Feature_system_versioning", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "feature_timezone", - "name": "Feature_timezone", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "feature_trigger", - "name": "Feature_trigger", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "feature_window_functions", - "name": "Feature_window_functions", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "feature_xml", - "name": "Feature_xml", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "flush_commands", - "name": "Flush_commands", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "handler_commit", - "name": "Handler_commit", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "handler_delete", - "name": "Handler_delete", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "handler_discover", - "name": "Handler_discover", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "handler_external_lock", - "name": "Handler_external_lock", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "handler_icp_attempts", - "name": "Handler_icp_attempts", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "handler_icp_match", - "name": "Handler_icp_match", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "handler_mrr_init", - "name": "Handler_mrr_init", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "handler_mrr_key_refills", - "name": "Handler_mrr_key_refills", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "handler_mrr_rowid_refills", - "name": "Handler_mrr_rowid_refills", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "handler_prepare", - "name": "Handler_prepare", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "handler_read_first", - "name": "Handler_read_first", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "handler_read_key", - "name": "Handler_read_key", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "handler_read_last", - "name": "Handler_read_last", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "handler_read_next", - "name": "Handler_read_next", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "handler_read_prev", - "name": "Handler_read_prev", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "handler_read_retry", - "name": "Handler_read_retry", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "handler_read_rnd", - "name": "Handler_read_rnd", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "handler_read_rnd_deleted", - "name": "Handler_read_rnd_deleted", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "handler_read_rnd_next", - "name": "Handler_read_rnd_next", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "handler_rollback", - "name": "Handler_rollback", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "handler_savepoint", - "name": "Handler_savepoint", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "handler_savepoint_rollback", - "name": "Handler_savepoint_rollback", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "handler_tmp_delete", - "name": "Handler_tmp_delete", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "handler_tmp_update", - "name": "Handler_tmp_update", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "handler_tmp_write", - "name": "Handler_tmp_write", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "handler_update", - "name": "Handler_update", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "handler_write", - "name": "Handler_write", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "key_blocks_not_flushed", - "name": "Key_blocks_not_flushed", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "key_blocks_unused", - "name": "Key_blocks_unused", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "key_blocks_used", - "name": "Key_blocks_used", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "key_blocks_warm", - "name": "Key_blocks_warm", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "key_read_requests", - "name": "Key_read_requests", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "key_reads", - "name": "Key_reads", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "key_write_requests", - "name": "Key_write_requests", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "key_writes", - "name": "Key_writes", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "last_query_cost", - "name": "Last_query_cost", - "scope": [ - "session" - ], - "type": "integer" - }, - { - "id": "maria_", - "name": "Maria_*" - }, - { - "id": "max_statement_time_exceeded", - "name": "Max_statement_time_exceeded", - "type": "integer" - }, - { - "id": "max_used_connections", - "name": "Max_used_connections", - "scope": [ - "session" - ], - "type": "integer" - }, - { - "id": "memory_used", - "name": "Memory_used", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "memory_used_initial", - "name": "Memory_used_initial", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "not_flushed_delayed_rows", - "name": "Not_flushed_delayed_rows", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "open_files", - "name": "Open_files", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "open_streams", - "name": "Open_streams", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "open_table_definitions", - "name": "Open_table_definitions", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "open_tables", - "name": "Open_tables", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "opened_files", - "name": "Opened_files", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "opened_plugin_libraries", - "name": "Opened_plugin_libraries", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "opened_table_definitions", - "name": "Opened_table_definitions", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "opened_tables", - "name": "Opened_tables", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "opened_views", - "name": "Opened_views", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "performance_schema_accounts_lost", - "name": "Performance_schema_accounts_lost", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "performance_schema_cond_classes_lost", - "name": "Performance_schema_cond_classes_lost", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "performance_schema_cond_instances_lost", - "name": "Performance_schema_cond_instances_lost", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "performance_schema_digest_lost", - "name": "Performance_schema_digest_lost", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "performance_schema_file_classes_lost", - "name": "Performance_schema_file_classes_lost", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "performance_schema_file_handles_lost", - "name": "Performance_schema_file_handles_lost", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "performance_schema_file_instances_lost", - "name": "Performance_schema_file_instances_lost", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "performance_schema_hosts_lost", - "name": "Performance_schema_hosts_lost", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "performance_schema_locker_lost", - "name": "Performance_schema_locker_lost", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "performance_schema_mutex_classes_lost", - "name": "Performance_schema_mutex_classes_lost", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "performance_schema_mutex_instances_lost", - "name": "Performance_schema_mutex_instances_lost", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "performance_schema_rwlock_classes_lost", - "name": "Performance_schema_rwlock_classes_lost", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "performance_schema_rwlock_instances_lost", - "name": "Performance_schema_rwlock_instances_lost", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "performance_schema_session_connect_attrs_lost", - "name": "Performance_schema_session_connect_attrs_lost", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "performance_schema_socket_classes_lost", - "name": "Performance_schema_socket_classes_lost", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "performance_schema_socket_instances_lost", - "name": "Performance_schema_socket_instances_lost", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "performance_schema_stage_classes_lost", - "name": "Performance_schema_stage_classes_lost", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "performance_schema_statement_classes_lost", - "name": "Performance_schema_statement_classes_lost", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "performance_schema_table_handles_lost", - "name": "Performance_schema_table_handles_lost", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "performance_schema_table_instances_lost", - "name": "Performance_schema_table_instances_lost", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "performance_schema_thread_classes_lost", - "name": "Performance_schema_thread_classes_lost", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "performance_schema_thread_instances_lost", - "name": "Performance_schema_thread_instances_lost", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "performance_schema_users_lost", - "name": "Performance_schema_users_lost", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "prepared_stmt_count", - "name": "Prepared_stmt_count", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "qcache_free_blocks", - "name": "Qcache_free_blocks", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "qcache_free_memory", - "name": "Qcache_free_memory", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "qcache_hits", - "name": "Qcache_hits", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "qcache_inserts", - "name": "Qcache_inserts", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "qcache_lowmem_prunes", - "name": "Qcache_lowmem_prunes", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "qcache_not_cached", - "name": "Qcache_not_cached", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "qcache_queries_in_cache", - "name": "Qcache_queries_in_cache", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "qcache_total_blocks", - "name": "Qcache_total_blocks", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "queries", - "name": "Queries", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "questions", - "name": "Questions", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "rows_read", - "name": "Rows_read", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "rows_sent", - "name": "Rows_sent", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "rows_tmp_read", - "name": "Rows_tmp_read", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "select_full_join", - "name": "Select_full_join", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "select_full_range_join", - "name": "Select_full_range_join", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "select_range", - "name": "Select_range", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "select_range_check", - "name": "Select_range_check", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "select_scan", - "name": "Select_scan", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "slow_launch_threads", - "name": "Slow_launch_threads", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "slow_queries", - "name": "Slow_queries", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "sort_merge_passes", - "name": "Sort_merge_passes", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "sort_priority_queue_sorts", - "name": "Sort_priority_queue_sorts", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "sort_range", - "name": "Sort_range", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "sort_rows", - "name": "Sort_rows", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "sort_scan", - "name": "Sort_scan", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "subquery_cache_hit", - "name": "Subquery_cache_hit", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "subquery_cache_miss", - "name": "Subquery_cache_miss", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "syncs", - "name": "Syncs", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "table_locks_immediate", - "name": "Table_locks_immediate", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "table_locks_waited", - "name": "Table_locks_waited", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "table_open_cache_active_instances", - "name": "Table_open_cache_active_instances", - "scope": [], - "type": "integer" - }, - { - "id": "table_open_cache_hits", - "name": "Table_open_cache_hits", - "scope": [], - "type": "integer" - }, - { - "id": "table_open_cache_misses", - "name": "Table_open_cache_misses", - "scope": [], - "type": "integer" - }, - { - "id": "table_open_cache_overflows", - "name": "Table_open_cache_overflows", - "scope": [], - "type": "integer" - }, - { - "id": "tc_log_max_pages_used", - "name": "Tc_log_max_pages_used", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "tc_log_page_size", - "name": "Tc_log_page_size", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "tc_log_page_waits", - "name": "Tc_log_page_waits", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "threads_cached", - "name": "Threads_cached", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "threads_connected", - "name": "Threads_connected", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "threads_created", - "name": "Threads_created", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "threads_running", - "name": "Threads_running", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "update_scan", - "name": "Update_scan", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "uptime", - "name": "Uptime", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "uptime_since_flush_status", - "name": "Uptime_since_flush_status", - "scope": [ - "global" - ], - "type": "integer" - } - ], - "name": "server-status-variables", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-server-system-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-server-system-variables.json deleted file mode 100644 index 5047dd4..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-server-system-variables.json +++ /dev/null @@ -1,3338 +0,0 @@ -{ - "data": [ - { - "cli": "--alter-algorithm=default", - "default": "DEFAULT", - "dynamic": true, - "id": "alter_algorithm", - "name": "alter_algorithm", - "scope": [ - "global", - "session" - ], - "validValues": [ - "DEFAULT", - "COPY", - "INPLACE", - "NOCOPY", - "INSTANT" - ] - }, - { - "cli": "--analyze-sample-percentage=#", - "default": "100.000000", - "dynamic": true, - "id": "analyze_sample_percentage", - "name": "analyze_sample_percentage", - "range": { - "from": 0, - "to": 100 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--autocommit[=#]", - "default": "1", - "dynamic": true, - "id": "autocommit", - "name": "autocommit", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--automatic-sp-privileges, --skip-automatic-sp-privileges", - "default": "1", - "dynamic": true, - "id": "automatic_sp_privileges", - "name": "automatic_sp_privileges", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--back-log=#", - "default": "The lower of 900 and (50 + max_connections/5) (>= MariaDB 10.1.7), The lower of 150 or the value of max_connections (beween MariaDB 10.0.8 and MariaDB 10.1.7), 50 (<= MariaDB 10.0.8)", - "dynamic": false, - "id": "back_log", - "name": "back_log", - "scope": [ - "global" - ] - }, - { - "cli": "--basedir=path or -b path", - "dynamic": false, - "id": "basedir", - "name": "basedir", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "cli": "--big-tables", - "default": "0", - "dynamic": true, - "id": "big_tables", - "name": "big_tables", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--bind-address=addr", - "dynamic": false, - "id": "bind_address", - "name": "bind_address", - "scope": [ - "global" - ], - "type": "string", - "validValues": [] - }, - { - "cli": "--bulk-insert-buffer-size=#", - "default": "8388608", - "dynamic": true, - "id": "bulk_insert_buffer_size", - "name": "bulk_insert_buffer_size", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "default": "utf8 (>= MariaDB 5.5)", - "dynamic": true, - "id": "character_set_client", - "name": "character_set_client", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "default": "utf8 (>= MariaDB 5.5)", - "dynamic": true, - "id": "character_set_connection", - "name": "character_set_connection", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "default": "latin1", - "dynamic": true, - "id": "character_set_database", - "name": "character_set_database", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "cli": "--character-set-filesystem=name", - "default": "binary", - "dynamic": true, - "id": "character_set_filesystem", - "name": "character_set_filesystem", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "default": "utf8", - "dynamic": true, - "id": "character_set_results", - "name": "character_set_results", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "cli": "--character-set-server", - "default": "latin1", - "dynamic": true, - "id": "character_set_server", - "name": "character_set_server", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "default": "utf8", - "dynamic": false, - "id": "character_set_system", - "name": "character_set_system", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--character-sets-dir=path", - "dynamic": false, - "id": "character_sets_dir", - "name": "character_sets_dir", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "cli": "--check-constraint-checks=[0|1]", - "default": "ON", - "dynamic": true, - "id": "check_constraint_checks", - "name": "check_constraint_checks", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "dynamic": true, - "id": "collation_connection", - "name": "collation_connection", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "dynamic": true, - "id": "collation_database", - "name": "collation_database", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "cli": "--collation-server=name", - "default": "latin1_swedish_ci", - "dynamic": true, - "id": "collation_server", - "name": "collation_server", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "cli": "--completion-type=name", - "default": "NO_CHAIN (>=MariaDB/MySQL 5.5.3), 0 (<= MariaDB/MySQL 5.5.2)", - "dynamic": true, - "id": "completion_type", - "name": "completion_type", - "scope": [ - "global", - "session" - ], - "validValues": [ - "0", - "1", - "2", - "NO_CHAIN", - "CHAIN", - "RELEASE" - ] - }, - { - "cli": "--concurrent-insert[=name]", - "default": "AUTO (>=MariaDB/MySQL 5.5.3), 1 (<= MariaDB/MySQL 5.5.2)", - "dynamic": true, - "id": "concurrent_insert", - "name": "concurrent_insert", - "scope": [ - "global" - ], - "validValues": [ - "0", - "1", - "2", - "AUTO", - "NEVER", - "ALWAYS" - ] - }, - { - "cli": "--connect-timeout=#", - "default": "10", - "dynamic": true, - "id": "connect_timeout", - "name": "connect_timeout", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--core-file", - "default": "Windows >= MariaDB 10.4.3: ON, All other systems: OFF", - "dynamic": false, - "id": "core_file", - "name": "core_file", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--datadir=path or -h path", - "dynamic": false, - "id": "datadir", - "name": "datadir", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "id": "date_format", - "name": "date_format" - }, - { - "id": "datetime_format", - "name": "datetime_format" - }, - { - "cli": "-#, --debug[=debug_options]", - "default": "d:t:i:o,/tmp/mysqld.trace (Unix) or d:t:i:O,\\mysqld.trace (Windows)", - "dynamic": true, - "id": "debug", - "name": "debug", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "cli": "--debug-no-thead-alarm=#", - "default": "OFF", - "dynamic": false, - "id": "debug_no_thread_alarm", - "name": "debug_no_thread_alarm", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "default": "OFF or ON - current signal signal name", - "dynamic": true, - "id": "debug_sync", - "name": "debug_sync", - "scope": [ - "session" - ], - "type": "string" - }, - { - "cli": "--default-password-lifetime=#", - "default": "0", - "dynamic": true, - "id": "default_password_lifetime", - "name": "default_password_lifetime", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "default_regex_flags", - "name": "default_regex_flags" - }, - { - "cli": "--default-storage-engine=name", - "default": "InnoDB (>= MariaDB 5.5), MyISAM (= MariaDB 10.1.7), ON (<= MariaDB 10.1.6)", - "dynamic": false, - "id": "encrypt_tmp_files", - "name": "encrypt_tmp_files", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--encryption-algorithm=value", - "default": "none", - "dynamic": false, - "id": "encryption_algorithm", - "name": "encryption_algorithm", - "scope": [ - "global" - ], - "validValues": [ - "none", - "aes_ecb", - "aes_cbc", - "aes_ctr" - ] - }, - { - "default": "none", - "dynamic": true, - "id": "enforce_storage_engine", - "name": "enforce_storage_engine", - "scope": [ - "session" - ], - "type": "string" - }, - { - "cli": "--engine-condition-pushdown", - "default": "OFF (MariaDB 5.5), ON (<= MariaDB 5.3)", - "dynamic": true, - "id": "engine_condition_pushdown", - "name": "engine_condition_pushdown", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--eq-range-index-dive-limit=#", - "default": "200 (>= MariaDB 10.4.3), 0 (<= MariaDB 10.4.2)", - "dynamic": true, - "id": "eq_range_index_dive_limit", - "name": "eq_range_index_dive_limit", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "error_count", - "name": "error_count", - "scope": [ - "session" - ], - "type": "integer" - }, - { - "cli": "--event-scheduler[=value]", - "default": "OFF", - "dynamic": true, - "id": "event_scheduler", - "name": "event_scheduler", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "ON", - "1", - "OFF", - "0", - "DISABLED" - ] - }, - { - "cli": "--expensive-subquery-limit=#", - "default": "100", - "dynamic": true, - "id": "expensive_subquery_limit", - "name": "expensive_subquery_limit", - "range": { - "from": 0, - "to": "upwards" - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--explicit-defaults-for-timestamp=[={0|1}]", - "default": "OFF", - "dynamic": false, - "id": "explicit_defaults_for_timestamp", - "name": "explicit_defaults_for_timestamp", - "scope": [ - "global" - ] - }, - { - "default": "NULL", - "dynamic": false, - "id": "external_user", - "name": "external_user", - "scope": [ - "session" - ], - "type": "string" - }, - { - "cli": "--flush", - "default": "OFF", - "dynamic": true, - "id": "flush", - "name": "flush", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--flush_time=#", - "default": "0", - "dynamic": true, - "id": "flush_time", - "name": "flush_time", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "default": "1", - "dynamic": true, - "id": "foreign_key_checks", - "name": "foreign_key_checks", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--ft-boolean-syntax=name", - "default": "+ -><()*:\"\"&|", - "dynamic": true, - "id": "ft_boolean_syntax", - "name": "ft_boolean_syntax", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--ft-max-word-len=#", - "default": "84", - "dynamic": false, - "id": "ft_max_word_len", - "name": "ft_max_word_len", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--ft-min-word-len=#", - "default": "4", - "dynamic": false, - "id": "ft_min_word_len", - "name": "ft_min_word_len", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--ft-query-expansion-limit=#", - "default": "20", - "dynamic": false, - "id": "ft_query_expansion_limit", - "name": "ft_query_expansion_limit", - "range": { - "from": 0, - "to": 1000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--ft-stopword-file=file_name", - "default": "(built-in)", - "dynamic": false, - "id": "ft_stopword_file", - "name": "ft_stopword_file", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--general-log", - "default": "0", - "dynamic": true, - "id": "general_log", - "name": "general_log", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--general-log-file=file_name", - "default": "host_name.log", - "dynamic": true, - "id": "general_log_file", - "name": "general_log_file", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--group-concat-max-len=#", - "default": "1048576 (1M) >= MariaDB 10.2.4, 1024 (1K) <= MariaDB 10.2.3", - "dynamic": true, - "id": "group_concat_max_len", - "name": "group_concat_max_len", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": false, - "id": "have_compress", - "name": "have_compress", - "scope": [ - "global" - ] - }, - { - "dynamic": false, - "id": "have_crypt", - "name": "have_crypt", - "scope": [ - "global" - ] - }, - { - "dynamic": false, - "id": "have_csv", - "name": "have_csv", - "scope": [ - "global" - ] - }, - { - "dynamic": false, - "id": "have_dynamic_loading", - "name": "have_dynamic_loading", - "scope": [ - "global" - ] - }, - { - "dynamic": false, - "id": "have_geometry", - "name": "have_geometry", - "scope": [ - "global" - ] - }, - { - "dynamic": false, - "id": "have_ndbcluster", - "name": "have_ndbcluster", - "scope": [ - "global" - ] - }, - { - "dynamic": false, - "id": "have_partitioning", - "name": "have_partitioning", - "scope": [ - "global" - ] - }, - { - "dynamic": false, - "id": "have_profiling", - "name": "have_profiling", - "scope": [ - "global" - ] - }, - { - "dynamic": false, - "id": "have_query_cache", - "name": "have_query_cache", - "scope": [ - "global" - ] - }, - { - "dynamic": false, - "id": "have_rtree_keys", - "name": "have_rtree_keys", - "scope": [ - "global" - ] - }, - { - "dynamic": false, - "id": "have_symlink", - "name": "have_symlink", - "scope": [ - "global" - ] - }, - { - "cli": "--histogram-size=#", - "default": "254 (>= MariaDB 10.4.3), 0 (<= MariaDB 10.4.2)", - "dynamic": true, - "id": "histogram_size", - "name": "histogram_size", - "range": { - "from": 0, - "to": 255 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--histogram-type=value", - "default": "DOUBLE_PREC_HB (>= MariaDB 10.4.3), SINGLE_PREC_HB(<= MariaDB 10.4.2)", - "dynamic": true, - "id": "histogram_type", - "name": "histogram_type", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "SINGLE_PREC_HB", - "DOUBLE_PREC_HB" - ] - }, - { - "cli": "--host-cache-size=#.", - "default": "128", - "dynamic": true, - "id": "host_cache_size", - "name": "host_cache_size", - "range": { - "from": 0, - "to": 65536 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "dynamic": false, - "id": "hostname", - "name": "hostname", - "scope": [ - "global" - ], - "type": "string" - }, - { - "id": "identity", - "name": "identity" - }, - { - "default": "0", - "dynamic": true, - "id": "idle_readonly_transaction_timeout", - "name": "idle_readonly_transaction_timeout", - "range": { - "from": 0, - "to": 31536000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "default": "0", - "dynamic": true, - "id": "idle_transaction_timeout", - "name": "idle_transaction_timeout", - "range": { - "from": 0, - "to": 31536000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "default": "0", - "dynamic": true, - "id": "idle_write_transaction_timeout", - "name": "idle_write_transaction_timeout", - "range": { - "from": 0, - "to": 31536000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--ignore-db-dirs=dir.", - "dynamic": false, - "id": "ignore_db_dirs", - "name": "ignore_db_dirs", - "scope": [ - "global" - ], - "type": "string" - }, - { - "default": "0", - "dynamic": false, - "id": "in_transaction", - "name": "in_transaction", - "scope": [ - "session" - ], - "type": "boolean" - }, - { - "cli": "--init-connect=name", - "dynamic": true, - "id": "init_connect", - "name": "init_connect", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "init-file=file_name", - "dynamic": false, - "id": "init_file", - "name": "init_file", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "dynamic": true, - "id": "insert_id", - "name": "insert_id", - "scope": [ - "session" - ], - "type": "integer" - }, - { - "cli": "--interactive-timeout=#", - "default": "28800", - "dynamic": true, - "id": "interactive_timeout", - "name": "interactive_timeout", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--join-buffer-size=#", - "default": "262144 (256kB) (>=MariaDB 10.1.7), 131072 (128kB) (<=MariaDB 10.1.6)", - "dynamic": true, - "id": "join_buffer_size", - "name": "join_buffer_size", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--join-buffer-space-limit=#", - "default": "2097152", - "dynamic": true, - "id": "join_buffer_space_limit", - "name": "join_buffer_space_limit", - "range": { - "from": 2048, - "to": 99999999997952 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--join-cache-level=#", - "default": "2", - "dynamic": true, - "id": "join_cache_level", - "name": "join_cache_level", - "range": { - "from": 0, - "to": 8 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--keep-files-on-create=#", - "default": "OFF", - "dynamic": true, - "id": "keep_files_on_create", - "name": "keep_files_on_create", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "dynamic": false, - "id": "large_files_support", - "name": "large_files_support", - "scope": [ - "global" - ] - }, - { - "default": "(autosized)", - "dynamic": false, - "id": "large_page_size", - "name": "large_page_size", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--large-pages, --skip-large-pages", - "default": "OFF", - "dynamic": false, - "id": "large_pages", - "name": "large_pages", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "dynamic": true, - "id": "last_insert_id", - "name": "last_insert_id", - "scope": [ - "session" - ], - "type": "integer" - }, - { - "cli": "--lc-messages=name", - "default": "en_us", - "dynamic": true, - "id": "lc_messages", - "name": "lc_messages", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "cli": "--lc-messages-dir=path", - "dynamic": false, - "id": "lc_messages_dir", - "name": "lc_messages_dir", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "cli": "--lc-time-names=name", - "default": "en_US", - "dynamic": true, - "id": "lc_time_names", - "name": "lc_time_names", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "dynamic": false, - "id": "license", - "name": "license", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--local-infile=#", - "default": "ON", - "dynamic": true, - "id": "local_infile", - "name": "local_infile", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--lock-wait-timeout=#", - "default": "86400 (1 day) >= MariaDB 10.2.4, 31536000 (1 year) <= MariaDB 10.2.3", - "dynamic": true, - "id": "lock_wait_timeout", - "name": "lock_wait_timeout", - "range": { - "from": 0, - "to": 31536000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--memlock", - "default": "OFF", - "dynamic": false, - "id": "locked_in_memory", - "name": "locked_in_memory", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "-l [filename] or --log[=filename]", - "default": "OFF", - "dynamic": true, - "id": "log", - "name": "log", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--log-disabled_statements=value", - "default": "(empty string)", - "dynamic": false, - "id": "log_disabled_statements", - "name": "log_disabled_statements", - "scope": [ - "global", - "session" - ], - "type": "set" - }, - { - "cli": "--log-error[=name], --skip-log-error", - "default": "(empty string)", - "dynamic": false, - "id": "log_error", - "name": "log_error", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--log-output=name", - "default": "FILE", - "dynamic": true, - "id": "log_output", - "name": "log_output", - "scope": [ - "global" - ], - "type": "set", - "validValues": [ - "TABLE", - "FILE", - "NONE" - ] - }, - { - "cli": "--log-queries-not-using-indexes", - "default": "OFF", - "dynamic": true, - "id": "log_queries_not_using_indexes", - "name": "log_queries_not_using_indexes", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--log-slow-admin-statements", - "default": "ON (>= MariaDB 10.2.4), OFF (<= MariaDB 10.2.3)", - "dynamic": true, - "id": "log_slow_admin_statements", - "name": "log_slow_admin_statements", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--log-slow-disabled_statements=value", - "default": "sp", - "dynamic": false, - "id": "log_slow_disabled_statements", - "name": "log_slow_disabled_statements", - "scope": [ - "global", - "session" - ], - "type": "set" - }, - { - "cli": "log-slow-filter=value1[,value2...]", - "default": "admin, filesort, filesort_on_disk, full_join, full_scan, query_cache, query_cache_miss, tmp_table, tmp_table_on_disk (<= MariaDB 10.3.0), admin, filesort, filesort_on_disk, filesort_priority_queue, full_join, full_scan, query_cache, query_cache_miss, tmp_table, tmp_table_on_disk (>= MariaDB 10.3.1)", - "dynamic": true, - "id": "log_slow_filter", - "name": "log_slow_filter", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "admin", - "filesort", - "filesort_on_disk", - "filesort_priority_queue", - "full_join", - "full_scan", - "query_cache", - "query_cache_miss", - "tmp_table", - "tmp_table_on_disk" - ] - }, - { - "cli": "--log-slow-queries[=name]", - "default": "OFF", - "dynamic": true, - "id": "log_slow_queries", - "name": "log_slow_queries", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "log-slow-rate-limit=#", - "default": "1", - "dynamic": true, - "id": "log_slow_rate_limit", - "name": "log_slow_rate_limit", - "range": { - "from": 1, - "to": "upwards" - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "log-slow-verbosity=value1[,value2...]", - "default": "(Empty)", - "dynamic": true, - "id": "log_slow_verbosity", - "name": "log_slow_verbosity", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "query_plan", - "innodb", - "explain" - ] - }, - { - "cli": "log-tc-size=#", - "default": "24576", - "dynamic": false, - "id": "log_tc_size", - "name": "log_tc_size", - "range": { - "from": 12288, - "to": 18446744073709552000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "-W [level] or --log-warnings[=level]", - "default": "2 (>= MariaDB 10.2.4), 1 (<= MariaDB 10.2.3)", - "dynamic": true, - "id": "log_warnings", - "name": "log_warnings", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--long-query-time=#", - "default": "10.000000 >= MariaDB 10.1.13, 10 <= MariaDB 10.1.12", - "dynamic": true, - "id": "long_query_time", - "name": "long_query_time", - "range": { - "from": 0, - "to": "upwards" - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--low-priority-updates", - "default": "0", - "dynamic": true, - "id": "low_priority_updates", - "name": "low_priority_updates", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "##", - "dynamic": false, - "id": "lower_case_file_system", - "name": "lower_case_file_system", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--lower-case-table-names[=#]", - "default": "0 (Unix), 1 (Windows), 2 (Mac OS X)", - "dynamic": false, - "id": "lower_case_table_names", - "name": "lower_case_table_names", - "range": { - "from": 0, - "to": 2 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--max-allowed-packet=#", - "default": "16777216 (16M) >= MariaDB 10.2.4, 4194304 (4M) >= MariaDB 10.1.7, 1048576 (1MB) <= MariaDB 10.1.6, 1073741824 (1GB) (client-side)", - "dynamic": false, - "id": "max_allowed_packet", - "name": "max_allowed_packet", - "range": { - "from": 1024, - "to": 1073741824 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--max-connect-errors=#", - "default": "100 (from MariaDB 10.0), 10 (before MariaDB 10.0)", - "dynamic": true, - "id": "max_connect_errors", - "name": "max_connect_errors", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--max-connections=#", - "default": "151", - "dynamic": true, - "id": "max_connections", - "name": "max_connections", - "range": { - "from": 10, - "to": 100000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--max-delayed-threads=#", - "default": "20", - "dynamic": true, - "id": "max_delayed_threads", - "name": "max_delayed_threads", - "range": { - "from": 0, - "to": 16384 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--max-digest-length=#", - "default": "1024", - "dynamic": true, - "id": "max_digest_length", - "name": "max_digest_length", - "range": { - "from": 0, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--max-error-count=#", - "default": "64", - "dynamic": true, - "id": "max_error_count", - "name": "max_error_count", - "range": { - "from": 0, - "to": 65535 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--max-heap-table-size=#", - "default": "16777216", - "dynamic": true, - "id": "max_heap_table_size", - "name": "max_heap_table_size", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "max_insert_delayed_threads", - "name": "max_insert_delayed_threads" - }, - { - "cli": "--max-join-size=#", - "default": "18446744073709551615 (>= MariaDB/MySQL 5.5.0), 4294967295 (< MariaDB/MySQL 5.5.0)", - "dynamic": true, - "id": "max_join_size", - "name": "max_join_size", - "range": { - "from": 1, - "to": 18446744073709552000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--max-length-for-sort-data=#", - "default": "1024", - "dynamic": true, - "id": "max_length_for_sort_data", - "name": "max_length_for_sort_data", - "range": { - "from": 4, - "to": 8388608 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--max-long-data-size=#", - "default": "16777216 (16M) >= MariaDB 10.2.4, 4194304 (4M) <= MariaDB 10.2.3, >= MariaDB 10.1.7, 1048576 (1M) <= MariaDB 10.1.6", - "dynamic": false, - "id": "max_long_data_size", - "name": "max_long_data_size", - "range": { - "from": 1024, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--max-password-errors=#", - "default": "4294967295", - "dynamic": true, - "id": "max_password_errors", - "name": "max_password_errors", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--max-prepared-stmt-count=#", - "default": "16382", - "dynamic": true, - "id": "max_prepared_stmt_count", - "name": "max_prepared_stmt_count", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--max-recursive-iterations=#", - "default": "4294967295", - "dynamic": true, - "id": "max_recursive_iterations", - "name": "max_recursive_iterations", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--max-rowid-filter-size=#", - "default": "131072", - "dynamic": true, - "id": "max_rowid_filter_size", - "name": "max_rowid_filter_size", - "range": { - "from": 1024, - "to": 18446744073709552000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--max-seeks-for-key=#", - "default": "4294967295", - "dynamic": true, - "id": "max_seeks_for_key", - "name": "max_seeks_for_key", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--max-session-mem-used=#", - "default": "9223372036854775807 (8192 PB)", - "dynamic": true, - "id": "max_session_mem_used", - "name": "max_session_mem_used", - "range": { - "from": 8192, - "to": 18446744073709552000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--max-sort-length=#", - "default": "1024", - "dynamic": true, - "id": "max_sort_length", - "name": "max_sort_length", - "range": { - "from": 4, - "to": 8388608 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--max-sp-recursion-depth[=#]", - "default": "0", - "dynamic": true, - "id": "max_sp_recursion_depth", - "name": "max_sp_recursion_depth", - "range": { - "from": 0, - "to": 255 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--max-statement-time[=#]", - "default": "0.000000 >= MariaDB 10.1.13, 0 <= MariaDB 10.1.12", - "dynamic": true, - "id": "max_statement_time", - "name": "max_statement_time", - "range": { - "from": 0, - "to": "upwards" - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "max_tmp_tables", - "name": "max_tmp_tables" - }, - { - "cli": "--max-user-connections=#", - "default": "0", - "dynamic": false, - "id": "max_user_connections", - "name": "max_user_connections", - "range": { - "from": -1, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--max-write-lock-count=#", - "default": "4294967295", - "dynamic": false, - "id": "max_write_lock_count", - "name": "max_write_lock_count", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--metadata-locks-cache-size=#", - "default": "1024", - "dynamic": false, - "id": "metadata_locks_cache_size", - "name": "metadata_locks_cache_size", - "range": { - "from": 1, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--metadata-locks-hash-instances=#", - "default": "8", - "dynamic": false, - "id": "metadata_locks_hash_instances", - "name": "metadata_locks_hash_instances", - "range": { - "from": 1, - "to": 1024 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--min-examined-row-limit=#", - "default": "0", - "dynamic": true, - "id": "min_examined_row_limit", - "name": "min_examined_row_limit", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--mrr-buffer-size=#", - "default": "262144", - "dynamic": true, - "id": "mrr_buffer_size", - "name": "mrr_buffer_size", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "default": "256", - "id": "multi_range_count", - "name": "multi_range_count" - }, - { - "cli": "--mysql56-temporal-format", - "default": "ON", - "dynamic": true, - "id": "mysql56_temporal_format", - "name": "mysql56_temporal_format", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--named-pipe", - "default": "OFF", - "dynamic": false, - "id": "named_pipe", - "name": "named_pipe", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--net-buffer-length=#", - "default": "16384", - "dynamic": true, - "id": "net_buffer_length", - "name": "net_buffer_length", - "range": { - "from": 1024, - "to": 1048576 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--net-read-timeout=#", - "default": "30", - "dynamic": true, - "id": "net_read_timeout", - "name": "net_read_timeout", - "range": { - "from": 1, - "to": "upwards" - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--net-retry-count=#", - "default": "10", - "dynamic": true, - "id": "net_retry_count", - "name": "net_retry_count", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--net-write-timeout=#", - "default": "60", - "dynamic": true, - "id": "net_write_timeout", - "name": "net_write_timeout", - "range": { - "from": 1, - "to": "upwards" - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--old", - "default": "OFF", - "dynamic": true, - "id": "old", - "name": "old", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--old-alter-table", - "default": "See alter_algorithm (>= MariaDB 10.3.7), 0 (<= MariaDB 10.3.6)", - "dynamic": true, - "id": "old_alter_table", - "name": "old_alter_table", - "scope": [ - "global", - "session" - ], - "validValues": [] - }, - { - "cli": "--old-mode", - "default": "(empty string)", - "dynamic": true, - "id": "old_mode", - "name": "old_mode", - "scope": [ - "global", - "session" - ], - "type": "string", - "validValues": [] - }, - { - "default": "OFF", - "dynamic": true, - "id": "old_passwords", - "name": "old_passwords", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--open-files-limit=count", - "default": "(autosized)", - "dynamic": false, - "id": "open_files_limit", - "name": "open_files_limit", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--optimizer-prune-level[=#]", - "default": "1", - "dynamic": true, - "id": "optimizer_prune_level", - "name": "optimizer_prune_level", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--optimizer-search-depth[=#]", - "default": "62", - "dynamic": true, - "id": "optimizer_search_depth", - "name": "optimizer_search_depth", - "range": { - "from": 0, - "to": 63 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "optimizer-selectivity-sampling-limit[=#]", - "default": "100", - "dynamic": true, - "id": "optimizer_selectivity_sampling_limit", - "name": "optimizer_selectivity_sampling_limit", - "range": { - "from": 10, - "to": "upwards" - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--optimizer-switch=value", - "dynamic": true, - "id": "optimizer_switch", - "name": "optimizer_switch", - "scope": [ - "global", - "session" - ], - "type": "string", - "validValues": [ - "condition_pushdown_for_derived={on|off}", - "condition_pushdown_for_subquery={on|off}", - "default", - "derived_merge={on|off}", - "derived_with_keys={on|off}", - "engine_condition_pushdown={on|off}", - "exists_to_in={on|off}", - "extended_keys={on|off}", - "firstmatch={on|off}", - "index_condition_pushdown={on|off}", - "index_merge={on|off}", - "index_merge_intersection={on|off}", - "index_merge_sort_intersection={on|off}", - "index_merge_sort_union={on|off}", - "index_merge_union={on|off}", - "in_to_exists={on|off}", - "join_cache_bka={on|off}", - "join_cache_hashed={on|off}", - "join_cache_incremental={on|off}", - "loosescan={on|off}", - "materialization={on|off}", - "mrr={on|off}", - "mrr_cost_based={on|off}", - "mrr_sort_keys={on|off}", - "optimize_join_buffer_size={on|off}", - "orderby_uses_equalities={on|off}", - "outer_join_with_cache={on|off}", - "partial_match_rowid_merge={on|off}", - "partial_match_table_scan={on|off}", - "semijoin={on|off}", - "semijoin_with_cache={on|off}", - "subquery_cache={on|off}", - "table_elimination={on|off}" - ] - }, - { - "cli": "--optimizer-use-condition-selectivity=#", - "default": "4 (>= MariaDB 10.4.1), 1 (<= MariaDB 10.4.0)", - "dynamic": true, - "id": "optimizer_use_condition_selectivity", - "name": "optimizer_use_condition_selectivity", - "range": { - "from": 1, - "to": 5 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--optimizer-trace=value", - "default": "enabled=off", - "dynamic": true, - "id": "optimizer_trace", - "name": "optimizer_trace", - "scope": [ - "global", - "session" - ], - "validValues": [ - "enabled={on|off|default}" - ] - }, - { - "cli": "--optimizer-trace-max-mem-size=#", - "default": "1048576", - "dynamic": true, - "id": "optimizer_trace_max_mem_size", - "name": "optimizer_trace_max_mem_size", - "range": { - "from": 1, - "to": 18446744073709552000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--pid-file=file_name", - "dynamic": false, - "id": "pid_file", - "name": "pid_file", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--plugin-dir=path", - "default": "BASEDIR/lib/plugin", - "dynamic": false, - "id": "plugin_dir", - "name": "plugin_dir", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "cli": "--plugin-maturity=level", - "default": "One less than the server maturity (>= MariaDB 10.3.3), unknown (<= MariaDB 10.3.2)", - "dynamic": false, - "id": "plugin_maturity", - "name": "plugin_maturity", - "scope": [ - "global" - ], - "validValues": [ - "unknown", - "experimental", - "alpha", - "beta", - "gamma", - "stable" - ] - }, - { - "cli": "--port=#, -P", - "default": "3306", - "dynamic": false, - "id": "port", - "name": "port", - "range": { - "from": 0, - "to": 65535 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--preload-buffer-size=#", - "default": "32768", - "dynamic": true, - "id": "preload_buffer_size", - "name": "preload_buffer_size", - "range": { - "from": 1024, - "to": 1073741824 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "default": "OFF", - "dynamic": true, - "id": "profiling", - "name": "profiling", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--profiling-history-size=#", - "default": "15", - "dynamic": true, - "id": "profiling_history_size", - "name": "profiling_history_size", - "range": { - "from": 0, - "to": 100 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--progress-report-time=#", - "default": "56 before MariaDB 5.5.39 and MariaDB 10.0.10, 5 as of MariaDB 5.5.40 and MariaDB 10.0.11", - "dynamic": true, - "id": "progress_report_time", - "name": "progress_report_time", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "default": "10", - "dynamic": false, - "id": "protocol_version", - "name": "protocol_version", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--proxy-protocol-networks=value", - "default": "(empty)", - "dynamic": false, - "id": "proxy_protocol_networks", - "name": "proxy_protocol_networks", - "scope": [ - "global" - ], - "type": "string" - }, - { - "dynamic": false, - "id": "proxy_user", - "name": "proxy_user", - "scope": [ - "session" - ], - "type": "string" - }, - { - "default": "OFF", - "dynamic": true, - "id": "pseudo_slave_mode", - "name": "pseudo_slave_mode", - "scope": [ - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "pseudo_thread_id", - "name": "pseudo_thread_id", - "scope": [ - "session" - ], - "type": "integer" - }, - { - "cli": "--query-alloc-block-size=#", - "default": "16384 (from MariaDB 10.1.2), 8192 (before MariaDB 10.1.2)", - "dynamic": true, - "id": "query_alloc_block_size", - "name": "query_alloc_block_size", - "range": { - "from": 1024, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--query-cache-limit=#", - "default": "1048576 (1MB)", - "dynamic": true, - "id": "query_cache_limit", - "name": "query_cache_limit", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--query-cache-min-res-unit=#", - "default": "4096 (4KB)", - "dynamic": true, - "id": "query_cache_min_res_unit", - "name": "query_cache_min_res_unit", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--query-cache-size=#", - "default": "1M (>= MariaDB 10.1.7), 0 (<= MariaDB 10.1.6) (although frequently given a default value in some setups)", - "dynamic": true, - "id": "query_cache_size", - "name": "query_cache_size", - "scope": [ - "global" - ], - "type": "integer", - "validValues": [ - "0" - ] - }, - { - "cli": "query-cache-strip-comments", - "default": "OFF", - "dynamic": true, - "id": "query_cache_strip_comments", - "name": "query_cache_strip_comments", - "scope": [ - "session", - "global" - ], - "type": "boolean" - }, - { - "cli": "--query-cache-type=#", - "default": "OFF (>= MariaDB 10.1.7), ON (<= MariaDB 10.1.6)", - "dynamic": true, - "id": "query_cache_type", - "name": "query_cache_type", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "0", - "OFF", - "1", - "ON", - "2", - "DEMAND" - ] - }, - { - "cli": "--query-cache-wlock-invalidate", - "default": "OFF", - "dynamic": true, - "id": "query_cache_wlock_invalidate", - "name": "query_cache_wlock_invalidate", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--query-prealloc-size=#", - "default": "24576 (from MariaDB 10.1.2) 8192 (before MariaDB 10.1.2)", - "dynamic": true, - "id": "query_prealloc_size", - "name": "query_prealloc_size", - "range": { - "from": 1024, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "default": "Varies", - "dynamic": true, - "id": "rand_seed1", - "name": "rand_seed1", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "session" - ], - "type": "integer" - }, - { - "id": "rand_seed2", - "name": "rand_seed2" - }, - { - "cli": "--range-alloc-block-size=#", - "default": "4096", - "dynamic": true, - "id": "range_alloc_block_size", - "name": "range_alloc_block_size", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--read-buffer-size=#", - "default": "131072", - "dynamic": true, - "id": "read_buffer_size", - "name": "read_buffer_size", - "range": { - "from": 8200, - "to": 2147479552 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--read-only", - "default": "OFF", - "dynamic": true, - "id": "read_only", - "name": "read_only", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--read-rnd-buffer-size=#", - "default": "262144", - "dynamic": true, - "id": "read_rnd_buffer_size", - "name": "read_rnd_buffer_size", - "range": { - "from": 8200, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--rowid-merge-buff-size=#", - "default": "8388608", - "dynamic": true, - "id": "rowid_merge_buff_size", - "name": "rowid_merge_buff_size", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "rpl_recovery_rank", - "name": "rpl_recovery_rank" - }, - { - "cli": "--safe-show-database (until MySQL 4.1.1)", - "dynamic": true, - "id": "safe_show_database", - "name": "safe_show_database", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--secure-auth", - "default": "ON (>= MariaDB 10.1.7), OFF (<= MariaDB 10.1.6)", - "dynamic": true, - "id": "secure_auth", - "name": "secure_auth", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--secure-file-priv=path", - "default": "None", - "dynamic": false, - "id": "secure_file_priv", - "name": "secure_file_priv", - "scope": [ - "global" - ] - }, - { - "cli": "--secure-timestamp=value", - "default": "NO", - "dynamic": false, - "id": "secure_timestamp", - "name": "secure_timestamp", - "scope": [ - "global" - ] - }, - { - "cli": "--session-track-schema={0|1}", - "default": "ON", - "dynamic": true, - "id": "session_track_schema", - "name": "session_track_schema", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--session-track-state-change={0|1}", - "default": "OFF", - "dynamic": true, - "id": "session_track_state_change", - "name": "session_track_state_change", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--session-track-system-variables=value", - "default": "autocommit, character_set_client, character_set_connection, character_set_results, time_zone (>= MariaDB 10.3.1), empty string (<= MariaDB 10.3.0)", - "dynamic": true, - "id": "session_track_system_variables", - "name": "session_track_system_variables", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "cli": "--session-track-transaction-info=value", - "default": "OFF", - "dynamic": true, - "id": "session_track_transaction_info", - "name": "session_track_transaction_info", - "scope": [ - "global", - "session" - ], - "validValues": [ - "OFF", - "STATE", - "CHARACTERISTICS" - ] - }, - { - "dynamic": false, - "id": "shared_memory", - "name": "shared_memory", - "scope": [ - "global" - ] - }, - { - "default": "MYSQL", - "dynamic": false, - "id": "shared_memory_base_name", - "name": "shared_memory_base_name", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--skip-external-locking", - "default": "1", - "dynamic": false, - "id": "skip_external_locking", - "name": "skip_external_locking", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--skip-name-resolve", - "default": "0", - "dynamic": false, - "id": "skip_name_resolve", - "name": "skip_name_resolve", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--skip-networking", - "default": "0", - "dynamic": false, - "id": "skip_networking", - "name": "skip_networking", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--skip-show-database", - "default": "0", - "dynamic": false, - "id": "skip_show_database", - "name": "skip_show_database", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--slow-launch-time=#", - "default": "2", - "dynamic": true, - "id": "slow_launch_time", - "name": "slow_launch_time", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--slow-query-log", - "default": "0", - "dynamic": true, - "id": "slow_query_log", - "name": "slow_query_log", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--slow-query-log-file=file_name", - "default": "host_name-slow.log", - "dynamic": true, - "id": "slow_query_log_file", - "name": "slow_query_log_file", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--socket=name", - "default": "/tmp/mysql.sock (Unix), MySQL (Windows)", - "dynamic": false, - "id": "socket", - "name": "socket", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--sort-buffer-size=#", - "default": "2M (2097152) (some distributions increase the default)", - "dynamic": true, - "id": "sort_buffer_size", - "name": "sort_buffer_size", - "scope": [ - "global", - "session" - ] - }, - { - "default": "0 (>= MariaDB/MySQL 5.5.3), 1 (MariaDB/MySQL <= 5.5.2)", - "dynamic": true, - "id": "sql_auto_is_null", - "name": "sql_auto_is_null", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "1", - "dynamic": true, - "id": "sql_big_selects", - "name": "sql_big_selects", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--sql-big-tables", - "default": "0", - "dynamic": true, - "id": "sql_big_tables", - "name": "sql_big_tables", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "0", - "dynamic": true, - "id": "sql_buffer_result", - "name": "sql_buffer_result", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "0", - "dynamic": true, - "id": "sql_log_off", - "name": "sql_log_off", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "id": "sql_log_update", - "name": "sql_log_update" - }, - { - "cli": "--sql-low-priority-updates", - "default": "0", - "dynamic": true, - "id": "sql_low_priority_updates", - "name": "sql_low_priority_updates", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "id": "sql_max_join_size", - "name": "sql_max_join_size" - }, - { - "cli": "--sql-mode=value[,value[,value...]]", - "default": "STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION (>= MariaDB 10.2.4), NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION (>= MariaDB 10.1.7), (empty string) (<= MariaDB 10.1.6)", - "dynamic": true, - "id": "sql_mode", - "name": "sql_mode", - "scope": [ - "global", - "session" - ], - "type": "string", - "validValues": [] - }, - { - "default": "1", - "dynamic": true, - "id": "sql_notes", - "name": "sql_notes", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "1", - "dynamic": true, - "id": "sql_quote_show_create", - "name": "sql_quote_show_create", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--sql-safe-updates[={0|1}]", - "default": "OFF", - "dynamic": true, - "id": "sql_safe_updates", - "name": "sql_safe_updates", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "18446744073709551615", - "dynamic": true, - "id": "sql_select_limit", - "name": "sql_select_limit", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "default": "OFF (0)", - "dynamic": true, - "id": "sql_warnings", - "name": "sql_warnings", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "id": "storage_engine", - "name": "storage_engine" - }, - { - "cli": "--standard-compliant-cte={0|1}", - "default": "ON", - "dynamic": true, - "id": "standard_compliant_cte", - "name": "standard_compliant_cte", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--stored-program-cache=#", - "default": "256", - "dynamic": true, - "id": "stored_program_cache", - "name": "stored_program_cache", - "range": { - "from": 256, - "to": 524288 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--strict-password-validation", - "default": "ON", - "dynamic": true, - "id": "strict_password_validation", - "name": "strict_password_validation", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--sync-frm", - "default": "TRUE", - "dynamic": true, - "id": "sync_frm", - "name": "sync_frm", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "dynamic": false, - "id": "system_time_zone", - "name": "system_time_zone", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--table-definition-cache=#", - "default": "400", - "dynamic": true, - "id": "table_definition_cache", - "name": "table_definition_cache", - "range": { - "from": 400, - "to": 2097152 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--table-lock-wait-timeout=#", - "default": "50", - "dynamic": true, - "id": "table_lock_wait_timeout", - "name": "table_lock_wait_timeout", - "range": { - "from": 1, - "to": 1073741824 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--table-open-cache=#", - "default": "2000 (>= MariaDB 10.1.7), 400 (<= MariaDB 10.1.6)", - "dynamic": true, - "id": "table_open_cache", - "name": "table_open_cache", - "range": { - "from": 1, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "default": "8 (>= MariaDB 10.2.2)", - "dynamic": false, - "id": "table_open_cache_instances", - "name": "table_open_cache_instances", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "table_type", - "name": "table_type" - }, - { - "cli": "--tcp-keepalive-interval=#", - "default": "0", - "dynamic": true, - "id": "tcp_keepalive_interval", - "name": "tcp_keepalive_interval", - "range": { - "from": 0, - "to": 2147483 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--tcp-keepalive-probes=#", - "default": "0", - "dynamic": true, - "id": "tcp_keepalive_probes", - "name": "tcp_keepalive_probes", - "range": { - "from": 0, - "to": 2147483 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--tcp-keepalive-time=#", - "default": "0", - "dynamic": true, - "id": "tcp_keepalive_time", - "name": "tcp_keepalive_time", - "range": { - "from": 0, - "to": 2147483 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--tcp-nodelay={0|1}", - "default": "1", - "dynamic": true, - "id": "tcp_nodelay", - "name": "tcp_nodelay", - "scope": [ - "session" - ], - "type": "boolean" - }, - { - "cli": "--thread-cache-size=#", - "default": "0 (<= MariaDB 10.1), Auto (from MariaDB 10.2.0)", - "dynamic": true, - "id": "thread_cache_size", - "name": "thread_cache_size", - "range": { - "from": 0, - "to": 16384 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--thread-concurrency=#", - "default": "10", - "dynamic": false, - "id": "thread_concurrency", - "name": "thread_concurrency", - "range": { - "from": 1, - "to": 512 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--thread-stack=#", - "default": "299008 (MariaDB 10.2.5), 297984 (MariaDB 10.2.1), 296960 (MariaDB 10.2.0), 295936 (MariaDB 10.1), 294912 (<= MariaDB 10.0)", - "dynamic": false, - "id": "thread_stack", - "name": "thread_stack", - "range": { - "from": 131072, - "to": 18446744073709552000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "time_format", - "name": "time_format" - }, - { - "cli": "--default-time-zone=string", - "default": "SYSTEM", - "dynamic": true, - "id": "time_zone", - "name": "time_zone", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "cli": "--timed-mutexes", - "default": "OFF", - "dynamic": true, - "id": "timed_mutexes", - "name": "timed_mutexes", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "dynamic": true, - "id": "timestamp", - "name": "timestamp", - "scope": [ - "session" - ], - "validValues": [ - "timestamp_value", - "DEFAULT" - ] - }, - { - "cli": "--tmp-disk-table-size=#", - "default": "18446744073709551615 (max unsigned integer, no limit)", - "dynamic": true, - "id": "tmp_disk_table_size", - "name": "tmp_disk_table_size", - "range": { - "from": 1024, - "to": 18446744073709552000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--tmp-memory-table-size=#", - "id": "tmp_memory_table_size", - "name": "tmp_memory_table_size" - }, - { - "cli": "--tmp-table-size=#", - "default": "16777216 (16MB)", - "dynamic": true, - "id": "tmp_table_size", - "name": "tmp_table_size", - "range": { - "from": 1024, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--tmpdir=path or -t path", - "dynamic": false, - "id": "tmpdir", - "name": "tmpdir", - "scope": [ - "global" - ] - }, - { - "cli": "--transaction-alloc-block-size=#", - "default": "8192", - "dynamic": true, - "id": "transaction_alloc_block_size", - "name": "transaction_alloc_block_size", - "range": { - "from": 1024, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--transaction-prealloc-size=#", - "default": "4096", - "dynamic": true, - "id": "transaction_prealloc_size", - "name": "transaction_prealloc_size", - "range": { - "from": 1024, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--transaction-isolation=name", - "default": "REPEATABLE-READ", - "dynamic": true, - "id": "tx_isolation", - "name": "tx_isolation", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "READ-UNCOMMITTED", - "READ-COMMITTED", - "REPEATABLE-READ", - "SERIALIZABLE" - ] - }, - { - "cli": "--transaction-read-only=#", - "default": "OFF-READ", - "dynamic": true, - "id": "tx_read_only", - "name": "tx_read_only", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "1", - "dynamic": true, - "id": "unique_checks", - "name": "unique_checks", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--updatable-views-with-limit=#", - "default": "1", - "dynamic": true, - "id": "updatable_views_with_limit", - "name": "updatable_views_with_limit", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--use-stat-tables=mode", - "default": "preferably_for_queries (>= MariaDB 10.4.1), never (<= MariaDB 10.4.0)", - "dynamic": true, - "id": "use_stat_tables", - "name": "use_stat_tables", - "scope": [ - "global", - "session" - ] - }, - { - "cli": "-V, --version[=name] (>= MariaDB 10.2.1), --version (<= MariaDB 10.2.0)", - "dynamic": false, - "id": "version", - "name": "version", - "scope": [ - "global" - ], - "type": "string" - }, - { - "dynamic": false, - "id": "version_comment", - "name": "version_comment", - "scope": [ - "global" - ], - "type": "string" - }, - { - "dynamic": false, - "id": "version_compile_machine", - "name": "version_compile_machine", - "scope": [ - "global" - ], - "type": "string" - }, - { - "dynamic": false, - "id": "version_compile_os", - "name": "version_compile_os", - "scope": [ - "global" - ], - "type": "string" - }, - { - "dynamic": false, - "id": "version_malloc_library", - "name": "version_malloc_library", - "scope": [ - "global" - ], - "type": "string" - }, - { - "dynamic": false, - "id": "version_source_revision", - "name": "version_source_revision", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--wait-timeout=#", - "default": "28800", - "dynamic": true, - "id": "wait_timeout", - "name": "wait_timeout", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": false, - "id": "warning_count", - "name": "warning_count", - "scope": [ - "session" - ], - "type": "integer" - } - ], - "name": "server-system-variables", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-sphinx-status-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-sphinx-status-variables.json deleted file mode 100644 index f03a851..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-sphinx-status-variables.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "data": [ - { - "id": "sphinx_error", - "name": "Sphinx_error", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "sphinx_time", - "name": "Sphinx_time", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "sphinx_total", - "name": "Sphinx_total", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "sphinx_total_found", - "name": "Sphinx_total_found", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "sphinx_word_count", - "name": "Sphinx_word_count", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "sphinx_words", - "name": "Sphinx_words", - "scope": [ - "global", - "session" - ], - "type": "integer" - } - ], - "name": "sphinx-status-variables", - "url": "https://mariadb.com/kb/en/library/documentation/sphinx-status-variables/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-spider-server-status-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-spider-server-status-variables.json deleted file mode 100644 index 980999b..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-spider-server-status-variables.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "data": [ - { - "id": "spider_direct_aggregate", - "name": "Spider_direct_aggregate", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "spider_direct_order_limit", - "name": "Spider_direct_order_limit", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "spider_mon_table_cache_version", - "name": "Spider_mon_table_cache_version", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "spider_mon_table_cache_version_req", - "name": "Spider_mon_table_cache_version_req", - "scope": [ - "global", - "session" - ], - "type": "integer" - } - ], - "name": "spider-server-status-variables", - "url": "https://mariadb.com/kb/en/library/documentation/spider-server-status-variables/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-spider-server-system-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-spider-server-system-variables.json deleted file mode 100644 index ad21663..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-spider-server-system-variables.json +++ /dev/null @@ -1,1419 +0,0 @@ -{ - "data": [ - { - "dynamic": true, - "id": "spider_auto_increment_mode", - "name": "spider_auto_increment_mode", - "range": { - "from": -1, - "to": 3 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_bgs_first_read", - "name": "spider_bgs_first_read", - "range": { - "from": -1, - "to": 9223372036854776000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_bgs_mode", - "name": "spider_bgs_mode", - "range": { - "from": -1, - "to": 3 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_bgs_second_read", - "name": "spider_bgs_second_read", - "range": { - "from": -1, - "to": 9223372036854776000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_bka_engine", - "name": "spider_bka_engine", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "dynamic": true, - "id": "spider_bka_mode", - "name": "spider_bka_mode", - "range": { - "from": -1, - "to": 2 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_bka_table_name_type", - "name": "spider_bka_table_name_type", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_block_size", - "name": "spider_block_size", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_bulk_size", - "name": "spider_bulk_size", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_bulk_update_mode", - "name": "spider_bulk_update_mode", - "range": { - "from": -1, - "to": 2 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_bulk_update_size", - "name": "spider_bulk_update_size", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_casual_read", - "name": "spider_casual_read", - "range": { - "from": -1, - "to": 63 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_conn_recycle_mode", - "name": "spider_conn_recycle_mode", - "range": { - "from": 0, - "to": 2 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_conn_recycle_strict", - "name": "spider_conn_recycle_strict", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_conn_wait_timeout", - "name": "spider_conn_wait_timeout", - "range": { - "from": 0, - "to": 1000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "default": "1", - "dynamic": true, - "id": "spider_connect_error_interval", - "name": "spider_connect_error_interval", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_connect_mutex", - "name": "spider_connect_mutex", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "dynamic": true, - "id": "spider_connect_retry_count", - "name": "spider_connect_retry_count", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_connect_retry_interval", - "name": "spider_connect_retry_interval", - "range": { - "from": -1, - "to": 9223372036854776000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_connect_timeout", - "name": "spider_connect_timeout", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_crd_bg_mode", - "name": "spider_crd_bg_mode", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_crd_interval", - "name": "spider_crd_interval", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_crd_mode", - "name": "spider_crd_mode", - "range": { - "from": -1, - "to": 3 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_crd_sync", - "name": "spider_crd_sync", - "range": { - "from": -1, - "to": 2 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_crd_type", - "name": "spider_crd_type", - "range": { - "from": -1, - "to": 2 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_crd_weight", - "name": "spider_crd_weight", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_delete_all_rows_type", - "name": "spider_delete_all_rows_type", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_direct_dup_insert", - "name": "spider_direct_dup_insert", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_direct_order_limit", - "name": "spider_direct_order_limit", - "range": { - "from": -1, - "to": 9223372036854776000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "default": "OFF", - "dynamic": false, - "id": "spider_dry_access", - "name": "spider_dry_access", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "dynamic": true, - "id": "spider_error_read_mode", - "name": "spider_error_read_mode", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_error_write_mode", - "name": "spider_error_write_mode", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_first_read", - "name": "spider_first_read", - "range": { - "from": -1, - "to": 9223372036854776000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_force_commit", - "name": "spider_force_commit", - "range": { - "from": 0, - "to": 2 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_general_log", - "name": "spider_general_log", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "dynamic": true, - "id": "spider_index_hint_pushdown", - "name": "spider_index_hint_pushdown", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "dynamic": true, - "id": "spider_init_sql_alloc_size", - "name": "spider_init_sql_alloc_size", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_internal_limit", - "name": "spider_internal_limit", - "range": { - "from": -1, - "to": 9223372036854776000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_internal_offset", - "name": "spider_internal_offset", - "range": { - "from": -1, - "to": 9223372036854776000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_internal_optimize", - "name": "spider_internal_optimize", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "spider_internal_optimize_local", - "name": "spider_internal_optimize_local", - "range": { - "from": -1, - "to": 1 - } - }, - { - "dynamic": true, - "id": "spider_internal_sql_log_off", - "name": "spider_internal_sql_log_off", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "id": "spider_internal_unlock", - "name": "spider_internal_unlock", - "type": "boolean" - }, - { - "dynamic": true, - "id": "spider_internal_xa", - "name": "spider_internal_xa", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "dynamic": true, - "id": "spider_internal_xa_id_type", - "name": "spider_internal_xa_id_type", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_internal_xa_snapshot", - "name": "spider_internal_xa_snapshot", - "range": { - "from": 0, - "to": 3 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_load_crd_at_startup", - "name": "spider_load_crd_at_startup", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "dynamic": true, - "id": "spider_load_sts_at_startup", - "name": "spider_load_sts_at_startup", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "dynamic": true, - "id": "spider_local_lock_table", - "name": "spider_local_lock_table", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "dynamic": true, - "id": "spider_lock_exchange", - "name": "spider_lock_exchange", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "dynamic": true, - "id": "spider_log_result_error_with_sql", - "name": "spider_log_result_error_with_sql", - "range": { - "from": 0, - "to": 3 - }, - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_log_result_errors", - "name": "spider_log_result_errors", - "range": { - "from": 0, - "to": 4 - }, - "type": "integer" - }, - { - "default": "-1", - "id": "spider_low_mem_read", - "name": "spider_low_mem_read", - "range": { - "from": -1, - "to": 1 - }, - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_max_connections", - "name": "spider_max_connections", - "range": { - "from": 0, - "to": 99999 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_max_order", - "name": "spider_max_order", - "range": { - "from": -1, - "to": 32767 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_multi_split_read", - "name": "spider_multi_split_read", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_net_read_timeout", - "name": "spider_net_read_timeout", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_net_write_timeout", - "name": "spider_net_write_timeout", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_ping_interval_at_trx_start", - "name": "spider_ping_interval_at_trx_start", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_quick_mode", - "name": "spider_quick_mode", - "range": { - "from": -1, - "to": 3 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_quick_page_size", - "name": "spider_quick_page_size", - "range": { - "from": -1, - "to": 9223372036854776000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_read_only_mode", - "name": "spider_read_only_mode", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_remote_access_charset", - "name": "spider_remote_access_charset", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "dynamic": true, - "id": "spider_remote_autocommit", - "name": "spider_remote_autocommit", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_remote_default_database", - "name": "spider_remote_default_database", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "dynamic": true, - "id": "spider_remote_sql_log_off", - "name": "spider_remote_sql_log_off", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_remote_time_zone", - "name": "spider_remote_time_zone", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "dynamic": true, - "id": "spider_remote_trx_isolation", - "name": "spider_remote_trx_isolation", - "range": { - "from": -1, - "to": 3 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_reset_sql_alloc", - "name": "spider_reset_sql_alloc", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_same_server_link", - "name": "spider_same_server_link", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "dynamic": true, - "id": "spider_second_read", - "name": "spider_second_read", - "range": { - "from": -1, - "to": 9223372036854776000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_select_column_mode", - "name": "spider_select_column_mode", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_selupd_lock_mode", - "name": "spider_selupd_lock_mode", - "range": { - "from": -1, - "to": 2 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_semi_split_read", - "name": "spider_semi_split_read", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_semi_split_read_limit", - "name": "spider_semi_split_read_limit", - "range": { - "from": -1, - "to": 9223372036854776000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_semi_table_lock", - "name": "spider_semi_table_lock", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_semi_table_lock_connection", - "name": "spider_semi_table_lock_connection", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_semi_trx", - "name": "spider_semi_trx", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "dynamic": true, - "id": "spider_semi_trx_isolation", - "name": "spider_semi_trx_isolation", - "range": { - "from": -1, - "to": 3 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_skip_default_condition", - "name": "spider_skip_default_condition", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--spider-skip-parallel-search=#", - "dynamic": true, - "id": "spider_skip_parallel_search", - "name": "spider_skip_parallel_search", - "range": { - "from": -1, - "to": 3 - }, - "scope": [ - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_split_read", - "name": "spider_split_read", - "range": { - "from": -1, - "to": 9223372036854776000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--spider-store-last-crd=#", - "dynamic": true, - "id": "spider_store_last_crd", - "name": "spider_store_last_crd", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--spider-store-last-sts=#", - "dynamic": true, - "id": "spider_store_last_sts", - "name": "spider_store_last_sts", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_sts_bg_mode", - "name": "spider_sts_bg_mode", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_sts_interval", - "name": "spider_sts_interval", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_sts_mode", - "name": "spider_sts_mode", - "range": { - "from": -1, - "to": 2 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_sts_sync", - "name": "spider_sts_sync", - "range": { - "from": -1, - "to": 2 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": false, - "id": "spider_support_xa", - "name": "spider_support_xa", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "dynamic": true, - "id": "spider_sync_autocommit", - "name": "spider_sync_autocommit", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "dynamic": true, - "id": "spider_sync_time_zone", - "name": "spider_sync_time_zone", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "dynamic": true, - "id": "spider_sync_trx_isolation", - "name": "spider_sync_trx_isolation", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--spider-table-crd-thread-count=#", - "default": "10", - "dynamic": false, - "id": "spider_table_crd_thread_count", - "name": "spider_table_crd_thread_count", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "default": "1", - "dynamic": true, - "id": "spider_table_init_error_interval", - "name": "spider_table_init_error_interval", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--spider-table-sts-thread-count=#", - "default": "10", - "dynamic": false, - "id": "spider_table_sts_thread_count", - "name": "spider_table_sts_thread_count", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_udf_ct_bulk_insert_interval", - "name": "spider_udf_ct_bulk_insert_interval", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_udf_ct_bulk_insert_rows", - "name": "spider_udf_ct_bulk_insert_rows", - "range": { - "from": -1 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_udf_ds_bulk_insert_rows", - "name": "spider_udf_ds_bulk_insert_rows", - "range": { - "from": -1 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_udf_ds_table_loop_mode", - "name": "spider_udf_ds_table_loop_mode", - "range": { - "from": -1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_udf_ds_use_real_table", - "name": "spider_udf_ds_use_real_table", - "range": { - "from": -1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "default": "20", - "dynamic": false, - "id": "spider_udf_table_lock_mutex_count", - "name": "spider_udf_table_lock_mutex_count", - "range": { - "from": 1 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "default": "20", - "dynamic": false, - "id": "spider_udf_table_mon_mutex_count", - "name": "spider_udf_table_mon_mutex_count", - "range": { - "from": 1 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_use_all_conns_snapshot", - "name": "spider_use_all_conns_snapshot", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "dynamic": true, - "id": "spider_use_consistent_snapshot", - "name": "spider_use_consistent_snapshot", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "dynamic": true, - "id": "spider_use_default_database", - "name": "spider_use_default_database", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "dynamic": true, - "id": "spider_use_flash_logs", - "name": "spider_use_flash_logs", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "id": "spider_use_handler", - "name": "spider_use_handler" - }, - { - "dynamic": true, - "id": "spider_use_pushdown_udf", - "name": "spider_use_pushdown_udf", - "range": { - "from": -1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_use_snapshot_with_flush_tables", - "name": "spider_use_snapshot_with_flush_tables", - "range": { - "from": 0 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "spider_use_table_charset", - "name": "spider_use_table_charset", - "range": { - "from": -1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": false, - "id": "spider_version", - "name": "spider_version", - "scope": [ - "global" - ], - "type": "string" - }, - { - "default": "1", - "dynamic": true, - "id": "spider_xa_register_mode", - "name": "spider_xa_register_mode", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - } - ], - "name": "spider-server-system-variables", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-ssltls-status-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-ssltls-status-variables.json deleted file mode 100644 index ad31695..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-ssltls-status-variables.json +++ /dev/null @@ -1,215 +0,0 @@ -{ - "data": [ - { - "id": "ssl_accept_renegotiates", - "name": "Ssl_accept_renegotiates", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "ssl_accepts", - "name": "Ssl_accepts", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "ssl_callback_cache_hits", - "name": "Ssl_callback_cache_hits", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "ssl_cipher", - "name": "Ssl_cipher", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "id": "ssl_cipher_list", - "name": "Ssl_cipher_list", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "id": "ssl_client_connects", - "name": "Ssl_client_connects", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "ssl_connect_renegotiates", - "name": "Ssl_connect_renegotiates", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "ssl_ctx_verify_depth", - "name": "Ssl_ctx_verify_depth", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "ssl_ctx_verify_mode", - "name": "Ssl_ctx_verify_mode", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "ssl_default_timeout", - "name": "Ssl_default_timeout", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "ssl_finished_accepts", - "name": "Ssl_finished_accepts", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "ssl_finished_connects", - "name": "Ssl_finished_connects", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "ssl_server_not_after", - "name": "Ssl_server_not_after", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "ssl_server_not_before", - "name": "Ssl_server_not_before", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "ssl_session_cache_hits", - "name": "Ssl_session_cache_hits", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "ssl_session_cache_misses", - "name": "Ssl_session_cache_misses", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "ssl_session_cache_mode", - "name": "Ssl_session_cache_mode", - "scope": [ - "global" - ], - "type": "string" - }, - { - "id": "ssl_session_cache_overflows", - "name": "Ssl_session_cache_overflows", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "ssl_session_cache_size", - "name": "Ssl_session_cache_size", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "ssl_session_cache_timeouts", - "name": "Ssl_session_cache_timeouts", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "ssl_sessions_reused", - "name": "Ssl_sessions_reused", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "ssl_used_session_cache_entries", - "name": "Ssl_used_session_cache_entries", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "ssl_verify_depth", - "name": "Ssl_verify_depth", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "ssl_verify_mode", - "name": "Ssl_verify_mode", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "ssl_version", - "name": "Ssl_version", - "scope": [ - "global", - "session" - ], - "type": "string" - } - ], - "name": "ssltls-status-variables", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-ssltls-system-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-ssltls-system-variables.json deleted file mode 100644 index 41a8e65..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-ssltls-system-variables.json +++ /dev/null @@ -1,123 +0,0 @@ -{ - "data": [ - { - "dynamic": false, - "id": "have_openssl", - "name": "have_openssl", - "scope": [ - "global" - ] - }, - { - "dynamic": false, - "id": "have_ssl", - "name": "have_ssl", - "scope": [ - "global" - ] - }, - { - "cli": "--ssl-ca=file_name", - "dynamic": false, - "id": "ssl_ca", - "name": "ssl_ca", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--ssl-capath=directory_name", - "dynamic": false, - "id": "ssl_capath", - "name": "ssl_capath", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "cli": "--ssl-cert=name", - "default": "None", - "dynamic": false, - "id": "ssl_cert", - "name": "ssl_cert", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--ssl-cipher=name", - "default": "None", - "dynamic": false, - "id": "ssl_cipher", - "name": "ssl_cipher", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--ssl-crl=name", - "default": "None", - "dynamic": false, - "id": "ssl_crl", - "name": "ssl_crl", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--ssl-crlpath=name", - "default": "None", - "dynamic": false, - "id": "ssl_crlpath", - "name": "ssl_crlpath", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "cli": "--ssl-key=name", - "default": "None", - "dynamic": false, - "id": "ssl_key", - "name": "ssl_key", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--tls-version=name", - "default": "TLSv1.1,TLSv1.2,TLSv1.3", - "dynamic": false, - "id": "tls_version", - "name": "tls_version", - "scope": [ - "global" - ], - "validValues": [ - "TLSv1.0", - "TLSv1.1", - "TLSv1.2", - "TLSv1.3" - ] - }, - { - "default": "None", - "dynamic": false, - "id": "version_ssl_library", - "name": "version_ssl_library", - "scope": [ - "global" - ], - "type": "string" - } - ], - "name": "ssltls-system-variables", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-system-variables/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-thread-pool-system-and-status-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-thread-pool-system-and-status-variables.json deleted file mode 100644 index 99925c0..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-thread-pool-system-and-status-variables.json +++ /dev/null @@ -1,191 +0,0 @@ -{ - "data": [ - { - "cli": "--extra-max-connections=#", - "default": "1", - "dynamic": true, - "id": "extra_max_connections", - "name": "extra_max_connections", - "range": { - "from": 1, - "to": 100000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--extra-port=#", - "default": "0", - "dynamic": false, - "id": "extra_port", - "name": "extra_port", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--thread-handling=name", - "default": "one-thread-per-connection", - "dynamic": false, - "id": "thread_handling", - "name": "thread_handling", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "no-threads", - "one-thread-per-connection", - "pool-of-threads" - ] - }, - { - "cli": "thread-pool-dedicated-listener={0|1}", - "default": "0", - "dynamic": false, - "id": "thread_pool_dedicated_listener", - "name": "thread_pool_dedicated_listener", - "scope": [], - "type": "boolean" - }, - { - "cli": "thread-pool-exact-stats={0|1}", - "default": "0", - "dynamic": false, - "id": "thread_pool_exact_stats", - "name": "thread_pool_exact_stats", - "scope": [], - "type": "boolean" - }, - { - "cli": "thread-pool-idle-timeout=#", - "default": "60", - "dynamic": true, - "id": "thread_pool_idle_timeout", - "name": "thread_pool_idle_timeout", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "thread-pool-max-threads=#", - "default": "65536 (>= MariaDB 10.2.4), 1000 (<= MariaDB 10.2.3, >= MariaDB 10.1), 500 (<= MariaDB 10.0)", - "dynamic": true, - "id": "thread_pool_max_threads", - "name": "thread_pool_max_threads", - "range": { - "from": 1, - "to": 65536 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "thread-pool-min-threads=#", - "default": "1", - "id": "thread_pool_min_threads", - "name": "thread_pool_min_threads", - "type": "integer" - }, - { - "default": "3", - "dynamic": true, - "id": "thread_pool_oversubscribe", - "name": "thread_pool_oversubscribe", - "range": { - "from": 1, - "to": 65536 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "thread-pool-kickup-timer=#", - "default": "1000", - "dynamic": true, - "id": "thread_pool_prio_kickup_timer", - "name": "thread_pool_prio_kickup_timer", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--thread-pool-priority=#", - "default": "auto", - "id": "thread_pool_priority", - "name": "thread_pool_priority", - "scope": [ - "global", - "connection" - ], - "validValues": [ - "high", - "low", - "auto" - ] - }, - { - "cli": "--thread-pool-size=#", - "default": "(based on the number of processors)", - "dynamic": true, - "id": "thread_pool_size", - "name": "thread_pool_size", - "range": { - "from": 1, - "to": 128 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--thread-pool-stall-limit=#", - "default": "500", - "dynamic": true, - "id": "thread_pool_stall_limit", - "name": "thread_pool_stall_limit", - "range": { - "from": 10, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "threadpool_idle_threads", - "name": "Threadpool_idle_threads", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "id": "threadpool_threads", - "name": "Threadpool_threads", - "scope": [ - "global", - "session" - ], - "type": "integer" - } - ], - "name": "thread-pool-system-and-status-variables", - "url": "https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-tokudb-status-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-tokudb-status-variables.json deleted file mode 100644 index 472c615..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-tokudb-status-variables.json +++ /dev/null @@ -1,856 +0,0 @@ -{ - "data": [ - { - "id": "tokudb_basement_deserialization_fixed_key", - "name": "Tokudb_basement_deserialization_fixed_key", - "type": "integer" - }, - { - "id": "tokudb_basement_deserialization_variable_key", - "name": "Tokudb_basement_deserialization_variable_key", - "type": "integer" - }, - { - "id": "tokudb_basements_decompressed_for_write", - "name": "Tokudb_basements_decompressed_for_write", - "type": "integer" - }, - { - "id": "tokudb_basements_decompressed_prefetch", - "name": "Tokudb_basements_decompressed_prefetch", - "type": "integer" - }, - { - "id": "tokudb_basements_decompressed_prelocked_range", - "name": "Tokudb_basements_decompressed_prelocked_range", - "type": "integer" - }, - { - "id": "tokudb_basements_decompressed_target_query", - "name": "Tokudb_basements_decompressed_target_query", - "type": "integer" - }, - { - "id": "tokudb_basements_fetched_for_write", - "name": "Tokudb_basements_fetched_for_write", - "type": "integer" - }, - { - "id": "tokudb_basements_fetched_for_write_bytes", - "name": "Tokudb_basements_fetched_for_write_bytes" - }, - { - "id": "tokudb_basements_fetched_for_write_seconds", - "name": "Tokudb_basements_fetched_for_write_seconds", - "type": "integer" - }, - { - "id": "tokudb_basements_fetched_prefetch", - "name": "Tokudb_basements_fetched_prefetch", - "type": "integer" - }, - { - "id": "tokudb_basements_fetched_prefetch_bytes", - "name": "Tokudb_basements_fetched_prefetch_bytes" - }, - { - "id": "tokudb_basements_fetched_prefetch_seconds", - "name": "Tokudb_basements_fetched_prefetch_seconds", - "type": "integer" - }, - { - "id": "tokudb_basements_fetched_prelocked_range", - "name": "Tokudb_basements_fetched_prelocked_range", - "type": "integer" - }, - { - "id": "tokudb_basements_fetched_prelocked_range_bytes", - "name": "Tokudb_basements_fetched_prelocked_range_bytes" - }, - { - "id": "tokudb_basements_fetched_prelocked_range_seconds", - "name": "Tokudb_basements_fetched_prelocked_range_seconds", - "type": "integer" - }, - { - "id": "tokudb_basements_fetched_target_query", - "name": "Tokudb_basements_fetched_target_query", - "type": "integer" - }, - { - "id": "tokudb_basements_fetched_target_query_bytes", - "name": "Tokudb_basements_fetched_target_query_bytes" - }, - { - "id": "tokudb_basements_fetched_target_query_seconds", - "name": "Tokudb_basements_fetched_target_query_seconds", - "type": "integer" - }, - { - "id": "tokudb_broadcase_messages_injected_at_root", - "name": "Tokudb_broadcase_messages_injected_at_root", - "type": "integer" - }, - { - "id": "tokudb_buffers_decompressed_for_write", - "name": "Tokudb_buffers_decompressed_for_write", - "type": "integer" - }, - { - "id": "tokudb_buffers_decompressed_prefetch", - "name": "Tokudb_buffers_decompressed_prefetch", - "type": "integer" - }, - { - "id": "tokudb_buffers_decompressed_prelocked_range", - "name": "Tokudb_buffers_decompressed_prelocked_range", - "type": "integer" - }, - { - "id": "tokudb_buffers_decompressed_target_query", - "name": "Tokudb_buffers_decompressed_target_query", - "type": "integer" - }, - { - "id": "tokudb_buffers_fetched_for_write", - "name": "Tokudb_buffers_fetched_for_write", - "type": "integer" - }, - { - "id": "tokudb_buffers_fetched_for_write_bytes", - "name": "Tokudb_buffers_fetched_for_write_bytes" - }, - { - "id": "tokudb_buffers_fetched_for_write_seconds", - "name": "Tokudb_buffers_fetched_for_write_seconds", - "type": "integer" - }, - { - "id": "tokudb_buffers_fetched_prefetch", - "name": "Tokudb_buffers_fetched_prefetch", - "type": "integer" - }, - { - "id": "tokudb_buffers_fetched_prefetch_bytes", - "name": "Tokudb_buffers_fetched_prefetch_bytes" - }, - { - "id": "tokudb_buffers_fetched_prefetch_seconds", - "name": "Tokudb_buffers_fetched_prefetch_seconds", - "type": "integer" - }, - { - "id": "tokudb_buffers_fetched_prelocked_range", - "name": "Tokudb_buffers_fetched_prelocked_range", - "type": "integer" - }, - { - "id": "tokudb_buffers_fetched_prelocked_range_bytes", - "name": "Tokudb_buffers_fetched_prelocked_range_bytes" - }, - { - "id": "tokudb_buffers_fetched_prelocked_range_seconds", - "name": "Tokudb_buffers_fetched_prelocked_range_seconds", - "type": "integer" - }, - { - "id": "tokudb_buffers_fetched_target_query", - "name": "Tokudb_buffers_fetched_target_query", - "type": "integer" - }, - { - "id": "tokudb_buffers_fetched_target_query_bytes", - "name": "Tokudb_buffers_fetched_target_query_bytes" - }, - { - "id": "tokudb_buffers_fetched_target_query_seconds", - "name": "Tokudb_buffers_fetched_target_query_seconds", - "type": "integer" - }, - { - "id": "tokudb_cachetable_cleaner_executions", - "name": "Tokudb_cachetable_cleaner_executions", - "type": "integer" - }, - { - "id": "tokudb_cachetable_cleaner_iterations", - "name": "Tokudb_cachetable_cleaner_iterations", - "type": "integer" - }, - { - "id": "tokudb_cachetable_cleaner_period", - "name": "Tokudb_cachetable_cleaner_period", - "type": "integer" - }, - { - "id": "tokudb_cachetable_evictions", - "name": "Tokudb_cachetable_evictions", - "type": "integer" - }, - { - "id": "tokudb_cachetable_long_wait_pressure_count", - "name": "Tokudb_cachetable_long_wait_pressure_count", - "type": "integer" - }, - { - "id": "tokudb_cachetable_long_wait_pressure_time", - "name": "Tokudb_cachetable_long_wait_pressure_time", - "type": "integer" - }, - { - "id": "tokudb_cachetable_miss", - "name": "Tokudb_cachetable_miss", - "type": "integer" - }, - { - "id": "tokudb_cachetable_miss_time", - "name": "Tokudb_cachetable_miss_time", - "type": "integer" - }, - { - "id": "tokudb_cachetable_prefetches", - "name": "Tokudb_cachetable_prefetches", - "type": "integer" - }, - { - "id": "tokudb_cachetable_size_cachepressure", - "name": "Tokudb_cachetable_size_cachepressure", - "type": "byte" - }, - { - "id": "tokudb_cachetable_size_cloned", - "name": "Tokudb_cachetable_size_cloned", - "type": "byte" - }, - { - "id": "tokudb_cachetable_size_current", - "name": "Tokudb_cachetable_size_current", - "type": "byte" - }, - { - "id": "tokudb_cachetable_size_leaf", - "name": "Tokudb_cachetable_size_leaf", - "type": "byte" - }, - { - "id": "tokudb_cachetable_size_limit", - "name": "Tokudb_cachetable_size_limit", - "type": "byte" - }, - { - "id": "tokudb_cachetable_size_nonleaf", - "name": "Tokudb_cachetable_size_nonleaf", - "type": "byte" - }, - { - "id": "tokudb_cachetable_size_rollback", - "name": "Tokudb_cachetable_size_rollback", - "type": "byte" - }, - { - "id": "tokudb_cachetable_size_writing", - "name": "Tokudb_cachetable_size_writing", - "type": "byte" - }, - { - "id": "tokudb_cachetable_wait_pressure_count", - "name": "Tokudb_cachetable_wait_pressure_count", - "type": "integer" - }, - { - "id": "tokudb_cachetable_wait_pressure_time", - "name": "Tokudb_cachetable_wait_pressure_time", - "type": "integer" - }, - { - "id": "tokudb_checkpoint_begin_time", - "name": "Tokudb_checkpoint_begin_time", - "type": "integer" - }, - { - "id": "tokudb_checkpoint_duration", - "name": "Tokudb_checkpoint_duration", - "type": "integer" - }, - { - "id": "tokudb_checkpoint_duration_last", - "name": "Tokudb_checkpoint_duration_last", - "type": "integer" - }, - { - "id": "tokudb_checkpoint_failed", - "name": "Tokudb_checkpoint_failed", - "type": "integer" - }, - { - "id": "tokudb_checkpoint_last_began", - "name": "Tokudb_checkpoint_last_began" - }, - { - "id": "tokudb_checkpoint_last_complete_began", - "name": "Tokudb_checkpoint_last_complete_began" - }, - { - "id": "tokudb_checkpoint_last_complete_ended", - "name": "Tokudb_checkpoint_last_complete_ended" - }, - { - "id": "tokudb_checkpoint_long_begin_count", - "name": "Tokudb_checkpoint_long_begin_count", - "type": "integer" - }, - { - "id": "tokudb_checkpoint_long_begin_time", - "name": "Tokudb_checkpoint_long_begin_time", - "type": "integer" - }, - { - "id": "tokudb_checkpoint_period", - "name": "Tokudb_checkpoint_period", - "type": "integer" - }, - { - "id": "tokudb_checkpoint_taken", - "name": "Tokudb_checkpoint_taken", - "type": "integer" - }, - { - "id": "tokudb_cursor_skip_deleted_leaf_entry", - "name": "Tokudb_cursor_skip_deleted_leaf_entry" - }, - { - "id": "tokudb_db_closes", - "name": "Tokudb_db_closes", - "type": "integer" - }, - { - "id": "tokudb_db_open_current", - "name": "Tokudb_db_open_current", - "type": "integer" - }, - { - "id": "tokudb_db_open_max", - "name": "Tokudb_db_open_max", - "type": "integer" - }, - { - "id": "tokudb_db_opens", - "name": "Tokudb_db_opens", - "type": "integer" - }, - { - "id": "tokudb_descriptor_set", - "name": "Tokudb_descriptor_set", - "type": "integer" - }, - { - "id": "tokudb_dictionary_broadcast_updates", - "name": "Tokudb_dictionary_broadcast_updates", - "type": "integer" - }, - { - "id": "tokudb_dictionary_updates", - "name": "Tokudb_dictionary_updates", - "type": "integer" - }, - { - "id": "tokudb_filesystem_fsync_num", - "name": "Tokudb_filesystem_fsync_num", - "type": "integer" - }, - { - "id": "tokudb_filesystem_fsync_time", - "name": "Tokudb_filesystem_fsync_time", - "type": "integer" - }, - { - "id": "tokudb_filesystem_long_fsync_num", - "name": "Tokudb_filesystem_long_fsync_num", - "type": "integer" - }, - { - "id": "tokudb_filesystem_long_fsync_time", - "name": "Tokudb_filesystem_long_fsync_time", - "type": "integer" - }, - { - "id": "tokudb_filesystem_threads_blocked_by_full_disk", - "name": "Tokudb_filesystem_threads_blocked_by_full_disk", - "type": "integer" - }, - { - "id": "tokudb_leaf_compression_to_memory_seconds", - "name": "Tokudb_leaf_compression_to_memory_seconds", - "type": "integer" - }, - { - "id": "tokudb_leaf_decompression_to_memory_seconds", - "name": "Tokudb_leaf_decompression_to_memory_seconds", - "type": "integer" - }, - { - "id": "tokudb_leaf_deserialization_to_memory_seconds", - "name": "Tokudb_leaf_deserialization_to_memory_seconds", - "type": "integer" - }, - { - "id": "tokudb_leaf_node_compression_ratio", - "name": "Tokudb_leaf_node_compression_ratio" - }, - { - "id": "tokudb_leaf_node_full_evictions", - "name": "Tokudb_leaf_node_full_evictions", - "type": "integer" - }, - { - "id": "tokudb_leaf_node_full_evictions_bytes", - "name": "Tokudb_leaf_node_full_evictions_bytes" - }, - { - "id": "tokudb_leaf_node_partial_evictions", - "name": "Tokudb_leaf_node_partial_evictions", - "type": "integer" - }, - { - "id": "tokudb_leaf_node_partial_evictions_bytes", - "name": "Tokudb_leaf_node_partial_evictions_bytes" - }, - { - "id": "tokudb_leaf_nodes_created", - "name": "Tokudb_leaf_nodes_created", - "type": "integer" - }, - { - "id": "tokudb_leaf_nodes_destroyed", - "name": "Tokudb_leaf_nodes_destroyed", - "type": "integer" - }, - { - "id": "tokudb_leaf_nodes_flushed_checkpoint", - "name": "Tokudb_leaf_nodes_flushed_checkpoint", - "type": "integer" - }, - { - "id": "tokudb_leaf_nodes_flushed_checkpoint_bytes", - "name": "Tokudb_leaf_nodes_flushed_checkpoint_bytes", - "type": "byte" - }, - { - "id": "tokudb_leaf_nodes_flushed_checkpoint_seconds", - "name": "Tokudb_leaf_nodes_flushed_checkpoint_seconds", - "type": "integer" - }, - { - "id": "tokudb_leaf_nodes_flushed_checkpoint_uncompressed_bytes", - "name": "Tokudb_leaf_nodes_flushed_checkpoint_uncompressed_bytes" - }, - { - "id": "tokudb_leaf_nodes_flushed_not_checkpoint", - "name": "Tokudb_leaf_nodes_flushed_not_checkpoint", - "type": "integer" - }, - { - "id": "tokudb_leaf_nodes_flushed_not_checkpoint_bytes", - "name": "Tokudb_leaf_nodes_flushed_not_checkpoint_bytes", - "type": "byte" - }, - { - "id": "tokudb_leaf_nodes_flushed_not_checkpoint_seconds", - "name": "Tokudb_leaf_nodes_flushed_not_checkpoint_seconds", - "type": "integer" - }, - { - "id": "tokudb_leaf_nodes_flushed_not_checkpoint_uncompressed_bytes", - "name": "Tokudb_leaf_nodes_flushed_not_checkpoint_uncompressed_bytes" - }, - { - "id": "tokudb_leaf_serialization_to_memory_seconds", - "name": "Tokudb_leaf_serialization_to_memory_seconds", - "type": "integer" - }, - { - "id": "tokudb_loader_num_created", - "name": "Tokudb_loader_num_created", - "type": "integer" - }, - { - "id": "tokudb_loader_num_current", - "name": "Tokudb_loader_num_current", - "type": "integer" - }, - { - "id": "tokudb_loader_num_max", - "name": "Tokudb_loader_num_max", - "type": "integer" - }, - { - "id": "tokudb_locktree_escalation_num", - "name": "Tokudb_locktree_escalation_num", - "type": "integer" - }, - { - "id": "tokudb_locktree_escalation_seconds", - "name": "Tokudb_locktree_escalation_seconds", - "type": "integer" - }, - { - "id": "tokudb_locktree_latest_post_escalation_memory_size", - "name": "Tokudb_locktree_latest_post_escalation_memory_size", - "type": "byte" - }, - { - "id": "tokudb_locktree_long_wait_count", - "name": "Tokudb_locktree_long_wait_count", - "type": "integer" - }, - { - "id": "tokudb_locktree_long_wait_escalation_count", - "name": "Tokudb_locktree_long_wait_escalation_count", - "type": "integer" - }, - { - "id": "tokudb_locktree_long_wait_escalation_time", - "name": "Tokudb_locktree_long_wait_escalation_time", - "type": "integer" - }, - { - "id": "tokudb_locktree_long_wait_time", - "name": "Tokudb_locktree_long_wait_time", - "type": "integer" - }, - { - "id": "tokudb_locktree_memory_size", - "name": "Tokudb_locktree_memory_size", - "type": "byte" - }, - { - "id": "tokudb_locktree_memory_size_limit", - "name": "Tokudb_locktree_memory_size_limit", - "type": "byte" - }, - { - "id": "tokudb_locktree_open_current", - "name": "Tokudb_locktree_open_current", - "type": "integer" - }, - { - "id": "tokudb_locktree_pending_lock_requests", - "name": "Tokudb_locktree_pending_lock_requests", - "type": "integer" - }, - { - "id": "tokudb_locktree_sto_eligible_num", - "name": "Tokudb_locktree_sto_eligible_num", - "type": "integer" - }, - { - "id": "tokudb_locktree_sto_ended_num", - "name": "Tokudb_locktree_sto_ended_num", - "type": "integer" - }, - { - "id": "tokudb_locktree_sto_ended_seconds", - "name": "Tokudb_locktree_sto_ended_seconds", - "type": "integer" - }, - { - "id": "tokudb_locktree_timeout_count", - "name": "Tokudb_locktree_timeout_count", - "type": "integer" - }, - { - "id": "tokudb_locktree_wait_count", - "name": "Tokudb_locktree_wait_count", - "type": "integer" - }, - { - "id": "tokudb_locktree_wait_escalation_count", - "name": "Tokudb_locktree_wait_escalation_count", - "type": "integer" - }, - { - "id": "tokudb_locktree_wait_escalation_time", - "name": "Tokudb_locktree_wait_escalation_time", - "type": "integer" - }, - { - "id": "tokudb_locktree_wait_time", - "name": "Tokudb_locktree_wait_time", - "type": "integer" - }, - { - "id": "tokudb_logger_wait_long", - "name": "Tokudb_logger_wait_long" - }, - { - "id": "tokudb_logger_writes", - "name": "Tokudb_logger_writes", - "type": "integer" - }, - { - "id": "tokudb_logger_writes_bytes", - "name": "Tokudb_logger_writes_bytes" - }, - { - "id": "tokudb_logger_writes_seconds", - "name": "Tokudb_logger_writes_seconds", - "type": "integer" - }, - { - "id": "tokudb_logger_writes_uncompressed_bytes", - "name": "Tokudb_logger_writes_uncompressed_bytes" - }, - { - "id": "tokudb_mem_estimated_maximum_memory_footprint", - "name": "Tokudb_mem_estimated_maximum_memory_footprint" - }, - { - "id": "tokudb_messages_flushed_from_h1_to_leaves_bytes", - "name": "Tokudb_messages_flushed_from_h1_to_leaves_bytes" - }, - { - "id": "tokudb_messages_ignored_by_leaf_due_to_msn", - "name": "Tokudb_messages_ignored_by_leaf_due_to_msn", - "type": "integer" - }, - { - "id": "tokudb_messages_in_trees_estimate_bytes", - "name": "Tokudb_messages_in_trees_estimate_bytes" - }, - { - "id": "tokudb_messages_injected_at_root", - "name": "Tokudb_messages_injected_at_root", - "type": "integer" - }, - { - "id": "tokudb_messages_injected_at_root_bytes", - "name": "Tokudb_messages_injected_at_root_bytes" - }, - { - "id": "tokudb_nonleaf_compression_to_memory_seconds", - "name": "Tokudb_nonleaf_compression_to_memory_seconds", - "type": "integer" - }, - { - "id": "tokudb_nonleaf_decompression_to_memory_seconds", - "name": "Tokudb_nonleaf_decompression_to_memory_seconds", - "type": "integer" - }, - { - "id": "tokudb_nonleaf_deserialization_to_memory_seconds", - "name": "Tokudb_nonleaf_deserialization_to_memory_seconds", - "type": "integer" - }, - { - "id": "tokudb_nonleaf_node_compression_ratio", - "name": "Tokudb_nonleaf_node_compression_ratio" - }, - { - "id": "tokudb_nonleaf_node_full_evictions", - "name": "Tokudb_nonleaf_node_full_evictions", - "type": "integer" - }, - { - "id": "tokudb_nonleaf_node_full_evictions_bytes", - "name": "Tokudb_nonleaf_node_full_evictions_bytes" - }, - { - "id": "tokudb_nonleaf_node_partial_evictions", - "name": "Tokudb_nonleaf_node_partial_evictions", - "type": "integer" - }, - { - "id": "tokudb_nonleaf_node_partial_evictions_bytes", - "name": "Tokudb_nonleaf_node_partial_evictions_bytes" - }, - { - "id": "tokudb_nonleaf_nodes_created", - "name": "Tokudb_nonleaf_nodes_created", - "type": "integer" - }, - { - "id": "tokudb_nonleaf_nodes_destroyed", - "name": "Tokudb_nonleaf_nodes_destroyed", - "type": "integer" - }, - { - "id": "tokudb_nonleaf_nodes_flushed_to_disk_checkpoint", - "name": "Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint", - "type": "integer" - }, - { - "id": "tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_bytes", - "name": "Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_bytes", - "type": "byte" - }, - { - "id": "tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_seconds", - "name": "Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_seconds", - "type": "integer" - }, - { - "id": "tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_uncompressed_bytes", - "name": "Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_uncompressed_bytes" - }, - { - "id": "tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint", - "name": "Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint", - "type": "integer" - }, - { - "id": "tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_bytes", - "name": "Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_bytes", - "type": "byte" - }, - { - "id": "tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_seconds", - "name": "Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_seconds", - "type": "integer" - }, - { - "id": "tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_uncompressed_bytes", - "name": "Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_uncompressed_bytes" - }, - { - "id": "tokudb_nonleaf_serialization_to_memory_seconds", - "name": "Tokudb_nonleaf_serialization_to_memory_seconds", - "type": "integer" - }, - { - "id": "tokudb_overall_node_compression_ratio", - "name": "Tokudb_overall_node_compression_ratio" - }, - { - "id": "tokudb_pivots_fetched_for_query", - "name": "Tokudb_pivots_fetched_for_query", - "type": "integer" - }, - { - "id": "tokudb_pivots_fetched_for_query_bytes", - "name": "Tokudb_pivots_fetched_for_query_bytes", - "type": "byte" - }, - { - "id": "tokudb_pivots_fetched_for_query_seconds", - "name": "Tokudb_pivots_fetched_for_query_seconds", - "type": "integer" - }, - { - "id": "tokudb_pivots_fetched_for_prefetch", - "name": "Tokudb_pivots_fetched_for_prefetch", - "type": "integer" - }, - { - "id": "tokudb_pivots_fetched_for_prefetch_bytes", - "name": "Tokudb_pivots_fetched_for_prefetch_bytes", - "type": "byte" - }, - { - "id": "tokudb_pivots_fetched_for_prefetch_seconds", - "name": "Tokudb_pivots_fetched_for_prefetch_seconds", - "type": "integer" - }, - { - "id": "tokudb_pivots_fetched_for_write", - "name": "Tokudb_pivots_fetched_for_write", - "type": "integer" - }, - { - "id": "tokudb_pivots_fetched_for_write_bytes", - "name": "Tokudb_pivots_fetched_for_write_bytes", - "type": "byte" - }, - { - "id": "tokudb_pivots_fetched_for_write_seconds", - "name": "Tokudb_pivots_fetched_for_write_seconds", - "type": "integer" - }, - { - "id": "tokudb_promotion_h1_roots_injected_into", - "name": "Tokudb_promotion_h1_roots_injected_into", - "type": "integer" - }, - { - "id": "tokudb_promotion_injections_at_depth_0", - "name": "Tokudb_promotion_injections_at_depth_0", - "type": "integer" - }, - { - "id": "tokudb_promotion_injections_at_depth_1", - "name": "Tokudb_promotion_injections_at_depth_1", - "type": "integer" - }, - { - "id": "tokudb_promotion_injections_at_depth_2", - "name": "Tokudb_promotion_injections_at_depth_2", - "type": "integer" - }, - { - "id": "tokudb_promotion_injections_at_depth_3", - "name": "Tokudb_promotion_injections_at_depth_3", - "type": "integer" - }, - { - "id": "tokudb_promotion_injections_lower_than_depth_3", - "name": "Tokudb_promotion_injections_lower_than_depth_3", - "type": "integer" - }, - { - "id": "tokudb_promotion_leaf_roots_injected_into", - "name": "Tokudb_promotion_leaf_roots_injected_into", - "type": "integer" - }, - { - "id": "tokudb_promotion_roots_split", - "name": "Tokudb_promotion_roots_split", - "type": "integer" - }, - { - "id": "tokudb_promotion_stopped_after_locking_child", - "name": "Tokudb_promotion_stopped_after_locking_child", - "type": "integer" - }, - { - "id": "tokudb_promotion_stopped_at_height_1", - "name": "Tokudb_promotion_stopped_at_height_1", - "type": "integer" - }, - { - "id": "tokudb_promotion_stopped_child_locked_or_not_in_memory", - "name": "Tokudb_promotion_stopped_child_locked_or_not_in_memory", - "type": "integer" - }, - { - "id": "tokudb_promotion_stopped_child_not_fully_in_memory", - "name": "Tokudb_promotion_stopped_child_not_fully_in_memory", - "type": "integer" - }, - { - "id": "tokudb_promotion_stopped_nonempty_buffer", - "name": "Tokudb_promotion_stopped_nonempty_buffer", - "type": "integer" - }, - { - "id": "tokudb_txn_aborts", - "name": "Tokudb_txn_aborts", - "type": "integer" - }, - { - "id": "tokudb_txn_begin", - "name": "Tokudb_txn_begin", - "type": "integer" - }, - { - "id": "tokudb_txn_begin_read_only", - "name": "Tokudb_txn_begin_read_only", - "type": "integer" - }, - { - "id": "tokudb_txn_commits", - "name": "Tokudb_txn_commits", - "type": "integer" - } - ], - "name": "tokudb-status-variables", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-tokudb-system-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-tokudb-system-variables.json deleted file mode 100644 index be4882c..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-tokudb-system-variables.json +++ /dev/null @@ -1,594 +0,0 @@ -{ - "data": [ - { - "default": "OFF", - "dynamic": true, - "id": "tokudb_alter_print_error", - "name": "tokudb_alter_print_error", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "5", - "dynamic": true, - "id": "tokudb_analyze_time", - "name": "tokudb_analyze_time", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "default": "4194304 (4MB)", - "dynamic": true, - "id": "tokudb_block_size", - "name": "tokudb_block_size", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "default": "ON", - "dynamic": true, - "id": "tokudb_bulk_fetch", - "name": "tokudb_bulk_fetch", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "Half of the total system memory", - "dynamic": false, - "id": "tokudb_cache_size", - "name": "tokudb_cache_size", - "type": "integer" - }, - { - "default": "1", - "dynamic": true, - "id": "tokudb_check_jemalloc", - "name": "tokudb_check_jemalloc", - "scope": [ - "global" - ], - "type": "integer", - "validValues": [ - "0", - "1" - ] - }, - { - "default": "OFF", - "dynamic": true, - "id": "tokudb_checkpoint_lock", - "name": "tokudb_checkpoint_lock", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "OFF", - "dynamic": true, - "id": "tokudb_checkpoint_on_flush_logs", - "name": "tokudb_checkpoint_on_flush_logs", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "default": "60", - "dynamic": true, - "id": "tokudb_checkpointing_period", - "name": "tokudb_checkpointing_period", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "default": "5", - "dynamic": true, - "id": "tokudb_cleaner_iterations", - "name": "tokudb_cleaner_iterations", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "default": "1", - "dynamic": true, - "id": "tokudb_cleaner_period", - "name": "tokudb_cleaner_period", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "default": "ON", - "dynamic": true, - "id": "tokudb_commit_sync", - "name": "tokudb_commit_sync", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "ON", - "dynamic": true, - "id": "tokudb_create_index_online", - "name": "tokudb_create_index_online", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "Empty (the MariaDB datadir is used)", - "dynamic": false, - "id": "tokudb_data_dir", - "name": "tokudb_data_dir", - "type": "string" - }, - { - "default": "0", - "dynamic": true, - "id": "tokudb_debug", - "name": "tokudb_debug", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "default": "OFF", - "dynamic": false, - "id": "tokudb_directio", - "name": "tokudb_directio", - "type": "boolean" - }, - { - "default": "OFF", - "dynamic": true, - "id": "tokudb_disable_hot_alter", - "name": "tokudb_disable_hot_alter", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "OFF", - "dynamic": true, - "id": "tokudb_disable_prefetching", - "name": "tokudb_disable_prefetching", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "OFF", - "dynamic": true, - "id": "tokudb_disable_slow_alter", - "name": "tokudb_disable_slow_alter", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "rl", - "dynamic": true, - "id": "tokudb_empty_scan", - "name": "tokudb_empty_scan", - "scope": [ - "global", - "session" - ], - "validValues": [ - "lr", - "rl", - "disabled" - ] - }, - { - "default": "5", - "dynamic": false, - "id": "tokudb_fs_reserve_percent", - "name": "tokudb_fs_reserve_percent", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "default": "0", - "dynamic": true, - "id": "tokudb_fsync_log_period", - "name": "tokudb_fsync_log_period", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "default": "ON", - "dynamic": true, - "id": "tokudb_hide_default_row_format", - "name": "tokudb_hide_default_row_format", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "4000", - "dynamic": true, - "id": "tokudb_killed_time", - "name": "tokudb_killed_time", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "default": "Empty", - "dynamic": true, - "id": "tokudb_last_lock_timeout", - "name": "tokudb_last_lock_timeout", - "scope": [ - "global", - "session" - ] - }, - { - "default": "ON", - "dynamic": true, - "id": "tokudb_load_save_space", - "name": "tokudb_load_save_space", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "100000000 (100M)", - "dynamic": true, - "id": "tokudb_loader_memory_size", - "name": "tokudb_loader_memory_size", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "default": "4000 (4 seconds)", - "dynamic": true, - "id": "tokudb_lock_timeout", - "name": "tokudb_lock_timeout", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "default": "1", - "dynamic": true, - "id": "tokudb_lock_timeout_debug", - "name": "tokudb_lock_timeout_debug", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "default": "Empty (the MariaDB datadir is used)", - "dynamic": false, - "id": "tokudb_log_dir", - "name": "tokudb_log_dir", - "type": "string" - }, - { - "default": "130653952", - "dynamic": false, - "id": "tokudb_max_lock_memory", - "name": "tokudb_max_lock_memory", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "default": "1.000000", - "dynamic": true, - "id": "tokudb_optimize_index_fraction", - "name": "tokudb_optimize_index_fraction", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "default": "None", - "dynamic": true, - "id": "tokudb_optimize_index_name", - "name": "tokudb_optimize_index_name", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "default": "0", - "dynamic": true, - "id": "tokudb_optimize_throttle", - "name": "tokudb_optimize_throttle", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "default": "1", - "dynamic": true, - "id": "tokudb_pk_insert_mode", - "name": "tokudb_pk_insert_mode", - "scope": [ - "global", - "session" - ], - "validValues": [ - "0", - "1", - "2" - ] - }, - { - "default": "ON", - "dynamic": true, - "id": "tokudb_prelock_empty", - "name": "tokudb_prelock_empty", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "65536 (64KB)", - "dynamic": true, - "id": "tokudb_read_block_size", - "name": "tokudb_read_block_size", - "range": { - "from": 4096, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "default": "131072 (128KB)", - "dynamic": true, - "id": "tokudb_read_buf_size", - "name": "tokudb_read_buf_size", - "range": { - "from": 0, - "to": 1048576 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "default": "10000", - "dynamic": true, - "id": "tokudb_read_status_frequency", - "name": "tokudb_read_status_frequency", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "default": "tokudb_zlib", - "dynamic": true, - "id": "tokudb_row_format", - "name": "tokudb_row_format", - "scope": [ - "global", - "session" - ], - "validValues": [ - "tokudb_default", - "tokudb_fast", - "tokudb_small", - "tokudb_zlib", - "tokudb_quicklz", - "tokudb_lzma", - "tokudb_uncompressed" - ] - }, - { - "default": "ON", - "dynamic": true, - "id": "tokudb_rpl_check_readonly", - "name": "tokudb_rpl_check_readonly", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "ON", - "dynamic": true, - "id": "tokudb_rpl_lookup_rows", - "name": "tokudb_rpl_lookup_rows", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "0", - "dynamic": true, - "id": "tokudb_rpl_lookup_rows_delay", - "name": "tokudb_rpl_lookup_rows_delay", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "default": "ON", - "dynamic": true, - "id": "tokudb_rpl_unique_checks", - "name": "tokudb_rpl_unique_checks", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "0", - "dynamic": true, - "id": "tokudb_rpl_unique_checks_delay", - "name": "tokudb_rpl_unique_checks_delay", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "default": "ON", - "dynamic": true, - "id": "tokudb_support_xa", - "name": "tokudb_support_xa", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "Empty (the MariaDB datadir is used)", - "dynamic": false, - "id": "tokudb_tmp_dir", - "name": "tokudb_tmp_dir", - "type": "directory name" - }, - { - "dynamic": false, - "id": "tokudb_version", - "name": "tokudb_version", - "type": "string" - }, - { - "default": "1000", - "dynamic": true, - "id": "tokudb_write_status_frequency", - "name": "tokudb_write_status_frequency", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - } - ], - "name": "tokudb-system-variables", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-versioned-tables-system-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-versioned-tables-system-variables.json deleted file mode 100644 index c492af1..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-versioned-tables-system-variables.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "data": [ - { - "cli": "--system-versioning-alter-history=value", - "default": "ERROR", - "dynamic": true, - "id": "system_versioning_alter_history", - "name": "system_versioning_alter_history", - "scope": [ - "global", - "session" - ], - "validValues": [ - "ERROR", - "KEEP" - ] - }, - { - "default": "DEFAULT", - "dynamic": true, - "id": "system_versioning_asof", - "name": "system_versioning_asof", - "scope": [ - "global", - "session" - ] - }, - { - "cli": "--system-versioning-innodb-algorithm-simple[={0|1}]", - "default": "ON", - "dynamic": true, - "id": "system_versioning_innodb_algorithm_simple", - "name": "system_versioning_innodb_algorithm_simple", - "scope": [ - "global", - "session" - ], - "type": "boolean" - } - ], - "name": "versioned-tables-system-variables", - "url": "https://mariadb.com/kb/en/library/documentation/system-versioned-tables/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-xtradbinnodb-server-status-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-xtradbinnodb-server-status-variables.json deleted file mode 100644 index e38c094..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-xtradbinnodb-server-status-variables.json +++ /dev/null @@ -1,1282 +0,0 @@ -{ - "data": [ - { - "id": "innodb_adaptive_hash_cells", - "name": "Innodb_adaptive_hash_cells", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_adaptive_hash_hash_searches", - "name": "Innodb_adaptive_hash_hash_searches", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_adaptive_hash_heap_buffers", - "name": "Innodb_adaptive_hash_heap_buffers", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_adaptive_hash_non_hash_searches", - "name": "Innodb_adaptive_hash_non_hash_searches", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_available_undo_logs", - "name": "Innodb_available_undo_logs", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_background_log_sync", - "name": "Innodb_background_log_sync", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_buffer_pool_bytes_data", - "name": "Innodb_buffer_pool_bytes_data", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_buffer_pool_bytes_dirty", - "name": "Innodb_buffer_pool_bytes_dirty", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_buffer_pool_dump_status", - "name": "Innodb_buffer_pool_dump_status", - "scope": [ - "global" - ], - "type": "string" - }, - { - "id": "innodb_buffer_pool_load_incomplete", - "name": "Innodb_buffer_pool_load_incomplete", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "id": "innodb_buffer_pool_load_status", - "name": "Innodb_buffer_pool_load_status", - "scope": [ - "global" - ], - "type": "string" - }, - { - "id": "innodb_buffer_pool_pages_data", - "name": "Innodb_buffer_pool_pages_data", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_buffer_pool_pages_dirty", - "name": "Innodb_buffer_pool_pages_dirty", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_buffer_pool_pages_flushed", - "name": "Innodb_buffer_pool_pages_flushed", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_buffer_pool_pages_lru_flushed", - "name": "Innodb_buffer_pool_pages_LRU_flushed", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_buffer_pool_pages_free", - "name": "Innodb_buffer_pool_pages_free", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_buffer_pool_pages_made_not_young", - "name": "Innodb_buffer_pool_pages_made_not_young", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_buffer_pool_pages_made_young", - "name": "Innodb_buffer_pool_pages_made_young", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_buffer_pool_pages_misc", - "name": "Innodb_buffer_pool_pages_misc", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_buffer_pool_pages_old", - "name": "Innodb_buffer_pool_pages_old", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_buffer_pool_pages_total", - "name": "Innodb_buffer_pool_pages_total", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_buffer_pool_read_ahead", - "name": "Innodb_buffer_pool_read_ahead", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_buffer_pool_read_ahead_evicted", - "name": "Innodb_buffer_pool_read_ahead_evicted", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_buffer_pool_read_ahead_rnd", - "name": "Innodb_buffer_pool_read_ahead_rnd", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_buffer_pool_read_requests", - "name": "Innodb_buffer_pool_read_requests", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_buffer_pool_reads", - "name": "Innodb_buffer_pool_reads", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_buffer_pool_resize_status", - "name": "Innodb_buffer_pool_resize_status", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_buffer_pool_wait_free", - "name": "Innodb_buffer_pool_wait_free", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_buffer_pool_write_requests", - "name": "Innodb_buffer_pool_write_requests", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_checkpoint_age", - "name": "Innodb_checkpoint_age", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_checkpoint_max_age", - "name": "Innodb_checkpoint_max_age", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_checkpoint_target_age", - "name": "Innodb_checkpoint_target_age", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_current_row_locks", - "name": "Innodb_current_row_locks", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_data_fsyncs", - "name": "Innodb_data_fsyncs", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_data_pending_fsyncs", - "name": "Innodb_data_pending_fsyncs", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_data_pending_reads", - "name": "Innodb_data_pending_reads", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_data_pending_writes", - "name": "Innodb_data_pending_writes", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_data_read", - "name": "Innodb_data_read", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_data_reads", - "name": "Innodb_data_reads", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_data_writes", - "name": "Innodb_data_writes", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_data_written", - "name": "Innodb_data_written", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_dblwr_pages_written", - "name": "Innodb_dblwr_pages_written", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_dblwr_writes", - "name": "Innodb_dblwr_writes", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_deadlocks", - "name": "Innodb_deadlocks", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_defragment_compression_failures", - "name": "Innodb_defragment_compression_failures", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_defragment_count", - "name": "Innodb_defragment_count", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_defragment_failures", - "name": "Innodb_defragment_failures", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_dict_tables", - "name": "Innodb_dict_tables", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_encryption_n_merge_blocks_decrypted", - "name": "Innodb_encryption_n_merge_blocks_decrypted", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_encryption_n_merge_blocks_encrypted", - "name": "Innodb_encryption_n_merge_blocks_encrypted", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_encryption_n_rowlog_blocks_decrypted", - "name": "Innodb_encryption_n_rowlog_blocks_decrypted", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_encryption_n_rowlog_blocks_encrypted", - "name": "Innodb_encryption_n_rowlog_blocks_encrypted", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_encryption_num_key_requests", - "name": "Innodb_encryption_num_key_requests", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_encryption_rotation_estimated_iops", - "name": "Innodb_encryption_rotation_estimated_iops", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_encryption_rotation_pages_flushed", - "name": "Innodb_encryption_rotation_pages_flushed", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_encryption_rotation_pages_modified", - "name": "Innodb_encryption_rotation_pages_modified", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_encryption_rotation_pages_read_from_cache", - "name": "Innodb_encryption_rotation_pages_read_from_cache", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_encryption_rotation_pages_read_from_disk", - "name": "Innodb_encryption_rotation_pages_read_from_disk", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_have_atomic_builtins", - "name": "Innodb_have_atomic_builtins", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "id": "innodb_have_bzip2", - "name": "Innodb_have_bzip2", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "id": "innodb_have_lz4", - "name": "Innodb_have_lz4", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "id": "innodb_have_lzma", - "name": "Innodb_have_lzma", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "id": "innodb_have_lzo", - "name": "Innodb_have_lzo", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "id": "innodb_have_punch_hole", - "name": "Innodb_have_punch_hole", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_have_snappy", - "name": "Innodb_have_snappy", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "id": "innodb_history_list_length", - "name": "Innodb_history_list_length", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_ibuf_discarded_delete_marks", - "name": "Innodb_ibuf_discarded_delete_marks", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_ibuf_discarded_deletes", - "name": "Innodb_ibuf_discarded_deletes", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_ibuf_discarded_inserts", - "name": "Innodb_ibuf_discarded_inserts", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_ibuf_free_list", - "name": "Innodb_ibuf_free_list", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_ibuf_merged_delete_marks", - "name": "Innodb_ibuf_merged_delete_marks", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_ibuf_merged_deletes", - "name": "Innodb_ibuf_merged_deletes", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_ibuf_merged_inserts", - "name": "Innodb_ibuf_merged_inserts", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_ibuf_merges", - "name": "Innodb_ibuf_merges", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_ibuf_segment_size", - "name": "Innodb_ibuf_segment_size", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_ibuf_size", - "name": "Innodb_ibuf_size", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_instant_alter_column", - "name": "Innodb_instant_alter_column", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_log_waits", - "name": "Innodb_log_waits", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_log_write_requests", - "name": "Innodb_log_write_requests", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_log_writes", - "name": "Innodb_log_writes", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_lsn_current", - "name": "Innodb_lsn_current", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_lsn_flushed", - "name": "Innodb_lsn_flushed", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_lsn_last_checkpoint", - "name": "Innodb_lsn_last_checkpoint", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_master_thread_1_second_loops", - "name": "Innodb_master_thread_1_second_loops", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_master_thread_10_second_loops", - "name": "Innodb_master_thread_10_second_loops", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_master_thread_active_loops", - "name": "Innodb_master_thread_active_loops", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_master_thread_background_loops", - "name": "Innodb_master_thread_background_loops", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_master_thread_idle_loops", - "name": "Innodb_master_thread_idle_loops", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_master_thread_main_flush_loops", - "name": "Innodb_master_thread_main_flush_loops", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_master_thread_sleeps", - "name": "Innodb_master_thread_sleeps", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_max_trx_id", - "name": "Innodb_max_trx_id", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_mem_adaptive_hash", - "name": "Innodb_mem_adaptive_hash", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_mem_dictionary", - "name": "Innodb_mem_dictionary", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_mem_total", - "name": "Innodb_mem_total", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_mutex_os_waits", - "name": "Innodb_mutex_os_waits", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_mutex_spin_rounds", - "name": "Innodb_mutex_spin_rounds", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_mutex_spin_waits", - "name": "Innodb_mutex_spin_waits", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_num_index_pages_written", - "name": "Innodb_num_index_pages_written", - "scope": [], - "type": "integer" - }, - { - "id": "innodb_num_non_index_pages_written", - "name": "Innodb_num_non_index_pages_written", - "scope": [], - "type": "integer" - }, - { - "id": "innodb_num_open_files", - "name": "Innodb_num_open_files", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_num_page_compressed_trim_op", - "name": "Innodb_num_page_compressed_trim_op", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_num_page_compressed_trim_op_saved", - "name": "Innodb_num_page_compressed_trim_op_saved", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_num_pages_decrypted", - "name": "Innodb_num_pages_decrypted", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_num_pages_encrypted", - "name": "Innodb_num_pages_encrypted", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_num_pages_page_compressed", - "name": "Innodb_num_pages_page_compressed", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_num_pages_page_compression_error", - "name": "Innodb_num_pages_page_compression_error", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_num_pages_page_decompressed", - "name": "Innodb_num_pages_page_decompressed", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_num_pages_page_encryption_error", - "name": "Innodb_num_pages_page_encryption_error", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_oldest_view_low_limit_trx_id", - "name": "Innodb_oldest_view_low_limit_trx_id", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_onlineddl_pct_progress", - "name": "Innodb_onlineddl_pct_progress", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_onlineddl_rowlog_pct_used", - "name": "Innodb_onlineddl_rowlog_pct_used", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_onlineddl_rowlog_rows", - "name": "Innodb_onlineddl_rowlog_rows", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_os_log_fsyncs", - "name": "Innodb_os_log_fsyncs", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_os_log_pending_fsyncs", - "name": "Innodb_os_log_pending_fsyncs", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_os_log_pending_writes", - "name": "Innodb_os_log_pending_writes", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_os_log_written", - "name": "Innodb_os_log_written", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_page_compression_saved", - "name": "Innodb_page_compression_saved", - "scope": [], - "type": "byte" - }, - { - "id": "innodb_page_compression_trim_sect512", - "name": "Innodb_page_compression_trim_sect512", - "scope": [], - "type": "integer" - }, - { - "id": "innodb_page_compression_trim_sect1024", - "name": "Innodb_page_compression_trim_sect1024", - "scope": [], - "type": "integer" - }, - { - "id": "innodb_page_compression_trim_sect2048", - "name": "Innodb_page_compression_trim_sect2048", - "scope": [], - "type": "integer" - }, - { - "id": "innodb_page_compression_trim_sect4096", - "name": "Innodb_page_compression_trim_sect4096", - "scope": [], - "type": "integer" - }, - { - "id": "innodb_page_compression_trim_sect8192", - "name": "Innodb_page_compression_trim_sect8192", - "scope": [], - "type": "integer" - }, - { - "id": "innodb_page_compression_trim_sect16384", - "name": "Innodb_page_compression_trim_sect16384", - "scope": [], - "type": "integer" - }, - { - "id": "innodb_page_compression_trim_sect32768", - "name": "Innodb_page_compression_trim_sect32768", - "scope": [], - "type": "integer" - }, - { - "id": "innodb_page_size", - "name": "Innodb_page_size", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_pages_created", - "name": "Innodb_pages_created", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_pages_read", - "name": "Innodb_pages_read", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_pages0_read", - "name": "Innodb_pages0_read", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_pages_written", - "name": "Innodb_pages_written", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_purge_trx_id", - "name": "Innodb_purge_trx_id", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_purge_undo_no", - "name": "Innodb_purge_undo_no", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_read_views_memory", - "name": "Innodb_read_views_memory", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_row_lock_current_waits", - "name": "Innodb_row_lock_current_waits", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_row_lock_numbers", - "name": "Innodb_row_lock_numbers", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_row_lock_time", - "name": "Innodb_row_lock_time", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_row_lock_time_avg", - "name": "Innodb_row_lock_time_avg", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_row_lock_time_max", - "name": "Innodb_row_lock_time_max", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_row_lock_time_waits", - "name": "Innodb_row_lock_time_waits", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_rows_deleted", - "name": "Innodb_rows_deleted", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_rows_inserted", - "name": "Innodb_rows_inserted", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_rows_read", - "name": "Innodb_rows_read", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_rows_updated", - "name": "Innodb_rows_updated", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_s_lock_os_waits", - "name": "Innodb_s_lock_os_waits", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_s_lock_spin_rounds", - "name": "Innodb_s_lock_spin_rounds", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_s_lock_spin_waits", - "name": "Innodb_s_lock_spin_waits", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_scrub_background_page_reorganizations", - "name": "Innodb_scrub_background_page_reorganizations", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_scrub_background_page_split_failures_missing_index", - "name": "Innodb_scrub_background_page_split_failures_missing_index", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_scrub_background_page_split_failures_out_of_filespace", - "name": "Innodb_scrub_background_page_split_failures_out_of_filespace", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_scrub_background_page_split_failures_underflow", - "name": "Innodb_scrub_background_page_split_failures_underflow", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_scrub_background_page_split_failures_unknown", - "name": "Innodb_scrub_background_page_split_failures_unknown", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_scrub_background_page_splits", - "name": "Innodb_scrub_background_page_splits", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_scrub_log", - "name": "Innodb_scrub_log", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_secondary_index_triggered_cluster_reads", - "name": "Innodb_secondary_index_triggered_cluster_reads", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_secondary_index_triggered_cluster_reads_avoided", - "name": "Innodb_secondary_index_triggered_cluster_reads_avoided", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_system_rows_deleted", - "name": "Innodb_system_rows_deleted", - "scope": [], - "type": "integer" - }, - { - "id": "innodb_system_rows_inserted", - "name": "Innodb_system_rows_inserted", - "scope": [], - "type": "integer" - }, - { - "id": "innodb_system_rows_read", - "name": "Innodb_system_rows_read", - "scope": [], - "type": "integer" - }, - { - "id": "innodb_system_rows_updated", - "name": "Innodb_system_rows_updated", - "scope": [], - "type": "integer" - }, - { - "id": "innodb_truncated_status_writes", - "name": "Innodb_truncated_status_writes", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_undo_truncations", - "name": "Innodb_undo_truncations", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_x_lock_os_waits", - "name": "Innodb_x_lock_os_waits", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_x_lock_spin_rounds", - "name": "Innodb_x_lock_spin_rounds", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_x_lock_spin_waits", - "name": "Innodb_x_lock_spin_waits", - "scope": [ - "global" - ], - "type": "integer" - } - ], - "name": "xtradbinnodb-server-status-variables", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-xtradbinnodb-server-system-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-xtradbinnodb-server-system-variables.json deleted file mode 100644 index d1235a4..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mariadb-xtradbinnodb-server-system-variables.json +++ /dev/null @@ -1,3088 +0,0 @@ -{ - "data": [ - { - "dynamic": false, - "id": "have_innodb", - "name": "have_innodb", - "scope": [ - "global" - ] - }, - { - "cli": "--ignore-builtin-innodb", - "default": "OFF", - "dynamic": false, - "id": "ignore_builtin_innodb", - "name": "ignore_builtin_innodb", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-adaptive-checkpoint=#", - "default": "estimate", - "dynamic": true, - "id": "innodb_adaptive_checkpoint", - "name": "innodb_adaptive_checkpoint", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "none", - "0", - "reflex", - "1", - "estimate", - "2", - "keep_average", - "3" - ] - }, - { - "cli": "--innodb-adaptive-flushing=#", - "default": "ON", - "dynamic": true, - "id": "innodb_adaptive_flushing", - "name": "innodb_adaptive_flushing", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-adaptive-flushing-lwm=#", - "default": "10.000000", - "dynamic": true, - "id": "innodb_adaptive_flushing_lwm", - "name": "innodb_adaptive_flushing_lwm", - "range": { - "from": 0, - "to": 70 - }, - "scope": [ - "global" - ] - }, - { - "cli": "innodb-adaptive-flushing-method=value", - "default": "estimate", - "dynamic": true, - "id": "innodb_adaptive_flushing_method", - "name": "innodb_adaptive_flushing_method", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "native", - "0", - "estimate", - "1", - "keep_average", - "2" - ] - }, - { - "cli": "--innodb-adaptive-hash-index=#", - "default": "OFF (>= MariaDB 10.5), ON (<= MariaDB 10.4)", - "dynamic": true, - "id": "innodb_adaptive_hash_index", - "name": "innodb_adaptive_hash_index", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "innodb-adaptive-hash-index-partitions=#", - "default": "1", - "dynamic": false, - "id": "innodb_adaptive_hash_index_partitions", - "name": "innodb_adaptive_hash_index_partitions", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "innodb-adaptive-hash-index-parts=#", - "default": "8", - "dynamic": false, - "id": "innodb_adaptive_hash_index_parts", - "name": "innodb_adaptive_hash_index_parts", - "range": { - "from": 1, - "to": 512 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-adaptive-max-sleep-delay=#", - "default": "150000", - "dynamic": true, - "id": "innodb_adaptive_max_sleep_delay", - "name": "innodb_adaptive_max_sleep_delay", - "range": { - "from": 0, - "to": 1000000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-additional-mem-pool-size=#", - "default": "8388608", - "dynamic": false, - "id": "innodb_additional_mem_pool_size", - "name": "innodb_additional_mem_pool_size", - "range": { - "from": 2097152, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-api-bk-commit-interval=#", - "default": "5", - "dynamic": true, - "id": "innodb_api_bk_commit_interval", - "name": "innodb_api_bk_commit_interval", - "range": { - "from": 1, - "to": 1073741824 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-api-disable-rowlock=#", - "default": "OFF", - "dynamic": false, - "id": "innodb_api_disable_rowlock", - "name": "innodb_api_disable_rowlock", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-api-enable-binlog=#", - "default": "OFF", - "dynamic": false, - "id": "innodb_api_enable_binlog", - "name": "innodb_api_enable_binlog", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-api-enable-mdl=#", - "default": "OFF", - "dynamic": false, - "id": "innodb_api_enable_mdl", - "name": "innodb_api_enable_mdl", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-api-trx-level=#", - "default": "0", - "dynamic": true, - "id": "innodb_api_trx_level", - "name": "innodb_api_trx_level", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-auto-lru-dump=#", - "id": "innodb_auto_lru_dump", - "name": "innodb_auto_lru_dump" - }, - { - "cli": "--innodb-autoextend-increment=#", - "default": "64 (from MariaDB 10.0) 8 (before MariaDB 10.0),", - "dynamic": true, - "id": "innodb_autoextend_increment", - "name": "innodb_autoextend_increment", - "range": { - "from": 1, - "to": 1000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-autoinc-lock-mode=#", - "default": "1", - "dynamic": false, - "id": "innodb_autoinc_lock_mode", - "name": "innodb_autoinc_lock_mode", - "range": { - "from": 0, - "to": 2 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-background-scrub-data-check-interval=#", - "default": "3600", - "dynamic": true, - "id": "innodb_background_scrub_data_check_interval", - "name": "innodb_background_scrub_data_check_interval", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-background-scrub-data-compressed={0|1}", - "default": "0", - "dynamic": true, - "id": "innodb_background_scrub_data_compressed", - "name": "innodb_background_scrub_data_compressed", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-background-scrub-data-interval=#", - "default": "604800", - "dynamic": true, - "id": "innodb_background_scrub_data_interval", - "name": "innodb_background_scrub_data_interval", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-background-scrub-data-uncompressed={0|1}", - "default": "0", - "dynamic": true, - "id": "innodb_background_scrub_data_uncompressed", - "name": "innodb_background_scrub_data_uncompressed", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "innodb-blocking-buffer-pool-restore={1|2}", - "default": "OFF", - "dynamic": false, - "id": "innodb_blocking_buffer_pool_restore", - "name": "innodb_blocking_buffer_pool_restore", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-buf-dump-status-frequency=#", - "default": "0", - "dynamic": true, - "id": "innodb_buf_dump_status_frequency", - "name": "innodb_buf_dump_status_frequency", - "range": { - "from": 0, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-buffer-pool-chunk-size=#", - "default": "134217728", - "dynamic": false, - "id": "innodb_buffer_pool_chunk_size", - "name": "innodb_buffer_pool_chunk_size", - "range": { - "from": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-buffer-pool-dump-at-shutdown=#", - "default": "ON (>= MariaDB 10.2.2), OFF (<= MariaDB 10.2.1)", - "dynamic": true, - "id": "innodb_buffer_pool_dump_at_shutdown", - "name": "innodb_buffer_pool_dump_at_shutdown", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-buffer-pool-dump-now=#", - "default": "OFF", - "dynamic": true, - "id": "innodb_buffer_pool_dump_now", - "name": "innodb_buffer_pool_dump_now", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-buffer-pool-dump-pct=#", - "default": "25 (>= MariaDB 10.2.2), 100 (<= MariaDB 10.2.1)", - "dynamic": true, - "id": "innodb_buffer_pool_dump_pct", - "name": "innodb_buffer_pool_dump_pct", - "range": { - "from": 1, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-buffer-pool-evict=#", - "default": "\"\"", - "dynamic": true, - "id": "innodb_buffer_pool_evict", - "name": "innodb_buffer_pool_evict", - "scope": [ - "global" - ], - "type": "string", - "validValues": [] - }, - { - "cli": "--innodb-buffer-pool-filename=file", - "default": "ib_buffer_pool", - "dynamic": true, - "id": "innodb_buffer_pool_filename", - "name": "innodb_buffer_pool_filename", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--innodb-buffer-pool-instances=#", - "default": ">= MariaDB 10.0.4: 8, 1 (>= MariaDB 10.2.2 if innodb_buffer_pool_size < 1GB), or dependent on innodb_buffer_pool_size (Windows 32-bit)", - "dynamic": false, - "id": "innodb_buffer_pool_instances", - "name": "innodb_buffer_pool_instances", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-buffer-pool-load-abort=#", - "default": "OFF", - "dynamic": true, - "id": "innodb_buffer_pool_load_abort", - "name": "innodb_buffer_pool_load_abort", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-buffer-pool-load-at-startup=#", - "default": "ON (>= MariaDB 10.2.2), OFF (<= MariaDB 10.2.1)", - "dynamic": false, - "id": "innodb_buffer_pool_load_at_startup", - "name": "innodb_buffer_pool_load_at_startup", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-buffer-pool-load-now=#", - "default": "OFF", - "dynamic": true, - "id": "innodb_buffer_pool_load_now", - "name": "innodb_buffer_pool_load_now", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "innodb-buffer-pool-populate={0|1}", - "default": "OFF", - "dynamic": false, - "id": "innodb_buffer_pool_populate", - "name": "innodb_buffer_pool_populate", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "innodb-buffer-pool-restore-at-startup", - "default": "0", - "dynamic": true, - "id": "innodb_buffer_pool_restore_at_startup", - "name": "innodb_buffer_pool_restore_at_startup", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "innodb-buffer-pool-shm-checksum={0|1}", - "default": "ON", - "dynamic": false, - "id": "innodb_buffer_pool_shm_checksum", - "name": "innodb_buffer_pool_shm_checksum", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "innodb-buffer-pool-shm-key={0|1}", - "default": "0", - "dynamic": false, - "id": "innodb_buffer_pool_shm_key", - "name": "innodb_buffer_pool_shm_key", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-buffer-pool-size=#", - "default": "134217728 (128MB)", - "dynamic": false, - "id": "innodb_buffer_pool_size", - "name": "innodb_buffer_pool_size", - "range": { - "from": 5242880, - "to": 9223372036854776000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "default": "OFF", - "dynamic": false, - "id": "innodb_change_buffer_dump", - "name": "innodb_change_buffer_dump", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-change-buffer-max-size=#", - "default": "25", - "dynamic": true, - "id": "innodb_change_buffer_max_size", - "name": "innodb_change_buffer_max_size", - "range": { - "from": 0, - "to": 50 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-change-buffering=#", - "dynamic": true, - "id": "innodb_change_buffering", - "name": "innodb_change_buffering", - "scope": [ - "global" - ], - "type": "enumeration" - }, - { - "cli": "--innodb-change-buffering-debug=#", - "default": "0", - "dynamic": true, - "id": "innodb_change_buffering_debug", - "name": "innodb_change_buffering_debug", - "range": { - "from": 0, - "to": 2 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "innodb-checkpoint-age-target=#", - "default": "0", - "dynamic": true, - "id": "innodb_checkpoint_age_target", - "name": "innodb_checkpoint_age_target", - "range": { - "from": 0, - "to": "upwards" - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-checksum-algorithm=#", - "default": "full_crc32 (>= MariaDB 10.5.0), crc32 (>= MariaDB 10.2.2), innodb (<= MariaDB 10.2.1)", - "dynamic": true, - "id": "innodb_checksum_algorithm", - "name": "innodb_checksum_algorithm", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "innodb", - "crc32", - "full_crc32", - "none", - "strict_innodb", - "strict_crc32", - "strict_none", - "strict_full_crc32" - ] - }, - { - "cli": "--innodb-checksums, --skip-innodb-checksums", - "default": "ON", - "dynamic": false, - "id": "innodb_checksums", - "name": "innodb_checksums", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-cleaner-lsn-age-factor=value", - "default": "deprecated (>= MariaDB 10.2.6), high_checkpoint (<= MariaDB 10.1)", - "dynamic": true, - "id": "innodb_cleaner_lsn_age_factor", - "name": "innodb_cleaner_lsn_age_factor", - "scope": [ - "global" - ], - "validValues": [ - "high_checkpoint", - "legacy", - "deprecated", - "high_checkpoint", - "legacy" - ] - }, - { - "cli": "--innodb-cmp-per-index-enabled=#", - "default": "OFF", - "dynamic": true, - "id": "innodb_cmp_per_index_enabled", - "name": "innodb_cmp_per_index_enabled", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-commit-concurrency=#", - "default": "0", - "dynamic": true, - "id": "innodb_commit_concurrency", - "name": "innodb_commit_concurrency", - "range": { - "from": 0, - "to": 1000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-compression-algorithm=value", - "default": "zlib (>= MariaDB 10.2.4, MariaDB 10.1.22), none (<= MariaDB 10.2.3, MariaDB 10.1.21)", - "dynamic": true, - "id": "innodb_compression_algorithm", - "name": "innodb_compression_algorithm", - "scope": [ - "global" - ], - "validValues": [ - "none", - "zlib", - "lz4", - "lzo", - "lzma", - "bzip2", - "snappy" - ] - }, - { - "cli": "--innodb-compression-default={0|1}", - "default": "OFF", - "dynamic": true, - "id": "innodb_compression_default", - "name": "innodb_compression_default", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--innodb-compression-failure-threshold-pct=#", - "default": "5", - "dynamic": true, - "id": "innodb_compression_failure_threshold_pct", - "name": "innodb_compression_failure_threshold_pct", - "range": { - "from": 0, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-compression-level=#", - "default": "6", - "dynamic": true, - "id": "innodb_compression_level", - "name": "innodb_compression_level", - "range": { - "from": 1, - "to": 9 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-compression-pad-pct-max=#", - "default": "50", - "dynamic": true, - "id": "innodb_compression_pad_pct_max", - "name": "innodb_compression_pad_pct_max", - "range": { - "from": 0, - "to": 75 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-concurrency-tickets=#", - "default": "5000 (from MariaDB 10.0), 500 (before mariaDB 10,0)", - "dynamic": true, - "id": "innodb_concurrency_tickets", - "name": "innodb_concurrency_tickets", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "innodb-corrupt-table-action=value", - "default": "assert (<= MariaDB 10.1), deprecated (<= MariaDB 10.2.6)", - "dynamic": true, - "id": "innodb_corrupt_table_action", - "name": "innodb_corrupt_table_action", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "deprecated", - "assert", - "warn", - "salvage", - "assert", - "warn", - "salvage" - ] - }, - { - "cli": "--innodb-data-file-path=name", - "default": "ibdata1:12M:autoextend (from MariaDB 10.0), ibdata1:10M:autoextend (before MariaDB 10.0)", - "dynamic": false, - "id": "innodb_data_file_path", - "name": "innodb_data_file_path", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-data-home-dir=path", - "default": "(the MariaDB data directory)", - "dynamic": false, - "id": "innodb_data_home_dir", - "name": "innodb_data_home_dir", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "cli": "--innodb-deadlock-detect", - "default": "1", - "dynamic": true, - "id": "innodb_deadlock_detect", - "name": "innodb_deadlock_detect", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-default-page-encryption-key=#", - "default": "1", - "dynamic": true, - "id": "innodb_default_page_encryption_key", - "name": "innodb_default_page_encryption_key", - "range": { - "from": 1, - "to": 255 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-default-encryption-key-id=#", - "default": "1", - "dynamic": true, - "id": "innodb_default_encryption_key_id", - "name": "innodb_default_encryption_key_id", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--innodb-default-row-format=value", - "default": "dynamic (>= MariaDB 10.2.2), compact (>= MariaDB 10.1.32)", - "dynamic": true, - "id": "innodb_default_row_format", - "name": "innodb_default_row_format", - "scope": [ - "global" - ], - "validValues": [ - "redundant", - "compact", - "dynamic" - ] - }, - { - "cli": "--innodb-defragment=#", - "default": "OFF", - "dynamic": true, - "id": "innodb_defragment", - "name": "innodb_defragment", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-defragment-fill-factor=#", - "default": "0.9", - "dynamic": true, - "id": "innodb_defragment_fill_factor", - "name": "innodb_defragment_fill_factor", - "range": { - "from": 0.7, - "to": 1 - }, - "scope": [ - "global" - ] - }, - { - "cli": "--innodb-defragment-fill-factor-n-recs=#", - "default": "20", - "dynamic": true, - "id": "innodb_defragment_fill_factor_n_recs", - "name": "innodb_defragment_fill_factor_n_recs", - "range": { - "from": 1, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-defragment-frequency=#", - "default": "40", - "dynamic": true, - "id": "innodb_defragment_frequency", - "name": "innodb_defragment_frequency", - "range": { - "from": 1, - "to": 1000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-defragment-n-pages=#", - "default": "7", - "dynamic": true, - "id": "innodb_defragment_n_pages", - "name": "innodb_defragment_n_pages", - "range": { - "from": 2, - "to": 32 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-defragment-stats-accuracy=#", - "default": "0", - "dynamic": true, - "id": "innodb_defragment_stats_accuracy", - "name": "innodb_defragment_stats_accuracy", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "innodb-dict-size-limit=#", - "default": "0", - "dynamic": true, - "id": "innodb_dict_size_limit", - "name": "innodb_dict_size_limit", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-disable-sort-file-cache=#", - "default": "OFF", - "dynamic": true, - "id": "innodb_disable_sort_file_cache", - "name": "innodb_disable_sort_file_cache", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "default": "OFF", - "dynamic": true, - "id": "innodb_disallow_writes", - "name": "innodb_disallow_writes", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-doublewrite, --skip-innodb-doublewrite", - "default": "ON", - "dynamic": false, - "id": "innodb_doublewrite", - "name": "innodb_doublewrite", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "innodb-doublewrite-file=filename", - "default": "NULL", - "dynamic": false, - "id": "innodb_doublewrite_file", - "name": "innodb_doublewrite_file", - "scope": [ - "global" - ] - }, - { - "cli": "innodb-empty-free-list-algorithm=value", - "default": "deprecated (>= MariaDB 10.2.6), legacy (>= MariaDB 10.1.24), backoff (<= MariaDB 10.1.23)", - "dynamic": true, - "id": "innodb_empty_free_list_algorithm", - "name": "innodb_empty_free_list_algorithm", - "scope": [ - "global" - ], - "validValues": [ - "deprecated", - "backoff", - "legacy", - "backoff", - "legacy" - ] - }, - { - "cli": "--innodb-enable-unsafe-group-commit", - "default": "0", - "dynamic": true, - "id": "innodb_enable_unsafe_group_commit", - "name": "innodb_enable_unsafe_group_commit", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-encrypt-log", - "default": "OFF", - "dynamic": false, - "id": "innodb_encrypt_log", - "name": "innodb_encrypt_log", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-encrypt-tables=value", - "default": "OFF", - "dynamic": true, - "id": "innodb_encrypt_tables", - "name": "innodb_encrypt_tables", - "scope": [ - "global" - ], - "type": "boolean", - "validValues": [ - "ON", - "OFF", - "FORCE" - ] - }, - { - "cli": "--innodb-encrypt-temporary-tables=value", - "default": "OFF", - "dynamic": false, - "id": "innodb_encrypt_temporary_tables", - "name": "innodb_encrypt_temporary_tables", - "scope": [ - "global" - ], - "type": "boolean", - "validValues": [ - "ON", - "OFF" - ] - }, - { - "cli": "--innodb-encryption-rotate-key-age=#", - "default": "1", - "dynamic": true, - "id": "innodb_encryption_rotate_key_age", - "name": "innodb_encryption_rotate_key_age", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-encryption-rotation_iops=#", - "default": "100", - "dynamic": true, - "id": "innodb_encryption_rotation_iops", - "name": "innodb_encryption_rotation_iops", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-encryption-threads=#", - "default": "0", - "dynamic": true, - "id": "innodb_encryption_threads", - "name": "innodb_encryption_threads", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-extra-rsegments=#", - "default": "0", - "dynamic": false, - "id": "innodb_extra_rsegments", - "name": "innodb_extra_rsegments", - "range": { - "from": 0, - "to": 126 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-extra-undoslots=#", - "default": "OFF", - "dynamic": false, - "id": "innodb_extra_undoslots", - "name": "innodb_extra_undoslots", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-fake-changes={0|1}", - "default": "OFF", - "dynamic": true, - "id": "innodb_fake_changes", - "name": "innodb_fake_changes", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--innodb-fast-checksum={0|1}", - "default": "OFF", - "dynamic": false, - "id": "innodb_fast_checksum", - "name": "innodb_fast_checksum", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-fast-shutdown[=#]", - "default": "1", - "dynamic": true, - "id": "innodb_fast_shutdown", - "name": "innodb_fast_shutdown", - "range": { - "from": 0, - "to": 3 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-fatal-semaphore-wait-threshold=#", - "default": "600", - "dynamic": false, - "id": "innodb_fatal_semaphore_wait_threshold", - "name": "innodb_fatal_semaphore_wait_threshold", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-file-format=value", - "default": "Barracuda (>= MariaDB 10.2.2), Antelope (<= MariaDB 10.2.1)", - "dynamic": true, - "id": "innodb_file_format", - "name": "innodb_file_format", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "Antelope", - "Barracuda" - ] - }, - { - "cli": "--innodb-file-format-check=#", - "default": "ON (>= MariaDB 5.5)", - "dynamic": false, - "id": "innodb_file_format_check", - "name": "innodb_file_format_check", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-file-format-max=value", - "default": "Antelope", - "dynamic": true, - "id": "innodb_file_format_max", - "name": "innodb_file_format_max", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "Antelope", - "Barracuda" - ] - }, - { - "cli": "--innodb-file-per-table", - "default": "ON (>= MariaDB 5.5), OFF (<= MariaDB 5.3)", - "dynamic": true, - "id": "innodb_file_per_table", - "name": "innodb_file_per_table", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-fill-factor=#", - "dynamic": true, - "id": "innodb_fill_factor", - "name": "innodb_fill_factor", - "range": { - "from": 10, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "default": "1", - "dynamic": true, - "id": "innodb_flush_log_at_timeout", - "name": "innodb_flush_log_at_timeout", - "range": { - "from": 0, - "to": 2700 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-flush-log-at-trx-commit[=#]", - "default": "1", - "dynamic": true, - "id": "innodb_flush_log_at_trx_commit", - "name": "innodb_flush_log_at_trx_commit", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "0", - "1", - "2", - "3" - ] - }, - { - "cli": "--innodb-flush-method=name", - "default": "fsync (>= MariaDB 10.3.7), Not set (<= MariaDB 10.3.6)", - "dynamic": false, - "id": "innodb_flush_method", - "name": "innodb_flush_method", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "fsync", - "O_DSYNC", - "O_DIRECT", - "O_DIRECT_NO_FSYNC", - "ALL_O_DIRECT", - "unbuffered", - "async_unbuffered", - "normal" - ] - }, - { - "cli": "innodb-flush-neighbor-pages=value", - "default": "area", - "dynamic": true, - "id": "innodb_flush_neighbor_pages", - "name": "innodb_flush_neighbor_pages", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "none", - "0", - "area", - "1", - "cont", - "2" - ] - }, - { - "cli": "--innodb-flush-neighbors=#", - "default": "1", - "dynamic": true, - "id": "innodb_flush_neighbors", - "name": "innodb_flush_neighbors", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "0", - "1", - "2" - ] - }, - { - "cli": "--innodb-flush-sync={0|1}", - "dynamic": true, - "id": "innodb_flush_sync", - "name": "innodb_flush_sync", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-flushing-avg-loops=#", - "default": "30", - "dynamic": true, - "id": "innodb_flushing_avg_loops", - "name": "innodb_flushing_avg_loops", - "range": { - "from": 1, - "to": 1000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-force-load-corrupted", - "default": "OFF", - "dynamic": false, - "id": "innodb_force_load_corrupted", - "name": "innodb_force_load_corrupted", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-force-primary-key", - "default": "OFF", - "dynamic": true, - "id": "innodb_force_primary_key", - "name": "innodb_force_primary_key", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-force-recovery=#", - "default": "0", - "dynamic": false, - "id": "innodb_force_recovery", - "name": "innodb_force_recovery", - "range": { - "from": 0, - "to": 6 - }, - "scope": [ - "global" - ], - "type": "enumeration" - }, - { - "cli": "innodb-foreground-preflush=value", - "default": "deprecated (>= MariaDB 10.2.6), exponential_backoff (<= MariaDB 10.1)", - "dynamic": true, - "id": "innodb_foreground_preflush", - "name": "innodb_foreground_preflush", - "scope": [ - "global" - ], - "validValues": [ - "deprecated", - "exponential_backoff", - "sync_preflush", - "exponential_backoff", - "sync_preflush" - ] - }, - { - "cli": "--innodb-ft-aux-table=value", - "dynamic": true, - "id": "innodb_ft_aux_table", - "name": "innodb_ft_aux_table", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--innodb-ft-cache-size=#", - "default": "8000000", - "dynamic": false, - "id": "innodb_ft_cache_size", - "name": "innodb_ft_cache_size", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-ft-enable-diag-print=#", - "default": "OFF", - "dynamic": true, - "id": "innodb_ft_enable_diag_print", - "name": "innodb_ft_enable_diag_print", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-ft-enable-stopword=#", - "default": "ON", - "dynamic": true, - "id": "innodb_ft_enable_stopword", - "name": "innodb_ft_enable_stopword", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-ft-max-token-size=#", - "default": "84", - "dynamic": false, - "id": "innodb_ft_max_token_size", - "name": "innodb_ft_max_token_size", - "range": { - "from": 10, - "to": 252 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-ft-min-token-size=#", - "default": "3", - "dynamic": false, - "id": "innodb_ft_min_token_size", - "name": "innodb_ft_min_token_size", - "range": { - "from": 0, - "to": 16 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-ft-num-word-optimize=#", - "default": "2000", - "dynamic": true, - "id": "innodb_ft_num_word_optimize", - "name": "innodb_ft_num_word_optimize", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-ft-result-cache-limit=#", - "default": "2000000000", - "dynamic": true, - "id": "innodb_ft_result_cache_limit", - "name": "innodb_ft_result_cache_limit", - "range": { - "from": 1000000, - "to": 18446744073709552000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-ft-server-stopword-table=db_name/table_name", - "default": "Empty", - "dynamic": true, - "id": "innodb_ft_server_stopword_table", - "name": "innodb_ft_server_stopword_table", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--innodb-ft-sort-pll-degree=#", - "default": "2", - "dynamic": false, - "id": "innodb_ft_sort_pll_degree", - "name": "innodb_ft_sort_pll_degree", - "range": { - "from": 1, - "to": 32 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-ft-total-cache-size=#", - "default": "640000000", - "dynamic": false, - "id": "innodb_ft_total_cache_size", - "name": "innodb_ft_total_cache_size", - "range": { - "from": 32000000, - "to": 1600000000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-ft-user-stopword-table=db_name/table_name", - "default": "Empty", - "dynamic": true, - "id": "innodb_ft_user_stopword_table", - "name": "innodb_ft_user_stopword_table", - "scope": [ - "session" - ], - "type": "string" - }, - { - "cli": "innodb-ibuf-accel-rate=#", - "default": "100", - "dynamic": true, - "id": "innodb_ibuf_accel_rate", - "name": "innodb_ibuf_accel_rate", - "range": { - "from": 100, - "to": 999999999 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "innodb-ibuf-active-contract=#", - "default": "1", - "dynamic": true, - "id": "innodb_ibuf_active_contract", - "name": "innodb_ibuf_active_contract", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "innodb-ibuf-max-size=#", - "default": "1/2 the size of the InnoDB buffer pool", - "dynamic": false, - "id": "innodb_ibuf_max_size", - "name": "innodb_ibuf_max_size", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-idle-flush-pct=#", - "default": "100", - "dynamic": true, - "id": "innodb_idle_flush_pct", - "name": "innodb_idle_flush_pct", - "range": { - "from": 0, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-immediate-scrub-data-uncompressed=#", - "default": "OFF", - "dynamic": true, - "id": "innodb_immediate_scrub_data_uncompressed", - "name": "innodb_immediate_scrub_data_uncompressed", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "innodb-import-table-from-xtrabackup=#", - "default": "0", - "dynamic": true, - "id": "innodb_import_table_from_xtrabackup", - "name": "innodb_import_table_from_xtrabackup", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-instrument-semaphores={0|1}", - "default": "OFF", - "dynamic": true, - "id": "innodb_instrument_semaphores", - "name": "innodb_instrument_semaphores", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-io-capacity=#", - "default": "200", - "dynamic": true, - "id": "innodb_io_capacity", - "name": "innodb_io_capacity", - "range": { - "from": 100, - "to": 18446744073709552000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-io-capacity-max=#", - "default": "2000", - "dynamic": true, - "id": "innodb_io_capacity_max", - "name": "innodb_io_capacity_max", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "default": "0", - "dynamic": true, - "id": "innodb_kill_idle_transaction", - "name": "innodb_kill_idle_transaction", - "range": { - "from": 0, - "to": 9223372036854776000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-large-prefix", - "default": "ON (>= MariaDB 10.2.2), OFF (<= MariaDB 10.2.1)", - "dynamic": true, - "id": "innodb_large_prefix", - "name": "innodb_large_prefix", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "innodb-lazy-drop-table={0|1}", - "default": "0", - "dynamic": true, - "id": "innodb_lazy_drop_table", - "name": "innodb_lazy_drop_table", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-lock-schedule-algorithm=#", - "default": "VATS (10.2), FCFS (10.1)", - "dynamic": false, - "id": "innodb_lock_schedule_algorithm", - "name": "innodb_lock_schedule_algorithm", - "scope": [ - "global" - ], - "validValues": [ - "FCFS", - "VATS" - ] - }, - { - "cli": "--innodb-lock-wait-timeout=#", - "default": "50", - "dynamic": true, - "id": "innodb_lock_wait_timeout", - "name": "innodb_lock_wait_timeout", - "range": { - "from": 0, - "to": 1073741824 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--innodb-locking-fake-changes", - "default": "ON", - "dynamic": true, - "id": "innodb_locking_fake_changes", - "name": "innodb_locking_fake_changes", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-locks-unsafe-for-binlog", - "default": "OFF", - "dynamic": false, - "id": "innodb_locks_unsafe_for_binlog", - "name": "innodb_locks_unsafe_for_binlog", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-log-arch-dir=name", - "default": "./", - "dynamic": false, - "id": "innodb_log_arch_dir", - "name": "innodb_log_arch_dir", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--innodb-log-arch-expire-sec=#", - "default": "0", - "dynamic": true, - "id": "innodb_log_arch_expire_sec", - "name": "innodb_log_arch_expire_sec", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-log-archive=value", - "default": "OFF", - "dynamic": true, - "id": "innodb_log_archive", - "name": "innodb_log_archive", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "innodb-log-block-size=#", - "default": "512", - "dynamic": false, - "id": "innodb_log_block_size", - "name": "innodb_log_block_size", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-log-buffer-size=#", - "default": "16777216 (16MB) >= MariaDB 10.1.9, 8388608 (8MB) <= MariaDB 10.1.8", - "dynamic": false, - "id": "innodb_log_buffer_size", - "name": "innodb_log_buffer_size", - "range": { - "from": 262144, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "innodb-log-checksum-algorithm=value", - "default": "deprecated (>= MariaDB 10.2.6), innodb (<= MariaDB 10.1)", - "dynamic": true, - "id": "innodb_log_checksum_algorithm", - "name": "innodb_log_checksum_algorithm", - "scope": [ - "global" - ], - "validValues": [ - "deprecated", - "innodb", - "none", - "crc32", - "strict_none", - "strict_innodb", - "strict_crc32", - "innodb", - "none", - "crc32", - "strict_none", - "strict_innodb", - "strict_crc32" - ] - }, - { - "cli": "innodb-log-checksums={0|1}", - "default": "ON", - "dynamic": true, - "id": "innodb_log_checksums", - "name": "innodb_log_checksums", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-log-compressed-pages=#", - "default": "ON (>= MariaDB 10.2.4, >= MariaDB 10.1.26, <= MariaDB 10.1.1), OFF (MariaDB 10.2.0 - MariaDB 10.2.3, MariaDB 10.1.2 - MariaDB 10.1.25)", - "dynamic": true, - "id": "innodb_log_compressed_pages", - "name": "innodb_log_compressed_pages", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-log-file-size=#", - "default": "50331648 (48MB) (from MariaDB 10.0), 5242880 (5MB) (before MariaDB 10.0)", - "dynamic": false, - "id": "innodb_log_file_size", - "name": "innodb_log_file_size", - "range": { - "from": 1048576, - "to": 512 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-log-files-in-group=#", - "default": "2", - "dynamic": false, - "id": "innodb_log_files_in_group", - "name": "innodb_log_files_in_group", - "range": { - "from": 1, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-log-group-home-dir=path", - "dynamic": false, - "id": "innodb_log_group_home_dir", - "name": "innodb_log_group_home_dir", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "cli": "--innodb-log-optimize-ddl={0|1}", - "default": "ON", - "dynamic": true, - "id": "innodb_log_optimize_ddl", - "name": "innodb_log_optimize_ddl", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-log-write-ahead-size=#", - "default": "8192", - "dynamic": true, - "id": "innodb_log_write_ahead_size", - "name": "innodb_log_write_ahead_size", - "range": { - "from": 512 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-lru-scan-depth=#", - "default": "1024", - "dynamic": true, - "id": "innodb_lru_scan_depth", - "name": "innodb_lru_scan_depth", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "innodb-max-bitmap-file-size=#", - "default": "4096 (4KB)", - "dynamic": true, - "id": "innodb_max_bitmap_file_size", - "name": "innodb_max_bitmap_file_size", - "range": { - "from": 4096, - "to": 18446744073709552000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "innodb-max-changed-pages=#", - "default": "1000000", - "dynamic": true, - "id": "innodb_max_changed_pages", - "name": "innodb_max_changed_pages", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-max-dirty-pages-pct=#", - "default": "75", - "dynamic": false, - "id": "innodb_max_dirty_pages_pct", - "name": "innodb_max_dirty_pages_pct", - "range": { - "from": 0, - "to": 99.999 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-max-dirty-pages-pct-lwm=#", - "default": "0 (>= MariaDB 10.2.2, <= MariaDB 10.0.14), 0.001000 (>= MariaDB 10.0.15, <= MariaDB 10.2.1)", - "dynamic": true, - "id": "innodb_max_dirty_pages_pct_lwm", - "name": "innodb_max_dirty_pages_pct_lwm", - "range": { - "from": 0, - "to": 99.999 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-max-purge-lag=#", - "default": "0", - "dynamic": true, - "id": "innodb_max_purge_lag", - "name": "innodb_max_purge_lag", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-max-purge-lag-delay=#", - "default": "0", - "dynamic": true, - "id": "innodb_max_purge_lag_delay", - "name": "innodb_max_purge_lag_delay", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-max-undo-log-size=#", - "default": "10485760 (>= MariaDB 10.2.6), 1073741824 (<= MariaDB 10.2.5)", - "dynamic": true, - "id": "innodb_max_undo_log_size", - "name": "innodb_max_undo_log_size", - "range": { - "from": 10485760, - "to": 18446744073709552000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "innodb-merge-sort-block-size=#", - "default": "1048576 (1M)", - "dynamic": true, - "id": "innodb_merge_sort_block_size", - "name": "innodb_merge_sort_block_size", - "range": { - "from": 1048576, - "to": 1073741824 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "id": "innodb_mirrored_log_groups", - "name": "innodb_mirrored_log_groups" - }, - { - "cli": "--innodb-mtflush-threads=#", - "default": "8", - "dynamic": false, - "id": "innodb_mtflush_threads", - "name": "innodb_mtflush_threads", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-monitor-disable=string", - "dynamic": true, - "id": "innodb_monitor_disable", - "name": "innodb_monitor_disable", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--innodb-monitor-enable=string", - "dynamic": true, - "id": "innodb_monitor_enable", - "name": "innodb_monitor_enable", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--innodb-monitor-reset=string", - "dynamic": true, - "id": "innodb_monitor_reset", - "name": "innodb_monitor_reset", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "---innodb-monitor-reset-all=string", - "dynamic": true, - "id": "innodb_monitor_reset_all", - "name": "innodb_monitor_reset_all", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "innodb-numa-interleave={0|1}", - "default": "OFF", - "dynamic": false, - "id": "innodb_numa_interleave", - "name": "innodb_numa_interleave", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-old-blocks-pct=#", - "default": "37", - "dynamic": true, - "id": "innodb_old_blocks_pct", - "name": "innodb_old_blocks_pct", - "range": { - "from": 5, - "to": 95 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-old-blocks-time=#", - "default": "1000 (from MariaDB 10.0), 0 (before MariaDB 10.0)", - "dynamic": true, - "id": "innodb_old_blocks_time", - "name": "innodb_old_blocks_time", - "range": { - "from": 0, - "to": 232 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-online-alter-log-max-size=#", - "default": "134217728", - "dynamic": true, - "id": "innodb_online_alter_log_max_size", - "name": "innodb_online_alter_log_max_size", - "range": { - "from": 65536, - "to": 264 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-open-files=#", - "default": "autosized (from MariaDB 10.0), 300 (before MariaDB 10.0)", - "dynamic": false, - "id": "innodb_open_files", - "name": "innodb_open_files", - "range": { - "from": 10, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-optimize-fulltext-only=#", - "default": "OFF", - "dynamic": true, - "id": "innodb_optimize_fulltext_only", - "name": "innodb_optimize_fulltext_only", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-page-cleaners=#", - "default": "4 (or set to innodb_buffer_pool_instances if lower)", - "dynamic": false, - "id": "innodb_page_cleaners", - "name": "innodb_page_cleaners", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-page-size=#", - "default": "16384", - "dynamic": false, - "id": "innodb_page_size", - "name": "innodb_page_size", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "4k", - "4096", - "8k", - "8192", - "16k", - "16384", - "32k", - "64k" - ] - }, - { - "id": "innodb_pass_corrupt_table", - "name": "innodb_pass_corrupt_table" - }, - { - "cli": "--innodb-prefix-index-cluster-optimization=#", - "default": "OFF", - "dynamic": true, - "id": "innodb_prefix_index_cluster_optimization", - "name": "innodb_prefix_index_cluster_optimization", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-print-all-deadlocks=#", - "default": "OFF", - "dynamic": true, - "id": "innodb_print_all_deadlocks", - "name": "innodb_print_all_deadlocks", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-purge-batch-size=#", - "default": "20", - "dynamic": false, - "id": "innodb_purge_batch_size", - "name": "innodb_purge_batch_size", - "range": { - "from": 1, - "to": 5000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "-- innodb-purge-rseg-truncate-frequency=#", - "default": "128", - "dynamic": true, - "id": "innodb_purge_rseg_truncate_frequency", - "name": "innodb_purge_rseg_truncate_frequency", - "range": { - "from": 1, - "to": 128 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-purge-threads=#", - "default": "4 (>= MariaDB 10.2.2), 1 (>=MariaDB 10.0 to <= MariaDB 10.2.1), 0 (MariaDB 5.5)", - "dynamic": false, - "id": "innodb_purge_threads", - "name": "innodb_purge_threads", - "range": { - "from": 1, - "to": 32 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-random-read-ahead=#", - "default": "OFF", - "dynamic": true, - "id": "innodb_random_read_ahead", - "name": "innodb_random_read_ahead", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "innodb-read-ahead=value", - "default": "linear", - "dynamic": true, - "id": "innodb_read_ahead", - "name": "innodb_read_ahead", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "none", - "random", - "linear", - "both" - ] - }, - { - "cli": "--innodb-read-ahead-threshold=#", - "default": "56", - "dynamic": true, - "id": "innodb_read_ahead_threshold", - "name": "innodb_read_ahead_threshold", - "range": { - "from": 0, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-read-io-threads=#", - "default": "4", - "dynamic": false, - "id": "innodb_read_io_threads", - "name": "innodb_read_io_threads", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-read-only=#", - "default": "OFF", - "dynamic": false, - "id": "innodb_read_only", - "name": "innodb_read_only", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "default": "OFF", - "dynamic": false, - "id": "innodb_recovery_stats", - "name": "innodb_recovery_stats", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "innodb-recovery-update-relay-log={0|1}", - "default": "OFF", - "dynamic": false, - "id": "innodb_recovery_update_relay_log", - "name": "innodb_recovery_update_relay_log", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-replication-delay=#", - "default": "0", - "dynamic": true, - "id": "innodb_replication_delay", - "name": "innodb_replication_delay", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-rollback-on-timeout", - "default": "0", - "dynamic": false, - "id": "innodb_rollback_on_timeout", - "name": "innodb_rollback_on_timeout", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-rollback-segments=#", - "default": "128", - "dynamic": true, - "id": "innodb_rollback_segments", - "name": "innodb_rollback_segments", - "range": { - "from": 1, - "to": 128 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-safe-truncate={0|1}", - "default": "ON", - "dynamic": false, - "id": "innodb_safe_truncate", - "name": "innodb_safe_truncate", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-scrub-log", - "default": "OFF", - "dynamic": false, - "id": "innodb_scrub_log", - "name": "innodb_scrub_log", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-scrub-log-interval=#", - "default": "56", - "dynamic": true, - "id": "innodb_scrub_log_interval", - "name": "innodb_scrub_log_interval", - "range": { - "from": 0, - "to": 50000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-scrub-log-speed=#", - "default": "256", - "dynamic": true, - "id": "innodb_scrub_log_speed", - "name": "innodb_scrub_log_speed", - "range": { - "from": 1, - "to": 50000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "innodb-sched-priority-cleaner=#", - "default": "19", - "dynamic": true, - "id": "innodb_sched_priority_cleaner", - "name": "innodb_sched_priority_cleaner", - "range": { - "from": 0, - "to": 39 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "innodb-show-locks-held=#", - "default": "10", - "dynamic": true, - "id": "innodb_show_locks_held", - "name": "innodb_show_locks_held", - "range": { - "from": 0, - "to": 1000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "innodb-show-verbose-locks=#", - "default": "0", - "dynamic": true, - "id": "innodb_show_verbose_locks", - "name": "innodb_show_verbose_locks", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "default": "0", - "dynamic": true, - "id": "innodb_simulate_comp_failures", - "name": "innodb_simulate_comp_failures", - "range": { - "from": 0, - "to": 99 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-sort-buffer-size=#", - "default": "1048576 (1M)", - "dynamic": false, - "id": "innodb_sort_buffer_size", - "name": "innodb_sort_buffer_size", - "range": { - "from": 65536, - "to": 67108864 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-spin-wait-delay=#", - "default": "4 (>= MariaDB 10.3.5), 6 (<= MariaDB 10.3.4)", - "dynamic": true, - "id": "innodb_spin_wait_delay", - "name": "innodb_spin_wait_delay", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-stats-auto-recalc=#", - "default": "ON", - "dynamic": true, - "id": "innodb_stats_auto_recalc", - "name": "innodb_stats_auto_recalc", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "default": "1", - "dynamic": true, - "id": "innodb_stats_auto_update", - "name": "innodb_stats_auto_update", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "default": "OFF", - "dynamic": true, - "id": "innodb_stats_include_delete_marked", - "name": "innodb_stats_include_delete_marked", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-stats-method=name", - "default": "nulls_equal", - "dynamic": true, - "id": "innodb_stats_method", - "name": "innodb_stats_method", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "nulls_equal", - "nulls_unequal", - "nulls_ignored" - ] - }, - { - "cli": "--innodb-stats-modified-counter=#", - "default": "0", - "dynamic": true, - "id": "innodb_stats_modified_counter", - "name": "innodb_stats_modified_counter", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-stats-on-metadata", - "default": "OFF (from MariaDB 10.0), ON (before MariaDB 10.0)", - "dynamic": true, - "id": "innodb_stats_on_metadata", - "name": "innodb_stats_on_metadata", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-stats-persistent=#", - "default": "ON", - "dynamic": true, - "id": "innodb_stats_persistent", - "name": "innodb_stats_persistent", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-stats-persistent-sample-pages=#", - "default": "20", - "dynamic": true, - "id": "innodb_stats_persistent_sample_pages", - "name": "innodb_stats_persistent_sample_pages", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-stats-sample-pages=#", - "default": "8", - "dynamic": true, - "id": "innodb_stats_sample_pages", - "name": "innodb_stats_sample_pages", - "range": { - "from": 1, - "to": 264 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-stats-traditional=#", - "default": "ON", - "dynamic": true, - "id": "innodb_stats_traditional", - "name": "innodb_stats_traditional", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-stats-transient-sample-pages=#", - "default": "8", - "dynamic": true, - "id": "innodb_stats_transient_sample_pages", - "name": "innodb_stats_transient_sample_pages", - "range": { - "from": 1, - "to": 264 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "default": "1", - "dynamic": true, - "id": "innodb_stats_update_need_lock", - "name": "innodb_stats_update_need_lock", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-status-output={0|1}", - "default": "OFF", - "dynamic": true, - "id": "innodb_status_output", - "name": "innodb_status_output", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-status-output-locks={0|1}", - "default": "OFF", - "dynamic": true, - "id": "innodb_status_output_locks", - "name": "innodb_status_output_locks", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-strict-mode=#", - "default": "ON (>= MariaDB 10.2.2), OFF (<= MariaDB 10.2.1)", - "dynamic": true, - "id": "innodb_strict_mode", - "name": "innodb_strict_mode", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--innodb-support-xa", - "default": "ON", - "dynamic": true, - "id": "innodb_support_xa", - "name": "innodb_support_xa", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--innodb-sync-array-size=#", - "default": "1", - "dynamic": false, - "id": "innodb_sync_array_size", - "name": "innodb_sync_array_size", - "range": { - "from": 1, - "to": 1024 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-sync-spin-loops=#", - "default": "30", - "dynamic": true, - "id": "innodb_sync_spin_loops", - "name": "innodb_sync_spin_loops", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-table-locks", - "default": "ON", - "dynamic": true, - "id": "innodb_table_locks", - "name": "innodb_table_locks", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--innodb-thread-concurrency=#", - "default": "0", - "dynamic": true, - "id": "innodb_thread_concurrency", - "name": "innodb_thread_concurrency", - "range": { - "from": 0, - "to": 1000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "innodb-thread-concurrency-timer-based={0|1}", - "default": "OFF", - "dynamic": false, - "id": "innodb_thread_concurrency_timer_based", - "name": "innodb_thread_concurrency_timer_based", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-thread-sleep-delay=#", - "default": "10000", - "dynamic": true, - "id": "innodb_thread_sleep_delay", - "name": "innodb_thread_sleep_delay", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-temp-data-file-path=path", - "default": "ibtmp1:12M:autoextend", - "dynamic": false, - "id": "innodb_temp_data_file_path", - "name": "innodb_temp_data_file_path", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--innodb-tmpdir=path", - "default": "Empty", - "dynamic": true, - "id": "innodb_tmpdir", - "name": "innodb_tmpdir", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "innodb-track-changed-pages={0|1}", - "default": "OFF", - "dynamic": false, - "id": "innodb_track_changed_pages", - "name": "innodb_track_changed_pages", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "innodb-track-redo-log-now={0|1}", - "default": "OFF", - "dynamic": true, - "id": "innodb_track_redo_log_now", - "name": "innodb_track_redo_log_now", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-undo-directory=name", - "default": "NULL (>= 10.2.2), . (<= 10.2.1)", - "dynamic": false, - "id": "innodb_undo_directory", - "name": "innodb_undo_directory", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--innodb-undo-log-truncate[={0|1}]", - "default": "OFF", - "dynamic": true, - "id": "innodb_undo_log_truncate", - "name": "innodb_undo_log_truncate", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-undo-logs=#", - "default": "128", - "dynamic": true, - "id": "innodb_undo_logs", - "name": "innodb_undo_logs", - "range": { - "from": 0, - "to": 128 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-undo-tablespaces=#", - "default": "0", - "dynamic": false, - "id": "innodb_undo_tablespaces", - "name": "innodb_undo_tablespaces", - "range": { - "from": 0, - "to": 95 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "innodb-use-atomic-writes={0|1}", - "default": "ON (>= MariaDB 10.2.4), OFF (<= MariaDB 10.2.3)", - "dynamic": false, - "id": "innodb_use_atomic_writes", - "name": "innodb_use_atomic_writes", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "innodb-use-fallocate={0|1}", - "default": "OFF", - "dynamic": false, - "id": "innodb_use_fallocate", - "name": "innodb_use_fallocate", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "innodb-use-global-flush-log-at-trx_commit={0|1}", - "default": "ON", - "dynamic": true, - "id": "innodb_use_global_flush_log_at_trx_commit", - "name": "innodb_use_global_flush_log_at_trx_commit", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-use-mtflush=#", - "default": "OFF", - "dynamic": false, - "id": "innodb_use_mtflush", - "name": "innodb_use_mtflush", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-use-native-aio=#", - "default": "ON", - "dynamic": false, - "id": "innodb_use_native_aio", - "name": "innodb_use_native_aio", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-use-purge-thread=#", - "default": "1", - "dynamic": false, - "id": "innodb_use_purge_thread", - "name": "innodb_use_purge_thread", - "range": { - "from": 0, - "to": 32 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-use-stacktrace=#", - "default": "OFF", - "dynamic": false, - "id": "innodb_use_stacktrace", - "name": "innodb_use_stacktrace", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-use-sys-malloc=#", - "default": "ON", - "dynamic": false, - "id": "innodb_use_sys_malloc", - "name": "innodb_use_sys_malloc", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "innodb-use-sys-stats-table={0|1}", - "default": "0", - "dynamic": false, - "id": "innodb_use_sys_stats_table", - "name": "innodb_use_sys_stats_table", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-use-trim=#", - "default": "ON (>= MariaDB 10.2.4), OFF (<= MariaDB 10.2.3)", - "dynamic": false, - "id": "innodb_use_trim", - "name": "innodb_use_trim", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "dynamic": false, - "id": "innodb_version", - "name": "innodb_version", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--innodb-write-io-threads=#", - "default": "4", - "dynamic": false, - "id": "innodb_write_io_threads", - "name": "innodb_write_io_threads", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer" - } - ], - "name": "xtradbinnodb-server-system-variables", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-audit-log-reference.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-audit-log-reference.json deleted file mode 100644 index 54513f4..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-audit-log-reference.json +++ /dev/null @@ -1,244 +0,0 @@ -{ - "data": [ - { - "cli": "--audit-log[=value]", - "default": "ON", - "id": "option_mysqld_audit-log", - "name": "audit_log", - "type": "enumeration", - "validValues": [ - "ON", - "OFF", - "FORCE", - "FORCE_PLUS_PERMANENT" - ] - }, - { - "cli": "--audit-log-buffer-size=#", - "default": "1048576", - "dynamic": false, - "id": "sysvar_audit_log_buffer_size", - "name": "audit_log_buffer_size", - "range": { - "from": 4096 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--audit-log-compression=value", - "default": "NONE", - "dynamic": false, - "id": "sysvar_audit_log_compression", - "name": "audit_log_compression", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "NONE", - "GZIP" - ] - }, - { - "cli": "--audit-log-connection-policy=value", - "default": "ALL", - "dynamic": true, - "id": "sysvar_audit_log_connection_policy", - "name": "audit_log_connection_policy", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "ALL", - "ERRORS", - "NONE" - ] - }, - { - "default": "depends on filtering policy", - "dynamic": false, - "id": "sysvar_audit_log_current_session", - "name": "audit_log_current_session", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--audit-log-encryption=value", - "default": "NONE", - "dynamic": false, - "id": "sysvar_audit_log_encryption", - "name": "audit_log_encryption", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "NONE", - "AES" - ] - }, - { - "cli": "--audit-log-exclude-accounts=value", - "default": "NULL", - "dynamic": true, - "id": "sysvar_audit_log_exclude_accounts", - "name": "audit_log_exclude_accounts", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--audit-log-file=file_name", - "default": "audit.log", - "dynamic": false, - "id": "sysvar_audit_log_file", - "name": "audit_log_file", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "dynamic": false, - "id": "sysvar_audit_log_filter_id", - "name": "audit_log_filter_id", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "default": "OFF", - "dynamic": true, - "id": "sysvar_audit_log_flush", - "name": "audit_log_flush", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--audit-log-format=value", - "default": "NEW", - "dynamic": false, - "id": "sysvar_audit_log_format", - "name": "audit_log_format", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "OLD", - "NEW", - "JSON" - ] - }, - { - "cli": "--audit-log-include-accounts=value", - "default": "NULL", - "dynamic": true, - "id": "sysvar_audit_log_include_accounts", - "name": "audit_log_include_accounts", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--audit-log-password-history-keep-days=#", - "default": "0", - "dynamic": true, - "id": "sysvar_audit_log_password_history_keep_days", - "name": "audit_log_password_history_keep_days", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--audit-log-policy=value", - "default": "ALL", - "dynamic": false, - "id": "sysvar_audit_log_policy", - "name": "audit_log_policy", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "ALL", - "LOGINS", - "QUERIES", - "NONE" - ] - }, - { - "cli": "--audit-log-read-buffer-size=#", - "id": "sysvar_audit_log_read_buffer_size", - "name": "audit_log_read_buffer_size", - "range": { - "to": 4194304 - }, - "type": "integer" - }, - { - "cli": "--audit-log-rotate-on-size=#", - "default": "0", - "dynamic": true, - "id": "sysvar_audit_log_rotate_on_size", - "name": "audit_log_rotate_on_size", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--audit-log-statement-policy=value", - "default": "ALL", - "dynamic": true, - "id": "sysvar_audit_log_statement_policy", - "name": "audit_log_statement_policy", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "ALL", - "ERRORS", - "NONE" - ] - }, - { - "cli": "--audit-log-strategy=value", - "default": "ASYNCHRONOUS", - "dynamic": false, - "id": "sysvar_audit_log_strategy", - "name": "audit_log_strategy", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "ASYNCHRONOUS", - "PERFORMANCE", - "SEMISYNCHRONOUS", - "SYNCHRONOUS" - ] - } - ], - "name": "audit-log-reference", - "url": "https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-innodb-parameters.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-innodb-parameters.json deleted file mode 100644 index 710794c..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-innodb-parameters.json +++ /dev/null @@ -1,2133 +0,0 @@ -{ - "data": [ - { - "cli": "--innodb[=value]", - "default": "ON", - "id": "option_mysqld_innodb", - "name": "innodb", - "type": "enumeration", - "validValues": [ - "OFF", - "ON", - "FORCE" - ] - }, - { - "cli": "--innodb-status-file[={OFF|ON}]", - "default": "OFF", - "id": "option_mysqld_innodb-status-file", - "name": "innodb_status_file", - "type": "boolean" - }, - { - "cli": "--daemon-memcached-enable-binlog[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "id": "sysvar_daemon_memcached_enable_binlog", - "name": "daemon_memcached_enable_binlog", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--daemon-memcached-engine-lib-name=file_name", - "default": "innodb_engine.so", - "dynamic": false, - "id": "sysvar_daemon_memcached_engine_lib_name", - "name": "daemon_memcached_engine_lib_name", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--daemon-memcached-engine-lib-path=dir_name", - "default": "NULL", - "dynamic": false, - "id": "sysvar_daemon_memcached_engine_lib_path", - "name": "daemon_memcached_engine_lib_path", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "cli": "--daemon-memcached-option=options", - "default": "", - "dynamic": false, - "id": "sysvar_daemon_memcached_option", - "name": "daemon_memcached_option", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--daemon-memcached-r-batch-size=#", - "default": "1", - "dynamic": false, - "id": "sysvar_daemon_memcached_r_batch_size", - "name": "daemon_memcached_r_batch_size", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--daemon-memcached-w-batch-size=#", - "default": "1", - "dynamic": false, - "id": "sysvar_daemon_memcached_w_batch_size", - "name": "daemon_memcached_w_batch_size", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--ignore-builtin-innodb[={OFF|ON}]", - "dynamic": false, - "id": "sysvar_ignore_builtin_innodb", - "name": "ignore_builtin_innodb", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-adaptive-flushing[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "id": "sysvar_innodb_adaptive_flushing", - "name": "innodb_adaptive_flushing", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-adaptive-flushing-lwm=#", - "default": "10", - "dynamic": true, - "id": "sysvar_innodb_adaptive_flushing_lwm", - "name": "innodb_adaptive_flushing_lwm", - "range": { - "from": 0, - "to": 70 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-adaptive-hash-index[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "id": "sysvar_innodb_adaptive_hash_index", - "name": "innodb_adaptive_hash_index", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-adaptive-hash-index-parts=#", - "default": "8", - "dynamic": false, - "id": "sysvar_innodb_adaptive_hash_index_parts", - "name": "innodb_adaptive_hash_index_parts", - "range": { - "from": 1, - "to": 512 - }, - "scope": [ - "global" - ], - "type": "numeric" - }, - { - "cli": "--innodb-adaptive-max-sleep-delay=#", - "default": "150000", - "dynamic": true, - "id": "sysvar_innodb_adaptive_max_sleep_delay", - "name": "innodb_adaptive_max_sleep_delay", - "range": { - "from": 0, - "to": 1000000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-api-bk-commit-interval=#", - "default": "5", - "dynamic": true, - "id": "sysvar_innodb_api_bk_commit_interval", - "name": "innodb_api_bk_commit_interval", - "range": { - "from": 1, - "to": 1073741824 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-api-disable-rowlock[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "id": "sysvar_innodb_api_disable_rowlock", - "name": "innodb_api_disable_rowlock", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-api-enable-binlog[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "id": "sysvar_innodb_api_enable_binlog", - "name": "innodb_api_enable_binlog", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-api-enable-mdl[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "id": "sysvar_innodb_api_enable_mdl", - "name": "innodb_api_enable_mdl", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-api-trx-level=#", - "default": "0", - "dynamic": true, - "id": "sysvar_innodb_api_trx_level", - "name": "innodb_api_trx_level", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-autoextend-increment=#", - "default": "64", - "dynamic": true, - "id": "sysvar_innodb_autoextend_increment", - "name": "innodb_autoextend_increment", - "range": { - "from": 1, - "to": 1000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-autoinc-lock-mode=#", - "dynamic": false, - "id": "sysvar_innodb_autoinc_lock_mode", - "name": "innodb_autoinc_lock_mode", - "scope": [ - "global" - ], - "type": "integer", - "validValues": [ - "0", - "1", - "2" - ] - }, - { - "cli": "--innodb-background-drop-list-empty[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_innodb_background_drop_list_empty", - "name": "innodb_background_drop_list_empty", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-buffer-pool-chunk-size=#", - "default": "134217728", - "dynamic": false, - "id": "sysvar_innodb_buffer_pool_chunk_size", - "name": "innodb_buffer_pool_chunk_size", - "range": { - "from": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-buffer-pool-debug[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "id": "sysvar_innodb_buffer_pool_debug", - "name": "innodb_buffer_pool_debug", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-buffer-pool-dump-at-shutdown[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "id": "sysvar_innodb_buffer_pool_dump_at_shutdown", - "name": "innodb_buffer_pool_dump_at_shutdown", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-buffer-pool-dump-now[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_innodb_buffer_pool_dump_now", - "name": "innodb_buffer_pool_dump_now", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-buffer-pool-dump-pct=#", - "default": "25", - "dynamic": true, - "id": "sysvar_innodb_buffer_pool_dump_pct", - "name": "innodb_buffer_pool_dump_pct", - "range": { - "from": 1, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-buffer-pool-filename=file_name", - "default": "ib_buffer_pool", - "dynamic": true, - "id": "sysvar_innodb_buffer_pool_filename", - "name": "innodb_buffer_pool_filename", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--innodb-buffer-pool-in-core-file[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "id": "sysvar_innodb_buffer_pool_in_core_file", - "name": "innodb_buffer_pool_in_core_file", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-buffer-pool-instances=#", - "dynamic": false, - "id": "sysvar_innodb_buffer_pool_instances", - "name": "innodb_buffer_pool_instances", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-buffer-pool-load-abort[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_innodb_buffer_pool_load_abort", - "name": "innodb_buffer_pool_load_abort", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-buffer-pool-load-at-startup[={OFF|ON}]", - "default": "ON", - "dynamic": false, - "id": "sysvar_innodb_buffer_pool_load_at_startup", - "name": "innodb_buffer_pool_load_at_startup", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-buffer-pool-load-now[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_innodb_buffer_pool_load_now", - "name": "innodb_buffer_pool_load_now", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-buffer-pool-size=#", - "default": "134217728", - "dynamic": true, - "id": "sysvar_innodb_buffer_pool_size", - "name": "innodb_buffer_pool_size", - "range": { - "from": 5242880 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-change-buffer-max-size=#", - "default": "25", - "dynamic": true, - "id": "sysvar_innodb_change_buffer_max_size", - "name": "innodb_change_buffer_max_size", - "range": { - "from": 0, - "to": 50 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-change-buffering=value", - "default": "all", - "dynamic": true, - "id": "sysvar_innodb_change_buffering", - "name": "innodb_change_buffering", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "none", - "inserts", - "deletes", - "changes", - "purges", - "all" - ] - }, - { - "cli": "--innodb-change-buffering-debug=#", - "default": "0", - "dynamic": true, - "id": "sysvar_innodb_change_buffering_debug", - "name": "innodb_change_buffering_debug", - "range": { - "to": 2 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-checkpoint-disabled[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_innodb_checkpoint_disabled", - "name": "innodb_checkpoint_disabled", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-checksum-algorithm=value", - "default": "crc32", - "dynamic": true, - "id": "sysvar_innodb_checksum_algorithm", - "name": "innodb_checksum_algorithm", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "innodb", - "crc32", - "none", - "strict_innodb", - "strict_crc32", - "strict_none" - ] - }, - { - "cli": "--innodb-cmp-per-index-enabled[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_innodb_cmp_per_index_enabled", - "name": "innodb_cmp_per_index_enabled", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-commit-concurrency=#", - "default": "0", - "dynamic": true, - "id": "sysvar_innodb_commit_concurrency", - "name": "innodb_commit_concurrency", - "range": { - "from": 0, - "to": 1000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-compress-debug=value", - "default": "none", - "dynamic": true, - "id": "sysvar_innodb_compress_debug", - "name": "innodb_compress_debug", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "none", - "zlib", - "lz4", - "lz4hc" - ] - }, - { - "cli": "--innodb-compression-failure-threshold-pct=#", - "default": "5", - "dynamic": true, - "id": "sysvar_innodb_compression_failure_threshold_pct", - "name": "innodb_compression_failure_threshold_pct", - "range": { - "from": 0, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-compression-level=#", - "default": "6", - "dynamic": true, - "id": "sysvar_innodb_compression_level", - "name": "innodb_compression_level", - "range": { - "from": 0, - "to": 9 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-compression-pad-pct-max=#", - "default": "50", - "dynamic": true, - "id": "sysvar_innodb_compression_pad_pct_max", - "name": "innodb_compression_pad_pct_max", - "range": { - "from": 0, - "to": 75 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-concurrency-tickets=#", - "default": "5000", - "dynamic": true, - "id": "sysvar_innodb_concurrency_tickets", - "name": "innodb_concurrency_tickets", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-data-file-path=file_name", - "default": "ibdata1:12M:autoextend", - "dynamic": false, - "id": "sysvar_innodb_data_file_path", - "name": "innodb_data_file_path", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--innodb-data-home-dir=dir_name", - "dynamic": false, - "id": "sysvar_innodb_data_home_dir", - "name": "innodb_data_home_dir", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "cli": "--innodb-ddl-log-crash-reset-debug[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_innodb_ddl_log_crash_reset_debug", - "name": "innodb_ddl_log_crash_reset_debug", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-deadlock-detect[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "id": "sysvar_innodb_deadlock_detect", - "name": "innodb_deadlock_detect", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-dedicated-server[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "id": "sysvar_innodb_dedicated_server", - "name": "innodb_dedicated_server", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-default-row-format=value", - "default": "DYNAMIC", - "dynamic": true, - "id": "sysvar_innodb_default_row_format", - "name": "innodb_default_row_format", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "DYNAMIC", - "COMPACT", - "REDUNDANT" - ] - }, - { - "cli": "--innodb-directories=dir_name", - "dynamic": false, - "id": "sysvar_innodb_directories", - "name": "innodb_directories", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "cli": "--innodb-disable-sort-file-cache[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_innodb_disable_sort_file_cache", - "name": "innodb_disable_sort_file_cache", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-doublewrite[={OFF|ON}]", - "default": "ON", - "dynamic": false, - "id": "sysvar_innodb_doublewrite", - "name": "innodb_doublewrite", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-fast-shutdown=#", - "default": "1", - "dynamic": true, - "id": "sysvar_innodb_fast_shutdown", - "name": "innodb_fast_shutdown", - "scope": [ - "global" - ], - "type": "integer", - "validValues": [ - "0", - "1", - "2" - ] - }, - { - "cli": "--innodb-fil-make-page-dirty-debug=#", - "default": "0", - "dynamic": true, - "id": "sysvar_innodb_fil_make_page_dirty_debug", - "name": "innodb_fil_make_page_dirty_debug", - "range": { - "to": 2 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-file-per-table[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "id": "sysvar_innodb_file_per_table", - "name": "innodb_file_per_table", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-fill-factor=#", - "default": "100", - "dynamic": true, - "id": "sysvar_innodb_fill_factor", - "name": "innodb_fill_factor", - "range": { - "from": 10, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-flush-log-at-timeout=#", - "default": "1", - "dynamic": true, - "id": "sysvar_innodb_flush_log_at_timeout", - "name": "innodb_flush_log_at_timeout", - "range": { - "from": 1, - "to": 2700 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-flush-log-at-trx-commit=#", - "default": "1", - "dynamic": true, - "id": "sysvar_innodb_flush_log_at_trx_commit", - "name": "innodb_flush_log_at_trx_commit", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "0", - "1", - "2" - ] - }, - { - "cli": "--innodb-flush-method=value", - "dynamic": false, - "id": "sysvar_innodb_flush_method", - "name": "innodb_flush_method", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--innodb-flush-neighbors=#", - "dynamic": true, - "id": "sysvar_innodb_flush_neighbors", - "name": "innodb_flush_neighbors", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "0", - "1", - "2" - ] - }, - { - "cli": "--innodb-flush-sync[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "id": "sysvar_innodb_flush_sync", - "name": "innodb_flush_sync", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-flushing-avg-loops=#", - "default": "30", - "dynamic": true, - "id": "sysvar_innodb_flushing_avg_loops", - "name": "innodb_flushing_avg_loops", - "range": { - "from": 1, - "to": 1000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-force-load-corrupted[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "id": "sysvar_innodb_force_load_corrupted", - "name": "innodb_force_load_corrupted", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-force-recovery=#", - "default": "0", - "dynamic": false, - "id": "sysvar_innodb_force_recovery", - "name": "innodb_force_recovery", - "range": { - "from": 0, - "to": 6 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-fsync-threshold=#", - "default": "0", - "dynamic": true, - "id": "sysvar_innodb_fsync_threshold", - "name": "innodb_fsync_threshold", - "range": { - "from": 0, - "to": 2 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "sysvar_innodb_ft_aux_table", - "name": "innodb_ft_aux_table", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--innodb-ft-cache-size=#", - "default": "8000000", - "dynamic": false, - "id": "sysvar_innodb_ft_cache_size", - "name": "innodb_ft_cache_size", - "range": { - "from": 1600000, - "to": 80000000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-ft-enable-diag-print[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_innodb_ft_enable_diag_print", - "name": "innodb_ft_enable_diag_print", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-ft-enable-stopword[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "id": "sysvar_innodb_ft_enable_stopword", - "name": "innodb_ft_enable_stopword", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--innodb-ft-max-token-size=#", - "default": "84", - "dynamic": false, - "id": "sysvar_innodb_ft_max_token_size", - "name": "innodb_ft_max_token_size", - "range": { - "from": 10, - "to": 84 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-ft-min-token-size=#", - "default": "3", - "dynamic": false, - "id": "sysvar_innodb_ft_min_token_size", - "name": "innodb_ft_min_token_size", - "range": { - "from": 0, - "to": 16 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-ft-num-word-optimize=#", - "default": "2000", - "dynamic": true, - "id": "sysvar_innodb_ft_num_word_optimize", - "name": "innodb_ft_num_word_optimize", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-ft-result-cache-limit=#", - "default": "2000000000", - "dynamic": true, - "id": "sysvar_innodb_ft_result_cache_limit", - "name": "innodb_ft_result_cache_limit", - "range": { - "from": 1000000, - "to": 2 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-ft-server-stopword-table=db_name/table_name", - "default": "NULL", - "dynamic": true, - "id": "sysvar_innodb_ft_server_stopword_table", - "name": "innodb_ft_server_stopword_table", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--innodb-ft-sort-pll-degree=#", - "default": "2", - "dynamic": false, - "id": "sysvar_innodb_ft_sort_pll_degree", - "name": "innodb_ft_sort_pll_degree", - "range": { - "from": 1, - "to": 32 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-ft-total-cache-size=#", - "default": "640000000", - "dynamic": false, - "id": "sysvar_innodb_ft_total_cache_size", - "name": "innodb_ft_total_cache_size", - "range": { - "from": 32000000, - "to": 1600000000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-ft-user-stopword-table=db_name/table_name", - "default": "NULL", - "dynamic": true, - "id": "sysvar_innodb_ft_user_stopword_table", - "name": "innodb_ft_user_stopword_table", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "cli": "--innodb-idle-flush-pct=#", - "default": "100", - "dynamic": true, - "id": "sysvar_innodb_idle_flush_pct", - "name": "innodb_idle_flush_pct", - "range": { - "from": 0, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-io-capacity=#", - "default": "200", - "dynamic": true, - "id": "sysvar_innodb_io_capacity", - "name": "innodb_io_capacity", - "range": { - "from": 100 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-io-capacity-max=#", - "default": "see description", - "dynamic": true, - "id": "sysvar_innodb_io_capacity_max", - "name": "innodb_io_capacity_max", - "range": { - "from": 100 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-limit-optimistic-insert-debug=#", - "default": "0", - "dynamic": true, - "id": "sysvar_innodb_limit_optimistic_insert_debug", - "name": "innodb_limit_optimistic_insert_debug", - "range": { - "from": 0, - "to": 2 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-lock-wait-timeout=#", - "default": "50", - "dynamic": true, - "id": "sysvar_innodb_lock_wait_timeout", - "name": "innodb_lock_wait_timeout", - "range": { - "from": 1, - "to": 1073741824 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--innodb-log-buffer-size=#", - "default": "16777216", - "id": "sysvar_innodb_log_buffer_size", - "name": "innodb_log_buffer_size", - "range": { - "from": 1048576, - "to": 4294967295 - }, - "type": "integer" - }, - { - "cli": "--innodb-log-checkpoint-fuzzy-now[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_innodb_log_checkpoint_fuzzy_now", - "name": "innodb_log_checkpoint_fuzzy_now", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-log-checkpoint-now[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_innodb_log_checkpoint_now", - "name": "innodb_log_checkpoint_now", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-log-checksums[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "id": "sysvar_innodb_log_checksums", - "name": "innodb_log_checksums", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-log-compressed-pages[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "id": "sysvar_innodb_log_compressed_pages", - "name": "innodb_log_compressed_pages", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-log-file-size=#", - "default": "50331648", - "dynamic": false, - "id": "sysvar_innodb_log_file_size", - "name": "innodb_log_file_size", - "range": { - "from": 4194304, - "to": 512 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-log-files-in-group=#", - "default": "2", - "dynamic": false, - "id": "sysvar_innodb_log_files_in_group", - "name": "innodb_log_files_in_group", - "range": { - "from": 2, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-log-group-home-dir=dir_name", - "dynamic": false, - "id": "sysvar_innodb_log_group_home_dir", - "name": "innodb_log_group_home_dir", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "cli": "--innodb-log-spin-cpu-abs-lwm=#", - "default": "80", - "dynamic": true, - "id": "sysvar_innodb_log_spin_cpu_abs_lwm", - "name": "innodb_log_spin_cpu_abs_lwm", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-log-spin-cpu-pct-hwm=#", - "default": "50", - "dynamic": true, - "id": "sysvar_innodb_log_spin_cpu_pct_hwm", - "name": "innodb_log_spin_cpu_pct_hwm", - "range": { - "from": 0, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-log-wait-for-flush-spin-hwm=#", - "default": "400", - "dynamic": true, - "id": "sysvar_innodb_log_wait_for_flush_spin_hwm", - "name": "innodb_log_wait_for_flush_spin_hwm", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-log-write-ahead-size=#", - "default": "8192", - "dynamic": true, - "id": "sysvar_innodb_log_write_ahead_size", - "name": "innodb_log_write_ahead_size", - "range": { - "from": 512 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-lru-scan-depth=#", - "default": "1024", - "dynamic": true, - "id": "sysvar_innodb_lru_scan_depth", - "name": "innodb_lru_scan_depth", - "range": { - "from": 100 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-max-dirty-pages-pct=#", - "dynamic": true, - "id": "sysvar_innodb_max_dirty_pages_pct", - "name": "innodb_max_dirty_pages_pct", - "range": { - "from": 0, - "to": 99.99 - }, - "scope": [ - "global" - ], - "type": "numeric" - }, - { - "cli": "--innodb-max-dirty-pages-pct-lwm=#", - "dynamic": true, - "id": "sysvar_innodb_max_dirty_pages_pct_lwm", - "name": "innodb_max_dirty_pages_pct_lwm", - "range": { - "from": 0, - "to": 99.99 - }, - "scope": [ - "global" - ], - "type": "numeric" - }, - { - "cli": "--innodb-max-purge-lag=#", - "default": "0", - "dynamic": true, - "id": "sysvar_innodb_max_purge_lag", - "name": "innodb_max_purge_lag", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-max-purge-lag-delay=#", - "default": "0", - "dynamic": true, - "id": "sysvar_innodb_max_purge_lag_delay", - "name": "innodb_max_purge_lag_delay", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-max-undo-log-size=#", - "default": "1073741824", - "dynamic": true, - "id": "sysvar_innodb_max_undo_log_size", - "name": "innodb_max_undo_log_size", - "range": { - "from": 10485760, - "to": 2 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-merge-threshold-set-all-debug=#", - "default": "50", - "dynamic": true, - "id": "sysvar_innodb_merge_threshold_set_all_debug", - "name": "innodb_merge_threshold_set_all_debug", - "range": { - "from": 1, - "to": 50 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-monitor-disable={counter|module|pattern|all}", - "dynamic": true, - "id": "sysvar_innodb_monitor_disable", - "name": "innodb_monitor_disable", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--innodb-monitor-enable={counter|module|pattern|all}", - "dynamic": true, - "id": "sysvar_innodb_monitor_enable", - "name": "innodb_monitor_enable", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--innodb-monitor-reset={counter|module|pattern|all}", - "default": "empty string", - "dynamic": true, - "id": "sysvar_innodb_monitor_reset", - "name": "innodb_monitor_reset", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "counter", - "module", - "pattern", - "all" - ] - }, - { - "cli": "--innodb-monitor-reset-all={counter|module|pattern|all}", - "default": "empty string", - "dynamic": true, - "id": "sysvar_innodb_monitor_reset_all", - "name": "innodb_monitor_reset_all", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "counter", - "module", - "pattern", - "all" - ] - }, - { - "cli": "--innodb-numa-interleave[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "id": "sysvar_innodb_numa_interleave", - "name": "innodb_numa_interleave", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-old-blocks-pct=#", - "default": "37", - "dynamic": true, - "id": "sysvar_innodb_old_blocks_pct", - "name": "innodb_old_blocks_pct", - "range": { - "from": 5, - "to": 95 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-old-blocks-time=#", - "default": "1000", - "dynamic": true, - "id": "sysvar_innodb_old_blocks_time", - "name": "innodb_old_blocks_time", - "range": { - "from": 0, - "to": 2 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-online-alter-log-max-size=#", - "default": "134217728", - "dynamic": true, - "id": "sysvar_innodb_online_alter_log_max_size", - "name": "innodb_online_alter_log_max_size", - "range": { - "from": 65536, - "to": 2 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-open-files=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": false, - "id": "sysvar_innodb_open_files", - "name": "innodb_open_files", - "range": { - "from": 10, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-optimize-fulltext-only[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_innodb_optimize_fulltext_only", - "name": "innodb_optimize_fulltext_only", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-page-cleaners=#", - "default": "4", - "dynamic": false, - "id": "sysvar_innodb_page_cleaners", - "name": "innodb_page_cleaners", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-page-size=#", - "default": "16384", - "dynamic": false, - "id": "sysvar_innodb_page_size", - "name": "innodb_page_size", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "4096", - "8192", - "16384", - "32768", - "65536" - ] - }, - { - "cli": "--innodb-parallel-read-threads=#", - "default": "4", - "dynamic": true, - "id": "sysvar_innodb_parallel_read_threads", - "name": "innodb_parallel_read_threads", - "range": { - "from": 1, - "to": 256 - }, - "scope": [ - "session" - ], - "type": "integer" - }, - { - "cli": "--innodb-print-all-deadlocks[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_innodb_print_all_deadlocks", - "name": "innodb_print_all_deadlocks", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-print-ddl-logs[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_innodb_print_ddl_logs", - "name": "innodb_print_ddl_logs", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-purge-batch-size=#", - "default": "300", - "dynamic": true, - "id": "sysvar_innodb_purge_batch_size", - "name": "innodb_purge_batch_size", - "range": { - "from": 1, - "to": 5000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-purge-threads=#", - "default": "4", - "dynamic": false, - "id": "sysvar_innodb_purge_threads", - "name": "innodb_purge_threads", - "range": { - "from": 1, - "to": 32 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-purge-rseg-truncate-frequency=#", - "default": "128", - "dynamic": true, - "id": "sysvar_innodb_purge_rseg_truncate_frequency", - "name": "innodb_purge_rseg_truncate_frequency", - "range": { - "from": 1, - "to": 128 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-random-read-ahead[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_innodb_random_read_ahead", - "name": "innodb_random_read_ahead", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-read-ahead-threshold=#", - "default": "56", - "dynamic": true, - "id": "sysvar_innodb_read_ahead_threshold", - "name": "innodb_read_ahead_threshold", - "range": { - "from": 0, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-read-io-threads=#", - "default": "4", - "dynamic": false, - "id": "sysvar_innodb_read_io_threads", - "name": "innodb_read_io_threads", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-read-only[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "id": "sysvar_innodb_read_only", - "name": "innodb_read_only", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-redo-log-archive-dirs", - "default": "NULL", - "dynamic": true, - "id": "sysvar_innodb_redo_log_archive_dirs", - "name": "innodb_redo_log_archive_dirs", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--innodb-redo-log-encrypt[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_innodb_redo_log_encrypt", - "name": "innodb_redo_log_encrypt", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-replication-delay=#", - "default": "0", - "dynamic": true, - "id": "sysvar_innodb_replication_delay", - "name": "innodb_replication_delay", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-rollback-on-timeout[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "id": "sysvar_innodb_rollback_on_timeout", - "name": "innodb_rollback_on_timeout", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-rollback-segments=#", - "default": "128", - "dynamic": true, - "id": "sysvar_innodb_rollback_segments", - "name": "innodb_rollback_segments", - "range": { - "from": 1, - "to": 128 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-scan-directories=dir_name", - "default": "NULL", - "dynamic": false, - "id": "sysvar_innodb_scan_directories", - "name": "innodb_scan_directories", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "cli": "--innodb-saved-page-number-debug=#", - "default": "0", - "dynamic": true, - "id": "sysvar_innodb_saved_page_number_debug", - "name": "innodb_saved_page_number_debug", - "range": { - "to": 2 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-sort-buffer-size=#", - "default": "1048576", - "dynamic": false, - "id": "sysvar_innodb_sort_buffer_size", - "name": "innodb_sort_buffer_size", - "range": { - "from": 65536, - "to": 67108864 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-spin-wait-delay=#", - "default": "6", - "dynamic": true, - "id": "sysvar_innodb_spin_wait_delay", - "name": "innodb_spin_wait_delay", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-spin-wait-pause-multiplier=#", - "default": "50", - "dynamic": true, - "id": "sysvar_innodb_spin_wait_pause_multiplier", - "name": "innodb_spin_wait_pause_multiplier", - "range": { - "from": 1, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-stats-auto-recalc[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "id": "sysvar_innodb_stats_auto_recalc", - "name": "innodb_stats_auto_recalc", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-stats-include-delete-marked[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_innodb_stats_include_delete_marked", - "name": "innodb_stats_include_delete_marked", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-stats-method=value", - "default": "nulls_equal", - "dynamic": true, - "id": "sysvar_innodb_stats_method", - "name": "innodb_stats_method", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "nulls_equal", - "nulls_unequal", - "nulls_ignored" - ] - }, - { - "cli": "--innodb-stats-on-metadata[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_innodb_stats_on_metadata", - "name": "innodb_stats_on_metadata", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-stats-persistent[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "id": "sysvar_innodb_stats_persistent", - "name": "innodb_stats_persistent", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-stats-persistent-sample-pages=#", - "default": "20", - "dynamic": true, - "id": "sysvar_innodb_stats_persistent_sample_pages", - "name": "innodb_stats_persistent_sample_pages", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-stats-transient-sample-pages=#", - "default": "8", - "dynamic": true, - "id": "sysvar_innodb_stats_transient_sample_pages", - "name": "innodb_stats_transient_sample_pages", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-status-output[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_innodb_status_output", - "name": "innodb_status_output", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-status-output-locks[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_innodb_status_output_locks", - "name": "innodb_status_output_locks", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-strict-mode[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "id": "sysvar_innodb_strict_mode", - "name": "innodb_strict_mode", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--innodb-sync-array-size=#", - "default": "1", - "dynamic": false, - "id": "sysvar_innodb_sync_array_size", - "name": "innodb_sync_array_size", - "range": { - "from": 1, - "to": 1024 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-sync-spin-loops=#", - "default": "30", - "dynamic": true, - "id": "sysvar_innodb_sync_spin_loops", - "name": "innodb_sync_spin_loops", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-sync-debug[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "id": "sysvar_innodb_sync_debug", - "name": "innodb_sync_debug", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-table-locks[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "id": "sysvar_innodb_table_locks", - "name": "innodb_table_locks", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--innodb-temp-data-file-path=file_name", - "default": "ibtmp1:12M:autoextend", - "dynamic": false, - "id": "sysvar_innodb_temp_data_file_path", - "name": "innodb_temp_data_file_path", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--innodb-temp-tablespaces-dir=dir_name", - "default": "#innodb_temp", - "dynamic": false, - "id": "sysvar_innodb_temp_tablespaces_dir", - "name": "innodb_temp_tablespaces_dir", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "cli": "--innodb-thread-concurrency=#", - "default": "0", - "dynamic": true, - "id": "sysvar_innodb_thread_concurrency", - "name": "innodb_thread_concurrency", - "range": { - "from": 0, - "to": 1000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-thread-sleep-delay=#", - "default": "10000", - "dynamic": true, - "id": "sysvar_innodb_thread_sleep_delay", - "name": "innodb_thread_sleep_delay", - "range": { - "from": 0, - "to": 1000000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-tmpdir=dir_name", - "default": "NULL", - "dynamic": true, - "id": "sysvar_innodb_tmpdir", - "name": "innodb_tmpdir", - "scope": [ - "global", - "session" - ], - "type": "directory name" - }, - { - "cli": "--innodb-trx-purge-view-update-only-debug[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_innodb_trx_purge_view_update_only_debug", - "name": "innodb_trx_purge_view_update_only_debug", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-trx-rseg-n-slots-debug=#", - "default": "0", - "dynamic": true, - "id": "sysvar_innodb_trx_rseg_n_slots_debug", - "name": "innodb_trx_rseg_n_slots_debug", - "range": { - "to": 1024 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-undo-directory=dir_name", - "dynamic": false, - "id": "sysvar_innodb_undo_directory", - "name": "innodb_undo_directory", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "cli": "--innodb-undo-log-encrypt[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_innodb_undo_log_encrypt", - "name": "innodb_undo_log_encrypt", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-undo-log-truncate[={OFF|ON}]", - "dynamic": true, - "id": "sysvar_innodb_undo_log_truncate", - "name": "innodb_undo_log_truncate", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-undo-logs=#", - "default": "128", - "dynamic": true, - "id": "sysvar_innodb_undo_logs", - "name": "innodb_undo_logs", - "range": { - "from": 1, - "to": 128 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-undo-tablespaces=#", - "id": "sysvar_innodb_undo_tablespaces", - "name": "innodb_undo_tablespaces", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--innodb-use-native-aio[={OFF|ON}]", - "default": "ON", - "dynamic": false, - "id": "sysvar_innodb_use_native_aio", - "name": "innodb_use_native_aio", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--innodb-write-io-threads=#", - "default": "4", - "dynamic": false, - "id": "sysvar_innodb_write_io_threads", - "name": "innodb_write_io_threads", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer" - } - ], - "name": "innodb-parameters", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-mysql-cluster-options-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-mysql-cluster-options-variables.json deleted file mode 100644 index e0d12af..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-mysql-cluster-options-variables.json +++ /dev/null @@ -1,714 +0,0 @@ -{ - "data": [ - { - "cli": "--ndbcluster", - "default": "FALSE (Version: NDB 7.5-7.6)", - "dynamic": false, - "id": "option_mysqld_ndbcluster", - "name": "ndbcluster" - }, - { - "cli": "--ndb-allow-copying-alter-table=[ON|OFF]", - "default": "ON (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "option_mysqld_ndb-allow-copying-alter-table", - "name": "ndb-allow-copying-alter-table", - "scope": [ - "global", - "session" - ] - }, - { - "cli": "--ndb-batch-size=#", - "default": "32768 / 0 - 31536000 (Version: NDB 7.5-7.6)", - "dynamic": false, - "id": "option_mysqld_ndb-batch-size", - "name": "ndb-batch-size", - "scope": [ - "global" - ] - }, - { - "cli": "--ndb-cluster-connection-pool=#", - "default": "1 / 1 - 63 (Version: NDB 7.5-7.6)", - "dynamic": false, - "id": "option_mysqld_ndb-cluster-connection-pool", - "name": "ndb-cluster-connection-pool", - "scope": [ - "global" - ] - }, - { - "cli": "--ndb-cluster-connection-pool-nodeids=list", - "default": "/ (Version: NDB 7.5-7.6)", - "dynamic": false, - "id": "option_mysqld_ndb-cluster-connection-pool-nodeids", - "name": "ndb-cluster-connection-pool-nodeids", - "scope": [ - "global" - ] - }, - { - "cli": "--ndb-blob-read-batch-bytes=bytes", - "default": "65536 / 0 - 4294967295 (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "option_mysqld_ndb-blob-read-batch-bytes", - "name": "ndb-blob-read-batch-bytes", - "scope": [ - "global", - "session" - ] - }, - { - "cli": "--ndb-blob-write-batch-bytes=bytes", - "default": "65536 / 0 - 4294967295 (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "option_mysqld_ndb-blob-write-batch-bytes", - "name": "ndb-blob-write-batch-bytes", - "scope": [ - "global", - "session" - ] - }, - { - "cli": "--ndb-connectstring=connection_string", - "default": "(Version: NDB 7.5-7.6)", - "dynamic": false, - "id": "option_mysqld_ndb-connectstring", - "name": "ndb-connectstring" - }, - { - "cli": "--ndb-default-column-format=[FIXED|DYNAMIC]", - "default": "FIXED / FIXED, DYNAMIC (Version: 5.7.16-ndb-7.5.4)", - "dynamic": true, - "id": "option_mysqld_ndb-default-column-format", - "name": "ndb-default-column-format", - "scope": [ - "global" - ] - }, - { - "cli": "--ndb-deferred-constraints=[0|1]", - "default": "0 / 0 - 1 (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "option_mysqld_ndb-deferred-constraints", - "name": "ndb-deferred-constraints", - "scope": [ - "global", - "session" - ] - }, - { - "cli": "--ndb-distribution=[KEYHASH|LINHASH]", - "default": "KEYHASH / LINHASH, KEYHASH (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "option_mysqld_ndb-distribution", - "name": "ndb-distribution", - "scope": [ - "global" - ] - }, - { - "cli": "--ndb-log-apply-status", - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": false, - "id": "option_mysqld_ndb-log-apply-status", - "name": "ndb-log-apply-status", - "scope": [ - "global" - ] - }, - { - "cli": "--ndb-log-empty-epochs=[ON|OFF]", - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "option_mysqld_ndb-log-empty-epochs", - "name": "ndb-log-empty-epochs", - "scope": [ - "global" - ] - }, - { - "cli": "--ndb-log-empty-update=[ON|OFF]", - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "option_mysqld_ndb-log-empty-update", - "name": "ndb-log-empty-update", - "scope": [ - "global" - ] - }, - { - "cli": "--ndb-log-exclusive-reads=[0|1]", - "default": "0 (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "option_mysqld_ndb-log-exclusive-reads", - "name": "ndb-log-exclusive-reads", - "scope": [ - "global", - "session" - ] - }, - { - "cli": "--ndb-log-orig", - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": false, - "id": "option_mysqld_ndb-log-orig", - "name": "ndb-log-orig", - "scope": [ - "global" - ] - }, - { - "cli": "--ndb-log-transaction-id", - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": false, - "id": "option_mysqld_ndb-log-transaction-id", - "name": "ndb-log-transaction-id", - "scope": [ - "global" - ] - }, - { - "cli": "--ndb-log-update-minimal", - "default": "OFF (Version: 5.7.18-ndb-7.6.3)", - "dynamic": true, - "id": "option_mysqld_ndb-log-update-minimal", - "name": "ndb-log-update-minimal", - "scope": [ - "global" - ] - }, - { - "cli": "--ndb-mgmd-host=host[:port]", - "default": "localhost:1186 (Version: NDB 7.5-7.6)", - "dynamic": false, - "id": "option_mysqld_ndb-mgmd-host", - "name": "ndb-mgmd-host" - }, - { - "cli": "--ndb-nodeid=#", - "default": "/ 1 - 255 (Version: 5.1.5)", - "dynamic": false, - "id": "option_mysqld_ndb-nodeid", - "name": "ndb-nodeid", - "scope": [ - "global" - ] - }, - { - "cli": "--ndb-optimization-delay=milliseconds", - "default": "10 / 0 - 100000 (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "option_mysqld_ndb-optimization-delay", - "name": "ndb-optimization-delay", - "scope": [ - "global" - ] - }, - { - "cli": "--ndb-recv-thread-activation-threshold=threshold", - "default": "8 / 0 (MIN_ACTIVATION_THRESHOLD) - 16 (MAX_ACTIVATION_THRESHOLD), (Version: 5.6.10-ndb-7.3.1)", - "dynamic": false, - "id": "option_mysqld_ndb-recv-thread-activation-threshold", - "name": "ndb-recv-thread-activation-threshold" - }, - { - "cli": "--ndb-recv-thread-cpu-mask=bitmask", - "default": "[empty] (Version: NDB 7.5-7.6)", - "dynamic": false, - "id": "option_mysqld_ndb-recv-thread-cpu-mask", - "name": "ndb-recv-thread-cpu-mask" - }, - { - "cli": "ndb-transid-mysql-connection-map=state", - "default": "ON / ON, OFF, FORCE (Version: NDB 7.5-7.6)", - "dynamic": false, - "id": "option_mysqld_ndb-transid-mysql-connection-map", - "name": "ndb-transid-mysql-connection-map" - }, - { - "cli": "--ndb-wait-connected=seconds", - "default": "30 / 0 - 31536000 (Version: 5.1.56-ndb-7.1.16)", - "dynamic": false, - "id": "option_mysqld_ndb-wait-connected", - "name": "ndb-wait-connected", - "scope": [ - "global" - ] - }, - { - "cli": "--ndb-wait-setup=seconds", - "default": "30 / 0 - 31536000 (Version: 5.1.56-ndb-7.1.16)", - "dynamic": false, - "id": "option_mysqld_ndb-wait-setup", - "name": "ndb-wait-setup", - "scope": [ - "global" - ] - }, - { - "cli": "--skip-ndbcluster", - "dynamic": false, - "id": "option_mysqld_skip-ndbcluster", - "name": "skip-ndbcluster" - }, - { - "default": "1 / 1 - 256 (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "sysvar_ndb_autoincrement_prefetch_sz", - "name": "ndb_autoincrement_prefetch_sz", - "scope": [ - "global", - "session" - ] - }, - { - "default": "0 / - (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "sysvar_ndb_cache_check_time", - "name": "ndb_cache_check_time", - "scope": [ - "global" - ] - }, - { - "default": "ON (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "sysvar_ndb_clear_apply_status", - "name": "ndb_clear_apply_status", - "scope": [ - "global" - ] - }, - { - "default": "0 / 0 - 255 (Version: 5.7.12-ndb-7.5.2)", - "dynamic": true, - "id": "sysvar_ndb_data_node_neighbour", - "name": "ndb_data_node_neighbour", - "scope": [ - "global" - ] - }, - { - "default": "FIXED / FIXED, DYNAMIC (Version: 5.7.16-ndb-7.5.4)", - "dynamic": true, - "id": "sysvar_ndb_default_column_format", - "name": "ndb_default_column_format", - "scope": [ - "global" - ] - }, - { - "default": "0 / 0 - 1 (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "sysvar_ndb_deferred_constraints", - "name": "ndb_deferred_constraints", - "scope": [ - "global", - "session" - ] - }, - { - "default": "KEYHASH / LINHASH, KEYHASH (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "sysvar_ndb_distribution", - "name": "ndb_distribution", - "scope": [ - "global" - ] - }, - { - "default": "20 / 1 - 99 (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "sysvar_ndb_eventbuffer_free_percent", - "name": "ndb_eventbuffer_free_percent", - "scope": [ - "global" - ] - }, - { - "default": "0 / 0 - 4294967295 (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "sysvar_ndb_eventbuffer_max_alloc", - "name": "ndb_eventbuffer_max_alloc", - "scope": [ - "global" - ] - }, - { - "default": "1 / - (Version: 5.1.19-ndb-6.3.0)", - "dynamic": true, - "id": "sysvar_ndb_extra_logging", - "name": "ndb_extra_logging", - "scope": [ - "global" - ] - }, - { - "default": "TRUE (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "sysvar_ndb_force_send", - "name": "ndb_force_send", - "scope": [ - "global", - "session" - ] - }, - { - "default": "OFF (Version: 5.7.12-ndb-7-5-2)", - "dynamic": true, - "id": "sysvar_ndb_fully_replicated", - "name": "ndb_fully_replicated", - "scope": [ - "global", - "session" - ] - }, - { - "default": "ON (Version: 5.5.15-ndb-7.2.1)", - "dynamic": true, - "id": "sysvar_ndb_index_stat_enable", - "name": "ndb_index_stat_enable", - "scope": [ - "global", - "session" - ] - }, - { - "default": "loop_checkon=1000ms,loop_idle=1000ms,loop_busy=100ms,, update_batch=1,read_batch=4,idle_batch=32,check_batch=32,, check_delay=1m,delete_batch=8,clean_delay=0,error_batch=4,, error_delay=1m,evict_batch=8,evict_delay=1m,cache_limit=32M,, cache_lowpct=90 (Version: 5.1.56-ndb-7.1.17)", - "dynamic": true, - "id": "sysvar_ndb_index_stat_option", - "name": "ndb_index_stat_option", - "scope": [ - "global", - "session" - ] - }, - { - "default": "TRUE (Version: 5.1.51-ndb-7.2.0)", - "dynamic": true, - "id": "sysvar_ndb_join_pushdown", - "name": "ndb_join_pushdown", - "scope": [ - "global", - "session" - ] - }, - { - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": false, - "id": "sysvar_ndb_log_apply_status", - "name": "ndb_log_apply_status", - "scope": [ - "global" - ] - }, - { - "default": "ON (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "sysvar_ndb_log_bin", - "name": "ndb_log_bin", - "scope": [ - "global", - "session" - ] - }, - { - "default": "ON (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "sysvar_ndb_log_binlog_index", - "name": "ndb_log_binlog_index", - "scope": [ - "global" - ] - }, - { - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "sysvar_ndb_log_empty_epochs", - "name": "ndb_log_empty_epochs", - "scope": [ - "global" - ] - }, - { - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "sysvar_ndb_log_empty_update", - "name": "ndb_log_empty_update", - "scope": [ - "global" - ] - }, - { - "default": "0 (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "sysvar_ndb_log_exclusive_reads", - "name": "ndb_log_exclusive_reads", - "scope": [ - "global", - "session" - ] - }, - { - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": false, - "id": "sysvar_ndb_log_orig", - "name": "ndb_log_orig", - "scope": [ - "global" - ] - }, - { - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": false, - "id": "sysvar_ndb_log_transaction_id", - "name": "ndb_log_transaction_id", - "scope": [ - "global" - ] - }, - { - "default": "3 / 0 - 3 (Version: 5.1.22-ndb-6.3.4)", - "dynamic": false, - "id": "sysvar_ndb_optimized_node_selection", - "name": "ndb_optimized_node_selection", - "scope": [ - "global" - ] - }, - { - "default": "OFF (Version: 5.7.12-ndb-7.5.2)", - "dynamic": true, - "id": "sysvar_ndb_read_backup", - "name": "ndb_read_backup", - "scope": [ - "global" - ] - }, - { - "default": "8 / 0 (MIN_ACTIVATION_THRESHOLD) - 16 (MAX_ACTIVATION_THRESHOLD), (Version: 5.6.10-ndb-7.3.1)", - "dynamic": false, - "id": "sysvar_ndb_recv_thread_activation_threshold", - "name": "ndb_recv_thread_activation_threshold" - }, - { - "default": "[empty] (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "sysvar_ndb_recv_thread_cpu_mask", - "name": "ndb_recv_thread_cpu_mask", - "scope": [ - "global" - ] - }, - { - "default": "10 / 0 - 256 (Version: 5.7.16-ndb-7.5.4)", - "dynamic": true, - "id": "sysvar_ndb_report_thresh_binlog_epoch_slip", - "name": "ndb_report_thresh_binlog_epoch_slip", - "scope": [ - "global" - ] - }, - { - "default": "1 / 0 - 1 (Version: NDB 7.6.8)", - "dynamic": true, - "id": "sysvar_ndb_report_thresh_binlog_mem_usage", - "name": "ndb_report_thresh_binlog_mem_usage", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "default": "1 / 0 - 1 (Version: NDB 7.6.8)", - "dynamic": true, - "id": "sysvar_ndb_row_checksum", - "name": "ndb_row_checksum", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "sysvar_ndb_show_foreign_key_mock_tables", - "name": "ndb_show_foreign_key_mock_tables", - "scope": [ - "global" - ] - }, - { - "default": "NONE / NONE, PRIMARY, SECONDARY, PASS (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "sysvar_ndb_slave_conflict_role", - "name": "ndb_slave_conflict_role", - "scope": [ - "global" - ] - }, - { - "default": "FALSE (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "sysvar_ndb_table_no_logging", - "name": "ndb_table_no_logging", - "scope": [ - "session" - ] - }, - { - "default": "FALSE (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "sysvar_ndb_table_temporary", - "name": "ndb_table_temporary", - "scope": [ - "session" - ] - }, - { - "dynamic": false, - "id": "sysvar_ndb_use_copying_alter_table", - "name": "ndb_use_copying_alter_table", - "scope": [ - "global", - "session" - ] - }, - { - "default": "OFF (Version: 5.1.47-ndb-7.1.8)", - "dynamic": true, - "id": "sysvar_ndb_use_exact_count", - "name": "ndb_use_exact_count", - "scope": [ - "global", - "session" - ] - }, - { - "default": "ON (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "sysvar_ndb_use_transactions", - "name": "ndb_use_transactions", - "scope": [ - "global", - "session" - ] - }, - { - "default": "(Version: NDB 7.5-7.6)", - "dynamic": false, - "id": "sysvar_ndb_version", - "name": "ndb_version", - "scope": [ - "global" - ] - }, - { - "default": "(Version: NDB 7.5-7.6)", - "dynamic": false, - "id": "sysvar_ndb_version_string", - "name": "ndb_version_string", - "scope": [ - "global" - ] - }, - { - "default": "32 / 7 - 32 (Version: NDB 7.5-7.6)", - "dynamic": false, - "id": "sysvar_server_id_bits", - "name": "server_id_bits", - "scope": [ - "global" - ] - }, - { - "default": "off (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "sysvar_slave_allow_batching", - "name": "slave_allow_batching", - "scope": [ - "global" - ] - }, - { - "default": "FALSE (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "sysvar_transaction_allow_batching", - "name": "transaction_allow_batching", - "scope": [ - "session" - ] - }, - { - "default": "ndbinfo (Version: NDB 7.5-7.6)", - "dynamic": false, - "id": "sysvar_ndbinfo_database", - "name": "ndbinfo_database", - "scope": [ - "global" - ] - }, - { - "default": "0 / - (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "sysvar_ndbinfo_max_bytes", - "name": "ndbinfo_max_bytes", - "scope": [ - "global", - "session" - ] - }, - { - "default": "10 / - (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "sysvar_ndbinfo_max_rows", - "name": "ndbinfo_max_rows", - "scope": [ - "global", - "session" - ] - }, - { - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "sysvar_ndbinfo_offline", - "name": "ndbinfo_offline", - "scope": [ - "global" - ] - }, - { - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "sysvar_ndbinfo_show_hidden", - "name": "ndbinfo_show_hidden", - "scope": [ - "global", - "session" - ] - }, - { - "default": "ndb$ (Version: NDB 7.5-7.6)", - "dynamic": true, - "id": "sysvar_ndbinfo_table_prefix", - "name": "ndbinfo_table_prefix", - "scope": [ - "global", - "session" - ] - }, - { - "default": "(Version: NDB 7.5-7.6)", - "dynamic": false, - "id": "sysvar_ndbinfo_version", - "name": "ndbinfo_version", - "scope": [ - "global" - ] - } - ], - "name": "mysql-cluster-options-variables", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-performance-schema-system-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-performance-schema-system-variables.json deleted file mode 100644 index 6a8ec5c..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-performance-schema-system-variables.json +++ /dev/null @@ -1,544 +0,0 @@ -{ - "data": [ - { - "cli": "--performance-schema[={OFF|ON}]", - "default": "ON", - "dynamic": false, - "id": "sysvar_performance_schema", - "name": "performance_schema", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--performance-schema-accounts-size=#", - "default": "(-1 signifies autoscaling; do not use -1)", - "dynamic": false, - "id": "sysvar_performance_schema_accounts_size", - "name": "performance_schema_accounts_size", - "range": { - "from": -1, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-digests-size=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": false, - "id": "sysvar_performance_schema_digests_size", - "name": "performance_schema_digests_size", - "range": { - "from": -1, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-error-size=#", - "default": "number of server error codes", - "dynamic": false, - "id": "sysvar_performance_schema_error_size", - "name": "performance_schema_error_size", - "range": { - "from": 0, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-events-stages-history-long-size=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": false, - "id": "sysvar_performance_schema_events_stages_history_long_size", - "name": "performance_schema_events_stages_history_long_size", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-events-stages-history-size=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": false, - "id": "sysvar_performance_schema_events_stages_history_size", - "name": "performance_schema_events_stages_history_size", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-events-statements-history-long-size=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": false, - "id": "sysvar_performance_schema_events_statements_history_long_size", - "name": "performance_schema_events_statements_history_long_size", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-events-statements-history-size=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": false, - "id": "sysvar_performance_schema_events_statements_history_size", - "name": "performance_schema_events_statements_history_size", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-events-transactions-history-long-size=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": false, - "id": "sysvar_performance_schema_events_transactions_history_long_size", - "name": "performance_schema_events_transactions_history_long_size", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-events-transactions-history-size=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": false, - "id": "sysvar_performance_schema_events_transactions_history_size", - "name": "performance_schema_events_transactions_history_size", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-events-waits-history-long-size=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": false, - "id": "sysvar_performance_schema_events_waits_history_long_size", - "name": "performance_schema_events_waits_history_long_size", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-events-waits-history-size=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": false, - "id": "sysvar_performance_schema_events_waits_history_size", - "name": "performance_schema_events_waits_history_size", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-hosts-size=#", - "default": "(-1 signifies autoscaling; do not use -1)", - "dynamic": false, - "id": "sysvar_performance_schema_hosts_size", - "name": "performance_schema_hosts_size", - "range": { - "from": -1, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-cond-classes=#", - "default": "80", - "dynamic": false, - "id": "sysvar_performance_schema_max_cond_classes", - "name": "performance_schema_max_cond_classes", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-cond-instances=#", - "default": "(-1 signifies autoscaling; do not use -1)", - "dynamic": false, - "id": "sysvar_performance_schema_max_cond_instances", - "name": "performance_schema_max_cond_instances", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-digest-length=#", - "default": "1024", - "dynamic": false, - "id": "sysvar_performance_schema_max_digest_length", - "name": "performance_schema_max_digest_length", - "range": { - "from": 0, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-digest-sample-age=#", - "default": "60", - "dynamic": true, - "id": "sysvar_performance_schema_max_digest_sample_age", - "name": "performance_schema_max_digest_sample_age", - "range": { - "from": 0, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-file-classes=#", - "default": "80", - "dynamic": false, - "id": "sysvar_performance_schema_max_file_classes", - "name": "performance_schema_max_file_classes", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-file-handles=#", - "default": "32768", - "dynamic": false, - "id": "sysvar_performance_schema_max_file_handles", - "name": "performance_schema_max_file_handles", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-file-instances=#", - "default": "(-1 signifies autoscaling; do not use -1)", - "dynamic": false, - "id": "sysvar_performance_schema_max_file_instances", - "name": "performance_schema_max_file_instances", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-index-stat=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": false, - "id": "sysvar_performance_schema_max_index_stat", - "name": "performance_schema_max_index_stat", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-memory-classes=#", - "dynamic": false, - "id": "sysvar_performance_schema_max_memory_classes", - "name": "performance_schema_max_memory_classes", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-metadata-locks=#", - "default": "(-1 signifies autoscaling; do not use -1)", - "dynamic": false, - "id": "sysvar_performance_schema_max_metadata_locks", - "name": "performance_schema_max_metadata_locks", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-mutex-classes=#", - "dynamic": false, - "id": "sysvar_performance_schema_max_mutex_classes", - "name": "performance_schema_max_mutex_classes", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-mutex-instances=#", - "default": "(-1 signifies autoscaling; do not use -1)", - "dynamic": false, - "id": "sysvar_performance_schema_max_mutex_instances", - "name": "performance_schema_max_mutex_instances", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-prepared-statements-instances=#", - "default": "(-1 signifies autoscaling; do not use -1)", - "dynamic": false, - "id": "sysvar_performance_schema_max_prepared_statements_instances", - "name": "performance_schema_max_prepared_statements_instances", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-rwlock-classes=#", - "default": "40", - "dynamic": false, - "id": "sysvar_performance_schema_max_rwlock_classes", - "name": "performance_schema_max_rwlock_classes", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-program-instances=#", - "default": "(-1 signifies autoscaling; do not use -1)", - "dynamic": false, - "id": "sysvar_performance_schema_max_program_instances", - "name": "performance_schema_max_program_instances", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-rwlock-instances=#", - "default": "(-1 signifies autoscaling; do not use -1)", - "dynamic": false, - "id": "sysvar_performance_schema_max_rwlock_instances", - "name": "performance_schema_max_rwlock_instances", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-socket-classes=#", - "default": "10", - "dynamic": false, - "id": "sysvar_performance_schema_max_socket_classes", - "name": "performance_schema_max_socket_classes", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-socket-instances=#", - "default": "(-1 signifies autoscaling; do not use -1)", - "dynamic": false, - "id": "sysvar_performance_schema_max_socket_instances", - "name": "performance_schema_max_socket_instances", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-sql-text-length=#", - "default": "1024", - "dynamic": false, - "id": "sysvar_performance_schema_max_sql_text_length", - "name": "performance_schema_max_sql_text_length", - "range": { - "from": 0, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-stage-classes=#", - "default": "150", - "dynamic": false, - "id": "sysvar_performance_schema_max_stage_classes", - "name": "performance_schema_max_stage_classes", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-statement-classes=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": false, - "id": "sysvar_performance_schema_max_statement_classes", - "name": "performance_schema_max_statement_classes", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-statement-stack=#", - "default": "10", - "dynamic": false, - "id": "sysvar_performance_schema_max_statement_stack", - "name": "performance_schema_max_statement_stack", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-table-handles=#", - "default": "(-1 signifies autoscaling; do not use -1)", - "dynamic": false, - "id": "sysvar_performance_schema_max_table_handles", - "name": "performance_schema_max_table_handles", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-table-instances=#", - "default": "(-1 signifies autoscaling; do not use -1)", - "dynamic": false, - "id": "sysvar_performance_schema_max_table_instances", - "name": "performance_schema_max_table_instances", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-table-lock-stat=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": false, - "id": "sysvar_performance_schema_max_table_lock_stat", - "name": "performance_schema_max_table_lock_stat", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-thread-classes=#", - "dynamic": false, - "id": "sysvar_performance_schema_max_thread_classes", - "name": "performance_schema_max_thread_classes", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-max-thread-instances=#", - "default": "(-1 signifies autoscaling; do not use -1)", - "dynamic": false, - "id": "sysvar_performance_schema_max_thread_instances", - "name": "performance_schema_max_thread_instances", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-session-connect-attrs-size=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": false, - "id": "sysvar_performance_schema_session_connect_attrs_size", - "name": "performance_schema_session_connect_attrs_size", - "range": { - "from": -1, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-setup-actors-size=#", - "default": "(-1 signifies autoscaling; do not use -1)", - "dynamic": false, - "id": "sysvar_performance_schema_setup_actors_size", - "name": "performance_schema_setup_actors_size", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-setup-objects-size=#", - "default": "(-1 signifies autoscaling; do not use -1)", - "dynamic": false, - "id": "sysvar_performance_schema_setup_objects_size", - "name": "performance_schema_setup_objects_size", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--performance-schema-users-size=#", - "default": "(-1 signifies autoscaling; do not use -1)", - "dynamic": false, - "id": "sysvar_performance_schema_users_size", - "name": "performance_schema_users_size", - "range": { - "from": -1, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - } - ], - "name": "performance-schema-system-variables", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-pluggable-authentication-system-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-pluggable-authentication-system-variables.json deleted file mode 100644 index 77db2d7..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-pluggable-authentication-system-variables.json +++ /dev/null @@ -1,342 +0,0 @@ -{ - "data": [ - { - "cli": "--authentication-ldap-sasl-auth-method-name=value", - "default": "SCRAM-SHA-1", - "dynamic": true, - "id": "sysvar_authentication_ldap_sasl_auth_method_name", - "name": "authentication_ldap_sasl_auth_method_name", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--authentication-ldap-sasl-bind-base-dn=value", - "default": "NULL", - "dynamic": true, - "id": "sysvar_authentication_ldap_sasl_bind_base_dn", - "name": "authentication_ldap_sasl_bind_base_dn", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--authentication-ldap-sasl-bind-root-dn=value", - "default": "NULL", - "dynamic": true, - "id": "sysvar_authentication_ldap_sasl_bind_root_dn", - "name": "authentication_ldap_sasl_bind_root_dn", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--authentication-ldap-sasl-bind-root-pwd=value", - "default": "NULL", - "dynamic": true, - "id": "sysvar_authentication_ldap_sasl_bind_root_pwd", - "name": "authentication_ldap_sasl_bind_root_pwd", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--authentication-ldap-sasl-ca-path=value", - "default": "NULL", - "dynamic": true, - "id": "sysvar_authentication_ldap_sasl_ca_path", - "name": "authentication_ldap_sasl_ca_path", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--authentication-ldap-sasl-group-search-attr=value", - "default": "cn", - "dynamic": true, - "id": "sysvar_authentication_ldap_sasl_group_search_attr", - "name": "authentication_ldap_sasl_group_search_attr", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--authentication-ldap-sasl-group-search-filter=value", - "default": "(|(&(objectClass=posixGroup)(memberUid=%s))(&(objectClass=group)(member=%s)))", - "dynamic": true, - "id": "sysvar_authentication_ldap_sasl_group_search_filter", - "name": "authentication_ldap_sasl_group_search_filter", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--authentication-ldap-sasl-init-pool-size=#", - "default": "10", - "dynamic": true, - "id": "sysvar_authentication_ldap_sasl_init_pool_size", - "name": "authentication_ldap_sasl_init_pool_size", - "range": { - "from": 0, - "to": 32767 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--authentication-ldap-sasl-log-status=#", - "default": "1", - "dynamic": true, - "id": "sysvar_authentication_ldap_sasl_log_status", - "name": "authentication_ldap_sasl_log_status", - "range": { - "from": 1 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--authentication-ldap-sasl-max-pool-size=#", - "default": "1000", - "dynamic": true, - "id": "sysvar_authentication_ldap_sasl_max_pool_size", - "name": "authentication_ldap_sasl_max_pool_size", - "range": { - "from": 0, - "to": 32767 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--authentication-ldap-sasl-server-host=host_name", - "dynamic": true, - "id": "sysvar_authentication_ldap_sasl_server_host", - "name": "authentication_ldap_sasl_server_host", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--authentication-ldap-sasl-server-port=port_num", - "default": "389", - "dynamic": true, - "id": "sysvar_authentication_ldap_sasl_server_port", - "name": "authentication_ldap_sasl_server_port", - "range": { - "from": 1, - "to": 32376 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--authentication-ldap-sasl-tls[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_authentication_ldap_sasl_tls", - "name": "authentication_ldap_sasl_tls", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--authentication-ldap-sasl-user-search-attr=value", - "default": "uid", - "dynamic": true, - "id": "sysvar_authentication_ldap_sasl_user_search_attr", - "name": "authentication_ldap_sasl_user_search_attr", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--authentication-ldap-simple-auth-method-name=value", - "default": "SIMPLE", - "dynamic": true, - "id": "sysvar_authentication_ldap_simple_auth_method_name", - "name": "authentication_ldap_simple_auth_method_name", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--authentication-ldap-simple-bind-base-dn=value", - "default": "NULL", - "dynamic": true, - "id": "sysvar_authentication_ldap_simple_bind_base_dn", - "name": "authentication_ldap_simple_bind_base_dn", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--authentication-ldap-simple-bind-root-dn=value", - "default": "NULL", - "dynamic": true, - "id": "sysvar_authentication_ldap_simple_bind_root_dn", - "name": "authentication_ldap_simple_bind_root_dn", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--authentication-ldap-simple-bind-root-pwd=value", - "default": "NULL", - "dynamic": true, - "id": "sysvar_authentication_ldap_simple_bind_root_pwd", - "name": "authentication_ldap_simple_bind_root_pwd", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--authentication-ldap-simple-ca-path=value", - "default": "NULL", - "dynamic": true, - "id": "sysvar_authentication_ldap_simple_ca_path", - "name": "authentication_ldap_simple_ca_path", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--authentication-ldap-simple-group-search-attr=value", - "default": "cn", - "dynamic": true, - "id": "sysvar_authentication_ldap_simple_group_search_attr", - "name": "authentication_ldap_simple_group_search_attr", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--authentication-ldap-simple-group-search-filter=value", - "default": "(|(&(objectClass=posixGroup)(memberUid=%s))(&(objectClass=group)(member=%s)))", - "dynamic": true, - "id": "sysvar_authentication_ldap_simple_group_search_filter", - "name": "authentication_ldap_simple_group_search_filter", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--authentication-ldap-simple-init-pool-size=#", - "default": "10", - "dynamic": true, - "id": "sysvar_authentication_ldap_simple_init_pool_size", - "name": "authentication_ldap_simple_init_pool_size", - "range": { - "from": 0, - "to": 32767 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--authentication-ldap-simple-log-status=#", - "default": "1", - "dynamic": true, - "id": "sysvar_authentication_ldap_simple_log_status", - "name": "authentication_ldap_simple_log_status", - "range": { - "from": 1 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--authentication-ldap-simple-max-pool-size=#", - "default": "1000", - "dynamic": true, - "id": "sysvar_authentication_ldap_simple_max_pool_size", - "name": "authentication_ldap_simple_max_pool_size", - "range": { - "from": 0, - "to": 32767 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--authentication-ldap-simple-server-host=host_name", - "dynamic": true, - "id": "sysvar_authentication_ldap_simple_server_host", - "name": "authentication_ldap_simple_server_host", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--authentication-ldap-simple-server-port=port_num", - "default": "389", - "dynamic": true, - "id": "sysvar_authentication_ldap_simple_server_port", - "name": "authentication_ldap_simple_server_port", - "range": { - "from": 1, - "to": 32376 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--authentication-ldap-simple-tls[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_authentication_ldap_simple_tls", - "name": "authentication_ldap_simple_tls", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--authentication-ldap-simple-user-search-attr=value", - "default": "uid", - "dynamic": true, - "id": "sysvar_authentication_ldap_simple_user_search_attr", - "name": "authentication_ldap_simple_user_search_attr", - "scope": [ - "global" - ], - "type": "string" - } - ], - "name": "pluggable-authentication-system-variables", - "url": "https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-replication-options-binary-log.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-replication-options-binary-log.json deleted file mode 100644 index 188370a..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-replication-options-binary-log.json +++ /dev/null @@ -1,551 +0,0 @@ -{ - "data": [ - { - "cli": "--binlog-row-event-max-size=#", - "default": "8192", - "id": "option_mysqld_binlog-row-event-max-size", - "name": "binlog_row_event_max_size", - "range": { - "from": 256 - }, - "type": "integer" - }, - { - "cli": "--log-bin=file_name", - "id": "option_mysqld_log-bin", - "name": "log_bin", - "type": "file name" - }, - { - "cli": "--log-bin-index=file_name", - "dynamic": false, - "id": "option_mysqld_log-bin-index", - "name": "log_bin_index", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--binlog-do-db=name", - "id": "option_mysqld_binlog-do-db", - "name": "binlog_do_db", - "type": "string" - }, - { - "cli": "--binlog-ignore-db=name", - "id": "option_mysqld_binlog-ignore-db", - "name": "binlog_ignore_db", - "type": "string" - }, - { - "cli": "--binlog-checksum=type", - "default": "CRC32", - "id": "option_mysqld_binlog-checksum", - "name": "binlog_checksum", - "type": "string", - "validValues": [ - "NONE", - "CRC32" - ] - }, - { - "cli": "--max-binlog-dump-events=#", - "default": "0", - "id": "option_mysqld_max-binlog-dump-events", - "name": "max_binlog_dump_events", - "type": "integer" - }, - { - "cli": "--sporadic-binlog-dump-fail[={OFF|ON}]", - "default": "OFF", - "id": "option_mysqld_sporadic-binlog-dump-fail", - "name": "sporadic_binlog_dump_fail", - "type": "boolean" - }, - { - "cli": "--binlog-cache-size=#", - "default": "32768", - "dynamic": true, - "id": "sysvar_binlog_cache_size", - "name": "binlog_cache_size", - "range": { - "from": 4096 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--binlog-checksum=name", - "default": "CRC32", - "dynamic": true, - "id": "sysvar_binlog_checksum", - "name": "binlog_checksum", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "NONE", - "CRC32" - ] - }, - { - "cli": "--binlog-direct-non-transactional-updates[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_binlog_direct_non_transactional_updates", - "name": "binlog_direct_non_transactional_updates", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--binlog-encryption[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_binlog_encryption", - "name": "binlog_encryption", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--binlog-error-action[=value]", - "default": "ABORT_SERVER", - "dynamic": true, - "id": "sysvar_binlog_error_action", - "name": "binlog_error_action", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "IGNORE_ERROR", - "ABORT_SERVER" - ] - }, - { - "cli": "--binlog-expire-logs-seconds=#", - "dynamic": true, - "id": "sysvar_binlog_expire_logs_seconds", - "name": "binlog_expire_logs_seconds", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--binlog-format=format", - "default": "ROW", - "dynamic": true, - "id": "sysvar_binlog_format", - "name": "binlog_format", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "ROW", - "STATEMENT", - "MIXED" - ] - }, - { - "cli": "--binlog-group-commit-sync-delay=#", - "default": "0", - "dynamic": true, - "id": "sysvar_binlog_group_commit_sync_delay", - "name": "binlog_group_commit_sync_delay", - "range": { - "from": 0, - "to": 1000000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--binlog-group-commit-sync-no-delay-count=#", - "default": "0", - "dynamic": true, - "id": "sysvar_binlog_group_commit_sync_no_delay_count", - "name": "binlog_group_commit_sync_no_delay_count", - "range": { - "from": 0, - "to": 1000000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--binlog-max-flush-queue-time=#", - "default": "0", - "dynamic": true, - "id": "sysvar_binlog_max_flush_queue_time", - "name": "binlog_max_flush_queue_time", - "range": { - "from": 0, - "to": 100000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--binlog-order-commits[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "id": "sysvar_binlog_order_commits", - "name": "binlog_order_commits", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--binlog-rotate-encryption-master-key-at-startup[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "id": "sysvar_binlog_rotate_encryption_master_key_at_startup", - "name": "binlog_rotate_encryption_master_key_at_startup", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--binlog-row-event-max-size=#", - "default": "8192", - "id": "sysvar_binlog_row_event_max_size", - "name": "binlog_row_event_max_size", - "range": { - "from": 256 - }, - "type": "integer" - }, - { - "cli": "--binlog-row-image=image_type", - "default": "full", - "dynamic": true, - "id": "sysvar_binlog_row_image", - "name": "binlog_row_image", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "full", - "minimal", - "noblob" - ] - }, - { - "cli": "--binlog-row-metadata=metadata_type", - "default": "MINIMAL", - "dynamic": true, - "id": "sysvar_binlog_row_metadata", - "name": "binlog_row_metadata", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "FULL", - "MINIMAL" - ] - }, - { - "cli": "--binlog-row-value-options=#", - "default": "''", - "dynamic": true, - "id": "sysvar_binlog_row_value_options", - "name": "binlog_row_value_options", - "scope": [ - "global", - "session" - ], - "type": "set", - "validValues": [ - "PARTIAL_JSON" - ] - }, - { - "cli": "--binlog-rows-query-log-events[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_binlog_rows_query_log_events", - "name": "binlog_rows_query_log_events", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--binlog-stmt-cache-size=#", - "default": "32768", - "dynamic": true, - "id": "sysvar_binlog_stmt_cache_size", - "name": "binlog_stmt_cache_size", - "range": { - "from": 4096 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--binlog-transaction-dependency-tracking=value", - "default": "COMMIT_ORDER", - "dynamic": true, - "id": "sysvar_binlog_transaction_dependency_tracking", - "name": "binlog_transaction_dependency_tracking", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "COMMIT_ORDER", - "WRITESET", - "WRITESET_SESSION" - ] - }, - { - "cli": "--binlog-transaction-dependency-history-size=#", - "default": "25000", - "dynamic": true, - "id": "sysvar_binlog_transaction_dependency_history_size", - "name": "binlog_transaction_dependency_history_size", - "range": { - "from": 1, - "to": 1000000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--expire-logs-days=#", - "dynamic": true, - "id": "sysvar_expire_logs_days", - "name": "expire_logs_days", - "range": { - "from": 0, - "to": 99 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "dynamic": false, - "id": "sysvar_log_bin", - "name": "log_bin", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "dynamic": false, - "id": "sysvar_log_bin_basename", - "name": "log_bin_basename", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--log-bin-index=file_name", - "dynamic": false, - "id": "sysvar_log_bin_index", - "name": "log_bin_index", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--log-bin-trust-function-creators[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_log_bin_trust_function_creators", - "name": "log_bin_trust_function_creators", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--log-bin-use-v1-row-events[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "id": "sysvar_log_bin_use_v1_row_events", - "name": "log_bin_use_v1_row_events", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--log-builtin-as-identified-by-password[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_log_builtin_as_identified_by_password", - "name": "log_builtin_as_identified_by_password", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--log-slave-updates[={OFF|ON}]", - "dynamic": false, - "id": "sysvar_log_slave_updates", - "name": "log_slave_updates", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--log-statements-unsafe-for-binlog[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "id": "sysvar_log_statements_unsafe_for_binlog", - "name": "log_statements_unsafe_for_binlog", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--master-verify-checksum[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_master_verify_checksum", - "name": "master_verify_checksum", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--max-binlog-cache-size=#", - "default": "18446744073709551615", - "dynamic": true, - "id": "sysvar_max_binlog_cache_size", - "name": "max_binlog_cache_size", - "range": { - "from": 4096, - "to": 18446744073709552000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--max-binlog-size=#", - "default": "1073741824", - "dynamic": true, - "id": "sysvar_max_binlog_size", - "name": "max_binlog_size", - "range": { - "from": 4096, - "to": 1073741824 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--max-binlog-stmt-cache-size=#", - "default": "18446744073709547520", - "dynamic": true, - "id": "sysvar_max_binlog_stmt_cache_size", - "name": "max_binlog_stmt_cache_size", - "range": { - "from": 4096, - "to": 18446744073709548000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "sysvar_original_commit_timestamp", - "name": "original_commit_timestamp", - "scope": [ - "session" - ], - "type": "numeric" - }, - { - "default": "ON", - "dynamic": true, - "id": "sysvar_sql_log_bin", - "name": "sql_log_bin", - "scope": [ - "session" - ], - "type": "boolean" - }, - { - "cli": "--sync-binlog=#", - "default": "1", - "dynamic": true, - "id": "sysvar_sync_binlog", - "name": "sync_binlog", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--transaction-write-set-extraction[=value]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_transaction_write_set_extraction", - "name": "transaction_write_set_extraction", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "OFF", - "MURMUR32", - "XXHASH64" - ] - } - ], - "name": "replication-options-binary-log", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-replication-options-binary-log_5.7.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-replication-options-binary-log_5.7.json deleted file mode 100644 index cbf23d1..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-replication-options-binary-log_5.7.json +++ /dev/null @@ -1,487 +0,0 @@ -{ - "data": [ - { - "cli": "--binlog-row-event-max-size=#", - "default": "8192", - "id": "option_mysqld_binlog-row-event-max-size", - "name": "binlog_row_event_max_size", - "range": { - "from": 256 - }, - "type": "integer" - }, - { - "cli": "--log-bin=file_name", - "id": "option_mysqld_log-bin", - "name": "log_bin", - "type": "file name" - }, - { - "cli": "--log-bin-index=file_name", - "dynamic": false, - "id": "option_mysqld_log-bin-index", - "name": "log_bin_index", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--binlog-do-db=name", - "id": "option_mysqld_binlog-do-db", - "name": "binlog_do_db", - "type": "string" - }, - { - "cli": "--binlog-ignore-db=name", - "id": "option_mysqld_binlog-ignore-db", - "name": "binlog_ignore_db", - "type": "string" - }, - { - "cli": "--binlog-checksum=type", - "default": "CRC32", - "id": "option_mysqld_binlog-checksum", - "name": "binlog_checksum", - "type": "string", - "validValues": [ - "NONE", - "CRC32" - ] - }, - { - "cli": "--max-binlog-dump-events=#", - "default": "0", - "id": "option_mysqld_max-binlog-dump-events", - "name": "max_binlog_dump_events", - "type": "integer" - }, - { - "cli": "--sporadic-binlog-dump-fail[={OFF|ON}]", - "default": "OFF", - "id": "option_mysqld_sporadic-binlog-dump-fail", - "name": "sporadic_binlog_dump_fail", - "type": "boolean" - }, - { - "cli": "--binlog-cache-size=#", - "default": "32768", - "dynamic": true, - "id": "sysvar_binlog_cache_size", - "name": "binlog_cache_size", - "range": { - "from": 4096 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--binlog-checksum=name", - "default": "CRC32", - "dynamic": true, - "id": "sysvar_binlog_checksum", - "name": "binlog_checksum", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "NONE", - "CRC32" - ] - }, - { - "cli": "--binlog-direct-non-transactional-updates[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_binlog_direct_non_transactional_updates", - "name": "binlog_direct_non_transactional_updates", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--binlog-error-action[=value]", - "dynamic": true, - "id": "sysvar_binlog_error_action", - "name": "binlog_error_action", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "IGNORE_ERROR", - "ABORT_SERVER" - ] - }, - { - "cli": "--binlog-format=format", - "dynamic": true, - "id": "sysvar_binlog_format", - "name": "binlog_format", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "ROW", - "STATEMENT", - "MIXED" - ] - }, - { - "cli": "--binlog-group-commit-sync-delay=#", - "default": "0", - "dynamic": true, - "id": "sysvar_binlog_group_commit_sync_delay", - "name": "binlog_group_commit_sync_delay", - "range": { - "from": 0, - "to": 1000000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--binlog-group-commit-sync-no-delay-count=#", - "default": "0", - "dynamic": true, - "id": "sysvar_binlog_group_commit_sync_no_delay_count", - "name": "binlog_group_commit_sync_no_delay_count", - "range": { - "from": 0, - "to": 1000000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--binlogging-impossible-mode[=value]", - "default": "IGNORE_ERROR", - "dynamic": true, - "id": "sysvar_binlogging_impossible_mode", - "name": "binlogging_impossible_mode", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "IGNORE_ERROR", - "ABORT_SERVER" - ] - }, - { - "cli": "--binlog-max-flush-queue-time=#", - "default": "0", - "dynamic": true, - "id": "sysvar_binlog_max_flush_queue_time", - "name": "binlog_max_flush_queue_time", - "range": { - "from": 0, - "to": 100000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--binlog-order-commits[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "id": "sysvar_binlog_order_commits", - "name": "binlog_order_commits", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--binlog-row-image=image_type", - "default": "full", - "dynamic": true, - "id": "sysvar_binlog_row_image", - "name": "binlog_row_image", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "full", - "minimal", - "noblob" - ] - }, - { - "cli": "--binlog-rows-query-log-events[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_binlog_rows_query_log_events", - "name": "binlog_rows_query_log_events", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--binlog-stmt-cache-size=#", - "default": "32768", - "dynamic": true, - "id": "sysvar_binlog_stmt_cache_size", - "name": "binlog_stmt_cache_size", - "range": { - "from": 4096 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--binlog-transaction-dependency-tracking=value", - "default": "COMMIT_ORDER", - "dynamic": true, - "id": "sysvar_binlog_transaction_dependency_tracking", - "name": "binlog_transaction_dependency_tracking", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "COMMIT_ORDER", - "WRITESET", - "WRITESET_SESSION" - ] - }, - { - "cli": "--binlog-transaction-dependency-history-size=#", - "default": "25000", - "dynamic": true, - "id": "sysvar_binlog_transaction_dependency_history_size", - "name": "binlog_transaction_dependency_history_size", - "range": { - "from": 1, - "to": 1000000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--expire-logs-days=#", - "default": "0", - "dynamic": true, - "id": "sysvar_expire_logs_days", - "name": "expire_logs_days", - "range": { - "from": 0, - "to": 99 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--log-backward-compatible-user-definitions[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_log_backward_compatible_user_definitions", - "name": "log_backward_compatible_user_definitions", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "dynamic": false, - "id": "sysvar_log_bin", - "name": "log_bin", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "dynamic": false, - "id": "sysvar_log_bin_basename", - "name": "log_bin_basename", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--log-bin-index=file_name", - "dynamic": false, - "id": "sysvar_log_bin_index", - "name": "log_bin_index", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--log-bin-trust-function-creators[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_log_bin_trust_function_creators", - "name": "log_bin_trust_function_creators", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--log-bin-use-v1-row-events[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "id": "sysvar_log_bin_use_v1_row_events", - "name": "log_bin_use_v1_row_events", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--log-builtin-as-identified-by-password[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_log_builtin_as_identified_by_password", - "name": "log_builtin_as_identified_by_password", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--log-slave-updates[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "id": "sysvar_log_slave_updates", - "name": "log_slave_updates", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--log-statements-unsafe-for-binlog[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "id": "sysvar_log_statements_unsafe_for_binlog", - "name": "log_statements_unsafe_for_binlog", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--master-verify-checksum[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_master_verify_checksum", - "name": "master_verify_checksum", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--max-binlog-cache-size=#", - "default": "18446744073709551615", - "dynamic": true, - "id": "sysvar_max_binlog_cache_size", - "name": "max_binlog_cache_size", - "range": { - "from": 4096, - "to": 18446744073709552000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--max-binlog-size=#", - "default": "1073741824", - "dynamic": true, - "id": "sysvar_max_binlog_size", - "name": "max_binlog_size", - "range": { - "from": 4096, - "to": 1073741824 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--max-binlog-stmt-cache-size=#", - "default": "18446744073709547520", - "dynamic": true, - "id": "sysvar_max_binlog_stmt_cache_size", - "name": "max_binlog_stmt_cache_size", - "range": { - "from": 4096, - "to": 18446744073709548000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "default": "ON", - "dynamic": true, - "id": "sysvar_sql_log_bin", - "name": "sql_log_bin", - "scope": [ - "session" - ], - "type": "boolean" - }, - { - "cli": "--sync-binlog=#", - "dynamic": true, - "id": "sysvar_sync_binlog", - "name": "sync_binlog", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--transaction-write-set-extraction[=value]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_transaction_write_set_extraction", - "name": "transaction_write_set_extraction", - "scope": [ - "global", - "session" - ], - "type": "enumeration" - } - ], - "name": "replication-options-binary-log_5.7", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-replication-options-gtids.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-replication-options-gtids.json deleted file mode 100644 index bda6474..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-replication-options-gtids.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "data": [ - { - "cli": "--binlog-gtid-simple-recovery[={OFF|ON}]", - "default": "ON", - "dynamic": false, - "id": "sysvar_binlog_gtid_simple_recovery", - "name": "binlog_gtid_simple_recovery", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--enforce-gtid-consistency[=value]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_enforce_gtid_consistency", - "name": "enforce_gtid_consistency", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "OFF", - "ON", - "WARN" - ] - }, - { - "dynamic": false, - "id": "sysvar_gtid_executed", - "name": "gtid_executed", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "cli": "--gtid-executed-compression-period=#", - "default": "1000", - "dynamic": true, - "id": "sysvar_gtid_executed_compression_period", - "name": "gtid_executed_compression_period", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--gtid-mode=MODE", - "default": "OFF", - "dynamic": true, - "id": "sysvar_gtid_mode", - "name": "gtid_mode", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "OFF", - "OFF_PERMISSIVE", - "ON_PERMISSIVE", - "ON" - ] - }, - { - "default": "AUTOMATIC", - "dynamic": true, - "id": "sysvar_gtid_next", - "name": "gtid_next", - "scope": [ - "session" - ], - "type": "enumeration", - "validValues": [ - "AUTOMATIC", - "ANONYMOUS", - "UUID:NUMBER" - ] - }, - { - "dynamic": false, - "id": "sysvar_gtid_owned", - "name": "gtid_owned", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "dynamic": true, - "id": "sysvar_gtid_purged", - "name": "gtid_purged", - "scope": [ - "global" - ], - "type": "string" - } - ], - "name": "replication-options-gtids", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-gtids.html" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-replication-options-master.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-replication-options-master.json deleted file mode 100644 index 1bfcd1f..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-replication-options-master.json +++ /dev/null @@ -1,137 +0,0 @@ -{ - "data": [ - { - "cli": "--show-slave-auth-info[={OFF|ON}]", - "default": "OFF", - "id": "option_mysqld_show-slave-auth-info", - "name": "show_slave_auth_info", - "type": "boolean" - }, - { - "cli": "--auto-increment-increment=#", - "default": "1", - "dynamic": true, - "id": "sysvar_auto_increment_increment", - "name": "auto_increment_increment", - "range": { - "from": 1, - "to": 65535 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--auto-increment-offset=#", - "default": "1", - "dynamic": true, - "id": "sysvar_auto_increment_offset", - "name": "auto_increment_offset", - "range": { - "from": 1, - "to": 65535 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "sysvar_immediate_server_version", - "name": "immediate_server_version", - "scope": [ - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "sysvar_original_server_version", - "name": "original_server_version", - "scope": [ - "session" - ], - "type": "integer" - }, - { - "cli": "--rpl-semi-sync-master-enabled[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_rpl_semi_sync_master_enabled", - "name": "rpl_semi_sync_master_enabled", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rpl-semi-sync-master-timeout=#", - "default": "10000", - "dynamic": true, - "id": "sysvar_rpl_semi_sync_master_timeout", - "name": "rpl_semi_sync_master_timeout", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rpl-semi-sync-master-trace-level=#", - "default": "32", - "dynamic": true, - "id": "sysvar_rpl_semi_sync_master_trace_level", - "name": "rpl_semi_sync_master_trace_level", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rpl-semi-sync-master-wait-for-slave-count=#", - "default": "1", - "dynamic": true, - "id": "sysvar_rpl_semi_sync_master_wait_for_slave_count", - "name": "rpl_semi_sync_master_wait_for_slave_count", - "range": { - "from": 1, - "to": 65535 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rpl-semi-sync-master-wait-no-slave[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "id": "sysvar_rpl_semi_sync_master_wait_no_slave", - "name": "rpl_semi_sync_master_wait_no_slave", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rpl-semi-sync-master-wait-point=value", - "default": "AFTER_SYNC", - "dynamic": true, - "id": "sysvar_rpl_semi_sync_master_wait_point", - "name": "rpl_semi_sync_master_wait_point", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "AFTER_SYNC", - "AFTER_COMMIT" - ] - } - ], - "name": "replication-options-master", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-master.html" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-replication-options-slave.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-replication-options-slave.json deleted file mode 100644 index 42b8570..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-replication-options-slave.json +++ /dev/null @@ -1,676 +0,0 @@ -{ - "data": [ - { - "cli": "--master-info-file=file_name", - "default": "master.info", - "id": "option_mysqld_master-info-file", - "name": "master_info_file", - "type": "file name" - }, - { - "cli": "--master-retry-count=#", - "default": "86400", - "id": "option_mysqld_master-retry-count", - "name": "master_retry_count", - "range": { - "from": 0 - }, - "type": "integer" - }, - { - "cli": "--max-relay-log-size=#", - "default": "0", - "dynamic": true, - "id": "option_mysqld_max-relay-log-size", - "name": "max_relay_log_size", - "range": { - "from": 0, - "to": 1073741824 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--relay-log-purge[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "id": "option_mysqld_relay-log-purge", - "name": "relay_log_purge", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--relay-log-space-limit=#", - "default": "0", - "dynamic": false, - "id": "option_mysqld_relay-log-space-limit", - "name": "relay_log_space_limit", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--replicate-do-db=name", - "id": "option_mysqld_replicate-do-db", - "name": "replicate_do_db", - "type": "string" - }, - { - "cli": "--replicate-ignore-db=name", - "id": "option_mysqld_replicate-ignore-db", - "name": "replicate_ignore_db", - "type": "string" - }, - { - "cli": "--replicate-do-table=name", - "id": "option_mysqld_replicate-do-table", - "name": "replicate_do_table", - "type": "string" - }, - { - "cli": "--replicate-ignore-table=name", - "id": "option_mysqld_replicate-ignore-table", - "name": "replicate_ignore_table", - "type": "string" - }, - { - "cli": "--replicate-rewrite-db=old_name->new_name", - "id": "option_mysqld_replicate-rewrite-db", - "name": "replicate_rewrite_db", - "type": "string" - }, - { - "cli": "--replicate-same-server-id[={OFF|ON}]", - "default": "OFF", - "id": "option_mysqld_replicate-same-server-id", - "name": "replicate_same_server_id", - "type": "boolean" - }, - { - "cli": "--replicate-wild-do-table=name", - "id": "option_mysqld_replicate-wild-do-table", - "name": "replicate_wild_do_table", - "type": "string" - }, - { - "cli": "--replicate-wild-ignore-table=name", - "id": "option_mysqld_replicate-wild-ignore-table", - "name": "replicate_wild_ignore_table", - "type": "string" - }, - { - "cli": "--skip-slave-start[={OFF|ON}]", - "default": "OFF", - "id": "option_mysqld_skip-slave-start", - "name": "skip_slave_start", - "type": "boolean" - }, - { - "cli": "--slave-skip-errors=name", - "default": "OFF", - "dynamic": false, - "id": "option_mysqld_slave-skip-errors", - "name": "slave_skip_errors", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "OFF", - "[list of error codes]", - "all", - "ddl_exist_errors" - ] - }, - { - "cli": "--slave-sql-verify-checksum[={OFF|ON}]", - "default": "ON", - "id": "option_mysqld_slave-sql-verify-checksum", - "name": "slave_sql_verify_checksum", - "type": "boolean" - }, - { - "cli": "--abort-slave-event-count=#", - "default": "0", - "id": "option_mysqld_abort-slave-event-count", - "name": "abort_slave_event_count", - "range": { - "from": 0 - }, - "type": "integer" - }, - { - "cli": "--disconnect-slave-event-count=#", - "default": "0", - "id": "option_mysqld_disconnect-slave-event-count", - "name": "disconnect_slave_event_count", - "type": "integer" - }, - { - "cli": "--init-slave=name", - "dynamic": true, - "id": "sysvar_init_slave", - "name": "init_slave", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--log-slow-slave-statements[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_log_slow_slave_statements", - "name": "log_slow_slave_statements", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--master-info-repository={FILE|TABLE}", - "dynamic": true, - "id": "sysvar_master_info_repository", - "name": "master_info_repository", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "FILE", - "TABLE" - ] - }, - { - "cli": "--max-relay-log-size=#", - "default": "0", - "dynamic": true, - "id": "sysvar_max_relay_log_size", - "name": "max_relay_log_size", - "range": { - "from": 0, - "to": 1073741824 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--relay-log=file_name", - "dynamic": false, - "id": "sysvar_relay_log", - "name": "relay_log", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "default": "datadir + '/' + hostname + '-relay-bin'", - "dynamic": false, - "id": "sysvar_relay_log_basename", - "name": "relay_log_basename", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--relay-log-index=file_name", - "default": "*host_name*-relay-bin.index", - "dynamic": false, - "id": "sysvar_relay_log_index", - "name": "relay_log_index", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--relay-log-info-file=file_name", - "default": "relay-log.info", - "dynamic": false, - "id": "sysvar_relay_log_info_file", - "name": "relay_log_info_file", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--relay-log-info-repository=value", - "dynamic": true, - "id": "sysvar_relay_log_info_repository", - "name": "relay_log_info_repository", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "FILE", - "TABLE" - ] - }, - { - "cli": "--relay-log-purge[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "id": "sysvar_relay_log_purge", - "name": "relay_log_purge", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--relay-log-recovery[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "id": "sysvar_relay_log_recovery", - "name": "relay_log_recovery", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--relay-log-space-limit=#", - "default": "0", - "dynamic": false, - "id": "sysvar_relay_log_space_limit", - "name": "relay_log_space_limit", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--report-host=host_name", - "dynamic": false, - "id": "sysvar_report_host", - "name": "report_host", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--report-password=name", - "dynamic": false, - "id": "sysvar_report_password", - "name": "report_password", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--report-port=port_num", - "default": "[slave_port]", - "dynamic": false, - "id": "sysvar_report_port", - "name": "report_port", - "range": { - "from": 0, - "to": 65535 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--report-user=name", - "dynamic": false, - "id": "sysvar_report_user", - "name": "report_user", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--rpl-read-size=#", - "default": "8192", - "dynamic": true, - "id": "sysvar_rpl_read_size", - "name": "rpl_read_size", - "range": { - "from": 8192, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rpl-semi-sync-slave-enabled[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_rpl_semi_sync_slave_enabled", - "name": "rpl_semi_sync_slave_enabled", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--rpl-semi-sync-slave-trace-level=#", - "default": "32", - "dynamic": true, - "id": "sysvar_rpl_semi_sync_slave_trace_level", - "name": "rpl_semi_sync_slave_trace_level", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--rpl-stop-slave-timeout=seconds", - "default": "31536000", - "dynamic": true, - "id": "sysvar_rpl_stop_slave_timeout", - "name": "rpl_stop_slave_timeout", - "range": { - "from": 2, - "to": 31536000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--slave-checkpoint-group=#", - "default": "512", - "dynamic": true, - "id": "sysvar_slave_checkpoint_group", - "name": "slave_checkpoint_group", - "range": { - "from": 32, - "to": 524280 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--slave-checkpoint-period=#", - "default": "300", - "dynamic": true, - "id": "sysvar_slave_checkpoint_period", - "name": "slave_checkpoint_period", - "range": { - "from": 1, - "to": 4 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--slave-compressed-protocol[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_slave_compressed_protocol", - "name": "slave_compressed_protocol", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--slave-exec-mode=mode", - "default": "IDEMPOTENT (NDB)STRICT (Other)", - "dynamic": true, - "id": "sysvar_slave_exec_mode", - "name": "slave_exec_mode", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "IDEMPOTENT", - "STRICT" - ] - }, - { - "cli": "--slave-load-tmpdir=dir_name", - "default": "Value of --tmpdir", - "dynamic": false, - "id": "sysvar_slave_load_tmpdir", - "name": "slave_load_tmpdir", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "cli": "--slave-max-allowed-packet=#", - "default": "1073741824", - "dynamic": true, - "id": "sysvar_slave_max_allowed_packet", - "name": "slave_max_allowed_packet", - "range": { - "from": 1024, - "to": 1073741824 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--slave-net-timeout=#", - "default": "60", - "dynamic": true, - "id": "sysvar_slave_net_timeout", - "name": "slave_net_timeout", - "range": { - "from": 1 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--slave-parallel-type=value", - "default": "DATABASE", - "dynamic": true, - "id": "sysvar_slave_parallel_type", - "name": "slave_parallel_type", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "DATABASE", - "LOGICAL_CLOCK" - ] - }, - { - "cli": "--slave-parallel-workers=#", - "default": "0", - "dynamic": true, - "id": "sysvar_slave_parallel_workers", - "name": "slave_parallel_workers", - "range": { - "from": 0, - "to": 1024 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--slave-pending-jobs-size-max=#", - "dynamic": true, - "id": "sysvar_slave_pending_jobs_size_max", - "name": "slave_pending_jobs_size_max", - "range": { - "from": 1024, - "to": 16 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--slave-preserve-commit-order[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_slave_preserve_commit_order", - "name": "slave_preserve_commit_order", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--slave-rows-search-algorithms=value", - "dynamic": true, - "id": "sysvar_slave_rows_search_algorithms", - "name": "slave_rows_search_algorithms", - "scope": [ - "global" - ], - "type": "set", - "validValues": [ - "TABLE_SCAN,INDEX_SCAN", - "INDEX_SCAN,HASH_SCAN", - "TABLE_SCAN,HASH_SCAN", - "TABLE_SCAN,INDEX_SCAN,HASH_SCAN" - ] - }, - { - "cli": "--slave-skip-errors=name", - "default": "OFF", - "dynamic": false, - "id": "sysvar_slave_skip_errors", - "name": "slave_skip_errors", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "OFF", - "[list of error codes]", - "all", - "ddl_exist_errors" - ] - }, - { - "cli": "--slave-sql-verify-checksum[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "id": "sysvar_slave_sql_verify_checksum", - "name": "slave_sql_verify_checksum", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--slave-transaction-retries=#", - "default": "10", - "dynamic": true, - "id": "sysvar_slave_transaction_retries", - "name": "slave_transaction_retries", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--slave-type-conversions=set", - "default": "", - "dynamic": false, - "id": "sysvar_slave_type_conversions", - "name": "slave_type_conversions", - "scope": [ - "global" - ], - "type": "set", - "validValues": [ - "ALL_LOSSY", - "ALL_NON_LOSSY", - "ALL_SIGNED", - "ALL_UNSIGNED" - ] - }, - { - "dynamic": true, - "id": "sysvar_sql_slave_skip_counter", - "name": "sql_slave_skip_counter", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--sync-master-info=#", - "default": "10000", - "dynamic": true, - "id": "sysvar_sync_master_info", - "name": "sync_master_info", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--sync-relay-log=#", - "default": "10000", - "dynamic": true, - "id": "sysvar_sync_relay_log", - "name": "sync_relay_log", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--sync-relay-log-info=#", - "default": "10000", - "dynamic": true, - "id": "sysvar_sync_relay_log_info", - "name": "sync_relay_log_info", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer" - } - ], - "name": "replication-options-slave", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-replication-options.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-replication-options.json deleted file mode 100644 index 080e543..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-replication-options.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "data": [ - { - "cli": "--server-id=#", - "dynamic": true, - "id": "sysvar_server_id", - "name": "server_id", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "dynamic": false, - "id": "sysvar_server_uuid", - "name": "server_uuid", - "scope": [ - "global" - ], - "type": "string" - } - ], - "name": "replication-options", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options.html" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-server-options.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-server-options.json deleted file mode 100644 index 34f3439..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-server-options.json +++ /dev/null @@ -1,535 +0,0 @@ -{ - "data": [ - { - "cli": "--help", - "id": "option_mysqld_help", - "name": "help" - }, - { - "cli": "--allow-suspicious-udfs[={OFF|ON}]", - "default": "OFF", - "id": "option_mysqld_allow-suspicious-udfs", - "name": "allow_suspicious_udfs", - "type": "boolean" - }, - { - "cli": "--ansi", - "id": "option_mysqld_ansi", - "name": "ansi" - }, - { - "cli": "--basedir=dir_name", - "dynamic": false, - "id": "sysvar_basedir", - "name": "basedir", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "cli": "--character-set-client-handshake[={OFF|ON}]", - "default": "ON", - "id": "option_mysqld_character-set-client-handshake", - "name": "character_set_client_handshake", - "type": "boolean" - }, - { - "cli": "--chroot=dir_name", - "id": "option_mysqld_chroot", - "name": "chroot", - "type": "directory name" - }, - { - "cli": "--console", - "id": "option_mysqld_console", - "name": "console" - }, - { - "cli": "--core-file[={OFF|ON}]", - "default": "OFF", - "id": "option_mysqld_core-file", - "name": "core_file", - "type": "boolean" - }, - { - "cli": "--daemonize[={OFF|ON}]", - "default": "OFF", - "id": "option_mysqld_daemonize", - "name": "daemonize", - "type": "boolean" - }, - { - "cli": "--datadir=dir_name", - "dynamic": false, - "id": "sysvar_datadir", - "name": "datadir", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "cli": "--debug[=debug_options]", - "dynamic": true, - "id": "option_mysqld_debug", - "name": "debug", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "cli": "--debug-sync-timeout[=#]", - "id": "option_mysqld_debug-sync-timeout", - "name": "debug_sync_timeout", - "type": "integer" - }, - { - "cli": "--default-time-zone=name", - "id": "option_mysqld_default-time-zone", - "name": "default_time_zone", - "type": "string" - }, - { - "cli": "--des-key-file=file_name", - "id": "option_mysqld_des-key-file", - "name": "des_key_file" - }, - { - "cli": "--early-plugin-load=plugin_list", - "default": "empty string", - "id": "option_mysqld_early-plugin-load", - "name": "early_plugin_load", - "type": "string" - }, - { - "cli": "--exit-info[=flags]", - "id": "option_mysqld_exit-info", - "name": "exit_info", - "type": "integer" - }, - { - "cli": "--external-locking[={OFF|ON}]", - "default": "OFF", - "id": "option_mysqld_external-locking", - "name": "external_locking", - "type": "boolean" - }, - { - "cli": "--flush[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "option_mysqld_flush", - "name": "flush", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--gdb[={OFF|ON}]", - "default": "OFF", - "id": "option_mysqld_gdb", - "name": "gdb", - "type": "boolean" - }, - { - "cli": "--initialize[={OFF|ON}]", - "default": "OFF", - "id": "option_mysqld_initialize", - "name": "initialize", - "type": "boolean" - }, - { - "cli": "--initialize-insecure[={OFF|ON}]", - "default": "OFF", - "id": "option_mysqld_initialize-insecure", - "name": "initialize_insecure", - "type": "boolean" - }, - { - "cli": "--install [service_name]", - "id": "option_mysqld_install", - "name": "install" - }, - { - "cli": "--install-manual [service_name]", - "id": "option_mysqld_install-manual", - "name": "install_manual" - }, - { - "cli": "--language=name", - "default": "/usr/local/mysql/share/mysql/english/", - "dynamic": false, - "id": "option_mysqld_language", - "name": "language", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "cli": "--large-pages[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "id": "option_mysqld_large-pages", - "name": "large_pages", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--lc-messages=name", - "default": "en_US", - "dynamic": true, - "id": "option_mysqld_lc-messages", - "name": "lc_messages", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "cli": "--lc-messages-dir=dir_name", - "dynamic": false, - "id": "option_mysqld_lc-messages-dir", - "name": "lc_messages_dir", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "cli": "--local-service", - "id": "option_mysqld_local-service", - "name": "local_service" - }, - { - "cli": "--log-error[=file_name]", - "dynamic": false, - "id": "option_mysqld_log-error", - "name": "log_error", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--log-isam[=file_name]", - "id": "option_mysqld_log-isam", - "name": "log_isam", - "type": "file name" - }, - { - "cli": "--log-raw[={OFF|ON}]", - "default": "OFF", - "id": "option_mysqld_log-raw", - "name": "log_raw", - "type": "boolean" - }, - { - "cli": "--log-short-format[={OFF|ON}]", - "default": "OFF", - "id": "option_mysqld_log-short-format", - "name": "log_short_format", - "type": "boolean" - }, - { - "cli": "--log-tc=file_name", - "default": "tc.log", - "id": "option_mysqld_log-tc", - "name": "log_tc", - "type": "file name" - }, - { - "cli": "--log-tc-size=#", - "default": "6 * page size", - "id": "option_mysqld_log-tc-size", - "name": "log_tc_size", - "range": { - "from": 6 - }, - "type": "integer" - }, - { - "cli": "--log-warnings[=#]", - "default": "2", - "dynamic": true, - "id": "option_mysqld_log-warnings", - "name": "log_warnings", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--memlock[={OFF|ON}]", - "default": "OFF", - "id": "option_mysqld_memlock", - "name": "memlock", - "type": "boolean" - }, - { - "cli": "--myisam-block-size=#", - "default": "1024", - "id": "option_mysqld_myisam-block-size", - "name": "myisam_block_size", - "range": { - "from": 1024, - "to": 16384 - }, - "type": "integer" - }, - { - "cli": "--no-dd-upgrade[={OFF|ON}]", - "default": "OFF", - "id": "option_mysqld_no-dd-upgrade", - "name": "no_dd_upgrade", - "type": "boolean" - }, - { - "cli": "--no-monitor[={OFF|ON}]", - "default": "OFF", - "id": "option_mysqld_no-monitor", - "name": "no_monitor", - "type": "boolean" - }, - { - "cli": "--old-style-user-limits[={OFF|ON}]", - "default": "OFF", - "id": "option_mysqld_old-style-user-limits", - "name": "old_style_user_limits", - "type": "boolean" - }, - { - "cli": "--plugin-load=plugin_list", - "dynamic": false, - "id": "option_mysqld_plugin-load", - "name": "plugin_load", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--plugin-load-add=plugin_list", - "dynamic": false, - "id": "option_mysqld_plugin-load-add", - "name": "plugin_load_add", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--port=port_num", - "default": "3306", - "dynamic": false, - "id": "option_mysqld_port", - "name": "port", - "range": { - "from": 0, - "to": 65535 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--port-open-timeout=#", - "default": "0", - "id": "option_mysqld_port-open-timeout", - "name": "port_open_timeout", - "type": "integer" - }, - { - "cli": "--remove [service_name]", - "id": "option_mysqld_remove", - "name": "remove" - }, - { - "cli": "--safe-user-create[={OFF|ON}]", - "default": "OFF", - "id": "option_mysqld_safe-user-create", - "name": "safe_user_create", - "type": "boolean" - }, - { - "cli": "--skip-grant-tables[={OFF|ON}]", - "default": "OFF", - "id": "option_mysqld_skip-grant-tables", - "name": "skip_grant_tables", - "type": "boolean" - }, - { - "cli": "--skip-host-cache", - "id": "option_mysqld_skip-host-cache", - "name": "skip_host_cache" - }, - { - "cli": "--skip-new", - "id": "option_mysqld_skip-new", - "name": "skip_new" - }, - { - "cli": "--skip-show-database", - "dynamic": false, - "id": "option_mysqld_skip-show-database", - "name": "skip_show_database", - "scope": [ - "global" - ] - }, - { - "cli": "--skip-stack-trace", - "id": "option_mysqld_skip-stack-trace", - "name": "skip_stack_trace" - }, - { - "cli": "--slow-start-timeout=#", - "default": "15000", - "id": "option_mysqld_slow-start-timeout", - "name": "slow_start_timeout", - "type": "integer" - }, - { - "cli": "--socket={file_name|pipe_name}", - "dynamic": false, - "id": "option_mysqld_socket", - "name": "socket", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--sql-mode=name", - "dynamic": true, - "id": "option_mysqld_sql-mode", - "name": "sql_mode", - "scope": [ - "global", - "session" - ], - "type": "set" - }, - { - "cli": "--standalone", - "id": "option_mysqld_standalone", - "name": "standalone" - }, - { - "cli": "--super-large-pages[={OFF|ON}]", - "default": "OFF", - "id": "option_mysqld_super-large-pages", - "name": "super_large_pages", - "type": "boolean" - }, - { - "cli": "--symbolic-links[={OFF|ON}]", - "id": "option_mysqld_symbolic-links", - "name": "symbolic_links", - "type": "boolean" - }, - { - "cli": "--sysdate-is-now[={OFF|ON}]", - "default": "OFF", - "id": "option_mysqld_sysdate-is-now", - "name": "sysdate_is_now", - "type": "boolean" - }, - { - "cli": "--tc-heuristic-recover=name", - "default": "COMMIT", - "id": "option_mysqld_tc-heuristic-recover", - "name": "tc_heuristic_recover", - "type": "enumeration", - "validValues": [ - "COMMIT", - "ROLLBACK" - ] - }, - { - "cli": "--temp-pool[={OFF|ON}]", - "id": "option_mysqld_temp-pool", - "name": "temp_pool", - "type": "boolean" - }, - { - "cli": "--transaction-isolation=name", - "default": "REPEATABLE-READ", - "dynamic": true, - "id": "option_mysqld_transaction-isolation", - "name": "transaction_isolation", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "READ-UNCOMMITTED", - "READ-COMMITTED", - "REPEATABLE-READ", - "SERIALIZABLE" - ] - }, - { - "cli": "--transaction-read-only[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "option_mysqld_transaction-read-only", - "name": "transaction_read_only", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--tmpdir=dir_name", - "dynamic": false, - "id": "option_mysqld_tmpdir", - "name": "tmpdir", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "cli": "--upgrade=value", - "default": "AUTO", - "id": "option_mysqld_upgrade", - "name": "upgrade", - "type": "enumeration", - "validValues": [ - "AUTO", - "NONE", - "MINIMAL", - "FORCE" - ] - }, - { - "cli": "--user=name", - "id": "option_mysqld_user", - "name": "user", - "type": "string" - }, - { - "cli": "--validate-config[={OFF|ON}]", - "default": "OFF", - "id": "option_mysqld_validate-config", - "name": "validate_config", - "type": "boolean" - } - ], - "name": "server-options", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-server-system-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-server-system-variables.json deleted file mode 100644 index 30c6b0a..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-server-system-variables.json +++ /dev/null @@ -1,3804 +0,0 @@ -{ - "data": [ - { - "cli": "--activate-all-roles-on-login[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_activate_all_roles_on_login", - "name": "activate_all_roles_on_login", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--admin-address=addr", - "dynamic": false, - "id": "sysvar_admin_address", - "name": "admin_address", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--admin-port=port_num", - "default": "33062", - "dynamic": false, - "id": "sysvar_admin_port", - "name": "admin_port", - "range": { - "from": 0, - "to": 65535 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--authentication-windows-log-level=#", - "default": "2", - "dynamic": false, - "id": "sysvar_authentication_windows_log_level", - "name": "authentication_windows_log_level", - "range": { - "from": 0, - "to": 4 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--authentication-windows-use-principal-name[={OFF|ON}]", - "default": "ON", - "dynamic": false, - "id": "sysvar_authentication_windows_use_principal_name", - "name": "authentication_windows_use_principal_name", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--autocommit[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "id": "sysvar_autocommit", - "name": "autocommit", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--automatic-sp-privileges[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "id": "sysvar_automatic_sp_privileges", - "name": "automatic_sp_privileges", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--auto-generate-certs[={OFF|ON}]", - "default": "ON", - "dynamic": false, - "id": "sysvar_auto_generate_certs", - "name": "auto_generate_certs", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--avoid-temporal-upgrade[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_avoid_temporal_upgrade", - "name": "avoid_temporal_upgrade", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--back-log=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": false, - "id": "sysvar_back_log", - "name": "back_log", - "range": { - "from": 1, - "to": 65535 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--basedir=dir_name", - "dynamic": false, - "id": "sysvar_basedir", - "name": "basedir", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "cli": "--big-tables[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_big_tables", - "name": "big_tables", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--bind-address=addr", - "default": "*", - "dynamic": false, - "id": "sysvar_bind_address", - "name": "bind_address", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--block-encryption-mode=#", - "default": "aes-128-ecb", - "dynamic": true, - "id": "sysvar_block_encryption_mode", - "name": "block_encryption_mode", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "cli": "--bulk-insert-buffer-size=#", - "default": "8388608", - "dynamic": true, - "id": "sysvar_bulk_insert_buffer_size", - "name": "bulk_insert_buffer_size", - "range": { - "from": 0 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--caching-sha2-password-auto-generate-rsa-keys[={OFF|ON}]", - "default": "ON", - "dynamic": false, - "id": "sysvar_caching_sha2_password_auto_generate_rsa_keys", - "name": "caching_sha2_password_auto_generate_rsa_keys", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--caching-sha2-password-private-key-path=file_name", - "default": "private_key.pem", - "dynamic": false, - "id": "sysvar_caching_sha2_password_private_key_path", - "name": "caching_sha2_password_private_key_path", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--caching-sha2-password-public-key-path=file_name", - "default": "public_key.pem", - "dynamic": false, - "id": "sysvar_caching_sha2_password_public_key_path", - "name": "caching_sha2_password_public_key_path", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "dynamic": true, - "id": "sysvar_character_set_client", - "name": "character_set_client", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "dynamic": true, - "id": "sysvar_character_set_connection", - "name": "character_set_connection", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "dynamic": true, - "id": "sysvar_character_set_database", - "name": "character_set_database", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "cli": "--character-set-filesystem=name", - "default": "binary", - "dynamic": true, - "id": "sysvar_character_set_filesystem", - "name": "character_set_filesystem", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "dynamic": true, - "id": "sysvar_character_set_results", - "name": "character_set_results", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "cli": "--character-set-server=name", - "dynamic": true, - "id": "sysvar_character_set_server", - "name": "character_set_server", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "default": "utf8", - "dynamic": false, - "id": "sysvar_character_set_system", - "name": "character_set_system", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--character-sets-dir=dir_name", - "dynamic": false, - "id": "sysvar_character_sets_dir", - "name": "character_sets_dir", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "cli": "--check-proxy-users[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_check_proxy_users", - "name": "check_proxy_users", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "dynamic": true, - "id": "sysvar_collation_connection", - "name": "collation_connection", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "dynamic": true, - "id": "sysvar_collation_database", - "name": "collation_database", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "cli": "--collation-server=name", - "dynamic": true, - "id": "sysvar_collation_server", - "name": "collation_server", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "cli": "--completion-type=#", - "default": "NO_CHAIN", - "dynamic": true, - "id": "sysvar_completion_type", - "name": "completion_type", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "NO_CHAIN", - "CHAIN", - "RELEASE", - "0", - "1", - "2" - ] - }, - { - "cli": "--concurrent-insert[=value]", - "default": "AUTO", - "dynamic": true, - "id": "sysvar_concurrent_insert", - "name": "concurrent_insert", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "NEVER", - "AUTO", - "ALWAYS", - "0", - "1", - "2" - ] - }, - { - "cli": "--connect-timeout=#", - "default": "10", - "dynamic": true, - "id": "sysvar_connect_timeout", - "name": "connect_timeout", - "range": { - "from": 2, - "to": 31536000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "default": "OFF", - "dynamic": false, - "id": "sysvar_core_file", - "name": "core_file", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--create-admin-listener-thread[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "id": "sysvar_create_admin_listener_thread", - "name": "create_admin_listener_thread", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--cte-max-recursion-depth=#", - "default": "1000", - "dynamic": true, - "id": "sysvar_cte_max_recursion_depth", - "name": "cte_max_recursion_depth", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--datadir=dir_name", - "dynamic": false, - "id": "sysvar_datadir", - "name": "datadir", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "cli": "--debug[=debug_options]", - "dynamic": true, - "id": "sysvar_debug", - "name": "debug", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "dynamic": true, - "id": "sysvar_debug_sync", - "name": "debug_sync", - "scope": [ - "session" - ], - "type": "string" - }, - { - "cli": "--default-authentication-plugin=plugin_name", - "dynamic": false, - "id": "sysvar_default_authentication_plugin", - "name": "default_authentication_plugin", - "scope": [ - "global" - ], - "type": "enumeration" - }, - { - "dynamic": true, - "id": "sysvar_default_collation_for_utf8mb4", - "name": "default_collation_for_utf8mb4", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "utf8mb4_0900_ai_ci", - "utf8mb4_general_ci" - ] - }, - { - "cli": "--default-password-lifetime=#", - "default": "0", - "dynamic": true, - "id": "sysvar_default_password_lifetime", - "name": "default_password_lifetime", - "range": { - "from": 0, - "to": 65535 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--default-storage-engine=name", - "default": "InnoDB", - "dynamic": true, - "id": "sysvar_default_storage_engine", - "name": "default_storage_engine", - "scope": [ - "global", - "session" - ], - "type": "enumeration" - }, - { - "cli": "--default-table-encryption[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_default_table_encryption", - "name": "default_table_encryption", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--default-tmp-storage-engine=name", - "default": "InnoDB", - "dynamic": true, - "id": "sysvar_default_tmp_storage_engine", - "name": "default_tmp_storage_engine", - "scope": [ - "global", - "session" - ], - "type": "enumeration" - }, - { - "cli": "--default-week-format=#", - "default": "0", - "dynamic": true, - "id": "sysvar_default_week_format", - "name": "default_week_format", - "range": { - "from": 0, - "to": 7 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--delay-key-write[={OFF|ON|ALL}]", - "default": "ON", - "dynamic": true, - "id": "sysvar_delay_key_write", - "name": "delay_key_write", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "ON", - "OFF", - "ALL" - ] - }, - { - "cli": "--delayed-insert-limit=#", - "default": "100", - "dynamic": true, - "id": "sysvar_delayed_insert_limit", - "name": "delayed_insert_limit", - "range": { - "from": 1 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--delayed-insert-timeout=#", - "default": "300", - "dynamic": true, - "id": "sysvar_delayed_insert_timeout", - "name": "delayed_insert_timeout", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--delayed-queue-size=#", - "default": "1000", - "dynamic": true, - "id": "sysvar_delayed_queue_size", - "name": "delayed_queue_size", - "range": { - "from": 1 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--disabled-storage-engines=engine[,engine]...", - "default": "empty string", - "dynamic": false, - "id": "sysvar_disabled_storage_engines", - "name": "disabled_storage_engines", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--disconnect-on-expired-password[={OFF|ON}]", - "default": "ON", - "dynamic": false, - "id": "sysvar_disconnect_on_expired_password", - "name": "disconnect_on_expired_password", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--div-precision-increment=#", - "default": "4", - "dynamic": true, - "id": "sysvar_div_precision_increment", - "name": "div_precision_increment", - "range": { - "from": 0, - "to": 30 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--dragnet.log-error-filter-rules=value", - "default": "IF prio>=INFORMATION THEN drop. IF EXISTS source_line THEN unset source_line.", - "dynamic": true, - "id": "sysvar_dragnet.log_error_filter_rules", - "name": "dragnet.log_error_filter_rules", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--end-markers-in-json[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_end_markers_in_json", - "name": "end_markers_in_json", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--eq-range-index-dive-limit=#", - "default": "200", - "dynamic": true, - "id": "sysvar_eq_range_index_dive_limit", - "name": "eq_range_index_dive_limit", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--event-scheduler[=value]", - "dynamic": true, - "id": "sysvar_event_scheduler", - "name": "event_scheduler", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "ON", - "OFF", - "DISABLED" - ] - }, - { - "cli": "--explicit-defaults-for-timestamp[={OFF|ON}]", - "dynamic": true, - "id": "sysvar_explicit_defaults_for_timestamp", - "name": "explicit_defaults_for_timestamp", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "dynamic": false, - "id": "sysvar_external_user", - "name": "external_user", - "scope": [ - "session" - ], - "type": "string" - }, - { - "cli": "--flush[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_flush", - "name": "flush", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--flush-time=#", - "default": "0", - "dynamic": true, - "id": "sysvar_flush_time", - "name": "flush_time", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "default": "ON", - "dynamic": true, - "id": "sysvar_foreign_key_checks", - "name": "foreign_key_checks", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--ft-boolean-syntax=name", - "default": "+ -><()~*:\"\"&|", - "dynamic": true, - "id": "sysvar_ft_boolean_syntax", - "name": "ft_boolean_syntax", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--ft-max-word-len=#", - "dynamic": false, - "id": "sysvar_ft_max_word_len", - "name": "ft_max_word_len", - "range": { - "from": 10 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--ft-min-word-len=#", - "default": "4", - "dynamic": false, - "id": "sysvar_ft_min_word_len", - "name": "ft_min_word_len", - "range": { - "from": 1 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--ft-query-expansion-limit=#", - "default": "20", - "dynamic": false, - "id": "sysvar_ft_query_expansion_limit", - "name": "ft_query_expansion_limit", - "range": { - "from": 0, - "to": 1000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--ft-stopword-file=file_name", - "dynamic": false, - "id": "sysvar_ft_stopword_file", - "name": "ft_stopword_file", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--general-log[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_general_log", - "name": "general_log", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--general-log-file=file_name", - "default": "host_name.log", - "dynamic": true, - "id": "sysvar_general_log_file", - "name": "general_log_file", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--generated-random-password-length=#", - "default": "20", - "dynamic": true, - "id": "sysvar_generated_random_password_length", - "name": "generated_random_password_length", - "range": { - "from": 5, - "to": 255 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--group-concat-max-len=#", - "default": "1024", - "dynamic": true, - "id": "sysvar_group_concat_max_len", - "name": "group_concat_max_len", - "range": { - "from": 4 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": false, - "id": "sysvar_have_ssl", - "name": "have_ssl", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "YES", - "DISABLED" - ] - }, - { - "dynamic": false, - "id": "sysvar_have_statement_timeout", - "name": "have_statement_timeout", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--histogram-generation-max-mem-size=#", - "default": "20000000", - "dynamic": true, - "id": "sysvar_histogram_generation_max_mem_size", - "name": "histogram_generation_max_mem_size", - "range": { - "from": 1000000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--host-cache-size=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": true, - "id": "sysvar_host_cache_size", - "name": "host_cache_size", - "range": { - "from": 0, - "to": 65536 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "dynamic": false, - "id": "sysvar_hostname", - "name": "hostname", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--init-connect=name", - "dynamic": true, - "id": "sysvar_init_connect", - "name": "init_connect", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--information-schema-stats-expiry=#", - "default": "86400", - "dynamic": true, - "id": "sysvar_information_schema_stats_expiry", - "name": "information_schema_stats_expiry", - "range": { - "from": 0, - "to": 31536000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--init-file=file_name", - "dynamic": false, - "id": "sysvar_init_file", - "name": "init_file", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--interactive-timeout=#", - "default": "28800", - "dynamic": true, - "id": "sysvar_interactive_timeout", - "name": "interactive_timeout", - "range": { - "from": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--internal-tmp-disk-storage-engine=#", - "default": "INNODB", - "dynamic": true, - "id": "sysvar_internal_tmp_disk_storage_engine", - "name": "internal_tmp_disk_storage_engine", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "MYISAM", - "INNODB" - ] - }, - { - "cli": "--internal-tmp-mem-storage-engine=#", - "default": "TempTable", - "dynamic": true, - "id": "sysvar_internal_tmp_mem_storage_engine", - "name": "internal_tmp_mem_storage_engine", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "TempTable", - "MEMORY" - ] - }, - { - "cli": "--join-buffer-size=#", - "default": "262144", - "dynamic": true, - "id": "sysvar_join_buffer_size", - "name": "join_buffer_size", - "range": { - "from": 128 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--keep-files-on-create[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_keep_files_on_create", - "name": "keep_files_on_create", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--key-buffer-size=#", - "default": "8388608", - "dynamic": true, - "id": "sysvar_key_buffer_size", - "name": "key_buffer_size", - "range": { - "from": 8 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--key-cache-age-threshold=#", - "default": "300", - "dynamic": true, - "id": "sysvar_key_cache_age_threshold", - "name": "key_cache_age_threshold", - "range": { - "from": 100 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--key-cache-block-size=#", - "default": "1024", - "dynamic": true, - "id": "sysvar_key_cache_block_size", - "name": "key_cache_block_size", - "range": { - "from": 512, - "to": 16384 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--key-cache-division-limit=#", - "default": "100", - "dynamic": true, - "id": "sysvar_key_cache_division_limit", - "name": "key_cache_division_limit", - "range": { - "from": 1, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "dynamic": false, - "id": "sysvar_large_files_support", - "name": "large_files_support", - "scope": [ - "global" - ] - }, - { - "cli": "--large-pages[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "id": "sysvar_large_pages", - "name": "large_pages", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "default": "0", - "dynamic": false, - "id": "sysvar_large_page_size", - "name": "large_page_size", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--lc-messages=name", - "default": "en_US", - "dynamic": true, - "id": "sysvar_lc_messages", - "name": "lc_messages", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "cli": "--lc-messages-dir=dir_name", - "dynamic": false, - "id": "sysvar_lc_messages_dir", - "name": "lc_messages_dir", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "cli": "--lc-time-names=value", - "dynamic": true, - "id": "sysvar_lc_time_names", - "name": "lc_time_names", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "default": "GPL", - "dynamic": false, - "id": "sysvar_license", - "name": "license", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--local-infile[={OFF|ON}]", - "dynamic": true, - "id": "sysvar_local_infile", - "name": "local_infile", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--lock-wait-timeout=#", - "default": "31536000", - "dynamic": true, - "id": "sysvar_lock_wait_timeout", - "name": "lock_wait_timeout", - "range": { - "from": 1, - "to": 31536000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": false, - "id": "sysvar_locked_in_memory", - "name": "locked_in_memory", - "scope": [ - "global" - ] - }, - { - "cli": "--log-error[=file_name]", - "dynamic": false, - "id": "sysvar_log_error", - "name": "log_error", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--log-error-filter-rules=value", - "default": "set by server", - "dynamic": true, - "id": "sysvar_log_error_filter_rules", - "name": "log_error_filter_rules", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--log-error-services=value", - "default": "log_filter_internal; log_sink_internal", - "dynamic": true, - "id": "sysvar_log_error_services", - "name": "log_error_services", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--log-error-suppression-list=value", - "default": "empty string", - "dynamic": true, - "id": "sysvar_log_error_suppression_list", - "name": "log_error_suppression_list", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--log-error-verbosity=#", - "dynamic": true, - "id": "sysvar_log_error_verbosity", - "name": "log_error_verbosity", - "range": { - "from": 1, - "to": 3 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--log-output=name", - "default": "FILE", - "dynamic": true, - "id": "sysvar_log_output", - "name": "log_output", - "scope": [ - "global" - ], - "type": "set", - "validValues": [ - "TABLE", - "FILE", - "NONE" - ] - }, - { - "cli": "--log-queries-not-using-indexes[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_log_queries_not_using_indexes", - "name": "log_queries_not_using_indexes", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--log-raw[={OFF|ON}]", - "default": "OFF", - "id": "sysvar_log_raw", - "name": "log_raw", - "type": "boolean" - }, - { - "cli": "--log-slow-admin-statements[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_log_slow_admin_statements", - "name": "log_slow_admin_statements", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--log-slow-extra[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_log_slow_extra", - "name": "log_slow_extra", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--log-syslog[={OFF|ON}]", - "dynamic": true, - "id": "sysvar_log_syslog", - "name": "log_syslog", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--log-syslog-facility=value", - "default": "daemon", - "dynamic": true, - "id": "sysvar_log_syslog_facility", - "name": "log_syslog_facility", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--log-syslog-include-pid[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "id": "sysvar_log_syslog_include_pid", - "name": "log_syslog_include_pid", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--log-syslog-tag=tag", - "default": "empty string", - "dynamic": true, - "id": "sysvar_log_syslog_tag", - "name": "log_syslog_tag", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--log-timestamps=#", - "default": "UTC", - "dynamic": true, - "id": "sysvar_log_timestamps", - "name": "log_timestamps", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "UTC", - "SYSTEM" - ] - }, - { - "cli": "--log-throttle-queries-not-using-indexes=#", - "default": "0", - "dynamic": true, - "id": "sysvar_log_throttle_queries_not_using_indexes", - "name": "log_throttle_queries_not_using_indexes", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--log-warnings[=#]", - "default": "2", - "dynamic": true, - "id": "sysvar_log_warnings", - "name": "log_warnings", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--long-query-time=#", - "default": "10", - "dynamic": true, - "id": "sysvar_long_query_time", - "name": "long_query_time", - "range": { - "from": 0 - }, - "scope": [ - "global", - "session" - ], - "type": "numeric" - }, - { - "cli": "--low-priority-updates[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_low_priority_updates", - "name": "low_priority_updates", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "dynamic": false, - "id": "sysvar_lower_case_file_system", - "name": "lower_case_file_system", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--lower-case-table-names[=#]", - "default": "0", - "dynamic": false, - "id": "sysvar_lower_case_table_names", - "name": "lower_case_table_names", - "range": { - "from": 0, - "to": 2 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--mandatory-roles=value", - "default": "empty string", - "dynamic": true, - "id": "sysvar_mandatory_roles", - "name": "mandatory_roles", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--max-allowed-packet=#", - "dynamic": true, - "id": "sysvar_max_allowed_packet", - "name": "max_allowed_packet", - "range": { - "from": 1024, - "to": 1073741824 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--max-connect-errors=#", - "default": "100", - "dynamic": true, - "id": "sysvar_max_connect_errors", - "name": "max_connect_errors", - "range": { - "from": 1 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--max-connections=#", - "default": "151", - "dynamic": true, - "id": "sysvar_max_connections", - "name": "max_connections", - "range": { - "from": 1, - "to": 100000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--max-delayed-threads=#", - "default": "20", - "dynamic": true, - "id": "sysvar_max_delayed_threads", - "name": "max_delayed_threads", - "range": { - "from": 0, - "to": 16384 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--max-digest-length=#", - "default": "1024", - "dynamic": false, - "id": "sysvar_max_digest_length", - "name": "max_digest_length", - "range": { - "from": 0, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--max-error-count=#", - "dynamic": true, - "id": "sysvar_max_error_count", - "name": "max_error_count", - "range": { - "from": 0, - "to": 65535 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--max-execution-time=#", - "default": "0", - "dynamic": true, - "id": "sysvar_max_execution_time", - "name": "max_execution_time", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--max-heap-table-size=#", - "default": "16777216", - "dynamic": true, - "id": "sysvar_max_heap_table_size", - "name": "max_heap_table_size", - "range": { - "from": 16384 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "sysvar_max_insert_delayed_threads", - "name": "max_insert_delayed_threads", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--max-join-size=#", - "default": "18446744073709551615", - "dynamic": true, - "id": "sysvar_max_join_size", - "name": "max_join_size", - "range": { - "from": 1, - "to": 18446744073709552000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--max-length-for-sort-data=#", - "dynamic": true, - "id": "sysvar_max_length_for_sort_data", - "name": "max_length_for_sort_data", - "range": { - "from": 4, - "to": 8388608 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--max-points-in-geometry=#", - "default": "65536", - "dynamic": true, - "id": "sysvar_max_points_in_geometry", - "name": "max_points_in_geometry", - "range": { - "from": 3, - "to": 1048576 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--max-prepared-stmt-count=#", - "default": "16382", - "dynamic": true, - "id": "sysvar_max_prepared_stmt_count", - "name": "max_prepared_stmt_count", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--max-seeks-for-key=#", - "dynamic": true, - "id": "sysvar_max_seeks_for_key", - "name": "max_seeks_for_key", - "range": { - "from": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--max-sort-length=#", - "default": "1024", - "dynamic": true, - "id": "sysvar_max_sort_length", - "name": "max_sort_length", - "range": { - "from": 4, - "to": 8388608 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--max-sp-recursion-depth[=#]", - "default": "0", - "dynamic": true, - "id": "sysvar_max_sp_recursion_depth", - "name": "max_sp_recursion_depth", - "range": { - "to": 255 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--max-user-connections=#", - "default": "0", - "dynamic": true, - "id": "sysvar_max_user_connections", - "name": "max_user_connections", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--max-write-lock-count=#", - "dynamic": true, - "id": "sysvar_max_write_lock_count", - "name": "max_write_lock_count", - "range": { - "from": 1 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--mecab-rc-file=file_name", - "dynamic": false, - "id": "sysvar_mecab_rc_file", - "name": "mecab_rc_file", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--metadata-locks-cache-size=#", - "default": "1024", - "dynamic": false, - "id": "sysvar_metadata_locks_cache_size", - "name": "metadata_locks_cache_size", - "range": { - "from": 1, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--metadata-locks-hash-instances=#", - "default": "8", - "dynamic": false, - "id": "sysvar_metadata_locks_hash_instances", - "name": "metadata_locks_hash_instances", - "range": { - "from": 1, - "to": 1024 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--min-examined-row-limit=#", - "default": "0", - "dynamic": true, - "id": "sysvar_min_examined_row_limit", - "name": "min_examined_row_limit", - "range": { - "from": 0 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--multi-range-count=#", - "default": "256", - "dynamic": true, - "id": "sysvar_multi_range_count", - "name": "multi_range_count", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--myisam-data-pointer-size=#", - "default": "6", - "dynamic": true, - "id": "sysvar_myisam_data_pointer_size", - "name": "myisam_data_pointer_size", - "range": { - "from": 2, - "to": 7 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--myisam-max-sort-file-size=#", - "dynamic": true, - "id": "sysvar_myisam_max_sort_file_size", - "name": "myisam_max_sort_file_size", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--myisam-mmap-size=#", - "dynamic": false, - "id": "sysvar_myisam_mmap_size", - "name": "myisam_mmap_size", - "range": { - "from": 7 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--myisam-recover-options[=list]", - "default": "OFF", - "dynamic": false, - "id": "sysvar_myisam_recover_options", - "name": "myisam_recover_options", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "OFF", - "DEFAULT", - "BACKUP", - "FORCE", - "QUICK" - ] - }, - { - "cli": "--myisam-repair-threads=#", - "default": "1", - "dynamic": true, - "id": "sysvar_myisam_repair_threads", - "name": "myisam_repair_threads", - "range": { - "from": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--myisam-sort-buffer-size=#", - "default": "8388608", - "dynamic": true, - "id": "sysvar_myisam_sort_buffer_size", - "name": "myisam_sort_buffer_size", - "range": { - "from": 4096 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--myisam-stats-method=name", - "default": "nulls_unequal", - "dynamic": true, - "id": "sysvar_myisam_stats_method", - "name": "myisam_stats_method", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "nulls_equal", - "nulls_unequal", - "nulls_ignored" - ] - }, - { - "cli": "--myisam-use-mmap[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_myisam_use_mmap", - "name": "myisam_use_mmap", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--mysql-native-password-proxy-users[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_mysql_native_password_proxy_users", - "name": "mysql_native_password_proxy_users", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--named-pipe[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "id": "sysvar_named_pipe", - "name": "named_pipe", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--named-pipe-full-access-group=value", - "default": "*everyone*", - "dynamic": false, - "id": "sysvar_named_pipe_full_access_group", - "name": "named_pipe_full_access_group", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "*everyone*", - "empty string" - ] - }, - { - "cli": "--net-buffer-length=#", - "default": "16384", - "dynamic": true, - "id": "sysvar_net_buffer_length", - "name": "net_buffer_length", - "range": { - "from": 1024, - "to": 1048576 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--net-read-timeout=#", - "default": "30", - "dynamic": true, - "id": "sysvar_net_read_timeout", - "name": "net_read_timeout", - "range": { - "from": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--net-retry-count=#", - "default": "10", - "dynamic": true, - "id": "sysvar_net_retry_count", - "name": "net_retry_count", - "range": { - "from": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--net-write-timeout=#", - "default": "60", - "dynamic": true, - "id": "sysvar_net_write_timeout", - "name": "net_write_timeout", - "range": { - "from": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--new[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_new", - "name": "new", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--ngram-token-size=#", - "default": "2", - "dynamic": false, - "id": "sysvar_ngram_token_size", - "name": "ngram_token_size", - "range": { - "from": 1, - "to": 10 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--offline-mode[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_offline_mode", - "name": "offline_mode", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--old[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "id": "sysvar_old", - "name": "old", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--old-alter-table[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_old_alter_table", - "name": "old_alter_table", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--old-passwords=value", - "default": "0", - "dynamic": true, - "id": "sysvar_old_passwords", - "name": "old_passwords", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "0", - "2" - ] - }, - { - "cli": "--open-files-limit=#", - "default": "5000, with possible adjustment", - "dynamic": false, - "id": "sysvar_open_files_limit", - "name": "open_files_limit", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--optimizer-prune-level=#", - "default": "1", - "dynamic": true, - "id": "sysvar_optimizer_prune_level", - "name": "optimizer_prune_level", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--optimizer-search-depth=#", - "default": "62", - "dynamic": true, - "id": "sysvar_optimizer_search_depth", - "name": "optimizer_search_depth", - "range": { - "from": 0, - "to": 62 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--optimizer-switch=value", - "dynamic": true, - "id": "sysvar_optimizer_switch", - "name": "optimizer_switch", - "scope": [ - "global", - "session" - ], - "type": "set" - }, - { - "cli": "--optimizer-trace=value", - "dynamic": true, - "id": "sysvar_optimizer_trace", - "name": "optimizer_trace", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "cli": "--optimizer-trace-features=value", - "dynamic": true, - "id": "sysvar_optimizer_trace_features", - "name": "optimizer_trace_features", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "cli": "--optimizer-trace-limit=#", - "default": "1", - "dynamic": true, - "id": "sysvar_optimizer_trace_limit", - "name": "optimizer_trace_limit", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--optimizer-trace-max-mem-size=#", - "dynamic": true, - "id": "sysvar_optimizer_trace_max_mem_size", - "name": "optimizer_trace_max_mem_size", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--optimizer-trace-offset=#", - "default": "-1", - "dynamic": true, - "id": "sysvar_optimizer_trace_offset", - "name": "optimizer_trace_offset", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--parser-max-mem-size=#", - "dynamic": true, - "id": "sysvar_parser_max_mem_size", - "name": "parser_max_mem_size", - "range": { - "from": 10000000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--partial-revokes[={OFF|ON}]", - "default": "OFF (if partial revokes do not exist)ON (if partial revokes exist)", - "dynamic": true, - "id": "sysvar_partial_revokes", - "name": "partial_revokes", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--password-history=#", - "default": "0", - "dynamic": true, - "id": "sysvar_password_history", - "name": "password_history", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--password-require-current[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_password_require_current", - "name": "password_require_current", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--password-reuse-interval=#", - "default": "0", - "dynamic": true, - "id": "sysvar_password_reuse_interval", - "name": "password_reuse_interval", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--persisted-globals-load[={OFF|ON}]", - "default": "ON", - "dynamic": false, - "id": "sysvar_persisted_globals_load", - "name": "persisted_globals_load", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--persist-only-admin-x509-subject=string", - "default": "empty string", - "dynamic": false, - "id": "sysvar_persist_only_admin_x509_subject", - "name": "persist_only_admin_x509_subject", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--pid-file=file_name", - "dynamic": false, - "id": "sysvar_pid_file", - "name": "pid_file", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--plugin-dir=dir_name", - "default": "BASEDIR/lib/plugin", - "dynamic": false, - "id": "sysvar_plugin_dir", - "name": "plugin_dir", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "cli": "--port=port_num", - "default": "3306", - "dynamic": false, - "id": "sysvar_port", - "name": "port", - "range": { - "from": 0, - "to": 65535 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--preload-buffer-size=#", - "default": "32768", - "dynamic": true, - "id": "sysvar_preload_buffer_size", - "name": "preload_buffer_size", - "range": { - "from": 1024, - "to": 1073741824 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--print-identified-with-as-hex[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_print_identified_with_as_hex", - "name": "print_identified_with_as_hex", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--protocol-compression-algorithms=value", - "default": "zlib,zstd,uncompressed", - "dynamic": true, - "id": "sysvar_protocol_compression_algorithms", - "name": "protocol_compression_algorithms", - "scope": [ - "global" - ], - "type": "set", - "validValues": [ - "zlib", - "zstd", - "uncompressed" - ] - }, - { - "dynamic": false, - "id": "sysvar_protocol_version", - "name": "protocol_version", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "dynamic": false, - "id": "sysvar_proxy_user", - "name": "proxy_user", - "scope": [ - "session" - ], - "type": "string" - }, - { - "dynamic": true, - "id": "sysvar_pseudo_slave_mode", - "name": "pseudo_slave_mode", - "scope": [ - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "sysvar_pseudo_thread_id", - "name": "pseudo_thread_id", - "scope": [ - "session" - ], - "type": "integer" - }, - { - "cli": "--query-alloc-block-size=#", - "default": "8192", - "dynamic": true, - "id": "sysvar_query_alloc_block_size", - "name": "query_alloc_block_size", - "range": { - "from": 1024, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--query-cache-limit=#", - "default": "1048576", - "dynamic": true, - "id": "sysvar_query_cache_limit", - "name": "query_cache_limit", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--query-cache-min-res-unit=#", - "default": "4096", - "dynamic": true, - "id": "sysvar_query_cache_min_res_unit", - "name": "query_cache_min_res_unit", - "range": { - "from": 512 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--query-cache-size=#", - "dynamic": true, - "id": "sysvar_query_cache_size", - "name": "query_cache_size", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--query-cache-type=#", - "default": "0", - "dynamic": true, - "id": "sysvar_query_cache_type", - "name": "query_cache_type", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "0", - "1", - "2" - ] - }, - { - "cli": "--query-cache-wlock-invalidate[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_query_cache_wlock_invalidate", - "name": "query_cache_wlock_invalidate", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--query-prealloc-size=#", - "default": "8192", - "dynamic": true, - "id": "sysvar_query_prealloc_size", - "name": "query_prealloc_size", - "range": { - "from": 8192 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "sysvar_rand_seed1", - "name": "rand_seed1", - "scope": [ - "session" - ], - "type": "integer" - }, - { - "cli": "--range-alloc-block-size=#", - "default": "4096", - "dynamic": true, - "id": "sysvar_range_alloc_block_size", - "name": "range_alloc_block_size", - "range": { - "from": 4096, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--range-optimizer-max-mem-size=#", - "default": "8388608", - "dynamic": true, - "id": "sysvar_range_optimizer_max_mem_size", - "name": "range_optimizer_max_mem_size", - "range": { - "from": 0, - "to": 18446744073709552000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "default": "STRICT", - "dynamic": true, - "id": "sysvar_rbr_exec_mode", - "name": "rbr_exec_mode", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "IDEMPOTENT", - "STRICT" - ] - }, - { - "cli": "--read-buffer-size=#", - "default": "131072", - "dynamic": true, - "id": "sysvar_read_buffer_size", - "name": "read_buffer_size", - "range": { - "from": 8200, - "to": 2147479552 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--read-only[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_read_only", - "name": "read_only", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--read-rnd-buffer-size=#", - "default": "262144", - "dynamic": true, - "id": "sysvar_read_rnd_buffer_size", - "name": "read_rnd_buffer_size", - "range": { - "from": 1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--regexp-stack-limit=#", - "default": "8000000", - "dynamic": true, - "id": "sysvar_regexp_stack_limit", - "name": "regexp_stack_limit", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--regexp-time-limit=#", - "default": "32", - "dynamic": true, - "id": "sysvar_regexp_time_limit", - "name": "regexp_time_limit", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--require-secure-transport[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_require_secure_transport", - "name": "require_secure_transport", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "default": "FULL", - "dynamic": true, - "id": "sysvar_resultset_metadata", - "name": "resultset_metadata", - "scope": [ - "session" - ], - "type": "enumeration", - "validValues": [ - "FULL", - "NONE" - ] - }, - { - "default": "100000.000000", - "dynamic": true, - "id": "sysvar_secondary_engine_cost_threshold", - "name": "secondary_engine_cost_threshold", - "range": { - "from": 0 - }, - "scope": [ - "session" - ], - "type": "numeric" - }, - { - "cli": "--schema-definition-cache=#", - "default": "256", - "dynamic": true, - "id": "sysvar_schema_definition_cache", - "name": "schema_definition_cache", - "range": { - "from": 256, - "to": 524288 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--secure-auth[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "id": "sysvar_secure_auth", - "name": "secure_auth", - "scope": [ - "global" - ], - "type": "boolean", - "validValues": [ - "ON" - ] - }, - { - "cli": "--secure-file-priv=dir_name", - "default": "platform specific", - "dynamic": false, - "id": "sysvar_secure_file_priv", - "name": "secure_file_priv", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "empty string", - "dirname", - "NULL" - ] - }, - { - "cli": "--session-track-gtids=value", - "default": "OFF", - "dynamic": true, - "id": "sysvar_session_track_gtids", - "name": "session_track_gtids", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "OFF", - "OWN_GTID", - "ALL_GTIDS" - ] - }, - { - "cli": "--session-track-schema[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "id": "sysvar_session_track_schema", - "name": "session_track_schema", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--session-track-state-change[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_session_track_state_change", - "name": "session_track_state_change", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--session-track-system-variables=#", - "default": "time_zone, autocommit, character_set_client, character_set_results, character_set_connection", - "dynamic": true, - "id": "sysvar_session_track_system_variables", - "name": "session_track_system_variables", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "cli": "--session-track-transaction-info=value", - "default": "OFF", - "dynamic": true, - "id": "sysvar_session_track_transaction_info", - "name": "session_track_transaction_info", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "OFF", - "STATE", - "CHARACTERISTICS" - ] - }, - { - "cli": "--sha256-password-auto-generate-rsa-keys[={OFF|ON}]", - "default": "ON", - "dynamic": false, - "id": "sysvar_sha256_password_auto_generate_rsa_keys", - "name": "sha256_password_auto_generate_rsa_keys", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--sha256-password-private-key-path=file_name", - "default": "private_key.pem", - "dynamic": false, - "id": "sysvar_sha256_password_private_key_path", - "name": "sha256_password_private_key_path", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--sha256-password-proxy-users[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_sha256_password_proxy_users", - "name": "sha256_password_proxy_users", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--sha256-password-public-key-path=file_name", - "default": "public_key.pem", - "dynamic": false, - "id": "sysvar_sha256_password_public_key_path", - "name": "sha256_password_public_key_path", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--shared-memory[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "id": "sysvar_shared_memory", - "name": "shared_memory", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--shared-memory-base-name=name", - "default": "MYSQL", - "dynamic": false, - "id": "sysvar_shared_memory_base_name", - "name": "shared_memory_base_name", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--show-compatibility-56[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_show_compatibility_56", - "name": "show_compatibility_56", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--show-create-table-skip-secondary-engine[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_show_create_table_skip_secondary_engine", - "name": "show_create_table_skip_secondary_engine", - "scope": [ - "session" - ], - "type": "boolean" - }, - { - "cli": "--show-create-table-verbosity[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_show_create_table_verbosity", - "name": "show_create_table_verbosity", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--show-old-temporals[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_show_old_temporals", - "name": "show_old_temporals", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--skip-external-locking[={OFF|ON}]", - "default": "ON", - "dynamic": false, - "id": "sysvar_skip_external_locking", - "name": "skip_external_locking", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--skip-name-resolve[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "id": "sysvar_skip_name_resolve", - "name": "skip_name_resolve", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--skip-networking[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "id": "sysvar_skip_networking", - "name": "skip_networking", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--skip-show-database", - "dynamic": false, - "id": "sysvar_skip_show_database", - "name": "skip_show_database", - "scope": [ - "global" - ] - }, - { - "cli": "--slow-launch-time=#", - "default": "2", - "dynamic": true, - "id": "sysvar_slow_launch_time", - "name": "slow_launch_time", - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--slow-query-log[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_slow_query_log", - "name": "slow_query_log", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--slow-query-log-file=file_name", - "default": "host_name-slow.log", - "dynamic": true, - "id": "sysvar_slow_query_log_file", - "name": "slow_query_log_file", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--socket={file_name|pipe_name}", - "dynamic": false, - "id": "sysvar_socket", - "name": "socket", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--sort-buffer-size=#", - "default": "262144", - "dynamic": true, - "id": "sysvar_sort_buffer_size", - "name": "sort_buffer_size", - "range": { - "from": 32768 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "default": "OFF", - "dynamic": true, - "id": "sysvar_sql_auto_is_null", - "name": "sql_auto_is_null", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "ON", - "dynamic": true, - "id": "sysvar_sql_big_selects", - "name": "sql_big_selects", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "OFF", - "dynamic": true, - "id": "sysvar_sql_buffer_result", - "name": "sql_buffer_result", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "OFF", - "dynamic": true, - "id": "sysvar_sql_log_off", - "name": "sql_log_off", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "validValues": [ - "OFF", - "ON" - ] - }, - { - "cli": "--sql-mode=name", - "dynamic": true, - "id": "sysvar_sql_mode", - "name": "sql_mode", - "scope": [ - "global", - "session" - ], - "type": "set" - }, - { - "default": "ON", - "dynamic": true, - "id": "sysvar_sql_notes", - "name": "sql_notes", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "ON", - "dynamic": true, - "id": "sysvar_sql_quote_show_create", - "name": "sql_quote_show_create", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--sql-require-primary-key[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_sql_require_primary_key", - "name": "sql_require_primary_key", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "OFF", - "dynamic": true, - "id": "sysvar_sql_safe_updates", - "name": "sql_safe_updates", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "dynamic": true, - "id": "sysvar_sql_select_limit", - "name": "sql_select_limit", - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "default": "OFF", - "dynamic": true, - "id": "sysvar_sql_warnings", - "name": "sql_warnings", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--ssl-ca=file_name", - "id": "sysvar_ssl_ca", - "name": "ssl_ca", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--ssl-capath=dir_name", - "id": "sysvar_ssl_capath", - "name": "ssl_capath", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "cli": "--ssl-cert=file_name", - "id": "sysvar_ssl_cert", - "name": "ssl_cert", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--ssl-cipher=name", - "id": "sysvar_ssl_cipher", - "name": "ssl_cipher", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--ssl-crl=file_name", - "id": "sysvar_ssl_crl", - "name": "ssl_crl", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--ssl-crlpath=dir_name", - "id": "sysvar_ssl_crlpath", - "name": "ssl_crlpath", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "cli": "--ssl-fips-mode={OFF|ON|STRICT}", - "default": "OFF", - "dynamic": true, - "id": "sysvar_ssl_fips_mode", - "name": "ssl_fips_mode", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "OFF", - "ON", - "STRICT" - ] - }, - { - "cli": "--ssl-key=file_name", - "id": "sysvar_ssl_key", - "name": "ssl_key", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--stored-program-cache=#", - "default": "256", - "dynamic": true, - "id": "sysvar_stored_program_cache", - "name": "stored_program_cache", - "range": { - "from": 16, - "to": 524288 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--stored-program-definition-cache=#", - "default": "256", - "dynamic": true, - "id": "sysvar_stored_program_definition_cache", - "name": "stored_program_definition_cache", - "range": { - "from": 256, - "to": 524288 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--super-read-only[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_super_read_only", - "name": "super_read_only", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--syseventlog.facility=value", - "default": "daemon", - "dynamic": true, - "id": "sysvar_syseventlog.facility", - "name": "syseventlog.facility", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--syseventlog.include-pid[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "id": "sysvar_syseventlog.include_pid", - "name": "syseventlog.include_pid", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--syseventlog.tag=tag", - "default": "empty string", - "dynamic": true, - "id": "sysvar_syseventlog.tag", - "name": "syseventlog.tag", - "scope": [ - "global" - ], - "type": "string" - }, - { - "dynamic": false, - "id": "sysvar_system_time_zone", - "name": "system_time_zone", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--table-definition-cache=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": true, - "id": "sysvar_table_definition_cache", - "name": "table_definition_cache", - "range": { - "from": 400, - "to": 524288 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--table-encryption-privilege-check[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_table_encryption_privilege_check", - "name": "table_encryption_privilege_check", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--table-open-cache=#", - "dynamic": true, - "id": "sysvar_table_open_cache", - "name": "table_open_cache", - "range": { - "from": 1, - "to": 524288 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--table-open-cache-instances=#", - "default": "16", - "dynamic": false, - "id": "sysvar_table_open_cache_instances", - "name": "table_open_cache_instances", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--tablespace-definition-cache=#", - "default": "256", - "dynamic": true, - "id": "sysvar_tablespace_definition_cache", - "name": "tablespace_definition_cache", - "range": { - "from": 256, - "to": 524288 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--temptable-max-ram=#", - "default": "1073741824", - "dynamic": true, - "id": "sysvar_temptable_max_ram", - "name": "temptable_max_ram", - "range": { - "from": 2097152, - "to": 2 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--temptable-use-mmap[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "id": "sysvar_temptable_use_mmap", - "name": "temptable_use_mmap", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--thread-cache-size=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": true, - "id": "sysvar_thread_cache_size", - "name": "thread_cache_size", - "range": { - "from": 0, - "to": 16384 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--thread-handling=name", - "default": "one-thread-per-connection", - "dynamic": false, - "id": "sysvar_thread_handling", - "name": "thread_handling", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "no-threads", - "one-thread-per-connection", - "loaded-dynamically" - ] - }, - { - "cli": "--thread-pool-algorithm=#", - "default": "0", - "dynamic": false, - "id": "sysvar_thread_pool_algorithm", - "name": "thread_pool_algorithm", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--thread-pool-high-priority-connection=#", - "default": "0", - "dynamic": true, - "id": "sysvar_thread_pool_high_priority_connection", - "name": "thread_pool_high_priority_connection", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--thread-pool-max-active-query-threads", - "default": "0", - "dynamic": true, - "id": "sysvar_thread_pool_max_active_query_threads", - "name": "thread_pool_max_active_query_threads", - "range": { - "from": 0, - "to": 512 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--thread-pool-max-unused-threads=#", - "default": "0", - "dynamic": true, - "id": "sysvar_thread_pool_max_unused_threads", - "name": "thread_pool_max_unused_threads", - "range": { - "from": 0, - "to": 4096 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--thread-pool-prio-kickup-timer=#", - "default": "1000", - "dynamic": true, - "id": "sysvar_thread_pool_prio_kickup_timer", - "name": "thread_pool_prio_kickup_timer", - "range": { - "from": 0, - "to": 4294967294 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--thread-pool-size=#", - "default": "16", - "dynamic": false, - "id": "sysvar_thread_pool_size", - "name": "thread_pool_size", - "range": { - "from": 1 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--thread-pool-stall-limit=#", - "default": "6", - "dynamic": true, - "id": "sysvar_thread_pool_stall_limit", - "name": "thread_pool_stall_limit", - "range": { - "from": 4, - "to": 600 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--thread-stack=#", - "dynamic": false, - "id": "sysvar_thread_stack", - "name": "thread_stack", - "range": { - "from": 131072 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "dynamic": true, - "id": "sysvar_time_zone", - "name": "time_zone", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "dynamic": true, - "id": "sysvar_timestamp", - "name": "timestamp", - "scope": [ - "session" - ], - "type": "numeric" - }, - { - "cli": "--tls-ciphersuites=ciphersuite_list", - "default": "empty string", - "dynamic": true, - "id": "sysvar_tls_ciphersuites", - "name": "tls_ciphersuites", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--tls-version=protocol_list", - "id": "sysvar_tls_version", - "name": "tls_version", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--tmp-table-size=#", - "default": "16777216", - "dynamic": true, - "id": "sysvar_tmp_table_size", - "name": "tmp_table_size", - "range": { - "from": 1024, - "to": 18446744073709552000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--tmpdir=dir_name", - "dynamic": false, - "id": "sysvar_tmpdir", - "name": "tmpdir", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "cli": "--transaction-alloc-block-size=#", - "default": "8192", - "dynamic": true, - "id": "sysvar_transaction_alloc_block_size", - "name": "transaction_alloc_block_size", - "range": { - "from": 1024, - "to": 131072 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--transaction-isolation=name", - "default": "REPEATABLE-READ", - "dynamic": true, - "id": "sysvar_transaction_isolation", - "name": "transaction_isolation", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "READ-UNCOMMITTED", - "READ-COMMITTED", - "REPEATABLE-READ", - "SERIALIZABLE" - ] - }, - { - "cli": "--transaction-prealloc-size=#", - "default": "4096", - "dynamic": true, - "id": "sysvar_transaction_prealloc_size", - "name": "transaction_prealloc_size", - "range": { - "from": 1024, - "to": 131072 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--transaction-read-only[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "id": "sysvar_transaction_read_only", - "name": "transaction_read_only", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "REPEATABLE-READ", - "dynamic": true, - "id": "sysvar_tx_isolation", - "name": "tx_isolation", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "READ-UNCOMMITTED", - "READ-COMMITTED", - "REPEATABLE-READ", - "SERIALIZABLE" - ] - }, - { - "default": "OFF", - "dynamic": true, - "id": "sysvar_tx_read_only", - "name": "tx_read_only", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "ON", - "dynamic": true, - "id": "sysvar_unique_checks", - "name": "unique_checks", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "cli": "--updatable-views-with-limit[={OFF|ON}]", - "default": "1", - "dynamic": true, - "id": "sysvar_updatable_views_with_limit", - "name": "updatable_views_with_limit", - "scope": [ - "global", - "session" - ], - "type": "boolean" - }, - { - "default": "ON", - "dynamic": true, - "id": "sysvar_use_secondary_engine", - "name": "use_secondary_engine", - "scope": [ - "session" - ], - "type": "enumeration", - "validValues": [ - "OFF", - "ON", - "FORCED" - ] - }, - { - "cli": "--validate-user-plugins[={OFF|ON}]", - "default": "ON", - "dynamic": false, - "id": "sysvar_validate_user_plugins", - "name": "validate_user_plugins", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "dynamic": false, - "id": "sysvar_version_comment", - "name": "version_comment", - "scope": [ - "global" - ], - "type": "string" - }, - { - "dynamic": false, - "id": "sysvar_version_compile_machine", - "name": "version_compile_machine", - "scope": [ - "global" - ], - "type": "string" - }, - { - "dynamic": false, - "id": "sysvar_version_compile_os", - "name": "version_compile_os", - "scope": [ - "global" - ], - "type": "string" - }, - { - "dynamic": false, - "id": "sysvar_version_compile_zlib", - "name": "version_compile_zlib", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--wait-timeout=#", - "default": "28800", - "dynamic": true, - "id": "sysvar_wait_timeout", - "name": "wait_timeout", - "range": { - "from": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer" - }, - { - "cli": "--windowing-use-high-precision[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "id": "sysvar_windowing_use_high_precision", - "name": "windowing_use_high_precision", - "scope": [ - "global", - "session" - ], - "type": "boolean" - } - ], - "name": "server-system-variables", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-version-tokens-reference.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-version-tokens-reference.json deleted file mode 100644 index ffa3f3f..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-version-tokens-reference.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "data": [ - { - "cli": "--version-tokens-session=value", - "default": "NULL", - "dynamic": true, - "id": "sysvar_version_tokens_session", - "name": "version_tokens_session", - "scope": [ - "global", - "session" - ], - "type": "string" - }, - { - "cli": "--version-tokens-session-number=#", - "default": "0", - "dynamic": false, - "id": "sysvar_version_tokens_session_number", - "name": "version_tokens_session_number", - "scope": [ - "global", - "session" - ], - "type": "integer" - } - ], - "name": "version-tokens-reference", - "url": "https://dev.mysql.com/doc/refman/8.0/en/version-tokens-reference.html" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-x-plugin-options-system-variables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-x-plugin-options-system-variables.json deleted file mode 100644 index 5599dad..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/data/mysql-x-plugin-options-system-variables.json +++ /dev/null @@ -1,302 +0,0 @@ -{ - "data": [ - { - "cli": "--mysqlx[=value]", - "default": "ON", - "id": "option_mysqld_mysqlx", - "name": "mysqlx", - "type": "enumeration", - "validValues": [ - "ON", - "OFF", - "FORCE", - "FORCE_PLUS_PERMANENT" - ] - }, - { - "cli": "--mysqlx-bind-address=addr", - "default": "*", - "dynamic": false, - "id": "sysvar_mysqlx_bind_address", - "name": "mysqlx_bind_address", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--mysqlx-connect-timeout=#", - "default": "30", - "dynamic": true, - "id": "sysvar_mysqlx_connect_timeout", - "name": "mysqlx_connect_timeout", - "range": { - "from": 1, - "to": 1000000000 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--mysqlx-document-id-unique-prefix=#", - "default": "0", - "dynamic": true, - "id": "sysvar_mysqlx_document_id_unique_prefix", - "name": "mysqlx_document_id_unique_prefix", - "range": { - "from": 0, - "to": 65535 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--mysqlx-enable-hello-notice[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "id": "sysvar_mysqlx_enable_hello_notice", - "name": "mysqlx_enable_hello_notice", - "scope": [ - "global" - ], - "type": "boolean" - }, - { - "cli": "--mysqlx-idle-worker-thread-timeout=#", - "default": "60", - "dynamic": true, - "id": "sysvar_mysqlx_idle_worker_thread_timeout", - "name": "mysqlx_idle_worker_thread_timeout", - "range": { - "from": 0, - "to": 3600 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--mysqlx-interactive-timeout=#", - "default": "28800", - "dynamic": true, - "id": "sysvar_mysqlx_interactive_timeout", - "name": "mysqlx_interactive_timeout", - "range": { - "from": 1, - "to": 2147483 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--mysqlx-max-allowed-packet=#", - "default": "67108864", - "dynamic": true, - "id": "sysvar_mysqlx_max_allowed_packet", - "name": "mysqlx_max_allowed_packet", - "range": { - "from": 512, - "to": 1073741824 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--mysqlx-max-connections=#", - "default": "100", - "dynamic": true, - "id": "sysvar_mysqlx_max_connections", - "name": "mysqlx_max_connections", - "range": { - "from": 1, - "to": 65535 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--mysqlx-min-worker-threads=#", - "default": "2", - "dynamic": true, - "id": "sysvar_mysqlx_min_worker_threads", - "name": "mysqlx_min_worker_threads", - "range": { - "from": 1, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--mysqlx-port=port_num", - "default": "33060", - "dynamic": false, - "id": "sysvar_mysqlx_port", - "name": "mysqlx_port", - "range": { - "from": 1, - "to": 65535 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--mysqlx-port-open-timeout=#", - "default": "0", - "dynamic": false, - "id": "sysvar_mysqlx_port_open_timeout", - "name": "mysqlx_port_open_timeout", - "range": { - "from": 0, - "to": 120 - }, - "scope": [ - "global" - ], - "type": "integer" - }, - { - "cli": "--mysqlx-read-timeout=#", - "default": "28800", - "dynamic": true, - "id": "sysvar_mysqlx_read_timeout", - "name": "mysqlx_read_timeout", - "range": { - "from": 30, - "to": 2147483 - }, - "scope": [ - "session" - ], - "type": "integer" - }, - { - "cli": "--mysqlx-socket=file_name", - "default": "/tmp/mysqlx.sock", - "dynamic": false, - "id": "sysvar_mysqlx_socket", - "name": "mysqlx_socket", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--mysqlx-ssl-ca=file_name", - "dynamic": false, - "id": "sysvar_mysqlx_ssl_ca", - "name": "mysqlx_ssl_ca", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--mysqlx-ssl-capath=dir_name", - "dynamic": false, - "id": "sysvar_mysqlx_ssl_capath", - "name": "mysqlx_ssl_capath", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "cli": "--mysqlx-ssl-cert=name", - "dynamic": false, - "id": "sysvar_mysqlx_ssl_cert", - "name": "mysqlx_ssl_cert", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--mysqlx-ssl-cipher=name", - "dynamic": false, - "id": "sysvar_mysqlx_ssl_cipher", - "name": "mysqlx_ssl_cipher", - "scope": [ - "global" - ], - "type": "string" - }, - { - "cli": "--mysqlx-ssl-crl=file_name", - "dynamic": false, - "id": "sysvar_mysqlx_ssl_crl", - "name": "mysqlx_ssl_crl", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--mysqlx-ssl-crlpath=dir_name", - "dynamic": false, - "id": "sysvar_mysqlx_ssl_crlpath", - "name": "mysqlx_ssl_crlpath", - "scope": [ - "global" - ], - "type": "directory name" - }, - { - "cli": "--mysqlx-ssl-key=file_name", - "dynamic": false, - "id": "sysvar_mysqlx_ssl_key", - "name": "mysqlx_ssl_key", - "scope": [ - "global" - ], - "type": "file name" - }, - { - "cli": "--mysqlx-wait-timeout=#", - "default": "28800", - "dynamic": true, - "id": "sysvar_mysqlx_wait_timeout", - "name": "mysqlx_wait_timeout", - "range": { - "from": 1, - "to": 2147483 - }, - "scope": [ - "session" - ], - "type": "integer" - }, - { - "cli": "--mysqlx-write-timeout=#", - "default": "60", - "dynamic": true, - "id": "sysvar_mysqlx_write_timeout", - "name": "mysqlx_write_timeout", - "range": { - "from": 1, - "to": 2147483 - }, - "scope": [ - "session" - ], - "type": "integer" - } - ], - "name": "x-plugin-options-system-variables", - "url": "https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/dist/merged-raw.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/dist/merged-raw.json deleted file mode 100644 index f038776..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/dist/merged-raw.json +++ /dev/null @@ -1,38229 +0,0 @@ -{ - "vars": { - "Aria_pagecache_blocks_not_flushed": { - "name": "Aria_pagecache_blocks_not_flushed", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "aria_pagecache_blocks_not_flushed", - "url": "https://mariadb.com/kb/en/library/documentation/aria-server-status-variables/" - } - ] - }, - "Aria_pagecache_blocks_unused": { - "name": "Aria_pagecache_blocks_unused", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "aria_pagecache_blocks_unused", - "url": "https://mariadb.com/kb/en/library/documentation/aria-server-status-variables/" - } - ] - }, - "Aria_pagecache_blocks_used": { - "name": "Aria_pagecache_blocks_used", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "aria_pagecache_blocks_used", - "url": "https://mariadb.com/kb/en/library/documentation/aria-server-status-variables/" - } - ] - }, - "Aria_pagecache_read_requests": { - "name": "Aria_pagecache_read_requests", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "aria_pagecache_read_requests", - "url": "https://mariadb.com/kb/en/library/documentation/aria-server-status-variables/" - } - ] - }, - "Aria_pagecache_reads": { - "name": "Aria_pagecache_reads", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "aria_pagecache_reads", - "url": "https://mariadb.com/kb/en/library/documentation/aria-server-status-variables/" - } - ] - }, - "Aria_pagecache_write_requests": { - "name": "Aria_pagecache_write_requests", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "aria_pagecache_write_requests", - "url": "https://mariadb.com/kb/en/library/documentation/aria-server-status-variables/" - } - ] - }, - "Aria_pagecache_writes": { - "name": "Aria_pagecache_writes", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "aria_pagecache_writes", - "url": "https://mariadb.com/kb/en/library/documentation/aria-server-status-variables/" - } - ] - }, - "Aria_transaction_log_syncs": { - "name": "Aria_transaction_log_syncs", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "aria_transaction_log_syncs", - "url": "https://mariadb.com/kb/en/library/documentation/aria-server-status-variables/" - } - ] - }, - "aria_block_size": { - "cli": "--aria-block-size=#", - "default": "8192", - "dynamic": false, - "name": "aria_block_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "aria_block_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/" - } - ] - }, - "aria_checkpoint_interval": { - "cli": "--aria-checkpoint-interval=#", - "default": "30", - "dynamic": true, - "name": "aria_checkpoint_interval", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "aria_checkpoint_interval", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/" - } - ] - }, - "aria_checkpoint_log_activity": { - "cli": "aria-checkpoint-log-activity=#", - "default": "1048576", - "dynamic": true, - "name": "aria_checkpoint_log_activity", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "aria_checkpoint_log_activity", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/" - } - ] - }, - "aria_encrypt_tables": { - "cli": "aria-encrypt-tables={0|1}", - "default": "OFF", - "dynamic": true, - "name": "aria_encrypt_tables", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "aria_encrypt_tables", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/" - } - ] - }, - "aria_force_start_after_recovery_failures": { - "cli": "--aria-force-start-after-recovery-failures=#", - "default": "0", - "dynamic": false, - "name": "aria_force_start_after_recovery_failures", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "aria_force_start_after_recovery_failures", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/" - } - ] - }, - "aria_group_commit": { - "cli": "--aria_group_commit=\"value\"", - "default": "none", - "dynamic": false, - "name": "aria_group_commit", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "none", - "hard", - "soft" - ], - "ids": [ - { - "anchor": "aria_group_commit", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/" - } - ] - }, - "aria_group_commit_interval": { - "cli": "--aria_group_commit_interval=#", - "default": "0 (no waiting)", - "dynamic": false, - "name": "aria_group_commit_interval", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "aria_group_commit_interval", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/" - } - ] - }, - "aria_log_file_size": { - "cli": "--aria-log-file-size=#", - "default": "1073741824", - "dynamic": true, - "name": "aria_log_file_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "aria_log_file_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/" - } - ] - }, - "aria_log_purge_type": { - "cli": "--aria-log-purge-type=name", - "default": "immediate", - "dynamic": true, - "name": "aria_log_purge_type", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "immediate", - "external", - "at_flush" - ], - "ids": [ - { - "anchor": "aria_log_purge_type", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/" - } - ] - }, - "aria_max_sort_file_size": { - "cli": "--aria-max-sort-file-size=#", - "default": "9223372036853727232", - "dynamic": true, - "name": "aria_max_sort_file_size", - "range": { - "from": 0, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "aria_max_sort_file_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/" - } - ] - }, - "aria_page_checksum": { - "cli": "--aria-page-checksum=#", - "default": "ON", - "dynamic": true, - "name": "aria_page_checksum", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "aria_page_checksum", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/" - } - ] - }, - "aria_pagecache_age_threshold": { - "cli": "--aria-pagecache-age-threshold=#", - "default": "300", - "dynamic": true, - "name": "aria_pagecache_age_threshold", - "range": { - "from": 100, - "to": 9999900 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "aria_pagecache_age_threshold", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/" - } - ] - }, - "aria_pagecache_buffer_size": { - "cli": "--aria-pagecache-buffer-size=#", - "default": "134217720 (128MB)", - "dynamic": false, - "name": "aria_pagecache_buffer_size", - "range": { - "from": 131072, - "to": "upwards" - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "aria_pagecache_buffer_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/" - } - ] - }, - "aria_pagecache_division_limit": { - "cli": "--aria-pagecache-division-limit=#", - "default": "100", - "dynamic": true, - "name": "aria_pagecache_division_limit", - "range": { - "from": 1, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "aria_pagecache_division_limit", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/" - } - ] - }, - "aria_pagecache_file_hash_size": { - "cli": "--aria-pagecache-file-hash-size=#", - "default": "512", - "dynamic": false, - "name": "aria_pagecache_file_hash_size", - "range": { - "from": 128, - "to": 16384 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "aria_pagecache_file_hash_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/" - } - ] - }, - "aria_recover": { - "name": "aria_recover", - "ids": [ - { - "anchor": "aria_recover", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/" - } - ] - }, - "aria_recover_options": { - "cli": "--aria-recover-options[=#]", - "default": "BACKUP,QUICK (>= MariaDB 10.2.4), NORMAL (<= MariaDB 10.2.3)", - "dynamic": true, - "name": "aria_recover_options", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "NORMAL", - "BACKUP", - "FORCE", - "QUICK", - "OFF" - ], - "ids": [ - { - "anchor": "aria_recover_options", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/" - } - ] - }, - "aria_repair_threads": { - "cli": "--aria-repair-threads=#", - "default": "1", - "dynamic": true, - "name": "aria_repair_threads", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "aria_repair_threads", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/" - } - ] - }, - "aria_sort_buffer_size": { - "cli": "--aria-sort-buffer-size=#", - "default": "268434432 (from MariaDB 10.0.3), 134217728 (before MariaDB 10.0.3)", - "dynamic": true, - "name": "aria_sort_buffer_size", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "aria_sort_buffer_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/" - } - ] - }, - "aria_stats_method": { - "cli": "--aria-stats-method=#", - "default": "nulls_unequal", - "dynamic": true, - "name": "aria_stats_method", - "scope": [ - "global", - "session" - ], - "type": "integer", - "validValues": [ - "nulls_equal", - "nulls_unequal", - "nulls_ignored" - ], - "ids": [ - { - "anchor": "aria_stats_method", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/" - } - ] - }, - "aria_sync_log_dir": { - "cli": "--aria-sync-log-dir=#", - "default": "NEWFILE", - "dynamic": true, - "name": "aria_sync_log_dir", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "NEWFILE", - "NEVER", - "ALWAYS" - ], - "ids": [ - { - "anchor": "aria_sync_log_dir", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/" - } - ] - }, - "aria_used_for_temp_tables": { - "default": "ON", - "dynamic": false, - "name": "aria_used_for_temp_tables", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "aria_used_for_temp_tables", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/" - } - ] - }, - "deadlock_search_depth_long": { - "cli": "--deadlock-search-depth-long=#", - "default": "15", - "dynamic": true, - "name": "deadlock_search_depth_long", - "range": { - "from": 0, - "to": 33 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "deadlock_search_depth_long", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/" - } - ] - }, - "deadlock_search_depth_short": { - "cli": "--deadlock-search-depth-short=#", - "default": "4", - "dynamic": true, - "name": "deadlock_search_depth_short", - "range": { - "from": 0, - "to": 32 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "deadlock_search_depth_short", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/" - } - ] - }, - "deadlock_timeout_long": { - "cli": "--deadlock-timeout-long=#", - "default": "50000000", - "dynamic": true, - "name": "deadlock_timeout_long", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "deadlock_timeout_long", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/" - } - ] - }, - "deadlock_timeout_short": { - "cli": "--deadlock-timeout-short=#", - "default": "10000", - "dynamic": true, - "name": "deadlock_timeout_short", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "deadlock_timeout_short", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/" - } - ] - }, - "Cassandra_multiget_keys_scanned": { - "name": "Cassandra_multiget_keys_scanned", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "cassandra_multiget_keys_scanned", - "url": "https://mariadb.com/kb/en/library/documentation/cassandra-status-variables/" - } - ] - }, - "Cassandra_multiget_reads": { - "name": "Cassandra_multiget_reads", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "cassandra_multiget_reads", - "url": "https://mariadb.com/kb/en/library/documentation/cassandra-status-variables/" - } - ] - }, - "Cassandra_multiget_rows_read": { - "name": "Cassandra_multiget_rows_read", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "cassandra_multiget_rows_read", - "url": "https://mariadb.com/kb/en/library/documentation/cassandra-status-variables/" - } - ] - }, - "Cassandra_network_exceptions": { - "name": "Cassandra_network_exceptions", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "cassandra_network_exceptions", - "url": "https://mariadb.com/kb/en/library/documentation/cassandra-status-variables/" - } - ] - }, - "Cassandra_row_insert_batches": { - "name": "Cassandra_row_insert_batches", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "cassandra_row_insert_batches", - "url": "https://mariadb.com/kb/en/library/documentation/cassandra-status-variables/" - } - ] - }, - "Cassandra_row_inserts": { - "name": "Cassandra_row_inserts", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "cassandra_row_inserts", - "url": "https://mariadb.com/kb/en/library/documentation/cassandra-status-variables/" - } - ] - }, - "Cassandra_timeout_exceptions": { - "name": "Cassandra_timeout_exceptions", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "cassandra_timeout_exceptions", - "url": "https://mariadb.com/kb/en/library/documentation/cassandra-status-variables/" - } - ] - }, - "Cassandra_unavailable_exceptions": { - "name": "Cassandra_unavailable_exceptions", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "cassandra_unavailable_exceptions", - "url": "https://mariadb.com/kb/en/library/documentation/cassandra-status-variables/" - } - ] - }, - "cassandra_default_thrift_host": { - "dynamic": true, - "name": "cassandra_default_thrift_host", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "cassandra_default_thrift_host", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/cassandra/cassandra-system-variables/" - } - ] - }, - "cassandra_failure_retries": { - "default": "3", - "dynamic": true, - "name": "cassandra_failure_retries", - "scope": [ - "global", - "session" - ], - "type": "integer", - "validValues": [ - "1", - "1073741824" - ], - "ids": [ - { - "anchor": "cassandra_failure_retries", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/cassandra/cassandra-system-variables/" - } - ] - }, - "cassandra_insert_batch_size": { - "default": "100", - "dynamic": true, - "name": "cassandra_insert_batch_size", - "scope": [ - "global", - "session" - ], - "type": "integer", - "validValues": [ - "1", - "1073741824" - ], - "ids": [ - { - "anchor": "cassandra_insert_batch_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/cassandra/cassandra-system-variables/" - } - ] - }, - "cassandra_multiget_batch_size": { - "default": "100", - "dynamic": true, - "name": "cassandra_multiget_batch_size", - "scope": [ - "global", - "session" - ], - "type": "integer", - "validValues": [ - "1", - "1073741824" - ], - "ids": [ - { - "anchor": "cassandra_multiget_batch_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/cassandra/cassandra-system-variables/" - } - ] - }, - "cassandra_read_consistency": { - "default": "ONE", - "name": "cassandra_read_consistency", - "scope": [ - "global", - "session" - ], - "validValues": [ - "ONE", - "TWO", - "THREE", - "ANY", - "ALL", - "QUORUM", - "EACH_QUORUM", - "LOCAL_QUORUM", - "\n" - ], - "ids": [ - { - "anchor": "cassandra_read_consistency", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/cassandra/cassandra-system-variables/" - } - ] - }, - "cassandra_rnd_batch_size": { - "default": "10000", - "name": "cassandra_rnd_batch_size", - "scope": [ - "global", - "session" - ], - "validValues": [ - "1", - "1073741824" - ], - "ids": [ - { - "anchor": "cassandra_rnd_batch_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/cassandra/cassandra-system-variables/" - } - ] - }, - "cassandra_write_consistency": { - "default": "ONE", - "name": "cassandra_write_consistency", - "scope": [ - "global", - "session" - ], - "validValues": [ - "ONE", - "TWO", - "THREE", - "ANY", - "ALL", - "QUORUM", - "EACH_QUORUM", - "LOCAL_QUORUM", - "\n" - ], - "ids": [ - { - "anchor": "cassandra_write_consistency", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/cassandra/cassandra-system-variables/" - } - ] - }, - "connect_class_path": { - "cli": "--connect-class-path=value", - "default": "", - "dynamic": false, - "name": "connect_class_path", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "connect_class_path", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/" - } - ] - }, - "connect_cond_push": { - "cli": "--connect-cond-push={0|1}", - "default": "ON", - "dynamic": true, - "name": "connect_cond_push", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "connect_cond_push", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/" - } - ] - }, - "connect_conv_size": { - "cli": "--connect-conv-size=#", - "default": ">= MariaDB 10.4.8, MariaDB 10.3.18, MariaDB 10.2.27: 1024, <= MariaDB 10.4.7, MariaDB 10.3.17, MariaDB 10.2.26: 8192", - "dynamic": true, - "name": "connect_conv_size", - "range": { - "from": 0, - "to": 65500 - }, - "scope": [ - "session", - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "connect_conv_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/" - } - ] - }, - "connect_enable_mongo": { - "cli": "--connect-enable-mongo={0|1}", - "default": "OFF", - "dynamic": false, - "name": "connect_enable_mongo", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "connect_enable_mongo", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/" - } - ] - }, - "connect_exact_info": { - "cli": "--connect-exact-info=#", - "default": "OFF", - "dynamic": true, - "name": "connect_exact_info", - "scope": [ - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "connect_exact_info", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/" - } - ] - }, - "connect_indx_map": { - "cli": "--connect-indx-map=#", - "default": "OFF", - "dynamic": true, - "name": "connect_indx_map", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "connect_indx_map", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/" - } - ] - }, - "connect_java_wrapper": { - "cli": "--connect-java-wrapper=val", - "default": "wrappers/JdbcInterface", - "dynamic": true, - "name": "connect_java_wrapper", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "connect_java_wrapper", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/" - } - ] - }, - "connect_json_grp_size": { - "cli": "--connect-json-grp-size=#", - "default": "10", - "dynamic": true, - "name": "connect_json_grp_size", - "range": { - "from": 1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "connect_json_grp_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/" - } - ] - }, - "connect_json_null": { - "cli": "--connect-json-null=value", - "default": "", - "dynamic": true, - "name": "connect_json_null", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "connect_json_null", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/" - } - ] - }, - "connect_jvm_path": { - "cli": "--connect-jvm_path=value", - "default": "", - "dynamic": false, - "name": "connect_jvm_path", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "connect_jvm_path", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/" - } - ] - }, - "connect_type_conv": { - "cli": "--connect-type-conv=#", - "default": "YES (>= Connect 1.06.006), NO (<= Connect 1.06.005)", - "dynamic": true, - "name": "connect_type_conv", - "scope": [ - "session", - "global" - ], - "validValues": [ - "NO", - "YES", - "SKIP" - ], - "ids": [ - { - "anchor": "connect_type_conv", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/" - } - ] - }, - "connect_use_tempfile": { - "cli": "--connect-use-tempfile=#", - "default": "AUTO", - "dynamic": true, - "name": "connect_use_tempfile", - "scope": [ - "session" - ], - "ids": [ - { - "anchor": "connect_use_tempfile", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/" - } - ] - }, - "connect_work_size": { - "cli": "--connect-work-size=#", - "default": "67108864", - "dynamic": true, - "name": "connect_work_size", - "range": { - "from": 4194304, - "to": "upwards" - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "connect_work_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/" - } - ] - }, - "connect_xtrace": { - "cli": "--connect-xtrace=#", - "default": "0", - "dynamic": true, - "name": "connect_xtrace", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "set", - "validValues": [], - "ids": [ - { - "anchor": "connect_xtrace", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/" - } - ] - }, - "wsrep_apply_oooe": { - "name": "wsrep_apply_oooe", - "ids": [ - { - "anchor": "wsrep_apply_oooe", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_apply_oool": { - "name": "wsrep_apply_oool", - "ids": [ - { - "anchor": "wsrep_apply_oool", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_apply_window": { - "name": "wsrep_apply_window", - "ids": [ - { - "anchor": "wsrep_apply_window", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_cert_deps_distance": { - "name": "wsrep_cert_deps_distance", - "ids": [ - { - "anchor": "wsrep_cert_deps_distance", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_cert_index_size": { - "name": "wsrep_cert_index_size", - "type": "integer", - "ids": [ - { - "anchor": "wsrep_cert_index_size", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_cert_interval": { - "name": "wsrep_cert_interval", - "type": "integer", - "ids": [ - { - "anchor": "wsrep_cert_interval", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_cluster_capabilities": { - "name": "wsrep_cluster_capabilities", - "ids": [ - { - "anchor": "wsrep_cluster_capabilities", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_cluster_conf_id": { - "name": "wsrep_cluster_conf_id", - "type": "integer", - "ids": [ - { - "anchor": "wsrep_cluster_conf_id", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_cluster_size": { - "name": "wsrep_cluster_size", - "type": "integer", - "ids": [ - { - "anchor": "wsrep_cluster_size", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_cluster_state_uuid": { - "name": "wsrep_cluster_state_uuid", - "ids": [ - { - "anchor": "wsrep_cluster_state_uuid", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_cluster_status": { - "name": "wsrep_cluster_status", - "ids": [ - { - "anchor": "wsrep_cluster_status", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_cluster_weight": { - "name": "wsrep_cluster_weight", - "ids": [ - { - "anchor": "wsrep_cluster_weight", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_commit_oooe": { - "name": "wsrep_commit_oooe", - "ids": [ - { - "anchor": "wsrep_commit_oooe", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_commit_oool": { - "name": "wsrep_commit_oool", - "ids": [ - { - "anchor": "wsrep_commit_oool", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_commit_window": { - "name": "wsrep_commit_window", - "ids": [ - { - "anchor": "wsrep_commit_window", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_connected": { - "name": "wsrep_connected", - "ids": [ - { - "anchor": "wsrep_connected", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_desync_count": { - "name": "wsrep_desync_count", - "type": "integer", - "ids": [ - { - "anchor": "wsrep_desync_count", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_evs_delayed": { - "name": "wsrep_evs_delayed", - "ids": [ - { - "anchor": "wsrep_evs_delayed", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_evs_evict_list": { - "name": "wsrep_evs_evict_list", - "ids": [ - { - "anchor": "wsrep_evs_evict_list", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_evs_repl_latency": { - "name": "wsrep_evs_repl_latency", - "ids": [ - { - "anchor": "wsrep_evs_repl_latency", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_evs_state": { - "name": "wsrep_evs_state", - "ids": [ - { - "anchor": "wsrep_evs_state", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_flow_control_paused": { - "name": "wsrep_flow_control_paused", - "ids": [ - { - "anchor": "wsrep_flow_control_paused", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_flow_control_paused_ns": { - "name": "wsrep_flow_control_paused_ns", - "ids": [ - { - "anchor": "wsrep_flow_control_paused_ns", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_flow_control_recv": { - "name": "wsrep_flow_control_recv", - "type": "integer", - "ids": [ - { - "anchor": "wsrep_flow_control_recv", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_flow_control_sent": { - "name": "wsrep_flow_control_sent", - "type": "integer", - "ids": [ - { - "anchor": "wsrep_flow_control_sent", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_gcomm_uuid": { - "name": "wsrep_gcomm_uuid", - "ids": [ - { - "anchor": "wsrep_gcomm_uuid", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_incoming_addresses": { - "name": "wsrep_incoming_addresses", - "ids": [ - { - "anchor": "wsrep_incoming_addresses", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_last_committed": { - "name": "wsrep_last_committed", - "type": "integer", - "ids": [ - { - "anchor": "wsrep_last_committed", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_local_bf_aborts": { - "name": "wsrep_local_bf_aborts", - "type": "integer", - "ids": [ - { - "anchor": "wsrep_local_bf_aborts", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_local_cached_downto": { - "name": "wsrep_local_cached_downto", - "ids": [ - { - "anchor": "wsrep_local_cached_downto", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_local_cert_failures": { - "name": "wsrep_local_cert_failures", - "type": "integer", - "ids": [ - { - "anchor": "wsrep_local_cert_failures", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_local_commits": { - "name": "wsrep_local_commits", - "type": "integer", - "ids": [ - { - "anchor": "wsrep_local_commits", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_local_index": { - "name": "wsrep_local_index", - "ids": [ - { - "anchor": "wsrep_local_index", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_local_recv_queue": { - "name": "wsrep_local_recv_queue", - "type": "integer", - "ids": [ - { - "anchor": "wsrep_local_recv_queue", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_local_recv_queue_avg": { - "name": "wsrep_local_recv_queue_avg", - "ids": [ - { - "anchor": "wsrep_local_recv_queue_avg", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_local_recv_queue_max": { - "name": "wsrep_local_recv_queue_max", - "ids": [ - { - "anchor": "wsrep_local_recv_queue_max", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_local_recv_queue_min": { - "name": "wsrep_local_recv_queue_min", - "ids": [ - { - "anchor": "wsrep_local_recv_queue_min", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_local_replays": { - "name": "wsrep_local_replays", - "type": "integer", - "ids": [ - { - "anchor": "wsrep_local_replays", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_local_send_queue": { - "name": "wsrep_local_send_queue", - "type": "integer", - "ids": [ - { - "anchor": "wsrep_local_send_queue", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_local_send_queue_avg": { - "name": "wsrep_local_send_queue_avg", - "ids": [ - { - "anchor": "wsrep_local_send_queue_avg", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_local_send_queue_max": { - "name": "wsrep_local_send_queue_max", - "ids": [ - { - "anchor": "wsrep_local_send_queue_max", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_local_send_queue_min": { - "name": "wsrep_local_send_queue_min", - "ids": [ - { - "anchor": "wsrep_local_send_queue_min", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_local_state": { - "name": "wsrep_local_state", - "ids": [ - { - "anchor": "wsrep_local_state", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_local_state_comment": { - "name": "wsrep_local_state_comment", - "ids": [ - { - "anchor": "wsrep_local_state_comment", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_local_state_uuid": { - "name": "wsrep_local_state_uuid", - "ids": [ - { - "anchor": "wsrep_local_state_uuid", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_open_connections": { - "name": "wsrep_open_connections", - "type": "integer", - "ids": [ - { - "anchor": "wsrep_open_connections", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_open_transactions": { - "name": "wsrep_open_transactions", - "type": "integer", - "ids": [ - { - "anchor": "wsrep_open_transactions", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_protocol_version": { - "name": "wsrep_protocol_version", - "ids": [ - { - "anchor": "wsrep_protocol_version", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_provider_name": { - "name": "wsrep_provider_name", - "ids": [ - { - "anchor": "wsrep_provider_name", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_provider_vendor": { - "name": "wsrep_provider_vendor", - "ids": [ - { - "anchor": "wsrep_provider_vendor", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_provider_version": { - "name": "wsrep_provider_version", - "type": "integer", - "ids": [ - { - "anchor": "wsrep_provider_version", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_ready": { - "name": "wsrep_ready", - "ids": [ - { - "anchor": "wsrep_ready", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_received": { - "name": "wsrep_received", - "type": "integer", - "ids": [ - { - "anchor": "wsrep_received", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_received_bytes": { - "name": "wsrep_received_bytes", - "type": "byte", - "ids": [ - { - "anchor": "wsrep_received_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_repl_data_bytes": { - "name": "wsrep_repl_data_bytes", - "type": "integer", - "ids": [ - { - "anchor": "wsrep_repl_data_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_repl_keys": { - "name": "wsrep_repl_keys", - "type": "integer", - "ids": [ - { - "anchor": "wsrep_repl_keys", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_repl_keys_bytes": { - "name": "wsrep_repl_keys_bytes", - "type": "integer", - "ids": [ - { - "anchor": "wsrep_repl_keys_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_repl_other_bytes": { - "name": "wsrep_repl_other_bytes", - "type": "integer", - "ids": [ - { - "anchor": "wsrep_repl_other_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_replicated": { - "name": "wsrep_replicated", - "type": "integer", - "ids": [ - { - "anchor": "wsrep_replicated", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_replicated_bytes": { - "name": "wsrep_replicated_bytes", - "type": "byte", - "ids": [ - { - "anchor": "wsrep_replicated_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_thread_count": { - "name": "wsrep_thread_count", - "type": "integer", - "ids": [ - { - "anchor": "wsrep_thread_count", - "url": "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/" - } - ] - }, - "wsrep_auto_increment_control": { - "cli": "--wsrep-auto-increment-control[={0|1}]", - "default": "ON", - "dynamic": true, - "name": "wsrep_auto_increment_control", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "wsrep_auto_increment_control", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_causal_reads": { - "cli": "--wsrep-causal-reads[={0|1}]", - "default": "OFF", - "dynamic": true, - "name": "wsrep_causal_reads", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "wsrep_causal_reads", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_certification_rules": { - "cli": "--wsrep-certifcation-rules", - "default": "strict", - "dynamic": true, - "name": "wsrep_certification_rules", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "strict", - "optimized" - ], - "ids": [ - { - "anchor": "wsrep_certification_rules", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_certify_nonPK": { - "cli": "--wsrep-certify-nonPK[={0|1}]", - "default": "ON", - "dynamic": true, - "name": "wsrep_certify_nonPK", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "wsrep_certify_nonpk", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_cluster_address": { - "cli": "--wsrep-cluster-address=value", - "dynamic": false, - "name": "wsrep_cluster_address", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "wsrep_cluster_address", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_cluster_name": { - "cli": "--wsrep-cluster-name=value", - "default": "my_wsrep_cluster", - "dynamic": true, - "name": "wsrep_cluster_name", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "wsrep_cluster_name", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_convert_LOCK_to_trx": { - "cli": "--wsrep-convert-LOCK-to-trx[={0|1}]", - "default": "OFF", - "dynamic": true, - "name": "wsrep_convert_LOCK_to_trx", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "wsrep_convert_lock_to_trx", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_data_home_dir": { - "cli": "--wsrep-data-home-dir=value", - "default": "The datadir variable value.", - "dynamic": false, - "name": "wsrep_data_home_dir", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "wsrep_data_home_dir", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_dbug_option": { - "cli": "--wsrep-dbug-option=value", - "dynamic": true, - "name": "wsrep_dbug_option", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "wsrep_dbug_option", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_debug": { - "cli": "--wsrep-debug[={0|1}]", - "default": "NONE (>= MariaDB 10.4.3), OFF (<= MariaDB 10.4.2)", - "dynamic": true, - "name": "wsrep_debug", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "wsrep_debug", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_desync": { - "cli": "--wsrep-desync[={0|1}]", - "default": "OFF", - "dynamic": true, - "name": "wsrep_desync", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "wsrep_desync", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_dirty_reads": { - "cli": "--wsrep-dirty-reads[={0|1}]", - "default": "OFF", - "dynamic": true, - "name": "wsrep_dirty_reads", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "validValues": [ - "ON", - "OFF" - ], - "ids": [ - { - "anchor": "wsrep_dirty_reads", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_drupal_282555_workaround": { - "cli": "--wsrep-drupal-282555-workaround[={0|1}]", - "default": "OFF", - "dynamic": true, - "name": "wsrep_drupal_282555_workaround", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "wsrep_drupal_282555_workaround", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_forced_binlog_format": { - "cli": "--wsrep-forced-binlog-format=value", - "default": "NONE", - "dynamic": true, - "name": "wsrep_forced_binlog_format", - "scope": [ - "global" - ], - "validValues": [ - "STATEMENT", - "ROW", - "MIXED", - "NONE" - ], - "ids": [ - { - "anchor": "wsrep_forced_binlog_format", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_gtid_domain_id": { - "cli": "--wsrep-gtid-domain-id=#", - "default": "0", - "dynamic": true, - "name": "wsrep_gtid_domain_id", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "wsrep_gtid_domain_id", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_gtid_mode": { - "cli": "--wsrep-gtid-mode[={0|1}]", - "default": "OFF", - "dynamic": true, - "name": "wsrep_gtid_mode", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "wsrep_gtid_mode", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_ignore_apply_errors": { - "cli": "--wsrep-ignore-apply-errors", - "default": "0", - "dynamic": true, - "name": "wsrep_ignore_apply_errors", - "range": { - "from": 0, - "to": 7 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "wsrep_ignore_apply_errors", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_load_data_splitting": { - "cli": "--wsrep-load-data-splitting[={0|1}]", - "default": "OFF (>= MariaDB 10.4.3), ON (<= MariaDB 10.4.2)", - "dynamic": true, - "name": "wsrep_load_data_splitting", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "wsrep_load_data_splitting", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_log_conflicts": { - "cli": "--wsrep-log-conflicts[={0|1}]", - "default": "OFF", - "dynamic": true, - "name": "wsrep_log_conflicts", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "wsrep_log_conflicts", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_max_ws_rows": { - "cli": "--wsrep-max-ws-rows=#", - "default": "0 (>= MariaDB Galera 10.0.27, MariaDB 10.1.17), 131072 (<= MariaDB Galera 10.0.26, MariaDB 10.1.16)", - "dynamic": true, - "name": "wsrep_max_ws_rows", - "range": { - "from": 0, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "wsrep_max_ws_rows", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_max_ws_size": { - "cli": "--wsrep-max-ws-size=#", - "default": "2147483647 (2GB, >= MariaDB Galera 10.0.27, MariaDB 10.1.17), 1073741824 (1GB, <= MariaDB Galera 10.0.26, MariaDB 10.1.16)", - "dynamic": true, - "name": "wsrep_max_ws_size", - "range": { - "from": 1024, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "wsrep_max_ws_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_mysql_replication_bundle": { - "cli": "--wsrep-mysql-replication-bundle=#", - "default": "0", - "dynamic": false, - "name": "wsrep_mysql_replication_bundle", - "range": { - "from": 0, - "to": 1000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "wsrep_mysql_replication_bundle", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_node_address": { - "cli": "--wsrep-node-address=value", - "default": "Primary network address, usually eth0 with a default port of 4567, or 0.0.0.0 if no IP address.", - "dynamic": false, - "name": "wsrep_node_address", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "wsrep_node_address", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_node_incoming_address": { - "cli": "--wsrep-node-incoming-address=value", - "default": "AUTO", - "dynamic": false, - "name": "wsrep_node_incoming_address", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "wsrep_node_incoming_address", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_node_name": { - "cli": "--wsrep-node-name=value", - "default": "The server's hostname.", - "dynamic": true, - "name": "wsrep_node_name", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "wsrep_node_name", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_notify_cmd": { - "cli": "--wsrep-notify-command=value", - "default": "Empty", - "dynamic": true, - "name": "wsrep_notify_cmd", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "wsrep_notify_cmd", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_on": { - "cli": "--wsrep-on[={0|1}]", - "default": "OFF (>= MariaDB 10.1), ON (<= MariaDB Galera Cluster 10.0),", - "dynamic": true, - "name": "wsrep_on", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "validValues": [ - "ON", - "OFF" - ], - "ids": [ - { - "anchor": "wsrep_on", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_OSU_method": { - "cli": "--wsrep-OSU-method[=value]", - "default": "TOI", - "dynamic": true, - "name": "wsrep_OSU_method", - "scope": [ - "global", - "session" - ], - "validValues": [ - "TOI", - "RSU" - ], - "ids": [ - { - "anchor": "wsrep_osu_method", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_patch_version": { - "default": "None", - "dynamic": false, - "name": "wsrep_patch_version", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "wsrep_patch_version", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_provider": { - "cli": "--wsrep-provider=value", - "default": "None", - "dynamic": true, - "name": "wsrep_provider", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "wsrep_provider", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_provider_options": { - "cli": "--wsrep-provider-options=value", - "default": "Empty", - "dynamic": false, - "name": "wsrep_provider_options", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "wsrep_provider_options", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_recover": { - "cli": "--wsrep-recover[={0|1}]", - "default": "OFF", - "dynamic": false, - "name": "wsrep_recover", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "wsrep_recover", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_reject_queries": { - "cli": "--wsrep-reject-queries[=value]", - "default": "NONE", - "dynamic": true, - "name": "wsrep_reject_queries", - "scope": [ - "global" - ], - "validValues": [ - "NONE", - "ALL", - "ALL_KILL" - ], - "ids": [ - { - "anchor": "wsrep_reject_queries", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_replicate_myisam": { - "cli": "--wsrep-replicate-myisam[={0|1}]", - "default": "OFF", - "dynamic": true, - "name": "wsrep_replicate_myisam", - "scope": [ - "global" - ], - "type": "boolean", - "validValues": [ - "ON", - "OFF" - ], - "ids": [ - { - "anchor": "wsrep_replicate_myisam", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_restart_slave": { - "cli": "--wsrep-restart-slave[={0|1}]", - "default": "OFF", - "dynamic": true, - "name": "wsrep_restart_slave", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "wsrep_restart_slave", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_retry_autocommit": { - "cli": "--wsrep-retry-autocommit=value", - "default": "1", - "dynamic": false, - "name": "wsrep_retry_autocommit", - "range": { - "from": 0, - "to": 10000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "wsrep_retry_autocommit", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_slave_FK_checks": { - "cli": "--wsrep-slave-FK-checks[={0|1}]", - "default": "ON", - "dynamic": true, - "name": "wsrep_slave_FK_checks", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "wsrep_slave_fk_checks", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_slave_threads": { - "cli": "--wsrep-slave-threads=#", - "default": "1", - "dynamic": true, - "name": "wsrep_slave_threads", - "range": { - "from": 1, - "to": 512 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "wsrep_slave_threads", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_slave_UK_checks": { - "cli": "--wsrep-slave-UK-checks[={0|1}]", - "default": "OFF", - "dynamic": true, - "name": "wsrep_slave_UK_checks", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "wsrep_slave_uk_checks", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_sr_store": { - "cli": "--wsrep-sr-store=val", - "default": "table", - "dynamic": false, - "name": "wsrep_sr_store", - "scope": [ - "global" - ], - "validValues": [ - "table", - "none" - ], - "ids": [ - { - "anchor": "wsrep_sr_store", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_sst_auth": { - "cli": "--wsrep-sst-auth=value", - "default": "(Empty)", - "dynamic": true, - "name": "wsrep_sst_auth", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "wsrep_sst_auth", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_sst_donor": { - "cli": "--wsrep-sst-donor=value", - "default": "", - "dynamic": true, - "name": "wsrep_sst_donor", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "wsrep_sst_donor", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_sst_donor_rejects_queries": { - "cli": "--wsrep-sst-donor-rejects-queries[={0|1}]", - "default": "OFF", - "dynamic": true, - "name": "wsrep_sst_donor_rejects_queries", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "wsrep_sst_donor_rejects_queries", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_sst_method": { - "cli": "--wsrep-sst-method=value", - "default": "rsync", - "dynamic": true, - "name": "wsrep_sst_method", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "rsync", - "mysqldump", - "xtrabackup", - "xtrabackup-v2", - "mariabackup" - ], - "ids": [ - { - "anchor": "wsrep_sst_method", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_sst_receive_address": { - "cli": "--wsrep-sst-receive-address=value", - "default": "AUTO", - "dynamic": true, - "name": "wsrep_sst_receive_address", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "wsrep_sst_receive_address", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_start_position": { - "cli": "--wsrep-start-position=value", - "default": "00000000-0000-0000-0000-000000000000:-1", - "dynamic": true, - "name": "wsrep_start_position", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "wsrep_start_position", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_sync_wait": { - "cli": "--wsrep-sync-wait=#", - "default": "0", - "dynamic": true, - "name": "wsrep_sync_wait", - "range": { - "from": 0, - "to": 15 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "wsrep_sync_wait", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_trx_fragment_size": { - "cli": "--wsrep-trx-fragment-size=#", - "default": "0", - "dynamic": true, - "name": "wsrep_trx_fragment_size", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "wsrep_trx_fragment_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "wsrep_trx_fragment_unit": { - "cli": "--wsrep-trx-fragment-unit=value", - "default": "bytes", - "dynamic": true, - "name": "wsrep_trx_fragment_unit", - "scope": [ - "global", - "session" - ], - "validValues": [ - "bytes", - "rows", - "statements" - ], - "ids": [ - { - "anchor": "wsrep_trx_fragment_unit", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/" - } - ] - }, - "gtid_binlog_pos": { - "default": "Null", - "dynamic": false, - "name": "gtid_binlog_pos", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "gtid_binlog_pos", - "url": "https://mariadb.com/kb/en/library/documentation/gtid/" - } - ] - }, - "gtid_binlog_state": { - "default": "Null", - "dynamic": true, - "name": "gtid_binlog_state", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "gtid_binlog_state", - "url": "https://mariadb.com/kb/en/library/documentation/gtid/" - } - ] - }, - "gtid_current_pos": { - "default": "Null", - "dynamic": false, - "name": "gtid_current_pos", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "gtid_current_pos", - "url": "https://mariadb.com/kb/en/library/documentation/gtid/" - } - ] - }, - "gtid_domain_id": { - "cli": "--gtid-domain-id=#", - "default": "0", - "dynamic": true, - "name": "gtid_domain_id", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "ids": [ - { - "anchor": "gtid_domain_id", - "url": "https://mariadb.com/kb/en/library/documentation/gtid/" - } - ] - }, - "last_gtid": { - "dynamic": false, - "name": "last_gtid", - "scope": [ - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "last_gtid", - "url": "https://mariadb.com/kb/en/library/documentation/gtid/" - } - ] - }, - "server_id": { - "dynamic": true, - "name": "server_id", - "type": "integer", - "ids": [ - { - "anchor": "server_id", - "url": "https://mariadb.com/kb/en/library/documentation/gtid/" - }, - { - "anchor": "server_id", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_server_id", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options.html" - } - ] - }, - "gtid_seq_no": { - "default": "Null", - "dynamic": true, - "name": "gtid_seq_no", - "scope": [ - "session" - ], - "ids": [ - { - "anchor": "gtid_seq_no", - "url": "https://mariadb.com/kb/en/library/documentation/gtid/" - } - ] - }, - "gtid_ignore_duplicates": { - "cli": "--gtid-ignore-duplicates=#", - "default": "OFF", - "dynamic": true, - "name": "gtid_ignore_duplicates", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "gtid_ignore_duplicates", - "url": "https://mariadb.com/kb/en/library/documentation/gtid/" - } - ] - }, - "gtid_pos_auto_engines": { - "cli": "--gtid-pos-auto-engines=value", - "default": "empty", - "dynamic": true, - "name": "gtid_pos_auto_engines", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "gtid_pos_auto_engines", - "url": "https://mariadb.com/kb/en/library/documentation/gtid/" - } - ] - }, - "gtid_cleanup_batch_size": { - "cli": "--gtid-cleanup-batch-size=#", - "default": "64", - "dynamic": true, - "name": "gtid_cleanup_batch_size", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "gtid_cleanup_batch_size", - "url": "https://mariadb.com/kb/en/library/documentation/gtid/" - } - ] - }, - "Server_audit_active": { - "name": "Server_audit_active", - "type": "boolean", - "ids": [ - { - "anchor": "server_audit_active", - "url": "https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-status-variables/" - } - ] - }, - "Server_audit_current_log": { - "name": "Server_audit_current_log", - "type": "string", - "ids": [ - { - "anchor": "server_audit_current_log", - "url": "https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-status-variables/" - } - ] - }, - "Server_audit_last_error": { - "name": "Server_audit_last_error", - "type": "string", - "ids": [ - { - "anchor": "server_audit_last_error", - "url": "https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-status-variables/" - } - ] - }, - "Server_audit_writes_failed": { - "default": "0", - "name": "Server_audit_writes_failed", - "type": "integer", - "ids": [ - { - "anchor": "server_audit_writes_failed", - "url": "https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-status-variables/" - } - ] - }, - "server_audit_events": { - "cli": "--server-audit-events=value", - "default": "Empty string", - "dynamic": true, - "name": "server_audit_events", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "CONNECT", - "QUERY", - "TABLE", - "CONNECT", - "QUERY", - "TABLE", - "QUERY_DDL", - "QUERY_DML", - "CONNECT", - "QUERY", - "TABLE", - "QUERY_DDL", - "QUERY_DML", - "QUERY_DCL", - "CONNECT", - "QUERY", - "TABLE", - "QUERY_DDL", - "QUERY_DML", - "QUERY_DCL", - "QUERY_DML_NO_SELECT" - ], - "ids": [ - { - "anchor": "server_audit_events", - "url": "https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/" - } - ] - }, - "server_audit_excl_users": { - "cli": "--server-audit-excl-users=value", - "default": "Empty string", - "dynamic": true, - "name": "server_audit_excl_users", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "server_audit_excl_users", - "url": "https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/" - } - ] - }, - "server_audit_file_path": { - "cli": "--server-audit-file-path=value", - "default": "server_audit.log", - "dynamic": true, - "name": "server_audit_file_path", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "server_audit_file_path", - "url": "https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/" - } - ] - }, - "server_audit_file_rotate_now": { - "cli": "--server-audit-rotate-now[={0|1}]", - "default": "OFF", - "dynamic": true, - "name": "server_audit_file_rotate_now", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "server_audit_file_rotate_now", - "url": "https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/" - } - ] - }, - "server_audit_file_rotate_size": { - "cli": "--server-audit-rotate-size=#", - "default": "1000000", - "dynamic": true, - "name": "server_audit_file_rotate_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "server_audit_file_rotate_size", - "url": "https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/" - } - ] - }, - "server_audit_file_rotations": { - "cli": "--server-audit-rotations=#", - "default": "9", - "dynamic": true, - "name": "server_audit_file_rotations", - "range": { - "from": 0, - "to": 999 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "server_audit_file_rotations", - "url": "https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/" - } - ] - }, - "server_audit_incl_users": { - "cli": "--server-audit-incl-users=value", - "default": "Empty string", - "dynamic": true, - "name": "server_audit_incl_users", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "server_audit_incl_users", - "url": "https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/" - } - ] - }, - "server_audit_loc_info": { - "default": "Empty string", - "dynamic": false, - "name": "server_audit_loc_info", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "server_audit_loc_info", - "url": "https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/" - } - ] - }, - "server_audit_logging": { - "cli": "--server-audit-logging[={0|1}]", - "default": "OFF", - "dynamic": true, - "name": "server_audit_logging", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "server_audit_logging", - "url": "https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/" - } - ] - }, - "server_audit_mode": { - "cli": "--server-audit-mode[=#]", - "name": "server_audit_mode", - "ids": [ - { - "anchor": "server_audit_mode", - "url": "https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/" - } - ] - }, - "server_audit_output_type": { - "cli": "--server-audit-output-type=value", - "default": "file", - "dynamic": true, - "name": "server_audit_output_type", - "scope": [ - "global" - ], - "validValues": [ - "SYSLOG", - "FILE" - ], - "ids": [ - { - "anchor": "server_audit_output_type", - "url": "https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/" - } - ] - }, - "server_audit_query_log_limit": { - "cli": "--server-audit-query-log-limit=#", - "default": "1024", - "dynamic": true, - "name": "server_audit_query_log_limit", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "server_audit_query_log_limit", - "url": "https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/" - } - ] - }, - "server_audit_syslog_facility": { - "cli": "--server-audit-syslog-facility=value", - "default": "LOG_USER", - "dynamic": true, - "name": "server_audit_syslog_facility", - "scope": [ - "global" - ], - "validValues": [ - "LOG_USER", - "LOG_MAIL", - "LOG_DAEMON", - "LOG_AUTH", - "LOG_SYSLOG", - "LOG_LPR", - "LOG_NEWS", - "LOG_UUCP", - "LOG_CRON", - "LOG_AUTHPRIV", - "LOG_FTP", - "LOG_LOCAL0", - "LOG_LOCAL7" - ], - "ids": [ - { - "anchor": "server_audit_syslog_facility", - "url": "https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/" - } - ] - }, - "server_audit_syslog_ident": { - "cli": "--server-audit-syslog-ident=value", - "default": "mysql-server_auditing", - "dynamic": true, - "name": "server_audit_syslog_ident", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "server_audit_syslog_ident", - "url": "https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/" - } - ] - }, - "server_audit_syslog_info": { - "cli": "--server-audit-syslog-info=value", - "default": "Empty string", - "dynamic": true, - "name": "server_audit_syslog_info", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "server_audit_syslog_info", - "url": "https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/" - } - ] - }, - "server_audit_syslog_priority": { - "cli": "--server-audit-syslog-priority=value", - "default": "LOG_INFO", - "dynamic": true, - "name": "server_audit_syslog_priority", - "scope": [ - "global" - ], - "validValues": [ - "LOG_EMERG", - "LOG_ALERT", - "LOG_CRIT", - "LOG_ERR", - "LOG_WARNING", - "LOG_NOTICE", - "LOG_INFO", - "LOG_DEBUG" - ], - "ids": [ - { - "anchor": "server_audit_syslog_priority", - "url": "https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/" - } - ] - }, - "server_audit": { - "cli": "--server-audit=val", - "default": "ON", - "name": "server_audit", - "validValues": [ - "OFF", - "ON", - "FORCE", - "FORCE_PLUS_PERMANENT" - ], - "ids": [ - { - "anchor": "server_audit", - "url": "https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/" - } - ] - }, - "Mroonga_count_skip": { - "name": "Mroonga_count_skip", - "type": "integer", - "ids": [ - { - "anchor": "mroonga_count_skip", - "url": "https://mariadb.com/kb/en/library/documentation/mroonga-status-variables/" - } - ] - }, - "Mroonga_fast_order_limit": { - "name": "Mroonga_fast_order_limit", - "type": "integer", - "ids": [ - { - "anchor": "mroonga_fast_order_limit", - "url": "https://mariadb.com/kb/en/library/documentation/mroonga-status-variables/" - } - ] - }, - "mroonga_action_on_fulltext_query_error": { - "cli": "--mroonga-action-on-fulltext-query-error=value", - "default": "ERROR_AND_LOG", - "dynamic": true, - "name": "mroonga_action_on_fulltext_query_error", - "scope": [ - "global", - "session" - ], - "ids": [ - { - "anchor": "mroonga_action_on_fulltext_query_error", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/" - } - ] - }, - "mroonga_boolean_mode_syntax_flags": { - "cli": "--mroonga-boolean-mode-syntax-flags=value", - "default": "DEFAULT", - "dynamic": true, - "name": "mroonga_boolean_mode_syntax_flags", - "scope": [ - "global", - "session" - ], - "ids": [ - { - "anchor": "mroonga_boolean_mode_syntax_flags", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/" - } - ] - }, - "mroonga_database_path_prefix": { - "cli": "--mroonga-database-path-prefix=value", - "default": "(Empty)", - "dynamic": true, - "name": "mroonga_database_path_prefix", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "mroonga_database_path_prefix", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/" - } - ] - }, - "mroonga_default_parser": { - "cli": "--mroonga-default-parser=value", - "default": "TokenBigram", - "dynamic": true, - "name": "mroonga_default_parser", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "mroonga_default_parser", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/" - } - ] - }, - "mroonga_default_tokenizer": { - "cli": "--mroonga-default-tokenizer=value", - "default": "TokenBigram", - "dynamic": true, - "name": "mroonga_default_tokenizer", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "mroonga_default_tokenizer", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/" - } - ] - }, - "mroonga_default_wrapper_engine": { - "cli": "--mroonga-default-wrapper-engine=value", - "default": "(Empty)", - "dynamic": false, - "name": "mroonga_default_wrapper_engine", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "mroonga_default_wrapper_engine", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/" - } - ] - }, - "mroonga_dry_write": { - "cli": "--mroonga-dry-write[={0|1}]", - "default": "off", - "dynamic": true, - "name": "mroonga_dry_write", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "mroonga_dry_write", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/" - } - ] - }, - "mroonga_enable_operations_recording": { - "cli": "--mroonga-enable-operations-recording={0|1}", - "default": "ON", - "dynamic": true, - "name": "mroonga_enable_operations_recording", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "mroonga_enable_operations_recording", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/" - } - ] - }, - "mroonga_enable_optimization": { - "cli": "--mroonga-enable-optimization={0|1}", - "default": "on", - "dynamic": true, - "name": "mroonga_enable_optimization", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "mroonga_enable_optimization", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/" - } - ] - }, - "mroonga_libgroonga_embedded": { - "default": "ON", - "dynamic": false, - "name": "mroonga_libgroonga_embedded", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "mroonga_libgroonga_embedded", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/" - } - ] - }, - "mroonga_libgroonga_support_lz4": { - "default": "OFF", - "dynamic": false, - "name": "mroonga_libgroonga_support_lz4", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "mroonga_libgroonga_support_lz4", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/" - } - ] - }, - "mroonga_libgroonga_support_zlib": { - "default": "ON", - "dynamic": false, - "name": "mroonga_libgroonga_support_zlib", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "mroonga_libgroonga_support_zlib", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/" - } - ] - }, - "mroonga_libgroonga_support_zstd": { - "default": "OFF", - "dynamic": false, - "name": "mroonga_libgroonga_support_zstd", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "mroonga_libgroonga_support_zstd", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/" - } - ] - }, - "mroonga_libgroonga_version": { - "dynamic": false, - "name": "mroonga_libgroonga_version", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "mroonga_libgroonga_version", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/" - } - ] - }, - "mroonga_lock_timeout": { - "cli": "--mroonga-lock-timeout=#", - "default": "900000", - "dynamic": true, - "name": "mroonga_lock_timeout", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "mroonga_lock_timeout", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/" - } - ] - }, - "mroonga_log_file": { - "cli": "--mroonga-log-file=value", - "default": "groonga.log", - "dynamic": true, - "name": "mroonga_log_file", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "mroonga_log_file", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/" - } - ] - }, - "mroonga_log_level": { - "cli": "--mroonga-log-level=value", - "default": "NOTICE", - "dynamic": true, - "name": "mroonga_log_level", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "mroonga_log_level", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/" - } - ] - }, - "mroonga_match_escalation_threshold": { - "cli": "--mroonga-match-escalation-threshold=#", - "default": "0", - "dynamic": true, - "name": "mroonga_match_escalation_threshold", - "range": { - "from": -1, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "mroonga_match_escalation_threshold", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/" - } - ] - }, - "mroonga_max_n_records_for_estimate": { - "cli": "--mroonga-max-n-records-for-estimate=#", - "default": "1000", - "dynamic": true, - "name": "mroonga_max_n_records_for_estimate", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "mroonga_max_n_records_for_estimate", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/" - } - ] - }, - "mroonga_query_log_file": { - "cli": "--mroonga-query-log-file=filename", - "default": "(Empty string)", - "dynamic": true, - "name": "mroonga_query_log_file", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "mroonga_query_log_file", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/" - } - ] - }, - "mroonga_vector_column_delimiter": { - "cli": "--mroonga-vector-column-delimiter=value", - "default": "(white space)", - "dynamic": true, - "name": "mroonga_vector_column_delimiter", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "mroonga_vector_column_delimiter", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/" - } - ] - }, - "mroonga_version": { - "dynamic": false, - "name": "mroonga_version", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "mroonga_version", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/" - } - ] - }, - "key_buffer_size": { - "cli": "--key-buffer-size=#", - "dynamic": true, - "name": "key_buffer_size", - "range": { - "from": 8, - "to": "upwards" - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "key_buffer_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/" - }, - { - "anchor": "sysvar_key_buffer_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "key_cache_age_threshold": { - "cli": "--key-cache-age-threshold=#", - "default": "300", - "dynamic": true, - "name": "key_cache_age_threshold", - "range": { - "from": 100, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "key_cache_age_threshold", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/" - }, - { - "anchor": "sysvar_key_cache_age_threshold", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "key_cache_block_size": { - "cli": "--key-cache-block-size=#", - "default": "1024", - "dynamic": true, - "name": "key_cache_block_size", - "range": { - "from": 512, - "to": 16384 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "key_cache_block_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/" - }, - { - "anchor": "sysvar_key_cache_block_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "key_cache_division_limit": { - "cli": "--key-cache-division-limit=#", - "default": "100", - "dynamic": true, - "name": "key_cache_division_limit", - "range": { - "from": 1, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "key_cache_division_limit", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/" - }, - { - "anchor": "sysvar_key_cache_division_limit", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "key_cache_file_hash_size": { - "cli": "--key-cache-file-hash-size=#", - "default": "512", - "dynamic": true, - "name": "key_cache_file_hash_size", - "range": { - "from": 128, - "to": 16384 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "key_cache_file_hash_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/" - } - ] - }, - "key_cache_segments": { - "cli": "--key-cache-segments=#", - "default": "0 (non-segmented)", - "dynamic": true, - "name": "key_cache_segments", - "range": { - "from": 0, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "key_cache_segments", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/" - } - ] - }, - "myisam_block_size": { - "cli": "--myisam-block-size=#", - "default": "1024", - "name": "myisam_block_size", - "range": { - "from": 1024, - "to": 16384 - }, - "type": "integer", - "ids": [ - { - "anchor": "myisam_block_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/" - }, - { - "anchor": "option_mysqld_myisam-block-size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "myisam_data_pointer_size": { - "cli": "--myisam-data-pointer-size=#", - "default": "6", - "dynamic": true, - "name": "myisam_data_pointer_size", - "range": { - "from": 2, - "to": 7 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "myisam_data_pointer_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/" - }, - { - "anchor": "sysvar_myisam_data_pointer_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "myisam_max_extra_sort_file_size": { - "name": "myisam_max_extra_sort_file_size", - "ids": [ - { - "anchor": "myisam_max_extra_sort_file_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/" - } - ] - }, - "myisam_max_sort_file_size": { - "cli": "--myisam-max-sort-file-size=#", - "dynamic": true, - "name": "myisam_max_sort_file_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "myisam_max_sort_file_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/" - }, - { - "anchor": "sysvar_myisam_max_sort_file_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "myisam_mmap_size": { - "cli": "--myisam-mmap-size=#", - "name": "myisam_mmap_size", - "range": { - "from": 7 - }, - "type": "integer", - "ids": [ - { - "anchor": "myisam_mmap_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/" - }, - { - "anchor": "sysvar_myisam_mmap_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "myisam_recover_options": { - "default": "0", - "dynamic": false, - "name": "myisam_recover_options", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "OFF", - "DEFAULT", - "BACKUP", - "BACKUP_ALL", - "FORCE", - "QUICK" - ], - "ids": [ - { - "anchor": "myisam_recover_options", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/" - }, - { - "anchor": "sysvar_myisam_recover_options", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "myisam_repair_threads": { - "cli": "--myisam-repair-threads=#", - "default": "1", - "dynamic": true, - "name": "myisam_repair_threads", - "range": { - "from": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "myisam_repair_threads", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/" - }, - { - "anchor": "sysvar_myisam_repair_threads", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "myisam_sort_buffer_size": { - "cli": "--myisam-sort-buffer-size=#", - "dynamic": true, - "name": "myisam_sort_buffer_size", - "range": { - "from": 4096, - "to": 1.8446744073709548e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "myisam_sort_buffer_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/" - }, - { - "anchor": "sysvar_myisam_sort_buffer_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "myisam_stats_method": { - "cli": "--myisam-stats-method=name", - "default": "nulls_unequal", - "dynamic": true, - "name": "myisam_stats_method", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "nulls_equal", - "nulls_unequal", - "nulls_ignored" - ], - "ids": [ - { - "anchor": "myisam_stats_method", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/" - }, - { - "anchor": "sysvar_myisam_stats_method", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "myisam_use_mmap": { - "cli": "--myisam-use-mmap[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "myisam_use_mmap", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "myisam_use_mmap", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/" - }, - { - "anchor": "sysvar_myisam_use_mmap", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "rocksdb_access_hint_on_compaction_start": { - "cli": "--rocksdb-access-hint-on-compaction-start=#", - "default": "1", - "dynamic": false, - "name": "rocksdb_access_hint_on_compaction_start", - "range": { - "from": 0, - "to": 3 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_access_hint_on_compaction_start", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_advise_random_on_open": { - "cli": "--rocksdb-advise-random-on-open={0|1}", - "default": "ON", - "dynamic": false, - "name": "rocksdb_advise_random_on_open", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_advise_random_on_open", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_allow_concurrent_memtable_write": { - "cli": "--rocksdb-allow-concurrent-memtable-write={0|1}", - "default": "OFF", - "dynamic": false, - "name": "rocksdb_allow_concurrent_memtable_write", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_allow_concurrent_memtable_write", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_allow_mmap_reads": { - "cli": "--rocksdb-allow-mmap-reads={0|1}", - "default": "OFF", - "dynamic": false, - "name": "rocksdb_allow_mmap_reads", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_allow_mmap_reads", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_allow_mmap_writes": { - "cli": "--rocksdb-allow-mmap-writes={0|1}", - "default": "OFF", - "dynamic": false, - "name": "rocksdb_allow_mmap_writes", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_allow_mmap_writes", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_background_sync": { - "cli": "--rocksdb-background-sync={0|1}", - "default": "OFF", - "dynamic": false, - "name": "rocksdb_background_sync", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_background_sync", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_base_background_compactions": { - "cli": "--rocksdb-base-background-compactions=#", - "default": "1", - "dynamic": false, - "name": "rocksdb_base_background_compactions", - "range": { - "from": -1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_base_background_compactions", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_blind_delete_primary_key": { - "cli": "--rocksdb-blind-delete-primary-key={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_blind_delete_primary_key", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_blind_delete_primary_key", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_block_cache_size": { - "cli": "--rocksdb-block-cache-size=#", - "default": "536870912", - "dynamic": false, - "name": "rocksdb_block_cache_size", - "range": { - "from": 1024, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_block_cache_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_block_restart_interval": { - "cli": "--rocksdb-block-restart-interval=#", - "default": "16", - "dynamic": false, - "name": "rocksdb_block_restart_interval", - "range": { - "from": 1, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_block_restart_interval", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_block_size": { - "cli": "--rocksdb-block-size=#", - "default": "4096", - "dynamic": false, - "name": "rocksdb_block_size", - "range": { - "from": 1, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_block_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_block_size_deviation": { - "cli": "--rocksdb-block-size-deviation=#", - "default": "10", - "dynamic": false, - "name": "rocksdb_block_size_deviation", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_block_size_deviation", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_bulk_load": { - "cli": "--rocksdb-bulk-load={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_bulk_load", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_bulk_load", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_bulk_load_allow_unsorted": { - "cli": "--rocksdb-bulk-load_allow_unsorted={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_bulk_load_allow_unsorted", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_bulk_load_allow_unsorted", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_bulk_load_size": { - "cli": "--rocksdb-bulk-load-size=#", - "default": "1000", - "dynamic": true, - "name": "rocksdb_bulk_load_size", - "range": { - "from": 1, - "to": 1073741824 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_bulk_load_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_bytes_per_sync": { - "cli": "--rocksdb-bytes-per-sync=#", - "default": "0", - "dynamic": false, - "name": "rocksdb_bytes_per_sync", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_bytes_per_sync", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_cache_index_and_filter_blocks": { - "cli": "--rocksdb-cache-index-and-filter_blocks={0|1}", - "default": "ON", - "dynamic": false, - "name": "rocksdb_cache_index_and_filter_blocks", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_cache_index_and_filter_blocks", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_checksums_pct": { - "cli": "--rocksdb-checksums-pct=#", - "default": "100", - "dynamic": true, - "name": "rocksdb_checksums_pct", - "range": { - "from": 0, - "to": 100 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_checksums_pct", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_collect_sst_properties": { - "cli": "--rocksdb-collect-sst-properties={0|1}", - "default": "ON", - "dynamic": false, - "name": "rocksdb_collect_sst_properties", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_collect_sst_properties", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_commit_in_the_middle": { - "cli": "--rocksdb-commit-in-the-middle={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_commit_in_the_middle", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_commit_in_the_middle", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_compact_cf": { - "cli": "--rocksdb-compact-cf=value", - "default": "(Empty)", - "dynamic": true, - "name": "rocksdb_compact_cf", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "rocksdb_compact_cf", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_compaction_readahead_size": { - "cli": "--rocksdb-compaction-readahead-size=#", - "default": "0", - "dynamic": true, - "name": "rocksdb_compaction_readahead_size", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_compaction_readahead_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_compaction_sequential_deletes": { - "cli": "--rocksdb-compaction-sequential-deletes=#", - "default": "0", - "dynamic": true, - "name": "rocksdb_compaction_sequential_deletes", - "range": { - "from": 0, - "to": 2000000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_compaction_sequential_deletes", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_compaction_sequential_deletes_count_sd": { - "cli": "--rocksdb-compaction-sequential-deletes-count-sd={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_compaction_sequential_deletes_count_sd", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_compaction_sequential_deletes_count_sd", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_compaction_sequential_deletes_file_size": { - "cli": "--rocksdb-compaction-sequential-deletes-file-size=#", - "default": "0", - "dynamic": true, - "name": "rocksdb_compaction_sequential_deletes_file_size", - "range": { - "from": -1, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_compaction_sequential_deletes_file_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_compaction_sequential_deletes_window": { - "cli": "--rocksdb-compaction-sequential-deletes-window=#", - "default": "0", - "dynamic": true, - "name": "rocksdb_compaction_sequential_deletes_window", - "range": { - "from": 0, - "to": 2000000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_compaction_sequential_deletes_window", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_concurrent_prepare": { - "cli": "--rocksdb-coconcurrent-prepare={0|1}", - "default": "1", - "dynamic": false, - "name": "rocksdb_concurrent_prepare", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_concurrent_prepare", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_create_checkpoint": { - "cli": "--rocksdb-create-checkpoint=value", - "default": "(Empty)", - "dynamic": true, - "name": "rocksdb_create_checkpoint", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "rocksdb_create_checkpoint", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_create_if_missing": { - "cli": "--rocksdb-create-if-missing={0|1}", - "default": "ON", - "dynamic": false, - "name": "rocksdb_create_if_missing", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_create_if_missing", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_create_missing_column_families": { - "cli": "--rocksdb-create-missing-column-families={0|1}", - "default": "OFF", - "dynamic": false, - "name": "rocksdb_create_missing_column_families", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_create_missing_column_families", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_datadir": { - "cli": "--rocksdb-datadir[=value]", - "default": "./.rocksdb", - "dynamic": false, - "name": "rocksdb_datadir", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "rocksdb_datadir", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_db_write_buffer_size": { - "cli": "--rocksdb-db-write-buffer-size=#", - "default": "0", - "dynamic": false, - "name": "rocksdb_db_write_buffer_size", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_db_write_buffer_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_deadlock_detect": { - "cli": "--rocksdb-deadlock-detect={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_deadlock_detect", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_deadlock_detect", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_deadlock_detect_depth": { - "cli": "--rocksdb-deadlock-detect-depth=#", - "default": "50", - "dynamic": true, - "name": "rocksdb_deadlock_detect_depth", - "range": { - "from": 2, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_deadlock_detect_depth", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_debug_optimizer_no_zero_cardinality": { - "cli": "--rocksdb-debug-optimizer-no-zero-cardinality={0|1}", - "default": "ON", - "dynamic": true, - "name": "rocksdb_debug_optimizer_no_zero_cardinality", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_debug_optimizer_no_zero_cardinality", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_debug_ttl_ignore_pk": { - "cli": "--rocksdb-debug-ttl-ignore-pk={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_debug_ttl_ignore_pk", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_debug_ttl_ignore_pk", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_debug_ttl_read_filter_ts": { - "cli": "--rocksdb-debug-ttl-read-filter-ts=#", - "default": "0", - "dynamic": true, - "name": "rocksdb_debug_ttl_read_filter_ts", - "range": { - "from": -3600, - "to": 3600 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_debug_ttl_read_filter_ts", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_debug_ttl_rec_ts": { - "cli": "--rocksdb-debug-ttl-read-filter-ts=#", - "default": "0", - "dynamic": true, - "name": "rocksdb_debug_ttl_rec_ts", - "range": { - "from": -3600, - "to": 3600 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_debug_ttl_rec_ts", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_debug_ttl_snapshot_ts": { - "cli": "--rocksdb-debug-ttl-snapshot-ts=#", - "default": "0", - "dynamic": true, - "name": "rocksdb_debug_ttl_snapshot_ts", - "range": { - "from": -3600, - "to": 3600 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_debug_ttl_snapshot_ts", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_default_cf_options": { - "cli": "--rocksdb-default-cf-options=value", - "default": "(Empty)", - "dynamic": false, - "name": "rocksdb_default_cf_options", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "rocksdb_default_cf_options", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_delayed_write_rate": { - "cli": "--rocksdb-delayed-write-rate=#", - "default": "16777216", - "dynamic": true, - "name": "rocksdb_delayed_write_rate", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_delayed_write_rate", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_delete_obsolete_files_period_micros": { - "cli": "--rocksdb-delete-obsolete-files-period-micros=#", - "default": "21600000000", - "dynamic": false, - "name": "rocksdb_delete_obsolete_files_period_micros", - "range": { - "from": 0, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_delete_obsolete_files_period_micros", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_enable_2pc": { - "cli": "--rocksdb-enable-2pc={0|1}", - "default": "ON", - "dynamic": true, - "name": "rocksdb_enable_2pc", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_enable_2pc", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_enable_bulk_load_api": { - "cli": "--rocksdb-enable-bulk-load-api={0|1}", - "default": "ON", - "dynamic": false, - "name": "rocksdb_enable_bulk_load_api", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_enable_bulk_load_api", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_enable_thread_tracking": { - "cli": "--rocksdb-enable-thread-tracking={0|1}", - "default": "OFF", - "dynamic": false, - "name": "rocksdb_enable_thread_tracking", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_enable_thread_tracking", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_enable_ttl": { - "cli": "--rocksdb-enable-ttl={0|1}", - "default": "ON", - "dynamic": true, - "name": "rocksdb_enable_ttl", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_enable_ttl", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_enable_ttl_read_filtering": { - "cli": "--rocksdb-enable-ttl-read-filtering={0|1}", - "default": "ON", - "dynamic": true, - "name": "rocksdb_enable_ttl_read_filtering", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_enable_ttl_read_filtering", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_enable_write_thread_adaptive_yield": { - "cli": "--rocksdb-enable-write-thread-adaptive-yield={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_enable_write_thread_adaptive_yield", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_enable_write_thread_adaptive_yield", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_error_if_exists": { - "cli": "--rocksdb-error-if-exists={0|1}", - "default": "OFF", - "dynamic": false, - "name": "rocksdb_error_if_exists", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_error_if_exists", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_flush_log_at_trx_commit": { - "cli": "--rocksdb-flush-log-at-trx-commit=#", - "default": "1", - "dynamic": true, - "name": "rocksdb_flush_log_at_trx_commit", - "range": { - "from": 0, - "to": 2 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_flush_log_at_trx_commit", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_flush_memtable_on_analyze": { - "cli": "--rocksdb-flush-memtable-on-analyze={0|1}", - "default": "ON", - "dynamic": true, - "name": "rocksdb_flush_memtable_on_analyze", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_flush_memtable_on_analyze", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_force_compute_memtable_stats": { - "cli": "--rocksdb-force-compute-memtable-stats={0|1}", - "default": "ON", - "dynamic": true, - "name": "rocksdb_force_compute_memtable_stats", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_force_compute_memtable_stats", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_force_compute_memtable_stats_cachetime": { - "cli": "--rocksdb-force-compute-memtable-stats-cachetime=#", - "default": "60000000", - "dynamic": true, - "name": "rocksdb_force_compute_memtable_stats_cachetime", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_force_compute_memtable_stats_cachetime", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_force_flush_memtable_and_lzero_now": { - "cli": "--rocksdb-force-flush-memtable-and-lzero-now={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_force_flush_memtable_and_lzero_now", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_force_flush_memtable_and_lzero_now", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_force_flush_memtable_now": { - "cli": "--rocksdb-force-flush-memtable-now={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_force_flush_memtable_now", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_force_flush_memtable_now", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_force_index_records_in_range": { - "cli": "--rocksdb-force-index-records-in-range=#", - "default": "1", - "dynamic": true, - "name": "rocksdb_force_index_records_in_range", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_force_index_records_in_range", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_git_hash": { - "cli": "--rocksdb-git-hash=value=#", - "default": "As per git revision.", - "dynamic": false, - "name": "rocksdb_git_hash", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "rocksdb_git_hash", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_hash_index_allow_collision": { - "cli": "--rocksdb-hash-index-allow-collision={0|1}", - "default": "ON", - "dynamic": false, - "name": "rocksdb_hash_index_allow_collision", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_hash_index_allow_collision", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_index_type": { - "cli": "--rocksdb-index-type=value", - "default": "kBinarySearch", - "dynamic": false, - "name": "rocksdb_index_type", - "scope": [ - "global" - ], - "validValues": [ - "kBinarySearch", - "kHashSearch" - ], - "ids": [ - { - "anchor": "rocksdb_index_type", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_info_log_level": { - "cli": "--rocksdb-info-log-level=value", - "default": "error_level", - "dynamic": true, - "name": "rocksdb_info_log_level", - "scope": [ - "global" - ], - "validValues": [ - "error_level", - "debug_level", - "info_level", - "warn_level", - "fatal_level" - ], - "ids": [ - { - "anchor": "rocksdb_info_log_level", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_io_write_timeout": { - "cli": "--rocksdb-io-write-timeout=#", - "default": "0", - "dynamic": true, - "name": "rocksdb_io_write_timeout", - "scope": [ - "global" - ], - "type": "integer", - "validValues": [ - "0", - "4294967295" - ], - "ids": [ - { - "anchor": "rocksdb_io_write_timeout", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_is_fd_close_on_exec": { - "cli": "--rocksdb-is-fd-close-on-exec={0|1}", - "default": "ON", - "dynamic": false, - "name": "rocksdb_is_fd_close_on_exec", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_is_fd_close_on_exec", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_keep_log_file_num": { - "cli": "--rocksdb-keep-log-file-num=#", - "default": "1000", - "dynamic": false, - "name": "rocksdb_keep_log_file_num", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_keep_log_file_num", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_large_prefix": { - "cli": "--rocksdb-large_prefix={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_large_prefix", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_large_prefix", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_lock_scanned_rows": { - "cli": "--rocksdb-lock-scanned-rows={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_lock_scanned_rows", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_lock_scanned_rows", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_lock_wait_timeout": { - "cli": "--rocksdb-lock-wait-timeout=#", - "default": "1", - "dynamic": true, - "name": "rocksdb_lock_wait_timeout", - "range": { - "from": 1, - "to": 1073741824 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_lock_wait_timeout", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_log_file_time_to_roll": { - "cli": "--rocksdb-log-file-time-to_roll=#", - "default": "0", - "dynamic": false, - "name": "rocksdb_log_file_time_to_roll", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_log_file_time_to_roll", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_manifest_preallocation_size": { - "cli": "--rocksdb-manifest-preallocation-size=#", - "default": "0", - "dynamic": false, - "name": "rocksdb_manifest_preallocation_size", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_manifest_preallocation_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_manual_wal_flush": { - "cli": "--rocksdb-manual-wal-flush={0|1}", - "default": "ON", - "dynamic": false, - "name": "rocksdb_manual_wal_flush", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_manual_wal_flush", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_master_skip_tx_api": { - "cli": "--rocksdb-master-skip-tx-api={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_master_skip_tx_api", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_master_skip_tx_api", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_max_background_compactions": { - "cli": "--rocksdb-max-background-compactions=#", - "default": "1", - "dynamic": true, - "name": "rocksdb_max_background_compactions", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_max_background_compactions", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_max_background_flushes": { - "cli": "--rocksdb-max-background-flushes=#", - "default": "1", - "dynamic": false, - "name": "rocksdb_max_background_flushes", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_max_background_flushes", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_max_background_jobs": { - "cli": "--rocksdb-max-background-jobs=#", - "default": "2", - "dynamic": true, - "name": "rocksdb_max_background_jobs", - "range": { - "from": -1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_max_background_jobs", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_max_latest_deadlocks": { - "cli": "--rocksdb-max-latest-deadlocks=#", - "default": "5", - "dynamic": true, - "name": "rocksdb_max_latest_deadlocks", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_max_latest_deadlocks", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_max_log_file_size": { - "cli": "--rocksdb-max-log-file-size=#", - "default": "0", - "dynamic": false, - "name": "rocksdb_max_log_file_size", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_max_log_file_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_max_manifest_file_size": { - "cli": "--rocksdb-manifest-log-file-size=#", - "default": "18446744073709551615", - "dynamic": false, - "name": "rocksdb_max_manifest_file_size", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_max_manifest_file_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_max_open_files": { - "cli": "--rocksdb-max-open-files=#", - "default": "-1", - "dynamic": false, - "name": "rocksdb_max_open_files", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_max_open_files", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_max_row_locks": { - "cli": "--rocksdb-max-row-locks=#", - "default": "1048576", - "dynamic": true, - "name": "rocksdb_max_row_locks", - "range": { - "from": 1, - "to": 1073741824 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_max_row_locks", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_max_subcompactions": { - "cli": "--rocksdb-max-subcompactions=#", - "default": "1", - "dynamic": false, - "name": "rocksdb_max_subcompactions", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_max_subcompactions", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_max_total_wal_size": { - "cli": "--rocksdb-max-total-wal-size=#", - "default": "0", - "dynamic": false, - "name": "rocksdb_max_total_wal_size", - "range": { - "from": 0, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_max_total_wal_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_merge_buf_size": { - "cli": "--rocksdb-merge-buf-size=#", - "default": "67108864", - "dynamic": true, - "name": "rocksdb_merge_buf_size", - "range": { - "from": 100, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_merge_buf_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_merge_combine_read_size": { - "cli": "--rocksdb-merge-combine-read-size=#", - "default": "1073741824", - "dynamic": true, - "name": "rocksdb_merge_combine_read_size", - "range": { - "from": 100, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_merge_combine_read_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_merge_tmp_file_removal_delay_ms": { - "cli": "--rocksdb-merge-tmp-file-removal-delay-ms=#", - "default": "0", - "dynamic": true, - "name": "rocksdb_merge_tmp_file_removal_delay_ms", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_merge_tmp_file_removal_delay_ms", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_new_table_reader_for_compaction_inputs": { - "cli": "--rocksdb-new-table-reader-for-compaction-inputs={0|1}", - "default": "OFF", - "dynamic": false, - "name": "rocksdb_new_table_reader_for_compaction_inputs", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_new_table_reader_for_compaction_inputs", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_no_block_cache": { - "cli": "--rocksdb-no-block-cache={0|1}", - "default": "OFF", - "dynamic": false, - "name": "rocksdb_no_block_cache", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_no_block_cache", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_override_cf_options": { - "cli": "--rocksdb-override-cf-options=value", - "default": "(Empty)", - "dynamic": false, - "name": "rocksdb_override_cf_options", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "rocksdb_override_cf_options", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_paranoid_checks": { - "cli": "--rocksdb-paranoid-checks={0|1}", - "default": "ON", - "dynamic": false, - "name": "rocksdb_paranoid_checks", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_paranoid_checks", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_pause_background_work": { - "cli": "--rocksdb-pause-background-work={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_pause_background_work", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_pause_background_work", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_perf_context_level": { - "cli": "--rocksdb-perf-context-level=#", - "default": "0", - "dynamic": true, - "name": "rocksdb_perf_context_level", - "range": { - "from": 0, - "to": 4 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_perf_context_level", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_persistent_cache_path": { - "cli": "--rocksdb-persistent-cache-path=value", - "default": "(Empty)", - "dynamic": false, - "name": "rocksdb_persistent_cache_path", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "rocksdb_persistent_cache_path", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_persistent_cache_size_mb": { - "cli": "--rocksdb-persistent-cache-size-mb=#", - "default": "0", - "dynamic": false, - "name": "rocksdb_persistent_cache_size_mb", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_persistent_cache_size_mb", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_pin_l0_filter_and_index_blocks_in_cache": { - "cli": "--rocksdb-pin-l0-filter-and-index-blocks-in-cache={0|1}", - "default": "ON", - "dynamic": false, - "name": "rocksdb_pin_l0_filter_and_index_blocks_in_cache", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_pin_l0_filter_and_index_blocks_in_cache", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_print_snapshot_conflict_queries": { - "cli": "--rocksdb-print-snapshot-conflict-queries={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_print_snapshot_conflict_queries", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_print_snapshot_conflict_queries", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_rate_limiter_bytes_per_sec": { - "cli": "--rocksdb-rate-limiter-bytes-per-sec=#", - "default": "0", - "dynamic": true, - "name": "rocksdb_rate_limiter_bytes_per_sec", - "range": { - "from": 0, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_rate_limiter_bytes_per_sec", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_read_free_rpl_tables": { - "cli": "--rocksdb-read-free-rpl-tables=value", - "default": "(Empty)", - "dynamic": true, - "name": "rocksdb_read_free_rpl_tables", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "rocksdb_read_free_rpl_tables", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_records_in_range": { - "cli": "--rocksdb-records-in-range=#", - "default": "0", - "dynamic": true, - "name": "rocksdb_records_in_range", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_records_in_range", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_reset_stats": { - "cli": "--rocksdb-reset-stats={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_reset_stats", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_reset_stats", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_seconds_between_stat_computes": { - "cli": "--rocksdb-seconds-between-stat-computes=#", - "default": "3600", - "dynamic": true, - "name": "rocksdb_seconds_between_stat_computes", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_seconds_between_stat_computes", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_signal_drop_index_thread": { - "cli": "--rocksdb-signal-drop-index-thread={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_signal_drop_index_thread", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_signal_drop_index_thread", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_sim_cache_size": { - "cli": "--rocksdb-sim-cache-size=#", - "default": "0", - "dynamic": false, - "name": "rocksdb_sim_cache_size", - "range": { - "from": 0, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_sim_cache_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_skip_bloom_filter_on_read": { - "cli": "--rocksdb-skip-bloom-filter-on_read={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_skip_bloom_filter_on_read", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_skip_bloom_filter_on_read", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_skip_fill_cache": { - "cli": "--rocksdb-skip-fill-cache={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_skip_fill_cache", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_skip_fill_cache", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_skip_unique_check_tables": { - "cli": "--rocksdb-skip-unique-check-tables=value", - "default": ".*", - "dynamic": true, - "name": "rocksdb_skip_unique_check_tables", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "rocksdb_skip_unique_check_tables", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_sst_mgr_rate_bytes_per_sec": { - "cli": "--rocksdb-sst-mgr-rate-bytes-per-sec=#", - "default": "0", - "dynamic": true, - "name": "rocksdb_sst_mgr_rate_bytes_per_sec", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_sst_mgr_rate_bytes_per_sec", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_stats_dump_period_sec": { - "cli": "--rocksdb-stats-dump-period-sec=#", - "default": "600", - "dynamic": false, - "name": "rocksdb_stats_dump_period_sec", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_stats_dump_period_sec", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_store_row_debug_checksums": { - "cli": "--rocksdb-store-row-debug-checksums={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_store_row_debug_checksums", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_store_row_debug_checksums", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_strict_collation_check": { - "cli": "--rocksdb-strict-collation-check={0|1}", - "default": "ON", - "dynamic": true, - "name": "rocksdb_strict_collation_check", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_strict_collation_check", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_strict_collation_exceptions": { - "cli": "--rocksdb-strict-collation-exceptions=value", - "default": "(Empty)", - "dynamic": true, - "name": "rocksdb_strict_collation_exceptions", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "rocksdb_strict_collation_exceptions", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_supported_compression_types": { - "cli": "--rocksdb-supported-compression-types=value", - "default": "Snappy,Zlib", - "dynamic": false, - "name": "rocksdb_supported_compression_types", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "rocksdb_supported_compression_types", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_table_cache_numshardbits": { - "cli": "--rocksdb-table-cache-numshardbits=#", - "default": "6", - "dynamic": false, - "name": "rocksdb_table_cache_numshardbits", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_table_cache_numshardbits", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_table_stats_sampling_pct": { - "cli": "--rocksdb-table-stats-sampling-pct=#", - "default": "10", - "dynamic": true, - "name": "rocksdb_table_stats_sampling_pct", - "range": { - "from": 0, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_table_stats_sampling_pct", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_tmpdir": { - "cli": "--rocksdb-tmpdir[=value]", - "default": "(Empty)", - "dynamic": true, - "name": "rocksdb_tmpdir", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "rocksdb_tmpdir", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_trace_sst_api": { - "cli": "--rocksdb-trace-sst-api={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_trace_sst_api", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_trace_sst_api", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_unsafe_for_binlog": { - "cli": "--rocksdb-unsafe-for-binlog={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_unsafe_for_binlog", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_unsafe_for_binlog", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_update_cf_options": { - "cli": "--rocksdb-update-cf-options=value", - "default": "(Empty)", - "dynamic": true, - "name": "rocksdb_update_cf_options", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "rocksdb_update_cf_options", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_use_adaptive_mutex": { - "cli": "--rocksdb-use-adaptive-mutex={0|1}", - "default": "OFF", - "dynamic": false, - "name": "rocksdb_use_adaptive_mutex", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_use_adaptive_mutex", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_use_clock_cache": { - "cli": "--rocksdb-use-clock-cache={0|1}", - "default": "OFF", - "dynamic": false, - "name": "rocksdb_use_clock_cache", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_use_clock_cache", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_use_direct_io_for_flush_and_compaction": { - "cli": "--rocksdb-use-direct-io-for-flush-and-compaction={0|1}", - "default": "OFF", - "dynamic": false, - "name": "rocksdb_use_direct_io_for_flush_and_compaction", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_use_direct_io_for_flush_and_compaction", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_use_direct_reads": { - "cli": "--rocksdb-use-direct-reads={0|1}", - "default": "OFF", - "dynamic": false, - "name": "rocksdb_use_direct_reads", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_use_direct_reads", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_use_direct_writes": { - "cli": "--rocksdb-use-direct-reads={0|1}", - "default": "OFF", - "dynamic": false, - "name": "rocksdb_use_direct_writes", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_use_direct_writes", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_use_fsync": { - "cli": "--rocksdb-use-fsync={0|1}", - "default": "OFF", - "dynamic": false, - "name": "rocksdb_use_fsync", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_use_fsync", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_validate_tables": { - "cli": "--rocksdb-validate-tables=#", - "default": "1", - "dynamic": false, - "name": "rocksdb_validate_tables", - "range": { - "from": 0, - "to": 2 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_validate_tables", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_verify_row_debug_checksums": { - "cli": "--rocksdb-verify-row-debug-checksums={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_verify_row_debug_checksums", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_verify_row_debug_checksums", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_wal_bytes_per_sync": { - "cli": "--rocksdb-wal-bytes-per-sync=#", - "default": "0", - "dynamic": false, - "name": "rocksdb_wal_bytes_per_sync", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_wal_bytes_per_sync", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_wal_dir": { - "cli": "--rocksdb-wal-dir=value", - "default": "(Empty)", - "dynamic": false, - "name": "rocksdb_wal_dir", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "rocksdb_wal_dir", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_wal_recovery_mode": { - "cli": "--rocksdb-wal-recovery-mode=#", - "default": "1", - "dynamic": true, - "name": "rocksdb_wal_recovery_mode", - "range": { - "from": 0, - "to": 3 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_wal_recovery_mode", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_wal_size_limit_mb": { - "cli": "--rocksdb-wal-size-limit-mb=#", - "default": "0", - "dynamic": false, - "name": "rocksdb_wal_size_limit_mb", - "range": { - "from": 0, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_wal_size_limit_mb", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_wal_ttl_seconds": { - "cli": "--rocksdb-wal-ttl-seconds=#", - "default": "0", - "dynamic": false, - "name": "rocksdb_wal_ttl_seconds", - "range": { - "from": 0, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_wal_ttl_seconds", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_whole_key_filtering": { - "cli": "--rocksdb-whole-key-filtering={0|1}", - "default": "ON", - "dynamic": false, - "name": "rocksdb_whole_key_filtering", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_whole_key_filtering", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_write_batch_max_bytes": { - "cli": "--rocksdb-write-batch-max-bytes=#", - "default": "0", - "dynamic": true, - "name": "rocksdb_write_batch_max_bytes", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "rocksdb_write_batch_max_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_write_disable_wal": { - "cli": "--rocksdb-write-disable-wal={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_write_disable_wal", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_write_disable_wal", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "rocksdb_write_ignore_missing_column_families": { - "cli": "--rocksdb-write-ignore-missing-column-familiesl={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_write_ignore_missing_column_families", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rocksdb_write_ignore_missing_column_families", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/" - } - ] - }, - "oqgraph_allow_create_integer_latch": { - "default": "0", - "dynamic": true, - "name": "oqgraph_allow_create_integer_latch", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "oqgraph_allow_create_integer_latch", - "url": "https://mariadb.com/kb/en/library/documentation/oqgraph-system-and-status-variables/" - } - ] - }, - "Oqgraph_boost_version": { - "name": "Oqgraph_boost_version", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "oqgraph_boost_version", - "url": "https://mariadb.com/kb/en/library/documentation/oqgraph-system-and-status-variables/" - } - ] - }, - "Oqgraph_compat_mode": { - "name": "Oqgraph_compat_mode", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "oqgraph_compat_mode", - "url": "https://mariadb.com/kb/en/library/documentation/oqgraph-system-and-status-variables/" - } - ] - }, - "Oqgraph_verbose_debug": { - "name": "Oqgraph_verbose_debug", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "oqgraph_verbose_debug", - "url": "https://mariadb.com/kb/en/library/documentation/oqgraph-system-and-status-variables/" - } - ] - }, - "performance_schema": { - "dynamic": false, - "name": "performance_schema", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "performance_schema", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_accounts_size": { - "cli": "--performance-schema-accounts-size=#", - "dynamic": false, - "name": "performance_schema_accounts_size", - "range": { - "from": -1, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_accounts_size", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema_accounts_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_digests_size": { - "cli": "--performance-schema-digests-size=#", - "dynamic": false, - "name": "performance_schema_digests_size", - "range": { - "from": -1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_digests_size", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema_digests_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_events_stages_history_long_size": { - "cli": "--performance-schema-events-stages-history-long-size=#", - "dynamic": false, - "name": "performance_schema_events_stages_history_long_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_events_stages_history_long_size", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema_events_stages_history_long_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_events_stages_history_size": { - "cli": "--performance-schema-events-stages-history-size=#", - "dynamic": false, - "name": "performance_schema_events_stages_history_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_events_stages_history_size", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema_events_stages_history_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_events_statements_history_long_size": { - "cli": "--performance-schema-events-statements-history-long-size=#", - "dynamic": false, - "name": "performance_schema_events_statements_history_long_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_events_statements_history_long_size", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema_events_statements_history_long_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_events_statements_history_size": { - "cli": "--performance-schema-events-statements-history-size=#", - "dynamic": false, - "name": "performance_schema_events_statements_history_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_events_statements_history_size", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema_events_statements_history_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_events_waits_history_long_size": { - "cli": "--performance-schema-events-waits-history-long-size=#", - "dynamic": false, - "name": "performance_schema_events_waits_history_long_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_events_waits_history_long_size", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema_events_waits_history_long_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_events_waits_history_size": { - "cli": "--performance-schema-events-waits-history-size=#", - "dynamic": false, - "name": "performance_schema_events_waits_history_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_events_waits_history_size", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema_events_waits_history_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_hosts_size": { - "cli": "--performance-schema-hosts-size=#", - "dynamic": false, - "name": "performance_schema_hosts_size", - "range": { - "from": -1, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_hosts_size", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema_hosts_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_max_cond_classes": { - "cli": "--performance-schema-max-cond-classes=#", - "default": "80", - "dynamic": false, - "name": "performance_schema_max_cond_classes", - "range": { - "from": 0, - "to": 256 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_max_cond_classes", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema_max_cond_classes", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_max_cond_instances": { - "cli": "--performance-schema-max-cond-instances=#", - "dynamic": false, - "name": "performance_schema_max_cond_instances", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_max_cond_instances", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema_max_cond_instances", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_max_digest_length": { - "cli": "--performance-schema-max-digest-length=#", - "default": "1024", - "dynamic": false, - "name": "performance_schema_max_digest_length", - "range": { - "from": 0, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_max_digest_length", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema_max_digest_length", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_max_file_classes": { - "cli": "--performance-schema-max-file-classes=#", - "dynamic": false, - "name": "performance_schema_max_file_classes", - "range": { - "from": 0, - "to": 256 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_max_file_classes", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema_max_file_classes", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_max_file_handles": { - "cli": "--performance-schema-max-file-handles=#", - "default": "32768", - "dynamic": false, - "name": "performance_schema_max_file_handles", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_max_file_handles", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema_max_file_handles", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_max_file_instances": { - "cli": "--performance-schema-max-file-instances=#", - "dynamic": false, - "name": "performance_schema_max_file_instances", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_max_file_instances", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema_max_file_instances", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_max_mutex_classes": { - "cli": "--performance-schema-max-mutex-classes=#", - "dynamic": false, - "name": "performance_schema_max_mutex_classes", - "range": { - "from": 0, - "to": 256 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_max_mutex_classes", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema_max_mutex_classes", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_max_mutex_instances": { - "cli": "--performance-schema-max-mutex-instances=#", - "dynamic": false, - "name": "performance_schema_max_mutex_instances", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_max_mutex_instances", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema_max_mutex_instances", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_max_rwlock_classes": { - "cli": "--performance-schema-max-rwlock-classes=#", - "default": "40", - "dynamic": false, - "name": "performance_schema_max_rwlock_classes", - "range": { - "from": 0, - "to": 256 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_max_rwlock_classes", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema_max_rwlock_classes", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_max_rwlock_instances": { - "cli": "--performance-schema-max-rwlock-instances=#", - "dynamic": false, - "name": "performance_schema_max_rwlock_instances", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_max_rwlock_instances", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema_max_rwlock_instances", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_max_socket_classes": { - "cli": "--performance-schema-max-socket-classes=#", - "default": "10", - "dynamic": false, - "name": "performance_schema_max_socket_classes", - "range": { - "from": 0, - "to": 256 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_max_socket_classes", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema_max_socket_classes", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_max_socket_instances": { - "cli": "--performance-schema-max-socket-instances=#", - "dynamic": false, - "name": "performance_schema_max_socket_instances", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_max_socket_instances", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema_max_socket_instances", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_max_stage_classes": { - "cli": "--performance-schema-max-stage-classes=#", - "dynamic": false, - "name": "performance_schema_max_stage_classes", - "range": { - "from": 0, - "to": 256 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_max_stage_classes", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema_max_stage_classes", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_max_statement_classes": { - "cli": "--performance-schema-max-statement-classes=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": false, - "name": "performance_schema_max_statement_classes", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_max_statement_classes", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema_max_statement_classes", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_max_table_handles": { - "cli": "--performance-schema-max-table-handles=#", - "dynamic": false, - "name": "performance_schema_max_table_handles", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_max_table_handles", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema_max_table_handles", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_max_table_instances": { - "cli": "--performance-schema-max-table-instances=#", - "dynamic": false, - "name": "performance_schema_max_table_instances", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_max_table_instances", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema_max_table_instances", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_max_thread_classes": { - "cli": "--performance-schema-max-thread-classes=#", - "dynamic": false, - "name": "performance_schema_max_thread_classes", - "range": { - "from": 0, - "to": 256 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_max_thread_classes", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema_max_thread_classes", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_max_thread_instances": { - "cli": "--performance-schema-max-thread-instances=#", - "dynamic": false, - "name": "performance_schema_max_thread_instances", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_max_thread_instances", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema_max_thread_instances", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_session_connect_attrs_size": { - "cli": "--performance-schema-session-connect-attrs-size=#", - "dynamic": false, - "name": "performance_schema_session_connect_attrs_size", - "range": { - "from": -1, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_session_connect_attrs_size", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema_session_connect_attrs_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_setup_actors_size": { - "cli": "--performance-schema-setup-actors-size=#", - "dynamic": false, - "name": "performance_schema_setup_actors_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_setup_actors_size", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema_setup_actors_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_setup_objects_size": { - "cli": "--performance-schema-setup-objects-size=#", - "dynamic": false, - "name": "performance_schema_setup_objects_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_setup_objects_size", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema_setup_objects_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_users_size": { - "cli": "--performance-schema-users-size=#", - "dynamic": false, - "name": "performance_schema_users_size", - "range": { - "from": -1, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_users_size", - "url": "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/" - }, - { - "anchor": "sysvar_performance_schema_users_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "auto_increment_increment": { - "default": "1", - "dynamic": true, - "name": "auto_increment_increment", - "range": { - "from": 1, - "to": 65535 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "auto_increment_increment", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_auto_increment_increment", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-master.html" - } - ] - }, - "auto_increment_offset": { - "default": "1", - "dynamic": true, - "name": "auto_increment_offset", - "range": { - "from": 1, - "to": 65535 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "auto_increment_offset", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_auto_increment_offset", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-master.html" - } - ] - }, - "binlog_annotate_row_events": { - "cli": "--binlog-annotate-row-events[={0|1}]", - "default": "ON (>= MariaDB 10.2.4), OFF (<= MariaDB 10.2.3)", - "dynamic": true, - "name": "binlog_annotate_row_events", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "binlog_annotate_row_events", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - } - ] - }, - "binlog_cache_size": { - "cli": "--binlog-cache-size=#", - "default": "32768", - "dynamic": true, - "name": "binlog_cache_size", - "range": { - "from": 4096 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "binlog_cache_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_binlog_cache_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_binlog_cache_size", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "binlog_checksum": { - "cli": "--binlog-checksum=name", - "default": "CRC32", - "dynamic": true, - "name": "binlog_checksum", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "NONE", - "0", - "CRC32", - "1" - ], - "ids": [ - { - "anchor": "binlog_checksum", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "option_mysqld_binlog-checksum", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_binlog_checksum", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "option_mysqld_binlog-checksum", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_binlog_checksum", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "binlog_commit_wait_count": { - "cli": "--binlog-commit-wait-count=#]", - "default": "0", - "dynamic": true, - "name": "binlog_commit_wait_count", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "binlog_commit_wait_count", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - } - ] - }, - "binlog_commit_wait_usec": { - "cli": "--binlog-commit-wait-usec#", - "default": "100000", - "dynamic": true, - "name": "binlog_commit_wait_usec", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "binlog_commit_wait_usec", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - } - ] - }, - "binlog_direct_non_transactional_updates": { - "cli": "--binlog-direct-non-transactional-updates[={OFF|ON}]", - "default": "0", - "dynamic": true, - "name": "binlog_direct_non_transactional_updates", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "binlog_direct_non_transactional_updates", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_binlog_direct_non_transactional_updates", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_binlog_direct_non_transactional_updates", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "binlog_file_cache_size": { - "cli": "--binlog-file-cache-size=#", - "default": "16384", - "dynamic": true, - "name": "binlog_file_cache_size", - "range": { - "from": 8192, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "binlog_file_cache_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - } - ] - }, - "binlog_format": { - "cli": "--binlog-format=format", - "dynamic": true, - "name": "binlog_format", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "ROW", - "STATEMENT", - "MIXED" - ], - "ids": [ - { - "anchor": "binlog_format", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_binlog_format", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_binlog_format", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "binlog_optimize_thread_scheduling": { - "cli": "--binlog-optimize-thread-scheduling or --skip-binlog-optimize-thread-scheduling", - "default": "ON", - "dynamic": false, - "name": "binlog_optimize_thread_scheduling", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "binlog_optimize_thread_scheduling", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - } - ] - }, - "binlog_row_image": { - "cli": "--binlog-row-image=image_type", - "default": "full", - "dynamic": true, - "name": "binlog_row_image", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "FULL", - "NOBLOB", - "MINIMAL" - ], - "ids": [ - { - "anchor": "binlog_row_image", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_binlog_row_image", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_binlog_row_image", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "binlog_row_metadata": { - "default": "MINIMAL", - "dynamic": true, - "name": "binlog_row_metadata", - "type": "enumeration", - "validValues": [ - "NO_LOG", - "MINIMAL", - "FULL" - ], - "ids": [ - { - "anchor": "binlog_row_metadata", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_binlog_row_metadata", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - } - ] - }, - "binlog_stmt_cache_size": { - "cli": "--binlog-stmt-cache-size=#", - "default": "32768", - "dynamic": true, - "name": "binlog_stmt_cache_size", - "range": { - "from": 4096 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "binlog_stmt_cache_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_binlog_stmt_cache_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_binlog_stmt_cache_size", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "default_master_connection": { - "default": "'' (empty string)", - "dynamic": true, - "name": "default_master_connection", - "scope": [ - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "default_master_connection", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - } - ] - }, - "encrypt_binlog": { - "cli": "--encrypt-binlog[={0|1}]", - "default": "OFF", - "dynamic": false, - "name": "encrypt_binlog", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "encrypt_binlog", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - } - ] - }, - "expire_logs_days": { - "cli": "--expire-logs-days=#", - "default": "0", - "dynamic": true, - "name": "expire_logs_days", - "range": { - "from": 0, - "to": 99 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "expire_logs_days", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_expire_logs_days", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_expire_logs_days", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "init_slave": { - "cli": "--init-slave=name", - "dynamic": true, - "name": "init_slave", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "init_slave", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_init_slave", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "log_bin": { - "dynamic": false, - "name": "log_bin", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "log_bin", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "option_mysqld_log-bin", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_log_bin", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "option_mysqld_log-bin", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_log_bin", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "log_bin_basename": { - "dynamic": false, - "name": "log_bin_basename", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - { - "anchor": "log_bin_basename", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_log_bin_basename", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_log_bin_basename", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "log_bin_compress": { - "cli": "--log-bin-compress", - "default": "OFF", - "dynamic": true, - "name": "log_bin_compress", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "log_bin_compress", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - } - ] - }, - "log_bin_compress_min_len": { - "cli": "--log-bin-compress-min-len", - "default": "256", - "dynamic": true, - "name": "log_bin_compress_min_len", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "log_bin_compress_min_len", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - } - ] - }, - "log_bin_index": { - "cli": "--log-bin-index=file_name", - "dynamic": false, - "name": "log_bin_index", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - { - "anchor": "log_bin_index", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "option_mysqld_log-bin-index", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_log_bin_index", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "option_mysqld_log-bin-index", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_log_bin_index", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "log_bin_trust_function_creators": { - "cli": "--log-bin-trust-function-creators[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "log_bin_trust_function_creators", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "log_bin_trust_function_creators", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_log_bin_trust_function_creators", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_log_bin_trust_function_creators", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "log_slow_slave_statements": { - "cli": "--log-slow-slave-statements[={OFF|ON}]", - "dynamic": true, - "name": "log_slow_slave_statements", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "log_slow_slave_statements", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_log_slow_slave_statements", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "log_slave_updates": { - "cli": "--log-slave-updates[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "name": "log_slave_updates", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "log_slave_updates", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_log_slave_updates", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_log_slave_updates", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "master_verify_checksum": { - "cli": "--master-verify-checksum[={OFF|ON}]", - "default": "0", - "dynamic": true, - "name": "master_verify_checksum", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "master_verify_checksum", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_master_verify_checksum", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_master_verify_checksum", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "max_binlog_cache_size": { - "cli": "--max-binlog-cache-size=#", - "default": "18446744073709551615", - "dynamic": true, - "name": "max_binlog_cache_size", - "range": { - "from": 4096, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "max_binlog_cache_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_max_binlog_cache_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_max_binlog_cache_size", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "max_binlog_size": { - "cli": "--max-binlog-size=#", - "default": "1073741824", - "dynamic": true, - "name": "max_binlog_size", - "range": { - "from": 4096, - "to": 1073741824 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "max_binlog_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_max_binlog_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_max_binlog_size", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "max_binlog_stmt_cache_size": { - "cli": "--max-binlog-stmt-cache-size=#", - "default": "18446744073709547520", - "dynamic": true, - "name": "max_binlog_stmt_cache_size", - "range": { - "from": 4096, - "to": 1.8446744073709548e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "max_binlog_stmt_cache_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_max_binlog_stmt_cache_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_max_binlog_stmt_cache_size", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "max_relay_log_size": { - "cli": "--max-relay-log-size=#", - "default": "0", - "dynamic": true, - "name": "max_relay_log_size", - "range": { - "from": 0, - "to": 1073741824 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "max_relay_log_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "option_mysqld_max-relay-log-size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - }, - { - "anchor": "sysvar_max_relay_log_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "read_binlog_speed_limit": { - "cli": "--read-binlog-speed-limit=#", - "default": "0 (no limit)", - "dynamic": true, - "name": "read_binlog_speed_limit", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "read_binlog_speed_limit", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - } - ] - }, - "relay_log": { - "cli": "--relay-log=file_name", - "dynamic": false, - "name": "relay_log", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - { - "anchor": "relay_log", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_relay_log", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "relay_log_basename": { - "default": "datadir + '/' + hostname + '-relay-bin'", - "dynamic": false, - "name": "relay_log_basename", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "relay_log_basename", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_relay_log_basename", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "relay_log_index": { - "default": "*host_name*-relay-bin.index", - "dynamic": false, - "name": "relay_log_index", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "relay_log_index", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_relay_log_index", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "relay_log_info_file": { - "cli": "--relay-log-info-file=file_name", - "default": "relay-log.info", - "dynamic": false, - "name": "relay_log_info_file", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "relay_log_info_file", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_relay_log_info_file", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "relay_log_purge": { - "cli": "--relay-log-purge[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "name": "relay_log_purge", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "relay_log_purge", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "option_mysqld_relay-log-purge", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - }, - { - "anchor": "sysvar_relay_log_purge", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "relay_log_recovery": { - "cli": "--relay-log-recovery[={OFF|ON}]", - "default": "OFF", - "name": "relay_log_recovery", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "relay_log_recovery", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_relay_log_recovery", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "relay_log_space_limit": { - "cli": "--relay-log-space-limit=#", - "default": "0", - "dynamic": false, - "name": "relay_log_space_limit", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "relay_log_space_limit", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "option_mysqld_relay-log-space-limit", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - }, - { - "anchor": "sysvar_relay_log_space_limit", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "replicate_annotate_row_events": { - "cli": "--replicate-annotate-row-events", - "default": "ON (>= MariaDB 10.2.4), OFF (<= MariaDB 10.2.3)", - "dynamic": false, - "name": "replicate_annotate_row_events", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "replicate_annotate_row_events", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - } - ] - }, - "replicate_do_db": { - "cli": "--replicate-do-db=name", - "name": "replicate_do_db", - "type": "string", - "ids": [ - { - "anchor": "replicate_do_db", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "option_mysqld_replicate-do-db", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "replicate_do_table": { - "cli": "--replicate-do-table=name", - "name": "replicate_do_table", - "type": "string", - "ids": [ - { - "anchor": "replicate_do_table", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "option_mysqld_replicate-do-table", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "replicate_events_marked_for_skip": { - "cli": "--replicate-events-marked-for-skip", - "default": "replicate", - "dynamic": true, - "name": "replicate_events_marked_for_skip", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "REPLICATE", - "FILTER_ON_SLAVE", - "FILTER_ON_MASTER" - ], - "ids": [ - { - "anchor": "replicate_events_marked_for_skip", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - } - ] - }, - "replicate_ignore_db": { - "cli": "--replicate-ignore-db=name", - "name": "replicate_ignore_db", - "type": "string", - "ids": [ - { - "anchor": "replicate_ignore_db", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "option_mysqld_replicate-ignore-db", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "replicate_ignore_table": { - "cli": "--replicate-ignore-table=name", - "name": "replicate_ignore_table", - "type": "string", - "ids": [ - { - "anchor": "replicate_ignore_table", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "option_mysqld_replicate-ignore-table", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "replicate_rewrite_db": { - "cli": "--replicate-rewrite-db=old_name->new_name", - "name": "replicate_rewrite_db", - "type": "string", - "ids": [ - { - "anchor": "replicate_rewrite_db", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "option_mysqld_replicate-rewrite-db", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "replicate_wild_do_table": { - "cli": "--replicate-wild-do-table=name", - "name": "replicate_wild_do_table", - "type": "string", - "ids": [ - { - "anchor": "replicate_wild_do_table", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "option_mysqld_replicate-wild-do-table", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "replicate_wild_ignore_table": { - "cli": "--replicate-wild-ignore-table=name", - "name": "replicate_wild_ignore_table", - "type": "string", - "ids": [ - { - "anchor": "replicate_wild_ignore_table", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "option_mysqld_replicate-wild-ignore-table", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "report_host": { - "cli": "--report-host=host_name", - "dynamic": false, - "name": "report_host", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "report_host", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_report_host", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "report_password": { - "dynamic": false, - "name": "report_password", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "report_password", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_report_password", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "report_port": { - "cli": "--report-port=port-num", - "default": "[slave_port]", - "dynamic": false, - "name": "report_port", - "range": { - "from": 0, - "to": 65535 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "report_port", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_report_port", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "report_user": { - "cli": "--report-user=name", - "dynamic": false, - "name": "report_user", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "report_user", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_report_user", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "skip_parallel_replication": { - "default": "OFF", - "dynamic": true, - "name": "skip_parallel_replication", - "scope": [ - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "skip_parallel_replication", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - } - ] - }, - "skip_replication": { - "default": "OFF", - "dynamic": true, - "name": "skip_replication", - "scope": [ - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "skip_replication", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - } - ] - }, - "slave_compressed_protocol": { - "cli": "--slave-compressed-protocol[={OFF|ON}]", - "default": "0", - "dynamic": true, - "name": "slave_compressed_protocol", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "slave_compressed_protocol", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_slave_compressed_protocol", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "slave_ddl_exec_mode": { - "cli": "--slave-ddl-exec-mode=name", - "default": "IDEMPOTENT", - "dynamic": true, - "name": "slave_ddl_exec_mode", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "IDEMPOTENT", - "STRICT" - ], - "ids": [ - { - "anchor": "slave_ddl_exec_mode", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - } - ] - }, - "slave_domain_parallel_threads": { - "cli": "--slave-domain-parallel-threads=#", - "default": "0", - "dynamic": true, - "name": "slave_domain_parallel_threads", - "scope": [ - "global" - ], - "type": "integer", - "validValues": [ - "0", - "16383" - ], - "ids": [ - { - "anchor": "slave_domain_parallel_threads", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - } - ] - }, - "slave_exec_mode": { - "cli": "--slave-exec-mode=mode", - "default": "IDEMPOTENT (NDB)STRICT (Other)", - "dynamic": true, - "name": "slave_exec_mode", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "IDEMPOTENT", - "STRICT" - ], - "ids": [ - { - "anchor": "slave_exec_mode", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_slave_exec_mode", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "slave_load_tmpdir": { - "cli": "--slave-load-tmpdir=path", - "default": "Value of --tmpdir", - "dynamic": false, - "name": "slave_load_tmpdir", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "slave_load_tmpdir", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_slave_load_tmpdir", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "slave_max_allowed_packet": { - "cli": "--slave-max-allowed-packet=#", - "default": "1073741824", - "dynamic": true, - "name": "slave_max_allowed_packet", - "range": { - "from": 1024, - "to": 1073741824 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "slave_max_allowed_packet", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_slave_max_allowed_packet", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "slave_net_timeout": { - "cli": "--slave-net-timeout=#", - "default": "60", - "dynamic": true, - "name": "slave_net_timeout", - "range": { - "from": 1, - "to": "upwards" - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "slave_net_timeout", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_slave_net_timeout", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "slave_parallel_max_queued": { - "cli": "--slave-parallel-max-queued=#", - "default": "131072", - "dynamic": true, - "name": "slave_parallel_max_queued", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "slave_parallel_max_queued", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - } - ] - }, - "slave_parallel_mode": { - "default": "conservative", - "dynamic": false, - "name": "slave_parallel_mode", - "scope": [ - "global" - ], - "validValues": [ - "conservative", - "optimistic", - "none", - "aggressive", - "minimal" - ], - "ids": [ - { - "anchor": "slave_parallel_mode", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - } - ] - }, - "slave_parallel_threads": { - "cli": "--slave-parallel-threads=#", - "default": "0", - "dynamic": true, - "name": "slave_parallel_threads", - "range": { - "from": 0, - "to": 16383 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "slave_parallel_threads", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - } - ] - }, - "slave_parallel_workers": { - "cli": "--slave-parallel-workers=#", - "default": "0", - "dynamic": true, - "name": "slave_parallel_workers", - "range": { - "from": 0, - "to": 1024 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "slave_parallel_workers", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_slave_parallel_workers", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "slave_run_triggers_for_rbr": { - "cli": "--slave-run-triggers-for-rbr=value", - "default": "NO", - "name": "slave_run_triggers_for_rbr", - "scope": [ - "global" - ], - "validValues": [ - "NO", - "YES", - "LOGGING" - ], - "ids": [ - { - "anchor": "slave_run_triggers_for_rbr", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - } - ] - }, - "slave_skip_errors": { - "cli": "--slave-skip-errors=name", - "default": "OFF", - "dynamic": false, - "name": "slave_skip_errors", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "[list of error codes]", - "ALL", - "OFF" - ], - "ids": [ - { - "anchor": "slave_skip_errors", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "option_mysqld_slave-skip-errors", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - }, - { - "anchor": "sysvar_slave_skip_errors", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "slave_sql_verify_checksum": { - "cli": "--slave-sql-verify-checksum[={OFF|ON}]", - "default": "1", - "dynamic": true, - "name": "slave_sql_verify_checksum", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "slave_sql_verify_checksum", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "option_mysqld_slave-sql-verify-checksum", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - }, - { - "anchor": "sysvar_slave_sql_verify_checksum", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "slave_transaction_retries": { - "cli": "--slave-transaction-retries=#", - "default": "10", - "dynamic": true, - "name": "slave_transaction_retries", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "slave_transaction_retries", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_slave_transaction_retries", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "slave_transaction_retry_errors": { - "cli": "--slave-transaction_retry-errors=[error_code1,error_code2,...]", - "default": "1158,1159,1160,1161,1205,1213,1429,2013,12701 (>= MariaDB 10.4.5), 1213,1205 (>= MariaDB 10.3.3)", - "dynamic": false, - "name": "slave_transaction_retry_errors", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "comma-separated list of error codes" - ], - "ids": [ - { - "anchor": "slave_transaction_retry_errors", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - } - ] - }, - "slave_transaction_retry_interval": { - "cli": "--slave-transaction-retry-interval=#", - "default": "0", - "dynamic": true, - "name": "slave_transaction_retry_interval", - "range": { - "from": 0, - "to": 3600 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "slave_transaction_retry_interval", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - } - ] - }, - "slave_type_conversions": { - "cli": "--slave-type-conversions=set", - "default": "", - "name": "slave_type_conversions", - "scope": [ - "global" - ], - "type": "set", - "validValues": [ - "ALL_LOSSY", - "ALL_NON_LOSSY" - ], - "ids": [ - { - "anchor": "slave_type_conversions", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_slave_type_conversions", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "sql_log_bin": { - "default": "1", - "dynamic": true, - "name": "sql_log_bin", - "scope": [ - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sql_log_bin", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_sql_log_bin", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_sql_log_bin", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "sql_slave_skip_counter": { - "dynamic": true, - "name": "sql_slave_skip_counter", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sql_slave_skip_counter", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_sql_slave_skip_counter", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "sync_binlog": { - "cli": "--sync-binlog=#", - "dynamic": true, - "name": "sync_binlog", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sync_binlog", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_sync_binlog", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_sync_binlog", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "sync_master_info": { - "cli": "--sync-master-info=#", - "default": "10000", - "dynamic": true, - "name": "sync_master_info", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sync_master_info", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_sync_master_info", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "sync_relay_log": { - "cli": "--sync-relay-log=#", - "default": "10000", - "dynamic": true, - "name": "sync_relay_log", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sync_relay_log", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_sync_relay_log", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "sync_relay_log_info": { - "cli": "--sync-relay-log-info=#", - "default": "10000", - "dynamic": true, - "name": "sync_relay_log_info", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sync_relay_log_info", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/" - }, - { - "anchor": "sysvar_sync_relay_log_info", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "Binlog_bytes_written": { - "name": "Binlog_bytes_written", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "binlog_bytes_written", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Binlog_cache_disk_use": { - "name": "Binlog_cache_disk_use", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "binlog_cache_disk_use", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Binlog_cache_use": { - "name": "Binlog_cache_use", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "binlog_cache_use", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Binlog_commits": { - "name": "Binlog_commits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "binlog_commits", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Binlog_group_commit_trigger_count": { - "name": "Binlog_group_commit_trigger_count", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "binlog_group_commit_trigger_count", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Binlog_group_commit_trigger_lock_wait": { - "name": "Binlog_group_commit_trigger_lock_wait", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "binlog_group_commit_trigger_lock_wait", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Binlog_group_commit_trigger_timeout": { - "name": "Binlog_group_commit_trigger_timeout", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "binlog_group_commit_trigger_timeout", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Binlog_group_commits": { - "name": "Binlog_group_commits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "binlog_group_commits", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Binlog_snapshot_file": { - "name": "Binlog_snapshot_file", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "binlog_snapshot_file", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Binlog_snapshot_position": { - "name": "Binlog_snapshot_position", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "binlog_snapshot_position", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Binlog_stmt_cache_disk_use": { - "name": "Binlog_stmt_cache_disk_use", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "binlog_stmt_cache_disk_use", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Binlog_stmt_cache_use": { - "name": "Binlog_stmt_cache_use", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "binlog_stmt_cache_use", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Com_change_master": { - "name": "Com_change_master", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_change_master", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Com_show_master_status": { - "name": "Com_show_master_status", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_master_status", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Com_show_new_master": { - "name": "Com_show_new_master", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_new_master", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Com_show_slave_hosts": { - "name": "Com_show_slave_hosts", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_slave_hosts", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Com_show_slave_status": { - "name": "Com_show_slave_status", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_slave_status", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Com_slave_start": { - "name": "Com_slave_start", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_slave_start", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Com_slave_stop": { - "name": "Com_slave_stop", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_slave_stop", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Com_start_all_slaves": { - "name": "Com_start_all_slaves", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_start_all_slaves", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Com_start_slave": { - "name": "Com_start_slave", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_start_slave", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Com_stop_all_slaves": { - "name": "Com_stop_all_slaves", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_stop_all_slaves", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Com_stop_slave": { - "name": "Com_stop_slave", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_stop_slave", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Master_gtid_wait_count": { - "name": "Master_gtid_wait_count", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "master_gtid_wait_count", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Master_gtid_wait_time": { - "name": "Master_gtid_wait_time", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "master_gtid_wait_time", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Master_gtid_wait_timeouts": { - "name": "Master_gtid_wait_timeouts", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "master_gtid_wait_timeouts", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Rpl_status": { - "name": "Rpl_status", - "ids": [ - { - "anchor": "rpl_status", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Rpl_transactions_multi_engine": { - "name": "Rpl_transactions_multi_engine", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rpl_transactions_multi_engine", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Slave_connections": { - "name": "Slave_connections", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "slave_connections", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Slave_heartbeat_period": { - "name": "Slave_heartbeat_period", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "slave_heartbeat_period", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Slave_open_temp_tables": { - "name": "Slave_open_temp_tables", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "slave_open_temp_tables", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Slave_received_heartbeats": { - "name": "Slave_received_heartbeats", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "slave_received_heartbeats", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Slave_retried_transactions": { - "name": "Slave_retried_transactions", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "slave_retried_transactions", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Slave_running": { - "name": "Slave_running", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "slave_running", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Slave_skipped_errors": { - "name": "Slave_skipped_errors", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "slave_skipped_errors", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Slaves_connected": { - "name": "Slaves_connected", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "slaves_connected", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Slaves_running": { - "name": "Slaves_running", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "slaves_running", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Transactions_gtid_foreign_engine": { - "name": "Transactions_gtid_foreign_engine", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "transactions_gtid_foreign_engine", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Transactions_multi_engine": { - "name": "Transactions_multi_engine", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "transactions_multi_engine", - "url": "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/" - } - ] - }, - "Rpl_semi_sync_master_clients": { - "name": "Rpl_semi_sync_master_clients", - "type": "integer", - "ids": [ - { - "anchor": "rpl_semi_sync_master_clients", - "url": "https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/" - } - ] - }, - "Rpl_semi_sync_master_net_avg_wait_time": { - "name": "Rpl_semi_sync_master_net_avg_wait_time", - "type": "integer", - "ids": [ - { - "anchor": "rpl_semi_sync_master_net_avg_wait_time", - "url": "https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/" - } - ] - }, - "Rpl_semi_sync_master_net_wait_time": { - "name": "Rpl_semi_sync_master_net_wait_time", - "type": "integer", - "ids": [ - { - "anchor": "rpl_semi_sync_master_net_wait_time", - "url": "https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/" - } - ] - }, - "Rpl_semi_sync_master_net_waits": { - "name": "Rpl_semi_sync_master_net_waits", - "type": "integer", - "ids": [ - { - "anchor": "rpl_semi_sync_master_net_waits", - "url": "https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/" - } - ] - }, - "Rpl_semi_sync_master_no_times": { - "name": "Rpl_semi_sync_master_no_times", - "type": "integer", - "ids": [ - { - "anchor": "rpl_semi_sync_master_no_times", - "url": "https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/" - } - ] - }, - "Rpl_semi_sync_master_no_tx": { - "name": "Rpl_semi_sync_master_no_tx", - "type": "integer", - "ids": [ - { - "anchor": "rpl_semi_sync_master_no_tx", - "url": "https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/" - } - ] - }, - "Rpl_semi_sync_master_status": { - "name": "Rpl_semi_sync_master_status", - "type": "boolean", - "ids": [ - { - "anchor": "rpl_semi_sync_master_status", - "url": "https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/" - } - ] - }, - "Rpl_semi_sync_master_timefunc_failures": { - "name": "Rpl_semi_sync_master_timefunc_failures", - "type": "integer", - "ids": [ - { - "anchor": "rpl_semi_sync_master_timefunc_failures", - "url": "https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/" - } - ] - }, - "Rpl_semi_sync_master_tx_avg_wait_time": { - "name": "Rpl_semi_sync_master_tx_avg_wait_time", - "type": "integer", - "ids": [ - { - "anchor": "rpl_semi_sync_master_tx_avg_wait_time", - "url": "https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/" - } - ] - }, - "Rpl_semi_sync_master_tx_wait_time": { - "name": "Rpl_semi_sync_master_tx_wait_time", - "type": "integer", - "ids": [ - { - "anchor": "rpl_semi_sync_master_tx_wait_time", - "url": "https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/" - } - ] - }, - "Rpl_semi_sync_master_tx_waits": { - "name": "Rpl_semi_sync_master_tx_waits", - "type": "integer", - "ids": [ - { - "anchor": "rpl_semi_sync_master_tx_waits", - "url": "https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/" - } - ] - }, - "Rpl_semi_sync_master_wait_pos_backtraverse": { - "name": "Rpl_semi_sync_master_wait_pos_backtraverse", - "type": "integer", - "ids": [ - { - "anchor": "rpl_semi_sync_master_wait_pos_backtraverse", - "url": "https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/" - } - ] - }, - "Rpl_semi_sync_master_wait_sessions": { - "name": "Rpl_semi_sync_master_wait_sessions", - "type": "integer", - "ids": [ - { - "anchor": "rpl_semi_sync_master_wait_sessions", - "url": "https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/" - } - ] - }, - "Rpl_semi_sync_master_yes_tx": { - "name": "Rpl_semi_sync_master_yes_tx", - "type": "integer", - "ids": [ - { - "anchor": "rpl_semi_sync_master_yes_tx", - "url": "https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/" - } - ] - }, - "Rpl_semi_sync_slave_status": { - "name": "Rpl_semi_sync_slave_status", - "type": "boolean", - "ids": [ - { - "anchor": "rpl_semi_sync_slave_status", - "url": "https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/" - } - ] - }, - "rpl_semi_sync_master_enabled": { - "default": "OFF", - "dynamic": true, - "name": "rpl_semi_sync_master_enabled", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rpl_semi_sync_master_enabled", - "url": "https://mariadb.com/kb/en/library/documentation/semisynchronous-replication/" - }, - { - "anchor": "sysvar_rpl_semi_sync_master_enabled", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-master.html" - } - ] - }, - "rpl_semi_sync_master_timeout": { - "default": "10000", - "dynamic": true, - "name": "rpl_semi_sync_master_timeout", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rpl_semi_sync_master_timeout", - "url": "https://mariadb.com/kb/en/library/documentation/semisynchronous-replication/" - }, - { - "anchor": "sysvar_rpl_semi_sync_master_timeout", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-master.html" - } - ] - }, - "rpl_semi_sync_master_trace_level": { - "default": "32", - "dynamic": true, - "name": "rpl_semi_sync_master_trace_level", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rpl_semi_sync_master_trace_level", - "url": "https://mariadb.com/kb/en/library/documentation/semisynchronous-replication/" - }, - { - "anchor": "sysvar_rpl_semi_sync_master_trace_level", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-master.html" - } - ] - }, - "rpl_semi_sync_master_wait_no_slave": { - "default": "ON", - "dynamic": true, - "name": "rpl_semi_sync_master_wait_no_slave", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rpl_semi_sync_master_wait_no_slave", - "url": "https://mariadb.com/kb/en/library/documentation/semisynchronous-replication/" - }, - { - "anchor": "sysvar_rpl_semi_sync_master_wait_no_slave", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-master.html" - } - ] - }, - "rpl_semi_sync_master_wait_point": { - "cli": "--rpl-semi-sync-master-wait-point=value", - "default": "AFTER_SYNC", - "dynamic": true, - "name": "rpl_semi_sync_master_wait_point", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "AFTER_SYNC", - "AFTER_COMMIT" - ], - "ids": [ - { - "anchor": "rpl_semi_sync_master_wait_point", - "url": "https://mariadb.com/kb/en/library/documentation/semisynchronous-replication/" - }, - { - "anchor": "sysvar_rpl_semi_sync_master_wait_point", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-master.html" - } - ] - }, - "rpl_semi_sync_slave_delay_master": { - "cli": "--rpl-semi-sync-slave-delay-master[={0|1}]", - "default": "OFF", - "dynamic": true, - "name": "rpl_semi_sync_slave_delay_master", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rpl_semi_sync_slave_delay_master", - "url": "https://mariadb.com/kb/en/library/documentation/semisynchronous-replication/" - } - ] - }, - "rpl_semi_sync_slave_enabled": { - "default": "OFF", - "dynamic": true, - "name": "rpl_semi_sync_slave_enabled", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "rpl_semi_sync_slave_enabled", - "url": "https://mariadb.com/kb/en/library/documentation/semisynchronous-replication/" - }, - { - "anchor": "sysvar_rpl_semi_sync_slave_enabled", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "rpl_semi_sync_slave_kill_conn_timeout": { - "cli": "--rpl-semi-sync-slave-kill-conn-timeout[={0|1}]", - "default": "5", - "dynamic": true, - "name": "rpl_semi_sync_slave_kill_conn_timeout", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rpl_semi_sync_slave_kill_conn_timeout", - "url": "https://mariadb.com/kb/en/library/documentation/semisynchronous-replication/" - } - ] - }, - "rpl_semi_sync_slave_trace_level": { - "default": "32", - "dynamic": true, - "name": "rpl_semi_sync_slave_trace_level", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "rpl_semi_sync_slave_trace_level", - "url": "https://mariadb.com/kb/en/library/documentation/semisynchronous-replication/" - }, - { - "anchor": "sysvar_rpl_semi_sync_slave_trace_level", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "rpl_semi_sync_master": { - "cli": "--rpl-semi-sync-master=value", - "default": "ON", - "name": "rpl_semi_sync_master", - "validValues": [ - "OFF", - "ON", - "FORCE", - "FORCE_PLUS_PERMANENT" - ], - "ids": [ - { - "anchor": "rpl_semi_sync_master", - "url": "https://mariadb.com/kb/en/library/documentation/semisynchronous-replication/" - } - ] - }, - "rpl_semi_sync_slave": { - "cli": "--rpl-semi-sync-slave=value", - "default": "ON", - "name": "rpl_semi_sync_slave", - "validValues": [ - "OFF", - "ON", - "FORCE", - "FORCE_PLUS_PERMANENT" - ], - "ids": [ - { - "anchor": "rpl_semi_sync_slave", - "url": "https://mariadb.com/kb/en/library/documentation/semisynchronous-replication/" - } - ] - }, - "Aborted_clients": { - "name": "Aborted_clients", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "aborted_clients", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Aborted_connects": { - "name": "Aborted_connects", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "aborted_connects", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Aborted_connects_preauth": { - "name": "Aborted_connects_preauth", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "aborted_connects_preauth", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Access_denied_errors": { - "name": "Access_denied_errors", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "access_denied_errors", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Acl_column_grants": { - "name": "Acl_column_grants", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "acl_column_grants", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Acl_database_grants": { - "name": "Acl_database_grants", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "acl_database_grants", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Acl_function_grants": { - "name": "Acl_function_grants", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "acl_function_grants", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Acl_package_body_grants": { - "name": "Acl_package_body_grants", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "acl_package_body_grants", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Acl_package_spec_grants": { - "name": "Acl_package_spec_grants", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "acl_package_spec_grants", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Acl_procedure_grants": { - "name": "Acl_procedure_grants", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "acl_procedure_grants", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Acl_proxy_users": { - "name": "Acl_proxy_users", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "acl_proxy_users", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Acl_role_grants": { - "name": "Acl_role_grants", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "acl_role_grants", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Acl_roles": { - "name": "Acl_roles", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "acl_roles", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Acl_table_grants": { - "name": "Acl_table_grants", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "acl_table_grants", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Acl_users": { - "name": "Acl_users", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "acl_users", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Busy_time": { - "name": "Busy_time", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "busy_time", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Bytes_received": { - "name": "Bytes_received", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "bytes_received", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Bytes_sent": { - "name": "Bytes_sent", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "bytes_sent", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_admin_commands": { - "name": "Com_admin_commands", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_admin_commands", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_alter_db": { - "name": "Com_alter_db", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_alter_db", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_alter_db_upgrade": { - "name": "Com_alter_db_upgrade", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_alter_db_upgrade", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_alter_event": { - "name": "Com_alter_event", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_alter_event", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_alter_function": { - "name": "Com_alter_function", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_alter_function", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_alter_procedure": { - "name": "Com_alter_procedure", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_alter_procedure", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_alter_sequence": { - "name": "Com_alter_sequence", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_alter_sequence", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_alter_server": { - "name": "Com_alter_server", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_alter_server", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_alter_table": { - "name": "Com_alter_table", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_alter_table", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_alter_tablespace": { - "name": "Com_alter_tablespace", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_alter_tablespace", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_alter_user": { - "name": "Com_alter_user", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_alter_user", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_analyze": { - "name": "Com_analyze", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_analyze", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_assign_to_keycache": { - "name": "Com_assign_to_keycache", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_assign_to_keycache", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_backup": { - "name": "Com_backup", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_backup", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_backup_lock": { - "name": "Com_backup_lock", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_backup_lock", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_backup_table": { - "name": "Com_backup_table", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_backup_table", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_begin": { - "name": "Com_begin", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_begin", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_binlog": { - "name": "Com_binlog", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_binlog", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_call_procedure": { - "name": "Com_call_procedure", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_call_procedure", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_change_db": { - "name": "Com_change_db", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_change_db", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_check": { - "name": "Com_check", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_check", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_checksum": { - "name": "Com_checksum", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_checksum", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_commit": { - "name": "Com_commit", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_commit", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_compound_sql": { - "name": "Com_compound_sql", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_compound_sql", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_create_db": { - "name": "Com_create_db", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_create_db", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_create_event": { - "name": "Com_create_event", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_create_event", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_create_function": { - "name": "Com_create_function", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_create_function", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_create_index": { - "name": "Com_create_index", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_create_index", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_create_package": { - "name": "Com_create_package", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_create_package", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_create_package_body": { - "name": "Com_create_package_body", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_create_package_body", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_create_procedure": { - "name": "Com_create_procedure", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_create_procedure", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_create_role": { - "name": "Com_create_role", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_create_role", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_create_sequence": { - "name": "Com_create_sequence", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_create_sequence", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_create_server": { - "name": "Com_create_server", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_create_server", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_create_table": { - "name": "Com_create_table", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_create_table", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_create_temporary_table": { - "name": "Com_create_temporary_table", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_create_temporary_table", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_create_trigger": { - "name": "Com_create_trigger", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_create_trigger", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_create_udf": { - "name": "Com_create_udf", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_create_udf", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_create_user": { - "name": "Com_create_user", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_create_user", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_create_view": { - "name": "Com_create_view", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_create_view", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_dealloc_sql": { - "name": "Com_dealloc_sql", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_dealloc_sql", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_delete": { - "name": "Com_delete", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_delete", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_delete_multi": { - "name": "Com_delete_multi", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_delete_multi", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_do": { - "name": "Com_do", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_do", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_drop_db": { - "name": "Com_drop_db", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_drop_db", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_drop_event": { - "name": "Com_drop_event", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_drop_event", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_drop_function": { - "name": "Com_drop_function", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_drop_function", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_drop_index": { - "name": "Com_drop_index", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_drop_index", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_drop_package": { - "name": "Com_drop_package", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_drop_package", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_drop_package_body": { - "name": "Com_drop_package_body", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_drop_package_body", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_drop_procedure": { - "name": "Com_drop_procedure", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_drop_procedure", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_drop_role": { - "name": "Com_drop_role", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_drop_role", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_drop_sequence": { - "name": "Com_drop_sequence", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_drop_sequence", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_drop_server": { - "name": "Com_drop_server", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_drop_server", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_drop_table": { - "name": "Com_drop_table", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_drop_table", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_drop_temporary_table": { - "name": "Com_drop_temporary_table", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_drop_temporary_table", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_drop_trigger": { - "name": "Com_drop_trigger", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_drop_trigger", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_drop_user": { - "name": "Com_drop_user", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_drop_user", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_drop_view": { - "name": "Com_drop_view", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_drop_view", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_empty_query": { - "name": "Com_empty_query", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_empty_query", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_execute_immediate": { - "name": "Com_execute_immediate", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_execute_immediate", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_execute_sql": { - "name": "Com_execute_sql", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_execute_sql", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_flush": { - "name": "Com_flush", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_flush", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_get_diagnostics": { - "name": "Com_get_diagnostics", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_get_diagnostics", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_grant": { - "name": "Com_grant", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_grant", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_grant_role": { - "name": "Com_grant_role", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_grant_role", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_ha_close": { - "name": "Com_ha_close", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_ha_close", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_ha_open": { - "name": "Com_ha_open", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_ha_open", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_ha_read": { - "name": "Com_ha_read", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_ha_read", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_help": { - "name": "Com_help", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_help", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_insert": { - "name": "Com_insert", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_insert", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_insert_select": { - "name": "Com_insert_select", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_insert_select", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_install_plugin": { - "name": "Com_install_plugin", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_install_plugin", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_kill": { - "name": "Com_kill", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_kill", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_load": { - "name": "Com_load", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_load", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_load_master_data": { - "name": "Com_load_master_data", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_load_master_data", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_load_master_table": { - "name": "Com_load_master_table", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_load_master_table", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_multi": { - "name": "Com_multi", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_multi", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_lock_tables": { - "name": "Com_lock_tables", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_lock_tables", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_optimize": { - "name": "Com_optimize", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_optimize", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_preload_keys": { - "name": "Com_preload_keys", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_preload_keys", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_prepare_sql": { - "name": "Com_prepare_sql", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_prepare_sql", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_purge": { - "name": "Com_purge", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_purge", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_purge_before_date": { - "name": "Com_purge_before_date", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_purge_before_date", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_release_savepoint": { - "name": "Com_release_savepoint", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_release_savepoint", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_rename_table": { - "name": "Com_rename_table", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_rename_table", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_rename_user": { - "name": "Com_rename_user", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_rename_user", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_repair": { - "name": "Com_repair", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_repair", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_replace": { - "name": "Com_replace", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_replace", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_replace_select": { - "name": "Com_replace_select", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_replace_select", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_reset": { - "name": "Com_reset", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_reset", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_resignal": { - "name": "Com_resignal", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_resignal", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_restore_table": { - "name": "Com_restore_table", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_restore_table", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_revoke": { - "name": "Com_revoke", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_revoke", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_revoke_all": { - "name": "Com_revoke_all", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_revoke_all", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_revoke_grant": { - "name": "Com_revoke_grant", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_revoke_grant", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_rollback": { - "name": "Com_rollback", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_rollback", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_rollback_to_savepoint": { - "name": "Com_rollback_to_savepoint", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_rollback_to_savepoint", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_savepoint": { - "name": "Com_savepoint", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_savepoint", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_select": { - "name": "Com_select", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_select", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_set_option": { - "name": "Com_set_option", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_set_option", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_signal": { - "name": "Com_signal", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_signal", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_authors": { - "name": "Com_show_authors", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_authors", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_binlog_events": { - "name": "Com_show_binlog_events", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_binlog_events", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_binlogs": { - "name": "Com_show_binlogs", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_binlogs", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_charsets": { - "name": "Com_show_charsets", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_charsets", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_client_statistics": { - "name": "Com_show_client_statistics", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_client_statistics", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_collations": { - "name": "Com_show_collations", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_collations", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_column_types": { - "name": "Com_show_column_types", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_column_types", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_contributors": { - "name": "Com_show_contributors", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_contributors", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_create_db": { - "name": "Com_show_create_db", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_create_db", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_create_event": { - "name": "Com_show_create_event", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_create_event", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_create_func": { - "name": "Com_show_create_func", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_create_func", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_create_package": { - "name": "Com_show_create_package", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_create_package", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_create_package_body": { - "name": "Com_show_create_package_body", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_create_package_body", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_create_proc": { - "name": "Com_show_create_proc", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_create_proc", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_create_table": { - "name": "Com_show_create_table", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_create_table", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_create_trigger": { - "name": "Com_show_create_trigger", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_create_trigger", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_create_user": { - "name": "Com_show_create_user", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_create_user", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_databases": { - "name": "Com_show_databases", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_databases", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_engine_logs": { - "name": "Com_show_engine_logs", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_engine_logs", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_engine_mutex": { - "name": "Com_show_engine_mutex", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_engine_mutex", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_engine_status": { - "name": "Com_show_engine_status", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_engine_status", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_events": { - "name": "Com_show_events", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_events", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_errors": { - "name": "Com_show_errors", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_errors", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_explain": { - "name": "Com_show_explain", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_explain", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_fields": { - "name": "Com_show_fields", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_fields", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_function_status": { - "name": "Com_show_function_status", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_function_status", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_generic": { - "name": "Com_show_generic", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_generic", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_grants": { - "name": "Com_show_grants", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_grants", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_keys": { - "name": "Com_show_keys", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_keys", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_index_statistics": { - "name": "Com_show_index_statistics", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_index_statistics", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_open_tables": { - "name": "Com_show_open_tables", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_open_tables", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_package_status": { - "name": "Com_show_package_status", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_package_status", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_package_body_status": { - "name": "Com_show_package_body_status", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_package_body_status", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_plugins": { - "name": "Com_show_plugins", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_plugins", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_privileges": { - "name": "Com_show_privileges", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_privileges", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_procedure_status": { - "name": "Com_show_procedure_status", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_procedure_status", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_processlist": { - "name": "Com_show_processlist", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_processlist", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_profile": { - "name": "Com_show_profile", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_profile", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_profiles": { - "name": "Com_show_profiles", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_profiles", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_relaylog_events": { - "name": "Com_show_relaylog_events", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_relaylog_events", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_status": { - "name": "Com_show_status", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_status", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_storage_engines": { - "name": "Com_show_storage_engines", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_storage_engines", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_table_statistics": { - "name": "Com_show_table_statistics", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_table_statistics", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_table_status": { - "name": "Com_show_table_status", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_table_status", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_tables": { - "name": "Com_show_tables", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_tables", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_triggers": { - "name": "Com_show_triggers", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_triggers", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_user_statistics": { - "name": "Com_show_user_statistics", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_user_statistics", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_variable": { - "name": "Com_show_variable", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_variable", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_show_warnings": { - "name": "Com_show_warnings", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_show_warnings", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_shutdown": { - "name": "Com_shutdown", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_shutdown", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_stmt_close": { - "name": "Com_stmt_close", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_stmt_close", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_stmt_execute": { - "name": "Com_stmt_execute", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_stmt_execute", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_stmt_fetch": { - "name": "Com_stmt_fetch", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_stmt_fetch", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_stmt_prepare": { - "name": "Com_stmt_prepare", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_stmt_prepare", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_stmt_reprepare": { - "name": "Com_stmt_reprepare", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_stmt_reprepare", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_stmt_reset": { - "name": "Com_stmt_reset", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_stmt_reset", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_stmt_send_long_data": { - "name": "Com_stmt_send_long_data", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_stmt_send_long_data", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_truncate": { - "name": "Com_truncate", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_truncate", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_uninstall_plugin": { - "name": "Com_uninstall_plugin", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_uninstall_plugin", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_unlock_tables": { - "name": "Com_unlock_tables", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_unlock_tables", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_update": { - "name": "Com_update", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_update", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_update_multi": { - "name": "Com_update_multi", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_update_multi", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_xa_commit": { - "name": "Com_xa_commit", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_xa_commit", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_xa_end": { - "name": "Com_xa_end", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_xa_end", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_xa_prepare": { - "name": "Com_xa_prepare", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_xa_prepare", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_xa_recover": { - "name": "Com_xa_recover", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_xa_recover", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_xa_rollback": { - "name": "Com_xa_rollback", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_xa_rollback", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Com_xa_start": { - "name": "Com_xa_start", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "com_xa_start", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Compression": { - "name": "Compression", - "scope": [ - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "compression", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Connection_errors_accept": { - "name": "Connection_errors_accept", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "connection_errors_accept", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Connection_errors_internal": { - "name": "Connection_errors_internal", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "connection_errors_internal", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Connection_errors_max_connections": { - "name": "Connection_errors_max_connections", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "connection_errors_max_connections", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Connection_errors_peer_address": { - "name": "Connection_errors_peer_address", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "connection_errors_peer_address", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Connection_errors_select": { - "name": "Connection_errors_select", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "connection_errors_select", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Connection_errors_tcpwrap": { - "name": "Connection_errors_tcpwrap", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "connection_errors_tcpwrap", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Connections": { - "name": "Connections", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "connections", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Cpu_time": { - "name": "Cpu_time", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "cpu_time", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Created_tmp_disk_tables": { - "name": "Created_tmp_disk_tables", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "created_tmp_disk_tables", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Created_tmp_files": { - "name": "Created_tmp_files", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "created_tmp_files", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Created_tmp_tables": { - "name": "Created_tmp_tables", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "created_tmp_tables", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Delayed_errors": { - "name": "Delayed_errors", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "delayed_errors", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Delayed_insert_threads": { - "name": "Delayed_insert_threads", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "delayed_insert_threads", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Delayed_writes": { - "name": "Delayed_writes", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "delayed_writes", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Delete_scan": { - "name": "Delete_scan", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "delete_scan", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Empty_queries": { - "name": "Empty_queries", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "empty_queries", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Executed_events": { - "name": "Executed_events", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "executed_events", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Executed_triggers": { - "name": "Executed_triggers", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "executed_triggers", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Feature_application_time_periods": { - "name": "Feature_application_time_periods", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "feature_application_time_periods", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Feature_check_constraint": { - "name": "Feature_check_constraint", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "feature_check_constraint", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Feature_custom_aggregate_functions": { - "name": "Feature_custom_aggregate_functions", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "feature_custom_aggregate_functions", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Feature_delay_key_write": { - "name": "Feature_delay_key_write", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "feature_delay_key_write", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Feature_dynamic_columns": { - "name": "Feature_dynamic_columns", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "feature_dynamic_columns", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Feature_fulltext": { - "name": "Feature_fulltext", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "feature_fulltext", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Feature_gis": { - "name": "Feature_gis", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "feature_gis", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Feature_invisible_columns": { - "name": "Feature_invisible_columns", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "feature_invisible_columns", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Feature_json": { - "name": "Feature_json", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "feature_json", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Feature_locale": { - "name": "Feature_locale", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "feature_locale", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Feature_subquery": { - "name": "Feature_subquery", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "feature_subquery", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Feature_system_versioning": { - "name": "Feature_system_versioning", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "feature_system_versioning", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Feature_timezone": { - "name": "Feature_timezone", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "feature_timezone", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Feature_trigger": { - "name": "Feature_trigger", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "feature_trigger", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Feature_window_functions": { - "name": "Feature_window_functions", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "feature_window_functions", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Feature_xml": { - "name": "Feature_xml", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "feature_xml", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Flush_commands": { - "name": "Flush_commands", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "flush_commands", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Handler_commit": { - "name": "Handler_commit", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "handler_commit", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Handler_delete": { - "name": "Handler_delete", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "handler_delete", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Handler_discover": { - "name": "Handler_discover", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "handler_discover", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Handler_external_lock": { - "name": "Handler_external_lock", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "handler_external_lock", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Handler_icp_attempts": { - "name": "Handler_icp_attempts", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "handler_icp_attempts", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Handler_icp_match": { - "name": "Handler_icp_match", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "handler_icp_match", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Handler_mrr_init": { - "name": "Handler_mrr_init", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "handler_mrr_init", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Handler_mrr_key_refills": { - "name": "Handler_mrr_key_refills", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "handler_mrr_key_refills", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Handler_mrr_rowid_refills": { - "name": "Handler_mrr_rowid_refills", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "handler_mrr_rowid_refills", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Handler_prepare": { - "name": "Handler_prepare", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "handler_prepare", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Handler_read_first": { - "name": "Handler_read_first", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "handler_read_first", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Handler_read_key": { - "name": "Handler_read_key", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "handler_read_key", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Handler_read_last": { - "name": "Handler_read_last", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "handler_read_last", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Handler_read_next": { - "name": "Handler_read_next", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "handler_read_next", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Handler_read_prev": { - "name": "Handler_read_prev", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "handler_read_prev", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Handler_read_retry": { - "name": "Handler_read_retry", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "handler_read_retry", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Handler_read_rnd": { - "name": "Handler_read_rnd", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "handler_read_rnd", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Handler_read_rnd_deleted": { - "name": "Handler_read_rnd_deleted", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "handler_read_rnd_deleted", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Handler_read_rnd_next": { - "name": "Handler_read_rnd_next", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "handler_read_rnd_next", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Handler_rollback": { - "name": "Handler_rollback", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "handler_rollback", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Handler_savepoint": { - "name": "Handler_savepoint", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "handler_savepoint", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Handler_savepoint_rollback": { - "name": "Handler_savepoint_rollback", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "handler_savepoint_rollback", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Handler_tmp_delete": { - "name": "Handler_tmp_delete", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "handler_tmp_delete", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Handler_tmp_update": { - "name": "Handler_tmp_update", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "handler_tmp_update", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Handler_tmp_write": { - "name": "Handler_tmp_write", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "handler_tmp_write", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Handler_update": { - "name": "Handler_update", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "handler_update", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Handler_write": { - "name": "Handler_write", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "handler_write", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Key_blocks_not_flushed": { - "name": "Key_blocks_not_flushed", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "key_blocks_not_flushed", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Key_blocks_unused": { - "name": "Key_blocks_unused", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "key_blocks_unused", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Key_blocks_used": { - "name": "Key_blocks_used", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "key_blocks_used", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Key_blocks_warm": { - "name": "Key_blocks_warm", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "key_blocks_warm", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Key_read_requests": { - "name": "Key_read_requests", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "key_read_requests", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Key_reads": { - "name": "Key_reads", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "key_reads", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Key_write_requests": { - "name": "Key_write_requests", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "key_write_requests", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Key_writes": { - "name": "Key_writes", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "key_writes", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Last_query_cost": { - "name": "Last_query_cost", - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "last_query_cost", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Maria_*": { - "name": "Maria_*", - "ids": [ - { - "anchor": "maria_", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Max_statement_time_exceeded": { - "name": "Max_statement_time_exceeded", - "type": "integer", - "ids": [ - { - "anchor": "max_statement_time_exceeded", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Max_used_connections": { - "name": "Max_used_connections", - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "max_used_connections", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Memory_used": { - "name": "Memory_used", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "memory_used", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Memory_used_initial": { - "name": "Memory_used_initial", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "memory_used_initial", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Not_flushed_delayed_rows": { - "name": "Not_flushed_delayed_rows", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "not_flushed_delayed_rows", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Open_files": { - "name": "Open_files", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "open_files", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Open_streams": { - "name": "Open_streams", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "open_streams", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Open_table_definitions": { - "name": "Open_table_definitions", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "open_table_definitions", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Open_tables": { - "name": "Open_tables", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "open_tables", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Opened_files": { - "name": "Opened_files", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "opened_files", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Opened_plugin_libraries": { - "name": "Opened_plugin_libraries", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "opened_plugin_libraries", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Opened_table_definitions": { - "name": "Opened_table_definitions", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "opened_table_definitions", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Opened_tables": { - "name": "Opened_tables", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "opened_tables", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Opened_views": { - "name": "Opened_views", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "opened_views", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Performance_schema_accounts_lost": { - "name": "Performance_schema_accounts_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_accounts_lost", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Performance_schema_cond_classes_lost": { - "name": "Performance_schema_cond_classes_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_cond_classes_lost", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Performance_schema_cond_instances_lost": { - "name": "Performance_schema_cond_instances_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_cond_instances_lost", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Performance_schema_digest_lost": { - "name": "Performance_schema_digest_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_digest_lost", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Performance_schema_file_classes_lost": { - "name": "Performance_schema_file_classes_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_file_classes_lost", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Performance_schema_file_handles_lost": { - "name": "Performance_schema_file_handles_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_file_handles_lost", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Performance_schema_file_instances_lost": { - "name": "Performance_schema_file_instances_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_file_instances_lost", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Performance_schema_hosts_lost": { - "name": "Performance_schema_hosts_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_hosts_lost", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Performance_schema_locker_lost": { - "name": "Performance_schema_locker_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_locker_lost", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Performance_schema_mutex_classes_lost": { - "name": "Performance_schema_mutex_classes_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_mutex_classes_lost", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Performance_schema_mutex_instances_lost": { - "name": "Performance_schema_mutex_instances_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_mutex_instances_lost", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Performance_schema_rwlock_classes_lost": { - "name": "Performance_schema_rwlock_classes_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_rwlock_classes_lost", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Performance_schema_rwlock_instances_lost": { - "name": "Performance_schema_rwlock_instances_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_rwlock_instances_lost", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Performance_schema_session_connect_attrs_lost": { - "name": "Performance_schema_session_connect_attrs_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_session_connect_attrs_lost", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Performance_schema_socket_classes_lost": { - "name": "Performance_schema_socket_classes_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_socket_classes_lost", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Performance_schema_socket_instances_lost": { - "name": "Performance_schema_socket_instances_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_socket_instances_lost", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Performance_schema_stage_classes_lost": { - "name": "Performance_schema_stage_classes_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_stage_classes_lost", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Performance_schema_statement_classes_lost": { - "name": "Performance_schema_statement_classes_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_statement_classes_lost", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Performance_schema_table_handles_lost": { - "name": "Performance_schema_table_handles_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_table_handles_lost", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Performance_schema_table_instances_lost": { - "name": "Performance_schema_table_instances_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_table_instances_lost", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Performance_schema_thread_classes_lost": { - "name": "Performance_schema_thread_classes_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_thread_classes_lost", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Performance_schema_thread_instances_lost": { - "name": "Performance_schema_thread_instances_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_thread_instances_lost", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Performance_schema_users_lost": { - "name": "Performance_schema_users_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "performance_schema_users_lost", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Prepared_stmt_count": { - "name": "Prepared_stmt_count", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "prepared_stmt_count", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Qcache_free_blocks": { - "name": "Qcache_free_blocks", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "qcache_free_blocks", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Qcache_free_memory": { - "name": "Qcache_free_memory", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "qcache_free_memory", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Qcache_hits": { - "name": "Qcache_hits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "qcache_hits", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Qcache_inserts": { - "name": "Qcache_inserts", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "qcache_inserts", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Qcache_lowmem_prunes": { - "name": "Qcache_lowmem_prunes", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "qcache_lowmem_prunes", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Qcache_not_cached": { - "name": "Qcache_not_cached", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "qcache_not_cached", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Qcache_queries_in_cache": { - "name": "Qcache_queries_in_cache", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "qcache_queries_in_cache", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Qcache_total_blocks": { - "name": "Qcache_total_blocks", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "qcache_total_blocks", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Queries": { - "name": "Queries", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "queries", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Questions": { - "name": "Questions", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "questions", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Rows_read": { - "name": "Rows_read", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "rows_read", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Rows_sent": { - "name": "Rows_sent", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "rows_sent", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Rows_tmp_read": { - "name": "Rows_tmp_read", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "rows_tmp_read", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Select_full_join": { - "name": "Select_full_join", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "select_full_join", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Select_full_range_join": { - "name": "Select_full_range_join", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "select_full_range_join", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Select_range": { - "name": "Select_range", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "select_range", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Select_range_check": { - "name": "Select_range_check", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "select_range_check", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Select_scan": { - "name": "Select_scan", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "select_scan", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Slow_launch_threads": { - "name": "Slow_launch_threads", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "slow_launch_threads", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Slow_queries": { - "name": "Slow_queries", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "slow_queries", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Sort_merge_passes": { - "name": "Sort_merge_passes", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sort_merge_passes", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Sort_priority_queue_sorts": { - "name": "Sort_priority_queue_sorts", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sort_priority_queue_sorts", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Sort_range": { - "name": "Sort_range", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sort_range", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Sort_rows": { - "name": "Sort_rows", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sort_rows", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Sort_scan": { - "name": "Sort_scan", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sort_scan", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Subquery_cache_hit": { - "name": "Subquery_cache_hit", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "subquery_cache_hit", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Subquery_cache_miss": { - "name": "Subquery_cache_miss", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "subquery_cache_miss", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Syncs": { - "name": "Syncs", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "syncs", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Table_locks_immediate": { - "name": "Table_locks_immediate", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "table_locks_immediate", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Table_locks_waited": { - "name": "Table_locks_waited", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "table_locks_waited", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Table_open_cache_active_instances": { - "name": "Table_open_cache_active_instances", - "scope": [], - "type": "integer", - "ids": [ - { - "anchor": "table_open_cache_active_instances", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Table_open_cache_hits": { - "name": "Table_open_cache_hits", - "scope": [], - "type": "integer", - "ids": [ - { - "anchor": "table_open_cache_hits", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Table_open_cache_misses": { - "name": "Table_open_cache_misses", - "scope": [], - "type": "integer", - "ids": [ - { - "anchor": "table_open_cache_misses", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Table_open_cache_overflows": { - "name": "Table_open_cache_overflows", - "scope": [], - "type": "integer", - "ids": [ - { - "anchor": "table_open_cache_overflows", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Tc_log_max_pages_used": { - "name": "Tc_log_max_pages_used", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "tc_log_max_pages_used", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Tc_log_page_size": { - "name": "Tc_log_page_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "tc_log_page_size", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Tc_log_page_waits": { - "name": "Tc_log_page_waits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "tc_log_page_waits", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Threads_cached": { - "name": "Threads_cached", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "threads_cached", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Threads_connected": { - "name": "Threads_connected", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "threads_connected", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Threads_created": { - "name": "Threads_created", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "threads_created", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Threads_running": { - "name": "Threads_running", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "threads_running", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Update_scan": { - "name": "Update_scan", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "update_scan", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Uptime": { - "name": "Uptime", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "uptime", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "Uptime_since_flush_status": { - "name": "Uptime_since_flush_status", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "uptime_since_flush_status", - "url": "https://mariadb.com/kb/en/library/documentation/server-status-variables/" - } - ] - }, - "alter_algorithm": { - "cli": "--alter-algorithm=default", - "default": "DEFAULT", - "dynamic": true, - "name": "alter_algorithm", - "scope": [ - "global", - "session" - ], - "validValues": [ - "DEFAULT", - "COPY", - "INPLACE", - "NOCOPY", - "INSTANT" - ], - "ids": [ - { - "anchor": "alter_algorithm", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "analyze_sample_percentage": { - "cli": "--analyze-sample-percentage=#", - "default": "100.000000", - "dynamic": true, - "name": "analyze_sample_percentage", - "range": { - "from": 0, - "to": 100 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "analyze_sample_percentage", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "autocommit": { - "default": "1", - "dynamic": true, - "name": "autocommit", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "autocommit", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_autocommit", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "automatic_sp_privileges": { - "default": "1", - "dynamic": true, - "name": "automatic_sp_privileges", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "automatic_sp_privileges", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_automatic_sp_privileges", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "back_log": { - "cli": "--back-log=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": false, - "name": "back_log", - "range": { - "from": 1, - "to": 65535 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "back_log", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_back_log", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "basedir": { - "cli": "--basedir=path or -b path", - "dynamic": false, - "name": "basedir", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - { - "anchor": "basedir", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_basedir", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - }, - { - "anchor": "sysvar_basedir", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "big_tables": { - "cli": "--big-tables[={OFF|ON}]", - "default": "0", - "dynamic": true, - "name": "big_tables", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "big_tables", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_big_tables", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "bind_address": { - "cli": "--bind-address=addr", - "default": "*", - "dynamic": false, - "name": "bind_address", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "bind_address", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_bind_address", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "bulk_insert_buffer_size": { - "cli": "--bulk-insert-buffer-size=#", - "default": "8388608", - "dynamic": true, - "name": "bulk_insert_buffer_size", - "range": { - "from": 0 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "bulk_insert_buffer_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_bulk_insert_buffer_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "character_set_client": { - "dynamic": true, - "name": "character_set_client", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "character_set_client", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_character_set_client", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "character_set_connection": { - "dynamic": true, - "name": "character_set_connection", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "character_set_connection", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_character_set_connection", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "character_set_database": { - "dynamic": true, - "name": "character_set_database", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "character_set_database", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_character_set_database", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "character_set_filesystem": { - "cli": "--character-set-filesystem=name", - "default": "binary", - "dynamic": true, - "name": "character_set_filesystem", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "character_set_filesystem", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_character_set_filesystem", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "character_set_results": { - "dynamic": true, - "name": "character_set_results", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "character_set_results", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_character_set_results", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "character_set_server": { - "cli": "--character-set-server=name", - "dynamic": true, - "name": "character_set_server", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "character_set_server", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_character_set_server", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "character_set_system": { - "default": "utf8", - "dynamic": false, - "name": "character_set_system", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "character_set_system", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_character_set_system", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "character_sets_dir": { - "cli": "--character-sets-dir=path", - "dynamic": false, - "name": "character_sets_dir", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - { - "anchor": "character_sets_dir", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_character_sets_dir", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "check_constraint_checks": { - "cli": "--check-constraint-checks=[0|1]", - "default": "ON", - "dynamic": true, - "name": "check_constraint_checks", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "check_constraint_checks", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "collation_connection": { - "dynamic": true, - "name": "collation_connection", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "collation_connection", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_collation_connection", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "collation_database": { - "dynamic": true, - "name": "collation_database", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "collation_database", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_collation_database", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "collation_server": { - "cli": "--collation-server=name", - "dynamic": true, - "name": "collation_server", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "collation_server", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_collation_server", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "completion_type": { - "cli": "--completion-type=name", - "default": "NO_CHAIN", - "dynamic": true, - "name": "completion_type", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "NO_CHAIN", - "CHAIN", - "RELEASE", - "0", - "1", - "2" - ], - "ids": [ - { - "anchor": "completion_type", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_completion_type", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "concurrent_insert": { - "default": "AUTO", - "dynamic": true, - "name": "concurrent_insert", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "NEVER", - "AUTO", - "ALWAYS", - "0", - "1", - "2" - ], - "ids": [ - { - "anchor": "concurrent_insert", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_concurrent_insert", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "connect_timeout": { - "cli": "--connect-timeout=#", - "default": "10", - "dynamic": true, - "name": "connect_timeout", - "range": { - "from": 2, - "to": 31536000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "connect_timeout", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_connect_timeout", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "core_file": { - "default": "0", - "dynamic": false, - "name": "core_file", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "core_file", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "option_mysqld_core-file", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - }, - { - "anchor": "sysvar_core_file", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "datadir": { - "cli": "--datadir=path or -h path", - "dynamic": false, - "name": "datadir", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - { - "anchor": "datadir", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_datadir", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - }, - { - "anchor": "sysvar_datadir", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "date_format": { - "name": "date_format", - "ids": [ - { - "anchor": "date_format", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "datetime_format": { - "name": "datetime_format", - "ids": [ - { - "anchor": "datetime_format", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "debug": { - "cli": "-#, --debug[=debug_options]", - "dynamic": true, - "name": "debug", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "debug", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "option_mysqld_debug", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - }, - { - "anchor": "sysvar_debug", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "debug_no_thread_alarm": { - "cli": "--debug-no-thead-alarm=#", - "default": "OFF", - "dynamic": false, - "name": "debug_no_thread_alarm", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "debug_no_thread_alarm", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "debug_sync": { - "dynamic": true, - "name": "debug_sync", - "scope": [ - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "debug_sync", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_debug_sync", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "default_password_lifetime": { - "cli": "--default-password-lifetime=#", - "default": "0", - "dynamic": true, - "name": "default_password_lifetime", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "default_password_lifetime", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_default_password_lifetime", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "default_regex_flags": { - "name": "default_regex_flags", - "ids": [ - { - "anchor": "default_regex_flags", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "default_storage_engine": { - "cli": "--default-storage-engine=name", - "default": "InnoDB", - "dynamic": true, - "name": "default_storage_engine", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "ids": [ - { - "anchor": "default_storage_engine", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_default_storage_engine", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "default_table_type": { - "cli": "--default-table-type=name", - "dynamic": true, - "name": "default_table_type", - "scope": [ - "global", - "session" - ], - "ids": [ - { - "anchor": "default_table_type", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "default_tmp_storage_engine": { - "cli": "--default-tmp-storage-engine=name", - "default": "InnoDB", - "dynamic": true, - "name": "default_tmp_storage_engine", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "ids": [ - { - "anchor": "default_tmp_storage_engine", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_default_tmp_storage_engine", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "default_week_format": { - "cli": "--default-week-format=#", - "default": "0", - "dynamic": true, - "name": "default_week_format", - "range": { - "from": 0, - "to": 7 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "default_week_format", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_default_week_format", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "delay_key_write": { - "default": "ON", - "dynamic": true, - "name": "delay_key_write", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "ON", - "OFF", - "ALL" - ], - "ids": [ - { - "anchor": "delay_key_write", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_delay_key_write", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "delayed_insert_limit": { - "cli": "--delayed-insert-limit=#", - "default": "100", - "dynamic": true, - "name": "delayed_insert_limit", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "delayed_insert_limit", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_delayed_insert_limit", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "delayed_insert_timeout": { - "cli": "--delayed-insert-timeout=#", - "default": "300", - "dynamic": true, - "name": "delayed_insert_timeout", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "delayed_insert_timeout", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_delayed_insert_timeout", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "delayed_queue_size": { - "cli": "--delayed-queue-size=#", - "default": "1000", - "dynamic": true, - "name": "delayed_queue_size", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "delayed_queue_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_delayed_queue_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "disconnect_on_expired_password": { - "name": "disconnect_on_expired_password", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "disconnect_on_expired_password", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_disconnect_on_expired_password", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "div_precision_increment": { - "cli": "--div-precision-increment=#", - "default": "4", - "dynamic": true, - "name": "div_precision_increment", - "range": { - "from": 0, - "to": 30 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "div_precision_increment", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_div_precision_increment", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "encrypt_tmp_disk_tables": { - "cli": "--encrypt-tmp-disk-tables[={0|1}]", - "default": "OFF", - "dynamic": true, - "name": "encrypt_tmp_disk_tables", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "encrypt_tmp_disk_tables", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "encrypt_tmp_files": { - "cli": "--encrypt-tmp-files[={0|1}]", - "default": "OFF (>= MariaDB 10.1.7), ON (<= MariaDB 10.1.6)", - "dynamic": false, - "name": "encrypt_tmp_files", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "encrypt_tmp_files", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "encryption_algorithm": { - "cli": "--encryption-algorithm=value", - "default": "none", - "dynamic": false, - "name": "encryption_algorithm", - "scope": [ - "global" - ], - "validValues": [ - "none", - "aes_ecb", - "aes_cbc", - "aes_ctr" - ], - "ids": [ - { - "anchor": "encryption_algorithm", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "enforce_storage_engine": { - "default": "none", - "dynamic": true, - "name": "enforce_storage_engine", - "scope": [ - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "enforce_storage_engine", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "engine_condition_pushdown": { - "cli": "--engine-condition-pushdown", - "default": "OFF (MariaDB 5.5), ON (<= MariaDB 5.3)", - "dynamic": true, - "name": "engine_condition_pushdown", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "engine_condition_pushdown", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "eq_range_index_dive_limit": { - "cli": "--eq-range-index-dive-limit=#", - "default": "200", - "dynamic": true, - "name": "eq_range_index_dive_limit", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "eq_range_index_dive_limit", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_eq_range_index_dive_limit", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "error_count": { - "dynamic": true, - "name": "error_count", - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "error_count", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "event_scheduler": { - "cli": "--event-scheduler[=value]", - "dynamic": true, - "name": "event_scheduler", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "ON", - "1", - "OFF", - "0", - "DISABLED" - ], - "ids": [ - { - "anchor": "event_scheduler", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_event_scheduler", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "expensive_subquery_limit": { - "cli": "--expensive-subquery-limit=#", - "default": "100", - "dynamic": true, - "name": "expensive_subquery_limit", - "range": { - "from": 0, - "to": "upwards" - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "expensive_subquery_limit", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "explicit_defaults_for_timestamp": { - "name": "explicit_defaults_for_timestamp", - "type": "boolean", - "ids": [ - { - "anchor": "explicit_defaults_for_timestamp", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_explicit_defaults_for_timestamp", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "external_user": { - "dynamic": false, - "name": "external_user", - "scope": [ - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "external_user", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_external_user", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "flush": { - "cli": "--flush[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "flush", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "flush", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "option_mysqld_flush", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - }, - { - "anchor": "sysvar_flush", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "flush_time": { - "cli": "--flush-time=#", - "default": "0", - "dynamic": true, - "name": "flush_time", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "flush_time", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_flush_time", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "foreign_key_checks": { - "default": "1", - "dynamic": true, - "name": "foreign_key_checks", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "foreign_key_checks", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_foreign_key_checks", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "ft_boolean_syntax": { - "cli": "--ft-boolean-syntax=name", - "default": "+ -><()~*:\"\"&|", - "dynamic": true, - "name": "ft_boolean_syntax", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "ft_boolean_syntax", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_ft_boolean_syntax", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "ft_max_word_len": { - "cli": "--ft-max-word-len=#", - "dynamic": false, - "name": "ft_max_word_len", - "range": { - "from": 10 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "ft_max_word_len", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_ft_max_word_len", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "ft_min_word_len": { - "cli": "--ft-min-word-len=#", - "default": "4", - "dynamic": false, - "name": "ft_min_word_len", - "range": { - "from": 1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "ft_min_word_len", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_ft_min_word_len", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "ft_query_expansion_limit": { - "cli": "--ft-query-expansion-limit=#", - "default": "20", - "dynamic": false, - "name": "ft_query_expansion_limit", - "range": { - "from": 0, - "to": 1000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "ft_query_expansion_limit", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_ft_query_expansion_limit", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "ft_stopword_file": { - "cli": "--ft-stopword-file=file_name", - "dynamic": false, - "name": "ft_stopword_file", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - { - "anchor": "ft_stopword_file", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_ft_stopword_file", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "general_log": { - "cli": "--general-log[={OFF|ON}]", - "default": "0", - "dynamic": true, - "name": "general_log", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "general_log", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_general_log", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "general_log_file": { - "cli": "--general-log-file=file_name", - "default": "host_name.log", - "dynamic": true, - "name": "general_log_file", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - { - "anchor": "general_log_file", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_general_log_file", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "group_concat_max_len": { - "cli": "--group-concat-max-len=#", - "dynamic": true, - "name": "group_concat_max_len", - "range": { - "from": 4 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "group_concat_max_len", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_group_concat_max_len", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "have_compress": { - "dynamic": false, - "name": "have_compress", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "have_compress", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "have_crypt": { - "dynamic": false, - "name": "have_crypt", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "have_crypt", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "have_csv": { - "dynamic": false, - "name": "have_csv", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "have_csv", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "have_dynamic_loading": { - "dynamic": false, - "name": "have_dynamic_loading", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "have_dynamic_loading", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "have_geometry": { - "dynamic": false, - "name": "have_geometry", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "have_geometry", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "have_ndbcluster": { - "dynamic": false, - "name": "have_ndbcluster", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "have_ndbcluster", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "have_partitioning": { - "dynamic": false, - "name": "have_partitioning", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "have_partitioning", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "have_profiling": { - "dynamic": false, - "name": "have_profiling", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "have_profiling", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "have_query_cache": { - "dynamic": false, - "name": "have_query_cache", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "have_query_cache", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "have_rtree_keys": { - "dynamic": false, - "name": "have_rtree_keys", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "have_rtree_keys", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "have_symlink": { - "dynamic": false, - "name": "have_symlink", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "have_symlink", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "histogram_size": { - "cli": "--histogram-size=#", - "default": "254 (>= MariaDB 10.4.3), 0 (<= MariaDB 10.4.2)", - "dynamic": true, - "name": "histogram_size", - "range": { - "from": 0, - "to": 255 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "histogram_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "histogram_type": { - "cli": "--histogram-type=value", - "default": "DOUBLE_PREC_HB (>= MariaDB 10.4.3), SINGLE_PREC_HB(<= MariaDB 10.4.2)", - "dynamic": true, - "name": "histogram_type", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "SINGLE_PREC_HB", - "DOUBLE_PREC_HB" - ], - "ids": [ - { - "anchor": "histogram_type", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "host_cache_size": { - "cli": "--host-cache-size=#.", - "dynamic": true, - "name": "host_cache_size", - "range": { - "from": 0, - "to": 65536 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "host_cache_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_host_cache_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "hostname": { - "dynamic": false, - "name": "hostname", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "hostname", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_hostname", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "identity": { - "name": "identity", - "ids": [ - { - "anchor": "identity", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "idle_readonly_transaction_timeout": { - "default": "0", - "dynamic": true, - "name": "idle_readonly_transaction_timeout", - "range": { - "from": 0, - "to": 31536000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "idle_readonly_transaction_timeout", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "idle_transaction_timeout": { - "default": "0", - "dynamic": true, - "name": "idle_transaction_timeout", - "range": { - "from": 0, - "to": 31536000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "idle_transaction_timeout", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "idle_write_transaction_timeout": { - "default": "0", - "dynamic": true, - "name": "idle_write_transaction_timeout", - "range": { - "from": 0, - "to": 31536000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "idle_write_transaction_timeout", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "ignore_db_dirs": { - "cli": "--ignore-db-dirs=dir.", - "dynamic": false, - "name": "ignore_db_dirs", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "ignore_db_dirs", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "in_transaction": { - "default": "0", - "dynamic": false, - "name": "in_transaction", - "scope": [ - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "in_transaction", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "init_connect": { - "cli": "--init-connect=name", - "dynamic": true, - "name": "init_connect", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "init_connect", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_init_connect", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "init_file": { - "cli": "--init-file=file_name", - "dynamic": false, - "name": "init_file", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - { - "anchor": "init_file", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_init_file", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "insert_id": { - "dynamic": true, - "name": "insert_id", - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "insert_id", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "interactive_timeout": { - "cli": "--interactive-timeout=#", - "default": "28800", - "dynamic": true, - "name": "interactive_timeout", - "range": { - "from": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "interactive_timeout", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_interactive_timeout", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "join_buffer_size": { - "cli": "--join-buffer-size=#", - "default": "262144", - "dynamic": true, - "name": "join_buffer_size", - "range": { - "from": 128 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "join_buffer_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_join_buffer_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "join_buffer_space_limit": { - "cli": "--join-buffer-space-limit=#", - "default": "2097152", - "dynamic": true, - "name": "join_buffer_space_limit", - "range": { - "from": 2048, - "to": 99999999997952 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "join_buffer_space_limit", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "join_cache_level": { - "cli": "--join-cache-level=#", - "default": "2", - "dynamic": true, - "name": "join_cache_level", - "range": { - "from": 0, - "to": 8 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "join_cache_level", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "keep_files_on_create": { - "default": "OFF", - "dynamic": true, - "name": "keep_files_on_create", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "keep_files_on_create", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_keep_files_on_create", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "large_files_support": { - "dynamic": false, - "name": "large_files_support", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "large_files_support", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_large_files_support", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "large_page_size": { - "default": "0", - "dynamic": false, - "name": "large_page_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "large_page_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_large_page_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "large_pages": { - "cli": "--large-pages[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "name": "large_pages", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "large_pages", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "option_mysqld_large-pages", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - }, - { - "anchor": "sysvar_large_pages", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "last_insert_id": { - "dynamic": true, - "name": "last_insert_id", - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "last_insert_id", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "lc_messages": { - "cli": "--lc-messages=name", - "default": "en_US", - "dynamic": true, - "name": "lc_messages", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "lc_messages", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "option_mysqld_lc-messages", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - }, - { - "anchor": "sysvar_lc_messages", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "lc_messages_dir": { - "cli": "--lc-messages-dir=path", - "dynamic": false, - "name": "lc_messages_dir", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - { - "anchor": "lc_messages_dir", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "option_mysqld_lc-messages-dir", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - }, - { - "anchor": "sysvar_lc_messages_dir", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "lc_time_names": { - "dynamic": true, - "name": "lc_time_names", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "lc_time_names", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_lc_time_names", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "license": { - "default": "GPL", - "dynamic": false, - "name": "license", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "license", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_license", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "local_infile": { - "dynamic": true, - "name": "local_infile", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "local_infile", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_local_infile", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "lock_wait_timeout": { - "cli": "--lock-wait-timeout=#", - "dynamic": true, - "name": "lock_wait_timeout", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "lock_wait_timeout", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_lock_wait_timeout", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "locked_in_memory": { - "dynamic": false, - "name": "locked_in_memory", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "locked_in_memory", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_locked_in_memory", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "log": { - "cli": "-l [filename] or --log[=filename]", - "default": "OFF", - "dynamic": true, - "name": "log", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "log", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "log_disabled_statements": { - "cli": "--log-disabled_statements=value", - "default": "(empty string)", - "dynamic": false, - "name": "log_disabled_statements", - "scope": [ - "global", - "session" - ], - "type": "set", - "ids": [ - { - "anchor": "log_disabled_statements", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "log_error": { - "cli": "--log-error[=file_name]", - "dynamic": false, - "name": "log_error", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - { - "anchor": "log_error", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "option_mysqld_log-error", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - }, - { - "anchor": "sysvar_log_error", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "log_output": { - "cli": "--log-output=name", - "default": "FILE", - "dynamic": true, - "name": "log_output", - "scope": [ - "global" - ], - "type": "set", - "validValues": [ - "TABLE", - "FILE", - "NONE" - ], - "ids": [ - { - "anchor": "log_output", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_log_output", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "log_queries_not_using_indexes": { - "cli": "--log-queries-not-using-indexes[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "log_queries_not_using_indexes", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "log_queries_not_using_indexes", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_log_queries_not_using_indexes", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "log_slow_admin_statements": { - "cli": "--log-slow-admin-statements[={OFF|ON}]", - "dynamic": true, - "name": "log_slow_admin_statements", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "log_slow_admin_statements", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_log_slow_admin_statements", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "log_slow_disabled_statements": { - "cli": "--log-slow-disabled_statements=value", - "default": "sp", - "dynamic": false, - "name": "log_slow_disabled_statements", - "scope": [ - "global", - "session" - ], - "type": "set", - "ids": [ - { - "anchor": "log_slow_disabled_statements", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "log_slow_filter": { - "cli": "log-slow-filter=value1[,value2...]", - "default": "admin, filesort, filesort_on_disk, full_join, full_scan, query_cache, query_cache_miss, tmp_table, tmp_table_on_disk (<= MariaDB 10.3.0), admin, filesort, filesort_on_disk, filesort_priority_queue, full_join, full_scan, query_cache, query_cache_miss, tmp_table, tmp_table_on_disk (>= MariaDB 10.3.1)", - "dynamic": true, - "name": "log_slow_filter", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "admin", - "filesort", - "filesort_on_disk", - "filesort_priority_queue", - "full_join", - "full_scan", - "query_cache", - "query_cache_miss", - "tmp_table", - "tmp_table_on_disk" - ], - "ids": [ - { - "anchor": "log_slow_filter", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "log_slow_queries": { - "cli": "--log-slow-queries[=name]", - "default": "OFF", - "dynamic": true, - "name": "log_slow_queries", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "log_slow_queries", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "log_slow_rate_limit": { - "cli": "log-slow-rate-limit=#", - "default": "1", - "dynamic": true, - "name": "log_slow_rate_limit", - "range": { - "from": 1, - "to": "upwards" - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "log_slow_rate_limit", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "log_slow_verbosity": { - "cli": "log-slow-verbosity=value1[,value2...]", - "default": "(Empty)", - "dynamic": true, - "name": "log_slow_verbosity", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "query_plan", - "innodb", - "explain" - ], - "ids": [ - { - "anchor": "log_slow_verbosity", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "log_tc_size": { - "cli": "--log-tc-size=#", - "name": "log_tc_size", - "type": "integer", - "ids": [ - { - "anchor": "log_tc_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "option_mysqld_log-tc-size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "log_warnings": { - "cli": "--log-warnings[=#]", - "default": "2", - "dynamic": true, - "name": "log_warnings", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "log_warnings", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "option_mysqld_log-warnings", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - }, - { - "anchor": "sysvar_log_warnings", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "long_query_time": { - "cli": "--long-query-time=#", - "default": "10", - "dynamic": true, - "name": "long_query_time", - "range": { - "from": 0, - "to": "upwards" - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "long_query_time", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_long_query_time", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "low_priority_updates": { - "cli": "--low-priority-updates[={OFF|ON}]", - "default": "0", - "dynamic": true, - "name": "low_priority_updates", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "low_priority_updates", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_low_priority_updates", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "lower_case_file_system": { - "dynamic": false, - "name": "lower_case_file_system", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "lower_case_file_system", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_lower_case_file_system", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "lower_case_table_names": { - "cli": "--lower-case-table-names[=#]", - "default": "0", - "dynamic": false, - "name": "lower_case_table_names", - "range": { - "from": 0, - "to": 2 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "lower_case_table_names", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_lower_case_table_names", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "max_allowed_packet": { - "cli": "--max-allowed-packet=#", - "name": "max_allowed_packet", - "range": { - "from": 1024, - "to": 1073741824 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "max_allowed_packet", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_max_allowed_packet", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "max_connect_errors": { - "cli": "--max-connect-errors=#", - "default": "100", - "dynamic": true, - "name": "max_connect_errors", - "range": { - "from": 1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "max_connect_errors", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_max_connect_errors", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "max_connections": { - "cli": "--max-connections=#", - "default": "151", - "dynamic": true, - "name": "max_connections", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "max_connections", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_max_connections", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "max_delayed_threads": { - "cli": "--max-delayed-threads=#", - "default": "20", - "dynamic": true, - "name": "max_delayed_threads", - "range": { - "from": 0, - "to": 16384 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "max_delayed_threads", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_max_delayed_threads", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "max_digest_length": { - "cli": "--max-digest-length=#", - "default": "1024", - "name": "max_digest_length", - "range": { - "from": 0, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "max_digest_length", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_max_digest_length", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "max_error_count": { - "cli": "--max-error-count=#", - "dynamic": true, - "name": "max_error_count", - "range": { - "from": 0, - "to": 65535 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "max_error_count", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_max_error_count", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "max_heap_table_size": { - "cli": "--max-heap-table-size=#", - "default": "16777216", - "dynamic": true, - "name": "max_heap_table_size", - "range": { - "from": 16384 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "max_heap_table_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_max_heap_table_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "max_insert_delayed_threads": { - "dynamic": true, - "name": "max_insert_delayed_threads", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "max_insert_delayed_threads", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_max_insert_delayed_threads", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "max_join_size": { - "cli": "--max-join-size=#", - "default": "18446744073709551615", - "dynamic": true, - "name": "max_join_size", - "range": { - "from": 1, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "max_join_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_max_join_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "max_length_for_sort_data": { - "cli": "--max-length-for-sort-data=#", - "dynamic": true, - "name": "max_length_for_sort_data", - "range": { - "from": 4, - "to": 8388608 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "max_length_for_sort_data", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_max_length_for_sort_data", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "max_long_data_size": { - "cli": "--max-long-data-size=#", - "default": "16777216 (16M) >= MariaDB 10.2.4, 4194304 (4M) <= MariaDB 10.2.3, >= MariaDB 10.1.7, 1048576 (1M) <= MariaDB 10.1.6", - "dynamic": false, - "name": "max_long_data_size", - "range": { - "from": 1024, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "max_long_data_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "max_password_errors": { - "cli": "--max-password-errors=#", - "default": "4294967295", - "dynamic": true, - "name": "max_password_errors", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "max_password_errors", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "max_prepared_stmt_count": { - "cli": "--max-prepared-stmt-count=#", - "default": "16382", - "dynamic": true, - "name": "max_prepared_stmt_count", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "max_prepared_stmt_count", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_max_prepared_stmt_count", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "max_recursive_iterations": { - "cli": "--max-recursive-iterations=#", - "default": "4294967295", - "dynamic": true, - "name": "max_recursive_iterations", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "max_recursive_iterations", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "max_rowid_filter_size": { - "cli": "--max-rowid-filter-size=#", - "default": "131072", - "dynamic": true, - "name": "max_rowid_filter_size", - "range": { - "from": 1024, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "max_rowid_filter_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "max_seeks_for_key": { - "cli": "--max-seeks-for-key=#", - "dynamic": true, - "name": "max_seeks_for_key", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "max_seeks_for_key", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_max_seeks_for_key", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "max_session_mem_used": { - "cli": "--max-session-mem-used=#", - "default": "9223372036854775807 (8192 PB)", - "dynamic": true, - "name": "max_session_mem_used", - "range": { - "from": 8192, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "max_session_mem_used", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "max_sort_length": { - "cli": "--max-sort-length=#", - "default": "1024", - "dynamic": true, - "name": "max_sort_length", - "range": { - "from": 4, - "to": 8388608 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "max_sort_length", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_max_sort_length", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "max_sp_recursion_depth": { - "cli": "--max-sp-recursion-depth[=#]", - "default": "0", - "dynamic": true, - "name": "max_sp_recursion_depth", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "max_sp_recursion_depth", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_max_sp_recursion_depth", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "max_statement_time": { - "cli": "--max-statement-time[=#]", - "default": "0.000000 >= MariaDB 10.1.13, 0 <= MariaDB 10.1.12", - "dynamic": true, - "name": "max_statement_time", - "range": { - "from": 0, - "to": "upwards" - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "max_statement_time", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "max_tmp_tables": { - "name": "max_tmp_tables", - "ids": [ - { - "anchor": "max_tmp_tables", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "max_user_connections": { - "cli": "--max-user-connections=#", - "default": "0", - "name": "max_user_connections", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "max_user_connections", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_max_user_connections", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "max_write_lock_count": { - "cli": "--max-write-lock-count=#", - "name": "max_write_lock_count", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "max_write_lock_count", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_max_write_lock_count", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "metadata_locks_cache_size": { - "cli": "--metadata-locks-cache-size=#", - "default": "1024", - "dynamic": false, - "name": "metadata_locks_cache_size", - "range": { - "from": 1, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "metadata_locks_cache_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_metadata_locks_cache_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "metadata_locks_hash_instances": { - "cli": "--metadata-locks-hash-instances=#", - "default": "8", - "dynamic": false, - "name": "metadata_locks_hash_instances", - "range": { - "from": 1, - "to": 1024 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "metadata_locks_hash_instances", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_metadata_locks_hash_instances", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "min_examined_row_limit": { - "cli": "--min-examined-row-limit=#", - "default": "0", - "dynamic": true, - "name": "min_examined_row_limit", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "min_examined_row_limit", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_min_examined_row_limit", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "mrr_buffer_size": { - "cli": "--mrr-buffer-size=#", - "default": "262144", - "dynamic": true, - "name": "mrr_buffer_size", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "mrr_buffer_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "multi_range_count": { - "cli": "--multi-range-count=#", - "default": "256", - "dynamic": true, - "name": "multi_range_count", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "multi_range_count", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_multi_range_count", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "mysql56_temporal_format": { - "cli": "--mysql56-temporal-format", - "default": "ON", - "dynamic": true, - "name": "mysql56_temporal_format", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "mysql56_temporal_format", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "named_pipe": { - "cli": "--named-pipe[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "name": "named_pipe", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "named_pipe", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_named_pipe", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "net_buffer_length": { - "cli": "--net-buffer-length=#", - "default": "16384", - "dynamic": true, - "name": "net_buffer_length", - "range": { - "from": 1024, - "to": 1048576 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "net_buffer_length", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_net_buffer_length", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "net_read_timeout": { - "cli": "--net-read-timeout=#", - "default": "30", - "dynamic": true, - "name": "net_read_timeout", - "range": { - "from": 1, - "to": "upwards" - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "net_read_timeout", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_net_read_timeout", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "net_retry_count": { - "cli": "--net-retry-count=#", - "default": "10", - "dynamic": true, - "name": "net_retry_count", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "net_retry_count", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_net_retry_count", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "net_write_timeout": { - "cli": "--net-write-timeout=#", - "default": "60", - "dynamic": true, - "name": "net_write_timeout", - "range": { - "from": 1, - "to": "upwards" - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "net_write_timeout", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_net_write_timeout", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "old": { - "cli": "--old[={OFF|ON}]", - "default": "OFF", - "name": "old", - "type": "boolean", - "ids": [ - { - "anchor": "old", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_old", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "old_alter_table": { - "cli": "--old-alter-table[={OFF|ON}]", - "default": "0", - "dynamic": true, - "name": "old_alter_table", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "old_alter_table", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_old_alter_table", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "old_mode": { - "cli": "--old-mode", - "default": "(empty string)", - "dynamic": true, - "name": "old_mode", - "scope": [ - "global", - "session" - ], - "type": "string", - "validValues": [], - "ids": [ - { - "anchor": "old_mode", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "old_passwords": { - "cli": "--old-passwords=value", - "default": "0", - "dynamic": true, - "name": "old_passwords", - "scope": [ - "global", - "session" - ], - "validValues": [ - "0", - "2" - ], - "ids": [ - { - "anchor": "old_passwords", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_old_passwords", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "open_files_limit": { - "cli": "--open-files-limit=count", - "dynamic": false, - "name": "open_files_limit", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "open_files_limit", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_open_files_limit", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "optimizer_prune_level": { - "default": "1", - "dynamic": true, - "name": "optimizer_prune_level", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "ids": [ - { - "anchor": "optimizer_prune_level", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_optimizer_prune_level", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "optimizer_search_depth": { - "default": "62", - "dynamic": true, - "name": "optimizer_search_depth", - "range": { - "from": 0 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "optimizer_search_depth", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_optimizer_search_depth", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "optimizer_selectivity_sampling_limit": { - "cli": "optimizer-selectivity-sampling-limit[=#]", - "default": "100", - "dynamic": true, - "name": "optimizer_selectivity_sampling_limit", - "range": { - "from": 10, - "to": "upwards" - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "optimizer_selectivity_sampling_limit", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "optimizer_switch": { - "cli": "--optimizer-switch=value", - "dynamic": true, - "name": "optimizer_switch", - "scope": [ - "global", - "session" - ], - "ids": [ - { - "anchor": "optimizer_switch", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_optimizer_switch", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "optimizer_use_condition_selectivity": { - "cli": "--optimizer-use-condition-selectivity=#", - "default": "4 (>= MariaDB 10.4.1), 1 (<= MariaDB 10.4.0)", - "dynamic": true, - "name": "optimizer_use_condition_selectivity", - "range": { - "from": 1, - "to": 5 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "optimizer_use_condition_selectivity", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "optimizer_trace": { - "cli": "--optimizer-trace=value", - "dynamic": true, - "name": "optimizer_trace", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "optimizer_trace", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_optimizer_trace", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "optimizer_trace_max_mem_size": { - "cli": "--optimizer-trace-max-mem-size=#", - "dynamic": true, - "name": "optimizer_trace_max_mem_size", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "optimizer_trace_max_mem_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_optimizer_trace_max_mem_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "pid_file": { - "cli": "--pid-file=file_name", - "dynamic": false, - "name": "pid_file", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - { - "anchor": "pid_file", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_pid_file", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "plugin_dir": { - "cli": "--plugin-dir=path", - "default": "BASEDIR/lib/plugin", - "dynamic": false, - "name": "plugin_dir", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - { - "anchor": "plugin_dir", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_plugin_dir", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "plugin_maturity": { - "cli": "--plugin-maturity=level", - "default": "One less than the server maturity (>= MariaDB 10.3.3), unknown (<= MariaDB 10.3.2)", - "dynamic": false, - "name": "plugin_maturity", - "scope": [ - "global" - ], - "validValues": [ - "unknown", - "experimental", - "alpha", - "beta", - "gamma", - "stable" - ], - "ids": [ - { - "anchor": "plugin_maturity", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "port": { - "cli": "--port=port_num", - "default": "3306", - "dynamic": false, - "name": "port", - "range": { - "from": 0, - "to": 65535 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "port", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "option_mysqld_port", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - }, - { - "anchor": "sysvar_port", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "preload_buffer_size": { - "cli": "--preload-buffer-size=#", - "default": "32768", - "dynamic": true, - "name": "preload_buffer_size", - "range": { - "from": 1024, - "to": 1073741824 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "preload_buffer_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_preload_buffer_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "profiling": { - "default": "OFF", - "dynamic": true, - "name": "profiling", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "profiling", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "profiling_history_size": { - "cli": "--profiling-history-size=#", - "default": "15", - "dynamic": true, - "name": "profiling_history_size", - "range": { - "from": 0, - "to": 100 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "profiling_history_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "progress_report_time": { - "cli": "--progress-report-time=#", - "default": "56 before MariaDB 5.5.39 and MariaDB 10.0.10, 5 as of MariaDB 5.5.40 and MariaDB 10.0.11", - "dynamic": true, - "name": "progress_report_time", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "progress_report_time", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "protocol_version": { - "dynamic": false, - "name": "protocol_version", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "protocol_version", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_protocol_version", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "proxy_protocol_networks": { - "cli": "--proxy-protocol-networks=value", - "default": "(empty)", - "dynamic": false, - "name": "proxy_protocol_networks", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "proxy_protocol_networks", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "proxy_user": { - "dynamic": false, - "name": "proxy_user", - "scope": [ - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "proxy_user", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_proxy_user", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "pseudo_slave_mode": { - "dynamic": true, - "name": "pseudo_slave_mode", - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "pseudo_slave_mode", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_pseudo_slave_mode", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "pseudo_thread_id": { - "dynamic": true, - "name": "pseudo_thread_id", - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "pseudo_thread_id", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_pseudo_thread_id", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "query_alloc_block_size": { - "cli": "--query-alloc-block-size=#", - "dynamic": true, - "name": "query_alloc_block_size", - "range": { - "from": 1024, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "query_alloc_block_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_query_alloc_block_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "query_cache_limit": { - "cli": "--query-cache-limit=#", - "default": "1048576", - "dynamic": true, - "name": "query_cache_limit", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "query_cache_limit", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_query_cache_limit", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "query_cache_min_res_unit": { - "cli": "--query-cache-min-res-unit=#", - "default": "4096", - "dynamic": true, - "name": "query_cache_min_res_unit", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "query_cache_min_res_unit", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_query_cache_min_res_unit", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "query_cache_size": { - "cli": "--query-cache-size=#", - "dynamic": true, - "name": "query_cache_size", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "query_cache_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_query_cache_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "query_cache_strip_comments": { - "cli": "query-cache-strip-comments", - "default": "OFF", - "dynamic": true, - "name": "query_cache_strip_comments", - "scope": [ - "session", - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "query_cache_strip_comments", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "query_cache_type": { - "cli": "--query-cache-type=#", - "default": "0", - "dynamic": true, - "name": "query_cache_type", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "0", - "OFF", - "1", - "ON", - "2", - "DEMAND" - ], - "ids": [ - { - "anchor": "query_cache_type", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_query_cache_type", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "query_cache_wlock_invalidate": { - "cli": "--query-cache-wlock-invalidate[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "query_cache_wlock_invalidate", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "query_cache_wlock_invalidate", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_query_cache_wlock_invalidate", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "query_prealloc_size": { - "cli": "--query-prealloc-size=#", - "dynamic": true, - "name": "query_prealloc_size", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "query_prealloc_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_query_prealloc_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "rand_seed1": { - "dynamic": true, - "name": "rand_seed1", - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "rand_seed1", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_rand_seed1", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "rand_seed2": { - "name": "rand_seed2", - "ids": [ - { - "anchor": "rand_seed2", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "range_alloc_block_size": { - "cli": "--range-alloc-block-size=#", - "default": "4096", - "dynamic": true, - "name": "range_alloc_block_size", - "range": { - "from": 4096, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "range_alloc_block_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_range_alloc_block_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "read_buffer_size": { - "cli": "--read-buffer-size=#", - "default": "131072", - "dynamic": true, - "name": "read_buffer_size", - "range": { - "from": 8200, - "to": 2147479552 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "read_buffer_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_read_buffer_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "read_only": { - "cli": "--read-only[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "read_only", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "read_only", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_read_only", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "read_rnd_buffer_size": { - "cli": "--read-rnd-buffer-size=#", - "default": "262144", - "dynamic": true, - "name": "read_rnd_buffer_size", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "read_rnd_buffer_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_read_rnd_buffer_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "rowid_merge_buff_size": { - "cli": "--rowid-merge-buff-size=#", - "default": "8388608", - "dynamic": true, - "name": "rowid_merge_buff_size", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "rowid_merge_buff_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "rpl_recovery_rank": { - "name": "rpl_recovery_rank", - "ids": [ - { - "anchor": "rpl_recovery_rank", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "safe_show_database": { - "cli": "--safe-show-database (until MySQL 4.1.1)", - "dynamic": true, - "name": "safe_show_database", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "safe_show_database", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "secure_auth": { - "cli": "--secure-auth[={OFF|ON}]", - "default": "1", - "dynamic": true, - "name": "secure_auth", - "scope": [ - "global" - ], - "type": "boolean", - "validValues": [ - "ON" - ], - "ids": [ - { - "anchor": "secure_auth", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_secure_auth", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "secure_file_priv": { - "cli": "--secure-path-priv=path", - "default": "platform specific", - "dynamic": false, - "name": "secure_file_priv", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "empty string", - "dirname", - "NULL" - ], - "ids": [ - { - "anchor": "secure_file_priv", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_secure_file_priv", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "secure_timestamp": { - "cli": "--secure-timestamp=value", - "default": "NO", - "dynamic": false, - "name": "secure_timestamp", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "secure_timestamp", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "session_track_schema": { - "default": "ON", - "dynamic": true, - "name": "session_track_schema", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "session_track_schema", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_session_track_schema", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "session_track_state_change": { - "default": "OFF", - "dynamic": true, - "name": "session_track_state_change", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "session_track_state_change", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_session_track_state_change", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "session_track_system_variables": { - "cli": "--session-track-system-variables=value", - "default": "time_z1e, autocommit, character_set_client, character_set_results, character_set_c1necti1", - "dynamic": true, - "name": "session_track_system_variables", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "session_track_system_variables", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_session_track_system_variables", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "session_track_transaction_info": { - "cli": "--session-track-transaction-info=value", - "default": "OFF", - "dynamic": true, - "name": "session_track_transaction_info", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "OFF", - "STATE", - "CHARACTERISTICS" - ], - "ids": [ - { - "anchor": "session_track_transaction_info", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_session_track_transaction_info", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "shared_memory": { - "cli": "--shared-memory[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "name": "shared_memory", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "shared_memory", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_shared_memory", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "shared_memory_base_name": { - "cli": "--shared-memory-base-name=name", - "default": "MYSQL", - "dynamic": false, - "name": "shared_memory_base_name", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "shared_memory_base_name", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_shared_memory_base_name", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "skip_external_locking": { - "cli": "--skip-external-locking[={OFF|ON}]", - "default": "1", - "dynamic": false, - "name": "skip_external_locking", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "skip_external_locking", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_skip_external_locking", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "skip_name_resolve": { - "cli": "--skip-name-resolve[={OFF|ON}]", - "default": "0", - "dynamic": false, - "name": "skip_name_resolve", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "skip_name_resolve", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_skip_name_resolve", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "skip_networking": { - "cli": "--skip-networking[={OFF|ON}]", - "default": "0", - "dynamic": false, - "name": "skip_networking", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "skip_networking", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_skip_networking", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "skip_show_database": { - "cli": "--skip-show-database", - "dynamic": false, - "name": "skip_show_database", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "skip_show_database", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "option_mysqld_skip-show-database", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - }, - { - "anchor": "sysvar_skip_show_database", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "slow_launch_time": { - "cli": "--slow-launch-time=#", - "default": "2", - "dynamic": true, - "name": "slow_launch_time", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "slow_launch_time", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_slow_launch_time", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "slow_query_log": { - "cli": "--slow-query-log[={OFF|ON}]", - "default": "0", - "dynamic": true, - "name": "slow_query_log", - "type": "boolean", - "ids": [ - { - "anchor": "slow_query_log", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_slow_query_log", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "slow_query_log_file": { - "cli": "--slow-query-log-file=file_name", - "default": "host_name-slow.log", - "dynamic": true, - "name": "slow_query_log_file", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - { - "anchor": "slow_query_log_file", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_slow_query_log_file", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "socket": { - "cli": "--socket={file_name|pipe_name}", - "dynamic": false, - "name": "socket", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "socket", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "option_mysqld_socket", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - }, - { - "anchor": "sysvar_socket", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "sort_buffer_size": { - "cli": "--sort-buffer-size=#", - "dynamic": true, - "name": "sort_buffer_size", - "range": { - "from": 32768 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sort_buffer_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_sort_buffer_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "sql_auto_is_null": { - "default": "0", - "dynamic": true, - "name": "sql_auto_is_null", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sql_auto_is_null", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_sql_auto_is_null", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "sql_big_selects": { - "default": "1", - "dynamic": true, - "name": "sql_big_selects", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sql_big_selects", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_sql_big_selects", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "sql_big_tables": { - "cli": "--sql-big-tables", - "default": "0", - "dynamic": true, - "name": "sql_big_tables", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sql_big_tables", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "sql_buffer_result": { - "default": "0", - "dynamic": true, - "name": "sql_buffer_result", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sql_buffer_result", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_sql_buffer_result", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "sql_log_off": { - "default": "0", - "dynamic": true, - "name": "sql_log_off", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "validValues": [ - "OFF", - "ON" - ], - "ids": [ - { - "anchor": "sql_log_off", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_sql_log_off", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "sql_log_update": { - "name": "sql_log_update", - "ids": [ - { - "anchor": "sql_log_update", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "sql_low_priority_updates": { - "cli": "--sql-low-priority-updates", - "default": "0", - "dynamic": true, - "name": "sql_low_priority_updates", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sql_low_priority_updates", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "sql_max_join_size": { - "name": "sql_max_join_size", - "ids": [ - { - "anchor": "sql_max_join_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "sql_mode": { - "cli": "--sql-mode=name", - "dynamic": true, - "name": "sql_mode", - "scope": [ - "global", - "session" - ], - "type": "set", - "ids": [ - { - "anchor": "sql_mode", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "option_mysqld_sql-mode", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - }, - { - "anchor": "sysvar_sql_mode", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "sql_notes": { - "default": "1", - "dynamic": true, - "name": "sql_notes", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sql_notes", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_sql_notes", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "sql_quote_show_create": { - "default": "1", - "dynamic": true, - "name": "sql_quote_show_create", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sql_quote_show_create", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_sql_quote_show_create", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "sql_safe_updates": { - "default": "OFF", - "dynamic": true, - "name": "sql_safe_updates", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sql_safe_updates", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_sql_safe_updates", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "sql_select_limit": { - "dynamic": true, - "name": "sql_select_limit", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sql_select_limit", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_sql_select_limit", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "sql_warnings": { - "default": "0", - "dynamic": true, - "name": "sql_warnings", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sql_warnings", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_sql_warnings", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "storage_engine": { - "name": "storage_engine", - "ids": [ - { - "anchor": "storage_engine", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "standard_compliant_cte": { - "cli": "--standard-compliant-cte={0|1}", - "default": "ON", - "dynamic": true, - "name": "standard_compliant_cte", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "standard_compliant_cte", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "stored_program_cache": { - "cli": "--stored-program-cache=#", - "default": "256", - "dynamic": true, - "name": "stored_program_cache", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "stored_program_cache", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_stored_program_cache", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "strict_password_validation": { - "cli": "--strict-password-validation", - "default": "ON", - "dynamic": true, - "name": "strict_password_validation", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "strict_password_validation", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "sync_frm": { - "cli": "--sync-frm", - "default": "TRUE", - "dynamic": true, - "name": "sync_frm", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sync_frm", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "system_time_zone": { - "dynamic": false, - "name": "system_time_zone", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "system_time_zone", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_system_time_zone", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "table_definition_cache": { - "cli": "--table-definition-cache=#", - "dynamic": true, - "name": "table_definition_cache", - "range": { - "from": 400 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "table_definition_cache", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_table_definition_cache", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "table_lock_wait_timeout": { - "cli": "--table-lock-wait-timeout=#", - "default": "50", - "dynamic": true, - "name": "table_lock_wait_timeout", - "range": { - "from": 1, - "to": 1073741824 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "table_lock_wait_timeout", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "table_open_cache": { - "cli": "--table-open-cache=#", - "dynamic": true, - "name": "table_open_cache", - "range": { - "from": 1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "table_open_cache", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_table_open_cache", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "table_open_cache_instances": { - "cli": "--table-open-cache-instances=#", - "dynamic": false, - "name": "table_open_cache_instances", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "table_open_cache_instances", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_table_open_cache_instances", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "table_type": { - "name": "table_type", - "ids": [ - { - "anchor": "table_type", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "tcp_keepalive_interval": { - "cli": "--tcp-keepalive-interval=#", - "default": "0", - "dynamic": true, - "name": "tcp_keepalive_interval", - "range": { - "from": 0, - "to": 2147483 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "tcp_keepalive_interval", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "tcp_keepalive_probes": { - "cli": "--tcp-keepalive-probes=#", - "default": "0", - "dynamic": true, - "name": "tcp_keepalive_probes", - "range": { - "from": 0, - "to": 2147483 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "tcp_keepalive_probes", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "tcp_keepalive_time": { - "cli": "--tcp-keepalive-time=#", - "default": "0", - "dynamic": true, - "name": "tcp_keepalive_time", - "range": { - "from": 0, - "to": 2147483 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "tcp_keepalive_time", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "tcp_nodelay": { - "cli": "--tcp-nodelay={0|1}", - "default": "1", - "dynamic": true, - "name": "tcp_nodelay", - "scope": [ - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "tcp_nodelay", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "thread_cache_size": { - "cli": "--thread-cache-size=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": true, - "name": "thread_cache_size", - "range": { - "from": 0, - "to": 16384 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "thread_cache_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_thread_cache_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "thread_concurrency": { - "cli": "--thread-concurrency=#", - "default": "10", - "dynamic": false, - "name": "thread_concurrency", - "range": { - "from": 1, - "to": 512 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "thread_concurrency", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "thread_stack": { - "cli": "--thread-stack=#", - "dynamic": false, - "name": "thread_stack", - "range": { - "from": 131072, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "thread_stack", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_thread_stack", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "time_format": { - "name": "time_format", - "ids": [ - { - "anchor": "time_format", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "time_zone": { - "dynamic": true, - "name": "time_zone", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "time_zone", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_time_zone", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "timed_mutexes": { - "cli": "--timed-mutexes", - "default": "OFF", - "dynamic": true, - "name": "timed_mutexes", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "timed_mutexes", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "timestamp": { - "dynamic": true, - "name": "timestamp", - "scope": [ - "session" - ], - "type": "numeric", - "ids": [ - { - "anchor": "timestamp", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_timestamp", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "tmp_disk_table_size": { - "cli": "--tmp-disk-table-size=#", - "default": "18446744073709551615 (max unsigned integer, no limit)", - "dynamic": true, - "name": "tmp_disk_table_size", - "range": { - "from": 1024, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "tmp_disk_table_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "tmp_memory_table_size": { - "cli": "--tmp-memory-table-size=#", - "name": "tmp_memory_table_size", - "ids": [ - { - "anchor": "tmp_memory_table_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "tmp_table_size": { - "cli": "--tmp-table-size=#", - "default": "16777216", - "dynamic": true, - "name": "tmp_table_size", - "range": { - "from": 1024 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "tmp_table_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_tmp_table_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "tmpdir": { - "cli": "--tmpdir=path or -t path", - "dynamic": false, - "name": "tmpdir", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - { - "anchor": "tmpdir", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "option_mysqld_tmpdir", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - }, - { - "anchor": "sysvar_tmpdir", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "transaction_alloc_block_size": { - "cli": "--transaction-alloc-block-size=#", - "default": "8192", - "dynamic": true, - "name": "transaction_alloc_block_size", - "range": { - "from": 1024 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "transaction_alloc_block_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_transaction_alloc_block_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "transaction_prealloc_size": { - "cli": "--transaction-prealloc-size=#", - "default": "4096", - "dynamic": true, - "name": "transaction_prealloc_size", - "range": { - "from": 1024 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "transaction_prealloc_size", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_transaction_prealloc_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "tx_isolation": { - "default": "REPEATABLE-READ", - "dynamic": true, - "name": "tx_isolation", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "READ-UNCOMMITTED", - "READ-COMMITTED", - "REPEATABLE-READ", - "SERIALIZABLE" - ], - "ids": [ - { - "anchor": "tx_isolation", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_tx_isolation", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "tx_read_only": { - "default": "0", - "dynamic": true, - "name": "tx_read_only", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "tx_read_only", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_tx_read_only", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "unique_checks": { - "default": "1", - "dynamic": true, - "name": "unique_checks", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "unique_checks", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_unique_checks", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "updatable_views_with_limit": { - "default": "1", - "dynamic": true, - "name": "updatable_views_with_limit", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "updatable_views_with_limit", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_updatable_views_with_limit", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "use_stat_tables": { - "cli": "--use-stat-tables=mode", - "default": "preferably_for_queries (>= MariaDB 10.4.1), never (<= MariaDB 10.4.0)", - "dynamic": true, - "name": "use_stat_tables", - "scope": [ - "global", - "session" - ], - "ids": [ - { - "anchor": "use_stat_tables", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "version": { - "cli": "-V, --version[=name] (>= MariaDB 10.2.1), --version (<= MariaDB 10.2.0)", - "dynamic": false, - "name": "version", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "version", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "version_comment": { - "dynamic": false, - "name": "version_comment", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "version_comment", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_version_comment", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "version_compile_machine": { - "dynamic": false, - "name": "version_compile_machine", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "version_compile_machine", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_version_compile_machine", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "version_compile_os": { - "dynamic": false, - "name": "version_compile_os", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "version_compile_os", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_version_compile_os", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "version_malloc_library": { - "dynamic": false, - "name": "version_malloc_library", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "version_malloc_library", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "version_source_revision": { - "dynamic": false, - "name": "version_source_revision", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "version_source_revision", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "wait_timeout": { - "cli": "--wait-timeout=#", - "default": "28800", - "dynamic": true, - "name": "wait_timeout", - "range": { - "from": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "wait_timeout", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - }, - { - "anchor": "sysvar_wait_timeout", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "warning_count": { - "dynamic": false, - "name": "warning_count", - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "warning_count", - "url": "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/" - } - ] - }, - "Sphinx_error": { - "name": "Sphinx_error", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sphinx_error", - "url": "https://mariadb.com/kb/en/library/documentation/sphinx-status-variables/" - } - ] - }, - "Sphinx_time": { - "name": "Sphinx_time", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sphinx_time", - "url": "https://mariadb.com/kb/en/library/documentation/sphinx-status-variables/" - } - ] - }, - "Sphinx_total": { - "name": "Sphinx_total", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sphinx_total", - "url": "https://mariadb.com/kb/en/library/documentation/sphinx-status-variables/" - } - ] - }, - "Sphinx_total_found": { - "name": "Sphinx_total_found", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sphinx_total_found", - "url": "https://mariadb.com/kb/en/library/documentation/sphinx-status-variables/" - } - ] - }, - "Sphinx_word_count": { - "name": "Sphinx_word_count", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sphinx_word_count", - "url": "https://mariadb.com/kb/en/library/documentation/sphinx-status-variables/" - } - ] - }, - "Sphinx_words": { - "name": "Sphinx_words", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sphinx_words", - "url": "https://mariadb.com/kb/en/library/documentation/sphinx-status-variables/" - } - ] - }, - "Spider_direct_aggregate": { - "name": "Spider_direct_aggregate", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_direct_aggregate", - "url": "https://mariadb.com/kb/en/library/documentation/spider-server-status-variables/" - } - ] - }, - "Spider_direct_order_limit": { - "name": "Spider_direct_order_limit", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_direct_order_limit", - "url": "https://mariadb.com/kb/en/library/documentation/spider-server-status-variables/" - } - ] - }, - "Spider_mon_table_cache_version": { - "name": "Spider_mon_table_cache_version", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_mon_table_cache_version", - "url": "https://mariadb.com/kb/en/library/documentation/spider-server-status-variables/" - } - ] - }, - "Spider_mon_table_cache_version_req": { - "name": "Spider_mon_table_cache_version_req", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_mon_table_cache_version_req", - "url": "https://mariadb.com/kb/en/library/documentation/spider-server-status-variables/" - } - ] - }, - "spider_auto_increment_mode": { - "dynamic": true, - "name": "spider_auto_increment_mode", - "range": { - "from": -1, - "to": 3 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_auto_increment_mode", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_bgs_first_read": { - "dynamic": true, - "name": "spider_bgs_first_read", - "range": { - "from": -1, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_bgs_first_read", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_bgs_mode": { - "dynamic": true, - "name": "spider_bgs_mode", - "range": { - "from": -1, - "to": 3 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_bgs_mode", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_bgs_second_read": { - "dynamic": true, - "name": "spider_bgs_second_read", - "range": { - "from": -1, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_bgs_second_read", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_bka_engine": { - "dynamic": true, - "name": "spider_bka_engine", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "spider_bka_engine", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_bka_mode": { - "dynamic": true, - "name": "spider_bka_mode", - "range": { - "from": -1, - "to": 2 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_bka_mode", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_bka_table_name_type": { - "dynamic": true, - "name": "spider_bka_table_name_type", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_bka_table_name_type", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_block_size": { - "dynamic": true, - "name": "spider_block_size", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_block_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_bulk_size": { - "dynamic": true, - "name": "spider_bulk_size", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_bulk_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_bulk_update_mode": { - "dynamic": true, - "name": "spider_bulk_update_mode", - "range": { - "from": -1, - "to": 2 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_bulk_update_mode", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_bulk_update_size": { - "dynamic": true, - "name": "spider_bulk_update_size", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_bulk_update_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_casual_read": { - "dynamic": true, - "name": "spider_casual_read", - "range": { - "from": -1, - "to": 63 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_casual_read", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_conn_recycle_mode": { - "dynamic": true, - "name": "spider_conn_recycle_mode", - "range": { - "from": 0, - "to": 2 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_conn_recycle_mode", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_conn_recycle_strict": { - "dynamic": true, - "name": "spider_conn_recycle_strict", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_conn_recycle_strict", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_conn_wait_timeout": { - "dynamic": true, - "name": "spider_conn_wait_timeout", - "range": { - "from": 0, - "to": 1000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_conn_wait_timeout", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_connect_error_interval": { - "default": "1", - "dynamic": true, - "name": "spider_connect_error_interval", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_connect_error_interval", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_connect_mutex": { - "dynamic": true, - "name": "spider_connect_mutex", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "spider_connect_mutex", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_connect_retry_count": { - "dynamic": true, - "name": "spider_connect_retry_count", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_connect_retry_count", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_connect_retry_interval": { - "dynamic": true, - "name": "spider_connect_retry_interval", - "range": { - "from": -1, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_connect_retry_interval", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_connect_timeout": { - "dynamic": true, - "name": "spider_connect_timeout", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_connect_timeout", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_crd_bg_mode": { - "dynamic": true, - "name": "spider_crd_bg_mode", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_crd_bg_mode", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_crd_interval": { - "dynamic": true, - "name": "spider_crd_interval", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_crd_interval", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_crd_mode": { - "dynamic": true, - "name": "spider_crd_mode", - "range": { - "from": -1, - "to": 3 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_crd_mode", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_crd_sync": { - "dynamic": true, - "name": "spider_crd_sync", - "range": { - "from": -1, - "to": 2 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_crd_sync", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_crd_type": { - "dynamic": true, - "name": "spider_crd_type", - "range": { - "from": -1, - "to": 2 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_crd_type", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_crd_weight": { - "dynamic": true, - "name": "spider_crd_weight", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_crd_weight", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_delete_all_rows_type": { - "dynamic": true, - "name": "spider_delete_all_rows_type", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_delete_all_rows_type", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_direct_dup_insert": { - "dynamic": true, - "name": "spider_direct_dup_insert", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_direct_dup_insert", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_direct_order_limit": { - "dynamic": true, - "name": "spider_direct_order_limit", - "range": { - "from": -1, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_direct_order_limit", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_dry_access": { - "default": "OFF", - "dynamic": false, - "name": "spider_dry_access", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "spider_dry_access", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_error_read_mode": { - "dynamic": true, - "name": "spider_error_read_mode", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_error_read_mode", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_error_write_mode": { - "dynamic": true, - "name": "spider_error_write_mode", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_error_write_mode", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_first_read": { - "dynamic": true, - "name": "spider_first_read", - "range": { - "from": -1, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_first_read", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_force_commit": { - "dynamic": true, - "name": "spider_force_commit", - "range": { - "from": 0, - "to": 2 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_force_commit", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_general_log": { - "dynamic": true, - "name": "spider_general_log", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "spider_general_log", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_index_hint_pushdown": { - "dynamic": true, - "name": "spider_index_hint_pushdown", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "spider_index_hint_pushdown", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_init_sql_alloc_size": { - "dynamic": true, - "name": "spider_init_sql_alloc_size", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_init_sql_alloc_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_internal_limit": { - "dynamic": true, - "name": "spider_internal_limit", - "range": { - "from": -1, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_internal_limit", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_internal_offset": { - "dynamic": true, - "name": "spider_internal_offset", - "range": { - "from": -1, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_internal_offset", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_internal_optimize": { - "dynamic": true, - "name": "spider_internal_optimize", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_internal_optimize", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_internal_optimize_local": { - "name": "spider_internal_optimize_local", - "range": { - "from": -1, - "to": 1 - }, - "ids": [ - { - "anchor": "spider_internal_optimize_local", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_internal_sql_log_off": { - "dynamic": true, - "name": "spider_internal_sql_log_off", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "spider_internal_sql_log_off", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_internal_unlock": { - "name": "spider_internal_unlock", - "type": "boolean", - "ids": [ - { - "anchor": "spider_internal_unlock", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_internal_xa": { - "dynamic": true, - "name": "spider_internal_xa", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "spider_internal_xa", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_internal_xa_id_type": { - "dynamic": true, - "name": "spider_internal_xa_id_type", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_internal_xa_id_type", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_internal_xa_snapshot": { - "dynamic": true, - "name": "spider_internal_xa_snapshot", - "range": { - "from": 0, - "to": 3 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_internal_xa_snapshot", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_load_crd_at_startup": { - "dynamic": true, - "name": "spider_load_crd_at_startup", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "spider_load_crd_at_startup", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_load_sts_at_startup": { - "dynamic": true, - "name": "spider_load_sts_at_startup", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "spider_load_sts_at_startup", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_local_lock_table": { - "dynamic": true, - "name": "spider_local_lock_table", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "spider_local_lock_table", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_lock_exchange": { - "dynamic": true, - "name": "spider_lock_exchange", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "spider_lock_exchange", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_log_result_error_with_sql": { - "dynamic": true, - "name": "spider_log_result_error_with_sql", - "range": { - "from": 0, - "to": 3 - }, - "type": "integer", - "ids": [ - { - "anchor": "spider_log_result_error_with_sql", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_log_result_errors": { - "dynamic": true, - "name": "spider_log_result_errors", - "range": { - "from": 0, - "to": 4 - }, - "type": "integer", - "ids": [ - { - "anchor": "spider_log_result_errors", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_low_mem_read": { - "default": "-1", - "name": "spider_low_mem_read", - "range": { - "from": -1, - "to": 1 - }, - "type": "integer", - "ids": [ - { - "anchor": "spider_low_mem_read", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_max_connections": { - "dynamic": true, - "name": "spider_max_connections", - "range": { - "from": 0, - "to": 99999 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_max_connections", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_max_order": { - "dynamic": true, - "name": "spider_max_order", - "range": { - "from": -1, - "to": 32767 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_max_order", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_multi_split_read": { - "dynamic": true, - "name": "spider_multi_split_read", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_multi_split_read", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_net_read_timeout": { - "dynamic": true, - "name": "spider_net_read_timeout", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_net_read_timeout", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_net_write_timeout": { - "dynamic": true, - "name": "spider_net_write_timeout", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_net_write_timeout", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_ping_interval_at_trx_start": { - "dynamic": true, - "name": "spider_ping_interval_at_trx_start", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_ping_interval_at_trx_start", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_quick_mode": { - "dynamic": true, - "name": "spider_quick_mode", - "range": { - "from": -1, - "to": 3 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_quick_mode", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_quick_page_size": { - "dynamic": true, - "name": "spider_quick_page_size", - "range": { - "from": -1, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_quick_page_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_read_only_mode": { - "dynamic": true, - "name": "spider_read_only_mode", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_read_only_mode", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_remote_access_charset": { - "dynamic": true, - "name": "spider_remote_access_charset", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "spider_remote_access_charset", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_remote_autocommit": { - "dynamic": true, - "name": "spider_remote_autocommit", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_remote_autocommit", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_remote_default_database": { - "dynamic": true, - "name": "spider_remote_default_database", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "spider_remote_default_database", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_remote_sql_log_off": { - "dynamic": true, - "name": "spider_remote_sql_log_off", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_remote_sql_log_off", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_remote_time_zone": { - "dynamic": true, - "name": "spider_remote_time_zone", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "spider_remote_time_zone", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_remote_trx_isolation": { - "dynamic": true, - "name": "spider_remote_trx_isolation", - "range": { - "from": -1, - "to": 3 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_remote_trx_isolation", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_reset_sql_alloc": { - "dynamic": true, - "name": "spider_reset_sql_alloc", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_reset_sql_alloc", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_same_server_link": { - "dynamic": true, - "name": "spider_same_server_link", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "spider_same_server_link", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_second_read": { - "dynamic": true, - "name": "spider_second_read", - "range": { - "from": -1, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_second_read", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_select_column_mode": { - "dynamic": true, - "name": "spider_select_column_mode", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_select_column_mode", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_selupd_lock_mode": { - "dynamic": true, - "name": "spider_selupd_lock_mode", - "range": { - "from": -1, - "to": 2 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_selupd_lock_mode", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_semi_split_read": { - "dynamic": true, - "name": "spider_semi_split_read", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_semi_split_read", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_semi_split_read_limit": { - "dynamic": true, - "name": "spider_semi_split_read_limit", - "range": { - "from": -1, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_semi_split_read_limit", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_semi_table_lock": { - "dynamic": true, - "name": "spider_semi_table_lock", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_semi_table_lock", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_semi_table_lock_connection": { - "dynamic": true, - "name": "spider_semi_table_lock_connection", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_semi_table_lock_connection", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_semi_trx": { - "dynamic": true, - "name": "spider_semi_trx", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "spider_semi_trx", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_semi_trx_isolation": { - "dynamic": true, - "name": "spider_semi_trx_isolation", - "range": { - "from": -1, - "to": 3 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_semi_trx_isolation", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_skip_default_condition": { - "dynamic": true, - "name": "spider_skip_default_condition", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_skip_default_condition", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_skip_parallel_search": { - "cli": "--spider-skip-parallel-search=#", - "dynamic": true, - "name": "spider_skip_parallel_search", - "range": { - "from": -1, - "to": 3 - }, - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_skip_parallel_search", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_split_read": { - "dynamic": true, - "name": "spider_split_read", - "range": { - "from": -1, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_split_read", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_store_last_crd": { - "cli": "--spider-store-last-crd=#", - "dynamic": true, - "name": "spider_store_last_crd", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_store_last_crd", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_store_last_sts": { - "cli": "--spider-store-last-sts=#", - "dynamic": true, - "name": "spider_store_last_sts", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_store_last_sts", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_sts_bg_mode": { - "dynamic": true, - "name": "spider_sts_bg_mode", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_sts_bg_mode", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_sts_interval": { - "dynamic": true, - "name": "spider_sts_interval", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_sts_interval", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_sts_mode": { - "dynamic": true, - "name": "spider_sts_mode", - "range": { - "from": -1, - "to": 2 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_sts_mode", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_sts_sync": { - "dynamic": true, - "name": "spider_sts_sync", - "range": { - "from": -1, - "to": 2 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_sts_sync", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_support_xa": { - "dynamic": false, - "name": "spider_support_xa", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "spider_support_xa", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_sync_autocommit": { - "dynamic": true, - "name": "spider_sync_autocommit", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "spider_sync_autocommit", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_sync_time_zone": { - "dynamic": true, - "name": "spider_sync_time_zone", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "spider_sync_time_zone", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_sync_trx_isolation": { - "dynamic": true, - "name": "spider_sync_trx_isolation", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "spider_sync_trx_isolation", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_table_crd_thread_count": { - "cli": "--spider-table-crd-thread-count=#", - "default": "10", - "dynamic": false, - "name": "spider_table_crd_thread_count", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_table_crd_thread_count", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_table_init_error_interval": { - "default": "1", - "dynamic": true, - "name": "spider_table_init_error_interval", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_table_init_error_interval", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_table_sts_thread_count": { - "cli": "--spider-table-sts-thread-count=#", - "default": "10", - "dynamic": false, - "name": "spider_table_sts_thread_count", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_table_sts_thread_count", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_udf_ct_bulk_insert_interval": { - "dynamic": true, - "name": "spider_udf_ct_bulk_insert_interval", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_udf_ct_bulk_insert_interval", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_udf_ct_bulk_insert_rows": { - "dynamic": true, - "name": "spider_udf_ct_bulk_insert_rows", - "range": { - "from": -1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_udf_ct_bulk_insert_rows", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_udf_ds_bulk_insert_rows": { - "dynamic": true, - "name": "spider_udf_ds_bulk_insert_rows", - "range": { - "from": -1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_udf_ds_bulk_insert_rows", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_udf_ds_table_loop_mode": { - "dynamic": true, - "name": "spider_udf_ds_table_loop_mode", - "range": { - "from": -1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_udf_ds_table_loop_mode", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_udf_ds_use_real_table": { - "dynamic": true, - "name": "spider_udf_ds_use_real_table", - "range": { - "from": -1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_udf_ds_use_real_table", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_udf_table_lock_mutex_count": { - "default": "20", - "dynamic": false, - "name": "spider_udf_table_lock_mutex_count", - "range": { - "from": 1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_udf_table_lock_mutex_count", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_udf_table_mon_mutex_count": { - "default": "20", - "dynamic": false, - "name": "spider_udf_table_mon_mutex_count", - "range": { - "from": 1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_udf_table_mon_mutex_count", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_use_all_conns_snapshot": { - "dynamic": true, - "name": "spider_use_all_conns_snapshot", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "spider_use_all_conns_snapshot", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_use_consistent_snapshot": { - "dynamic": true, - "name": "spider_use_consistent_snapshot", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "spider_use_consistent_snapshot", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_use_default_database": { - "dynamic": true, - "name": "spider_use_default_database", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "spider_use_default_database", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_use_flash_logs": { - "dynamic": true, - "name": "spider_use_flash_logs", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "spider_use_flash_logs", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_use_handler": { - "name": "spider_use_handler", - "ids": [ - { - "anchor": "spider_use_handler", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_use_pushdown_udf": { - "dynamic": true, - "name": "spider_use_pushdown_udf", - "range": { - "from": -1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_use_pushdown_udf", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_use_snapshot_with_flush_tables": { - "dynamic": true, - "name": "spider_use_snapshot_with_flush_tables", - "range": { - "from": 0 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_use_snapshot_with_flush_tables", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_use_table_charset": { - "dynamic": true, - "name": "spider_use_table_charset", - "range": { - "from": -1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_use_table_charset", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_version": { - "dynamic": false, - "name": "spider_version", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "spider_version", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "spider_xa_register_mode": { - "default": "1", - "dynamic": true, - "name": "spider_xa_register_mode", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "spider_xa_register_mode", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/" - } - ] - }, - "Ssl_accept_renegotiates": { - "name": "Ssl_accept_renegotiates", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "ssl_accept_renegotiates", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/" - } - ] - }, - "Ssl_accepts": { - "name": "Ssl_accepts", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "ssl_accepts", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/" - } - ] - }, - "Ssl_callback_cache_hits": { - "name": "Ssl_callback_cache_hits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "ssl_callback_cache_hits", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/" - } - ] - }, - "Ssl_cipher": { - "name": "Ssl_cipher", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "ssl_cipher", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/" - } - ] - }, - "Ssl_cipher_list": { - "name": "Ssl_cipher_list", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "ssl_cipher_list", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/" - } - ] - }, - "Ssl_client_connects": { - "name": "Ssl_client_connects", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "ssl_client_connects", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/" - } - ] - }, - "Ssl_connect_renegotiates": { - "name": "Ssl_connect_renegotiates", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "ssl_connect_renegotiates", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/" - } - ] - }, - "Ssl_ctx_verify_depth": { - "name": "Ssl_ctx_verify_depth", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "ssl_ctx_verify_depth", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/" - } - ] - }, - "Ssl_ctx_verify_mode": { - "name": "Ssl_ctx_verify_mode", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "ssl_ctx_verify_mode", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/" - } - ] - }, - "Ssl_default_timeout": { - "name": "Ssl_default_timeout", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "ssl_default_timeout", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/" - } - ] - }, - "Ssl_finished_accepts": { - "name": "Ssl_finished_accepts", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "ssl_finished_accepts", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/" - } - ] - }, - "Ssl_finished_connects": { - "name": "Ssl_finished_connects", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "ssl_finished_connects", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/" - } - ] - }, - "Ssl_server_not_after": { - "name": "Ssl_server_not_after", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "ssl_server_not_after", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/" - } - ] - }, - "Ssl_server_not_before": { - "name": "Ssl_server_not_before", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "ssl_server_not_before", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/" - } - ] - }, - "Ssl_session_cache_hits": { - "name": "Ssl_session_cache_hits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "ssl_session_cache_hits", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/" - } - ] - }, - "Ssl_session_cache_misses": { - "name": "Ssl_session_cache_misses", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "ssl_session_cache_misses", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/" - } - ] - }, - "Ssl_session_cache_mode": { - "name": "Ssl_session_cache_mode", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "ssl_session_cache_mode", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/" - } - ] - }, - "Ssl_session_cache_overflows": { - "name": "Ssl_session_cache_overflows", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "ssl_session_cache_overflows", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/" - } - ] - }, - "Ssl_session_cache_size": { - "name": "Ssl_session_cache_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "ssl_session_cache_size", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/" - } - ] - }, - "Ssl_session_cache_timeouts": { - "name": "Ssl_session_cache_timeouts", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "ssl_session_cache_timeouts", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/" - } - ] - }, - "Ssl_sessions_reused": { - "name": "Ssl_sessions_reused", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "ssl_sessions_reused", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/" - } - ] - }, - "Ssl_used_session_cache_entries": { - "name": "Ssl_used_session_cache_entries", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "ssl_used_session_cache_entries", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/" - } - ] - }, - "Ssl_verify_depth": { - "name": "Ssl_verify_depth", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "ssl_verify_depth", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/" - } - ] - }, - "Ssl_verify_mode": { - "name": "Ssl_verify_mode", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "ssl_verify_mode", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/" - } - ] - }, - "Ssl_version": { - "name": "Ssl_version", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "ssl_version", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/" - } - ] - }, - "have_openssl": { - "dynamic": false, - "name": "have_openssl", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "have_openssl", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-system-variables/" - } - ] - }, - "have_ssl": { - "dynamic": false, - "name": "have_ssl", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "YES", - "DISABLED" - ], - "ids": [ - { - "anchor": "have_ssl", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-system-variables/" - }, - { - "anchor": "sysvar_have_ssl", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "ssl_ca": { - "cli": "--ssl-ca=file_name", - "name": "ssl_ca", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - { - "anchor": "ssl_ca", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-system-variables/" - }, - { - "anchor": "sysvar_ssl_ca", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "ssl_capath": { - "name": "ssl_capath", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - { - "anchor": "ssl_capath", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-system-variables/" - }, - { - "anchor": "sysvar_ssl_capath", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "ssl_cert": { - "name": "ssl_cert", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - { - "anchor": "ssl_cert", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-system-variables/" - }, - { - "anchor": "sysvar_ssl_cert", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "ssl_cipher": { - "cli": "--ssl-cipher=name", - "name": "ssl_cipher", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "ssl_cipher", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-system-variables/" - }, - { - "anchor": "sysvar_ssl_cipher", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "ssl_crl": { - "name": "ssl_crl", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - { - "anchor": "ssl_crl", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-system-variables/" - }, - { - "anchor": "sysvar_ssl_crl", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "ssl_crlpath": { - "name": "ssl_crlpath", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - { - "anchor": "ssl_crlpath", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-system-variables/" - }, - { - "anchor": "sysvar_ssl_crlpath", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "ssl_key": { - "name": "ssl_key", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "ssl_key", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-system-variables/" - }, - { - "anchor": "sysvar_ssl_key", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "tls_version": { - "name": "tls_version", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "tls_version", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-system-variables/" - }, - { - "anchor": "sysvar_tls_version", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "version_ssl_library": { - "default": "None", - "dynamic": false, - "name": "version_ssl_library", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "version_ssl_library", - "url": "https://mariadb.com/kb/en/library/documentation/ssltls-system-variables/" - } - ] - }, - "extra_max_connections": { - "cli": "--extra-max-connections=#", - "default": "1", - "dynamic": true, - "name": "extra_max_connections", - "range": { - "from": 1, - "to": 100000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "extra_max_connections", - "url": "https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/" - } - ] - }, - "extra_port": { - "cli": "--extra-port=#", - "default": "0", - "dynamic": false, - "name": "extra_port", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "extra_port", - "url": "https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/" - } - ] - }, - "thread_handling": { - "cli": "--thread-handling=name", - "default": "one-thread-per-connection", - "dynamic": false, - "name": "thread_handling", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "no-threads", - "one-thread-per-connection", - "pool-of-threads" - ], - "ids": [ - { - "anchor": "thread_handling", - "url": "https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/" - }, - { - "anchor": "sysvar_thread_handling", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "thread_pool_dedicated_listener": { - "cli": "thread-pool-dedicated-listener={0|1}", - "default": "0", - "dynamic": false, - "name": "thread_pool_dedicated_listener", - "scope": [], - "type": "boolean", - "ids": [ - { - "anchor": "thread_pool_dedicated_listener", - "url": "https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/" - } - ] - }, - "thread_pool_exact_stats": { - "cli": "thread-pool-exact-stats={0|1}", - "default": "0", - "dynamic": false, - "name": "thread_pool_exact_stats", - "scope": [], - "type": "boolean", - "ids": [ - { - "anchor": "thread_pool_exact_stats", - "url": "https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/" - } - ] - }, - "thread_pool_idle_timeout": { - "cli": "thread-pool-idle-timeout=#", - "default": "60", - "dynamic": true, - "name": "thread_pool_idle_timeout", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "thread_pool_idle_timeout", - "url": "https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/" - } - ] - }, - "thread_pool_max_threads": { - "cli": "thread-pool-max-threads=#", - "default": "65536 (>= MariaDB 10.2.4), 1000 (<= MariaDB 10.2.3, >= MariaDB 10.1), 500 (<= MariaDB 10.0)", - "dynamic": true, - "name": "thread_pool_max_threads", - "range": { - "from": 1, - "to": 65536 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "thread_pool_max_threads", - "url": "https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/" - } - ] - }, - "thread_pool_min_threads": { - "cli": "thread-pool-min-threads=#", - "default": "1", - "name": "thread_pool_min_threads", - "type": "integer", - "ids": [ - { - "anchor": "thread_pool_min_threads", - "url": "https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/" - } - ] - }, - "thread_pool_oversubscribe": { - "default": "3", - "dynamic": true, - "name": "thread_pool_oversubscribe", - "range": { - "from": 1, - "to": 65536 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "thread_pool_oversubscribe", - "url": "https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/" - } - ] - }, - "thread_pool_prio_kickup_timer": { - "default": "1000", - "dynamic": true, - "name": "thread_pool_prio_kickup_timer", - "range": { - "from": 0 - }, - "type": "integer", - "ids": [ - { - "anchor": "thread_pool_prio_kickup_timer", - "url": "https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/" - }, - { - "anchor": "sysvar_thread_pool_prio_kickup_timer", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "thread_pool_priority": { - "cli": "--thread-pool-priority=#", - "default": "auto", - "name": "thread_pool_priority", - "scope": [ - "global", - "connection" - ], - "validValues": [ - "high", - "low", - "auto" - ], - "ids": [ - { - "anchor": "thread_pool_priority", - "url": "https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/" - } - ] - }, - "thread_pool_size": { - "cli": "--thread-pool-size=#", - "name": "thread_pool_size", - "range": { - "from": 1, - "to": 128 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "thread_pool_size", - "url": "https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/" - }, - { - "anchor": "sysvar_thread_pool_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "thread_pool_stall_limit": { - "cli": "--thread-pool-stall-limit=#", - "dynamic": true, - "name": "thread_pool_stall_limit", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "thread_pool_stall_limit", - "url": "https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/" - }, - { - "anchor": "sysvar_thread_pool_stall_limit", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "Threadpool_idle_threads": { - "name": "Threadpool_idle_threads", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "threadpool_idle_threads", - "url": "https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/" - } - ] - }, - "Threadpool_threads": { - "name": "Threadpool_threads", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "threadpool_threads", - "url": "https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/" - } - ] - }, - "Tokudb_basement_deserialization_fixed_key": { - "name": "Tokudb_basement_deserialization_fixed_key", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_basement_deserialization_fixed_key", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_basement_deserialization_variable_key": { - "name": "Tokudb_basement_deserialization_variable_key", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_basement_deserialization_variable_key", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_basements_decompressed_for_write": { - "name": "Tokudb_basements_decompressed_for_write", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_basements_decompressed_for_write", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_basements_decompressed_prefetch": { - "name": "Tokudb_basements_decompressed_prefetch", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_basements_decompressed_prefetch", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_basements_decompressed_prelocked_range": { - "name": "Tokudb_basements_decompressed_prelocked_range", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_basements_decompressed_prelocked_range", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_basements_decompressed_target_query": { - "name": "Tokudb_basements_decompressed_target_query", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_basements_decompressed_target_query", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_basements_fetched_for_write": { - "name": "Tokudb_basements_fetched_for_write", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_basements_fetched_for_write", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_basements_fetched_for_write_bytes": { - "name": "Tokudb_basements_fetched_for_write_bytes", - "ids": [ - { - "anchor": "tokudb_basements_fetched_for_write_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_basements_fetched_for_write_seconds": { - "name": "Tokudb_basements_fetched_for_write_seconds", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_basements_fetched_for_write_seconds", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_basements_fetched_prefetch": { - "name": "Tokudb_basements_fetched_prefetch", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_basements_fetched_prefetch", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_basements_fetched_prefetch_bytes": { - "name": "Tokudb_basements_fetched_prefetch_bytes", - "ids": [ - { - "anchor": "tokudb_basements_fetched_prefetch_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_basements_fetched_prefetch_seconds": { - "name": "Tokudb_basements_fetched_prefetch_seconds", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_basements_fetched_prefetch_seconds", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_basements_fetched_prelocked_range": { - "name": "Tokudb_basements_fetched_prelocked_range", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_basements_fetched_prelocked_range", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_basements_fetched_prelocked_range_bytes": { - "name": "Tokudb_basements_fetched_prelocked_range_bytes", - "ids": [ - { - "anchor": "tokudb_basements_fetched_prelocked_range_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_basements_fetched_prelocked_range_seconds": { - "name": "Tokudb_basements_fetched_prelocked_range_seconds", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_basements_fetched_prelocked_range_seconds", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_basements_fetched_target_query": { - "name": "Tokudb_basements_fetched_target_query", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_basements_fetched_target_query", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_basements_fetched_target_query_bytes": { - "name": "Tokudb_basements_fetched_target_query_bytes", - "ids": [ - { - "anchor": "tokudb_basements_fetched_target_query_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_basements_fetched_target_query_seconds": { - "name": "Tokudb_basements_fetched_target_query_seconds", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_basements_fetched_target_query_seconds", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_broadcase_messages_injected_at_root": { - "name": "Tokudb_broadcase_messages_injected_at_root", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_broadcase_messages_injected_at_root", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_buffers_decompressed_for_write": { - "name": "Tokudb_buffers_decompressed_for_write", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_buffers_decompressed_for_write", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_buffers_decompressed_prefetch": { - "name": "Tokudb_buffers_decompressed_prefetch", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_buffers_decompressed_prefetch", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_buffers_decompressed_prelocked_range": { - "name": "Tokudb_buffers_decompressed_prelocked_range", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_buffers_decompressed_prelocked_range", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_buffers_decompressed_target_query": { - "name": "Tokudb_buffers_decompressed_target_query", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_buffers_decompressed_target_query", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_buffers_fetched_for_write": { - "name": "Tokudb_buffers_fetched_for_write", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_buffers_fetched_for_write", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_buffers_fetched_for_write_bytes": { - "name": "Tokudb_buffers_fetched_for_write_bytes", - "ids": [ - { - "anchor": "tokudb_buffers_fetched_for_write_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_buffers_fetched_for_write_seconds": { - "name": "Tokudb_buffers_fetched_for_write_seconds", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_buffers_fetched_for_write_seconds", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_buffers_fetched_prefetch": { - "name": "Tokudb_buffers_fetched_prefetch", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_buffers_fetched_prefetch", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_buffers_fetched_prefetch_bytes": { - "name": "Tokudb_buffers_fetched_prefetch_bytes", - "ids": [ - { - "anchor": "tokudb_buffers_fetched_prefetch_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_buffers_fetched_prefetch_seconds": { - "name": "Tokudb_buffers_fetched_prefetch_seconds", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_buffers_fetched_prefetch_seconds", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_buffers_fetched_prelocked_range": { - "name": "Tokudb_buffers_fetched_prelocked_range", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_buffers_fetched_prelocked_range", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_buffers_fetched_prelocked_range_bytes": { - "name": "Tokudb_buffers_fetched_prelocked_range_bytes", - "ids": [ - { - "anchor": "tokudb_buffers_fetched_prelocked_range_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_buffers_fetched_prelocked_range_seconds": { - "name": "Tokudb_buffers_fetched_prelocked_range_seconds", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_buffers_fetched_prelocked_range_seconds", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_buffers_fetched_target_query": { - "name": "Tokudb_buffers_fetched_target_query", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_buffers_fetched_target_query", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_buffers_fetched_target_query_bytes": { - "name": "Tokudb_buffers_fetched_target_query_bytes", - "ids": [ - { - "anchor": "tokudb_buffers_fetched_target_query_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_buffers_fetched_target_query_seconds": { - "name": "Tokudb_buffers_fetched_target_query_seconds", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_buffers_fetched_target_query_seconds", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_cachetable_cleaner_executions": { - "name": "Tokudb_cachetable_cleaner_executions", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_cachetable_cleaner_executions", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_cachetable_cleaner_iterations": { - "name": "Tokudb_cachetable_cleaner_iterations", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_cachetable_cleaner_iterations", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_cachetable_cleaner_period": { - "name": "Tokudb_cachetable_cleaner_period", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_cachetable_cleaner_period", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_cachetable_evictions": { - "name": "Tokudb_cachetable_evictions", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_cachetable_evictions", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_cachetable_long_wait_pressure_count": { - "name": "Tokudb_cachetable_long_wait_pressure_count", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_cachetable_long_wait_pressure_count", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_cachetable_long_wait_pressure_time": { - "name": "Tokudb_cachetable_long_wait_pressure_time", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_cachetable_long_wait_pressure_time", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_cachetable_miss": { - "name": "Tokudb_cachetable_miss", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_cachetable_miss", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_cachetable_miss_time": { - "name": "Tokudb_cachetable_miss_time", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_cachetable_miss_time", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_cachetable_prefetches": { - "name": "Tokudb_cachetable_prefetches", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_cachetable_prefetches", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_cachetable_size_cachepressure": { - "name": "Tokudb_cachetable_size_cachepressure", - "type": "byte", - "ids": [ - { - "anchor": "tokudb_cachetable_size_cachepressure", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_cachetable_size_cloned": { - "name": "Tokudb_cachetable_size_cloned", - "type": "byte", - "ids": [ - { - "anchor": "tokudb_cachetable_size_cloned", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_cachetable_size_current": { - "name": "Tokudb_cachetable_size_current", - "type": "byte", - "ids": [ - { - "anchor": "tokudb_cachetable_size_current", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_cachetable_size_leaf": { - "name": "Tokudb_cachetable_size_leaf", - "type": "byte", - "ids": [ - { - "anchor": "tokudb_cachetable_size_leaf", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_cachetable_size_limit": { - "name": "Tokudb_cachetable_size_limit", - "type": "byte", - "ids": [ - { - "anchor": "tokudb_cachetable_size_limit", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_cachetable_size_nonleaf": { - "name": "Tokudb_cachetable_size_nonleaf", - "type": "byte", - "ids": [ - { - "anchor": "tokudb_cachetable_size_nonleaf", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_cachetable_size_rollback": { - "name": "Tokudb_cachetable_size_rollback", - "type": "byte", - "ids": [ - { - "anchor": "tokudb_cachetable_size_rollback", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_cachetable_size_writing": { - "name": "Tokudb_cachetable_size_writing", - "type": "byte", - "ids": [ - { - "anchor": "tokudb_cachetable_size_writing", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_cachetable_wait_pressure_count": { - "name": "Tokudb_cachetable_wait_pressure_count", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_cachetable_wait_pressure_count", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_cachetable_wait_pressure_time": { - "name": "Tokudb_cachetable_wait_pressure_time", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_cachetable_wait_pressure_time", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_checkpoint_begin_time": { - "name": "Tokudb_checkpoint_begin_time", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_checkpoint_begin_time", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_checkpoint_duration": { - "name": "Tokudb_checkpoint_duration", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_checkpoint_duration", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_checkpoint_duration_last": { - "name": "Tokudb_checkpoint_duration_last", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_checkpoint_duration_last", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_checkpoint_failed": { - "name": "Tokudb_checkpoint_failed", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_checkpoint_failed", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_checkpoint_last_began": { - "name": "Tokudb_checkpoint_last_began", - "ids": [ - { - "anchor": "tokudb_checkpoint_last_began", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_checkpoint_last_complete_began": { - "name": "Tokudb_checkpoint_last_complete_began", - "ids": [ - { - "anchor": "tokudb_checkpoint_last_complete_began", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_checkpoint_last_complete_ended": { - "name": "Tokudb_checkpoint_last_complete_ended", - "ids": [ - { - "anchor": "tokudb_checkpoint_last_complete_ended", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_checkpoint_long_begin_count": { - "name": "Tokudb_checkpoint_long_begin_count", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_checkpoint_long_begin_count", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_checkpoint_long_begin_time": { - "name": "Tokudb_checkpoint_long_begin_time", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_checkpoint_long_begin_time", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_checkpoint_period": { - "name": "Tokudb_checkpoint_period", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_checkpoint_period", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_checkpoint_taken": { - "name": "Tokudb_checkpoint_taken", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_checkpoint_taken", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_cursor_skip_deleted_leaf_entry": { - "name": "Tokudb_cursor_skip_deleted_leaf_entry", - "ids": [ - { - "anchor": "tokudb_cursor_skip_deleted_leaf_entry", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_db_closes": { - "name": "Tokudb_db_closes", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_db_closes", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_db_open_current": { - "name": "Tokudb_db_open_current", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_db_open_current", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_db_open_max": { - "name": "Tokudb_db_open_max", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_db_open_max", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_db_opens": { - "name": "Tokudb_db_opens", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_db_opens", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_descriptor_set": { - "name": "Tokudb_descriptor_set", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_descriptor_set", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_dictionary_broadcast_updates": { - "name": "Tokudb_dictionary_broadcast_updates", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_dictionary_broadcast_updates", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_dictionary_updates": { - "name": "Tokudb_dictionary_updates", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_dictionary_updates", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_filesystem_fsync_num": { - "name": "Tokudb_filesystem_fsync_num", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_filesystem_fsync_num", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_filesystem_fsync_time": { - "name": "Tokudb_filesystem_fsync_time", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_filesystem_fsync_time", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_filesystem_long_fsync_num": { - "name": "Tokudb_filesystem_long_fsync_num", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_filesystem_long_fsync_num", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_filesystem_long_fsync_time": { - "name": "Tokudb_filesystem_long_fsync_time", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_filesystem_long_fsync_time", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_filesystem_threads_blocked_by_full_disk": { - "name": "Tokudb_filesystem_threads_blocked_by_full_disk", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_filesystem_threads_blocked_by_full_disk", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_leaf_compression_to_memory_seconds": { - "name": "Tokudb_leaf_compression_to_memory_seconds", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_leaf_compression_to_memory_seconds", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_leaf_decompression_to_memory_seconds": { - "name": "Tokudb_leaf_decompression_to_memory_seconds", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_leaf_decompression_to_memory_seconds", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_leaf_deserialization_to_memory_seconds": { - "name": "Tokudb_leaf_deserialization_to_memory_seconds", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_leaf_deserialization_to_memory_seconds", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_leaf_node_compression_ratio": { - "name": "Tokudb_leaf_node_compression_ratio", - "ids": [ - { - "anchor": "tokudb_leaf_node_compression_ratio", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_leaf_node_full_evictions": { - "name": "Tokudb_leaf_node_full_evictions", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_leaf_node_full_evictions", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_leaf_node_full_evictions_bytes": { - "name": "Tokudb_leaf_node_full_evictions_bytes", - "ids": [ - { - "anchor": "tokudb_leaf_node_full_evictions_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_leaf_node_partial_evictions": { - "name": "Tokudb_leaf_node_partial_evictions", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_leaf_node_partial_evictions", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_leaf_node_partial_evictions_bytes": { - "name": "Tokudb_leaf_node_partial_evictions_bytes", - "ids": [ - { - "anchor": "tokudb_leaf_node_partial_evictions_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_leaf_nodes_created": { - "name": "Tokudb_leaf_nodes_created", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_leaf_nodes_created", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_leaf_nodes_destroyed": { - "name": "Tokudb_leaf_nodes_destroyed", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_leaf_nodes_destroyed", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_leaf_nodes_flushed_checkpoint": { - "name": "Tokudb_leaf_nodes_flushed_checkpoint", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_leaf_nodes_flushed_checkpoint", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_leaf_nodes_flushed_checkpoint_bytes": { - "name": "Tokudb_leaf_nodes_flushed_checkpoint_bytes", - "type": "byte", - "ids": [ - { - "anchor": "tokudb_leaf_nodes_flushed_checkpoint_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_leaf_nodes_flushed_checkpoint_seconds": { - "name": "Tokudb_leaf_nodes_flushed_checkpoint_seconds", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_leaf_nodes_flushed_checkpoint_seconds", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_leaf_nodes_flushed_checkpoint_uncompressed_bytes": { - "name": "Tokudb_leaf_nodes_flushed_checkpoint_uncompressed_bytes", - "ids": [ - { - "anchor": "tokudb_leaf_nodes_flushed_checkpoint_uncompressed_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_leaf_nodes_flushed_not_checkpoint": { - "name": "Tokudb_leaf_nodes_flushed_not_checkpoint", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_leaf_nodes_flushed_not_checkpoint", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_leaf_nodes_flushed_not_checkpoint_bytes": { - "name": "Tokudb_leaf_nodes_flushed_not_checkpoint_bytes", - "type": "byte", - "ids": [ - { - "anchor": "tokudb_leaf_nodes_flushed_not_checkpoint_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_leaf_nodes_flushed_not_checkpoint_seconds": { - "name": "Tokudb_leaf_nodes_flushed_not_checkpoint_seconds", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_leaf_nodes_flushed_not_checkpoint_seconds", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_leaf_nodes_flushed_not_checkpoint_uncompressed_bytes": { - "name": "Tokudb_leaf_nodes_flushed_not_checkpoint_uncompressed_bytes", - "ids": [ - { - "anchor": "tokudb_leaf_nodes_flushed_not_checkpoint_uncompressed_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_leaf_serialization_to_memory_seconds": { - "name": "Tokudb_leaf_serialization_to_memory_seconds", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_leaf_serialization_to_memory_seconds", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_loader_num_created": { - "name": "Tokudb_loader_num_created", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_loader_num_created", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_loader_num_current": { - "name": "Tokudb_loader_num_current", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_loader_num_current", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_loader_num_max": { - "name": "Tokudb_loader_num_max", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_loader_num_max", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_locktree_escalation_num": { - "name": "Tokudb_locktree_escalation_num", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_locktree_escalation_num", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_locktree_escalation_seconds": { - "name": "Tokudb_locktree_escalation_seconds", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_locktree_escalation_seconds", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_locktree_latest_post_escalation_memory_size": { - "name": "Tokudb_locktree_latest_post_escalation_memory_size", - "type": "byte", - "ids": [ - { - "anchor": "tokudb_locktree_latest_post_escalation_memory_size", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_locktree_long_wait_count": { - "name": "Tokudb_locktree_long_wait_count", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_locktree_long_wait_count", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_locktree_long_wait_escalation_count": { - "name": "Tokudb_locktree_long_wait_escalation_count", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_locktree_long_wait_escalation_count", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_locktree_long_wait_escalation_time": { - "name": "Tokudb_locktree_long_wait_escalation_time", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_locktree_long_wait_escalation_time", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_locktree_long_wait_time": { - "name": "Tokudb_locktree_long_wait_time", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_locktree_long_wait_time", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_locktree_memory_size": { - "name": "Tokudb_locktree_memory_size", - "type": "byte", - "ids": [ - { - "anchor": "tokudb_locktree_memory_size", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_locktree_memory_size_limit": { - "name": "Tokudb_locktree_memory_size_limit", - "type": "byte", - "ids": [ - { - "anchor": "tokudb_locktree_memory_size_limit", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_locktree_open_current": { - "name": "Tokudb_locktree_open_current", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_locktree_open_current", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_locktree_pending_lock_requests": { - "name": "Tokudb_locktree_pending_lock_requests", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_locktree_pending_lock_requests", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_locktree_sto_eligible_num": { - "name": "Tokudb_locktree_sto_eligible_num", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_locktree_sto_eligible_num", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_locktree_sto_ended_num": { - "name": "Tokudb_locktree_sto_ended_num", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_locktree_sto_ended_num", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_locktree_sto_ended_seconds": { - "name": "Tokudb_locktree_sto_ended_seconds", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_locktree_sto_ended_seconds", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_locktree_timeout_count": { - "name": "Tokudb_locktree_timeout_count", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_locktree_timeout_count", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_locktree_wait_count": { - "name": "Tokudb_locktree_wait_count", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_locktree_wait_count", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_locktree_wait_escalation_count": { - "name": "Tokudb_locktree_wait_escalation_count", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_locktree_wait_escalation_count", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_locktree_wait_escalation_time": { - "name": "Tokudb_locktree_wait_escalation_time", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_locktree_wait_escalation_time", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_locktree_wait_time": { - "name": "Tokudb_locktree_wait_time", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_locktree_wait_time", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_logger_wait_long": { - "name": "Tokudb_logger_wait_long", - "ids": [ - { - "anchor": "tokudb_logger_wait_long", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_logger_writes": { - "name": "Tokudb_logger_writes", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_logger_writes", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_logger_writes_bytes": { - "name": "Tokudb_logger_writes_bytes", - "ids": [ - { - "anchor": "tokudb_logger_writes_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_logger_writes_seconds": { - "name": "Tokudb_logger_writes_seconds", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_logger_writes_seconds", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_logger_writes_uncompressed_bytes": { - "name": "Tokudb_logger_writes_uncompressed_bytes", - "ids": [ - { - "anchor": "tokudb_logger_writes_uncompressed_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_mem_estimated_maximum_memory_footprint": { - "name": "Tokudb_mem_estimated_maximum_memory_footprint", - "ids": [ - { - "anchor": "tokudb_mem_estimated_maximum_memory_footprint", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_messages_flushed_from_h1_to_leaves_bytes": { - "name": "Tokudb_messages_flushed_from_h1_to_leaves_bytes", - "ids": [ - { - "anchor": "tokudb_messages_flushed_from_h1_to_leaves_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_messages_ignored_by_leaf_due_to_msn": { - "name": "Tokudb_messages_ignored_by_leaf_due_to_msn", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_messages_ignored_by_leaf_due_to_msn", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_messages_in_trees_estimate_bytes": { - "name": "Tokudb_messages_in_trees_estimate_bytes", - "ids": [ - { - "anchor": "tokudb_messages_in_trees_estimate_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_messages_injected_at_root": { - "name": "Tokudb_messages_injected_at_root", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_messages_injected_at_root", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_messages_injected_at_root_bytes": { - "name": "Tokudb_messages_injected_at_root_bytes", - "ids": [ - { - "anchor": "tokudb_messages_injected_at_root_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_nonleaf_compression_to_memory_seconds": { - "name": "Tokudb_nonleaf_compression_to_memory_seconds", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_nonleaf_compression_to_memory_seconds", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_nonleaf_decompression_to_memory_seconds": { - "name": "Tokudb_nonleaf_decompression_to_memory_seconds", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_nonleaf_decompression_to_memory_seconds", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_nonleaf_deserialization_to_memory_seconds": { - "name": "Tokudb_nonleaf_deserialization_to_memory_seconds", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_nonleaf_deserialization_to_memory_seconds", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_nonleaf_node_compression_ratio": { - "name": "Tokudb_nonleaf_node_compression_ratio", - "ids": [ - { - "anchor": "tokudb_nonleaf_node_compression_ratio", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_nonleaf_node_full_evictions": { - "name": "Tokudb_nonleaf_node_full_evictions", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_nonleaf_node_full_evictions", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_nonleaf_node_full_evictions_bytes": { - "name": "Tokudb_nonleaf_node_full_evictions_bytes", - "ids": [ - { - "anchor": "tokudb_nonleaf_node_full_evictions_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_nonleaf_node_partial_evictions": { - "name": "Tokudb_nonleaf_node_partial_evictions", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_nonleaf_node_partial_evictions", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_nonleaf_node_partial_evictions_bytes": { - "name": "Tokudb_nonleaf_node_partial_evictions_bytes", - "ids": [ - { - "anchor": "tokudb_nonleaf_node_partial_evictions_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_nonleaf_nodes_created": { - "name": "Tokudb_nonleaf_nodes_created", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_nonleaf_nodes_created", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_nonleaf_nodes_destroyed": { - "name": "Tokudb_nonleaf_nodes_destroyed", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_nonleaf_nodes_destroyed", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint": { - "name": "Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_nonleaf_nodes_flushed_to_disk_checkpoint", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_bytes": { - "name": "Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_bytes", - "type": "byte", - "ids": [ - { - "anchor": "tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_seconds": { - "name": "Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_seconds", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_seconds", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_uncompressed_bytes": { - "name": "Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_uncompressed_bytes", - "ids": [ - { - "anchor": "tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_uncompressed_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint": { - "name": "Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_bytes": { - "name": "Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_bytes", - "type": "byte", - "ids": [ - { - "anchor": "tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_seconds": { - "name": "Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_seconds", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_seconds", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_uncompressed_bytes": { - "name": "Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_uncompressed_bytes", - "ids": [ - { - "anchor": "tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_uncompressed_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_nonleaf_serialization_to_memory_seconds": { - "name": "Tokudb_nonleaf_serialization_to_memory_seconds", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_nonleaf_serialization_to_memory_seconds", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_overall_node_compression_ratio": { - "name": "Tokudb_overall_node_compression_ratio", - "ids": [ - { - "anchor": "tokudb_overall_node_compression_ratio", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_pivots_fetched_for_query": { - "name": "Tokudb_pivots_fetched_for_query", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_pivots_fetched_for_query", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_pivots_fetched_for_query_bytes": { - "name": "Tokudb_pivots_fetched_for_query_bytes", - "type": "byte", - "ids": [ - { - "anchor": "tokudb_pivots_fetched_for_query_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_pivots_fetched_for_query_seconds": { - "name": "Tokudb_pivots_fetched_for_query_seconds", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_pivots_fetched_for_query_seconds", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_pivots_fetched_for_prefetch": { - "name": "Tokudb_pivots_fetched_for_prefetch", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_pivots_fetched_for_prefetch", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_pivots_fetched_for_prefetch_bytes": { - "name": "Tokudb_pivots_fetched_for_prefetch_bytes", - "type": "byte", - "ids": [ - { - "anchor": "tokudb_pivots_fetched_for_prefetch_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_pivots_fetched_for_prefetch_seconds": { - "name": "Tokudb_pivots_fetched_for_prefetch_seconds", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_pivots_fetched_for_prefetch_seconds", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_pivots_fetched_for_write": { - "name": "Tokudb_pivots_fetched_for_write", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_pivots_fetched_for_write", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_pivots_fetched_for_write_bytes": { - "name": "Tokudb_pivots_fetched_for_write_bytes", - "type": "byte", - "ids": [ - { - "anchor": "tokudb_pivots_fetched_for_write_bytes", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_pivots_fetched_for_write_seconds": { - "name": "Tokudb_pivots_fetched_for_write_seconds", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_pivots_fetched_for_write_seconds", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_promotion_h1_roots_injected_into": { - "name": "Tokudb_promotion_h1_roots_injected_into", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_promotion_h1_roots_injected_into", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_promotion_injections_at_depth_0": { - "name": "Tokudb_promotion_injections_at_depth_0", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_promotion_injections_at_depth_0", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_promotion_injections_at_depth_1": { - "name": "Tokudb_promotion_injections_at_depth_1", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_promotion_injections_at_depth_1", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_promotion_injections_at_depth_2": { - "name": "Tokudb_promotion_injections_at_depth_2", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_promotion_injections_at_depth_2", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_promotion_injections_at_depth_3": { - "name": "Tokudb_promotion_injections_at_depth_3", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_promotion_injections_at_depth_3", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_promotion_injections_lower_than_depth_3": { - "name": "Tokudb_promotion_injections_lower_than_depth_3", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_promotion_injections_lower_than_depth_3", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_promotion_leaf_roots_injected_into": { - "name": "Tokudb_promotion_leaf_roots_injected_into", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_promotion_leaf_roots_injected_into", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_promotion_roots_split": { - "name": "Tokudb_promotion_roots_split", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_promotion_roots_split", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_promotion_stopped_after_locking_child": { - "name": "Tokudb_promotion_stopped_after_locking_child", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_promotion_stopped_after_locking_child", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_promotion_stopped_at_height_1": { - "name": "Tokudb_promotion_stopped_at_height_1", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_promotion_stopped_at_height_1", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_promotion_stopped_child_locked_or_not_in_memory": { - "name": "Tokudb_promotion_stopped_child_locked_or_not_in_memory", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_promotion_stopped_child_locked_or_not_in_memory", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_promotion_stopped_child_not_fully_in_memory": { - "name": "Tokudb_promotion_stopped_child_not_fully_in_memory", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_promotion_stopped_child_not_fully_in_memory", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_promotion_stopped_nonempty_buffer": { - "name": "Tokudb_promotion_stopped_nonempty_buffer", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_promotion_stopped_nonempty_buffer", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_txn_aborts": { - "name": "Tokudb_txn_aborts", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_txn_aborts", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_txn_begin": { - "name": "Tokudb_txn_begin", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_txn_begin", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_txn_begin_read_only": { - "name": "Tokudb_txn_begin_read_only", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_txn_begin_read_only", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "Tokudb_txn_commits": { - "name": "Tokudb_txn_commits", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_txn_commits", - "url": "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/" - } - ] - }, - "tokudb_alter_print_error": { - "default": "OFF", - "dynamic": true, - "name": "tokudb_alter_print_error", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "tokudb_alter_print_error", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_analyze_time": { - "default": "5", - "dynamic": true, - "name": "tokudb_analyze_time", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "tokudb_analyze_time", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_block_size": { - "default": "4194304 (4MB)", - "dynamic": true, - "name": "tokudb_block_size", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "tokudb_block_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_bulk_fetch": { - "default": "ON", - "dynamic": true, - "name": "tokudb_bulk_fetch", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "tokudb_bulk_fetch", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_cache_size": { - "default": "Half of the total system memory", - "dynamic": false, - "name": "tokudb_cache_size", - "type": "integer", - "ids": [ - { - "anchor": "tokudb_cache_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_check_jemalloc": { - "default": "1", - "dynamic": true, - "name": "tokudb_check_jemalloc", - "scope": [ - "global" - ], - "type": "integer", - "validValues": [ - "0", - "1" - ], - "ids": [ - { - "anchor": "tokudb_check_jemalloc", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_checkpoint_lock": { - "default": "OFF", - "dynamic": true, - "name": "tokudb_checkpoint_lock", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "tokudb_checkpoint_lock", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_checkpoint_on_flush_logs": { - "default": "OFF", - "dynamic": true, - "name": "tokudb_checkpoint_on_flush_logs", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "tokudb_checkpoint_on_flush_logs", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_checkpointing_period": { - "default": "60", - "dynamic": true, - "name": "tokudb_checkpointing_period", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "tokudb_checkpointing_period", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_cleaner_iterations": { - "default": "5", - "dynamic": true, - "name": "tokudb_cleaner_iterations", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "tokudb_cleaner_iterations", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_cleaner_period": { - "default": "1", - "dynamic": true, - "name": "tokudb_cleaner_period", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "tokudb_cleaner_period", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_commit_sync": { - "default": "ON", - "dynamic": true, - "name": "tokudb_commit_sync", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "tokudb_commit_sync", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_create_index_online": { - "default": "ON", - "dynamic": true, - "name": "tokudb_create_index_online", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "tokudb_create_index_online", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_data_dir": { - "default": "Empty (the MariaDB datadir is used)", - "dynamic": false, - "name": "tokudb_data_dir", - "type": "string", - "ids": [ - { - "anchor": "tokudb_data_dir", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_debug": { - "default": "0", - "dynamic": true, - "name": "tokudb_debug", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "tokudb_debug", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_directio": { - "default": "OFF", - "dynamic": false, - "name": "tokudb_directio", - "type": "boolean", - "ids": [ - { - "anchor": "tokudb_directio", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_disable_hot_alter": { - "default": "OFF", - "dynamic": true, - "name": "tokudb_disable_hot_alter", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "tokudb_disable_hot_alter", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_disable_prefetching": { - "default": "OFF", - "dynamic": true, - "name": "tokudb_disable_prefetching", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "tokudb_disable_prefetching", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_disable_slow_alter": { - "default": "OFF", - "dynamic": true, - "name": "tokudb_disable_slow_alter", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "tokudb_disable_slow_alter", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_empty_scan": { - "default": "rl", - "dynamic": true, - "name": "tokudb_empty_scan", - "scope": [ - "global", - "session" - ], - "validValues": [ - "lr", - "rl", - "disabled" - ], - "ids": [ - { - "anchor": "tokudb_empty_scan", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_fs_reserve_percent": { - "default": "5", - "dynamic": false, - "name": "tokudb_fs_reserve_percent", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "tokudb_fs_reserve_percent", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_fsync_log_period": { - "default": "0", - "dynamic": true, - "name": "tokudb_fsync_log_period", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "tokudb_fsync_log_period", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_hide_default_row_format": { - "default": "ON", - "dynamic": true, - "name": "tokudb_hide_default_row_format", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "tokudb_hide_default_row_format", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_killed_time": { - "default": "4000", - "dynamic": true, - "name": "tokudb_killed_time", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "tokudb_killed_time", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_last_lock_timeout": { - "default": "Empty", - "dynamic": true, - "name": "tokudb_last_lock_timeout", - "scope": [ - "global", - "session" - ], - "ids": [ - { - "anchor": "tokudb_last_lock_timeout", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_load_save_space": { - "default": "ON", - "dynamic": true, - "name": "tokudb_load_save_space", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "tokudb_load_save_space", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_loader_memory_size": { - "default": "100000000 (100M)", - "dynamic": true, - "name": "tokudb_loader_memory_size", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "tokudb_loader_memory_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_lock_timeout": { - "default": "4000 (4 seconds)", - "dynamic": true, - "name": "tokudb_lock_timeout", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "tokudb_lock_timeout", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_lock_timeout_debug": { - "default": "1", - "dynamic": true, - "name": "tokudb_lock_timeout_debug", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "tokudb_lock_timeout_debug", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_log_dir": { - "default": "Empty (the MariaDB datadir is used)", - "dynamic": false, - "name": "tokudb_log_dir", - "type": "string", - "ids": [ - { - "anchor": "tokudb_log_dir", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_max_lock_memory": { - "default": "130653952", - "dynamic": false, - "name": "tokudb_max_lock_memory", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "tokudb_max_lock_memory", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_optimize_index_fraction": { - "default": "1.000000", - "dynamic": true, - "name": "tokudb_optimize_index_fraction", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "tokudb_optimize_index_fraction", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_optimize_index_name": { - "default": "None", - "dynamic": true, - "name": "tokudb_optimize_index_name", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "tokudb_optimize_index_name", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_optimize_throttle": { - "default": "0", - "dynamic": true, - "name": "tokudb_optimize_throttle", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "tokudb_optimize_throttle", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_pk_insert_mode": { - "default": "1", - "dynamic": true, - "name": "tokudb_pk_insert_mode", - "scope": [ - "global", - "session" - ], - "validValues": [ - "0", - "1", - "2" - ], - "ids": [ - { - "anchor": "tokudb_pk_insert_mode", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_prelock_empty": { - "default": "ON", - "dynamic": true, - "name": "tokudb_prelock_empty", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "tokudb_prelock_empty", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_read_block_size": { - "default": "65536 (64KB)", - "dynamic": true, - "name": "tokudb_read_block_size", - "range": { - "from": 4096, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "tokudb_read_block_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_read_buf_size": { - "default": "131072 (128KB)", - "dynamic": true, - "name": "tokudb_read_buf_size", - "range": { - "from": 0, - "to": 1048576 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "tokudb_read_buf_size", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_read_status_frequency": { - "default": "10000", - "dynamic": true, - "name": "tokudb_read_status_frequency", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "tokudb_read_status_frequency", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_row_format": { - "default": "tokudb_zlib", - "dynamic": true, - "name": "tokudb_row_format", - "scope": [ - "global", - "session" - ], - "validValues": [ - "tokudb_default", - "tokudb_fast", - "tokudb_small", - "tokudb_zlib", - "tokudb_quicklz", - "tokudb_lzma", - "tokudb_uncompressed" - ], - "ids": [ - { - "anchor": "tokudb_row_format", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_rpl_check_readonly": { - "default": "ON", - "dynamic": true, - "name": "tokudb_rpl_check_readonly", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "tokudb_rpl_check_readonly", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_rpl_lookup_rows": { - "default": "ON", - "dynamic": true, - "name": "tokudb_rpl_lookup_rows", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "tokudb_rpl_lookup_rows", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_rpl_lookup_rows_delay": { - "default": "0", - "dynamic": true, - "name": "tokudb_rpl_lookup_rows_delay", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "tokudb_rpl_lookup_rows_delay", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_rpl_unique_checks": { - "default": "ON", - "dynamic": true, - "name": "tokudb_rpl_unique_checks", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "tokudb_rpl_unique_checks", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_rpl_unique_checks_delay": { - "default": "0", - "dynamic": true, - "name": "tokudb_rpl_unique_checks_delay", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "tokudb_rpl_unique_checks_delay", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_support_xa": { - "default": "ON", - "dynamic": true, - "name": "tokudb_support_xa", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "tokudb_support_xa", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_tmp_dir": { - "default": "Empty (the MariaDB datadir is used)", - "dynamic": false, - "name": "tokudb_tmp_dir", - "type": "directory name", - "ids": [ - { - "anchor": "tokudb_tmp_dir", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_version": { - "dynamic": false, - "name": "tokudb_version", - "type": "string", - "ids": [ - { - "anchor": "tokudb_version", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "tokudb_write_status_frequency": { - "default": "1000", - "dynamic": true, - "name": "tokudb_write_status_frequency", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "tokudb_write_status_frequency", - "url": "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/" - } - ] - }, - "system_versioning_alter_history": { - "cli": "--system-versioning-alter-history=value", - "default": "ERROR", - "dynamic": true, - "name": "system_versioning_alter_history", - "scope": [ - "global", - "session" - ], - "validValues": [ - "ERROR", - "KEEP" - ], - "ids": [ - { - "anchor": "system_versioning_alter_history", - "url": "https://mariadb.com/kb/en/library/documentation/system-versioned-tables/" - } - ] - }, - "system_versioning_asof": { - "default": "DEFAULT", - "dynamic": true, - "name": "system_versioning_asof", - "scope": [ - "global", - "session" - ], - "ids": [ - { - "anchor": "system_versioning_asof", - "url": "https://mariadb.com/kb/en/library/documentation/system-versioned-tables/" - } - ] - }, - "system_versioning_innodb_algorithm_simple": { - "cli": "--system-versioning-innodb-algorithm-simple[={0|1}]", - "default": "ON", - "dynamic": true, - "name": "system_versioning_innodb_algorithm_simple", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "system_versioning_innodb_algorithm_simple", - "url": "https://mariadb.com/kb/en/library/documentation/system-versioned-tables/" - } - ] - }, - "Innodb_adaptive_hash_cells": { - "name": "Innodb_adaptive_hash_cells", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_adaptive_hash_cells", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_adaptive_hash_hash_searches": { - "name": "Innodb_adaptive_hash_hash_searches", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_adaptive_hash_hash_searches", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_adaptive_hash_heap_buffers": { - "name": "Innodb_adaptive_hash_heap_buffers", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_adaptive_hash_heap_buffers", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_adaptive_hash_non_hash_searches": { - "name": "Innodb_adaptive_hash_non_hash_searches", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_adaptive_hash_non_hash_searches", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_available_undo_logs": { - "name": "Innodb_available_undo_logs", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_available_undo_logs", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_background_log_sync": { - "name": "Innodb_background_log_sync", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_background_log_sync", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_buffer_pool_bytes_data": { - "name": "Innodb_buffer_pool_bytes_data", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_buffer_pool_bytes_data", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_buffer_pool_bytes_dirty": { - "name": "Innodb_buffer_pool_bytes_dirty", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_buffer_pool_bytes_dirty", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_buffer_pool_dump_status": { - "name": "Innodb_buffer_pool_dump_status", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "innodb_buffer_pool_dump_status", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_buffer_pool_load_incomplete": { - "name": "Innodb_buffer_pool_load_incomplete", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_buffer_pool_load_incomplete", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_buffer_pool_load_status": { - "name": "Innodb_buffer_pool_load_status", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "innodb_buffer_pool_load_status", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_buffer_pool_pages_data": { - "name": "Innodb_buffer_pool_pages_data", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_buffer_pool_pages_data", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_buffer_pool_pages_dirty": { - "name": "Innodb_buffer_pool_pages_dirty", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_buffer_pool_pages_dirty", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_buffer_pool_pages_flushed": { - "name": "Innodb_buffer_pool_pages_flushed", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_buffer_pool_pages_flushed", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_buffer_pool_pages_LRU_flushed": { - "name": "Innodb_buffer_pool_pages_LRU_flushed", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_buffer_pool_pages_lru_flushed", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_buffer_pool_pages_free": { - "name": "Innodb_buffer_pool_pages_free", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_buffer_pool_pages_free", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_buffer_pool_pages_made_not_young": { - "name": "Innodb_buffer_pool_pages_made_not_young", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_buffer_pool_pages_made_not_young", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_buffer_pool_pages_made_young": { - "name": "Innodb_buffer_pool_pages_made_young", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_buffer_pool_pages_made_young", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_buffer_pool_pages_misc": { - "name": "Innodb_buffer_pool_pages_misc", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_buffer_pool_pages_misc", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_buffer_pool_pages_old": { - "name": "Innodb_buffer_pool_pages_old", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_buffer_pool_pages_old", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_buffer_pool_pages_total": { - "name": "Innodb_buffer_pool_pages_total", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_buffer_pool_pages_total", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_buffer_pool_read_ahead": { - "name": "Innodb_buffer_pool_read_ahead", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_buffer_pool_read_ahead", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_buffer_pool_read_ahead_evicted": { - "name": "Innodb_buffer_pool_read_ahead_evicted", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_buffer_pool_read_ahead_evicted", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_buffer_pool_read_ahead_rnd": { - "name": "Innodb_buffer_pool_read_ahead_rnd", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_buffer_pool_read_ahead_rnd", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_buffer_pool_read_requests": { - "name": "Innodb_buffer_pool_read_requests", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_buffer_pool_read_requests", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_buffer_pool_reads": { - "name": "Innodb_buffer_pool_reads", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_buffer_pool_reads", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_buffer_pool_resize_status": { - "name": "Innodb_buffer_pool_resize_status", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_buffer_pool_resize_status", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_buffer_pool_wait_free": { - "name": "Innodb_buffer_pool_wait_free", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_buffer_pool_wait_free", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_buffer_pool_write_requests": { - "name": "Innodb_buffer_pool_write_requests", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_buffer_pool_write_requests", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_checkpoint_age": { - "name": "Innodb_checkpoint_age", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_checkpoint_age", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_checkpoint_max_age": { - "name": "Innodb_checkpoint_max_age", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_checkpoint_max_age", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_checkpoint_target_age": { - "name": "Innodb_checkpoint_target_age", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_checkpoint_target_age", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_current_row_locks": { - "name": "Innodb_current_row_locks", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_current_row_locks", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_data_fsyncs": { - "name": "Innodb_data_fsyncs", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_data_fsyncs", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_data_pending_fsyncs": { - "name": "Innodb_data_pending_fsyncs", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_data_pending_fsyncs", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_data_pending_reads": { - "name": "Innodb_data_pending_reads", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_data_pending_reads", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_data_pending_writes": { - "name": "Innodb_data_pending_writes", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_data_pending_writes", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_data_read": { - "name": "Innodb_data_read", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_data_read", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_data_reads": { - "name": "Innodb_data_reads", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_data_reads", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_data_writes": { - "name": "Innodb_data_writes", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_data_writes", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_data_written": { - "name": "Innodb_data_written", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_data_written", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_dblwr_pages_written": { - "name": "Innodb_dblwr_pages_written", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_dblwr_pages_written", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_dblwr_writes": { - "name": "Innodb_dblwr_writes", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_dblwr_writes", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_deadlocks": { - "name": "Innodb_deadlocks", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_deadlocks", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_defragment_compression_failures": { - "name": "Innodb_defragment_compression_failures", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_defragment_compression_failures", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_defragment_count": { - "name": "Innodb_defragment_count", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_defragment_count", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_defragment_failures": { - "name": "Innodb_defragment_failures", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_defragment_failures", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_dict_tables": { - "name": "Innodb_dict_tables", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_dict_tables", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_encryption_n_merge_blocks_decrypted": { - "name": "Innodb_encryption_n_merge_blocks_decrypted", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_encryption_n_merge_blocks_decrypted", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_encryption_n_merge_blocks_encrypted": { - "name": "Innodb_encryption_n_merge_blocks_encrypted", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_encryption_n_merge_blocks_encrypted", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_encryption_n_rowlog_blocks_decrypted": { - "name": "Innodb_encryption_n_rowlog_blocks_decrypted", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_encryption_n_rowlog_blocks_decrypted", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_encryption_n_rowlog_blocks_encrypted": { - "name": "Innodb_encryption_n_rowlog_blocks_encrypted", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_encryption_n_rowlog_blocks_encrypted", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_encryption_num_key_requests": { - "name": "Innodb_encryption_num_key_requests", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_encryption_num_key_requests", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_encryption_rotation_estimated_iops": { - "name": "Innodb_encryption_rotation_estimated_iops", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_encryption_rotation_estimated_iops", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_encryption_rotation_pages_flushed": { - "name": "Innodb_encryption_rotation_pages_flushed", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_encryption_rotation_pages_flushed", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_encryption_rotation_pages_modified": { - "name": "Innodb_encryption_rotation_pages_modified", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_encryption_rotation_pages_modified", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_encryption_rotation_pages_read_from_cache": { - "name": "Innodb_encryption_rotation_pages_read_from_cache", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_encryption_rotation_pages_read_from_cache", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_encryption_rotation_pages_read_from_disk": { - "name": "Innodb_encryption_rotation_pages_read_from_disk", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_encryption_rotation_pages_read_from_disk", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_have_atomic_builtins": { - "name": "Innodb_have_atomic_builtins", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_have_atomic_builtins", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_have_bzip2": { - "name": "Innodb_have_bzip2", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_have_bzip2", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_have_lz4": { - "name": "Innodb_have_lz4", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_have_lz4", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_have_lzma": { - "name": "Innodb_have_lzma", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_have_lzma", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_have_lzo": { - "name": "Innodb_have_lzo", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_have_lzo", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_have_punch_hole": { - "name": "Innodb_have_punch_hole", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_have_punch_hole", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_have_snappy": { - "name": "Innodb_have_snappy", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_have_snappy", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_history_list_length": { - "name": "Innodb_history_list_length", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_history_list_length", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_ibuf_discarded_delete_marks": { - "name": "Innodb_ibuf_discarded_delete_marks", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_ibuf_discarded_delete_marks", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_ibuf_discarded_deletes": { - "name": "Innodb_ibuf_discarded_deletes", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_ibuf_discarded_deletes", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_ibuf_discarded_inserts": { - "name": "Innodb_ibuf_discarded_inserts", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_ibuf_discarded_inserts", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_ibuf_free_list": { - "name": "Innodb_ibuf_free_list", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_ibuf_free_list", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_ibuf_merged_delete_marks": { - "name": "Innodb_ibuf_merged_delete_marks", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_ibuf_merged_delete_marks", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_ibuf_merged_deletes": { - "name": "Innodb_ibuf_merged_deletes", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_ibuf_merged_deletes", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_ibuf_merged_inserts": { - "name": "Innodb_ibuf_merged_inserts", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_ibuf_merged_inserts", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_ibuf_merges": { - "name": "Innodb_ibuf_merges", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_ibuf_merges", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_ibuf_segment_size": { - "name": "Innodb_ibuf_segment_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_ibuf_segment_size", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_ibuf_size": { - "name": "Innodb_ibuf_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_ibuf_size", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_instant_alter_column": { - "name": "Innodb_instant_alter_column", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_instant_alter_column", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_log_waits": { - "name": "Innodb_log_waits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_log_waits", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_log_write_requests": { - "name": "Innodb_log_write_requests", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_log_write_requests", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_log_writes": { - "name": "Innodb_log_writes", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_log_writes", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_lsn_current": { - "name": "Innodb_lsn_current", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_lsn_current", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_lsn_flushed": { - "name": "Innodb_lsn_flushed", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_lsn_flushed", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_lsn_last_checkpoint": { - "name": "Innodb_lsn_last_checkpoint", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_lsn_last_checkpoint", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_master_thread_1_second_loops": { - "name": "Innodb_master_thread_1_second_loops", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_master_thread_1_second_loops", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_master_thread_10_second_loops": { - "name": "Innodb_master_thread_10_second_loops", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_master_thread_10_second_loops", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_master_thread_active_loops": { - "name": "Innodb_master_thread_active_loops", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_master_thread_active_loops", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_master_thread_background_loops": { - "name": "Innodb_master_thread_background_loops", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_master_thread_background_loops", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_master_thread_idle_loops": { - "name": "Innodb_master_thread_idle_loops", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_master_thread_idle_loops", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_master_thread_main_flush_loops": { - "name": "Innodb_master_thread_main_flush_loops", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_master_thread_main_flush_loops", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_master_thread_sleeps": { - "name": "Innodb_master_thread_sleeps", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_master_thread_sleeps", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_max_trx_id": { - "name": "Innodb_max_trx_id", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_max_trx_id", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_mem_adaptive_hash": { - "name": "Innodb_mem_adaptive_hash", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_mem_adaptive_hash", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_mem_dictionary": { - "name": "Innodb_mem_dictionary", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_mem_dictionary", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_mem_total": { - "name": "Innodb_mem_total", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_mem_total", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_mutex_os_waits": { - "name": "Innodb_mutex_os_waits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_mutex_os_waits", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_mutex_spin_rounds": { - "name": "Innodb_mutex_spin_rounds", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_mutex_spin_rounds", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_mutex_spin_waits": { - "name": "Innodb_mutex_spin_waits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_mutex_spin_waits", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_num_index_pages_written": { - "name": "Innodb_num_index_pages_written", - "scope": [], - "type": "integer", - "ids": [ - { - "anchor": "innodb_num_index_pages_written", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_num_non_index_pages_written": { - "name": "Innodb_num_non_index_pages_written", - "scope": [], - "type": "integer", - "ids": [ - { - "anchor": "innodb_num_non_index_pages_written", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_num_open_files": { - "name": "Innodb_num_open_files", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_num_open_files", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_num_page_compressed_trim_op": { - "name": "Innodb_num_page_compressed_trim_op", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_num_page_compressed_trim_op", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_num_page_compressed_trim_op_saved": { - "name": "Innodb_num_page_compressed_trim_op_saved", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_num_page_compressed_trim_op_saved", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_num_pages_decrypted": { - "name": "Innodb_num_pages_decrypted", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_num_pages_decrypted", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_num_pages_encrypted": { - "name": "Innodb_num_pages_encrypted", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_num_pages_encrypted", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_num_pages_page_compressed": { - "name": "Innodb_num_pages_page_compressed", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_num_pages_page_compressed", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_num_pages_page_compression_error": { - "name": "Innodb_num_pages_page_compression_error", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_num_pages_page_compression_error", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_num_pages_page_decompressed": { - "name": "Innodb_num_pages_page_decompressed", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_num_pages_page_decompressed", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_num_pages_page_encryption_error": { - "name": "Innodb_num_pages_page_encryption_error", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_num_pages_page_encryption_error", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_oldest_view_low_limit_trx_id": { - "name": "Innodb_oldest_view_low_limit_trx_id", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_oldest_view_low_limit_trx_id", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_onlineddl_pct_progress": { - "name": "Innodb_onlineddl_pct_progress", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_onlineddl_pct_progress", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_onlineddl_rowlog_pct_used": { - "name": "Innodb_onlineddl_rowlog_pct_used", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_onlineddl_rowlog_pct_used", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_onlineddl_rowlog_rows": { - "name": "Innodb_onlineddl_rowlog_rows", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_onlineddl_rowlog_rows", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_os_log_fsyncs": { - "name": "Innodb_os_log_fsyncs", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_os_log_fsyncs", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_os_log_pending_fsyncs": { - "name": "Innodb_os_log_pending_fsyncs", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_os_log_pending_fsyncs", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_os_log_pending_writes": { - "name": "Innodb_os_log_pending_writes", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_os_log_pending_writes", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_os_log_written": { - "name": "Innodb_os_log_written", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_os_log_written", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_page_compression_saved": { - "name": "Innodb_page_compression_saved", - "scope": [], - "type": "byte", - "ids": [ - { - "anchor": "innodb_page_compression_saved", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_page_compression_trim_sect512": { - "name": "Innodb_page_compression_trim_sect512", - "scope": [], - "type": "integer", - "ids": [ - { - "anchor": "innodb_page_compression_trim_sect512", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_page_compression_trim_sect1024": { - "name": "Innodb_page_compression_trim_sect1024", - "scope": [], - "type": "integer", - "ids": [ - { - "anchor": "innodb_page_compression_trim_sect1024", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_page_compression_trim_sect2048": { - "name": "Innodb_page_compression_trim_sect2048", - "scope": [], - "type": "integer", - "ids": [ - { - "anchor": "innodb_page_compression_trim_sect2048", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_page_compression_trim_sect4096": { - "name": "Innodb_page_compression_trim_sect4096", - "scope": [], - "type": "integer", - "ids": [ - { - "anchor": "innodb_page_compression_trim_sect4096", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_page_compression_trim_sect8192": { - "name": "Innodb_page_compression_trim_sect8192", - "scope": [], - "type": "integer", - "ids": [ - { - "anchor": "innodb_page_compression_trim_sect8192", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_page_compression_trim_sect16384": { - "name": "Innodb_page_compression_trim_sect16384", - "scope": [], - "type": "integer", - "ids": [ - { - "anchor": "innodb_page_compression_trim_sect16384", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_page_compression_trim_sect32768": { - "name": "Innodb_page_compression_trim_sect32768", - "scope": [], - "type": "integer", - "ids": [ - { - "anchor": "innodb_page_compression_trim_sect32768", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_page_size": { - "name": "Innodb_page_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_page_size", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_pages_created": { - "name": "Innodb_pages_created", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_pages_created", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_pages_read": { - "name": "Innodb_pages_read", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_pages_read", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_pages0_read": { - "name": "Innodb_pages0_read", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_pages0_read", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_pages_written": { - "name": "Innodb_pages_written", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_pages_written", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_purge_trx_id": { - "name": "Innodb_purge_trx_id", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_purge_trx_id", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_purge_undo_no": { - "name": "Innodb_purge_undo_no", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_purge_undo_no", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_read_views_memory": { - "name": "Innodb_read_views_memory", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_read_views_memory", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_row_lock_current_waits": { - "name": "Innodb_row_lock_current_waits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_row_lock_current_waits", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_row_lock_numbers": { - "name": "Innodb_row_lock_numbers", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_row_lock_numbers", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_row_lock_time": { - "name": "Innodb_row_lock_time", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_row_lock_time", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_row_lock_time_avg": { - "name": "Innodb_row_lock_time_avg", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_row_lock_time_avg", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_row_lock_time_max": { - "name": "Innodb_row_lock_time_max", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_row_lock_time_max", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_row_lock_time_waits": { - "name": "Innodb_row_lock_time_waits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_row_lock_time_waits", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_rows_deleted": { - "name": "Innodb_rows_deleted", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_rows_deleted", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_rows_inserted": { - "name": "Innodb_rows_inserted", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_rows_inserted", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_rows_read": { - "name": "Innodb_rows_read", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_rows_read", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_rows_updated": { - "name": "Innodb_rows_updated", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_rows_updated", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_s_lock_os_waits": { - "name": "Innodb_s_lock_os_waits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_s_lock_os_waits", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_s_lock_spin_rounds": { - "name": "Innodb_s_lock_spin_rounds", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_s_lock_spin_rounds", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_s_lock_spin_waits": { - "name": "Innodb_s_lock_spin_waits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_s_lock_spin_waits", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_scrub_background_page_reorganizations": { - "name": "Innodb_scrub_background_page_reorganizations", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_scrub_background_page_reorganizations", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_scrub_background_page_split_failures_missing_index": { - "name": "Innodb_scrub_background_page_split_failures_missing_index", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_scrub_background_page_split_failures_missing_index", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_scrub_background_page_split_failures_out_of_filespace": { - "name": "Innodb_scrub_background_page_split_failures_out_of_filespace", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_scrub_background_page_split_failures_out_of_filespace", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_scrub_background_page_split_failures_underflow": { - "name": "Innodb_scrub_background_page_split_failures_underflow", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_scrub_background_page_split_failures_underflow", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_scrub_background_page_split_failures_unknown": { - "name": "Innodb_scrub_background_page_split_failures_unknown", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_scrub_background_page_split_failures_unknown", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_scrub_background_page_splits": { - "name": "Innodb_scrub_background_page_splits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_scrub_background_page_splits", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_scrub_log": { - "name": "Innodb_scrub_log", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_scrub_log", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_secondary_index_triggered_cluster_reads": { - "name": "Innodb_secondary_index_triggered_cluster_reads", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_secondary_index_triggered_cluster_reads", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_secondary_index_triggered_cluster_reads_avoided": { - "name": "Innodb_secondary_index_triggered_cluster_reads_avoided", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_secondary_index_triggered_cluster_reads_avoided", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_system_rows_deleted": { - "name": "Innodb_system_rows_deleted", - "scope": [], - "type": "integer", - "ids": [ - { - "anchor": "innodb_system_rows_deleted", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_system_rows_inserted": { - "name": "Innodb_system_rows_inserted", - "scope": [], - "type": "integer", - "ids": [ - { - "anchor": "innodb_system_rows_inserted", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_system_rows_read": { - "name": "Innodb_system_rows_read", - "scope": [], - "type": "integer", - "ids": [ - { - "anchor": "innodb_system_rows_read", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_system_rows_updated": { - "name": "Innodb_system_rows_updated", - "scope": [], - "type": "integer", - "ids": [ - { - "anchor": "innodb_system_rows_updated", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_truncated_status_writes": { - "name": "Innodb_truncated_status_writes", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_truncated_status_writes", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_undo_truncations": { - "name": "Innodb_undo_truncations", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_undo_truncations", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_x_lock_os_waits": { - "name": "Innodb_x_lock_os_waits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_x_lock_os_waits", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_x_lock_spin_rounds": { - "name": "Innodb_x_lock_spin_rounds", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_x_lock_spin_rounds", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "Innodb_x_lock_spin_waits": { - "name": "Innodb_x_lock_spin_waits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_x_lock_spin_waits", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/" - } - ] - }, - "have_innodb": { - "dynamic": false, - "name": "have_innodb", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "have_innodb", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "ignore_builtin_innodb": { - "cli": "--ignore-builtin-innodb[={OFF|ON}]", - "dynamic": false, - "name": "ignore_builtin_innodb", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "ignore_builtin_innodb", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_ignore_builtin_innodb", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_adaptive_checkpoint": { - "cli": "--innodb-adaptive-checkpoint=#", - "default": "estimate", - "dynamic": true, - "name": "innodb_adaptive_checkpoint", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "none", - "0", - "reflex", - "1", - "estimate", - "2", - "keep_average", - "3" - ], - "ids": [ - { - "anchor": "innodb_adaptive_checkpoint", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_adaptive_flushing": { - "default": "ON", - "dynamic": true, - "name": "innodb_adaptive_flushing", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_adaptive_flushing", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_adaptive_flushing", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_adaptive_flushing_lwm": { - "cli": "--innodb-adaptive-flushing-lwm=#", - "default": "10", - "dynamic": true, - "name": "innodb_adaptive_flushing_lwm", - "range": { - "from": 0, - "to": 70 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_adaptive_flushing_lwm", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_adaptive_flushing_lwm", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_adaptive_flushing_method": { - "cli": "innodb-adaptive-flushing-method=value", - "default": "estimate", - "dynamic": true, - "name": "innodb_adaptive_flushing_method", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "native", - "0", - "estimate", - "1", - "keep_average", - "2" - ], - "ids": [ - { - "anchor": "innodb_adaptive_flushing_method", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_adaptive_hash_index": { - "dynamic": true, - "name": "innodb_adaptive_hash_index", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_adaptive_hash_index", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_adaptive_hash_index", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_adaptive_hash_index_partitions": { - "cli": "innodb-adaptive-hash-index-partitions=#", - "default": "1", - "dynamic": false, - "name": "innodb_adaptive_hash_index_partitions", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_adaptive_hash_index_partitions", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_adaptive_hash_index_parts": { - "cli": "--innodb-adaptive-hash-index-parts=#", - "default": "8", - "dynamic": false, - "name": "innodb_adaptive_hash_index_parts", - "range": { - "from": 1, - "to": 512 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_adaptive_hash_index_parts", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_adaptive_hash_index_parts", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_adaptive_max_sleep_delay": { - "cli": "--innodb-adaptive-max-sleep-delay=#", - "default": "150000", - "dynamic": true, - "name": "innodb_adaptive_max_sleep_delay", - "range": { - "from": 0, - "to": 1000000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_adaptive_max_sleep_delay", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_adaptive_max_sleep_delay", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_additional_mem_pool_size": { - "cli": "--innodb-additional-mem-pool-size=#", - "default": "8388608", - "dynamic": false, - "name": "innodb_additional_mem_pool_size", - "range": { - "from": 2097152, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_additional_mem_pool_size", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_api_bk_commit_interval": { - "cli": "--innodb-api-bk-commit-interval=#", - "default": "5", - "dynamic": true, - "name": "innodb_api_bk_commit_interval", - "range": { - "from": 1, - "to": 1073741824 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_api_bk_commit_interval", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_api_bk_commit_interval", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_api_disable_rowlock": { - "default": "OFF", - "dynamic": false, - "name": "innodb_api_disable_rowlock", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_api_disable_rowlock", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_api_disable_rowlock", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_api_enable_binlog": { - "default": "OFF", - "dynamic": false, - "name": "innodb_api_enable_binlog", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_api_enable_binlog", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_api_enable_binlog", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_api_enable_mdl": { - "default": "OFF", - "dynamic": false, - "name": "innodb_api_enable_mdl", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_api_enable_mdl", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_api_enable_mdl", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_api_trx_level": { - "cli": "--innodb-api-trx-level=#", - "default": "0", - "dynamic": true, - "name": "innodb_api_trx_level", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_api_trx_level", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_api_trx_level", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_auto_lru_dump": { - "cli": "--innodb-auto-lru-dump=#", - "name": "innodb_auto_lru_dump", - "ids": [ - { - "anchor": "innodb_auto_lru_dump", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_autoextend_increment": { - "cli": "--innodb-autoextend-increment=#", - "default": "64", - "dynamic": true, - "name": "innodb_autoextend_increment", - "range": { - "from": 1, - "to": 1000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_autoextend_increment", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_autoextend_increment", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_autoinc_lock_mode": { - "cli": "--innodb-autoinc-lock-mode=#", - "dynamic": false, - "name": "innodb_autoinc_lock_mode", - "scope": [ - "global" - ], - "type": "integer", - "validValues": [ - "0", - "1", - "2" - ], - "ids": [ - { - "anchor": "innodb_autoinc_lock_mode", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_autoinc_lock_mode", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_background_scrub_data_check_interval": { - "cli": "--innodb-background-scrub-data-check-interval=#", - "default": "3600", - "dynamic": true, - "name": "innodb_background_scrub_data_check_interval", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_background_scrub_data_check_interval", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_background_scrub_data_compressed": { - "cli": "--innodb-background-scrub-data-compressed={0|1}", - "default": "0", - "dynamic": true, - "name": "innodb_background_scrub_data_compressed", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_background_scrub_data_compressed", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_background_scrub_data_interval": { - "cli": "--innodb-background-scrub-data-interval=#", - "default": "604800", - "dynamic": true, - "name": "innodb_background_scrub_data_interval", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_background_scrub_data_interval", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_background_scrub_data_uncompressed": { - "cli": "--innodb-background-scrub-data-uncompressed={0|1}", - "default": "0", - "dynamic": true, - "name": "innodb_background_scrub_data_uncompressed", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_background_scrub_data_uncompressed", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_blocking_buffer_pool_restore": { - "cli": "innodb-blocking-buffer-pool-restore={1|2}", - "default": "OFF", - "dynamic": false, - "name": "innodb_blocking_buffer_pool_restore", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_blocking_buffer_pool_restore", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_buf_dump_status_frequency": { - "cli": "--innodb-buf-dump-status-frequency=#", - "default": "0", - "dynamic": true, - "name": "innodb_buf_dump_status_frequency", - "range": { - "from": 0, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_buf_dump_status_frequency", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_buffer_pool_chunk_size": { - "cli": "--innodb-buffer-pool-chunk-size=#", - "default": "134217728", - "dynamic": false, - "name": "innodb_buffer_pool_chunk_size", - "range": { - "from": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_buffer_pool_chunk_size", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_buffer_pool_chunk_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_buffer_pool_dump_at_shutdown": { - "default": "1", - "dynamic": true, - "name": "innodb_buffer_pool_dump_at_shutdown", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_buffer_pool_dump_at_shutdown", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_buffer_pool_dump_at_shutdown", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_buffer_pool_dump_now": { - "default": "OFF", - "dynamic": true, - "name": "innodb_buffer_pool_dump_now", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_buffer_pool_dump_now", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_buffer_pool_dump_now", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_buffer_pool_dump_pct": { - "cli": "--innodb-buffer-pool-dump-pct=#", - "default": "25", - "dynamic": true, - "name": "innodb_buffer_pool_dump_pct", - "range": { - "from": 1, - "to": 100 - }, - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "innodb_buffer_pool_dump_pct", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_buffer_pool_dump_pct", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_buffer_pool_evict": { - "cli": "--innodb-buffer-pool-evict=#", - "default": "\"\"", - "dynamic": true, - "name": "innodb_buffer_pool_evict", - "scope": [ - "global" - ], - "type": "string", - "validValues": [], - "ids": [ - { - "anchor": "innodb_buffer_pool_evict", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_buffer_pool_filename": { - "cli": "--innodb-buffer-pool-pathname=path-name", - "default": "ib_buffer_pool", - "dynamic": true, - "name": "innodb_buffer_pool_filename", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "innodb_buffer_pool_filename", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_buffer_pool_filename", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_buffer_pool_instances": { - "cli": "--innodb-buffer-pool-instances=#", - "dynamic": false, - "name": "innodb_buffer_pool_instances", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_buffer_pool_instances", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_buffer_pool_instances", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_buffer_pool_load_abort": { - "default": "OFF", - "dynamic": true, - "name": "innodb_buffer_pool_load_abort", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_buffer_pool_load_abort", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_buffer_pool_load_abort", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_buffer_pool_load_at_startup": { - "default": "1", - "dynamic": false, - "name": "innodb_buffer_pool_load_at_startup", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_buffer_pool_load_at_startup", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_buffer_pool_load_at_startup", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_buffer_pool_load_now": { - "default": "OFF", - "dynamic": true, - "name": "innodb_buffer_pool_load_now", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_buffer_pool_load_now", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_buffer_pool_load_now", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_buffer_pool_populate": { - "cli": "innodb-buffer-pool-populate={0|1}", - "default": "OFF", - "dynamic": false, - "name": "innodb_buffer_pool_populate", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_buffer_pool_populate", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_buffer_pool_restore_at_startup": { - "cli": "innodb-buffer-pool-restore-at-startup", - "default": "0", - "dynamic": true, - "name": "innodb_buffer_pool_restore_at_startup", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_buffer_pool_restore_at_startup", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_buffer_pool_shm_checksum": { - "cli": "innodb-buffer-pool-shm-checksum={0|1}", - "default": "ON", - "dynamic": false, - "name": "innodb_buffer_pool_shm_checksum", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_buffer_pool_shm_checksum", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_buffer_pool_shm_key": { - "cli": "innodb-buffer-pool-shm-key={0|1}", - "default": "0", - "dynamic": false, - "name": "innodb_buffer_pool_shm_key", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_buffer_pool_shm_key", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_buffer_pool_size": { - "cli": "--innodb-buffer-pool-size=#", - "default": "134217728", - "name": "innodb_buffer_pool_size", - "range": { - "from": 5242880, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_buffer_pool_size", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_buffer_pool_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_change_buffer_dump": { - "default": "OFF", - "dynamic": false, - "name": "innodb_change_buffer_dump", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_change_buffer_dump", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_change_buffer_max_size": { - "cli": "--innodb-change-buffer-max-size=#", - "default": "25", - "dynamic": true, - "name": "innodb_change_buffer_max_size", - "range": { - "from": 0, - "to": 50 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_change_buffer_max_size", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_change_buffer_max_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_change_buffering": { - "cli": "--innodb-change-buffering=value", - "default": "all", - "dynamic": true, - "name": "innodb_change_buffering", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "none", - "inserts", - "deletes", - "changes", - "purges", - "all" - ], - "ids": [ - { - "anchor": "innodb_change_buffering", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_change_buffering", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_change_buffering_debug": { - "cli": "--innodb-change-buffering-debug=#", - "default": "0", - "dynamic": true, - "name": "innodb_change_buffering_debug", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_change_buffering_debug", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_change_buffering_debug", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_checkpoint_age_target": { - "cli": "innodb-checkpoint-age-target=#", - "default": "0", - "dynamic": true, - "name": "innodb_checkpoint_age_target", - "range": { - "from": 0, - "to": "upwards" - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_checkpoint_age_target", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_checksum_algorithm": { - "cli": "--innodb-checksum-algorithm=value", - "default": "crc32", - "dynamic": true, - "name": "innodb_checksum_algorithm", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "innodb", - "crc32", - "full_crc32", - "none", - "strict_innodb", - "strict_crc32", - "strict_none", - "strict_full_crc32" - ], - "ids": [ - { - "anchor": "innodb_checksum_algorithm", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_checksum_algorithm", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_checksums": { - "cli": "--innodb-checksums, --skip-innodb-checksums", - "default": "ON", - "dynamic": false, - "name": "innodb_checksums", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_checksums", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_cleaner_lsn_age_factor": { - "cli": "--innodb-cleaner-lsn-age-factor=value", - "default": "deprecated (>= MariaDB 10.2.6), high_checkpoint (<= MariaDB 10.1)", - "dynamic": true, - "name": "innodb_cleaner_lsn_age_factor", - "scope": [ - "global" - ], - "validValues": [ - "high_checkpoint", - "legacy", - "deprecated", - "high_checkpoint", - "legacy" - ], - "ids": [ - { - "anchor": "innodb_cleaner_lsn_age_factor", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_cmp_per_index_enabled": { - "default": "OFF", - "dynamic": true, - "name": "innodb_cmp_per_index_enabled", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_cmp_per_index_enabled", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_cmp_per_index_enabled", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_commit_concurrency": { - "cli": "--innodb-commit-concurrency=#", - "default": "0", - "dynamic": true, - "name": "innodb_commit_concurrency", - "range": { - "from": 0, - "to": 1000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_commit_concurrency", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_commit_concurrency", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_compression_algorithm": { - "cli": "--innodb-compression-algorithm=value", - "default": "zlib (>= MariaDB 10.2.4, MariaDB 10.1.22), none (<= MariaDB 10.2.3, MariaDB 10.1.21)", - "dynamic": true, - "name": "innodb_compression_algorithm", - "scope": [ - "global" - ], - "validValues": [ - "none", - "zlib", - "lz4", - "lzo", - "lzma", - "bzip2", - "snappy" - ], - "ids": [ - { - "anchor": "innodb_compression_algorithm", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_compression_default": { - "cli": "--innodb-compression-default={0|1}", - "default": "OFF", - "dynamic": true, - "name": "innodb_compression_default", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_compression_default", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_compression_failure_threshold_pct": { - "cli": "--innodb-compression-failure-threshold-pct=#", - "default": "5", - "dynamic": true, - "name": "innodb_compression_failure_threshold_pct", - "range": { - "from": 0, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_compression_failure_threshold_pct", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_compression_failure_threshold_pct", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_compression_level": { - "cli": "--innodb-compression-level=#", - "default": "6", - "dynamic": true, - "name": "innodb_compression_level", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_compression_level", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_compression_level", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_compression_pad_pct_max": { - "cli": "--innodb-compression-pad-pct-max=#", - "default": "50", - "dynamic": true, - "name": "innodb_compression_pad_pct_max", - "range": { - "from": 0, - "to": 75 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_compression_pad_pct_max", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_compression_pad_pct_max", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_concurrency_tickets": { - "cli": "--innodb-concurrency-tickets=#", - "default": "5000", - "dynamic": true, - "name": "innodb_concurrency_tickets", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_concurrency_tickets", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_concurrency_tickets", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_corrupt_table_action": { - "cli": "innodb-corrupt-table-action=value", - "default": "assert (<= MariaDB 10.1), deprecated (<= MariaDB 10.2.6)", - "dynamic": true, - "name": "innodb_corrupt_table_action", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "deprecated", - "assert", - "warn", - "salvage", - "assert", - "warn", - "salvage" - ], - "ids": [ - { - "anchor": "innodb_corrupt_table_action", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_data_file_path": { - "default": "ibdata1:12M:autoextend", - "dynamic": false, - "name": "innodb_data_file_path", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "innodb_data_file_path", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_data_file_path", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_data_home_dir": { - "cli": "--innodb-data-home-dir=path", - "dynamic": false, - "name": "innodb_data_home_dir", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - { - "anchor": "innodb_data_home_dir", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_data_home_dir", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_deadlock_detect": { - "cli": "--innodb-deadlock-detect[={OFF|ON}]", - "default": "1", - "dynamic": true, - "name": "innodb_deadlock_detect", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_deadlock_detect", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_deadlock_detect", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_default_page_encryption_key": { - "cli": "--innodb-default-page-encryption-key=#", - "default": "1", - "dynamic": true, - "name": "innodb_default_page_encryption_key", - "range": { - "from": 1, - "to": 255 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_default_page_encryption_key", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_default_encryption_key_id": { - "cli": "--innodb-default-encryption-key-id=#", - "default": "1", - "dynamic": true, - "name": "innodb_default_encryption_key_id", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_default_encryption_key_id", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_default_row_format": { - "cli": "--innodb-default-row-format=value", - "default": "DYNAMIC", - "dynamic": true, - "name": "innodb_default_row_format", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "redundant", - "compact", - "dynamic" - ], - "ids": [ - { - "anchor": "innodb_default_row_format", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_default_row_format", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_defragment": { - "cli": "--innodb-defragment=#", - "default": "OFF", - "dynamic": true, - "name": "innodb_defragment", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_defragment", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_defragment_fill_factor": { - "cli": "--innodb-defragment-fill-factor=#", - "default": "0.9", - "dynamic": true, - "name": "innodb_defragment_fill_factor", - "range": { - "from": 0.7, - "to": 1 - }, - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "innodb_defragment_fill_factor", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_defragment_fill_factor_n_recs": { - "cli": "--innodb-defragment-fill-factor-n-recs=#", - "default": "20", - "dynamic": true, - "name": "innodb_defragment_fill_factor_n_recs", - "range": { - "from": 1, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_defragment_fill_factor_n_recs", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_defragment_frequency": { - "cli": "--innodb-defragment-frequency=#", - "default": "40", - "dynamic": true, - "name": "innodb_defragment_frequency", - "range": { - "from": 1, - "to": 1000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_defragment_frequency", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_defragment_n_pages": { - "cli": "--innodb-defragment-n-pages=#", - "default": "7", - "dynamic": true, - "name": "innodb_defragment_n_pages", - "range": { - "from": 2, - "to": 32 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_defragment_n_pages", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_defragment_stats_accuracy": { - "cli": "--innodb-defragment-stats-accuracy=#", - "default": "0", - "dynamic": true, - "name": "innodb_defragment_stats_accuracy", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_defragment_stats_accuracy", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_dict_size_limit": { - "cli": "innodb-dict-size-limit=#", - "default": "0", - "dynamic": true, - "name": "innodb_dict_size_limit", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_dict_size_limit", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_disable_sort_file_cache": { - "default": "OFF", - "dynamic": true, - "name": "innodb_disable_sort_file_cache", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_disable_sort_file_cache", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_disable_sort_file_cache", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_disallow_writes": { - "default": "OFF", - "dynamic": true, - "name": "innodb_disallow_writes", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_disallow_writes", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_doublewrite": { - "default": "ON", - "dynamic": false, - "name": "innodb_doublewrite", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_doublewrite", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_doublewrite", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_doublewrite_file": { - "cli": "innodb-doublewrite-file=filename", - "default": "NULL", - "dynamic": false, - "name": "innodb_doublewrite_file", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "innodb_doublewrite_file", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_empty_free_list_algorithm": { - "cli": "innodb-empty-free-list-algorithm=value", - "default": "deprecated (>= MariaDB 10.2.6), legacy (>= MariaDB 10.1.24), backoff (<= MariaDB 10.1.23)", - "dynamic": true, - "name": "innodb_empty_free_list_algorithm", - "scope": [ - "global" - ], - "validValues": [ - "deprecated", - "backoff", - "legacy", - "backoff", - "legacy" - ], - "ids": [ - { - "anchor": "innodb_empty_free_list_algorithm", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_enable_unsafe_group_commit": { - "cli": "--innodb-enable-unsafe-group-commit", - "default": "0", - "dynamic": true, - "name": "innodb_enable_unsafe_group_commit", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_enable_unsafe_group_commit", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_encrypt_log": { - "cli": "--innodb-encrypt-log", - "default": "OFF", - "dynamic": false, - "name": "innodb_encrypt_log", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_encrypt_log", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_encrypt_tables": { - "cli": "--innodb-encrypt-tables=value", - "default": "OFF", - "dynamic": true, - "name": "innodb_encrypt_tables", - "scope": [ - "global" - ], - "type": "boolean", - "validValues": [ - "ON", - "OFF", - "FORCE" - ], - "ids": [ - { - "anchor": "innodb_encrypt_tables", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_encrypt_temporary_tables": { - "cli": "--innodb-encrypt-temporary-tables=value", - "default": "OFF", - "dynamic": false, - "name": "innodb_encrypt_temporary_tables", - "scope": [ - "global" - ], - "type": "boolean", - "validValues": [ - "ON", - "OFF" - ], - "ids": [ - { - "anchor": "innodb_encrypt_temporary_tables", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_encryption_rotate_key_age": { - "cli": "--innodb-encryption-rotate-key-age=#", - "default": "1", - "dynamic": true, - "name": "innodb_encryption_rotate_key_age", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_encryption_rotate_key_age", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_encryption_rotation_iops": { - "cli": "--innodb-encryption-rotation_iops=#", - "default": "100", - "dynamic": true, - "name": "innodb_encryption_rotation_iops", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_encryption_rotation_iops", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_encryption_threads": { - "cli": "--innodb-encryption-threads=#", - "default": "0", - "dynamic": true, - "name": "innodb_encryption_threads", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_encryption_threads", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_extra_rsegments": { - "cli": "--innodb-extra-rsegments=#", - "default": "0", - "dynamic": false, - "name": "innodb_extra_rsegments", - "range": { - "from": 0, - "to": 126 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_extra_rsegments", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_extra_undoslots": { - "cli": "--innodb-extra-undoslots=#", - "default": "OFF", - "dynamic": false, - "name": "innodb_extra_undoslots", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_extra_undoslots", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_fake_changes": { - "cli": "--innodb-fake-changes={0|1}", - "default": "OFF", - "dynamic": true, - "name": "innodb_fake_changes", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_fake_changes", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_fast_checksum": { - "cli": "--innodb-fast-checksum={0|1}", - "default": "OFF", - "dynamic": false, - "name": "innodb_fast_checksum", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_fast_checksum", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_fast_shutdown": { - "default": "1", - "dynamic": true, - "name": "innodb_fast_shutdown", - "scope": [ - "global" - ], - "type": "integer", - "validValues": [ - "0", - "1", - "2" - ], - "ids": [ - { - "anchor": "innodb_fast_shutdown", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_fast_shutdown", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_fatal_semaphore_wait_threshold": { - "cli": "--innodb-fatal-semaphore-wait-threshold=#", - "default": "600", - "dynamic": false, - "name": "innodb_fatal_semaphore_wait_threshold", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_fatal_semaphore_wait_threshold", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_file_format": { - "cli": "--innodb-file-format=value", - "default": "Barracuda (>= MariaDB 10.2.2), Antelope (<= MariaDB 10.2.1)", - "dynamic": true, - "name": "innodb_file_format", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "Antelope", - "Barracuda" - ], - "ids": [ - { - "anchor": "innodb_file_format", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_file_format_check": { - "cli": "--innodb-file-format-check=#", - "default": "ON (>= MariaDB 5.5)", - "dynamic": false, - "name": "innodb_file_format_check", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_file_format_check", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_file_format_max": { - "cli": "--innodb-file-format-max=value", - "default": "Antelope", - "dynamic": true, - "name": "innodb_file_format_max", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "Antelope", - "Barracuda" - ], - "ids": [ - { - "anchor": "innodb_file_format_max", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_file_per_table": { - "cli": "--innodb-path-per-table[={OFF|ON}]", - "default": "1", - "dynamic": true, - "name": "innodb_file_per_table", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_file_per_table", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_file_per_table", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_fill_factor": { - "cli": "--innodb-fill-factor=#", - "default": "100", - "dynamic": true, - "name": "innodb_fill_factor", - "range": { - "from": 10, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_fill_factor", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_fill_factor", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_flush_log_at_timeout": { - "cli": "--innodb-flush-log-at-timeout=#", - "default": "1", - "dynamic": true, - "name": "innodb_flush_log_at_timeout", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_flush_log_at_timeout", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_flush_log_at_timeout", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_flush_log_at_trx_commit": { - "default": "1", - "dynamic": true, - "name": "innodb_flush_log_at_trx_commit", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "0", - "1", - "2", - "3" - ], - "ids": [ - { - "anchor": "innodb_flush_log_at_trx_commit", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_flush_log_at_trx_commit", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_flush_method": { - "dynamic": false, - "name": "innodb_flush_method", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "innodb_flush_method", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_flush_method", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_flush_neighbor_pages": { - "cli": "innodb-flush-neighbor-pages=value", - "default": "area", - "dynamic": true, - "name": "innodb_flush_neighbor_pages", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "none", - "0", - "area", - "1", - "cont", - "2" - ], - "ids": [ - { - "anchor": "innodb_flush_neighbor_pages", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_flush_neighbors": { - "cli": "--innodb-flush-neighbors=#", - "dynamic": true, - "name": "innodb_flush_neighbors", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "0", - "1", - "2" - ], - "ids": [ - { - "anchor": "innodb_flush_neighbors", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_flush_neighbors", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_flush_sync": { - "default": "ON", - "dynamic": true, - "name": "innodb_flush_sync", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_flush_sync", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_flush_sync", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_flushing_avg_loops": { - "cli": "--innodb-flushing-avg-loops=#", - "default": "30", - "dynamic": true, - "name": "innodb_flushing_avg_loops", - "range": { - "from": 1, - "to": 1000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_flushing_avg_loops", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_flushing_avg_loops", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_force_load_corrupted": { - "cli": "--innodb-force-load-corrupted[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "name": "innodb_force_load_corrupted", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_force_load_corrupted", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_force_load_corrupted", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_force_primary_key": { - "cli": "--innodb-force-primary-key", - "default": "OFF", - "dynamic": true, - "name": "innodb_force_primary_key", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_force_primary_key", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_force_recovery": { - "cli": "--innodb-force-recovery=#", - "default": "0", - "dynamic": false, - "name": "innodb_force_recovery", - "range": { - "from": 0, - "to": 6 - }, - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "innodb_force_recovery", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_force_recovery", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_foreground_preflush": { - "cli": "innodb-foreground-preflush=value", - "default": "deprecated (>= MariaDB 10.2.6), exponential_backoff (<= MariaDB 10.1)", - "dynamic": true, - "name": "innodb_foreground_preflush", - "scope": [ - "global" - ], - "validValues": [ - "deprecated", - "exponential_backoff", - "sync_preflush", - "exponential_backoff", - "sync_preflush" - ], - "ids": [ - { - "anchor": "innodb_foreground_preflush", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_ft_aux_table": { - "dynamic": true, - "name": "innodb_ft_aux_table", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "innodb_ft_aux_table", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_ft_aux_table", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_ft_cache_size": { - "cli": "--innodb-ft-cache-size=#", - "default": "8000000", - "dynamic": false, - "name": "innodb_ft_cache_size", - "range": { - "from": 1600000, - "to": 80000000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_ft_cache_size", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_ft_cache_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_ft_enable_diag_print": { - "default": "OFF", - "dynamic": true, - "name": "innodb_ft_enable_diag_print", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_ft_enable_diag_print", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_ft_enable_diag_print", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_ft_enable_stopword": { - "default": "ON", - "dynamic": true, - "name": "innodb_ft_enable_stopword", - "type": "boolean", - "ids": [ - { - "anchor": "innodb_ft_enable_stopword", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_ft_enable_stopword", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_ft_max_token_size": { - "cli": "--innodb-ft-max-token-size=#", - "default": "84", - "dynamic": false, - "name": "innodb_ft_max_token_size", - "range": { - "from": 10 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_ft_max_token_size", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_ft_max_token_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_ft_min_token_size": { - "cli": "--innodb-ft-min-token-size=#", - "default": "3", - "dynamic": false, - "name": "innodb_ft_min_token_size", - "range": { - "from": 0, - "to": 16 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_ft_min_token_size", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_ft_min_token_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_ft_num_word_optimize": { - "cli": "--innodb-ft-num-word-optimize=#", - "default": "2000", - "dynamic": true, - "name": "innodb_ft_num_word_optimize", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_ft_num_word_optimize", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_ft_num_word_optimize", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_ft_result_cache_limit": { - "cli": "--innodb-ft-result-cache-limit=#", - "default": "2000000000", - "dynamic": true, - "name": "innodb_ft_result_cache_limit", - "range": { - "from": 1000000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_ft_result_cache_limit", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_ft_result_cache_limit", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_ft_server_stopword_table": { - "cli": "--innodb-ft-server-stopword-table=db_name/table_name", - "default": "NULL", - "dynamic": true, - "name": "innodb_ft_server_stopword_table", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "innodb_ft_server_stopword_table", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_ft_server_stopword_table", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_ft_sort_pll_degree": { - "cli": "--innodb-ft-sort-pll-degree=#", - "default": "2", - "dynamic": false, - "name": "innodb_ft_sort_pll_degree", - "range": { - "from": 1, - "to": 32 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_ft_sort_pll_degree", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_ft_sort_pll_degree", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_ft_total_cache_size": { - "cli": "--innodb-ft-total-cache-size=#", - "default": "640000000", - "dynamic": false, - "name": "innodb_ft_total_cache_size", - "range": { - "from": 32000000, - "to": 1600000000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_ft_total_cache_size", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_ft_total_cache_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_ft_user_stopword_table": { - "cli": "--innodb-ft-user-stopword-table=db_name/table_name", - "default": "NULL", - "dynamic": true, - "name": "innodb_ft_user_stopword_table", - "type": "string", - "ids": [ - { - "anchor": "innodb_ft_user_stopword_table", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_ft_user_stopword_table", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_ibuf_accel_rate": { - "cli": "innodb-ibuf-accel-rate=#", - "default": "100", - "dynamic": true, - "name": "innodb_ibuf_accel_rate", - "range": { - "from": 100, - "to": 999999999 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_ibuf_accel_rate", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_ibuf_active_contract": { - "cli": "innodb-ibuf-active-contract=#", - "default": "1", - "dynamic": true, - "name": "innodb_ibuf_active_contract", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_ibuf_active_contract", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_ibuf_max_size": { - "cli": "innodb-ibuf-max-size=#", - "default": "1/2 the size of the InnoDB buffer pool", - "dynamic": false, - "name": "innodb_ibuf_max_size", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_ibuf_max_size", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_idle_flush_pct": { - "cli": "--innodb-idle-flush-pct=#", - "default": "100", - "dynamic": true, - "name": "innodb_idle_flush_pct", - "range": { - "from": 0, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_idle_flush_pct", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_idle_flush_pct", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_immediate_scrub_data_uncompressed": { - "cli": "--innodb-immediate-scrub-data-uncompressed=#", - "default": "OFF", - "dynamic": true, - "name": "innodb_immediate_scrub_data_uncompressed", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_immediate_scrub_data_uncompressed", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_import_table_from_xtrabackup": { - "cli": "innodb-import-table-from-xtrabackup=#", - "default": "0", - "dynamic": true, - "name": "innodb_import_table_from_xtrabackup", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_import_table_from_xtrabackup", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_instrument_semaphores": { - "cli": "--innodb-instrument-semaphores={0|1}", - "default": "OFF", - "dynamic": true, - "name": "innodb_instrument_semaphores", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_instrument_semaphores", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_io_capacity": { - "cli": "--innodb-io-capacity=#", - "default": "200", - "dynamic": true, - "name": "innodb_io_capacity", - "range": { - "from": 100, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_io_capacity", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_io_capacity", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_io_capacity_max": { - "cli": "--innodb-io-capacity-max=#", - "dynamic": true, - "name": "innodb_io_capacity_max", - "range": { - "from": 100 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_io_capacity_max", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_io_capacity_max", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_kill_idle_transaction": { - "default": "0", - "dynamic": true, - "name": "innodb_kill_idle_transaction", - "range": { - "from": 0, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_kill_idle_transaction", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_large_prefix": { - "cli": "--innodb-large-prefix", - "default": "ON (>= MariaDB 10.2.2), OFF (<= MariaDB 10.2.1)", - "dynamic": true, - "name": "innodb_large_prefix", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_large_prefix", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_lazy_drop_table": { - "cli": "innodb-lazy-drop-table={0|1}", - "default": "0", - "dynamic": true, - "name": "innodb_lazy_drop_table", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_lazy_drop_table", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_lock_schedule_algorithm": { - "cli": "--innodb-lock-schedule-algorithm=#", - "default": "VATS (10.2), FCFS (10.1)", - "dynamic": false, - "name": "innodb_lock_schedule_algorithm", - "scope": [ - "global" - ], - "validValues": [ - "FCFS", - "VATS" - ], - "ids": [ - { - "anchor": "innodb_lock_schedule_algorithm", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_lock_wait_timeout": { - "cli": "--innodb-lock-wait-timeout=#", - "default": "50", - "dynamic": true, - "name": "innodb_lock_wait_timeout", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_lock_wait_timeout", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_lock_wait_timeout", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_locking_fake_changes": { - "cli": "--innodb-locking-fake-changes", - "default": "ON", - "dynamic": true, - "name": "innodb_locking_fake_changes", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_locking_fake_changes", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_locks_unsafe_for_binlog": { - "cli": "--innodb-locks-unsafe-for-binlog", - "default": "OFF", - "dynamic": false, - "name": "innodb_locks_unsafe_for_binlog", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_locks_unsafe_for_binlog", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_log_arch_dir": { - "cli": "--innodb-log-arch-dir=name", - "default": "./", - "dynamic": false, - "name": "innodb_log_arch_dir", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "innodb_log_arch_dir", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_log_arch_expire_sec": { - "cli": "--innodb-log-arch-expire-sec=#", - "default": "0", - "dynamic": true, - "name": "innodb_log_arch_expire_sec", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_log_arch_expire_sec", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_log_archive": { - "cli": "--innodb-log-archive=value", - "default": "OFF", - "dynamic": true, - "name": "innodb_log_archive", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_log_archive", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_log_block_size": { - "cli": "innodb-log-block-size=#", - "default": "512", - "dynamic": false, - "name": "innodb_log_block_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_log_block_size", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_log_buffer_size": { - "cli": "--innodb-log-buffer-size=#", - "default": "16777216", - "name": "innodb_log_buffer_size", - "type": "integer", - "ids": [ - { - "anchor": "innodb_log_buffer_size", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_log_buffer_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_log_checksum_algorithm": { - "cli": "innodb-log-checksum-algorithm=value", - "default": "deprecated (>= MariaDB 10.2.6), innodb (<= MariaDB 10.1)", - "dynamic": true, - "name": "innodb_log_checksum_algorithm", - "scope": [ - "global" - ], - "validValues": [ - "deprecated", - "innodb", - "none", - "crc32", - "strict_none", - "strict_innodb", - "strict_crc32", - "innodb", - "none", - "crc32", - "strict_none", - "strict_innodb", - "strict_crc32" - ], - "ids": [ - { - "anchor": "innodb_log_checksum_algorithm", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_log_checksums": { - "default": "ON", - "dynamic": true, - "name": "innodb_log_checksums", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_log_checksums", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_log_checksums", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_log_compressed_pages": { - "default": "1", - "dynamic": true, - "name": "innodb_log_compressed_pages", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_log_compressed_pages", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_log_compressed_pages", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_log_file_size": { - "cli": "--innodb-log-file-size=#", - "default": "50331648", - "dynamic": false, - "name": "innodb_log_file_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_log_file_size", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_log_file_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_log_files_in_group": { - "cli": "--innodb-log-files-in-group=#", - "default": "2", - "dynamic": false, - "name": "innodb_log_files_in_group", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_log_files_in_group", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_log_files_in_group", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_log_group_home_dir": { - "cli": "--innodb-log-group-home-dir=path", - "dynamic": false, - "name": "innodb_log_group_home_dir", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - { - "anchor": "innodb_log_group_home_dir", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_log_group_home_dir", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_log_optimize_ddl": { - "cli": "--innodb-log-optimize-ddl={0|1}", - "default": "ON", - "dynamic": true, - "name": "innodb_log_optimize_ddl", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_log_optimize_ddl", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_log_write_ahead_size": { - "cli": "--innodb-log-write-ahead-size=#", - "default": "8192", - "dynamic": true, - "name": "innodb_log_write_ahead_size", - "range": { - "from": 512 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_log_write_ahead_size", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_log_write_ahead_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_lru_scan_depth": { - "cli": "--innodb-lru-scan-depth=#", - "default": "1024", - "dynamic": true, - "name": "innodb_lru_scan_depth", - "range": { - "from": 100 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_lru_scan_depth", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_lru_scan_depth", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_max_bitmap_file_size": { - "cli": "innodb-max-bitmap-file-size=#", - "default": "4096 (4KB)", - "dynamic": true, - "name": "innodb_max_bitmap_file_size", - "range": { - "from": 4096, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_max_bitmap_file_size", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_max_changed_pages": { - "cli": "innodb-max-changed-pages=#", - "default": "1000000", - "dynamic": true, - "name": "innodb_max_changed_pages", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_max_changed_pages", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_max_dirty_pages_pct": { - "cli": "--innodb-max-dirty-pages-pct=#", - "name": "innodb_max_dirty_pages_pct", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_max_dirty_pages_pct", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_max_dirty_pages_pct", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_max_dirty_pages_pct_lwm": { - "cli": "--innodb-max-dirty-pages-pct-lwm=#", - "dynamic": true, - "name": "innodb_max_dirty_pages_pct_lwm", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_max_dirty_pages_pct_lwm", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_max_dirty_pages_pct_lwm", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_max_purge_lag": { - "cli": "--innodb-max-purge-lag=#", - "default": "0", - "dynamic": true, - "name": "innodb_max_purge_lag", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_max_purge_lag", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_max_purge_lag", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_max_purge_lag_delay": { - "cli": "--innodb-max-purge-lag-delay=#", - "default": "0", - "dynamic": true, - "name": "innodb_max_purge_lag_delay", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_max_purge_lag_delay", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_max_purge_lag_delay", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_max_undo_log_size": { - "cli": "--innodb-max-undo-log-size=#", - "dynamic": true, - "name": "innodb_max_undo_log_size", - "range": { - "from": 10485760 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_max_undo_log_size", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_max_undo_log_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_merge_sort_block_size": { - "cli": "innodb-merge-sort-block-size=#", - "default": "1048576 (1M)", - "dynamic": true, - "name": "innodb_merge_sort_block_size", - "range": { - "from": 1048576, - "to": 1073741824 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_merge_sort_block_size", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_mirrored_log_groups": { - "name": "innodb_mirrored_log_groups", - "ids": [ - { - "anchor": "innodb_mirrored_log_groups", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_mtflush_threads": { - "cli": "--innodb-mtflush-threads=#", - "default": "8", - "dynamic": false, - "name": "innodb_mtflush_threads", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_mtflush_threads", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_monitor_disable": { - "dynamic": true, - "name": "innodb_monitor_disable", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "innodb_monitor_disable", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_monitor_disable", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_monitor_enable": { - "dynamic": true, - "name": "innodb_monitor_enable", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "innodb_monitor_enable", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_monitor_enable", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_monitor_reset": { - "default": "empty string", - "dynamic": true, - "name": "innodb_monitor_reset", - "scope": [ - "global" - ], - "validValues": [ - "counter", - "module", - "pattern", - "all" - ], - "ids": [ - { - "anchor": "innodb_monitor_reset", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_monitor_reset", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_monitor_reset_all": { - "default": "empty string", - "dynamic": true, - "name": "innodb_monitor_reset_all", - "scope": [ - "global" - ], - "validValues": [ - "counter", - "module", - "pattern", - "all" - ], - "ids": [ - { - "anchor": "innodb_monitor_reset_all", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_monitor_reset_all", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_numa_interleave": { - "default": "OFF", - "dynamic": false, - "name": "innodb_numa_interleave", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_numa_interleave", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_numa_interleave", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_old_blocks_pct": { - "cli": "--innodb-old-blocks-pct=#", - "default": "37", - "dynamic": true, - "name": "innodb_old_blocks_pct", - "range": { - "from": 5, - "to": 95 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_old_blocks_pct", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_old_blocks_pct", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_old_blocks_time": { - "cli": "--innodb-old-blocks-time=#", - "default": "1000", - "dynamic": true, - "name": "innodb_old_blocks_time", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_old_blocks_time", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_old_blocks_time", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_online_alter_log_max_size": { - "cli": "--innodb-online-alter-log-max-size=#", - "default": "134217728", - "dynamic": true, - "name": "innodb_online_alter_log_max_size", - "range": { - "from": 65536 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_online_alter_log_max_size", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_online_alter_log_max_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_open_files": { - "cli": "--innodb-open-files=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": false, - "name": "innodb_open_files", - "range": { - "from": 10, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_open_files", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_open_files", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_optimize_fulltext_only": { - "default": "OFF", - "dynamic": true, - "name": "innodb_optimize_fulltext_only", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_optimize_fulltext_only", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_optimize_fulltext_only", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_page_cleaners": { - "cli": "--innodb-page-cleaners=#", - "default": "4", - "dynamic": false, - "name": "innodb_page_cleaners", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_page_cleaners", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_page_cleaners", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_page_size": { - "cli": "--innodb-page-size=#", - "default": "16384", - "dynamic": false, - "name": "innodb_page_size", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "4096", - "8192", - "16384", - "32768", - "65536" - ], - "ids": [ - { - "anchor": "innodb_page_size", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_page_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_pass_corrupt_table": { - "name": "innodb_pass_corrupt_table", - "ids": [ - { - "anchor": "innodb_pass_corrupt_table", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_prefix_index_cluster_optimization": { - "cli": "--innodb-prefix-index-cluster-optimization=#", - "default": "OFF", - "dynamic": true, - "name": "innodb_prefix_index_cluster_optimization", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_prefix_index_cluster_optimization", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_print_all_deadlocks": { - "default": "OFF", - "dynamic": true, - "name": "innodb_print_all_deadlocks", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_print_all_deadlocks", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_print_all_deadlocks", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_purge_batch_size": { - "cli": "--innodb-purge-batch-size=#", - "name": "innodb_purge_batch_size", - "range": { - "from": 1, - "to": 5000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_purge_batch_size", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_purge_batch_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_purge_rseg_truncate_frequency": { - "cli": "--innodb-purge-rseg-truncate-frequency=#", - "default": "128", - "dynamic": true, - "name": "innodb_purge_rseg_truncate_frequency", - "range": { - "from": 1, - "to": 128 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_purge_rseg_truncate_frequency", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_purge_rseg_truncate_frequency", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_purge_threads": { - "cli": "--innodb-purge-threads=#", - "default": "4", - "dynamic": false, - "name": "innodb_purge_threads", - "range": { - "from": 1, - "to": 32 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_purge_threads", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_purge_threads", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_random_read_ahead": { - "default": "OFF", - "dynamic": true, - "name": "innodb_random_read_ahead", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_random_read_ahead", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_random_read_ahead", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_read_ahead": { - "cli": "innodb-read-ahead=value", - "default": "linear", - "dynamic": true, - "name": "innodb_read_ahead", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "none", - "random", - "linear", - "both" - ], - "ids": [ - { - "anchor": "innodb_read_ahead", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_read_ahead_threshold": { - "cli": "--innodb-read-ahead-threshold=#", - "default": "56", - "dynamic": true, - "name": "innodb_read_ahead_threshold", - "range": { - "from": 0, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_read_ahead_threshold", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_read_ahead_threshold", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_read_io_threads": { - "cli": "--innodb-read-io-threads=#", - "default": "4", - "dynamic": false, - "name": "innodb_read_io_threads", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_read_io_threads", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_read_io_threads", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_read_only": { - "default": "OFF", - "dynamic": false, - "name": "innodb_read_only", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_read_only", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_read_only", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_recovery_stats": { - "default": "OFF", - "dynamic": false, - "name": "innodb_recovery_stats", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_recovery_stats", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_recovery_update_relay_log": { - "cli": "innodb-recovery-update-relay-log={0|1}", - "default": "OFF", - "dynamic": false, - "name": "innodb_recovery_update_relay_log", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_recovery_update_relay_log", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_replication_delay": { - "cli": "--innodb-replication-delay=#", - "default": "0", - "dynamic": true, - "name": "innodb_replication_delay", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_replication_delay", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_replication_delay", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_rollback_on_timeout": { - "cli": "--innodb-rollback-on-timeout[={OFF|ON}]", - "default": "0", - "dynamic": false, - "name": "innodb_rollback_on_timeout", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_rollback_on_timeout", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_rollback_on_timeout", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_rollback_segments": { - "cli": "--innodb-rollback-segments=#", - "default": "128", - "dynamic": true, - "name": "innodb_rollback_segments", - "range": { - "from": 1, - "to": 128 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_rollback_segments", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_rollback_segments", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_safe_truncate": { - "cli": "--innodb-safe-truncate={0|1}", - "default": "ON", - "dynamic": false, - "name": "innodb_safe_truncate", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_safe_truncate", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_scrub_log": { - "cli": "--innodb-scrub-log", - "default": "OFF", - "dynamic": false, - "name": "innodb_scrub_log", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_scrub_log", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_scrub_log_interval": { - "cli": "--innodb-scrub-log-interval=#", - "default": "56", - "dynamic": true, - "name": "innodb_scrub_log_interval", - "range": { - "from": 0, - "to": 50000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_scrub_log_interval", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_scrub_log_speed": { - "cli": "--innodb-scrub-log-speed=#", - "default": "256", - "dynamic": true, - "name": "innodb_scrub_log_speed", - "range": { - "from": 1, - "to": 50000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_scrub_log_speed", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_sched_priority_cleaner": { - "cli": "innodb-sched-priority-cleaner=#", - "default": "19", - "dynamic": true, - "name": "innodb_sched_priority_cleaner", - "range": { - "from": 0, - "to": 39 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_sched_priority_cleaner", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_show_locks_held": { - "cli": "innodb-show-locks-held=#", - "default": "10", - "dynamic": true, - "name": "innodb_show_locks_held", - "range": { - "from": 0, - "to": 1000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_show_locks_held", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_show_verbose_locks": { - "cli": "innodb-show-verbose-locks=#", - "default": "0", - "dynamic": true, - "name": "innodb_show_verbose_locks", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_show_verbose_locks", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_simulate_comp_failures": { - "default": "0", - "dynamic": true, - "name": "innodb_simulate_comp_failures", - "range": { - "from": 0, - "to": 99 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_simulate_comp_failures", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_sort_buffer_size": { - "cli": "--innodb-sort-buffer-size=#", - "default": "1048576", - "dynamic": false, - "name": "innodb_sort_buffer_size", - "range": { - "from": 65536, - "to": 67108864 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_sort_buffer_size", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_sort_buffer_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_spin_wait_delay": { - "cli": "--innodb-spin-wait-delay=#", - "dynamic": true, - "name": "innodb_spin_wait_delay", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_spin_wait_delay", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_spin_wait_delay", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_stats_auto_recalc": { - "default": "ON", - "dynamic": true, - "name": "innodb_stats_auto_recalc", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_stats_auto_recalc", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_stats_auto_recalc", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_stats_auto_update": { - "default": "1", - "dynamic": true, - "name": "innodb_stats_auto_update", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_stats_auto_update", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_stats_include_delete_marked": { - "cli": "--innodb-stats-include-delete-marked[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "innodb_stats_include_delete_marked", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_stats_include_delete_marked", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_stats_include_delete_marked", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_stats_method": { - "default": "nulls_equal", - "dynamic": true, - "name": "innodb_stats_method", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "nulls_equal", - "nulls_unequal", - "nulls_ignored" - ], - "ids": [ - { - "anchor": "innodb_stats_method", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_stats_method", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_stats_modified_counter": { - "cli": "--innodb-stats-modified-counter=#", - "default": "0", - "dynamic": true, - "name": "innodb_stats_modified_counter", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_stats_modified_counter", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_stats_on_metadata": { - "cli": "--innodb-stats-on-metadata[={OFF|ON}]", - "default": "0", - "dynamic": true, - "name": "innodb_stats_on_metadata", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_stats_on_metadata", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_stats_on_metadata", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_stats_persistent": { - "default": "ON", - "dynamic": true, - "name": "innodb_stats_persistent", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_stats_persistent", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_stats_persistent", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_stats_persistent_sample_pages": { - "cli": "--innodb-stats-persistent-sample-pages=#", - "default": "20", - "dynamic": true, - "name": "innodb_stats_persistent_sample_pages", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_stats_persistent_sample_pages", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_stats_persistent_sample_pages", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_stats_sample_pages": { - "cli": "--innodb-stats-sample-pages=#", - "default": "8", - "dynamic": true, - "name": "innodb_stats_sample_pages", - "range": { - "from": 1, - "to": 264 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_stats_sample_pages", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_stats_traditional": { - "cli": "--innodb-stats-traditional=#", - "default": "ON", - "dynamic": true, - "name": "innodb_stats_traditional", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_stats_traditional", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_stats_transient_sample_pages": { - "cli": "--innodb-stats-transient-sample-pages=#", - "default": "8", - "dynamic": true, - "name": "innodb_stats_transient_sample_pages", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_stats_transient_sample_pages", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_stats_transient_sample_pages", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_stats_update_need_lock": { - "default": "1", - "dynamic": true, - "name": "innodb_stats_update_need_lock", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_stats_update_need_lock", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_status_output": { - "default": "OFF", - "dynamic": true, - "name": "innodb_status_output", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_status_output", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_status_output", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_status_output_locks": { - "default": "OFF", - "dynamic": true, - "name": "innodb_status_output_locks", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_status_output_locks", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_status_output_locks", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_strict_mode": { - "default": "1", - "dynamic": true, - "name": "innodb_strict_mode", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_strict_mode", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_strict_mode", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_support_xa": { - "cli": "--innodb-support-xa", - "default": "ON", - "dynamic": true, - "name": "innodb_support_xa", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_support_xa", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_sync_array_size": { - "cli": "--innodb-sync-array-size=#", - "default": "1", - "dynamic": false, - "name": "innodb_sync_array_size", - "range": { - "from": 1, - "to": 1024 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_sync_array_size", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_sync_array_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_sync_spin_loops": { - "cli": "--innodb-sync-spin-loops=#", - "default": "30", - "dynamic": true, - "name": "innodb_sync_spin_loops", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_sync_spin_loops", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_sync_spin_loops", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_table_locks": { - "cli": "--innodb-table-locks[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "name": "innodb_table_locks", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_table_locks", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_table_locks", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_thread_concurrency": { - "cli": "--innodb-thread-concurrency=#", - "default": "0", - "dynamic": true, - "name": "innodb_thread_concurrency", - "range": { - "from": 0, - "to": 1000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_thread_concurrency", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_thread_concurrency", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_thread_concurrency_timer_based": { - "cli": "innodb-thread-concurrency-timer-based={0|1}", - "default": "OFF", - "dynamic": false, - "name": "innodb_thread_concurrency_timer_based", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_thread_concurrency_timer_based", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_thread_sleep_delay": { - "cli": "--innodb-thread-sleep-delay=#", - "default": "10000", - "dynamic": true, - "name": "innodb_thread_sleep_delay", - "range": { - "from": 0, - "to": 1000000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_thread_sleep_delay", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_thread_sleep_delay", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_temp_data_file_path": { - "cli": "--innodb-temp-data-path-path=path-name", - "default": "ibtmp1:12M:autoextend", - "dynamic": false, - "name": "innodb_temp_data_file_path", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "innodb_temp_data_file_path", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_temp_data_file_path", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_tmpdir": { - "cli": "--innodb-tmpdir=path", - "default": "NULL", - "dynamic": true, - "name": "innodb_tmpdir", - "ids": [ - { - "anchor": "innodb_tmpdir", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_tmpdir", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_track_changed_pages": { - "cli": "innodb-track-changed-pages={0|1}", - "default": "OFF", - "dynamic": false, - "name": "innodb_track_changed_pages", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_track_changed_pages", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_track_redo_log_now": { - "cli": "innodb-track-redo-log-now={0|1}", - "default": "OFF", - "dynamic": true, - "name": "innodb_track_redo_log_now", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_track_redo_log_now", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_undo_directory": { - "dynamic": false, - "name": "innodb_undo_directory", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "innodb_undo_directory", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_undo_directory", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_undo_log_truncate": { - "dynamic": true, - "name": "innodb_undo_log_truncate", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_undo_log_truncate", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_undo_log_truncate", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_undo_logs": { - "cli": "--innodb-undo-logs=#", - "default": "128", - "dynamic": true, - "name": "innodb_undo_logs", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_undo_logs", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_undo_logs", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_undo_tablespaces": { - "cli": "--innodb-undo-tablespaces=#", - "name": "innodb_undo_tablespaces", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_undo_tablespaces", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_undo_tablespaces", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_use_atomic_writes": { - "cli": "innodb-use-atomic-writes={0|1}", - "default": "ON (>= MariaDB 10.2.4), OFF (<= MariaDB 10.2.3)", - "dynamic": false, - "name": "innodb_use_atomic_writes", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_use_atomic_writes", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_use_fallocate": { - "cli": "innodb-use-fallocate={0|1}", - "default": "OFF", - "dynamic": false, - "name": "innodb_use_fallocate", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_use_fallocate", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_use_global_flush_log_at_trx_commit": { - "cli": "innodb-use-global-flush-log-at-trx_commit={0|1}", - "default": "ON", - "dynamic": true, - "name": "innodb_use_global_flush_log_at_trx_commit", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_use_global_flush_log_at_trx_commit", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_use_mtflush": { - "cli": "--innodb-use-mtflush=#", - "default": "OFF", - "dynamic": false, - "name": "innodb_use_mtflush", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_use_mtflush", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_use_native_aio": { - "default": "ON", - "dynamic": false, - "name": "innodb_use_native_aio", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_use_native_aio", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_use_native_aio", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_use_purge_thread": { - "cli": "--innodb-use-purge-thread=#", - "default": "1", - "dynamic": false, - "name": "innodb_use_purge_thread", - "range": { - "from": 0, - "to": 32 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_use_purge_thread", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_use_stacktrace": { - "cli": "--innodb-use-stacktrace=#", - "default": "OFF", - "dynamic": false, - "name": "innodb_use_stacktrace", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_use_stacktrace", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_use_sys_malloc": { - "cli": "--innodb-use-sys-malloc=#", - "default": "ON", - "dynamic": false, - "name": "innodb_use_sys_malloc", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_use_sys_malloc", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_use_sys_stats_table": { - "cli": "innodb-use-sys-stats-table={0|1}", - "default": "0", - "dynamic": false, - "name": "innodb_use_sys_stats_table", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_use_sys_stats_table", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_use_trim": { - "cli": "--innodb-use-trim=#", - "default": "ON (>= MariaDB 10.2.4), OFF (<= MariaDB 10.2.3)", - "dynamic": false, - "name": "innodb_use_trim", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "innodb_use_trim", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_version": { - "dynamic": false, - "name": "innodb_version", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "innodb_version", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - } - ] - }, - "innodb_write_io_threads": { - "cli": "--innodb-write-io-threads=#", - "default": "4", - "dynamic": false, - "name": "innodb_write_io_threads", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "innodb_write_io_threads", - "url": "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/" - }, - { - "anchor": "sysvar_innodb_write_io_threads", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "audit_log": { - "cli": "--audit-log[=value]", - "default": "ON", - "name": "audit_log", - "type": "enumeration", - "validValues": [ - "ON", - "OFF", - "FORCE", - "FORCE_PLUS_PERMANENT" - ], - "ids": [ - { - "anchor": "option_mysqld_audit-log", - "url": "https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html" - } - ] - }, - "audit_log_buffer_size": { - "cli": "--audit-log-buffer-size=#", - "default": "1048576", - "dynamic": false, - "name": "audit_log_buffer_size", - "range": { - "from": 4096 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_audit_log_buffer_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html" - } - ] - }, - "audit_log_compression": { - "cli": "--audit-log-compression=value", - "default": "NONE", - "dynamic": false, - "name": "audit_log_compression", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "NONE", - "GZIP" - ], - "ids": [ - { - "anchor": "sysvar_audit_log_compression", - "url": "https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html" - } - ] - }, - "audit_log_connection_policy": { - "cli": "--audit-log-connection-policy=value", - "default": "ALL", - "dynamic": true, - "name": "audit_log_connection_policy", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "ALL", - "ERRORS", - "NONE" - ], - "ids": [ - { - "anchor": "sysvar_audit_log_connection_policy", - "url": "https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html" - } - ] - }, - "audit_log_current_session": { - "default": "depends on filtering policy", - "dynamic": false, - "name": "audit_log_current_session", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_audit_log_current_session", - "url": "https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html" - } - ] - }, - "audit_log_encryption": { - "cli": "--audit-log-encryption=value", - "default": "NONE", - "dynamic": false, - "name": "audit_log_encryption", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "NONE", - "AES" - ], - "ids": [ - { - "anchor": "sysvar_audit_log_encryption", - "url": "https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html" - } - ] - }, - "audit_log_exclude_accounts": { - "cli": "--audit-log-exclude-accounts=value", - "default": "NULL", - "dynamic": true, - "name": "audit_log_exclude_accounts", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_audit_log_exclude_accounts", - "url": "https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html" - } - ] - }, - "audit_log_file": { - "cli": "--audit-log-file=file_name", - "default": "audit.log", - "dynamic": false, - "name": "audit_log_file", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - { - "anchor": "sysvar_audit_log_file", - "url": "https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html" - } - ] - }, - "audit_log_filter_id": { - "dynamic": false, - "name": "audit_log_filter_id", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_audit_log_filter_id", - "url": "https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html" - } - ] - }, - "audit_log_flush": { - "default": "OFF", - "dynamic": true, - "name": "audit_log_flush", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_audit_log_flush", - "url": "https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html" - } - ] - }, - "audit_log_format": { - "cli": "--audit-log-format=value", - "default": "NEW", - "dynamic": false, - "name": "audit_log_format", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "OLD", - "NEW", - "JSON" - ], - "ids": [ - { - "anchor": "sysvar_audit_log_format", - "url": "https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html" - } - ] - }, - "audit_log_include_accounts": { - "cli": "--audit-log-include-accounts=value", - "default": "NULL", - "dynamic": true, - "name": "audit_log_include_accounts", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_audit_log_include_accounts", - "url": "https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html" - } - ] - }, - "audit_log_password_history_keep_days": { - "cli": "--audit-log-password-history-keep-days=#", - "default": "0", - "dynamic": true, - "name": "audit_log_password_history_keep_days", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_audit_log_password_history_keep_days", - "url": "https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html" - } - ] - }, - "audit_log_policy": { - "cli": "--audit-log-policy=value", - "default": "ALL", - "dynamic": false, - "name": "audit_log_policy", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "ALL", - "LOGINS", - "QUERIES", - "NONE" - ], - "ids": [ - { - "anchor": "sysvar_audit_log_policy", - "url": "https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html" - } - ] - }, - "audit_log_read_buffer_size": { - "cli": "--audit-log-read-buffer-size=#", - "name": "audit_log_read_buffer_size", - "range": { - "to": 4194304 - }, - "type": "integer", - "ids": [ - { - "anchor": "sysvar_audit_log_read_buffer_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html" - } - ] - }, - "audit_log_rotate_on_size": { - "cli": "--audit-log-rotate-on-size=#", - "default": "0", - "dynamic": true, - "name": "audit_log_rotate_on_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_audit_log_rotate_on_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html" - } - ] - }, - "audit_log_statement_policy": { - "cli": "--audit-log-statement-policy=value", - "default": "ALL", - "dynamic": true, - "name": "audit_log_statement_policy", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "ALL", - "ERRORS", - "NONE" - ], - "ids": [ - { - "anchor": "sysvar_audit_log_statement_policy", - "url": "https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html" - } - ] - }, - "audit_log_strategy": { - "cli": "--audit-log-strategy=value", - "default": "ASYNCHRONOUS", - "dynamic": false, - "name": "audit_log_strategy", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "ASYNCHRONOUS", - "PERFORMANCE", - "SEMISYNCHRONOUS", - "SYNCHRONOUS" - ], - "ids": [ - { - "anchor": "sysvar_audit_log_strategy", - "url": "https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html" - } - ] - }, - "innodb": { - "cli": "--innodb[=value]", - "default": "ON", - "name": "innodb", - "type": "enumeration", - "validValues": [ - "OFF", - "ON", - "FORCE" - ], - "ids": [ - { - "anchor": "option_mysqld_innodb", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_status_file": { - "cli": "--innodb-status-file[={OFF|ON}]", - "default": "OFF", - "name": "innodb_status_file", - "type": "boolean", - "ids": [ - { - "anchor": "option_mysqld_innodb-status-file", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "daemon_memcached_enable_binlog": { - "cli": "--daemon-memcached-enable-binlog[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "name": "daemon_memcached_enable_binlog", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_daemon_memcached_enable_binlog", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "daemon_memcached_engine_lib_name": { - "cli": "--daemon-memcached-engine-lib-name=file_name", - "default": "innodb_engine.so", - "dynamic": false, - "name": "daemon_memcached_engine_lib_name", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - { - "anchor": "sysvar_daemon_memcached_engine_lib_name", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "daemon_memcached_engine_lib_path": { - "cli": "--daemon-memcached-engine-lib-path=dir_name", - "default": "NULL", - "dynamic": false, - "name": "daemon_memcached_engine_lib_path", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - { - "anchor": "sysvar_daemon_memcached_engine_lib_path", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "daemon_memcached_option": { - "cli": "--daemon-memcached-option=options", - "default": "", - "dynamic": false, - "name": "daemon_memcached_option", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_daemon_memcached_option", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "daemon_memcached_r_batch_size": { - "cli": "--daemon-memcached-r-batch-size=#", - "default": "1", - "dynamic": false, - "name": "daemon_memcached_r_batch_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_daemon_memcached_r_batch_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "daemon_memcached_w_batch_size": { - "cli": "--daemon-memcached-w-batch-size=#", - "default": "1", - "dynamic": false, - "name": "daemon_memcached_w_batch_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_daemon_memcached_w_batch_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_background_drop_list_empty": { - "cli": "--innodb-background-drop-list-empty[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "innodb_background_drop_list_empty", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_innodb_background_drop_list_empty", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_buffer_pool_debug": { - "cli": "--innodb-buffer-pool-debug[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "name": "innodb_buffer_pool_debug", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_innodb_buffer_pool_debug", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_buffer_pool_in_core_file": { - "cli": "--innodb-buffer-pool-in-core-file[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "name": "innodb_buffer_pool_in_core_file", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_innodb_buffer_pool_in_core_file", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_checkpoint_disabled": { - "cli": "--innodb-checkpoint-disabled[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "innodb_checkpoint_disabled", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_innodb_checkpoint_disabled", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_compress_debug": { - "cli": "--innodb-compress-debug=value", - "default": "none", - "dynamic": true, - "name": "innodb_compress_debug", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "none", - "zlib", - "lz4", - "lz4hc" - ], - "ids": [ - { - "anchor": "sysvar_innodb_compress_debug", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_ddl_log_crash_reset_debug": { - "cli": "--innodb-ddl-log-crash-reset-debug[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "innodb_ddl_log_crash_reset_debug", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_innodb_ddl_log_crash_reset_debug", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_dedicated_server": { - "cli": "--innodb-dedicated-server[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "name": "innodb_dedicated_server", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_innodb_dedicated_server", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_directories": { - "cli": "--innodb-directories=dir_name", - "dynamic": false, - "name": "innodb_directories", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - { - "anchor": "sysvar_innodb_directories", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_fil_make_page_dirty_debug": { - "cli": "--innodb-fil-make-page-dirty-debug=#", - "default": "0", - "dynamic": true, - "name": "innodb_fil_make_page_dirty_debug", - "range": { - "to": 2 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_innodb_fil_make_page_dirty_debug", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_fsync_threshold": { - "cli": "--innodb-fsync-threshold=#", - "default": "0", - "dynamic": true, - "name": "innodb_fsync_threshold", - "range": { - "from": 0, - "to": 2 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_innodb_fsync_threshold", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_limit_optimistic_insert_debug": { - "cli": "--innodb-limit-optimistic-insert-debug=#", - "default": "0", - "dynamic": true, - "name": "innodb_limit_optimistic_insert_debug", - "range": { - "from": 0, - "to": 2 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_innodb_limit_optimistic_insert_debug", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_log_checkpoint_fuzzy_now": { - "cli": "--innodb-log-checkpoint-fuzzy-now[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "innodb_log_checkpoint_fuzzy_now", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_innodb_log_checkpoint_fuzzy_now", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_log_checkpoint_now": { - "cli": "--innodb-log-checkpoint-now[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "innodb_log_checkpoint_now", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_innodb_log_checkpoint_now", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_log_spin_cpu_abs_lwm": { - "cli": "--innodb-log-spin-cpu-abs-lwm=#", - "default": "80", - "dynamic": true, - "name": "innodb_log_spin_cpu_abs_lwm", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_innodb_log_spin_cpu_abs_lwm", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_log_spin_cpu_pct_hwm": { - "cli": "--innodb-log-spin-cpu-pct-hwm=#", - "default": "50", - "dynamic": true, - "name": "innodb_log_spin_cpu_pct_hwm", - "range": { - "from": 0, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_innodb_log_spin_cpu_pct_hwm", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_log_wait_for_flush_spin_hwm": { - "cli": "--innodb-log-wait-for-flush-spin-hwm=#", - "default": "400", - "dynamic": true, - "name": "innodb_log_wait_for_flush_spin_hwm", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_innodb_log_wait_for_flush_spin_hwm", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_merge_threshold_set_all_debug": { - "cli": "--innodb-merge-threshold-set-all-debug=#", - "default": "50", - "dynamic": true, - "name": "innodb_merge_threshold_set_all_debug", - "range": { - "from": 1, - "to": 50 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_innodb_merge_threshold_set_all_debug", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_parallel_read_threads": { - "cli": "--innodb-parallel-read-threads=#", - "default": "4", - "dynamic": true, - "name": "innodb_parallel_read_threads", - "range": { - "from": 1, - "to": 256 - }, - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_innodb_parallel_read_threads", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_print_ddl_logs": { - "cli": "--innodb-print-ddl-logs[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "innodb_print_ddl_logs", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_innodb_print_ddl_logs", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_redo_log_archive_dirs": { - "cli": "--innodb-redo-log-archive-dirs", - "default": "NULL", - "dynamic": true, - "name": "innodb_redo_log_archive_dirs", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_innodb_redo_log_archive_dirs", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_redo_log_encrypt": { - "cli": "--innodb-redo-log-encrypt[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "innodb_redo_log_encrypt", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_innodb_redo_log_encrypt", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_scan_directories": { - "cli": "--innodb-scan-directories=dir_name", - "default": "NULL", - "dynamic": false, - "name": "innodb_scan_directories", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - { - "anchor": "sysvar_innodb_scan_directories", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_saved_page_number_debug": { - "cli": "--innodb-saved-page-number-debug=#", - "default": "0", - "dynamic": true, - "name": "innodb_saved_page_number_debug", - "range": { - "to": 2 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_innodb_saved_page_number_debug", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_spin_wait_pause_multiplier": { - "cli": "--innodb-spin-wait-pause-multiplier=#", - "default": "50", - "dynamic": true, - "name": "innodb_spin_wait_pause_multiplier", - "range": { - "from": 1, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_innodb_spin_wait_pause_multiplier", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_sync_debug": { - "cli": "--innodb-sync-debug[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "name": "innodb_sync_debug", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_innodb_sync_debug", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_temp_tablespaces_dir": { - "cli": "--innodb-temp-tablespaces-dir=dir_name", - "default": "#innodb_temp", - "dynamic": false, - "name": "innodb_temp_tablespaces_dir", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - { - "anchor": "sysvar_innodb_temp_tablespaces_dir", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_trx_purge_view_update_only_debug": { - "cli": "--innodb-trx-purge-view-update-only-debug[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "innodb_trx_purge_view_update_only_debug", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_innodb_trx_purge_view_update_only_debug", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_trx_rseg_n_slots_debug": { - "cli": "--innodb-trx-rseg-n-slots-debug=#", - "default": "0", - "dynamic": true, - "name": "innodb_trx_rseg_n_slots_debug", - "range": { - "to": 1024 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_innodb_trx_rseg_n_slots_debug", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "innodb_undo_log_encrypt": { - "cli": "--innodb-undo-log-encrypt[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "innodb_undo_log_encrypt", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_innodb_undo_log_encrypt", - "url": "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html" - } - ] - }, - "ndbcluster": { - "cli": "--ndbcluster", - "default": "FALSE (Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndbcluster", - "ids": [ - { - "anchor": "option_mysqld_ndbcluster", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb-allow-copying-alter-table": { - "cli": "--ndb-allow-copying-alter-table=[ON|OFF]", - "default": "ON (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb-allow-copying-alter-table", - "scope": [ - "global", - "session" - ], - "ids": [ - { - "anchor": "option_mysqld_ndb-allow-copying-alter-table", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb-batch-size": { - "cli": "--ndb-batch-size=#", - "default": "32768 / 0 - 31536000 (Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndb-batch-size", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "option_mysqld_ndb-batch-size", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb-cluster-connection-pool": { - "cli": "--ndb-cluster-connection-pool=#", - "default": "1 / 1 - 63 (Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndb-cluster-connection-pool", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "option_mysqld_ndb-cluster-connection-pool", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb-cluster-connection-pool-nodeids": { - "cli": "--ndb-cluster-connection-pool-nodeids=list", - "default": "/ (Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndb-cluster-connection-pool-nodeids", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "option_mysqld_ndb-cluster-connection-pool-nodeids", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb-blob-read-batch-bytes": { - "cli": "--ndb-blob-read-batch-bytes=bytes", - "default": "65536 / 0 - 4294967295 (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb-blob-read-batch-bytes", - "scope": [ - "global", - "session" - ], - "ids": [ - { - "anchor": "option_mysqld_ndb-blob-read-batch-bytes", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb-blob-write-batch-bytes": { - "cli": "--ndb-blob-write-batch-bytes=bytes", - "default": "65536 / 0 - 4294967295 (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb-blob-write-batch-bytes", - "scope": [ - "global", - "session" - ], - "ids": [ - { - "anchor": "option_mysqld_ndb-blob-write-batch-bytes", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb-connectstring": { - "cli": "--ndb-connectstring=connection_string", - "default": "(Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndb-connectstring", - "ids": [ - { - "anchor": "option_mysqld_ndb-connectstring", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb-default-column-format": { - "cli": "--ndb-default-column-format=[FIXED|DYNAMIC]", - "default": "FIXED / FIXED, DYNAMIC (Version: 5.7.16-ndb-7.5.4)", - "dynamic": true, - "name": "ndb-default-column-format", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "option_mysqld_ndb-default-column-format", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb-deferred-constraints": { - "cli": "--ndb-deferred-constraints=[0|1]", - "default": "0 / 0 - 1 (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb-deferred-constraints", - "scope": [ - "global", - "session" - ], - "ids": [ - { - "anchor": "option_mysqld_ndb-deferred-constraints", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb-distribution": { - "cli": "--ndb-distribution=[KEYHASH|LINHASH]", - "default": "KEYHASH / LINHASH, KEYHASH (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb-distribution", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "option_mysqld_ndb-distribution", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb-log-apply-status": { - "cli": "--ndb-log-apply-status", - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndb-log-apply-status", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "option_mysqld_ndb-log-apply-status", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb-log-empty-epochs": { - "cli": "--ndb-log-empty-epochs=[ON|OFF]", - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb-log-empty-epochs", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "option_mysqld_ndb-log-empty-epochs", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb-log-empty-update": { - "cli": "--ndb-log-empty-update=[ON|OFF]", - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb-log-empty-update", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "option_mysqld_ndb-log-empty-update", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb-log-exclusive-reads": { - "cli": "--ndb-log-exclusive-reads=[0|1]", - "default": "0 (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb-log-exclusive-reads", - "scope": [ - "global", - "session" - ], - "ids": [ - { - "anchor": "option_mysqld_ndb-log-exclusive-reads", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb-log-orig": { - "cli": "--ndb-log-orig", - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndb-log-orig", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "option_mysqld_ndb-log-orig", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb-log-transaction-id": { - "cli": "--ndb-log-transaction-id", - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndb-log-transaction-id", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "option_mysqld_ndb-log-transaction-id", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb-log-update-minimal": { - "cli": "--ndb-log-update-minimal", - "default": "OFF (Version: 5.7.18-ndb-7.6.3)", - "dynamic": true, - "name": "ndb-log-update-minimal", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "option_mysqld_ndb-log-update-minimal", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb-mgmd-host": { - "cli": "--ndb-mgmd-host=host[:port]", - "default": "localhost:1186 (Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndb-mgmd-host", - "ids": [ - { - "anchor": "option_mysqld_ndb-mgmd-host", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb-nodeid": { - "cli": "--ndb-nodeid=#", - "default": "/ 1 - 255 (Version: 5.1.5)", - "dynamic": false, - "name": "ndb-nodeid", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "option_mysqld_ndb-nodeid", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb-optimization-delay": { - "cli": "--ndb-optimization-delay=milliseconds", - "default": "10 / 0 - 100000 (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb-optimization-delay", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "option_mysqld_ndb-optimization-delay", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb-recv-thread-activation-threshold": { - "cli": "--ndb-recv-thread-activation-threshold=threshold", - "default": "8 / 0 (MIN_ACTIVATION_THRESHOLD) - 16 (MAX_ACTIVATION_THRESHOLD), (Version: 5.6.10-ndb-7.3.1)", - "dynamic": false, - "name": "ndb-recv-thread-activation-threshold", - "ids": [ - { - "anchor": "option_mysqld_ndb-recv-thread-activation-threshold", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb-recv-thread-cpu-mask": { - "cli": "--ndb-recv-thread-cpu-mask=bitmask", - "default": "[empty] (Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndb-recv-thread-cpu-mask", - "ids": [ - { - "anchor": "option_mysqld_ndb-recv-thread-cpu-mask", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb-transid-mysql-connection-map": { - "cli": "ndb-transid-mysql-connection-map=state", - "default": "ON / ON, OFF, FORCE (Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndb-transid-mysql-connection-map", - "ids": [ - { - "anchor": "option_mysqld_ndb-transid-mysql-connection-map", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb-wait-connected": { - "cli": "--ndb-wait-connected=seconds", - "default": "30 / 0 - 31536000 (Version: 5.1.56-ndb-7.1.16)", - "dynamic": false, - "name": "ndb-wait-connected", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "option_mysqld_ndb-wait-connected", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb-wait-setup": { - "cli": "--ndb-wait-setup=seconds", - "default": "30 / 0 - 31536000 (Version: 5.1.56-ndb-7.1.16)", - "dynamic": false, - "name": "ndb-wait-setup", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "option_mysqld_ndb-wait-setup", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "skip-ndbcluster": { - "cli": "--skip-ndbcluster", - "dynamic": false, - "name": "skip-ndbcluster", - "ids": [ - { - "anchor": "option_mysqld_skip-ndbcluster", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_autoincrement_prefetch_sz": { - "default": "1 / 1 - 256 (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_autoincrement_prefetch_sz", - "scope": [ - "global", - "session" - ], - "ids": [ - { - "anchor": "sysvar_ndb_autoincrement_prefetch_sz", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_cache_check_time": { - "default": "0 / - (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_cache_check_time", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "sysvar_ndb_cache_check_time", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_clear_apply_status": { - "default": "ON (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_clear_apply_status", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "sysvar_ndb_clear_apply_status", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_data_node_neighbour": { - "default": "0 / 0 - 255 (Version: 5.7.12-ndb-7.5.2)", - "dynamic": true, - "name": "ndb_data_node_neighbour", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "sysvar_ndb_data_node_neighbour", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_default_column_format": { - "default": "FIXED / FIXED, DYNAMIC (Version: 5.7.16-ndb-7.5.4)", - "dynamic": true, - "name": "ndb_default_column_format", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "sysvar_ndb_default_column_format", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_deferred_constraints": { - "default": "0 / 0 - 1 (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_deferred_constraints", - "scope": [ - "global", - "session" - ], - "ids": [ - { - "anchor": "sysvar_ndb_deferred_constraints", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_distribution": { - "default": "KEYHASH / LINHASH, KEYHASH (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_distribution", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "sysvar_ndb_distribution", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_eventbuffer_free_percent": { - "default": "20 / 1 - 99 (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_eventbuffer_free_percent", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "sysvar_ndb_eventbuffer_free_percent", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_eventbuffer_max_alloc": { - "default": "0 / 0 - 4294967295 (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_eventbuffer_max_alloc", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "sysvar_ndb_eventbuffer_max_alloc", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_extra_logging": { - "default": "1 / - (Version: 5.1.19-ndb-6.3.0)", - "dynamic": true, - "name": "ndb_extra_logging", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "sysvar_ndb_extra_logging", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_force_send": { - "default": "TRUE (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_force_send", - "scope": [ - "global", - "session" - ], - "ids": [ - { - "anchor": "sysvar_ndb_force_send", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_fully_replicated": { - "default": "OFF (Version: 5.7.12-ndb-7-5-2)", - "dynamic": true, - "name": "ndb_fully_replicated", - "scope": [ - "global", - "session" - ], - "ids": [ - { - "anchor": "sysvar_ndb_fully_replicated", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_index_stat_enable": { - "default": "ON (Version: 5.5.15-ndb-7.2.1)", - "dynamic": true, - "name": "ndb_index_stat_enable", - "scope": [ - "global", - "session" - ], - "ids": [ - { - "anchor": "sysvar_ndb_index_stat_enable", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_index_stat_option": { - "default": "loop_checkon=1000ms,loop_idle=1000ms,loop_busy=100ms,, update_batch=1,read_batch=4,idle_batch=32,check_batch=32,, check_delay=1m,delete_batch=8,clean_delay=0,error_batch=4,, error_delay=1m,evict_batch=8,evict_delay=1m,cache_limit=32M,, cache_lowpct=90 (Version: 5.1.56-ndb-7.1.17)", - "dynamic": true, - "name": "ndb_index_stat_option", - "scope": [ - "global", - "session" - ], - "ids": [ - { - "anchor": "sysvar_ndb_index_stat_option", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_join_pushdown": { - "default": "TRUE (Version: 5.1.51-ndb-7.2.0)", - "dynamic": true, - "name": "ndb_join_pushdown", - "scope": [ - "global", - "session" - ], - "ids": [ - { - "anchor": "sysvar_ndb_join_pushdown", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_log_apply_status": { - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndb_log_apply_status", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "sysvar_ndb_log_apply_status", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_log_bin": { - "default": "ON (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_log_bin", - "scope": [ - "global", - "session" - ], - "ids": [ - { - "anchor": "sysvar_ndb_log_bin", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_log_binlog_index": { - "default": "ON (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_log_binlog_index", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "sysvar_ndb_log_binlog_index", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_log_empty_epochs": { - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_log_empty_epochs", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "sysvar_ndb_log_empty_epochs", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_log_empty_update": { - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_log_empty_update", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "sysvar_ndb_log_empty_update", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_log_exclusive_reads": { - "default": "0 (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_log_exclusive_reads", - "scope": [ - "global", - "session" - ], - "ids": [ - { - "anchor": "sysvar_ndb_log_exclusive_reads", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_log_orig": { - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndb_log_orig", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "sysvar_ndb_log_orig", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_log_transaction_id": { - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndb_log_transaction_id", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "sysvar_ndb_log_transaction_id", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_optimized_node_selection": { - "default": "3 / 0 - 3 (Version: 5.1.22-ndb-6.3.4)", - "dynamic": false, - "name": "ndb_optimized_node_selection", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "sysvar_ndb_optimized_node_selection", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_read_backup": { - "default": "OFF (Version: 5.7.12-ndb-7.5.2)", - "dynamic": true, - "name": "ndb_read_backup", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "sysvar_ndb_read_backup", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_recv_thread_activation_threshold": { - "default": "8 / 0 (MIN_ACTIVATION_THRESHOLD) - 16 (MAX_ACTIVATION_THRESHOLD), (Version: 5.6.10-ndb-7.3.1)", - "dynamic": false, - "name": "ndb_recv_thread_activation_threshold", - "ids": [ - { - "anchor": "sysvar_ndb_recv_thread_activation_threshold", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_recv_thread_cpu_mask": { - "default": "[empty] (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_recv_thread_cpu_mask", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "sysvar_ndb_recv_thread_cpu_mask", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_report_thresh_binlog_epoch_slip": { - "default": "10 / 0 - 256 (Version: 5.7.16-ndb-7.5.4)", - "dynamic": true, - "name": "ndb_report_thresh_binlog_epoch_slip", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "sysvar_ndb_report_thresh_binlog_epoch_slip", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_report_thresh_binlog_mem_usage": { - "default": "1 / 0 - 1 (Version: NDB 7.6.8)", - "dynamic": true, - "name": "ndb_report_thresh_binlog_mem_usage", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_ndb_report_thresh_binlog_mem_usage", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_row_checksum": { - "default": "1 / 0 - 1 (Version: NDB 7.6.8)", - "dynamic": true, - "name": "ndb_row_checksum", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_ndb_row_checksum", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_show_foreign_key_mock_tables": { - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_show_foreign_key_mock_tables", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "sysvar_ndb_show_foreign_key_mock_tables", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_slave_conflict_role": { - "default": "NONE / NONE, PRIMARY, SECONDARY, PASS (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_slave_conflict_role", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "sysvar_ndb_slave_conflict_role", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_table_no_logging": { - "default": "FALSE (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_table_no_logging", - "scope": [ - "session" - ], - "ids": [ - { - "anchor": "sysvar_ndb_table_no_logging", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_table_temporary": { - "default": "FALSE (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_table_temporary", - "scope": [ - "session" - ], - "ids": [ - { - "anchor": "sysvar_ndb_table_temporary", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_use_copying_alter_table": { - "dynamic": false, - "name": "ndb_use_copying_alter_table", - "scope": [ - "global", - "session" - ], - "ids": [ - { - "anchor": "sysvar_ndb_use_copying_alter_table", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_use_exact_count": { - "default": "OFF (Version: 5.1.47-ndb-7.1.8)", - "dynamic": true, - "name": "ndb_use_exact_count", - "scope": [ - "global", - "session" - ], - "ids": [ - { - "anchor": "sysvar_ndb_use_exact_count", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_use_transactions": { - "default": "ON (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_use_transactions", - "scope": [ - "global", - "session" - ], - "ids": [ - { - "anchor": "sysvar_ndb_use_transactions", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_version": { - "default": "(Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndb_version", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "sysvar_ndb_version", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndb_version_string": { - "default": "(Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndb_version_string", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "sysvar_ndb_version_string", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "server_id_bits": { - "default": "32 / 7 - 32 (Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "server_id_bits", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "sysvar_server_id_bits", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "slave_allow_batching": { - "default": "off (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "slave_allow_batching", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "sysvar_slave_allow_batching", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "transaction_allow_batching": { - "default": "FALSE (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "transaction_allow_batching", - "scope": [ - "session" - ], - "ids": [ - { - "anchor": "sysvar_transaction_allow_batching", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndbinfo_database": { - "default": "ndbinfo (Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndbinfo_database", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "sysvar_ndbinfo_database", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndbinfo_max_bytes": { - "default": "0 / - (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndbinfo_max_bytes", - "scope": [ - "global", - "session" - ], - "ids": [ - { - "anchor": "sysvar_ndbinfo_max_bytes", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndbinfo_max_rows": { - "default": "10 / - (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndbinfo_max_rows", - "scope": [ - "global", - "session" - ], - "ids": [ - { - "anchor": "sysvar_ndbinfo_max_rows", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndbinfo_offline": { - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndbinfo_offline", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "sysvar_ndbinfo_offline", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndbinfo_show_hidden": { - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndbinfo_show_hidden", - "scope": [ - "global", - "session" - ], - "ids": [ - { - "anchor": "sysvar_ndbinfo_show_hidden", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndbinfo_table_prefix": { - "default": "ndb$ (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndbinfo_table_prefix", - "scope": [ - "global", - "session" - ], - "ids": [ - { - "anchor": "sysvar_ndbinfo_table_prefix", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "ndbinfo_version": { - "default": "(Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndbinfo_version", - "scope": [ - "global" - ], - "ids": [ - { - "anchor": "sysvar_ndbinfo_version", - "url": "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html" - } - ] - }, - "performance_schema_error_size": { - "cli": "--performance-schema-error-size=#", - "default": "number of server error codes", - "dynamic": false, - "name": "performance_schema_error_size", - "range": { - "from": 0, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_performance_schema_error_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_events_transactions_history_long_size": { - "cli": "--performance-schema-events-transactions-history-long-size=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": false, - "name": "performance_schema_events_transactions_history_long_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_performance_schema_events_transactions_history_long_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_events_transactions_history_size": { - "cli": "--performance-schema-events-transactions-history-size=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": false, - "name": "performance_schema_events_transactions_history_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_performance_schema_events_transactions_history_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_max_digest_sample_age": { - "cli": "--performance-schema-max-digest-sample-age=#", - "default": "60", - "dynamic": true, - "name": "performance_schema_max_digest_sample_age", - "range": { - "from": 0, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_performance_schema_max_digest_sample_age", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_max_index_stat": { - "cli": "--performance-schema-max-index-stat=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": false, - "name": "performance_schema_max_index_stat", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_performance_schema_max_index_stat", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_max_memory_classes": { - "cli": "--performance-schema-max-memory-classes=#", - "dynamic": false, - "name": "performance_schema_max_memory_classes", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_performance_schema_max_memory_classes", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_max_metadata_locks": { - "cli": "--performance-schema-max-metadata-locks=#", - "default": "(-1 signifies autoscaling; do not use -1)", - "dynamic": false, - "name": "performance_schema_max_metadata_locks", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_performance_schema_max_metadata_locks", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_max_prepared_statements_instances": { - "cli": "--performance-schema-max-prepared-statements-instances=#", - "default": "(-1 signifies autoscaling; do not use -1)", - "dynamic": false, - "name": "performance_schema_max_prepared_statements_instances", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_performance_schema_max_prepared_statements_instances", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_max_program_instances": { - "cli": "--performance-schema-max-program-instances=#", - "default": "(-1 signifies autoscaling; do not use -1)", - "dynamic": false, - "name": "performance_schema_max_program_instances", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_performance_schema_max_program_instances", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_max_sql_text_length": { - "cli": "--performance-schema-max-sql-text-length=#", - "default": "1024", - "dynamic": false, - "name": "performance_schema_max_sql_text_length", - "range": { - "from": 0, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_performance_schema_max_sql_text_length", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_max_statement_stack": { - "cli": "--performance-schema-max-statement-stack=#", - "default": "10", - "dynamic": false, - "name": "performance_schema_max_statement_stack", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_performance_schema_max_statement_stack", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "performance_schema_max_table_lock_stat": { - "cli": "--performance-schema-max-table-lock-stat=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": false, - "name": "performance_schema_max_table_lock_stat", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_performance_schema_max_table_lock_stat", - "url": "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html" - } - ] - }, - "authentication_ldap_sasl_auth_method_name": { - "cli": "--authentication-ldap-sasl-auth-method-name=value", - "default": "SCRAM-SHA-1", - "dynamic": true, - "name": "authentication_ldap_sasl_auth_method_name", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_authentication_ldap_sasl_auth_method_name", - "url": "https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html" - } - ] - }, - "authentication_ldap_sasl_bind_base_dn": { - "cli": "--authentication-ldap-sasl-bind-base-dn=value", - "default": "NULL", - "dynamic": true, - "name": "authentication_ldap_sasl_bind_base_dn", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_authentication_ldap_sasl_bind_base_dn", - "url": "https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html" - } - ] - }, - "authentication_ldap_sasl_bind_root_dn": { - "cli": "--authentication-ldap-sasl-bind-root-dn=value", - "default": "NULL", - "dynamic": true, - "name": "authentication_ldap_sasl_bind_root_dn", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_authentication_ldap_sasl_bind_root_dn", - "url": "https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html" - } - ] - }, - "authentication_ldap_sasl_bind_root_pwd": { - "cli": "--authentication-ldap-sasl-bind-root-pwd=value", - "default": "NULL", - "dynamic": true, - "name": "authentication_ldap_sasl_bind_root_pwd", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_authentication_ldap_sasl_bind_root_pwd", - "url": "https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html" - } - ] - }, - "authentication_ldap_sasl_ca_path": { - "cli": "--authentication-ldap-sasl-ca-path=value", - "default": "NULL", - "dynamic": true, - "name": "authentication_ldap_sasl_ca_path", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_authentication_ldap_sasl_ca_path", - "url": "https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html" - } - ] - }, - "authentication_ldap_sasl_group_search_attr": { - "cli": "--authentication-ldap-sasl-group-search-attr=value", - "default": "cn", - "dynamic": true, - "name": "authentication_ldap_sasl_group_search_attr", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_authentication_ldap_sasl_group_search_attr", - "url": "https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html" - } - ] - }, - "authentication_ldap_sasl_group_search_filter": { - "cli": "--authentication-ldap-sasl-group-search-filter=value", - "default": "(|(&(objectClass=posixGroup)(memberUid=%s))(&(objectClass=group)(member=%s)))", - "dynamic": true, - "name": "authentication_ldap_sasl_group_search_filter", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_authentication_ldap_sasl_group_search_filter", - "url": "https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html" - } - ] - }, - "authentication_ldap_sasl_init_pool_size": { - "cli": "--authentication-ldap-sasl-init-pool-size=#", - "default": "10", - "dynamic": true, - "name": "authentication_ldap_sasl_init_pool_size", - "range": { - "from": 0, - "to": 32767 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_authentication_ldap_sasl_init_pool_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html" - } - ] - }, - "authentication_ldap_sasl_log_status": { - "cli": "--authentication-ldap-sasl-log-status=#", - "default": "1", - "dynamic": true, - "name": "authentication_ldap_sasl_log_status", - "range": { - "from": 1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_authentication_ldap_sasl_log_status", - "url": "https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html" - } - ] - }, - "authentication_ldap_sasl_max_pool_size": { - "cli": "--authentication-ldap-sasl-max-pool-size=#", - "default": "1000", - "dynamic": true, - "name": "authentication_ldap_sasl_max_pool_size", - "range": { - "from": 0, - "to": 32767 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_authentication_ldap_sasl_max_pool_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html" - } - ] - }, - "authentication_ldap_sasl_server_host": { - "cli": "--authentication-ldap-sasl-server-host=host_name", - "dynamic": true, - "name": "authentication_ldap_sasl_server_host", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_authentication_ldap_sasl_server_host", - "url": "https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html" - } - ] - }, - "authentication_ldap_sasl_server_port": { - "cli": "--authentication-ldap-sasl-server-port=port_num", - "default": "389", - "dynamic": true, - "name": "authentication_ldap_sasl_server_port", - "range": { - "from": 1, - "to": 32376 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_authentication_ldap_sasl_server_port", - "url": "https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html" - } - ] - }, - "authentication_ldap_sasl_tls": { - "cli": "--authentication-ldap-sasl-tls[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "authentication_ldap_sasl_tls", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_authentication_ldap_sasl_tls", - "url": "https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html" - } - ] - }, - "authentication_ldap_sasl_user_search_attr": { - "cli": "--authentication-ldap-sasl-user-search-attr=value", - "default": "uid", - "dynamic": true, - "name": "authentication_ldap_sasl_user_search_attr", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_authentication_ldap_sasl_user_search_attr", - "url": "https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html" - } - ] - }, - "authentication_ldap_simple_auth_method_name": { - "cli": "--authentication-ldap-simple-auth-method-name=value", - "default": "SIMPLE", - "dynamic": true, - "name": "authentication_ldap_simple_auth_method_name", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_authentication_ldap_simple_auth_method_name", - "url": "https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html" - } - ] - }, - "authentication_ldap_simple_bind_base_dn": { - "cli": "--authentication-ldap-simple-bind-base-dn=value", - "default": "NULL", - "dynamic": true, - "name": "authentication_ldap_simple_bind_base_dn", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_authentication_ldap_simple_bind_base_dn", - "url": "https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html" - } - ] - }, - "authentication_ldap_simple_bind_root_dn": { - "cli": "--authentication-ldap-simple-bind-root-dn=value", - "default": "NULL", - "dynamic": true, - "name": "authentication_ldap_simple_bind_root_dn", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_authentication_ldap_simple_bind_root_dn", - "url": "https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html" - } - ] - }, - "authentication_ldap_simple_bind_root_pwd": { - "cli": "--authentication-ldap-simple-bind-root-pwd=value", - "default": "NULL", - "dynamic": true, - "name": "authentication_ldap_simple_bind_root_pwd", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_authentication_ldap_simple_bind_root_pwd", - "url": "https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html" - } - ] - }, - "authentication_ldap_simple_ca_path": { - "cli": "--authentication-ldap-simple-ca-path=value", - "default": "NULL", - "dynamic": true, - "name": "authentication_ldap_simple_ca_path", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_authentication_ldap_simple_ca_path", - "url": "https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html" - } - ] - }, - "authentication_ldap_simple_group_search_attr": { - "cli": "--authentication-ldap-simple-group-search-attr=value", - "default": "cn", - "dynamic": true, - "name": "authentication_ldap_simple_group_search_attr", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_authentication_ldap_simple_group_search_attr", - "url": "https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html" - } - ] - }, - "authentication_ldap_simple_group_search_filter": { - "cli": "--authentication-ldap-simple-group-search-filter=value", - "default": "(|(&(objectClass=posixGroup)(memberUid=%s))(&(objectClass=group)(member=%s)))", - "dynamic": true, - "name": "authentication_ldap_simple_group_search_filter", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_authentication_ldap_simple_group_search_filter", - "url": "https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html" - } - ] - }, - "authentication_ldap_simple_init_pool_size": { - "cli": "--authentication-ldap-simple-init-pool-size=#", - "default": "10", - "dynamic": true, - "name": "authentication_ldap_simple_init_pool_size", - "range": { - "from": 0, - "to": 32767 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_authentication_ldap_simple_init_pool_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html" - } - ] - }, - "authentication_ldap_simple_log_status": { - "cli": "--authentication-ldap-simple-log-status=#", - "default": "1", - "dynamic": true, - "name": "authentication_ldap_simple_log_status", - "range": { - "from": 1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_authentication_ldap_simple_log_status", - "url": "https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html" - } - ] - }, - "authentication_ldap_simple_max_pool_size": { - "cli": "--authentication-ldap-simple-max-pool-size=#", - "default": "1000", - "dynamic": true, - "name": "authentication_ldap_simple_max_pool_size", - "range": { - "from": 0, - "to": 32767 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_authentication_ldap_simple_max_pool_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html" - } - ] - }, - "authentication_ldap_simple_server_host": { - "cli": "--authentication-ldap-simple-server-host=host_name", - "dynamic": true, - "name": "authentication_ldap_simple_server_host", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_authentication_ldap_simple_server_host", - "url": "https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html" - } - ] - }, - "authentication_ldap_simple_server_port": { - "cli": "--authentication-ldap-simple-server-port=port_num", - "default": "389", - "dynamic": true, - "name": "authentication_ldap_simple_server_port", - "range": { - "from": 1, - "to": 32376 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_authentication_ldap_simple_server_port", - "url": "https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html" - } - ] - }, - "authentication_ldap_simple_tls": { - "cli": "--authentication-ldap-simple-tls[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "authentication_ldap_simple_tls", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_authentication_ldap_simple_tls", - "url": "https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html" - } - ] - }, - "authentication_ldap_simple_user_search_attr": { - "cli": "--authentication-ldap-simple-user-search-attr=value", - "default": "uid", - "dynamic": true, - "name": "authentication_ldap_simple_user_search_attr", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_authentication_ldap_simple_user_search_attr", - "url": "https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html" - } - ] - }, - "binlog_row_event_max_size": { - "cli": "--binlog-row-event-max-size=#", - "default": "8192", - "name": "binlog_row_event_max_size", - "range": { - "from": 256 - }, - "type": "integer", - "ids": [ - { - "anchor": "option_mysqld_binlog-row-event-max-size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_binlog_row_event_max_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "option_mysqld_binlog-row-event-max-size", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "binlog_do_db": { - "cli": "--binlog-do-db=name", - "name": "binlog_do_db", - "type": "string", - "ids": [ - { - "anchor": "option_mysqld_binlog-do-db", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "option_mysqld_binlog-do-db", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "binlog_ignore_db": { - "cli": "--binlog-ignore-db=name", - "name": "binlog_ignore_db", - "type": "string", - "ids": [ - { - "anchor": "option_mysqld_binlog-ignore-db", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "option_mysqld_binlog-ignore-db", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "max_binlog_dump_events": { - "cli": "--max-binlog-dump-events=#", - "default": "0", - "name": "max_binlog_dump_events", - "type": "integer", - "ids": [ - { - "anchor": "option_mysqld_max-binlog-dump-events", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "option_mysqld_max-binlog-dump-events", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "sporadic_binlog_dump_fail": { - "cli": "--sporadic-binlog-dump-fail[={OFF|ON}]", - "default": "OFF", - "name": "sporadic_binlog_dump_fail", - "type": "boolean", - "ids": [ - { - "anchor": "option_mysqld_sporadic-binlog-dump-fail", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "option_mysqld_sporadic-binlog-dump-fail", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "binlog_encryption": { - "cli": "--binlog-encryption[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "binlog_encryption", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_binlog_encryption", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - } - ] - }, - "binlog_error_action": { - "cli": "--binlog-error-action[=value]", - "dynamic": true, - "name": "binlog_error_action", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "IGNORE_ERROR", - "ABORT_SERVER" - ], - "ids": [ - { - "anchor": "sysvar_binlog_error_action", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_binlog_error_action", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "binlog_expire_logs_seconds": { - "cli": "--binlog-expire-logs-seconds=#", - "dynamic": true, - "name": "binlog_expire_logs_seconds", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_binlog_expire_logs_seconds", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - } - ] - }, - "binlog_group_commit_sync_delay": { - "cli": "--binlog-group-commit-sync-delay=#", - "default": "0", - "dynamic": true, - "name": "binlog_group_commit_sync_delay", - "range": { - "from": 0, - "to": 1000000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_binlog_group_commit_sync_delay", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_binlog_group_commit_sync_delay", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "binlog_group_commit_sync_no_delay_count": { - "cli": "--binlog-group-commit-sync-no-delay-count=#", - "default": "0", - "dynamic": true, - "name": "binlog_group_commit_sync_no_delay_count", - "range": { - "from": 0, - "to": 1000000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_binlog_group_commit_sync_no_delay_count", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_binlog_group_commit_sync_no_delay_count", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "binlog_max_flush_queue_time": { - "cli": "--binlog-max-flush-queue-time=#", - "default": "0", - "dynamic": true, - "name": "binlog_max_flush_queue_time", - "range": { - "from": 0, - "to": 100000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_binlog_max_flush_queue_time", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_binlog_max_flush_queue_time", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "binlog_order_commits": { - "cli": "--binlog-order-commits[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "name": "binlog_order_commits", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_binlog_order_commits", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_binlog_order_commits", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "binlog_rotate_encryption_master_key_at_startup": { - "cli": "--binlog-rotate-encryption-master-key-at-startup[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "name": "binlog_rotate_encryption_master_key_at_startup", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_binlog_rotate_encryption_master_key_at_startup", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - } - ] - }, - "binlog_row_value_options": { - "cli": "--binlog-row-value-options=#", - "default": "''", - "dynamic": true, - "name": "binlog_row_value_options", - "scope": [ - "global", - "session" - ], - "type": "set", - "validValues": [ - "PARTIAL_JSON" - ], - "ids": [ - { - "anchor": "sysvar_binlog_row_value_options", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - } - ] - }, - "binlog_rows_query_log_events": { - "cli": "--binlog-rows-query-log-events[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "binlog_rows_query_log_events", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_binlog_rows_query_log_events", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_binlog_rows_query_log_events", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "binlog_transaction_dependency_tracking": { - "cli": "--binlog-transaction-dependency-tracking=value", - "default": "COMMIT_ORDER", - "dynamic": true, - "name": "binlog_transaction_dependency_tracking", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "COMMIT_ORDER", - "WRITESET", - "WRITESET_SESSION" - ], - "ids": [ - { - "anchor": "sysvar_binlog_transaction_dependency_tracking", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_binlog_transaction_dependency_tracking", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "binlog_transaction_dependency_history_size": { - "cli": "--binlog-transaction-dependency-history-size=#", - "default": "25000", - "dynamic": true, - "name": "binlog_transaction_dependency_history_size", - "range": { - "from": 1, - "to": 1000000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_binlog_transaction_dependency_history_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_binlog_transaction_dependency_history_size", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "log_bin_use_v1_row_events": { - "cli": "--log-bin-use-v1-row-events[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "name": "log_bin_use_v1_row_events", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_log_bin_use_v1_row_events", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_log_bin_use_v1_row_events", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "log_builtin_as_identified_by_password": { - "cli": "--log-builtin-as-identified-by-password[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "log_builtin_as_identified_by_password", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_log_builtin_as_identified_by_password", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_log_builtin_as_identified_by_password", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "log_statements_unsafe_for_binlog": { - "cli": "--log-statements-unsafe-for-binlog[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "name": "log_statements_unsafe_for_binlog", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_log_statements_unsafe_for_binlog", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_log_statements_unsafe_for_binlog", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "original_commit_timestamp": { - "dynamic": true, - "name": "original_commit_timestamp", - "scope": [ - "session" - ], - "type": "numeric", - "ids": [ - { - "anchor": "sysvar_original_commit_timestamp", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - } - ] - }, - "transaction_write_set_extraction": { - "cli": "--transaction-write-set-extraction[=value]", - "default": "OFF", - "dynamic": true, - "name": "transaction_write_set_extraction", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "ids": [ - { - "anchor": "sysvar_transaction_write_set_extraction", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html" - }, - { - "anchor": "sysvar_transaction_write_set_extraction", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "binlogging_impossible_mode": { - "cli": "--binlogging-impossible-mode[=value]", - "default": "IGNORE_ERROR", - "dynamic": true, - "name": "binlogging_impossible_mode", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "IGNORE_ERROR", - "ABORT_SERVER" - ], - "ids": [ - { - "anchor": "sysvar_binlogging_impossible_mode", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "log_backward_compatible_user_definitions": { - "cli": "--log-backward-compatible-user-definitions[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "log_backward_compatible_user_definitions", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_log_backward_compatible_user_definitions", - "url": "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html" - } - ] - }, - "binlog_gtid_simple_recovery": { - "cli": "--binlog-gtid-simple-recovery[={OFF|ON}]", - "default": "ON", - "dynamic": false, - "name": "binlog_gtid_simple_recovery", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_binlog_gtid_simple_recovery", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-gtids.html" - } - ] - }, - "enforce_gtid_consistency": { - "cli": "--enforce-gtid-consistency[=value]", - "default": "OFF", - "dynamic": true, - "name": "enforce_gtid_consistency", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "OFF", - "ON", - "WARN" - ], - "ids": [ - { - "anchor": "sysvar_enforce_gtid_consistency", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-gtids.html" - } - ] - }, - "gtid_executed": { - "dynamic": false, - "name": "gtid_executed", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_gtid_executed", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-gtids.html" - } - ] - }, - "gtid_executed_compression_period": { - "cli": "--gtid-executed-compression-period=#", - "default": "1000", - "dynamic": true, - "name": "gtid_executed_compression_period", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_gtid_executed_compression_period", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-gtids.html" - } - ] - }, - "gtid_mode": { - "cli": "--gtid-mode=MODE", - "default": "OFF", - "dynamic": true, - "name": "gtid_mode", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "OFF", - "OFF_PERMISSIVE", - "ON_PERMISSIVE", - "ON" - ], - "ids": [ - { - "anchor": "sysvar_gtid_mode", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-gtids.html" - } - ] - }, - "gtid_next": { - "default": "AUTOMATIC", - "dynamic": true, - "name": "gtid_next", - "scope": [ - "session" - ], - "type": "enumeration", - "validValues": [ - "AUTOMATIC", - "ANONYMOUS", - "UUID:NUMBER" - ], - "ids": [ - { - "anchor": "sysvar_gtid_next", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-gtids.html" - } - ] - }, - "gtid_owned": { - "dynamic": false, - "name": "gtid_owned", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_gtid_owned", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-gtids.html" - } - ] - }, - "gtid_purged": { - "dynamic": true, - "name": "gtid_purged", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_gtid_purged", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-gtids.html" - } - ] - }, - "show_slave_auth_info": { - "cli": "--show-slave-auth-info[={OFF|ON}]", - "default": "OFF", - "name": "show_slave_auth_info", - "type": "boolean", - "ids": [ - { - "anchor": "option_mysqld_show-slave-auth-info", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-master.html" - } - ] - }, - "immediate_server_version": { - "dynamic": true, - "name": "immediate_server_version", - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_immediate_server_version", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-master.html" - } - ] - }, - "original_server_version": { - "dynamic": true, - "name": "original_server_version", - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_original_server_version", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-master.html" - } - ] - }, - "rpl_semi_sync_master_wait_for_slave_count": { - "cli": "--rpl-semi-sync-master-wait-for-slave-count=#", - "default": "1", - "dynamic": true, - "name": "rpl_semi_sync_master_wait_for_slave_count", - "range": { - "from": 1, - "to": 65535 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_rpl_semi_sync_master_wait_for_slave_count", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-master.html" - } - ] - }, - "master_info_file": { - "cli": "--master-info-file=file_name", - "default": "master.info", - "name": "master_info_file", - "type": "file name", - "ids": [ - { - "anchor": "option_mysqld_master-info-file", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "master_retry_count": { - "cli": "--master-retry-count=#", - "default": "86400", - "name": "master_retry_count", - "range": { - "from": 0 - }, - "type": "integer", - "ids": [ - { - "anchor": "option_mysqld_master-retry-count", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "replicate_same_server_id": { - "cli": "--replicate-same-server-id[={OFF|ON}]", - "default": "OFF", - "name": "replicate_same_server_id", - "type": "boolean", - "ids": [ - { - "anchor": "option_mysqld_replicate-same-server-id", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "skip_slave_start": { - "cli": "--skip-slave-start[={OFF|ON}]", - "default": "OFF", - "name": "skip_slave_start", - "type": "boolean", - "ids": [ - { - "anchor": "option_mysqld_skip-slave-start", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "abort_slave_event_count": { - "cli": "--abort-slave-event-count=#", - "default": "0", - "name": "abort_slave_event_count", - "range": { - "from": 0 - }, - "type": "integer", - "ids": [ - { - "anchor": "option_mysqld_abort-slave-event-count", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "disconnect_slave_event_count": { - "cli": "--disconnect-slave-event-count=#", - "default": "0", - "name": "disconnect_slave_event_count", - "type": "integer", - "ids": [ - { - "anchor": "option_mysqld_disconnect-slave-event-count", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "master_info_repository": { - "cli": "--master-info-repository={FILE|TABLE}", - "dynamic": true, - "name": "master_info_repository", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "FILE", - "TABLE" - ], - "ids": [ - { - "anchor": "sysvar_master_info_repository", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "relay_log_info_repository": { - "cli": "--relay-log-info-repository=value", - "dynamic": true, - "name": "relay_log_info_repository", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "FILE", - "TABLE" - ], - "ids": [ - { - "anchor": "sysvar_relay_log_info_repository", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "rpl_read_size": { - "cli": "--rpl-read-size=#", - "default": "8192", - "dynamic": true, - "name": "rpl_read_size", - "range": { - "from": 8192, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_rpl_read_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "rpl_stop_slave_timeout": { - "cli": "--rpl-stop-slave-timeout=seconds", - "default": "31536000", - "dynamic": true, - "name": "rpl_stop_slave_timeout", - "range": { - "from": 2, - "to": 31536000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_rpl_stop_slave_timeout", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "slave_checkpoint_group": { - "cli": "--slave-checkpoint-group=#", - "default": "512", - "dynamic": true, - "name": "slave_checkpoint_group", - "range": { - "from": 32, - "to": 524280 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_slave_checkpoint_group", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "slave_checkpoint_period": { - "cli": "--slave-checkpoint-period=#", - "default": "300", - "dynamic": true, - "name": "slave_checkpoint_period", - "range": { - "from": 1, - "to": 4 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_slave_checkpoint_period", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "slave_parallel_type": { - "cli": "--slave-parallel-type=value", - "default": "DATABASE", - "dynamic": true, - "name": "slave_parallel_type", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "DATABASE", - "LOGICAL_CLOCK" - ], - "ids": [ - { - "anchor": "sysvar_slave_parallel_type", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "slave_pending_jobs_size_max": { - "cli": "--slave-pending-jobs-size-max=#", - "dynamic": true, - "name": "slave_pending_jobs_size_max", - "range": { - "from": 1024, - "to": 16 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_slave_pending_jobs_size_max", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "slave_preserve_commit_order": { - "cli": "--slave-preserve-commit-order[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "slave_preserve_commit_order", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_slave_preserve_commit_order", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "slave_rows_search_algorithms": { - "cli": "--slave-rows-search-algorithms=value", - "dynamic": true, - "name": "slave_rows_search_algorithms", - "scope": [ - "global" - ], - "type": "set", - "validValues": [ - "TABLE_SCAN,INDEX_SCAN", - "INDEX_SCAN,HASH_SCAN", - "TABLE_SCAN,HASH_SCAN", - "TABLE_SCAN,INDEX_SCAN,HASH_SCAN" - ], - "ids": [ - { - "anchor": "sysvar_slave_rows_search_algorithms", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html" - } - ] - }, - "server_uuid": { - "dynamic": false, - "name": "server_uuid", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_server_uuid", - "url": "https://dev.mysql.com/doc/refman/8.0/en/replication-options.html" - } - ] - }, - "help": { - "cli": "--help", - "name": "help", - "ids": [ - { - "anchor": "option_mysqld_help", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "allow_suspicious_udfs": { - "cli": "--allow-suspicious-udfs[={OFF|ON}]", - "default": "OFF", - "name": "allow_suspicious_udfs", - "type": "boolean", - "ids": [ - { - "anchor": "option_mysqld_allow-suspicious-udfs", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "ansi": { - "cli": "--ansi", - "name": "ansi", - "ids": [ - { - "anchor": "option_mysqld_ansi", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "character_set_client_handshake": { - "cli": "--character-set-client-handshake[={OFF|ON}]", - "default": "ON", - "name": "character_set_client_handshake", - "type": "boolean", - "ids": [ - { - "anchor": "option_mysqld_character-set-client-handshake", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "chroot": { - "cli": "--chroot=dir_name", - "name": "chroot", - "type": "directory name", - "ids": [ - { - "anchor": "option_mysqld_chroot", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "console": { - "cli": "--console", - "name": "console", - "ids": [ - { - "anchor": "option_mysqld_console", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "daemonize": { - "cli": "--daemonize[={OFF|ON}]", - "default": "OFF", - "name": "daemonize", - "type": "boolean", - "ids": [ - { - "anchor": "option_mysqld_daemonize", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "debug_sync_timeout": { - "cli": "--debug-sync-timeout[=#]", - "name": "debug_sync_timeout", - "type": "integer", - "ids": [ - { - "anchor": "option_mysqld_debug-sync-timeout", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "default_time_zone": { - "cli": "--default-time-zone=name", - "name": "default_time_zone", - "type": "string", - "ids": [ - { - "anchor": "option_mysqld_default-time-zone", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "des_key_file": { - "cli": "--des-key-file=file_name", - "name": "des_key_file", - "ids": [ - { - "anchor": "option_mysqld_des-key-file", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "early_plugin_load": { - "cli": "--early-plugin-load=plugin_list", - "default": "empty string", - "name": "early_plugin_load", - "type": "string", - "ids": [ - { - "anchor": "option_mysqld_early-plugin-load", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "exit_info": { - "cli": "--exit-info[=flags]", - "name": "exit_info", - "type": "integer", - "ids": [ - { - "anchor": "option_mysqld_exit-info", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "external_locking": { - "cli": "--external-locking[={OFF|ON}]", - "default": "OFF", - "name": "external_locking", - "type": "boolean", - "ids": [ - { - "anchor": "option_mysqld_external-locking", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "gdb": { - "cli": "--gdb[={OFF|ON}]", - "default": "OFF", - "name": "gdb", - "type": "boolean", - "ids": [ - { - "anchor": "option_mysqld_gdb", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "initialize": { - "cli": "--initialize[={OFF|ON}]", - "default": "OFF", - "name": "initialize", - "type": "boolean", - "ids": [ - { - "anchor": "option_mysqld_initialize", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "initialize_insecure": { - "cli": "--initialize-insecure[={OFF|ON}]", - "default": "OFF", - "name": "initialize_insecure", - "type": "boolean", - "ids": [ - { - "anchor": "option_mysqld_initialize-insecure", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "install": { - "cli": "--install [service_name]", - "name": "install", - "ids": [ - { - "anchor": "option_mysqld_install", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "install_manual": { - "cli": "--install-manual [service_name]", - "name": "install_manual", - "ids": [ - { - "anchor": "option_mysqld_install-manual", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "language": { - "cli": "--language=name", - "default": "/usr/local/mysql/share/mysql/english/", - "dynamic": false, - "name": "language", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - { - "anchor": "option_mysqld_language", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "local_service": { - "cli": "--local-service", - "name": "local_service", - "ids": [ - { - "anchor": "option_mysqld_local-service", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "log_isam": { - "cli": "--log-isam[=file_name]", - "name": "log_isam", - "type": "file name", - "ids": [ - { - "anchor": "option_mysqld_log-isam", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "log_raw": { - "cli": "--log-raw[={OFF|ON}]", - "default": "OFF", - "name": "log_raw", - "type": "boolean", - "ids": [ - { - "anchor": "option_mysqld_log-raw", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - }, - { - "anchor": "sysvar_log_raw", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "log_short_format": { - "cli": "--log-short-format[={OFF|ON}]", - "default": "OFF", - "name": "log_short_format", - "type": "boolean", - "ids": [ - { - "anchor": "option_mysqld_log-short-format", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "log_tc": { - "cli": "--log-tc=file_name", - "default": "tc.log", - "name": "log_tc", - "type": "file name", - "ids": [ - { - "anchor": "option_mysqld_log-tc", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "memlock": { - "cli": "--memlock[={OFF|ON}]", - "default": "OFF", - "name": "memlock", - "type": "boolean", - "ids": [ - { - "anchor": "option_mysqld_memlock", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "no_dd_upgrade": { - "cli": "--no-dd-upgrade[={OFF|ON}]", - "default": "OFF", - "name": "no_dd_upgrade", - "type": "boolean", - "ids": [ - { - "anchor": "option_mysqld_no-dd-upgrade", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "no_monitor": { - "cli": "--no-monitor[={OFF|ON}]", - "default": "OFF", - "name": "no_monitor", - "type": "boolean", - "ids": [ - { - "anchor": "option_mysqld_no-monitor", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "old_style_user_limits": { - "cli": "--old-style-user-limits[={OFF|ON}]", - "default": "OFF", - "name": "old_style_user_limits", - "type": "boolean", - "ids": [ - { - "anchor": "option_mysqld_old-style-user-limits", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "plugin_load": { - "cli": "--plugin-load=plugin_list", - "dynamic": false, - "name": "plugin_load", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "option_mysqld_plugin-load", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "plugin_load_add": { - "cli": "--plugin-load-add=plugin_list", - "dynamic": false, - "name": "plugin_load_add", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "option_mysqld_plugin-load-add", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "port_open_timeout": { - "cli": "--port-open-timeout=#", - "default": "0", - "name": "port_open_timeout", - "type": "integer", - "ids": [ - { - "anchor": "option_mysqld_port-open-timeout", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "remove": { - "cli": "--remove [service_name]", - "name": "remove", - "ids": [ - { - "anchor": "option_mysqld_remove", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "safe_user_create": { - "cli": "--safe-user-create[={OFF|ON}]", - "default": "OFF", - "name": "safe_user_create", - "type": "boolean", - "ids": [ - { - "anchor": "option_mysqld_safe-user-create", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "skip_grant_tables": { - "cli": "--skip-grant-tables[={OFF|ON}]", - "default": "OFF", - "name": "skip_grant_tables", - "type": "boolean", - "ids": [ - { - "anchor": "option_mysqld_skip-grant-tables", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "skip_host_cache": { - "cli": "--skip-host-cache", - "name": "skip_host_cache", - "ids": [ - { - "anchor": "option_mysqld_skip-host-cache", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "skip_new": { - "cli": "--skip-new", - "name": "skip_new", - "ids": [ - { - "anchor": "option_mysqld_skip-new", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "skip_stack_trace": { - "cli": "--skip-stack-trace", - "name": "skip_stack_trace", - "ids": [ - { - "anchor": "option_mysqld_skip-stack-trace", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "slow_start_timeout": { - "cli": "--slow-start-timeout=#", - "default": "15000", - "name": "slow_start_timeout", - "type": "integer", - "ids": [ - { - "anchor": "option_mysqld_slow-start-timeout", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "standalone": { - "cli": "--standalone", - "name": "standalone", - "ids": [ - { - "anchor": "option_mysqld_standalone", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "super_large_pages": { - "cli": "--super-large-pages[={OFF|ON}]", - "default": "OFF", - "name": "super_large_pages", - "type": "boolean", - "ids": [ - { - "anchor": "option_mysqld_super-large-pages", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "symbolic_links": { - "cli": "--symbolic-links[={OFF|ON}]", - "name": "symbolic_links", - "type": "boolean", - "ids": [ - { - "anchor": "option_mysqld_symbolic-links", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "sysdate_is_now": { - "cli": "--sysdate-is-now[={OFF|ON}]", - "default": "OFF", - "name": "sysdate_is_now", - "type": "boolean", - "ids": [ - { - "anchor": "option_mysqld_sysdate-is-now", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "tc_heuristic_recover": { - "cli": "--tc-heuristic-recover=name", - "default": "COMMIT", - "name": "tc_heuristic_recover", - "type": "enumeration", - "validValues": [ - "COMMIT", - "ROLLBACK" - ], - "ids": [ - { - "anchor": "option_mysqld_tc-heuristic-recover", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "temp_pool": { - "cli": "--temp-pool[={OFF|ON}]", - "name": "temp_pool", - "type": "boolean", - "ids": [ - { - "anchor": "option_mysqld_temp-pool", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "transaction_isolation": { - "cli": "--transaction-isolation=name", - "default": "REPEATABLE-READ", - "dynamic": true, - "name": "transaction_isolation", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "READ-UNCOMMITTED", - "READ-COMMITTED", - "REPEATABLE-READ", - "SERIALIZABLE" - ], - "ids": [ - { - "anchor": "option_mysqld_transaction-isolation", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - }, - { - "anchor": "sysvar_transaction_isolation", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "transaction_read_only": { - "cli": "--transaction-read-only[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "transaction_read_only", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "option_mysqld_transaction-read-only", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - }, - { - "anchor": "sysvar_transaction_read_only", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "upgrade": { - "cli": "--upgrade=value", - "default": "AUTO", - "name": "upgrade", - "type": "enumeration", - "validValues": [ - "AUTO", - "NONE", - "MINIMAL", - "FORCE" - ], - "ids": [ - { - "anchor": "option_mysqld_upgrade", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "user": { - "cli": "--user=name", - "name": "user", - "type": "string", - "ids": [ - { - "anchor": "option_mysqld_user", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "validate_config": { - "cli": "--validate-config[={OFF|ON}]", - "default": "OFF", - "name": "validate_config", - "type": "boolean", - "ids": [ - { - "anchor": "option_mysqld_validate-config", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-options.html" - } - ] - }, - "activate_all_roles_on_login": { - "cli": "--activate-all-roles-on-login[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "activate_all_roles_on_login", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_activate_all_roles_on_login", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "admin_address": { - "cli": "--admin-address=addr", - "dynamic": false, - "name": "admin_address", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_admin_address", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "admin_port": { - "cli": "--admin-port=port_num", - "default": "33062", - "dynamic": false, - "name": "admin_port", - "range": { - "from": 0, - "to": 65535 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_admin_port", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "authentication_windows_log_level": { - "cli": "--authentication-windows-log-level=#", - "default": "2", - "dynamic": false, - "name": "authentication_windows_log_level", - "range": { - "from": 0, - "to": 4 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_authentication_windows_log_level", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "authentication_windows_use_principal_name": { - "cli": "--authentication-windows-use-principal-name[={OFF|ON}]", - "default": "ON", - "dynamic": false, - "name": "authentication_windows_use_principal_name", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_authentication_windows_use_principal_name", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "auto_generate_certs": { - "cli": "--auto-generate-certs[={OFF|ON}]", - "default": "ON", - "dynamic": false, - "name": "auto_generate_certs", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_auto_generate_certs", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "avoid_temporal_upgrade": { - "cli": "--avoid-temporal-upgrade[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "avoid_temporal_upgrade", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_avoid_temporal_upgrade", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "block_encryption_mode": { - "cli": "--block-encryption-mode=#", - "default": "aes-128-ecb", - "dynamic": true, - "name": "block_encryption_mode", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_block_encryption_mode", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "caching_sha2_password_auto_generate_rsa_keys": { - "cli": "--caching-sha2-password-auto-generate-rsa-keys[={OFF|ON}]", - "default": "ON", - "dynamic": false, - "name": "caching_sha2_password_auto_generate_rsa_keys", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_caching_sha2_password_auto_generate_rsa_keys", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "caching_sha2_password_private_key_path": { - "cli": "--caching-sha2-password-private-key-path=file_name", - "default": "private_key.pem", - "dynamic": false, - "name": "caching_sha2_password_private_key_path", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - { - "anchor": "sysvar_caching_sha2_password_private_key_path", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "caching_sha2_password_public_key_path": { - "cli": "--caching-sha2-password-public-key-path=file_name", - "default": "public_key.pem", - "dynamic": false, - "name": "caching_sha2_password_public_key_path", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - { - "anchor": "sysvar_caching_sha2_password_public_key_path", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "check_proxy_users": { - "cli": "--check-proxy-users[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "check_proxy_users", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_check_proxy_users", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "create_admin_listener_thread": { - "cli": "--create-admin-listener-thread[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "name": "create_admin_listener_thread", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_create_admin_listener_thread", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "cte_max_recursion_depth": { - "cli": "--cte-max-recursion-depth=#", - "default": "1000", - "dynamic": true, - "name": "cte_max_recursion_depth", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_cte_max_recursion_depth", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "default_authentication_plugin": { - "cli": "--default-authentication-plugin=plugin_name", - "dynamic": false, - "name": "default_authentication_plugin", - "scope": [ - "global" - ], - "type": "enumeration", - "ids": [ - { - "anchor": "sysvar_default_authentication_plugin", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "default_collation_for_utf8mb4": { - "dynamic": true, - "name": "default_collation_for_utf8mb4", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "utf8mb4_0900_ai_ci", - "utf8mb4_general_ci" - ], - "ids": [ - { - "anchor": "sysvar_default_collation_for_utf8mb4", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "default_table_encryption": { - "cli": "--default-table-encryption[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "default_table_encryption", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_default_table_encryption", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "disabled_storage_engines": { - "cli": "--disabled-storage-engines=engine[,engine]...", - "default": "empty string", - "dynamic": false, - "name": "disabled_storage_engines", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_disabled_storage_engines", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "dragnet.log_error_filter_rules": { - "cli": "--dragnet.log-error-filter-rules=value", - "default": "IF prio>=INFORMATION THEN drop. IF EXISTS source_line THEN unset source_line.", - "dynamic": true, - "name": "dragnet.log_error_filter_rules", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_dragnet.log_error_filter_rules", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "end_markers_in_json": { - "cli": "--end-markers-in-json[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "end_markers_in_json", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_end_markers_in_json", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "generated_random_password_length": { - "cli": "--generated-random-password-length=#", - "default": "20", - "dynamic": true, - "name": "generated_random_password_length", - "range": { - "from": 5, - "to": 255 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_generated_random_password_length", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "have_statement_timeout": { - "dynamic": false, - "name": "have_statement_timeout", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_have_statement_timeout", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "histogram_generation_max_mem_size": { - "cli": "--histogram-generation-max-mem-size=#", - "default": "20000000", - "dynamic": true, - "name": "histogram_generation_max_mem_size", - "range": { - "from": 1000000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_histogram_generation_max_mem_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "information_schema_stats_expiry": { - "cli": "--information-schema-stats-expiry=#", - "default": "86400", - "dynamic": true, - "name": "information_schema_stats_expiry", - "range": { - "from": 0, - "to": 31536000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_information_schema_stats_expiry", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "internal_tmp_disk_storage_engine": { - "cli": "--internal-tmp-disk-storage-engine=#", - "default": "INNODB", - "dynamic": true, - "name": "internal_tmp_disk_storage_engine", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "MYISAM", - "INNODB" - ], - "ids": [ - { - "anchor": "sysvar_internal_tmp_disk_storage_engine", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "internal_tmp_mem_storage_engine": { - "cli": "--internal-tmp-mem-storage-engine=#", - "default": "TempTable", - "dynamic": true, - "name": "internal_tmp_mem_storage_engine", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "TempTable", - "MEMORY" - ], - "ids": [ - { - "anchor": "sysvar_internal_tmp_mem_storage_engine", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "log_error_filter_rules": { - "cli": "--log-error-filter-rules=value", - "default": "set by server", - "dynamic": true, - "name": "log_error_filter_rules", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_log_error_filter_rules", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "log_error_services": { - "cli": "--log-error-services=value", - "default": "log_filter_internal; log_sink_internal", - "dynamic": true, - "name": "log_error_services", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_log_error_services", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "log_error_suppression_list": { - "cli": "--log-error-suppression-list=value", - "default": "empty string", - "dynamic": true, - "name": "log_error_suppression_list", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_log_error_suppression_list", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "log_error_verbosity": { - "cli": "--log-error-verbosity=#", - "dynamic": true, - "name": "log_error_verbosity", - "range": { - "from": 1, - "to": 3 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_log_error_verbosity", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "log_slow_extra": { - "cli": "--log-slow-extra[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "log_slow_extra", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_log_slow_extra", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "log_syslog": { - "cli": "--log-syslog[={OFF|ON}]", - "dynamic": true, - "name": "log_syslog", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_log_syslog", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "log_syslog_facility": { - "cli": "--log-syslog-facility=value", - "default": "daemon", - "dynamic": true, - "name": "log_syslog_facility", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_log_syslog_facility", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "log_syslog_include_pid": { - "cli": "--log-syslog-include-pid[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "name": "log_syslog_include_pid", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_log_syslog_include_pid", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "log_syslog_tag": { - "cli": "--log-syslog-tag=tag", - "default": "empty string", - "dynamic": true, - "name": "log_syslog_tag", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_log_syslog_tag", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "log_timestamps": { - "cli": "--log-timestamps=#", - "default": "UTC", - "dynamic": true, - "name": "log_timestamps", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "UTC", - "SYSTEM" - ], - "ids": [ - { - "anchor": "sysvar_log_timestamps", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "log_throttle_queries_not_using_indexes": { - "cli": "--log-throttle-queries-not-using-indexes=#", - "default": "0", - "dynamic": true, - "name": "log_throttle_queries_not_using_indexes", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_log_throttle_queries_not_using_indexes", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "mandatory_roles": { - "cli": "--mandatory-roles=value", - "default": "empty string", - "dynamic": true, - "name": "mandatory_roles", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_mandatory_roles", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "max_execution_time": { - "cli": "--max-execution-time=#", - "default": "0", - "dynamic": true, - "name": "max_execution_time", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_max_execution_time", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "max_points_in_geometry": { - "cli": "--max-points-in-geometry=#", - "default": "65536", - "dynamic": true, - "name": "max_points_in_geometry", - "range": { - "from": 3, - "to": 1048576 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_max_points_in_geometry", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "mecab_rc_file": { - "cli": "--mecab-rc-file=file_name", - "dynamic": false, - "name": "mecab_rc_file", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - { - "anchor": "sysvar_mecab_rc_file", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "mysql_native_password_proxy_users": { - "cli": "--mysql-native-password-proxy-users[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "mysql_native_password_proxy_users", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_mysql_native_password_proxy_users", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "named_pipe_full_access_group": { - "cli": "--named-pipe-full-access-group=value", - "default": "*everyone*", - "dynamic": false, - "name": "named_pipe_full_access_group", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "*everyone*", - "empty string" - ], - "ids": [ - { - "anchor": "sysvar_named_pipe_full_access_group", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "new": { - "cli": "--new[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "new", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_new", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "ngram_token_size": { - "cli": "--ngram-token-size=#", - "default": "2", - "dynamic": false, - "name": "ngram_token_size", - "range": { - "from": 1, - "to": 10 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_ngram_token_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "offline_mode": { - "cli": "--offline-mode[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "offline_mode", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_offline_mode", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "optimizer_trace_features": { - "cli": "--optimizer-trace-features=value", - "dynamic": true, - "name": "optimizer_trace_features", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_optimizer_trace_features", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "optimizer_trace_limit": { - "cli": "--optimizer-trace-limit=#", - "default": "1", - "dynamic": true, - "name": "optimizer_trace_limit", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_optimizer_trace_limit", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "optimizer_trace_offset": { - "cli": "--optimizer-trace-offset=#", - "default": "-1", - "dynamic": true, - "name": "optimizer_trace_offset", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_optimizer_trace_offset", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "parser_max_mem_size": { - "cli": "--parser-max-mem-size=#", - "dynamic": true, - "name": "parser_max_mem_size", - "range": { - "from": 10000000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_parser_max_mem_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "partial_revokes": { - "cli": "--partial-revokes[={OFF|ON}]", - "default": "OFF (if partial revokes do not exist)ON (if partial revokes exist)", - "dynamic": true, - "name": "partial_revokes", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_partial_revokes", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "password_history": { - "cli": "--password-history=#", - "default": "0", - "dynamic": true, - "name": "password_history", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_password_history", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "password_require_current": { - "cli": "--password-require-current[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "password_require_current", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_password_require_current", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "password_reuse_interval": { - "cli": "--password-reuse-interval=#", - "default": "0", - "dynamic": true, - "name": "password_reuse_interval", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_password_reuse_interval", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "persisted_globals_load": { - "cli": "--persisted-globals-load[={OFF|ON}]", - "default": "ON", - "dynamic": false, - "name": "persisted_globals_load", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_persisted_globals_load", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "persist_only_admin_x509_subject": { - "cli": "--persist-only-admin-x509-subject=string", - "default": "empty string", - "dynamic": false, - "name": "persist_only_admin_x509_subject", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_persist_only_admin_x509_subject", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "print_identified_with_as_hex": { - "cli": "--print-identified-with-as-hex[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "print_identified_with_as_hex", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_print_identified_with_as_hex", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "protocol_compression_algorithms": { - "cli": "--protocol-compression-algorithms=value", - "default": "zlib,zstd,uncompressed", - "dynamic": true, - "name": "protocol_compression_algorithms", - "scope": [ - "global" - ], - "type": "set", - "validValues": [ - "zlib", - "zstd", - "uncompressed" - ], - "ids": [ - { - "anchor": "sysvar_protocol_compression_algorithms", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "range_optimizer_max_mem_size": { - "cli": "--range-optimizer-max-mem-size=#", - "default": "8388608", - "dynamic": true, - "name": "range_optimizer_max_mem_size", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_range_optimizer_max_mem_size", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "rbr_exec_mode": { - "default": "STRICT", - "dynamic": true, - "name": "rbr_exec_mode", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "IDEMPOTENT", - "STRICT" - ], - "ids": [ - { - "anchor": "sysvar_rbr_exec_mode", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "regexp_stack_limit": { - "cli": "--regexp-stack-limit=#", - "default": "8000000", - "dynamic": true, - "name": "regexp_stack_limit", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_regexp_stack_limit", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "regexp_time_limit": { - "cli": "--regexp-time-limit=#", - "default": "32", - "dynamic": true, - "name": "regexp_time_limit", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_regexp_time_limit", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "require_secure_transport": { - "cli": "--require-secure-transport[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "require_secure_transport", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_require_secure_transport", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "resultset_metadata": { - "default": "FULL", - "dynamic": true, - "name": "resultset_metadata", - "scope": [ - "session" - ], - "type": "enumeration", - "validValues": [ - "FULL", - "NONE" - ], - "ids": [ - { - "anchor": "sysvar_resultset_metadata", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "secondary_engine_cost_threshold": { - "default": "100000.000000", - "dynamic": true, - "name": "secondary_engine_cost_threshold", - "range": { - "from": 0 - }, - "scope": [ - "session" - ], - "type": "numeric", - "ids": [ - { - "anchor": "sysvar_secondary_engine_cost_threshold", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "schema_definition_cache": { - "cli": "--schema-definition-cache=#", - "default": "256", - "dynamic": true, - "name": "schema_definition_cache", - "range": { - "from": 256, - "to": 524288 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_schema_definition_cache", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "session_track_gtids": { - "cli": "--session-track-gtids=value", - "default": "OFF", - "dynamic": true, - "name": "session_track_gtids", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "OFF", - "OWN_GTID", - "ALL_GTIDS" - ], - "ids": [ - { - "anchor": "sysvar_session_track_gtids", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "sha256_password_auto_generate_rsa_keys": { - "cli": "--sha256-password-auto-generate-rsa-keys[={OFF|ON}]", - "default": "ON", - "dynamic": false, - "name": "sha256_password_auto_generate_rsa_keys", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_sha256_password_auto_generate_rsa_keys", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "sha256_password_private_key_path": { - "cli": "--sha256-password-private-key-path=file_name", - "default": "private_key.pem", - "dynamic": false, - "name": "sha256_password_private_key_path", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - { - "anchor": "sysvar_sha256_password_private_key_path", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "sha256_password_proxy_users": { - "cli": "--sha256-password-proxy-users[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "sha256_password_proxy_users", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_sha256_password_proxy_users", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "sha256_password_public_key_path": { - "cli": "--sha256-password-public-key-path=file_name", - "default": "public_key.pem", - "dynamic": false, - "name": "sha256_password_public_key_path", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - { - "anchor": "sysvar_sha256_password_public_key_path", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "show_compatibility_56": { - "cli": "--show-compatibility-56[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "show_compatibility_56", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_show_compatibility_56", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "show_create_table_skip_secondary_engine": { - "cli": "--show-create-table-skip-secondary-engine[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "show_create_table_skip_secondary_engine", - "scope": [ - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_show_create_table_skip_secondary_engine", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "show_create_table_verbosity": { - "cli": "--show-create-table-verbosity[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "show_create_table_verbosity", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_show_create_table_verbosity", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "show_old_temporals": { - "cli": "--show-old-temporals[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "show_old_temporals", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_show_old_temporals", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "sql_require_primary_key": { - "cli": "--sql-require-primary-key[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "sql_require_primary_key", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_sql_require_primary_key", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "ssl_fips_mode": { - "cli": "--ssl-fips-mode={OFF|ON|STRICT}", - "default": "OFF", - "dynamic": true, - "name": "ssl_fips_mode", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "OFF", - "ON", - "STRICT" - ], - "ids": [ - { - "anchor": "sysvar_ssl_fips_mode", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "stored_program_definition_cache": { - "cli": "--stored-program-definition-cache=#", - "default": "256", - "dynamic": true, - "name": "stored_program_definition_cache", - "range": { - "from": 256, - "to": 524288 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_stored_program_definition_cache", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "super_read_only": { - "cli": "--super-read-only[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "super_read_only", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_super_read_only", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "syseventlog.facility": { - "cli": "--syseventlog.facility=value", - "default": "daemon", - "dynamic": true, - "name": "syseventlog.facility", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_syseventlog.facility", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "syseventlog.include_pid": { - "cli": "--syseventlog.include-pid[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "name": "syseventlog.include_pid", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_syseventlog.include_pid", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "syseventlog.tag": { - "cli": "--syseventlog.tag=tag", - "default": "empty string", - "dynamic": true, - "name": "syseventlog.tag", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_syseventlog.tag", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "table_encryption_privilege_check": { - "cli": "--table-encryption-privilege-check[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "table_encryption_privilege_check", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_table_encryption_privilege_check", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "tablespace_definition_cache": { - "cli": "--tablespace-definition-cache=#", - "default": "256", - "dynamic": true, - "name": "tablespace_definition_cache", - "range": { - "from": 256, - "to": 524288 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_tablespace_definition_cache", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "temptable_max_ram": { - "cli": "--temptable-max-ram=#", - "default": "1073741824", - "dynamic": true, - "name": "temptable_max_ram", - "range": { - "from": 2097152, - "to": 2 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_temptable_max_ram", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "temptable_use_mmap": { - "cli": "--temptable-use-mmap[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "name": "temptable_use_mmap", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_temptable_use_mmap", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "thread_pool_algorithm": { - "cli": "--thread-pool-algorithm=#", - "default": "0", - "dynamic": false, - "name": "thread_pool_algorithm", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_thread_pool_algorithm", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "thread_pool_high_priority_connection": { - "cli": "--thread-pool-high-priority-connection=#", - "default": "0", - "dynamic": true, - "name": "thread_pool_high_priority_connection", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_thread_pool_high_priority_connection", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "thread_pool_max_active_query_threads": { - "cli": "--thread-pool-max-active-query-threads", - "default": "0", - "dynamic": true, - "name": "thread_pool_max_active_query_threads", - "range": { - "from": 0, - "to": 512 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_thread_pool_max_active_query_threads", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "thread_pool_max_unused_threads": { - "cli": "--thread-pool-max-unused-threads=#", - "default": "0", - "dynamic": true, - "name": "thread_pool_max_unused_threads", - "range": { - "from": 0, - "to": 4096 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_thread_pool_max_unused_threads", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "tls_ciphersuites": { - "cli": "--tls-ciphersuites=ciphersuite_list", - "default": "empty string", - "dynamic": true, - "name": "tls_ciphersuites", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_tls_ciphersuites", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "use_secondary_engine": { - "default": "ON", - "dynamic": true, - "name": "use_secondary_engine", - "scope": [ - "session" - ], - "type": "enumeration", - "validValues": [ - "OFF", - "ON", - "FORCED" - ], - "ids": [ - { - "anchor": "sysvar_use_secondary_engine", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "validate_user_plugins": { - "cli": "--validate-user-plugins[={OFF|ON}]", - "default": "ON", - "dynamic": false, - "name": "validate_user_plugins", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_validate_user_plugins", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "version_compile_zlib": { - "dynamic": false, - "name": "version_compile_zlib", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_version_compile_zlib", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "windowing_use_high_precision": { - "cli": "--windowing-use-high-precision[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "name": "windowing_use_high_precision", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_windowing_use_high_precision", - "url": "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html" - } - ] - }, - "version_tokens_session": { - "cli": "--version-tokens-session=value", - "default": "NULL", - "dynamic": true, - "name": "version_tokens_session", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_version_tokens_session", - "url": "https://dev.mysql.com/doc/refman/8.0/en/version-tokens-reference.html" - } - ] - }, - "version_tokens_session_number": { - "cli": "--version-tokens-session-number=#", - "default": "0", - "dynamic": false, - "name": "version_tokens_session_number", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_version_tokens_session_number", - "url": "https://dev.mysql.com/doc/refman/8.0/en/version-tokens-reference.html" - } - ] - }, - "mysqlx": { - "cli": "--mysqlx[=value]", - "default": "ON", - "name": "mysqlx", - "type": "enumeration", - "validValues": [ - "ON", - "OFF", - "FORCE", - "FORCE_PLUS_PERMANENT" - ], - "ids": [ - { - "anchor": "option_mysqld_mysqlx", - "url": "https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html" - } - ] - }, - "mysqlx_bind_address": { - "cli": "--mysqlx-bind-address=addr", - "default": "*", - "dynamic": false, - "name": "mysqlx_bind_address", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_mysqlx_bind_address", - "url": "https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html" - } - ] - }, - "mysqlx_connect_timeout": { - "cli": "--mysqlx-connect-timeout=#", - "default": "30", - "dynamic": true, - "name": "mysqlx_connect_timeout", - "range": { - "from": 1, - "to": 1000000000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_mysqlx_connect_timeout", - "url": "https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html" - } - ] - }, - "mysqlx_document_id_unique_prefix": { - "cli": "--mysqlx-document-id-unique-prefix=#", - "default": "0", - "dynamic": true, - "name": "mysqlx_document_id_unique_prefix", - "range": { - "from": 0, - "to": 65535 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_mysqlx_document_id_unique_prefix", - "url": "https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html" - } - ] - }, - "mysqlx_enable_hello_notice": { - "cli": "--mysqlx-enable-hello-notice[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "name": "mysqlx_enable_hello_notice", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - { - "anchor": "sysvar_mysqlx_enable_hello_notice", - "url": "https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html" - } - ] - }, - "mysqlx_idle_worker_thread_timeout": { - "cli": "--mysqlx-idle-worker-thread-timeout=#", - "default": "60", - "dynamic": true, - "name": "mysqlx_idle_worker_thread_timeout", - "range": { - "from": 0, - "to": 3600 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_mysqlx_idle_worker_thread_timeout", - "url": "https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html" - } - ] - }, - "mysqlx_interactive_timeout": { - "cli": "--mysqlx-interactive-timeout=#", - "default": "28800", - "dynamic": true, - "name": "mysqlx_interactive_timeout", - "range": { - "from": 1, - "to": 2147483 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_mysqlx_interactive_timeout", - "url": "https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html" - } - ] - }, - "mysqlx_max_allowed_packet": { - "cli": "--mysqlx-max-allowed-packet=#", - "default": "67108864", - "dynamic": true, - "name": "mysqlx_max_allowed_packet", - "range": { - "from": 512, - "to": 1073741824 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_mysqlx_max_allowed_packet", - "url": "https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html" - } - ] - }, - "mysqlx_max_connections": { - "cli": "--mysqlx-max-connections=#", - "default": "100", - "dynamic": true, - "name": "mysqlx_max_connections", - "range": { - "from": 1, - "to": 65535 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_mysqlx_max_connections", - "url": "https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html" - } - ] - }, - "mysqlx_min_worker_threads": { - "cli": "--mysqlx-min-worker-threads=#", - "default": "2", - "dynamic": true, - "name": "mysqlx_min_worker_threads", - "range": { - "from": 1, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_mysqlx_min_worker_threads", - "url": "https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html" - } - ] - }, - "mysqlx_port": { - "cli": "--mysqlx-port=port_num", - "default": "33060", - "dynamic": false, - "name": "mysqlx_port", - "range": { - "from": 1, - "to": 65535 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_mysqlx_port", - "url": "https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html" - } - ] - }, - "mysqlx_port_open_timeout": { - "cli": "--mysqlx-port-open-timeout=#", - "default": "0", - "dynamic": false, - "name": "mysqlx_port_open_timeout", - "range": { - "from": 0, - "to": 120 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_mysqlx_port_open_timeout", - "url": "https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html" - } - ] - }, - "mysqlx_read_timeout": { - "cli": "--mysqlx-read-timeout=#", - "default": "28800", - "dynamic": true, - "name": "mysqlx_read_timeout", - "range": { - "from": 30, - "to": 2147483 - }, - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_mysqlx_read_timeout", - "url": "https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html" - } - ] - }, - "mysqlx_socket": { - "cli": "--mysqlx-socket=file_name", - "default": "/tmp/mysqlx.sock", - "dynamic": false, - "name": "mysqlx_socket", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_mysqlx_socket", - "url": "https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html" - } - ] - }, - "mysqlx_ssl_ca": { - "cli": "--mysqlx-ssl-ca=file_name", - "dynamic": false, - "name": "mysqlx_ssl_ca", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - { - "anchor": "sysvar_mysqlx_ssl_ca", - "url": "https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html" - } - ] - }, - "mysqlx_ssl_capath": { - "cli": "--mysqlx-ssl-capath=dir_name", - "dynamic": false, - "name": "mysqlx_ssl_capath", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - { - "anchor": "sysvar_mysqlx_ssl_capath", - "url": "https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html" - } - ] - }, - "mysqlx_ssl_cert": { - "cli": "--mysqlx-ssl-cert=name", - "dynamic": false, - "name": "mysqlx_ssl_cert", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - { - "anchor": "sysvar_mysqlx_ssl_cert", - "url": "https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html" - } - ] - }, - "mysqlx_ssl_cipher": { - "cli": "--mysqlx-ssl-cipher=name", - "dynamic": false, - "name": "mysqlx_ssl_cipher", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - { - "anchor": "sysvar_mysqlx_ssl_cipher", - "url": "https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html" - } - ] - }, - "mysqlx_ssl_crl": { - "cli": "--mysqlx-ssl-crl=file_name", - "dynamic": false, - "name": "mysqlx_ssl_crl", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - { - "anchor": "sysvar_mysqlx_ssl_crl", - "url": "https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html" - } - ] - }, - "mysqlx_ssl_crlpath": { - "cli": "--mysqlx-ssl-crlpath=dir_name", - "dynamic": false, - "name": "mysqlx_ssl_crlpath", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - { - "anchor": "sysvar_mysqlx_ssl_crlpath", - "url": "https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html" - } - ] - }, - "mysqlx_ssl_key": { - "cli": "--mysqlx-ssl-key=file_name", - "dynamic": false, - "name": "mysqlx_ssl_key", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - { - "anchor": "sysvar_mysqlx_ssl_key", - "url": "https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html" - } - ] - }, - "mysqlx_wait_timeout": { - "cli": "--mysqlx-wait-timeout=#", - "default": "28800", - "dynamic": true, - "name": "mysqlx_wait_timeout", - "range": { - "from": 1, - "to": 2147483 - }, - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_mysqlx_wait_timeout", - "url": "https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html" - } - ] - }, - "mysqlx_write_timeout": { - "cli": "--mysqlx-write-timeout=#", - "default": "60", - "dynamic": true, - "name": "mysqlx_write_timeout", - "range": { - "from": 1, - "to": 2147483 - }, - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - { - "anchor": "sysvar_mysqlx_write_timeout", - "url": "https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html" - } - ] - } - }, - "version": 1 -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/dist/merged-raw.md b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/dist/merged-raw.md deleted file mode 100644 index f06dea6..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/dist/merged-raw.md +++ /dev/null @@ -1,32426 +0,0 @@ -# Variables and options -## Aria_pagecache_blocks_not_flushed -|name|value| -|----|-----| -|Name|`Aria_pagecache_blocks_not_flushed`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aria_pagecache_blocks_not_flushed](https://mariadb.com/kb/en/library/documentation/aria-server-status-variables/#aria_pagecache_blocks_not_flushed)| - -## Aria_pagecache_blocks_unused -|name|value| -|----|-----| -|Name|`Aria_pagecache_blocks_unused`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aria_pagecache_blocks_unused](https://mariadb.com/kb/en/library/documentation/aria-server-status-variables/#aria_pagecache_blocks_unused)| - -## Aria_pagecache_blocks_used -|name|value| -|----|-----| -|Name|`Aria_pagecache_blocks_used`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aria_pagecache_blocks_used](https://mariadb.com/kb/en/library/documentation/aria-server-status-variables/#aria_pagecache_blocks_used)| - -## Aria_pagecache_read_requests -|name|value| -|----|-----| -|Name|`Aria_pagecache_read_requests`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aria_pagecache_read_requests](https://mariadb.com/kb/en/library/documentation/aria-server-status-variables/#aria_pagecache_read_requests)| - -## Aria_pagecache_reads -|name|value| -|----|-----| -|Name|`Aria_pagecache_reads`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aria_pagecache_reads](https://mariadb.com/kb/en/library/documentation/aria-server-status-variables/#aria_pagecache_reads)| - -## Aria_pagecache_write_requests -|name|value| -|----|-----| -|Name|`Aria_pagecache_write_requests`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aria_pagecache_write_requests](https://mariadb.com/kb/en/library/documentation/aria-server-status-variables/#aria_pagecache_write_requests)| - -## Aria_pagecache_writes -|name|value| -|----|-----| -|Name|`Aria_pagecache_writes`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aria_pagecache_writes](https://mariadb.com/kb/en/library/documentation/aria-server-status-variables/#aria_pagecache_writes)| - -## Aria_transaction_log_syncs -|name|value| -|----|-----| -|Name|`Aria_transaction_log_syncs`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aria_transaction_log_syncs](https://mariadb.com/kb/en/library/documentation/aria-server-status-variables/#aria_transaction_log_syncs)| - -## aria_block_size -|name|value| -|----|-----| -|Name|`aria_block_size`| -|Command line|`--aria-block-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`8192`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aria_block_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/#aria_block_size)| - -## aria_checkpoint_interval -|name|value| -|----|-----| -|Name|`aria_checkpoint_interval`| -|Command line|`--aria-checkpoint-interval=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`30`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aria_checkpoint_interval](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/#aria_checkpoint_interval)| - -## aria_checkpoint_log_activity -|name|value| -|----|-----| -|Name|`aria_checkpoint_log_activity`| -|Command line|`aria-checkpoint-log-activity=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1048576`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aria_checkpoint_log_activity](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/#aria_checkpoint_log_activity)| - -## aria_encrypt_tables -|name|value| -|----|-----| -|Name|`aria_encrypt_tables`| -|Command line|`aria-encrypt-tables={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aria_encrypt_tables](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/#aria_encrypt_tables)| - -## aria_force_start_after_recovery_failures -|name|value| -|----|-----| -|Name|`aria_force_start_after_recovery_failures`| -|Command line|`--aria-force-start-after-recovery-failures=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aria_force_start_after_recovery_failures](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/#aria_force_start_after_recovery_failures)| - -## aria_group_commit -|name|value| -|----|-----| -|Name|`aria_group_commit`| -|Command line|`--aria_group_commit="value"`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`none`| -|Dynamic|`false`| -|Valid value(s)|`none`, `hard`, `soft`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aria_group_commit](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/#aria_group_commit)| - -## aria_group_commit_interval -|name|value| -|----|-----| -|Name|`aria_group_commit_interval`| -|Command line|`--aria_group_commit_interval=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0 (no waiting)`| -|Dynamic|`false`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aria_group_commit_interval](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/#aria_group_commit_interval)| - -## aria_log_file_size -|name|value| -|----|-----| -|Name|`aria_log_file_size`| -|Command line|`--aria-log-file-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1073741824`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aria_log_file_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/#aria_log_file_size)| - -## aria_log_purge_type -|name|value| -|----|-----| -|Name|`aria_log_purge_type`| -|Command line|`--aria-log-purge-type=name`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`immediate`| -|Dynamic|`true`| -|Valid value(s)|`immediate`, `external`, `at_flush`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aria_log_purge_type](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/#aria_log_purge_type)| - -## aria_max_sort_file_size -|name|value| -|----|-----| -|Name|`aria_max_sort_file_size`| -|Command line|`--aria-max-sort-file-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`9223372036853727232`| -|Dynamic|`true`| -|Range|from: `0` to: `9.2233720368548E+18`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aria_max_sort_file_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/#aria_max_sort_file_size)| - -## aria_page_checksum -|name|value| -|----|-----| -|Name|`aria_page_checksum`| -|Command line|`--aria-page-checksum=#`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aria_page_checksum](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/#aria_page_checksum)| - -## aria_pagecache_age_threshold -|name|value| -|----|-----| -|Name|`aria_pagecache_age_threshold`| -|Command line|`--aria-pagecache-age-threshold=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`300`| -|Dynamic|`true`| -|Range|from: `100` to: `9999900`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aria_pagecache_age_threshold](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/#aria_pagecache_age_threshold)| - -## aria_pagecache_buffer_size -|name|value| -|----|-----| -|Name|`aria_pagecache_buffer_size`| -|Command line|`--aria-pagecache-buffer-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`134217720 (128MB)`| -|Dynamic|`false`| -|Range|from: `131072` to: `upwards`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aria_pagecache_buffer_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/#aria_pagecache_buffer_size)| - -## aria_pagecache_division_limit -|name|value| -|----|-----| -|Name|`aria_pagecache_division_limit`| -|Command line|`--aria-pagecache-division-limit=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`100`| -|Dynamic|`true`| -|Range|from: `1` to: `100`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aria_pagecache_division_limit](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/#aria_pagecache_division_limit)| - -## aria_pagecache_file_hash_size -|name|value| -|----|-----| -|Name|`aria_pagecache_file_hash_size`| -|Command line|`--aria-pagecache-file-hash-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`512`| -|Dynamic|`false`| -|Range|from: `128` to: `16384`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aria_pagecache_file_hash_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/#aria_pagecache_file_hash_size)| - -## aria_recover -|name|value| -|----|-----| -|Name|`aria_recover`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aria_recover](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/#aria_recover)| - -## aria_recover_options -|name|value| -|----|-----| -|Name|`aria_recover_options`| -|Command line|`--aria-recover-options[=#]`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`BACKUP,QUICK (>= MariaDB 10.2.4), NORMAL (<= MariaDB 10.2.3)`| -|Dynamic|`true`| -|Valid value(s)|`NORMAL`, `BACKUP`, `FORCE`, `QUICK`, `OFF`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aria_recover_options](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/#aria_recover_options)| - -## aria_repair_threads -|name|value| -|----|-----| -|Name|`aria_repair_threads`| -|Command line|`--aria-repair-threads=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`1`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aria_repair_threads](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/#aria_repair_threads)| - -## aria_sort_buffer_size -|name|value| -|----|-----| -|Name|`aria_sort_buffer_size`| -|Command line|`--aria-sort-buffer-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`268434432 (from MariaDB 10.0.3), 134217728 (before MariaDB 10.0.3)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aria_sort_buffer_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/#aria_sort_buffer_size)| - -## aria_stats_method -|name|value| -|----|-----| -|Name|`aria_stats_method`| -|Command line|`--aria-stats-method=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`nulls_unequal`| -|Dynamic|`true`| -|Valid value(s)|`nulls_equal`, `nulls_unequal`, `nulls_ignored`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aria_stats_method](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/#aria_stats_method)| - -## aria_sync_log_dir -|name|value| -|----|-----| -|Name|`aria_sync_log_dir`| -|Command line|`--aria-sync-log-dir=#`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`NEWFILE`| -|Dynamic|`true`| -|Valid value(s)|`NEWFILE`, `NEVER`, `ALWAYS`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aria_sync_log_dir](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/#aria_sync_log_dir)| - -## aria_used_for_temp_tables -|name|value| -|----|-----| -|Name|`aria_used_for_temp_tables`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aria_used_for_temp_tables](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/#aria_used_for_temp_tables)| - -## deadlock_search_depth_long -|name|value| -|----|-----| -|Name|`deadlock_search_depth_long`| -|Command line|`--deadlock-search-depth-long=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`15`| -|Dynamic|`true`| -|Range|from: `0` to: `33`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[deadlock_search_depth_long](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/#deadlock_search_depth_long)| - -## deadlock_search_depth_short -|name|value| -|----|-----| -|Name|`deadlock_search_depth_short`| -|Command line|`--deadlock-search-depth-short=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`4`| -|Dynamic|`true`| -|Range|from: `0` to: `32`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[deadlock_search_depth_short](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/#deadlock_search_depth_short)| - -## deadlock_timeout_long -|name|value| -|----|-----| -|Name|`deadlock_timeout_long`| -|Command line|`--deadlock-timeout-long=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`50000000`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[deadlock_timeout_long](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/#deadlock_timeout_long)| - -## deadlock_timeout_short -|name|value| -|----|-----| -|Name|`deadlock_timeout_short`| -|Command line|`--deadlock-timeout-short=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`10000`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[deadlock_timeout_short](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/#deadlock_timeout_short)| - -## Cassandra_multiget_keys_scanned -|name|value| -|----|-----| -|Name|`Cassandra_multiget_keys_scanned`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[cassandra_multiget_keys_scanned](https://mariadb.com/kb/en/library/documentation/cassandra-status-variables/#cassandra_multiget_keys_scanned)| - -## Cassandra_multiget_reads -|name|value| -|----|-----| -|Name|`Cassandra_multiget_reads`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[cassandra_multiget_reads](https://mariadb.com/kb/en/library/documentation/cassandra-status-variables/#cassandra_multiget_reads)| - -## Cassandra_multiget_rows_read -|name|value| -|----|-----| -|Name|`Cassandra_multiget_rows_read`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[cassandra_multiget_rows_read](https://mariadb.com/kb/en/library/documentation/cassandra-status-variables/#cassandra_multiget_rows_read)| - -## Cassandra_network_exceptions -|name|value| -|----|-----| -|Name|`Cassandra_network_exceptions`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[cassandra_network_exceptions](https://mariadb.com/kb/en/library/documentation/cassandra-status-variables/#cassandra_network_exceptions)| - -## Cassandra_row_insert_batches -|name|value| -|----|-----| -|Name|`Cassandra_row_insert_batches`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[cassandra_row_insert_batches](https://mariadb.com/kb/en/library/documentation/cassandra-status-variables/#cassandra_row_insert_batches)| - -## Cassandra_row_inserts -|name|value| -|----|-----| -|Name|`Cassandra_row_inserts`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[cassandra_row_inserts](https://mariadb.com/kb/en/library/documentation/cassandra-status-variables/#cassandra_row_inserts)| - -## Cassandra_timeout_exceptions -|name|value| -|----|-----| -|Name|`Cassandra_timeout_exceptions`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[cassandra_timeout_exceptions](https://mariadb.com/kb/en/library/documentation/cassandra-status-variables/#cassandra_timeout_exceptions)| - -## Cassandra_unavailable_exceptions -|name|value| -|----|-----| -|Name|`Cassandra_unavailable_exceptions`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[cassandra_unavailable_exceptions](https://mariadb.com/kb/en/library/documentation/cassandra-status-variables/#cassandra_unavailable_exceptions)| - -## cassandra_default_thrift_host -|name|value| -|----|-----| -|Name|`cassandra_default_thrift_host`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[cassandra_default_thrift_host](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/cassandra/cassandra-system-variables/#cassandra_default_thrift_host)| - -## cassandra_failure_retries -|name|value| -|----|-----| -|Name|`cassandra_failure_retries`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`3`| -|Dynamic|`true`| -|Valid value(s)|`1`, `1073741824`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[cassandra_failure_retries](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/cassandra/cassandra-system-variables/#cassandra_failure_retries)| - -## cassandra_insert_batch_size -|name|value| -|----|-----| -|Name|`cassandra_insert_batch_size`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`100`| -|Dynamic|`true`| -|Valid value(s)|`1`, `1073741824`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[cassandra_insert_batch_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/cassandra/cassandra-system-variables/#cassandra_insert_batch_size)| - -## cassandra_multiget_batch_size -|name|value| -|----|-----| -|Name|`cassandra_multiget_batch_size`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`100`| -|Dynamic|`true`| -|Valid value(s)|`1`, `1073741824`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[cassandra_multiget_batch_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/cassandra/cassandra-system-variables/#cassandra_multiget_batch_size)| - -## cassandra_read_consistency -|name|value| -|----|-----| -|Name|`cassandra_read_consistency`| -|Scope|`global`, `session`| -|Default value|`ONE`| -|Valid value(s)|`ONE`, `TWO`, `THREE`, `ANY`, `ALL`, `QUORUM`, `EACH_QUORUM`, `LOCAL_QUORUM`, ` -`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[cassandra_read_consistency](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/cassandra/cassandra-system-variables/#cassandra_read_consistency)| - -## cassandra_rnd_batch_size -|name|value| -|----|-----| -|Name|`cassandra_rnd_batch_size`| -|Scope|`global`, `session`| -|Default value|`10000`| -|Valid value(s)|`1`, `1073741824`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[cassandra_rnd_batch_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/cassandra/cassandra-system-variables/#cassandra_rnd_batch_size)| - -## cassandra_write_consistency -|name|value| -|----|-----| -|Name|`cassandra_write_consistency`| -|Scope|`global`, `session`| -|Default value|`ONE`| -|Valid value(s)|`ONE`, `TWO`, `THREE`, `ANY`, `ALL`, `QUORUM`, `EACH_QUORUM`, `LOCAL_QUORUM`, ` -`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[cassandra_write_consistency](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/cassandra/cassandra-system-variables/#cassandra_write_consistency)| - -## connect_class_path -|name|value| -|----|-----| -|Name|`connect_class_path`| -|Command line|`--connect-class-path=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|``| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[connect_class_path](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/#connect_class_path)| - -## connect_cond_push -|name|value| -|----|-----| -|Name|`connect_cond_push`| -|Command line|`--connect-cond-push={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[connect_cond_push](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/#connect_cond_push)| - -## connect_conv_size -|name|value| -|----|-----| -|Name|`connect_conv_size`| -|Command line|`--connect-conv-size=#`| -|Type of variable|`integer`| -|Scope|`session`, `global`| -|Default value|`>= MariaDB 10.4.8, MariaDB 10.3.18, MariaDB 10.2.27: 1024, <= MariaDB 10.4.7, MariaDB 10.3.17, MariaDB 10.2.26: 8192`| -|Dynamic|`true`| -|Range|from: `0` to: `65500`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[connect_conv_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/#connect_conv_size)| - -## connect_enable_mongo -|name|value| -|----|-----| -|Name|`connect_enable_mongo`| -|Command line|`--connect-enable-mongo={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[connect_enable_mongo](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/#connect_enable_mongo)| - -## connect_exact_info -|name|value| -|----|-----| -|Name|`connect_exact_info`| -|Command line|`--connect-exact-info=#`| -|Type of variable|`boolean`| -|Scope|`session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[connect_exact_info](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/#connect_exact_info)| - -## connect_indx_map -|name|value| -|----|-----| -|Name|`connect_indx_map`| -|Command line|`--connect-indx-map=#`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[connect_indx_map](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/#connect_indx_map)| - -## connect_java_wrapper -|name|value| -|----|-----| -|Name|`connect_java_wrapper`| -|Command line|`--connect-java-wrapper=val`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Default value|`wrappers/JdbcInterface`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[connect_java_wrapper](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/#connect_java_wrapper)| - -## connect_json_grp_size -|name|value| -|----|-----| -|Name|`connect_json_grp_size`| -|Command line|`--connect-json-grp-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`10`| -|Dynamic|`true`| -|Range|from: `1` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[connect_json_grp_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/#connect_json_grp_size)| - -## connect_json_null -|name|value| -|----|-----| -|Name|`connect_json_null`| -|Command line|`--connect-json-null=value`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Default value|``| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[connect_json_null](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/#connect_json_null)| - -## connect_jvm_path -|name|value| -|----|-----| -|Name|`connect_jvm_path`| -|Command line|`--connect-jvm_path=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|``| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[connect_jvm_path](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/#connect_jvm_path)| - -## connect_type_conv -|name|value| -|----|-----| -|Name|`connect_type_conv`| -|Command line|`--connect-type-conv=#`| -|Scope|`session`, `global`| -|Default value|`YES (>= Connect 1.06.006), NO (<= Connect 1.06.005)`| -|Dynamic|`true`| -|Valid value(s)|`NO`, `YES`, `SKIP`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[connect_type_conv](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/#connect_type_conv)| - -## connect_use_tempfile -|name|value| -|----|-----| -|Name|`connect_use_tempfile`| -|Command line|`--connect-use-tempfile=#`| -|Scope|`session`| -|Default value|`AUTO`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[connect_use_tempfile](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/#connect_use_tempfile)| - -## connect_work_size -|name|value| -|----|-----| -|Name|`connect_work_size`| -|Command line|`--connect-work-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`67108864`| -|Dynamic|`true`| -|Range|from: `4194304` to: `upwards`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[connect_work_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/#connect_work_size)| - -## connect_xtrace -|name|value| -|----|-----| -|Name|`connect_xtrace`| -|Command line|`--connect-xtrace=#`| -|Type of variable|`set`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[connect_xtrace](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/#connect_xtrace)| - -## wsrep_apply_oooe -|name|value| -|----|-----| -|Name|`wsrep_apply_oooe`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_apply_oooe](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_apply_oooe)| - -## wsrep_apply_oool -|name|value| -|----|-----| -|Name|`wsrep_apply_oool`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_apply_oool](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_apply_oool)| - -## wsrep_apply_window -|name|value| -|----|-----| -|Name|`wsrep_apply_window`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_apply_window](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_apply_window)| - -## wsrep_cert_deps_distance -|name|value| -|----|-----| -|Name|`wsrep_cert_deps_distance`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_cert_deps_distance](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_cert_deps_distance)| - -## wsrep_cert_index_size -|name|value| -|----|-----| -|Name|`wsrep_cert_index_size`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_cert_index_size](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_cert_index_size)| - -## wsrep_cert_interval -|name|value| -|----|-----| -|Name|`wsrep_cert_interval`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_cert_interval](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_cert_interval)| - -## wsrep_cluster_capabilities -|name|value| -|----|-----| -|Name|`wsrep_cluster_capabilities`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_cluster_capabilities](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_cluster_capabilities)| - -## wsrep_cluster_conf_id -|name|value| -|----|-----| -|Name|`wsrep_cluster_conf_id`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_cluster_conf_id](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_cluster_conf_id)| - -## wsrep_cluster_size -|name|value| -|----|-----| -|Name|`wsrep_cluster_size`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_cluster_size](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_cluster_size)| - -## wsrep_cluster_state_uuid -|name|value| -|----|-----| -|Name|`wsrep_cluster_state_uuid`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_cluster_state_uuid](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_cluster_state_uuid)| - -## wsrep_cluster_status -|name|value| -|----|-----| -|Name|`wsrep_cluster_status`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_cluster_status](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_cluster_status)| - -## wsrep_cluster_weight -|name|value| -|----|-----| -|Name|`wsrep_cluster_weight`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_cluster_weight](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_cluster_weight)| - -## wsrep_commit_oooe -|name|value| -|----|-----| -|Name|`wsrep_commit_oooe`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_commit_oooe](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_commit_oooe)| - -## wsrep_commit_oool -|name|value| -|----|-----| -|Name|`wsrep_commit_oool`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_commit_oool](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_commit_oool)| - -## wsrep_commit_window -|name|value| -|----|-----| -|Name|`wsrep_commit_window`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_commit_window](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_commit_window)| - -## wsrep_connected -|name|value| -|----|-----| -|Name|`wsrep_connected`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_connected](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_connected)| - -## wsrep_desync_count -|name|value| -|----|-----| -|Name|`wsrep_desync_count`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_desync_count](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_desync_count)| - -## wsrep_evs_delayed -|name|value| -|----|-----| -|Name|`wsrep_evs_delayed`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_evs_delayed](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_evs_delayed)| - -## wsrep_evs_evict_list -|name|value| -|----|-----| -|Name|`wsrep_evs_evict_list`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_evs_evict_list](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_evs_evict_list)| - -## wsrep_evs_repl_latency -|name|value| -|----|-----| -|Name|`wsrep_evs_repl_latency`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_evs_repl_latency](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_evs_repl_latency)| - -## wsrep_evs_state -|name|value| -|----|-----| -|Name|`wsrep_evs_state`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_evs_state](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_evs_state)| - -## wsrep_flow_control_paused -|name|value| -|----|-----| -|Name|`wsrep_flow_control_paused`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_flow_control_paused](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_flow_control_paused)| - -## wsrep_flow_control_paused_ns -|name|value| -|----|-----| -|Name|`wsrep_flow_control_paused_ns`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_flow_control_paused_ns](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_flow_control_paused_ns)| - -## wsrep_flow_control_recv -|name|value| -|----|-----| -|Name|`wsrep_flow_control_recv`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_flow_control_recv](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_flow_control_recv)| - -## wsrep_flow_control_sent -|name|value| -|----|-----| -|Name|`wsrep_flow_control_sent`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_flow_control_sent](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_flow_control_sent)| - -## wsrep_gcomm_uuid -|name|value| -|----|-----| -|Name|`wsrep_gcomm_uuid`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_gcomm_uuid](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_gcomm_uuid)| - -## wsrep_incoming_addresses -|name|value| -|----|-----| -|Name|`wsrep_incoming_addresses`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_incoming_addresses](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_incoming_addresses)| - -## wsrep_last_committed -|name|value| -|----|-----| -|Name|`wsrep_last_committed`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_last_committed](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_last_committed)| - -## wsrep_local_bf_aborts -|name|value| -|----|-----| -|Name|`wsrep_local_bf_aborts`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_local_bf_aborts](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_local_bf_aborts)| - -## wsrep_local_cached_downto -|name|value| -|----|-----| -|Name|`wsrep_local_cached_downto`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_local_cached_downto](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_local_cached_downto)| - -## wsrep_local_cert_failures -|name|value| -|----|-----| -|Name|`wsrep_local_cert_failures`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_local_cert_failures](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_local_cert_failures)| - -## wsrep_local_commits -|name|value| -|----|-----| -|Name|`wsrep_local_commits`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_local_commits](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_local_commits)| - -## wsrep_local_index -|name|value| -|----|-----| -|Name|`wsrep_local_index`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_local_index](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_local_index)| - -## wsrep_local_recv_queue -|name|value| -|----|-----| -|Name|`wsrep_local_recv_queue`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_local_recv_queue](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_local_recv_queue)| - -## wsrep_local_recv_queue_avg -|name|value| -|----|-----| -|Name|`wsrep_local_recv_queue_avg`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_local_recv_queue_avg](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_local_recv_queue_avg)| - -## wsrep_local_recv_queue_max -|name|value| -|----|-----| -|Name|`wsrep_local_recv_queue_max`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_local_recv_queue_max](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_local_recv_queue_max)| - -## wsrep_local_recv_queue_min -|name|value| -|----|-----| -|Name|`wsrep_local_recv_queue_min`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_local_recv_queue_min](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_local_recv_queue_min)| - -## wsrep_local_replays -|name|value| -|----|-----| -|Name|`wsrep_local_replays`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_local_replays](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_local_replays)| - -## wsrep_local_send_queue -|name|value| -|----|-----| -|Name|`wsrep_local_send_queue`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_local_send_queue](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_local_send_queue)| - -## wsrep_local_send_queue_avg -|name|value| -|----|-----| -|Name|`wsrep_local_send_queue_avg`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_local_send_queue_avg](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_local_send_queue_avg)| - -## wsrep_local_send_queue_max -|name|value| -|----|-----| -|Name|`wsrep_local_send_queue_max`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_local_send_queue_max](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_local_send_queue_max)| - -## wsrep_local_send_queue_min -|name|value| -|----|-----| -|Name|`wsrep_local_send_queue_min`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_local_send_queue_min](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_local_send_queue_min)| - -## wsrep_local_state -|name|value| -|----|-----| -|Name|`wsrep_local_state`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_local_state](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_local_state)| - -## wsrep_local_state_comment -|name|value| -|----|-----| -|Name|`wsrep_local_state_comment`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_local_state_comment](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_local_state_comment)| - -## wsrep_local_state_uuid -|name|value| -|----|-----| -|Name|`wsrep_local_state_uuid`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_local_state_uuid](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_local_state_uuid)| - -## wsrep_open_connections -|name|value| -|----|-----| -|Name|`wsrep_open_connections`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_open_connections](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_open_connections)| - -## wsrep_open_transactions -|name|value| -|----|-----| -|Name|`wsrep_open_transactions`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_open_transactions](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_open_transactions)| - -## wsrep_protocol_version -|name|value| -|----|-----| -|Name|`wsrep_protocol_version`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_protocol_version](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_protocol_version)| - -## wsrep_provider_name -|name|value| -|----|-----| -|Name|`wsrep_provider_name`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_provider_name](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_provider_name)| - -## wsrep_provider_vendor -|name|value| -|----|-----| -|Name|`wsrep_provider_vendor`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_provider_vendor](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_provider_vendor)| - -## wsrep_provider_version -|name|value| -|----|-----| -|Name|`wsrep_provider_version`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_provider_version](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_provider_version)| - -## wsrep_ready -|name|value| -|----|-----| -|Name|`wsrep_ready`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_ready](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_ready)| - -## wsrep_received -|name|value| -|----|-----| -|Name|`wsrep_received`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_received](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_received)| - -## wsrep_received_bytes -|name|value| -|----|-----| -|Name|`wsrep_received_bytes`| -|Type of variable|`byte`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_received_bytes](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_received_bytes)| - -## wsrep_repl_data_bytes -|name|value| -|----|-----| -|Name|`wsrep_repl_data_bytes`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_repl_data_bytes](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_repl_data_bytes)| - -## wsrep_repl_keys -|name|value| -|----|-----| -|Name|`wsrep_repl_keys`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_repl_keys](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_repl_keys)| - -## wsrep_repl_keys_bytes -|name|value| -|----|-----| -|Name|`wsrep_repl_keys_bytes`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_repl_keys_bytes](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_repl_keys_bytes)| - -## wsrep_repl_other_bytes -|name|value| -|----|-----| -|Name|`wsrep_repl_other_bytes`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_repl_other_bytes](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_repl_other_bytes)| - -## wsrep_replicated -|name|value| -|----|-----| -|Name|`wsrep_replicated`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_replicated](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_replicated)| - -## wsrep_replicated_bytes -|name|value| -|----|-----| -|Name|`wsrep_replicated_bytes`| -|Type of variable|`byte`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_replicated_bytes](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_replicated_bytes)| - -## wsrep_thread_count -|name|value| -|----|-----| -|Name|`wsrep_thread_count`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_thread_count](https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/#wsrep_thread_count)| - -## wsrep_auto_increment_control -|name|value| -|----|-----| -|Name|`wsrep_auto_increment_control`| -|Command line|`--wsrep-auto-increment-control[={0|1}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_auto_increment_control](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_auto_increment_control)| - -## wsrep_causal_reads -|name|value| -|----|-----| -|Name|`wsrep_causal_reads`| -|Command line|`--wsrep-causal-reads[={0|1}]`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_causal_reads](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_causal_reads)| - -## wsrep_certification_rules -|name|value| -|----|-----| -|Name|`wsrep_certification_rules`| -|Command line|`--wsrep-certifcation-rules`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`strict`| -|Dynamic|`true`| -|Valid value(s)|`strict`, `optimized`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_certification_rules](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_certification_rules)| - -## wsrep_certify_nonPK -|name|value| -|----|-----| -|Name|`wsrep_certify_nonPK`| -|Command line|`--wsrep-certify-nonPK[={0|1}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_certify_nonpk](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_certify_nonpk)| - -## wsrep_cluster_address -|name|value| -|----|-----| -|Name|`wsrep_cluster_address`| -|Command line|`--wsrep-cluster-address=value`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_cluster_address](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_cluster_address)| - -## wsrep_cluster_name -|name|value| -|----|-----| -|Name|`wsrep_cluster_name`| -|Command line|`--wsrep-cluster-name=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`my_wsrep_cluster`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_cluster_name](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_cluster_name)| - -## wsrep_convert_LOCK_to_trx -|name|value| -|----|-----| -|Name|`wsrep_convert_LOCK_to_trx`| -|Command line|`--wsrep-convert-LOCK-to-trx[={0|1}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_convert_lock_to_trx](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_convert_lock_to_trx)| - -## wsrep_data_home_dir -|name|value| -|----|-----| -|Name|`wsrep_data_home_dir`| -|Command line|`--wsrep-data-home-dir=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`The datadir variable value.`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_data_home_dir](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_data_home_dir)| - -## wsrep_dbug_option -|name|value| -|----|-----| -|Name|`wsrep_dbug_option`| -|Command line|`--wsrep-dbug-option=value`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_dbug_option](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_dbug_option)| - -## wsrep_debug -|name|value| -|----|-----| -|Name|`wsrep_debug`| -|Command line|`--wsrep-debug[={0|1}]`| -|Scope|`global`| -|Default value|`NONE (>= MariaDB 10.4.3), OFF (<= MariaDB 10.4.2)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_debug](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_debug)| - -## wsrep_desync -|name|value| -|----|-----| -|Name|`wsrep_desync`| -|Command line|`--wsrep-desync[={0|1}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_desync](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_desync)| - -## wsrep_dirty_reads -|name|value| -|----|-----| -|Name|`wsrep_dirty_reads`| -|Command line|`--wsrep-dirty-reads[={0|1}]`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| -|Valid value(s)|`ON`, `OFF`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_dirty_reads](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_dirty_reads)| - -## wsrep_drupal_282555_workaround -|name|value| -|----|-----| -|Name|`wsrep_drupal_282555_workaround`| -|Command line|`--wsrep-drupal-282555-workaround[={0|1}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_drupal_282555_workaround](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_drupal_282555_workaround)| - -## wsrep_forced_binlog_format -|name|value| -|----|-----| -|Name|`wsrep_forced_binlog_format`| -|Command line|`--wsrep-forced-binlog-format=value`| -|Scope|`global`| -|Default value|`NONE`| -|Dynamic|`true`| -|Valid value(s)|`STATEMENT`, `ROW`, `MIXED`, `NONE`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_forced_binlog_format](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_forced_binlog_format)| - -## wsrep_gtid_domain_id -|name|value| -|----|-----| -|Name|`wsrep_gtid_domain_id`| -|Command line|`--wsrep-gtid-domain-id=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_gtid_domain_id](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_gtid_domain_id)| - -## wsrep_gtid_mode -|name|value| -|----|-----| -|Name|`wsrep_gtid_mode`| -|Command line|`--wsrep-gtid-mode[={0|1}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_gtid_mode](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_gtid_mode)| - -## wsrep_ignore_apply_errors -|name|value| -|----|-----| -|Name|`wsrep_ignore_apply_errors`| -|Command line|`--wsrep-ignore-apply-errors`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `7`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_ignore_apply_errors](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_ignore_apply_errors)| - -## wsrep_load_data_splitting -|name|value| -|----|-----| -|Name|`wsrep_load_data_splitting`| -|Command line|`--wsrep-load-data-splitting[={0|1}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF (>= MariaDB 10.4.3), ON (<= MariaDB 10.4.2)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_load_data_splitting](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_load_data_splitting)| - -## wsrep_log_conflicts -|name|value| -|----|-----| -|Name|`wsrep_log_conflicts`| -|Command line|`--wsrep-log-conflicts[={0|1}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_log_conflicts](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_log_conflicts)| - -## wsrep_max_ws_rows -|name|value| -|----|-----| -|Name|`wsrep_max_ws_rows`| -|Command line|`--wsrep-max-ws-rows=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0 (>= MariaDB Galera 10.0.27, MariaDB 10.1.17), 131072 (<= MariaDB Galera 10.0.26, MariaDB 10.1.16)`| -|Dynamic|`true`| -|Range|from: `0` to: `1048576`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_max_ws_rows](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_max_ws_rows)| - -## wsrep_max_ws_size -|name|value| -|----|-----| -|Name|`wsrep_max_ws_size`| -|Command line|`--wsrep-max-ws-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`2147483647 (2GB, >= MariaDB Galera 10.0.27, MariaDB 10.1.17), 1073741824 (1GB, <= MariaDB Galera 10.0.26, MariaDB 10.1.16)`| -|Dynamic|`true`| -|Range|from: `1024` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_max_ws_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_max_ws_size)| - -## wsrep_mysql_replication_bundle -|name|value| -|----|-----| -|Name|`wsrep_mysql_replication_bundle`| -|Command line|`--wsrep-mysql-replication-bundle=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`false`| -|Range|from: `0` to: `1000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_mysql_replication_bundle](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_mysql_replication_bundle)| - -## wsrep_node_address -|name|value| -|----|-----| -|Name|`wsrep_node_address`| -|Command line|`--wsrep-node-address=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`Primary network address, usually eth0 with a default port of 4567, or 0.0.0.0 if no IP address.`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_node_address](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_node_address)| - -## wsrep_node_incoming_address -|name|value| -|----|-----| -|Name|`wsrep_node_incoming_address`| -|Command line|`--wsrep-node-incoming-address=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`AUTO`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_node_incoming_address](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_node_incoming_address)| - -## wsrep_node_name -|name|value| -|----|-----| -|Name|`wsrep_node_name`| -|Command line|`--wsrep-node-name=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`The server's hostname.`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_node_name](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_node_name)| - -## wsrep_notify_cmd -|name|value| -|----|-----| -|Name|`wsrep_notify_cmd`| -|Command line|`--wsrep-notify-command=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`Empty`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_notify_cmd](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_notify_cmd)| - -## wsrep_on -|name|value| -|----|-----| -|Name|`wsrep_on`| -|Command line|`--wsrep-on[={0|1}]`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF (>= MariaDB 10.1), ON (<= MariaDB Galera Cluster 10.0),`| -|Dynamic|`true`| -|Valid value(s)|`ON`, `OFF`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_on](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_on)| - -## wsrep_OSU_method -|name|value| -|----|-----| -|Name|`wsrep_OSU_method`| -|Command line|`--wsrep-OSU-method[=value]`| -|Scope|`global`, `session`| -|Default value|`TOI`| -|Dynamic|`true`| -|Valid value(s)|`TOI`, `RSU`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_osu_method](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_osu_method)| - -## wsrep_patch_version -|name|value| -|----|-----| -|Name|`wsrep_patch_version`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`None`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_patch_version](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_patch_version)| - -## wsrep_provider -|name|value| -|----|-----| -|Name|`wsrep_provider`| -|Command line|`--wsrep-provider=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`None`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_provider](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_provider)| - -## wsrep_provider_options -|name|value| -|----|-----| -|Name|`wsrep_provider_options`| -|Command line|`--wsrep-provider-options=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`Empty`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_provider_options](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_provider_options)| - -## wsrep_recover -|name|value| -|----|-----| -|Name|`wsrep_recover`| -|Command line|`--wsrep-recover[={0|1}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_recover](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_recover)| - -## wsrep_reject_queries -|name|value| -|----|-----| -|Name|`wsrep_reject_queries`| -|Command line|`--wsrep-reject-queries[=value]`| -|Scope|`global`| -|Default value|`NONE`| -|Dynamic|`true`| -|Valid value(s)|`NONE`, `ALL`, `ALL_KILL`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_reject_queries](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_reject_queries)| - -## wsrep_replicate_myisam -|name|value| -|----|-----| -|Name|`wsrep_replicate_myisam`| -|Command line|`--wsrep-replicate-myisam[={0|1}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| -|Valid value(s)|`ON`, `OFF`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_replicate_myisam](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_replicate_myisam)| - -## wsrep_restart_slave -|name|value| -|----|-----| -|Name|`wsrep_restart_slave`| -|Command line|`--wsrep-restart-slave[={0|1}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_restart_slave](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_restart_slave)| - -## wsrep_retry_autocommit -|name|value| -|----|-----| -|Name|`wsrep_retry_autocommit`| -|Command line|`--wsrep-retry-autocommit=value`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`false`| -|Range|from: `0` to: `10000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_retry_autocommit](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_retry_autocommit)| - -## wsrep_slave_FK_checks -|name|value| -|----|-----| -|Name|`wsrep_slave_FK_checks`| -|Command line|`--wsrep-slave-FK-checks[={0|1}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_slave_fk_checks](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_slave_fk_checks)| - -## wsrep_slave_threads -|name|value| -|----|-----| -|Name|`wsrep_slave_threads`| -|Command line|`--wsrep-slave-threads=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`true`| -|Range|from: `1` to: `512`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_slave_threads](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_slave_threads)| - -## wsrep_slave_UK_checks -|name|value| -|----|-----| -|Name|`wsrep_slave_UK_checks`| -|Command line|`--wsrep-slave-UK-checks[={0|1}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_slave_uk_checks](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_slave_uk_checks)| - -## wsrep_sr_store -|name|value| -|----|-----| -|Name|`wsrep_sr_store`| -|Command line|`--wsrep-sr-store=val`| -|Scope|`global`| -|Default value|`table`| -|Dynamic|`false`| -|Valid value(s)|`table`, `none`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_sr_store](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_sr_store)| - -## wsrep_sst_auth -|name|value| -|----|-----| -|Name|`wsrep_sst_auth`| -|Command line|`--wsrep-sst-auth=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`(Empty)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_sst_auth](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_sst_auth)| - -## wsrep_sst_donor -|name|value| -|----|-----| -|Name|`wsrep_sst_donor`| -|Command line|`--wsrep-sst-donor=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|``| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_sst_donor](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_sst_donor)| - -## wsrep_sst_donor_rejects_queries -|name|value| -|----|-----| -|Name|`wsrep_sst_donor_rejects_queries`| -|Command line|`--wsrep-sst-donor-rejects-queries[={0|1}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_sst_donor_rejects_queries](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_sst_donor_rejects_queries)| - -## wsrep_sst_method -|name|value| -|----|-----| -|Name|`wsrep_sst_method`| -|Command line|`--wsrep-sst-method=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`rsync`| -|Dynamic|`true`| -|Valid value(s)|`rsync`, `mysqldump`, `xtrabackup`, `xtrabackup-v2`, `mariabackup`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_sst_method](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_sst_method)| - -## wsrep_sst_receive_address -|name|value| -|----|-----| -|Name|`wsrep_sst_receive_address`| -|Command line|`--wsrep-sst-receive-address=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`AUTO`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_sst_receive_address](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_sst_receive_address)| - -## wsrep_start_position -|name|value| -|----|-----| -|Name|`wsrep_start_position`| -|Command line|`--wsrep-start-position=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`00000000-0000-0000-0000-000000000000:-1`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_start_position](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_start_position)| - -## wsrep_sync_wait -|name|value| -|----|-----| -|Name|`wsrep_sync_wait`| -|Command line|`--wsrep-sync-wait=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `15`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_sync_wait](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_sync_wait)| - -## wsrep_trx_fragment_size -|name|value| -|----|-----| -|Name|`wsrep_trx_fragment_size`| -|Command line|`--wsrep-trx-fragment-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_trx_fragment_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_trx_fragment_size)| - -## wsrep_trx_fragment_unit -|name|value| -|----|-----| -|Name|`wsrep_trx_fragment_unit`| -|Command line|`--wsrep-trx-fragment-unit=value`| -|Scope|`global`, `session`| -|Default value|`bytes`| -|Dynamic|`true`| -|Valid value(s)|`bytes`, `rows`, `statements`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wsrep_trx_fragment_unit](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/#wsrep_trx_fragment_unit)| - -## gtid_binlog_pos -|name|value| -|----|-----| -|Name|`gtid_binlog_pos`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`Null`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[gtid_binlog_pos](https://mariadb.com/kb/en/library/documentation/gtid/#gtid_binlog_pos)| - -## gtid_binlog_state -|name|value| -|----|-----| -|Name|`gtid_binlog_state`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`Null`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[gtid_binlog_state](https://mariadb.com/kb/en/library/documentation/gtid/#gtid_binlog_state)| - -## gtid_current_pos -|name|value| -|----|-----| -|Name|`gtid_current_pos`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`Null`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[gtid_current_pos](https://mariadb.com/kb/en/library/documentation/gtid/#gtid_current_pos)| - -## gtid_domain_id -|name|value| -|----|-----| -|Name|`gtid_domain_id`| -|Command line|`--gtid-domain-id=#`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[gtid_domain_id](https://mariadb.com/kb/en/library/documentation/gtid/#gtid_domain_id)| - -## last_gtid -|name|value| -|----|-----| -|Name|`last_gtid`| -|Type of variable|`string`| -|Scope|`session`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[last_gtid](https://mariadb.com/kb/en/library/documentation/gtid/#last_gtid)| - -## server_id -|name|value| -|----|-----| -|Name|`server_id`| -|Type of variable|`integer`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[server_id](https://mariadb.com/kb/en/library/documentation/gtid/#server_id)| -|mariadb.com|[server_id](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#server_id)| -|dev.mysql.com|[sysvar_server_id](https://dev.mysql.com/doc/refman/8.0/en/replication-options.html#sysvar_server_id)| - -## gtid_seq_no -|name|value| -|----|-----| -|Name|`gtid_seq_no`| -|Scope|`session`| -|Default value|`Null`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[gtid_seq_no](https://mariadb.com/kb/en/library/documentation/gtid/#gtid_seq_no)| - -## gtid_ignore_duplicates -|name|value| -|----|-----| -|Name|`gtid_ignore_duplicates`| -|Command line|`--gtid-ignore-duplicates=#`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[gtid_ignore_duplicates](https://mariadb.com/kb/en/library/documentation/gtid/#gtid_ignore_duplicates)| - -## gtid_pos_auto_engines -|name|value| -|----|-----| -|Name|`gtid_pos_auto_engines`| -|Command line|`--gtid-pos-auto-engines=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`empty`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[gtid_pos_auto_engines](https://mariadb.com/kb/en/library/documentation/gtid/#gtid_pos_auto_engines)| - -## gtid_cleanup_batch_size -|name|value| -|----|-----| -|Name|`gtid_cleanup_batch_size`| -|Command line|`--gtid-cleanup-batch-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`64`| -|Dynamic|`true`| -|Range|from: `0` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[gtid_cleanup_batch_size](https://mariadb.com/kb/en/library/documentation/gtid/#gtid_cleanup_batch_size)| - -## Server_audit_active -|name|value| -|----|-----| -|Name|`Server_audit_active`| -|Type of variable|`boolean`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[server_audit_active](https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-status-variables/#server_audit_active)| - -## Server_audit_current_log -|name|value| -|----|-----| -|Name|`Server_audit_current_log`| -|Type of variable|`string`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[server_audit_current_log](https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-status-variables/#server_audit_current_log)| - -## Server_audit_last_error -|name|value| -|----|-----| -|Name|`Server_audit_last_error`| -|Type of variable|`string`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[server_audit_last_error](https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-status-variables/#server_audit_last_error)| - -## Server_audit_writes_failed -|name|value| -|----|-----| -|Name|`Server_audit_writes_failed`| -|Type of variable|`integer`| -|Default value|`0`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[server_audit_writes_failed](https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-status-variables/#server_audit_writes_failed)| - -## server_audit_events -|name|value| -|----|-----| -|Name|`server_audit_events`| -|Command line|`--server-audit-events=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`Empty string`| -|Dynamic|`true`| -|Valid value(s)|`CONNECT`, `QUERY`, `TABLE`, `CONNECT`, `QUERY`, `TABLE`, `QUERY_DDL`, `QUERY_DML`, `CONNECT`, `QUERY`, `TABLE`, `QUERY_DDL`, `QUERY_DML`, `QUERY_DCL`, `CONNECT`, `QUERY`, `TABLE`, `QUERY_DDL`, `QUERY_DML`, `QUERY_DCL`, `QUERY_DML_NO_SELECT`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[server_audit_events](https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/#server_audit_events)| - -## server_audit_excl_users -|name|value| -|----|-----| -|Name|`server_audit_excl_users`| -|Command line|`--server-audit-excl-users=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`Empty string`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[server_audit_excl_users](https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/#server_audit_excl_users)| - -## server_audit_file_path -|name|value| -|----|-----| -|Name|`server_audit_file_path`| -|Command line|`--server-audit-file-path=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`server_audit.log`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[server_audit_file_path](https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/#server_audit_file_path)| - -## server_audit_file_rotate_now -|name|value| -|----|-----| -|Name|`server_audit_file_rotate_now`| -|Command line|`--server-audit-rotate-now[={0|1}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[server_audit_file_rotate_now](https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/#server_audit_file_rotate_now)| - -## server_audit_file_rotate_size -|name|value| -|----|-----| -|Name|`server_audit_file_rotate_size`| -|Command line|`--server-audit-rotate-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1000000`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[server_audit_file_rotate_size](https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/#server_audit_file_rotate_size)| - -## server_audit_file_rotations -|name|value| -|----|-----| -|Name|`server_audit_file_rotations`| -|Command line|`--server-audit-rotations=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`9`| -|Dynamic|`true`| -|Range|from: `0` to: `999`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[server_audit_file_rotations](https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/#server_audit_file_rotations)| - -## server_audit_incl_users -|name|value| -|----|-----| -|Name|`server_audit_incl_users`| -|Command line|`--server-audit-incl-users=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`Empty string`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[server_audit_incl_users](https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/#server_audit_incl_users)| - -## server_audit_loc_info -|name|value| -|----|-----| -|Name|`server_audit_loc_info`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`Empty string`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[server_audit_loc_info](https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/#server_audit_loc_info)| - -## server_audit_logging -|name|value| -|----|-----| -|Name|`server_audit_logging`| -|Command line|`--server-audit-logging[={0|1}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[server_audit_logging](https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/#server_audit_logging)| - -## server_audit_mode -|name|value| -|----|-----| -|Name|`server_audit_mode`| -|Command line|`--server-audit-mode[=#]`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[server_audit_mode](https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/#server_audit_mode)| - -## server_audit_output_type -|name|value| -|----|-----| -|Name|`server_audit_output_type`| -|Command line|`--server-audit-output-type=value`| -|Scope|`global`| -|Default value|`file`| -|Dynamic|`true`| -|Valid value(s)|`SYSLOG`, `FILE`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[server_audit_output_type](https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/#server_audit_output_type)| - -## server_audit_query_log_limit -|name|value| -|----|-----| -|Name|`server_audit_query_log_limit`| -|Command line|`--server-audit-query-log-limit=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1024`| -|Dynamic|`true`| -|Range|from: `0` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[server_audit_query_log_limit](https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/#server_audit_query_log_limit)| - -## server_audit_syslog_facility -|name|value| -|----|-----| -|Name|`server_audit_syslog_facility`| -|Command line|`--server-audit-syslog-facility=value`| -|Scope|`global`| -|Default value|`LOG_USER`| -|Dynamic|`true`| -|Valid value(s)|`LOG_USER`, `LOG_MAIL`, `LOG_DAEMON`, `LOG_AUTH`, `LOG_SYSLOG`, `LOG_LPR`, `LOG_NEWS`, `LOG_UUCP`, `LOG_CRON`, `LOG_AUTHPRIV`, `LOG_FTP`, `LOG_LOCAL0`, `LOG_LOCAL7`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[server_audit_syslog_facility](https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/#server_audit_syslog_facility)| - -## server_audit_syslog_ident -|name|value| -|----|-----| -|Name|`server_audit_syslog_ident`| -|Command line|`--server-audit-syslog-ident=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`mysql-server_auditing`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[server_audit_syslog_ident](https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/#server_audit_syslog_ident)| - -## server_audit_syslog_info -|name|value| -|----|-----| -|Name|`server_audit_syslog_info`| -|Command line|`--server-audit-syslog-info=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`Empty string`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[server_audit_syslog_info](https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/#server_audit_syslog_info)| - -## server_audit_syslog_priority -|name|value| -|----|-----| -|Name|`server_audit_syslog_priority`| -|Command line|`--server-audit-syslog-priority=value`| -|Scope|`global`| -|Default value|`LOG_INFO`| -|Dynamic|`true`| -|Valid value(s)|`LOG_EMERG`, `LOG_ALERT`, `LOG_CRIT`, `LOG_ERR`, `LOG_WARNING`, `LOG_NOTICE`, `LOG_INFO`, `LOG_DEBUG`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[server_audit_syslog_priority](https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/#server_audit_syslog_priority)| - -## server_audit -|name|value| -|----|-----| -|Name|`server_audit`| -|Command line|`--server-audit=val`| -|Default value|`ON`| -|Valid value(s)|`OFF`, `ON`, `FORCE`, `FORCE_PLUS_PERMANENT`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[server_audit](https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/#server_audit)| - -## Mroonga_count_skip -|name|value| -|----|-----| -|Name|`Mroonga_count_skip`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[mroonga_count_skip](https://mariadb.com/kb/en/library/documentation/mroonga-status-variables/#mroonga_count_skip)| - -## Mroonga_fast_order_limit -|name|value| -|----|-----| -|Name|`Mroonga_fast_order_limit`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[mroonga_fast_order_limit](https://mariadb.com/kb/en/library/documentation/mroonga-status-variables/#mroonga_fast_order_limit)| - -## mroonga_action_on_fulltext_query_error -|name|value| -|----|-----| -|Name|`mroonga_action_on_fulltext_query_error`| -|Command line|`--mroonga-action-on-fulltext-query-error=value`| -|Scope|`global`, `session`| -|Default value|`ERROR_AND_LOG`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[mroonga_action_on_fulltext_query_error](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/#mroonga_action_on_fulltext_query_error)| - -## mroonga_boolean_mode_syntax_flags -|name|value| -|----|-----| -|Name|`mroonga_boolean_mode_syntax_flags`| -|Command line|`--mroonga-boolean-mode-syntax-flags=value`| -|Scope|`global`, `session`| -|Default value|`DEFAULT`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[mroonga_boolean_mode_syntax_flags](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/#mroonga_boolean_mode_syntax_flags)| - -## mroonga_database_path_prefix -|name|value| -|----|-----| -|Name|`mroonga_database_path_prefix`| -|Command line|`--mroonga-database-path-prefix=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`(Empty)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[mroonga_database_path_prefix](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/#mroonga_database_path_prefix)| - -## mroonga_default_parser -|name|value| -|----|-----| -|Name|`mroonga_default_parser`| -|Command line|`--mroonga-default-parser=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`TokenBigram`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[mroonga_default_parser](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/#mroonga_default_parser)| - -## mroonga_default_tokenizer -|name|value| -|----|-----| -|Name|`mroonga_default_tokenizer`| -|Command line|`--mroonga-default-tokenizer=value`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Default value|`TokenBigram`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[mroonga_default_tokenizer](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/#mroonga_default_tokenizer)| - -## mroonga_default_wrapper_engine -|name|value| -|----|-----| -|Name|`mroonga_default_wrapper_engine`| -|Command line|`--mroonga-default-wrapper-engine=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`(Empty)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[mroonga_default_wrapper_engine](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/#mroonga_default_wrapper_engine)| - -## mroonga_dry_write -|name|value| -|----|-----| -|Name|`mroonga_dry_write`| -|Command line|`--mroonga-dry-write[={0|1}]`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`off`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[mroonga_dry_write](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/#mroonga_dry_write)| - -## mroonga_enable_operations_recording -|name|value| -|----|-----| -|Name|`mroonga_enable_operations_recording`| -|Command line|`--mroonga-enable-operations-recording={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[mroonga_enable_operations_recording](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/#mroonga_enable_operations_recording)| - -## mroonga_enable_optimization -|name|value| -|----|-----| -|Name|`mroonga_enable_optimization`| -|Command line|`--mroonga-enable-optimization={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`on`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[mroonga_enable_optimization](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/#mroonga_enable_optimization)| - -## mroonga_libgroonga_embedded -|name|value| -|----|-----| -|Name|`mroonga_libgroonga_embedded`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[mroonga_libgroonga_embedded](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/#mroonga_libgroonga_embedded)| - -## mroonga_libgroonga_support_lz4 -|name|value| -|----|-----| -|Name|`mroonga_libgroonga_support_lz4`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[mroonga_libgroonga_support_lz4](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/#mroonga_libgroonga_support_lz4)| - -## mroonga_libgroonga_support_zlib -|name|value| -|----|-----| -|Name|`mroonga_libgroonga_support_zlib`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[mroonga_libgroonga_support_zlib](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/#mroonga_libgroonga_support_zlib)| - -## mroonga_libgroonga_support_zstd -|name|value| -|----|-----| -|Name|`mroonga_libgroonga_support_zstd`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[mroonga_libgroonga_support_zstd](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/#mroonga_libgroonga_support_zstd)| - -## mroonga_libgroonga_version -|name|value| -|----|-----| -|Name|`mroonga_libgroonga_version`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[mroonga_libgroonga_version](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/#mroonga_libgroonga_version)| - -## mroonga_lock_timeout -|name|value| -|----|-----| -|Name|`mroonga_lock_timeout`| -|Command line|`--mroonga-lock-timeout=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`900000`| -|Dynamic|`true`| -|Range|from: `-1` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[mroonga_lock_timeout](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/#mroonga_lock_timeout)| - -## mroonga_log_file -|name|value| -|----|-----| -|Name|`mroonga_log_file`| -|Command line|`--mroonga-log-file=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`groonga.log`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[mroonga_log_file](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/#mroonga_log_file)| - -## mroonga_log_level -|name|value| -|----|-----| -|Name|`mroonga_log_level`| -|Command line|`--mroonga-log-level=value`| -|Scope|`global`| -|Default value|`NOTICE`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[mroonga_log_level](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/#mroonga_log_level)| - -## mroonga_match_escalation_threshold -|name|value| -|----|-----| -|Name|`mroonga_match_escalation_threshold`| -|Command line|`--mroonga-match-escalation-threshold=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `-1` to: `9.2233720368548E+18`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[mroonga_match_escalation_threshold](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/#mroonga_match_escalation_threshold)| - -## mroonga_max_n_records_for_estimate -|name|value| -|----|-----| -|Name|`mroonga_max_n_records_for_estimate`| -|Command line|`--mroonga-max-n-records-for-estimate=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`1000`| -|Dynamic|`true`| -|Range|from: `-1` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[mroonga_max_n_records_for_estimate](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/#mroonga_max_n_records_for_estimate)| - -## mroonga_query_log_file -|name|value| -|----|-----| -|Name|`mroonga_query_log_file`| -|Command line|`--mroonga-query-log-file=filename`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`(Empty string)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[mroonga_query_log_file](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/#mroonga_query_log_file)| - -## mroonga_vector_column_delimiter -|name|value| -|----|-----| -|Name|`mroonga_vector_column_delimiter`| -|Command line|`--mroonga-vector-column-delimiter=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`(white space)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[mroonga_vector_column_delimiter](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/#mroonga_vector_column_delimiter)| - -## mroonga_version -|name|value| -|----|-----| -|Name|`mroonga_version`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[mroonga_version](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/#mroonga_version)| - -## key_buffer_size -|name|value| -|----|-----| -|Name|`key_buffer_size`| -|Command line|`--key-buffer-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`true`| -|Range|from: `8` to: `upwards`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[key_buffer_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/#key_buffer_size)| -|dev.mysql.com|[sysvar_key_buffer_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_key_buffer_size)| - -## key_cache_age_threshold -|name|value| -|----|-----| -|Name|`key_cache_age_threshold`| -|Command line|`--key-cache-age-threshold=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`300`| -|Dynamic|`true`| -|Range|from: `100` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[key_cache_age_threshold](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/#key_cache_age_threshold)| -|dev.mysql.com|[sysvar_key_cache_age_threshold](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_key_cache_age_threshold)| - -## key_cache_block_size -|name|value| -|----|-----| -|Name|`key_cache_block_size`| -|Command line|`--key-cache-block-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1024`| -|Dynamic|`true`| -|Range|from: `512` to: `16384`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[key_cache_block_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/#key_cache_block_size)| -|dev.mysql.com|[sysvar_key_cache_block_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_key_cache_block_size)| - -## key_cache_division_limit -|name|value| -|----|-----| -|Name|`key_cache_division_limit`| -|Command line|`--key-cache-division-limit=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`100`| -|Dynamic|`true`| -|Range|from: `1` to: `100`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[key_cache_division_limit](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/#key_cache_division_limit)| -|dev.mysql.com|[sysvar_key_cache_division_limit](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_key_cache_division_limit)| - -## key_cache_file_hash_size -|name|value| -|----|-----| -|Name|`key_cache_file_hash_size`| -|Command line|`--key-cache-file-hash-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`512`| -|Dynamic|`true`| -|Range|from: `128` to: `16384`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[key_cache_file_hash_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/#key_cache_file_hash_size)| - -## key_cache_segments -|name|value| -|----|-----| -|Name|`key_cache_segments`| -|Command line|`--key-cache-segments=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0 (non-segmented)`| -|Dynamic|`true`| -|Range|from: `0` to: `64`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[key_cache_segments](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/#key_cache_segments)| - -## myisam_block_size -|name|value| -|----|-----| -|Name|`myisam_block_size`| -|Command line|`--myisam-block-size=#`| -|Type of variable|`integer`| -|Default value|`1024`| -|Range|from: `1024` to: `16384`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[myisam_block_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/#myisam_block_size)| -|dev.mysql.com|[option_mysqld_myisam-block-size](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_myisam-block-size)| - -## myisam_data_pointer_size -|name|value| -|----|-----| -|Name|`myisam_data_pointer_size`| -|Command line|`--myisam-data-pointer-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`6`| -|Dynamic|`true`| -|Range|from: `2` to: `7`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[myisam_data_pointer_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/#myisam_data_pointer_size)| -|dev.mysql.com|[sysvar_myisam_data_pointer_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_myisam_data_pointer_size)| - -## myisam_max_extra_sort_file_size -|name|value| -|----|-----| -|Name|`myisam_max_extra_sort_file_size`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[myisam_max_extra_sort_file_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/#myisam_max_extra_sort_file_size)| - -## myisam_max_sort_file_size -|name|value| -|----|-----| -|Name|`myisam_max_sort_file_size`| -|Command line|`--myisam-max-sort-file-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[myisam_max_sort_file_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/#myisam_max_sort_file_size)| -|dev.mysql.com|[sysvar_myisam_max_sort_file_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_myisam_max_sort_file_size)| - -## myisam_mmap_size -|name|value| -|----|-----| -|Name|`myisam_mmap_size`| -|Command line|`--myisam-mmap-size=#`| -|Type of variable|`integer`| -|Range|from: `7`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[myisam_mmap_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/#myisam_mmap_size)| -|dev.mysql.com|[sysvar_myisam_mmap_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_myisam_mmap_size)| - -## myisam_recover_options -|name|value| -|----|-----| -|Name|`myisam_recover_options`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`false`| -|Valid value(s)|`OFF`, `DEFAULT`, `BACKUP`, `BACKUP_ALL`, `FORCE`, `QUICK`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[myisam_recover_options](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/#myisam_recover_options)| -|dev.mysql.com|[sysvar_myisam_recover_options](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_myisam_recover_options)| - -## myisam_repair_threads -|name|value| -|----|-----| -|Name|`myisam_repair_threads`| -|Command line|`--myisam-repair-threads=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`1`| -|Dynamic|`true`| -|Range|from: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[myisam_repair_threads](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/#myisam_repair_threads)| -|dev.mysql.com|[sysvar_myisam_repair_threads](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_myisam_repair_threads)| - -## myisam_sort_buffer_size -|name|value| -|----|-----| -|Name|`myisam_sort_buffer_size`| -|Command line|`--myisam-sort-buffer-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `4096` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[myisam_sort_buffer_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/#myisam_sort_buffer_size)| -|dev.mysql.com|[sysvar_myisam_sort_buffer_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_myisam_sort_buffer_size)| - -## myisam_stats_method -|name|value| -|----|-----| -|Name|`myisam_stats_method`| -|Command line|`--myisam-stats-method=name`| -|Type of variable|`enumeration`| -|Scope|`global`, `session`| -|Default value|`nulls_unequal`| -|Dynamic|`true`| -|Valid value(s)|`nulls_equal`, `nulls_unequal`, `nulls_ignored`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[myisam_stats_method](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/#myisam_stats_method)| -|dev.mysql.com|[sysvar_myisam_stats_method](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_myisam_stats_method)| - -## myisam_use_mmap -|name|value| -|----|-----| -|Name|`myisam_use_mmap`| -|Command line|`--myisam-use-mmap[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[myisam_use_mmap](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/#myisam_use_mmap)| -|dev.mysql.com|[sysvar_myisam_use_mmap](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_myisam_use_mmap)| - -## rocksdb_access_hint_on_compaction_start -|name|value| -|----|-----| -|Name|`rocksdb_access_hint_on_compaction_start`| -|Command line|`--rocksdb-access-hint-on-compaction-start=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`false`| -|Range|from: `0` to: `3`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_access_hint_on_compaction_start](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_access_hint_on_compaction_start)| - -## rocksdb_advise_random_on_open -|name|value| -|----|-----| -|Name|`rocksdb_advise_random_on_open`| -|Command line|`--rocksdb-advise-random-on-open={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_advise_random_on_open](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_advise_random_on_open)| - -## rocksdb_allow_concurrent_memtable_write -|name|value| -|----|-----| -|Name|`rocksdb_allow_concurrent_memtable_write`| -|Command line|`--rocksdb-allow-concurrent-memtable-write={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_allow_concurrent_memtable_write](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_allow_concurrent_memtable_write)| - -## rocksdb_allow_mmap_reads -|name|value| -|----|-----| -|Name|`rocksdb_allow_mmap_reads`| -|Command line|`--rocksdb-allow-mmap-reads={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_allow_mmap_reads](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_allow_mmap_reads)| - -## rocksdb_allow_mmap_writes -|name|value| -|----|-----| -|Name|`rocksdb_allow_mmap_writes`| -|Command line|`--rocksdb-allow-mmap-writes={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_allow_mmap_writes](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_allow_mmap_writes)| - -## rocksdb_background_sync -|name|value| -|----|-----| -|Name|`rocksdb_background_sync`| -|Command line|`--rocksdb-background-sync={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_background_sync](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_background_sync)| - -## rocksdb_base_background_compactions -|name|value| -|----|-----| -|Name|`rocksdb_base_background_compactions`| -|Command line|`--rocksdb-base-background-compactions=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`false`| -|Range|from: `-1` to: `64`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_base_background_compactions](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_base_background_compactions)| - -## rocksdb_blind_delete_primary_key -|name|value| -|----|-----| -|Name|`rocksdb_blind_delete_primary_key`| -|Command line|`--rocksdb-blind-delete-primary-key={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_blind_delete_primary_key](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_blind_delete_primary_key)| - -## rocksdb_block_cache_size -|name|value| -|----|-----| -|Name|`rocksdb_block_cache_size`| -|Command line|`--rocksdb-block-cache-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`536870912`| -|Dynamic|`false`| -|Range|from: `1024` to: `9.2233720368548E+18`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_block_cache_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_block_cache_size)| - -## rocksdb_block_restart_interval -|name|value| -|----|-----| -|Name|`rocksdb_block_restart_interval`| -|Command line|`--rocksdb-block-restart-interval=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`16`| -|Dynamic|`false`| -|Range|from: `1` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_block_restart_interval](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_block_restart_interval)| - -## rocksdb_block_size -|name|value| -|----|-----| -|Name|`rocksdb_block_size`| -|Command line|`--rocksdb-block-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`4096`| -|Dynamic|`false`| -|Range|from: `1` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_block_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_block_size)| - -## rocksdb_block_size_deviation -|name|value| -|----|-----| -|Name|`rocksdb_block_size_deviation`| -|Command line|`--rocksdb-block-size-deviation=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`10`| -|Dynamic|`false`| -|Range|from: `0` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_block_size_deviation](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_block_size_deviation)| - -## rocksdb_bulk_load -|name|value| -|----|-----| -|Name|`rocksdb_bulk_load`| -|Command line|`--rocksdb-bulk-load={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_bulk_load](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_bulk_load)| - -## rocksdb_bulk_load_allow_unsorted -|name|value| -|----|-----| -|Name|`rocksdb_bulk_load_allow_unsorted`| -|Command line|`--rocksdb-bulk-load_allow_unsorted={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_bulk_load_allow_unsorted](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_bulk_load_allow_unsorted)| - -## rocksdb_bulk_load_size -|name|value| -|----|-----| -|Name|`rocksdb_bulk_load_size`| -|Command line|`--rocksdb-bulk-load-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1000`| -|Dynamic|`true`| -|Range|from: `1` to: `1073741824`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_bulk_load_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_bulk_load_size)| - -## rocksdb_bytes_per_sync -|name|value| -|----|-----| -|Name|`rocksdb_bytes_per_sync`| -|Command line|`--rocksdb-bytes-per-sync=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`false`| -|Range|from: `0` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_bytes_per_sync](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_bytes_per_sync)| - -## rocksdb_cache_index_and_filter_blocks -|name|value| -|----|-----| -|Name|`rocksdb_cache_index_and_filter_blocks`| -|Command line|`--rocksdb-cache-index-and-filter_blocks={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_cache_index_and_filter_blocks](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_cache_index_and_filter_blocks)| - -## rocksdb_checksums_pct -|name|value| -|----|-----| -|Name|`rocksdb_checksums_pct`| -|Command line|`--rocksdb-checksums-pct=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`100`| -|Dynamic|`true`| -|Range|from: `0` to: `100`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_checksums_pct](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_checksums_pct)| - -## rocksdb_collect_sst_properties -|name|value| -|----|-----| -|Name|`rocksdb_collect_sst_properties`| -|Command line|`--rocksdb-collect-sst-properties={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_collect_sst_properties](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_collect_sst_properties)| - -## rocksdb_commit_in_the_middle -|name|value| -|----|-----| -|Name|`rocksdb_commit_in_the_middle`| -|Command line|`--rocksdb-commit-in-the-middle={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_commit_in_the_middle](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_commit_in_the_middle)| - -## rocksdb_compact_cf -|name|value| -|----|-----| -|Name|`rocksdb_compact_cf`| -|Command line|`--rocksdb-compact-cf=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`(Empty)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_compact_cf](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_compact_cf)| - -## rocksdb_compaction_readahead_size -|name|value| -|----|-----| -|Name|`rocksdb_compaction_readahead_size`| -|Command line|`--rocksdb-compaction-readahead-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_compaction_readahead_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_compaction_readahead_size)| - -## rocksdb_compaction_sequential_deletes -|name|value| -|----|-----| -|Name|`rocksdb_compaction_sequential_deletes`| -|Command line|`--rocksdb-compaction-sequential-deletes=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `2000000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_compaction_sequential_deletes](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_compaction_sequential_deletes)| - -## rocksdb_compaction_sequential_deletes_count_sd -|name|value| -|----|-----| -|Name|`rocksdb_compaction_sequential_deletes_count_sd`| -|Command line|`--rocksdb-compaction-sequential-deletes-count-sd={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_compaction_sequential_deletes_count_sd](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_compaction_sequential_deletes_count_sd)| - -## rocksdb_compaction_sequential_deletes_file_size -|name|value| -|----|-----| -|Name|`rocksdb_compaction_sequential_deletes_file_size`| -|Command line|`--rocksdb-compaction-sequential-deletes-file-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `-1` to: `9.2233720368548E+18`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_compaction_sequential_deletes_file_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_compaction_sequential_deletes_file_size)| - -## rocksdb_compaction_sequential_deletes_window -|name|value| -|----|-----| -|Name|`rocksdb_compaction_sequential_deletes_window`| -|Command line|`--rocksdb-compaction-sequential-deletes-window=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `2000000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_compaction_sequential_deletes_window](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_compaction_sequential_deletes_window)| - -## rocksdb_concurrent_prepare -|name|value| -|----|-----| -|Name|`rocksdb_concurrent_prepare`| -|Command line|`--rocksdb-coconcurrent-prepare={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_concurrent_prepare](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_concurrent_prepare)| - -## rocksdb_create_checkpoint -|name|value| -|----|-----| -|Name|`rocksdb_create_checkpoint`| -|Command line|`--rocksdb-create-checkpoint=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`(Empty)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_create_checkpoint](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_create_checkpoint)| - -## rocksdb_create_if_missing -|name|value| -|----|-----| -|Name|`rocksdb_create_if_missing`| -|Command line|`--rocksdb-create-if-missing={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_create_if_missing](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_create_if_missing)| - -## rocksdb_create_missing_column_families -|name|value| -|----|-----| -|Name|`rocksdb_create_missing_column_families`| -|Command line|`--rocksdb-create-missing-column-families={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_create_missing_column_families](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_create_missing_column_families)| - -## rocksdb_datadir -|name|value| -|----|-----| -|Name|`rocksdb_datadir`| -|Command line|`--rocksdb-datadir[=value]`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`./.rocksdb`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_datadir](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_datadir)| - -## rocksdb_db_write_buffer_size -|name|value| -|----|-----| -|Name|`rocksdb_db_write_buffer_size`| -|Command line|`--rocksdb-db-write-buffer-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`false`| -|Range|from: `0` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_db_write_buffer_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_db_write_buffer_size)| - -## rocksdb_deadlock_detect -|name|value| -|----|-----| -|Name|`rocksdb_deadlock_detect`| -|Command line|`--rocksdb-deadlock-detect={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_deadlock_detect](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_deadlock_detect)| - -## rocksdb_deadlock_detect_depth -|name|value| -|----|-----| -|Name|`rocksdb_deadlock_detect_depth`| -|Command line|`--rocksdb-deadlock-detect-depth=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`50`| -|Dynamic|`true`| -|Range|from: `2` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_deadlock_detect_depth](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_deadlock_detect_depth)| - -## rocksdb_debug_optimizer_no_zero_cardinality -|name|value| -|----|-----| -|Name|`rocksdb_debug_optimizer_no_zero_cardinality`| -|Command line|`--rocksdb-debug-optimizer-no-zero-cardinality={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_debug_optimizer_no_zero_cardinality](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_debug_optimizer_no_zero_cardinality)| - -## rocksdb_debug_ttl_ignore_pk -|name|value| -|----|-----| -|Name|`rocksdb_debug_ttl_ignore_pk`| -|Command line|`--rocksdb-debug-ttl-ignore-pk={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_debug_ttl_ignore_pk](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_debug_ttl_ignore_pk)| - -## rocksdb_debug_ttl_read_filter_ts -|name|value| -|----|-----| -|Name|`rocksdb_debug_ttl_read_filter_ts`| -|Command line|`--rocksdb-debug-ttl-read-filter-ts=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `-3600` to: `3600`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_debug_ttl_read_filter_ts](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_debug_ttl_read_filter_ts)| - -## rocksdb_debug_ttl_rec_ts -|name|value| -|----|-----| -|Name|`rocksdb_debug_ttl_rec_ts`| -|Command line|`--rocksdb-debug-ttl-read-filter-ts=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `-3600` to: `3600`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_debug_ttl_rec_ts](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_debug_ttl_rec_ts)| - -## rocksdb_debug_ttl_snapshot_ts -|name|value| -|----|-----| -|Name|`rocksdb_debug_ttl_snapshot_ts`| -|Command line|`--rocksdb-debug-ttl-snapshot-ts=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `-3600` to: `3600`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_debug_ttl_snapshot_ts](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_debug_ttl_snapshot_ts)| - -## rocksdb_default_cf_options -|name|value| -|----|-----| -|Name|`rocksdb_default_cf_options`| -|Command line|`--rocksdb-default-cf-options=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`(Empty)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_default_cf_options](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_default_cf_options)| - -## rocksdb_delayed_write_rate -|name|value| -|----|-----| -|Name|`rocksdb_delayed_write_rate`| -|Command line|`--rocksdb-delayed-write-rate=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`16777216`| -|Dynamic|`true`| -|Range|from: `0` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_delayed_write_rate](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_delayed_write_rate)| - -## rocksdb_delete_obsolete_files_period_micros -|name|value| -|----|-----| -|Name|`rocksdb_delete_obsolete_files_period_micros`| -|Command line|`--rocksdb-delete-obsolete-files-period-micros=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`21600000000`| -|Dynamic|`false`| -|Range|from: `0` to: `9.2233720368548E+18`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_delete_obsolete_files_period_micros](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_delete_obsolete_files_period_micros)| - -## rocksdb_enable_2pc -|name|value| -|----|-----| -|Name|`rocksdb_enable_2pc`| -|Command line|`--rocksdb-enable-2pc={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_enable_2pc](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_enable_2pc)| - -## rocksdb_enable_bulk_load_api -|name|value| -|----|-----| -|Name|`rocksdb_enable_bulk_load_api`| -|Command line|`--rocksdb-enable-bulk-load-api={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_enable_bulk_load_api](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_enable_bulk_load_api)| - -## rocksdb_enable_thread_tracking -|name|value| -|----|-----| -|Name|`rocksdb_enable_thread_tracking`| -|Command line|`--rocksdb-enable-thread-tracking={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_enable_thread_tracking](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_enable_thread_tracking)| - -## rocksdb_enable_ttl -|name|value| -|----|-----| -|Name|`rocksdb_enable_ttl`| -|Command line|`--rocksdb-enable-ttl={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_enable_ttl](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_enable_ttl)| - -## rocksdb_enable_ttl_read_filtering -|name|value| -|----|-----| -|Name|`rocksdb_enable_ttl_read_filtering`| -|Command line|`--rocksdb-enable-ttl-read-filtering={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_enable_ttl_read_filtering](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_enable_ttl_read_filtering)| - -## rocksdb_enable_write_thread_adaptive_yield -|name|value| -|----|-----| -|Name|`rocksdb_enable_write_thread_adaptive_yield`| -|Command line|`--rocksdb-enable-write-thread-adaptive-yield={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_enable_write_thread_adaptive_yield](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_enable_write_thread_adaptive_yield)| - -## rocksdb_error_if_exists -|name|value| -|----|-----| -|Name|`rocksdb_error_if_exists`| -|Command line|`--rocksdb-error-if-exists={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_error_if_exists](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_error_if_exists)| - -## rocksdb_flush_log_at_trx_commit -|name|value| -|----|-----| -|Name|`rocksdb_flush_log_at_trx_commit`| -|Command line|`--rocksdb-flush-log-at-trx-commit=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`1`| -|Dynamic|`true`| -|Range|from: `0` to: `2`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_flush_log_at_trx_commit](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_flush_log_at_trx_commit)| - -## rocksdb_flush_memtable_on_analyze -|name|value| -|----|-----| -|Name|`rocksdb_flush_memtable_on_analyze`| -|Command line|`--rocksdb-flush-memtable-on-analyze={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_flush_memtable_on_analyze](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_flush_memtable_on_analyze)| - -## rocksdb_force_compute_memtable_stats -|name|value| -|----|-----| -|Name|`rocksdb_force_compute_memtable_stats`| -|Command line|`--rocksdb-force-compute-memtable-stats={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_force_compute_memtable_stats](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_force_compute_memtable_stats)| - -## rocksdb_force_compute_memtable_stats_cachetime -|name|value| -|----|-----| -|Name|`rocksdb_force_compute_memtable_stats_cachetime`| -|Command line|`--rocksdb-force-compute-memtable-stats-cachetime=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`60000000`| -|Dynamic|`true`| -|Range|from: `0` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_force_compute_memtable_stats_cachetime](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_force_compute_memtable_stats_cachetime)| - -## rocksdb_force_flush_memtable_and_lzero_now -|name|value| -|----|-----| -|Name|`rocksdb_force_flush_memtable_and_lzero_now`| -|Command line|`--rocksdb-force-flush-memtable-and-lzero-now={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_force_flush_memtable_and_lzero_now](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_force_flush_memtable_and_lzero_now)| - -## rocksdb_force_flush_memtable_now -|name|value| -|----|-----| -|Name|`rocksdb_force_flush_memtable_now`| -|Command line|`--rocksdb-force-flush-memtable-now={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_force_flush_memtable_now](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_force_flush_memtable_now)| - -## rocksdb_force_index_records_in_range -|name|value| -|----|-----| -|Name|`rocksdb_force_index_records_in_range`| -|Command line|`--rocksdb-force-index-records-in-range=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`1`| -|Dynamic|`true`| -|Range|from: `0` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_force_index_records_in_range](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_force_index_records_in_range)| - -## rocksdb_git_hash -|name|value| -|----|-----| -|Name|`rocksdb_git_hash`| -|Command line|`--rocksdb-git-hash=value=#`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`As per git revision.`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_git_hash](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_git_hash)| - -## rocksdb_hash_index_allow_collision -|name|value| -|----|-----| -|Name|`rocksdb_hash_index_allow_collision`| -|Command line|`--rocksdb-hash-index-allow-collision={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_hash_index_allow_collision](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_hash_index_allow_collision)| - -## rocksdb_index_type -|name|value| -|----|-----| -|Name|`rocksdb_index_type`| -|Command line|`--rocksdb-index-type=value`| -|Scope|`global`| -|Default value|`kBinarySearch`| -|Dynamic|`false`| -|Valid value(s)|`kBinarySearch`, `kHashSearch`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_index_type](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_index_type)| - -## rocksdb_info_log_level -|name|value| -|----|-----| -|Name|`rocksdb_info_log_level`| -|Command line|`--rocksdb-info-log-level=value`| -|Scope|`global`| -|Default value|`error_level`| -|Dynamic|`true`| -|Valid value(s)|`error_level`, `debug_level`, `info_level`, `warn_level`, `fatal_level`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_info_log_level](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_info_log_level)| - -## rocksdb_io_write_timeout -|name|value| -|----|-----| -|Name|`rocksdb_io_write_timeout`| -|Command line|`--rocksdb-io-write-timeout=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Valid value(s)|`0`, `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_io_write_timeout](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_io_write_timeout)| - -## rocksdb_is_fd_close_on_exec -|name|value| -|----|-----| -|Name|`rocksdb_is_fd_close_on_exec`| -|Command line|`--rocksdb-is-fd-close-on-exec={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_is_fd_close_on_exec](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_is_fd_close_on_exec)| - -## rocksdb_keep_log_file_num -|name|value| -|----|-----| -|Name|`rocksdb_keep_log_file_num`| -|Command line|`--rocksdb-keep-log-file-num=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1000`| -|Dynamic|`false`| -|Range|from: `0` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_keep_log_file_num](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_keep_log_file_num)| - -## rocksdb_large_prefix -|name|value| -|----|-----| -|Name|`rocksdb_large_prefix`| -|Command line|`--rocksdb-large_prefix={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_large_prefix](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_large_prefix)| - -## rocksdb_lock_scanned_rows -|name|value| -|----|-----| -|Name|`rocksdb_lock_scanned_rows`| -|Command line|`--rocksdb-lock-scanned-rows={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_lock_scanned_rows](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_lock_scanned_rows)| - -## rocksdb_lock_wait_timeout -|name|value| -|----|-----| -|Name|`rocksdb_lock_wait_timeout`| -|Command line|`--rocksdb-lock-wait-timeout=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`1`| -|Dynamic|`true`| -|Range|from: `1` to: `1073741824`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_lock_wait_timeout](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_lock_wait_timeout)| - -## rocksdb_log_file_time_to_roll -|name|value| -|----|-----| -|Name|`rocksdb_log_file_time_to_roll`| -|Command line|`--rocksdb-log-file-time-to_roll=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`false`| -|Range|from: `0` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_log_file_time_to_roll](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_log_file_time_to_roll)| - -## rocksdb_manifest_preallocation_size -|name|value| -|----|-----| -|Name|`rocksdb_manifest_preallocation_size`| -|Command line|`--rocksdb-manifest-preallocation-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`false`| -|Range|from: `0` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_manifest_preallocation_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_manifest_preallocation_size)| - -## rocksdb_manual_wal_flush -|name|value| -|----|-----| -|Name|`rocksdb_manual_wal_flush`| -|Command line|`--rocksdb-manual-wal-flush={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_manual_wal_flush](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_manual_wal_flush)| - -## rocksdb_master_skip_tx_api -|name|value| -|----|-----| -|Name|`rocksdb_master_skip_tx_api`| -|Command line|`--rocksdb-master-skip-tx-api={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_master_skip_tx_api](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_master_skip_tx_api)| - -## rocksdb_max_background_compactions -|name|value| -|----|-----| -|Name|`rocksdb_max_background_compactions`| -|Command line|`--rocksdb-max-background-compactions=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`true`| -|Range|from: `1` to: `64`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_max_background_compactions](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_max_background_compactions)| - -## rocksdb_max_background_flushes -|name|value| -|----|-----| -|Name|`rocksdb_max_background_flushes`| -|Command line|`--rocksdb-max-background-flushes=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`false`| -|Range|from: `1` to: `64`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_max_background_flushes](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_max_background_flushes)| - -## rocksdb_max_background_jobs -|name|value| -|----|-----| -|Name|`rocksdb_max_background_jobs`| -|Command line|`--rocksdb-max-background-jobs=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`2`| -|Dynamic|`true`| -|Range|from: `-1` to: `64`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_max_background_jobs](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_max_background_jobs)| - -## rocksdb_max_latest_deadlocks -|name|value| -|----|-----| -|Name|`rocksdb_max_latest_deadlocks`| -|Command line|`--rocksdb-max-latest-deadlocks=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`5`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_max_latest_deadlocks](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_max_latest_deadlocks)| - -## rocksdb_max_log_file_size -|name|value| -|----|-----| -|Name|`rocksdb_max_log_file_size`| -|Command line|`--rocksdb-max-log-file-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`false`| -|Range|from: `0` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_max_log_file_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_max_log_file_size)| - -## rocksdb_max_manifest_file_size -|name|value| -|----|-----| -|Name|`rocksdb_max_manifest_file_size`| -|Command line|`--rocksdb-manifest-log-file-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`18446744073709551615`| -|Dynamic|`false`| -|Range|from: `0` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_max_manifest_file_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_max_manifest_file_size)| - -## rocksdb_max_open_files -|name|value| -|----|-----| -|Name|`rocksdb_max_open_files`| -|Command line|`--rocksdb-max-open-files=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`-1`| -|Dynamic|`false`| -|Range|from: `-1` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_max_open_files](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_max_open_files)| - -## rocksdb_max_row_locks -|name|value| -|----|-----| -|Name|`rocksdb_max_row_locks`| -|Command line|`--rocksdb-max-row-locks=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`1048576`| -|Dynamic|`true`| -|Range|from: `1` to: `1073741824`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_max_row_locks](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_max_row_locks)| - -## rocksdb_max_subcompactions -|name|value| -|----|-----| -|Name|`rocksdb_max_subcompactions`| -|Command line|`--rocksdb-max-subcompactions=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`false`| -|Range|from: `1` to: `64`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_max_subcompactions](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_max_subcompactions)| - -## rocksdb_max_total_wal_size -|name|value| -|----|-----| -|Name|`rocksdb_max_total_wal_size`| -|Command line|`--rocksdb-max-total-wal-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`false`| -|Range|from: `0` to: `9.2233720368548E+18`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_max_total_wal_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_max_total_wal_size)| - -## rocksdb_merge_buf_size -|name|value| -|----|-----| -|Name|`rocksdb_merge_buf_size`| -|Command line|`--rocksdb-merge-buf-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`67108864`| -|Dynamic|`true`| -|Range|from: `100` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_merge_buf_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_merge_buf_size)| - -## rocksdb_merge_combine_read_size -|name|value| -|----|-----| -|Name|`rocksdb_merge_combine_read_size`| -|Command line|`--rocksdb-merge-combine-read-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`1073741824`| -|Dynamic|`true`| -|Range|from: `100` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_merge_combine_read_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_merge_combine_read_size)| - -## rocksdb_merge_tmp_file_removal_delay_ms -|name|value| -|----|-----| -|Name|`rocksdb_merge_tmp_file_removal_delay_ms`| -|Command line|`--rocksdb-merge-tmp-file-removal-delay-ms=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_merge_tmp_file_removal_delay_ms](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_merge_tmp_file_removal_delay_ms)| - -## rocksdb_new_table_reader_for_compaction_inputs -|name|value| -|----|-----| -|Name|`rocksdb_new_table_reader_for_compaction_inputs`| -|Command line|`--rocksdb-new-table-reader-for-compaction-inputs={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_new_table_reader_for_compaction_inputs](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_new_table_reader_for_compaction_inputs)| - -## rocksdb_no_block_cache -|name|value| -|----|-----| -|Name|`rocksdb_no_block_cache`| -|Command line|`--rocksdb-no-block-cache={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_no_block_cache](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_no_block_cache)| - -## rocksdb_override_cf_options -|name|value| -|----|-----| -|Name|`rocksdb_override_cf_options`| -|Command line|`--rocksdb-override-cf-options=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`(Empty)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_override_cf_options](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_override_cf_options)| - -## rocksdb_paranoid_checks -|name|value| -|----|-----| -|Name|`rocksdb_paranoid_checks`| -|Command line|`--rocksdb-paranoid-checks={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_paranoid_checks](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_paranoid_checks)| - -## rocksdb_pause_background_work -|name|value| -|----|-----| -|Name|`rocksdb_pause_background_work`| -|Command line|`--rocksdb-pause-background-work={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_pause_background_work](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_pause_background_work)| - -## rocksdb_perf_context_level -|name|value| -|----|-----| -|Name|`rocksdb_perf_context_level`| -|Command line|`--rocksdb-perf-context-level=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `4`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_perf_context_level](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_perf_context_level)| - -## rocksdb_persistent_cache_path -|name|value| -|----|-----| -|Name|`rocksdb_persistent_cache_path`| -|Command line|`--rocksdb-persistent-cache-path=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`(Empty)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_persistent_cache_path](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_persistent_cache_path)| - -## rocksdb_persistent_cache_size_mb -|name|value| -|----|-----| -|Name|`rocksdb_persistent_cache_size_mb`| -|Command line|`--rocksdb-persistent-cache-size-mb=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`false`| -|Range|from: `0` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_persistent_cache_size_mb](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_persistent_cache_size_mb)| - -## rocksdb_pin_l0_filter_and_index_blocks_in_cache -|name|value| -|----|-----| -|Name|`rocksdb_pin_l0_filter_and_index_blocks_in_cache`| -|Command line|`--rocksdb-pin-l0-filter-and-index-blocks-in-cache={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_pin_l0_filter_and_index_blocks_in_cache](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_pin_l0_filter_and_index_blocks_in_cache)| - -## rocksdb_print_snapshot_conflict_queries -|name|value| -|----|-----| -|Name|`rocksdb_print_snapshot_conflict_queries`| -|Command line|`--rocksdb-print-snapshot-conflict-queries={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_print_snapshot_conflict_queries](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_print_snapshot_conflict_queries)| - -## rocksdb_rate_limiter_bytes_per_sec -|name|value| -|----|-----| -|Name|`rocksdb_rate_limiter_bytes_per_sec`| -|Command line|`--rocksdb-rate-limiter-bytes-per-sec=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `9.2233720368548E+18`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_rate_limiter_bytes_per_sec](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_rate_limiter_bytes_per_sec)| - -## rocksdb_read_free_rpl_tables -|name|value| -|----|-----| -|Name|`rocksdb_read_free_rpl_tables`| -|Command line|`--rocksdb-read-free-rpl-tables=value`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Default value|`(Empty)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_read_free_rpl_tables](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_read_free_rpl_tables)| - -## rocksdb_records_in_range -|name|value| -|----|-----| -|Name|`rocksdb_records_in_range`| -|Command line|`--rocksdb-records-in-range=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_records_in_range](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_records_in_range)| - -## rocksdb_reset_stats -|name|value| -|----|-----| -|Name|`rocksdb_reset_stats`| -|Command line|`--rocksdb-reset-stats={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_reset_stats](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_reset_stats)| - -## rocksdb_seconds_between_stat_computes -|name|value| -|----|-----| -|Name|`rocksdb_seconds_between_stat_computes`| -|Command line|`--rocksdb-seconds-between-stat-computes=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`3600`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_seconds_between_stat_computes](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_seconds_between_stat_computes)| - -## rocksdb_signal_drop_index_thread -|name|value| -|----|-----| -|Name|`rocksdb_signal_drop_index_thread`| -|Command line|`--rocksdb-signal-drop-index-thread={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_signal_drop_index_thread](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_signal_drop_index_thread)| - -## rocksdb_sim_cache_size -|name|value| -|----|-----| -|Name|`rocksdb_sim_cache_size`| -|Command line|`--rocksdb-sim-cache-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`false`| -|Range|from: `0` to: `9.2233720368548E+18`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_sim_cache_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_sim_cache_size)| - -## rocksdb_skip_bloom_filter_on_read -|name|value| -|----|-----| -|Name|`rocksdb_skip_bloom_filter_on_read`| -|Command line|`--rocksdb-skip-bloom-filter-on_read={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_skip_bloom_filter_on_read](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_skip_bloom_filter_on_read)| - -## rocksdb_skip_fill_cache -|name|value| -|----|-----| -|Name|`rocksdb_skip_fill_cache`| -|Command line|`--rocksdb-skip-fill-cache={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_skip_fill_cache](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_skip_fill_cache)| - -## rocksdb_skip_unique_check_tables -|name|value| -|----|-----| -|Name|`rocksdb_skip_unique_check_tables`| -|Command line|`--rocksdb-skip-unique-check-tables=value`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Default value|`.*`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_skip_unique_check_tables](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_skip_unique_check_tables)| - -## rocksdb_sst_mgr_rate_bytes_per_sec -|name|value| -|----|-----| -|Name|`rocksdb_sst_mgr_rate_bytes_per_sec`| -|Command line|`--rocksdb-sst-mgr-rate-bytes-per-sec=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_sst_mgr_rate_bytes_per_sec](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_sst_mgr_rate_bytes_per_sec)| - -## rocksdb_stats_dump_period_sec -|name|value| -|----|-----| -|Name|`rocksdb_stats_dump_period_sec`| -|Command line|`--rocksdb-stats-dump-period-sec=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`600`| -|Dynamic|`false`| -|Range|from: `0` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_stats_dump_period_sec](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_stats_dump_period_sec)| - -## rocksdb_store_row_debug_checksums -|name|value| -|----|-----| -|Name|`rocksdb_store_row_debug_checksums`| -|Command line|`--rocksdb-store-row-debug-checksums={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_store_row_debug_checksums](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_store_row_debug_checksums)| - -## rocksdb_strict_collation_check -|name|value| -|----|-----| -|Name|`rocksdb_strict_collation_check`| -|Command line|`--rocksdb-strict-collation-check={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_strict_collation_check](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_strict_collation_check)| - -## rocksdb_strict_collation_exceptions -|name|value| -|----|-----| -|Name|`rocksdb_strict_collation_exceptions`| -|Command line|`--rocksdb-strict-collation-exceptions=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`(Empty)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_strict_collation_exceptions](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_strict_collation_exceptions)| - -## rocksdb_supported_compression_types -|name|value| -|----|-----| -|Name|`rocksdb_supported_compression_types`| -|Command line|`--rocksdb-supported-compression-types=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`Snappy,Zlib`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_supported_compression_types](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_supported_compression_types)| - -## rocksdb_table_cache_numshardbits -|name|value| -|----|-----| -|Name|`rocksdb_table_cache_numshardbits`| -|Command line|`--rocksdb-table-cache-numshardbits=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`6`| -|Dynamic|`false`| -|Range|from: `0` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_table_cache_numshardbits](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_table_cache_numshardbits)| - -## rocksdb_table_stats_sampling_pct -|name|value| -|----|-----| -|Name|`rocksdb_table_stats_sampling_pct`| -|Command line|`--rocksdb-table-stats-sampling-pct=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`10`| -|Dynamic|`true`| -|Range|from: `0` to: `100`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_table_stats_sampling_pct](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_table_stats_sampling_pct)| - -## rocksdb_tmpdir -|name|value| -|----|-----| -|Name|`rocksdb_tmpdir`| -|Command line|`--rocksdb-tmpdir[=value]`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Default value|`(Empty)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_tmpdir](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_tmpdir)| - -## rocksdb_trace_sst_api -|name|value| -|----|-----| -|Name|`rocksdb_trace_sst_api`| -|Command line|`--rocksdb-trace-sst-api={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_trace_sst_api](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_trace_sst_api)| - -## rocksdb_unsafe_for_binlog -|name|value| -|----|-----| -|Name|`rocksdb_unsafe_for_binlog`| -|Command line|`--rocksdb-unsafe-for-binlog={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_unsafe_for_binlog](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_unsafe_for_binlog)| - -## rocksdb_update_cf_options -|name|value| -|----|-----| -|Name|`rocksdb_update_cf_options`| -|Command line|`--rocksdb-update-cf-options=value`| -|Scope|`global`| -|Default value|`(Empty)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_update_cf_options](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_update_cf_options)| - -## rocksdb_use_adaptive_mutex -|name|value| -|----|-----| -|Name|`rocksdb_use_adaptive_mutex`| -|Command line|`--rocksdb-use-adaptive-mutex={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_use_adaptive_mutex](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_use_adaptive_mutex)| - -## rocksdb_use_clock_cache -|name|value| -|----|-----| -|Name|`rocksdb_use_clock_cache`| -|Command line|`--rocksdb-use-clock-cache={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_use_clock_cache](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_use_clock_cache)| - -## rocksdb_use_direct_io_for_flush_and_compaction -|name|value| -|----|-----| -|Name|`rocksdb_use_direct_io_for_flush_and_compaction`| -|Command line|`--rocksdb-use-direct-io-for-flush-and-compaction={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_use_direct_io_for_flush_and_compaction](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_use_direct_io_for_flush_and_compaction)| - -## rocksdb_use_direct_reads -|name|value| -|----|-----| -|Name|`rocksdb_use_direct_reads`| -|Command line|`--rocksdb-use-direct-reads={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_use_direct_reads](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_use_direct_reads)| - -## rocksdb_use_direct_writes -|name|value| -|----|-----| -|Name|`rocksdb_use_direct_writes`| -|Command line|`--rocksdb-use-direct-reads={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_use_direct_writes](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_use_direct_writes)| - -## rocksdb_use_fsync -|name|value| -|----|-----| -|Name|`rocksdb_use_fsync`| -|Command line|`--rocksdb-use-fsync={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_use_fsync](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_use_fsync)| - -## rocksdb_validate_tables -|name|value| -|----|-----| -|Name|`rocksdb_validate_tables`| -|Command line|`--rocksdb-validate-tables=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`false`| -|Range|from: `0` to: `2`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_validate_tables](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_validate_tables)| - -## rocksdb_verify_row_debug_checksums -|name|value| -|----|-----| -|Name|`rocksdb_verify_row_debug_checksums`| -|Command line|`--rocksdb-verify-row-debug-checksums={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_verify_row_debug_checksums](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_verify_row_debug_checksums)| - -## rocksdb_wal_bytes_per_sync -|name|value| -|----|-----| -|Name|`rocksdb_wal_bytes_per_sync`| -|Command line|`--rocksdb-wal-bytes-per-sync=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`false`| -|Range|from: `0` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_wal_bytes_per_sync](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_wal_bytes_per_sync)| - -## rocksdb_wal_dir -|name|value| -|----|-----| -|Name|`rocksdb_wal_dir`| -|Command line|`--rocksdb-wal-dir=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`(Empty)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_wal_dir](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_wal_dir)| - -## rocksdb_wal_recovery_mode -|name|value| -|----|-----| -|Name|`rocksdb_wal_recovery_mode`| -|Command line|`--rocksdb-wal-recovery-mode=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`true`| -|Range|from: `0` to: `3`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_wal_recovery_mode](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_wal_recovery_mode)| - -## rocksdb_wal_size_limit_mb -|name|value| -|----|-----| -|Name|`rocksdb_wal_size_limit_mb`| -|Command line|`--rocksdb-wal-size-limit-mb=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`false`| -|Range|from: `0` to: `9.2233720368548E+18`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_wal_size_limit_mb](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_wal_size_limit_mb)| - -## rocksdb_wal_ttl_seconds -|name|value| -|----|-----| -|Name|`rocksdb_wal_ttl_seconds`| -|Command line|`--rocksdb-wal-ttl-seconds=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`false`| -|Range|from: `0` to: `9.2233720368548E+18`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_wal_ttl_seconds](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_wal_ttl_seconds)| - -## rocksdb_whole_key_filtering -|name|value| -|----|-----| -|Name|`rocksdb_whole_key_filtering`| -|Command line|`--rocksdb-whole-key-filtering={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_whole_key_filtering](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_whole_key_filtering)| - -## rocksdb_write_batch_max_bytes -|name|value| -|----|-----| -|Name|`rocksdb_write_batch_max_bytes`| -|Command line|`--rocksdb-write-batch-max-bytes=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_write_batch_max_bytes](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_write_batch_max_bytes)| - -## rocksdb_write_disable_wal -|name|value| -|----|-----| -|Name|`rocksdb_write_disable_wal`| -|Command line|`--rocksdb-write-disable-wal={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_write_disable_wal](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_write_disable_wal)| - -## rocksdb_write_ignore_missing_column_families -|name|value| -|----|-----| -|Name|`rocksdb_write_ignore_missing_column_families`| -|Command line|`--rocksdb-write-ignore-missing-column-familiesl={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rocksdb_write_ignore_missing_column_families](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/#rocksdb_write_ignore_missing_column_families)| - -## oqgraph_allow_create_integer_latch -|name|value| -|----|-----| -|Name|`oqgraph_allow_create_integer_latch`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[oqgraph_allow_create_integer_latch](https://mariadb.com/kb/en/library/documentation/oqgraph-system-and-status-variables/#oqgraph_allow_create_integer_latch)| - -## Oqgraph_boost_version -|name|value| -|----|-----| -|Name|`Oqgraph_boost_version`| -|Type of variable|`string`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[oqgraph_boost_version](https://mariadb.com/kb/en/library/documentation/oqgraph-system-and-status-variables/#oqgraph_boost_version)| - -## Oqgraph_compat_mode -|name|value| -|----|-----| -|Name|`Oqgraph_compat_mode`| -|Type of variable|`string`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[oqgraph_compat_mode](https://mariadb.com/kb/en/library/documentation/oqgraph-system-and-status-variables/#oqgraph_compat_mode)| - -## Oqgraph_verbose_debug -|name|value| -|----|-----| -|Name|`Oqgraph_verbose_debug`| -|Type of variable|`string`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[oqgraph_verbose_debug](https://mariadb.com/kb/en/library/documentation/oqgraph-system-and-status-variables/#oqgraph_verbose_debug)| - -## performance_schema -|name|value| -|----|-----| -|Name|`performance_schema`| -|Type of variable|`boolean`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema)| -|dev.mysql.com|[sysvar_performance_schema](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema)| - -## performance_schema_accounts_size -|name|value| -|----|-----| -|Name|`performance_schema_accounts_size`| -|Command line|`--performance-schema-accounts-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| -|Range|from: `-1` to: `1048576`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_accounts_size](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema_accounts_size)| -|dev.mysql.com|[sysvar_performance_schema_accounts_size](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_accounts_size)| - -## performance_schema_digests_size -|name|value| -|----|-----| -|Name|`performance_schema_digests_size`| -|Command line|`--performance-schema-digests-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| -|Range|from: `-1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_digests_size](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema_digests_size)| -|dev.mysql.com|[sysvar_performance_schema_digests_size](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_digests_size)| - -## performance_schema_events_stages_history_long_size -|name|value| -|----|-----| -|Name|`performance_schema_events_stages_history_long_size`| -|Command line|`--performance-schema-events-stages-history-long-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_events_stages_history_long_size](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema_events_stages_history_long_size)| -|dev.mysql.com|[sysvar_performance_schema_events_stages_history_long_size](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_events_stages_history_long_size)| - -## performance_schema_events_stages_history_size -|name|value| -|----|-----| -|Name|`performance_schema_events_stages_history_size`| -|Command line|`--performance-schema-events-stages-history-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_events_stages_history_size](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema_events_stages_history_size)| -|dev.mysql.com|[sysvar_performance_schema_events_stages_history_size](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_events_stages_history_size)| - -## performance_schema_events_statements_history_long_size -|name|value| -|----|-----| -|Name|`performance_schema_events_statements_history_long_size`| -|Command line|`--performance-schema-events-statements-history-long-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_events_statements_history_long_size](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema_events_statements_history_long_size)| -|dev.mysql.com|[sysvar_performance_schema_events_statements_history_long_size](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_events_statements_history_long_size)| - -## performance_schema_events_statements_history_size -|name|value| -|----|-----| -|Name|`performance_schema_events_statements_history_size`| -|Command line|`--performance-schema-events-statements-history-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_events_statements_history_size](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema_events_statements_history_size)| -|dev.mysql.com|[sysvar_performance_schema_events_statements_history_size](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_events_statements_history_size)| - -## performance_schema_events_waits_history_long_size -|name|value| -|----|-----| -|Name|`performance_schema_events_waits_history_long_size`| -|Command line|`--performance-schema-events-waits-history-long-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_events_waits_history_long_size](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema_events_waits_history_long_size)| -|dev.mysql.com|[sysvar_performance_schema_events_waits_history_long_size](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_events_waits_history_long_size)| - -## performance_schema_events_waits_history_size -|name|value| -|----|-----| -|Name|`performance_schema_events_waits_history_size`| -|Command line|`--performance-schema-events-waits-history-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_events_waits_history_size](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema_events_waits_history_size)| -|dev.mysql.com|[sysvar_performance_schema_events_waits_history_size](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_events_waits_history_size)| - -## performance_schema_hosts_size -|name|value| -|----|-----| -|Name|`performance_schema_hosts_size`| -|Command line|`--performance-schema-hosts-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| -|Range|from: `-1` to: `1048576`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_hosts_size](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema_hosts_size)| -|dev.mysql.com|[sysvar_performance_schema_hosts_size](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_hosts_size)| - -## performance_schema_max_cond_classes -|name|value| -|----|-----| -|Name|`performance_schema_max_cond_classes`| -|Command line|`--performance-schema-max-cond-classes=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`80`| -|Dynamic|`false`| -|Range|from: `0` to: `256`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_max_cond_classes](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema_max_cond_classes)| -|dev.mysql.com|[sysvar_performance_schema_max_cond_classes](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_max_cond_classes)| - -## performance_schema_max_cond_instances -|name|value| -|----|-----| -|Name|`performance_schema_max_cond_instances`| -|Command line|`--performance-schema-max-cond-instances=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_max_cond_instances](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema_max_cond_instances)| -|dev.mysql.com|[sysvar_performance_schema_max_cond_instances](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_max_cond_instances)| - -## performance_schema_max_digest_length -|name|value| -|----|-----| -|Name|`performance_schema_max_digest_length`| -|Command line|`--performance-schema-max-digest-length=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1024`| -|Dynamic|`false`| -|Range|from: `0` to: `1048576`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_max_digest_length](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema_max_digest_length)| -|dev.mysql.com|[sysvar_performance_schema_max_digest_length](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_max_digest_length)| - -## performance_schema_max_file_classes -|name|value| -|----|-----| -|Name|`performance_schema_max_file_classes`| -|Command line|`--performance-schema-max-file-classes=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| -|Range|from: `0` to: `256`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_max_file_classes](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema_max_file_classes)| -|dev.mysql.com|[sysvar_performance_schema_max_file_classes](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_max_file_classes)| - -## performance_schema_max_file_handles -|name|value| -|----|-----| -|Name|`performance_schema_max_file_handles`| -|Command line|`--performance-schema-max-file-handles=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`32768`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_max_file_handles](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema_max_file_handles)| -|dev.mysql.com|[sysvar_performance_schema_max_file_handles](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_max_file_handles)| - -## performance_schema_max_file_instances -|name|value| -|----|-----| -|Name|`performance_schema_max_file_instances`| -|Command line|`--performance-schema-max-file-instances=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_max_file_instances](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema_max_file_instances)| -|dev.mysql.com|[sysvar_performance_schema_max_file_instances](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_max_file_instances)| - -## performance_schema_max_mutex_classes -|name|value| -|----|-----| -|Name|`performance_schema_max_mutex_classes`| -|Command line|`--performance-schema-max-mutex-classes=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| -|Range|from: `0` to: `256`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_max_mutex_classes](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema_max_mutex_classes)| -|dev.mysql.com|[sysvar_performance_schema_max_mutex_classes](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_max_mutex_classes)| - -## performance_schema_max_mutex_instances -|name|value| -|----|-----| -|Name|`performance_schema_max_mutex_instances`| -|Command line|`--performance-schema-max-mutex-instances=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_max_mutex_instances](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema_max_mutex_instances)| -|dev.mysql.com|[sysvar_performance_schema_max_mutex_instances](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_max_mutex_instances)| - -## performance_schema_max_rwlock_classes -|name|value| -|----|-----| -|Name|`performance_schema_max_rwlock_classes`| -|Command line|`--performance-schema-max-rwlock-classes=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`40`| -|Dynamic|`false`| -|Range|from: `0` to: `256`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_max_rwlock_classes](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema_max_rwlock_classes)| -|dev.mysql.com|[sysvar_performance_schema_max_rwlock_classes](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_max_rwlock_classes)| - -## performance_schema_max_rwlock_instances -|name|value| -|----|-----| -|Name|`performance_schema_max_rwlock_instances`| -|Command line|`--performance-schema-max-rwlock-instances=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_max_rwlock_instances](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema_max_rwlock_instances)| -|dev.mysql.com|[sysvar_performance_schema_max_rwlock_instances](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_max_rwlock_instances)| - -## performance_schema_max_socket_classes -|name|value| -|----|-----| -|Name|`performance_schema_max_socket_classes`| -|Command line|`--performance-schema-max-socket-classes=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`10`| -|Dynamic|`false`| -|Range|from: `0` to: `256`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_max_socket_classes](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema_max_socket_classes)| -|dev.mysql.com|[sysvar_performance_schema_max_socket_classes](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_max_socket_classes)| - -## performance_schema_max_socket_instances -|name|value| -|----|-----| -|Name|`performance_schema_max_socket_instances`| -|Command line|`--performance-schema-max-socket-instances=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_max_socket_instances](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema_max_socket_instances)| -|dev.mysql.com|[sysvar_performance_schema_max_socket_instances](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_max_socket_instances)| - -## performance_schema_max_stage_classes -|name|value| -|----|-----| -|Name|`performance_schema_max_stage_classes`| -|Command line|`--performance-schema-max-stage-classes=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| -|Range|from: `0` to: `256`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_max_stage_classes](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema_max_stage_classes)| -|dev.mysql.com|[sysvar_performance_schema_max_stage_classes](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_max_stage_classes)| - -## performance_schema_max_statement_classes -|name|value| -|----|-----| -|Name|`performance_schema_max_statement_classes`| -|Command line|`--performance-schema-max-statement-classes=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`(-1 signifies autosizing; do not use -1)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_max_statement_classes](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema_max_statement_classes)| -|dev.mysql.com|[sysvar_performance_schema_max_statement_classes](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_max_statement_classes)| - -## performance_schema_max_table_handles -|name|value| -|----|-----| -|Name|`performance_schema_max_table_handles`| -|Command line|`--performance-schema-max-table-handles=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_max_table_handles](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema_max_table_handles)| -|dev.mysql.com|[sysvar_performance_schema_max_table_handles](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_max_table_handles)| - -## performance_schema_max_table_instances -|name|value| -|----|-----| -|Name|`performance_schema_max_table_instances`| -|Command line|`--performance-schema-max-table-instances=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_max_table_instances](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema_max_table_instances)| -|dev.mysql.com|[sysvar_performance_schema_max_table_instances](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_max_table_instances)| - -## performance_schema_max_thread_classes -|name|value| -|----|-----| -|Name|`performance_schema_max_thread_classes`| -|Command line|`--performance-schema-max-thread-classes=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| -|Range|from: `0` to: `256`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_max_thread_classes](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema_max_thread_classes)| -|dev.mysql.com|[sysvar_performance_schema_max_thread_classes](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_max_thread_classes)| - -## performance_schema_max_thread_instances -|name|value| -|----|-----| -|Name|`performance_schema_max_thread_instances`| -|Command line|`--performance-schema-max-thread-instances=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_max_thread_instances](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema_max_thread_instances)| -|dev.mysql.com|[sysvar_performance_schema_max_thread_instances](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_max_thread_instances)| - -## performance_schema_session_connect_attrs_size -|name|value| -|----|-----| -|Name|`performance_schema_session_connect_attrs_size`| -|Command line|`--performance-schema-session-connect-attrs-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| -|Range|from: `-1` to: `1048576`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_session_connect_attrs_size](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema_session_connect_attrs_size)| -|dev.mysql.com|[sysvar_performance_schema_session_connect_attrs_size](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_session_connect_attrs_size)| - -## performance_schema_setup_actors_size -|name|value| -|----|-----| -|Name|`performance_schema_setup_actors_size`| -|Command line|`--performance-schema-setup-actors-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_setup_actors_size](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema_setup_actors_size)| -|dev.mysql.com|[sysvar_performance_schema_setup_actors_size](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_setup_actors_size)| - -## performance_schema_setup_objects_size -|name|value| -|----|-----| -|Name|`performance_schema_setup_objects_size`| -|Command line|`--performance-schema-setup-objects-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_setup_objects_size](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema_setup_objects_size)| -|dev.mysql.com|[sysvar_performance_schema_setup_objects_size](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_setup_objects_size)| - -## performance_schema_users_size -|name|value| -|----|-----| -|Name|`performance_schema_users_size`| -|Command line|`--performance-schema-users-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| -|Range|from: `-1` to: `1048576`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_users_size](https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/#performance_schema_users_size)| -|dev.mysql.com|[sysvar_performance_schema_users_size](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_users_size)| - -## auto_increment_increment -|name|value| -|----|-----| -|Name|`auto_increment_increment`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`1`| -|Dynamic|`true`| -|Range|from: `1` to: `65535`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[auto_increment_increment](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#auto_increment_increment)| -|dev.mysql.com|[sysvar_auto_increment_increment](https://dev.mysql.com/doc/refman/8.0/en/replication-options-master.html#sysvar_auto_increment_increment)| - -## auto_increment_offset -|name|value| -|----|-----| -|Name|`auto_increment_offset`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`1`| -|Dynamic|`true`| -|Range|from: `1` to: `65535`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[auto_increment_offset](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#auto_increment_offset)| -|dev.mysql.com|[sysvar_auto_increment_offset](https://dev.mysql.com/doc/refman/8.0/en/replication-options-master.html#sysvar_auto_increment_offset)| - -## binlog_annotate_row_events -|name|value| -|----|-----| -|Name|`binlog_annotate_row_events`| -|Command line|`--binlog-annotate-row-events[={0|1}]`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`ON (>= MariaDB 10.2.4), OFF (<= MariaDB 10.2.3)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[binlog_annotate_row_events](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#binlog_annotate_row_events)| - -## binlog_cache_size -|name|value| -|----|-----| -|Name|`binlog_cache_size`| -|Command line|`--binlog-cache-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`32768`| -|Dynamic|`true`| -|Range|from: `4096`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[binlog_cache_size](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#binlog_cache_size)| -|dev.mysql.com|[sysvar_binlog_cache_size](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_cache_size)| -|dev.mysql.com|[sysvar_binlog_cache_size](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_binlog_cache_size)| - -## binlog_checksum -|name|value| -|----|-----| -|Name|`binlog_checksum`| -|Command line|`--binlog-checksum=name`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`CRC32`| -|Dynamic|`true`| -|Valid value(s)|`NONE`, `0`, `CRC32`, `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[binlog_checksum](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#binlog_checksum)| -|dev.mysql.com|[option_mysqld_binlog-checksum](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#option_mysqld_binlog-checksum)| -|dev.mysql.com|[sysvar_binlog_checksum](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_checksum)| -|dev.mysql.com|[option_mysqld_binlog-checksum](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#option_mysqld_binlog-checksum)| -|dev.mysql.com|[sysvar_binlog_checksum](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_binlog_checksum)| - -## binlog_commit_wait_count -|name|value| -|----|-----| -|Name|`binlog_commit_wait_count`| -|Command line|`--binlog-commit-wait-count=#]`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[binlog_commit_wait_count](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#binlog_commit_wait_count)| - -## binlog_commit_wait_usec -|name|value| -|----|-----| -|Name|`binlog_commit_wait_usec`| -|Command line|`--binlog-commit-wait-usec#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`100000`| -|Dynamic|`true`| -|Range|from: `0` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[binlog_commit_wait_usec](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#binlog_commit_wait_usec)| - -## binlog_direct_non_transactional_updates -|name|value| -|----|-----| -|Name|`binlog_direct_non_transactional_updates`| -|Command line|`--binlog-direct-non-transactional-updates[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[binlog_direct_non_transactional_updates](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#binlog_direct_non_transactional_updates)| -|dev.mysql.com|[sysvar_binlog_direct_non_transactional_updates](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_direct_non_transactional_updates)| -|dev.mysql.com|[sysvar_binlog_direct_non_transactional_updates](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_binlog_direct_non_transactional_updates)| - -## binlog_file_cache_size -|name|value| -|----|-----| -|Name|`binlog_file_cache_size`| -|Command line|`--binlog-file-cache-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`16384`| -|Dynamic|`true`| -|Range|from: `8192` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[binlog_file_cache_size](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#binlog_file_cache_size)| - -## binlog_format -|name|value| -|----|-----| -|Name|`binlog_format`| -|Command line|`--binlog-format=format`| -|Type of variable|`enumeration`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Valid value(s)|`ROW`, `STATEMENT`, `MIXED`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[binlog_format](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#binlog_format)| -|dev.mysql.com|[sysvar_binlog_format](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_format)| -|dev.mysql.com|[sysvar_binlog_format](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_binlog_format)| - -## binlog_optimize_thread_scheduling -|name|value| -|----|-----| -|Name|`binlog_optimize_thread_scheduling`| -|Command line|`--binlog-optimize-thread-scheduling or --skip-binlog-optimize-thread-scheduling`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[binlog_optimize_thread_scheduling](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#binlog_optimize_thread_scheduling)| - -## binlog_row_image -|name|value| -|----|-----| -|Name|`binlog_row_image`| -|Command line|`--binlog-row-image=image_type`| -|Type of variable|`enumeration`| -|Scope|`global`, `session`| -|Default value|`full`| -|Dynamic|`true`| -|Valid value(s)|`FULL`, `NOBLOB`, `MINIMAL`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[binlog_row_image](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#binlog_row_image)| -|dev.mysql.com|[sysvar_binlog_row_image](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_row_image)| -|dev.mysql.com|[sysvar_binlog_row_image](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_binlog_row_image)| - -## binlog_row_metadata -|name|value| -|----|-----| -|Name|`binlog_row_metadata`| -|Type of variable|`enumeration`| -|Default value|`MINIMAL`| -|Dynamic|`true`| -|Valid value(s)|`NO_LOG`, `MINIMAL`, `FULL`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[binlog_row_metadata](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#binlog_row_metadata)| -|dev.mysql.com|[sysvar_binlog_row_metadata](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_row_metadata)| - -## binlog_stmt_cache_size -|name|value| -|----|-----| -|Name|`binlog_stmt_cache_size`| -|Command line|`--binlog-stmt-cache-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`32768`| -|Dynamic|`true`| -|Range|from: `4096`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[binlog_stmt_cache_size](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#binlog_stmt_cache_size)| -|dev.mysql.com|[sysvar_binlog_stmt_cache_size](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_stmt_cache_size)| -|dev.mysql.com|[sysvar_binlog_stmt_cache_size](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_binlog_stmt_cache_size)| - -## default_master_connection -|name|value| -|----|-----| -|Name|`default_master_connection`| -|Type of variable|`string`| -|Scope|`session`| -|Default value|`'' (empty string)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[default_master_connection](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#default_master_connection)| - -## encrypt_binlog -|name|value| -|----|-----| -|Name|`encrypt_binlog`| -|Command line|`--encrypt-binlog[={0|1}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[encrypt_binlog](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#encrypt_binlog)| - -## expire_logs_days -|name|value| -|----|-----| -|Name|`expire_logs_days`| -|Command line|`--expire-logs-days=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `99`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[expire_logs_days](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#expire_logs_days)| -|dev.mysql.com|[sysvar_expire_logs_days](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_expire_logs_days)| -|dev.mysql.com|[sysvar_expire_logs_days](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_expire_logs_days)| - -## init_slave -|name|value| -|----|-----| -|Name|`init_slave`| -|Command line|`--init-slave=name`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[init_slave](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#init_slave)| -|dev.mysql.com|[sysvar_init_slave](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_init_slave)| - -## log_bin -|name|value| -|----|-----| -|Name|`log_bin`| -|Type of variable|`boolean`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[log_bin](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#log_bin)| -|dev.mysql.com|[option_mysqld_log-bin](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#option_mysqld_log-bin)| -|dev.mysql.com|[sysvar_log_bin](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_log_bin)| -|dev.mysql.com|[option_mysqld_log-bin](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#option_mysqld_log-bin)| -|dev.mysql.com|[sysvar_log_bin](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_log_bin)| - -## log_bin_basename -|name|value| -|----|-----| -|Name|`log_bin_basename`| -|Type of variable|`file name`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[log_bin_basename](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#log_bin_basename)| -|dev.mysql.com|[sysvar_log_bin_basename](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_log_bin_basename)| -|dev.mysql.com|[sysvar_log_bin_basename](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_log_bin_basename)| - -## log_bin_compress -|name|value| -|----|-----| -|Name|`log_bin_compress`| -|Command line|`--log-bin-compress`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[log_bin_compress](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#log_bin_compress)| - -## log_bin_compress_min_len -|name|value| -|----|-----| -|Name|`log_bin_compress_min_len`| -|Command line|`--log-bin-compress-min-len`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`256`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[log_bin_compress_min_len](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#log_bin_compress_min_len)| - -## log_bin_index -|name|value| -|----|-----| -|Name|`log_bin_index`| -|Command line|`--log-bin-index=file_name`| -|Type of variable|`file name`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[log_bin_index](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#log_bin_index)| -|dev.mysql.com|[option_mysqld_log-bin-index](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#option_mysqld_log-bin-index)| -|dev.mysql.com|[sysvar_log_bin_index](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_log_bin_index)| -|dev.mysql.com|[option_mysqld_log-bin-index](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#option_mysqld_log-bin-index)| -|dev.mysql.com|[sysvar_log_bin_index](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_log_bin_index)| - -## log_bin_trust_function_creators -|name|value| -|----|-----| -|Name|`log_bin_trust_function_creators`| -|Command line|`--log-bin-trust-function-creators[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[log_bin_trust_function_creators](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#log_bin_trust_function_creators)| -|dev.mysql.com|[sysvar_log_bin_trust_function_creators](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_log_bin_trust_function_creators)| -|dev.mysql.com|[sysvar_log_bin_trust_function_creators](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_log_bin_trust_function_creators)| - -## log_slow_slave_statements -|name|value| -|----|-----| -|Name|`log_slow_slave_statements`| -|Command line|`--log-slow-slave-statements[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[log_slow_slave_statements](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#log_slow_slave_statements)| -|dev.mysql.com|[sysvar_log_slow_slave_statements](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_log_slow_slave_statements)| - -## log_slave_updates -|name|value| -|----|-----| -|Name|`log_slave_updates`| -|Command line|`--log-slave-updates[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[log_slave_updates](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#log_slave_updates)| -|dev.mysql.com|[sysvar_log_slave_updates](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_log_slave_updates)| -|dev.mysql.com|[sysvar_log_slave_updates](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_log_slave_updates)| - -## master_verify_checksum -|name|value| -|----|-----| -|Name|`master_verify_checksum`| -|Command line|`--master-verify-checksum[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[master_verify_checksum](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#master_verify_checksum)| -|dev.mysql.com|[sysvar_master_verify_checksum](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_master_verify_checksum)| -|dev.mysql.com|[sysvar_master_verify_checksum](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_master_verify_checksum)| - -## max_binlog_cache_size -|name|value| -|----|-----| -|Name|`max_binlog_cache_size`| -|Command line|`--max-binlog-cache-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`18446744073709551615`| -|Dynamic|`true`| -|Range|from: `4096` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[max_binlog_cache_size](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#max_binlog_cache_size)| -|dev.mysql.com|[sysvar_max_binlog_cache_size](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_max_binlog_cache_size)| -|dev.mysql.com|[sysvar_max_binlog_cache_size](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_max_binlog_cache_size)| - -## max_binlog_size -|name|value| -|----|-----| -|Name|`max_binlog_size`| -|Command line|`--max-binlog-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1073741824`| -|Dynamic|`true`| -|Range|from: `4096` to: `1073741824`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[max_binlog_size](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#max_binlog_size)| -|dev.mysql.com|[sysvar_max_binlog_size](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_max_binlog_size)| -|dev.mysql.com|[sysvar_max_binlog_size](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_max_binlog_size)| - -## max_binlog_stmt_cache_size -|name|value| -|----|-----| -|Name|`max_binlog_stmt_cache_size`| -|Command line|`--max-binlog-stmt-cache-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`18446744073709547520`| -|Dynamic|`true`| -|Range|from: `4096` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[max_binlog_stmt_cache_size](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#max_binlog_stmt_cache_size)| -|dev.mysql.com|[sysvar_max_binlog_stmt_cache_size](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_max_binlog_stmt_cache_size)| -|dev.mysql.com|[sysvar_max_binlog_stmt_cache_size](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_max_binlog_stmt_cache_size)| - -## max_relay_log_size -|name|value| -|----|-----| -|Name|`max_relay_log_size`| -|Command line|`--max-relay-log-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `1073741824`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[max_relay_log_size](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#max_relay_log_size)| -|dev.mysql.com|[option_mysqld_max-relay-log-size](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#option_mysqld_max-relay-log-size)| -|dev.mysql.com|[sysvar_max_relay_log_size](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_max_relay_log_size)| - -## read_binlog_speed_limit -|name|value| -|----|-----| -|Name|`read_binlog_speed_limit`| -|Command line|`--read-binlog-speed-limit=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0 (no limit)`| -|Dynamic|`true`| -|Range|from: `0` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[read_binlog_speed_limit](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#read_binlog_speed_limit)| - -## relay_log -|name|value| -|----|-----| -|Name|`relay_log`| -|Command line|`--relay-log=file_name`| -|Type of variable|`file name`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[relay_log](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#relay_log)| -|dev.mysql.com|[sysvar_relay_log](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_relay_log)| - -## relay_log_basename -|name|value| -|----|-----| -|Name|`relay_log_basename`| -|Scope|`global`| -|Default value|`datadir + '/' + hostname + '-relay-bin'`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[relay_log_basename](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#relay_log_basename)| -|dev.mysql.com|[sysvar_relay_log_basename](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_relay_log_basename)| - -## relay_log_index -|name|value| -|----|-----| -|Name|`relay_log_index`| -|Scope|`global`| -|Default value|`*host_name*-relay-bin.index`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[relay_log_index](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#relay_log_index)| -|dev.mysql.com|[sysvar_relay_log_index](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_relay_log_index)| - -## relay_log_info_file -|name|value| -|----|-----| -|Name|`relay_log_info_file`| -|Command line|`--relay-log-info-file=file_name`| -|Scope|`global`| -|Default value|`relay-log.info`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[relay_log_info_file](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#relay_log_info_file)| -|dev.mysql.com|[sysvar_relay_log_info_file](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_relay_log_info_file)| - -## relay_log_purge -|name|value| -|----|-----| -|Name|`relay_log_purge`| -|Command line|`--relay-log-purge[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[relay_log_purge](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#relay_log_purge)| -|dev.mysql.com|[option_mysqld_relay-log-purge](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#option_mysqld_relay-log-purge)| -|dev.mysql.com|[sysvar_relay_log_purge](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_relay_log_purge)| - -## relay_log_recovery -|name|value| -|----|-----| -|Name|`relay_log_recovery`| -|Command line|`--relay-log-recovery[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[relay_log_recovery](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#relay_log_recovery)| -|dev.mysql.com|[sysvar_relay_log_recovery](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_relay_log_recovery)| - -## relay_log_space_limit -|name|value| -|----|-----| -|Name|`relay_log_space_limit`| -|Command line|`--relay-log-space-limit=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`false`| -|Range|from: `0`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[relay_log_space_limit](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#relay_log_space_limit)| -|dev.mysql.com|[option_mysqld_relay-log-space-limit](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#option_mysqld_relay-log-space-limit)| -|dev.mysql.com|[sysvar_relay_log_space_limit](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_relay_log_space_limit)| - -## replicate_annotate_row_events -|name|value| -|----|-----| -|Name|`replicate_annotate_row_events`| -|Command line|`--replicate-annotate-row-events`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON (>= MariaDB 10.2.4), OFF (<= MariaDB 10.2.3)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[replicate_annotate_row_events](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#replicate_annotate_row_events)| - -## replicate_do_db -|name|value| -|----|-----| -|Name|`replicate_do_db`| -|Command line|`--replicate-do-db=name`| -|Type of variable|`string`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[replicate_do_db](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#replicate_do_db)| -|dev.mysql.com|[option_mysqld_replicate-do-db](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#option_mysqld_replicate-do-db)| - -## replicate_do_table -|name|value| -|----|-----| -|Name|`replicate_do_table`| -|Command line|`--replicate-do-table=name`| -|Type of variable|`string`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[replicate_do_table](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#replicate_do_table)| -|dev.mysql.com|[option_mysqld_replicate-do-table](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#option_mysqld_replicate-do-table)| - -## replicate_events_marked_for_skip -|name|value| -|----|-----| -|Name|`replicate_events_marked_for_skip`| -|Command line|`--replicate-events-marked-for-skip`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`replicate`| -|Dynamic|`true`| -|Valid value(s)|`REPLICATE`, `FILTER_ON_SLAVE`, `FILTER_ON_MASTER`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[replicate_events_marked_for_skip](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#replicate_events_marked_for_skip)| - -## replicate_ignore_db -|name|value| -|----|-----| -|Name|`replicate_ignore_db`| -|Command line|`--replicate-ignore-db=name`| -|Type of variable|`string`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[replicate_ignore_db](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#replicate_ignore_db)| -|dev.mysql.com|[option_mysqld_replicate-ignore-db](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#option_mysqld_replicate-ignore-db)| - -## replicate_ignore_table -|name|value| -|----|-----| -|Name|`replicate_ignore_table`| -|Command line|`--replicate-ignore-table=name`| -|Type of variable|`string`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[replicate_ignore_table](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#replicate_ignore_table)| -|dev.mysql.com|[option_mysqld_replicate-ignore-table](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#option_mysqld_replicate-ignore-table)| - -## replicate_rewrite_db -|name|value| -|----|-----| -|Name|`replicate_rewrite_db`| -|Command line|`--replicate-rewrite-db=old_name->new_name`| -|Type of variable|`string`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[replicate_rewrite_db](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#replicate_rewrite_db)| -|dev.mysql.com|[option_mysqld_replicate-rewrite-db](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#option_mysqld_replicate-rewrite-db)| - -## replicate_wild_do_table -|name|value| -|----|-----| -|Name|`replicate_wild_do_table`| -|Command line|`--replicate-wild-do-table=name`| -|Type of variable|`string`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[replicate_wild_do_table](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#replicate_wild_do_table)| -|dev.mysql.com|[option_mysqld_replicate-wild-do-table](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#option_mysqld_replicate-wild-do-table)| - -## replicate_wild_ignore_table -|name|value| -|----|-----| -|Name|`replicate_wild_ignore_table`| -|Command line|`--replicate-wild-ignore-table=name`| -|Type of variable|`string`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[replicate_wild_ignore_table](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#replicate_wild_ignore_table)| -|dev.mysql.com|[option_mysqld_replicate-wild-ignore-table](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#option_mysqld_replicate-wild-ignore-table)| - -## report_host -|name|value| -|----|-----| -|Name|`report_host`| -|Command line|`--report-host=host_name`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[report_host](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#report_host)| -|dev.mysql.com|[sysvar_report_host](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_report_host)| - -## report_password -|name|value| -|----|-----| -|Name|`report_password`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[report_password](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#report_password)| -|dev.mysql.com|[sysvar_report_password](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_report_password)| - -## report_port -|name|value| -|----|-----| -|Name|`report_port`| -|Command line|`--report-port=port-num`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`[slave_port]`| -|Dynamic|`false`| -|Range|from: `0` to: `65535`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[report_port](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#report_port)| -|dev.mysql.com|[sysvar_report_port](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_report_port)| - -## report_user -|name|value| -|----|-----| -|Name|`report_user`| -|Command line|`--report-user=name`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[report_user](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#report_user)| -|dev.mysql.com|[sysvar_report_user](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_report_user)| - -## skip_parallel_replication -|name|value| -|----|-----| -|Name|`skip_parallel_replication`| -|Type of variable|`boolean`| -|Scope|`session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[skip_parallel_replication](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#skip_parallel_replication)| - -## skip_replication -|name|value| -|----|-----| -|Name|`skip_replication`| -|Type of variable|`boolean`| -|Scope|`session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[skip_replication](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#skip_replication)| - -## slave_compressed_protocol -|name|value| -|----|-----| -|Name|`slave_compressed_protocol`| -|Command line|`--slave-compressed-protocol[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slave_compressed_protocol](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#slave_compressed_protocol)| -|dev.mysql.com|[sysvar_slave_compressed_protocol](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_slave_compressed_protocol)| - -## slave_ddl_exec_mode -|name|value| -|----|-----| -|Name|`slave_ddl_exec_mode`| -|Command line|`--slave-ddl-exec-mode=name`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`IDEMPOTENT`| -|Dynamic|`true`| -|Valid value(s)|`IDEMPOTENT`, `STRICT`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slave_ddl_exec_mode](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#slave_ddl_exec_mode)| - -## slave_domain_parallel_threads -|name|value| -|----|-----| -|Name|`slave_domain_parallel_threads`| -|Command line|`--slave-domain-parallel-threads=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Valid value(s)|`0`, `16383`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slave_domain_parallel_threads](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#slave_domain_parallel_threads)| - -## slave_exec_mode -|name|value| -|----|-----| -|Name|`slave_exec_mode`| -|Command line|`--slave-exec-mode=mode`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`IDEMPOTENT (NDB)STRICT (Other)`| -|Dynamic|`true`| -|Valid value(s)|`IDEMPOTENT`, `STRICT`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slave_exec_mode](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#slave_exec_mode)| -|dev.mysql.com|[sysvar_slave_exec_mode](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_slave_exec_mode)| - -## slave_load_tmpdir -|name|value| -|----|-----| -|Name|`slave_load_tmpdir`| -|Command line|`--slave-load-tmpdir=path`| -|Scope|`global`| -|Default value|`Value of --tmpdir`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slave_load_tmpdir](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#slave_load_tmpdir)| -|dev.mysql.com|[sysvar_slave_load_tmpdir](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_slave_load_tmpdir)| - -## slave_max_allowed_packet -|name|value| -|----|-----| -|Name|`slave_max_allowed_packet`| -|Command line|`--slave-max-allowed-packet=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1073741824`| -|Dynamic|`true`| -|Range|from: `1024` to: `1073741824`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slave_max_allowed_packet](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#slave_max_allowed_packet)| -|dev.mysql.com|[sysvar_slave_max_allowed_packet](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_slave_max_allowed_packet)| - -## slave_net_timeout -|name|value| -|----|-----| -|Name|`slave_net_timeout`| -|Command line|`--slave-net-timeout=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`60`| -|Dynamic|`true`| -|Range|from: `1` to: `upwards`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slave_net_timeout](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#slave_net_timeout)| -|dev.mysql.com|[sysvar_slave_net_timeout](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_slave_net_timeout)| - -## slave_parallel_max_queued -|name|value| -|----|-----| -|Name|`slave_parallel_max_queued`| -|Command line|`--slave-parallel-max-queued=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`131072`| -|Dynamic|`true`| -|Range|from: `0` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slave_parallel_max_queued](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#slave_parallel_max_queued)| - -## slave_parallel_mode -|name|value| -|----|-----| -|Name|`slave_parallel_mode`| -|Scope|`global`| -|Default value|`conservative`| -|Dynamic|`false`| -|Valid value(s)|`conservative`, `optimistic`, `none`, `aggressive`, `minimal`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slave_parallel_mode](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#slave_parallel_mode)| - -## slave_parallel_threads -|name|value| -|----|-----| -|Name|`slave_parallel_threads`| -|Command line|`--slave-parallel-threads=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `16383`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slave_parallel_threads](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#slave_parallel_threads)| - -## slave_parallel_workers -|name|value| -|----|-----| -|Name|`slave_parallel_workers`| -|Command line|`--slave-parallel-workers=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `1024`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slave_parallel_workers](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#slave_parallel_workers)| -|dev.mysql.com|[sysvar_slave_parallel_workers](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_slave_parallel_workers)| - -## slave_run_triggers_for_rbr -|name|value| -|----|-----| -|Name|`slave_run_triggers_for_rbr`| -|Command line|`--slave-run-triggers-for-rbr=value`| -|Scope|`global`| -|Default value|`NO`| -|Valid value(s)|`NO`, `YES`, `LOGGING`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slave_run_triggers_for_rbr](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#slave_run_triggers_for_rbr)| - -## slave_skip_errors -|name|value| -|----|-----| -|Name|`slave_skip_errors`| -|Command line|`--slave-skip-errors=name`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| -|Valid value(s)|`[list of error codes]`, `ALL`, `OFF`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slave_skip_errors](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#slave_skip_errors)| -|dev.mysql.com|[option_mysqld_slave-skip-errors](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#option_mysqld_slave-skip-errors)| -|dev.mysql.com|[sysvar_slave_skip_errors](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_slave_skip_errors)| - -## slave_sql_verify_checksum -|name|value| -|----|-----| -|Name|`slave_sql_verify_checksum`| -|Command line|`--slave-sql-verify-checksum[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slave_sql_verify_checksum](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#slave_sql_verify_checksum)| -|dev.mysql.com|[option_mysqld_slave-sql-verify-checksum](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#option_mysqld_slave-sql-verify-checksum)| -|dev.mysql.com|[sysvar_slave_sql_verify_checksum](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_slave_sql_verify_checksum)| - -## slave_transaction_retries -|name|value| -|----|-----| -|Name|`slave_transaction_retries`| -|Command line|`--slave-transaction-retries=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`10`| -|Dynamic|`true`| -|Range|from: `0`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slave_transaction_retries](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#slave_transaction_retries)| -|dev.mysql.com|[sysvar_slave_transaction_retries](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_slave_transaction_retries)| - -## slave_transaction_retry_errors -|name|value| -|----|-----| -|Name|`slave_transaction_retry_errors`| -|Command line|`--slave-transaction_retry-errors=[error_code1,error_code2,...]`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`1158,1159,1160,1161,1205,1213,1429,2013,12701 (>= MariaDB 10.4.5), 1213,1205 (>= MariaDB 10.3.3)`| -|Dynamic|`false`| -|Valid value(s)|`comma-separated list of error codes`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slave_transaction_retry_errors](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#slave_transaction_retry_errors)| - -## slave_transaction_retry_interval -|name|value| -|----|-----| -|Name|`slave_transaction_retry_interval`| -|Command line|`--slave-transaction-retry-interval=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `3600`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slave_transaction_retry_interval](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#slave_transaction_retry_interval)| - -## slave_type_conversions -|name|value| -|----|-----| -|Name|`slave_type_conversions`| -|Command line|`--slave-type-conversions=set`| -|Type of variable|`set`| -|Scope|`global`| -|Default value|``| -|Valid value(s)|`ALL_LOSSY`, `ALL_NON_LOSSY`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slave_type_conversions](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#slave_type_conversions)| -|dev.mysql.com|[sysvar_slave_type_conversions](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_slave_type_conversions)| - -## sql_log_bin -|name|value| -|----|-----| -|Name|`sql_log_bin`| -|Type of variable|`boolean`| -|Scope|`session`| -|Default value|`1`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sql_log_bin](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#sql_log_bin)| -|dev.mysql.com|[sysvar_sql_log_bin](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_sql_log_bin)| -|dev.mysql.com|[sysvar_sql_log_bin](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_sql_log_bin)| - -## sql_slave_skip_counter -|name|value| -|----|-----| -|Name|`sql_slave_skip_counter`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sql_slave_skip_counter](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#sql_slave_skip_counter)| -|dev.mysql.com|[sysvar_sql_slave_skip_counter](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_sql_slave_skip_counter)| - -## sync_binlog -|name|value| -|----|-----| -|Name|`sync_binlog`| -|Command line|`--sync-binlog=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sync_binlog](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#sync_binlog)| -|dev.mysql.com|[sysvar_sync_binlog](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_sync_binlog)| -|dev.mysql.com|[sysvar_sync_binlog](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_sync_binlog)| - -## sync_master_info -|name|value| -|----|-----| -|Name|`sync_master_info`| -|Command line|`--sync-master-info=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`10000`| -|Dynamic|`true`| -|Range|from: `0`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sync_master_info](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#sync_master_info)| -|dev.mysql.com|[sysvar_sync_master_info](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_sync_master_info)| - -## sync_relay_log -|name|value| -|----|-----| -|Name|`sync_relay_log`| -|Command line|`--sync-relay-log=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`10000`| -|Dynamic|`true`| -|Range|from: `0`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sync_relay_log](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#sync_relay_log)| -|dev.mysql.com|[sysvar_sync_relay_log](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_sync_relay_log)| - -## sync_relay_log_info -|name|value| -|----|-----| -|Name|`sync_relay_log_info`| -|Command line|`--sync-relay-log-info=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`10000`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sync_relay_log_info](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/#sync_relay_log_info)| -|dev.mysql.com|[sysvar_sync_relay_log_info](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_sync_relay_log_info)| - -## Binlog_bytes_written -|name|value| -|----|-----| -|Name|`Binlog_bytes_written`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[binlog_bytes_written](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#binlog_bytes_written)| - -## Binlog_cache_disk_use -|name|value| -|----|-----| -|Name|`Binlog_cache_disk_use`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[binlog_cache_disk_use](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#binlog_cache_disk_use)| - -## Binlog_cache_use -|name|value| -|----|-----| -|Name|`Binlog_cache_use`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[binlog_cache_use](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#binlog_cache_use)| - -## Binlog_commits -|name|value| -|----|-----| -|Name|`Binlog_commits`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[binlog_commits](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#binlog_commits)| - -## Binlog_group_commit_trigger_count -|name|value| -|----|-----| -|Name|`Binlog_group_commit_trigger_count`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[binlog_group_commit_trigger_count](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#binlog_group_commit_trigger_count)| - -## Binlog_group_commit_trigger_lock_wait -|name|value| -|----|-----| -|Name|`Binlog_group_commit_trigger_lock_wait`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[binlog_group_commit_trigger_lock_wait](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#binlog_group_commit_trigger_lock_wait)| - -## Binlog_group_commit_trigger_timeout -|name|value| -|----|-----| -|Name|`Binlog_group_commit_trigger_timeout`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[binlog_group_commit_trigger_timeout](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#binlog_group_commit_trigger_timeout)| - -## Binlog_group_commits -|name|value| -|----|-----| -|Name|`Binlog_group_commits`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[binlog_group_commits](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#binlog_group_commits)| - -## Binlog_snapshot_file -|name|value| -|----|-----| -|Name|`Binlog_snapshot_file`| -|Type of variable|`string`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[binlog_snapshot_file](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#binlog_snapshot_file)| - -## Binlog_snapshot_position -|name|value| -|----|-----| -|Name|`Binlog_snapshot_position`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[binlog_snapshot_position](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#binlog_snapshot_position)| - -## Binlog_stmt_cache_disk_use -|name|value| -|----|-----| -|Name|`Binlog_stmt_cache_disk_use`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[binlog_stmt_cache_disk_use](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#binlog_stmt_cache_disk_use)| - -## Binlog_stmt_cache_use -|name|value| -|----|-----| -|Name|`Binlog_stmt_cache_use`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[binlog_stmt_cache_use](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#binlog_stmt_cache_use)| - -## Com_change_master -|name|value| -|----|-----| -|Name|`Com_change_master`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_change_master](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#com_change_master)| - -## Com_show_master_status -|name|value| -|----|-----| -|Name|`Com_show_master_status`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_master_status](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#com_show_master_status)| - -## Com_show_new_master -|name|value| -|----|-----| -|Name|`Com_show_new_master`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_new_master](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#com_show_new_master)| - -## Com_show_slave_hosts -|name|value| -|----|-----| -|Name|`Com_show_slave_hosts`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_slave_hosts](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#com_show_slave_hosts)| - -## Com_show_slave_status -|name|value| -|----|-----| -|Name|`Com_show_slave_status`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_slave_status](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#com_show_slave_status)| - -## Com_slave_start -|name|value| -|----|-----| -|Name|`Com_slave_start`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_slave_start](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#com_slave_start)| - -## Com_slave_stop -|name|value| -|----|-----| -|Name|`Com_slave_stop`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_slave_stop](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#com_slave_stop)| - -## Com_start_all_slaves -|name|value| -|----|-----| -|Name|`Com_start_all_slaves`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_start_all_slaves](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#com_start_all_slaves)| - -## Com_start_slave -|name|value| -|----|-----| -|Name|`Com_start_slave`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_start_slave](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#com_start_slave)| - -## Com_stop_all_slaves -|name|value| -|----|-----| -|Name|`Com_stop_all_slaves`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_stop_all_slaves](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#com_stop_all_slaves)| - -## Com_stop_slave -|name|value| -|----|-----| -|Name|`Com_stop_slave`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_stop_slave](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#com_stop_slave)| - -## Master_gtid_wait_count -|name|value| -|----|-----| -|Name|`Master_gtid_wait_count`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[master_gtid_wait_count](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#master_gtid_wait_count)| - -## Master_gtid_wait_time -|name|value| -|----|-----| -|Name|`Master_gtid_wait_time`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[master_gtid_wait_time](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#master_gtid_wait_time)| - -## Master_gtid_wait_timeouts -|name|value| -|----|-----| -|Name|`Master_gtid_wait_timeouts`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[master_gtid_wait_timeouts](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#master_gtid_wait_timeouts)| - -## Rpl_status -|name|value| -|----|-----| -|Name|`Rpl_status`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rpl_status](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#rpl_status)| - -## Rpl_transactions_multi_engine -|name|value| -|----|-----| -|Name|`Rpl_transactions_multi_engine`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rpl_transactions_multi_engine](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#rpl_transactions_multi_engine)| - -## Slave_connections -|name|value| -|----|-----| -|Name|`Slave_connections`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slave_connections](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#slave_connections)| - -## Slave_heartbeat_period -|name|value| -|----|-----| -|Name|`Slave_heartbeat_period`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slave_heartbeat_period](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#slave_heartbeat_period)| - -## Slave_open_temp_tables -|name|value| -|----|-----| -|Name|`Slave_open_temp_tables`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slave_open_temp_tables](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#slave_open_temp_tables)| - -## Slave_received_heartbeats -|name|value| -|----|-----| -|Name|`Slave_received_heartbeats`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slave_received_heartbeats](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#slave_received_heartbeats)| - -## Slave_retried_transactions -|name|value| -|----|-----| -|Name|`Slave_retried_transactions`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slave_retried_transactions](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#slave_retried_transactions)| - -## Slave_running -|name|value| -|----|-----| -|Name|`Slave_running`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slave_running](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#slave_running)| - -## Slave_skipped_errors -|name|value| -|----|-----| -|Name|`Slave_skipped_errors`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slave_skipped_errors](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#slave_skipped_errors)| - -## Slaves_connected -|name|value| -|----|-----| -|Name|`Slaves_connected`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slaves_connected](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#slaves_connected)| - -## Slaves_running -|name|value| -|----|-----| -|Name|`Slaves_running`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slaves_running](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#slaves_running)| - -## Transactions_gtid_foreign_engine -|name|value| -|----|-----| -|Name|`Transactions_gtid_foreign_engine`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[transactions_gtid_foreign_engine](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#transactions_gtid_foreign_engine)| - -## Transactions_multi_engine -|name|value| -|----|-----| -|Name|`Transactions_multi_engine`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[transactions_multi_engine](https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/#transactions_multi_engine)| - -## Rpl_semi_sync_master_clients -|name|value| -|----|-----| -|Name|`Rpl_semi_sync_master_clients`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rpl_semi_sync_master_clients](https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/#rpl_semi_sync_master_clients)| - -## Rpl_semi_sync_master_net_avg_wait_time -|name|value| -|----|-----| -|Name|`Rpl_semi_sync_master_net_avg_wait_time`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rpl_semi_sync_master_net_avg_wait_time](https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/#rpl_semi_sync_master_net_avg_wait_time)| - -## Rpl_semi_sync_master_net_wait_time -|name|value| -|----|-----| -|Name|`Rpl_semi_sync_master_net_wait_time`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rpl_semi_sync_master_net_wait_time](https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/#rpl_semi_sync_master_net_wait_time)| - -## Rpl_semi_sync_master_net_waits -|name|value| -|----|-----| -|Name|`Rpl_semi_sync_master_net_waits`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rpl_semi_sync_master_net_waits](https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/#rpl_semi_sync_master_net_waits)| - -## Rpl_semi_sync_master_no_times -|name|value| -|----|-----| -|Name|`Rpl_semi_sync_master_no_times`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rpl_semi_sync_master_no_times](https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/#rpl_semi_sync_master_no_times)| - -## Rpl_semi_sync_master_no_tx -|name|value| -|----|-----| -|Name|`Rpl_semi_sync_master_no_tx`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rpl_semi_sync_master_no_tx](https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/#rpl_semi_sync_master_no_tx)| - -## Rpl_semi_sync_master_status -|name|value| -|----|-----| -|Name|`Rpl_semi_sync_master_status`| -|Type of variable|`boolean`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rpl_semi_sync_master_status](https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/#rpl_semi_sync_master_status)| - -## Rpl_semi_sync_master_timefunc_failures -|name|value| -|----|-----| -|Name|`Rpl_semi_sync_master_timefunc_failures`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rpl_semi_sync_master_timefunc_failures](https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/#rpl_semi_sync_master_timefunc_failures)| - -## Rpl_semi_sync_master_tx_avg_wait_time -|name|value| -|----|-----| -|Name|`Rpl_semi_sync_master_tx_avg_wait_time`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rpl_semi_sync_master_tx_avg_wait_time](https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/#rpl_semi_sync_master_tx_avg_wait_time)| - -## Rpl_semi_sync_master_tx_wait_time -|name|value| -|----|-----| -|Name|`Rpl_semi_sync_master_tx_wait_time`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rpl_semi_sync_master_tx_wait_time](https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/#rpl_semi_sync_master_tx_wait_time)| - -## Rpl_semi_sync_master_tx_waits -|name|value| -|----|-----| -|Name|`Rpl_semi_sync_master_tx_waits`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rpl_semi_sync_master_tx_waits](https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/#rpl_semi_sync_master_tx_waits)| - -## Rpl_semi_sync_master_wait_pos_backtraverse -|name|value| -|----|-----| -|Name|`Rpl_semi_sync_master_wait_pos_backtraverse`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rpl_semi_sync_master_wait_pos_backtraverse](https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/#rpl_semi_sync_master_wait_pos_backtraverse)| - -## Rpl_semi_sync_master_wait_sessions -|name|value| -|----|-----| -|Name|`Rpl_semi_sync_master_wait_sessions`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rpl_semi_sync_master_wait_sessions](https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/#rpl_semi_sync_master_wait_sessions)| - -## Rpl_semi_sync_master_yes_tx -|name|value| -|----|-----| -|Name|`Rpl_semi_sync_master_yes_tx`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rpl_semi_sync_master_yes_tx](https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/#rpl_semi_sync_master_yes_tx)| - -## Rpl_semi_sync_slave_status -|name|value| -|----|-----| -|Name|`Rpl_semi_sync_slave_status`| -|Type of variable|`boolean`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rpl_semi_sync_slave_status](https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/#rpl_semi_sync_slave_status)| - -## rpl_semi_sync_master_enabled -|name|value| -|----|-----| -|Name|`rpl_semi_sync_master_enabled`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rpl_semi_sync_master_enabled](https://mariadb.com/kb/en/library/documentation/semisynchronous-replication/#rpl_semi_sync_master_enabled)| -|dev.mysql.com|[sysvar_rpl_semi_sync_master_enabled](https://dev.mysql.com/doc/refman/8.0/en/replication-options-master.html#sysvar_rpl_semi_sync_master_enabled)| - -## rpl_semi_sync_master_timeout -|name|value| -|----|-----| -|Name|`rpl_semi_sync_master_timeout`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`10000`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rpl_semi_sync_master_timeout](https://mariadb.com/kb/en/library/documentation/semisynchronous-replication/#rpl_semi_sync_master_timeout)| -|dev.mysql.com|[sysvar_rpl_semi_sync_master_timeout](https://dev.mysql.com/doc/refman/8.0/en/replication-options-master.html#sysvar_rpl_semi_sync_master_timeout)| - -## rpl_semi_sync_master_trace_level -|name|value| -|----|-----| -|Name|`rpl_semi_sync_master_trace_level`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`32`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rpl_semi_sync_master_trace_level](https://mariadb.com/kb/en/library/documentation/semisynchronous-replication/#rpl_semi_sync_master_trace_level)| -|dev.mysql.com|[sysvar_rpl_semi_sync_master_trace_level](https://dev.mysql.com/doc/refman/8.0/en/replication-options-master.html#sysvar_rpl_semi_sync_master_trace_level)| - -## rpl_semi_sync_master_wait_no_slave -|name|value| -|----|-----| -|Name|`rpl_semi_sync_master_wait_no_slave`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rpl_semi_sync_master_wait_no_slave](https://mariadb.com/kb/en/library/documentation/semisynchronous-replication/#rpl_semi_sync_master_wait_no_slave)| -|dev.mysql.com|[sysvar_rpl_semi_sync_master_wait_no_slave](https://dev.mysql.com/doc/refman/8.0/en/replication-options-master.html#sysvar_rpl_semi_sync_master_wait_no_slave)| - -## rpl_semi_sync_master_wait_point -|name|value| -|----|-----| -|Name|`rpl_semi_sync_master_wait_point`| -|Command line|`--rpl-semi-sync-master-wait-point=value`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`AFTER_SYNC`| -|Dynamic|`true`| -|Valid value(s)|`AFTER_SYNC`, `AFTER_COMMIT`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rpl_semi_sync_master_wait_point](https://mariadb.com/kb/en/library/documentation/semisynchronous-replication/#rpl_semi_sync_master_wait_point)| -|dev.mysql.com|[sysvar_rpl_semi_sync_master_wait_point](https://dev.mysql.com/doc/refman/8.0/en/replication-options-master.html#sysvar_rpl_semi_sync_master_wait_point)| - -## rpl_semi_sync_slave_delay_master -|name|value| -|----|-----| -|Name|`rpl_semi_sync_slave_delay_master`| -|Command line|`--rpl-semi-sync-slave-delay-master[={0|1}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rpl_semi_sync_slave_delay_master](https://mariadb.com/kb/en/library/documentation/semisynchronous-replication/#rpl_semi_sync_slave_delay_master)| - -## rpl_semi_sync_slave_enabled -|name|value| -|----|-----| -|Name|`rpl_semi_sync_slave_enabled`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rpl_semi_sync_slave_enabled](https://mariadb.com/kb/en/library/documentation/semisynchronous-replication/#rpl_semi_sync_slave_enabled)| -|dev.mysql.com|[sysvar_rpl_semi_sync_slave_enabled](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_rpl_semi_sync_slave_enabled)| - -## rpl_semi_sync_slave_kill_conn_timeout -|name|value| -|----|-----| -|Name|`rpl_semi_sync_slave_kill_conn_timeout`| -|Command line|`--rpl-semi-sync-slave-kill-conn-timeout[={0|1}]`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`5`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rpl_semi_sync_slave_kill_conn_timeout](https://mariadb.com/kb/en/library/documentation/semisynchronous-replication/#rpl_semi_sync_slave_kill_conn_timeout)| - -## rpl_semi_sync_slave_trace_level -|name|value| -|----|-----| -|Name|`rpl_semi_sync_slave_trace_level`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`32`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rpl_semi_sync_slave_trace_level](https://mariadb.com/kb/en/library/documentation/semisynchronous-replication/#rpl_semi_sync_slave_trace_level)| -|dev.mysql.com|[sysvar_rpl_semi_sync_slave_trace_level](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_rpl_semi_sync_slave_trace_level)| - -## rpl_semi_sync_master -|name|value| -|----|-----| -|Name|`rpl_semi_sync_master`| -|Command line|`--rpl-semi-sync-master=value`| -|Default value|`ON`| -|Valid value(s)|`OFF`, `ON`, `FORCE`, `FORCE_PLUS_PERMANENT`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rpl_semi_sync_master](https://mariadb.com/kb/en/library/documentation/semisynchronous-replication/#rpl_semi_sync_master)| - -## rpl_semi_sync_slave -|name|value| -|----|-----| -|Name|`rpl_semi_sync_slave`| -|Command line|`--rpl-semi-sync-slave=value`| -|Default value|`ON`| -|Valid value(s)|`OFF`, `ON`, `FORCE`, `FORCE_PLUS_PERMANENT`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rpl_semi_sync_slave](https://mariadb.com/kb/en/library/documentation/semisynchronous-replication/#rpl_semi_sync_slave)| - -## Aborted_clients -|name|value| -|----|-----| -|Name|`Aborted_clients`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aborted_clients](https://mariadb.com/kb/en/library/documentation/server-status-variables/#aborted_clients)| - -## Aborted_connects -|name|value| -|----|-----| -|Name|`Aborted_connects`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aborted_connects](https://mariadb.com/kb/en/library/documentation/server-status-variables/#aborted_connects)| - -## Aborted_connects_preauth -|name|value| -|----|-----| -|Name|`Aborted_connects_preauth`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[aborted_connects_preauth](https://mariadb.com/kb/en/library/documentation/server-status-variables/#aborted_connects_preauth)| - -## Access_denied_errors -|name|value| -|----|-----| -|Name|`Access_denied_errors`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[access_denied_errors](https://mariadb.com/kb/en/library/documentation/server-status-variables/#access_denied_errors)| - -## Acl_column_grants -|name|value| -|----|-----| -|Name|`Acl_column_grants`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[acl_column_grants](https://mariadb.com/kb/en/library/documentation/server-status-variables/#acl_column_grants)| - -## Acl_database_grants -|name|value| -|----|-----| -|Name|`Acl_database_grants`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[acl_database_grants](https://mariadb.com/kb/en/library/documentation/server-status-variables/#acl_database_grants)| - -## Acl_function_grants -|name|value| -|----|-----| -|Name|`Acl_function_grants`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[acl_function_grants](https://mariadb.com/kb/en/library/documentation/server-status-variables/#acl_function_grants)| - -## Acl_package_body_grants -|name|value| -|----|-----| -|Name|`Acl_package_body_grants`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[acl_package_body_grants](https://mariadb.com/kb/en/library/documentation/server-status-variables/#acl_package_body_grants)| - -## Acl_package_spec_grants -|name|value| -|----|-----| -|Name|`Acl_package_spec_grants`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[acl_package_spec_grants](https://mariadb.com/kb/en/library/documentation/server-status-variables/#acl_package_spec_grants)| - -## Acl_procedure_grants -|name|value| -|----|-----| -|Name|`Acl_procedure_grants`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[acl_procedure_grants](https://mariadb.com/kb/en/library/documentation/server-status-variables/#acl_procedure_grants)| - -## Acl_proxy_users -|name|value| -|----|-----| -|Name|`Acl_proxy_users`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[acl_proxy_users](https://mariadb.com/kb/en/library/documentation/server-status-variables/#acl_proxy_users)| - -## Acl_role_grants -|name|value| -|----|-----| -|Name|`Acl_role_grants`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[acl_role_grants](https://mariadb.com/kb/en/library/documentation/server-status-variables/#acl_role_grants)| - -## Acl_roles -|name|value| -|----|-----| -|Name|`Acl_roles`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[acl_roles](https://mariadb.com/kb/en/library/documentation/server-status-variables/#acl_roles)| - -## Acl_table_grants -|name|value| -|----|-----| -|Name|`Acl_table_grants`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[acl_table_grants](https://mariadb.com/kb/en/library/documentation/server-status-variables/#acl_table_grants)| - -## Acl_users -|name|value| -|----|-----| -|Name|`Acl_users`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[acl_users](https://mariadb.com/kb/en/library/documentation/server-status-variables/#acl_users)| - -## Busy_time -|name|value| -|----|-----| -|Name|`Busy_time`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[busy_time](https://mariadb.com/kb/en/library/documentation/server-status-variables/#busy_time)| - -## Bytes_received -|name|value| -|----|-----| -|Name|`Bytes_received`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[bytes_received](https://mariadb.com/kb/en/library/documentation/server-status-variables/#bytes_received)| - -## Bytes_sent -|name|value| -|----|-----| -|Name|`Bytes_sent`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[bytes_sent](https://mariadb.com/kb/en/library/documentation/server-status-variables/#bytes_sent)| - -## Com_admin_commands -|name|value| -|----|-----| -|Name|`Com_admin_commands`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_admin_commands](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_admin_commands)| - -## Com_alter_db -|name|value| -|----|-----| -|Name|`Com_alter_db`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_alter_db](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_alter_db)| - -## Com_alter_db_upgrade -|name|value| -|----|-----| -|Name|`Com_alter_db_upgrade`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_alter_db_upgrade](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_alter_db_upgrade)| - -## Com_alter_event -|name|value| -|----|-----| -|Name|`Com_alter_event`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_alter_event](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_alter_event)| - -## Com_alter_function -|name|value| -|----|-----| -|Name|`Com_alter_function`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_alter_function](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_alter_function)| - -## Com_alter_procedure -|name|value| -|----|-----| -|Name|`Com_alter_procedure`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_alter_procedure](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_alter_procedure)| - -## Com_alter_sequence -|name|value| -|----|-----| -|Name|`Com_alter_sequence`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_alter_sequence](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_alter_sequence)| - -## Com_alter_server -|name|value| -|----|-----| -|Name|`Com_alter_server`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_alter_server](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_alter_server)| - -## Com_alter_table -|name|value| -|----|-----| -|Name|`Com_alter_table`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_alter_table](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_alter_table)| - -## Com_alter_tablespace -|name|value| -|----|-----| -|Name|`Com_alter_tablespace`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_alter_tablespace](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_alter_tablespace)| - -## Com_alter_user -|name|value| -|----|-----| -|Name|`Com_alter_user`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_alter_user](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_alter_user)| - -## Com_analyze -|name|value| -|----|-----| -|Name|`Com_analyze`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_analyze](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_analyze)| - -## Com_assign_to_keycache -|name|value| -|----|-----| -|Name|`Com_assign_to_keycache`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_assign_to_keycache](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_assign_to_keycache)| - -## Com_backup -|name|value| -|----|-----| -|Name|`Com_backup`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_backup](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_backup)| - -## Com_backup_lock -|name|value| -|----|-----| -|Name|`Com_backup_lock`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_backup_lock](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_backup_lock)| - -## Com_backup_table -|name|value| -|----|-----| -|Name|`Com_backup_table`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_backup_table](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_backup_table)| - -## Com_begin -|name|value| -|----|-----| -|Name|`Com_begin`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_begin](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_begin)| - -## Com_binlog -|name|value| -|----|-----| -|Name|`Com_binlog`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_binlog](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_binlog)| - -## Com_call_procedure -|name|value| -|----|-----| -|Name|`Com_call_procedure`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_call_procedure](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_call_procedure)| - -## Com_change_db -|name|value| -|----|-----| -|Name|`Com_change_db`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_change_db](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_change_db)| - -## Com_check -|name|value| -|----|-----| -|Name|`Com_check`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_check](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_check)| - -## Com_checksum -|name|value| -|----|-----| -|Name|`Com_checksum`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_checksum](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_checksum)| - -## Com_commit -|name|value| -|----|-----| -|Name|`Com_commit`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_commit](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_commit)| - -## Com_compound_sql -|name|value| -|----|-----| -|Name|`Com_compound_sql`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_compound_sql](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_compound_sql)| - -## Com_create_db -|name|value| -|----|-----| -|Name|`Com_create_db`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_create_db](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_create_db)| - -## Com_create_event -|name|value| -|----|-----| -|Name|`Com_create_event`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_create_event](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_create_event)| - -## Com_create_function -|name|value| -|----|-----| -|Name|`Com_create_function`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_create_function](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_create_function)| - -## Com_create_index -|name|value| -|----|-----| -|Name|`Com_create_index`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_create_index](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_create_index)| - -## Com_create_package -|name|value| -|----|-----| -|Name|`Com_create_package`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_create_package](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_create_package)| - -## Com_create_package_body -|name|value| -|----|-----| -|Name|`Com_create_package_body`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_create_package_body](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_create_package_body)| - -## Com_create_procedure -|name|value| -|----|-----| -|Name|`Com_create_procedure`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_create_procedure](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_create_procedure)| - -## Com_create_role -|name|value| -|----|-----| -|Name|`Com_create_role`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_create_role](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_create_role)| - -## Com_create_sequence -|name|value| -|----|-----| -|Name|`Com_create_sequence`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_create_sequence](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_create_sequence)| - -## Com_create_server -|name|value| -|----|-----| -|Name|`Com_create_server`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_create_server](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_create_server)| - -## Com_create_table -|name|value| -|----|-----| -|Name|`Com_create_table`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_create_table](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_create_table)| - -## Com_create_temporary_table -|name|value| -|----|-----| -|Name|`Com_create_temporary_table`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_create_temporary_table](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_create_temporary_table)| - -## Com_create_trigger -|name|value| -|----|-----| -|Name|`Com_create_trigger`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_create_trigger](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_create_trigger)| - -## Com_create_udf -|name|value| -|----|-----| -|Name|`Com_create_udf`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_create_udf](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_create_udf)| - -## Com_create_user -|name|value| -|----|-----| -|Name|`Com_create_user`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_create_user](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_create_user)| - -## Com_create_view -|name|value| -|----|-----| -|Name|`Com_create_view`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_create_view](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_create_view)| - -## Com_dealloc_sql -|name|value| -|----|-----| -|Name|`Com_dealloc_sql`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_dealloc_sql](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_dealloc_sql)| - -## Com_delete -|name|value| -|----|-----| -|Name|`Com_delete`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_delete](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_delete)| - -## Com_delete_multi -|name|value| -|----|-----| -|Name|`Com_delete_multi`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_delete_multi](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_delete_multi)| - -## Com_do -|name|value| -|----|-----| -|Name|`Com_do`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_do](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_do)| - -## Com_drop_db -|name|value| -|----|-----| -|Name|`Com_drop_db`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_drop_db](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_drop_db)| - -## Com_drop_event -|name|value| -|----|-----| -|Name|`Com_drop_event`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_drop_event](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_drop_event)| - -## Com_drop_function -|name|value| -|----|-----| -|Name|`Com_drop_function`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_drop_function](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_drop_function)| - -## Com_drop_index -|name|value| -|----|-----| -|Name|`Com_drop_index`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_drop_index](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_drop_index)| - -## Com_drop_package -|name|value| -|----|-----| -|Name|`Com_drop_package`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_drop_package](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_drop_package)| - -## Com_drop_package_body -|name|value| -|----|-----| -|Name|`Com_drop_package_body`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_drop_package_body](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_drop_package_body)| - -## Com_drop_procedure -|name|value| -|----|-----| -|Name|`Com_drop_procedure`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_drop_procedure](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_drop_procedure)| - -## Com_drop_role -|name|value| -|----|-----| -|Name|`Com_drop_role`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_drop_role](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_drop_role)| - -## Com_drop_sequence -|name|value| -|----|-----| -|Name|`Com_drop_sequence`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_drop_sequence](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_drop_sequence)| - -## Com_drop_server -|name|value| -|----|-----| -|Name|`Com_drop_server`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_drop_server](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_drop_server)| - -## Com_drop_table -|name|value| -|----|-----| -|Name|`Com_drop_table`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_drop_table](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_drop_table)| - -## Com_drop_temporary_table -|name|value| -|----|-----| -|Name|`Com_drop_temporary_table`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_drop_temporary_table](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_drop_temporary_table)| - -## Com_drop_trigger -|name|value| -|----|-----| -|Name|`Com_drop_trigger`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_drop_trigger](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_drop_trigger)| - -## Com_drop_user -|name|value| -|----|-----| -|Name|`Com_drop_user`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_drop_user](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_drop_user)| - -## Com_drop_view -|name|value| -|----|-----| -|Name|`Com_drop_view`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_drop_view](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_drop_view)| - -## Com_empty_query -|name|value| -|----|-----| -|Name|`Com_empty_query`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_empty_query](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_empty_query)| - -## Com_execute_immediate -|name|value| -|----|-----| -|Name|`Com_execute_immediate`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_execute_immediate](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_execute_immediate)| - -## Com_execute_sql -|name|value| -|----|-----| -|Name|`Com_execute_sql`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_execute_sql](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_execute_sql)| - -## Com_flush -|name|value| -|----|-----| -|Name|`Com_flush`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_flush](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_flush)| - -## Com_get_diagnostics -|name|value| -|----|-----| -|Name|`Com_get_diagnostics`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_get_diagnostics](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_get_diagnostics)| - -## Com_grant -|name|value| -|----|-----| -|Name|`Com_grant`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_grant](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_grant)| - -## Com_grant_role -|name|value| -|----|-----| -|Name|`Com_grant_role`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_grant_role](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_grant_role)| - -## Com_ha_close -|name|value| -|----|-----| -|Name|`Com_ha_close`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_ha_close](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_ha_close)| - -## Com_ha_open -|name|value| -|----|-----| -|Name|`Com_ha_open`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_ha_open](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_ha_open)| - -## Com_ha_read -|name|value| -|----|-----| -|Name|`Com_ha_read`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_ha_read](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_ha_read)| - -## Com_help -|name|value| -|----|-----| -|Name|`Com_help`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_help](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_help)| - -## Com_insert -|name|value| -|----|-----| -|Name|`Com_insert`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_insert](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_insert)| - -## Com_insert_select -|name|value| -|----|-----| -|Name|`Com_insert_select`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_insert_select](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_insert_select)| - -## Com_install_plugin -|name|value| -|----|-----| -|Name|`Com_install_plugin`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_install_plugin](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_install_plugin)| - -## Com_kill -|name|value| -|----|-----| -|Name|`Com_kill`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_kill](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_kill)| - -## Com_load -|name|value| -|----|-----| -|Name|`Com_load`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_load](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_load)| - -## Com_load_master_data -|name|value| -|----|-----| -|Name|`Com_load_master_data`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_load_master_data](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_load_master_data)| - -## Com_load_master_table -|name|value| -|----|-----| -|Name|`Com_load_master_table`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_load_master_table](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_load_master_table)| - -## Com_multi -|name|value| -|----|-----| -|Name|`Com_multi`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_multi](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_multi)| - -## Com_lock_tables -|name|value| -|----|-----| -|Name|`Com_lock_tables`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_lock_tables](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_lock_tables)| - -## Com_optimize -|name|value| -|----|-----| -|Name|`Com_optimize`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_optimize](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_optimize)| - -## Com_preload_keys -|name|value| -|----|-----| -|Name|`Com_preload_keys`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_preload_keys](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_preload_keys)| - -## Com_prepare_sql -|name|value| -|----|-----| -|Name|`Com_prepare_sql`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_prepare_sql](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_prepare_sql)| - -## Com_purge -|name|value| -|----|-----| -|Name|`Com_purge`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_purge](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_purge)| - -## Com_purge_before_date -|name|value| -|----|-----| -|Name|`Com_purge_before_date`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_purge_before_date](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_purge_before_date)| - -## Com_release_savepoint -|name|value| -|----|-----| -|Name|`Com_release_savepoint`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_release_savepoint](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_release_savepoint)| - -## Com_rename_table -|name|value| -|----|-----| -|Name|`Com_rename_table`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_rename_table](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_rename_table)| - -## Com_rename_user -|name|value| -|----|-----| -|Name|`Com_rename_user`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_rename_user](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_rename_user)| - -## Com_repair -|name|value| -|----|-----| -|Name|`Com_repair`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_repair](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_repair)| - -## Com_replace -|name|value| -|----|-----| -|Name|`Com_replace`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_replace](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_replace)| - -## Com_replace_select -|name|value| -|----|-----| -|Name|`Com_replace_select`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_replace_select](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_replace_select)| - -## Com_reset -|name|value| -|----|-----| -|Name|`Com_reset`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_reset](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_reset)| - -## Com_resignal -|name|value| -|----|-----| -|Name|`Com_resignal`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_resignal](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_resignal)| - -## Com_restore_table -|name|value| -|----|-----| -|Name|`Com_restore_table`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_restore_table](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_restore_table)| - -## Com_revoke -|name|value| -|----|-----| -|Name|`Com_revoke`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_revoke](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_revoke)| - -## Com_revoke_all -|name|value| -|----|-----| -|Name|`Com_revoke_all`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_revoke_all](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_revoke_all)| - -## Com_revoke_grant -|name|value| -|----|-----| -|Name|`Com_revoke_grant`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_revoke_grant](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_revoke_grant)| - -## Com_rollback -|name|value| -|----|-----| -|Name|`Com_rollback`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_rollback](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_rollback)| - -## Com_rollback_to_savepoint -|name|value| -|----|-----| -|Name|`Com_rollback_to_savepoint`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_rollback_to_savepoint](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_rollback_to_savepoint)| - -## Com_savepoint -|name|value| -|----|-----| -|Name|`Com_savepoint`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_savepoint](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_savepoint)| - -## Com_select -|name|value| -|----|-----| -|Name|`Com_select`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_select](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_select)| - -## Com_set_option -|name|value| -|----|-----| -|Name|`Com_set_option`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_set_option](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_set_option)| - -## Com_signal -|name|value| -|----|-----| -|Name|`Com_signal`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_signal](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_signal)| - -## Com_show_authors -|name|value| -|----|-----| -|Name|`Com_show_authors`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_authors](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_authors)| - -## Com_show_binlog_events -|name|value| -|----|-----| -|Name|`Com_show_binlog_events`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_binlog_events](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_binlog_events)| - -## Com_show_binlogs -|name|value| -|----|-----| -|Name|`Com_show_binlogs`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_binlogs](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_binlogs)| - -## Com_show_charsets -|name|value| -|----|-----| -|Name|`Com_show_charsets`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_charsets](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_charsets)| - -## Com_show_client_statistics -|name|value| -|----|-----| -|Name|`Com_show_client_statistics`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_client_statistics](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_client_statistics)| - -## Com_show_collations -|name|value| -|----|-----| -|Name|`Com_show_collations`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_collations](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_collations)| - -## Com_show_column_types -|name|value| -|----|-----| -|Name|`Com_show_column_types`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_column_types](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_column_types)| - -## Com_show_contributors -|name|value| -|----|-----| -|Name|`Com_show_contributors`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_contributors](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_contributors)| - -## Com_show_create_db -|name|value| -|----|-----| -|Name|`Com_show_create_db`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_create_db](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_create_db)| - -## Com_show_create_event -|name|value| -|----|-----| -|Name|`Com_show_create_event`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_create_event](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_create_event)| - -## Com_show_create_func -|name|value| -|----|-----| -|Name|`Com_show_create_func`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_create_func](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_create_func)| - -## Com_show_create_package -|name|value| -|----|-----| -|Name|`Com_show_create_package`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_create_package](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_create_package)| - -## Com_show_create_package_body -|name|value| -|----|-----| -|Name|`Com_show_create_package_body`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_create_package_body](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_create_package_body)| - -## Com_show_create_proc -|name|value| -|----|-----| -|Name|`Com_show_create_proc`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_create_proc](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_create_proc)| - -## Com_show_create_table -|name|value| -|----|-----| -|Name|`Com_show_create_table`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_create_table](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_create_table)| - -## Com_show_create_trigger -|name|value| -|----|-----| -|Name|`Com_show_create_trigger`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_create_trigger](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_create_trigger)| - -## Com_show_create_user -|name|value| -|----|-----| -|Name|`Com_show_create_user`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_create_user](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_create_user)| - -## Com_show_databases -|name|value| -|----|-----| -|Name|`Com_show_databases`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_databases](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_databases)| - -## Com_show_engine_logs -|name|value| -|----|-----| -|Name|`Com_show_engine_logs`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_engine_logs](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_engine_logs)| - -## Com_show_engine_mutex -|name|value| -|----|-----| -|Name|`Com_show_engine_mutex`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_engine_mutex](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_engine_mutex)| - -## Com_show_engine_status -|name|value| -|----|-----| -|Name|`Com_show_engine_status`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_engine_status](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_engine_status)| - -## Com_show_events -|name|value| -|----|-----| -|Name|`Com_show_events`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_events](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_events)| - -## Com_show_errors -|name|value| -|----|-----| -|Name|`Com_show_errors`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_errors](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_errors)| - -## Com_show_explain -|name|value| -|----|-----| -|Name|`Com_show_explain`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_explain](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_explain)| - -## Com_show_fields -|name|value| -|----|-----| -|Name|`Com_show_fields`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_fields](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_fields)| - -## Com_show_function_status -|name|value| -|----|-----| -|Name|`Com_show_function_status`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_function_status](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_function_status)| - -## Com_show_generic -|name|value| -|----|-----| -|Name|`Com_show_generic`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_generic](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_generic)| - -## Com_show_grants -|name|value| -|----|-----| -|Name|`Com_show_grants`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_grants](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_grants)| - -## Com_show_keys -|name|value| -|----|-----| -|Name|`Com_show_keys`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_keys](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_keys)| - -## Com_show_index_statistics -|name|value| -|----|-----| -|Name|`Com_show_index_statistics`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_index_statistics](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_index_statistics)| - -## Com_show_open_tables -|name|value| -|----|-----| -|Name|`Com_show_open_tables`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_open_tables](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_open_tables)| - -## Com_show_package_status -|name|value| -|----|-----| -|Name|`Com_show_package_status`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_package_status](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_package_status)| - -## Com_show_package_body_status -|name|value| -|----|-----| -|Name|`Com_show_package_body_status`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_package_body_status](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_package_body_status)| - -## Com_show_plugins -|name|value| -|----|-----| -|Name|`Com_show_plugins`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_plugins](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_plugins)| - -## Com_show_privileges -|name|value| -|----|-----| -|Name|`Com_show_privileges`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_privileges](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_privileges)| - -## Com_show_procedure_status -|name|value| -|----|-----| -|Name|`Com_show_procedure_status`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_procedure_status](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_procedure_status)| - -## Com_show_processlist -|name|value| -|----|-----| -|Name|`Com_show_processlist`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_processlist](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_processlist)| - -## Com_show_profile -|name|value| -|----|-----| -|Name|`Com_show_profile`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_profile](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_profile)| - -## Com_show_profiles -|name|value| -|----|-----| -|Name|`Com_show_profiles`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_profiles](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_profiles)| - -## Com_show_relaylog_events -|name|value| -|----|-----| -|Name|`Com_show_relaylog_events`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_relaylog_events](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_relaylog_events)| - -## Com_show_status -|name|value| -|----|-----| -|Name|`Com_show_status`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_status](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_status)| - -## Com_show_storage_engines -|name|value| -|----|-----| -|Name|`Com_show_storage_engines`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_storage_engines](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_storage_engines)| - -## Com_show_table_statistics -|name|value| -|----|-----| -|Name|`Com_show_table_statistics`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_table_statistics](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_table_statistics)| - -## Com_show_table_status -|name|value| -|----|-----| -|Name|`Com_show_table_status`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_table_status](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_table_status)| - -## Com_show_tables -|name|value| -|----|-----| -|Name|`Com_show_tables`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_tables](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_tables)| - -## Com_show_triggers -|name|value| -|----|-----| -|Name|`Com_show_triggers`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_triggers](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_triggers)| - -## Com_show_user_statistics -|name|value| -|----|-----| -|Name|`Com_show_user_statistics`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_user_statistics](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_user_statistics)| - -## Com_show_variable -|name|value| -|----|-----| -|Name|`Com_show_variable`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_variable](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_variable)| - -## Com_show_warnings -|name|value| -|----|-----| -|Name|`Com_show_warnings`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_show_warnings](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_show_warnings)| - -## Com_shutdown -|name|value| -|----|-----| -|Name|`Com_shutdown`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_shutdown](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_shutdown)| - -## Com_stmt_close -|name|value| -|----|-----| -|Name|`Com_stmt_close`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_stmt_close](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_stmt_close)| - -## Com_stmt_execute -|name|value| -|----|-----| -|Name|`Com_stmt_execute`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_stmt_execute](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_stmt_execute)| - -## Com_stmt_fetch -|name|value| -|----|-----| -|Name|`Com_stmt_fetch`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_stmt_fetch](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_stmt_fetch)| - -## Com_stmt_prepare -|name|value| -|----|-----| -|Name|`Com_stmt_prepare`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_stmt_prepare](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_stmt_prepare)| - -## Com_stmt_reprepare -|name|value| -|----|-----| -|Name|`Com_stmt_reprepare`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_stmt_reprepare](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_stmt_reprepare)| - -## Com_stmt_reset -|name|value| -|----|-----| -|Name|`Com_stmt_reset`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_stmt_reset](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_stmt_reset)| - -## Com_stmt_send_long_data -|name|value| -|----|-----| -|Name|`Com_stmt_send_long_data`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_stmt_send_long_data](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_stmt_send_long_data)| - -## Com_truncate -|name|value| -|----|-----| -|Name|`Com_truncate`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_truncate](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_truncate)| - -## Com_uninstall_plugin -|name|value| -|----|-----| -|Name|`Com_uninstall_plugin`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_uninstall_plugin](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_uninstall_plugin)| - -## Com_unlock_tables -|name|value| -|----|-----| -|Name|`Com_unlock_tables`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_unlock_tables](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_unlock_tables)| - -## Com_update -|name|value| -|----|-----| -|Name|`Com_update`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_update](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_update)| - -## Com_update_multi -|name|value| -|----|-----| -|Name|`Com_update_multi`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_update_multi](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_update_multi)| - -## Com_xa_commit -|name|value| -|----|-----| -|Name|`Com_xa_commit`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_xa_commit](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_xa_commit)| - -## Com_xa_end -|name|value| -|----|-----| -|Name|`Com_xa_end`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_xa_end](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_xa_end)| - -## Com_xa_prepare -|name|value| -|----|-----| -|Name|`Com_xa_prepare`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_xa_prepare](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_xa_prepare)| - -## Com_xa_recover -|name|value| -|----|-----| -|Name|`Com_xa_recover`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_xa_recover](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_xa_recover)| - -## Com_xa_rollback -|name|value| -|----|-----| -|Name|`Com_xa_rollback`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_xa_rollback](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_xa_rollback)| - -## Com_xa_start -|name|value| -|----|-----| -|Name|`Com_xa_start`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[com_xa_start](https://mariadb.com/kb/en/library/documentation/server-status-variables/#com_xa_start)| - -## Compression -|name|value| -|----|-----| -|Name|`Compression`| -|Type of variable|`boolean`| -|Scope|`session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[compression](https://mariadb.com/kb/en/library/documentation/server-status-variables/#compression)| - -## Connection_errors_accept -|name|value| -|----|-----| -|Name|`Connection_errors_accept`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[connection_errors_accept](https://mariadb.com/kb/en/library/documentation/server-status-variables/#connection_errors_accept)| - -## Connection_errors_internal -|name|value| -|----|-----| -|Name|`Connection_errors_internal`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[connection_errors_internal](https://mariadb.com/kb/en/library/documentation/server-status-variables/#connection_errors_internal)| - -## Connection_errors_max_connections -|name|value| -|----|-----| -|Name|`Connection_errors_max_connections`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[connection_errors_max_connections](https://mariadb.com/kb/en/library/documentation/server-status-variables/#connection_errors_max_connections)| - -## Connection_errors_peer_address -|name|value| -|----|-----| -|Name|`Connection_errors_peer_address`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[connection_errors_peer_address](https://mariadb.com/kb/en/library/documentation/server-status-variables/#connection_errors_peer_address)| - -## Connection_errors_select -|name|value| -|----|-----| -|Name|`Connection_errors_select`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[connection_errors_select](https://mariadb.com/kb/en/library/documentation/server-status-variables/#connection_errors_select)| - -## Connection_errors_tcpwrap -|name|value| -|----|-----| -|Name|`Connection_errors_tcpwrap`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[connection_errors_tcpwrap](https://mariadb.com/kb/en/library/documentation/server-status-variables/#connection_errors_tcpwrap)| - -## Connections -|name|value| -|----|-----| -|Name|`Connections`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[connections](https://mariadb.com/kb/en/library/documentation/server-status-variables/#connections)| - -## Cpu_time -|name|value| -|----|-----| -|Name|`Cpu_time`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[cpu_time](https://mariadb.com/kb/en/library/documentation/server-status-variables/#cpu_time)| - -## Created_tmp_disk_tables -|name|value| -|----|-----| -|Name|`Created_tmp_disk_tables`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[created_tmp_disk_tables](https://mariadb.com/kb/en/library/documentation/server-status-variables/#created_tmp_disk_tables)| - -## Created_tmp_files -|name|value| -|----|-----| -|Name|`Created_tmp_files`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[created_tmp_files](https://mariadb.com/kb/en/library/documentation/server-status-variables/#created_tmp_files)| - -## Created_tmp_tables -|name|value| -|----|-----| -|Name|`Created_tmp_tables`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[created_tmp_tables](https://mariadb.com/kb/en/library/documentation/server-status-variables/#created_tmp_tables)| - -## Delayed_errors -|name|value| -|----|-----| -|Name|`Delayed_errors`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[delayed_errors](https://mariadb.com/kb/en/library/documentation/server-status-variables/#delayed_errors)| - -## Delayed_insert_threads -|name|value| -|----|-----| -|Name|`Delayed_insert_threads`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[delayed_insert_threads](https://mariadb.com/kb/en/library/documentation/server-status-variables/#delayed_insert_threads)| - -## Delayed_writes -|name|value| -|----|-----| -|Name|`Delayed_writes`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[delayed_writes](https://mariadb.com/kb/en/library/documentation/server-status-variables/#delayed_writes)| - -## Delete_scan -|name|value| -|----|-----| -|Name|`Delete_scan`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[delete_scan](https://mariadb.com/kb/en/library/documentation/server-status-variables/#delete_scan)| - -## Empty_queries -|name|value| -|----|-----| -|Name|`Empty_queries`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[empty_queries](https://mariadb.com/kb/en/library/documentation/server-status-variables/#empty_queries)| - -## Executed_events -|name|value| -|----|-----| -|Name|`Executed_events`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[executed_events](https://mariadb.com/kb/en/library/documentation/server-status-variables/#executed_events)| - -## Executed_triggers -|name|value| -|----|-----| -|Name|`Executed_triggers`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[executed_triggers](https://mariadb.com/kb/en/library/documentation/server-status-variables/#executed_triggers)| - -## Feature_application_time_periods -|name|value| -|----|-----| -|Name|`Feature_application_time_periods`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[feature_application_time_periods](https://mariadb.com/kb/en/library/documentation/server-status-variables/#feature_application_time_periods)| - -## Feature_check_constraint -|name|value| -|----|-----| -|Name|`Feature_check_constraint`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[feature_check_constraint](https://mariadb.com/kb/en/library/documentation/server-status-variables/#feature_check_constraint)| - -## Feature_custom_aggregate_functions -|name|value| -|----|-----| -|Name|`Feature_custom_aggregate_functions`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[feature_custom_aggregate_functions](https://mariadb.com/kb/en/library/documentation/server-status-variables/#feature_custom_aggregate_functions)| - -## Feature_delay_key_write -|name|value| -|----|-----| -|Name|`Feature_delay_key_write`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[feature_delay_key_write](https://mariadb.com/kb/en/library/documentation/server-status-variables/#feature_delay_key_write)| - -## Feature_dynamic_columns -|name|value| -|----|-----| -|Name|`Feature_dynamic_columns`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[feature_dynamic_columns](https://mariadb.com/kb/en/library/documentation/server-status-variables/#feature_dynamic_columns)| - -## Feature_fulltext -|name|value| -|----|-----| -|Name|`Feature_fulltext`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[feature_fulltext](https://mariadb.com/kb/en/library/documentation/server-status-variables/#feature_fulltext)| - -## Feature_gis -|name|value| -|----|-----| -|Name|`Feature_gis`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[feature_gis](https://mariadb.com/kb/en/library/documentation/server-status-variables/#feature_gis)| - -## Feature_invisible_columns -|name|value| -|----|-----| -|Name|`Feature_invisible_columns`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[feature_invisible_columns](https://mariadb.com/kb/en/library/documentation/server-status-variables/#feature_invisible_columns)| - -## Feature_json -|name|value| -|----|-----| -|Name|`Feature_json`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[feature_json](https://mariadb.com/kb/en/library/documentation/server-status-variables/#feature_json)| - -## Feature_locale -|name|value| -|----|-----| -|Name|`Feature_locale`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[feature_locale](https://mariadb.com/kb/en/library/documentation/server-status-variables/#feature_locale)| - -## Feature_subquery -|name|value| -|----|-----| -|Name|`Feature_subquery`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[feature_subquery](https://mariadb.com/kb/en/library/documentation/server-status-variables/#feature_subquery)| - -## Feature_system_versioning -|name|value| -|----|-----| -|Name|`Feature_system_versioning`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[feature_system_versioning](https://mariadb.com/kb/en/library/documentation/server-status-variables/#feature_system_versioning)| - -## Feature_timezone -|name|value| -|----|-----| -|Name|`Feature_timezone`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[feature_timezone](https://mariadb.com/kb/en/library/documentation/server-status-variables/#feature_timezone)| - -## Feature_trigger -|name|value| -|----|-----| -|Name|`Feature_trigger`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[feature_trigger](https://mariadb.com/kb/en/library/documentation/server-status-variables/#feature_trigger)| - -## Feature_window_functions -|name|value| -|----|-----| -|Name|`Feature_window_functions`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[feature_window_functions](https://mariadb.com/kb/en/library/documentation/server-status-variables/#feature_window_functions)| - -## Feature_xml -|name|value| -|----|-----| -|Name|`Feature_xml`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[feature_xml](https://mariadb.com/kb/en/library/documentation/server-status-variables/#feature_xml)| - -## Flush_commands -|name|value| -|----|-----| -|Name|`Flush_commands`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[flush_commands](https://mariadb.com/kb/en/library/documentation/server-status-variables/#flush_commands)| - -## Handler_commit -|name|value| -|----|-----| -|Name|`Handler_commit`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[handler_commit](https://mariadb.com/kb/en/library/documentation/server-status-variables/#handler_commit)| - -## Handler_delete -|name|value| -|----|-----| -|Name|`Handler_delete`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[handler_delete](https://mariadb.com/kb/en/library/documentation/server-status-variables/#handler_delete)| - -## Handler_discover -|name|value| -|----|-----| -|Name|`Handler_discover`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[handler_discover](https://mariadb.com/kb/en/library/documentation/server-status-variables/#handler_discover)| - -## Handler_external_lock -|name|value| -|----|-----| -|Name|`Handler_external_lock`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[handler_external_lock](https://mariadb.com/kb/en/library/documentation/server-status-variables/#handler_external_lock)| - -## Handler_icp_attempts -|name|value| -|----|-----| -|Name|`Handler_icp_attempts`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[handler_icp_attempts](https://mariadb.com/kb/en/library/documentation/server-status-variables/#handler_icp_attempts)| - -## Handler_icp_match -|name|value| -|----|-----| -|Name|`Handler_icp_match`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[handler_icp_match](https://mariadb.com/kb/en/library/documentation/server-status-variables/#handler_icp_match)| - -## Handler_mrr_init -|name|value| -|----|-----| -|Name|`Handler_mrr_init`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[handler_mrr_init](https://mariadb.com/kb/en/library/documentation/server-status-variables/#handler_mrr_init)| - -## Handler_mrr_key_refills -|name|value| -|----|-----| -|Name|`Handler_mrr_key_refills`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[handler_mrr_key_refills](https://mariadb.com/kb/en/library/documentation/server-status-variables/#handler_mrr_key_refills)| - -## Handler_mrr_rowid_refills -|name|value| -|----|-----| -|Name|`Handler_mrr_rowid_refills`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[handler_mrr_rowid_refills](https://mariadb.com/kb/en/library/documentation/server-status-variables/#handler_mrr_rowid_refills)| - -## Handler_prepare -|name|value| -|----|-----| -|Name|`Handler_prepare`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[handler_prepare](https://mariadb.com/kb/en/library/documentation/server-status-variables/#handler_prepare)| - -## Handler_read_first -|name|value| -|----|-----| -|Name|`Handler_read_first`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[handler_read_first](https://mariadb.com/kb/en/library/documentation/server-status-variables/#handler_read_first)| - -## Handler_read_key -|name|value| -|----|-----| -|Name|`Handler_read_key`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[handler_read_key](https://mariadb.com/kb/en/library/documentation/server-status-variables/#handler_read_key)| - -## Handler_read_last -|name|value| -|----|-----| -|Name|`Handler_read_last`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[handler_read_last](https://mariadb.com/kb/en/library/documentation/server-status-variables/#handler_read_last)| - -## Handler_read_next -|name|value| -|----|-----| -|Name|`Handler_read_next`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[handler_read_next](https://mariadb.com/kb/en/library/documentation/server-status-variables/#handler_read_next)| - -## Handler_read_prev -|name|value| -|----|-----| -|Name|`Handler_read_prev`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[handler_read_prev](https://mariadb.com/kb/en/library/documentation/server-status-variables/#handler_read_prev)| - -## Handler_read_retry -|name|value| -|----|-----| -|Name|`Handler_read_retry`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[handler_read_retry](https://mariadb.com/kb/en/library/documentation/server-status-variables/#handler_read_retry)| - -## Handler_read_rnd -|name|value| -|----|-----| -|Name|`Handler_read_rnd`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[handler_read_rnd](https://mariadb.com/kb/en/library/documentation/server-status-variables/#handler_read_rnd)| - -## Handler_read_rnd_deleted -|name|value| -|----|-----| -|Name|`Handler_read_rnd_deleted`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[handler_read_rnd_deleted](https://mariadb.com/kb/en/library/documentation/server-status-variables/#handler_read_rnd_deleted)| - -## Handler_read_rnd_next -|name|value| -|----|-----| -|Name|`Handler_read_rnd_next`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[handler_read_rnd_next](https://mariadb.com/kb/en/library/documentation/server-status-variables/#handler_read_rnd_next)| - -## Handler_rollback -|name|value| -|----|-----| -|Name|`Handler_rollback`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[handler_rollback](https://mariadb.com/kb/en/library/documentation/server-status-variables/#handler_rollback)| - -## Handler_savepoint -|name|value| -|----|-----| -|Name|`Handler_savepoint`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[handler_savepoint](https://mariadb.com/kb/en/library/documentation/server-status-variables/#handler_savepoint)| - -## Handler_savepoint_rollback -|name|value| -|----|-----| -|Name|`Handler_savepoint_rollback`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[handler_savepoint_rollback](https://mariadb.com/kb/en/library/documentation/server-status-variables/#handler_savepoint_rollback)| - -## Handler_tmp_delete -|name|value| -|----|-----| -|Name|`Handler_tmp_delete`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[handler_tmp_delete](https://mariadb.com/kb/en/library/documentation/server-status-variables/#handler_tmp_delete)| - -## Handler_tmp_update -|name|value| -|----|-----| -|Name|`Handler_tmp_update`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[handler_tmp_update](https://mariadb.com/kb/en/library/documentation/server-status-variables/#handler_tmp_update)| - -## Handler_tmp_write -|name|value| -|----|-----| -|Name|`Handler_tmp_write`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[handler_tmp_write](https://mariadb.com/kb/en/library/documentation/server-status-variables/#handler_tmp_write)| - -## Handler_update -|name|value| -|----|-----| -|Name|`Handler_update`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[handler_update](https://mariadb.com/kb/en/library/documentation/server-status-variables/#handler_update)| - -## Handler_write -|name|value| -|----|-----| -|Name|`Handler_write`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[handler_write](https://mariadb.com/kb/en/library/documentation/server-status-variables/#handler_write)| - -## Key_blocks_not_flushed -|name|value| -|----|-----| -|Name|`Key_blocks_not_flushed`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[key_blocks_not_flushed](https://mariadb.com/kb/en/library/documentation/server-status-variables/#key_blocks_not_flushed)| - -## Key_blocks_unused -|name|value| -|----|-----| -|Name|`Key_blocks_unused`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[key_blocks_unused](https://mariadb.com/kb/en/library/documentation/server-status-variables/#key_blocks_unused)| - -## Key_blocks_used -|name|value| -|----|-----| -|Name|`Key_blocks_used`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[key_blocks_used](https://mariadb.com/kb/en/library/documentation/server-status-variables/#key_blocks_used)| - -## Key_blocks_warm -|name|value| -|----|-----| -|Name|`Key_blocks_warm`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[key_blocks_warm](https://mariadb.com/kb/en/library/documentation/server-status-variables/#key_blocks_warm)| - -## Key_read_requests -|name|value| -|----|-----| -|Name|`Key_read_requests`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[key_read_requests](https://mariadb.com/kb/en/library/documentation/server-status-variables/#key_read_requests)| - -## Key_reads -|name|value| -|----|-----| -|Name|`Key_reads`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[key_reads](https://mariadb.com/kb/en/library/documentation/server-status-variables/#key_reads)| - -## Key_write_requests -|name|value| -|----|-----| -|Name|`Key_write_requests`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[key_write_requests](https://mariadb.com/kb/en/library/documentation/server-status-variables/#key_write_requests)| - -## Key_writes -|name|value| -|----|-----| -|Name|`Key_writes`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[key_writes](https://mariadb.com/kb/en/library/documentation/server-status-variables/#key_writes)| - -## Last_query_cost -|name|value| -|----|-----| -|Name|`Last_query_cost`| -|Type of variable|`integer`| -|Scope|`session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[last_query_cost](https://mariadb.com/kb/en/library/documentation/server-status-variables/#last_query_cost)| - -## Maria_* -|name|value| -|----|-----| -|Name|`Maria_*`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[maria_](https://mariadb.com/kb/en/library/documentation/server-status-variables/#maria_)| - -## Max_statement_time_exceeded -|name|value| -|----|-----| -|Name|`Max_statement_time_exceeded`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[max_statement_time_exceeded](https://mariadb.com/kb/en/library/documentation/server-status-variables/#max_statement_time_exceeded)| - -## Max_used_connections -|name|value| -|----|-----| -|Name|`Max_used_connections`| -|Type of variable|`integer`| -|Scope|`session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[max_used_connections](https://mariadb.com/kb/en/library/documentation/server-status-variables/#max_used_connections)| - -## Memory_used -|name|value| -|----|-----| -|Name|`Memory_used`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[memory_used](https://mariadb.com/kb/en/library/documentation/server-status-variables/#memory_used)| - -## Memory_used_initial -|name|value| -|----|-----| -|Name|`Memory_used_initial`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[memory_used_initial](https://mariadb.com/kb/en/library/documentation/server-status-variables/#memory_used_initial)| - -## Not_flushed_delayed_rows -|name|value| -|----|-----| -|Name|`Not_flushed_delayed_rows`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[not_flushed_delayed_rows](https://mariadb.com/kb/en/library/documentation/server-status-variables/#not_flushed_delayed_rows)| - -## Open_files -|name|value| -|----|-----| -|Name|`Open_files`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[open_files](https://mariadb.com/kb/en/library/documentation/server-status-variables/#open_files)| - -## Open_streams -|name|value| -|----|-----| -|Name|`Open_streams`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[open_streams](https://mariadb.com/kb/en/library/documentation/server-status-variables/#open_streams)| - -## Open_table_definitions -|name|value| -|----|-----| -|Name|`Open_table_definitions`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[open_table_definitions](https://mariadb.com/kb/en/library/documentation/server-status-variables/#open_table_definitions)| - -## Open_tables -|name|value| -|----|-----| -|Name|`Open_tables`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[open_tables](https://mariadb.com/kb/en/library/documentation/server-status-variables/#open_tables)| - -## Opened_files -|name|value| -|----|-----| -|Name|`Opened_files`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[opened_files](https://mariadb.com/kb/en/library/documentation/server-status-variables/#opened_files)| - -## Opened_plugin_libraries -|name|value| -|----|-----| -|Name|`Opened_plugin_libraries`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[opened_plugin_libraries](https://mariadb.com/kb/en/library/documentation/server-status-variables/#opened_plugin_libraries)| - -## Opened_table_definitions -|name|value| -|----|-----| -|Name|`Opened_table_definitions`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[opened_table_definitions](https://mariadb.com/kb/en/library/documentation/server-status-variables/#opened_table_definitions)| - -## Opened_tables -|name|value| -|----|-----| -|Name|`Opened_tables`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[opened_tables](https://mariadb.com/kb/en/library/documentation/server-status-variables/#opened_tables)| - -## Opened_views -|name|value| -|----|-----| -|Name|`Opened_views`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[opened_views](https://mariadb.com/kb/en/library/documentation/server-status-variables/#opened_views)| - -## Performance_schema_accounts_lost -|name|value| -|----|-----| -|Name|`Performance_schema_accounts_lost`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_accounts_lost](https://mariadb.com/kb/en/library/documentation/server-status-variables/#performance_schema_accounts_lost)| - -## Performance_schema_cond_classes_lost -|name|value| -|----|-----| -|Name|`Performance_schema_cond_classes_lost`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_cond_classes_lost](https://mariadb.com/kb/en/library/documentation/server-status-variables/#performance_schema_cond_classes_lost)| - -## Performance_schema_cond_instances_lost -|name|value| -|----|-----| -|Name|`Performance_schema_cond_instances_lost`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_cond_instances_lost](https://mariadb.com/kb/en/library/documentation/server-status-variables/#performance_schema_cond_instances_lost)| - -## Performance_schema_digest_lost -|name|value| -|----|-----| -|Name|`Performance_schema_digest_lost`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_digest_lost](https://mariadb.com/kb/en/library/documentation/server-status-variables/#performance_schema_digest_lost)| - -## Performance_schema_file_classes_lost -|name|value| -|----|-----| -|Name|`Performance_schema_file_classes_lost`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_file_classes_lost](https://mariadb.com/kb/en/library/documentation/server-status-variables/#performance_schema_file_classes_lost)| - -## Performance_schema_file_handles_lost -|name|value| -|----|-----| -|Name|`Performance_schema_file_handles_lost`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_file_handles_lost](https://mariadb.com/kb/en/library/documentation/server-status-variables/#performance_schema_file_handles_lost)| - -## Performance_schema_file_instances_lost -|name|value| -|----|-----| -|Name|`Performance_schema_file_instances_lost`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_file_instances_lost](https://mariadb.com/kb/en/library/documentation/server-status-variables/#performance_schema_file_instances_lost)| - -## Performance_schema_hosts_lost -|name|value| -|----|-----| -|Name|`Performance_schema_hosts_lost`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_hosts_lost](https://mariadb.com/kb/en/library/documentation/server-status-variables/#performance_schema_hosts_lost)| - -## Performance_schema_locker_lost -|name|value| -|----|-----| -|Name|`Performance_schema_locker_lost`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_locker_lost](https://mariadb.com/kb/en/library/documentation/server-status-variables/#performance_schema_locker_lost)| - -## Performance_schema_mutex_classes_lost -|name|value| -|----|-----| -|Name|`Performance_schema_mutex_classes_lost`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_mutex_classes_lost](https://mariadb.com/kb/en/library/documentation/server-status-variables/#performance_schema_mutex_classes_lost)| - -## Performance_schema_mutex_instances_lost -|name|value| -|----|-----| -|Name|`Performance_schema_mutex_instances_lost`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_mutex_instances_lost](https://mariadb.com/kb/en/library/documentation/server-status-variables/#performance_schema_mutex_instances_lost)| - -## Performance_schema_rwlock_classes_lost -|name|value| -|----|-----| -|Name|`Performance_schema_rwlock_classes_lost`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_rwlock_classes_lost](https://mariadb.com/kb/en/library/documentation/server-status-variables/#performance_schema_rwlock_classes_lost)| - -## Performance_schema_rwlock_instances_lost -|name|value| -|----|-----| -|Name|`Performance_schema_rwlock_instances_lost`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_rwlock_instances_lost](https://mariadb.com/kb/en/library/documentation/server-status-variables/#performance_schema_rwlock_instances_lost)| - -## Performance_schema_session_connect_attrs_lost -|name|value| -|----|-----| -|Name|`Performance_schema_session_connect_attrs_lost`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_session_connect_attrs_lost](https://mariadb.com/kb/en/library/documentation/server-status-variables/#performance_schema_session_connect_attrs_lost)| - -## Performance_schema_socket_classes_lost -|name|value| -|----|-----| -|Name|`Performance_schema_socket_classes_lost`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_socket_classes_lost](https://mariadb.com/kb/en/library/documentation/server-status-variables/#performance_schema_socket_classes_lost)| - -## Performance_schema_socket_instances_lost -|name|value| -|----|-----| -|Name|`Performance_schema_socket_instances_lost`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_socket_instances_lost](https://mariadb.com/kb/en/library/documentation/server-status-variables/#performance_schema_socket_instances_lost)| - -## Performance_schema_stage_classes_lost -|name|value| -|----|-----| -|Name|`Performance_schema_stage_classes_lost`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_stage_classes_lost](https://mariadb.com/kb/en/library/documentation/server-status-variables/#performance_schema_stage_classes_lost)| - -## Performance_schema_statement_classes_lost -|name|value| -|----|-----| -|Name|`Performance_schema_statement_classes_lost`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_statement_classes_lost](https://mariadb.com/kb/en/library/documentation/server-status-variables/#performance_schema_statement_classes_lost)| - -## Performance_schema_table_handles_lost -|name|value| -|----|-----| -|Name|`Performance_schema_table_handles_lost`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_table_handles_lost](https://mariadb.com/kb/en/library/documentation/server-status-variables/#performance_schema_table_handles_lost)| - -## Performance_schema_table_instances_lost -|name|value| -|----|-----| -|Name|`Performance_schema_table_instances_lost`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_table_instances_lost](https://mariadb.com/kb/en/library/documentation/server-status-variables/#performance_schema_table_instances_lost)| - -## Performance_schema_thread_classes_lost -|name|value| -|----|-----| -|Name|`Performance_schema_thread_classes_lost`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_thread_classes_lost](https://mariadb.com/kb/en/library/documentation/server-status-variables/#performance_schema_thread_classes_lost)| - -## Performance_schema_thread_instances_lost -|name|value| -|----|-----| -|Name|`Performance_schema_thread_instances_lost`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_thread_instances_lost](https://mariadb.com/kb/en/library/documentation/server-status-variables/#performance_schema_thread_instances_lost)| - -## Performance_schema_users_lost -|name|value| -|----|-----| -|Name|`Performance_schema_users_lost`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[performance_schema_users_lost](https://mariadb.com/kb/en/library/documentation/server-status-variables/#performance_schema_users_lost)| - -## Prepared_stmt_count -|name|value| -|----|-----| -|Name|`Prepared_stmt_count`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[prepared_stmt_count](https://mariadb.com/kb/en/library/documentation/server-status-variables/#prepared_stmt_count)| - -## Qcache_free_blocks -|name|value| -|----|-----| -|Name|`Qcache_free_blocks`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[qcache_free_blocks](https://mariadb.com/kb/en/library/documentation/server-status-variables/#qcache_free_blocks)| - -## Qcache_free_memory -|name|value| -|----|-----| -|Name|`Qcache_free_memory`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[qcache_free_memory](https://mariadb.com/kb/en/library/documentation/server-status-variables/#qcache_free_memory)| - -## Qcache_hits -|name|value| -|----|-----| -|Name|`Qcache_hits`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[qcache_hits](https://mariadb.com/kb/en/library/documentation/server-status-variables/#qcache_hits)| - -## Qcache_inserts -|name|value| -|----|-----| -|Name|`Qcache_inserts`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[qcache_inserts](https://mariadb.com/kb/en/library/documentation/server-status-variables/#qcache_inserts)| - -## Qcache_lowmem_prunes -|name|value| -|----|-----| -|Name|`Qcache_lowmem_prunes`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[qcache_lowmem_prunes](https://mariadb.com/kb/en/library/documentation/server-status-variables/#qcache_lowmem_prunes)| - -## Qcache_not_cached -|name|value| -|----|-----| -|Name|`Qcache_not_cached`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[qcache_not_cached](https://mariadb.com/kb/en/library/documentation/server-status-variables/#qcache_not_cached)| - -## Qcache_queries_in_cache -|name|value| -|----|-----| -|Name|`Qcache_queries_in_cache`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[qcache_queries_in_cache](https://mariadb.com/kb/en/library/documentation/server-status-variables/#qcache_queries_in_cache)| - -## Qcache_total_blocks -|name|value| -|----|-----| -|Name|`Qcache_total_blocks`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[qcache_total_blocks](https://mariadb.com/kb/en/library/documentation/server-status-variables/#qcache_total_blocks)| - -## Queries -|name|value| -|----|-----| -|Name|`Queries`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[queries](https://mariadb.com/kb/en/library/documentation/server-status-variables/#queries)| - -## Questions -|name|value| -|----|-----| -|Name|`Questions`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[questions](https://mariadb.com/kb/en/library/documentation/server-status-variables/#questions)| - -## Rows_read -|name|value| -|----|-----| -|Name|`Rows_read`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rows_read](https://mariadb.com/kb/en/library/documentation/server-status-variables/#rows_read)| - -## Rows_sent -|name|value| -|----|-----| -|Name|`Rows_sent`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rows_sent](https://mariadb.com/kb/en/library/documentation/server-status-variables/#rows_sent)| - -## Rows_tmp_read -|name|value| -|----|-----| -|Name|`Rows_tmp_read`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rows_tmp_read](https://mariadb.com/kb/en/library/documentation/server-status-variables/#rows_tmp_read)| - -## Select_full_join -|name|value| -|----|-----| -|Name|`Select_full_join`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[select_full_join](https://mariadb.com/kb/en/library/documentation/server-status-variables/#select_full_join)| - -## Select_full_range_join -|name|value| -|----|-----| -|Name|`Select_full_range_join`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[select_full_range_join](https://mariadb.com/kb/en/library/documentation/server-status-variables/#select_full_range_join)| - -## Select_range -|name|value| -|----|-----| -|Name|`Select_range`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[select_range](https://mariadb.com/kb/en/library/documentation/server-status-variables/#select_range)| - -## Select_range_check -|name|value| -|----|-----| -|Name|`Select_range_check`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[select_range_check](https://mariadb.com/kb/en/library/documentation/server-status-variables/#select_range_check)| - -## Select_scan -|name|value| -|----|-----| -|Name|`Select_scan`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[select_scan](https://mariadb.com/kb/en/library/documentation/server-status-variables/#select_scan)| - -## Slow_launch_threads -|name|value| -|----|-----| -|Name|`Slow_launch_threads`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slow_launch_threads](https://mariadb.com/kb/en/library/documentation/server-status-variables/#slow_launch_threads)| - -## Slow_queries -|name|value| -|----|-----| -|Name|`Slow_queries`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slow_queries](https://mariadb.com/kb/en/library/documentation/server-status-variables/#slow_queries)| - -## Sort_merge_passes -|name|value| -|----|-----| -|Name|`Sort_merge_passes`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sort_merge_passes](https://mariadb.com/kb/en/library/documentation/server-status-variables/#sort_merge_passes)| - -## Sort_priority_queue_sorts -|name|value| -|----|-----| -|Name|`Sort_priority_queue_sorts`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sort_priority_queue_sorts](https://mariadb.com/kb/en/library/documentation/server-status-variables/#sort_priority_queue_sorts)| - -## Sort_range -|name|value| -|----|-----| -|Name|`Sort_range`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sort_range](https://mariadb.com/kb/en/library/documentation/server-status-variables/#sort_range)| - -## Sort_rows -|name|value| -|----|-----| -|Name|`Sort_rows`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sort_rows](https://mariadb.com/kb/en/library/documentation/server-status-variables/#sort_rows)| - -## Sort_scan -|name|value| -|----|-----| -|Name|`Sort_scan`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sort_scan](https://mariadb.com/kb/en/library/documentation/server-status-variables/#sort_scan)| - -## Subquery_cache_hit -|name|value| -|----|-----| -|Name|`Subquery_cache_hit`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[subquery_cache_hit](https://mariadb.com/kb/en/library/documentation/server-status-variables/#subquery_cache_hit)| - -## Subquery_cache_miss -|name|value| -|----|-----| -|Name|`Subquery_cache_miss`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[subquery_cache_miss](https://mariadb.com/kb/en/library/documentation/server-status-variables/#subquery_cache_miss)| - -## Syncs -|name|value| -|----|-----| -|Name|`Syncs`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[syncs](https://mariadb.com/kb/en/library/documentation/server-status-variables/#syncs)| - -## Table_locks_immediate -|name|value| -|----|-----| -|Name|`Table_locks_immediate`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[table_locks_immediate](https://mariadb.com/kb/en/library/documentation/server-status-variables/#table_locks_immediate)| - -## Table_locks_waited -|name|value| -|----|-----| -|Name|`Table_locks_waited`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[table_locks_waited](https://mariadb.com/kb/en/library/documentation/server-status-variables/#table_locks_waited)| - -## Table_open_cache_active_instances -|name|value| -|----|-----| -|Name|`Table_open_cache_active_instances`| -|Type of variable|`integer`| -|Scope|``| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[table_open_cache_active_instances](https://mariadb.com/kb/en/library/documentation/server-status-variables/#table_open_cache_active_instances)| - -## Table_open_cache_hits -|name|value| -|----|-----| -|Name|`Table_open_cache_hits`| -|Type of variable|`integer`| -|Scope|``| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[table_open_cache_hits](https://mariadb.com/kb/en/library/documentation/server-status-variables/#table_open_cache_hits)| - -## Table_open_cache_misses -|name|value| -|----|-----| -|Name|`Table_open_cache_misses`| -|Type of variable|`integer`| -|Scope|``| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[table_open_cache_misses](https://mariadb.com/kb/en/library/documentation/server-status-variables/#table_open_cache_misses)| - -## Table_open_cache_overflows -|name|value| -|----|-----| -|Name|`Table_open_cache_overflows`| -|Type of variable|`integer`| -|Scope|``| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[table_open_cache_overflows](https://mariadb.com/kb/en/library/documentation/server-status-variables/#table_open_cache_overflows)| - -## Tc_log_max_pages_used -|name|value| -|----|-----| -|Name|`Tc_log_max_pages_used`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tc_log_max_pages_used](https://mariadb.com/kb/en/library/documentation/server-status-variables/#tc_log_max_pages_used)| - -## Tc_log_page_size -|name|value| -|----|-----| -|Name|`Tc_log_page_size`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tc_log_page_size](https://mariadb.com/kb/en/library/documentation/server-status-variables/#tc_log_page_size)| - -## Tc_log_page_waits -|name|value| -|----|-----| -|Name|`Tc_log_page_waits`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tc_log_page_waits](https://mariadb.com/kb/en/library/documentation/server-status-variables/#tc_log_page_waits)| - -## Threads_cached -|name|value| -|----|-----| -|Name|`Threads_cached`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[threads_cached](https://mariadb.com/kb/en/library/documentation/server-status-variables/#threads_cached)| - -## Threads_connected -|name|value| -|----|-----| -|Name|`Threads_connected`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[threads_connected](https://mariadb.com/kb/en/library/documentation/server-status-variables/#threads_connected)| - -## Threads_created -|name|value| -|----|-----| -|Name|`Threads_created`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[threads_created](https://mariadb.com/kb/en/library/documentation/server-status-variables/#threads_created)| - -## Threads_running -|name|value| -|----|-----| -|Name|`Threads_running`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[threads_running](https://mariadb.com/kb/en/library/documentation/server-status-variables/#threads_running)| - -## Update_scan -|name|value| -|----|-----| -|Name|`Update_scan`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[update_scan](https://mariadb.com/kb/en/library/documentation/server-status-variables/#update_scan)| - -## Uptime -|name|value| -|----|-----| -|Name|`Uptime`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[uptime](https://mariadb.com/kb/en/library/documentation/server-status-variables/#uptime)| - -## Uptime_since_flush_status -|name|value| -|----|-----| -|Name|`Uptime_since_flush_status`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[uptime_since_flush_status](https://mariadb.com/kb/en/library/documentation/server-status-variables/#uptime_since_flush_status)| - -## alter_algorithm -|name|value| -|----|-----| -|Name|`alter_algorithm`| -|Command line|`--alter-algorithm=default`| -|Scope|`global`, `session`| -|Default value|`DEFAULT`| -|Dynamic|`true`| -|Valid value(s)|`DEFAULT`, `COPY`, `INPLACE`, `NOCOPY`, `INSTANT`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[alter_algorithm](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#alter_algorithm)| - -## analyze_sample_percentage -|name|value| -|----|-----| -|Name|`analyze_sample_percentage`| -|Command line|`--analyze-sample-percentage=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`100.000000`| -|Dynamic|`true`| -|Range|from: `0` to: `100`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[analyze_sample_percentage](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#analyze_sample_percentage)| - -## autocommit -|name|value| -|----|-----| -|Name|`autocommit`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`1`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[autocommit](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#autocommit)| -|dev.mysql.com|[sysvar_autocommit](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_autocommit)| - -## automatic_sp_privileges -|name|value| -|----|-----| -|Name|`automatic_sp_privileges`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[automatic_sp_privileges](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#automatic_sp_privileges)| -|dev.mysql.com|[sysvar_automatic_sp_privileges](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_automatic_sp_privileges)| - -## back_log -|name|value| -|----|-----| -|Name|`back_log`| -|Command line|`--back-log=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`(-1 signifies autosizing; do not use -1)`| -|Dynamic|`false`| -|Range|from: `1` to: `65535`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[back_log](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#back_log)| -|dev.mysql.com|[sysvar_back_log](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_back_log)| - -## basedir -|name|value| -|----|-----| -|Name|`basedir`| -|Command line|`--basedir=path or -b path`| -|Type of variable|`directory name`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[basedir](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#basedir)| -|dev.mysql.com|[sysvar_basedir](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#sysvar_basedir)| -|dev.mysql.com|[sysvar_basedir](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_basedir)| - -## big_tables -|name|value| -|----|-----| -|Name|`big_tables`| -|Command line|`--big-tables[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[big_tables](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#big_tables)| -|dev.mysql.com|[sysvar_big_tables](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_big_tables)| - -## bind_address -|name|value| -|----|-----| -|Name|`bind_address`| -|Command line|`--bind-address=addr`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`*`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[bind_address](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#bind_address)| -|dev.mysql.com|[sysvar_bind_address](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_bind_address)| - -## bulk_insert_buffer_size -|name|value| -|----|-----| -|Name|`bulk_insert_buffer_size`| -|Command line|`--bulk-insert-buffer-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`8388608`| -|Dynamic|`true`| -|Range|from: `0`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[bulk_insert_buffer_size](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#bulk_insert_buffer_size)| -|dev.mysql.com|[sysvar_bulk_insert_buffer_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_bulk_insert_buffer_size)| - -## character_set_client -|name|value| -|----|-----| -|Name|`character_set_client`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[character_set_client](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#character_set_client)| -|dev.mysql.com|[sysvar_character_set_client](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_character_set_client)| - -## character_set_connection -|name|value| -|----|-----| -|Name|`character_set_connection`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[character_set_connection](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#character_set_connection)| -|dev.mysql.com|[sysvar_character_set_connection](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_character_set_connection)| - -## character_set_database -|name|value| -|----|-----| -|Name|`character_set_database`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[character_set_database](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#character_set_database)| -|dev.mysql.com|[sysvar_character_set_database](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_character_set_database)| - -## character_set_filesystem -|name|value| -|----|-----| -|Name|`character_set_filesystem`| -|Command line|`--character-set-filesystem=name`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Default value|`binary`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[character_set_filesystem](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#character_set_filesystem)| -|dev.mysql.com|[sysvar_character_set_filesystem](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_character_set_filesystem)| - -## character_set_results -|name|value| -|----|-----| -|Name|`character_set_results`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[character_set_results](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#character_set_results)| -|dev.mysql.com|[sysvar_character_set_results](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_character_set_results)| - -## character_set_server -|name|value| -|----|-----| -|Name|`character_set_server`| -|Command line|`--character-set-server=name`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[character_set_server](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#character_set_server)| -|dev.mysql.com|[sysvar_character_set_server](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_character_set_server)| - -## character_set_system -|name|value| -|----|-----| -|Name|`character_set_system`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`utf8`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[character_set_system](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#character_set_system)| -|dev.mysql.com|[sysvar_character_set_system](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_character_set_system)| - -## character_sets_dir -|name|value| -|----|-----| -|Name|`character_sets_dir`| -|Command line|`--character-sets-dir=path`| -|Type of variable|`directory name`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[character_sets_dir](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#character_sets_dir)| -|dev.mysql.com|[sysvar_character_sets_dir](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_character_sets_dir)| - -## check_constraint_checks -|name|value| -|----|-----| -|Name|`check_constraint_checks`| -|Command line|`--check-constraint-checks=[0|1]`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[check_constraint_checks](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#check_constraint_checks)| - -## collation_connection -|name|value| -|----|-----| -|Name|`collation_connection`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[collation_connection](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#collation_connection)| -|dev.mysql.com|[sysvar_collation_connection](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_collation_connection)| - -## collation_database -|name|value| -|----|-----| -|Name|`collation_database`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[collation_database](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#collation_database)| -|dev.mysql.com|[sysvar_collation_database](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_collation_database)| - -## collation_server -|name|value| -|----|-----| -|Name|`collation_server`| -|Command line|`--collation-server=name`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[collation_server](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#collation_server)| -|dev.mysql.com|[sysvar_collation_server](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_collation_server)| - -## completion_type -|name|value| -|----|-----| -|Name|`completion_type`| -|Command line|`--completion-type=name`| -|Type of variable|`enumeration`| -|Scope|`global`, `session`| -|Default value|`NO_CHAIN`| -|Dynamic|`true`| -|Valid value(s)|`NO_CHAIN`, `CHAIN`, `RELEASE`, `0`, `1`, `2`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[completion_type](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#completion_type)| -|dev.mysql.com|[sysvar_completion_type](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_completion_type)| - -## concurrent_insert -|name|value| -|----|-----| -|Name|`concurrent_insert`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`AUTO`| -|Dynamic|`true`| -|Valid value(s)|`NEVER`, `AUTO`, `ALWAYS`, `0`, `1`, `2`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[concurrent_insert](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#concurrent_insert)| -|dev.mysql.com|[sysvar_concurrent_insert](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_concurrent_insert)| - -## connect_timeout -|name|value| -|----|-----| -|Name|`connect_timeout`| -|Command line|`--connect-timeout=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`10`| -|Dynamic|`true`| -|Range|from: `2` to: `31536000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[connect_timeout](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#connect_timeout)| -|dev.mysql.com|[sysvar_connect_timeout](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_connect_timeout)| - -## core_file -|name|value| -|----|-----| -|Name|`core_file`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[core_file](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#core_file)| -|dev.mysql.com|[option_mysqld_core-file](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_core-file)| -|dev.mysql.com|[sysvar_core_file](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_core_file)| - -## datadir -|name|value| -|----|-----| -|Name|`datadir`| -|Command line|`--datadir=path or -h path`| -|Type of variable|`directory name`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[datadir](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#datadir)| -|dev.mysql.com|[sysvar_datadir](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#sysvar_datadir)| -|dev.mysql.com|[sysvar_datadir](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_datadir)| - -## date_format -|name|value| -|----|-----| -|Name|`date_format`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[date_format](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#date_format)| - -## datetime_format -|name|value| -|----|-----| -|Name|`datetime_format`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[datetime_format](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#datetime_format)| - -## debug -|name|value| -|----|-----| -|Name|`debug`| -|Command line|`-#, --debug[=debug_options]`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[debug](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#debug)| -|dev.mysql.com|[option_mysqld_debug](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_debug)| -|dev.mysql.com|[sysvar_debug](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_debug)| - -## debug_no_thread_alarm -|name|value| -|----|-----| -|Name|`debug_no_thread_alarm`| -|Command line|`--debug-no-thead-alarm=#`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[debug_no_thread_alarm](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#debug_no_thread_alarm)| - -## debug_sync -|name|value| -|----|-----| -|Name|`debug_sync`| -|Type of variable|`string`| -|Scope|`session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[debug_sync](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#debug_sync)| -|dev.mysql.com|[sysvar_debug_sync](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_debug_sync)| - -## default_password_lifetime -|name|value| -|----|-----| -|Name|`default_password_lifetime`| -|Command line|`--default-password-lifetime=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[default_password_lifetime](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#default_password_lifetime)| -|dev.mysql.com|[sysvar_default_password_lifetime](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_password_lifetime)| - -## default_regex_flags -|name|value| -|----|-----| -|Name|`default_regex_flags`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[default_regex_flags](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#default_regex_flags)| - -## default_storage_engine -|name|value| -|----|-----| -|Name|`default_storage_engine`| -|Command line|`--default-storage-engine=name`| -|Type of variable|`enumeration`| -|Scope|`global`, `session`| -|Default value|`InnoDB`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[default_storage_engine](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#default_storage_engine)| -|dev.mysql.com|[sysvar_default_storage_engine](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_storage_engine)| - -## default_table_type -|name|value| -|----|-----| -|Name|`default_table_type`| -|Command line|`--default-table-type=name`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[default_table_type](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#default_table_type)| - -## default_tmp_storage_engine -|name|value| -|----|-----| -|Name|`default_tmp_storage_engine`| -|Command line|`--default-tmp-storage-engine=name`| -|Type of variable|`enumeration`| -|Scope|`global`, `session`| -|Default value|`InnoDB`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[default_tmp_storage_engine](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#default_tmp_storage_engine)| -|dev.mysql.com|[sysvar_default_tmp_storage_engine](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_tmp_storage_engine)| - -## default_week_format -|name|value| -|----|-----| -|Name|`default_week_format`| -|Command line|`--default-week-format=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `7`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[default_week_format](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#default_week_format)| -|dev.mysql.com|[sysvar_default_week_format](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_week_format)| - -## delay_key_write -|name|value| -|----|-----| -|Name|`delay_key_write`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`true`| -|Valid value(s)|`ON`, `OFF`, `ALL`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[delay_key_write](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#delay_key_write)| -|dev.mysql.com|[sysvar_delay_key_write](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_delay_key_write)| - -## delayed_insert_limit -|name|value| -|----|-----| -|Name|`delayed_insert_limit`| -|Command line|`--delayed-insert-limit=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`100`| -|Dynamic|`true`| -|Range|from: `1` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[delayed_insert_limit](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#delayed_insert_limit)| -|dev.mysql.com|[sysvar_delayed_insert_limit](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_delayed_insert_limit)| - -## delayed_insert_timeout -|name|value| -|----|-----| -|Name|`delayed_insert_timeout`| -|Command line|`--delayed-insert-timeout=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`300`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[delayed_insert_timeout](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#delayed_insert_timeout)| -|dev.mysql.com|[sysvar_delayed_insert_timeout](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_delayed_insert_timeout)| - -## delayed_queue_size -|name|value| -|----|-----| -|Name|`delayed_queue_size`| -|Command line|`--delayed-queue-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1000`| -|Dynamic|`true`| -|Range|from: `1` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[delayed_queue_size](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#delayed_queue_size)| -|dev.mysql.com|[sysvar_delayed_queue_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_delayed_queue_size)| - -## disconnect_on_expired_password -|name|value| -|----|-----| -|Name|`disconnect_on_expired_password`| -|Type of variable|`boolean`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[disconnect_on_expired_password](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#disconnect_on_expired_password)| -|dev.mysql.com|[sysvar_disconnect_on_expired_password](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_disconnect_on_expired_password)| - -## div_precision_increment -|name|value| -|----|-----| -|Name|`div_precision_increment`| -|Command line|`--div-precision-increment=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`4`| -|Dynamic|`true`| -|Range|from: `0` to: `30`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[div_precision_increment](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#div_precision_increment)| -|dev.mysql.com|[sysvar_div_precision_increment](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_div_precision_increment)| - -## encrypt_tmp_disk_tables -|name|value| -|----|-----| -|Name|`encrypt_tmp_disk_tables`| -|Command line|`--encrypt-tmp-disk-tables[={0|1}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[encrypt_tmp_disk_tables](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#encrypt_tmp_disk_tables)| - -## encrypt_tmp_files -|name|value| -|----|-----| -|Name|`encrypt_tmp_files`| -|Command line|`--encrypt-tmp-files[={0|1}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF (>= MariaDB 10.1.7), ON (<= MariaDB 10.1.6)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[encrypt_tmp_files](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#encrypt_tmp_files)| - -## encryption_algorithm -|name|value| -|----|-----| -|Name|`encryption_algorithm`| -|Command line|`--encryption-algorithm=value`| -|Scope|`global`| -|Default value|`none`| -|Dynamic|`false`| -|Valid value(s)|`none`, `aes_ecb`, `aes_cbc`, `aes_ctr`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[encryption_algorithm](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#encryption_algorithm)| - -## enforce_storage_engine -|name|value| -|----|-----| -|Name|`enforce_storage_engine`| -|Type of variable|`string`| -|Scope|`session`| -|Default value|`none`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[enforce_storage_engine](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#enforce_storage_engine)| - -## engine_condition_pushdown -|name|value| -|----|-----| -|Name|`engine_condition_pushdown`| -|Command line|`--engine-condition-pushdown`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF (MariaDB 5.5), ON (<= MariaDB 5.3)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[engine_condition_pushdown](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#engine_condition_pushdown)| - -## eq_range_index_dive_limit -|name|value| -|----|-----| -|Name|`eq_range_index_dive_limit`| -|Command line|`--eq-range-index-dive-limit=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`200`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[eq_range_index_dive_limit](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#eq_range_index_dive_limit)| -|dev.mysql.com|[sysvar_eq_range_index_dive_limit](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_eq_range_index_dive_limit)| - -## error_count -|name|value| -|----|-----| -|Name|`error_count`| -|Type of variable|`integer`| -|Scope|`session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[error_count](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#error_count)| - -## event_scheduler -|name|value| -|----|-----| -|Name|`event_scheduler`| -|Command line|`--event-scheduler[=value]`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Dynamic|`true`| -|Valid value(s)|`ON`, `1`, `OFF`, `0`, `DISABLED`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[event_scheduler](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#event_scheduler)| -|dev.mysql.com|[sysvar_event_scheduler](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_event_scheduler)| - -## expensive_subquery_limit -|name|value| -|----|-----| -|Name|`expensive_subquery_limit`| -|Command line|`--expensive-subquery-limit=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`100`| -|Dynamic|`true`| -|Range|from: `0` to: `upwards`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[expensive_subquery_limit](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#expensive_subquery_limit)| - -## explicit_defaults_for_timestamp -|name|value| -|----|-----| -|Name|`explicit_defaults_for_timestamp`| -|Type of variable|`boolean`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[explicit_defaults_for_timestamp](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#explicit_defaults_for_timestamp)| -|dev.mysql.com|[sysvar_explicit_defaults_for_timestamp](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_explicit_defaults_for_timestamp)| - -## external_user -|name|value| -|----|-----| -|Name|`external_user`| -|Type of variable|`string`| -|Scope|`session`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[external_user](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#external_user)| -|dev.mysql.com|[sysvar_external_user](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_external_user)| - -## flush -|name|value| -|----|-----| -|Name|`flush`| -|Command line|`--flush[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[flush](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#flush)| -|dev.mysql.com|[option_mysqld_flush](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_flush)| -|dev.mysql.com|[sysvar_flush](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_flush)| - -## flush_time -|name|value| -|----|-----| -|Name|`flush_time`| -|Command line|`--flush-time=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[flush_time](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#flush_time)| -|dev.mysql.com|[sysvar_flush_time](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_flush_time)| - -## foreign_key_checks -|name|value| -|----|-----| -|Name|`foreign_key_checks`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`1`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[foreign_key_checks](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#foreign_key_checks)| -|dev.mysql.com|[sysvar_foreign_key_checks](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_foreign_key_checks)| - -## ft_boolean_syntax -|name|value| -|----|-----| -|Name|`ft_boolean_syntax`| -|Command line|`--ft-boolean-syntax=name`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`+ -><()~*:""&|`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ft_boolean_syntax](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#ft_boolean_syntax)| -|dev.mysql.com|[sysvar_ft_boolean_syntax](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_ft_boolean_syntax)| - -## ft_max_word_len -|name|value| -|----|-----| -|Name|`ft_max_word_len`| -|Command line|`--ft-max-word-len=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| -|Range|from: `10`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ft_max_word_len](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#ft_max_word_len)| -|dev.mysql.com|[sysvar_ft_max_word_len](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_ft_max_word_len)| - -## ft_min_word_len -|name|value| -|----|-----| -|Name|`ft_min_word_len`| -|Command line|`--ft-min-word-len=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`4`| -|Dynamic|`false`| -|Range|from: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ft_min_word_len](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#ft_min_word_len)| -|dev.mysql.com|[sysvar_ft_min_word_len](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_ft_min_word_len)| - -## ft_query_expansion_limit -|name|value| -|----|-----| -|Name|`ft_query_expansion_limit`| -|Command line|`--ft-query-expansion-limit=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`20`| -|Dynamic|`false`| -|Range|from: `0` to: `1000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ft_query_expansion_limit](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#ft_query_expansion_limit)| -|dev.mysql.com|[sysvar_ft_query_expansion_limit](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_ft_query_expansion_limit)| - -## ft_stopword_file -|name|value| -|----|-----| -|Name|`ft_stopword_file`| -|Command line|`--ft-stopword-file=file_name`| -|Type of variable|`file name`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ft_stopword_file](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#ft_stopword_file)| -|dev.mysql.com|[sysvar_ft_stopword_file](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_ft_stopword_file)| - -## general_log -|name|value| -|----|-----| -|Name|`general_log`| -|Command line|`--general-log[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[general_log](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#general_log)| -|dev.mysql.com|[sysvar_general_log](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_general_log)| - -## general_log_file -|name|value| -|----|-----| -|Name|`general_log_file`| -|Command line|`--general-log-file=file_name`| -|Type of variable|`file name`| -|Scope|`global`| -|Default value|`host_name.log`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[general_log_file](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#general_log_file)| -|dev.mysql.com|[sysvar_general_log_file](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_general_log_file)| - -## group_concat_max_len -|name|value| -|----|-----| -|Name|`group_concat_max_len`| -|Command line|`--group-concat-max-len=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `4`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[group_concat_max_len](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#group_concat_max_len)| -|dev.mysql.com|[sysvar_group_concat_max_len](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_group_concat_max_len)| - -## have_compress -|name|value| -|----|-----| -|Name|`have_compress`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[have_compress](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#have_compress)| - -## have_crypt -|name|value| -|----|-----| -|Name|`have_crypt`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[have_crypt](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#have_crypt)| - -## have_csv -|name|value| -|----|-----| -|Name|`have_csv`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[have_csv](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#have_csv)| - -## have_dynamic_loading -|name|value| -|----|-----| -|Name|`have_dynamic_loading`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[have_dynamic_loading](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#have_dynamic_loading)| - -## have_geometry -|name|value| -|----|-----| -|Name|`have_geometry`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[have_geometry](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#have_geometry)| - -## have_ndbcluster -|name|value| -|----|-----| -|Name|`have_ndbcluster`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[have_ndbcluster](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#have_ndbcluster)| - -## have_partitioning -|name|value| -|----|-----| -|Name|`have_partitioning`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[have_partitioning](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#have_partitioning)| - -## have_profiling -|name|value| -|----|-----| -|Name|`have_profiling`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[have_profiling](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#have_profiling)| - -## have_query_cache -|name|value| -|----|-----| -|Name|`have_query_cache`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[have_query_cache](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#have_query_cache)| - -## have_rtree_keys -|name|value| -|----|-----| -|Name|`have_rtree_keys`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[have_rtree_keys](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#have_rtree_keys)| - -## have_symlink -|name|value| -|----|-----| -|Name|`have_symlink`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[have_symlink](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#have_symlink)| - -## histogram_size -|name|value| -|----|-----| -|Name|`histogram_size`| -|Command line|`--histogram-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`254 (>= MariaDB 10.4.3), 0 (<= MariaDB 10.4.2)`| -|Dynamic|`true`| -|Range|from: `0` to: `255`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[histogram_size](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#histogram_size)| - -## histogram_type -|name|value| -|----|-----| -|Name|`histogram_type`| -|Command line|`--histogram-type=value`| -|Type of variable|`enumeration`| -|Scope|`global`, `session`| -|Default value|`DOUBLE_PREC_HB (>= MariaDB 10.4.3), SINGLE_PREC_HB(<= MariaDB 10.4.2)`| -|Dynamic|`true`| -|Valid value(s)|`SINGLE_PREC_HB`, `DOUBLE_PREC_HB`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[histogram_type](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#histogram_type)| - -## host_cache_size -|name|value| -|----|-----| -|Name|`host_cache_size`| -|Command line|`--host-cache-size=#.`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`true`| -|Range|from: `0` to: `65536`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[host_cache_size](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#host_cache_size)| -|dev.mysql.com|[sysvar_host_cache_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_host_cache_size)| - -## hostname -|name|value| -|----|-----| -|Name|`hostname`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[hostname](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#hostname)| -|dev.mysql.com|[sysvar_hostname](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_hostname)| - -## identity -|name|value| -|----|-----| -|Name|`identity`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[identity](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#identity)| - -## idle_readonly_transaction_timeout -|name|value| -|----|-----| -|Name|`idle_readonly_transaction_timeout`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `31536000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[idle_readonly_transaction_timeout](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#idle_readonly_transaction_timeout)| - -## idle_transaction_timeout -|name|value| -|----|-----| -|Name|`idle_transaction_timeout`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `31536000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[idle_transaction_timeout](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#idle_transaction_timeout)| - -## idle_write_transaction_timeout -|name|value| -|----|-----| -|Name|`idle_write_transaction_timeout`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `31536000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[idle_write_transaction_timeout](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#idle_write_transaction_timeout)| - -## ignore_db_dirs -|name|value| -|----|-----| -|Name|`ignore_db_dirs`| -|Command line|`--ignore-db-dirs=dir.`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ignore_db_dirs](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#ignore_db_dirs)| - -## in_transaction -|name|value| -|----|-----| -|Name|`in_transaction`| -|Type of variable|`boolean`| -|Scope|`session`| -|Default value|`0`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[in_transaction](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#in_transaction)| - -## init_connect -|name|value| -|----|-----| -|Name|`init_connect`| -|Command line|`--init-connect=name`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[init_connect](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#init_connect)| -|dev.mysql.com|[sysvar_init_connect](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_init_connect)| - -## init_file -|name|value| -|----|-----| -|Name|`init_file`| -|Command line|`--init-file=file_name`| -|Type of variable|`file name`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[init_file](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#init_file)| -|dev.mysql.com|[sysvar_init_file](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_init_file)| - -## insert_id -|name|value| -|----|-----| -|Name|`insert_id`| -|Type of variable|`integer`| -|Scope|`session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[insert_id](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#insert_id)| - -## interactive_timeout -|name|value| -|----|-----| -|Name|`interactive_timeout`| -|Command line|`--interactive-timeout=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`28800`| -|Dynamic|`true`| -|Range|from: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[interactive_timeout](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#interactive_timeout)| -|dev.mysql.com|[sysvar_interactive_timeout](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_interactive_timeout)| - -## join_buffer_size -|name|value| -|----|-----| -|Name|`join_buffer_size`| -|Command line|`--join-buffer-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`262144`| -|Dynamic|`true`| -|Range|from: `128`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[join_buffer_size](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#join_buffer_size)| -|dev.mysql.com|[sysvar_join_buffer_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_join_buffer_size)| - -## join_buffer_space_limit -|name|value| -|----|-----| -|Name|`join_buffer_space_limit`| -|Command line|`--join-buffer-space-limit=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`2097152`| -|Dynamic|`true`| -|Range|from: `2048` to: `99999999997952`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[join_buffer_space_limit](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#join_buffer_space_limit)| - -## join_cache_level -|name|value| -|----|-----| -|Name|`join_cache_level`| -|Command line|`--join-cache-level=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`2`| -|Dynamic|`true`| -|Range|from: `0` to: `8`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[join_cache_level](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#join_cache_level)| - -## keep_files_on_create -|name|value| -|----|-----| -|Name|`keep_files_on_create`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[keep_files_on_create](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#keep_files_on_create)| -|dev.mysql.com|[sysvar_keep_files_on_create](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_keep_files_on_create)| - -## large_files_support -|name|value| -|----|-----| -|Name|`large_files_support`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[large_files_support](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#large_files_support)| -|dev.mysql.com|[sysvar_large_files_support](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_large_files_support)| - -## large_page_size -|name|value| -|----|-----| -|Name|`large_page_size`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[large_page_size](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#large_page_size)| -|dev.mysql.com|[sysvar_large_page_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_large_page_size)| - -## large_pages -|name|value| -|----|-----| -|Name|`large_pages`| -|Command line|`--large-pages[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[large_pages](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#large_pages)| -|dev.mysql.com|[option_mysqld_large-pages](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_large-pages)| -|dev.mysql.com|[sysvar_large_pages](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_large_pages)| - -## last_insert_id -|name|value| -|----|-----| -|Name|`last_insert_id`| -|Type of variable|`integer`| -|Scope|`session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[last_insert_id](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#last_insert_id)| - -## lc_messages -|name|value| -|----|-----| -|Name|`lc_messages`| -|Command line|`--lc-messages=name`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Default value|`en_US`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[lc_messages](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#lc_messages)| -|dev.mysql.com|[option_mysqld_lc-messages](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_lc-messages)| -|dev.mysql.com|[sysvar_lc_messages](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_lc_messages)| - -## lc_messages_dir -|name|value| -|----|-----| -|Name|`lc_messages_dir`| -|Command line|`--lc-messages-dir=path`| -|Type of variable|`directory name`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[lc_messages_dir](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#lc_messages_dir)| -|dev.mysql.com|[option_mysqld_lc-messages-dir](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_lc-messages-dir)| -|dev.mysql.com|[sysvar_lc_messages_dir](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_lc_messages_dir)| - -## lc_time_names -|name|value| -|----|-----| -|Name|`lc_time_names`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[lc_time_names](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#lc_time_names)| -|dev.mysql.com|[sysvar_lc_time_names](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_lc_time_names)| - -## license -|name|value| -|----|-----| -|Name|`license`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`GPL`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[license](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#license)| -|dev.mysql.com|[sysvar_license](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_license)| - -## local_infile -|name|value| -|----|-----| -|Name|`local_infile`| -|Type of variable|`boolean`| -|Scope|`global`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[local_infile](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#local_infile)| -|dev.mysql.com|[sysvar_local_infile](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_local_infile)| - -## lock_wait_timeout -|name|value| -|----|-----| -|Name|`lock_wait_timeout`| -|Command line|`--lock-wait-timeout=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[lock_wait_timeout](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#lock_wait_timeout)| -|dev.mysql.com|[sysvar_lock_wait_timeout](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_lock_wait_timeout)| - -## locked_in_memory -|name|value| -|----|-----| -|Name|`locked_in_memory`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[locked_in_memory](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#locked_in_memory)| -|dev.mysql.com|[sysvar_locked_in_memory](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_locked_in_memory)| - -## log -|name|value| -|----|-----| -|Name|`log`| -|Command line|`-l [filename] or --log[=filename]`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[log](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#log)| - -## log_disabled_statements -|name|value| -|----|-----| -|Name|`log_disabled_statements`| -|Command line|`--log-disabled_statements=value`| -|Type of variable|`set`| -|Scope|`global`, `session`| -|Default value|`(empty string)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[log_disabled_statements](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#log_disabled_statements)| - -## log_error -|name|value| -|----|-----| -|Name|`log_error`| -|Command line|`--log-error[=file_name]`| -|Type of variable|`file name`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[log_error](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#log_error)| -|dev.mysql.com|[option_mysqld_log-error](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_log-error)| -|dev.mysql.com|[sysvar_log_error](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_log_error)| - -## log_output -|name|value| -|----|-----| -|Name|`log_output`| -|Command line|`--log-output=name`| -|Type of variable|`set`| -|Scope|`global`| -|Default value|`FILE`| -|Dynamic|`true`| -|Valid value(s)|`TABLE`, `FILE`, `NONE`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[log_output](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#log_output)| -|dev.mysql.com|[sysvar_log_output](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_log_output)| - -## log_queries_not_using_indexes -|name|value| -|----|-----| -|Name|`log_queries_not_using_indexes`| -|Command line|`--log-queries-not-using-indexes[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[log_queries_not_using_indexes](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#log_queries_not_using_indexes)| -|dev.mysql.com|[sysvar_log_queries_not_using_indexes](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_log_queries_not_using_indexes)| - -## log_slow_admin_statements -|name|value| -|----|-----| -|Name|`log_slow_admin_statements`| -|Command line|`--log-slow-admin-statements[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[log_slow_admin_statements](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#log_slow_admin_statements)| -|dev.mysql.com|[sysvar_log_slow_admin_statements](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_log_slow_admin_statements)| - -## log_slow_disabled_statements -|name|value| -|----|-----| -|Name|`log_slow_disabled_statements`| -|Command line|`--log-slow-disabled_statements=value`| -|Type of variable|`set`| -|Scope|`global`, `session`| -|Default value|`sp`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[log_slow_disabled_statements](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#log_slow_disabled_statements)| - -## log_slow_filter -|name|value| -|----|-----| -|Name|`log_slow_filter`| -|Command line|`log-slow-filter=value1[,value2...]`| -|Type of variable|`enumeration`| -|Scope|`global`, `session`| -|Default value|`admin, filesort, filesort_on_disk, full_join, full_scan, query_cache, query_cache_miss, tmp_table, tmp_table_on_disk (<= MariaDB 10.3.0), admin, filesort, filesort_on_disk, filesort_priority_queue, full_join, full_scan, query_cache, query_cache_miss, tmp_table, tmp_table_on_disk (>= MariaDB 10.3.1)`| -|Dynamic|`true`| -|Valid value(s)|`admin`, `filesort`, `filesort_on_disk`, `filesort_priority_queue`, `full_join`, `full_scan`, `query_cache`, `query_cache_miss`, `tmp_table`, `tmp_table_on_disk`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[log_slow_filter](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#log_slow_filter)| - -## log_slow_queries -|name|value| -|----|-----| -|Name|`log_slow_queries`| -|Command line|`--log-slow-queries[=name]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[log_slow_queries](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#log_slow_queries)| - -## log_slow_rate_limit -|name|value| -|----|-----| -|Name|`log_slow_rate_limit`| -|Command line|`log-slow-rate-limit=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`1`| -|Dynamic|`true`| -|Range|from: `1` to: `upwards`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[log_slow_rate_limit](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#log_slow_rate_limit)| - -## log_slow_verbosity -|name|value| -|----|-----| -|Name|`log_slow_verbosity`| -|Command line|`log-slow-verbosity=value1[,value2...]`| -|Type of variable|`enumeration`| -|Scope|`global`, `session`| -|Default value|`(Empty)`| -|Dynamic|`true`| -|Valid value(s)|`query_plan`, `innodb`, `explain`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[log_slow_verbosity](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#log_slow_verbosity)| - -## log_tc_size -|name|value| -|----|-----| -|Name|`log_tc_size`| -|Command line|`--log-tc-size=#`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[log_tc_size](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#log_tc_size)| -|dev.mysql.com|[option_mysqld_log-tc-size](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_log-tc-size)| - -## log_warnings -|name|value| -|----|-----| -|Name|`log_warnings`| -|Command line|`--log-warnings[=#]`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`2`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[log_warnings](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#log_warnings)| -|dev.mysql.com|[option_mysqld_log-warnings](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_log-warnings)| -|dev.mysql.com|[sysvar_log_warnings](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_log_warnings)| - -## long_query_time -|name|value| -|----|-----| -|Name|`long_query_time`| -|Command line|`--long-query-time=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`10`| -|Dynamic|`true`| -|Range|from: `0` to: `upwards`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[long_query_time](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#long_query_time)| -|dev.mysql.com|[sysvar_long_query_time](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_long_query_time)| - -## low_priority_updates -|name|value| -|----|-----| -|Name|`low_priority_updates`| -|Command line|`--low-priority-updates[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[low_priority_updates](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#low_priority_updates)| -|dev.mysql.com|[sysvar_low_priority_updates](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_low_priority_updates)| - -## lower_case_file_system -|name|value| -|----|-----| -|Name|`lower_case_file_system`| -|Type of variable|`boolean`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[lower_case_file_system](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#lower_case_file_system)| -|dev.mysql.com|[sysvar_lower_case_file_system](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_lower_case_file_system)| - -## lower_case_table_names -|name|value| -|----|-----| -|Name|`lower_case_table_names`| -|Command line|`--lower-case-table-names[=#]`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`false`| -|Range|from: `0` to: `2`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[lower_case_table_names](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#lower_case_table_names)| -|dev.mysql.com|[sysvar_lower_case_table_names](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_lower_case_table_names)| - -## max_allowed_packet -|name|value| -|----|-----| -|Name|`max_allowed_packet`| -|Command line|`--max-allowed-packet=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Range|from: `1024` to: `1073741824`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[max_allowed_packet](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#max_allowed_packet)| -|dev.mysql.com|[sysvar_max_allowed_packet](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_allowed_packet)| - -## max_connect_errors -|name|value| -|----|-----| -|Name|`max_connect_errors`| -|Command line|`--max-connect-errors=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`100`| -|Dynamic|`true`| -|Range|from: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[max_connect_errors](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#max_connect_errors)| -|dev.mysql.com|[sysvar_max_connect_errors](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_connect_errors)| - -## max_connections -|name|value| -|----|-----| -|Name|`max_connections`| -|Command line|`--max-connections=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`151`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[max_connections](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#max_connections)| -|dev.mysql.com|[sysvar_max_connections](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_connections)| - -## max_delayed_threads -|name|value| -|----|-----| -|Name|`max_delayed_threads`| -|Command line|`--max-delayed-threads=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`20`| -|Dynamic|`true`| -|Range|from: `0` to: `16384`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[max_delayed_threads](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#max_delayed_threads)| -|dev.mysql.com|[sysvar_max_delayed_threads](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_delayed_threads)| - -## max_digest_length -|name|value| -|----|-----| -|Name|`max_digest_length`| -|Command line|`--max-digest-length=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1024`| -|Range|from: `0` to: `1048576`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[max_digest_length](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#max_digest_length)| -|dev.mysql.com|[sysvar_max_digest_length](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_digest_length)| - -## max_error_count -|name|value| -|----|-----| -|Name|`max_error_count`| -|Command line|`--max-error-count=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `0` to: `65535`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[max_error_count](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#max_error_count)| -|dev.mysql.com|[sysvar_max_error_count](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_error_count)| - -## max_heap_table_size -|name|value| -|----|-----| -|Name|`max_heap_table_size`| -|Command line|`--max-heap-table-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`16777216`| -|Dynamic|`true`| -|Range|from: `16384`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[max_heap_table_size](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#max_heap_table_size)| -|dev.mysql.com|[sysvar_max_heap_table_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_heap_table_size)| - -## max_insert_delayed_threads -|name|value| -|----|-----| -|Name|`max_insert_delayed_threads`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[max_insert_delayed_threads](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#max_insert_delayed_threads)| -|dev.mysql.com|[sysvar_max_insert_delayed_threads](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_insert_delayed_threads)| - -## max_join_size -|name|value| -|----|-----| -|Name|`max_join_size`| -|Command line|`--max-join-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`18446744073709551615`| -|Dynamic|`true`| -|Range|from: `1` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[max_join_size](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#max_join_size)| -|dev.mysql.com|[sysvar_max_join_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_join_size)| - -## max_length_for_sort_data -|name|value| -|----|-----| -|Name|`max_length_for_sort_data`| -|Command line|`--max-length-for-sort-data=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `4` to: `8388608`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[max_length_for_sort_data](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#max_length_for_sort_data)| -|dev.mysql.com|[sysvar_max_length_for_sort_data](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_length_for_sort_data)| - -## max_long_data_size -|name|value| -|----|-----| -|Name|`max_long_data_size`| -|Command line|`--max-long-data-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`16777216 (16M) >= MariaDB 10.2.4, 4194304 (4M) <= MariaDB 10.2.3, >= MariaDB 10.1.7, 1048576 (1M) <= MariaDB 10.1.6`| -|Dynamic|`false`| -|Range|from: `1024` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[max_long_data_size](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#max_long_data_size)| - -## max_password_errors -|name|value| -|----|-----| -|Name|`max_password_errors`| -|Command line|`--max-password-errors=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`4294967295`| -|Dynamic|`true`| -|Range|from: `1` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[max_password_errors](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#max_password_errors)| - -## max_prepared_stmt_count -|name|value| -|----|-----| -|Name|`max_prepared_stmt_count`| -|Command line|`--max-prepared-stmt-count=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`16382`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[max_prepared_stmt_count](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#max_prepared_stmt_count)| -|dev.mysql.com|[sysvar_max_prepared_stmt_count](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_prepared_stmt_count)| - -## max_recursive_iterations -|name|value| -|----|-----| -|Name|`max_recursive_iterations`| -|Command line|`--max-recursive-iterations=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`4294967295`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[max_recursive_iterations](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#max_recursive_iterations)| - -## max_rowid_filter_size -|name|value| -|----|-----| -|Name|`max_rowid_filter_size`| -|Command line|`--max-rowid-filter-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`131072`| -|Dynamic|`true`| -|Range|from: `1024` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[max_rowid_filter_size](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#max_rowid_filter_size)| - -## max_seeks_for_key -|name|value| -|----|-----| -|Name|`max_seeks_for_key`| -|Command line|`--max-seeks-for-key=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `1` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[max_seeks_for_key](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#max_seeks_for_key)| -|dev.mysql.com|[sysvar_max_seeks_for_key](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_seeks_for_key)| - -## max_session_mem_used -|name|value| -|----|-----| -|Name|`max_session_mem_used`| -|Command line|`--max-session-mem-used=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`9223372036854775807 (8192 PB)`| -|Dynamic|`true`| -|Range|from: `8192` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[max_session_mem_used](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#max_session_mem_used)| - -## max_sort_length -|name|value| -|----|-----| -|Name|`max_sort_length`| -|Command line|`--max-sort-length=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`1024`| -|Dynamic|`true`| -|Range|from: `4` to: `8388608`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[max_sort_length](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#max_sort_length)| -|dev.mysql.com|[sysvar_max_sort_length](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_sort_length)| - -## max_sp_recursion_depth -|name|value| -|----|-----| -|Name|`max_sp_recursion_depth`| -|Command line|`--max-sp-recursion-depth[=#]`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[max_sp_recursion_depth](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#max_sp_recursion_depth)| -|dev.mysql.com|[sysvar_max_sp_recursion_depth](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_sp_recursion_depth)| - -## max_statement_time -|name|value| -|----|-----| -|Name|`max_statement_time`| -|Command line|`--max-statement-time[=#]`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`0.000000 >= MariaDB 10.1.13, 0 <= MariaDB 10.1.12`| -|Dynamic|`true`| -|Range|from: `0` to: `upwards`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[max_statement_time](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#max_statement_time)| - -## max_tmp_tables -|name|value| -|----|-----| -|Name|`max_tmp_tables`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[max_tmp_tables](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#max_tmp_tables)| - -## max_user_connections -|name|value| -|----|-----| -|Name|`max_user_connections`| -|Command line|`--max-user-connections=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`0`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[max_user_connections](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#max_user_connections)| -|dev.mysql.com|[sysvar_max_user_connections](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_user_connections)| - -## max_write_lock_count -|name|value| -|----|-----| -|Name|`max_write_lock_count`| -|Command line|`--max-write-lock-count=#`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[max_write_lock_count](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#max_write_lock_count)| -|dev.mysql.com|[sysvar_max_write_lock_count](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_write_lock_count)| - -## metadata_locks_cache_size -|name|value| -|----|-----| -|Name|`metadata_locks_cache_size`| -|Command line|`--metadata-locks-cache-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1024`| -|Dynamic|`false`| -|Range|from: `1` to: `1048576`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[metadata_locks_cache_size](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#metadata_locks_cache_size)| -|dev.mysql.com|[sysvar_metadata_locks_cache_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_metadata_locks_cache_size)| - -## metadata_locks_hash_instances -|name|value| -|----|-----| -|Name|`metadata_locks_hash_instances`| -|Command line|`--metadata-locks-hash-instances=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`8`| -|Dynamic|`false`| -|Range|from: `1` to: `1024`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[metadata_locks_hash_instances](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#metadata_locks_hash_instances)| -|dev.mysql.com|[sysvar_metadata_locks_hash_instances](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_metadata_locks_hash_instances)| - -## min_examined_row_limit -|name|value| -|----|-----| -|Name|`min_examined_row_limit`| -|Command line|`--min-examined-row-limit=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[min_examined_row_limit](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#min_examined_row_limit)| -|dev.mysql.com|[sysvar_min_examined_row_limit](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_min_examined_row_limit)| - -## mrr_buffer_size -|name|value| -|----|-----| -|Name|`mrr_buffer_size`| -|Command line|`--mrr-buffer-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`262144`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[mrr_buffer_size](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#mrr_buffer_size)| - -## multi_range_count -|name|value| -|----|-----| -|Name|`multi_range_count`| -|Command line|`--multi-range-count=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`256`| -|Dynamic|`true`| -|Range|from: `1` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[multi_range_count](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#multi_range_count)| -|dev.mysql.com|[sysvar_multi_range_count](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_multi_range_count)| - -## mysql56_temporal_format -|name|value| -|----|-----| -|Name|`mysql56_temporal_format`| -|Command line|`--mysql56-temporal-format`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[mysql56_temporal_format](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#mysql56_temporal_format)| - -## named_pipe -|name|value| -|----|-----| -|Name|`named_pipe`| -|Command line|`--named-pipe[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[named_pipe](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#named_pipe)| -|dev.mysql.com|[sysvar_named_pipe](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_named_pipe)| - -## net_buffer_length -|name|value| -|----|-----| -|Name|`net_buffer_length`| -|Command line|`--net-buffer-length=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`16384`| -|Dynamic|`true`| -|Range|from: `1024` to: `1048576`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[net_buffer_length](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#net_buffer_length)| -|dev.mysql.com|[sysvar_net_buffer_length](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_net_buffer_length)| - -## net_read_timeout -|name|value| -|----|-----| -|Name|`net_read_timeout`| -|Command line|`--net-read-timeout=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`30`| -|Dynamic|`true`| -|Range|from: `1` to: `upwards`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[net_read_timeout](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#net_read_timeout)| -|dev.mysql.com|[sysvar_net_read_timeout](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_net_read_timeout)| - -## net_retry_count -|name|value| -|----|-----| -|Name|`net_retry_count`| -|Command line|`--net-retry-count=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`10`| -|Dynamic|`true`| -|Range|from: `1` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[net_retry_count](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#net_retry_count)| -|dev.mysql.com|[sysvar_net_retry_count](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_net_retry_count)| - -## net_write_timeout -|name|value| -|----|-----| -|Name|`net_write_timeout`| -|Command line|`--net-write-timeout=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`60`| -|Dynamic|`true`| -|Range|from: `1` to: `upwards`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[net_write_timeout](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#net_write_timeout)| -|dev.mysql.com|[sysvar_net_write_timeout](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_net_write_timeout)| - -## old -|name|value| -|----|-----| -|Name|`old`| -|Command line|`--old[={OFF|ON}]`| -|Type of variable|`boolean`| -|Default value|`OFF`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[old](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#old)| -|dev.mysql.com|[sysvar_old](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_old)| - -## old_alter_table -|name|value| -|----|-----| -|Name|`old_alter_table`| -|Command line|`--old-alter-table[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[old_alter_table](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#old_alter_table)| -|dev.mysql.com|[sysvar_old_alter_table](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_old_alter_table)| - -## old_mode -|name|value| -|----|-----| -|Name|`old_mode`| -|Command line|`--old-mode`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Default value|`(empty string)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[old_mode](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#old_mode)| - -## old_passwords -|name|value| -|----|-----| -|Name|`old_passwords`| -|Command line|`--old-passwords=value`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| -|Valid value(s)|`0`, `2`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[old_passwords](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#old_passwords)| -|dev.mysql.com|[sysvar_old_passwords](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_old_passwords)| - -## open_files_limit -|name|value| -|----|-----| -|Name|`open_files_limit`| -|Command line|`--open-files-limit=count`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[open_files_limit](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#open_files_limit)| -|dev.mysql.com|[sysvar_open_files_limit](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_open_files_limit)| - -## optimizer_prune_level -|name|value| -|----|-----| -|Name|`optimizer_prune_level`| -|Scope|`global`, `session`| -|Default value|`1`| -|Dynamic|`true`| -|Range|from: `0` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[optimizer_prune_level](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#optimizer_prune_level)| -|dev.mysql.com|[sysvar_optimizer_prune_level](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_optimizer_prune_level)| - -## optimizer_search_depth -|name|value| -|----|-----| -|Name|`optimizer_search_depth`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`62`| -|Dynamic|`true`| -|Range|from: `0`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[optimizer_search_depth](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#optimizer_search_depth)| -|dev.mysql.com|[sysvar_optimizer_search_depth](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_optimizer_search_depth)| - -## optimizer_selectivity_sampling_limit -|name|value| -|----|-----| -|Name|`optimizer_selectivity_sampling_limit`| -|Command line|`optimizer-selectivity-sampling-limit[=#]`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`100`| -|Dynamic|`true`| -|Range|from: `10` to: `upwards`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[optimizer_selectivity_sampling_limit](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#optimizer_selectivity_sampling_limit)| - -## optimizer_switch -|name|value| -|----|-----| -|Name|`optimizer_switch`| -|Command line|`--optimizer-switch=value`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[optimizer_switch](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#optimizer_switch)| -|dev.mysql.com|[sysvar_optimizer_switch](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_optimizer_switch)| - -## optimizer_use_condition_selectivity -|name|value| -|----|-----| -|Name|`optimizer_use_condition_selectivity`| -|Command line|`--optimizer-use-condition-selectivity=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`4 (>= MariaDB 10.4.1), 1 (<= MariaDB 10.4.0)`| -|Dynamic|`true`| -|Range|from: `1` to: `5`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[optimizer_use_condition_selectivity](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#optimizer_use_condition_selectivity)| - -## optimizer_trace -|name|value| -|----|-----| -|Name|`optimizer_trace`| -|Command line|`--optimizer-trace=value`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[optimizer_trace](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#optimizer_trace)| -|dev.mysql.com|[sysvar_optimizer_trace](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_optimizer_trace)| - -## optimizer_trace_max_mem_size -|name|value| -|----|-----| -|Name|`optimizer_trace_max_mem_size`| -|Command line|`--optimizer-trace-max-mem-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[optimizer_trace_max_mem_size](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#optimizer_trace_max_mem_size)| -|dev.mysql.com|[sysvar_optimizer_trace_max_mem_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_optimizer_trace_max_mem_size)| - -## pid_file -|name|value| -|----|-----| -|Name|`pid_file`| -|Command line|`--pid-file=file_name`| -|Type of variable|`file name`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[pid_file](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#pid_file)| -|dev.mysql.com|[sysvar_pid_file](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_pid_file)| - -## plugin_dir -|name|value| -|----|-----| -|Name|`plugin_dir`| -|Command line|`--plugin-dir=path`| -|Type of variable|`directory name`| -|Scope|`global`| -|Default value|`BASEDIR/lib/plugin`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[plugin_dir](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#plugin_dir)| -|dev.mysql.com|[sysvar_plugin_dir](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_plugin_dir)| - -## plugin_maturity -|name|value| -|----|-----| -|Name|`plugin_maturity`| -|Command line|`--plugin-maturity=level`| -|Scope|`global`| -|Default value|`One less than the server maturity (>= MariaDB 10.3.3), unknown (<= MariaDB 10.3.2)`| -|Dynamic|`false`| -|Valid value(s)|`unknown`, `experimental`, `alpha`, `beta`, `gamma`, `stable`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[plugin_maturity](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#plugin_maturity)| - -## port -|name|value| -|----|-----| -|Name|`port`| -|Command line|`--port=port_num`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`3306`| -|Dynamic|`false`| -|Range|from: `0` to: `65535`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[port](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#port)| -|dev.mysql.com|[option_mysqld_port](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_port)| -|dev.mysql.com|[sysvar_port](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_port)| - -## preload_buffer_size -|name|value| -|----|-----| -|Name|`preload_buffer_size`| -|Command line|`--preload-buffer-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`32768`| -|Dynamic|`true`| -|Range|from: `1024` to: `1073741824`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[preload_buffer_size](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#preload_buffer_size)| -|dev.mysql.com|[sysvar_preload_buffer_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_preload_buffer_size)| - -## profiling -|name|value| -|----|-----| -|Name|`profiling`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[profiling](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#profiling)| - -## profiling_history_size -|name|value| -|----|-----| -|Name|`profiling_history_size`| -|Command line|`--profiling-history-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`15`| -|Dynamic|`true`| -|Range|from: `0` to: `100`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[profiling_history_size](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#profiling_history_size)| - -## progress_report_time -|name|value| -|----|-----| -|Name|`progress_report_time`| -|Command line|`--progress-report-time=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`56 before MariaDB 5.5.39 and MariaDB 10.0.10, 5 as of MariaDB 5.5.40 and MariaDB 10.0.11`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[progress_report_time](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#progress_report_time)| - -## protocol_version -|name|value| -|----|-----| -|Name|`protocol_version`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[protocol_version](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#protocol_version)| -|dev.mysql.com|[sysvar_protocol_version](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_protocol_version)| - -## proxy_protocol_networks -|name|value| -|----|-----| -|Name|`proxy_protocol_networks`| -|Command line|`--proxy-protocol-networks=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`(empty)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[proxy_protocol_networks](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#proxy_protocol_networks)| - -## proxy_user -|name|value| -|----|-----| -|Name|`proxy_user`| -|Type of variable|`string`| -|Scope|`session`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[proxy_user](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#proxy_user)| -|dev.mysql.com|[sysvar_proxy_user](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_proxy_user)| - -## pseudo_slave_mode -|name|value| -|----|-----| -|Name|`pseudo_slave_mode`| -|Type of variable|`integer`| -|Scope|`session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[pseudo_slave_mode](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#pseudo_slave_mode)| -|dev.mysql.com|[sysvar_pseudo_slave_mode](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_pseudo_slave_mode)| - -## pseudo_thread_id -|name|value| -|----|-----| -|Name|`pseudo_thread_id`| -|Type of variable|`integer`| -|Scope|`session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[pseudo_thread_id](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#pseudo_thread_id)| -|dev.mysql.com|[sysvar_pseudo_thread_id](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_pseudo_thread_id)| - -## query_alloc_block_size -|name|value| -|----|-----| -|Name|`query_alloc_block_size`| -|Command line|`--query-alloc-block-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `1024` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[query_alloc_block_size](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#query_alloc_block_size)| -|dev.mysql.com|[sysvar_query_alloc_block_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_query_alloc_block_size)| - -## query_cache_limit -|name|value| -|----|-----| -|Name|`query_cache_limit`| -|Command line|`--query-cache-limit=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1048576`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[query_cache_limit](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#query_cache_limit)| -|dev.mysql.com|[sysvar_query_cache_limit](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_query_cache_limit)| - -## query_cache_min_res_unit -|name|value| -|----|-----| -|Name|`query_cache_min_res_unit`| -|Command line|`--query-cache-min-res-unit=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`4096`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[query_cache_min_res_unit](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#query_cache_min_res_unit)| -|dev.mysql.com|[sysvar_query_cache_min_res_unit](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_query_cache_min_res_unit)| - -## query_cache_size -|name|value| -|----|-----| -|Name|`query_cache_size`| -|Command line|`--query-cache-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`true`| -|Range|from: `0`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[query_cache_size](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#query_cache_size)| -|dev.mysql.com|[sysvar_query_cache_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_query_cache_size)| - -## query_cache_strip_comments -|name|value| -|----|-----| -|Name|`query_cache_strip_comments`| -|Command line|`query-cache-strip-comments`| -|Type of variable|`boolean`| -|Scope|`session`, `global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[query_cache_strip_comments](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#query_cache_strip_comments)| - -## query_cache_type -|name|value| -|----|-----| -|Name|`query_cache_type`| -|Command line|`--query-cache-type=#`| -|Type of variable|`enumeration`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| -|Valid value(s)|`0`, `OFF`, `1`, `ON`, `2`, `DEMAND`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[query_cache_type](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#query_cache_type)| -|dev.mysql.com|[sysvar_query_cache_type](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_query_cache_type)| - -## query_cache_wlock_invalidate -|name|value| -|----|-----| -|Name|`query_cache_wlock_invalidate`| -|Command line|`--query-cache-wlock-invalidate[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[query_cache_wlock_invalidate](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#query_cache_wlock_invalidate)| -|dev.mysql.com|[sysvar_query_cache_wlock_invalidate](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_query_cache_wlock_invalidate)| - -## query_prealloc_size -|name|value| -|----|-----| -|Name|`query_prealloc_size`| -|Command line|`--query-prealloc-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[query_prealloc_size](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#query_prealloc_size)| -|dev.mysql.com|[sysvar_query_prealloc_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_query_prealloc_size)| - -## rand_seed1 -|name|value| -|----|-----| -|Name|`rand_seed1`| -|Type of variable|`integer`| -|Scope|`session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rand_seed1](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#rand_seed1)| -|dev.mysql.com|[sysvar_rand_seed1](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_rand_seed1)| - -## rand_seed2 -|name|value| -|----|-----| -|Name|`rand_seed2`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rand_seed2](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#rand_seed2)| - -## range_alloc_block_size -|name|value| -|----|-----| -|Name|`range_alloc_block_size`| -|Command line|`--range-alloc-block-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`4096`| -|Dynamic|`true`| -|Range|from: `4096` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[range_alloc_block_size](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#range_alloc_block_size)| -|dev.mysql.com|[sysvar_range_alloc_block_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_range_alloc_block_size)| - -## read_buffer_size -|name|value| -|----|-----| -|Name|`read_buffer_size`| -|Command line|`--read-buffer-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`131072`| -|Dynamic|`true`| -|Range|from: `8200` to: `2147479552`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[read_buffer_size](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#read_buffer_size)| -|dev.mysql.com|[sysvar_read_buffer_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_read_buffer_size)| - -## read_only -|name|value| -|----|-----| -|Name|`read_only`| -|Command line|`--read-only[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[read_only](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#read_only)| -|dev.mysql.com|[sysvar_read_only](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_read_only)| - -## read_rnd_buffer_size -|name|value| -|----|-----| -|Name|`read_rnd_buffer_size`| -|Command line|`--read-rnd-buffer-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`262144`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[read_rnd_buffer_size](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#read_rnd_buffer_size)| -|dev.mysql.com|[sysvar_read_rnd_buffer_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_read_rnd_buffer_size)| - -## rowid_merge_buff_size -|name|value| -|----|-----| -|Name|`rowid_merge_buff_size`| -|Command line|`--rowid-merge-buff-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`8388608`| -|Dynamic|`true`| -|Range|from: `0` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rowid_merge_buff_size](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#rowid_merge_buff_size)| - -## rpl_recovery_rank -|name|value| -|----|-----| -|Name|`rpl_recovery_rank`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[rpl_recovery_rank](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#rpl_recovery_rank)| - -## safe_show_database -|name|value| -|----|-----| -|Name|`safe_show_database`| -|Command line|`--safe-show-database (until MySQL 4.1.1)`| -|Type of variable|`boolean`| -|Scope|`global`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[safe_show_database](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#safe_show_database)| - -## secure_auth -|name|value| -|----|-----| -|Name|`secure_auth`| -|Command line|`--secure-auth[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`true`| -|Valid value(s)|`ON`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[secure_auth](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#secure_auth)| -|dev.mysql.com|[sysvar_secure_auth](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_secure_auth)| - -## secure_file_priv -|name|value| -|----|-----| -|Name|`secure_file_priv`| -|Command line|`--secure-path-priv=path`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`platform specific`| -|Dynamic|`false`| -|Valid value(s)|`empty string`, `dirname`, `NULL`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[secure_file_priv](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#secure_file_priv)| -|dev.mysql.com|[sysvar_secure_file_priv](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_secure_file_priv)| - -## secure_timestamp -|name|value| -|----|-----| -|Name|`secure_timestamp`| -|Command line|`--secure-timestamp=value`| -|Scope|`global`| -|Default value|`NO`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[secure_timestamp](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#secure_timestamp)| - -## session_track_schema -|name|value| -|----|-----| -|Name|`session_track_schema`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[session_track_schema](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#session_track_schema)| -|dev.mysql.com|[sysvar_session_track_schema](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_session_track_schema)| - -## session_track_state_change -|name|value| -|----|-----| -|Name|`session_track_state_change`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[session_track_state_change](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#session_track_state_change)| -|dev.mysql.com|[sysvar_session_track_state_change](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_session_track_state_change)| - -## session_track_system_variables -|name|value| -|----|-----| -|Name|`session_track_system_variables`| -|Command line|`--session-track-system-variables=value`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Default value|`time_z1e, autocommit, character_set_client, character_set_results, character_set_c1necti1`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[session_track_system_variables](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#session_track_system_variables)| -|dev.mysql.com|[sysvar_session_track_system_variables](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_session_track_system_variables)| - -## session_track_transaction_info -|name|value| -|----|-----| -|Name|`session_track_transaction_info`| -|Command line|`--session-track-transaction-info=value`| -|Type of variable|`enumeration`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| -|Valid value(s)|`OFF`, `STATE`, `CHARACTERISTICS`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[session_track_transaction_info](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#session_track_transaction_info)| -|dev.mysql.com|[sysvar_session_track_transaction_info](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_session_track_transaction_info)| - -## shared_memory -|name|value| -|----|-----| -|Name|`shared_memory`| -|Command line|`--shared-memory[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[shared_memory](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#shared_memory)| -|dev.mysql.com|[sysvar_shared_memory](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_shared_memory)| - -## shared_memory_base_name -|name|value| -|----|-----| -|Name|`shared_memory_base_name`| -|Command line|`--shared-memory-base-name=name`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`MYSQL`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[shared_memory_base_name](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#shared_memory_base_name)| -|dev.mysql.com|[sysvar_shared_memory_base_name](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_shared_memory_base_name)| - -## skip_external_locking -|name|value| -|----|-----| -|Name|`skip_external_locking`| -|Command line|`--skip-external-locking[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[skip_external_locking](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#skip_external_locking)| -|dev.mysql.com|[sysvar_skip_external_locking](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_skip_external_locking)| - -## skip_name_resolve -|name|value| -|----|-----| -|Name|`skip_name_resolve`| -|Command line|`--skip-name-resolve[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[skip_name_resolve](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#skip_name_resolve)| -|dev.mysql.com|[sysvar_skip_name_resolve](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_skip_name_resolve)| - -## skip_networking -|name|value| -|----|-----| -|Name|`skip_networking`| -|Command line|`--skip-networking[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[skip_networking](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#skip_networking)| -|dev.mysql.com|[sysvar_skip_networking](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_skip_networking)| - -## skip_show_database -|name|value| -|----|-----| -|Name|`skip_show_database`| -|Command line|`--skip-show-database`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[skip_show_database](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#skip_show_database)| -|dev.mysql.com|[option_mysqld_skip-show-database](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_skip-show-database)| -|dev.mysql.com|[sysvar_skip_show_database](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_skip_show_database)| - -## slow_launch_time -|name|value| -|----|-----| -|Name|`slow_launch_time`| -|Command line|`--slow-launch-time=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`2`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slow_launch_time](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#slow_launch_time)| -|dev.mysql.com|[sysvar_slow_launch_time](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_slow_launch_time)| - -## slow_query_log -|name|value| -|----|-----| -|Name|`slow_query_log`| -|Command line|`--slow-query-log[={OFF|ON}]`| -|Type of variable|`boolean`| -|Default value|`0`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slow_query_log](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#slow_query_log)| -|dev.mysql.com|[sysvar_slow_query_log](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_slow_query_log)| - -## slow_query_log_file -|name|value| -|----|-----| -|Name|`slow_query_log_file`| -|Command line|`--slow-query-log-file=file_name`| -|Type of variable|`file name`| -|Scope|`global`| -|Default value|`host_name-slow.log`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[slow_query_log_file](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#slow_query_log_file)| -|dev.mysql.com|[sysvar_slow_query_log_file](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_slow_query_log_file)| - -## socket -|name|value| -|----|-----| -|Name|`socket`| -|Command line|`--socket={file_name|pipe_name}`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[socket](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#socket)| -|dev.mysql.com|[option_mysqld_socket](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_socket)| -|dev.mysql.com|[sysvar_socket](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_socket)| - -## sort_buffer_size -|name|value| -|----|-----| -|Name|`sort_buffer_size`| -|Command line|`--sort-buffer-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `32768`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sort_buffer_size](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#sort_buffer_size)| -|dev.mysql.com|[sysvar_sort_buffer_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_sort_buffer_size)| - -## sql_auto_is_null -|name|value| -|----|-----| -|Name|`sql_auto_is_null`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sql_auto_is_null](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#sql_auto_is_null)| -|dev.mysql.com|[sysvar_sql_auto_is_null](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_sql_auto_is_null)| - -## sql_big_selects -|name|value| -|----|-----| -|Name|`sql_big_selects`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`1`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sql_big_selects](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#sql_big_selects)| -|dev.mysql.com|[sysvar_sql_big_selects](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_sql_big_selects)| - -## sql_big_tables -|name|value| -|----|-----| -|Name|`sql_big_tables`| -|Command line|`--sql-big-tables`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sql_big_tables](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#sql_big_tables)| - -## sql_buffer_result -|name|value| -|----|-----| -|Name|`sql_buffer_result`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sql_buffer_result](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#sql_buffer_result)| -|dev.mysql.com|[sysvar_sql_buffer_result](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_sql_buffer_result)| - -## sql_log_off -|name|value| -|----|-----| -|Name|`sql_log_off`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| -|Valid value(s)|`OFF`, `ON`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sql_log_off](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#sql_log_off)| -|dev.mysql.com|[sysvar_sql_log_off](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_sql_log_off)| - -## sql_log_update -|name|value| -|----|-----| -|Name|`sql_log_update`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sql_log_update](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#sql_log_update)| - -## sql_low_priority_updates -|name|value| -|----|-----| -|Name|`sql_low_priority_updates`| -|Command line|`--sql-low-priority-updates`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sql_low_priority_updates](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#sql_low_priority_updates)| - -## sql_max_join_size -|name|value| -|----|-----| -|Name|`sql_max_join_size`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sql_max_join_size](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#sql_max_join_size)| - -## sql_mode -|name|value| -|----|-----| -|Name|`sql_mode`| -|Command line|`--sql-mode=name`| -|Type of variable|`set`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sql_mode](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#sql_mode)| -|dev.mysql.com|[option_mysqld_sql-mode](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_sql-mode)| -|dev.mysql.com|[sysvar_sql_mode](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_sql_mode)| - -## sql_notes -|name|value| -|----|-----| -|Name|`sql_notes`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`1`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sql_notes](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#sql_notes)| -|dev.mysql.com|[sysvar_sql_notes](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_sql_notes)| - -## sql_quote_show_create -|name|value| -|----|-----| -|Name|`sql_quote_show_create`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`1`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sql_quote_show_create](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#sql_quote_show_create)| -|dev.mysql.com|[sysvar_sql_quote_show_create](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_sql_quote_show_create)| - -## sql_safe_updates -|name|value| -|----|-----| -|Name|`sql_safe_updates`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sql_safe_updates](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#sql_safe_updates)| -|dev.mysql.com|[sysvar_sql_safe_updates](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_sql_safe_updates)| - -## sql_select_limit -|name|value| -|----|-----| -|Name|`sql_select_limit`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sql_select_limit](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#sql_select_limit)| -|dev.mysql.com|[sysvar_sql_select_limit](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_sql_select_limit)| - -## sql_warnings -|name|value| -|----|-----| -|Name|`sql_warnings`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sql_warnings](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#sql_warnings)| -|dev.mysql.com|[sysvar_sql_warnings](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_sql_warnings)| - -## storage_engine -|name|value| -|----|-----| -|Name|`storage_engine`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[storage_engine](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#storage_engine)| - -## standard_compliant_cte -|name|value| -|----|-----| -|Name|`standard_compliant_cte`| -|Command line|`--standard-compliant-cte={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[standard_compliant_cte](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#standard_compliant_cte)| - -## stored_program_cache -|name|value| -|----|-----| -|Name|`stored_program_cache`| -|Command line|`--stored-program-cache=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`256`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[stored_program_cache](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#stored_program_cache)| -|dev.mysql.com|[sysvar_stored_program_cache](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_stored_program_cache)| - -## strict_password_validation -|name|value| -|----|-----| -|Name|`strict_password_validation`| -|Command line|`--strict-password-validation`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[strict_password_validation](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#strict_password_validation)| - -## sync_frm -|name|value| -|----|-----| -|Name|`sync_frm`| -|Command line|`--sync-frm`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`TRUE`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sync_frm](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#sync_frm)| - -## system_time_zone -|name|value| -|----|-----| -|Name|`system_time_zone`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[system_time_zone](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#system_time_zone)| -|dev.mysql.com|[sysvar_system_time_zone](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_system_time_zone)| - -## table_definition_cache -|name|value| -|----|-----| -|Name|`table_definition_cache`| -|Command line|`--table-definition-cache=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`true`| -|Range|from: `400`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[table_definition_cache](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#table_definition_cache)| -|dev.mysql.com|[sysvar_table_definition_cache](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_table_definition_cache)| - -## table_lock_wait_timeout -|name|value| -|----|-----| -|Name|`table_lock_wait_timeout`| -|Command line|`--table-lock-wait-timeout=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`50`| -|Dynamic|`true`| -|Range|from: `1` to: `1073741824`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[table_lock_wait_timeout](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#table_lock_wait_timeout)| - -## table_open_cache -|name|value| -|----|-----| -|Name|`table_open_cache`| -|Command line|`--table-open-cache=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`true`| -|Range|from: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[table_open_cache](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#table_open_cache)| -|dev.mysql.com|[sysvar_table_open_cache](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_table_open_cache)| - -## table_open_cache_instances -|name|value| -|----|-----| -|Name|`table_open_cache_instances`| -|Command line|`--table-open-cache-instances=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| -|Range|from: `1` to: `64`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[table_open_cache_instances](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#table_open_cache_instances)| -|dev.mysql.com|[sysvar_table_open_cache_instances](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_table_open_cache_instances)| - -## table_type -|name|value| -|----|-----| -|Name|`table_type`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[table_type](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#table_type)| - -## tcp_keepalive_interval -|name|value| -|----|-----| -|Name|`tcp_keepalive_interval`| -|Command line|`--tcp-keepalive-interval=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `2147483`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tcp_keepalive_interval](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#tcp_keepalive_interval)| - -## tcp_keepalive_probes -|name|value| -|----|-----| -|Name|`tcp_keepalive_probes`| -|Command line|`--tcp-keepalive-probes=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `2147483`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tcp_keepalive_probes](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#tcp_keepalive_probes)| - -## tcp_keepalive_time -|name|value| -|----|-----| -|Name|`tcp_keepalive_time`| -|Command line|`--tcp-keepalive-time=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `2147483`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tcp_keepalive_time](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#tcp_keepalive_time)| - -## tcp_nodelay -|name|value| -|----|-----| -|Name|`tcp_nodelay`| -|Command line|`--tcp-nodelay={0|1}`| -|Type of variable|`boolean`| -|Scope|`session`| -|Default value|`1`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tcp_nodelay](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#tcp_nodelay)| - -## thread_cache_size -|name|value| -|----|-----| -|Name|`thread_cache_size`| -|Command line|`--thread-cache-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`(-1 signifies autosizing; do not use -1)`| -|Dynamic|`true`| -|Range|from: `0` to: `16384`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[thread_cache_size](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#thread_cache_size)| -|dev.mysql.com|[sysvar_thread_cache_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_thread_cache_size)| - -## thread_concurrency -|name|value| -|----|-----| -|Name|`thread_concurrency`| -|Command line|`--thread-concurrency=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`10`| -|Dynamic|`false`| -|Range|from: `1` to: `512`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[thread_concurrency](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#thread_concurrency)| - -## thread_stack -|name|value| -|----|-----| -|Name|`thread_stack`| -|Command line|`--thread-stack=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| -|Range|from: `131072` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[thread_stack](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#thread_stack)| -|dev.mysql.com|[sysvar_thread_stack](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_thread_stack)| - -## time_format -|name|value| -|----|-----| -|Name|`time_format`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[time_format](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#time_format)| - -## time_zone -|name|value| -|----|-----| -|Name|`time_zone`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[time_zone](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#time_zone)| -|dev.mysql.com|[sysvar_time_zone](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_time_zone)| - -## timed_mutexes -|name|value| -|----|-----| -|Name|`timed_mutexes`| -|Command line|`--timed-mutexes`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[timed_mutexes](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#timed_mutexes)| - -## timestamp -|name|value| -|----|-----| -|Name|`timestamp`| -|Type of variable|`numeric`| -|Scope|`session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[timestamp](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#timestamp)| -|dev.mysql.com|[sysvar_timestamp](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_timestamp)| - -## tmp_disk_table_size -|name|value| -|----|-----| -|Name|`tmp_disk_table_size`| -|Command line|`--tmp-disk-table-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`18446744073709551615 (max unsigned integer, no limit)`| -|Dynamic|`true`| -|Range|from: `1024` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tmp_disk_table_size](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#tmp_disk_table_size)| - -## tmp_memory_table_size -|name|value| -|----|-----| -|Name|`tmp_memory_table_size`| -|Command line|`--tmp-memory-table-size=#`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tmp_memory_table_size](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#tmp_memory_table_size)| - -## tmp_table_size -|name|value| -|----|-----| -|Name|`tmp_table_size`| -|Command line|`--tmp-table-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`16777216`| -|Dynamic|`true`| -|Range|from: `1024`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tmp_table_size](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#tmp_table_size)| -|dev.mysql.com|[sysvar_tmp_table_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_tmp_table_size)| - -## tmpdir -|name|value| -|----|-----| -|Name|`tmpdir`| -|Command line|`--tmpdir=path or -t path`| -|Type of variable|`directory name`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tmpdir](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#tmpdir)| -|dev.mysql.com|[option_mysqld_tmpdir](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_tmpdir)| -|dev.mysql.com|[sysvar_tmpdir](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_tmpdir)| - -## transaction_alloc_block_size -|name|value| -|----|-----| -|Name|`transaction_alloc_block_size`| -|Command line|`--transaction-alloc-block-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`8192`| -|Dynamic|`true`| -|Range|from: `1024`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[transaction_alloc_block_size](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#transaction_alloc_block_size)| -|dev.mysql.com|[sysvar_transaction_alloc_block_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_transaction_alloc_block_size)| - -## transaction_prealloc_size -|name|value| -|----|-----| -|Name|`transaction_prealloc_size`| -|Command line|`--transaction-prealloc-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`4096`| -|Dynamic|`true`| -|Range|from: `1024`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[transaction_prealloc_size](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#transaction_prealloc_size)| -|dev.mysql.com|[sysvar_transaction_prealloc_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_transaction_prealloc_size)| - -## tx_isolation -|name|value| -|----|-----| -|Name|`tx_isolation`| -|Type of variable|`enumeration`| -|Scope|`global`, `session`| -|Default value|`REPEATABLE-READ`| -|Dynamic|`true`| -|Valid value(s)|`READ-UNCOMMITTED`, `READ-COMMITTED`, `REPEATABLE-READ`, `SERIALIZABLE`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tx_isolation](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#tx_isolation)| -|dev.mysql.com|[sysvar_tx_isolation](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_tx_isolation)| - -## tx_read_only -|name|value| -|----|-----| -|Name|`tx_read_only`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tx_read_only](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#tx_read_only)| -|dev.mysql.com|[sysvar_tx_read_only](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_tx_read_only)| - -## unique_checks -|name|value| -|----|-----| -|Name|`unique_checks`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`1`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[unique_checks](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#unique_checks)| -|dev.mysql.com|[sysvar_unique_checks](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_unique_checks)| - -## updatable_views_with_limit -|name|value| -|----|-----| -|Name|`updatable_views_with_limit`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`1`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[updatable_views_with_limit](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#updatable_views_with_limit)| -|dev.mysql.com|[sysvar_updatable_views_with_limit](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_updatable_views_with_limit)| - -## use_stat_tables -|name|value| -|----|-----| -|Name|`use_stat_tables`| -|Command line|`--use-stat-tables=mode`| -|Scope|`global`, `session`| -|Default value|`preferably_for_queries (>= MariaDB 10.4.1), never (<= MariaDB 10.4.0)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[use_stat_tables](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#use_stat_tables)| - -## version -|name|value| -|----|-----| -|Name|`version`| -|Command line|`-V, --version[=name] (>= MariaDB 10.2.1), --version (<= MariaDB 10.2.0)`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[version](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#version)| - -## version_comment -|name|value| -|----|-----| -|Name|`version_comment`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[version_comment](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#version_comment)| -|dev.mysql.com|[sysvar_version_comment](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_version_comment)| - -## version_compile_machine -|name|value| -|----|-----| -|Name|`version_compile_machine`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[version_compile_machine](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#version_compile_machine)| -|dev.mysql.com|[sysvar_version_compile_machine](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_version_compile_machine)| - -## version_compile_os -|name|value| -|----|-----| -|Name|`version_compile_os`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[version_compile_os](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#version_compile_os)| -|dev.mysql.com|[sysvar_version_compile_os](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_version_compile_os)| - -## version_malloc_library -|name|value| -|----|-----| -|Name|`version_malloc_library`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[version_malloc_library](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#version_malloc_library)| - -## version_source_revision -|name|value| -|----|-----| -|Name|`version_source_revision`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[version_source_revision](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#version_source_revision)| - -## wait_timeout -|name|value| -|----|-----| -|Name|`wait_timeout`| -|Command line|`--wait-timeout=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`28800`| -|Dynamic|`true`| -|Range|from: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[wait_timeout](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#wait_timeout)| -|dev.mysql.com|[sysvar_wait_timeout](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_wait_timeout)| - -## warning_count -|name|value| -|----|-----| -|Name|`warning_count`| -|Type of variable|`integer`| -|Scope|`session`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[warning_count](https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/#warning_count)| - -## Sphinx_error -|name|value| -|----|-----| -|Name|`Sphinx_error`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sphinx_error](https://mariadb.com/kb/en/library/documentation/sphinx-status-variables/#sphinx_error)| - -## Sphinx_time -|name|value| -|----|-----| -|Name|`Sphinx_time`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sphinx_time](https://mariadb.com/kb/en/library/documentation/sphinx-status-variables/#sphinx_time)| - -## Sphinx_total -|name|value| -|----|-----| -|Name|`Sphinx_total`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sphinx_total](https://mariadb.com/kb/en/library/documentation/sphinx-status-variables/#sphinx_total)| - -## Sphinx_total_found -|name|value| -|----|-----| -|Name|`Sphinx_total_found`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sphinx_total_found](https://mariadb.com/kb/en/library/documentation/sphinx-status-variables/#sphinx_total_found)| - -## Sphinx_word_count -|name|value| -|----|-----| -|Name|`Sphinx_word_count`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sphinx_word_count](https://mariadb.com/kb/en/library/documentation/sphinx-status-variables/#sphinx_word_count)| - -## Sphinx_words -|name|value| -|----|-----| -|Name|`Sphinx_words`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[sphinx_words](https://mariadb.com/kb/en/library/documentation/sphinx-status-variables/#sphinx_words)| - -## Spider_direct_aggregate -|name|value| -|----|-----| -|Name|`Spider_direct_aggregate`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_direct_aggregate](https://mariadb.com/kb/en/library/documentation/spider-server-status-variables/#spider_direct_aggregate)| - -## Spider_direct_order_limit -|name|value| -|----|-----| -|Name|`Spider_direct_order_limit`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_direct_order_limit](https://mariadb.com/kb/en/library/documentation/spider-server-status-variables/#spider_direct_order_limit)| - -## Spider_mon_table_cache_version -|name|value| -|----|-----| -|Name|`Spider_mon_table_cache_version`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_mon_table_cache_version](https://mariadb.com/kb/en/library/documentation/spider-server-status-variables/#spider_mon_table_cache_version)| - -## Spider_mon_table_cache_version_req -|name|value| -|----|-----| -|Name|`Spider_mon_table_cache_version_req`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_mon_table_cache_version_req](https://mariadb.com/kb/en/library/documentation/spider-server-status-variables/#spider_mon_table_cache_version_req)| - -## spider_auto_increment_mode -|name|value| -|----|-----| -|Name|`spider_auto_increment_mode`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `3`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_auto_increment_mode](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_auto_increment_mode)| - -## spider_bgs_first_read -|name|value| -|----|-----| -|Name|`spider_bgs_first_read`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `9.2233720368548E+18`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_bgs_first_read](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_bgs_first_read)| - -## spider_bgs_mode -|name|value| -|----|-----| -|Name|`spider_bgs_mode`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `3`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_bgs_mode](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_bgs_mode)| - -## spider_bgs_second_read -|name|value| -|----|-----| -|Name|`spider_bgs_second_read`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `9.2233720368548E+18`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_bgs_second_read](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_bgs_second_read)| - -## spider_bka_engine -|name|value| -|----|-----| -|Name|`spider_bka_engine`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_bka_engine](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_bka_engine)| - -## spider_bka_mode -|name|value| -|----|-----| -|Name|`spider_bka_mode`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `2`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_bka_mode](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_bka_mode)| - -## spider_bka_table_name_type -|name|value| -|----|-----| -|Name|`spider_bka_table_name_type`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_bka_table_name_type](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_bka_table_name_type)| - -## spider_block_size -|name|value| -|----|-----| -|Name|`spider_block_size`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_block_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_block_size)| - -## spider_bulk_size -|name|value| -|----|-----| -|Name|`spider_bulk_size`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_bulk_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_bulk_size)| - -## spider_bulk_update_mode -|name|value| -|----|-----| -|Name|`spider_bulk_update_mode`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `2`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_bulk_update_mode](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_bulk_update_mode)| - -## spider_bulk_update_size -|name|value| -|----|-----| -|Name|`spider_bulk_update_size`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_bulk_update_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_bulk_update_size)| - -## spider_casual_read -|name|value| -|----|-----| -|Name|`spider_casual_read`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `63`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_casual_read](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_casual_read)| - -## spider_conn_recycle_mode -|name|value| -|----|-----| -|Name|`spider_conn_recycle_mode`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `0` to: `2`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_conn_recycle_mode](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_conn_recycle_mode)| - -## spider_conn_recycle_strict -|name|value| -|----|-----| -|Name|`spider_conn_recycle_strict`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `0` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_conn_recycle_strict](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_conn_recycle_strict)| - -## spider_conn_wait_timeout -|name|value| -|----|-----| -|Name|`spider_conn_wait_timeout`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `0` to: `1000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_conn_wait_timeout](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_conn_wait_timeout)| - -## spider_connect_error_interval -|name|value| -|----|-----| -|Name|`spider_connect_error_interval`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_connect_error_interval](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_connect_error_interval)| - -## spider_connect_mutex -|name|value| -|----|-----| -|Name|`spider_connect_mutex`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_connect_mutex](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_connect_mutex)| - -## spider_connect_retry_count -|name|value| -|----|-----| -|Name|`spider_connect_retry_count`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `0` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_connect_retry_count](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_connect_retry_count)| - -## spider_connect_retry_interval -|name|value| -|----|-----| -|Name|`spider_connect_retry_interval`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `9.2233720368548E+18`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_connect_retry_interval](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_connect_retry_interval)| - -## spider_connect_timeout -|name|value| -|----|-----| -|Name|`spider_connect_timeout`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_connect_timeout](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_connect_timeout)| - -## spider_crd_bg_mode -|name|value| -|----|-----| -|Name|`spider_crd_bg_mode`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_crd_bg_mode](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_crd_bg_mode)| - -## spider_crd_interval -|name|value| -|----|-----| -|Name|`spider_crd_interval`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_crd_interval](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_crd_interval)| - -## spider_crd_mode -|name|value| -|----|-----| -|Name|`spider_crd_mode`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `3`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_crd_mode](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_crd_mode)| - -## spider_crd_sync -|name|value| -|----|-----| -|Name|`spider_crd_sync`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `2`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_crd_sync](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_crd_sync)| - -## spider_crd_type -|name|value| -|----|-----| -|Name|`spider_crd_type`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `2`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_crd_type](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_crd_type)| - -## spider_crd_weight -|name|value| -|----|-----| -|Name|`spider_crd_weight`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_crd_weight](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_crd_weight)| - -## spider_delete_all_rows_type -|name|value| -|----|-----| -|Name|`spider_delete_all_rows_type`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_delete_all_rows_type](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_delete_all_rows_type)| - -## spider_direct_dup_insert -|name|value| -|----|-----| -|Name|`spider_direct_dup_insert`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_direct_dup_insert](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_direct_dup_insert)| - -## spider_direct_order_limit -|name|value| -|----|-----| -|Name|`spider_direct_order_limit`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `9.2233720368548E+18`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_direct_order_limit](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_direct_order_limit)| - -## spider_dry_access -|name|value| -|----|-----| -|Name|`spider_dry_access`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_dry_access](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_dry_access)| - -## spider_error_read_mode -|name|value| -|----|-----| -|Name|`spider_error_read_mode`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_error_read_mode](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_error_read_mode)| - -## spider_error_write_mode -|name|value| -|----|-----| -|Name|`spider_error_write_mode`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_error_write_mode](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_error_write_mode)| - -## spider_first_read -|name|value| -|----|-----| -|Name|`spider_first_read`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `9.2233720368548E+18`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_first_read](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_first_read)| - -## spider_force_commit -|name|value| -|----|-----| -|Name|`spider_force_commit`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `0` to: `2`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_force_commit](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_force_commit)| - -## spider_general_log -|name|value| -|----|-----| -|Name|`spider_general_log`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_general_log](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_general_log)| - -## spider_index_hint_pushdown -|name|value| -|----|-----| -|Name|`spider_index_hint_pushdown`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_index_hint_pushdown](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_index_hint_pushdown)| - -## spider_init_sql_alloc_size -|name|value| -|----|-----| -|Name|`spider_init_sql_alloc_size`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_init_sql_alloc_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_init_sql_alloc_size)| - -## spider_internal_limit -|name|value| -|----|-----| -|Name|`spider_internal_limit`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `9.2233720368548E+18`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_internal_limit](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_internal_limit)| - -## spider_internal_offset -|name|value| -|----|-----| -|Name|`spider_internal_offset`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `9.2233720368548E+18`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_internal_offset](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_internal_offset)| - -## spider_internal_optimize -|name|value| -|----|-----| -|Name|`spider_internal_optimize`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_internal_optimize](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_internal_optimize)| - -## spider_internal_optimize_local -|name|value| -|----|-----| -|Name|`spider_internal_optimize_local`| -|Range|from: `-1` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_internal_optimize_local](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_internal_optimize_local)| - -## spider_internal_sql_log_off -|name|value| -|----|-----| -|Name|`spider_internal_sql_log_off`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_internal_sql_log_off](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_internal_sql_log_off)| - -## spider_internal_unlock -|name|value| -|----|-----| -|Name|`spider_internal_unlock`| -|Type of variable|`boolean`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_internal_unlock](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_internal_unlock)| - -## spider_internal_xa -|name|value| -|----|-----| -|Name|`spider_internal_xa`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_internal_xa](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_internal_xa)| - -## spider_internal_xa_id_type -|name|value| -|----|-----| -|Name|`spider_internal_xa_id_type`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_internal_xa_id_type](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_internal_xa_id_type)| - -## spider_internal_xa_snapshot -|name|value| -|----|-----| -|Name|`spider_internal_xa_snapshot`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `0` to: `3`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_internal_xa_snapshot](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_internal_xa_snapshot)| - -## spider_load_crd_at_startup -|name|value| -|----|-----| -|Name|`spider_load_crd_at_startup`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_load_crd_at_startup](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_load_crd_at_startup)| - -## spider_load_sts_at_startup -|name|value| -|----|-----| -|Name|`spider_load_sts_at_startup`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_load_sts_at_startup](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_load_sts_at_startup)| - -## spider_local_lock_table -|name|value| -|----|-----| -|Name|`spider_local_lock_table`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_local_lock_table](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_local_lock_table)| - -## spider_lock_exchange -|name|value| -|----|-----| -|Name|`spider_lock_exchange`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_lock_exchange](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_lock_exchange)| - -## spider_log_result_error_with_sql -|name|value| -|----|-----| -|Name|`spider_log_result_error_with_sql`| -|Type of variable|`integer`| -|Dynamic|`true`| -|Range|from: `0` to: `3`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_log_result_error_with_sql](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_log_result_error_with_sql)| - -## spider_log_result_errors -|name|value| -|----|-----| -|Name|`spider_log_result_errors`| -|Type of variable|`integer`| -|Dynamic|`true`| -|Range|from: `0` to: `4`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_log_result_errors](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_log_result_errors)| - -## spider_low_mem_read -|name|value| -|----|-----| -|Name|`spider_low_mem_read`| -|Type of variable|`integer`| -|Default value|`-1`| -|Range|from: `-1` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_low_mem_read](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_low_mem_read)| - -## spider_max_connections -|name|value| -|----|-----| -|Name|`spider_max_connections`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `0` to: `99999`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_max_connections](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_max_connections)| - -## spider_max_order -|name|value| -|----|-----| -|Name|`spider_max_order`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `32767`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_max_order](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_max_order)| - -## spider_multi_split_read -|name|value| -|----|-----| -|Name|`spider_multi_split_read`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_multi_split_read](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_multi_split_read)| - -## spider_net_read_timeout -|name|value| -|----|-----| -|Name|`spider_net_read_timeout`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_net_read_timeout](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_net_read_timeout)| - -## spider_net_write_timeout -|name|value| -|----|-----| -|Name|`spider_net_write_timeout`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_net_write_timeout](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_net_write_timeout)| - -## spider_ping_interval_at_trx_start -|name|value| -|----|-----| -|Name|`spider_ping_interval_at_trx_start`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `0` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_ping_interval_at_trx_start](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_ping_interval_at_trx_start)| - -## spider_quick_mode -|name|value| -|----|-----| -|Name|`spider_quick_mode`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `3`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_quick_mode](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_quick_mode)| - -## spider_quick_page_size -|name|value| -|----|-----| -|Name|`spider_quick_page_size`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `9.2233720368548E+18`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_quick_page_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_quick_page_size)| - -## spider_read_only_mode -|name|value| -|----|-----| -|Name|`spider_read_only_mode`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_read_only_mode](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_read_only_mode)| - -## spider_remote_access_charset -|name|value| -|----|-----| -|Name|`spider_remote_access_charset`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_remote_access_charset](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_remote_access_charset)| - -## spider_remote_autocommit -|name|value| -|----|-----| -|Name|`spider_remote_autocommit`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_remote_autocommit](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_remote_autocommit)| - -## spider_remote_default_database -|name|value| -|----|-----| -|Name|`spider_remote_default_database`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_remote_default_database](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_remote_default_database)| - -## spider_remote_sql_log_off -|name|value| -|----|-----| -|Name|`spider_remote_sql_log_off`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_remote_sql_log_off](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_remote_sql_log_off)| - -## spider_remote_time_zone -|name|value| -|----|-----| -|Name|`spider_remote_time_zone`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_remote_time_zone](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_remote_time_zone)| - -## spider_remote_trx_isolation -|name|value| -|----|-----| -|Name|`spider_remote_trx_isolation`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `3`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_remote_trx_isolation](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_remote_trx_isolation)| - -## spider_reset_sql_alloc -|name|value| -|----|-----| -|Name|`spider_reset_sql_alloc`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_reset_sql_alloc](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_reset_sql_alloc)| - -## spider_same_server_link -|name|value| -|----|-----| -|Name|`spider_same_server_link`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_same_server_link](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_same_server_link)| - -## spider_second_read -|name|value| -|----|-----| -|Name|`spider_second_read`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `9.2233720368548E+18`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_second_read](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_second_read)| - -## spider_select_column_mode -|name|value| -|----|-----| -|Name|`spider_select_column_mode`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_select_column_mode](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_select_column_mode)| - -## spider_selupd_lock_mode -|name|value| -|----|-----| -|Name|`spider_selupd_lock_mode`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `2`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_selupd_lock_mode](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_selupd_lock_mode)| - -## spider_semi_split_read -|name|value| -|----|-----| -|Name|`spider_semi_split_read`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_semi_split_read](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_semi_split_read)| - -## spider_semi_split_read_limit -|name|value| -|----|-----| -|Name|`spider_semi_split_read_limit`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `9.2233720368548E+18`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_semi_split_read_limit](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_semi_split_read_limit)| - -## spider_semi_table_lock -|name|value| -|----|-----| -|Name|`spider_semi_table_lock`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `0` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_semi_table_lock](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_semi_table_lock)| - -## spider_semi_table_lock_connection -|name|value| -|----|-----| -|Name|`spider_semi_table_lock_connection`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_semi_table_lock_connection](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_semi_table_lock_connection)| - -## spider_semi_trx -|name|value| -|----|-----| -|Name|`spider_semi_trx`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_semi_trx](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_semi_trx)| - -## spider_semi_trx_isolation -|name|value| -|----|-----| -|Name|`spider_semi_trx_isolation`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `3`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_semi_trx_isolation](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_semi_trx_isolation)| - -## spider_skip_default_condition -|name|value| -|----|-----| -|Name|`spider_skip_default_condition`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_skip_default_condition](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_skip_default_condition)| - -## spider_skip_parallel_search -|name|value| -|----|-----| -|Name|`spider_skip_parallel_search`| -|Command line|`--spider-skip-parallel-search=#`| -|Type of variable|`integer`| -|Scope|`session`| -|Dynamic|`true`| -|Range|from: `-1` to: `3`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_skip_parallel_search](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_skip_parallel_search)| - -## spider_split_read -|name|value| -|----|-----| -|Name|`spider_split_read`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `9.2233720368548E+18`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_split_read](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_split_read)| - -## spider_store_last_crd -|name|value| -|----|-----| -|Name|`spider_store_last_crd`| -|Command line|`--spider-store-last-crd=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`true`| -|Range|from: `-1` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_store_last_crd](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_store_last_crd)| - -## spider_store_last_sts -|name|value| -|----|-----| -|Name|`spider_store_last_sts`| -|Command line|`--spider-store-last-sts=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`true`| -|Range|from: `-1` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_store_last_sts](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_store_last_sts)| - -## spider_sts_bg_mode -|name|value| -|----|-----| -|Name|`spider_sts_bg_mode`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_sts_bg_mode](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_sts_bg_mode)| - -## spider_sts_interval -|name|value| -|----|-----| -|Name|`spider_sts_interval`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_sts_interval](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_sts_interval)| - -## spider_sts_mode -|name|value| -|----|-----| -|Name|`spider_sts_mode`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `2`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_sts_mode](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_sts_mode)| - -## spider_sts_sync -|name|value| -|----|-----| -|Name|`spider_sts_sync`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1` to: `2`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_sts_sync](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_sts_sync)| - -## spider_support_xa -|name|value| -|----|-----| -|Name|`spider_support_xa`| -|Type of variable|`boolean`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_support_xa](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_support_xa)| - -## spider_sync_autocommit -|name|value| -|----|-----| -|Name|`spider_sync_autocommit`| -|Type of variable|`boolean`| -|Scope|`global`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_sync_autocommit](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_sync_autocommit)| - -## spider_sync_time_zone -|name|value| -|----|-----| -|Name|`spider_sync_time_zone`| -|Type of variable|`boolean`| -|Scope|`global`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_sync_time_zone](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_sync_time_zone)| - -## spider_sync_trx_isolation -|name|value| -|----|-----| -|Name|`spider_sync_trx_isolation`| -|Type of variable|`boolean`| -|Scope|`global`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_sync_trx_isolation](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_sync_trx_isolation)| - -## spider_table_crd_thread_count -|name|value| -|----|-----| -|Name|`spider_table_crd_thread_count`| -|Command line|`--spider-table-crd-thread-count=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`10`| -|Dynamic|`false`| -|Range|from: `1` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_table_crd_thread_count](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_table_crd_thread_count)| - -## spider_table_init_error_interval -|name|value| -|----|-----| -|Name|`spider_table_init_error_interval`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_table_init_error_interval](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_table_init_error_interval)| - -## spider_table_sts_thread_count -|name|value| -|----|-----| -|Name|`spider_table_sts_thread_count`| -|Command line|`--spider-table-sts-thread-count=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`10`| -|Dynamic|`false`| -|Range|from: `1` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_table_sts_thread_count](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_table_sts_thread_count)| - -## spider_udf_ct_bulk_insert_interval -|name|value| -|----|-----| -|Name|`spider_udf_ct_bulk_insert_interval`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`true`| -|Range|from: `-1` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_udf_ct_bulk_insert_interval](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_udf_ct_bulk_insert_interval)| - -## spider_udf_ct_bulk_insert_rows -|name|value| -|----|-----| -|Name|`spider_udf_ct_bulk_insert_rows`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`true`| -|Range|from: `-1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_udf_ct_bulk_insert_rows](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_udf_ct_bulk_insert_rows)| - -## spider_udf_ds_bulk_insert_rows -|name|value| -|----|-----| -|Name|`spider_udf_ds_bulk_insert_rows`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`true`| -|Range|from: `-1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_udf_ds_bulk_insert_rows](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_udf_ds_bulk_insert_rows)| - -## spider_udf_ds_table_loop_mode -|name|value| -|----|-----| -|Name|`spider_udf_ds_table_loop_mode`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_udf_ds_table_loop_mode](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_udf_ds_table_loop_mode)| - -## spider_udf_ds_use_real_table -|name|value| -|----|-----| -|Name|`spider_udf_ds_use_real_table`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_udf_ds_use_real_table](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_udf_ds_use_real_table)| - -## spider_udf_table_lock_mutex_count -|name|value| -|----|-----| -|Name|`spider_udf_table_lock_mutex_count`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`20`| -|Dynamic|`false`| -|Range|from: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_udf_table_lock_mutex_count](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_udf_table_lock_mutex_count)| - -## spider_udf_table_mon_mutex_count -|name|value| -|----|-----| -|Name|`spider_udf_table_mon_mutex_count`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`20`| -|Dynamic|`false`| -|Range|from: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_udf_table_mon_mutex_count](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_udf_table_mon_mutex_count)| - -## spider_use_all_conns_snapshot -|name|value| -|----|-----| -|Name|`spider_use_all_conns_snapshot`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_use_all_conns_snapshot](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_use_all_conns_snapshot)| - -## spider_use_consistent_snapshot -|name|value| -|----|-----| -|Name|`spider_use_consistent_snapshot`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_use_consistent_snapshot](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_use_consistent_snapshot)| - -## spider_use_default_database -|name|value| -|----|-----| -|Name|`spider_use_default_database`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_use_default_database](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_use_default_database)| - -## spider_use_flash_logs -|name|value| -|----|-----| -|Name|`spider_use_flash_logs`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_use_flash_logs](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_use_flash_logs)| - -## spider_use_handler -|name|value| -|----|-----| -|Name|`spider_use_handler`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_use_handler](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_use_handler)| - -## spider_use_pushdown_udf -|name|value| -|----|-----| -|Name|`spider_use_pushdown_udf`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_use_pushdown_udf](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_use_pushdown_udf)| - -## spider_use_snapshot_with_flush_tables -|name|value| -|----|-----| -|Name|`spider_use_snapshot_with_flush_tables`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `0`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_use_snapshot_with_flush_tables](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_use_snapshot_with_flush_tables)| - -## spider_use_table_charset -|name|value| -|----|-----| -|Name|`spider_use_table_charset`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `-1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_use_table_charset](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_use_table_charset)| - -## spider_version -|name|value| -|----|-----| -|Name|`spider_version`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_version](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_version)| - -## spider_xa_register_mode -|name|value| -|----|-----| -|Name|`spider_xa_register_mode`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`1`| -|Dynamic|`true`| -|Range|from: `0` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[spider_xa_register_mode](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/#spider_xa_register_mode)| - -## Ssl_accept_renegotiates -|name|value| -|----|-----| -|Name|`Ssl_accept_renegotiates`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_accept_renegotiates](https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/#ssl_accept_renegotiates)| - -## Ssl_accepts -|name|value| -|----|-----| -|Name|`Ssl_accepts`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_accepts](https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/#ssl_accepts)| - -## Ssl_callback_cache_hits -|name|value| -|----|-----| -|Name|`Ssl_callback_cache_hits`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_callback_cache_hits](https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/#ssl_callback_cache_hits)| - -## Ssl_cipher -|name|value| -|----|-----| -|Name|`Ssl_cipher`| -|Type of variable|`string`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_cipher](https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/#ssl_cipher)| - -## Ssl_cipher_list -|name|value| -|----|-----| -|Name|`Ssl_cipher_list`| -|Type of variable|`string`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_cipher_list](https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/#ssl_cipher_list)| - -## Ssl_client_connects -|name|value| -|----|-----| -|Name|`Ssl_client_connects`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_client_connects](https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/#ssl_client_connects)| - -## Ssl_connect_renegotiates -|name|value| -|----|-----| -|Name|`Ssl_connect_renegotiates`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_connect_renegotiates](https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/#ssl_connect_renegotiates)| - -## Ssl_ctx_verify_depth -|name|value| -|----|-----| -|Name|`Ssl_ctx_verify_depth`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_ctx_verify_depth](https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/#ssl_ctx_verify_depth)| - -## Ssl_ctx_verify_mode -|name|value| -|----|-----| -|Name|`Ssl_ctx_verify_mode`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_ctx_verify_mode](https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/#ssl_ctx_verify_mode)| - -## Ssl_default_timeout -|name|value| -|----|-----| -|Name|`Ssl_default_timeout`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_default_timeout](https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/#ssl_default_timeout)| - -## Ssl_finished_accepts -|name|value| -|----|-----| -|Name|`Ssl_finished_accepts`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_finished_accepts](https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/#ssl_finished_accepts)| - -## Ssl_finished_connects -|name|value| -|----|-----| -|Name|`Ssl_finished_connects`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_finished_connects](https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/#ssl_finished_connects)| - -## Ssl_server_not_after -|name|value| -|----|-----| -|Name|`Ssl_server_not_after`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_server_not_after](https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/#ssl_server_not_after)| - -## Ssl_server_not_before -|name|value| -|----|-----| -|Name|`Ssl_server_not_before`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_server_not_before](https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/#ssl_server_not_before)| - -## Ssl_session_cache_hits -|name|value| -|----|-----| -|Name|`Ssl_session_cache_hits`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_session_cache_hits](https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/#ssl_session_cache_hits)| - -## Ssl_session_cache_misses -|name|value| -|----|-----| -|Name|`Ssl_session_cache_misses`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_session_cache_misses](https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/#ssl_session_cache_misses)| - -## Ssl_session_cache_mode -|name|value| -|----|-----| -|Name|`Ssl_session_cache_mode`| -|Type of variable|`string`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_session_cache_mode](https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/#ssl_session_cache_mode)| - -## Ssl_session_cache_overflows -|name|value| -|----|-----| -|Name|`Ssl_session_cache_overflows`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_session_cache_overflows](https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/#ssl_session_cache_overflows)| - -## Ssl_session_cache_size -|name|value| -|----|-----| -|Name|`Ssl_session_cache_size`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_session_cache_size](https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/#ssl_session_cache_size)| - -## Ssl_session_cache_timeouts -|name|value| -|----|-----| -|Name|`Ssl_session_cache_timeouts`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_session_cache_timeouts](https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/#ssl_session_cache_timeouts)| - -## Ssl_sessions_reused -|name|value| -|----|-----| -|Name|`Ssl_sessions_reused`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_sessions_reused](https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/#ssl_sessions_reused)| - -## Ssl_used_session_cache_entries -|name|value| -|----|-----| -|Name|`Ssl_used_session_cache_entries`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_used_session_cache_entries](https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/#ssl_used_session_cache_entries)| - -## Ssl_verify_depth -|name|value| -|----|-----| -|Name|`Ssl_verify_depth`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_verify_depth](https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/#ssl_verify_depth)| - -## Ssl_verify_mode -|name|value| -|----|-----| -|Name|`Ssl_verify_mode`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_verify_mode](https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/#ssl_verify_mode)| - -## Ssl_version -|name|value| -|----|-----| -|Name|`Ssl_version`| -|Type of variable|`string`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_version](https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/#ssl_version)| - -## have_openssl -|name|value| -|----|-----| -|Name|`have_openssl`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[have_openssl](https://mariadb.com/kb/en/library/documentation/ssltls-system-variables/#have_openssl)| - -## have_ssl -|name|value| -|----|-----| -|Name|`have_ssl`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`false`| -|Valid value(s)|`YES`, `DISABLED`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[have_ssl](https://mariadb.com/kb/en/library/documentation/ssltls-system-variables/#have_ssl)| -|dev.mysql.com|[sysvar_have_ssl](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_have_ssl)| - -## ssl_ca -|name|value| -|----|-----| -|Name|`ssl_ca`| -|Command line|`--ssl-ca=file_name`| -|Type of variable|`file name`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_ca](https://mariadb.com/kb/en/library/documentation/ssltls-system-variables/#ssl_ca)| -|dev.mysql.com|[sysvar_ssl_ca](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_ssl_ca)| - -## ssl_capath -|name|value| -|----|-----| -|Name|`ssl_capath`| -|Type of variable|`directory name`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_capath](https://mariadb.com/kb/en/library/documentation/ssltls-system-variables/#ssl_capath)| -|dev.mysql.com|[sysvar_ssl_capath](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_ssl_capath)| - -## ssl_cert -|name|value| -|----|-----| -|Name|`ssl_cert`| -|Type of variable|`file name`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_cert](https://mariadb.com/kb/en/library/documentation/ssltls-system-variables/#ssl_cert)| -|dev.mysql.com|[sysvar_ssl_cert](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_ssl_cert)| - -## ssl_cipher -|name|value| -|----|-----| -|Name|`ssl_cipher`| -|Command line|`--ssl-cipher=name`| -|Type of variable|`string`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_cipher](https://mariadb.com/kb/en/library/documentation/ssltls-system-variables/#ssl_cipher)| -|dev.mysql.com|[sysvar_ssl_cipher](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_ssl_cipher)| - -## ssl_crl -|name|value| -|----|-----| -|Name|`ssl_crl`| -|Type of variable|`file name`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_crl](https://mariadb.com/kb/en/library/documentation/ssltls-system-variables/#ssl_crl)| -|dev.mysql.com|[sysvar_ssl_crl](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_ssl_crl)| - -## ssl_crlpath -|name|value| -|----|-----| -|Name|`ssl_crlpath`| -|Type of variable|`directory name`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_crlpath](https://mariadb.com/kb/en/library/documentation/ssltls-system-variables/#ssl_crlpath)| -|dev.mysql.com|[sysvar_ssl_crlpath](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_ssl_crlpath)| - -## ssl_key -|name|value| -|----|-----| -|Name|`ssl_key`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ssl_key](https://mariadb.com/kb/en/library/documentation/ssltls-system-variables/#ssl_key)| -|dev.mysql.com|[sysvar_ssl_key](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_ssl_key)| - -## tls_version -|name|value| -|----|-----| -|Name|`tls_version`| -|Type of variable|`string`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tls_version](https://mariadb.com/kb/en/library/documentation/ssltls-system-variables/#tls_version)| -|dev.mysql.com|[sysvar_tls_version](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_tls_version)| - -## version_ssl_library -|name|value| -|----|-----| -|Name|`version_ssl_library`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`None`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[version_ssl_library](https://mariadb.com/kb/en/library/documentation/ssltls-system-variables/#version_ssl_library)| - -## extra_max_connections -|name|value| -|----|-----| -|Name|`extra_max_connections`| -|Command line|`--extra-max-connections=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`true`| -|Range|from: `1` to: `100000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[extra_max_connections](https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/#extra_max_connections)| - -## extra_port -|name|value| -|----|-----| -|Name|`extra_port`| -|Command line|`--extra-port=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[extra_port](https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/#extra_port)| - -## thread_handling -|name|value| -|----|-----| -|Name|`thread_handling`| -|Command line|`--thread-handling=name`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`one-thread-per-connection`| -|Dynamic|`false`| -|Valid value(s)|`no-threads`, `one-thread-per-connection`, `pool-of-threads`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[thread_handling](https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/#thread_handling)| -|dev.mysql.com|[sysvar_thread_handling](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_thread_handling)| - -## thread_pool_dedicated_listener -|name|value| -|----|-----| -|Name|`thread_pool_dedicated_listener`| -|Command line|`thread-pool-dedicated-listener={0|1}`| -|Type of variable|`boolean`| -|Scope|``| -|Default value|`0`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[thread_pool_dedicated_listener](https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/#thread_pool_dedicated_listener)| - -## thread_pool_exact_stats -|name|value| -|----|-----| -|Name|`thread_pool_exact_stats`| -|Command line|`thread-pool-exact-stats={0|1}`| -|Type of variable|`boolean`| -|Scope|``| -|Default value|`0`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[thread_pool_exact_stats](https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/#thread_pool_exact_stats)| - -## thread_pool_idle_timeout -|name|value| -|----|-----| -|Name|`thread_pool_idle_timeout`| -|Command line|`thread-pool-idle-timeout=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`60`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[thread_pool_idle_timeout](https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/#thread_pool_idle_timeout)| - -## thread_pool_max_threads -|name|value| -|----|-----| -|Name|`thread_pool_max_threads`| -|Command line|`thread-pool-max-threads=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`65536 (>= MariaDB 10.2.4), 1000 (<= MariaDB 10.2.3, >= MariaDB 10.1), 500 (<= MariaDB 10.0)`| -|Dynamic|`true`| -|Range|from: `1` to: `65536`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[thread_pool_max_threads](https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/#thread_pool_max_threads)| - -## thread_pool_min_threads -|name|value| -|----|-----| -|Name|`thread_pool_min_threads`| -|Command line|`thread-pool-min-threads=#`| -|Type of variable|`integer`| -|Default value|`1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[thread_pool_min_threads](https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/#thread_pool_min_threads)| - -## thread_pool_oversubscribe -|name|value| -|----|-----| -|Name|`thread_pool_oversubscribe`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`3`| -|Dynamic|`true`| -|Range|from: `1` to: `65536`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[thread_pool_oversubscribe](https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/#thread_pool_oversubscribe)| - -## thread_pool_prio_kickup_timer -|name|value| -|----|-----| -|Name|`thread_pool_prio_kickup_timer`| -|Type of variable|`integer`| -|Default value|`1000`| -|Dynamic|`true`| -|Range|from: `0`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[thread_pool_prio_kickup_timer](https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/#thread_pool_prio_kickup_timer)| -|dev.mysql.com|[sysvar_thread_pool_prio_kickup_timer](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_thread_pool_prio_kickup_timer)| - -## thread_pool_priority -|name|value| -|----|-----| -|Name|`thread_pool_priority`| -|Command line|`--thread-pool-priority=#`| -|Scope|`global`, `connection`| -|Default value|`auto`| -|Valid value(s)|`high`, `low`, `auto`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[thread_pool_priority](https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/#thread_pool_priority)| - -## thread_pool_size -|name|value| -|----|-----| -|Name|`thread_pool_size`| -|Command line|`--thread-pool-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Range|from: `1` to: `128`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[thread_pool_size](https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/#thread_pool_size)| -|dev.mysql.com|[sysvar_thread_pool_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_thread_pool_size)| - -## thread_pool_stall_limit -|name|value| -|----|-----| -|Name|`thread_pool_stall_limit`| -|Command line|`--thread-pool-stall-limit=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[thread_pool_stall_limit](https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/#thread_pool_stall_limit)| -|dev.mysql.com|[sysvar_thread_pool_stall_limit](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_thread_pool_stall_limit)| - -## Threadpool_idle_threads -|name|value| -|----|-----| -|Name|`Threadpool_idle_threads`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[threadpool_idle_threads](https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/#threadpool_idle_threads)| - -## Threadpool_threads -|name|value| -|----|-----| -|Name|`Threadpool_threads`| -|Type of variable|`integer`| -|Scope|`global`, `session`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[threadpool_threads](https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/#threadpool_threads)| - -## Tokudb_basement_deserialization_fixed_key -|name|value| -|----|-----| -|Name|`Tokudb_basement_deserialization_fixed_key`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_basement_deserialization_fixed_key](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_basement_deserialization_fixed_key)| - -## Tokudb_basement_deserialization_variable_key -|name|value| -|----|-----| -|Name|`Tokudb_basement_deserialization_variable_key`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_basement_deserialization_variable_key](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_basement_deserialization_variable_key)| - -## Tokudb_basements_decompressed_for_write -|name|value| -|----|-----| -|Name|`Tokudb_basements_decompressed_for_write`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_basements_decompressed_for_write](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_basements_decompressed_for_write)| - -## Tokudb_basements_decompressed_prefetch -|name|value| -|----|-----| -|Name|`Tokudb_basements_decompressed_prefetch`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_basements_decompressed_prefetch](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_basements_decompressed_prefetch)| - -## Tokudb_basements_decompressed_prelocked_range -|name|value| -|----|-----| -|Name|`Tokudb_basements_decompressed_prelocked_range`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_basements_decompressed_prelocked_range](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_basements_decompressed_prelocked_range)| - -## Tokudb_basements_decompressed_target_query -|name|value| -|----|-----| -|Name|`Tokudb_basements_decompressed_target_query`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_basements_decompressed_target_query](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_basements_decompressed_target_query)| - -## Tokudb_basements_fetched_for_write -|name|value| -|----|-----| -|Name|`Tokudb_basements_fetched_for_write`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_basements_fetched_for_write](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_basements_fetched_for_write)| - -## Tokudb_basements_fetched_for_write_bytes -|name|value| -|----|-----| -|Name|`Tokudb_basements_fetched_for_write_bytes`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_basements_fetched_for_write_bytes](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_basements_fetched_for_write_bytes)| - -## Tokudb_basements_fetched_for_write_seconds -|name|value| -|----|-----| -|Name|`Tokudb_basements_fetched_for_write_seconds`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_basements_fetched_for_write_seconds](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_basements_fetched_for_write_seconds)| - -## Tokudb_basements_fetched_prefetch -|name|value| -|----|-----| -|Name|`Tokudb_basements_fetched_prefetch`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_basements_fetched_prefetch](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_basements_fetched_prefetch)| - -## Tokudb_basements_fetched_prefetch_bytes -|name|value| -|----|-----| -|Name|`Tokudb_basements_fetched_prefetch_bytes`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_basements_fetched_prefetch_bytes](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_basements_fetched_prefetch_bytes)| - -## Tokudb_basements_fetched_prefetch_seconds -|name|value| -|----|-----| -|Name|`Tokudb_basements_fetched_prefetch_seconds`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_basements_fetched_prefetch_seconds](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_basements_fetched_prefetch_seconds)| - -## Tokudb_basements_fetched_prelocked_range -|name|value| -|----|-----| -|Name|`Tokudb_basements_fetched_prelocked_range`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_basements_fetched_prelocked_range](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_basements_fetched_prelocked_range)| - -## Tokudb_basements_fetched_prelocked_range_bytes -|name|value| -|----|-----| -|Name|`Tokudb_basements_fetched_prelocked_range_bytes`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_basements_fetched_prelocked_range_bytes](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_basements_fetched_prelocked_range_bytes)| - -## Tokudb_basements_fetched_prelocked_range_seconds -|name|value| -|----|-----| -|Name|`Tokudb_basements_fetched_prelocked_range_seconds`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_basements_fetched_prelocked_range_seconds](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_basements_fetched_prelocked_range_seconds)| - -## Tokudb_basements_fetched_target_query -|name|value| -|----|-----| -|Name|`Tokudb_basements_fetched_target_query`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_basements_fetched_target_query](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_basements_fetched_target_query)| - -## Tokudb_basements_fetched_target_query_bytes -|name|value| -|----|-----| -|Name|`Tokudb_basements_fetched_target_query_bytes`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_basements_fetched_target_query_bytes](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_basements_fetched_target_query_bytes)| - -## Tokudb_basements_fetched_target_query_seconds -|name|value| -|----|-----| -|Name|`Tokudb_basements_fetched_target_query_seconds`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_basements_fetched_target_query_seconds](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_basements_fetched_target_query_seconds)| - -## Tokudb_broadcase_messages_injected_at_root -|name|value| -|----|-----| -|Name|`Tokudb_broadcase_messages_injected_at_root`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_broadcase_messages_injected_at_root](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_broadcase_messages_injected_at_root)| - -## Tokudb_buffers_decompressed_for_write -|name|value| -|----|-----| -|Name|`Tokudb_buffers_decompressed_for_write`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_buffers_decompressed_for_write](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_buffers_decompressed_for_write)| - -## Tokudb_buffers_decompressed_prefetch -|name|value| -|----|-----| -|Name|`Tokudb_buffers_decompressed_prefetch`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_buffers_decompressed_prefetch](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_buffers_decompressed_prefetch)| - -## Tokudb_buffers_decompressed_prelocked_range -|name|value| -|----|-----| -|Name|`Tokudb_buffers_decompressed_prelocked_range`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_buffers_decompressed_prelocked_range](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_buffers_decompressed_prelocked_range)| - -## Tokudb_buffers_decompressed_target_query -|name|value| -|----|-----| -|Name|`Tokudb_buffers_decompressed_target_query`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_buffers_decompressed_target_query](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_buffers_decompressed_target_query)| - -## Tokudb_buffers_fetched_for_write -|name|value| -|----|-----| -|Name|`Tokudb_buffers_fetched_for_write`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_buffers_fetched_for_write](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_buffers_fetched_for_write)| - -## Tokudb_buffers_fetched_for_write_bytes -|name|value| -|----|-----| -|Name|`Tokudb_buffers_fetched_for_write_bytes`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_buffers_fetched_for_write_bytes](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_buffers_fetched_for_write_bytes)| - -## Tokudb_buffers_fetched_for_write_seconds -|name|value| -|----|-----| -|Name|`Tokudb_buffers_fetched_for_write_seconds`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_buffers_fetched_for_write_seconds](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_buffers_fetched_for_write_seconds)| - -## Tokudb_buffers_fetched_prefetch -|name|value| -|----|-----| -|Name|`Tokudb_buffers_fetched_prefetch`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_buffers_fetched_prefetch](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_buffers_fetched_prefetch)| - -## Tokudb_buffers_fetched_prefetch_bytes -|name|value| -|----|-----| -|Name|`Tokudb_buffers_fetched_prefetch_bytes`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_buffers_fetched_prefetch_bytes](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_buffers_fetched_prefetch_bytes)| - -## Tokudb_buffers_fetched_prefetch_seconds -|name|value| -|----|-----| -|Name|`Tokudb_buffers_fetched_prefetch_seconds`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_buffers_fetched_prefetch_seconds](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_buffers_fetched_prefetch_seconds)| - -## Tokudb_buffers_fetched_prelocked_range -|name|value| -|----|-----| -|Name|`Tokudb_buffers_fetched_prelocked_range`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_buffers_fetched_prelocked_range](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_buffers_fetched_prelocked_range)| - -## Tokudb_buffers_fetched_prelocked_range_bytes -|name|value| -|----|-----| -|Name|`Tokudb_buffers_fetched_prelocked_range_bytes`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_buffers_fetched_prelocked_range_bytes](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_buffers_fetched_prelocked_range_bytes)| - -## Tokudb_buffers_fetched_prelocked_range_seconds -|name|value| -|----|-----| -|Name|`Tokudb_buffers_fetched_prelocked_range_seconds`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_buffers_fetched_prelocked_range_seconds](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_buffers_fetched_prelocked_range_seconds)| - -## Tokudb_buffers_fetched_target_query -|name|value| -|----|-----| -|Name|`Tokudb_buffers_fetched_target_query`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_buffers_fetched_target_query](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_buffers_fetched_target_query)| - -## Tokudb_buffers_fetched_target_query_bytes -|name|value| -|----|-----| -|Name|`Tokudb_buffers_fetched_target_query_bytes`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_buffers_fetched_target_query_bytes](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_buffers_fetched_target_query_bytes)| - -## Tokudb_buffers_fetched_target_query_seconds -|name|value| -|----|-----| -|Name|`Tokudb_buffers_fetched_target_query_seconds`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_buffers_fetched_target_query_seconds](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_buffers_fetched_target_query_seconds)| - -## Tokudb_cachetable_cleaner_executions -|name|value| -|----|-----| -|Name|`Tokudb_cachetable_cleaner_executions`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_cachetable_cleaner_executions](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_cachetable_cleaner_executions)| - -## Tokudb_cachetable_cleaner_iterations -|name|value| -|----|-----| -|Name|`Tokudb_cachetable_cleaner_iterations`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_cachetable_cleaner_iterations](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_cachetable_cleaner_iterations)| - -## Tokudb_cachetable_cleaner_period -|name|value| -|----|-----| -|Name|`Tokudb_cachetable_cleaner_period`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_cachetable_cleaner_period](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_cachetable_cleaner_period)| - -## Tokudb_cachetable_evictions -|name|value| -|----|-----| -|Name|`Tokudb_cachetable_evictions`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_cachetable_evictions](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_cachetable_evictions)| - -## Tokudb_cachetable_long_wait_pressure_count -|name|value| -|----|-----| -|Name|`Tokudb_cachetable_long_wait_pressure_count`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_cachetable_long_wait_pressure_count](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_cachetable_long_wait_pressure_count)| - -## Tokudb_cachetable_long_wait_pressure_time -|name|value| -|----|-----| -|Name|`Tokudb_cachetable_long_wait_pressure_time`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_cachetable_long_wait_pressure_time](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_cachetable_long_wait_pressure_time)| - -## Tokudb_cachetable_miss -|name|value| -|----|-----| -|Name|`Tokudb_cachetable_miss`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_cachetable_miss](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_cachetable_miss)| - -## Tokudb_cachetable_miss_time -|name|value| -|----|-----| -|Name|`Tokudb_cachetable_miss_time`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_cachetable_miss_time](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_cachetable_miss_time)| - -## Tokudb_cachetable_prefetches -|name|value| -|----|-----| -|Name|`Tokudb_cachetable_prefetches`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_cachetable_prefetches](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_cachetable_prefetches)| - -## Tokudb_cachetable_size_cachepressure -|name|value| -|----|-----| -|Name|`Tokudb_cachetable_size_cachepressure`| -|Type of variable|`byte`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_cachetable_size_cachepressure](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_cachetable_size_cachepressure)| - -## Tokudb_cachetable_size_cloned -|name|value| -|----|-----| -|Name|`Tokudb_cachetable_size_cloned`| -|Type of variable|`byte`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_cachetable_size_cloned](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_cachetable_size_cloned)| - -## Tokudb_cachetable_size_current -|name|value| -|----|-----| -|Name|`Tokudb_cachetable_size_current`| -|Type of variable|`byte`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_cachetable_size_current](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_cachetable_size_current)| - -## Tokudb_cachetable_size_leaf -|name|value| -|----|-----| -|Name|`Tokudb_cachetable_size_leaf`| -|Type of variable|`byte`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_cachetable_size_leaf](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_cachetable_size_leaf)| - -## Tokudb_cachetable_size_limit -|name|value| -|----|-----| -|Name|`Tokudb_cachetable_size_limit`| -|Type of variable|`byte`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_cachetable_size_limit](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_cachetable_size_limit)| - -## Tokudb_cachetable_size_nonleaf -|name|value| -|----|-----| -|Name|`Tokudb_cachetable_size_nonleaf`| -|Type of variable|`byte`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_cachetable_size_nonleaf](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_cachetable_size_nonleaf)| - -## Tokudb_cachetable_size_rollback -|name|value| -|----|-----| -|Name|`Tokudb_cachetable_size_rollback`| -|Type of variable|`byte`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_cachetable_size_rollback](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_cachetable_size_rollback)| - -## Tokudb_cachetable_size_writing -|name|value| -|----|-----| -|Name|`Tokudb_cachetable_size_writing`| -|Type of variable|`byte`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_cachetable_size_writing](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_cachetable_size_writing)| - -## Tokudb_cachetable_wait_pressure_count -|name|value| -|----|-----| -|Name|`Tokudb_cachetable_wait_pressure_count`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_cachetable_wait_pressure_count](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_cachetable_wait_pressure_count)| - -## Tokudb_cachetable_wait_pressure_time -|name|value| -|----|-----| -|Name|`Tokudb_cachetable_wait_pressure_time`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_cachetable_wait_pressure_time](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_cachetable_wait_pressure_time)| - -## Tokudb_checkpoint_begin_time -|name|value| -|----|-----| -|Name|`Tokudb_checkpoint_begin_time`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_checkpoint_begin_time](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_checkpoint_begin_time)| - -## Tokudb_checkpoint_duration -|name|value| -|----|-----| -|Name|`Tokudb_checkpoint_duration`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_checkpoint_duration](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_checkpoint_duration)| - -## Tokudb_checkpoint_duration_last -|name|value| -|----|-----| -|Name|`Tokudb_checkpoint_duration_last`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_checkpoint_duration_last](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_checkpoint_duration_last)| - -## Tokudb_checkpoint_failed -|name|value| -|----|-----| -|Name|`Tokudb_checkpoint_failed`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_checkpoint_failed](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_checkpoint_failed)| - -## Tokudb_checkpoint_last_began -|name|value| -|----|-----| -|Name|`Tokudb_checkpoint_last_began`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_checkpoint_last_began](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_checkpoint_last_began)| - -## Tokudb_checkpoint_last_complete_began -|name|value| -|----|-----| -|Name|`Tokudb_checkpoint_last_complete_began`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_checkpoint_last_complete_began](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_checkpoint_last_complete_began)| - -## Tokudb_checkpoint_last_complete_ended -|name|value| -|----|-----| -|Name|`Tokudb_checkpoint_last_complete_ended`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_checkpoint_last_complete_ended](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_checkpoint_last_complete_ended)| - -## Tokudb_checkpoint_long_begin_count -|name|value| -|----|-----| -|Name|`Tokudb_checkpoint_long_begin_count`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_checkpoint_long_begin_count](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_checkpoint_long_begin_count)| - -## Tokudb_checkpoint_long_begin_time -|name|value| -|----|-----| -|Name|`Tokudb_checkpoint_long_begin_time`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_checkpoint_long_begin_time](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_checkpoint_long_begin_time)| - -## Tokudb_checkpoint_period -|name|value| -|----|-----| -|Name|`Tokudb_checkpoint_period`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_checkpoint_period](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_checkpoint_period)| - -## Tokudb_checkpoint_taken -|name|value| -|----|-----| -|Name|`Tokudb_checkpoint_taken`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_checkpoint_taken](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_checkpoint_taken)| - -## Tokudb_cursor_skip_deleted_leaf_entry -|name|value| -|----|-----| -|Name|`Tokudb_cursor_skip_deleted_leaf_entry`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_cursor_skip_deleted_leaf_entry](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_cursor_skip_deleted_leaf_entry)| - -## Tokudb_db_closes -|name|value| -|----|-----| -|Name|`Tokudb_db_closes`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_db_closes](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_db_closes)| - -## Tokudb_db_open_current -|name|value| -|----|-----| -|Name|`Tokudb_db_open_current`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_db_open_current](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_db_open_current)| - -## Tokudb_db_open_max -|name|value| -|----|-----| -|Name|`Tokudb_db_open_max`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_db_open_max](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_db_open_max)| - -## Tokudb_db_opens -|name|value| -|----|-----| -|Name|`Tokudb_db_opens`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_db_opens](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_db_opens)| - -## Tokudb_descriptor_set -|name|value| -|----|-----| -|Name|`Tokudb_descriptor_set`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_descriptor_set](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_descriptor_set)| - -## Tokudb_dictionary_broadcast_updates -|name|value| -|----|-----| -|Name|`Tokudb_dictionary_broadcast_updates`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_dictionary_broadcast_updates](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_dictionary_broadcast_updates)| - -## Tokudb_dictionary_updates -|name|value| -|----|-----| -|Name|`Tokudb_dictionary_updates`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_dictionary_updates](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_dictionary_updates)| - -## Tokudb_filesystem_fsync_num -|name|value| -|----|-----| -|Name|`Tokudb_filesystem_fsync_num`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_filesystem_fsync_num](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_filesystem_fsync_num)| - -## Tokudb_filesystem_fsync_time -|name|value| -|----|-----| -|Name|`Tokudb_filesystem_fsync_time`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_filesystem_fsync_time](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_filesystem_fsync_time)| - -## Tokudb_filesystem_long_fsync_num -|name|value| -|----|-----| -|Name|`Tokudb_filesystem_long_fsync_num`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_filesystem_long_fsync_num](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_filesystem_long_fsync_num)| - -## Tokudb_filesystem_long_fsync_time -|name|value| -|----|-----| -|Name|`Tokudb_filesystem_long_fsync_time`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_filesystem_long_fsync_time](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_filesystem_long_fsync_time)| - -## Tokudb_filesystem_threads_blocked_by_full_disk -|name|value| -|----|-----| -|Name|`Tokudb_filesystem_threads_blocked_by_full_disk`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_filesystem_threads_blocked_by_full_disk](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_filesystem_threads_blocked_by_full_disk)| - -## Tokudb_leaf_compression_to_memory_seconds -|name|value| -|----|-----| -|Name|`Tokudb_leaf_compression_to_memory_seconds`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_leaf_compression_to_memory_seconds](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_leaf_compression_to_memory_seconds)| - -## Tokudb_leaf_decompression_to_memory_seconds -|name|value| -|----|-----| -|Name|`Tokudb_leaf_decompression_to_memory_seconds`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_leaf_decompression_to_memory_seconds](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_leaf_decompression_to_memory_seconds)| - -## Tokudb_leaf_deserialization_to_memory_seconds -|name|value| -|----|-----| -|Name|`Tokudb_leaf_deserialization_to_memory_seconds`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_leaf_deserialization_to_memory_seconds](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_leaf_deserialization_to_memory_seconds)| - -## Tokudb_leaf_node_compression_ratio -|name|value| -|----|-----| -|Name|`Tokudb_leaf_node_compression_ratio`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_leaf_node_compression_ratio](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_leaf_node_compression_ratio)| - -## Tokudb_leaf_node_full_evictions -|name|value| -|----|-----| -|Name|`Tokudb_leaf_node_full_evictions`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_leaf_node_full_evictions](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_leaf_node_full_evictions)| - -## Tokudb_leaf_node_full_evictions_bytes -|name|value| -|----|-----| -|Name|`Tokudb_leaf_node_full_evictions_bytes`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_leaf_node_full_evictions_bytes](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_leaf_node_full_evictions_bytes)| - -## Tokudb_leaf_node_partial_evictions -|name|value| -|----|-----| -|Name|`Tokudb_leaf_node_partial_evictions`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_leaf_node_partial_evictions](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_leaf_node_partial_evictions)| - -## Tokudb_leaf_node_partial_evictions_bytes -|name|value| -|----|-----| -|Name|`Tokudb_leaf_node_partial_evictions_bytes`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_leaf_node_partial_evictions_bytes](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_leaf_node_partial_evictions_bytes)| - -## Tokudb_leaf_nodes_created -|name|value| -|----|-----| -|Name|`Tokudb_leaf_nodes_created`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_leaf_nodes_created](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_leaf_nodes_created)| - -## Tokudb_leaf_nodes_destroyed -|name|value| -|----|-----| -|Name|`Tokudb_leaf_nodes_destroyed`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_leaf_nodes_destroyed](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_leaf_nodes_destroyed)| - -## Tokudb_leaf_nodes_flushed_checkpoint -|name|value| -|----|-----| -|Name|`Tokudb_leaf_nodes_flushed_checkpoint`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_leaf_nodes_flushed_checkpoint](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_leaf_nodes_flushed_checkpoint)| - -## Tokudb_leaf_nodes_flushed_checkpoint_bytes -|name|value| -|----|-----| -|Name|`Tokudb_leaf_nodes_flushed_checkpoint_bytes`| -|Type of variable|`byte`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_leaf_nodes_flushed_checkpoint_bytes](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_leaf_nodes_flushed_checkpoint_bytes)| - -## Tokudb_leaf_nodes_flushed_checkpoint_seconds -|name|value| -|----|-----| -|Name|`Tokudb_leaf_nodes_flushed_checkpoint_seconds`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_leaf_nodes_flushed_checkpoint_seconds](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_leaf_nodes_flushed_checkpoint_seconds)| - -## Tokudb_leaf_nodes_flushed_checkpoint_uncompressed_bytes -|name|value| -|----|-----| -|Name|`Tokudb_leaf_nodes_flushed_checkpoint_uncompressed_bytes`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_leaf_nodes_flushed_checkpoint_uncompressed_bytes](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_leaf_nodes_flushed_checkpoint_uncompressed_bytes)| - -## Tokudb_leaf_nodes_flushed_not_checkpoint -|name|value| -|----|-----| -|Name|`Tokudb_leaf_nodes_flushed_not_checkpoint`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_leaf_nodes_flushed_not_checkpoint](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_leaf_nodes_flushed_not_checkpoint)| - -## Tokudb_leaf_nodes_flushed_not_checkpoint_bytes -|name|value| -|----|-----| -|Name|`Tokudb_leaf_nodes_flushed_not_checkpoint_bytes`| -|Type of variable|`byte`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_leaf_nodes_flushed_not_checkpoint_bytes](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_leaf_nodes_flushed_not_checkpoint_bytes)| - -## Tokudb_leaf_nodes_flushed_not_checkpoint_seconds -|name|value| -|----|-----| -|Name|`Tokudb_leaf_nodes_flushed_not_checkpoint_seconds`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_leaf_nodes_flushed_not_checkpoint_seconds](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_leaf_nodes_flushed_not_checkpoint_seconds)| - -## Tokudb_leaf_nodes_flushed_not_checkpoint_uncompressed_bytes -|name|value| -|----|-----| -|Name|`Tokudb_leaf_nodes_flushed_not_checkpoint_uncompressed_bytes`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_leaf_nodes_flushed_not_checkpoint_uncompressed_bytes](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_leaf_nodes_flushed_not_checkpoint_uncompressed_bytes)| - -## Tokudb_leaf_serialization_to_memory_seconds -|name|value| -|----|-----| -|Name|`Tokudb_leaf_serialization_to_memory_seconds`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_leaf_serialization_to_memory_seconds](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_leaf_serialization_to_memory_seconds)| - -## Tokudb_loader_num_created -|name|value| -|----|-----| -|Name|`Tokudb_loader_num_created`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_loader_num_created](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_loader_num_created)| - -## Tokudb_loader_num_current -|name|value| -|----|-----| -|Name|`Tokudb_loader_num_current`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_loader_num_current](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_loader_num_current)| - -## Tokudb_loader_num_max -|name|value| -|----|-----| -|Name|`Tokudb_loader_num_max`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_loader_num_max](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_loader_num_max)| - -## Tokudb_locktree_escalation_num -|name|value| -|----|-----| -|Name|`Tokudb_locktree_escalation_num`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_locktree_escalation_num](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_locktree_escalation_num)| - -## Tokudb_locktree_escalation_seconds -|name|value| -|----|-----| -|Name|`Tokudb_locktree_escalation_seconds`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_locktree_escalation_seconds](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_locktree_escalation_seconds)| - -## Tokudb_locktree_latest_post_escalation_memory_size -|name|value| -|----|-----| -|Name|`Tokudb_locktree_latest_post_escalation_memory_size`| -|Type of variable|`byte`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_locktree_latest_post_escalation_memory_size](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_locktree_latest_post_escalation_memory_size)| - -## Tokudb_locktree_long_wait_count -|name|value| -|----|-----| -|Name|`Tokudb_locktree_long_wait_count`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_locktree_long_wait_count](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_locktree_long_wait_count)| - -## Tokudb_locktree_long_wait_escalation_count -|name|value| -|----|-----| -|Name|`Tokudb_locktree_long_wait_escalation_count`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_locktree_long_wait_escalation_count](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_locktree_long_wait_escalation_count)| - -## Tokudb_locktree_long_wait_escalation_time -|name|value| -|----|-----| -|Name|`Tokudb_locktree_long_wait_escalation_time`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_locktree_long_wait_escalation_time](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_locktree_long_wait_escalation_time)| - -## Tokudb_locktree_long_wait_time -|name|value| -|----|-----| -|Name|`Tokudb_locktree_long_wait_time`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_locktree_long_wait_time](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_locktree_long_wait_time)| - -## Tokudb_locktree_memory_size -|name|value| -|----|-----| -|Name|`Tokudb_locktree_memory_size`| -|Type of variable|`byte`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_locktree_memory_size](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_locktree_memory_size)| - -## Tokudb_locktree_memory_size_limit -|name|value| -|----|-----| -|Name|`Tokudb_locktree_memory_size_limit`| -|Type of variable|`byte`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_locktree_memory_size_limit](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_locktree_memory_size_limit)| - -## Tokudb_locktree_open_current -|name|value| -|----|-----| -|Name|`Tokudb_locktree_open_current`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_locktree_open_current](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_locktree_open_current)| - -## Tokudb_locktree_pending_lock_requests -|name|value| -|----|-----| -|Name|`Tokudb_locktree_pending_lock_requests`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_locktree_pending_lock_requests](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_locktree_pending_lock_requests)| - -## Tokudb_locktree_sto_eligible_num -|name|value| -|----|-----| -|Name|`Tokudb_locktree_sto_eligible_num`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_locktree_sto_eligible_num](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_locktree_sto_eligible_num)| - -## Tokudb_locktree_sto_ended_num -|name|value| -|----|-----| -|Name|`Tokudb_locktree_sto_ended_num`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_locktree_sto_ended_num](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_locktree_sto_ended_num)| - -## Tokudb_locktree_sto_ended_seconds -|name|value| -|----|-----| -|Name|`Tokudb_locktree_sto_ended_seconds`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_locktree_sto_ended_seconds](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_locktree_sto_ended_seconds)| - -## Tokudb_locktree_timeout_count -|name|value| -|----|-----| -|Name|`Tokudb_locktree_timeout_count`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_locktree_timeout_count](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_locktree_timeout_count)| - -## Tokudb_locktree_wait_count -|name|value| -|----|-----| -|Name|`Tokudb_locktree_wait_count`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_locktree_wait_count](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_locktree_wait_count)| - -## Tokudb_locktree_wait_escalation_count -|name|value| -|----|-----| -|Name|`Tokudb_locktree_wait_escalation_count`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_locktree_wait_escalation_count](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_locktree_wait_escalation_count)| - -## Tokudb_locktree_wait_escalation_time -|name|value| -|----|-----| -|Name|`Tokudb_locktree_wait_escalation_time`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_locktree_wait_escalation_time](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_locktree_wait_escalation_time)| - -## Tokudb_locktree_wait_time -|name|value| -|----|-----| -|Name|`Tokudb_locktree_wait_time`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_locktree_wait_time](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_locktree_wait_time)| - -## Tokudb_logger_wait_long -|name|value| -|----|-----| -|Name|`Tokudb_logger_wait_long`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_logger_wait_long](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_logger_wait_long)| - -## Tokudb_logger_writes -|name|value| -|----|-----| -|Name|`Tokudb_logger_writes`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_logger_writes](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_logger_writes)| - -## Tokudb_logger_writes_bytes -|name|value| -|----|-----| -|Name|`Tokudb_logger_writes_bytes`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_logger_writes_bytes](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_logger_writes_bytes)| - -## Tokudb_logger_writes_seconds -|name|value| -|----|-----| -|Name|`Tokudb_logger_writes_seconds`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_logger_writes_seconds](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_logger_writes_seconds)| - -## Tokudb_logger_writes_uncompressed_bytes -|name|value| -|----|-----| -|Name|`Tokudb_logger_writes_uncompressed_bytes`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_logger_writes_uncompressed_bytes](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_logger_writes_uncompressed_bytes)| - -## Tokudb_mem_estimated_maximum_memory_footprint -|name|value| -|----|-----| -|Name|`Tokudb_mem_estimated_maximum_memory_footprint`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_mem_estimated_maximum_memory_footprint](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_mem_estimated_maximum_memory_footprint)| - -## Tokudb_messages_flushed_from_h1_to_leaves_bytes -|name|value| -|----|-----| -|Name|`Tokudb_messages_flushed_from_h1_to_leaves_bytes`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_messages_flushed_from_h1_to_leaves_bytes](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_messages_flushed_from_h1_to_leaves_bytes)| - -## Tokudb_messages_ignored_by_leaf_due_to_msn -|name|value| -|----|-----| -|Name|`Tokudb_messages_ignored_by_leaf_due_to_msn`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_messages_ignored_by_leaf_due_to_msn](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_messages_ignored_by_leaf_due_to_msn)| - -## Tokudb_messages_in_trees_estimate_bytes -|name|value| -|----|-----| -|Name|`Tokudb_messages_in_trees_estimate_bytes`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_messages_in_trees_estimate_bytes](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_messages_in_trees_estimate_bytes)| - -## Tokudb_messages_injected_at_root -|name|value| -|----|-----| -|Name|`Tokudb_messages_injected_at_root`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_messages_injected_at_root](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_messages_injected_at_root)| - -## Tokudb_messages_injected_at_root_bytes -|name|value| -|----|-----| -|Name|`Tokudb_messages_injected_at_root_bytes`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_messages_injected_at_root_bytes](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_messages_injected_at_root_bytes)| - -## Tokudb_nonleaf_compression_to_memory_seconds -|name|value| -|----|-----| -|Name|`Tokudb_nonleaf_compression_to_memory_seconds`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_nonleaf_compression_to_memory_seconds](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_nonleaf_compression_to_memory_seconds)| - -## Tokudb_nonleaf_decompression_to_memory_seconds -|name|value| -|----|-----| -|Name|`Tokudb_nonleaf_decompression_to_memory_seconds`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_nonleaf_decompression_to_memory_seconds](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_nonleaf_decompression_to_memory_seconds)| - -## Tokudb_nonleaf_deserialization_to_memory_seconds -|name|value| -|----|-----| -|Name|`Tokudb_nonleaf_deserialization_to_memory_seconds`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_nonleaf_deserialization_to_memory_seconds](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_nonleaf_deserialization_to_memory_seconds)| - -## Tokudb_nonleaf_node_compression_ratio -|name|value| -|----|-----| -|Name|`Tokudb_nonleaf_node_compression_ratio`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_nonleaf_node_compression_ratio](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_nonleaf_node_compression_ratio)| - -## Tokudb_nonleaf_node_full_evictions -|name|value| -|----|-----| -|Name|`Tokudb_nonleaf_node_full_evictions`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_nonleaf_node_full_evictions](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_nonleaf_node_full_evictions)| - -## Tokudb_nonleaf_node_full_evictions_bytes -|name|value| -|----|-----| -|Name|`Tokudb_nonleaf_node_full_evictions_bytes`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_nonleaf_node_full_evictions_bytes](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_nonleaf_node_full_evictions_bytes)| - -## Tokudb_nonleaf_node_partial_evictions -|name|value| -|----|-----| -|Name|`Tokudb_nonleaf_node_partial_evictions`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_nonleaf_node_partial_evictions](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_nonleaf_node_partial_evictions)| - -## Tokudb_nonleaf_node_partial_evictions_bytes -|name|value| -|----|-----| -|Name|`Tokudb_nonleaf_node_partial_evictions_bytes`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_nonleaf_node_partial_evictions_bytes](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_nonleaf_node_partial_evictions_bytes)| - -## Tokudb_nonleaf_nodes_created -|name|value| -|----|-----| -|Name|`Tokudb_nonleaf_nodes_created`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_nonleaf_nodes_created](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_nonleaf_nodes_created)| - -## Tokudb_nonleaf_nodes_destroyed -|name|value| -|----|-----| -|Name|`Tokudb_nonleaf_nodes_destroyed`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_nonleaf_nodes_destroyed](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_nonleaf_nodes_destroyed)| - -## Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint -|name|value| -|----|-----| -|Name|`Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_nonleaf_nodes_flushed_to_disk_checkpoint](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_nonleaf_nodes_flushed_to_disk_checkpoint)| - -## Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_bytes -|name|value| -|----|-----| -|Name|`Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_bytes`| -|Type of variable|`byte`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_bytes](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_bytes)| - -## Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_seconds -|name|value| -|----|-----| -|Name|`Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_seconds`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_seconds](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_seconds)| - -## Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_uncompressed_bytes -|name|value| -|----|-----| -|Name|`Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_uncompressed_bytes`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_uncompressed_bytes](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_uncompressed_bytes)| - -## Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint -|name|value| -|----|-----| -|Name|`Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint)| - -## Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_bytes -|name|value| -|----|-----| -|Name|`Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_bytes`| -|Type of variable|`byte`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_bytes](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_bytes)| - -## Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_seconds -|name|value| -|----|-----| -|Name|`Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_seconds`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_seconds](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_seconds)| - -## Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_uncompressed_bytes -|name|value| -|----|-----| -|Name|`Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_uncompressed_bytes`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_uncompressed_bytes](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_uncompressed_bytes)| - -## Tokudb_nonleaf_serialization_to_memory_seconds -|name|value| -|----|-----| -|Name|`Tokudb_nonleaf_serialization_to_memory_seconds`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_nonleaf_serialization_to_memory_seconds](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_nonleaf_serialization_to_memory_seconds)| - -## Tokudb_overall_node_compression_ratio -|name|value| -|----|-----| -|Name|`Tokudb_overall_node_compression_ratio`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_overall_node_compression_ratio](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_overall_node_compression_ratio)| - -## Tokudb_pivots_fetched_for_query -|name|value| -|----|-----| -|Name|`Tokudb_pivots_fetched_for_query`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_pivots_fetched_for_query](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_pivots_fetched_for_query)| - -## Tokudb_pivots_fetched_for_query_bytes -|name|value| -|----|-----| -|Name|`Tokudb_pivots_fetched_for_query_bytes`| -|Type of variable|`byte`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_pivots_fetched_for_query_bytes](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_pivots_fetched_for_query_bytes)| - -## Tokudb_pivots_fetched_for_query_seconds -|name|value| -|----|-----| -|Name|`Tokudb_pivots_fetched_for_query_seconds`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_pivots_fetched_for_query_seconds](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_pivots_fetched_for_query_seconds)| - -## Tokudb_pivots_fetched_for_prefetch -|name|value| -|----|-----| -|Name|`Tokudb_pivots_fetched_for_prefetch`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_pivots_fetched_for_prefetch](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_pivots_fetched_for_prefetch)| - -## Tokudb_pivots_fetched_for_prefetch_bytes -|name|value| -|----|-----| -|Name|`Tokudb_pivots_fetched_for_prefetch_bytes`| -|Type of variable|`byte`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_pivots_fetched_for_prefetch_bytes](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_pivots_fetched_for_prefetch_bytes)| - -## Tokudb_pivots_fetched_for_prefetch_seconds -|name|value| -|----|-----| -|Name|`Tokudb_pivots_fetched_for_prefetch_seconds`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_pivots_fetched_for_prefetch_seconds](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_pivots_fetched_for_prefetch_seconds)| - -## Tokudb_pivots_fetched_for_write -|name|value| -|----|-----| -|Name|`Tokudb_pivots_fetched_for_write`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_pivots_fetched_for_write](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_pivots_fetched_for_write)| - -## Tokudb_pivots_fetched_for_write_bytes -|name|value| -|----|-----| -|Name|`Tokudb_pivots_fetched_for_write_bytes`| -|Type of variable|`byte`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_pivots_fetched_for_write_bytes](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_pivots_fetched_for_write_bytes)| - -## Tokudb_pivots_fetched_for_write_seconds -|name|value| -|----|-----| -|Name|`Tokudb_pivots_fetched_for_write_seconds`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_pivots_fetched_for_write_seconds](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_pivots_fetched_for_write_seconds)| - -## Tokudb_promotion_h1_roots_injected_into -|name|value| -|----|-----| -|Name|`Tokudb_promotion_h1_roots_injected_into`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_promotion_h1_roots_injected_into](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_promotion_h1_roots_injected_into)| - -## Tokudb_promotion_injections_at_depth_0 -|name|value| -|----|-----| -|Name|`Tokudb_promotion_injections_at_depth_0`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_promotion_injections_at_depth_0](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_promotion_injections_at_depth_0)| - -## Tokudb_promotion_injections_at_depth_1 -|name|value| -|----|-----| -|Name|`Tokudb_promotion_injections_at_depth_1`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_promotion_injections_at_depth_1](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_promotion_injections_at_depth_1)| - -## Tokudb_promotion_injections_at_depth_2 -|name|value| -|----|-----| -|Name|`Tokudb_promotion_injections_at_depth_2`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_promotion_injections_at_depth_2](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_promotion_injections_at_depth_2)| - -## Tokudb_promotion_injections_at_depth_3 -|name|value| -|----|-----| -|Name|`Tokudb_promotion_injections_at_depth_3`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_promotion_injections_at_depth_3](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_promotion_injections_at_depth_3)| - -## Tokudb_promotion_injections_lower_than_depth_3 -|name|value| -|----|-----| -|Name|`Tokudb_promotion_injections_lower_than_depth_3`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_promotion_injections_lower_than_depth_3](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_promotion_injections_lower_than_depth_3)| - -## Tokudb_promotion_leaf_roots_injected_into -|name|value| -|----|-----| -|Name|`Tokudb_promotion_leaf_roots_injected_into`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_promotion_leaf_roots_injected_into](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_promotion_leaf_roots_injected_into)| - -## Tokudb_promotion_roots_split -|name|value| -|----|-----| -|Name|`Tokudb_promotion_roots_split`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_promotion_roots_split](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_promotion_roots_split)| - -## Tokudb_promotion_stopped_after_locking_child -|name|value| -|----|-----| -|Name|`Tokudb_promotion_stopped_after_locking_child`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_promotion_stopped_after_locking_child](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_promotion_stopped_after_locking_child)| - -## Tokudb_promotion_stopped_at_height_1 -|name|value| -|----|-----| -|Name|`Tokudb_promotion_stopped_at_height_1`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_promotion_stopped_at_height_1](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_promotion_stopped_at_height_1)| - -## Tokudb_promotion_stopped_child_locked_or_not_in_memory -|name|value| -|----|-----| -|Name|`Tokudb_promotion_stopped_child_locked_or_not_in_memory`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_promotion_stopped_child_locked_or_not_in_memory](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_promotion_stopped_child_locked_or_not_in_memory)| - -## Tokudb_promotion_stopped_child_not_fully_in_memory -|name|value| -|----|-----| -|Name|`Tokudb_promotion_stopped_child_not_fully_in_memory`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_promotion_stopped_child_not_fully_in_memory](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_promotion_stopped_child_not_fully_in_memory)| - -## Tokudb_promotion_stopped_nonempty_buffer -|name|value| -|----|-----| -|Name|`Tokudb_promotion_stopped_nonempty_buffer`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_promotion_stopped_nonempty_buffer](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_promotion_stopped_nonempty_buffer)| - -## Tokudb_txn_aborts -|name|value| -|----|-----| -|Name|`Tokudb_txn_aborts`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_txn_aborts](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_txn_aborts)| - -## Tokudb_txn_begin -|name|value| -|----|-----| -|Name|`Tokudb_txn_begin`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_txn_begin](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_txn_begin)| - -## Tokudb_txn_begin_read_only -|name|value| -|----|-----| -|Name|`Tokudb_txn_begin_read_only`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_txn_begin_read_only](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_txn_begin_read_only)| - -## Tokudb_txn_commits -|name|value| -|----|-----| -|Name|`Tokudb_txn_commits`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_txn_commits](https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/#tokudb_txn_commits)| - -## tokudb_alter_print_error -|name|value| -|----|-----| -|Name|`tokudb_alter_print_error`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_alter_print_error](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_alter_print_error)| - -## tokudb_analyze_time -|name|value| -|----|-----| -|Name|`tokudb_analyze_time`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`5`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_analyze_time](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_analyze_time)| - -## tokudb_block_size -|name|value| -|----|-----| -|Name|`tokudb_block_size`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`4194304 (4MB)`| -|Dynamic|`true`| -|Range|from: `0` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_block_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_block_size)| - -## tokudb_bulk_fetch -|name|value| -|----|-----| -|Name|`tokudb_bulk_fetch`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_bulk_fetch](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_bulk_fetch)| - -## tokudb_cache_size -|name|value| -|----|-----| -|Name|`tokudb_cache_size`| -|Type of variable|`integer`| -|Default value|`Half of the total system memory`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_cache_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_cache_size)| - -## tokudb_check_jemalloc -|name|value| -|----|-----| -|Name|`tokudb_check_jemalloc`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`true`| -|Valid value(s)|`0`, `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_check_jemalloc](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_check_jemalloc)| - -## tokudb_checkpoint_lock -|name|value| -|----|-----| -|Name|`tokudb_checkpoint_lock`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_checkpoint_lock](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_checkpoint_lock)| - -## tokudb_checkpoint_on_flush_logs -|name|value| -|----|-----| -|Name|`tokudb_checkpoint_on_flush_logs`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_checkpoint_on_flush_logs](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_checkpoint_on_flush_logs)| - -## tokudb_checkpointing_period -|name|value| -|----|-----| -|Name|`tokudb_checkpointing_period`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`60`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_checkpointing_period](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_checkpointing_period)| - -## tokudb_cleaner_iterations -|name|value| -|----|-----| -|Name|`tokudb_cleaner_iterations`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`5`| -|Dynamic|`true`| -|Range|from: `0` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_cleaner_iterations](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_cleaner_iterations)| - -## tokudb_cleaner_period -|name|value| -|----|-----| -|Name|`tokudb_cleaner_period`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`true`| -|Range|from: `0` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_cleaner_period](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_cleaner_period)| - -## tokudb_commit_sync -|name|value| -|----|-----| -|Name|`tokudb_commit_sync`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_commit_sync](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_commit_sync)| - -## tokudb_create_index_online -|name|value| -|----|-----| -|Name|`tokudb_create_index_online`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_create_index_online](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_create_index_online)| - -## tokudb_data_dir -|name|value| -|----|-----| -|Name|`tokudb_data_dir`| -|Type of variable|`string`| -|Default value|`Empty (the MariaDB datadir is used)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_data_dir](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_data_dir)| - -## tokudb_debug -|name|value| -|----|-----| -|Name|`tokudb_debug`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_debug](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_debug)| - -## tokudb_directio -|name|value| -|----|-----| -|Name|`tokudb_directio`| -|Type of variable|`boolean`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_directio](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_directio)| - -## tokudb_disable_hot_alter -|name|value| -|----|-----| -|Name|`tokudb_disable_hot_alter`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_disable_hot_alter](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_disable_hot_alter)| - -## tokudb_disable_prefetching -|name|value| -|----|-----| -|Name|`tokudb_disable_prefetching`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_disable_prefetching](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_disable_prefetching)| - -## tokudb_disable_slow_alter -|name|value| -|----|-----| -|Name|`tokudb_disable_slow_alter`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_disable_slow_alter](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_disable_slow_alter)| - -## tokudb_empty_scan -|name|value| -|----|-----| -|Name|`tokudb_empty_scan`| -|Scope|`global`, `session`| -|Default value|`rl`| -|Dynamic|`true`| -|Valid value(s)|`lr`, `rl`, `disabled`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_empty_scan](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_empty_scan)| - -## tokudb_fs_reserve_percent -|name|value| -|----|-----| -|Name|`tokudb_fs_reserve_percent`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`5`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_fs_reserve_percent](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_fs_reserve_percent)| - -## tokudb_fsync_log_period -|name|value| -|----|-----| -|Name|`tokudb_fsync_log_period`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_fsync_log_period](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_fsync_log_period)| - -## tokudb_hide_default_row_format -|name|value| -|----|-----| -|Name|`tokudb_hide_default_row_format`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_hide_default_row_format](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_hide_default_row_format)| - -## tokudb_killed_time -|name|value| -|----|-----| -|Name|`tokudb_killed_time`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`4000`| -|Dynamic|`true`| -|Range|from: `0` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_killed_time](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_killed_time)| - -## tokudb_last_lock_timeout -|name|value| -|----|-----| -|Name|`tokudb_last_lock_timeout`| -|Scope|`global`, `session`| -|Default value|`Empty`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_last_lock_timeout](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_last_lock_timeout)| - -## tokudb_load_save_space -|name|value| -|----|-----| -|Name|`tokudb_load_save_space`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_load_save_space](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_load_save_space)| - -## tokudb_loader_memory_size -|name|value| -|----|-----| -|Name|`tokudb_loader_memory_size`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`100000000 (100M)`| -|Dynamic|`true`| -|Range|from: `0` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_loader_memory_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_loader_memory_size)| - -## tokudb_lock_timeout -|name|value| -|----|-----| -|Name|`tokudb_lock_timeout`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`4000 (4 seconds)`| -|Dynamic|`true`| -|Range|from: `0` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_lock_timeout](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_lock_timeout)| - -## tokudb_lock_timeout_debug -|name|value| -|----|-----| -|Name|`tokudb_lock_timeout_debug`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`1`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_lock_timeout_debug](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_lock_timeout_debug)| - -## tokudb_log_dir -|name|value| -|----|-----| -|Name|`tokudb_log_dir`| -|Type of variable|`string`| -|Default value|`Empty (the MariaDB datadir is used)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_log_dir](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_log_dir)| - -## tokudb_max_lock_memory -|name|value| -|----|-----| -|Name|`tokudb_max_lock_memory`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`130653952`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_max_lock_memory](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_max_lock_memory)| - -## tokudb_optimize_index_fraction -|name|value| -|----|-----| -|Name|`tokudb_optimize_index_fraction`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`1.000000`| -|Dynamic|`true`| -|Range|from: `0` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_optimize_index_fraction](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_optimize_index_fraction)| - -## tokudb_optimize_index_name -|name|value| -|----|-----| -|Name|`tokudb_optimize_index_name`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Default value|`None`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_optimize_index_name](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_optimize_index_name)| - -## tokudb_optimize_throttle -|name|value| -|----|-----| -|Name|`tokudb_optimize_throttle`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_optimize_throttle](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_optimize_throttle)| - -## tokudb_pk_insert_mode -|name|value| -|----|-----| -|Name|`tokudb_pk_insert_mode`| -|Scope|`global`, `session`| -|Default value|`1`| -|Dynamic|`true`| -|Valid value(s)|`0`, `1`, `2`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_pk_insert_mode](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_pk_insert_mode)| - -## tokudb_prelock_empty -|name|value| -|----|-----| -|Name|`tokudb_prelock_empty`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_prelock_empty](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_prelock_empty)| - -## tokudb_read_block_size -|name|value| -|----|-----| -|Name|`tokudb_read_block_size`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`65536 (64KB)`| -|Dynamic|`true`| -|Range|from: `4096` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_read_block_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_read_block_size)| - -## tokudb_read_buf_size -|name|value| -|----|-----| -|Name|`tokudb_read_buf_size`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`131072 (128KB)`| -|Dynamic|`true`| -|Range|from: `0` to: `1048576`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_read_buf_size](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_read_buf_size)| - -## tokudb_read_status_frequency -|name|value| -|----|-----| -|Name|`tokudb_read_status_frequency`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`10000`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_read_status_frequency](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_read_status_frequency)| - -## tokudb_row_format -|name|value| -|----|-----| -|Name|`tokudb_row_format`| -|Scope|`global`, `session`| -|Default value|`tokudb_zlib`| -|Dynamic|`true`| -|Valid value(s)|`tokudb_default`, `tokudb_fast`, `tokudb_small`, `tokudb_zlib`, `tokudb_quicklz`, `tokudb_lzma`, `tokudb_uncompressed`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_row_format](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_row_format)| - -## tokudb_rpl_check_readonly -|name|value| -|----|-----| -|Name|`tokudb_rpl_check_readonly`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_rpl_check_readonly](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_rpl_check_readonly)| - -## tokudb_rpl_lookup_rows -|name|value| -|----|-----| -|Name|`tokudb_rpl_lookup_rows`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_rpl_lookup_rows](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_rpl_lookup_rows)| - -## tokudb_rpl_lookup_rows_delay -|name|value| -|----|-----| -|Name|`tokudb_rpl_lookup_rows_delay`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_rpl_lookup_rows_delay](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_rpl_lookup_rows_delay)| - -## tokudb_rpl_unique_checks -|name|value| -|----|-----| -|Name|`tokudb_rpl_unique_checks`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_rpl_unique_checks](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_rpl_unique_checks)| - -## tokudb_rpl_unique_checks_delay -|name|value| -|----|-----| -|Name|`tokudb_rpl_unique_checks_delay`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_rpl_unique_checks_delay](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_rpl_unique_checks_delay)| - -## tokudb_support_xa -|name|value| -|----|-----| -|Name|`tokudb_support_xa`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_support_xa](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_support_xa)| - -## tokudb_tmp_dir -|name|value| -|----|-----| -|Name|`tokudb_tmp_dir`| -|Type of variable|`directory name`| -|Default value|`Empty (the MariaDB datadir is used)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_tmp_dir](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_tmp_dir)| - -## tokudb_version -|name|value| -|----|-----| -|Name|`tokudb_version`| -|Type of variable|`string`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_version](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_version)| - -## tokudb_write_status_frequency -|name|value| -|----|-----| -|Name|`tokudb_write_status_frequency`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1000`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[tokudb_write_status_frequency](https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/#tokudb_write_status_frequency)| - -## system_versioning_alter_history -|name|value| -|----|-----| -|Name|`system_versioning_alter_history`| -|Command line|`--system-versioning-alter-history=value`| -|Scope|`global`, `session`| -|Default value|`ERROR`| -|Dynamic|`true`| -|Valid value(s)|`ERROR`, `KEEP`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[system_versioning_alter_history](https://mariadb.com/kb/en/library/documentation/system-versioned-tables/#system_versioning_alter_history)| - -## system_versioning_asof -|name|value| -|----|-----| -|Name|`system_versioning_asof`| -|Scope|`global`, `session`| -|Default value|`DEFAULT`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[system_versioning_asof](https://mariadb.com/kb/en/library/documentation/system-versioned-tables/#system_versioning_asof)| - -## system_versioning_innodb_algorithm_simple -|name|value| -|----|-----| -|Name|`system_versioning_innodb_algorithm_simple`| -|Command line|`--system-versioning-innodb-algorithm-simple[={0|1}]`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[system_versioning_innodb_algorithm_simple](https://mariadb.com/kb/en/library/documentation/system-versioned-tables/#system_versioning_innodb_algorithm_simple)| - -## Innodb_adaptive_hash_cells -|name|value| -|----|-----| -|Name|`Innodb_adaptive_hash_cells`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_adaptive_hash_cells](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_adaptive_hash_cells)| - -## Innodb_adaptive_hash_hash_searches -|name|value| -|----|-----| -|Name|`Innodb_adaptive_hash_hash_searches`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_adaptive_hash_hash_searches](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_adaptive_hash_hash_searches)| - -## Innodb_adaptive_hash_heap_buffers -|name|value| -|----|-----| -|Name|`Innodb_adaptive_hash_heap_buffers`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_adaptive_hash_heap_buffers](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_adaptive_hash_heap_buffers)| - -## Innodb_adaptive_hash_non_hash_searches -|name|value| -|----|-----| -|Name|`Innodb_adaptive_hash_non_hash_searches`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_adaptive_hash_non_hash_searches](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_adaptive_hash_non_hash_searches)| - -## Innodb_available_undo_logs -|name|value| -|----|-----| -|Name|`Innodb_available_undo_logs`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_available_undo_logs](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_available_undo_logs)| - -## Innodb_background_log_sync -|name|value| -|----|-----| -|Name|`Innodb_background_log_sync`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_background_log_sync](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_background_log_sync)| - -## Innodb_buffer_pool_bytes_data -|name|value| -|----|-----| -|Name|`Innodb_buffer_pool_bytes_data`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_bytes_data](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_buffer_pool_bytes_data)| - -## Innodb_buffer_pool_bytes_dirty -|name|value| -|----|-----| -|Name|`Innodb_buffer_pool_bytes_dirty`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_bytes_dirty](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_buffer_pool_bytes_dirty)| - -## Innodb_buffer_pool_dump_status -|name|value| -|----|-----| -|Name|`Innodb_buffer_pool_dump_status`| -|Type of variable|`string`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_dump_status](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_buffer_pool_dump_status)| - -## Innodb_buffer_pool_load_incomplete -|name|value| -|----|-----| -|Name|`Innodb_buffer_pool_load_incomplete`| -|Type of variable|`boolean`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_load_incomplete](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_buffer_pool_load_incomplete)| - -## Innodb_buffer_pool_load_status -|name|value| -|----|-----| -|Name|`Innodb_buffer_pool_load_status`| -|Type of variable|`string`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_load_status](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_buffer_pool_load_status)| - -## Innodb_buffer_pool_pages_data -|name|value| -|----|-----| -|Name|`Innodb_buffer_pool_pages_data`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_pages_data](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_buffer_pool_pages_data)| - -## Innodb_buffer_pool_pages_dirty -|name|value| -|----|-----| -|Name|`Innodb_buffer_pool_pages_dirty`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_pages_dirty](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_buffer_pool_pages_dirty)| - -## Innodb_buffer_pool_pages_flushed -|name|value| -|----|-----| -|Name|`Innodb_buffer_pool_pages_flushed`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_pages_flushed](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_buffer_pool_pages_flushed)| - -## Innodb_buffer_pool_pages_LRU_flushed -|name|value| -|----|-----| -|Name|`Innodb_buffer_pool_pages_LRU_flushed`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_pages_lru_flushed](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_buffer_pool_pages_lru_flushed)| - -## Innodb_buffer_pool_pages_free -|name|value| -|----|-----| -|Name|`Innodb_buffer_pool_pages_free`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_pages_free](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_buffer_pool_pages_free)| - -## Innodb_buffer_pool_pages_made_not_young -|name|value| -|----|-----| -|Name|`Innodb_buffer_pool_pages_made_not_young`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_pages_made_not_young](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_buffer_pool_pages_made_not_young)| - -## Innodb_buffer_pool_pages_made_young -|name|value| -|----|-----| -|Name|`Innodb_buffer_pool_pages_made_young`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_pages_made_young](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_buffer_pool_pages_made_young)| - -## Innodb_buffer_pool_pages_misc -|name|value| -|----|-----| -|Name|`Innodb_buffer_pool_pages_misc`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_pages_misc](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_buffer_pool_pages_misc)| - -## Innodb_buffer_pool_pages_old -|name|value| -|----|-----| -|Name|`Innodb_buffer_pool_pages_old`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_pages_old](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_buffer_pool_pages_old)| - -## Innodb_buffer_pool_pages_total -|name|value| -|----|-----| -|Name|`Innodb_buffer_pool_pages_total`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_pages_total](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_buffer_pool_pages_total)| - -## Innodb_buffer_pool_read_ahead -|name|value| -|----|-----| -|Name|`Innodb_buffer_pool_read_ahead`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_read_ahead](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_buffer_pool_read_ahead)| - -## Innodb_buffer_pool_read_ahead_evicted -|name|value| -|----|-----| -|Name|`Innodb_buffer_pool_read_ahead_evicted`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_read_ahead_evicted](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_buffer_pool_read_ahead_evicted)| - -## Innodb_buffer_pool_read_ahead_rnd -|name|value| -|----|-----| -|Name|`Innodb_buffer_pool_read_ahead_rnd`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_read_ahead_rnd](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_buffer_pool_read_ahead_rnd)| - -## Innodb_buffer_pool_read_requests -|name|value| -|----|-----| -|Name|`Innodb_buffer_pool_read_requests`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_read_requests](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_buffer_pool_read_requests)| - -## Innodb_buffer_pool_reads -|name|value| -|----|-----| -|Name|`Innodb_buffer_pool_reads`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_reads](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_buffer_pool_reads)| - -## Innodb_buffer_pool_resize_status -|name|value| -|----|-----| -|Name|`Innodb_buffer_pool_resize_status`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_resize_status](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_buffer_pool_resize_status)| - -## Innodb_buffer_pool_wait_free -|name|value| -|----|-----| -|Name|`Innodb_buffer_pool_wait_free`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_wait_free](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_buffer_pool_wait_free)| - -## Innodb_buffer_pool_write_requests -|name|value| -|----|-----| -|Name|`Innodb_buffer_pool_write_requests`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_write_requests](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_buffer_pool_write_requests)| - -## Innodb_checkpoint_age -|name|value| -|----|-----| -|Name|`Innodb_checkpoint_age`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_checkpoint_age](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_checkpoint_age)| - -## Innodb_checkpoint_max_age -|name|value| -|----|-----| -|Name|`Innodb_checkpoint_max_age`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_checkpoint_max_age](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_checkpoint_max_age)| - -## Innodb_checkpoint_target_age -|name|value| -|----|-----| -|Name|`Innodb_checkpoint_target_age`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_checkpoint_target_age](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_checkpoint_target_age)| - -## Innodb_current_row_locks -|name|value| -|----|-----| -|Name|`Innodb_current_row_locks`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_current_row_locks](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_current_row_locks)| - -## Innodb_data_fsyncs -|name|value| -|----|-----| -|Name|`Innodb_data_fsyncs`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_data_fsyncs](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_data_fsyncs)| - -## Innodb_data_pending_fsyncs -|name|value| -|----|-----| -|Name|`Innodb_data_pending_fsyncs`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_data_pending_fsyncs](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_data_pending_fsyncs)| - -## Innodb_data_pending_reads -|name|value| -|----|-----| -|Name|`Innodb_data_pending_reads`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_data_pending_reads](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_data_pending_reads)| - -## Innodb_data_pending_writes -|name|value| -|----|-----| -|Name|`Innodb_data_pending_writes`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_data_pending_writes](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_data_pending_writes)| - -## Innodb_data_read -|name|value| -|----|-----| -|Name|`Innodb_data_read`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_data_read](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_data_read)| - -## Innodb_data_reads -|name|value| -|----|-----| -|Name|`Innodb_data_reads`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_data_reads](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_data_reads)| - -## Innodb_data_writes -|name|value| -|----|-----| -|Name|`Innodb_data_writes`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_data_writes](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_data_writes)| - -## Innodb_data_written -|name|value| -|----|-----| -|Name|`Innodb_data_written`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_data_written](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_data_written)| - -## Innodb_dblwr_pages_written -|name|value| -|----|-----| -|Name|`Innodb_dblwr_pages_written`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_dblwr_pages_written](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_dblwr_pages_written)| - -## Innodb_dblwr_writes -|name|value| -|----|-----| -|Name|`Innodb_dblwr_writes`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_dblwr_writes](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_dblwr_writes)| - -## Innodb_deadlocks -|name|value| -|----|-----| -|Name|`Innodb_deadlocks`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_deadlocks](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_deadlocks)| - -## Innodb_defragment_compression_failures -|name|value| -|----|-----| -|Name|`Innodb_defragment_compression_failures`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_defragment_compression_failures](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_defragment_compression_failures)| - -## Innodb_defragment_count -|name|value| -|----|-----| -|Name|`Innodb_defragment_count`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_defragment_count](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_defragment_count)| - -## Innodb_defragment_failures -|name|value| -|----|-----| -|Name|`Innodb_defragment_failures`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_defragment_failures](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_defragment_failures)| - -## Innodb_dict_tables -|name|value| -|----|-----| -|Name|`Innodb_dict_tables`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_dict_tables](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_dict_tables)| - -## Innodb_encryption_n_merge_blocks_decrypted -|name|value| -|----|-----| -|Name|`Innodb_encryption_n_merge_blocks_decrypted`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_encryption_n_merge_blocks_decrypted](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_encryption_n_merge_blocks_decrypted)| - -## Innodb_encryption_n_merge_blocks_encrypted -|name|value| -|----|-----| -|Name|`Innodb_encryption_n_merge_blocks_encrypted`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_encryption_n_merge_blocks_encrypted](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_encryption_n_merge_blocks_encrypted)| - -## Innodb_encryption_n_rowlog_blocks_decrypted -|name|value| -|----|-----| -|Name|`Innodb_encryption_n_rowlog_blocks_decrypted`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_encryption_n_rowlog_blocks_decrypted](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_encryption_n_rowlog_blocks_decrypted)| - -## Innodb_encryption_n_rowlog_blocks_encrypted -|name|value| -|----|-----| -|Name|`Innodb_encryption_n_rowlog_blocks_encrypted`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_encryption_n_rowlog_blocks_encrypted](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_encryption_n_rowlog_blocks_encrypted)| - -## Innodb_encryption_num_key_requests -|name|value| -|----|-----| -|Name|`Innodb_encryption_num_key_requests`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_encryption_num_key_requests](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_encryption_num_key_requests)| - -## Innodb_encryption_rotation_estimated_iops -|name|value| -|----|-----| -|Name|`Innodb_encryption_rotation_estimated_iops`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_encryption_rotation_estimated_iops](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_encryption_rotation_estimated_iops)| - -## Innodb_encryption_rotation_pages_flushed -|name|value| -|----|-----| -|Name|`Innodb_encryption_rotation_pages_flushed`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_encryption_rotation_pages_flushed](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_encryption_rotation_pages_flushed)| - -## Innodb_encryption_rotation_pages_modified -|name|value| -|----|-----| -|Name|`Innodb_encryption_rotation_pages_modified`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_encryption_rotation_pages_modified](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_encryption_rotation_pages_modified)| - -## Innodb_encryption_rotation_pages_read_from_cache -|name|value| -|----|-----| -|Name|`Innodb_encryption_rotation_pages_read_from_cache`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_encryption_rotation_pages_read_from_cache](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_encryption_rotation_pages_read_from_cache)| - -## Innodb_encryption_rotation_pages_read_from_disk -|name|value| -|----|-----| -|Name|`Innodb_encryption_rotation_pages_read_from_disk`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_encryption_rotation_pages_read_from_disk](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_encryption_rotation_pages_read_from_disk)| - -## Innodb_have_atomic_builtins -|name|value| -|----|-----| -|Name|`Innodb_have_atomic_builtins`| -|Type of variable|`boolean`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_have_atomic_builtins](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_have_atomic_builtins)| - -## Innodb_have_bzip2 -|name|value| -|----|-----| -|Name|`Innodb_have_bzip2`| -|Type of variable|`boolean`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_have_bzip2](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_have_bzip2)| - -## Innodb_have_lz4 -|name|value| -|----|-----| -|Name|`Innodb_have_lz4`| -|Type of variable|`boolean`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_have_lz4](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_have_lz4)| - -## Innodb_have_lzma -|name|value| -|----|-----| -|Name|`Innodb_have_lzma`| -|Type of variable|`boolean`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_have_lzma](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_have_lzma)| - -## Innodb_have_lzo -|name|value| -|----|-----| -|Name|`Innodb_have_lzo`| -|Type of variable|`boolean`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_have_lzo](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_have_lzo)| - -## Innodb_have_punch_hole -|name|value| -|----|-----| -|Name|`Innodb_have_punch_hole`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_have_punch_hole](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_have_punch_hole)| - -## Innodb_have_snappy -|name|value| -|----|-----| -|Name|`Innodb_have_snappy`| -|Type of variable|`boolean`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_have_snappy](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_have_snappy)| - -## Innodb_history_list_length -|name|value| -|----|-----| -|Name|`Innodb_history_list_length`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_history_list_length](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_history_list_length)| - -## Innodb_ibuf_discarded_delete_marks -|name|value| -|----|-----| -|Name|`Innodb_ibuf_discarded_delete_marks`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_ibuf_discarded_delete_marks](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_ibuf_discarded_delete_marks)| - -## Innodb_ibuf_discarded_deletes -|name|value| -|----|-----| -|Name|`Innodb_ibuf_discarded_deletes`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_ibuf_discarded_deletes](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_ibuf_discarded_deletes)| - -## Innodb_ibuf_discarded_inserts -|name|value| -|----|-----| -|Name|`Innodb_ibuf_discarded_inserts`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_ibuf_discarded_inserts](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_ibuf_discarded_inserts)| - -## Innodb_ibuf_free_list -|name|value| -|----|-----| -|Name|`Innodb_ibuf_free_list`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_ibuf_free_list](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_ibuf_free_list)| - -## Innodb_ibuf_merged_delete_marks -|name|value| -|----|-----| -|Name|`Innodb_ibuf_merged_delete_marks`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_ibuf_merged_delete_marks](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_ibuf_merged_delete_marks)| - -## Innodb_ibuf_merged_deletes -|name|value| -|----|-----| -|Name|`Innodb_ibuf_merged_deletes`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_ibuf_merged_deletes](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_ibuf_merged_deletes)| - -## Innodb_ibuf_merged_inserts -|name|value| -|----|-----| -|Name|`Innodb_ibuf_merged_inserts`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_ibuf_merged_inserts](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_ibuf_merged_inserts)| - -## Innodb_ibuf_merges -|name|value| -|----|-----| -|Name|`Innodb_ibuf_merges`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_ibuf_merges](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_ibuf_merges)| - -## Innodb_ibuf_segment_size -|name|value| -|----|-----| -|Name|`Innodb_ibuf_segment_size`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_ibuf_segment_size](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_ibuf_segment_size)| - -## Innodb_ibuf_size -|name|value| -|----|-----| -|Name|`Innodb_ibuf_size`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_ibuf_size](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_ibuf_size)| - -## Innodb_instant_alter_column -|name|value| -|----|-----| -|Name|`Innodb_instant_alter_column`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_instant_alter_column](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_instant_alter_column)| - -## Innodb_log_waits -|name|value| -|----|-----| -|Name|`Innodb_log_waits`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_log_waits](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_log_waits)| - -## Innodb_log_write_requests -|name|value| -|----|-----| -|Name|`Innodb_log_write_requests`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_log_write_requests](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_log_write_requests)| - -## Innodb_log_writes -|name|value| -|----|-----| -|Name|`Innodb_log_writes`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_log_writes](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_log_writes)| - -## Innodb_lsn_current -|name|value| -|----|-----| -|Name|`Innodb_lsn_current`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_lsn_current](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_lsn_current)| - -## Innodb_lsn_flushed -|name|value| -|----|-----| -|Name|`Innodb_lsn_flushed`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_lsn_flushed](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_lsn_flushed)| - -## Innodb_lsn_last_checkpoint -|name|value| -|----|-----| -|Name|`Innodb_lsn_last_checkpoint`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_lsn_last_checkpoint](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_lsn_last_checkpoint)| - -## Innodb_master_thread_1_second_loops -|name|value| -|----|-----| -|Name|`Innodb_master_thread_1_second_loops`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_master_thread_1_second_loops](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_master_thread_1_second_loops)| - -## Innodb_master_thread_10_second_loops -|name|value| -|----|-----| -|Name|`Innodb_master_thread_10_second_loops`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_master_thread_10_second_loops](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_master_thread_10_second_loops)| - -## Innodb_master_thread_active_loops -|name|value| -|----|-----| -|Name|`Innodb_master_thread_active_loops`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_master_thread_active_loops](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_master_thread_active_loops)| - -## Innodb_master_thread_background_loops -|name|value| -|----|-----| -|Name|`Innodb_master_thread_background_loops`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_master_thread_background_loops](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_master_thread_background_loops)| - -## Innodb_master_thread_idle_loops -|name|value| -|----|-----| -|Name|`Innodb_master_thread_idle_loops`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_master_thread_idle_loops](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_master_thread_idle_loops)| - -## Innodb_master_thread_main_flush_loops -|name|value| -|----|-----| -|Name|`Innodb_master_thread_main_flush_loops`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_master_thread_main_flush_loops](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_master_thread_main_flush_loops)| - -## Innodb_master_thread_sleeps -|name|value| -|----|-----| -|Name|`Innodb_master_thread_sleeps`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_master_thread_sleeps](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_master_thread_sleeps)| - -## Innodb_max_trx_id -|name|value| -|----|-----| -|Name|`Innodb_max_trx_id`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_max_trx_id](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_max_trx_id)| - -## Innodb_mem_adaptive_hash -|name|value| -|----|-----| -|Name|`Innodb_mem_adaptive_hash`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_mem_adaptive_hash](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_mem_adaptive_hash)| - -## Innodb_mem_dictionary -|name|value| -|----|-----| -|Name|`Innodb_mem_dictionary`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_mem_dictionary](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_mem_dictionary)| - -## Innodb_mem_total -|name|value| -|----|-----| -|Name|`Innodb_mem_total`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_mem_total](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_mem_total)| - -## Innodb_mutex_os_waits -|name|value| -|----|-----| -|Name|`Innodb_mutex_os_waits`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_mutex_os_waits](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_mutex_os_waits)| - -## Innodb_mutex_spin_rounds -|name|value| -|----|-----| -|Name|`Innodb_mutex_spin_rounds`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_mutex_spin_rounds](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_mutex_spin_rounds)| - -## Innodb_mutex_spin_waits -|name|value| -|----|-----| -|Name|`Innodb_mutex_spin_waits`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_mutex_spin_waits](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_mutex_spin_waits)| - -## Innodb_num_index_pages_written -|name|value| -|----|-----| -|Name|`Innodb_num_index_pages_written`| -|Type of variable|`integer`| -|Scope|``| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_num_index_pages_written](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_num_index_pages_written)| - -## Innodb_num_non_index_pages_written -|name|value| -|----|-----| -|Name|`Innodb_num_non_index_pages_written`| -|Type of variable|`integer`| -|Scope|``| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_num_non_index_pages_written](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_num_non_index_pages_written)| - -## Innodb_num_open_files -|name|value| -|----|-----| -|Name|`Innodb_num_open_files`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_num_open_files](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_num_open_files)| - -## Innodb_num_page_compressed_trim_op -|name|value| -|----|-----| -|Name|`Innodb_num_page_compressed_trim_op`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_num_page_compressed_trim_op](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_num_page_compressed_trim_op)| - -## Innodb_num_page_compressed_trim_op_saved -|name|value| -|----|-----| -|Name|`Innodb_num_page_compressed_trim_op_saved`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_num_page_compressed_trim_op_saved](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_num_page_compressed_trim_op_saved)| - -## Innodb_num_pages_decrypted -|name|value| -|----|-----| -|Name|`Innodb_num_pages_decrypted`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_num_pages_decrypted](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_num_pages_decrypted)| - -## Innodb_num_pages_encrypted -|name|value| -|----|-----| -|Name|`Innodb_num_pages_encrypted`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_num_pages_encrypted](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_num_pages_encrypted)| - -## Innodb_num_pages_page_compressed -|name|value| -|----|-----| -|Name|`Innodb_num_pages_page_compressed`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_num_pages_page_compressed](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_num_pages_page_compressed)| - -## Innodb_num_pages_page_compression_error -|name|value| -|----|-----| -|Name|`Innodb_num_pages_page_compression_error`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_num_pages_page_compression_error](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_num_pages_page_compression_error)| - -## Innodb_num_pages_page_decompressed -|name|value| -|----|-----| -|Name|`Innodb_num_pages_page_decompressed`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_num_pages_page_decompressed](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_num_pages_page_decompressed)| - -## Innodb_num_pages_page_encryption_error -|name|value| -|----|-----| -|Name|`Innodb_num_pages_page_encryption_error`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_num_pages_page_encryption_error](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_num_pages_page_encryption_error)| - -## Innodb_oldest_view_low_limit_trx_id -|name|value| -|----|-----| -|Name|`Innodb_oldest_view_low_limit_trx_id`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_oldest_view_low_limit_trx_id](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_oldest_view_low_limit_trx_id)| - -## Innodb_onlineddl_pct_progress -|name|value| -|----|-----| -|Name|`Innodb_onlineddl_pct_progress`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_onlineddl_pct_progress](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_onlineddl_pct_progress)| - -## Innodb_onlineddl_rowlog_pct_used -|name|value| -|----|-----| -|Name|`Innodb_onlineddl_rowlog_pct_used`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_onlineddl_rowlog_pct_used](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_onlineddl_rowlog_pct_used)| - -## Innodb_onlineddl_rowlog_rows -|name|value| -|----|-----| -|Name|`Innodb_onlineddl_rowlog_rows`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_onlineddl_rowlog_rows](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_onlineddl_rowlog_rows)| - -## Innodb_os_log_fsyncs -|name|value| -|----|-----| -|Name|`Innodb_os_log_fsyncs`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_os_log_fsyncs](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_os_log_fsyncs)| - -## Innodb_os_log_pending_fsyncs -|name|value| -|----|-----| -|Name|`Innodb_os_log_pending_fsyncs`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_os_log_pending_fsyncs](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_os_log_pending_fsyncs)| - -## Innodb_os_log_pending_writes -|name|value| -|----|-----| -|Name|`Innodb_os_log_pending_writes`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_os_log_pending_writes](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_os_log_pending_writes)| - -## Innodb_os_log_written -|name|value| -|----|-----| -|Name|`Innodb_os_log_written`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_os_log_written](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_os_log_written)| - -## Innodb_page_compression_saved -|name|value| -|----|-----| -|Name|`Innodb_page_compression_saved`| -|Type of variable|`byte`| -|Scope|``| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_page_compression_saved](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_page_compression_saved)| - -## Innodb_page_compression_trim_sect512 -|name|value| -|----|-----| -|Name|`Innodb_page_compression_trim_sect512`| -|Type of variable|`integer`| -|Scope|``| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_page_compression_trim_sect512](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_page_compression_trim_sect512)| - -## Innodb_page_compression_trim_sect1024 -|name|value| -|----|-----| -|Name|`Innodb_page_compression_trim_sect1024`| -|Type of variable|`integer`| -|Scope|``| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_page_compression_trim_sect1024](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_page_compression_trim_sect1024)| - -## Innodb_page_compression_trim_sect2048 -|name|value| -|----|-----| -|Name|`Innodb_page_compression_trim_sect2048`| -|Type of variable|`integer`| -|Scope|``| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_page_compression_trim_sect2048](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_page_compression_trim_sect2048)| - -## Innodb_page_compression_trim_sect4096 -|name|value| -|----|-----| -|Name|`Innodb_page_compression_trim_sect4096`| -|Type of variable|`integer`| -|Scope|``| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_page_compression_trim_sect4096](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_page_compression_trim_sect4096)| - -## Innodb_page_compression_trim_sect8192 -|name|value| -|----|-----| -|Name|`Innodb_page_compression_trim_sect8192`| -|Type of variable|`integer`| -|Scope|``| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_page_compression_trim_sect8192](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_page_compression_trim_sect8192)| - -## Innodb_page_compression_trim_sect16384 -|name|value| -|----|-----| -|Name|`Innodb_page_compression_trim_sect16384`| -|Type of variable|`integer`| -|Scope|``| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_page_compression_trim_sect16384](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_page_compression_trim_sect16384)| - -## Innodb_page_compression_trim_sect32768 -|name|value| -|----|-----| -|Name|`Innodb_page_compression_trim_sect32768`| -|Type of variable|`integer`| -|Scope|``| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_page_compression_trim_sect32768](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_page_compression_trim_sect32768)| - -## Innodb_page_size -|name|value| -|----|-----| -|Name|`Innodb_page_size`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_page_size](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_page_size)| - -## Innodb_pages_created -|name|value| -|----|-----| -|Name|`Innodb_pages_created`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_pages_created](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_pages_created)| - -## Innodb_pages_read -|name|value| -|----|-----| -|Name|`Innodb_pages_read`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_pages_read](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_pages_read)| - -## Innodb_pages0_read -|name|value| -|----|-----| -|Name|`Innodb_pages0_read`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_pages0_read](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_pages0_read)| - -## Innodb_pages_written -|name|value| -|----|-----| -|Name|`Innodb_pages_written`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_pages_written](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_pages_written)| - -## Innodb_purge_trx_id -|name|value| -|----|-----| -|Name|`Innodb_purge_trx_id`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_purge_trx_id](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_purge_trx_id)| - -## Innodb_purge_undo_no -|name|value| -|----|-----| -|Name|`Innodb_purge_undo_no`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_purge_undo_no](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_purge_undo_no)| - -## Innodb_read_views_memory -|name|value| -|----|-----| -|Name|`Innodb_read_views_memory`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_read_views_memory](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_read_views_memory)| - -## Innodb_row_lock_current_waits -|name|value| -|----|-----| -|Name|`Innodb_row_lock_current_waits`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_row_lock_current_waits](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_row_lock_current_waits)| - -## Innodb_row_lock_numbers -|name|value| -|----|-----| -|Name|`Innodb_row_lock_numbers`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_row_lock_numbers](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_row_lock_numbers)| - -## Innodb_row_lock_time -|name|value| -|----|-----| -|Name|`Innodb_row_lock_time`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_row_lock_time](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_row_lock_time)| - -## Innodb_row_lock_time_avg -|name|value| -|----|-----| -|Name|`Innodb_row_lock_time_avg`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_row_lock_time_avg](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_row_lock_time_avg)| - -## Innodb_row_lock_time_max -|name|value| -|----|-----| -|Name|`Innodb_row_lock_time_max`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_row_lock_time_max](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_row_lock_time_max)| - -## Innodb_row_lock_time_waits -|name|value| -|----|-----| -|Name|`Innodb_row_lock_time_waits`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_row_lock_time_waits](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_row_lock_time_waits)| - -## Innodb_rows_deleted -|name|value| -|----|-----| -|Name|`Innodb_rows_deleted`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_rows_deleted](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_rows_deleted)| - -## Innodb_rows_inserted -|name|value| -|----|-----| -|Name|`Innodb_rows_inserted`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_rows_inserted](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_rows_inserted)| - -## Innodb_rows_read -|name|value| -|----|-----| -|Name|`Innodb_rows_read`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_rows_read](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_rows_read)| - -## Innodb_rows_updated -|name|value| -|----|-----| -|Name|`Innodb_rows_updated`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_rows_updated](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_rows_updated)| - -## Innodb_s_lock_os_waits -|name|value| -|----|-----| -|Name|`Innodb_s_lock_os_waits`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_s_lock_os_waits](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_s_lock_os_waits)| - -## Innodb_s_lock_spin_rounds -|name|value| -|----|-----| -|Name|`Innodb_s_lock_spin_rounds`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_s_lock_spin_rounds](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_s_lock_spin_rounds)| - -## Innodb_s_lock_spin_waits -|name|value| -|----|-----| -|Name|`Innodb_s_lock_spin_waits`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_s_lock_spin_waits](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_s_lock_spin_waits)| - -## Innodb_scrub_background_page_reorganizations -|name|value| -|----|-----| -|Name|`Innodb_scrub_background_page_reorganizations`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_scrub_background_page_reorganizations](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_scrub_background_page_reorganizations)| - -## Innodb_scrub_background_page_split_failures_missing_index -|name|value| -|----|-----| -|Name|`Innodb_scrub_background_page_split_failures_missing_index`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_scrub_background_page_split_failures_missing_index](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_scrub_background_page_split_failures_missing_index)| - -## Innodb_scrub_background_page_split_failures_out_of_filespace -|name|value| -|----|-----| -|Name|`Innodb_scrub_background_page_split_failures_out_of_filespace`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_scrub_background_page_split_failures_out_of_filespace](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_scrub_background_page_split_failures_out_of_filespace)| - -## Innodb_scrub_background_page_split_failures_underflow -|name|value| -|----|-----| -|Name|`Innodb_scrub_background_page_split_failures_underflow`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_scrub_background_page_split_failures_underflow](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_scrub_background_page_split_failures_underflow)| - -## Innodb_scrub_background_page_split_failures_unknown -|name|value| -|----|-----| -|Name|`Innodb_scrub_background_page_split_failures_unknown`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_scrub_background_page_split_failures_unknown](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_scrub_background_page_split_failures_unknown)| - -## Innodb_scrub_background_page_splits -|name|value| -|----|-----| -|Name|`Innodb_scrub_background_page_splits`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_scrub_background_page_splits](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_scrub_background_page_splits)| - -## Innodb_scrub_log -|name|value| -|----|-----| -|Name|`Innodb_scrub_log`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_scrub_log](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_scrub_log)| - -## Innodb_secondary_index_triggered_cluster_reads -|name|value| -|----|-----| -|Name|`Innodb_secondary_index_triggered_cluster_reads`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_secondary_index_triggered_cluster_reads](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_secondary_index_triggered_cluster_reads)| - -## Innodb_secondary_index_triggered_cluster_reads_avoided -|name|value| -|----|-----| -|Name|`Innodb_secondary_index_triggered_cluster_reads_avoided`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_secondary_index_triggered_cluster_reads_avoided](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_secondary_index_triggered_cluster_reads_avoided)| - -## Innodb_system_rows_deleted -|name|value| -|----|-----| -|Name|`Innodb_system_rows_deleted`| -|Type of variable|`integer`| -|Scope|``| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_system_rows_deleted](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_system_rows_deleted)| - -## Innodb_system_rows_inserted -|name|value| -|----|-----| -|Name|`Innodb_system_rows_inserted`| -|Type of variable|`integer`| -|Scope|``| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_system_rows_inserted](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_system_rows_inserted)| - -## Innodb_system_rows_read -|name|value| -|----|-----| -|Name|`Innodb_system_rows_read`| -|Type of variable|`integer`| -|Scope|``| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_system_rows_read](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_system_rows_read)| - -## Innodb_system_rows_updated -|name|value| -|----|-----| -|Name|`Innodb_system_rows_updated`| -|Type of variable|`integer`| -|Scope|``| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_system_rows_updated](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_system_rows_updated)| - -## Innodb_truncated_status_writes -|name|value| -|----|-----| -|Name|`Innodb_truncated_status_writes`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_truncated_status_writes](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_truncated_status_writes)| - -## Innodb_undo_truncations -|name|value| -|----|-----| -|Name|`Innodb_undo_truncations`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_undo_truncations](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_undo_truncations)| - -## Innodb_x_lock_os_waits -|name|value| -|----|-----| -|Name|`Innodb_x_lock_os_waits`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_x_lock_os_waits](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_x_lock_os_waits)| - -## Innodb_x_lock_spin_rounds -|name|value| -|----|-----| -|Name|`Innodb_x_lock_spin_rounds`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_x_lock_spin_rounds](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_x_lock_spin_rounds)| - -## Innodb_x_lock_spin_waits -|name|value| -|----|-----| -|Name|`Innodb_x_lock_spin_waits`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_x_lock_spin_waits](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/#innodb_x_lock_spin_waits)| - -## have_innodb -|name|value| -|----|-----| -|Name|`have_innodb`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[have_innodb](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#have_innodb)| - -## ignore_builtin_innodb -|name|value| -|----|-----| -|Name|`ignore_builtin_innodb`| -|Command line|`--ignore-builtin-innodb[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[ignore_builtin_innodb](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#ignore_builtin_innodb)| -|dev.mysql.com|[sysvar_ignore_builtin_innodb](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_ignore_builtin_innodb)| - -## innodb_adaptive_checkpoint -|name|value| -|----|-----| -|Name|`innodb_adaptive_checkpoint`| -|Command line|`--innodb-adaptive-checkpoint=#`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`estimate`| -|Dynamic|`true`| -|Valid value(s)|`none`, `0`, `reflex`, `1`, `estimate`, `2`, `keep_average`, `3`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_adaptive_checkpoint](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_adaptive_checkpoint)| - -## innodb_adaptive_flushing -|name|value| -|----|-----| -|Name|`innodb_adaptive_flushing`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_adaptive_flushing](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_adaptive_flushing)| -|dev.mysql.com|[sysvar_innodb_adaptive_flushing](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_adaptive_flushing)| - -## innodb_adaptive_flushing_lwm -|name|value| -|----|-----| -|Name|`innodb_adaptive_flushing_lwm`| -|Command line|`--innodb-adaptive-flushing-lwm=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`10`| -|Dynamic|`true`| -|Range|from: `0` to: `70`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_adaptive_flushing_lwm](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_adaptive_flushing_lwm)| -|dev.mysql.com|[sysvar_innodb_adaptive_flushing_lwm](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_adaptive_flushing_lwm)| - -## innodb_adaptive_flushing_method -|name|value| -|----|-----| -|Name|`innodb_adaptive_flushing_method`| -|Command line|`innodb-adaptive-flushing-method=value`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`estimate`| -|Dynamic|`true`| -|Valid value(s)|`native`, `0`, `estimate`, `1`, `keep_average`, `2`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_adaptive_flushing_method](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_adaptive_flushing_method)| - -## innodb_adaptive_hash_index -|name|value| -|----|-----| -|Name|`innodb_adaptive_hash_index`| -|Type of variable|`boolean`| -|Scope|`global`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_adaptive_hash_index](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_adaptive_hash_index)| -|dev.mysql.com|[sysvar_innodb_adaptive_hash_index](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_adaptive_hash_index)| - -## innodb_adaptive_hash_index_partitions -|name|value| -|----|-----| -|Name|`innodb_adaptive_hash_index_partitions`| -|Command line|`innodb-adaptive-hash-index-partitions=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`false`| -|Range|from: `1` to: `64`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_adaptive_hash_index_partitions](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_adaptive_hash_index_partitions)| - -## innodb_adaptive_hash_index_parts -|name|value| -|----|-----| -|Name|`innodb_adaptive_hash_index_parts`| -|Command line|`--innodb-adaptive-hash-index-parts=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`8`| -|Dynamic|`false`| -|Range|from: `1` to: `512`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_adaptive_hash_index_parts](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_adaptive_hash_index_parts)| -|dev.mysql.com|[sysvar_innodb_adaptive_hash_index_parts](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_adaptive_hash_index_parts)| - -## innodb_adaptive_max_sleep_delay -|name|value| -|----|-----| -|Name|`innodb_adaptive_max_sleep_delay`| -|Command line|`--innodb-adaptive-max-sleep-delay=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`150000`| -|Dynamic|`true`| -|Range|from: `0` to: `1000000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_adaptive_max_sleep_delay](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_adaptive_max_sleep_delay)| -|dev.mysql.com|[sysvar_innodb_adaptive_max_sleep_delay](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_adaptive_max_sleep_delay)| - -## innodb_additional_mem_pool_size -|name|value| -|----|-----| -|Name|`innodb_additional_mem_pool_size`| -|Command line|`--innodb-additional-mem-pool-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`8388608`| -|Dynamic|`false`| -|Range|from: `2097152` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_additional_mem_pool_size](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_additional_mem_pool_size)| - -## innodb_api_bk_commit_interval -|name|value| -|----|-----| -|Name|`innodb_api_bk_commit_interval`| -|Command line|`--innodb-api-bk-commit-interval=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`5`| -|Dynamic|`true`| -|Range|from: `1` to: `1073741824`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_api_bk_commit_interval](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_api_bk_commit_interval)| -|dev.mysql.com|[sysvar_innodb_api_bk_commit_interval](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_api_bk_commit_interval)| - -## innodb_api_disable_rowlock -|name|value| -|----|-----| -|Name|`innodb_api_disable_rowlock`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_api_disable_rowlock](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_api_disable_rowlock)| -|dev.mysql.com|[sysvar_innodb_api_disable_rowlock](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_api_disable_rowlock)| - -## innodb_api_enable_binlog -|name|value| -|----|-----| -|Name|`innodb_api_enable_binlog`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_api_enable_binlog](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_api_enable_binlog)| -|dev.mysql.com|[sysvar_innodb_api_enable_binlog](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_api_enable_binlog)| - -## innodb_api_enable_mdl -|name|value| -|----|-----| -|Name|`innodb_api_enable_mdl`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_api_enable_mdl](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_api_enable_mdl)| -|dev.mysql.com|[sysvar_innodb_api_enable_mdl](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_api_enable_mdl)| - -## innodb_api_trx_level -|name|value| -|----|-----| -|Name|`innodb_api_trx_level`| -|Command line|`--innodb-api-trx-level=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_api_trx_level](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_api_trx_level)| -|dev.mysql.com|[sysvar_innodb_api_trx_level](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_api_trx_level)| - -## innodb_auto_lru_dump -|name|value| -|----|-----| -|Name|`innodb_auto_lru_dump`| -|Command line|`--innodb-auto-lru-dump=#`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_auto_lru_dump](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_auto_lru_dump)| - -## innodb_autoextend_increment -|name|value| -|----|-----| -|Name|`innodb_autoextend_increment`| -|Command line|`--innodb-autoextend-increment=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`64`| -|Dynamic|`true`| -|Range|from: `1` to: `1000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_autoextend_increment](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_autoextend_increment)| -|dev.mysql.com|[sysvar_innodb_autoextend_increment](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_autoextend_increment)| - -## innodb_autoinc_lock_mode -|name|value| -|----|-----| -|Name|`innodb_autoinc_lock_mode`| -|Command line|`--innodb-autoinc-lock-mode=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| -|Valid value(s)|`0`, `1`, `2`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_autoinc_lock_mode](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_autoinc_lock_mode)| -|dev.mysql.com|[sysvar_innodb_autoinc_lock_mode](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_autoinc_lock_mode)| - -## innodb_background_scrub_data_check_interval -|name|value| -|----|-----| -|Name|`innodb_background_scrub_data_check_interval`| -|Command line|`--innodb-background-scrub-data-check-interval=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`3600`| -|Dynamic|`true`| -|Range|from: `1` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_background_scrub_data_check_interval](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_background_scrub_data_check_interval)| - -## innodb_background_scrub_data_compressed -|name|value| -|----|-----| -|Name|`innodb_background_scrub_data_compressed`| -|Command line|`--innodb-background-scrub-data-compressed={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_background_scrub_data_compressed](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_background_scrub_data_compressed)| - -## innodb_background_scrub_data_interval -|name|value| -|----|-----| -|Name|`innodb_background_scrub_data_interval`| -|Command line|`--innodb-background-scrub-data-interval=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`604800`| -|Dynamic|`true`| -|Range|from: `1` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_background_scrub_data_interval](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_background_scrub_data_interval)| - -## innodb_background_scrub_data_uncompressed -|name|value| -|----|-----| -|Name|`innodb_background_scrub_data_uncompressed`| -|Command line|`--innodb-background-scrub-data-uncompressed={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_background_scrub_data_uncompressed](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_background_scrub_data_uncompressed)| - -## innodb_blocking_buffer_pool_restore -|name|value| -|----|-----| -|Name|`innodb_blocking_buffer_pool_restore`| -|Command line|`innodb-blocking-buffer-pool-restore={1|2}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_blocking_buffer_pool_restore](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_blocking_buffer_pool_restore)| - -## innodb_buf_dump_status_frequency -|name|value| -|----|-----| -|Name|`innodb_buf_dump_status_frequency`| -|Command line|`--innodb-buf-dump-status-frequency=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `100`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buf_dump_status_frequency](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_buf_dump_status_frequency)| - -## innodb_buffer_pool_chunk_size -|name|value| -|----|-----| -|Name|`innodb_buffer_pool_chunk_size`| -|Command line|`--innodb-buffer-pool-chunk-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`134217728`| -|Dynamic|`false`| -|Range|from: `1048576`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_chunk_size](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_buffer_pool_chunk_size)| -|dev.mysql.com|[sysvar_innodb_buffer_pool_chunk_size](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_buffer_pool_chunk_size)| - -## innodb_buffer_pool_dump_at_shutdown -|name|value| -|----|-----| -|Name|`innodb_buffer_pool_dump_at_shutdown`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_dump_at_shutdown](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_buffer_pool_dump_at_shutdown)| -|dev.mysql.com|[sysvar_innodb_buffer_pool_dump_at_shutdown](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_buffer_pool_dump_at_shutdown)| - -## innodb_buffer_pool_dump_now -|name|value| -|----|-----| -|Name|`innodb_buffer_pool_dump_now`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_dump_now](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_buffer_pool_dump_now)| -|dev.mysql.com|[sysvar_innodb_buffer_pool_dump_now](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_buffer_pool_dump_now)| - -## innodb_buffer_pool_dump_pct -|name|value| -|----|-----| -|Name|`innodb_buffer_pool_dump_pct`| -|Command line|`--innodb-buffer-pool-dump-pct=#`| -|Scope|`global`| -|Default value|`25`| -|Dynamic|`true`| -|Range|from: `1` to: `100`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_dump_pct](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_buffer_pool_dump_pct)| -|dev.mysql.com|[sysvar_innodb_buffer_pool_dump_pct](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_buffer_pool_dump_pct)| - -## innodb_buffer_pool_evict -|name|value| -|----|-----| -|Name|`innodb_buffer_pool_evict`| -|Command line|`--innodb-buffer-pool-evict=#`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`""`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_evict](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_buffer_pool_evict)| - -## innodb_buffer_pool_filename -|name|value| -|----|-----| -|Name|`innodb_buffer_pool_filename`| -|Command line|`--innodb-buffer-pool-pathname=path-name`| -|Scope|`global`| -|Default value|`ib_buffer_pool`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_filename](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_buffer_pool_filename)| -|dev.mysql.com|[sysvar_innodb_buffer_pool_filename](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_buffer_pool_filename)| - -## innodb_buffer_pool_instances -|name|value| -|----|-----| -|Name|`innodb_buffer_pool_instances`| -|Command line|`--innodb-buffer-pool-instances=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| -|Range|from: `1` to: `64`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_instances](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_buffer_pool_instances)| -|dev.mysql.com|[sysvar_innodb_buffer_pool_instances](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_buffer_pool_instances)| - -## innodb_buffer_pool_load_abort -|name|value| -|----|-----| -|Name|`innodb_buffer_pool_load_abort`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_load_abort](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_buffer_pool_load_abort)| -|dev.mysql.com|[sysvar_innodb_buffer_pool_load_abort](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_buffer_pool_load_abort)| - -## innodb_buffer_pool_load_at_startup -|name|value| -|----|-----| -|Name|`innodb_buffer_pool_load_at_startup`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_load_at_startup](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_buffer_pool_load_at_startup)| -|dev.mysql.com|[sysvar_innodb_buffer_pool_load_at_startup](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_buffer_pool_load_at_startup)| - -## innodb_buffer_pool_load_now -|name|value| -|----|-----| -|Name|`innodb_buffer_pool_load_now`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_load_now](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_buffer_pool_load_now)| -|dev.mysql.com|[sysvar_innodb_buffer_pool_load_now](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_buffer_pool_load_now)| - -## innodb_buffer_pool_populate -|name|value| -|----|-----| -|Name|`innodb_buffer_pool_populate`| -|Command line|`innodb-buffer-pool-populate={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_populate](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_buffer_pool_populate)| - -## innodb_buffer_pool_restore_at_startup -|name|value| -|----|-----| -|Name|`innodb_buffer_pool_restore_at_startup`| -|Command line|`innodb-buffer-pool-restore-at-startup`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_restore_at_startup](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_buffer_pool_restore_at_startup)| - -## innodb_buffer_pool_shm_checksum -|name|value| -|----|-----| -|Name|`innodb_buffer_pool_shm_checksum`| -|Command line|`innodb-buffer-pool-shm-checksum={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_shm_checksum](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_buffer_pool_shm_checksum)| - -## innodb_buffer_pool_shm_key -|name|value| -|----|-----| -|Name|`innodb_buffer_pool_shm_key`| -|Command line|`innodb-buffer-pool-shm-key={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_shm_key](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_buffer_pool_shm_key)| - -## innodb_buffer_pool_size -|name|value| -|----|-----| -|Name|`innodb_buffer_pool_size`| -|Command line|`--innodb-buffer-pool-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`134217728`| -|Range|from: `5242880` to: `9.2233720368548E+18`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_buffer_pool_size](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_buffer_pool_size)| -|dev.mysql.com|[sysvar_innodb_buffer_pool_size](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_buffer_pool_size)| - -## innodb_change_buffer_dump -|name|value| -|----|-----| -|Name|`innodb_change_buffer_dump`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_change_buffer_dump](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_change_buffer_dump)| - -## innodb_change_buffer_max_size -|name|value| -|----|-----| -|Name|`innodb_change_buffer_max_size`| -|Command line|`--innodb-change-buffer-max-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`25`| -|Dynamic|`true`| -|Range|from: `0` to: `50`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_change_buffer_max_size](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_change_buffer_max_size)| -|dev.mysql.com|[sysvar_innodb_change_buffer_max_size](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_change_buffer_max_size)| - -## innodb_change_buffering -|name|value| -|----|-----| -|Name|`innodb_change_buffering`| -|Command line|`--innodb-change-buffering=value`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`all`| -|Dynamic|`true`| -|Valid value(s)|`none`, `inserts`, `deletes`, `changes`, `purges`, `all`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_change_buffering](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_change_buffering)| -|dev.mysql.com|[sysvar_innodb_change_buffering](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_change_buffering)| - -## innodb_change_buffering_debug -|name|value| -|----|-----| -|Name|`innodb_change_buffering_debug`| -|Command line|`--innodb-change-buffering-debug=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_change_buffering_debug](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_change_buffering_debug)| -|dev.mysql.com|[sysvar_innodb_change_buffering_debug](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_change_buffering_debug)| - -## innodb_checkpoint_age_target -|name|value| -|----|-----| -|Name|`innodb_checkpoint_age_target`| -|Command line|`innodb-checkpoint-age-target=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `upwards`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_checkpoint_age_target](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_checkpoint_age_target)| - -## innodb_checksum_algorithm -|name|value| -|----|-----| -|Name|`innodb_checksum_algorithm`| -|Command line|`--innodb-checksum-algorithm=value`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`crc32`| -|Dynamic|`true`| -|Valid value(s)|`innodb`, `crc32`, `full_crc32`, `none`, `strict_innodb`, `strict_crc32`, `strict_none`, `strict_full_crc32`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_checksum_algorithm](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_checksum_algorithm)| -|dev.mysql.com|[sysvar_innodb_checksum_algorithm](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_checksum_algorithm)| - -## innodb_checksums -|name|value| -|----|-----| -|Name|`innodb_checksums`| -|Command line|`--innodb-checksums, --skip-innodb-checksums`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_checksums](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_checksums)| - -## innodb_cleaner_lsn_age_factor -|name|value| -|----|-----| -|Name|`innodb_cleaner_lsn_age_factor`| -|Command line|`--innodb-cleaner-lsn-age-factor=value`| -|Scope|`global`| -|Default value|`deprecated (>= MariaDB 10.2.6), high_checkpoint (<= MariaDB 10.1)`| -|Dynamic|`true`| -|Valid value(s)|`high_checkpoint`, `legacy`, `deprecated`, `high_checkpoint`, `legacy`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_cleaner_lsn_age_factor](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_cleaner_lsn_age_factor)| - -## innodb_cmp_per_index_enabled -|name|value| -|----|-----| -|Name|`innodb_cmp_per_index_enabled`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_cmp_per_index_enabled](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_cmp_per_index_enabled)| -|dev.mysql.com|[sysvar_innodb_cmp_per_index_enabled](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_cmp_per_index_enabled)| - -## innodb_commit_concurrency -|name|value| -|----|-----| -|Name|`innodb_commit_concurrency`| -|Command line|`--innodb-commit-concurrency=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `1000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_commit_concurrency](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_commit_concurrency)| -|dev.mysql.com|[sysvar_innodb_commit_concurrency](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_commit_concurrency)| - -## innodb_compression_algorithm -|name|value| -|----|-----| -|Name|`innodb_compression_algorithm`| -|Command line|`--innodb-compression-algorithm=value`| -|Scope|`global`| -|Default value|`zlib (>= MariaDB 10.2.4, MariaDB 10.1.22), none (<= MariaDB 10.2.3, MariaDB 10.1.21)`| -|Dynamic|`true`| -|Valid value(s)|`none`, `zlib`, `lz4`, `lzo`, `lzma`, `bzip2`, `snappy`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_compression_algorithm](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_compression_algorithm)| - -## innodb_compression_default -|name|value| -|----|-----| -|Name|`innodb_compression_default`| -|Command line|`--innodb-compression-default={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_compression_default](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_compression_default)| - -## innodb_compression_failure_threshold_pct -|name|value| -|----|-----| -|Name|`innodb_compression_failure_threshold_pct`| -|Command line|`--innodb-compression-failure-threshold-pct=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`5`| -|Dynamic|`true`| -|Range|from: `0` to: `100`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_compression_failure_threshold_pct](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_compression_failure_threshold_pct)| -|dev.mysql.com|[sysvar_innodb_compression_failure_threshold_pct](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_compression_failure_threshold_pct)| - -## innodb_compression_level -|name|value| -|----|-----| -|Name|`innodb_compression_level`| -|Command line|`--innodb-compression-level=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`6`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_compression_level](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_compression_level)| -|dev.mysql.com|[sysvar_innodb_compression_level](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_compression_level)| - -## innodb_compression_pad_pct_max -|name|value| -|----|-----| -|Name|`innodb_compression_pad_pct_max`| -|Command line|`--innodb-compression-pad-pct-max=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`50`| -|Dynamic|`true`| -|Range|from: `0` to: `75`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_compression_pad_pct_max](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_compression_pad_pct_max)| -|dev.mysql.com|[sysvar_innodb_compression_pad_pct_max](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_compression_pad_pct_max)| - -## innodb_concurrency_tickets -|name|value| -|----|-----| -|Name|`innodb_concurrency_tickets`| -|Command line|`--innodb-concurrency-tickets=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`5000`| -|Dynamic|`true`| -|Range|from: `1` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_concurrency_tickets](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_concurrency_tickets)| -|dev.mysql.com|[sysvar_innodb_concurrency_tickets](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_concurrency_tickets)| - -## innodb_corrupt_table_action -|name|value| -|----|-----| -|Name|`innodb_corrupt_table_action`| -|Command line|`innodb-corrupt-table-action=value`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`assert (<= MariaDB 10.1), deprecated (<= MariaDB 10.2.6)`| -|Dynamic|`true`| -|Valid value(s)|`deprecated`, `assert`, `warn`, `salvage`, `assert`, `warn`, `salvage`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_corrupt_table_action](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_corrupt_table_action)| - -## innodb_data_file_path -|name|value| -|----|-----| -|Name|`innodb_data_file_path`| -|Scope|`global`| -|Default value|`ibdata1:12M:autoextend`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_data_file_path](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_data_file_path)| -|dev.mysql.com|[sysvar_innodb_data_file_path](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_data_file_path)| - -## innodb_data_home_dir -|name|value| -|----|-----| -|Name|`innodb_data_home_dir`| -|Command line|`--innodb-data-home-dir=path`| -|Type of variable|`directory name`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_data_home_dir](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_data_home_dir)| -|dev.mysql.com|[sysvar_innodb_data_home_dir](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_data_home_dir)| - -## innodb_deadlock_detect -|name|value| -|----|-----| -|Name|`innodb_deadlock_detect`| -|Command line|`--innodb-deadlock-detect[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_deadlock_detect](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_deadlock_detect)| -|dev.mysql.com|[sysvar_innodb_deadlock_detect](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_deadlock_detect)| - -## innodb_default_page_encryption_key -|name|value| -|----|-----| -|Name|`innodb_default_page_encryption_key`| -|Command line|`--innodb-default-page-encryption-key=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`true`| -|Range|from: `1` to: `255`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_default_page_encryption_key](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_default_page_encryption_key)| - -## innodb_default_encryption_key_id -|name|value| -|----|-----| -|Name|`innodb_default_encryption_key_id`| -|Command line|`--innodb-default-encryption-key-id=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`1`| -|Dynamic|`true`| -|Range|from: `1` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_default_encryption_key_id](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_default_encryption_key_id)| - -## innodb_default_row_format -|name|value| -|----|-----| -|Name|`innodb_default_row_format`| -|Command line|`--innodb-default-row-format=value`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`DYNAMIC`| -|Dynamic|`true`| -|Valid value(s)|`redundant`, `compact`, `dynamic`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_default_row_format](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_default_row_format)| -|dev.mysql.com|[sysvar_innodb_default_row_format](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_default_row_format)| - -## innodb_defragment -|name|value| -|----|-----| -|Name|`innodb_defragment`| -|Command line|`--innodb-defragment=#`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_defragment](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_defragment)| - -## innodb_defragment_fill_factor -|name|value| -|----|-----| -|Name|`innodb_defragment_fill_factor`| -|Command line|`--innodb-defragment-fill-factor=#`| -|Scope|`global`| -|Default value|`0.9`| -|Dynamic|`true`| -|Range|from: `0.7` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_defragment_fill_factor](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_defragment_fill_factor)| - -## innodb_defragment_fill_factor_n_recs -|name|value| -|----|-----| -|Name|`innodb_defragment_fill_factor_n_recs`| -|Command line|`--innodb-defragment-fill-factor-n-recs=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`20`| -|Dynamic|`true`| -|Range|from: `1` to: `100`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_defragment_fill_factor_n_recs](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_defragment_fill_factor_n_recs)| - -## innodb_defragment_frequency -|name|value| -|----|-----| -|Name|`innodb_defragment_frequency`| -|Command line|`--innodb-defragment-frequency=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`40`| -|Dynamic|`true`| -|Range|from: `1` to: `1000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_defragment_frequency](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_defragment_frequency)| - -## innodb_defragment_n_pages -|name|value| -|----|-----| -|Name|`innodb_defragment_n_pages`| -|Command line|`--innodb-defragment-n-pages=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`7`| -|Dynamic|`true`| -|Range|from: `2` to: `32`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_defragment_n_pages](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_defragment_n_pages)| - -## innodb_defragment_stats_accuracy -|name|value| -|----|-----| -|Name|`innodb_defragment_stats_accuracy`| -|Command line|`--innodb-defragment-stats-accuracy=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_defragment_stats_accuracy](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_defragment_stats_accuracy)| - -## innodb_dict_size_limit -|name|value| -|----|-----| -|Name|`innodb_dict_size_limit`| -|Command line|`innodb-dict-size-limit=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_dict_size_limit](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_dict_size_limit)| - -## innodb_disable_sort_file_cache -|name|value| -|----|-----| -|Name|`innodb_disable_sort_file_cache`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_disable_sort_file_cache](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_disable_sort_file_cache)| -|dev.mysql.com|[sysvar_innodb_disable_sort_file_cache](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_disable_sort_file_cache)| - -## innodb_disallow_writes -|name|value| -|----|-----| -|Name|`innodb_disallow_writes`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_disallow_writes](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_disallow_writes)| - -## innodb_doublewrite -|name|value| -|----|-----| -|Name|`innodb_doublewrite`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_doublewrite](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_doublewrite)| -|dev.mysql.com|[sysvar_innodb_doublewrite](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_doublewrite)| - -## innodb_doublewrite_file -|name|value| -|----|-----| -|Name|`innodb_doublewrite_file`| -|Command line|`innodb-doublewrite-file=filename`| -|Scope|`global`| -|Default value|`NULL`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_doublewrite_file](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_doublewrite_file)| - -## innodb_empty_free_list_algorithm -|name|value| -|----|-----| -|Name|`innodb_empty_free_list_algorithm`| -|Command line|`innodb-empty-free-list-algorithm=value`| -|Scope|`global`| -|Default value|`deprecated (>= MariaDB 10.2.6), legacy (>= MariaDB 10.1.24), backoff (<= MariaDB 10.1.23)`| -|Dynamic|`true`| -|Valid value(s)|`deprecated`, `backoff`, `legacy`, `backoff`, `legacy`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_empty_free_list_algorithm](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_empty_free_list_algorithm)| - -## innodb_enable_unsafe_group_commit -|name|value| -|----|-----| -|Name|`innodb_enable_unsafe_group_commit`| -|Command line|`--innodb-enable-unsafe-group-commit`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_enable_unsafe_group_commit](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_enable_unsafe_group_commit)| - -## innodb_encrypt_log -|name|value| -|----|-----| -|Name|`innodb_encrypt_log`| -|Command line|`--innodb-encrypt-log`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_encrypt_log](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_encrypt_log)| - -## innodb_encrypt_tables -|name|value| -|----|-----| -|Name|`innodb_encrypt_tables`| -|Command line|`--innodb-encrypt-tables=value`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| -|Valid value(s)|`ON`, `OFF`, `FORCE`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_encrypt_tables](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_encrypt_tables)| - -## innodb_encrypt_temporary_tables -|name|value| -|----|-----| -|Name|`innodb_encrypt_temporary_tables`| -|Command line|`--innodb-encrypt-temporary-tables=value`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| -|Valid value(s)|`ON`, `OFF`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_encrypt_temporary_tables](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_encrypt_temporary_tables)| - -## innodb_encryption_rotate_key_age -|name|value| -|----|-----| -|Name|`innodb_encryption_rotate_key_age`| -|Command line|`--innodb-encryption-rotate-key-age=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_encryption_rotate_key_age](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_encryption_rotate_key_age)| - -## innodb_encryption_rotation_iops -|name|value| -|----|-----| -|Name|`innodb_encryption_rotation_iops`| -|Command line|`--innodb-encryption-rotation_iops=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`100`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_encryption_rotation_iops](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_encryption_rotation_iops)| - -## innodb_encryption_threads -|name|value| -|----|-----| -|Name|`innodb_encryption_threads`| -|Command line|`--innodb-encryption-threads=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_encryption_threads](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_encryption_threads)| - -## innodb_extra_rsegments -|name|value| -|----|-----| -|Name|`innodb_extra_rsegments`| -|Command line|`--innodb-extra-rsegments=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`false`| -|Range|from: `0` to: `126`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_extra_rsegments](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_extra_rsegments)| - -## innodb_extra_undoslots -|name|value| -|----|-----| -|Name|`innodb_extra_undoslots`| -|Command line|`--innodb-extra-undoslots=#`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_extra_undoslots](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_extra_undoslots)| - -## innodb_fake_changes -|name|value| -|----|-----| -|Name|`innodb_fake_changes`| -|Command line|`--innodb-fake-changes={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_fake_changes](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_fake_changes)| - -## innodb_fast_checksum -|name|value| -|----|-----| -|Name|`innodb_fast_checksum`| -|Command line|`--innodb-fast-checksum={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_fast_checksum](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_fast_checksum)| - -## innodb_fast_shutdown -|name|value| -|----|-----| -|Name|`innodb_fast_shutdown`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`true`| -|Valid value(s)|`0`, `1`, `2`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_fast_shutdown](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_fast_shutdown)| -|dev.mysql.com|[sysvar_innodb_fast_shutdown](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_fast_shutdown)| - -## innodb_fatal_semaphore_wait_threshold -|name|value| -|----|-----| -|Name|`innodb_fatal_semaphore_wait_threshold`| -|Command line|`--innodb-fatal-semaphore-wait-threshold=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`600`| -|Dynamic|`false`| -|Range|from: `1` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_fatal_semaphore_wait_threshold](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_fatal_semaphore_wait_threshold)| - -## innodb_file_format -|name|value| -|----|-----| -|Name|`innodb_file_format`| -|Command line|`--innodb-file-format=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`Barracuda (>= MariaDB 10.2.2), Antelope (<= MariaDB 10.2.1)`| -|Dynamic|`true`| -|Valid value(s)|`Antelope`, `Barracuda`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_file_format](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_file_format)| - -## innodb_file_format_check -|name|value| -|----|-----| -|Name|`innodb_file_format_check`| -|Command line|`--innodb-file-format-check=#`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON (>= MariaDB 5.5)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_file_format_check](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_file_format_check)| - -## innodb_file_format_max -|name|value| -|----|-----| -|Name|`innodb_file_format_max`| -|Command line|`--innodb-file-format-max=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`Antelope`| -|Dynamic|`true`| -|Valid value(s)|`Antelope`, `Barracuda`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_file_format_max](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_file_format_max)| - -## innodb_file_per_table -|name|value| -|----|-----| -|Name|`innodb_file_per_table`| -|Command line|`--innodb-path-per-table[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_file_per_table](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_file_per_table)| -|dev.mysql.com|[sysvar_innodb_file_per_table](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_file_per_table)| - -## innodb_fill_factor -|name|value| -|----|-----| -|Name|`innodb_fill_factor`| -|Command line|`--innodb-fill-factor=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`100`| -|Dynamic|`true`| -|Range|from: `10` to: `100`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_fill_factor](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_fill_factor)| -|dev.mysql.com|[sysvar_innodb_fill_factor](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_fill_factor)| - -## innodb_flush_log_at_timeout -|name|value| -|----|-----| -|Name|`innodb_flush_log_at_timeout`| -|Command line|`--innodb-flush-log-at-timeout=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_flush_log_at_timeout](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_flush_log_at_timeout)| -|dev.mysql.com|[sysvar_innodb_flush_log_at_timeout](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_flush_log_at_timeout)| - -## innodb_flush_log_at_trx_commit -|name|value| -|----|-----| -|Name|`innodb_flush_log_at_trx_commit`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`true`| -|Valid value(s)|`0`, `1`, `2`, `3`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_flush_log_at_trx_commit](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_flush_log_at_trx_commit)| -|dev.mysql.com|[sysvar_innodb_flush_log_at_trx_commit](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_flush_log_at_trx_commit)| - -## innodb_flush_method -|name|value| -|----|-----| -|Name|`innodb_flush_method`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_flush_method](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_flush_method)| -|dev.mysql.com|[sysvar_innodb_flush_method](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_flush_method)| - -## innodb_flush_neighbor_pages -|name|value| -|----|-----| -|Name|`innodb_flush_neighbor_pages`| -|Command line|`innodb-flush-neighbor-pages=value`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`area`| -|Dynamic|`true`| -|Valid value(s)|`none`, `0`, `area`, `1`, `cont`, `2`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_flush_neighbor_pages](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_flush_neighbor_pages)| - -## innodb_flush_neighbors -|name|value| -|----|-----| -|Name|`innodb_flush_neighbors`| -|Command line|`--innodb-flush-neighbors=#`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Dynamic|`true`| -|Valid value(s)|`0`, `1`, `2`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_flush_neighbors](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_flush_neighbors)| -|dev.mysql.com|[sysvar_innodb_flush_neighbors](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_flush_neighbors)| - -## innodb_flush_sync -|name|value| -|----|-----| -|Name|`innodb_flush_sync`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_flush_sync](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_flush_sync)| -|dev.mysql.com|[sysvar_innodb_flush_sync](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_flush_sync)| - -## innodb_flushing_avg_loops -|name|value| -|----|-----| -|Name|`innodb_flushing_avg_loops`| -|Command line|`--innodb-flushing-avg-loops=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`30`| -|Dynamic|`true`| -|Range|from: `1` to: `1000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_flushing_avg_loops](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_flushing_avg_loops)| -|dev.mysql.com|[sysvar_innodb_flushing_avg_loops](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_flushing_avg_loops)| - -## innodb_force_load_corrupted -|name|value| -|----|-----| -|Name|`innodb_force_load_corrupted`| -|Command line|`--innodb-force-load-corrupted[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_force_load_corrupted](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_force_load_corrupted)| -|dev.mysql.com|[sysvar_innodb_force_load_corrupted](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_force_load_corrupted)| - -## innodb_force_primary_key -|name|value| -|----|-----| -|Name|`innodb_force_primary_key`| -|Command line|`--innodb-force-primary-key`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_force_primary_key](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_force_primary_key)| - -## innodb_force_recovery -|name|value| -|----|-----| -|Name|`innodb_force_recovery`| -|Command line|`--innodb-force-recovery=#`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`false`| -|Range|from: `0` to: `6`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_force_recovery](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_force_recovery)| -|dev.mysql.com|[sysvar_innodb_force_recovery](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_force_recovery)| - -## innodb_foreground_preflush -|name|value| -|----|-----| -|Name|`innodb_foreground_preflush`| -|Command line|`innodb-foreground-preflush=value`| -|Scope|`global`| -|Default value|`deprecated (>= MariaDB 10.2.6), exponential_backoff (<= MariaDB 10.1)`| -|Dynamic|`true`| -|Valid value(s)|`deprecated`, `exponential_backoff`, `sync_preflush`, `exponential_backoff`, `sync_preflush`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_foreground_preflush](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_foreground_preflush)| - -## innodb_ft_aux_table -|name|value| -|----|-----| -|Name|`innodb_ft_aux_table`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_ft_aux_table](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_ft_aux_table)| -|dev.mysql.com|[sysvar_innodb_ft_aux_table](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_ft_aux_table)| - -## innodb_ft_cache_size -|name|value| -|----|-----| -|Name|`innodb_ft_cache_size`| -|Command line|`--innodb-ft-cache-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`8000000`| -|Dynamic|`false`| -|Range|from: `1600000` to: `80000000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_ft_cache_size](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_ft_cache_size)| -|dev.mysql.com|[sysvar_innodb_ft_cache_size](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_ft_cache_size)| - -## innodb_ft_enable_diag_print -|name|value| -|----|-----| -|Name|`innodb_ft_enable_diag_print`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_ft_enable_diag_print](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_ft_enable_diag_print)| -|dev.mysql.com|[sysvar_innodb_ft_enable_diag_print](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_ft_enable_diag_print)| - -## innodb_ft_enable_stopword -|name|value| -|----|-----| -|Name|`innodb_ft_enable_stopword`| -|Type of variable|`boolean`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_ft_enable_stopword](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_ft_enable_stopword)| -|dev.mysql.com|[sysvar_innodb_ft_enable_stopword](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_ft_enable_stopword)| - -## innodb_ft_max_token_size -|name|value| -|----|-----| -|Name|`innodb_ft_max_token_size`| -|Command line|`--innodb-ft-max-token-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`84`| -|Dynamic|`false`| -|Range|from: `10`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_ft_max_token_size](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_ft_max_token_size)| -|dev.mysql.com|[sysvar_innodb_ft_max_token_size](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_ft_max_token_size)| - -## innodb_ft_min_token_size -|name|value| -|----|-----| -|Name|`innodb_ft_min_token_size`| -|Command line|`--innodb-ft-min-token-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`3`| -|Dynamic|`false`| -|Range|from: `0` to: `16`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_ft_min_token_size](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_ft_min_token_size)| -|dev.mysql.com|[sysvar_innodb_ft_min_token_size](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_ft_min_token_size)| - -## innodb_ft_num_word_optimize -|name|value| -|----|-----| -|Name|`innodb_ft_num_word_optimize`| -|Command line|`--innodb-ft-num-word-optimize=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`2000`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_ft_num_word_optimize](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_ft_num_word_optimize)| -|dev.mysql.com|[sysvar_innodb_ft_num_word_optimize](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_ft_num_word_optimize)| - -## innodb_ft_result_cache_limit -|name|value| -|----|-----| -|Name|`innodb_ft_result_cache_limit`| -|Command line|`--innodb-ft-result-cache-limit=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`2000000000`| -|Dynamic|`true`| -|Range|from: `1000000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_ft_result_cache_limit](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_ft_result_cache_limit)| -|dev.mysql.com|[sysvar_innodb_ft_result_cache_limit](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_ft_result_cache_limit)| - -## innodb_ft_server_stopword_table -|name|value| -|----|-----| -|Name|`innodb_ft_server_stopword_table`| -|Command line|`--innodb-ft-server-stopword-table=db_name/table_name`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`NULL`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_ft_server_stopword_table](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_ft_server_stopword_table)| -|dev.mysql.com|[sysvar_innodb_ft_server_stopword_table](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_ft_server_stopword_table)| - -## innodb_ft_sort_pll_degree -|name|value| -|----|-----| -|Name|`innodb_ft_sort_pll_degree`| -|Command line|`--innodb-ft-sort-pll-degree=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`2`| -|Dynamic|`false`| -|Range|from: `1` to: `32`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_ft_sort_pll_degree](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_ft_sort_pll_degree)| -|dev.mysql.com|[sysvar_innodb_ft_sort_pll_degree](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_ft_sort_pll_degree)| - -## innodb_ft_total_cache_size -|name|value| -|----|-----| -|Name|`innodb_ft_total_cache_size`| -|Command line|`--innodb-ft-total-cache-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`640000000`| -|Dynamic|`false`| -|Range|from: `32000000` to: `1600000000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_ft_total_cache_size](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_ft_total_cache_size)| -|dev.mysql.com|[sysvar_innodb_ft_total_cache_size](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_ft_total_cache_size)| - -## innodb_ft_user_stopword_table -|name|value| -|----|-----| -|Name|`innodb_ft_user_stopword_table`| -|Command line|`--innodb-ft-user-stopword-table=db_name/table_name`| -|Type of variable|`string`| -|Default value|`NULL`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_ft_user_stopword_table](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_ft_user_stopword_table)| -|dev.mysql.com|[sysvar_innodb_ft_user_stopword_table](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_ft_user_stopword_table)| - -## innodb_ibuf_accel_rate -|name|value| -|----|-----| -|Name|`innodb_ibuf_accel_rate`| -|Command line|`innodb-ibuf-accel-rate=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`100`| -|Dynamic|`true`| -|Range|from: `100` to: `999999999`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_ibuf_accel_rate](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_ibuf_accel_rate)| - -## innodb_ibuf_active_contract -|name|value| -|----|-----| -|Name|`innodb_ibuf_active_contract`| -|Command line|`innodb-ibuf-active-contract=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`true`| -|Range|from: `0` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_ibuf_active_contract](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_ibuf_active_contract)| - -## innodb_ibuf_max_size -|name|value| -|----|-----| -|Name|`innodb_ibuf_max_size`| -|Command line|`innodb-ibuf-max-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1/2 the size of the InnoDB buffer pool`| -|Dynamic|`false`| -|Range|from: `0`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_ibuf_max_size](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_ibuf_max_size)| - -## innodb_idle_flush_pct -|name|value| -|----|-----| -|Name|`innodb_idle_flush_pct`| -|Command line|`--innodb-idle-flush-pct=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`100`| -|Dynamic|`true`| -|Range|from: `0` to: `100`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_idle_flush_pct](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_idle_flush_pct)| -|dev.mysql.com|[sysvar_innodb_idle_flush_pct](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_idle_flush_pct)| - -## innodb_immediate_scrub_data_uncompressed -|name|value| -|----|-----| -|Name|`innodb_immediate_scrub_data_uncompressed`| -|Command line|`--innodb-immediate-scrub-data-uncompressed=#`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_immediate_scrub_data_uncompressed](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_immediate_scrub_data_uncompressed)| - -## innodb_import_table_from_xtrabackup -|name|value| -|----|-----| -|Name|`innodb_import_table_from_xtrabackup`| -|Command line|`innodb-import-table-from-xtrabackup=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_import_table_from_xtrabackup](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_import_table_from_xtrabackup)| - -## innodb_instrument_semaphores -|name|value| -|----|-----| -|Name|`innodb_instrument_semaphores`| -|Command line|`--innodb-instrument-semaphores={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_instrument_semaphores](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_instrument_semaphores)| - -## innodb_io_capacity -|name|value| -|----|-----| -|Name|`innodb_io_capacity`| -|Command line|`--innodb-io-capacity=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`200`| -|Dynamic|`true`| -|Range|from: `100` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_io_capacity](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_io_capacity)| -|dev.mysql.com|[sysvar_innodb_io_capacity](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_io_capacity)| - -## innodb_io_capacity_max -|name|value| -|----|-----| -|Name|`innodb_io_capacity_max`| -|Command line|`--innodb-io-capacity-max=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`true`| -|Range|from: `100`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_io_capacity_max](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_io_capacity_max)| -|dev.mysql.com|[sysvar_innodb_io_capacity_max](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_io_capacity_max)| - -## innodb_kill_idle_transaction -|name|value| -|----|-----| -|Name|`innodb_kill_idle_transaction`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `9.2233720368548E+18`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_kill_idle_transaction](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_kill_idle_transaction)| - -## innodb_large_prefix -|name|value| -|----|-----| -|Name|`innodb_large_prefix`| -|Command line|`--innodb-large-prefix`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON (>= MariaDB 10.2.2), OFF (<= MariaDB 10.2.1)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_large_prefix](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_large_prefix)| - -## innodb_lazy_drop_table -|name|value| -|----|-----| -|Name|`innodb_lazy_drop_table`| -|Command line|`innodb-lazy-drop-table={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_lazy_drop_table](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_lazy_drop_table)| - -## innodb_lock_schedule_algorithm -|name|value| -|----|-----| -|Name|`innodb_lock_schedule_algorithm`| -|Command line|`--innodb-lock-schedule-algorithm=#`| -|Scope|`global`| -|Default value|`VATS (10.2), FCFS (10.1)`| -|Dynamic|`false`| -|Valid value(s)|`FCFS`, `VATS`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_lock_schedule_algorithm](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_lock_schedule_algorithm)| - -## innodb_lock_wait_timeout -|name|value| -|----|-----| -|Name|`innodb_lock_wait_timeout`| -|Command line|`--innodb-lock-wait-timeout=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`50`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_lock_wait_timeout](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_lock_wait_timeout)| -|dev.mysql.com|[sysvar_innodb_lock_wait_timeout](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_lock_wait_timeout)| - -## innodb_locking_fake_changes -|name|value| -|----|-----| -|Name|`innodb_locking_fake_changes`| -|Command line|`--innodb-locking-fake-changes`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_locking_fake_changes](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_locking_fake_changes)| - -## innodb_locks_unsafe_for_binlog -|name|value| -|----|-----| -|Name|`innodb_locks_unsafe_for_binlog`| -|Command line|`--innodb-locks-unsafe-for-binlog`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_locks_unsafe_for_binlog](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_locks_unsafe_for_binlog)| - -## innodb_log_arch_dir -|name|value| -|----|-----| -|Name|`innodb_log_arch_dir`| -|Command line|`--innodb-log-arch-dir=name`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`./`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_log_arch_dir](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_log_arch_dir)| - -## innodb_log_arch_expire_sec -|name|value| -|----|-----| -|Name|`innodb_log_arch_expire_sec`| -|Command line|`--innodb-log-arch-expire-sec=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_log_arch_expire_sec](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_log_arch_expire_sec)| - -## innodb_log_archive -|name|value| -|----|-----| -|Name|`innodb_log_archive`| -|Command line|`--innodb-log-archive=value`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_log_archive](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_log_archive)| - -## innodb_log_block_size -|name|value| -|----|-----| -|Name|`innodb_log_block_size`| -|Command line|`innodb-log-block-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`512`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_log_block_size](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_log_block_size)| - -## innodb_log_buffer_size -|name|value| -|----|-----| -|Name|`innodb_log_buffer_size`| -|Command line|`--innodb-log-buffer-size=#`| -|Type of variable|`integer`| -|Default value|`16777216`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_log_buffer_size](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_log_buffer_size)| -|dev.mysql.com|[sysvar_innodb_log_buffer_size](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_log_buffer_size)| - -## innodb_log_checksum_algorithm -|name|value| -|----|-----| -|Name|`innodb_log_checksum_algorithm`| -|Command line|`innodb-log-checksum-algorithm=value`| -|Scope|`global`| -|Default value|`deprecated (>= MariaDB 10.2.6), innodb (<= MariaDB 10.1)`| -|Dynamic|`true`| -|Valid value(s)|`deprecated`, `innodb`, `none`, `crc32`, `strict_none`, `strict_innodb`, `strict_crc32`, `innodb`, `none`, `crc32`, `strict_none`, `strict_innodb`, `strict_crc32`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_log_checksum_algorithm](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_log_checksum_algorithm)| - -## innodb_log_checksums -|name|value| -|----|-----| -|Name|`innodb_log_checksums`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_log_checksums](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_log_checksums)| -|dev.mysql.com|[sysvar_innodb_log_checksums](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_log_checksums)| - -## innodb_log_compressed_pages -|name|value| -|----|-----| -|Name|`innodb_log_compressed_pages`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_log_compressed_pages](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_log_compressed_pages)| -|dev.mysql.com|[sysvar_innodb_log_compressed_pages](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_log_compressed_pages)| - -## innodb_log_file_size -|name|value| -|----|-----| -|Name|`innodb_log_file_size`| -|Command line|`--innodb-log-file-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`50331648`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_log_file_size](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_log_file_size)| -|dev.mysql.com|[sysvar_innodb_log_file_size](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_log_file_size)| - -## innodb_log_files_in_group -|name|value| -|----|-----| -|Name|`innodb_log_files_in_group`| -|Command line|`--innodb-log-files-in-group=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`2`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_log_files_in_group](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_log_files_in_group)| -|dev.mysql.com|[sysvar_innodb_log_files_in_group](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_log_files_in_group)| - -## innodb_log_group_home_dir -|name|value| -|----|-----| -|Name|`innodb_log_group_home_dir`| -|Command line|`--innodb-log-group-home-dir=path`| -|Type of variable|`directory name`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_log_group_home_dir](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_log_group_home_dir)| -|dev.mysql.com|[sysvar_innodb_log_group_home_dir](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_log_group_home_dir)| - -## innodb_log_optimize_ddl -|name|value| -|----|-----| -|Name|`innodb_log_optimize_ddl`| -|Command line|`--innodb-log-optimize-ddl={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_log_optimize_ddl](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_log_optimize_ddl)| - -## innodb_log_write_ahead_size -|name|value| -|----|-----| -|Name|`innodb_log_write_ahead_size`| -|Command line|`--innodb-log-write-ahead-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`8192`| -|Dynamic|`true`| -|Range|from: `512`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_log_write_ahead_size](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_log_write_ahead_size)| -|dev.mysql.com|[sysvar_innodb_log_write_ahead_size](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_log_write_ahead_size)| - -## innodb_lru_scan_depth -|name|value| -|----|-----| -|Name|`innodb_lru_scan_depth`| -|Command line|`--innodb-lru-scan-depth=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1024`| -|Dynamic|`true`| -|Range|from: `100`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_lru_scan_depth](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_lru_scan_depth)| -|dev.mysql.com|[sysvar_innodb_lru_scan_depth](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_lru_scan_depth)| - -## innodb_max_bitmap_file_size -|name|value| -|----|-----| -|Name|`innodb_max_bitmap_file_size`| -|Command line|`innodb-max-bitmap-file-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`4096 (4KB)`| -|Dynamic|`true`| -|Range|from: `4096` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_max_bitmap_file_size](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_max_bitmap_file_size)| - -## innodb_max_changed_pages -|name|value| -|----|-----| -|Name|`innodb_max_changed_pages`| -|Command line|`innodb-max-changed-pages=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1000000`| -|Dynamic|`true`| -|Range|from: `0` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_max_changed_pages](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_max_changed_pages)| - -## innodb_max_dirty_pages_pct -|name|value| -|----|-----| -|Name|`innodb_max_dirty_pages_pct`| -|Command line|`--innodb-max-dirty-pages-pct=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Range|from: `0`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_max_dirty_pages_pct](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_max_dirty_pages_pct)| -|dev.mysql.com|[sysvar_innodb_max_dirty_pages_pct](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_max_dirty_pages_pct)| - -## innodb_max_dirty_pages_pct_lwm -|name|value| -|----|-----| -|Name|`innodb_max_dirty_pages_pct_lwm`| -|Command line|`--innodb-max-dirty-pages-pct-lwm=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`true`| -|Range|from: `0`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_max_dirty_pages_pct_lwm](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_max_dirty_pages_pct_lwm)| -|dev.mysql.com|[sysvar_innodb_max_dirty_pages_pct_lwm](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_max_dirty_pages_pct_lwm)| - -## innodb_max_purge_lag -|name|value| -|----|-----| -|Name|`innodb_max_purge_lag`| -|Command line|`--innodb-max-purge-lag=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_max_purge_lag](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_max_purge_lag)| -|dev.mysql.com|[sysvar_innodb_max_purge_lag](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_max_purge_lag)| - -## innodb_max_purge_lag_delay -|name|value| -|----|-----| -|Name|`innodb_max_purge_lag_delay`| -|Command line|`--innodb-max-purge-lag-delay=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_max_purge_lag_delay](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_max_purge_lag_delay)| -|dev.mysql.com|[sysvar_innodb_max_purge_lag_delay](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_max_purge_lag_delay)| - -## innodb_max_undo_log_size -|name|value| -|----|-----| -|Name|`innodb_max_undo_log_size`| -|Command line|`--innodb-max-undo-log-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`true`| -|Range|from: `10485760`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_max_undo_log_size](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_max_undo_log_size)| -|dev.mysql.com|[sysvar_innodb_max_undo_log_size](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_max_undo_log_size)| - -## innodb_merge_sort_block_size -|name|value| -|----|-----| -|Name|`innodb_merge_sort_block_size`| -|Command line|`innodb-merge-sort-block-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1048576 (1M)`| -|Dynamic|`true`| -|Range|from: `1048576` to: `1073741824`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_merge_sort_block_size](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_merge_sort_block_size)| - -## innodb_mirrored_log_groups -|name|value| -|----|-----| -|Name|`innodb_mirrored_log_groups`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_mirrored_log_groups](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_mirrored_log_groups)| - -## innodb_mtflush_threads -|name|value| -|----|-----| -|Name|`innodb_mtflush_threads`| -|Command line|`--innodb-mtflush-threads=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`8`| -|Dynamic|`false`| -|Range|from: `1` to: `64`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_mtflush_threads](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_mtflush_threads)| - -## innodb_monitor_disable -|name|value| -|----|-----| -|Name|`innodb_monitor_disable`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_monitor_disable](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_monitor_disable)| -|dev.mysql.com|[sysvar_innodb_monitor_disable](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_monitor_disable)| - -## innodb_monitor_enable -|name|value| -|----|-----| -|Name|`innodb_monitor_enable`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_monitor_enable](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_monitor_enable)| -|dev.mysql.com|[sysvar_innodb_monitor_enable](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_monitor_enable)| - -## innodb_monitor_reset -|name|value| -|----|-----| -|Name|`innodb_monitor_reset`| -|Scope|`global`| -|Default value|`empty string`| -|Dynamic|`true`| -|Valid value(s)|`counter`, `module`, `pattern`, `all`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_monitor_reset](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_monitor_reset)| -|dev.mysql.com|[sysvar_innodb_monitor_reset](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_monitor_reset)| - -## innodb_monitor_reset_all -|name|value| -|----|-----| -|Name|`innodb_monitor_reset_all`| -|Scope|`global`| -|Default value|`empty string`| -|Dynamic|`true`| -|Valid value(s)|`counter`, `module`, `pattern`, `all`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_monitor_reset_all](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_monitor_reset_all)| -|dev.mysql.com|[sysvar_innodb_monitor_reset_all](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_monitor_reset_all)| - -## innodb_numa_interleave -|name|value| -|----|-----| -|Name|`innodb_numa_interleave`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_numa_interleave](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_numa_interleave)| -|dev.mysql.com|[sysvar_innodb_numa_interleave](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_numa_interleave)| - -## innodb_old_blocks_pct -|name|value| -|----|-----| -|Name|`innodb_old_blocks_pct`| -|Command line|`--innodb-old-blocks-pct=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`37`| -|Dynamic|`true`| -|Range|from: `5` to: `95`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_old_blocks_pct](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_old_blocks_pct)| -|dev.mysql.com|[sysvar_innodb_old_blocks_pct](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_old_blocks_pct)| - -## innodb_old_blocks_time -|name|value| -|----|-----| -|Name|`innodb_old_blocks_time`| -|Command line|`--innodb-old-blocks-time=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1000`| -|Dynamic|`true`| -|Range|from: `0`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_old_blocks_time](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_old_blocks_time)| -|dev.mysql.com|[sysvar_innodb_old_blocks_time](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_old_blocks_time)| - -## innodb_online_alter_log_max_size -|name|value| -|----|-----| -|Name|`innodb_online_alter_log_max_size`| -|Command line|`--innodb-online-alter-log-max-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`134217728`| -|Dynamic|`true`| -|Range|from: `65536`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_online_alter_log_max_size](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_online_alter_log_max_size)| -|dev.mysql.com|[sysvar_innodb_online_alter_log_max_size](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_online_alter_log_max_size)| - -## innodb_open_files -|name|value| -|----|-----| -|Name|`innodb_open_files`| -|Command line|`--innodb-open-files=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`(-1 signifies autosizing; do not use -1)`| -|Dynamic|`false`| -|Range|from: `10` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_open_files](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_open_files)| -|dev.mysql.com|[sysvar_innodb_open_files](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_open_files)| - -## innodb_optimize_fulltext_only -|name|value| -|----|-----| -|Name|`innodb_optimize_fulltext_only`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_optimize_fulltext_only](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_optimize_fulltext_only)| -|dev.mysql.com|[sysvar_innodb_optimize_fulltext_only](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_optimize_fulltext_only)| - -## innodb_page_cleaners -|name|value| -|----|-----| -|Name|`innodb_page_cleaners`| -|Command line|`--innodb-page-cleaners=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`4`| -|Dynamic|`false`| -|Range|from: `1` to: `64`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_page_cleaners](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_page_cleaners)| -|dev.mysql.com|[sysvar_innodb_page_cleaners](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_page_cleaners)| - -## innodb_page_size -|name|value| -|----|-----| -|Name|`innodb_page_size`| -|Command line|`--innodb-page-size=#`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`16384`| -|Dynamic|`false`| -|Valid value(s)|`4096`, `8192`, `16384`, `32768`, `65536`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_page_size](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_page_size)| -|dev.mysql.com|[sysvar_innodb_page_size](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_page_size)| - -## innodb_pass_corrupt_table -|name|value| -|----|-----| -|Name|`innodb_pass_corrupt_table`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_pass_corrupt_table](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_pass_corrupt_table)| - -## innodb_prefix_index_cluster_optimization -|name|value| -|----|-----| -|Name|`innodb_prefix_index_cluster_optimization`| -|Command line|`--innodb-prefix-index-cluster-optimization=#`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_prefix_index_cluster_optimization](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_prefix_index_cluster_optimization)| - -## innodb_print_all_deadlocks -|name|value| -|----|-----| -|Name|`innodb_print_all_deadlocks`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_print_all_deadlocks](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_print_all_deadlocks)| -|dev.mysql.com|[sysvar_innodb_print_all_deadlocks](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_print_all_deadlocks)| - -## innodb_purge_batch_size -|name|value| -|----|-----| -|Name|`innodb_purge_batch_size`| -|Command line|`--innodb-purge-batch-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Range|from: `1` to: `5000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_purge_batch_size](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_purge_batch_size)| -|dev.mysql.com|[sysvar_innodb_purge_batch_size](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_purge_batch_size)| - -## innodb_purge_rseg_truncate_frequency -|name|value| -|----|-----| -|Name|`innodb_purge_rseg_truncate_frequency`| -|Command line|`--innodb-purge-rseg-truncate-frequency=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`128`| -|Dynamic|`true`| -|Range|from: `1` to: `128`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_purge_rseg_truncate_frequency](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_purge_rseg_truncate_frequency)| -|dev.mysql.com|[sysvar_innodb_purge_rseg_truncate_frequency](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_purge_rseg_truncate_frequency)| - -## innodb_purge_threads -|name|value| -|----|-----| -|Name|`innodb_purge_threads`| -|Command line|`--innodb-purge-threads=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`4`| -|Dynamic|`false`| -|Range|from: `1` to: `32`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_purge_threads](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_purge_threads)| -|dev.mysql.com|[sysvar_innodb_purge_threads](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_purge_threads)| - -## innodb_random_read_ahead -|name|value| -|----|-----| -|Name|`innodb_random_read_ahead`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_random_read_ahead](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_random_read_ahead)| -|dev.mysql.com|[sysvar_innodb_random_read_ahead](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_random_read_ahead)| - -## innodb_read_ahead -|name|value| -|----|-----| -|Name|`innodb_read_ahead`| -|Command line|`innodb-read-ahead=value`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`linear`| -|Dynamic|`true`| -|Valid value(s)|`none`, `random`, `linear`, `both`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_read_ahead](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_read_ahead)| - -## innodb_read_ahead_threshold -|name|value| -|----|-----| -|Name|`innodb_read_ahead_threshold`| -|Command line|`--innodb-read-ahead-threshold=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`56`| -|Dynamic|`true`| -|Range|from: `0` to: `64`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_read_ahead_threshold](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_read_ahead_threshold)| -|dev.mysql.com|[sysvar_innodb_read_ahead_threshold](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_read_ahead_threshold)| - -## innodb_read_io_threads -|name|value| -|----|-----| -|Name|`innodb_read_io_threads`| -|Command line|`--innodb-read-io-threads=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`4`| -|Dynamic|`false`| -|Range|from: `1` to: `64`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_read_io_threads](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_read_io_threads)| -|dev.mysql.com|[sysvar_innodb_read_io_threads](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_read_io_threads)| - -## innodb_read_only -|name|value| -|----|-----| -|Name|`innodb_read_only`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_read_only](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_read_only)| -|dev.mysql.com|[sysvar_innodb_read_only](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_read_only)| - -## innodb_recovery_stats -|name|value| -|----|-----| -|Name|`innodb_recovery_stats`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_recovery_stats](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_recovery_stats)| - -## innodb_recovery_update_relay_log -|name|value| -|----|-----| -|Name|`innodb_recovery_update_relay_log`| -|Command line|`innodb-recovery-update-relay-log={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_recovery_update_relay_log](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_recovery_update_relay_log)| - -## innodb_replication_delay -|name|value| -|----|-----| -|Name|`innodb_replication_delay`| -|Command line|`--innodb-replication-delay=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_replication_delay](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_replication_delay)| -|dev.mysql.com|[sysvar_innodb_replication_delay](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_replication_delay)| - -## innodb_rollback_on_timeout -|name|value| -|----|-----| -|Name|`innodb_rollback_on_timeout`| -|Command line|`--innodb-rollback-on-timeout[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_rollback_on_timeout](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_rollback_on_timeout)| -|dev.mysql.com|[sysvar_innodb_rollback_on_timeout](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_rollback_on_timeout)| - -## innodb_rollback_segments -|name|value| -|----|-----| -|Name|`innodb_rollback_segments`| -|Command line|`--innodb-rollback-segments=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`128`| -|Dynamic|`true`| -|Range|from: `1` to: `128`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_rollback_segments](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_rollback_segments)| -|dev.mysql.com|[sysvar_innodb_rollback_segments](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_rollback_segments)| - -## innodb_safe_truncate -|name|value| -|----|-----| -|Name|`innodb_safe_truncate`| -|Command line|`--innodb-safe-truncate={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_safe_truncate](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_safe_truncate)| - -## innodb_scrub_log -|name|value| -|----|-----| -|Name|`innodb_scrub_log`| -|Command line|`--innodb-scrub-log`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_scrub_log](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_scrub_log)| - -## innodb_scrub_log_interval -|name|value| -|----|-----| -|Name|`innodb_scrub_log_interval`| -|Command line|`--innodb-scrub-log-interval=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`56`| -|Dynamic|`true`| -|Range|from: `0` to: `50000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_scrub_log_interval](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_scrub_log_interval)| - -## innodb_scrub_log_speed -|name|value| -|----|-----| -|Name|`innodb_scrub_log_speed`| -|Command line|`--innodb-scrub-log-speed=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`256`| -|Dynamic|`true`| -|Range|from: `1` to: `50000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_scrub_log_speed](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_scrub_log_speed)| - -## innodb_sched_priority_cleaner -|name|value| -|----|-----| -|Name|`innodb_sched_priority_cleaner`| -|Command line|`innodb-sched-priority-cleaner=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`19`| -|Dynamic|`true`| -|Range|from: `0` to: `39`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_sched_priority_cleaner](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_sched_priority_cleaner)| - -## innodb_show_locks_held -|name|value| -|----|-----| -|Name|`innodb_show_locks_held`| -|Command line|`innodb-show-locks-held=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`10`| -|Dynamic|`true`| -|Range|from: `0` to: `1000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_show_locks_held](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_show_locks_held)| - -## innodb_show_verbose_locks -|name|value| -|----|-----| -|Name|`innodb_show_verbose_locks`| -|Command line|`innodb-show-verbose-locks=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_show_verbose_locks](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_show_verbose_locks)| - -## innodb_simulate_comp_failures -|name|value| -|----|-----| -|Name|`innodb_simulate_comp_failures`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `99`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_simulate_comp_failures](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_simulate_comp_failures)| - -## innodb_sort_buffer_size -|name|value| -|----|-----| -|Name|`innodb_sort_buffer_size`| -|Command line|`--innodb-sort-buffer-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1048576`| -|Dynamic|`false`| -|Range|from: `65536` to: `67108864`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_sort_buffer_size](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_sort_buffer_size)| -|dev.mysql.com|[sysvar_innodb_sort_buffer_size](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_sort_buffer_size)| - -## innodb_spin_wait_delay -|name|value| -|----|-----| -|Name|`innodb_spin_wait_delay`| -|Command line|`--innodb-spin-wait-delay=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_spin_wait_delay](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_spin_wait_delay)| -|dev.mysql.com|[sysvar_innodb_spin_wait_delay](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_spin_wait_delay)| - -## innodb_stats_auto_recalc -|name|value| -|----|-----| -|Name|`innodb_stats_auto_recalc`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_stats_auto_recalc](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_stats_auto_recalc)| -|dev.mysql.com|[sysvar_innodb_stats_auto_recalc](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_stats_auto_recalc)| - -## innodb_stats_auto_update -|name|value| -|----|-----| -|Name|`innodb_stats_auto_update`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_stats_auto_update](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_stats_auto_update)| - -## innodb_stats_include_delete_marked -|name|value| -|----|-----| -|Name|`innodb_stats_include_delete_marked`| -|Command line|`--innodb-stats-include-delete-marked[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_stats_include_delete_marked](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_stats_include_delete_marked)| -|dev.mysql.com|[sysvar_innodb_stats_include_delete_marked](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_stats_include_delete_marked)| - -## innodb_stats_method -|name|value| -|----|-----| -|Name|`innodb_stats_method`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`nulls_equal`| -|Dynamic|`true`| -|Valid value(s)|`nulls_equal`, `nulls_unequal`, `nulls_ignored`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_stats_method](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_stats_method)| -|dev.mysql.com|[sysvar_innodb_stats_method](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_stats_method)| - -## innodb_stats_modified_counter -|name|value| -|----|-----| -|Name|`innodb_stats_modified_counter`| -|Command line|`--innodb-stats-modified-counter=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_stats_modified_counter](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_stats_modified_counter)| - -## innodb_stats_on_metadata -|name|value| -|----|-----| -|Name|`innodb_stats_on_metadata`| -|Command line|`--innodb-stats-on-metadata[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_stats_on_metadata](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_stats_on_metadata)| -|dev.mysql.com|[sysvar_innodb_stats_on_metadata](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_stats_on_metadata)| - -## innodb_stats_persistent -|name|value| -|----|-----| -|Name|`innodb_stats_persistent`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_stats_persistent](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_stats_persistent)| -|dev.mysql.com|[sysvar_innodb_stats_persistent](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_stats_persistent)| - -## innodb_stats_persistent_sample_pages -|name|value| -|----|-----| -|Name|`innodb_stats_persistent_sample_pages`| -|Command line|`--innodb-stats-persistent-sample-pages=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`20`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_stats_persistent_sample_pages](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_stats_persistent_sample_pages)| -|dev.mysql.com|[sysvar_innodb_stats_persistent_sample_pages](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_stats_persistent_sample_pages)| - -## innodb_stats_sample_pages -|name|value| -|----|-----| -|Name|`innodb_stats_sample_pages`| -|Command line|`--innodb-stats-sample-pages=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`8`| -|Dynamic|`true`| -|Range|from: `1` to: `264`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_stats_sample_pages](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_stats_sample_pages)| - -## innodb_stats_traditional -|name|value| -|----|-----| -|Name|`innodb_stats_traditional`| -|Command line|`--innodb-stats-traditional=#`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_stats_traditional](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_stats_traditional)| - -## innodb_stats_transient_sample_pages -|name|value| -|----|-----| -|Name|`innodb_stats_transient_sample_pages`| -|Command line|`--innodb-stats-transient-sample-pages=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`8`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_stats_transient_sample_pages](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_stats_transient_sample_pages)| -|dev.mysql.com|[sysvar_innodb_stats_transient_sample_pages](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_stats_transient_sample_pages)| - -## innodb_stats_update_need_lock -|name|value| -|----|-----| -|Name|`innodb_stats_update_need_lock`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_stats_update_need_lock](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_stats_update_need_lock)| - -## innodb_status_output -|name|value| -|----|-----| -|Name|`innodb_status_output`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_status_output](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_status_output)| -|dev.mysql.com|[sysvar_innodb_status_output](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_status_output)| - -## innodb_status_output_locks -|name|value| -|----|-----| -|Name|`innodb_status_output_locks`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_status_output_locks](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_status_output_locks)| -|dev.mysql.com|[sysvar_innodb_status_output_locks](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_status_output_locks)| - -## innodb_strict_mode -|name|value| -|----|-----| -|Name|`innodb_strict_mode`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`1`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_strict_mode](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_strict_mode)| -|dev.mysql.com|[sysvar_innodb_strict_mode](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_strict_mode)| - -## innodb_support_xa -|name|value| -|----|-----| -|Name|`innodb_support_xa`| -|Command line|`--innodb-support-xa`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_support_xa](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_support_xa)| - -## innodb_sync_array_size -|name|value| -|----|-----| -|Name|`innodb_sync_array_size`| -|Command line|`--innodb-sync-array-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`false`| -|Range|from: `1` to: `1024`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_sync_array_size](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_sync_array_size)| -|dev.mysql.com|[sysvar_innodb_sync_array_size](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_sync_array_size)| - -## innodb_sync_spin_loops -|name|value| -|----|-----| -|Name|`innodb_sync_spin_loops`| -|Command line|`--innodb-sync-spin-loops=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`30`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_sync_spin_loops](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_sync_spin_loops)| -|dev.mysql.com|[sysvar_innodb_sync_spin_loops](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_sync_spin_loops)| - -## innodb_table_locks -|name|value| -|----|-----| -|Name|`innodb_table_locks`| -|Command line|`--innodb-table-locks[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_table_locks](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_table_locks)| -|dev.mysql.com|[sysvar_innodb_table_locks](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_table_locks)| - -## innodb_thread_concurrency -|name|value| -|----|-----| -|Name|`innodb_thread_concurrency`| -|Command line|`--innodb-thread-concurrency=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `1000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_thread_concurrency](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_thread_concurrency)| -|dev.mysql.com|[sysvar_innodb_thread_concurrency](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_thread_concurrency)| - -## innodb_thread_concurrency_timer_based -|name|value| -|----|-----| -|Name|`innodb_thread_concurrency_timer_based`| -|Command line|`innodb-thread-concurrency-timer-based={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_thread_concurrency_timer_based](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_thread_concurrency_timer_based)| - -## innodb_thread_sleep_delay -|name|value| -|----|-----| -|Name|`innodb_thread_sleep_delay`| -|Command line|`--innodb-thread-sleep-delay=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`10000`| -|Dynamic|`true`| -|Range|from: `0` to: `1000000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_thread_sleep_delay](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_thread_sleep_delay)| -|dev.mysql.com|[sysvar_innodb_thread_sleep_delay](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_thread_sleep_delay)| - -## innodb_temp_data_file_path -|name|value| -|----|-----| -|Name|`innodb_temp_data_file_path`| -|Command line|`--innodb-temp-data-path-path=path-name`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`ibtmp1:12M:autoextend`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_temp_data_file_path](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_temp_data_file_path)| -|dev.mysql.com|[sysvar_innodb_temp_data_file_path](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_temp_data_file_path)| - -## innodb_tmpdir -|name|value| -|----|-----| -|Name|`innodb_tmpdir`| -|Command line|`--innodb-tmpdir=path`| -|Default value|`NULL`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_tmpdir](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_tmpdir)| -|dev.mysql.com|[sysvar_innodb_tmpdir](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_tmpdir)| - -## innodb_track_changed_pages -|name|value| -|----|-----| -|Name|`innodb_track_changed_pages`| -|Command line|`innodb-track-changed-pages={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_track_changed_pages](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_track_changed_pages)| - -## innodb_track_redo_log_now -|name|value| -|----|-----| -|Name|`innodb_track_redo_log_now`| -|Command line|`innodb-track-redo-log-now={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_track_redo_log_now](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_track_redo_log_now)| - -## innodb_undo_directory -|name|value| -|----|-----| -|Name|`innodb_undo_directory`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_undo_directory](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_undo_directory)| -|dev.mysql.com|[sysvar_innodb_undo_directory](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_undo_directory)| - -## innodb_undo_log_truncate -|name|value| -|----|-----| -|Name|`innodb_undo_log_truncate`| -|Type of variable|`boolean`| -|Scope|`global`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_undo_log_truncate](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_undo_log_truncate)| -|dev.mysql.com|[sysvar_innodb_undo_log_truncate](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_undo_log_truncate)| - -## innodb_undo_logs -|name|value| -|----|-----| -|Name|`innodb_undo_logs`| -|Command line|`--innodb-undo-logs=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`128`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_undo_logs](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_undo_logs)| -|dev.mysql.com|[sysvar_innodb_undo_logs](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_undo_logs)| - -## innodb_undo_tablespaces -|name|value| -|----|-----| -|Name|`innodb_undo_tablespaces`| -|Command line|`--innodb-undo-tablespaces=#`| -|Type of variable|`integer`| -|Scope|`global`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_undo_tablespaces](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_undo_tablespaces)| -|dev.mysql.com|[sysvar_innodb_undo_tablespaces](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_undo_tablespaces)| - -## innodb_use_atomic_writes -|name|value| -|----|-----| -|Name|`innodb_use_atomic_writes`| -|Command line|`innodb-use-atomic-writes={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON (>= MariaDB 10.2.4), OFF (<= MariaDB 10.2.3)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_use_atomic_writes](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_use_atomic_writes)| - -## innodb_use_fallocate -|name|value| -|----|-----| -|Name|`innodb_use_fallocate`| -|Command line|`innodb-use-fallocate={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_use_fallocate](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_use_fallocate)| - -## innodb_use_global_flush_log_at_trx_commit -|name|value| -|----|-----| -|Name|`innodb_use_global_flush_log_at_trx_commit`| -|Command line|`innodb-use-global-flush-log-at-trx_commit={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_use_global_flush_log_at_trx_commit](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_use_global_flush_log_at_trx_commit)| - -## innodb_use_mtflush -|name|value| -|----|-----| -|Name|`innodb_use_mtflush`| -|Command line|`--innodb-use-mtflush=#`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_use_mtflush](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_use_mtflush)| - -## innodb_use_native_aio -|name|value| -|----|-----| -|Name|`innodb_use_native_aio`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_use_native_aio](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_use_native_aio)| -|dev.mysql.com|[sysvar_innodb_use_native_aio](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_use_native_aio)| - -## innodb_use_purge_thread -|name|value| -|----|-----| -|Name|`innodb_use_purge_thread`| -|Command line|`--innodb-use-purge-thread=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`false`| -|Range|from: `0` to: `32`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_use_purge_thread](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_use_purge_thread)| - -## innodb_use_stacktrace -|name|value| -|----|-----| -|Name|`innodb_use_stacktrace`| -|Command line|`--innodb-use-stacktrace=#`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_use_stacktrace](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_use_stacktrace)| - -## innodb_use_sys_malloc -|name|value| -|----|-----| -|Name|`innodb_use_sys_malloc`| -|Command line|`--innodb-use-sys-malloc=#`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_use_sys_malloc](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_use_sys_malloc)| - -## innodb_use_sys_stats_table -|name|value| -|----|-----| -|Name|`innodb_use_sys_stats_table`| -|Command line|`innodb-use-sys-stats-table={0|1}`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_use_sys_stats_table](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_use_sys_stats_table)| - -## innodb_use_trim -|name|value| -|----|-----| -|Name|`innodb_use_trim`| -|Command line|`--innodb-use-trim=#`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON (>= MariaDB 10.2.4), OFF (<= MariaDB 10.2.3)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_use_trim](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_use_trim)| - -## innodb_version -|name|value| -|----|-----| -|Name|`innodb_version`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_version](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_version)| - -## innodb_write_io_threads -|name|value| -|----|-----| -|Name|`innodb_write_io_threads`| -|Command line|`--innodb-write-io-threads=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`4`| -|Dynamic|`false`| -|Range|from: `1` to: `64`| - -### Documentation(s) -|source|anchor name| -|------|----| -|mariadb.com|[innodb_write_io_threads](https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/#innodb_write_io_threads)| -|dev.mysql.com|[sysvar_innodb_write_io_threads](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_write_io_threads)| - -## audit_log -|name|value| -|----|-----| -|Name|`audit_log`| -|Command line|`--audit-log[=value]`| -|Type of variable|`enumeration`| -|Default value|`ON`| -|Valid value(s)|`ON`, `OFF`, `FORCE`, `FORCE_PLUS_PERMANENT`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_audit-log](https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html#option_mysqld_audit-log)| - -## audit_log_buffer_size -|name|value| -|----|-----| -|Name|`audit_log_buffer_size`| -|Command line|`--audit-log-buffer-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1048576`| -|Dynamic|`false`| -|Range|from: `4096`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_audit_log_buffer_size](https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html#sysvar_audit_log_buffer_size)| - -## audit_log_compression -|name|value| -|----|-----| -|Name|`audit_log_compression`| -|Command line|`--audit-log-compression=value`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`NONE`| -|Dynamic|`false`| -|Valid value(s)|`NONE`, `GZIP`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_audit_log_compression](https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html#sysvar_audit_log_compression)| - -## audit_log_connection_policy -|name|value| -|----|-----| -|Name|`audit_log_connection_policy`| -|Command line|`--audit-log-connection-policy=value`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`ALL`| -|Dynamic|`true`| -|Valid value(s)|`ALL`, `ERRORS`, `NONE`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_audit_log_connection_policy](https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html#sysvar_audit_log_connection_policy)| - -## audit_log_current_session -|name|value| -|----|-----| -|Name|`audit_log_current_session`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`depends on filtering policy`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_audit_log_current_session](https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html#sysvar_audit_log_current_session)| - -## audit_log_encryption -|name|value| -|----|-----| -|Name|`audit_log_encryption`| -|Command line|`--audit-log-encryption=value`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`NONE`| -|Dynamic|`false`| -|Valid value(s)|`NONE`, `AES`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_audit_log_encryption](https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html#sysvar_audit_log_encryption)| - -## audit_log_exclude_accounts -|name|value| -|----|-----| -|Name|`audit_log_exclude_accounts`| -|Command line|`--audit-log-exclude-accounts=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`NULL`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_audit_log_exclude_accounts](https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html#sysvar_audit_log_exclude_accounts)| - -## audit_log_file -|name|value| -|----|-----| -|Name|`audit_log_file`| -|Command line|`--audit-log-file=file_name`| -|Type of variable|`file name`| -|Scope|`global`| -|Default value|`audit.log`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_audit_log_file](https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html#sysvar_audit_log_file)| - -## audit_log_filter_id -|name|value| -|----|-----| -|Name|`audit_log_filter_id`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_audit_log_filter_id](https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html#sysvar_audit_log_filter_id)| - -## audit_log_flush -|name|value| -|----|-----| -|Name|`audit_log_flush`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_audit_log_flush](https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html#sysvar_audit_log_flush)| - -## audit_log_format -|name|value| -|----|-----| -|Name|`audit_log_format`| -|Command line|`--audit-log-format=value`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`NEW`| -|Dynamic|`false`| -|Valid value(s)|`OLD`, `NEW`, `JSON`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_audit_log_format](https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html#sysvar_audit_log_format)| - -## audit_log_include_accounts -|name|value| -|----|-----| -|Name|`audit_log_include_accounts`| -|Command line|`--audit-log-include-accounts=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`NULL`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_audit_log_include_accounts](https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html#sysvar_audit_log_include_accounts)| - -## audit_log_password_history_keep_days -|name|value| -|----|-----| -|Name|`audit_log_password_history_keep_days`| -|Command line|`--audit-log-password-history-keep-days=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_audit_log_password_history_keep_days](https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html#sysvar_audit_log_password_history_keep_days)| - -## audit_log_policy -|name|value| -|----|-----| -|Name|`audit_log_policy`| -|Command line|`--audit-log-policy=value`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`ALL`| -|Dynamic|`false`| -|Valid value(s)|`ALL`, `LOGINS`, `QUERIES`, `NONE`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_audit_log_policy](https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html#sysvar_audit_log_policy)| - -## audit_log_read_buffer_size -|name|value| -|----|-----| -|Name|`audit_log_read_buffer_size`| -|Command line|`--audit-log-read-buffer-size=#`| -|Type of variable|`integer`| -|Range|to: `4194304`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_audit_log_read_buffer_size](https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html#sysvar_audit_log_read_buffer_size)| - -## audit_log_rotate_on_size -|name|value| -|----|-----| -|Name|`audit_log_rotate_on_size`| -|Command line|`--audit-log-rotate-on-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_audit_log_rotate_on_size](https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html#sysvar_audit_log_rotate_on_size)| - -## audit_log_statement_policy -|name|value| -|----|-----| -|Name|`audit_log_statement_policy`| -|Command line|`--audit-log-statement-policy=value`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`ALL`| -|Dynamic|`true`| -|Valid value(s)|`ALL`, `ERRORS`, `NONE`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_audit_log_statement_policy](https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html#sysvar_audit_log_statement_policy)| - -## audit_log_strategy -|name|value| -|----|-----| -|Name|`audit_log_strategy`| -|Command line|`--audit-log-strategy=value`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`ASYNCHRONOUS`| -|Dynamic|`false`| -|Valid value(s)|`ASYNCHRONOUS`, `PERFORMANCE`, `SEMISYNCHRONOUS`, `SYNCHRONOUS`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_audit_log_strategy](https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html#sysvar_audit_log_strategy)| - -## innodb -|name|value| -|----|-----| -|Name|`innodb`| -|Command line|`--innodb[=value]`| -|Type of variable|`enumeration`| -|Default value|`ON`| -|Valid value(s)|`OFF`, `ON`, `FORCE`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_innodb](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#option_mysqld_innodb)| - -## innodb_status_file -|name|value| -|----|-----| -|Name|`innodb_status_file`| -|Command line|`--innodb-status-file[={OFF|ON}]`| -|Type of variable|`boolean`| -|Default value|`OFF`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_innodb-status-file](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#option_mysqld_innodb-status-file)| - -## daemon_memcached_enable_binlog -|name|value| -|----|-----| -|Name|`daemon_memcached_enable_binlog`| -|Command line|`--daemon-memcached-enable-binlog[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_daemon_memcached_enable_binlog](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_daemon_memcached_enable_binlog)| - -## daemon_memcached_engine_lib_name -|name|value| -|----|-----| -|Name|`daemon_memcached_engine_lib_name`| -|Command line|`--daemon-memcached-engine-lib-name=file_name`| -|Type of variable|`file name`| -|Scope|`global`| -|Default value|`innodb_engine.so`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_daemon_memcached_engine_lib_name](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_daemon_memcached_engine_lib_name)| - -## daemon_memcached_engine_lib_path -|name|value| -|----|-----| -|Name|`daemon_memcached_engine_lib_path`| -|Command line|`--daemon-memcached-engine-lib-path=dir_name`| -|Type of variable|`directory name`| -|Scope|`global`| -|Default value|`NULL`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_daemon_memcached_engine_lib_path](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_daemon_memcached_engine_lib_path)| - -## daemon_memcached_option -|name|value| -|----|-----| -|Name|`daemon_memcached_option`| -|Command line|`--daemon-memcached-option=options`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|``| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_daemon_memcached_option](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_daemon_memcached_option)| - -## daemon_memcached_r_batch_size -|name|value| -|----|-----| -|Name|`daemon_memcached_r_batch_size`| -|Command line|`--daemon-memcached-r-batch-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_daemon_memcached_r_batch_size](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_daemon_memcached_r_batch_size)| - -## daemon_memcached_w_batch_size -|name|value| -|----|-----| -|Name|`daemon_memcached_w_batch_size`| -|Command line|`--daemon-memcached-w-batch-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_daemon_memcached_w_batch_size](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_daemon_memcached_w_batch_size)| - -## innodb_background_drop_list_empty -|name|value| -|----|-----| -|Name|`innodb_background_drop_list_empty`| -|Command line|`--innodb-background-drop-list-empty[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_innodb_background_drop_list_empty](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_background_drop_list_empty)| - -## innodb_buffer_pool_debug -|name|value| -|----|-----| -|Name|`innodb_buffer_pool_debug`| -|Command line|`--innodb-buffer-pool-debug[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_innodb_buffer_pool_debug](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_buffer_pool_debug)| - -## innodb_buffer_pool_in_core_file -|name|value| -|----|-----| -|Name|`innodb_buffer_pool_in_core_file`| -|Command line|`--innodb-buffer-pool-in-core-file[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_innodb_buffer_pool_in_core_file](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_buffer_pool_in_core_file)| - -## innodb_checkpoint_disabled -|name|value| -|----|-----| -|Name|`innodb_checkpoint_disabled`| -|Command line|`--innodb-checkpoint-disabled[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_innodb_checkpoint_disabled](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_checkpoint_disabled)| - -## innodb_compress_debug -|name|value| -|----|-----| -|Name|`innodb_compress_debug`| -|Command line|`--innodb-compress-debug=value`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`none`| -|Dynamic|`true`| -|Valid value(s)|`none`, `zlib`, `lz4`, `lz4hc`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_innodb_compress_debug](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_compress_debug)| - -## innodb_ddl_log_crash_reset_debug -|name|value| -|----|-----| -|Name|`innodb_ddl_log_crash_reset_debug`| -|Command line|`--innodb-ddl-log-crash-reset-debug[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_innodb_ddl_log_crash_reset_debug](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_ddl_log_crash_reset_debug)| - -## innodb_dedicated_server -|name|value| -|----|-----| -|Name|`innodb_dedicated_server`| -|Command line|`--innodb-dedicated-server[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_innodb_dedicated_server](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_dedicated_server)| - -## innodb_directories -|name|value| -|----|-----| -|Name|`innodb_directories`| -|Command line|`--innodb-directories=dir_name`| -|Type of variable|`directory name`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_innodb_directories](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_directories)| - -## innodb_fil_make_page_dirty_debug -|name|value| -|----|-----| -|Name|`innodb_fil_make_page_dirty_debug`| -|Command line|`--innodb-fil-make-page-dirty-debug=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|to: `2`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_innodb_fil_make_page_dirty_debug](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_fil_make_page_dirty_debug)| - -## innodb_fsync_threshold -|name|value| -|----|-----| -|Name|`innodb_fsync_threshold`| -|Command line|`--innodb-fsync-threshold=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `2`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_innodb_fsync_threshold](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_fsync_threshold)| - -## innodb_limit_optimistic_insert_debug -|name|value| -|----|-----| -|Name|`innodb_limit_optimistic_insert_debug`| -|Command line|`--innodb-limit-optimistic-insert-debug=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `2`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_innodb_limit_optimistic_insert_debug](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_limit_optimistic_insert_debug)| - -## innodb_log_checkpoint_fuzzy_now -|name|value| -|----|-----| -|Name|`innodb_log_checkpoint_fuzzy_now`| -|Command line|`--innodb-log-checkpoint-fuzzy-now[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_innodb_log_checkpoint_fuzzy_now](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_log_checkpoint_fuzzy_now)| - -## innodb_log_checkpoint_now -|name|value| -|----|-----| -|Name|`innodb_log_checkpoint_now`| -|Command line|`--innodb-log-checkpoint-now[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_innodb_log_checkpoint_now](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_log_checkpoint_now)| - -## innodb_log_spin_cpu_abs_lwm -|name|value| -|----|-----| -|Name|`innodb_log_spin_cpu_abs_lwm`| -|Command line|`--innodb-log-spin-cpu-abs-lwm=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`80`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_innodb_log_spin_cpu_abs_lwm](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_log_spin_cpu_abs_lwm)| - -## innodb_log_spin_cpu_pct_hwm -|name|value| -|----|-----| -|Name|`innodb_log_spin_cpu_pct_hwm`| -|Command line|`--innodb-log-spin-cpu-pct-hwm=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`50`| -|Dynamic|`true`| -|Range|from: `0` to: `100`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_innodb_log_spin_cpu_pct_hwm](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_log_spin_cpu_pct_hwm)| - -## innodb_log_wait_for_flush_spin_hwm -|name|value| -|----|-----| -|Name|`innodb_log_wait_for_flush_spin_hwm`| -|Command line|`--innodb-log-wait-for-flush-spin-hwm=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`400`| -|Dynamic|`true`| -|Range|from: `0`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_innodb_log_wait_for_flush_spin_hwm](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_log_wait_for_flush_spin_hwm)| - -## innodb_merge_threshold_set_all_debug -|name|value| -|----|-----| -|Name|`innodb_merge_threshold_set_all_debug`| -|Command line|`--innodb-merge-threshold-set-all-debug=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`50`| -|Dynamic|`true`| -|Range|from: `1` to: `50`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_innodb_merge_threshold_set_all_debug](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_merge_threshold_set_all_debug)| - -## innodb_parallel_read_threads -|name|value| -|----|-----| -|Name|`innodb_parallel_read_threads`| -|Command line|`--innodb-parallel-read-threads=#`| -|Type of variable|`integer`| -|Scope|`session`| -|Default value|`4`| -|Dynamic|`true`| -|Range|from: `1` to: `256`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_innodb_parallel_read_threads](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_parallel_read_threads)| - -## innodb_print_ddl_logs -|name|value| -|----|-----| -|Name|`innodb_print_ddl_logs`| -|Command line|`--innodb-print-ddl-logs[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_innodb_print_ddl_logs](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_print_ddl_logs)| - -## innodb_redo_log_archive_dirs -|name|value| -|----|-----| -|Name|`innodb_redo_log_archive_dirs`| -|Command line|`--innodb-redo-log-archive-dirs`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`NULL`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_innodb_redo_log_archive_dirs](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_redo_log_archive_dirs)| - -## innodb_redo_log_encrypt -|name|value| -|----|-----| -|Name|`innodb_redo_log_encrypt`| -|Command line|`--innodb-redo-log-encrypt[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_innodb_redo_log_encrypt](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_redo_log_encrypt)| - -## innodb_scan_directories -|name|value| -|----|-----| -|Name|`innodb_scan_directories`| -|Command line|`--innodb-scan-directories=dir_name`| -|Type of variable|`directory name`| -|Scope|`global`| -|Default value|`NULL`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_innodb_scan_directories](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_scan_directories)| - -## innodb_saved_page_number_debug -|name|value| -|----|-----| -|Name|`innodb_saved_page_number_debug`| -|Command line|`--innodb-saved-page-number-debug=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|to: `2`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_innodb_saved_page_number_debug](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_saved_page_number_debug)| - -## innodb_spin_wait_pause_multiplier -|name|value| -|----|-----| -|Name|`innodb_spin_wait_pause_multiplier`| -|Command line|`--innodb-spin-wait-pause-multiplier=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`50`| -|Dynamic|`true`| -|Range|from: `1` to: `100`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_innodb_spin_wait_pause_multiplier](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_spin_wait_pause_multiplier)| - -## innodb_sync_debug -|name|value| -|----|-----| -|Name|`innodb_sync_debug`| -|Command line|`--innodb-sync-debug[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_innodb_sync_debug](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_sync_debug)| - -## innodb_temp_tablespaces_dir -|name|value| -|----|-----| -|Name|`innodb_temp_tablespaces_dir`| -|Command line|`--innodb-temp-tablespaces-dir=dir_name`| -|Type of variable|`directory name`| -|Scope|`global`| -|Default value|`#innodb_temp`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_innodb_temp_tablespaces_dir](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_temp_tablespaces_dir)| - -## innodb_trx_purge_view_update_only_debug -|name|value| -|----|-----| -|Name|`innodb_trx_purge_view_update_only_debug`| -|Command line|`--innodb-trx-purge-view-update-only-debug[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_innodb_trx_purge_view_update_only_debug](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_trx_purge_view_update_only_debug)| - -## innodb_trx_rseg_n_slots_debug -|name|value| -|----|-----| -|Name|`innodb_trx_rseg_n_slots_debug`| -|Command line|`--innodb-trx-rseg-n-slots-debug=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|to: `1024`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_innodb_trx_rseg_n_slots_debug](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_trx_rseg_n_slots_debug)| - -## innodb_undo_log_encrypt -|name|value| -|----|-----| -|Name|`innodb_undo_log_encrypt`| -|Command line|`--innodb-undo-log-encrypt[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_innodb_undo_log_encrypt](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_undo_log_encrypt)| - -## ndbcluster -|name|value| -|----|-----| -|Name|`ndbcluster`| -|Command line|`--ndbcluster`| -|Default value|`FALSE (Version: NDB 7.5-7.6)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_ndbcluster](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#option_mysqld_ndbcluster)| - -## ndb-allow-copying-alter-table -|name|value| -|----|-----| -|Name|`ndb-allow-copying-alter-table`| -|Command line|`--ndb-allow-copying-alter-table=[ON|OFF]`| -|Scope|`global`, `session`| -|Default value|`ON (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_ndb-allow-copying-alter-table](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#option_mysqld_ndb-allow-copying-alter-table)| - -## ndb-batch-size -|name|value| -|----|-----| -|Name|`ndb-batch-size`| -|Command line|`--ndb-batch-size=#`| -|Scope|`global`| -|Default value|`32768 / 0 - 31536000 (Version: NDB 7.5-7.6)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_ndb-batch-size](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#option_mysqld_ndb-batch-size)| - -## ndb-cluster-connection-pool -|name|value| -|----|-----| -|Name|`ndb-cluster-connection-pool`| -|Command line|`--ndb-cluster-connection-pool=#`| -|Scope|`global`| -|Default value|`1 / 1 - 63 (Version: NDB 7.5-7.6)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_ndb-cluster-connection-pool](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#option_mysqld_ndb-cluster-connection-pool)| - -## ndb-cluster-connection-pool-nodeids -|name|value| -|----|-----| -|Name|`ndb-cluster-connection-pool-nodeids`| -|Command line|`--ndb-cluster-connection-pool-nodeids=list`| -|Scope|`global`| -|Default value|`/ (Version: NDB 7.5-7.6)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_ndb-cluster-connection-pool-nodeids](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#option_mysqld_ndb-cluster-connection-pool-nodeids)| - -## ndb-blob-read-batch-bytes -|name|value| -|----|-----| -|Name|`ndb-blob-read-batch-bytes`| -|Command line|`--ndb-blob-read-batch-bytes=bytes`| -|Scope|`global`, `session`| -|Default value|`65536 / 0 - 4294967295 (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_ndb-blob-read-batch-bytes](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#option_mysqld_ndb-blob-read-batch-bytes)| - -## ndb-blob-write-batch-bytes -|name|value| -|----|-----| -|Name|`ndb-blob-write-batch-bytes`| -|Command line|`--ndb-blob-write-batch-bytes=bytes`| -|Scope|`global`, `session`| -|Default value|`65536 / 0 - 4294967295 (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_ndb-blob-write-batch-bytes](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#option_mysqld_ndb-blob-write-batch-bytes)| - -## ndb-connectstring -|name|value| -|----|-----| -|Name|`ndb-connectstring`| -|Command line|`--ndb-connectstring=connection_string`| -|Default value|`(Version: NDB 7.5-7.6)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_ndb-connectstring](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#option_mysqld_ndb-connectstring)| - -## ndb-default-column-format -|name|value| -|----|-----| -|Name|`ndb-default-column-format`| -|Command line|`--ndb-default-column-format=[FIXED|DYNAMIC]`| -|Scope|`global`| -|Default value|`FIXED / FIXED, DYNAMIC (Version: 5.7.16-ndb-7.5.4)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_ndb-default-column-format](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#option_mysqld_ndb-default-column-format)| - -## ndb-deferred-constraints -|name|value| -|----|-----| -|Name|`ndb-deferred-constraints`| -|Command line|`--ndb-deferred-constraints=[0|1]`| -|Scope|`global`, `session`| -|Default value|`0 / 0 - 1 (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_ndb-deferred-constraints](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#option_mysqld_ndb-deferred-constraints)| - -## ndb-distribution -|name|value| -|----|-----| -|Name|`ndb-distribution`| -|Command line|`--ndb-distribution=[KEYHASH|LINHASH]`| -|Scope|`global`| -|Default value|`KEYHASH / LINHASH, KEYHASH (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_ndb-distribution](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#option_mysqld_ndb-distribution)| - -## ndb-log-apply-status -|name|value| -|----|-----| -|Name|`ndb-log-apply-status`| -|Command line|`--ndb-log-apply-status`| -|Scope|`global`| -|Default value|`OFF (Version: NDB 7.5-7.6)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_ndb-log-apply-status](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#option_mysqld_ndb-log-apply-status)| - -## ndb-log-empty-epochs -|name|value| -|----|-----| -|Name|`ndb-log-empty-epochs`| -|Command line|`--ndb-log-empty-epochs=[ON|OFF]`| -|Scope|`global`| -|Default value|`OFF (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_ndb-log-empty-epochs](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#option_mysqld_ndb-log-empty-epochs)| - -## ndb-log-empty-update -|name|value| -|----|-----| -|Name|`ndb-log-empty-update`| -|Command line|`--ndb-log-empty-update=[ON|OFF]`| -|Scope|`global`| -|Default value|`OFF (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_ndb-log-empty-update](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#option_mysqld_ndb-log-empty-update)| - -## ndb-log-exclusive-reads -|name|value| -|----|-----| -|Name|`ndb-log-exclusive-reads`| -|Command line|`--ndb-log-exclusive-reads=[0|1]`| -|Scope|`global`, `session`| -|Default value|`0 (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_ndb-log-exclusive-reads](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#option_mysqld_ndb-log-exclusive-reads)| - -## ndb-log-orig -|name|value| -|----|-----| -|Name|`ndb-log-orig`| -|Command line|`--ndb-log-orig`| -|Scope|`global`| -|Default value|`OFF (Version: NDB 7.5-7.6)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_ndb-log-orig](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#option_mysqld_ndb-log-orig)| - -## ndb-log-transaction-id -|name|value| -|----|-----| -|Name|`ndb-log-transaction-id`| -|Command line|`--ndb-log-transaction-id`| -|Scope|`global`| -|Default value|`OFF (Version: NDB 7.5-7.6)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_ndb-log-transaction-id](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#option_mysqld_ndb-log-transaction-id)| - -## ndb-log-update-minimal -|name|value| -|----|-----| -|Name|`ndb-log-update-minimal`| -|Command line|`--ndb-log-update-minimal`| -|Scope|`global`| -|Default value|`OFF (Version: 5.7.18-ndb-7.6.3)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_ndb-log-update-minimal](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#option_mysqld_ndb-log-update-minimal)| - -## ndb-mgmd-host -|name|value| -|----|-----| -|Name|`ndb-mgmd-host`| -|Command line|`--ndb-mgmd-host=host[:port]`| -|Default value|`localhost:1186 (Version: NDB 7.5-7.6)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_ndb-mgmd-host](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#option_mysqld_ndb-mgmd-host)| - -## ndb-nodeid -|name|value| -|----|-----| -|Name|`ndb-nodeid`| -|Command line|`--ndb-nodeid=#`| -|Scope|`global`| -|Default value|`/ 1 - 255 (Version: 5.1.5)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_ndb-nodeid](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#option_mysqld_ndb-nodeid)| - -## ndb-optimization-delay -|name|value| -|----|-----| -|Name|`ndb-optimization-delay`| -|Command line|`--ndb-optimization-delay=milliseconds`| -|Scope|`global`| -|Default value|`10 / 0 - 100000 (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_ndb-optimization-delay](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#option_mysqld_ndb-optimization-delay)| - -## ndb-recv-thread-activation-threshold -|name|value| -|----|-----| -|Name|`ndb-recv-thread-activation-threshold`| -|Command line|`--ndb-recv-thread-activation-threshold=threshold`| -|Default value|`8 / 0 (MIN_ACTIVATION_THRESHOLD) - 16 (MAX_ACTIVATION_THRESHOLD), (Version: 5.6.10-ndb-7.3.1)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_ndb-recv-thread-activation-threshold](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#option_mysqld_ndb-recv-thread-activation-threshold)| - -## ndb-recv-thread-cpu-mask -|name|value| -|----|-----| -|Name|`ndb-recv-thread-cpu-mask`| -|Command line|`--ndb-recv-thread-cpu-mask=bitmask`| -|Default value|`[empty] (Version: NDB 7.5-7.6)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_ndb-recv-thread-cpu-mask](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#option_mysqld_ndb-recv-thread-cpu-mask)| - -## ndb-transid-mysql-connection-map -|name|value| -|----|-----| -|Name|`ndb-transid-mysql-connection-map`| -|Command line|`ndb-transid-mysql-connection-map=state`| -|Default value|`ON / ON, OFF, FORCE (Version: NDB 7.5-7.6)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_ndb-transid-mysql-connection-map](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#option_mysqld_ndb-transid-mysql-connection-map)| - -## ndb-wait-connected -|name|value| -|----|-----| -|Name|`ndb-wait-connected`| -|Command line|`--ndb-wait-connected=seconds`| -|Scope|`global`| -|Default value|`30 / 0 - 31536000 (Version: 5.1.56-ndb-7.1.16)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_ndb-wait-connected](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#option_mysqld_ndb-wait-connected)| - -## ndb-wait-setup -|name|value| -|----|-----| -|Name|`ndb-wait-setup`| -|Command line|`--ndb-wait-setup=seconds`| -|Scope|`global`| -|Default value|`30 / 0 - 31536000 (Version: 5.1.56-ndb-7.1.16)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_ndb-wait-setup](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#option_mysqld_ndb-wait-setup)| - -## skip-ndbcluster -|name|value| -|----|-----| -|Name|`skip-ndbcluster`| -|Command line|`--skip-ndbcluster`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_skip-ndbcluster](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#option_mysqld_skip-ndbcluster)| - -## ndb_autoincrement_prefetch_sz -|name|value| -|----|-----| -|Name|`ndb_autoincrement_prefetch_sz`| -|Scope|`global`, `session`| -|Default value|`1 / 1 - 256 (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_autoincrement_prefetch_sz](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_autoincrement_prefetch_sz)| - -## ndb_cache_check_time -|name|value| -|----|-----| -|Name|`ndb_cache_check_time`| -|Scope|`global`| -|Default value|`0 / - (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_cache_check_time](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_cache_check_time)| - -## ndb_clear_apply_status -|name|value| -|----|-----| -|Name|`ndb_clear_apply_status`| -|Scope|`global`| -|Default value|`ON (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_clear_apply_status](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_clear_apply_status)| - -## ndb_data_node_neighbour -|name|value| -|----|-----| -|Name|`ndb_data_node_neighbour`| -|Scope|`global`| -|Default value|`0 / 0 - 255 (Version: 5.7.12-ndb-7.5.2)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_data_node_neighbour](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_data_node_neighbour)| - -## ndb_default_column_format -|name|value| -|----|-----| -|Name|`ndb_default_column_format`| -|Scope|`global`| -|Default value|`FIXED / FIXED, DYNAMIC (Version: 5.7.16-ndb-7.5.4)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_default_column_format](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_default_column_format)| - -## ndb_deferred_constraints -|name|value| -|----|-----| -|Name|`ndb_deferred_constraints`| -|Scope|`global`, `session`| -|Default value|`0 / 0 - 1 (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_deferred_constraints](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_deferred_constraints)| - -## ndb_distribution -|name|value| -|----|-----| -|Name|`ndb_distribution`| -|Scope|`global`| -|Default value|`KEYHASH / LINHASH, KEYHASH (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_distribution](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_distribution)| - -## ndb_eventbuffer_free_percent -|name|value| -|----|-----| -|Name|`ndb_eventbuffer_free_percent`| -|Scope|`global`| -|Default value|`20 / 1 - 99 (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_eventbuffer_free_percent](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_eventbuffer_free_percent)| - -## ndb_eventbuffer_max_alloc -|name|value| -|----|-----| -|Name|`ndb_eventbuffer_max_alloc`| -|Scope|`global`| -|Default value|`0 / 0 - 4294967295 (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_eventbuffer_max_alloc](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_eventbuffer_max_alloc)| - -## ndb_extra_logging -|name|value| -|----|-----| -|Name|`ndb_extra_logging`| -|Scope|`global`| -|Default value|`1 / - (Version: 5.1.19-ndb-6.3.0)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_extra_logging](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_extra_logging)| - -## ndb_force_send -|name|value| -|----|-----| -|Name|`ndb_force_send`| -|Scope|`global`, `session`| -|Default value|`TRUE (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_force_send](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_force_send)| - -## ndb_fully_replicated -|name|value| -|----|-----| -|Name|`ndb_fully_replicated`| -|Scope|`global`, `session`| -|Default value|`OFF (Version: 5.7.12-ndb-7-5-2)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_fully_replicated](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_fully_replicated)| - -## ndb_index_stat_enable -|name|value| -|----|-----| -|Name|`ndb_index_stat_enable`| -|Scope|`global`, `session`| -|Default value|`ON (Version: 5.5.15-ndb-7.2.1)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_index_stat_enable](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_index_stat_enable)| - -## ndb_index_stat_option -|name|value| -|----|-----| -|Name|`ndb_index_stat_option`| -|Scope|`global`, `session`| -|Default value|`loop_checkon=1000ms,loop_idle=1000ms,loop_busy=100ms,, update_batch=1,read_batch=4,idle_batch=32,check_batch=32,, check_delay=1m,delete_batch=8,clean_delay=0,error_batch=4,, error_delay=1m,evict_batch=8,evict_delay=1m,cache_limit=32M,, cache_lowpct=90 (Version: 5.1.56-ndb-7.1.17)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_index_stat_option](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_index_stat_option)| - -## ndb_join_pushdown -|name|value| -|----|-----| -|Name|`ndb_join_pushdown`| -|Scope|`global`, `session`| -|Default value|`TRUE (Version: 5.1.51-ndb-7.2.0)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_join_pushdown](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_join_pushdown)| - -## ndb_log_apply_status -|name|value| -|----|-----| -|Name|`ndb_log_apply_status`| -|Scope|`global`| -|Default value|`OFF (Version: NDB 7.5-7.6)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_log_apply_status](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_log_apply_status)| - -## ndb_log_bin -|name|value| -|----|-----| -|Name|`ndb_log_bin`| -|Scope|`global`, `session`| -|Default value|`ON (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_log_bin](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_log_bin)| - -## ndb_log_binlog_index -|name|value| -|----|-----| -|Name|`ndb_log_binlog_index`| -|Scope|`global`| -|Default value|`ON (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_log_binlog_index](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_log_binlog_index)| - -## ndb_log_empty_epochs -|name|value| -|----|-----| -|Name|`ndb_log_empty_epochs`| -|Scope|`global`| -|Default value|`OFF (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_log_empty_epochs](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_log_empty_epochs)| - -## ndb_log_empty_update -|name|value| -|----|-----| -|Name|`ndb_log_empty_update`| -|Scope|`global`| -|Default value|`OFF (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_log_empty_update](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_log_empty_update)| - -## ndb_log_exclusive_reads -|name|value| -|----|-----| -|Name|`ndb_log_exclusive_reads`| -|Scope|`global`, `session`| -|Default value|`0 (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_log_exclusive_reads](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_log_exclusive_reads)| - -## ndb_log_orig -|name|value| -|----|-----| -|Name|`ndb_log_orig`| -|Scope|`global`| -|Default value|`OFF (Version: NDB 7.5-7.6)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_log_orig](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_log_orig)| - -## ndb_log_transaction_id -|name|value| -|----|-----| -|Name|`ndb_log_transaction_id`| -|Scope|`global`| -|Default value|`OFF (Version: NDB 7.5-7.6)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_log_transaction_id](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_log_transaction_id)| - -## ndb_optimized_node_selection -|name|value| -|----|-----| -|Name|`ndb_optimized_node_selection`| -|Scope|`global`| -|Default value|`3 / 0 - 3 (Version: 5.1.22-ndb-6.3.4)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_optimized_node_selection](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_optimized_node_selection)| - -## ndb_read_backup -|name|value| -|----|-----| -|Name|`ndb_read_backup`| -|Scope|`global`| -|Default value|`OFF (Version: 5.7.12-ndb-7.5.2)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_read_backup](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_read_backup)| - -## ndb_recv_thread_activation_threshold -|name|value| -|----|-----| -|Name|`ndb_recv_thread_activation_threshold`| -|Default value|`8 / 0 (MIN_ACTIVATION_THRESHOLD) - 16 (MAX_ACTIVATION_THRESHOLD), (Version: 5.6.10-ndb-7.3.1)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_recv_thread_activation_threshold](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_recv_thread_activation_threshold)| - -## ndb_recv_thread_cpu_mask -|name|value| -|----|-----| -|Name|`ndb_recv_thread_cpu_mask`| -|Scope|`global`| -|Default value|`[empty] (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_recv_thread_cpu_mask](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_recv_thread_cpu_mask)| - -## ndb_report_thresh_binlog_epoch_slip -|name|value| -|----|-----| -|Name|`ndb_report_thresh_binlog_epoch_slip`| -|Scope|`global`| -|Default value|`10 / 0 - 256 (Version: 5.7.16-ndb-7.5.4)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_report_thresh_binlog_epoch_slip](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_report_thresh_binlog_epoch_slip)| - -## ndb_report_thresh_binlog_mem_usage -|name|value| -|----|-----| -|Name|`ndb_report_thresh_binlog_mem_usage`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`1 / 0 - 1 (Version: NDB 7.6.8)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_report_thresh_binlog_mem_usage](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_report_thresh_binlog_mem_usage)| - -## ndb_row_checksum -|name|value| -|----|-----| -|Name|`ndb_row_checksum`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1 / 0 - 1 (Version: NDB 7.6.8)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_row_checksum](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_row_checksum)| - -## ndb_show_foreign_key_mock_tables -|name|value| -|----|-----| -|Name|`ndb_show_foreign_key_mock_tables`| -|Scope|`global`| -|Default value|`OFF (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_show_foreign_key_mock_tables](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_show_foreign_key_mock_tables)| - -## ndb_slave_conflict_role -|name|value| -|----|-----| -|Name|`ndb_slave_conflict_role`| -|Scope|`global`| -|Default value|`NONE / NONE, PRIMARY, SECONDARY, PASS (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_slave_conflict_role](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_slave_conflict_role)| - -## ndb_table_no_logging -|name|value| -|----|-----| -|Name|`ndb_table_no_logging`| -|Scope|`session`| -|Default value|`FALSE (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_table_no_logging](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_table_no_logging)| - -## ndb_table_temporary -|name|value| -|----|-----| -|Name|`ndb_table_temporary`| -|Scope|`session`| -|Default value|`FALSE (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_table_temporary](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_table_temporary)| - -## ndb_use_copying_alter_table -|name|value| -|----|-----| -|Name|`ndb_use_copying_alter_table`| -|Scope|`global`, `session`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_use_copying_alter_table](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_use_copying_alter_table)| - -## ndb_use_exact_count -|name|value| -|----|-----| -|Name|`ndb_use_exact_count`| -|Scope|`global`, `session`| -|Default value|`OFF (Version: 5.1.47-ndb-7.1.8)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_use_exact_count](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_use_exact_count)| - -## ndb_use_transactions -|name|value| -|----|-----| -|Name|`ndb_use_transactions`| -|Scope|`global`, `session`| -|Default value|`ON (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_use_transactions](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_use_transactions)| - -## ndb_version -|name|value| -|----|-----| -|Name|`ndb_version`| -|Scope|`global`| -|Default value|`(Version: NDB 7.5-7.6)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_version](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_version)| - -## ndb_version_string -|name|value| -|----|-----| -|Name|`ndb_version_string`| -|Scope|`global`| -|Default value|`(Version: NDB 7.5-7.6)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndb_version_string](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndb_version_string)| - -## server_id_bits -|name|value| -|----|-----| -|Name|`server_id_bits`| -|Scope|`global`| -|Default value|`32 / 7 - 32 (Version: NDB 7.5-7.6)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_server_id_bits](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_server_id_bits)| - -## slave_allow_batching -|name|value| -|----|-----| -|Name|`slave_allow_batching`| -|Scope|`global`| -|Default value|`off (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_slave_allow_batching](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_slave_allow_batching)| - -## transaction_allow_batching -|name|value| -|----|-----| -|Name|`transaction_allow_batching`| -|Scope|`session`| -|Default value|`FALSE (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_transaction_allow_batching](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_transaction_allow_batching)| - -## ndbinfo_database -|name|value| -|----|-----| -|Name|`ndbinfo_database`| -|Scope|`global`| -|Default value|`ndbinfo (Version: NDB 7.5-7.6)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndbinfo_database](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndbinfo_database)| - -## ndbinfo_max_bytes -|name|value| -|----|-----| -|Name|`ndbinfo_max_bytes`| -|Scope|`global`, `session`| -|Default value|`0 / - (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndbinfo_max_bytes](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndbinfo_max_bytes)| - -## ndbinfo_max_rows -|name|value| -|----|-----| -|Name|`ndbinfo_max_rows`| -|Scope|`global`, `session`| -|Default value|`10 / - (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndbinfo_max_rows](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndbinfo_max_rows)| - -## ndbinfo_offline -|name|value| -|----|-----| -|Name|`ndbinfo_offline`| -|Scope|`global`| -|Default value|`OFF (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndbinfo_offline](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndbinfo_offline)| - -## ndbinfo_show_hidden -|name|value| -|----|-----| -|Name|`ndbinfo_show_hidden`| -|Scope|`global`, `session`| -|Default value|`OFF (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndbinfo_show_hidden](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndbinfo_show_hidden)| - -## ndbinfo_table_prefix -|name|value| -|----|-----| -|Name|`ndbinfo_table_prefix`| -|Scope|`global`, `session`| -|Default value|`ndb$ (Version: NDB 7.5-7.6)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndbinfo_table_prefix](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndbinfo_table_prefix)| - -## ndbinfo_version -|name|value| -|----|-----| -|Name|`ndbinfo_version`| -|Scope|`global`| -|Default value|`(Version: NDB 7.5-7.6)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ndbinfo_version](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html#sysvar_ndbinfo_version)| - -## performance_schema_error_size -|name|value| -|----|-----| -|Name|`performance_schema_error_size`| -|Command line|`--performance-schema-error-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`number of server error codes`| -|Dynamic|`false`| -|Range|from: `0` to: `1048576`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_performance_schema_error_size](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_error_size)| - -## performance_schema_events_transactions_history_long_size -|name|value| -|----|-----| -|Name|`performance_schema_events_transactions_history_long_size`| -|Command line|`--performance-schema-events-transactions-history-long-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`(-1 signifies autosizing; do not use -1)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_performance_schema_events_transactions_history_long_size](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_events_transactions_history_long_size)| - -## performance_schema_events_transactions_history_size -|name|value| -|----|-----| -|Name|`performance_schema_events_transactions_history_size`| -|Command line|`--performance-schema-events-transactions-history-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`(-1 signifies autosizing; do not use -1)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_performance_schema_events_transactions_history_size](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_events_transactions_history_size)| - -## performance_schema_max_digest_sample_age -|name|value| -|----|-----| -|Name|`performance_schema_max_digest_sample_age`| -|Command line|`--performance-schema-max-digest-sample-age=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`60`| -|Dynamic|`true`| -|Range|from: `0` to: `1048576`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_performance_schema_max_digest_sample_age](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_max_digest_sample_age)| - -## performance_schema_max_index_stat -|name|value| -|----|-----| -|Name|`performance_schema_max_index_stat`| -|Command line|`--performance-schema-max-index-stat=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`(-1 signifies autosizing; do not use -1)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_performance_schema_max_index_stat](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_max_index_stat)| - -## performance_schema_max_memory_classes -|name|value| -|----|-----| -|Name|`performance_schema_max_memory_classes`| -|Command line|`--performance-schema-max-memory-classes=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_performance_schema_max_memory_classes](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_max_memory_classes)| - -## performance_schema_max_metadata_locks -|name|value| -|----|-----| -|Name|`performance_schema_max_metadata_locks`| -|Command line|`--performance-schema-max-metadata-locks=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`(-1 signifies autoscaling; do not use -1)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_performance_schema_max_metadata_locks](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_max_metadata_locks)| - -## performance_schema_max_prepared_statements_instances -|name|value| -|----|-----| -|Name|`performance_schema_max_prepared_statements_instances`| -|Command line|`--performance-schema-max-prepared-statements-instances=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`(-1 signifies autoscaling; do not use -1)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_performance_schema_max_prepared_statements_instances](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_max_prepared_statements_instances)| - -## performance_schema_max_program_instances -|name|value| -|----|-----| -|Name|`performance_schema_max_program_instances`| -|Command line|`--performance-schema-max-program-instances=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`(-1 signifies autoscaling; do not use -1)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_performance_schema_max_program_instances](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_max_program_instances)| - -## performance_schema_max_sql_text_length -|name|value| -|----|-----| -|Name|`performance_schema_max_sql_text_length`| -|Command line|`--performance-schema-max-sql-text-length=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1024`| -|Dynamic|`false`| -|Range|from: `0` to: `1048576`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_performance_schema_max_sql_text_length](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_max_sql_text_length)| - -## performance_schema_max_statement_stack -|name|value| -|----|-----| -|Name|`performance_schema_max_statement_stack`| -|Command line|`--performance-schema-max-statement-stack=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`10`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_performance_schema_max_statement_stack](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_max_statement_stack)| - -## performance_schema_max_table_lock_stat -|name|value| -|----|-----| -|Name|`performance_schema_max_table_lock_stat`| -|Command line|`--performance-schema-max-table-lock-stat=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`(-1 signifies autosizing; do not use -1)`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_performance_schema_max_table_lock_stat](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html#sysvar_performance_schema_max_table_lock_stat)| - -## authentication_ldap_sasl_auth_method_name -|name|value| -|----|-----| -|Name|`authentication_ldap_sasl_auth_method_name`| -|Command line|`--authentication-ldap-sasl-auth-method-name=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`SCRAM-SHA-1`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_authentication_ldap_sasl_auth_method_name](https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html#sysvar_authentication_ldap_sasl_auth_method_name)| - -## authentication_ldap_sasl_bind_base_dn -|name|value| -|----|-----| -|Name|`authentication_ldap_sasl_bind_base_dn`| -|Command line|`--authentication-ldap-sasl-bind-base-dn=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`NULL`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_authentication_ldap_sasl_bind_base_dn](https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html#sysvar_authentication_ldap_sasl_bind_base_dn)| - -## authentication_ldap_sasl_bind_root_dn -|name|value| -|----|-----| -|Name|`authentication_ldap_sasl_bind_root_dn`| -|Command line|`--authentication-ldap-sasl-bind-root-dn=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`NULL`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_authentication_ldap_sasl_bind_root_dn](https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html#sysvar_authentication_ldap_sasl_bind_root_dn)| - -## authentication_ldap_sasl_bind_root_pwd -|name|value| -|----|-----| -|Name|`authentication_ldap_sasl_bind_root_pwd`| -|Command line|`--authentication-ldap-sasl-bind-root-pwd=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`NULL`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_authentication_ldap_sasl_bind_root_pwd](https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html#sysvar_authentication_ldap_sasl_bind_root_pwd)| - -## authentication_ldap_sasl_ca_path -|name|value| -|----|-----| -|Name|`authentication_ldap_sasl_ca_path`| -|Command line|`--authentication-ldap-sasl-ca-path=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`NULL`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_authentication_ldap_sasl_ca_path](https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html#sysvar_authentication_ldap_sasl_ca_path)| - -## authentication_ldap_sasl_group_search_attr -|name|value| -|----|-----| -|Name|`authentication_ldap_sasl_group_search_attr`| -|Command line|`--authentication-ldap-sasl-group-search-attr=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`cn`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_authentication_ldap_sasl_group_search_attr](https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html#sysvar_authentication_ldap_sasl_group_search_attr)| - -## authentication_ldap_sasl_group_search_filter -|name|value| -|----|-----| -|Name|`authentication_ldap_sasl_group_search_filter`| -|Command line|`--authentication-ldap-sasl-group-search-filter=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`(|(&(objectClass=posixGroup)(memberUid=%s))(&(objectClass=group)(member=%s)))`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_authentication_ldap_sasl_group_search_filter](https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html#sysvar_authentication_ldap_sasl_group_search_filter)| - -## authentication_ldap_sasl_init_pool_size -|name|value| -|----|-----| -|Name|`authentication_ldap_sasl_init_pool_size`| -|Command line|`--authentication-ldap-sasl-init-pool-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`10`| -|Dynamic|`true`| -|Range|from: `0` to: `32767`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_authentication_ldap_sasl_init_pool_size](https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html#sysvar_authentication_ldap_sasl_init_pool_size)| - -## authentication_ldap_sasl_log_status -|name|value| -|----|-----| -|Name|`authentication_ldap_sasl_log_status`| -|Command line|`--authentication-ldap-sasl-log-status=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`true`| -|Range|from: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_authentication_ldap_sasl_log_status](https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html#sysvar_authentication_ldap_sasl_log_status)| - -## authentication_ldap_sasl_max_pool_size -|name|value| -|----|-----| -|Name|`authentication_ldap_sasl_max_pool_size`| -|Command line|`--authentication-ldap-sasl-max-pool-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1000`| -|Dynamic|`true`| -|Range|from: `0` to: `32767`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_authentication_ldap_sasl_max_pool_size](https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html#sysvar_authentication_ldap_sasl_max_pool_size)| - -## authentication_ldap_sasl_server_host -|name|value| -|----|-----| -|Name|`authentication_ldap_sasl_server_host`| -|Command line|`--authentication-ldap-sasl-server-host=host_name`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_authentication_ldap_sasl_server_host](https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html#sysvar_authentication_ldap_sasl_server_host)| - -## authentication_ldap_sasl_server_port -|name|value| -|----|-----| -|Name|`authentication_ldap_sasl_server_port`| -|Command line|`--authentication-ldap-sasl-server-port=port_num`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`389`| -|Dynamic|`true`| -|Range|from: `1` to: `32376`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_authentication_ldap_sasl_server_port](https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html#sysvar_authentication_ldap_sasl_server_port)| - -## authentication_ldap_sasl_tls -|name|value| -|----|-----| -|Name|`authentication_ldap_sasl_tls`| -|Command line|`--authentication-ldap-sasl-tls[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_authentication_ldap_sasl_tls](https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html#sysvar_authentication_ldap_sasl_tls)| - -## authentication_ldap_sasl_user_search_attr -|name|value| -|----|-----| -|Name|`authentication_ldap_sasl_user_search_attr`| -|Command line|`--authentication-ldap-sasl-user-search-attr=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`uid`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_authentication_ldap_sasl_user_search_attr](https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html#sysvar_authentication_ldap_sasl_user_search_attr)| - -## authentication_ldap_simple_auth_method_name -|name|value| -|----|-----| -|Name|`authentication_ldap_simple_auth_method_name`| -|Command line|`--authentication-ldap-simple-auth-method-name=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`SIMPLE`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_authentication_ldap_simple_auth_method_name](https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html#sysvar_authentication_ldap_simple_auth_method_name)| - -## authentication_ldap_simple_bind_base_dn -|name|value| -|----|-----| -|Name|`authentication_ldap_simple_bind_base_dn`| -|Command line|`--authentication-ldap-simple-bind-base-dn=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`NULL`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_authentication_ldap_simple_bind_base_dn](https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html#sysvar_authentication_ldap_simple_bind_base_dn)| - -## authentication_ldap_simple_bind_root_dn -|name|value| -|----|-----| -|Name|`authentication_ldap_simple_bind_root_dn`| -|Command line|`--authentication-ldap-simple-bind-root-dn=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`NULL`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_authentication_ldap_simple_bind_root_dn](https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html#sysvar_authentication_ldap_simple_bind_root_dn)| - -## authentication_ldap_simple_bind_root_pwd -|name|value| -|----|-----| -|Name|`authentication_ldap_simple_bind_root_pwd`| -|Command line|`--authentication-ldap-simple-bind-root-pwd=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`NULL`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_authentication_ldap_simple_bind_root_pwd](https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html#sysvar_authentication_ldap_simple_bind_root_pwd)| - -## authentication_ldap_simple_ca_path -|name|value| -|----|-----| -|Name|`authentication_ldap_simple_ca_path`| -|Command line|`--authentication-ldap-simple-ca-path=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`NULL`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_authentication_ldap_simple_ca_path](https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html#sysvar_authentication_ldap_simple_ca_path)| - -## authentication_ldap_simple_group_search_attr -|name|value| -|----|-----| -|Name|`authentication_ldap_simple_group_search_attr`| -|Command line|`--authentication-ldap-simple-group-search-attr=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`cn`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_authentication_ldap_simple_group_search_attr](https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html#sysvar_authentication_ldap_simple_group_search_attr)| - -## authentication_ldap_simple_group_search_filter -|name|value| -|----|-----| -|Name|`authentication_ldap_simple_group_search_filter`| -|Command line|`--authentication-ldap-simple-group-search-filter=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`(|(&(objectClass=posixGroup)(memberUid=%s))(&(objectClass=group)(member=%s)))`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_authentication_ldap_simple_group_search_filter](https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html#sysvar_authentication_ldap_simple_group_search_filter)| - -## authentication_ldap_simple_init_pool_size -|name|value| -|----|-----| -|Name|`authentication_ldap_simple_init_pool_size`| -|Command line|`--authentication-ldap-simple-init-pool-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`10`| -|Dynamic|`true`| -|Range|from: `0` to: `32767`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_authentication_ldap_simple_init_pool_size](https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html#sysvar_authentication_ldap_simple_init_pool_size)| - -## authentication_ldap_simple_log_status -|name|value| -|----|-----| -|Name|`authentication_ldap_simple_log_status`| -|Command line|`--authentication-ldap-simple-log-status=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`true`| -|Range|from: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_authentication_ldap_simple_log_status](https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html#sysvar_authentication_ldap_simple_log_status)| - -## authentication_ldap_simple_max_pool_size -|name|value| -|----|-----| -|Name|`authentication_ldap_simple_max_pool_size`| -|Command line|`--authentication-ldap-simple-max-pool-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1000`| -|Dynamic|`true`| -|Range|from: `0` to: `32767`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_authentication_ldap_simple_max_pool_size](https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html#sysvar_authentication_ldap_simple_max_pool_size)| - -## authentication_ldap_simple_server_host -|name|value| -|----|-----| -|Name|`authentication_ldap_simple_server_host`| -|Command line|`--authentication-ldap-simple-server-host=host_name`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_authentication_ldap_simple_server_host](https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html#sysvar_authentication_ldap_simple_server_host)| - -## authentication_ldap_simple_server_port -|name|value| -|----|-----| -|Name|`authentication_ldap_simple_server_port`| -|Command line|`--authentication-ldap-simple-server-port=port_num`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`389`| -|Dynamic|`true`| -|Range|from: `1` to: `32376`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_authentication_ldap_simple_server_port](https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html#sysvar_authentication_ldap_simple_server_port)| - -## authentication_ldap_simple_tls -|name|value| -|----|-----| -|Name|`authentication_ldap_simple_tls`| -|Command line|`--authentication-ldap-simple-tls[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_authentication_ldap_simple_tls](https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html#sysvar_authentication_ldap_simple_tls)| - -## authentication_ldap_simple_user_search_attr -|name|value| -|----|-----| -|Name|`authentication_ldap_simple_user_search_attr`| -|Command line|`--authentication-ldap-simple-user-search-attr=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`uid`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_authentication_ldap_simple_user_search_attr](https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html#sysvar_authentication_ldap_simple_user_search_attr)| - -## binlog_row_event_max_size -|name|value| -|----|-----| -|Name|`binlog_row_event_max_size`| -|Command line|`--binlog-row-event-max-size=#`| -|Type of variable|`integer`| -|Default value|`8192`| -|Range|from: `256`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_binlog-row-event-max-size](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#option_mysqld_binlog-row-event-max-size)| -|dev.mysql.com|[sysvar_binlog_row_event_max_size](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_row_event_max_size)| -|dev.mysql.com|[option_mysqld_binlog-row-event-max-size](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#option_mysqld_binlog-row-event-max-size)| - -## binlog_do_db -|name|value| -|----|-----| -|Name|`binlog_do_db`| -|Command line|`--binlog-do-db=name`| -|Type of variable|`string`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_binlog-do-db](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#option_mysqld_binlog-do-db)| -|dev.mysql.com|[option_mysqld_binlog-do-db](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#option_mysqld_binlog-do-db)| - -## binlog_ignore_db -|name|value| -|----|-----| -|Name|`binlog_ignore_db`| -|Command line|`--binlog-ignore-db=name`| -|Type of variable|`string`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_binlog-ignore-db](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#option_mysqld_binlog-ignore-db)| -|dev.mysql.com|[option_mysqld_binlog-ignore-db](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#option_mysqld_binlog-ignore-db)| - -## max_binlog_dump_events -|name|value| -|----|-----| -|Name|`max_binlog_dump_events`| -|Command line|`--max-binlog-dump-events=#`| -|Type of variable|`integer`| -|Default value|`0`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_max-binlog-dump-events](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#option_mysqld_max-binlog-dump-events)| -|dev.mysql.com|[option_mysqld_max-binlog-dump-events](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#option_mysqld_max-binlog-dump-events)| - -## sporadic_binlog_dump_fail -|name|value| -|----|-----| -|Name|`sporadic_binlog_dump_fail`| -|Command line|`--sporadic-binlog-dump-fail[={OFF|ON}]`| -|Type of variable|`boolean`| -|Default value|`OFF`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_sporadic-binlog-dump-fail](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#option_mysqld_sporadic-binlog-dump-fail)| -|dev.mysql.com|[option_mysqld_sporadic-binlog-dump-fail](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#option_mysqld_sporadic-binlog-dump-fail)| - -## binlog_encryption -|name|value| -|----|-----| -|Name|`binlog_encryption`| -|Command line|`--binlog-encryption[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_binlog_encryption](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_encryption)| - -## binlog_error_action -|name|value| -|----|-----| -|Name|`binlog_error_action`| -|Command line|`--binlog-error-action[=value]`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Dynamic|`true`| -|Valid value(s)|`IGNORE_ERROR`, `ABORT_SERVER`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_binlog_error_action](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_error_action)| -|dev.mysql.com|[sysvar_binlog_error_action](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_binlog_error_action)| - -## binlog_expire_logs_seconds -|name|value| -|----|-----| -|Name|`binlog_expire_logs_seconds`| -|Command line|`--binlog-expire-logs-seconds=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_binlog_expire_logs_seconds](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_expire_logs_seconds)| - -## binlog_group_commit_sync_delay -|name|value| -|----|-----| -|Name|`binlog_group_commit_sync_delay`| -|Command line|`--binlog-group-commit-sync-delay=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `1000000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_binlog_group_commit_sync_delay](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_group_commit_sync_delay)| -|dev.mysql.com|[sysvar_binlog_group_commit_sync_delay](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_binlog_group_commit_sync_delay)| - -## binlog_group_commit_sync_no_delay_count -|name|value| -|----|-----| -|Name|`binlog_group_commit_sync_no_delay_count`| -|Command line|`--binlog-group-commit-sync-no-delay-count=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `1000000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_binlog_group_commit_sync_no_delay_count](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_group_commit_sync_no_delay_count)| -|dev.mysql.com|[sysvar_binlog_group_commit_sync_no_delay_count](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_binlog_group_commit_sync_no_delay_count)| - -## binlog_max_flush_queue_time -|name|value| -|----|-----| -|Name|`binlog_max_flush_queue_time`| -|Command line|`--binlog-max-flush-queue-time=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `100000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_binlog_max_flush_queue_time](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_max_flush_queue_time)| -|dev.mysql.com|[sysvar_binlog_max_flush_queue_time](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_binlog_max_flush_queue_time)| - -## binlog_order_commits -|name|value| -|----|-----| -|Name|`binlog_order_commits`| -|Command line|`--binlog-order-commits[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_binlog_order_commits](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_order_commits)| -|dev.mysql.com|[sysvar_binlog_order_commits](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_binlog_order_commits)| - -## binlog_rotate_encryption_master_key_at_startup -|name|value| -|----|-----| -|Name|`binlog_rotate_encryption_master_key_at_startup`| -|Command line|`--binlog-rotate-encryption-master-key-at-startup[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_binlog_rotate_encryption_master_key_at_startup](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_rotate_encryption_master_key_at_startup)| - -## binlog_row_value_options -|name|value| -|----|-----| -|Name|`binlog_row_value_options`| -|Command line|`--binlog-row-value-options=#`| -|Type of variable|`set`| -|Scope|`global`, `session`| -|Default value|`''`| -|Dynamic|`true`| -|Valid value(s)|`PARTIAL_JSON`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_binlog_row_value_options](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_row_value_options)| - -## binlog_rows_query_log_events -|name|value| -|----|-----| -|Name|`binlog_rows_query_log_events`| -|Command line|`--binlog-rows-query-log-events[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_binlog_rows_query_log_events](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_rows_query_log_events)| -|dev.mysql.com|[sysvar_binlog_rows_query_log_events](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_binlog_rows_query_log_events)| - -## binlog_transaction_dependency_tracking -|name|value| -|----|-----| -|Name|`binlog_transaction_dependency_tracking`| -|Command line|`--binlog-transaction-dependency-tracking=value`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`COMMIT_ORDER`| -|Dynamic|`true`| -|Valid value(s)|`COMMIT_ORDER`, `WRITESET`, `WRITESET_SESSION`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_binlog_transaction_dependency_tracking](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_transaction_dependency_tracking)| -|dev.mysql.com|[sysvar_binlog_transaction_dependency_tracking](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_binlog_transaction_dependency_tracking)| - -## binlog_transaction_dependency_history_size -|name|value| -|----|-----| -|Name|`binlog_transaction_dependency_history_size`| -|Command line|`--binlog-transaction-dependency-history-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`25000`| -|Dynamic|`true`| -|Range|from: `1` to: `1000000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_binlog_transaction_dependency_history_size](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_transaction_dependency_history_size)| -|dev.mysql.com|[sysvar_binlog_transaction_dependency_history_size](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_binlog_transaction_dependency_history_size)| - -## log_bin_use_v1_row_events -|name|value| -|----|-----| -|Name|`log_bin_use_v1_row_events`| -|Command line|`--log-bin-use-v1-row-events[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_log_bin_use_v1_row_events](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_log_bin_use_v1_row_events)| -|dev.mysql.com|[sysvar_log_bin_use_v1_row_events](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_log_bin_use_v1_row_events)| - -## log_builtin_as_identified_by_password -|name|value| -|----|-----| -|Name|`log_builtin_as_identified_by_password`| -|Command line|`--log-builtin-as-identified-by-password[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_log_builtin_as_identified_by_password](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_log_builtin_as_identified_by_password)| -|dev.mysql.com|[sysvar_log_builtin_as_identified_by_password](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_log_builtin_as_identified_by_password)| - -## log_statements_unsafe_for_binlog -|name|value| -|----|-----| -|Name|`log_statements_unsafe_for_binlog`| -|Command line|`--log-statements-unsafe-for-binlog[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_log_statements_unsafe_for_binlog](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_log_statements_unsafe_for_binlog)| -|dev.mysql.com|[sysvar_log_statements_unsafe_for_binlog](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_log_statements_unsafe_for_binlog)| - -## original_commit_timestamp -|name|value| -|----|-----| -|Name|`original_commit_timestamp`| -|Type of variable|`numeric`| -|Scope|`session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_original_commit_timestamp](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_original_commit_timestamp)| - -## transaction_write_set_extraction -|name|value| -|----|-----| -|Name|`transaction_write_set_extraction`| -|Command line|`--transaction-write-set-extraction[=value]`| -|Type of variable|`enumeration`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_transaction_write_set_extraction](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_transaction_write_set_extraction)| -|dev.mysql.com|[sysvar_transaction_write_set_extraction](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_transaction_write_set_extraction)| - -## binlogging_impossible_mode -|name|value| -|----|-----| -|Name|`binlogging_impossible_mode`| -|Command line|`--binlogging-impossible-mode[=value]`| -|Type of variable|`enumeration`| -|Scope|`global`, `session`| -|Default value|`IGNORE_ERROR`| -|Dynamic|`true`| -|Valid value(s)|`IGNORE_ERROR`, `ABORT_SERVER`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_binlogging_impossible_mode](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_binlogging_impossible_mode)| - -## log_backward_compatible_user_definitions -|name|value| -|----|-----| -|Name|`log_backward_compatible_user_definitions`| -|Command line|`--log-backward-compatible-user-definitions[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_log_backward_compatible_user_definitions](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_log_backward_compatible_user_definitions)| - -## binlog_gtid_simple_recovery -|name|value| -|----|-----| -|Name|`binlog_gtid_simple_recovery`| -|Command line|`--binlog-gtid-simple-recovery[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_binlog_gtid_simple_recovery](https://dev.mysql.com/doc/refman/8.0/en/replication-options-gtids.html#sysvar_binlog_gtid_simple_recovery)| - -## enforce_gtid_consistency -|name|value| -|----|-----| -|Name|`enforce_gtid_consistency`| -|Command line|`--enforce-gtid-consistency[=value]`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| -|Valid value(s)|`OFF`, `ON`, `WARN`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_enforce_gtid_consistency](https://dev.mysql.com/doc/refman/8.0/en/replication-options-gtids.html#sysvar_enforce_gtid_consistency)| - -## gtid_executed -|name|value| -|----|-----| -|Name|`gtid_executed`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_gtid_executed](https://dev.mysql.com/doc/refman/8.0/en/replication-options-gtids.html#sysvar_gtid_executed)| - -## gtid_executed_compression_period -|name|value| -|----|-----| -|Name|`gtid_executed_compression_period`| -|Command line|`--gtid-executed-compression-period=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1000`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_gtid_executed_compression_period](https://dev.mysql.com/doc/refman/8.0/en/replication-options-gtids.html#sysvar_gtid_executed_compression_period)| - -## gtid_mode -|name|value| -|----|-----| -|Name|`gtid_mode`| -|Command line|`--gtid-mode=MODE`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| -|Valid value(s)|`OFF`, `OFF_PERMISSIVE`, `ON_PERMISSIVE`, `ON`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_gtid_mode](https://dev.mysql.com/doc/refman/8.0/en/replication-options-gtids.html#sysvar_gtid_mode)| - -## gtid_next -|name|value| -|----|-----| -|Name|`gtid_next`| -|Type of variable|`enumeration`| -|Scope|`session`| -|Default value|`AUTOMATIC`| -|Dynamic|`true`| -|Valid value(s)|`AUTOMATIC`, `ANONYMOUS`, `UUID:NUMBER`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_gtid_next](https://dev.mysql.com/doc/refman/8.0/en/replication-options-gtids.html#sysvar_gtid_next)| - -## gtid_owned -|name|value| -|----|-----| -|Name|`gtid_owned`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_gtid_owned](https://dev.mysql.com/doc/refman/8.0/en/replication-options-gtids.html#sysvar_gtid_owned)| - -## gtid_purged -|name|value| -|----|-----| -|Name|`gtid_purged`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_gtid_purged](https://dev.mysql.com/doc/refman/8.0/en/replication-options-gtids.html#sysvar_gtid_purged)| - -## show_slave_auth_info -|name|value| -|----|-----| -|Name|`show_slave_auth_info`| -|Command line|`--show-slave-auth-info[={OFF|ON}]`| -|Type of variable|`boolean`| -|Default value|`OFF`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_show-slave-auth-info](https://dev.mysql.com/doc/refman/8.0/en/replication-options-master.html#option_mysqld_show-slave-auth-info)| - -## immediate_server_version -|name|value| -|----|-----| -|Name|`immediate_server_version`| -|Type of variable|`integer`| -|Scope|`session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_immediate_server_version](https://dev.mysql.com/doc/refman/8.0/en/replication-options-master.html#sysvar_immediate_server_version)| - -## original_server_version -|name|value| -|----|-----| -|Name|`original_server_version`| -|Type of variable|`integer`| -|Scope|`session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_original_server_version](https://dev.mysql.com/doc/refman/8.0/en/replication-options-master.html#sysvar_original_server_version)| - -## rpl_semi_sync_master_wait_for_slave_count -|name|value| -|----|-----| -|Name|`rpl_semi_sync_master_wait_for_slave_count`| -|Command line|`--rpl-semi-sync-master-wait-for-slave-count=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1`| -|Dynamic|`true`| -|Range|from: `1` to: `65535`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_rpl_semi_sync_master_wait_for_slave_count](https://dev.mysql.com/doc/refman/8.0/en/replication-options-master.html#sysvar_rpl_semi_sync_master_wait_for_slave_count)| - -## master_info_file -|name|value| -|----|-----| -|Name|`master_info_file`| -|Command line|`--master-info-file=file_name`| -|Type of variable|`file name`| -|Default value|`master.info`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_master-info-file](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#option_mysqld_master-info-file)| - -## master_retry_count -|name|value| -|----|-----| -|Name|`master_retry_count`| -|Command line|`--master-retry-count=#`| -|Type of variable|`integer`| -|Default value|`86400`| -|Range|from: `0`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_master-retry-count](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#option_mysqld_master-retry-count)| - -## replicate_same_server_id -|name|value| -|----|-----| -|Name|`replicate_same_server_id`| -|Command line|`--replicate-same-server-id[={OFF|ON}]`| -|Type of variable|`boolean`| -|Default value|`OFF`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_replicate-same-server-id](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#option_mysqld_replicate-same-server-id)| - -## skip_slave_start -|name|value| -|----|-----| -|Name|`skip_slave_start`| -|Command line|`--skip-slave-start[={OFF|ON}]`| -|Type of variable|`boolean`| -|Default value|`OFF`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_skip-slave-start](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#option_mysqld_skip-slave-start)| - -## abort_slave_event_count -|name|value| -|----|-----| -|Name|`abort_slave_event_count`| -|Command line|`--abort-slave-event-count=#`| -|Type of variable|`integer`| -|Default value|`0`| -|Range|from: `0`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_abort-slave-event-count](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#option_mysqld_abort-slave-event-count)| - -## disconnect_slave_event_count -|name|value| -|----|-----| -|Name|`disconnect_slave_event_count`| -|Command line|`--disconnect-slave-event-count=#`| -|Type of variable|`integer`| -|Default value|`0`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_disconnect-slave-event-count](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#option_mysqld_disconnect-slave-event-count)| - -## master_info_repository -|name|value| -|----|-----| -|Name|`master_info_repository`| -|Command line|`--master-info-repository={FILE|TABLE}`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`true`| -|Valid value(s)|`FILE`, `TABLE`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_master_info_repository](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_master_info_repository)| - -## relay_log_info_repository -|name|value| -|----|-----| -|Name|`relay_log_info_repository`| -|Command line|`--relay-log-info-repository=value`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`true`| -|Valid value(s)|`FILE`, `TABLE`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_relay_log_info_repository](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_relay_log_info_repository)| - -## rpl_read_size -|name|value| -|----|-----| -|Name|`rpl_read_size`| -|Command line|`--rpl-read-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`8192`| -|Dynamic|`true`| -|Range|from: `8192` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_rpl_read_size](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_rpl_read_size)| - -## rpl_stop_slave_timeout -|name|value| -|----|-----| -|Name|`rpl_stop_slave_timeout`| -|Command line|`--rpl-stop-slave-timeout=seconds`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`31536000`| -|Dynamic|`true`| -|Range|from: `2` to: `31536000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_rpl_stop_slave_timeout](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_rpl_stop_slave_timeout)| - -## slave_checkpoint_group -|name|value| -|----|-----| -|Name|`slave_checkpoint_group`| -|Command line|`--slave-checkpoint-group=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`512`| -|Dynamic|`true`| -|Range|from: `32` to: `524280`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_slave_checkpoint_group](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_slave_checkpoint_group)| - -## slave_checkpoint_period -|name|value| -|----|-----| -|Name|`slave_checkpoint_period`| -|Command line|`--slave-checkpoint-period=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`300`| -|Dynamic|`true`| -|Range|from: `1` to: `4`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_slave_checkpoint_period](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_slave_checkpoint_period)| - -## slave_parallel_type -|name|value| -|----|-----| -|Name|`slave_parallel_type`| -|Command line|`--slave-parallel-type=value`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`DATABASE`| -|Dynamic|`true`| -|Valid value(s)|`DATABASE`, `LOGICAL_CLOCK`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_slave_parallel_type](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_slave_parallel_type)| - -## slave_pending_jobs_size_max -|name|value| -|----|-----| -|Name|`slave_pending_jobs_size_max`| -|Command line|`--slave-pending-jobs-size-max=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`true`| -|Range|from: `1024` to: `16`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_slave_pending_jobs_size_max](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_slave_pending_jobs_size_max)| - -## slave_preserve_commit_order -|name|value| -|----|-----| -|Name|`slave_preserve_commit_order`| -|Command line|`--slave-preserve-commit-order[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_slave_preserve_commit_order](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_slave_preserve_commit_order)| - -## slave_rows_search_algorithms -|name|value| -|----|-----| -|Name|`slave_rows_search_algorithms`| -|Command line|`--slave-rows-search-algorithms=value`| -|Type of variable|`set`| -|Scope|`global`| -|Dynamic|`true`| -|Valid value(s)|`TABLE_SCAN,INDEX_SCAN`, `INDEX_SCAN,HASH_SCAN`, `TABLE_SCAN,HASH_SCAN`, `TABLE_SCAN,INDEX_SCAN,HASH_SCAN`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_slave_rows_search_algorithms](https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html#sysvar_slave_rows_search_algorithms)| - -## server_uuid -|name|value| -|----|-----| -|Name|`server_uuid`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_server_uuid](https://dev.mysql.com/doc/refman/8.0/en/replication-options.html#sysvar_server_uuid)| - -## help -|name|value| -|----|-----| -|Name|`help`| -|Command line|`--help`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_help](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_help)| - -## allow_suspicious_udfs -|name|value| -|----|-----| -|Name|`allow_suspicious_udfs`| -|Command line|`--allow-suspicious-udfs[={OFF|ON}]`| -|Type of variable|`boolean`| -|Default value|`OFF`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_allow-suspicious-udfs](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_allow-suspicious-udfs)| - -## ansi -|name|value| -|----|-----| -|Name|`ansi`| -|Command line|`--ansi`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_ansi](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_ansi)| - -## character_set_client_handshake -|name|value| -|----|-----| -|Name|`character_set_client_handshake`| -|Command line|`--character-set-client-handshake[={OFF|ON}]`| -|Type of variable|`boolean`| -|Default value|`ON`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_character-set-client-handshake](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_character-set-client-handshake)| - -## chroot -|name|value| -|----|-----| -|Name|`chroot`| -|Command line|`--chroot=dir_name`| -|Type of variable|`directory name`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_chroot](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_chroot)| - -## console -|name|value| -|----|-----| -|Name|`console`| -|Command line|`--console`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_console](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_console)| - -## daemonize -|name|value| -|----|-----| -|Name|`daemonize`| -|Command line|`--daemonize[={OFF|ON}]`| -|Type of variable|`boolean`| -|Default value|`OFF`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_daemonize](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_daemonize)| - -## debug_sync_timeout -|name|value| -|----|-----| -|Name|`debug_sync_timeout`| -|Command line|`--debug-sync-timeout[=#]`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_debug-sync-timeout](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_debug-sync-timeout)| - -## default_time_zone -|name|value| -|----|-----| -|Name|`default_time_zone`| -|Command line|`--default-time-zone=name`| -|Type of variable|`string`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_default-time-zone](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_default-time-zone)| - -## des_key_file -|name|value| -|----|-----| -|Name|`des_key_file`| -|Command line|`--des-key-file=file_name`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_des-key-file](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_des-key-file)| - -## early_plugin_load -|name|value| -|----|-----| -|Name|`early_plugin_load`| -|Command line|`--early-plugin-load=plugin_list`| -|Type of variable|`string`| -|Default value|`empty string`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_early-plugin-load](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_early-plugin-load)| - -## exit_info -|name|value| -|----|-----| -|Name|`exit_info`| -|Command line|`--exit-info[=flags]`| -|Type of variable|`integer`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_exit-info](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_exit-info)| - -## external_locking -|name|value| -|----|-----| -|Name|`external_locking`| -|Command line|`--external-locking[={OFF|ON}]`| -|Type of variable|`boolean`| -|Default value|`OFF`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_external-locking](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_external-locking)| - -## gdb -|name|value| -|----|-----| -|Name|`gdb`| -|Command line|`--gdb[={OFF|ON}]`| -|Type of variable|`boolean`| -|Default value|`OFF`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_gdb](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_gdb)| - -## initialize -|name|value| -|----|-----| -|Name|`initialize`| -|Command line|`--initialize[={OFF|ON}]`| -|Type of variable|`boolean`| -|Default value|`OFF`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_initialize](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_initialize)| - -## initialize_insecure -|name|value| -|----|-----| -|Name|`initialize_insecure`| -|Command line|`--initialize-insecure[={OFF|ON}]`| -|Type of variable|`boolean`| -|Default value|`OFF`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_initialize-insecure](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_initialize-insecure)| - -## install -|name|value| -|----|-----| -|Name|`install`| -|Command line|`--install [service_name]`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_install](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_install)| - -## install_manual -|name|value| -|----|-----| -|Name|`install_manual`| -|Command line|`--install-manual [service_name]`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_install-manual](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_install-manual)| - -## language -|name|value| -|----|-----| -|Name|`language`| -|Command line|`--language=name`| -|Type of variable|`directory name`| -|Scope|`global`| -|Default value|`/usr/local/mysql/share/mysql/english/`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_language](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_language)| - -## local_service -|name|value| -|----|-----| -|Name|`local_service`| -|Command line|`--local-service`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_local-service](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_local-service)| - -## log_isam -|name|value| -|----|-----| -|Name|`log_isam`| -|Command line|`--log-isam[=file_name]`| -|Type of variable|`file name`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_log-isam](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_log-isam)| - -## log_raw -|name|value| -|----|-----| -|Name|`log_raw`| -|Command line|`--log-raw[={OFF|ON}]`| -|Type of variable|`boolean`| -|Default value|`OFF`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_log-raw](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_log-raw)| -|dev.mysql.com|[sysvar_log_raw](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_log_raw)| - -## log_short_format -|name|value| -|----|-----| -|Name|`log_short_format`| -|Command line|`--log-short-format[={OFF|ON}]`| -|Type of variable|`boolean`| -|Default value|`OFF`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_log-short-format](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_log-short-format)| - -## log_tc -|name|value| -|----|-----| -|Name|`log_tc`| -|Command line|`--log-tc=file_name`| -|Type of variable|`file name`| -|Default value|`tc.log`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_log-tc](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_log-tc)| - -## memlock -|name|value| -|----|-----| -|Name|`memlock`| -|Command line|`--memlock[={OFF|ON}]`| -|Type of variable|`boolean`| -|Default value|`OFF`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_memlock](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_memlock)| - -## no_dd_upgrade -|name|value| -|----|-----| -|Name|`no_dd_upgrade`| -|Command line|`--no-dd-upgrade[={OFF|ON}]`| -|Type of variable|`boolean`| -|Default value|`OFF`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_no-dd-upgrade](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_no-dd-upgrade)| - -## no_monitor -|name|value| -|----|-----| -|Name|`no_monitor`| -|Command line|`--no-monitor[={OFF|ON}]`| -|Type of variable|`boolean`| -|Default value|`OFF`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_no-monitor](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_no-monitor)| - -## old_style_user_limits -|name|value| -|----|-----| -|Name|`old_style_user_limits`| -|Command line|`--old-style-user-limits[={OFF|ON}]`| -|Type of variable|`boolean`| -|Default value|`OFF`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_old-style-user-limits](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_old-style-user-limits)| - -## plugin_load -|name|value| -|----|-----| -|Name|`plugin_load`| -|Command line|`--plugin-load=plugin_list`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_plugin-load](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_plugin-load)| - -## plugin_load_add -|name|value| -|----|-----| -|Name|`plugin_load_add`| -|Command line|`--plugin-load-add=plugin_list`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_plugin-load-add](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_plugin-load-add)| - -## port_open_timeout -|name|value| -|----|-----| -|Name|`port_open_timeout`| -|Command line|`--port-open-timeout=#`| -|Type of variable|`integer`| -|Default value|`0`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_port-open-timeout](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_port-open-timeout)| - -## remove -|name|value| -|----|-----| -|Name|`remove`| -|Command line|`--remove [service_name]`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_remove](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_remove)| - -## safe_user_create -|name|value| -|----|-----| -|Name|`safe_user_create`| -|Command line|`--safe-user-create[={OFF|ON}]`| -|Type of variable|`boolean`| -|Default value|`OFF`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_safe-user-create](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_safe-user-create)| - -## skip_grant_tables -|name|value| -|----|-----| -|Name|`skip_grant_tables`| -|Command line|`--skip-grant-tables[={OFF|ON}]`| -|Type of variable|`boolean`| -|Default value|`OFF`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_skip-grant-tables](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_skip-grant-tables)| - -## skip_host_cache -|name|value| -|----|-----| -|Name|`skip_host_cache`| -|Command line|`--skip-host-cache`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_skip-host-cache](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_skip-host-cache)| - -## skip_new -|name|value| -|----|-----| -|Name|`skip_new`| -|Command line|`--skip-new`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_skip-new](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_skip-new)| - -## skip_stack_trace -|name|value| -|----|-----| -|Name|`skip_stack_trace`| -|Command line|`--skip-stack-trace`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_skip-stack-trace](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_skip-stack-trace)| - -## slow_start_timeout -|name|value| -|----|-----| -|Name|`slow_start_timeout`| -|Command line|`--slow-start-timeout=#`| -|Type of variable|`integer`| -|Default value|`15000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_slow-start-timeout](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_slow-start-timeout)| - -## standalone -|name|value| -|----|-----| -|Name|`standalone`| -|Command line|`--standalone`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_standalone](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_standalone)| - -## super_large_pages -|name|value| -|----|-----| -|Name|`super_large_pages`| -|Command line|`--super-large-pages[={OFF|ON}]`| -|Type of variable|`boolean`| -|Default value|`OFF`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_super-large-pages](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_super-large-pages)| - -## symbolic_links -|name|value| -|----|-----| -|Name|`symbolic_links`| -|Command line|`--symbolic-links[={OFF|ON}]`| -|Type of variable|`boolean`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_symbolic-links](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_symbolic-links)| - -## sysdate_is_now -|name|value| -|----|-----| -|Name|`sysdate_is_now`| -|Command line|`--sysdate-is-now[={OFF|ON}]`| -|Type of variable|`boolean`| -|Default value|`OFF`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_sysdate-is-now](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_sysdate-is-now)| - -## tc_heuristic_recover -|name|value| -|----|-----| -|Name|`tc_heuristic_recover`| -|Command line|`--tc-heuristic-recover=name`| -|Type of variable|`enumeration`| -|Default value|`COMMIT`| -|Valid value(s)|`COMMIT`, `ROLLBACK`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_tc-heuristic-recover](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_tc-heuristic-recover)| - -## temp_pool -|name|value| -|----|-----| -|Name|`temp_pool`| -|Command line|`--temp-pool[={OFF|ON}]`| -|Type of variable|`boolean`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_temp-pool](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_temp-pool)| - -## transaction_isolation -|name|value| -|----|-----| -|Name|`transaction_isolation`| -|Command line|`--transaction-isolation=name`| -|Type of variable|`enumeration`| -|Scope|`global`, `session`| -|Default value|`REPEATABLE-READ`| -|Dynamic|`true`| -|Valid value(s)|`READ-UNCOMMITTED`, `READ-COMMITTED`, `REPEATABLE-READ`, `SERIALIZABLE`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_transaction-isolation](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_transaction-isolation)| -|dev.mysql.com|[sysvar_transaction_isolation](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_transaction_isolation)| - -## transaction_read_only -|name|value| -|----|-----| -|Name|`transaction_read_only`| -|Command line|`--transaction-read-only[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_transaction-read-only](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_transaction-read-only)| -|dev.mysql.com|[sysvar_transaction_read_only](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_transaction_read_only)| - -## upgrade -|name|value| -|----|-----| -|Name|`upgrade`| -|Command line|`--upgrade=value`| -|Type of variable|`enumeration`| -|Default value|`AUTO`| -|Valid value(s)|`AUTO`, `NONE`, `MINIMAL`, `FORCE`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_upgrade](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_upgrade)| - -## user -|name|value| -|----|-----| -|Name|`user`| -|Command line|`--user=name`| -|Type of variable|`string`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_user](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_user)| - -## validate_config -|name|value| -|----|-----| -|Name|`validate_config`| -|Command line|`--validate-config[={OFF|ON}]`| -|Type of variable|`boolean`| -|Default value|`OFF`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_validate-config](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_validate-config)| - -## activate_all_roles_on_login -|name|value| -|----|-----| -|Name|`activate_all_roles_on_login`| -|Command line|`--activate-all-roles-on-login[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_activate_all_roles_on_login](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_activate_all_roles_on_login)| - -## admin_address -|name|value| -|----|-----| -|Name|`admin_address`| -|Command line|`--admin-address=addr`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_admin_address](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_admin_address)| - -## admin_port -|name|value| -|----|-----| -|Name|`admin_port`| -|Command line|`--admin-port=port_num`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`33062`| -|Dynamic|`false`| -|Range|from: `0` to: `65535`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_admin_port](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_admin_port)| - -## authentication_windows_log_level -|name|value| -|----|-----| -|Name|`authentication_windows_log_level`| -|Command line|`--authentication-windows-log-level=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`2`| -|Dynamic|`false`| -|Range|from: `0` to: `4`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_authentication_windows_log_level](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_authentication_windows_log_level)| - -## authentication_windows_use_principal_name -|name|value| -|----|-----| -|Name|`authentication_windows_use_principal_name`| -|Command line|`--authentication-windows-use-principal-name[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_authentication_windows_use_principal_name](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_authentication_windows_use_principal_name)| - -## auto_generate_certs -|name|value| -|----|-----| -|Name|`auto_generate_certs`| -|Command line|`--auto-generate-certs[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_auto_generate_certs](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_auto_generate_certs)| - -## avoid_temporal_upgrade -|name|value| -|----|-----| -|Name|`avoid_temporal_upgrade`| -|Command line|`--avoid-temporal-upgrade[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_avoid_temporal_upgrade](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_avoid_temporal_upgrade)| - -## block_encryption_mode -|name|value| -|----|-----| -|Name|`block_encryption_mode`| -|Command line|`--block-encryption-mode=#`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Default value|`aes-128-ecb`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_block_encryption_mode](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_block_encryption_mode)| - -## caching_sha2_password_auto_generate_rsa_keys -|name|value| -|----|-----| -|Name|`caching_sha2_password_auto_generate_rsa_keys`| -|Command line|`--caching-sha2-password-auto-generate-rsa-keys[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_caching_sha2_password_auto_generate_rsa_keys](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_caching_sha2_password_auto_generate_rsa_keys)| - -## caching_sha2_password_private_key_path -|name|value| -|----|-----| -|Name|`caching_sha2_password_private_key_path`| -|Command line|`--caching-sha2-password-private-key-path=file_name`| -|Type of variable|`file name`| -|Scope|`global`| -|Default value|`private_key.pem`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_caching_sha2_password_private_key_path](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_caching_sha2_password_private_key_path)| - -## caching_sha2_password_public_key_path -|name|value| -|----|-----| -|Name|`caching_sha2_password_public_key_path`| -|Command line|`--caching-sha2-password-public-key-path=file_name`| -|Type of variable|`file name`| -|Scope|`global`| -|Default value|`public_key.pem`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_caching_sha2_password_public_key_path](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_caching_sha2_password_public_key_path)| - -## check_proxy_users -|name|value| -|----|-----| -|Name|`check_proxy_users`| -|Command line|`--check-proxy-users[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_check_proxy_users](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_check_proxy_users)| - -## create_admin_listener_thread -|name|value| -|----|-----| -|Name|`create_admin_listener_thread`| -|Command line|`--create-admin-listener-thread[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_create_admin_listener_thread](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_create_admin_listener_thread)| - -## cte_max_recursion_depth -|name|value| -|----|-----| -|Name|`cte_max_recursion_depth`| -|Command line|`--cte-max-recursion-depth=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`1000`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_cte_max_recursion_depth](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_cte_max_recursion_depth)| - -## default_authentication_plugin -|name|value| -|----|-----| -|Name|`default_authentication_plugin`| -|Command line|`--default-authentication-plugin=plugin_name`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_default_authentication_plugin](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_authentication_plugin)| - -## default_collation_for_utf8mb4 -|name|value| -|----|-----| -|Name|`default_collation_for_utf8mb4`| -|Type of variable|`enumeration`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Valid value(s)|`utf8mb4_0900_ai_ci`, `utf8mb4_general_ci`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_default_collation_for_utf8mb4](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_collation_for_utf8mb4)| - -## default_table_encryption -|name|value| -|----|-----| -|Name|`default_table_encryption`| -|Command line|`--default-table-encryption[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_default_table_encryption](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_table_encryption)| - -## disabled_storage_engines -|name|value| -|----|-----| -|Name|`disabled_storage_engines`| -|Command line|`--disabled-storage-engines=engine[,engine]...`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`empty string`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_disabled_storage_engines](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_disabled_storage_engines)| - -## dragnet.log_error_filter_rules -|name|value| -|----|-----| -|Name|`dragnet.log_error_filter_rules`| -|Command line|`--dragnet.log-error-filter-rules=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`IF prio>=INFORMATION THEN drop. IF EXISTS source_line THEN unset source_line.`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_dragnet.log_error_filter_rules](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_dragnet.log_error_filter_rules)| - -## end_markers_in_json -|name|value| -|----|-----| -|Name|`end_markers_in_json`| -|Command line|`--end-markers-in-json[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_end_markers_in_json](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_end_markers_in_json)| - -## generated_random_password_length -|name|value| -|----|-----| -|Name|`generated_random_password_length`| -|Command line|`--generated-random-password-length=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`20`| -|Dynamic|`true`| -|Range|from: `5` to: `255`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_generated_random_password_length](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_generated_random_password_length)| - -## have_statement_timeout -|name|value| -|----|-----| -|Name|`have_statement_timeout`| -|Type of variable|`boolean`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_have_statement_timeout](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_have_statement_timeout)| - -## histogram_generation_max_mem_size -|name|value| -|----|-----| -|Name|`histogram_generation_max_mem_size`| -|Command line|`--histogram-generation-max-mem-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`20000000`| -|Dynamic|`true`| -|Range|from: `1000000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_histogram_generation_max_mem_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_histogram_generation_max_mem_size)| - -## information_schema_stats_expiry -|name|value| -|----|-----| -|Name|`information_schema_stats_expiry`| -|Command line|`--information-schema-stats-expiry=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`86400`| -|Dynamic|`true`| -|Range|from: `0` to: `31536000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_information_schema_stats_expiry](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_information_schema_stats_expiry)| - -## internal_tmp_disk_storage_engine -|name|value| -|----|-----| -|Name|`internal_tmp_disk_storage_engine`| -|Command line|`--internal-tmp-disk-storage-engine=#`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`INNODB`| -|Dynamic|`true`| -|Valid value(s)|`MYISAM`, `INNODB`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_internal_tmp_disk_storage_engine](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_internal_tmp_disk_storage_engine)| - -## internal_tmp_mem_storage_engine -|name|value| -|----|-----| -|Name|`internal_tmp_mem_storage_engine`| -|Command line|`--internal-tmp-mem-storage-engine=#`| -|Type of variable|`enumeration`| -|Scope|`global`, `session`| -|Default value|`TempTable`| -|Dynamic|`true`| -|Valid value(s)|`TempTable`, `MEMORY`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_internal_tmp_mem_storage_engine](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_internal_tmp_mem_storage_engine)| - -## log_error_filter_rules -|name|value| -|----|-----| -|Name|`log_error_filter_rules`| -|Command line|`--log-error-filter-rules=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`set by server`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_log_error_filter_rules](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_log_error_filter_rules)| - -## log_error_services -|name|value| -|----|-----| -|Name|`log_error_services`| -|Command line|`--log-error-services=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`log_filter_internal; log_sink_internal`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_log_error_services](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_log_error_services)| - -## log_error_suppression_list -|name|value| -|----|-----| -|Name|`log_error_suppression_list`| -|Command line|`--log-error-suppression-list=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`empty string`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_log_error_suppression_list](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_log_error_suppression_list)| - -## log_error_verbosity -|name|value| -|----|-----| -|Name|`log_error_verbosity`| -|Command line|`--log-error-verbosity=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Dynamic|`true`| -|Range|from: `1` to: `3`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_log_error_verbosity](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_log_error_verbosity)| - -## log_slow_extra -|name|value| -|----|-----| -|Name|`log_slow_extra`| -|Command line|`--log-slow-extra[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_log_slow_extra](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_log_slow_extra)| - -## log_syslog -|name|value| -|----|-----| -|Name|`log_syslog`| -|Command line|`--log-syslog[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_log_syslog](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_log_syslog)| - -## log_syslog_facility -|name|value| -|----|-----| -|Name|`log_syslog_facility`| -|Command line|`--log-syslog-facility=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`daemon`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_log_syslog_facility](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_log_syslog_facility)| - -## log_syslog_include_pid -|name|value| -|----|-----| -|Name|`log_syslog_include_pid`| -|Command line|`--log-syslog-include-pid[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_log_syslog_include_pid](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_log_syslog_include_pid)| - -## log_syslog_tag -|name|value| -|----|-----| -|Name|`log_syslog_tag`| -|Command line|`--log-syslog-tag=tag`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`empty string`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_log_syslog_tag](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_log_syslog_tag)| - -## log_timestamps -|name|value| -|----|-----| -|Name|`log_timestamps`| -|Command line|`--log-timestamps=#`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`UTC`| -|Dynamic|`true`| -|Valid value(s)|`UTC`, `SYSTEM`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_log_timestamps](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_log_timestamps)| - -## log_throttle_queries_not_using_indexes -|name|value| -|----|-----| -|Name|`log_throttle_queries_not_using_indexes`| -|Command line|`--log-throttle-queries-not-using-indexes=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_log_throttle_queries_not_using_indexes](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_log_throttle_queries_not_using_indexes)| - -## mandatory_roles -|name|value| -|----|-----| -|Name|`mandatory_roles`| -|Command line|`--mandatory-roles=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`empty string`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_mandatory_roles](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_mandatory_roles)| - -## max_execution_time -|name|value| -|----|-----| -|Name|`max_execution_time`| -|Command line|`--max-execution-time=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_max_execution_time](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_execution_time)| - -## max_points_in_geometry -|name|value| -|----|-----| -|Name|`max_points_in_geometry`| -|Command line|`--max-points-in-geometry=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`65536`| -|Dynamic|`true`| -|Range|from: `3` to: `1048576`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_max_points_in_geometry](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_points_in_geometry)| - -## mecab_rc_file -|name|value| -|----|-----| -|Name|`mecab_rc_file`| -|Command line|`--mecab-rc-file=file_name`| -|Type of variable|`file name`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_mecab_rc_file](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_mecab_rc_file)| - -## mysql_native_password_proxy_users -|name|value| -|----|-----| -|Name|`mysql_native_password_proxy_users`| -|Command line|`--mysql-native-password-proxy-users[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_mysql_native_password_proxy_users](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_mysql_native_password_proxy_users)| - -## named_pipe_full_access_group -|name|value| -|----|-----| -|Name|`named_pipe_full_access_group`| -|Command line|`--named-pipe-full-access-group=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`*everyone*`| -|Dynamic|`false`| -|Valid value(s)|`*everyone*`, `empty string`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_named_pipe_full_access_group](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_named_pipe_full_access_group)| - -## new -|name|value| -|----|-----| -|Name|`new`| -|Command line|`--new[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_new](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_new)| - -## ngram_token_size -|name|value| -|----|-----| -|Name|`ngram_token_size`| -|Command line|`--ngram-token-size=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`2`| -|Dynamic|`false`| -|Range|from: `1` to: `10`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ngram_token_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_ngram_token_size)| - -## offline_mode -|name|value| -|----|-----| -|Name|`offline_mode`| -|Command line|`--offline-mode[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_offline_mode](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_offline_mode)| - -## optimizer_trace_features -|name|value| -|----|-----| -|Name|`optimizer_trace_features`| -|Command line|`--optimizer-trace-features=value`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_optimizer_trace_features](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_optimizer_trace_features)| - -## optimizer_trace_limit -|name|value| -|----|-----| -|Name|`optimizer_trace_limit`| -|Command line|`--optimizer-trace-limit=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`1`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_optimizer_trace_limit](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_optimizer_trace_limit)| - -## optimizer_trace_offset -|name|value| -|----|-----| -|Name|`optimizer_trace_offset`| -|Command line|`--optimizer-trace-offset=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`-1`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_optimizer_trace_offset](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_optimizer_trace_offset)| - -## parser_max_mem_size -|name|value| -|----|-----| -|Name|`parser_max_mem_size`| -|Command line|`--parser-max-mem-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Dynamic|`true`| -|Range|from: `10000000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_parser_max_mem_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_parser_max_mem_size)| - -## partial_revokes -|name|value| -|----|-----| -|Name|`partial_revokes`| -|Command line|`--partial-revokes[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF (if partial revokes do not exist)ON (if partial revokes exist)`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_partial_revokes](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_partial_revokes)| - -## password_history -|name|value| -|----|-----| -|Name|`password_history`| -|Command line|`--password-history=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_password_history](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_password_history)| - -## password_require_current -|name|value| -|----|-----| -|Name|`password_require_current`| -|Command line|`--password-require-current[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_password_require_current](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_password_require_current)| - -## password_reuse_interval -|name|value| -|----|-----| -|Name|`password_reuse_interval`| -|Command line|`--password-reuse-interval=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `4294967295`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_password_reuse_interval](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_password_reuse_interval)| - -## persisted_globals_load -|name|value| -|----|-----| -|Name|`persisted_globals_load`| -|Command line|`--persisted-globals-load[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_persisted_globals_load](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_persisted_globals_load)| - -## persist_only_admin_x509_subject -|name|value| -|----|-----| -|Name|`persist_only_admin_x509_subject`| -|Command line|`--persist-only-admin-x509-subject=string`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`empty string`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_persist_only_admin_x509_subject](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_persist_only_admin_x509_subject)| - -## print_identified_with_as_hex -|name|value| -|----|-----| -|Name|`print_identified_with_as_hex`| -|Command line|`--print-identified-with-as-hex[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_print_identified_with_as_hex](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_print_identified_with_as_hex)| - -## protocol_compression_algorithms -|name|value| -|----|-----| -|Name|`protocol_compression_algorithms`| -|Command line|`--protocol-compression-algorithms=value`| -|Type of variable|`set`| -|Scope|`global`| -|Default value|`zlib,zstd,uncompressed`| -|Dynamic|`true`| -|Valid value(s)|`zlib`, `zstd`, `uncompressed`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_protocol_compression_algorithms](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_protocol_compression_algorithms)| - -## range_optimizer_max_mem_size -|name|value| -|----|-----| -|Name|`range_optimizer_max_mem_size`| -|Command line|`--range-optimizer-max-mem-size=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`8388608`| -|Dynamic|`true`| -|Range|from: `0` to: `1.844674407371E+19`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_range_optimizer_max_mem_size](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_range_optimizer_max_mem_size)| - -## rbr_exec_mode -|name|value| -|----|-----| -|Name|`rbr_exec_mode`| -|Type of variable|`enumeration`| -|Scope|`global`, `session`| -|Default value|`STRICT`| -|Dynamic|`true`| -|Valid value(s)|`IDEMPOTENT`, `STRICT`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_rbr_exec_mode](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_rbr_exec_mode)| - -## regexp_stack_limit -|name|value| -|----|-----| -|Name|`regexp_stack_limit`| -|Command line|`--regexp-stack-limit=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`8000000`| -|Dynamic|`true`| -|Range|from: `0` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_regexp_stack_limit](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_regexp_stack_limit)| - -## regexp_time_limit -|name|value| -|----|-----| -|Name|`regexp_time_limit`| -|Command line|`--regexp-time-limit=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`32`| -|Dynamic|`true`| -|Range|from: `0` to: `2147483647`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_regexp_time_limit](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_regexp_time_limit)| - -## require_secure_transport -|name|value| -|----|-----| -|Name|`require_secure_transport`| -|Command line|`--require-secure-transport[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_require_secure_transport](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_require_secure_transport)| - -## resultset_metadata -|name|value| -|----|-----| -|Name|`resultset_metadata`| -|Type of variable|`enumeration`| -|Scope|`session`| -|Default value|`FULL`| -|Dynamic|`true`| -|Valid value(s)|`FULL`, `NONE`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_resultset_metadata](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_resultset_metadata)| - -## secondary_engine_cost_threshold -|name|value| -|----|-----| -|Name|`secondary_engine_cost_threshold`| -|Type of variable|`numeric`| -|Scope|`session`| -|Default value|`100000.000000`| -|Dynamic|`true`| -|Range|from: `0`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_secondary_engine_cost_threshold](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_secondary_engine_cost_threshold)| - -## schema_definition_cache -|name|value| -|----|-----| -|Name|`schema_definition_cache`| -|Command line|`--schema-definition-cache=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`256`| -|Dynamic|`true`| -|Range|from: `256` to: `524288`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_schema_definition_cache](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_schema_definition_cache)| - -## session_track_gtids -|name|value| -|----|-----| -|Name|`session_track_gtids`| -|Command line|`--session-track-gtids=value`| -|Type of variable|`enumeration`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| -|Valid value(s)|`OFF`, `OWN_GTID`, `ALL_GTIDS`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_session_track_gtids](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_session_track_gtids)| - -## sha256_password_auto_generate_rsa_keys -|name|value| -|----|-----| -|Name|`sha256_password_auto_generate_rsa_keys`| -|Command line|`--sha256-password-auto-generate-rsa-keys[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_sha256_password_auto_generate_rsa_keys](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_sha256_password_auto_generate_rsa_keys)| - -## sha256_password_private_key_path -|name|value| -|----|-----| -|Name|`sha256_password_private_key_path`| -|Command line|`--sha256-password-private-key-path=file_name`| -|Type of variable|`file name`| -|Scope|`global`| -|Default value|`private_key.pem`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_sha256_password_private_key_path](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_sha256_password_private_key_path)| - -## sha256_password_proxy_users -|name|value| -|----|-----| -|Name|`sha256_password_proxy_users`| -|Command line|`--sha256-password-proxy-users[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_sha256_password_proxy_users](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_sha256_password_proxy_users)| - -## sha256_password_public_key_path -|name|value| -|----|-----| -|Name|`sha256_password_public_key_path`| -|Command line|`--sha256-password-public-key-path=file_name`| -|Type of variable|`file name`| -|Scope|`global`| -|Default value|`public_key.pem`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_sha256_password_public_key_path](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_sha256_password_public_key_path)| - -## show_compatibility_56 -|name|value| -|----|-----| -|Name|`show_compatibility_56`| -|Command line|`--show-compatibility-56[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_show_compatibility_56](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_show_compatibility_56)| - -## show_create_table_skip_secondary_engine -|name|value| -|----|-----| -|Name|`show_create_table_skip_secondary_engine`| -|Command line|`--show-create-table-skip-secondary-engine[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_show_create_table_skip_secondary_engine](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_show_create_table_skip_secondary_engine)| - -## show_create_table_verbosity -|name|value| -|----|-----| -|Name|`show_create_table_verbosity`| -|Command line|`--show-create-table-verbosity[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_show_create_table_verbosity](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_show_create_table_verbosity)| - -## show_old_temporals -|name|value| -|----|-----| -|Name|`show_old_temporals`| -|Command line|`--show-old-temporals[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_show_old_temporals](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_show_old_temporals)| - -## sql_require_primary_key -|name|value| -|----|-----| -|Name|`sql_require_primary_key`| -|Command line|`--sql-require-primary-key[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_sql_require_primary_key](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_sql_require_primary_key)| - -## ssl_fips_mode -|name|value| -|----|-----| -|Name|`ssl_fips_mode`| -|Command line|`--ssl-fips-mode={OFF|ON|STRICT}`| -|Type of variable|`enumeration`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| -|Valid value(s)|`OFF`, `ON`, `STRICT`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_ssl_fips_mode](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_ssl_fips_mode)| - -## stored_program_definition_cache -|name|value| -|----|-----| -|Name|`stored_program_definition_cache`| -|Command line|`--stored-program-definition-cache=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`256`| -|Dynamic|`true`| -|Range|from: `256` to: `524288`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_stored_program_definition_cache](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_stored_program_definition_cache)| - -## super_read_only -|name|value| -|----|-----| -|Name|`super_read_only`| -|Command line|`--super-read-only[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_super_read_only](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_super_read_only)| - -## syseventlog.facility -|name|value| -|----|-----| -|Name|`syseventlog.facility`| -|Command line|`--syseventlog.facility=value`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`daemon`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_syseventlog.facility](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_syseventlog.facility)| - -## syseventlog.include_pid -|name|value| -|----|-----| -|Name|`syseventlog.include_pid`| -|Command line|`--syseventlog.include-pid[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_syseventlog.include_pid](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_syseventlog.include_pid)| - -## syseventlog.tag -|name|value| -|----|-----| -|Name|`syseventlog.tag`| -|Command line|`--syseventlog.tag=tag`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`empty string`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_syseventlog.tag](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_syseventlog.tag)| - -## table_encryption_privilege_check -|name|value| -|----|-----| -|Name|`table_encryption_privilege_check`| -|Command line|`--table-encryption-privilege-check[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`OFF`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_table_encryption_privilege_check](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_table_encryption_privilege_check)| - -## tablespace_definition_cache -|name|value| -|----|-----| -|Name|`tablespace_definition_cache`| -|Command line|`--tablespace-definition-cache=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`256`| -|Dynamic|`true`| -|Range|from: `256` to: `524288`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_tablespace_definition_cache](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_tablespace_definition_cache)| - -## temptable_max_ram -|name|value| -|----|-----| -|Name|`temptable_max_ram`| -|Command line|`--temptable-max-ram=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`1073741824`| -|Dynamic|`true`| -|Range|from: `2097152` to: `2`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_temptable_max_ram](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_temptable_max_ram)| - -## temptable_use_mmap -|name|value| -|----|-----| -|Name|`temptable_use_mmap`| -|Command line|`--temptable-use-mmap[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_temptable_use_mmap](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_temptable_use_mmap)| - -## thread_pool_algorithm -|name|value| -|----|-----| -|Name|`thread_pool_algorithm`| -|Command line|`--thread-pool-algorithm=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`false`| -|Range|from: `0` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_thread_pool_algorithm](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_thread_pool_algorithm)| - -## thread_pool_high_priority_connection -|name|value| -|----|-----| -|Name|`thread_pool_high_priority_connection`| -|Command line|`--thread-pool-high-priority-connection=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `1`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_thread_pool_high_priority_connection](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_thread_pool_high_priority_connection)| - -## thread_pool_max_active_query_threads -|name|value| -|----|-----| -|Name|`thread_pool_max_active_query_threads`| -|Command line|`--thread-pool-max-active-query-threads`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `512`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_thread_pool_max_active_query_threads](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_thread_pool_max_active_query_threads)| - -## thread_pool_max_unused_threads -|name|value| -|----|-----| -|Name|`thread_pool_max_unused_threads`| -|Command line|`--thread-pool-max-unused-threads=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `4096`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_thread_pool_max_unused_threads](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_thread_pool_max_unused_threads)| - -## tls_ciphersuites -|name|value| -|----|-----| -|Name|`tls_ciphersuites`| -|Command line|`--tls-ciphersuites=ciphersuite_list`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`empty string`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_tls_ciphersuites](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_tls_ciphersuites)| - -## use_secondary_engine -|name|value| -|----|-----| -|Name|`use_secondary_engine`| -|Type of variable|`enumeration`| -|Scope|`session`| -|Default value|`ON`| -|Dynamic|`true`| -|Valid value(s)|`OFF`, `ON`, `FORCED`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_use_secondary_engine](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_use_secondary_engine)| - -## validate_user_plugins -|name|value| -|----|-----| -|Name|`validate_user_plugins`| -|Command line|`--validate-user-plugins[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_validate_user_plugins](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_validate_user_plugins)| - -## version_compile_zlib -|name|value| -|----|-----| -|Name|`version_compile_zlib`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_version_compile_zlib](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_version_compile_zlib)| - -## windowing_use_high_precision -|name|value| -|----|-----| -|Name|`windowing_use_high_precision`| -|Command line|`--windowing-use-high-precision[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`, `session`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_windowing_use_high_precision](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_windowing_use_high_precision)| - -## version_tokens_session -|name|value| -|----|-----| -|Name|`version_tokens_session`| -|Command line|`--version-tokens-session=value`| -|Type of variable|`string`| -|Scope|`global`, `session`| -|Default value|`NULL`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_version_tokens_session](https://dev.mysql.com/doc/refman/8.0/en/version-tokens-reference.html#sysvar_version_tokens_session)| - -## version_tokens_session_number -|name|value| -|----|-----| -|Name|`version_tokens_session_number`| -|Command line|`--version-tokens-session-number=#`| -|Type of variable|`integer`| -|Scope|`global`, `session`| -|Default value|`0`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_version_tokens_session_number](https://dev.mysql.com/doc/refman/8.0/en/version-tokens-reference.html#sysvar_version_tokens_session_number)| - -## mysqlx -|name|value| -|----|-----| -|Name|`mysqlx`| -|Command line|`--mysqlx[=value]`| -|Type of variable|`enumeration`| -|Default value|`ON`| -|Valid value(s)|`ON`, `OFF`, `FORCE`, `FORCE_PLUS_PERMANENT`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[option_mysqld_mysqlx](https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html#option_mysqld_mysqlx)| - -## mysqlx_bind_address -|name|value| -|----|-----| -|Name|`mysqlx_bind_address`| -|Command line|`--mysqlx-bind-address=addr`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`*`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_mysqlx_bind_address](https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html#sysvar_mysqlx_bind_address)| - -## mysqlx_connect_timeout -|name|value| -|----|-----| -|Name|`mysqlx_connect_timeout`| -|Command line|`--mysqlx-connect-timeout=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`30`| -|Dynamic|`true`| -|Range|from: `1` to: `1000000000`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_mysqlx_connect_timeout](https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html#sysvar_mysqlx_connect_timeout)| - -## mysqlx_document_id_unique_prefix -|name|value| -|----|-----| -|Name|`mysqlx_document_id_unique_prefix`| -|Command line|`--mysqlx-document-id-unique-prefix=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`true`| -|Range|from: `0` to: `65535`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_mysqlx_document_id_unique_prefix](https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html#sysvar_mysqlx_document_id_unique_prefix)| - -## mysqlx_enable_hello_notice -|name|value| -|----|-----| -|Name|`mysqlx_enable_hello_notice`| -|Command line|`--mysqlx-enable-hello-notice[={OFF|ON}]`| -|Type of variable|`boolean`| -|Scope|`global`| -|Default value|`ON`| -|Dynamic|`true`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_mysqlx_enable_hello_notice](https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html#sysvar_mysqlx_enable_hello_notice)| - -## mysqlx_idle_worker_thread_timeout -|name|value| -|----|-----| -|Name|`mysqlx_idle_worker_thread_timeout`| -|Command line|`--mysqlx-idle-worker-thread-timeout=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`60`| -|Dynamic|`true`| -|Range|from: `0` to: `3600`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_mysqlx_idle_worker_thread_timeout](https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html#sysvar_mysqlx_idle_worker_thread_timeout)| - -## mysqlx_interactive_timeout -|name|value| -|----|-----| -|Name|`mysqlx_interactive_timeout`| -|Command line|`--mysqlx-interactive-timeout=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`28800`| -|Dynamic|`true`| -|Range|from: `1` to: `2147483`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_mysqlx_interactive_timeout](https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html#sysvar_mysqlx_interactive_timeout)| - -## mysqlx_max_allowed_packet -|name|value| -|----|-----| -|Name|`mysqlx_max_allowed_packet`| -|Command line|`--mysqlx-max-allowed-packet=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`67108864`| -|Dynamic|`true`| -|Range|from: `512` to: `1073741824`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_mysqlx_max_allowed_packet](https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html#sysvar_mysqlx_max_allowed_packet)| - -## mysqlx_max_connections -|name|value| -|----|-----| -|Name|`mysqlx_max_connections`| -|Command line|`--mysqlx-max-connections=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`100`| -|Dynamic|`true`| -|Range|from: `1` to: `65535`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_mysqlx_max_connections](https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html#sysvar_mysqlx_max_connections)| - -## mysqlx_min_worker_threads -|name|value| -|----|-----| -|Name|`mysqlx_min_worker_threads`| -|Command line|`--mysqlx-min-worker-threads=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`2`| -|Dynamic|`true`| -|Range|from: `1` to: `100`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_mysqlx_min_worker_threads](https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html#sysvar_mysqlx_min_worker_threads)| - -## mysqlx_port -|name|value| -|----|-----| -|Name|`mysqlx_port`| -|Command line|`--mysqlx-port=port_num`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`33060`| -|Dynamic|`false`| -|Range|from: `1` to: `65535`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_mysqlx_port](https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html#sysvar_mysqlx_port)| - -## mysqlx_port_open_timeout -|name|value| -|----|-----| -|Name|`mysqlx_port_open_timeout`| -|Command line|`--mysqlx-port-open-timeout=#`| -|Type of variable|`integer`| -|Scope|`global`| -|Default value|`0`| -|Dynamic|`false`| -|Range|from: `0` to: `120`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_mysqlx_port_open_timeout](https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html#sysvar_mysqlx_port_open_timeout)| - -## mysqlx_read_timeout -|name|value| -|----|-----| -|Name|`mysqlx_read_timeout`| -|Command line|`--mysqlx-read-timeout=#`| -|Type of variable|`integer`| -|Scope|`session`| -|Default value|`28800`| -|Dynamic|`true`| -|Range|from: `30` to: `2147483`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_mysqlx_read_timeout](https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html#sysvar_mysqlx_read_timeout)| - -## mysqlx_socket -|name|value| -|----|-----| -|Name|`mysqlx_socket`| -|Command line|`--mysqlx-socket=file_name`| -|Type of variable|`string`| -|Scope|`global`| -|Default value|`/tmp/mysqlx.sock`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_mysqlx_socket](https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html#sysvar_mysqlx_socket)| - -## mysqlx_ssl_ca -|name|value| -|----|-----| -|Name|`mysqlx_ssl_ca`| -|Command line|`--mysqlx-ssl-ca=file_name`| -|Type of variable|`file name`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_mysqlx_ssl_ca](https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html#sysvar_mysqlx_ssl_ca)| - -## mysqlx_ssl_capath -|name|value| -|----|-----| -|Name|`mysqlx_ssl_capath`| -|Command line|`--mysqlx-ssl-capath=dir_name`| -|Type of variable|`directory name`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_mysqlx_ssl_capath](https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html#sysvar_mysqlx_ssl_capath)| - -## mysqlx_ssl_cert -|name|value| -|----|-----| -|Name|`mysqlx_ssl_cert`| -|Command line|`--mysqlx-ssl-cert=name`| -|Type of variable|`file name`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_mysqlx_ssl_cert](https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html#sysvar_mysqlx_ssl_cert)| - -## mysqlx_ssl_cipher -|name|value| -|----|-----| -|Name|`mysqlx_ssl_cipher`| -|Command line|`--mysqlx-ssl-cipher=name`| -|Type of variable|`string`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_mysqlx_ssl_cipher](https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html#sysvar_mysqlx_ssl_cipher)| - -## mysqlx_ssl_crl -|name|value| -|----|-----| -|Name|`mysqlx_ssl_crl`| -|Command line|`--mysqlx-ssl-crl=file_name`| -|Type of variable|`file name`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_mysqlx_ssl_crl](https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html#sysvar_mysqlx_ssl_crl)| - -## mysqlx_ssl_crlpath -|name|value| -|----|-----| -|Name|`mysqlx_ssl_crlpath`| -|Command line|`--mysqlx-ssl-crlpath=dir_name`| -|Type of variable|`directory name`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_mysqlx_ssl_crlpath](https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html#sysvar_mysqlx_ssl_crlpath)| - -## mysqlx_ssl_key -|name|value| -|----|-----| -|Name|`mysqlx_ssl_key`| -|Command line|`--mysqlx-ssl-key=file_name`| -|Type of variable|`file name`| -|Scope|`global`| -|Dynamic|`false`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_mysqlx_ssl_key](https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html#sysvar_mysqlx_ssl_key)| - -## mysqlx_wait_timeout -|name|value| -|----|-----| -|Name|`mysqlx_wait_timeout`| -|Command line|`--mysqlx-wait-timeout=#`| -|Type of variable|`integer`| -|Scope|`session`| -|Default value|`28800`| -|Dynamic|`true`| -|Range|from: `1` to: `2147483`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_mysqlx_wait_timeout](https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html#sysvar_mysqlx_wait_timeout)| - -## mysqlx_write_timeout -|name|value| -|----|-----| -|Name|`mysqlx_write_timeout`| -|Command line|`--mysqlx-write-timeout=#`| -|Type of variable|`integer`| -|Scope|`session`| -|Default value|`60`| -|Dynamic|`true`| -|Range|from: `1` to: `2147483`| - -### Documentation(s) -|source|anchor name| -|------|----| -|dev.mysql.com|[sysvar_mysqlx_write_timeout](https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html#sysvar_mysqlx_write_timeout)| - - diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/dist/merged-slim.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/dist/merged-slim.json deleted file mode 100644 index 76e60a9..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/dist/merged-slim.json +++ /dev/null @@ -1,29711 +0,0 @@ -{ - "vars": { - "Aria_pagecache_blocks_not_flushed": { - "name": "Aria_pagecache_blocks_not_flushed", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "1#aria_pagecache_blocks_not_flushed" - ] - }, - "Aria_pagecache_blocks_unused": { - "name": "Aria_pagecache_blocks_unused", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "0#aria_pagecache_blocks_unused" - ] - }, - "Aria_pagecache_blocks_used": { - "name": "Aria_pagecache_blocks_used", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "0#aria_pagecache_blocks_used" - ] - }, - "Aria_pagecache_read_requests": { - "name": "Aria_pagecache_read_requests", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "0#aria_pagecache_read_requests" - ] - }, - "Aria_pagecache_reads": { - "name": "Aria_pagecache_reads", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "0#aria_pagecache_reads" - ] - }, - "Aria_pagecache_write_requests": { - "name": "Aria_pagecache_write_requests", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "0#aria_pagecache_write_requests" - ] - }, - "Aria_pagecache_writes": { - "name": "Aria_pagecache_writes", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "0#aria_pagecache_writes" - ] - }, - "Aria_transaction_log_syncs": { - "name": "Aria_transaction_log_syncs", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "0#aria_transaction_log_syncs" - ] - }, - "aria_block_size": { - "cli": "--aria-block-size=#", - "default": "8192", - "dynamic": false, - "name": "aria_block_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "2#aria_block_size" - ] - }, - "aria_checkpoint_interval": { - "cli": "--aria-checkpoint-interval=#", - "default": "30", - "dynamic": true, - "name": "aria_checkpoint_interval", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "1#aria_checkpoint_interval" - ] - }, - "aria_checkpoint_log_activity": { - "cli": "aria-checkpoint-log-activity=#", - "default": "1048576", - "dynamic": true, - "name": "aria_checkpoint_log_activity", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "1#aria_checkpoint_log_activity" - ] - }, - "aria_encrypt_tables": { - "cli": "aria-encrypt-tables={0|1}", - "default": "OFF", - "dynamic": true, - "name": "aria_encrypt_tables", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "1#aria_encrypt_tables" - ] - }, - "aria_force_start_after_recovery_failures": { - "cli": "--aria-force-start-after-recovery-failures=#", - "default": "0", - "dynamic": false, - "name": "aria_force_start_after_recovery_failures", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "1#aria_force_start_after_recovery_failures" - ] - }, - "aria_group_commit": { - "cli": "--aria_group_commit=\"value\"", - "default": "none", - "dynamic": false, - "name": "aria_group_commit", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "none", - "hard", - "soft" - ], - "ids": [ - "1#aria_group_commit" - ] - }, - "aria_group_commit_interval": { - "cli": "--aria_group_commit_interval=#", - "default": "0 (no waiting)", - "dynamic": false, - "name": "aria_group_commit_interval", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "1#aria_group_commit_interval" - ] - }, - "aria_log_file_size": { - "cli": "--aria-log-file-size=#", - "default": "1073741824", - "dynamic": true, - "name": "aria_log_file_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "1#aria_log_file_size" - ] - }, - "aria_log_purge_type": { - "cli": "--aria-log-purge-type=name", - "default": "immediate", - "dynamic": true, - "name": "aria_log_purge_type", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "immediate", - "external", - "at_flush" - ], - "ids": [ - "1#aria_log_purge_type" - ] - }, - "aria_max_sort_file_size": { - "cli": "--aria-max-sort-file-size=#", - "default": "9223372036853727232", - "dynamic": true, - "name": "aria_max_sort_file_size", - "range": { - "from": 0, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "1#aria_max_sort_file_size" - ] - }, - "aria_page_checksum": { - "cli": "--aria-page-checksum=#", - "default": "ON", - "dynamic": true, - "name": "aria_page_checksum", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "1#aria_page_checksum" - ] - }, - "aria_pagecache_age_threshold": { - "cli": "--aria-pagecache-age-threshold=#", - "default": "300", - "dynamic": true, - "name": "aria_pagecache_age_threshold", - "range": { - "from": 100, - "to": 9999900 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "1#aria_pagecache_age_threshold" - ] - }, - "aria_pagecache_buffer_size": { - "cli": "--aria-pagecache-buffer-size=#", - "default": "134217720 (128MB)", - "dynamic": false, - "name": "aria_pagecache_buffer_size", - "range": { - "from": 131072, - "to": "upwards" - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "1#aria_pagecache_buffer_size" - ] - }, - "aria_pagecache_division_limit": { - "cli": "--aria-pagecache-division-limit=#", - "default": "100", - "dynamic": true, - "name": "aria_pagecache_division_limit", - "range": { - "from": 1, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "1#aria_pagecache_division_limit" - ] - }, - "aria_pagecache_file_hash_size": { - "cli": "--aria-pagecache-file-hash-size=#", - "default": "512", - "dynamic": false, - "name": "aria_pagecache_file_hash_size", - "range": { - "from": 128, - "to": 16384 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "1#aria_pagecache_file_hash_size" - ] - }, - "aria_recover": { - "name": "aria_recover", - "ids": [ - "1#aria_recover" - ] - }, - "aria_recover_options": { - "cli": "--aria-recover-options[=#]", - "default": "BACKUP,QUICK (>= MariaDB 10.2.4), NORMAL (<= MariaDB 10.2.3)", - "dynamic": true, - "name": "aria_recover_options", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "NORMAL", - "BACKUP", - "FORCE", - "QUICK", - "OFF" - ], - "ids": [ - "1#aria_recover_options" - ] - }, - "aria_repair_threads": { - "cli": "--aria-repair-threads=#", - "default": "1", - "dynamic": true, - "name": "aria_repair_threads", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "1#aria_repair_threads" - ] - }, - "aria_sort_buffer_size": { - "cli": "--aria-sort-buffer-size=#", - "default": "268434432 (from MariaDB 10.0.3), 134217728 (before MariaDB 10.0.3)", - "dynamic": true, - "name": "aria_sort_buffer_size", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "1#aria_sort_buffer_size" - ] - }, - "aria_stats_method": { - "cli": "--aria-stats-method=#", - "default": "nulls_unequal", - "dynamic": true, - "name": "aria_stats_method", - "scope": [ - "global", - "session" - ], - "type": "integer", - "validValues": [ - "nulls_equal", - "nulls_unequal", - "nulls_ignored" - ], - "ids": [ - "1#aria_stats_method" - ] - }, - "aria_sync_log_dir": { - "cli": "--aria-sync-log-dir=#", - "default": "NEWFILE", - "dynamic": true, - "name": "aria_sync_log_dir", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "NEWFILE", - "NEVER", - "ALWAYS" - ], - "ids": [ - "1#aria_sync_log_dir" - ] - }, - "aria_used_for_temp_tables": { - "default": "ON", - "dynamic": false, - "name": "aria_used_for_temp_tables", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "1#aria_used_for_temp_tables" - ] - }, - "deadlock_search_depth_long": { - "cli": "--deadlock-search-depth-long=#", - "default": "15", - "dynamic": true, - "name": "deadlock_search_depth_long", - "range": { - "from": 0, - "to": 33 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "1#deadlock_search_depth_long" - ] - }, - "deadlock_search_depth_short": { - "cli": "--deadlock-search-depth-short=#", - "default": "4", - "dynamic": true, - "name": "deadlock_search_depth_short", - "range": { - "from": 0, - "to": 32 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "1#deadlock_search_depth_short" - ] - }, - "deadlock_timeout_long": { - "cli": "--deadlock-timeout-long=#", - "default": "50000000", - "dynamic": true, - "name": "deadlock_timeout_long", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "1#deadlock_timeout_long" - ] - }, - "deadlock_timeout_short": { - "cli": "--deadlock-timeout-short=#", - "default": "10000", - "dynamic": true, - "name": "deadlock_timeout_short", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "1#deadlock_timeout_short" - ] - }, - "Cassandra_multiget_keys_scanned": { - "name": "Cassandra_multiget_keys_scanned", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "3#cassandra_multiget_keys_scanned" - ] - }, - "Cassandra_multiget_reads": { - "name": "Cassandra_multiget_reads", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "2#cassandra_multiget_reads" - ] - }, - "Cassandra_multiget_rows_read": { - "name": "Cassandra_multiget_rows_read", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "2#cassandra_multiget_rows_read" - ] - }, - "Cassandra_network_exceptions": { - "name": "Cassandra_network_exceptions", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "2#cassandra_network_exceptions" - ] - }, - "Cassandra_row_insert_batches": { - "name": "Cassandra_row_insert_batches", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "2#cassandra_row_insert_batches" - ] - }, - "Cassandra_row_inserts": { - "name": "Cassandra_row_inserts", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "2#cassandra_row_inserts" - ] - }, - "Cassandra_timeout_exceptions": { - "name": "Cassandra_timeout_exceptions", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "2#cassandra_timeout_exceptions" - ] - }, - "Cassandra_unavailable_exceptions": { - "name": "Cassandra_unavailable_exceptions", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "2#cassandra_unavailable_exceptions" - ] - }, - "cassandra_default_thrift_host": { - "dynamic": true, - "name": "cassandra_default_thrift_host", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "4#cassandra_default_thrift_host" - ] - }, - "cassandra_failure_retries": { - "default": "3", - "dynamic": true, - "name": "cassandra_failure_retries", - "scope": [ - "global", - "session" - ], - "type": "integer", - "validValues": [ - "1", - "1073741824" - ], - "ids": [ - "3#cassandra_failure_retries" - ] - }, - "cassandra_insert_batch_size": { - "default": "100", - "dynamic": true, - "name": "cassandra_insert_batch_size", - "scope": [ - "global", - "session" - ], - "type": "integer", - "validValues": [ - "1", - "1073741824" - ], - "ids": [ - "3#cassandra_insert_batch_size" - ] - }, - "cassandra_multiget_batch_size": { - "default": "100", - "dynamic": true, - "name": "cassandra_multiget_batch_size", - "scope": [ - "global", - "session" - ], - "type": "integer", - "validValues": [ - "1", - "1073741824" - ], - "ids": [ - "3#cassandra_multiget_batch_size" - ] - }, - "cassandra_read_consistency": { - "default": "ONE", - "name": "cassandra_read_consistency", - "scope": [ - "global", - "session" - ], - "validValues": [ - "ONE", - "TWO", - "THREE", - "ANY", - "ALL", - "QUORUM", - "EACH_QUORUM", - "LOCAL_QUORUM", - "\n" - ], - "ids": [ - "3#cassandra_read_consistency" - ] - }, - "cassandra_rnd_batch_size": { - "default": "10000", - "name": "cassandra_rnd_batch_size", - "scope": [ - "global", - "session" - ], - "validValues": [ - "1", - "1073741824" - ], - "ids": [ - "3#cassandra_rnd_batch_size" - ] - }, - "cassandra_write_consistency": { - "default": "ONE", - "name": "cassandra_write_consistency", - "scope": [ - "global", - "session" - ], - "validValues": [ - "ONE", - "TWO", - "THREE", - "ANY", - "ALL", - "QUORUM", - "EACH_QUORUM", - "LOCAL_QUORUM", - "\n" - ], - "ids": [ - "3#cassandra_write_consistency" - ] - }, - "connect_class_path": { - "cli": "--connect-class-path=value", - "default": "", - "dynamic": false, - "name": "connect_class_path", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "5#connect_class_path" - ] - }, - "connect_cond_push": { - "cli": "--connect-cond-push={0|1}", - "default": "ON", - "dynamic": true, - "name": "connect_cond_push", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "4#connect_cond_push" - ] - }, - "connect_conv_size": { - "cli": "--connect-conv-size=#", - "default": ">= MariaDB 10.4.8, MariaDB 10.3.18, MariaDB 10.2.27: 1024, <= MariaDB 10.4.7, MariaDB 10.3.17, MariaDB 10.2.26: 8192", - "dynamic": true, - "name": "connect_conv_size", - "range": { - "from": 0, - "to": 65500 - }, - "scope": [ - "session", - "global" - ], - "type": "integer", - "ids": [ - "4#connect_conv_size" - ] - }, - "connect_enable_mongo": { - "cli": "--connect-enable-mongo={0|1}", - "default": "OFF", - "dynamic": false, - "name": "connect_enable_mongo", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "4#connect_enable_mongo" - ] - }, - "connect_exact_info": { - "cli": "--connect-exact-info=#", - "default": "OFF", - "dynamic": true, - "name": "connect_exact_info", - "scope": [ - "session" - ], - "type": "boolean", - "ids": [ - "4#connect_exact_info" - ] - }, - "connect_indx_map": { - "cli": "--connect-indx-map=#", - "default": "OFF", - "dynamic": true, - "name": "connect_indx_map", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "4#connect_indx_map" - ] - }, - "connect_java_wrapper": { - "cli": "--connect-java-wrapper=val", - "default": "wrappers/JdbcInterface", - "dynamic": true, - "name": "connect_java_wrapper", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "4#connect_java_wrapper" - ] - }, - "connect_json_grp_size": { - "cli": "--connect-json-grp-size=#", - "default": "10", - "dynamic": true, - "name": "connect_json_grp_size", - "range": { - "from": 1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "4#connect_json_grp_size" - ] - }, - "connect_json_null": { - "cli": "--connect-json-null=value", - "default": "", - "dynamic": true, - "name": "connect_json_null", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "4#connect_json_null" - ] - }, - "connect_jvm_path": { - "cli": "--connect-jvm_path=value", - "default": "", - "dynamic": false, - "name": "connect_jvm_path", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "4#connect_jvm_path" - ] - }, - "connect_type_conv": { - "cli": "--connect-type-conv=#", - "default": "YES (>= Connect 1.06.006), NO (<= Connect 1.06.005)", - "dynamic": true, - "name": "connect_type_conv", - "scope": [ - "session", - "global" - ], - "validValues": [ - "NO", - "YES", - "SKIP" - ], - "ids": [ - "4#connect_type_conv" - ] - }, - "connect_use_tempfile": { - "cli": "--connect-use-tempfile=#", - "default": "AUTO", - "dynamic": true, - "name": "connect_use_tempfile", - "scope": [ - "session" - ], - "ids": [ - "4#connect_use_tempfile" - ] - }, - "connect_work_size": { - "cli": "--connect-work-size=#", - "default": "67108864", - "dynamic": true, - "name": "connect_work_size", - "range": { - "from": 4194304, - "to": "upwards" - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "4#connect_work_size" - ] - }, - "connect_xtrace": { - "cli": "--connect-xtrace=#", - "default": "0", - "dynamic": true, - "name": "connect_xtrace", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "set", - "validValues": [], - "ids": [ - "4#connect_xtrace" - ] - }, - "wsrep_apply_oooe": { - "name": "wsrep_apply_oooe", - "ids": [ - "6#wsrep_apply_oooe" - ] - }, - "wsrep_apply_oool": { - "name": "wsrep_apply_oool", - "ids": [ - "5#wsrep_apply_oool" - ] - }, - "wsrep_apply_window": { - "name": "wsrep_apply_window", - "ids": [ - "5#wsrep_apply_window" - ] - }, - "wsrep_cert_deps_distance": { - "name": "wsrep_cert_deps_distance", - "ids": [ - "5#wsrep_cert_deps_distance" - ] - }, - "wsrep_cert_index_size": { - "name": "wsrep_cert_index_size", - "type": "integer", - "ids": [ - "5#wsrep_cert_index_size" - ] - }, - "wsrep_cert_interval": { - "name": "wsrep_cert_interval", - "type": "integer", - "ids": [ - "5#wsrep_cert_interval" - ] - }, - "wsrep_cluster_capabilities": { - "name": "wsrep_cluster_capabilities", - "ids": [ - "5#wsrep_cluster_capabilities" - ] - }, - "wsrep_cluster_conf_id": { - "name": "wsrep_cluster_conf_id", - "type": "integer", - "ids": [ - "5#wsrep_cluster_conf_id" - ] - }, - "wsrep_cluster_size": { - "name": "wsrep_cluster_size", - "type": "integer", - "ids": [ - "5#wsrep_cluster_size" - ] - }, - "wsrep_cluster_state_uuid": { - "name": "wsrep_cluster_state_uuid", - "ids": [ - "5#wsrep_cluster_state_uuid" - ] - }, - "wsrep_cluster_status": { - "name": "wsrep_cluster_status", - "ids": [ - "5#wsrep_cluster_status" - ] - }, - "wsrep_cluster_weight": { - "name": "wsrep_cluster_weight", - "ids": [ - "5#wsrep_cluster_weight" - ] - }, - "wsrep_commit_oooe": { - "name": "wsrep_commit_oooe", - "ids": [ - "5#wsrep_commit_oooe" - ] - }, - "wsrep_commit_oool": { - "name": "wsrep_commit_oool", - "ids": [ - "5#wsrep_commit_oool" - ] - }, - "wsrep_commit_window": { - "name": "wsrep_commit_window", - "ids": [ - "5#wsrep_commit_window" - ] - }, - "wsrep_connected": { - "name": "wsrep_connected", - "ids": [ - "5#wsrep_connected" - ] - }, - "wsrep_desync_count": { - "name": "wsrep_desync_count", - "type": "integer", - "ids": [ - "5#wsrep_desync_count" - ] - }, - "wsrep_evs_delayed": { - "name": "wsrep_evs_delayed", - "ids": [ - "5#wsrep_evs_delayed" - ] - }, - "wsrep_evs_evict_list": { - "name": "wsrep_evs_evict_list", - "ids": [ - "5#wsrep_evs_evict_list" - ] - }, - "wsrep_evs_repl_latency": { - "name": "wsrep_evs_repl_latency", - "ids": [ - "5#wsrep_evs_repl_latency" - ] - }, - "wsrep_evs_state": { - "name": "wsrep_evs_state", - "ids": [ - "5#wsrep_evs_state" - ] - }, - "wsrep_flow_control_paused": { - "name": "wsrep_flow_control_paused", - "ids": [ - "5#wsrep_flow_control_paused" - ] - }, - "wsrep_flow_control_paused_ns": { - "name": "wsrep_flow_control_paused_ns", - "ids": [ - "5#wsrep_flow_control_paused_ns" - ] - }, - "wsrep_flow_control_recv": { - "name": "wsrep_flow_control_recv", - "type": "integer", - "ids": [ - "5#wsrep_flow_control_recv" - ] - }, - "wsrep_flow_control_sent": { - "name": "wsrep_flow_control_sent", - "type": "integer", - "ids": [ - "5#wsrep_flow_control_sent" - ] - }, - "wsrep_gcomm_uuid": { - "name": "wsrep_gcomm_uuid", - "ids": [ - "5#wsrep_gcomm_uuid" - ] - }, - "wsrep_incoming_addresses": { - "name": "wsrep_incoming_addresses", - "ids": [ - "5#wsrep_incoming_addresses" - ] - }, - "wsrep_last_committed": { - "name": "wsrep_last_committed", - "type": "integer", - "ids": [ - "5#wsrep_last_committed" - ] - }, - "wsrep_local_bf_aborts": { - "name": "wsrep_local_bf_aborts", - "type": "integer", - "ids": [ - "5#wsrep_local_bf_aborts" - ] - }, - "wsrep_local_cached_downto": { - "name": "wsrep_local_cached_downto", - "ids": [ - "5#wsrep_local_cached_downto" - ] - }, - "wsrep_local_cert_failures": { - "name": "wsrep_local_cert_failures", - "type": "integer", - "ids": [ - "5#wsrep_local_cert_failures" - ] - }, - "wsrep_local_commits": { - "name": "wsrep_local_commits", - "type": "integer", - "ids": [ - "5#wsrep_local_commits" - ] - }, - "wsrep_local_index": { - "name": "wsrep_local_index", - "ids": [ - "5#wsrep_local_index" - ] - }, - "wsrep_local_recv_queue": { - "name": "wsrep_local_recv_queue", - "type": "integer", - "ids": [ - "5#wsrep_local_recv_queue" - ] - }, - "wsrep_local_recv_queue_avg": { - "name": "wsrep_local_recv_queue_avg", - "ids": [ - "5#wsrep_local_recv_queue_avg" - ] - }, - "wsrep_local_recv_queue_max": { - "name": "wsrep_local_recv_queue_max", - "ids": [ - "5#wsrep_local_recv_queue_max" - ] - }, - "wsrep_local_recv_queue_min": { - "name": "wsrep_local_recv_queue_min", - "ids": [ - "5#wsrep_local_recv_queue_min" - ] - }, - "wsrep_local_replays": { - "name": "wsrep_local_replays", - "type": "integer", - "ids": [ - "5#wsrep_local_replays" - ] - }, - "wsrep_local_send_queue": { - "name": "wsrep_local_send_queue", - "type": "integer", - "ids": [ - "5#wsrep_local_send_queue" - ] - }, - "wsrep_local_send_queue_avg": { - "name": "wsrep_local_send_queue_avg", - "ids": [ - "5#wsrep_local_send_queue_avg" - ] - }, - "wsrep_local_send_queue_max": { - "name": "wsrep_local_send_queue_max", - "ids": [ - "5#wsrep_local_send_queue_max" - ] - }, - "wsrep_local_send_queue_min": { - "name": "wsrep_local_send_queue_min", - "ids": [ - "5#wsrep_local_send_queue_min" - ] - }, - "wsrep_local_state": { - "name": "wsrep_local_state", - "ids": [ - "5#wsrep_local_state" - ] - }, - "wsrep_local_state_comment": { - "name": "wsrep_local_state_comment", - "ids": [ - "5#wsrep_local_state_comment" - ] - }, - "wsrep_local_state_uuid": { - "name": "wsrep_local_state_uuid", - "ids": [ - "5#wsrep_local_state_uuid" - ] - }, - "wsrep_open_connections": { - "name": "wsrep_open_connections", - "type": "integer", - "ids": [ - "5#wsrep_open_connections" - ] - }, - "wsrep_open_transactions": { - "name": "wsrep_open_transactions", - "type": "integer", - "ids": [ - "5#wsrep_open_transactions" - ] - }, - "wsrep_protocol_version": { - "name": "wsrep_protocol_version", - "ids": [ - "5#wsrep_protocol_version" - ] - }, - "wsrep_provider_name": { - "name": "wsrep_provider_name", - "ids": [ - "5#wsrep_provider_name" - ] - }, - "wsrep_provider_vendor": { - "name": "wsrep_provider_vendor", - "ids": [ - "5#wsrep_provider_vendor" - ] - }, - "wsrep_provider_version": { - "name": "wsrep_provider_version", - "type": "integer", - "ids": [ - "5#wsrep_provider_version" - ] - }, - "wsrep_ready": { - "name": "wsrep_ready", - "ids": [ - "5#wsrep_ready" - ] - }, - "wsrep_received": { - "name": "wsrep_received", - "type": "integer", - "ids": [ - "5#wsrep_received" - ] - }, - "wsrep_received_bytes": { - "name": "wsrep_received_bytes", - "type": "byte", - "ids": [ - "5#wsrep_received_bytes" - ] - }, - "wsrep_repl_data_bytes": { - "name": "wsrep_repl_data_bytes", - "type": "integer", - "ids": [ - "5#wsrep_repl_data_bytes" - ] - }, - "wsrep_repl_keys": { - "name": "wsrep_repl_keys", - "type": "integer", - "ids": [ - "5#wsrep_repl_keys" - ] - }, - "wsrep_repl_keys_bytes": { - "name": "wsrep_repl_keys_bytes", - "type": "integer", - "ids": [ - "5#wsrep_repl_keys_bytes" - ] - }, - "wsrep_repl_other_bytes": { - "name": "wsrep_repl_other_bytes", - "type": "integer", - "ids": [ - "5#wsrep_repl_other_bytes" - ] - }, - "wsrep_replicated": { - "name": "wsrep_replicated", - "type": "integer", - "ids": [ - "5#wsrep_replicated" - ] - }, - "wsrep_replicated_bytes": { - "name": "wsrep_replicated_bytes", - "type": "byte", - "ids": [ - "5#wsrep_replicated_bytes" - ] - }, - "wsrep_thread_count": { - "name": "wsrep_thread_count", - "type": "integer", - "ids": [ - "5#wsrep_thread_count" - ] - }, - "wsrep_auto_increment_control": { - "cli": "--wsrep-auto-increment-control[={0|1}]", - "default": "ON", - "dynamic": true, - "name": "wsrep_auto_increment_control", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "7#wsrep_auto_increment_control" - ] - }, - "wsrep_causal_reads": { - "cli": "--wsrep-causal-reads[={0|1}]", - "default": "OFF", - "dynamic": true, - "name": "wsrep_causal_reads", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "6#wsrep_causal_reads" - ] - }, - "wsrep_certification_rules": { - "cli": "--wsrep-certifcation-rules", - "default": "strict", - "dynamic": true, - "name": "wsrep_certification_rules", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "strict", - "optimized" - ], - "ids": [ - "6#wsrep_certification_rules" - ] - }, - "wsrep_certify_nonPK": { - "cli": "--wsrep-certify-nonPK[={0|1}]", - "default": "ON", - "dynamic": true, - "name": "wsrep_certify_nonPK", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "6#wsrep_certify_nonpk" - ] - }, - "wsrep_cluster_address": { - "cli": "--wsrep-cluster-address=value", - "dynamic": false, - "name": "wsrep_cluster_address", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "6#wsrep_cluster_address" - ] - }, - "wsrep_cluster_name": { - "cli": "--wsrep-cluster-name=value", - "default": "my_wsrep_cluster", - "dynamic": true, - "name": "wsrep_cluster_name", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "6#wsrep_cluster_name" - ] - }, - "wsrep_convert_LOCK_to_trx": { - "cli": "--wsrep-convert-LOCK-to-trx[={0|1}]", - "default": "OFF", - "dynamic": true, - "name": "wsrep_convert_LOCK_to_trx", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "6#wsrep_convert_lock_to_trx" - ] - }, - "wsrep_data_home_dir": { - "cli": "--wsrep-data-home-dir=value", - "default": "The datadir variable value.", - "dynamic": false, - "name": "wsrep_data_home_dir", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "6#wsrep_data_home_dir" - ] - }, - "wsrep_dbug_option": { - "cli": "--wsrep-dbug-option=value", - "dynamic": true, - "name": "wsrep_dbug_option", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "6#wsrep_dbug_option" - ] - }, - "wsrep_debug": { - "cli": "--wsrep-debug[={0|1}]", - "default": "NONE (>= MariaDB 10.4.3), OFF (<= MariaDB 10.4.2)", - "dynamic": true, - "name": "wsrep_debug", - "scope": [ - "global" - ], - "ids": [ - "6#wsrep_debug" - ] - }, - "wsrep_desync": { - "cli": "--wsrep-desync[={0|1}]", - "default": "OFF", - "dynamic": true, - "name": "wsrep_desync", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "6#wsrep_desync" - ] - }, - "wsrep_dirty_reads": { - "cli": "--wsrep-dirty-reads[={0|1}]", - "default": "OFF", - "dynamic": true, - "name": "wsrep_dirty_reads", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "validValues": [ - "ON", - "OFF" - ], - "ids": [ - "6#wsrep_dirty_reads" - ] - }, - "wsrep_drupal_282555_workaround": { - "cli": "--wsrep-drupal-282555-workaround[={0|1}]", - "default": "OFF", - "dynamic": true, - "name": "wsrep_drupal_282555_workaround", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "6#wsrep_drupal_282555_workaround" - ] - }, - "wsrep_forced_binlog_format": { - "cli": "--wsrep-forced-binlog-format=value", - "default": "NONE", - "dynamic": true, - "name": "wsrep_forced_binlog_format", - "scope": [ - "global" - ], - "validValues": [ - "STATEMENT", - "ROW", - "MIXED", - "NONE" - ], - "ids": [ - "6#wsrep_forced_binlog_format" - ] - }, - "wsrep_gtid_domain_id": { - "cli": "--wsrep-gtid-domain-id=#", - "default": "0", - "dynamic": true, - "name": "wsrep_gtid_domain_id", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "6#wsrep_gtid_domain_id" - ] - }, - "wsrep_gtid_mode": { - "cli": "--wsrep-gtid-mode[={0|1}]", - "default": "OFF", - "dynamic": true, - "name": "wsrep_gtid_mode", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "6#wsrep_gtid_mode" - ] - }, - "wsrep_ignore_apply_errors": { - "cli": "--wsrep-ignore-apply-errors", - "default": "0", - "dynamic": true, - "name": "wsrep_ignore_apply_errors", - "range": { - "from": 0, - "to": 7 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "6#wsrep_ignore_apply_errors" - ] - }, - "wsrep_load_data_splitting": { - "cli": "--wsrep-load-data-splitting[={0|1}]", - "default": "OFF (>= MariaDB 10.4.3), ON (<= MariaDB 10.4.2)", - "dynamic": true, - "name": "wsrep_load_data_splitting", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "6#wsrep_load_data_splitting" - ] - }, - "wsrep_log_conflicts": { - "cli": "--wsrep-log-conflicts[={0|1}]", - "default": "OFF", - "dynamic": true, - "name": "wsrep_log_conflicts", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "6#wsrep_log_conflicts" - ] - }, - "wsrep_max_ws_rows": { - "cli": "--wsrep-max-ws-rows=#", - "default": "0 (>= MariaDB Galera 10.0.27, MariaDB 10.1.17), 131072 (<= MariaDB Galera 10.0.26, MariaDB 10.1.16)", - "dynamic": true, - "name": "wsrep_max_ws_rows", - "range": { - "from": 0, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "6#wsrep_max_ws_rows" - ] - }, - "wsrep_max_ws_size": { - "cli": "--wsrep-max-ws-size=#", - "default": "2147483647 (2GB, >= MariaDB Galera 10.0.27, MariaDB 10.1.17), 1073741824 (1GB, <= MariaDB Galera 10.0.26, MariaDB 10.1.16)", - "dynamic": true, - "name": "wsrep_max_ws_size", - "range": { - "from": 1024, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "6#wsrep_max_ws_size" - ] - }, - "wsrep_mysql_replication_bundle": { - "cli": "--wsrep-mysql-replication-bundle=#", - "default": "0", - "dynamic": false, - "name": "wsrep_mysql_replication_bundle", - "range": { - "from": 0, - "to": 1000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "6#wsrep_mysql_replication_bundle" - ] - }, - "wsrep_node_address": { - "cli": "--wsrep-node-address=value", - "default": "Primary network address, usually eth0 with a default port of 4567, or 0.0.0.0 if no IP address.", - "dynamic": false, - "name": "wsrep_node_address", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "6#wsrep_node_address" - ] - }, - "wsrep_node_incoming_address": { - "cli": "--wsrep-node-incoming-address=value", - "default": "AUTO", - "dynamic": false, - "name": "wsrep_node_incoming_address", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "6#wsrep_node_incoming_address" - ] - }, - "wsrep_node_name": { - "cli": "--wsrep-node-name=value", - "default": "The server's hostname.", - "dynamic": true, - "name": "wsrep_node_name", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "6#wsrep_node_name" - ] - }, - "wsrep_notify_cmd": { - "cli": "--wsrep-notify-command=value", - "default": "Empty", - "dynamic": true, - "name": "wsrep_notify_cmd", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "6#wsrep_notify_cmd" - ] - }, - "wsrep_on": { - "cli": "--wsrep-on[={0|1}]", - "default": "OFF (>= MariaDB 10.1), ON (<= MariaDB Galera Cluster 10.0),", - "dynamic": true, - "name": "wsrep_on", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "validValues": [ - "ON", - "OFF" - ], - "ids": [ - "6#wsrep_on" - ] - }, - "wsrep_OSU_method": { - "cli": "--wsrep-OSU-method[=value]", - "default": "TOI", - "dynamic": true, - "name": "wsrep_OSU_method", - "scope": [ - "global", - "session" - ], - "validValues": [ - "TOI", - "RSU" - ], - "ids": [ - "6#wsrep_osu_method" - ] - }, - "wsrep_patch_version": { - "default": "None", - "dynamic": false, - "name": "wsrep_patch_version", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "6#wsrep_patch_version" - ] - }, - "wsrep_provider": { - "cli": "--wsrep-provider=value", - "default": "None", - "dynamic": true, - "name": "wsrep_provider", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "6#wsrep_provider" - ] - }, - "wsrep_provider_options": { - "cli": "--wsrep-provider-options=value", - "default": "Empty", - "dynamic": false, - "name": "wsrep_provider_options", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "6#wsrep_provider_options" - ] - }, - "wsrep_recover": { - "cli": "--wsrep-recover[={0|1}]", - "default": "OFF", - "dynamic": false, - "name": "wsrep_recover", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "6#wsrep_recover" - ] - }, - "wsrep_reject_queries": { - "cli": "--wsrep-reject-queries[=value]", - "default": "NONE", - "dynamic": true, - "name": "wsrep_reject_queries", - "scope": [ - "global" - ], - "validValues": [ - "NONE", - "ALL", - "ALL_KILL" - ], - "ids": [ - "6#wsrep_reject_queries" - ] - }, - "wsrep_replicate_myisam": { - "cli": "--wsrep-replicate-myisam[={0|1}]", - "default": "OFF", - "dynamic": true, - "name": "wsrep_replicate_myisam", - "scope": [ - "global" - ], - "type": "boolean", - "validValues": [ - "ON", - "OFF" - ], - "ids": [ - "6#wsrep_replicate_myisam" - ] - }, - "wsrep_restart_slave": { - "cli": "--wsrep-restart-slave[={0|1}]", - "default": "OFF", - "dynamic": true, - "name": "wsrep_restart_slave", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "6#wsrep_restart_slave" - ] - }, - "wsrep_retry_autocommit": { - "cli": "--wsrep-retry-autocommit=value", - "default": "1", - "dynamic": false, - "name": "wsrep_retry_autocommit", - "range": { - "from": 0, - "to": 10000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "6#wsrep_retry_autocommit" - ] - }, - "wsrep_slave_FK_checks": { - "cli": "--wsrep-slave-FK-checks[={0|1}]", - "default": "ON", - "dynamic": true, - "name": "wsrep_slave_FK_checks", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "6#wsrep_slave_fk_checks" - ] - }, - "wsrep_slave_threads": { - "cli": "--wsrep-slave-threads=#", - "default": "1", - "dynamic": true, - "name": "wsrep_slave_threads", - "range": { - "from": 1, - "to": 512 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "6#wsrep_slave_threads" - ] - }, - "wsrep_slave_UK_checks": { - "cli": "--wsrep-slave-UK-checks[={0|1}]", - "default": "OFF", - "dynamic": true, - "name": "wsrep_slave_UK_checks", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "6#wsrep_slave_uk_checks" - ] - }, - "wsrep_sr_store": { - "cli": "--wsrep-sr-store=val", - "default": "table", - "dynamic": false, - "name": "wsrep_sr_store", - "scope": [ - "global" - ], - "validValues": [ - "table", - "none" - ], - "ids": [ - "6#wsrep_sr_store" - ] - }, - "wsrep_sst_auth": { - "cli": "--wsrep-sst-auth=value", - "default": "(Empty)", - "dynamic": true, - "name": "wsrep_sst_auth", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "6#wsrep_sst_auth" - ] - }, - "wsrep_sst_donor": { - "cli": "--wsrep-sst-donor=value", - "default": "", - "dynamic": true, - "name": "wsrep_sst_donor", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "6#wsrep_sst_donor" - ] - }, - "wsrep_sst_donor_rejects_queries": { - "cli": "--wsrep-sst-donor-rejects-queries[={0|1}]", - "default": "OFF", - "dynamic": true, - "name": "wsrep_sst_donor_rejects_queries", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "6#wsrep_sst_donor_rejects_queries" - ] - }, - "wsrep_sst_method": { - "cli": "--wsrep-sst-method=value", - "default": "rsync", - "dynamic": true, - "name": "wsrep_sst_method", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "rsync", - "mysqldump", - "xtrabackup", - "xtrabackup-v2", - "mariabackup" - ], - "ids": [ - "6#wsrep_sst_method" - ] - }, - "wsrep_sst_receive_address": { - "cli": "--wsrep-sst-receive-address=value", - "default": "AUTO", - "dynamic": true, - "name": "wsrep_sst_receive_address", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "6#wsrep_sst_receive_address" - ] - }, - "wsrep_start_position": { - "cli": "--wsrep-start-position=value", - "default": "00000000-0000-0000-0000-000000000000:-1", - "dynamic": true, - "name": "wsrep_start_position", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "6#wsrep_start_position" - ] - }, - "wsrep_sync_wait": { - "cli": "--wsrep-sync-wait=#", - "default": "0", - "dynamic": true, - "name": "wsrep_sync_wait", - "range": { - "from": 0, - "to": 15 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "6#wsrep_sync_wait" - ] - }, - "wsrep_trx_fragment_size": { - "cli": "--wsrep-trx-fragment-size=#", - "default": "0", - "dynamic": true, - "name": "wsrep_trx_fragment_size", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "6#wsrep_trx_fragment_size" - ] - }, - "wsrep_trx_fragment_unit": { - "cli": "--wsrep-trx-fragment-unit=value", - "default": "bytes", - "dynamic": true, - "name": "wsrep_trx_fragment_unit", - "scope": [ - "global", - "session" - ], - "validValues": [ - "bytes", - "rows", - "statements" - ], - "ids": [ - "6#wsrep_trx_fragment_unit" - ] - }, - "gtid_binlog_pos": { - "default": "Null", - "dynamic": false, - "name": "gtid_binlog_pos", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "8#gtid_binlog_pos" - ] - }, - "gtid_binlog_state": { - "default": "Null", - "dynamic": true, - "name": "gtid_binlog_state", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "7#gtid_binlog_state" - ] - }, - "gtid_current_pos": { - "default": "Null", - "dynamic": false, - "name": "gtid_current_pos", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "7#gtid_current_pos" - ] - }, - "gtid_domain_id": { - "cli": "--gtid-domain-id=#", - "default": "0", - "dynamic": true, - "name": "gtid_domain_id", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "ids": [ - "7#gtid_domain_id" - ] - }, - "last_gtid": { - "dynamic": false, - "name": "last_gtid", - "scope": [ - "session" - ], - "type": "string", - "ids": [ - "7#last_gtid" - ] - }, - "server_id": { - "dynamic": true, - "name": "server_id", - "type": "integer", - "ids": [ - "7#server_id", - "9#server_id", - "10#sysvar_server_id" - ] - }, - "gtid_seq_no": { - "default": "Null", - "dynamic": true, - "name": "gtid_seq_no", - "scope": [ - "session" - ], - "ids": [ - "7#gtid_seq_no" - ] - }, - "gtid_ignore_duplicates": { - "cli": "--gtid-ignore-duplicates=#", - "default": "OFF", - "dynamic": true, - "name": "gtid_ignore_duplicates", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "7#gtid_ignore_duplicates" - ] - }, - "gtid_pos_auto_engines": { - "cli": "--gtid-pos-auto-engines=value", - "default": "empty", - "dynamic": true, - "name": "gtid_pos_auto_engines", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "7#gtid_pos_auto_engines" - ] - }, - "gtid_cleanup_batch_size": { - "cli": "--gtid-cleanup-batch-size=#", - "default": "64", - "dynamic": true, - "name": "gtid_cleanup_batch_size", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "7#gtid_cleanup_batch_size" - ] - }, - "Server_audit_active": { - "name": "Server_audit_active", - "type": "boolean", - "ids": [ - "11#server_audit_active" - ] - }, - "Server_audit_current_log": { - "name": "Server_audit_current_log", - "type": "string", - "ids": [ - "10#server_audit_current_log" - ] - }, - "Server_audit_last_error": { - "name": "Server_audit_last_error", - "type": "string", - "ids": [ - "10#server_audit_last_error" - ] - }, - "Server_audit_writes_failed": { - "default": "0", - "name": "Server_audit_writes_failed", - "type": "integer", - "ids": [ - "10#server_audit_writes_failed" - ] - }, - "server_audit_events": { - "cli": "--server-audit-events=value", - "default": "Empty string", - "dynamic": true, - "name": "server_audit_events", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "CONNECT", - "QUERY", - "TABLE", - "CONNECT", - "QUERY", - "TABLE", - "QUERY_DDL", - "QUERY_DML", - "CONNECT", - "QUERY", - "TABLE", - "QUERY_DDL", - "QUERY_DML", - "QUERY_DCL", - "CONNECT", - "QUERY", - "TABLE", - "QUERY_DDL", - "QUERY_DML", - "QUERY_DCL", - "QUERY_DML_NO_SELECT" - ], - "ids": [ - "12#server_audit_events" - ] - }, - "server_audit_excl_users": { - "cli": "--server-audit-excl-users=value", - "default": "Empty string", - "dynamic": true, - "name": "server_audit_excl_users", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "11#server_audit_excl_users" - ] - }, - "server_audit_file_path": { - "cli": "--server-audit-file-path=value", - "default": "server_audit.log", - "dynamic": true, - "name": "server_audit_file_path", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "11#server_audit_file_path" - ] - }, - "server_audit_file_rotate_now": { - "cli": "--server-audit-rotate-now[={0|1}]", - "default": "OFF", - "dynamic": true, - "name": "server_audit_file_rotate_now", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "11#server_audit_file_rotate_now" - ] - }, - "server_audit_file_rotate_size": { - "cli": "--server-audit-rotate-size=#", - "default": "1000000", - "dynamic": true, - "name": "server_audit_file_rotate_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "11#server_audit_file_rotate_size" - ] - }, - "server_audit_file_rotations": { - "cli": "--server-audit-rotations=#", - "default": "9", - "dynamic": true, - "name": "server_audit_file_rotations", - "range": { - "from": 0, - "to": 999 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "11#server_audit_file_rotations" - ] - }, - "server_audit_incl_users": { - "cli": "--server-audit-incl-users=value", - "default": "Empty string", - "dynamic": true, - "name": "server_audit_incl_users", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "11#server_audit_incl_users" - ] - }, - "server_audit_loc_info": { - "default": "Empty string", - "dynamic": false, - "name": "server_audit_loc_info", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "11#server_audit_loc_info" - ] - }, - "server_audit_logging": { - "cli": "--server-audit-logging[={0|1}]", - "default": "OFF", - "dynamic": true, - "name": "server_audit_logging", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "11#server_audit_logging" - ] - }, - "server_audit_mode": { - "cli": "--server-audit-mode[=#]", - "name": "server_audit_mode", - "ids": [ - "11#server_audit_mode" - ] - }, - "server_audit_output_type": { - "cli": "--server-audit-output-type=value", - "default": "file", - "dynamic": true, - "name": "server_audit_output_type", - "scope": [ - "global" - ], - "validValues": [ - "SYSLOG", - "FILE" - ], - "ids": [ - "11#server_audit_output_type" - ] - }, - "server_audit_query_log_limit": { - "cli": "--server-audit-query-log-limit=#", - "default": "1024", - "dynamic": true, - "name": "server_audit_query_log_limit", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "11#server_audit_query_log_limit" - ] - }, - "server_audit_syslog_facility": { - "cli": "--server-audit-syslog-facility=value", - "default": "LOG_USER", - "dynamic": true, - "name": "server_audit_syslog_facility", - "scope": [ - "global" - ], - "validValues": [ - "LOG_USER", - "LOG_MAIL", - "LOG_DAEMON", - "LOG_AUTH", - "LOG_SYSLOG", - "LOG_LPR", - "LOG_NEWS", - "LOG_UUCP", - "LOG_CRON", - "LOG_AUTHPRIV", - "LOG_FTP", - "LOG_LOCAL0", - "LOG_LOCAL7" - ], - "ids": [ - "11#server_audit_syslog_facility" - ] - }, - "server_audit_syslog_ident": { - "cli": "--server-audit-syslog-ident=value", - "default": "mysql-server_auditing", - "dynamic": true, - "name": "server_audit_syslog_ident", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "11#server_audit_syslog_ident" - ] - }, - "server_audit_syslog_info": { - "cli": "--server-audit-syslog-info=value", - "default": "Empty string", - "dynamic": true, - "name": "server_audit_syslog_info", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "11#server_audit_syslog_info" - ] - }, - "server_audit_syslog_priority": { - "cli": "--server-audit-syslog-priority=value", - "default": "LOG_INFO", - "dynamic": true, - "name": "server_audit_syslog_priority", - "scope": [ - "global" - ], - "validValues": [ - "LOG_EMERG", - "LOG_ALERT", - "LOG_CRIT", - "LOG_ERR", - "LOG_WARNING", - "LOG_NOTICE", - "LOG_INFO", - "LOG_DEBUG" - ], - "ids": [ - "11#server_audit_syslog_priority" - ] - }, - "server_audit": { - "cli": "--server-audit=val", - "default": "ON", - "name": "server_audit", - "validValues": [ - "OFF", - "ON", - "FORCE", - "FORCE_PLUS_PERMANENT" - ], - "ids": [ - "11#server_audit" - ] - }, - "Mroonga_count_skip": { - "name": "Mroonga_count_skip", - "type": "integer", - "ids": [ - "13#mroonga_count_skip" - ] - }, - "Mroonga_fast_order_limit": { - "name": "Mroonga_fast_order_limit", - "type": "integer", - "ids": [ - "12#mroonga_fast_order_limit" - ] - }, - "mroonga_action_on_fulltext_query_error": { - "cli": "--mroonga-action-on-fulltext-query-error=value", - "default": "ERROR_AND_LOG", - "dynamic": true, - "name": "mroonga_action_on_fulltext_query_error", - "scope": [ - "global", - "session" - ], - "ids": [ - "14#mroonga_action_on_fulltext_query_error" - ] - }, - "mroonga_boolean_mode_syntax_flags": { - "cli": "--mroonga-boolean-mode-syntax-flags=value", - "default": "DEFAULT", - "dynamic": true, - "name": "mroonga_boolean_mode_syntax_flags", - "scope": [ - "global", - "session" - ], - "ids": [ - "13#mroonga_boolean_mode_syntax_flags" - ] - }, - "mroonga_database_path_prefix": { - "cli": "--mroonga-database-path-prefix=value", - "default": "(Empty)", - "dynamic": true, - "name": "mroonga_database_path_prefix", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "13#mroonga_database_path_prefix" - ] - }, - "mroonga_default_parser": { - "cli": "--mroonga-default-parser=value", - "default": "TokenBigram", - "dynamic": true, - "name": "mroonga_default_parser", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "13#mroonga_default_parser" - ] - }, - "mroonga_default_tokenizer": { - "cli": "--mroonga-default-tokenizer=value", - "default": "TokenBigram", - "dynamic": true, - "name": "mroonga_default_tokenizer", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "13#mroonga_default_tokenizer" - ] - }, - "mroonga_default_wrapper_engine": { - "cli": "--mroonga-default-wrapper-engine=value", - "default": "(Empty)", - "dynamic": false, - "name": "mroonga_default_wrapper_engine", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "13#mroonga_default_wrapper_engine" - ] - }, - "mroonga_dry_write": { - "cli": "--mroonga-dry-write[={0|1}]", - "default": "off", - "dynamic": true, - "name": "mroonga_dry_write", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "13#mroonga_dry_write" - ] - }, - "mroonga_enable_operations_recording": { - "cli": "--mroonga-enable-operations-recording={0|1}", - "default": "ON", - "dynamic": true, - "name": "mroonga_enable_operations_recording", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "13#mroonga_enable_operations_recording" - ] - }, - "mroonga_enable_optimization": { - "cli": "--mroonga-enable-optimization={0|1}", - "default": "on", - "dynamic": true, - "name": "mroonga_enable_optimization", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "13#mroonga_enable_optimization" - ] - }, - "mroonga_libgroonga_embedded": { - "default": "ON", - "dynamic": false, - "name": "mroonga_libgroonga_embedded", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "13#mroonga_libgroonga_embedded" - ] - }, - "mroonga_libgroonga_support_lz4": { - "default": "OFF", - "dynamic": false, - "name": "mroonga_libgroonga_support_lz4", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "13#mroonga_libgroonga_support_lz4" - ] - }, - "mroonga_libgroonga_support_zlib": { - "default": "ON", - "dynamic": false, - "name": "mroonga_libgroonga_support_zlib", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "13#mroonga_libgroonga_support_zlib" - ] - }, - "mroonga_libgroonga_support_zstd": { - "default": "OFF", - "dynamic": false, - "name": "mroonga_libgroonga_support_zstd", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "13#mroonga_libgroonga_support_zstd" - ] - }, - "mroonga_libgroonga_version": { - "dynamic": false, - "name": "mroonga_libgroonga_version", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "13#mroonga_libgroonga_version" - ] - }, - "mroonga_lock_timeout": { - "cli": "--mroonga-lock-timeout=#", - "default": "900000", - "dynamic": true, - "name": "mroonga_lock_timeout", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "13#mroonga_lock_timeout" - ] - }, - "mroonga_log_file": { - "cli": "--mroonga-log-file=value", - "default": "groonga.log", - "dynamic": true, - "name": "mroonga_log_file", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "13#mroonga_log_file" - ] - }, - "mroonga_log_level": { - "cli": "--mroonga-log-level=value", - "default": "NOTICE", - "dynamic": true, - "name": "mroonga_log_level", - "scope": [ - "global" - ], - "ids": [ - "13#mroonga_log_level" - ] - }, - "mroonga_match_escalation_threshold": { - "cli": "--mroonga-match-escalation-threshold=#", - "default": "0", - "dynamic": true, - "name": "mroonga_match_escalation_threshold", - "range": { - "from": -1, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "13#mroonga_match_escalation_threshold" - ] - }, - "mroonga_max_n_records_for_estimate": { - "cli": "--mroonga-max-n-records-for-estimate=#", - "default": "1000", - "dynamic": true, - "name": "mroonga_max_n_records_for_estimate", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "13#mroonga_max_n_records_for_estimate" - ] - }, - "mroonga_query_log_file": { - "cli": "--mroonga-query-log-file=filename", - "default": "(Empty string)", - "dynamic": true, - "name": "mroonga_query_log_file", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "13#mroonga_query_log_file" - ] - }, - "mroonga_vector_column_delimiter": { - "cli": "--mroonga-vector-column-delimiter=value", - "default": "(white space)", - "dynamic": true, - "name": "mroonga_vector_column_delimiter", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "13#mroonga_vector_column_delimiter" - ] - }, - "mroonga_version": { - "dynamic": false, - "name": "mroonga_version", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "13#mroonga_version" - ] - }, - "key_buffer_size": { - "cli": "--key-buffer-size=#", - "dynamic": true, - "name": "key_buffer_size", - "range": { - "from": 8, - "to": "upwards" - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "15#key_buffer_size", - "16#sysvar_key_buffer_size" - ] - }, - "key_cache_age_threshold": { - "cli": "--key-cache-age-threshold=#", - "default": "300", - "dynamic": true, - "name": "key_cache_age_threshold", - "range": { - "from": 100, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "14#key_cache_age_threshold", - "15#sysvar_key_cache_age_threshold" - ] - }, - "key_cache_block_size": { - "cli": "--key-cache-block-size=#", - "default": "1024", - "dynamic": true, - "name": "key_cache_block_size", - "range": { - "from": 512, - "to": 16384 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "14#key_cache_block_size", - "15#sysvar_key_cache_block_size" - ] - }, - "key_cache_division_limit": { - "cli": "--key-cache-division-limit=#", - "default": "100", - "dynamic": true, - "name": "key_cache_division_limit", - "range": { - "from": 1, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "14#key_cache_division_limit", - "15#sysvar_key_cache_division_limit" - ] - }, - "key_cache_file_hash_size": { - "cli": "--key-cache-file-hash-size=#", - "default": "512", - "dynamic": true, - "name": "key_cache_file_hash_size", - "range": { - "from": 128, - "to": 16384 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "14#key_cache_file_hash_size" - ] - }, - "key_cache_segments": { - "cli": "--key-cache-segments=#", - "default": "0 (non-segmented)", - "dynamic": true, - "name": "key_cache_segments", - "range": { - "from": 0, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "14#key_cache_segments" - ] - }, - "myisam_block_size": { - "cli": "--myisam-block-size=#", - "default": "1024", - "name": "myisam_block_size", - "range": { - "from": 1024, - "to": 16384 - }, - "type": "integer", - "ids": [ - "14#myisam_block_size", - "17#option_mysqld_myisam-block-size" - ] - }, - "myisam_data_pointer_size": { - "cli": "--myisam-data-pointer-size=#", - "default": "6", - "dynamic": true, - "name": "myisam_data_pointer_size", - "range": { - "from": 2, - "to": 7 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "14#myisam_data_pointer_size", - "15#sysvar_myisam_data_pointer_size" - ] - }, - "myisam_max_extra_sort_file_size": { - "name": "myisam_max_extra_sort_file_size", - "ids": [ - "14#myisam_max_extra_sort_file_size" - ] - }, - "myisam_max_sort_file_size": { - "cli": "--myisam-max-sort-file-size=#", - "dynamic": true, - "name": "myisam_max_sort_file_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "14#myisam_max_sort_file_size", - "15#sysvar_myisam_max_sort_file_size" - ] - }, - "myisam_mmap_size": { - "cli": "--myisam-mmap-size=#", - "name": "myisam_mmap_size", - "range": { - "from": 7 - }, - "type": "integer", - "ids": [ - "14#myisam_mmap_size", - "15#sysvar_myisam_mmap_size" - ] - }, - "myisam_recover_options": { - "default": "0", - "dynamic": false, - "name": "myisam_recover_options", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "OFF", - "DEFAULT", - "BACKUP", - "BACKUP_ALL", - "FORCE", - "QUICK" - ], - "ids": [ - "14#myisam_recover_options", - "15#sysvar_myisam_recover_options" - ] - }, - "myisam_repair_threads": { - "cli": "--myisam-repair-threads=#", - "default": "1", - "dynamic": true, - "name": "myisam_repair_threads", - "range": { - "from": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "14#myisam_repair_threads", - "15#sysvar_myisam_repair_threads" - ] - }, - "myisam_sort_buffer_size": { - "cli": "--myisam-sort-buffer-size=#", - "dynamic": true, - "name": "myisam_sort_buffer_size", - "range": { - "from": 4096, - "to": 1.8446744073709548e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "14#myisam_sort_buffer_size", - "15#sysvar_myisam_sort_buffer_size" - ] - }, - "myisam_stats_method": { - "cli": "--myisam-stats-method=name", - "default": "nulls_unequal", - "dynamic": true, - "name": "myisam_stats_method", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "nulls_equal", - "nulls_unequal", - "nulls_ignored" - ], - "ids": [ - "14#myisam_stats_method", - "15#sysvar_myisam_stats_method" - ] - }, - "myisam_use_mmap": { - "cli": "--myisam-use-mmap[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "myisam_use_mmap", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "14#myisam_use_mmap", - "15#sysvar_myisam_use_mmap" - ] - }, - "rocksdb_access_hint_on_compaction_start": { - "cli": "--rocksdb-access-hint-on-compaction-start=#", - "default": "1", - "dynamic": false, - "name": "rocksdb_access_hint_on_compaction_start", - "range": { - "from": 0, - "to": 3 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "18#rocksdb_access_hint_on_compaction_start" - ] - }, - "rocksdb_advise_random_on_open": { - "cli": "--rocksdb-advise-random-on-open={0|1}", - "default": "ON", - "dynamic": false, - "name": "rocksdb_advise_random_on_open", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_advise_random_on_open" - ] - }, - "rocksdb_allow_concurrent_memtable_write": { - "cli": "--rocksdb-allow-concurrent-memtable-write={0|1}", - "default": "OFF", - "dynamic": false, - "name": "rocksdb_allow_concurrent_memtable_write", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_allow_concurrent_memtable_write" - ] - }, - "rocksdb_allow_mmap_reads": { - "cli": "--rocksdb-allow-mmap-reads={0|1}", - "default": "OFF", - "dynamic": false, - "name": "rocksdb_allow_mmap_reads", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_allow_mmap_reads" - ] - }, - "rocksdb_allow_mmap_writes": { - "cli": "--rocksdb-allow-mmap-writes={0|1}", - "default": "OFF", - "dynamic": false, - "name": "rocksdb_allow_mmap_writes", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_allow_mmap_writes" - ] - }, - "rocksdb_background_sync": { - "cli": "--rocksdb-background-sync={0|1}", - "default": "OFF", - "dynamic": false, - "name": "rocksdb_background_sync", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_background_sync" - ] - }, - "rocksdb_base_background_compactions": { - "cli": "--rocksdb-base-background-compactions=#", - "default": "1", - "dynamic": false, - "name": "rocksdb_base_background_compactions", - "range": { - "from": -1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_base_background_compactions" - ] - }, - "rocksdb_blind_delete_primary_key": { - "cli": "--rocksdb-blind-delete-primary-key={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_blind_delete_primary_key", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_blind_delete_primary_key" - ] - }, - "rocksdb_block_cache_size": { - "cli": "--rocksdb-block-cache-size=#", - "default": "536870912", - "dynamic": false, - "name": "rocksdb_block_cache_size", - "range": { - "from": 1024, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_block_cache_size" - ] - }, - "rocksdb_block_restart_interval": { - "cli": "--rocksdb-block-restart-interval=#", - "default": "16", - "dynamic": false, - "name": "rocksdb_block_restart_interval", - "range": { - "from": 1, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_block_restart_interval" - ] - }, - "rocksdb_block_size": { - "cli": "--rocksdb-block-size=#", - "default": "4096", - "dynamic": false, - "name": "rocksdb_block_size", - "range": { - "from": 1, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_block_size" - ] - }, - "rocksdb_block_size_deviation": { - "cli": "--rocksdb-block-size-deviation=#", - "default": "10", - "dynamic": false, - "name": "rocksdb_block_size_deviation", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "17#rocksdb_block_size_deviation" - ] - }, - "rocksdb_bulk_load": { - "cli": "--rocksdb-bulk-load={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_bulk_load", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_bulk_load" - ] - }, - "rocksdb_bulk_load_allow_unsorted": { - "cli": "--rocksdb-bulk-load_allow_unsorted={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_bulk_load_allow_unsorted", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_bulk_load_allow_unsorted" - ] - }, - "rocksdb_bulk_load_size": { - "cli": "--rocksdb-bulk-load-size=#", - "default": "1000", - "dynamic": true, - "name": "rocksdb_bulk_load_size", - "range": { - "from": 1, - "to": 1073741824 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_bulk_load_size" - ] - }, - "rocksdb_bytes_per_sync": { - "cli": "--rocksdb-bytes-per-sync=#", - "default": "0", - "dynamic": false, - "name": "rocksdb_bytes_per_sync", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_bytes_per_sync" - ] - }, - "rocksdb_cache_index_and_filter_blocks": { - "cli": "--rocksdb-cache-index-and-filter_blocks={0|1}", - "default": "ON", - "dynamic": false, - "name": "rocksdb_cache_index_and_filter_blocks", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_cache_index_and_filter_blocks" - ] - }, - "rocksdb_checksums_pct": { - "cli": "--rocksdb-checksums-pct=#", - "default": "100", - "dynamic": true, - "name": "rocksdb_checksums_pct", - "range": { - "from": 0, - "to": 100 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "17#rocksdb_checksums_pct" - ] - }, - "rocksdb_collect_sst_properties": { - "cli": "--rocksdb-collect-sst-properties={0|1}", - "default": "ON", - "dynamic": false, - "name": "rocksdb_collect_sst_properties", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_collect_sst_properties" - ] - }, - "rocksdb_commit_in_the_middle": { - "cli": "--rocksdb-commit-in-the-middle={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_commit_in_the_middle", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_commit_in_the_middle" - ] - }, - "rocksdb_compact_cf": { - "cli": "--rocksdb-compact-cf=value", - "default": "(Empty)", - "dynamic": true, - "name": "rocksdb_compact_cf", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "17#rocksdb_compact_cf" - ] - }, - "rocksdb_compaction_readahead_size": { - "cli": "--rocksdb-compaction-readahead-size=#", - "default": "0", - "dynamic": true, - "name": "rocksdb_compaction_readahead_size", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_compaction_readahead_size" - ] - }, - "rocksdb_compaction_sequential_deletes": { - "cli": "--rocksdb-compaction-sequential-deletes=#", - "default": "0", - "dynamic": true, - "name": "rocksdb_compaction_sequential_deletes", - "range": { - "from": 0, - "to": 2000000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_compaction_sequential_deletes" - ] - }, - "rocksdb_compaction_sequential_deletes_count_sd": { - "cli": "--rocksdb-compaction-sequential-deletes-count-sd={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_compaction_sequential_deletes_count_sd", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_compaction_sequential_deletes_count_sd" - ] - }, - "rocksdb_compaction_sequential_deletes_file_size": { - "cli": "--rocksdb-compaction-sequential-deletes-file-size=#", - "default": "0", - "dynamic": true, - "name": "rocksdb_compaction_sequential_deletes_file_size", - "range": { - "from": -1, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_compaction_sequential_deletes_file_size" - ] - }, - "rocksdb_compaction_sequential_deletes_window": { - "cli": "--rocksdb-compaction-sequential-deletes-window=#", - "default": "0", - "dynamic": true, - "name": "rocksdb_compaction_sequential_deletes_window", - "range": { - "from": 0, - "to": 2000000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_compaction_sequential_deletes_window" - ] - }, - "rocksdb_concurrent_prepare": { - "cli": "--rocksdb-coconcurrent-prepare={0|1}", - "default": "1", - "dynamic": false, - "name": "rocksdb_concurrent_prepare", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_concurrent_prepare" - ] - }, - "rocksdb_create_checkpoint": { - "cli": "--rocksdb-create-checkpoint=value", - "default": "(Empty)", - "dynamic": true, - "name": "rocksdb_create_checkpoint", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "17#rocksdb_create_checkpoint" - ] - }, - "rocksdb_create_if_missing": { - "cli": "--rocksdb-create-if-missing={0|1}", - "default": "ON", - "dynamic": false, - "name": "rocksdb_create_if_missing", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_create_if_missing" - ] - }, - "rocksdb_create_missing_column_families": { - "cli": "--rocksdb-create-missing-column-families={0|1}", - "default": "OFF", - "dynamic": false, - "name": "rocksdb_create_missing_column_families", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_create_missing_column_families" - ] - }, - "rocksdb_datadir": { - "cli": "--rocksdb-datadir[=value]", - "default": "./.rocksdb", - "dynamic": false, - "name": "rocksdb_datadir", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "17#rocksdb_datadir" - ] - }, - "rocksdb_db_write_buffer_size": { - "cli": "--rocksdb-db-write-buffer-size=#", - "default": "0", - "dynamic": false, - "name": "rocksdb_db_write_buffer_size", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_db_write_buffer_size" - ] - }, - "rocksdb_deadlock_detect": { - "cli": "--rocksdb-deadlock-detect={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_deadlock_detect", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_deadlock_detect" - ] - }, - "rocksdb_deadlock_detect_depth": { - "cli": "--rocksdb-deadlock-detect-depth=#", - "default": "50", - "dynamic": true, - "name": "rocksdb_deadlock_detect_depth", - "range": { - "from": 2, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "17#rocksdb_deadlock_detect_depth" - ] - }, - "rocksdb_debug_optimizer_no_zero_cardinality": { - "cli": "--rocksdb-debug-optimizer-no-zero-cardinality={0|1}", - "default": "ON", - "dynamic": true, - "name": "rocksdb_debug_optimizer_no_zero_cardinality", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_debug_optimizer_no_zero_cardinality" - ] - }, - "rocksdb_debug_ttl_ignore_pk": { - "cli": "--rocksdb-debug-ttl-ignore-pk={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_debug_ttl_ignore_pk", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_debug_ttl_ignore_pk" - ] - }, - "rocksdb_debug_ttl_read_filter_ts": { - "cli": "--rocksdb-debug-ttl-read-filter-ts=#", - "default": "0", - "dynamic": true, - "name": "rocksdb_debug_ttl_read_filter_ts", - "range": { - "from": -3600, - "to": 3600 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "17#rocksdb_debug_ttl_read_filter_ts" - ] - }, - "rocksdb_debug_ttl_rec_ts": { - "cli": "--rocksdb-debug-ttl-read-filter-ts=#", - "default": "0", - "dynamic": true, - "name": "rocksdb_debug_ttl_rec_ts", - "range": { - "from": -3600, - "to": 3600 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "17#rocksdb_debug_ttl_rec_ts" - ] - }, - "rocksdb_debug_ttl_snapshot_ts": { - "cli": "--rocksdb-debug-ttl-snapshot-ts=#", - "default": "0", - "dynamic": true, - "name": "rocksdb_debug_ttl_snapshot_ts", - "range": { - "from": -3600, - "to": 3600 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "17#rocksdb_debug_ttl_snapshot_ts" - ] - }, - "rocksdb_default_cf_options": { - "cli": "--rocksdb-default-cf-options=value", - "default": "(Empty)", - "dynamic": false, - "name": "rocksdb_default_cf_options", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "17#rocksdb_default_cf_options" - ] - }, - "rocksdb_delayed_write_rate": { - "cli": "--rocksdb-delayed-write-rate=#", - "default": "16777216", - "dynamic": true, - "name": "rocksdb_delayed_write_rate", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_delayed_write_rate" - ] - }, - "rocksdb_delete_obsolete_files_period_micros": { - "cli": "--rocksdb-delete-obsolete-files-period-micros=#", - "default": "21600000000", - "dynamic": false, - "name": "rocksdb_delete_obsolete_files_period_micros", - "range": { - "from": 0, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_delete_obsolete_files_period_micros" - ] - }, - "rocksdb_enable_2pc": { - "cli": "--rocksdb-enable-2pc={0|1}", - "default": "ON", - "dynamic": true, - "name": "rocksdb_enable_2pc", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_enable_2pc" - ] - }, - "rocksdb_enable_bulk_load_api": { - "cli": "--rocksdb-enable-bulk-load-api={0|1}", - "default": "ON", - "dynamic": false, - "name": "rocksdb_enable_bulk_load_api", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_enable_bulk_load_api" - ] - }, - "rocksdb_enable_thread_tracking": { - "cli": "--rocksdb-enable-thread-tracking={0|1}", - "default": "OFF", - "dynamic": false, - "name": "rocksdb_enable_thread_tracking", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_enable_thread_tracking" - ] - }, - "rocksdb_enable_ttl": { - "cli": "--rocksdb-enable-ttl={0|1}", - "default": "ON", - "dynamic": true, - "name": "rocksdb_enable_ttl", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_enable_ttl" - ] - }, - "rocksdb_enable_ttl_read_filtering": { - "cli": "--rocksdb-enable-ttl-read-filtering={0|1}", - "default": "ON", - "dynamic": true, - "name": "rocksdb_enable_ttl_read_filtering", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_enable_ttl_read_filtering" - ] - }, - "rocksdb_enable_write_thread_adaptive_yield": { - "cli": "--rocksdb-enable-write-thread-adaptive-yield={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_enable_write_thread_adaptive_yield", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_enable_write_thread_adaptive_yield" - ] - }, - "rocksdb_error_if_exists": { - "cli": "--rocksdb-error-if-exists={0|1}", - "default": "OFF", - "dynamic": false, - "name": "rocksdb_error_if_exists", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_error_if_exists" - ] - }, - "rocksdb_flush_log_at_trx_commit": { - "cli": "--rocksdb-flush-log-at-trx-commit=#", - "default": "1", - "dynamic": true, - "name": "rocksdb_flush_log_at_trx_commit", - "range": { - "from": 0, - "to": 2 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "17#rocksdb_flush_log_at_trx_commit" - ] - }, - "rocksdb_flush_memtable_on_analyze": { - "cli": "--rocksdb-flush-memtable-on-analyze={0|1}", - "default": "ON", - "dynamic": true, - "name": "rocksdb_flush_memtable_on_analyze", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_flush_memtable_on_analyze" - ] - }, - "rocksdb_force_compute_memtable_stats": { - "cli": "--rocksdb-force-compute-memtable-stats={0|1}", - "default": "ON", - "dynamic": true, - "name": "rocksdb_force_compute_memtable_stats", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_force_compute_memtable_stats" - ] - }, - "rocksdb_force_compute_memtable_stats_cachetime": { - "cli": "--rocksdb-force-compute-memtable-stats-cachetime=#", - "default": "60000000", - "dynamic": true, - "name": "rocksdb_force_compute_memtable_stats_cachetime", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_force_compute_memtable_stats_cachetime" - ] - }, - "rocksdb_force_flush_memtable_and_lzero_now": { - "cli": "--rocksdb-force-flush-memtable-and-lzero-now={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_force_flush_memtable_and_lzero_now", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_force_flush_memtable_and_lzero_now" - ] - }, - "rocksdb_force_flush_memtable_now": { - "cli": "--rocksdb-force-flush-memtable-now={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_force_flush_memtable_now", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_force_flush_memtable_now" - ] - }, - "rocksdb_force_index_records_in_range": { - "cli": "--rocksdb-force-index-records-in-range=#", - "default": "1", - "dynamic": true, - "name": "rocksdb_force_index_records_in_range", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "17#rocksdb_force_index_records_in_range" - ] - }, - "rocksdb_git_hash": { - "cli": "--rocksdb-git-hash=value=#", - "default": "As per git revision.", - "dynamic": false, - "name": "rocksdb_git_hash", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "17#rocksdb_git_hash" - ] - }, - "rocksdb_hash_index_allow_collision": { - "cli": "--rocksdb-hash-index-allow-collision={0|1}", - "default": "ON", - "dynamic": false, - "name": "rocksdb_hash_index_allow_collision", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_hash_index_allow_collision" - ] - }, - "rocksdb_index_type": { - "cli": "--rocksdb-index-type=value", - "default": "kBinarySearch", - "dynamic": false, - "name": "rocksdb_index_type", - "scope": [ - "global" - ], - "validValues": [ - "kBinarySearch", - "kHashSearch" - ], - "ids": [ - "17#rocksdb_index_type" - ] - }, - "rocksdb_info_log_level": { - "cli": "--rocksdb-info-log-level=value", - "default": "error_level", - "dynamic": true, - "name": "rocksdb_info_log_level", - "scope": [ - "global" - ], - "validValues": [ - "error_level", - "debug_level", - "info_level", - "warn_level", - "fatal_level" - ], - "ids": [ - "17#rocksdb_info_log_level" - ] - }, - "rocksdb_io_write_timeout": { - "cli": "--rocksdb-io-write-timeout=#", - "default": "0", - "dynamic": true, - "name": "rocksdb_io_write_timeout", - "scope": [ - "global" - ], - "type": "integer", - "validValues": [ - "0", - "4294967295" - ], - "ids": [ - "17#rocksdb_io_write_timeout" - ] - }, - "rocksdb_is_fd_close_on_exec": { - "cli": "--rocksdb-is-fd-close-on-exec={0|1}", - "default": "ON", - "dynamic": false, - "name": "rocksdb_is_fd_close_on_exec", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_is_fd_close_on_exec" - ] - }, - "rocksdb_keep_log_file_num": { - "cli": "--rocksdb-keep-log-file-num=#", - "default": "1000", - "dynamic": false, - "name": "rocksdb_keep_log_file_num", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_keep_log_file_num" - ] - }, - "rocksdb_large_prefix": { - "cli": "--rocksdb-large_prefix={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_large_prefix", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_large_prefix" - ] - }, - "rocksdb_lock_scanned_rows": { - "cli": "--rocksdb-lock-scanned-rows={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_lock_scanned_rows", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_lock_scanned_rows" - ] - }, - "rocksdb_lock_wait_timeout": { - "cli": "--rocksdb-lock-wait-timeout=#", - "default": "1", - "dynamic": true, - "name": "rocksdb_lock_wait_timeout", - "range": { - "from": 1, - "to": 1073741824 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "17#rocksdb_lock_wait_timeout" - ] - }, - "rocksdb_log_file_time_to_roll": { - "cli": "--rocksdb-log-file-time-to_roll=#", - "default": "0", - "dynamic": false, - "name": "rocksdb_log_file_time_to_roll", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_log_file_time_to_roll" - ] - }, - "rocksdb_manifest_preallocation_size": { - "cli": "--rocksdb-manifest-preallocation-size=#", - "default": "0", - "dynamic": false, - "name": "rocksdb_manifest_preallocation_size", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_manifest_preallocation_size" - ] - }, - "rocksdb_manual_wal_flush": { - "cli": "--rocksdb-manual-wal-flush={0|1}", - "default": "ON", - "dynamic": false, - "name": "rocksdb_manual_wal_flush", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_manual_wal_flush" - ] - }, - "rocksdb_master_skip_tx_api": { - "cli": "--rocksdb-master-skip-tx-api={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_master_skip_tx_api", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_master_skip_tx_api" - ] - }, - "rocksdb_max_background_compactions": { - "cli": "--rocksdb-max-background-compactions=#", - "default": "1", - "dynamic": true, - "name": "rocksdb_max_background_compactions", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_max_background_compactions" - ] - }, - "rocksdb_max_background_flushes": { - "cli": "--rocksdb-max-background-flushes=#", - "default": "1", - "dynamic": false, - "name": "rocksdb_max_background_flushes", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_max_background_flushes" - ] - }, - "rocksdb_max_background_jobs": { - "cli": "--rocksdb-max-background-jobs=#", - "default": "2", - "dynamic": true, - "name": "rocksdb_max_background_jobs", - "range": { - "from": -1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_max_background_jobs" - ] - }, - "rocksdb_max_latest_deadlocks": { - "cli": "--rocksdb-max-latest-deadlocks=#", - "default": "5", - "dynamic": true, - "name": "rocksdb_max_latest_deadlocks", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_max_latest_deadlocks" - ] - }, - "rocksdb_max_log_file_size": { - "cli": "--rocksdb-max-log-file-size=#", - "default": "0", - "dynamic": false, - "name": "rocksdb_max_log_file_size", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_max_log_file_size" - ] - }, - "rocksdb_max_manifest_file_size": { - "cli": "--rocksdb-manifest-log-file-size=#", - "default": "18446744073709551615", - "dynamic": false, - "name": "rocksdb_max_manifest_file_size", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_max_manifest_file_size" - ] - }, - "rocksdb_max_open_files": { - "cli": "--rocksdb-max-open-files=#", - "default": "-1", - "dynamic": false, - "name": "rocksdb_max_open_files", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_max_open_files" - ] - }, - "rocksdb_max_row_locks": { - "cli": "--rocksdb-max-row-locks=#", - "default": "1048576", - "dynamic": true, - "name": "rocksdb_max_row_locks", - "range": { - "from": 1, - "to": 1073741824 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "17#rocksdb_max_row_locks" - ] - }, - "rocksdb_max_subcompactions": { - "cli": "--rocksdb-max-subcompactions=#", - "default": "1", - "dynamic": false, - "name": "rocksdb_max_subcompactions", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_max_subcompactions" - ] - }, - "rocksdb_max_total_wal_size": { - "cli": "--rocksdb-max-total-wal-size=#", - "default": "0", - "dynamic": false, - "name": "rocksdb_max_total_wal_size", - "range": { - "from": 0, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_max_total_wal_size" - ] - }, - "rocksdb_merge_buf_size": { - "cli": "--rocksdb-merge-buf-size=#", - "default": "67108864", - "dynamic": true, - "name": "rocksdb_merge_buf_size", - "range": { - "from": 100, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "17#rocksdb_merge_buf_size" - ] - }, - "rocksdb_merge_combine_read_size": { - "cli": "--rocksdb-merge-combine-read-size=#", - "default": "1073741824", - "dynamic": true, - "name": "rocksdb_merge_combine_read_size", - "range": { - "from": 100, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "17#rocksdb_merge_combine_read_size" - ] - }, - "rocksdb_merge_tmp_file_removal_delay_ms": { - "cli": "--rocksdb-merge-tmp-file-removal-delay-ms=#", - "default": "0", - "dynamic": true, - "name": "rocksdb_merge_tmp_file_removal_delay_ms", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "17#rocksdb_merge_tmp_file_removal_delay_ms" - ] - }, - "rocksdb_new_table_reader_for_compaction_inputs": { - "cli": "--rocksdb-new-table-reader-for-compaction-inputs={0|1}", - "default": "OFF", - "dynamic": false, - "name": "rocksdb_new_table_reader_for_compaction_inputs", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_new_table_reader_for_compaction_inputs" - ] - }, - "rocksdb_no_block_cache": { - "cli": "--rocksdb-no-block-cache={0|1}", - "default": "OFF", - "dynamic": false, - "name": "rocksdb_no_block_cache", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_no_block_cache" - ] - }, - "rocksdb_override_cf_options": { - "cli": "--rocksdb-override-cf-options=value", - "default": "(Empty)", - "dynamic": false, - "name": "rocksdb_override_cf_options", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "17#rocksdb_override_cf_options" - ] - }, - "rocksdb_paranoid_checks": { - "cli": "--rocksdb-paranoid-checks={0|1}", - "default": "ON", - "dynamic": false, - "name": "rocksdb_paranoid_checks", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_paranoid_checks" - ] - }, - "rocksdb_pause_background_work": { - "cli": "--rocksdb-pause-background-work={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_pause_background_work", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_pause_background_work" - ] - }, - "rocksdb_perf_context_level": { - "cli": "--rocksdb-perf-context-level=#", - "default": "0", - "dynamic": true, - "name": "rocksdb_perf_context_level", - "range": { - "from": 0, - "to": 4 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "17#rocksdb_perf_context_level" - ] - }, - "rocksdb_persistent_cache_path": { - "cli": "--rocksdb-persistent-cache-path=value", - "default": "(Empty)", - "dynamic": false, - "name": "rocksdb_persistent_cache_path", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "17#rocksdb_persistent_cache_path" - ] - }, - "rocksdb_persistent_cache_size_mb": { - "cli": "--rocksdb-persistent-cache-size-mb=#", - "default": "0", - "dynamic": false, - "name": "rocksdb_persistent_cache_size_mb", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "17#rocksdb_persistent_cache_size_mb" - ] - }, - "rocksdb_pin_l0_filter_and_index_blocks_in_cache": { - "cli": "--rocksdb-pin-l0-filter-and-index-blocks-in-cache={0|1}", - "default": "ON", - "dynamic": false, - "name": "rocksdb_pin_l0_filter_and_index_blocks_in_cache", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_pin_l0_filter_and_index_blocks_in_cache" - ] - }, - "rocksdb_print_snapshot_conflict_queries": { - "cli": "--rocksdb-print-snapshot-conflict-queries={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_print_snapshot_conflict_queries", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_print_snapshot_conflict_queries" - ] - }, - "rocksdb_rate_limiter_bytes_per_sec": { - "cli": "--rocksdb-rate-limiter-bytes-per-sec=#", - "default": "0", - "dynamic": true, - "name": "rocksdb_rate_limiter_bytes_per_sec", - "range": { - "from": 0, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_rate_limiter_bytes_per_sec" - ] - }, - "rocksdb_read_free_rpl_tables": { - "cli": "--rocksdb-read-free-rpl-tables=value", - "default": "(Empty)", - "dynamic": true, - "name": "rocksdb_read_free_rpl_tables", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "17#rocksdb_read_free_rpl_tables" - ] - }, - "rocksdb_records_in_range": { - "cli": "--rocksdb-records-in-range=#", - "default": "0", - "dynamic": true, - "name": "rocksdb_records_in_range", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "17#rocksdb_records_in_range" - ] - }, - "rocksdb_reset_stats": { - "cli": "--rocksdb-reset-stats={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_reset_stats", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_reset_stats" - ] - }, - "rocksdb_seconds_between_stat_computes": { - "cli": "--rocksdb-seconds-between-stat-computes=#", - "default": "3600", - "dynamic": true, - "name": "rocksdb_seconds_between_stat_computes", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_seconds_between_stat_computes" - ] - }, - "rocksdb_signal_drop_index_thread": { - "cli": "--rocksdb-signal-drop-index-thread={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_signal_drop_index_thread", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_signal_drop_index_thread" - ] - }, - "rocksdb_sim_cache_size": { - "cli": "--rocksdb-sim-cache-size=#", - "default": "0", - "dynamic": false, - "name": "rocksdb_sim_cache_size", - "range": { - "from": 0, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_sim_cache_size" - ] - }, - "rocksdb_skip_bloom_filter_on_read": { - "cli": "--rocksdb-skip-bloom-filter-on_read={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_skip_bloom_filter_on_read", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_skip_bloom_filter_on_read" - ] - }, - "rocksdb_skip_fill_cache": { - "cli": "--rocksdb-skip-fill-cache={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_skip_fill_cache", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_skip_fill_cache" - ] - }, - "rocksdb_skip_unique_check_tables": { - "cli": "--rocksdb-skip-unique-check-tables=value", - "default": ".*", - "dynamic": true, - "name": "rocksdb_skip_unique_check_tables", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "17#rocksdb_skip_unique_check_tables" - ] - }, - "rocksdb_sst_mgr_rate_bytes_per_sec": { - "cli": "--rocksdb-sst-mgr-rate-bytes-per-sec=#", - "default": "0", - "dynamic": true, - "name": "rocksdb_sst_mgr_rate_bytes_per_sec", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_sst_mgr_rate_bytes_per_sec" - ] - }, - "rocksdb_stats_dump_period_sec": { - "cli": "--rocksdb-stats-dump-period-sec=#", - "default": "600", - "dynamic": false, - "name": "rocksdb_stats_dump_period_sec", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_stats_dump_period_sec" - ] - }, - "rocksdb_store_row_debug_checksums": { - "cli": "--rocksdb-store-row-debug-checksums={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_store_row_debug_checksums", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_store_row_debug_checksums" - ] - }, - "rocksdb_strict_collation_check": { - "cli": "--rocksdb-strict-collation-check={0|1}", - "default": "ON", - "dynamic": true, - "name": "rocksdb_strict_collation_check", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_strict_collation_check" - ] - }, - "rocksdb_strict_collation_exceptions": { - "cli": "--rocksdb-strict-collation-exceptions=value", - "default": "(Empty)", - "dynamic": true, - "name": "rocksdb_strict_collation_exceptions", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "17#rocksdb_strict_collation_exceptions" - ] - }, - "rocksdb_supported_compression_types": { - "cli": "--rocksdb-supported-compression-types=value", - "default": "Snappy,Zlib", - "dynamic": false, - "name": "rocksdb_supported_compression_types", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "17#rocksdb_supported_compression_types" - ] - }, - "rocksdb_table_cache_numshardbits": { - "cli": "--rocksdb-table-cache-numshardbits=#", - "default": "6", - "dynamic": false, - "name": "rocksdb_table_cache_numshardbits", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_table_cache_numshardbits" - ] - }, - "rocksdb_table_stats_sampling_pct": { - "cli": "--rocksdb-table-stats-sampling-pct=#", - "default": "10", - "dynamic": true, - "name": "rocksdb_table_stats_sampling_pct", - "range": { - "from": 0, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_table_stats_sampling_pct" - ] - }, - "rocksdb_tmpdir": { - "cli": "--rocksdb-tmpdir[=value]", - "default": "(Empty)", - "dynamic": true, - "name": "rocksdb_tmpdir", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "17#rocksdb_tmpdir" - ] - }, - "rocksdb_trace_sst_api": { - "cli": "--rocksdb-trace-sst-api={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_trace_sst_api", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_trace_sst_api" - ] - }, - "rocksdb_unsafe_for_binlog": { - "cli": "--rocksdb-unsafe-for-binlog={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_unsafe_for_binlog", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_unsafe_for_binlog" - ] - }, - "rocksdb_update_cf_options": { - "cli": "--rocksdb-update-cf-options=value", - "default": "(Empty)", - "dynamic": true, - "name": "rocksdb_update_cf_options", - "scope": [ - "global" - ], - "ids": [ - "17#rocksdb_update_cf_options" - ] - }, - "rocksdb_use_adaptive_mutex": { - "cli": "--rocksdb-use-adaptive-mutex={0|1}", - "default": "OFF", - "dynamic": false, - "name": "rocksdb_use_adaptive_mutex", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_use_adaptive_mutex" - ] - }, - "rocksdb_use_clock_cache": { - "cli": "--rocksdb-use-clock-cache={0|1}", - "default": "OFF", - "dynamic": false, - "name": "rocksdb_use_clock_cache", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_use_clock_cache" - ] - }, - "rocksdb_use_direct_io_for_flush_and_compaction": { - "cli": "--rocksdb-use-direct-io-for-flush-and-compaction={0|1}", - "default": "OFF", - "dynamic": false, - "name": "rocksdb_use_direct_io_for_flush_and_compaction", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_use_direct_io_for_flush_and_compaction" - ] - }, - "rocksdb_use_direct_reads": { - "cli": "--rocksdb-use-direct-reads={0|1}", - "default": "OFF", - "dynamic": false, - "name": "rocksdb_use_direct_reads", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_use_direct_reads" - ] - }, - "rocksdb_use_direct_writes": { - "cli": "--rocksdb-use-direct-reads={0|1}", - "default": "OFF", - "dynamic": false, - "name": "rocksdb_use_direct_writes", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_use_direct_writes" - ] - }, - "rocksdb_use_fsync": { - "cli": "--rocksdb-use-fsync={0|1}", - "default": "OFF", - "dynamic": false, - "name": "rocksdb_use_fsync", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_use_fsync" - ] - }, - "rocksdb_validate_tables": { - "cli": "--rocksdb-validate-tables=#", - "default": "1", - "dynamic": false, - "name": "rocksdb_validate_tables", - "range": { - "from": 0, - "to": 2 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_validate_tables" - ] - }, - "rocksdb_verify_row_debug_checksums": { - "cli": "--rocksdb-verify-row-debug-checksums={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_verify_row_debug_checksums", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_verify_row_debug_checksums" - ] - }, - "rocksdb_wal_bytes_per_sync": { - "cli": "--rocksdb-wal-bytes-per-sync=#", - "default": "0", - "dynamic": false, - "name": "rocksdb_wal_bytes_per_sync", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_wal_bytes_per_sync" - ] - }, - "rocksdb_wal_dir": { - "cli": "--rocksdb-wal-dir=value", - "default": "(Empty)", - "dynamic": false, - "name": "rocksdb_wal_dir", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "17#rocksdb_wal_dir" - ] - }, - "rocksdb_wal_recovery_mode": { - "cli": "--rocksdb-wal-recovery-mode=#", - "default": "1", - "dynamic": true, - "name": "rocksdb_wal_recovery_mode", - "range": { - "from": 0, - "to": 3 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_wal_recovery_mode" - ] - }, - "rocksdb_wal_size_limit_mb": { - "cli": "--rocksdb-wal-size-limit-mb=#", - "default": "0", - "dynamic": false, - "name": "rocksdb_wal_size_limit_mb", - "range": { - "from": 0, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_wal_size_limit_mb" - ] - }, - "rocksdb_wal_ttl_seconds": { - "cli": "--rocksdb-wal-ttl-seconds=#", - "default": "0", - "dynamic": false, - "name": "rocksdb_wal_ttl_seconds", - "range": { - "from": 0, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "17#rocksdb_wal_ttl_seconds" - ] - }, - "rocksdb_whole_key_filtering": { - "cli": "--rocksdb-whole-key-filtering={0|1}", - "default": "ON", - "dynamic": false, - "name": "rocksdb_whole_key_filtering", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_whole_key_filtering" - ] - }, - "rocksdb_write_batch_max_bytes": { - "cli": "--rocksdb-write-batch-max-bytes=#", - "default": "0", - "dynamic": true, - "name": "rocksdb_write_batch_max_bytes", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "17#rocksdb_write_batch_max_bytes" - ] - }, - "rocksdb_write_disable_wal": { - "cli": "--rocksdb-write-disable-wal={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_write_disable_wal", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_write_disable_wal" - ] - }, - "rocksdb_write_ignore_missing_column_families": { - "cli": "--rocksdb-write-ignore-missing-column-familiesl={0|1}", - "default": "OFF", - "dynamic": true, - "name": "rocksdb_write_ignore_missing_column_families", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "17#rocksdb_write_ignore_missing_column_families" - ] - }, - "oqgraph_allow_create_integer_latch": { - "default": "0", - "dynamic": true, - "name": "oqgraph_allow_create_integer_latch", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "19#oqgraph_allow_create_integer_latch" - ] - }, - "Oqgraph_boost_version": { - "name": "Oqgraph_boost_version", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "18#oqgraph_boost_version" - ] - }, - "Oqgraph_compat_mode": { - "name": "Oqgraph_compat_mode", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "18#oqgraph_compat_mode" - ] - }, - "Oqgraph_verbose_debug": { - "name": "Oqgraph_verbose_debug", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "18#oqgraph_verbose_debug" - ] - }, - "performance_schema": { - "dynamic": false, - "name": "performance_schema", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "20#performance_schema", - "21#sysvar_performance_schema" - ] - }, - "performance_schema_accounts_size": { - "cli": "--performance-schema-accounts-size=#", - "dynamic": false, - "name": "performance_schema_accounts_size", - "range": { - "from": -1, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "19#performance_schema_accounts_size", - "20#sysvar_performance_schema_accounts_size" - ] - }, - "performance_schema_digests_size": { - "cli": "--performance-schema-digests-size=#", - "dynamic": false, - "name": "performance_schema_digests_size", - "range": { - "from": -1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "19#performance_schema_digests_size", - "20#sysvar_performance_schema_digests_size" - ] - }, - "performance_schema_events_stages_history_long_size": { - "cli": "--performance-schema-events-stages-history-long-size=#", - "dynamic": false, - "name": "performance_schema_events_stages_history_long_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "19#performance_schema_events_stages_history_long_size", - "20#sysvar_performance_schema_events_stages_history_long_size" - ] - }, - "performance_schema_events_stages_history_size": { - "cli": "--performance-schema-events-stages-history-size=#", - "dynamic": false, - "name": "performance_schema_events_stages_history_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "19#performance_schema_events_stages_history_size", - "20#sysvar_performance_schema_events_stages_history_size" - ] - }, - "performance_schema_events_statements_history_long_size": { - "cli": "--performance-schema-events-statements-history-long-size=#", - "dynamic": false, - "name": "performance_schema_events_statements_history_long_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "19#performance_schema_events_statements_history_long_size", - "20#sysvar_performance_schema_events_statements_history_long_size" - ] - }, - "performance_schema_events_statements_history_size": { - "cli": "--performance-schema-events-statements-history-size=#", - "dynamic": false, - "name": "performance_schema_events_statements_history_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "19#performance_schema_events_statements_history_size", - "20#sysvar_performance_schema_events_statements_history_size" - ] - }, - "performance_schema_events_waits_history_long_size": { - "cli": "--performance-schema-events-waits-history-long-size=#", - "dynamic": false, - "name": "performance_schema_events_waits_history_long_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "19#performance_schema_events_waits_history_long_size", - "20#sysvar_performance_schema_events_waits_history_long_size" - ] - }, - "performance_schema_events_waits_history_size": { - "cli": "--performance-schema-events-waits-history-size=#", - "dynamic": false, - "name": "performance_schema_events_waits_history_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "19#performance_schema_events_waits_history_size", - "20#sysvar_performance_schema_events_waits_history_size" - ] - }, - "performance_schema_hosts_size": { - "cli": "--performance-schema-hosts-size=#", - "dynamic": false, - "name": "performance_schema_hosts_size", - "range": { - "from": -1, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "19#performance_schema_hosts_size", - "20#sysvar_performance_schema_hosts_size" - ] - }, - "performance_schema_max_cond_classes": { - "cli": "--performance-schema-max-cond-classes=#", - "default": "80", - "dynamic": false, - "name": "performance_schema_max_cond_classes", - "range": { - "from": 0, - "to": 256 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "19#performance_schema_max_cond_classes", - "20#sysvar_performance_schema_max_cond_classes" - ] - }, - "performance_schema_max_cond_instances": { - "cli": "--performance-schema-max-cond-instances=#", - "dynamic": false, - "name": "performance_schema_max_cond_instances", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "19#performance_schema_max_cond_instances", - "20#sysvar_performance_schema_max_cond_instances" - ] - }, - "performance_schema_max_digest_length": { - "cli": "--performance-schema-max-digest-length=#", - "default": "1024", - "dynamic": false, - "name": "performance_schema_max_digest_length", - "range": { - "from": 0, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "19#performance_schema_max_digest_length", - "20#sysvar_performance_schema_max_digest_length" - ] - }, - "performance_schema_max_file_classes": { - "cli": "--performance-schema-max-file-classes=#", - "dynamic": false, - "name": "performance_schema_max_file_classes", - "range": { - "from": 0, - "to": 256 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "19#performance_schema_max_file_classes", - "20#sysvar_performance_schema_max_file_classes" - ] - }, - "performance_schema_max_file_handles": { - "cli": "--performance-schema-max-file-handles=#", - "default": "32768", - "dynamic": false, - "name": "performance_schema_max_file_handles", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "19#performance_schema_max_file_handles", - "20#sysvar_performance_schema_max_file_handles" - ] - }, - "performance_schema_max_file_instances": { - "cli": "--performance-schema-max-file-instances=#", - "dynamic": false, - "name": "performance_schema_max_file_instances", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "19#performance_schema_max_file_instances", - "20#sysvar_performance_schema_max_file_instances" - ] - }, - "performance_schema_max_mutex_classes": { - "cli": "--performance-schema-max-mutex-classes=#", - "dynamic": false, - "name": "performance_schema_max_mutex_classes", - "range": { - "from": 0, - "to": 256 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "19#performance_schema_max_mutex_classes", - "20#sysvar_performance_schema_max_mutex_classes" - ] - }, - "performance_schema_max_mutex_instances": { - "cli": "--performance-schema-max-mutex-instances=#", - "dynamic": false, - "name": "performance_schema_max_mutex_instances", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "19#performance_schema_max_mutex_instances", - "20#sysvar_performance_schema_max_mutex_instances" - ] - }, - "performance_schema_max_rwlock_classes": { - "cli": "--performance-schema-max-rwlock-classes=#", - "default": "40", - "dynamic": false, - "name": "performance_schema_max_rwlock_classes", - "range": { - "from": 0, - "to": 256 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "19#performance_schema_max_rwlock_classes", - "20#sysvar_performance_schema_max_rwlock_classes" - ] - }, - "performance_schema_max_rwlock_instances": { - "cli": "--performance-schema-max-rwlock-instances=#", - "dynamic": false, - "name": "performance_schema_max_rwlock_instances", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "19#performance_schema_max_rwlock_instances", - "20#sysvar_performance_schema_max_rwlock_instances" - ] - }, - "performance_schema_max_socket_classes": { - "cli": "--performance-schema-max-socket-classes=#", - "default": "10", - "dynamic": false, - "name": "performance_schema_max_socket_classes", - "range": { - "from": 0, - "to": 256 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "19#performance_schema_max_socket_classes", - "20#sysvar_performance_schema_max_socket_classes" - ] - }, - "performance_schema_max_socket_instances": { - "cli": "--performance-schema-max-socket-instances=#", - "dynamic": false, - "name": "performance_schema_max_socket_instances", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "19#performance_schema_max_socket_instances", - "20#sysvar_performance_schema_max_socket_instances" - ] - }, - "performance_schema_max_stage_classes": { - "cli": "--performance-schema-max-stage-classes=#", - "dynamic": false, - "name": "performance_schema_max_stage_classes", - "range": { - "from": 0, - "to": 256 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "19#performance_schema_max_stage_classes", - "20#sysvar_performance_schema_max_stage_classes" - ] - }, - "performance_schema_max_statement_classes": { - "cli": "--performance-schema-max-statement-classes=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": false, - "name": "performance_schema_max_statement_classes", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "19#performance_schema_max_statement_classes", - "20#sysvar_performance_schema_max_statement_classes" - ] - }, - "performance_schema_max_table_handles": { - "cli": "--performance-schema-max-table-handles=#", - "dynamic": false, - "name": "performance_schema_max_table_handles", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "19#performance_schema_max_table_handles", - "20#sysvar_performance_schema_max_table_handles" - ] - }, - "performance_schema_max_table_instances": { - "cli": "--performance-schema-max-table-instances=#", - "dynamic": false, - "name": "performance_schema_max_table_instances", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "19#performance_schema_max_table_instances", - "20#sysvar_performance_schema_max_table_instances" - ] - }, - "performance_schema_max_thread_classes": { - "cli": "--performance-schema-max-thread-classes=#", - "dynamic": false, - "name": "performance_schema_max_thread_classes", - "range": { - "from": 0, - "to": 256 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "19#performance_schema_max_thread_classes", - "20#sysvar_performance_schema_max_thread_classes" - ] - }, - "performance_schema_max_thread_instances": { - "cli": "--performance-schema-max-thread-instances=#", - "dynamic": false, - "name": "performance_schema_max_thread_instances", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "19#performance_schema_max_thread_instances", - "20#sysvar_performance_schema_max_thread_instances" - ] - }, - "performance_schema_session_connect_attrs_size": { - "cli": "--performance-schema-session-connect-attrs-size=#", - "dynamic": false, - "name": "performance_schema_session_connect_attrs_size", - "range": { - "from": -1, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "19#performance_schema_session_connect_attrs_size", - "20#sysvar_performance_schema_session_connect_attrs_size" - ] - }, - "performance_schema_setup_actors_size": { - "cli": "--performance-schema-setup-actors-size=#", - "dynamic": false, - "name": "performance_schema_setup_actors_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "19#performance_schema_setup_actors_size", - "20#sysvar_performance_schema_setup_actors_size" - ] - }, - "performance_schema_setup_objects_size": { - "cli": "--performance-schema-setup-objects-size=#", - "dynamic": false, - "name": "performance_schema_setup_objects_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "19#performance_schema_setup_objects_size", - "20#sysvar_performance_schema_setup_objects_size" - ] - }, - "performance_schema_users_size": { - "cli": "--performance-schema-users-size=#", - "dynamic": false, - "name": "performance_schema_users_size", - "range": { - "from": -1, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "19#performance_schema_users_size", - "20#sysvar_performance_schema_users_size" - ] - }, - "auto_increment_increment": { - "default": "1", - "dynamic": true, - "name": "auto_increment_increment", - "range": { - "from": 1, - "to": 65535 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "8#auto_increment_increment", - "22#sysvar_auto_increment_increment" - ] - }, - "auto_increment_offset": { - "default": "1", - "dynamic": true, - "name": "auto_increment_offset", - "range": { - "from": 1, - "to": 65535 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "8#auto_increment_offset", - "21#sysvar_auto_increment_offset" - ] - }, - "binlog_annotate_row_events": { - "cli": "--binlog-annotate-row-events[={0|1}]", - "default": "ON (>= MariaDB 10.2.4), OFF (<= MariaDB 10.2.3)", - "dynamic": true, - "name": "binlog_annotate_row_events", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "8#binlog_annotate_row_events" - ] - }, - "binlog_cache_size": { - "cli": "--binlog-cache-size=#", - "default": "32768", - "dynamic": true, - "name": "binlog_cache_size", - "range": { - "from": 4096 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "8#binlog_cache_size", - "23#sysvar_binlog_cache_size", - "24#sysvar_binlog_cache_size" - ] - }, - "binlog_checksum": { - "cli": "--binlog-checksum=name", - "default": "CRC32", - "dynamic": true, - "name": "binlog_checksum", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "NONE", - "0", - "CRC32", - "1" - ], - "ids": [ - "8#binlog_checksum", - "22#option_mysqld_binlog-checksum", - "22#sysvar_binlog_checksum", - "23#option_mysqld_binlog-checksum", - "23#sysvar_binlog_checksum" - ] - }, - "binlog_commit_wait_count": { - "cli": "--binlog-commit-wait-count=#]", - "default": "0", - "dynamic": true, - "name": "binlog_commit_wait_count", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "8#binlog_commit_wait_count" - ] - }, - "binlog_commit_wait_usec": { - "cli": "--binlog-commit-wait-usec#", - "default": "100000", - "dynamic": true, - "name": "binlog_commit_wait_usec", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "8#binlog_commit_wait_usec" - ] - }, - "binlog_direct_non_transactional_updates": { - "cli": "--binlog-direct-non-transactional-updates[={OFF|ON}]", - "default": "0", - "dynamic": true, - "name": "binlog_direct_non_transactional_updates", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "8#binlog_direct_non_transactional_updates", - "22#sysvar_binlog_direct_non_transactional_updates", - "23#sysvar_binlog_direct_non_transactional_updates" - ] - }, - "binlog_file_cache_size": { - "cli": "--binlog-file-cache-size=#", - "default": "16384", - "dynamic": true, - "name": "binlog_file_cache_size", - "range": { - "from": 8192, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "8#binlog_file_cache_size" - ] - }, - "binlog_format": { - "cli": "--binlog-format=format", - "dynamic": true, - "name": "binlog_format", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "ROW", - "STATEMENT", - "MIXED" - ], - "ids": [ - "8#binlog_format", - "22#sysvar_binlog_format", - "23#sysvar_binlog_format" - ] - }, - "binlog_optimize_thread_scheduling": { - "cli": "--binlog-optimize-thread-scheduling or --skip-binlog-optimize-thread-scheduling", - "default": "ON", - "dynamic": false, - "name": "binlog_optimize_thread_scheduling", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "8#binlog_optimize_thread_scheduling" - ] - }, - "binlog_row_image": { - "cli": "--binlog-row-image=image_type", - "default": "full", - "dynamic": true, - "name": "binlog_row_image", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "FULL", - "NOBLOB", - "MINIMAL" - ], - "ids": [ - "8#binlog_row_image", - "22#sysvar_binlog_row_image", - "23#sysvar_binlog_row_image" - ] - }, - "binlog_row_metadata": { - "default": "MINIMAL", - "dynamic": true, - "name": "binlog_row_metadata", - "type": "enumeration", - "validValues": [ - "NO_LOG", - "MINIMAL", - "FULL" - ], - "ids": [ - "8#binlog_row_metadata", - "22#sysvar_binlog_row_metadata" - ] - }, - "binlog_stmt_cache_size": { - "cli": "--binlog-stmt-cache-size=#", - "default": "32768", - "dynamic": true, - "name": "binlog_stmt_cache_size", - "range": { - "from": 4096 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "8#binlog_stmt_cache_size", - "22#sysvar_binlog_stmt_cache_size", - "23#sysvar_binlog_stmt_cache_size" - ] - }, - "default_master_connection": { - "default": "'' (empty string)", - "dynamic": true, - "name": "default_master_connection", - "scope": [ - "session" - ], - "type": "string", - "ids": [ - "8#default_master_connection" - ] - }, - "encrypt_binlog": { - "cli": "--encrypt-binlog[={0|1}]", - "default": "OFF", - "dynamic": false, - "name": "encrypt_binlog", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "8#encrypt_binlog" - ] - }, - "expire_logs_days": { - "cli": "--expire-logs-days=#", - "default": "0", - "dynamic": true, - "name": "expire_logs_days", - "range": { - "from": 0, - "to": 99 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "8#expire_logs_days", - "22#sysvar_expire_logs_days", - "23#sysvar_expire_logs_days" - ] - }, - "init_slave": { - "cli": "--init-slave=name", - "dynamic": true, - "name": "init_slave", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "8#init_slave", - "25#sysvar_init_slave" - ] - }, - "log_bin": { - "dynamic": false, - "name": "log_bin", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "8#log_bin", - "22#option_mysqld_log-bin", - "22#sysvar_log_bin", - "23#option_mysqld_log-bin", - "23#sysvar_log_bin" - ] - }, - "log_bin_basename": { - "dynamic": false, - "name": "log_bin_basename", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - "8#log_bin_basename", - "22#sysvar_log_bin_basename", - "23#sysvar_log_bin_basename" - ] - }, - "log_bin_compress": { - "cli": "--log-bin-compress", - "default": "OFF", - "dynamic": true, - "name": "log_bin_compress", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "8#log_bin_compress" - ] - }, - "log_bin_compress_min_len": { - "cli": "--log-bin-compress-min-len", - "default": "256", - "dynamic": true, - "name": "log_bin_compress_min_len", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "8#log_bin_compress_min_len" - ] - }, - "log_bin_index": { - "cli": "--log-bin-index=file_name", - "dynamic": false, - "name": "log_bin_index", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - "8#log_bin_index", - "22#option_mysqld_log-bin-index", - "22#sysvar_log_bin_index", - "23#option_mysqld_log-bin-index", - "23#sysvar_log_bin_index" - ] - }, - "log_bin_trust_function_creators": { - "cli": "--log-bin-trust-function-creators[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "log_bin_trust_function_creators", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "8#log_bin_trust_function_creators", - "22#sysvar_log_bin_trust_function_creators", - "23#sysvar_log_bin_trust_function_creators" - ] - }, - "log_slow_slave_statements": { - "cli": "--log-slow-slave-statements[={OFF|ON}]", - "dynamic": true, - "name": "log_slow_slave_statements", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "8#log_slow_slave_statements", - "24#sysvar_log_slow_slave_statements" - ] - }, - "log_slave_updates": { - "cli": "--log-slave-updates[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "name": "log_slave_updates", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "8#log_slave_updates", - "22#sysvar_log_slave_updates", - "23#sysvar_log_slave_updates" - ] - }, - "master_verify_checksum": { - "cli": "--master-verify-checksum[={OFF|ON}]", - "default": "0", - "dynamic": true, - "name": "master_verify_checksum", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "8#master_verify_checksum", - "22#sysvar_master_verify_checksum", - "23#sysvar_master_verify_checksum" - ] - }, - "max_binlog_cache_size": { - "cli": "--max-binlog-cache-size=#", - "default": "18446744073709551615", - "dynamic": true, - "name": "max_binlog_cache_size", - "range": { - "from": 4096, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "8#max_binlog_cache_size", - "22#sysvar_max_binlog_cache_size", - "23#sysvar_max_binlog_cache_size" - ] - }, - "max_binlog_size": { - "cli": "--max-binlog-size=#", - "default": "1073741824", - "dynamic": true, - "name": "max_binlog_size", - "range": { - "from": 4096, - "to": 1073741824 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "8#max_binlog_size", - "22#sysvar_max_binlog_size", - "23#sysvar_max_binlog_size" - ] - }, - "max_binlog_stmt_cache_size": { - "cli": "--max-binlog-stmt-cache-size=#", - "default": "18446744073709547520", - "dynamic": true, - "name": "max_binlog_stmt_cache_size", - "range": { - "from": 4096, - "to": 1.8446744073709548e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "8#max_binlog_stmt_cache_size", - "22#sysvar_max_binlog_stmt_cache_size", - "23#sysvar_max_binlog_stmt_cache_size" - ] - }, - "max_relay_log_size": { - "cli": "--max-relay-log-size=#", - "default": "0", - "dynamic": true, - "name": "max_relay_log_size", - "range": { - "from": 0, - "to": 1073741824 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "8#max_relay_log_size", - "24#option_mysqld_max-relay-log-size", - "24#sysvar_max_relay_log_size" - ] - }, - "read_binlog_speed_limit": { - "cli": "--read-binlog-speed-limit=#", - "default": "0 (no limit)", - "dynamic": true, - "name": "read_binlog_speed_limit", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "8#read_binlog_speed_limit" - ] - }, - "relay_log": { - "cli": "--relay-log=file_name", - "dynamic": false, - "name": "relay_log", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - "8#relay_log", - "24#sysvar_relay_log" - ] - }, - "relay_log_basename": { - "default": "datadir + '/' + hostname + '-relay-bin'", - "dynamic": false, - "name": "relay_log_basename", - "scope": [ - "global" - ], - "ids": [ - "8#relay_log_basename", - "24#sysvar_relay_log_basename" - ] - }, - "relay_log_index": { - "default": "*host_name*-relay-bin.index", - "dynamic": false, - "name": "relay_log_index", - "scope": [ - "global" - ], - "ids": [ - "8#relay_log_index", - "24#sysvar_relay_log_index" - ] - }, - "relay_log_info_file": { - "cli": "--relay-log-info-file=file_name", - "default": "relay-log.info", - "dynamic": false, - "name": "relay_log_info_file", - "scope": [ - "global" - ], - "ids": [ - "8#relay_log_info_file", - "24#sysvar_relay_log_info_file" - ] - }, - "relay_log_purge": { - "cli": "--relay-log-purge[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "name": "relay_log_purge", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "8#relay_log_purge", - "24#option_mysqld_relay-log-purge", - "24#sysvar_relay_log_purge" - ] - }, - "relay_log_recovery": { - "cli": "--relay-log-recovery[={OFF|ON}]", - "default": "OFF", - "name": "relay_log_recovery", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "8#relay_log_recovery", - "24#sysvar_relay_log_recovery" - ] - }, - "relay_log_space_limit": { - "cli": "--relay-log-space-limit=#", - "default": "0", - "dynamic": false, - "name": "relay_log_space_limit", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "8#relay_log_space_limit", - "24#option_mysqld_relay-log-space-limit", - "24#sysvar_relay_log_space_limit" - ] - }, - "replicate_annotate_row_events": { - "cli": "--replicate-annotate-row-events", - "default": "ON (>= MariaDB 10.2.4), OFF (<= MariaDB 10.2.3)", - "dynamic": false, - "name": "replicate_annotate_row_events", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "8#replicate_annotate_row_events" - ] - }, - "replicate_do_db": { - "cli": "--replicate-do-db=name", - "name": "replicate_do_db", - "type": "string", - "ids": [ - "8#replicate_do_db", - "24#option_mysqld_replicate-do-db" - ] - }, - "replicate_do_table": { - "cli": "--replicate-do-table=name", - "name": "replicate_do_table", - "type": "string", - "ids": [ - "8#replicate_do_table", - "24#option_mysqld_replicate-do-table" - ] - }, - "replicate_events_marked_for_skip": { - "cli": "--replicate-events-marked-for-skip", - "default": "replicate", - "dynamic": true, - "name": "replicate_events_marked_for_skip", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "REPLICATE", - "FILTER_ON_SLAVE", - "FILTER_ON_MASTER" - ], - "ids": [ - "8#replicate_events_marked_for_skip" - ] - }, - "replicate_ignore_db": { - "cli": "--replicate-ignore-db=name", - "name": "replicate_ignore_db", - "type": "string", - "ids": [ - "8#replicate_ignore_db", - "24#option_mysqld_replicate-ignore-db" - ] - }, - "replicate_ignore_table": { - "cli": "--replicate-ignore-table=name", - "name": "replicate_ignore_table", - "type": "string", - "ids": [ - "8#replicate_ignore_table", - "24#option_mysqld_replicate-ignore-table" - ] - }, - "replicate_rewrite_db": { - "cli": "--replicate-rewrite-db=old_name->new_name", - "name": "replicate_rewrite_db", - "type": "string", - "ids": [ - "8#replicate_rewrite_db", - "24#option_mysqld_replicate-rewrite-db" - ] - }, - "replicate_wild_do_table": { - "cli": "--replicate-wild-do-table=name", - "name": "replicate_wild_do_table", - "type": "string", - "ids": [ - "8#replicate_wild_do_table", - "24#option_mysqld_replicate-wild-do-table" - ] - }, - "replicate_wild_ignore_table": { - "cli": "--replicate-wild-ignore-table=name", - "name": "replicate_wild_ignore_table", - "type": "string", - "ids": [ - "8#replicate_wild_ignore_table", - "24#option_mysqld_replicate-wild-ignore-table" - ] - }, - "report_host": { - "cli": "--report-host=host_name", - "dynamic": false, - "name": "report_host", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "8#report_host", - "24#sysvar_report_host" - ] - }, - "report_password": { - "dynamic": false, - "name": "report_password", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "8#report_password", - "24#sysvar_report_password" - ] - }, - "report_port": { - "cli": "--report-port=port-num", - "default": "[slave_port]", - "dynamic": false, - "name": "report_port", - "range": { - "from": 0, - "to": 65535 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "8#report_port", - "24#sysvar_report_port" - ] - }, - "report_user": { - "cli": "--report-user=name", - "dynamic": false, - "name": "report_user", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "8#report_user", - "24#sysvar_report_user" - ] - }, - "skip_parallel_replication": { - "default": "OFF", - "dynamic": true, - "name": "skip_parallel_replication", - "scope": [ - "session" - ], - "type": "boolean", - "ids": [ - "8#skip_parallel_replication" - ] - }, - "skip_replication": { - "default": "OFF", - "dynamic": true, - "name": "skip_replication", - "scope": [ - "session" - ], - "type": "boolean", - "ids": [ - "8#skip_replication" - ] - }, - "slave_compressed_protocol": { - "cli": "--slave-compressed-protocol[={OFF|ON}]", - "default": "0", - "dynamic": true, - "name": "slave_compressed_protocol", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "8#slave_compressed_protocol", - "24#sysvar_slave_compressed_protocol" - ] - }, - "slave_ddl_exec_mode": { - "cli": "--slave-ddl-exec-mode=name", - "default": "IDEMPOTENT", - "dynamic": true, - "name": "slave_ddl_exec_mode", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "IDEMPOTENT", - "STRICT" - ], - "ids": [ - "8#slave_ddl_exec_mode" - ] - }, - "slave_domain_parallel_threads": { - "cli": "--slave-domain-parallel-threads=#", - "default": "0", - "dynamic": true, - "name": "slave_domain_parallel_threads", - "scope": [ - "global" - ], - "type": "integer", - "validValues": [ - "0", - "16383" - ], - "ids": [ - "8#slave_domain_parallel_threads" - ] - }, - "slave_exec_mode": { - "cli": "--slave-exec-mode=mode", - "default": "IDEMPOTENT (NDB)STRICT (Other)", - "dynamic": true, - "name": "slave_exec_mode", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "IDEMPOTENT", - "STRICT" - ], - "ids": [ - "8#slave_exec_mode", - "24#sysvar_slave_exec_mode" - ] - }, - "slave_load_tmpdir": { - "cli": "--slave-load-tmpdir=path", - "default": "Value of --tmpdir", - "dynamic": false, - "name": "slave_load_tmpdir", - "scope": [ - "global" - ], - "ids": [ - "8#slave_load_tmpdir", - "24#sysvar_slave_load_tmpdir" - ] - }, - "slave_max_allowed_packet": { - "cli": "--slave-max-allowed-packet=#", - "default": "1073741824", - "dynamic": true, - "name": "slave_max_allowed_packet", - "range": { - "from": 1024, - "to": 1073741824 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "8#slave_max_allowed_packet", - "24#sysvar_slave_max_allowed_packet" - ] - }, - "slave_net_timeout": { - "cli": "--slave-net-timeout=#", - "default": "60", - "dynamic": true, - "name": "slave_net_timeout", - "range": { - "from": 1, - "to": "upwards" - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "8#slave_net_timeout", - "24#sysvar_slave_net_timeout" - ] - }, - "slave_parallel_max_queued": { - "cli": "--slave-parallel-max-queued=#", - "default": "131072", - "dynamic": true, - "name": "slave_parallel_max_queued", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "8#slave_parallel_max_queued" - ] - }, - "slave_parallel_mode": { - "default": "conservative", - "dynamic": false, - "name": "slave_parallel_mode", - "scope": [ - "global" - ], - "validValues": [ - "conservative", - "optimistic", - "none", - "aggressive", - "minimal" - ], - "ids": [ - "8#slave_parallel_mode" - ] - }, - "slave_parallel_threads": { - "cli": "--slave-parallel-threads=#", - "default": "0", - "dynamic": true, - "name": "slave_parallel_threads", - "range": { - "from": 0, - "to": 16383 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "8#slave_parallel_threads" - ] - }, - "slave_parallel_workers": { - "cli": "--slave-parallel-workers=#", - "default": "0", - "dynamic": true, - "name": "slave_parallel_workers", - "range": { - "from": 0, - "to": 1024 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "8#slave_parallel_workers", - "24#sysvar_slave_parallel_workers" - ] - }, - "slave_run_triggers_for_rbr": { - "cli": "--slave-run-triggers-for-rbr=value", - "default": "NO", - "name": "slave_run_triggers_for_rbr", - "scope": [ - "global" - ], - "validValues": [ - "NO", - "YES", - "LOGGING" - ], - "ids": [ - "8#slave_run_triggers_for_rbr" - ] - }, - "slave_skip_errors": { - "cli": "--slave-skip-errors=name", - "default": "OFF", - "dynamic": false, - "name": "slave_skip_errors", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "[list of error codes]", - "ALL", - "OFF" - ], - "ids": [ - "8#slave_skip_errors", - "24#option_mysqld_slave-skip-errors", - "24#sysvar_slave_skip_errors" - ] - }, - "slave_sql_verify_checksum": { - "cli": "--slave-sql-verify-checksum[={OFF|ON}]", - "default": "1", - "dynamic": true, - "name": "slave_sql_verify_checksum", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "8#slave_sql_verify_checksum", - "24#option_mysqld_slave-sql-verify-checksum", - "24#sysvar_slave_sql_verify_checksum" - ] - }, - "slave_transaction_retries": { - "cli": "--slave-transaction-retries=#", - "default": "10", - "dynamic": true, - "name": "slave_transaction_retries", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "8#slave_transaction_retries", - "24#sysvar_slave_transaction_retries" - ] - }, - "slave_transaction_retry_errors": { - "cli": "--slave-transaction_retry-errors=[error_code1,error_code2,...]", - "default": "1158,1159,1160,1161,1205,1213,1429,2013,12701 (>= MariaDB 10.4.5), 1213,1205 (>= MariaDB 10.3.3)", - "dynamic": false, - "name": "slave_transaction_retry_errors", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "comma-separated list of error codes" - ], - "ids": [ - "8#slave_transaction_retry_errors" - ] - }, - "slave_transaction_retry_interval": { - "cli": "--slave-transaction-retry-interval=#", - "default": "0", - "dynamic": true, - "name": "slave_transaction_retry_interval", - "range": { - "from": 0, - "to": 3600 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "8#slave_transaction_retry_interval" - ] - }, - "slave_type_conversions": { - "cli": "--slave-type-conversions=set", - "default": "", - "name": "slave_type_conversions", - "scope": [ - "global" - ], - "type": "set", - "validValues": [ - "ALL_LOSSY", - "ALL_NON_LOSSY" - ], - "ids": [ - "8#slave_type_conversions", - "24#sysvar_slave_type_conversions" - ] - }, - "sql_log_bin": { - "default": "1", - "dynamic": true, - "name": "sql_log_bin", - "scope": [ - "session" - ], - "type": "boolean", - "ids": [ - "8#sql_log_bin", - "22#sysvar_sql_log_bin", - "23#sysvar_sql_log_bin" - ] - }, - "sql_slave_skip_counter": { - "dynamic": true, - "name": "sql_slave_skip_counter", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "8#sql_slave_skip_counter", - "24#sysvar_sql_slave_skip_counter" - ] - }, - "sync_binlog": { - "cli": "--sync-binlog=#", - "dynamic": true, - "name": "sync_binlog", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "8#sync_binlog", - "22#sysvar_sync_binlog", - "23#sysvar_sync_binlog" - ] - }, - "sync_master_info": { - "cli": "--sync-master-info=#", - "default": "10000", - "dynamic": true, - "name": "sync_master_info", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "8#sync_master_info", - "24#sysvar_sync_master_info" - ] - }, - "sync_relay_log": { - "cli": "--sync-relay-log=#", - "default": "10000", - "dynamic": true, - "name": "sync_relay_log", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "8#sync_relay_log", - "24#sysvar_sync_relay_log" - ] - }, - "sync_relay_log_info": { - "cli": "--sync-relay-log-info=#", - "default": "10000", - "dynamic": true, - "name": "sync_relay_log_info", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "8#sync_relay_log_info", - "24#sysvar_sync_relay_log_info" - ] - }, - "Binlog_bytes_written": { - "name": "Binlog_bytes_written", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "26#binlog_bytes_written" - ] - }, - "Binlog_cache_disk_use": { - "name": "Binlog_cache_disk_use", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "25#binlog_cache_disk_use" - ] - }, - "Binlog_cache_use": { - "name": "Binlog_cache_use", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "25#binlog_cache_use" - ] - }, - "Binlog_commits": { - "name": "Binlog_commits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "25#binlog_commits" - ] - }, - "Binlog_group_commit_trigger_count": { - "name": "Binlog_group_commit_trigger_count", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "25#binlog_group_commit_trigger_count" - ] - }, - "Binlog_group_commit_trigger_lock_wait": { - "name": "Binlog_group_commit_trigger_lock_wait", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "25#binlog_group_commit_trigger_lock_wait" - ] - }, - "Binlog_group_commit_trigger_timeout": { - "name": "Binlog_group_commit_trigger_timeout", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "25#binlog_group_commit_trigger_timeout" - ] - }, - "Binlog_group_commits": { - "name": "Binlog_group_commits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "25#binlog_group_commits" - ] - }, - "Binlog_snapshot_file": { - "name": "Binlog_snapshot_file", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "25#binlog_snapshot_file" - ] - }, - "Binlog_snapshot_position": { - "name": "Binlog_snapshot_position", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "25#binlog_snapshot_position" - ] - }, - "Binlog_stmt_cache_disk_use": { - "name": "Binlog_stmt_cache_disk_use", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "25#binlog_stmt_cache_disk_use" - ] - }, - "Binlog_stmt_cache_use": { - "name": "Binlog_stmt_cache_use", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "25#binlog_stmt_cache_use" - ] - }, - "Com_change_master": { - "name": "Com_change_master", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "25#com_change_master" - ] - }, - "Com_show_master_status": { - "name": "Com_show_master_status", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "25#com_show_master_status" - ] - }, - "Com_show_new_master": { - "name": "Com_show_new_master", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "25#com_show_new_master" - ] - }, - "Com_show_slave_hosts": { - "name": "Com_show_slave_hosts", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "25#com_show_slave_hosts" - ] - }, - "Com_show_slave_status": { - "name": "Com_show_slave_status", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "25#com_show_slave_status" - ] - }, - "Com_slave_start": { - "name": "Com_slave_start", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "25#com_slave_start" - ] - }, - "Com_slave_stop": { - "name": "Com_slave_stop", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "25#com_slave_stop" - ] - }, - "Com_start_all_slaves": { - "name": "Com_start_all_slaves", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "25#com_start_all_slaves" - ] - }, - "Com_start_slave": { - "name": "Com_start_slave", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "25#com_start_slave" - ] - }, - "Com_stop_all_slaves": { - "name": "Com_stop_all_slaves", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "25#com_stop_all_slaves" - ] - }, - "Com_stop_slave": { - "name": "Com_stop_slave", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "25#com_stop_slave" - ] - }, - "Master_gtid_wait_count": { - "name": "Master_gtid_wait_count", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "25#master_gtid_wait_count" - ] - }, - "Master_gtid_wait_time": { - "name": "Master_gtid_wait_time", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "25#master_gtid_wait_time" - ] - }, - "Master_gtid_wait_timeouts": { - "name": "Master_gtid_wait_timeouts", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "25#master_gtid_wait_timeouts" - ] - }, - "Rpl_status": { - "name": "Rpl_status", - "ids": [ - "25#rpl_status" - ] - }, - "Rpl_transactions_multi_engine": { - "name": "Rpl_transactions_multi_engine", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "25#rpl_transactions_multi_engine" - ] - }, - "Slave_connections": { - "name": "Slave_connections", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "25#slave_connections" - ] - }, - "Slave_heartbeat_period": { - "name": "Slave_heartbeat_period", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "25#slave_heartbeat_period" - ] - }, - "Slave_open_temp_tables": { - "name": "Slave_open_temp_tables", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "25#slave_open_temp_tables" - ] - }, - "Slave_received_heartbeats": { - "name": "Slave_received_heartbeats", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "25#slave_received_heartbeats" - ] - }, - "Slave_retried_transactions": { - "name": "Slave_retried_transactions", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "25#slave_retried_transactions" - ] - }, - "Slave_running": { - "name": "Slave_running", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "25#slave_running" - ] - }, - "Slave_skipped_errors": { - "name": "Slave_skipped_errors", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "25#slave_skipped_errors" - ] - }, - "Slaves_connected": { - "name": "Slaves_connected", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "25#slaves_connected" - ] - }, - "Slaves_running": { - "name": "Slaves_running", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "25#slaves_running" - ] - }, - "Transactions_gtid_foreign_engine": { - "name": "Transactions_gtid_foreign_engine", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "25#transactions_gtid_foreign_engine" - ] - }, - "Transactions_multi_engine": { - "name": "Transactions_multi_engine", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "25#transactions_multi_engine" - ] - }, - "Rpl_semi_sync_master_clients": { - "name": "Rpl_semi_sync_master_clients", - "type": "integer", - "ids": [ - "27#rpl_semi_sync_master_clients" - ] - }, - "Rpl_semi_sync_master_net_avg_wait_time": { - "name": "Rpl_semi_sync_master_net_avg_wait_time", - "type": "integer", - "ids": [ - "26#rpl_semi_sync_master_net_avg_wait_time" - ] - }, - "Rpl_semi_sync_master_net_wait_time": { - "name": "Rpl_semi_sync_master_net_wait_time", - "type": "integer", - "ids": [ - "26#rpl_semi_sync_master_net_wait_time" - ] - }, - "Rpl_semi_sync_master_net_waits": { - "name": "Rpl_semi_sync_master_net_waits", - "type": "integer", - "ids": [ - "26#rpl_semi_sync_master_net_waits" - ] - }, - "Rpl_semi_sync_master_no_times": { - "name": "Rpl_semi_sync_master_no_times", - "type": "integer", - "ids": [ - "26#rpl_semi_sync_master_no_times" - ] - }, - "Rpl_semi_sync_master_no_tx": { - "name": "Rpl_semi_sync_master_no_tx", - "type": "integer", - "ids": [ - "26#rpl_semi_sync_master_no_tx" - ] - }, - "Rpl_semi_sync_master_status": { - "name": "Rpl_semi_sync_master_status", - "type": "boolean", - "ids": [ - "26#rpl_semi_sync_master_status" - ] - }, - "Rpl_semi_sync_master_timefunc_failures": { - "name": "Rpl_semi_sync_master_timefunc_failures", - "type": "integer", - "ids": [ - "26#rpl_semi_sync_master_timefunc_failures" - ] - }, - "Rpl_semi_sync_master_tx_avg_wait_time": { - "name": "Rpl_semi_sync_master_tx_avg_wait_time", - "type": "integer", - "ids": [ - "26#rpl_semi_sync_master_tx_avg_wait_time" - ] - }, - "Rpl_semi_sync_master_tx_wait_time": { - "name": "Rpl_semi_sync_master_tx_wait_time", - "type": "integer", - "ids": [ - "26#rpl_semi_sync_master_tx_wait_time" - ] - }, - "Rpl_semi_sync_master_tx_waits": { - "name": "Rpl_semi_sync_master_tx_waits", - "type": "integer", - "ids": [ - "26#rpl_semi_sync_master_tx_waits" - ] - }, - "Rpl_semi_sync_master_wait_pos_backtraverse": { - "name": "Rpl_semi_sync_master_wait_pos_backtraverse", - "type": "integer", - "ids": [ - "26#rpl_semi_sync_master_wait_pos_backtraverse" - ] - }, - "Rpl_semi_sync_master_wait_sessions": { - "name": "Rpl_semi_sync_master_wait_sessions", - "type": "integer", - "ids": [ - "26#rpl_semi_sync_master_wait_sessions" - ] - }, - "Rpl_semi_sync_master_yes_tx": { - "name": "Rpl_semi_sync_master_yes_tx", - "type": "integer", - "ids": [ - "26#rpl_semi_sync_master_yes_tx" - ] - }, - "Rpl_semi_sync_slave_status": { - "name": "Rpl_semi_sync_slave_status", - "type": "boolean", - "ids": [ - "26#rpl_semi_sync_slave_status" - ] - }, - "rpl_semi_sync_master_enabled": { - "default": "OFF", - "dynamic": true, - "name": "rpl_semi_sync_master_enabled", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "28#rpl_semi_sync_master_enabled", - "21#sysvar_rpl_semi_sync_master_enabled" - ] - }, - "rpl_semi_sync_master_timeout": { - "default": "10000", - "dynamic": true, - "name": "rpl_semi_sync_master_timeout", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "27#rpl_semi_sync_master_timeout", - "21#sysvar_rpl_semi_sync_master_timeout" - ] - }, - "rpl_semi_sync_master_trace_level": { - "default": "32", - "dynamic": true, - "name": "rpl_semi_sync_master_trace_level", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "27#rpl_semi_sync_master_trace_level", - "21#sysvar_rpl_semi_sync_master_trace_level" - ] - }, - "rpl_semi_sync_master_wait_no_slave": { - "default": "ON", - "dynamic": true, - "name": "rpl_semi_sync_master_wait_no_slave", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "27#rpl_semi_sync_master_wait_no_slave", - "21#sysvar_rpl_semi_sync_master_wait_no_slave" - ] - }, - "rpl_semi_sync_master_wait_point": { - "cli": "--rpl-semi-sync-master-wait-point=value", - "default": "AFTER_SYNC", - "dynamic": true, - "name": "rpl_semi_sync_master_wait_point", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "AFTER_SYNC", - "AFTER_COMMIT" - ], - "ids": [ - "27#rpl_semi_sync_master_wait_point", - "21#sysvar_rpl_semi_sync_master_wait_point" - ] - }, - "rpl_semi_sync_slave_delay_master": { - "cli": "--rpl-semi-sync-slave-delay-master[={0|1}]", - "default": "OFF", - "dynamic": true, - "name": "rpl_semi_sync_slave_delay_master", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "27#rpl_semi_sync_slave_delay_master" - ] - }, - "rpl_semi_sync_slave_enabled": { - "default": "OFF", - "dynamic": true, - "name": "rpl_semi_sync_slave_enabled", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "27#rpl_semi_sync_slave_enabled", - "24#sysvar_rpl_semi_sync_slave_enabled" - ] - }, - "rpl_semi_sync_slave_kill_conn_timeout": { - "cli": "--rpl-semi-sync-slave-kill-conn-timeout[={0|1}]", - "default": "5", - "dynamic": true, - "name": "rpl_semi_sync_slave_kill_conn_timeout", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "27#rpl_semi_sync_slave_kill_conn_timeout" - ] - }, - "rpl_semi_sync_slave_trace_level": { - "default": "32", - "dynamic": true, - "name": "rpl_semi_sync_slave_trace_level", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "27#rpl_semi_sync_slave_trace_level", - "24#sysvar_rpl_semi_sync_slave_trace_level" - ] - }, - "rpl_semi_sync_master": { - "cli": "--rpl-semi-sync-master=value", - "default": "ON", - "name": "rpl_semi_sync_master", - "validValues": [ - "OFF", - "ON", - "FORCE", - "FORCE_PLUS_PERMANENT" - ], - "ids": [ - "27#rpl_semi_sync_master" - ] - }, - "rpl_semi_sync_slave": { - "cli": "--rpl-semi-sync-slave=value", - "default": "ON", - "name": "rpl_semi_sync_slave", - "validValues": [ - "OFF", - "ON", - "FORCE", - "FORCE_PLUS_PERMANENT" - ], - "ids": [ - "27#rpl_semi_sync_slave" - ] - }, - "Aborted_clients": { - "name": "Aborted_clients", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#aborted_clients" - ] - }, - "Aborted_connects": { - "name": "Aborted_connects", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#aborted_connects" - ] - }, - "Aborted_connects_preauth": { - "name": "Aborted_connects_preauth", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#aborted_connects_preauth" - ] - }, - "Access_denied_errors": { - "name": "Access_denied_errors", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#access_denied_errors" - ] - }, - "Acl_column_grants": { - "name": "Acl_column_grants", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#acl_column_grants" - ] - }, - "Acl_database_grants": { - "name": "Acl_database_grants", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#acl_database_grants" - ] - }, - "Acl_function_grants": { - "name": "Acl_function_grants", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#acl_function_grants" - ] - }, - "Acl_package_body_grants": { - "name": "Acl_package_body_grants", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#acl_package_body_grants" - ] - }, - "Acl_package_spec_grants": { - "name": "Acl_package_spec_grants", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#acl_package_spec_grants" - ] - }, - "Acl_procedure_grants": { - "name": "Acl_procedure_grants", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#acl_procedure_grants" - ] - }, - "Acl_proxy_users": { - "name": "Acl_proxy_users", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#acl_proxy_users" - ] - }, - "Acl_role_grants": { - "name": "Acl_role_grants", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#acl_role_grants" - ] - }, - "Acl_roles": { - "name": "Acl_roles", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#acl_roles" - ] - }, - "Acl_table_grants": { - "name": "Acl_table_grants", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#acl_table_grants" - ] - }, - "Acl_users": { - "name": "Acl_users", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#acl_users" - ] - }, - "Busy_time": { - "name": "Busy_time", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#busy_time" - ] - }, - "Bytes_received": { - "name": "Bytes_received", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#bytes_received" - ] - }, - "Bytes_sent": { - "name": "Bytes_sent", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#bytes_sent" - ] - }, - "Com_admin_commands": { - "name": "Com_admin_commands", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_admin_commands" - ] - }, - "Com_alter_db": { - "name": "Com_alter_db", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_alter_db" - ] - }, - "Com_alter_db_upgrade": { - "name": "Com_alter_db_upgrade", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_alter_db_upgrade" - ] - }, - "Com_alter_event": { - "name": "Com_alter_event", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_alter_event" - ] - }, - "Com_alter_function": { - "name": "Com_alter_function", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_alter_function" - ] - }, - "Com_alter_procedure": { - "name": "Com_alter_procedure", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_alter_procedure" - ] - }, - "Com_alter_sequence": { - "name": "Com_alter_sequence", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_alter_sequence" - ] - }, - "Com_alter_server": { - "name": "Com_alter_server", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_alter_server" - ] - }, - "Com_alter_table": { - "name": "Com_alter_table", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_alter_table" - ] - }, - "Com_alter_tablespace": { - "name": "Com_alter_tablespace", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_alter_tablespace" - ] - }, - "Com_alter_user": { - "name": "Com_alter_user", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_alter_user" - ] - }, - "Com_analyze": { - "name": "Com_analyze", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_analyze" - ] - }, - "Com_assign_to_keycache": { - "name": "Com_assign_to_keycache", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_assign_to_keycache" - ] - }, - "Com_backup": { - "name": "Com_backup", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_backup" - ] - }, - "Com_backup_lock": { - "name": "Com_backup_lock", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_backup_lock" - ] - }, - "Com_backup_table": { - "name": "Com_backup_table", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_backup_table" - ] - }, - "Com_begin": { - "name": "Com_begin", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_begin" - ] - }, - "Com_binlog": { - "name": "Com_binlog", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_binlog" - ] - }, - "Com_call_procedure": { - "name": "Com_call_procedure", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_call_procedure" - ] - }, - "Com_change_db": { - "name": "Com_change_db", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_change_db" - ] - }, - "Com_check": { - "name": "Com_check", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_check" - ] - }, - "Com_checksum": { - "name": "Com_checksum", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_checksum" - ] - }, - "Com_commit": { - "name": "Com_commit", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_commit" - ] - }, - "Com_compound_sql": { - "name": "Com_compound_sql", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_compound_sql" - ] - }, - "Com_create_db": { - "name": "Com_create_db", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_create_db" - ] - }, - "Com_create_event": { - "name": "Com_create_event", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_create_event" - ] - }, - "Com_create_function": { - "name": "Com_create_function", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_create_function" - ] - }, - "Com_create_index": { - "name": "Com_create_index", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_create_index" - ] - }, - "Com_create_package": { - "name": "Com_create_package", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_create_package" - ] - }, - "Com_create_package_body": { - "name": "Com_create_package_body", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_create_package_body" - ] - }, - "Com_create_procedure": { - "name": "Com_create_procedure", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_create_procedure" - ] - }, - "Com_create_role": { - "name": "Com_create_role", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_create_role" - ] - }, - "Com_create_sequence": { - "name": "Com_create_sequence", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_create_sequence" - ] - }, - "Com_create_server": { - "name": "Com_create_server", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_create_server" - ] - }, - "Com_create_table": { - "name": "Com_create_table", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_create_table" - ] - }, - "Com_create_temporary_table": { - "name": "Com_create_temporary_table", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_create_temporary_table" - ] - }, - "Com_create_trigger": { - "name": "Com_create_trigger", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_create_trigger" - ] - }, - "Com_create_udf": { - "name": "Com_create_udf", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_create_udf" - ] - }, - "Com_create_user": { - "name": "Com_create_user", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_create_user" - ] - }, - "Com_create_view": { - "name": "Com_create_view", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_create_view" - ] - }, - "Com_dealloc_sql": { - "name": "Com_dealloc_sql", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_dealloc_sql" - ] - }, - "Com_delete": { - "name": "Com_delete", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_delete" - ] - }, - "Com_delete_multi": { - "name": "Com_delete_multi", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_delete_multi" - ] - }, - "Com_do": { - "name": "Com_do", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_do" - ] - }, - "Com_drop_db": { - "name": "Com_drop_db", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_drop_db" - ] - }, - "Com_drop_event": { - "name": "Com_drop_event", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_drop_event" - ] - }, - "Com_drop_function": { - "name": "Com_drop_function", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_drop_function" - ] - }, - "Com_drop_index": { - "name": "Com_drop_index", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_drop_index" - ] - }, - "Com_drop_package": { - "name": "Com_drop_package", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_drop_package" - ] - }, - "Com_drop_package_body": { - "name": "Com_drop_package_body", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_drop_package_body" - ] - }, - "Com_drop_procedure": { - "name": "Com_drop_procedure", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_drop_procedure" - ] - }, - "Com_drop_role": { - "name": "Com_drop_role", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_drop_role" - ] - }, - "Com_drop_sequence": { - "name": "Com_drop_sequence", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_drop_sequence" - ] - }, - "Com_drop_server": { - "name": "Com_drop_server", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_drop_server" - ] - }, - "Com_drop_table": { - "name": "Com_drop_table", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_drop_table" - ] - }, - "Com_drop_temporary_table": { - "name": "Com_drop_temporary_table", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_drop_temporary_table" - ] - }, - "Com_drop_trigger": { - "name": "Com_drop_trigger", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_drop_trigger" - ] - }, - "Com_drop_user": { - "name": "Com_drop_user", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_drop_user" - ] - }, - "Com_drop_view": { - "name": "Com_drop_view", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_drop_view" - ] - }, - "Com_empty_query": { - "name": "Com_empty_query", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_empty_query" - ] - }, - "Com_execute_immediate": { - "name": "Com_execute_immediate", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_execute_immediate" - ] - }, - "Com_execute_sql": { - "name": "Com_execute_sql", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_execute_sql" - ] - }, - "Com_flush": { - "name": "Com_flush", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_flush" - ] - }, - "Com_get_diagnostics": { - "name": "Com_get_diagnostics", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_get_diagnostics" - ] - }, - "Com_grant": { - "name": "Com_grant", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_grant" - ] - }, - "Com_grant_role": { - "name": "Com_grant_role", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_grant_role" - ] - }, - "Com_ha_close": { - "name": "Com_ha_close", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_ha_close" - ] - }, - "Com_ha_open": { - "name": "Com_ha_open", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_ha_open" - ] - }, - "Com_ha_read": { - "name": "Com_ha_read", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_ha_read" - ] - }, - "Com_help": { - "name": "Com_help", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_help" - ] - }, - "Com_insert": { - "name": "Com_insert", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_insert" - ] - }, - "Com_insert_select": { - "name": "Com_insert_select", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_insert_select" - ] - }, - "Com_install_plugin": { - "name": "Com_install_plugin", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_install_plugin" - ] - }, - "Com_kill": { - "name": "Com_kill", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_kill" - ] - }, - "Com_load": { - "name": "Com_load", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_load" - ] - }, - "Com_load_master_data": { - "name": "Com_load_master_data", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_load_master_data" - ] - }, - "Com_load_master_table": { - "name": "Com_load_master_table", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_load_master_table" - ] - }, - "Com_multi": { - "name": "Com_multi", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_multi" - ] - }, - "Com_lock_tables": { - "name": "Com_lock_tables", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_lock_tables" - ] - }, - "Com_optimize": { - "name": "Com_optimize", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_optimize" - ] - }, - "Com_preload_keys": { - "name": "Com_preload_keys", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_preload_keys" - ] - }, - "Com_prepare_sql": { - "name": "Com_prepare_sql", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_prepare_sql" - ] - }, - "Com_purge": { - "name": "Com_purge", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_purge" - ] - }, - "Com_purge_before_date": { - "name": "Com_purge_before_date", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_purge_before_date" - ] - }, - "Com_release_savepoint": { - "name": "Com_release_savepoint", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_release_savepoint" - ] - }, - "Com_rename_table": { - "name": "Com_rename_table", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_rename_table" - ] - }, - "Com_rename_user": { - "name": "Com_rename_user", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_rename_user" - ] - }, - "Com_repair": { - "name": "Com_repair", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_repair" - ] - }, - "Com_replace": { - "name": "Com_replace", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_replace" - ] - }, - "Com_replace_select": { - "name": "Com_replace_select", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_replace_select" - ] - }, - "Com_reset": { - "name": "Com_reset", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_reset" - ] - }, - "Com_resignal": { - "name": "Com_resignal", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_resignal" - ] - }, - "Com_restore_table": { - "name": "Com_restore_table", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_restore_table" - ] - }, - "Com_revoke": { - "name": "Com_revoke", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_revoke" - ] - }, - "Com_revoke_all": { - "name": "Com_revoke_all", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_revoke_all" - ] - }, - "Com_revoke_grant": { - "name": "Com_revoke_grant", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_revoke_grant" - ] - }, - "Com_rollback": { - "name": "Com_rollback", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_rollback" - ] - }, - "Com_rollback_to_savepoint": { - "name": "Com_rollback_to_savepoint", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_rollback_to_savepoint" - ] - }, - "Com_savepoint": { - "name": "Com_savepoint", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_savepoint" - ] - }, - "Com_select": { - "name": "Com_select", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_select" - ] - }, - "Com_set_option": { - "name": "Com_set_option", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_set_option" - ] - }, - "Com_signal": { - "name": "Com_signal", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_signal" - ] - }, - "Com_show_authors": { - "name": "Com_show_authors", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_authors" - ] - }, - "Com_show_binlog_events": { - "name": "Com_show_binlog_events", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_binlog_events" - ] - }, - "Com_show_binlogs": { - "name": "Com_show_binlogs", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_binlogs" - ] - }, - "Com_show_charsets": { - "name": "Com_show_charsets", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_charsets" - ] - }, - "Com_show_client_statistics": { - "name": "Com_show_client_statistics", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_client_statistics" - ] - }, - "Com_show_collations": { - "name": "Com_show_collations", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_collations" - ] - }, - "Com_show_column_types": { - "name": "Com_show_column_types", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_column_types" - ] - }, - "Com_show_contributors": { - "name": "Com_show_contributors", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_contributors" - ] - }, - "Com_show_create_db": { - "name": "Com_show_create_db", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_create_db" - ] - }, - "Com_show_create_event": { - "name": "Com_show_create_event", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_create_event" - ] - }, - "Com_show_create_func": { - "name": "Com_show_create_func", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_create_func" - ] - }, - "Com_show_create_package": { - "name": "Com_show_create_package", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_create_package" - ] - }, - "Com_show_create_package_body": { - "name": "Com_show_create_package_body", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_create_package_body" - ] - }, - "Com_show_create_proc": { - "name": "Com_show_create_proc", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_create_proc" - ] - }, - "Com_show_create_table": { - "name": "Com_show_create_table", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_create_table" - ] - }, - "Com_show_create_trigger": { - "name": "Com_show_create_trigger", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_create_trigger" - ] - }, - "Com_show_create_user": { - "name": "Com_show_create_user", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_create_user" - ] - }, - "Com_show_databases": { - "name": "Com_show_databases", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_databases" - ] - }, - "Com_show_engine_logs": { - "name": "Com_show_engine_logs", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_engine_logs" - ] - }, - "Com_show_engine_mutex": { - "name": "Com_show_engine_mutex", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_engine_mutex" - ] - }, - "Com_show_engine_status": { - "name": "Com_show_engine_status", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_engine_status" - ] - }, - "Com_show_events": { - "name": "Com_show_events", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_events" - ] - }, - "Com_show_errors": { - "name": "Com_show_errors", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_errors" - ] - }, - "Com_show_explain": { - "name": "Com_show_explain", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_explain" - ] - }, - "Com_show_fields": { - "name": "Com_show_fields", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_fields" - ] - }, - "Com_show_function_status": { - "name": "Com_show_function_status", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_function_status" - ] - }, - "Com_show_generic": { - "name": "Com_show_generic", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_generic" - ] - }, - "Com_show_grants": { - "name": "Com_show_grants", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_grants" - ] - }, - "Com_show_keys": { - "name": "Com_show_keys", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_keys" - ] - }, - "Com_show_index_statistics": { - "name": "Com_show_index_statistics", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_index_statistics" - ] - }, - "Com_show_open_tables": { - "name": "Com_show_open_tables", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_open_tables" - ] - }, - "Com_show_package_status": { - "name": "Com_show_package_status", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_package_status" - ] - }, - "Com_show_package_body_status": { - "name": "Com_show_package_body_status", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_package_body_status" - ] - }, - "Com_show_plugins": { - "name": "Com_show_plugins", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_plugins" - ] - }, - "Com_show_privileges": { - "name": "Com_show_privileges", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_privileges" - ] - }, - "Com_show_procedure_status": { - "name": "Com_show_procedure_status", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_procedure_status" - ] - }, - "Com_show_processlist": { - "name": "Com_show_processlist", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_processlist" - ] - }, - "Com_show_profile": { - "name": "Com_show_profile", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_profile" - ] - }, - "Com_show_profiles": { - "name": "Com_show_profiles", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_profiles" - ] - }, - "Com_show_relaylog_events": { - "name": "Com_show_relaylog_events", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_relaylog_events" - ] - }, - "Com_show_status": { - "name": "Com_show_status", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_status" - ] - }, - "Com_show_storage_engines": { - "name": "Com_show_storage_engines", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_storage_engines" - ] - }, - "Com_show_table_statistics": { - "name": "Com_show_table_statistics", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_table_statistics" - ] - }, - "Com_show_table_status": { - "name": "Com_show_table_status", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_table_status" - ] - }, - "Com_show_tables": { - "name": "Com_show_tables", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_tables" - ] - }, - "Com_show_triggers": { - "name": "Com_show_triggers", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_triggers" - ] - }, - "Com_show_user_statistics": { - "name": "Com_show_user_statistics", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_user_statistics" - ] - }, - "Com_show_variable": { - "name": "Com_show_variable", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_variable" - ] - }, - "Com_show_warnings": { - "name": "Com_show_warnings", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_show_warnings" - ] - }, - "Com_shutdown": { - "name": "Com_shutdown", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_shutdown" - ] - }, - "Com_stmt_close": { - "name": "Com_stmt_close", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_stmt_close" - ] - }, - "Com_stmt_execute": { - "name": "Com_stmt_execute", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_stmt_execute" - ] - }, - "Com_stmt_fetch": { - "name": "Com_stmt_fetch", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_stmt_fetch" - ] - }, - "Com_stmt_prepare": { - "name": "Com_stmt_prepare", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_stmt_prepare" - ] - }, - "Com_stmt_reprepare": { - "name": "Com_stmt_reprepare", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_stmt_reprepare" - ] - }, - "Com_stmt_reset": { - "name": "Com_stmt_reset", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_stmt_reset" - ] - }, - "Com_stmt_send_long_data": { - "name": "Com_stmt_send_long_data", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_stmt_send_long_data" - ] - }, - "Com_truncate": { - "name": "Com_truncate", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_truncate" - ] - }, - "Com_uninstall_plugin": { - "name": "Com_uninstall_plugin", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_uninstall_plugin" - ] - }, - "Com_unlock_tables": { - "name": "Com_unlock_tables", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_unlock_tables" - ] - }, - "Com_update": { - "name": "Com_update", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_update" - ] - }, - "Com_update_multi": { - "name": "Com_update_multi", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_update_multi" - ] - }, - "Com_xa_commit": { - "name": "Com_xa_commit", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_xa_commit" - ] - }, - "Com_xa_end": { - "name": "Com_xa_end", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_xa_end" - ] - }, - "Com_xa_prepare": { - "name": "Com_xa_prepare", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_xa_prepare" - ] - }, - "Com_xa_recover": { - "name": "Com_xa_recover", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_xa_recover" - ] - }, - "Com_xa_rollback": { - "name": "Com_xa_rollback", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_xa_rollback" - ] - }, - "Com_xa_start": { - "name": "Com_xa_start", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#com_xa_start" - ] - }, - "Compression": { - "name": "Compression", - "scope": [ - "session" - ], - "type": "boolean", - "ids": [ - "28#compression" - ] - }, - "Connection_errors_accept": { - "name": "Connection_errors_accept", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#connection_errors_accept" - ] - }, - "Connection_errors_internal": { - "name": "Connection_errors_internal", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#connection_errors_internal" - ] - }, - "Connection_errors_max_connections": { - "name": "Connection_errors_max_connections", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#connection_errors_max_connections" - ] - }, - "Connection_errors_peer_address": { - "name": "Connection_errors_peer_address", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#connection_errors_peer_address" - ] - }, - "Connection_errors_select": { - "name": "Connection_errors_select", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#connection_errors_select" - ] - }, - "Connection_errors_tcpwrap": { - "name": "Connection_errors_tcpwrap", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#connection_errors_tcpwrap" - ] - }, - "Connections": { - "name": "Connections", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#connections" - ] - }, - "Cpu_time": { - "name": "Cpu_time", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#cpu_time" - ] - }, - "Created_tmp_disk_tables": { - "name": "Created_tmp_disk_tables", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#created_tmp_disk_tables" - ] - }, - "Created_tmp_files": { - "name": "Created_tmp_files", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#created_tmp_files" - ] - }, - "Created_tmp_tables": { - "name": "Created_tmp_tables", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#created_tmp_tables" - ] - }, - "Delayed_errors": { - "name": "Delayed_errors", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#delayed_errors" - ] - }, - "Delayed_insert_threads": { - "name": "Delayed_insert_threads", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#delayed_insert_threads" - ] - }, - "Delayed_writes": { - "name": "Delayed_writes", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#delayed_writes" - ] - }, - "Delete_scan": { - "name": "Delete_scan", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#delete_scan" - ] - }, - "Empty_queries": { - "name": "Empty_queries", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#empty_queries" - ] - }, - "Executed_events": { - "name": "Executed_events", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#executed_events" - ] - }, - "Executed_triggers": { - "name": "Executed_triggers", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#executed_triggers" - ] - }, - "Feature_application_time_periods": { - "name": "Feature_application_time_periods", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#feature_application_time_periods" - ] - }, - "Feature_check_constraint": { - "name": "Feature_check_constraint", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#feature_check_constraint" - ] - }, - "Feature_custom_aggregate_functions": { - "name": "Feature_custom_aggregate_functions", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#feature_custom_aggregate_functions" - ] - }, - "Feature_delay_key_write": { - "name": "Feature_delay_key_write", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#feature_delay_key_write" - ] - }, - "Feature_dynamic_columns": { - "name": "Feature_dynamic_columns", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#feature_dynamic_columns" - ] - }, - "Feature_fulltext": { - "name": "Feature_fulltext", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#feature_fulltext" - ] - }, - "Feature_gis": { - "name": "Feature_gis", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#feature_gis" - ] - }, - "Feature_invisible_columns": { - "name": "Feature_invisible_columns", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#feature_invisible_columns" - ] - }, - "Feature_json": { - "name": "Feature_json", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#feature_json" - ] - }, - "Feature_locale": { - "name": "Feature_locale", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#feature_locale" - ] - }, - "Feature_subquery": { - "name": "Feature_subquery", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#feature_subquery" - ] - }, - "Feature_system_versioning": { - "name": "Feature_system_versioning", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#feature_system_versioning" - ] - }, - "Feature_timezone": { - "name": "Feature_timezone", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#feature_timezone" - ] - }, - "Feature_trigger": { - "name": "Feature_trigger", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#feature_trigger" - ] - }, - "Feature_window_functions": { - "name": "Feature_window_functions", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#feature_window_functions" - ] - }, - "Feature_xml": { - "name": "Feature_xml", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#feature_xml" - ] - }, - "Flush_commands": { - "name": "Flush_commands", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#flush_commands" - ] - }, - "Handler_commit": { - "name": "Handler_commit", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#handler_commit" - ] - }, - "Handler_delete": { - "name": "Handler_delete", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#handler_delete" - ] - }, - "Handler_discover": { - "name": "Handler_discover", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#handler_discover" - ] - }, - "Handler_external_lock": { - "name": "Handler_external_lock", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#handler_external_lock" - ] - }, - "Handler_icp_attempts": { - "name": "Handler_icp_attempts", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#handler_icp_attempts" - ] - }, - "Handler_icp_match": { - "name": "Handler_icp_match", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#handler_icp_match" - ] - }, - "Handler_mrr_init": { - "name": "Handler_mrr_init", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#handler_mrr_init" - ] - }, - "Handler_mrr_key_refills": { - "name": "Handler_mrr_key_refills", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#handler_mrr_key_refills" - ] - }, - "Handler_mrr_rowid_refills": { - "name": "Handler_mrr_rowid_refills", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#handler_mrr_rowid_refills" - ] - }, - "Handler_prepare": { - "name": "Handler_prepare", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#handler_prepare" - ] - }, - "Handler_read_first": { - "name": "Handler_read_first", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#handler_read_first" - ] - }, - "Handler_read_key": { - "name": "Handler_read_key", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#handler_read_key" - ] - }, - "Handler_read_last": { - "name": "Handler_read_last", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#handler_read_last" - ] - }, - "Handler_read_next": { - "name": "Handler_read_next", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#handler_read_next" - ] - }, - "Handler_read_prev": { - "name": "Handler_read_prev", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#handler_read_prev" - ] - }, - "Handler_read_retry": { - "name": "Handler_read_retry", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#handler_read_retry" - ] - }, - "Handler_read_rnd": { - "name": "Handler_read_rnd", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#handler_read_rnd" - ] - }, - "Handler_read_rnd_deleted": { - "name": "Handler_read_rnd_deleted", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#handler_read_rnd_deleted" - ] - }, - "Handler_read_rnd_next": { - "name": "Handler_read_rnd_next", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#handler_read_rnd_next" - ] - }, - "Handler_rollback": { - "name": "Handler_rollback", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#handler_rollback" - ] - }, - "Handler_savepoint": { - "name": "Handler_savepoint", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#handler_savepoint" - ] - }, - "Handler_savepoint_rollback": { - "name": "Handler_savepoint_rollback", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#handler_savepoint_rollback" - ] - }, - "Handler_tmp_delete": { - "name": "Handler_tmp_delete", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#handler_tmp_delete" - ] - }, - "Handler_tmp_update": { - "name": "Handler_tmp_update", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#handler_tmp_update" - ] - }, - "Handler_tmp_write": { - "name": "Handler_tmp_write", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#handler_tmp_write" - ] - }, - "Handler_update": { - "name": "Handler_update", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#handler_update" - ] - }, - "Handler_write": { - "name": "Handler_write", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#handler_write" - ] - }, - "Key_blocks_not_flushed": { - "name": "Key_blocks_not_flushed", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#key_blocks_not_flushed" - ] - }, - "Key_blocks_unused": { - "name": "Key_blocks_unused", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#key_blocks_unused" - ] - }, - "Key_blocks_used": { - "name": "Key_blocks_used", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#key_blocks_used" - ] - }, - "Key_blocks_warm": { - "name": "Key_blocks_warm", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#key_blocks_warm" - ] - }, - "Key_read_requests": { - "name": "Key_read_requests", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#key_read_requests" - ] - }, - "Key_reads": { - "name": "Key_reads", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#key_reads" - ] - }, - "Key_write_requests": { - "name": "Key_write_requests", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#key_write_requests" - ] - }, - "Key_writes": { - "name": "Key_writes", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#key_writes" - ] - }, - "Last_query_cost": { - "name": "Last_query_cost", - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - "28#last_query_cost" - ] - }, - "Maria_*": { - "name": "Maria_*", - "ids": [ - "28#maria_" - ] - }, - "Max_statement_time_exceeded": { - "name": "Max_statement_time_exceeded", - "type": "integer", - "ids": [ - "28#max_statement_time_exceeded" - ] - }, - "Max_used_connections": { - "name": "Max_used_connections", - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - "28#max_used_connections" - ] - }, - "Memory_used": { - "name": "Memory_used", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#memory_used" - ] - }, - "Memory_used_initial": { - "name": "Memory_used_initial", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#memory_used_initial" - ] - }, - "Not_flushed_delayed_rows": { - "name": "Not_flushed_delayed_rows", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#not_flushed_delayed_rows" - ] - }, - "Open_files": { - "name": "Open_files", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#open_files" - ] - }, - "Open_streams": { - "name": "Open_streams", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#open_streams" - ] - }, - "Open_table_definitions": { - "name": "Open_table_definitions", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#open_table_definitions" - ] - }, - "Open_tables": { - "name": "Open_tables", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#open_tables" - ] - }, - "Opened_files": { - "name": "Opened_files", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#opened_files" - ] - }, - "Opened_plugin_libraries": { - "name": "Opened_plugin_libraries", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#opened_plugin_libraries" - ] - }, - "Opened_table_definitions": { - "name": "Opened_table_definitions", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#opened_table_definitions" - ] - }, - "Opened_tables": { - "name": "Opened_tables", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#opened_tables" - ] - }, - "Opened_views": { - "name": "Opened_views", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#opened_views" - ] - }, - "Performance_schema_accounts_lost": { - "name": "Performance_schema_accounts_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#performance_schema_accounts_lost" - ] - }, - "Performance_schema_cond_classes_lost": { - "name": "Performance_schema_cond_classes_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#performance_schema_cond_classes_lost" - ] - }, - "Performance_schema_cond_instances_lost": { - "name": "Performance_schema_cond_instances_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#performance_schema_cond_instances_lost" - ] - }, - "Performance_schema_digest_lost": { - "name": "Performance_schema_digest_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#performance_schema_digest_lost" - ] - }, - "Performance_schema_file_classes_lost": { - "name": "Performance_schema_file_classes_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#performance_schema_file_classes_lost" - ] - }, - "Performance_schema_file_handles_lost": { - "name": "Performance_schema_file_handles_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#performance_schema_file_handles_lost" - ] - }, - "Performance_schema_file_instances_lost": { - "name": "Performance_schema_file_instances_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#performance_schema_file_instances_lost" - ] - }, - "Performance_schema_hosts_lost": { - "name": "Performance_schema_hosts_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#performance_schema_hosts_lost" - ] - }, - "Performance_schema_locker_lost": { - "name": "Performance_schema_locker_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#performance_schema_locker_lost" - ] - }, - "Performance_schema_mutex_classes_lost": { - "name": "Performance_schema_mutex_classes_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#performance_schema_mutex_classes_lost" - ] - }, - "Performance_schema_mutex_instances_lost": { - "name": "Performance_schema_mutex_instances_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#performance_schema_mutex_instances_lost" - ] - }, - "Performance_schema_rwlock_classes_lost": { - "name": "Performance_schema_rwlock_classes_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#performance_schema_rwlock_classes_lost" - ] - }, - "Performance_schema_rwlock_instances_lost": { - "name": "Performance_schema_rwlock_instances_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#performance_schema_rwlock_instances_lost" - ] - }, - "Performance_schema_session_connect_attrs_lost": { - "name": "Performance_schema_session_connect_attrs_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#performance_schema_session_connect_attrs_lost" - ] - }, - "Performance_schema_socket_classes_lost": { - "name": "Performance_schema_socket_classes_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#performance_schema_socket_classes_lost" - ] - }, - "Performance_schema_socket_instances_lost": { - "name": "Performance_schema_socket_instances_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#performance_schema_socket_instances_lost" - ] - }, - "Performance_schema_stage_classes_lost": { - "name": "Performance_schema_stage_classes_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#performance_schema_stage_classes_lost" - ] - }, - "Performance_schema_statement_classes_lost": { - "name": "Performance_schema_statement_classes_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#performance_schema_statement_classes_lost" - ] - }, - "Performance_schema_table_handles_lost": { - "name": "Performance_schema_table_handles_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#performance_schema_table_handles_lost" - ] - }, - "Performance_schema_table_instances_lost": { - "name": "Performance_schema_table_instances_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#performance_schema_table_instances_lost" - ] - }, - "Performance_schema_thread_classes_lost": { - "name": "Performance_schema_thread_classes_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#performance_schema_thread_classes_lost" - ] - }, - "Performance_schema_thread_instances_lost": { - "name": "Performance_schema_thread_instances_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#performance_schema_thread_instances_lost" - ] - }, - "Performance_schema_users_lost": { - "name": "Performance_schema_users_lost", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#performance_schema_users_lost" - ] - }, - "Prepared_stmt_count": { - "name": "Prepared_stmt_count", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#prepared_stmt_count" - ] - }, - "Qcache_free_blocks": { - "name": "Qcache_free_blocks", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#qcache_free_blocks" - ] - }, - "Qcache_free_memory": { - "name": "Qcache_free_memory", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#qcache_free_memory" - ] - }, - "Qcache_hits": { - "name": "Qcache_hits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#qcache_hits" - ] - }, - "Qcache_inserts": { - "name": "Qcache_inserts", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#qcache_inserts" - ] - }, - "Qcache_lowmem_prunes": { - "name": "Qcache_lowmem_prunes", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#qcache_lowmem_prunes" - ] - }, - "Qcache_not_cached": { - "name": "Qcache_not_cached", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#qcache_not_cached" - ] - }, - "Qcache_queries_in_cache": { - "name": "Qcache_queries_in_cache", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#qcache_queries_in_cache" - ] - }, - "Qcache_total_blocks": { - "name": "Qcache_total_blocks", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#qcache_total_blocks" - ] - }, - "Queries": { - "name": "Queries", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#queries" - ] - }, - "Questions": { - "name": "Questions", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#questions" - ] - }, - "Rows_read": { - "name": "Rows_read", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#rows_read" - ] - }, - "Rows_sent": { - "name": "Rows_sent", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#rows_sent" - ] - }, - "Rows_tmp_read": { - "name": "Rows_tmp_read", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#rows_tmp_read" - ] - }, - "Select_full_join": { - "name": "Select_full_join", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#select_full_join" - ] - }, - "Select_full_range_join": { - "name": "Select_full_range_join", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#select_full_range_join" - ] - }, - "Select_range": { - "name": "Select_range", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#select_range" - ] - }, - "Select_range_check": { - "name": "Select_range_check", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#select_range_check" - ] - }, - "Select_scan": { - "name": "Select_scan", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#select_scan" - ] - }, - "Slow_launch_threads": { - "name": "Slow_launch_threads", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#slow_launch_threads" - ] - }, - "Slow_queries": { - "name": "Slow_queries", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#slow_queries" - ] - }, - "Sort_merge_passes": { - "name": "Sort_merge_passes", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#sort_merge_passes" - ] - }, - "Sort_priority_queue_sorts": { - "name": "Sort_priority_queue_sorts", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#sort_priority_queue_sorts" - ] - }, - "Sort_range": { - "name": "Sort_range", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#sort_range" - ] - }, - "Sort_rows": { - "name": "Sort_rows", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#sort_rows" - ] - }, - "Sort_scan": { - "name": "Sort_scan", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#sort_scan" - ] - }, - "Subquery_cache_hit": { - "name": "Subquery_cache_hit", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#subquery_cache_hit" - ] - }, - "Subquery_cache_miss": { - "name": "Subquery_cache_miss", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#subquery_cache_miss" - ] - }, - "Syncs": { - "name": "Syncs", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "28#syncs" - ] - }, - "Table_locks_immediate": { - "name": "Table_locks_immediate", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#table_locks_immediate" - ] - }, - "Table_locks_waited": { - "name": "Table_locks_waited", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#table_locks_waited" - ] - }, - "Table_open_cache_active_instances": { - "name": "Table_open_cache_active_instances", - "scope": [], - "type": "integer", - "ids": [ - "28#table_open_cache_active_instances" - ] - }, - "Table_open_cache_hits": { - "name": "Table_open_cache_hits", - "scope": [], - "type": "integer", - "ids": [ - "28#table_open_cache_hits" - ] - }, - "Table_open_cache_misses": { - "name": "Table_open_cache_misses", - "scope": [], - "type": "integer", - "ids": [ - "28#table_open_cache_misses" - ] - }, - "Table_open_cache_overflows": { - "name": "Table_open_cache_overflows", - "scope": [], - "type": "integer", - "ids": [ - "28#table_open_cache_overflows" - ] - }, - "Tc_log_max_pages_used": { - "name": "Tc_log_max_pages_used", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#tc_log_max_pages_used" - ] - }, - "Tc_log_page_size": { - "name": "Tc_log_page_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#tc_log_page_size" - ] - }, - "Tc_log_page_waits": { - "name": "Tc_log_page_waits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#tc_log_page_waits" - ] - }, - "Threads_cached": { - "name": "Threads_cached", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#threads_cached" - ] - }, - "Threads_connected": { - "name": "Threads_connected", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#threads_connected" - ] - }, - "Threads_created": { - "name": "Threads_created", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#threads_created" - ] - }, - "Threads_running": { - "name": "Threads_running", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#threads_running" - ] - }, - "Update_scan": { - "name": "Update_scan", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#update_scan" - ] - }, - "Uptime": { - "name": "Uptime", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#uptime" - ] - }, - "Uptime_since_flush_status": { - "name": "Uptime_since_flush_status", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "28#uptime_since_flush_status" - ] - }, - "alter_algorithm": { - "cli": "--alter-algorithm=default", - "default": "DEFAULT", - "dynamic": true, - "name": "alter_algorithm", - "scope": [ - "global", - "session" - ], - "validValues": [ - "DEFAULT", - "COPY", - "INPLACE", - "NOCOPY", - "INSTANT" - ], - "ids": [ - "30#alter_algorithm" - ] - }, - "analyze_sample_percentage": { - "cli": "--analyze-sample-percentage=#", - "default": "100.000000", - "dynamic": true, - "name": "analyze_sample_percentage", - "range": { - "from": 0, - "to": 100 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#analyze_sample_percentage" - ] - }, - "autocommit": { - "default": "1", - "dynamic": true, - "name": "autocommit", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "29#autocommit", - "15#sysvar_autocommit" - ] - }, - "automatic_sp_privileges": { - "default": "1", - "dynamic": true, - "name": "automatic_sp_privileges", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "29#automatic_sp_privileges", - "15#sysvar_automatic_sp_privileges" - ] - }, - "back_log": { - "cli": "--back-log=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": false, - "name": "back_log", - "range": { - "from": 1, - "to": 65535 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#back_log", - "15#sysvar_back_log" - ] - }, - "basedir": { - "cli": "--basedir=path or -b path", - "dynamic": false, - "name": "basedir", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - "29#basedir", - "16#sysvar_basedir", - "15#sysvar_basedir" - ] - }, - "big_tables": { - "cli": "--big-tables[={OFF|ON}]", - "default": "0", - "dynamic": true, - "name": "big_tables", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "29#big_tables", - "15#sysvar_big_tables" - ] - }, - "bind_address": { - "cli": "--bind-address=addr", - "default": "*", - "dynamic": false, - "name": "bind_address", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "29#bind_address", - "15#sysvar_bind_address" - ] - }, - "bulk_insert_buffer_size": { - "cli": "--bulk-insert-buffer-size=#", - "default": "8388608", - "dynamic": true, - "name": "bulk_insert_buffer_size", - "range": { - "from": 0 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#bulk_insert_buffer_size", - "15#sysvar_bulk_insert_buffer_size" - ] - }, - "character_set_client": { - "dynamic": true, - "name": "character_set_client", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "29#character_set_client", - "15#sysvar_character_set_client" - ] - }, - "character_set_connection": { - "dynamic": true, - "name": "character_set_connection", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "29#character_set_connection", - "15#sysvar_character_set_connection" - ] - }, - "character_set_database": { - "dynamic": true, - "name": "character_set_database", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "29#character_set_database", - "15#sysvar_character_set_database" - ] - }, - "character_set_filesystem": { - "cli": "--character-set-filesystem=name", - "default": "binary", - "dynamic": true, - "name": "character_set_filesystem", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "29#character_set_filesystem", - "15#sysvar_character_set_filesystem" - ] - }, - "character_set_results": { - "dynamic": true, - "name": "character_set_results", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "29#character_set_results", - "15#sysvar_character_set_results" - ] - }, - "character_set_server": { - "cli": "--character-set-server=name", - "dynamic": true, - "name": "character_set_server", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "29#character_set_server", - "15#sysvar_character_set_server" - ] - }, - "character_set_system": { - "default": "utf8", - "dynamic": false, - "name": "character_set_system", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "29#character_set_system", - "15#sysvar_character_set_system" - ] - }, - "character_sets_dir": { - "cli": "--character-sets-dir=path", - "dynamic": false, - "name": "character_sets_dir", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - "29#character_sets_dir", - "15#sysvar_character_sets_dir" - ] - }, - "check_constraint_checks": { - "cli": "--check-constraint-checks=[0|1]", - "default": "ON", - "dynamic": true, - "name": "check_constraint_checks", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "29#check_constraint_checks" - ] - }, - "collation_connection": { - "dynamic": true, - "name": "collation_connection", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "29#collation_connection", - "15#sysvar_collation_connection" - ] - }, - "collation_database": { - "dynamic": true, - "name": "collation_database", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "29#collation_database", - "15#sysvar_collation_database" - ] - }, - "collation_server": { - "cli": "--collation-server=name", - "dynamic": true, - "name": "collation_server", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "29#collation_server", - "15#sysvar_collation_server" - ] - }, - "completion_type": { - "cli": "--completion-type=name", - "default": "NO_CHAIN", - "dynamic": true, - "name": "completion_type", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "NO_CHAIN", - "CHAIN", - "RELEASE", - "0", - "1", - "2" - ], - "ids": [ - "29#completion_type", - "15#sysvar_completion_type" - ] - }, - "concurrent_insert": { - "default": "AUTO", - "dynamic": true, - "name": "concurrent_insert", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "NEVER", - "AUTO", - "ALWAYS", - "0", - "1", - "2" - ], - "ids": [ - "29#concurrent_insert", - "15#sysvar_concurrent_insert" - ] - }, - "connect_timeout": { - "cli": "--connect-timeout=#", - "default": "10", - "dynamic": true, - "name": "connect_timeout", - "range": { - "from": 2, - "to": 31536000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#connect_timeout", - "15#sysvar_connect_timeout" - ] - }, - "core_file": { - "default": "0", - "dynamic": false, - "name": "core_file", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "29#core_file", - "16#option_mysqld_core-file", - "15#sysvar_core_file" - ] - }, - "datadir": { - "cli": "--datadir=path or -h path", - "dynamic": false, - "name": "datadir", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - "29#datadir", - "16#sysvar_datadir", - "15#sysvar_datadir" - ] - }, - "date_format": { - "name": "date_format", - "ids": [ - "29#date_format" - ] - }, - "datetime_format": { - "name": "datetime_format", - "ids": [ - "29#datetime_format" - ] - }, - "debug": { - "cli": "-#, --debug[=debug_options]", - "dynamic": true, - "name": "debug", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "29#debug", - "16#option_mysqld_debug", - "15#sysvar_debug" - ] - }, - "debug_no_thread_alarm": { - "cli": "--debug-no-thead-alarm=#", - "default": "OFF", - "dynamic": false, - "name": "debug_no_thread_alarm", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "29#debug_no_thread_alarm" - ] - }, - "debug_sync": { - "dynamic": true, - "name": "debug_sync", - "scope": [ - "session" - ], - "type": "string", - "ids": [ - "29#debug_sync", - "15#sysvar_debug_sync" - ] - }, - "default_password_lifetime": { - "cli": "--default-password-lifetime=#", - "default": "0", - "dynamic": true, - "name": "default_password_lifetime", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#default_password_lifetime", - "15#sysvar_default_password_lifetime" - ] - }, - "default_regex_flags": { - "name": "default_regex_flags", - "ids": [ - "29#default_regex_flags" - ] - }, - "default_storage_engine": { - "cli": "--default-storage-engine=name", - "default": "InnoDB", - "dynamic": true, - "name": "default_storage_engine", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "ids": [ - "29#default_storage_engine", - "15#sysvar_default_storage_engine" - ] - }, - "default_table_type": { - "cli": "--default-table-type=name", - "dynamic": true, - "name": "default_table_type", - "scope": [ - "global", - "session" - ], - "ids": [ - "29#default_table_type" - ] - }, - "default_tmp_storage_engine": { - "cli": "--default-tmp-storage-engine=name", - "default": "InnoDB", - "dynamic": true, - "name": "default_tmp_storage_engine", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "ids": [ - "29#default_tmp_storage_engine", - "15#sysvar_default_tmp_storage_engine" - ] - }, - "default_week_format": { - "cli": "--default-week-format=#", - "default": "0", - "dynamic": true, - "name": "default_week_format", - "range": { - "from": 0, - "to": 7 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#default_week_format", - "15#sysvar_default_week_format" - ] - }, - "delay_key_write": { - "default": "ON", - "dynamic": true, - "name": "delay_key_write", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "ON", - "OFF", - "ALL" - ], - "ids": [ - "29#delay_key_write", - "15#sysvar_delay_key_write" - ] - }, - "delayed_insert_limit": { - "cli": "--delayed-insert-limit=#", - "default": "100", - "dynamic": true, - "name": "delayed_insert_limit", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#delayed_insert_limit", - "15#sysvar_delayed_insert_limit" - ] - }, - "delayed_insert_timeout": { - "cli": "--delayed-insert-timeout=#", - "default": "300", - "dynamic": true, - "name": "delayed_insert_timeout", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#delayed_insert_timeout", - "15#sysvar_delayed_insert_timeout" - ] - }, - "delayed_queue_size": { - "cli": "--delayed-queue-size=#", - "default": "1000", - "dynamic": true, - "name": "delayed_queue_size", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#delayed_queue_size", - "15#sysvar_delayed_queue_size" - ] - }, - "disconnect_on_expired_password": { - "name": "disconnect_on_expired_password", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "29#disconnect_on_expired_password", - "15#sysvar_disconnect_on_expired_password" - ] - }, - "div_precision_increment": { - "cli": "--div-precision-increment=#", - "default": "4", - "dynamic": true, - "name": "div_precision_increment", - "range": { - "from": 0, - "to": 30 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#div_precision_increment", - "15#sysvar_div_precision_increment" - ] - }, - "encrypt_tmp_disk_tables": { - "cli": "--encrypt-tmp-disk-tables[={0|1}]", - "default": "OFF", - "dynamic": true, - "name": "encrypt_tmp_disk_tables", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "29#encrypt_tmp_disk_tables" - ] - }, - "encrypt_tmp_files": { - "cli": "--encrypt-tmp-files[={0|1}]", - "default": "OFF (>= MariaDB 10.1.7), ON (<= MariaDB 10.1.6)", - "dynamic": false, - "name": "encrypt_tmp_files", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "29#encrypt_tmp_files" - ] - }, - "encryption_algorithm": { - "cli": "--encryption-algorithm=value", - "default": "none", - "dynamic": false, - "name": "encryption_algorithm", - "scope": [ - "global" - ], - "validValues": [ - "none", - "aes_ecb", - "aes_cbc", - "aes_ctr" - ], - "ids": [ - "29#encryption_algorithm" - ] - }, - "enforce_storage_engine": { - "default": "none", - "dynamic": true, - "name": "enforce_storage_engine", - "scope": [ - "session" - ], - "type": "string", - "ids": [ - "29#enforce_storage_engine" - ] - }, - "engine_condition_pushdown": { - "cli": "--engine-condition-pushdown", - "default": "OFF (MariaDB 5.5), ON (<= MariaDB 5.3)", - "dynamic": true, - "name": "engine_condition_pushdown", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "29#engine_condition_pushdown" - ] - }, - "eq_range_index_dive_limit": { - "cli": "--eq-range-index-dive-limit=#", - "default": "200", - "dynamic": true, - "name": "eq_range_index_dive_limit", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#eq_range_index_dive_limit", - "15#sysvar_eq_range_index_dive_limit" - ] - }, - "error_count": { - "dynamic": true, - "name": "error_count", - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - "29#error_count" - ] - }, - "event_scheduler": { - "cli": "--event-scheduler[=value]", - "dynamic": true, - "name": "event_scheduler", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "ON", - "1", - "OFF", - "0", - "DISABLED" - ], - "ids": [ - "29#event_scheduler", - "15#sysvar_event_scheduler" - ] - }, - "expensive_subquery_limit": { - "cli": "--expensive-subquery-limit=#", - "default": "100", - "dynamic": true, - "name": "expensive_subquery_limit", - "range": { - "from": 0, - "to": "upwards" - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#expensive_subquery_limit" - ] - }, - "explicit_defaults_for_timestamp": { - "name": "explicit_defaults_for_timestamp", - "type": "boolean", - "ids": [ - "29#explicit_defaults_for_timestamp", - "15#sysvar_explicit_defaults_for_timestamp" - ] - }, - "external_user": { - "dynamic": false, - "name": "external_user", - "scope": [ - "session" - ], - "type": "string", - "ids": [ - "29#external_user", - "15#sysvar_external_user" - ] - }, - "flush": { - "cli": "--flush[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "flush", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "29#flush", - "16#option_mysqld_flush", - "15#sysvar_flush" - ] - }, - "flush_time": { - "cli": "--flush-time=#", - "default": "0", - "dynamic": true, - "name": "flush_time", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#flush_time", - "15#sysvar_flush_time" - ] - }, - "foreign_key_checks": { - "default": "1", - "dynamic": true, - "name": "foreign_key_checks", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "29#foreign_key_checks", - "15#sysvar_foreign_key_checks" - ] - }, - "ft_boolean_syntax": { - "cli": "--ft-boolean-syntax=name", - "default": "+ -><()~*:\"\"&|", - "dynamic": true, - "name": "ft_boolean_syntax", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "29#ft_boolean_syntax", - "15#sysvar_ft_boolean_syntax" - ] - }, - "ft_max_word_len": { - "cli": "--ft-max-word-len=#", - "dynamic": false, - "name": "ft_max_word_len", - "range": { - "from": 10 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#ft_max_word_len", - "15#sysvar_ft_max_word_len" - ] - }, - "ft_min_word_len": { - "cli": "--ft-min-word-len=#", - "default": "4", - "dynamic": false, - "name": "ft_min_word_len", - "range": { - "from": 1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#ft_min_word_len", - "15#sysvar_ft_min_word_len" - ] - }, - "ft_query_expansion_limit": { - "cli": "--ft-query-expansion-limit=#", - "default": "20", - "dynamic": false, - "name": "ft_query_expansion_limit", - "range": { - "from": 0, - "to": 1000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#ft_query_expansion_limit", - "15#sysvar_ft_query_expansion_limit" - ] - }, - "ft_stopword_file": { - "cli": "--ft-stopword-file=file_name", - "dynamic": false, - "name": "ft_stopword_file", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - "29#ft_stopword_file", - "15#sysvar_ft_stopword_file" - ] - }, - "general_log": { - "cli": "--general-log[={OFF|ON}]", - "default": "0", - "dynamic": true, - "name": "general_log", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "29#general_log", - "15#sysvar_general_log" - ] - }, - "general_log_file": { - "cli": "--general-log-file=file_name", - "default": "host_name.log", - "dynamic": true, - "name": "general_log_file", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - "29#general_log_file", - "15#sysvar_general_log_file" - ] - }, - "group_concat_max_len": { - "cli": "--group-concat-max-len=#", - "dynamic": true, - "name": "group_concat_max_len", - "range": { - "from": 4 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#group_concat_max_len", - "15#sysvar_group_concat_max_len" - ] - }, - "have_compress": { - "dynamic": false, - "name": "have_compress", - "scope": [ - "global" - ], - "ids": [ - "29#have_compress" - ] - }, - "have_crypt": { - "dynamic": false, - "name": "have_crypt", - "scope": [ - "global" - ], - "ids": [ - "29#have_crypt" - ] - }, - "have_csv": { - "dynamic": false, - "name": "have_csv", - "scope": [ - "global" - ], - "ids": [ - "29#have_csv" - ] - }, - "have_dynamic_loading": { - "dynamic": false, - "name": "have_dynamic_loading", - "scope": [ - "global" - ], - "ids": [ - "29#have_dynamic_loading" - ] - }, - "have_geometry": { - "dynamic": false, - "name": "have_geometry", - "scope": [ - "global" - ], - "ids": [ - "29#have_geometry" - ] - }, - "have_ndbcluster": { - "dynamic": false, - "name": "have_ndbcluster", - "scope": [ - "global" - ], - "ids": [ - "29#have_ndbcluster" - ] - }, - "have_partitioning": { - "dynamic": false, - "name": "have_partitioning", - "scope": [ - "global" - ], - "ids": [ - "29#have_partitioning" - ] - }, - "have_profiling": { - "dynamic": false, - "name": "have_profiling", - "scope": [ - "global" - ], - "ids": [ - "29#have_profiling" - ] - }, - "have_query_cache": { - "dynamic": false, - "name": "have_query_cache", - "scope": [ - "global" - ], - "ids": [ - "29#have_query_cache" - ] - }, - "have_rtree_keys": { - "dynamic": false, - "name": "have_rtree_keys", - "scope": [ - "global" - ], - "ids": [ - "29#have_rtree_keys" - ] - }, - "have_symlink": { - "dynamic": false, - "name": "have_symlink", - "scope": [ - "global" - ], - "ids": [ - "29#have_symlink" - ] - }, - "histogram_size": { - "cli": "--histogram-size=#", - "default": "254 (>= MariaDB 10.4.3), 0 (<= MariaDB 10.4.2)", - "dynamic": true, - "name": "histogram_size", - "range": { - "from": 0, - "to": 255 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#histogram_size" - ] - }, - "histogram_type": { - "cli": "--histogram-type=value", - "default": "DOUBLE_PREC_HB (>= MariaDB 10.4.3), SINGLE_PREC_HB(<= MariaDB 10.4.2)", - "dynamic": true, - "name": "histogram_type", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "SINGLE_PREC_HB", - "DOUBLE_PREC_HB" - ], - "ids": [ - "29#histogram_type" - ] - }, - "host_cache_size": { - "cli": "--host-cache-size=#.", - "dynamic": true, - "name": "host_cache_size", - "range": { - "from": 0, - "to": 65536 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#host_cache_size", - "15#sysvar_host_cache_size" - ] - }, - "hostname": { - "dynamic": false, - "name": "hostname", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "29#hostname", - "15#sysvar_hostname" - ] - }, - "identity": { - "name": "identity", - "ids": [ - "29#identity" - ] - }, - "idle_readonly_transaction_timeout": { - "default": "0", - "dynamic": true, - "name": "idle_readonly_transaction_timeout", - "range": { - "from": 0, - "to": 31536000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#idle_readonly_transaction_timeout" - ] - }, - "idle_transaction_timeout": { - "default": "0", - "dynamic": true, - "name": "idle_transaction_timeout", - "range": { - "from": 0, - "to": 31536000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#idle_transaction_timeout" - ] - }, - "idle_write_transaction_timeout": { - "default": "0", - "dynamic": true, - "name": "idle_write_transaction_timeout", - "range": { - "from": 0, - "to": 31536000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#idle_write_transaction_timeout" - ] - }, - "ignore_db_dirs": { - "cli": "--ignore-db-dirs=dir.", - "dynamic": false, - "name": "ignore_db_dirs", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "29#ignore_db_dirs" - ] - }, - "in_transaction": { - "default": "0", - "dynamic": false, - "name": "in_transaction", - "scope": [ - "session" - ], - "type": "boolean", - "ids": [ - "29#in_transaction" - ] - }, - "init_connect": { - "cli": "--init-connect=name", - "dynamic": true, - "name": "init_connect", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "29#init_connect", - "15#sysvar_init_connect" - ] - }, - "init_file": { - "cli": "--init-file=file_name", - "dynamic": false, - "name": "init_file", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - "29#init_file", - "15#sysvar_init_file" - ] - }, - "insert_id": { - "dynamic": true, - "name": "insert_id", - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - "29#insert_id" - ] - }, - "interactive_timeout": { - "cli": "--interactive-timeout=#", - "default": "28800", - "dynamic": true, - "name": "interactive_timeout", - "range": { - "from": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#interactive_timeout", - "15#sysvar_interactive_timeout" - ] - }, - "join_buffer_size": { - "cli": "--join-buffer-size=#", - "default": "262144", - "dynamic": true, - "name": "join_buffer_size", - "range": { - "from": 128 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#join_buffer_size", - "15#sysvar_join_buffer_size" - ] - }, - "join_buffer_space_limit": { - "cli": "--join-buffer-space-limit=#", - "default": "2097152", - "dynamic": true, - "name": "join_buffer_space_limit", - "range": { - "from": 2048, - "to": 99999999997952 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#join_buffer_space_limit" - ] - }, - "join_cache_level": { - "cli": "--join-cache-level=#", - "default": "2", - "dynamic": true, - "name": "join_cache_level", - "range": { - "from": 0, - "to": 8 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#join_cache_level" - ] - }, - "keep_files_on_create": { - "default": "OFF", - "dynamic": true, - "name": "keep_files_on_create", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "29#keep_files_on_create", - "15#sysvar_keep_files_on_create" - ] - }, - "large_files_support": { - "dynamic": false, - "name": "large_files_support", - "scope": [ - "global" - ], - "ids": [ - "29#large_files_support", - "15#sysvar_large_files_support" - ] - }, - "large_page_size": { - "default": "0", - "dynamic": false, - "name": "large_page_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#large_page_size", - "15#sysvar_large_page_size" - ] - }, - "large_pages": { - "cli": "--large-pages[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "name": "large_pages", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "29#large_pages", - "16#option_mysqld_large-pages", - "15#sysvar_large_pages" - ] - }, - "last_insert_id": { - "dynamic": true, - "name": "last_insert_id", - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - "29#last_insert_id" - ] - }, - "lc_messages": { - "cli": "--lc-messages=name", - "default": "en_US", - "dynamic": true, - "name": "lc_messages", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "29#lc_messages", - "16#option_mysqld_lc-messages", - "15#sysvar_lc_messages" - ] - }, - "lc_messages_dir": { - "cli": "--lc-messages-dir=path", - "dynamic": false, - "name": "lc_messages_dir", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - "29#lc_messages_dir", - "16#option_mysqld_lc-messages-dir", - "15#sysvar_lc_messages_dir" - ] - }, - "lc_time_names": { - "dynamic": true, - "name": "lc_time_names", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "29#lc_time_names", - "15#sysvar_lc_time_names" - ] - }, - "license": { - "default": "GPL", - "dynamic": false, - "name": "license", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "29#license", - "15#sysvar_license" - ] - }, - "local_infile": { - "dynamic": true, - "name": "local_infile", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "29#local_infile", - "15#sysvar_local_infile" - ] - }, - "lock_wait_timeout": { - "cli": "--lock-wait-timeout=#", - "dynamic": true, - "name": "lock_wait_timeout", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#lock_wait_timeout", - "15#sysvar_lock_wait_timeout" - ] - }, - "locked_in_memory": { - "dynamic": false, - "name": "locked_in_memory", - "scope": [ - "global" - ], - "ids": [ - "29#locked_in_memory", - "15#sysvar_locked_in_memory" - ] - }, - "log": { - "cli": "-l [filename] or --log[=filename]", - "default": "OFF", - "dynamic": true, - "name": "log", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "29#log" - ] - }, - "log_disabled_statements": { - "cli": "--log-disabled_statements=value", - "default": "(empty string)", - "dynamic": false, - "name": "log_disabled_statements", - "scope": [ - "global", - "session" - ], - "type": "set", - "ids": [ - "29#log_disabled_statements" - ] - }, - "log_error": { - "cli": "--log-error[=file_name]", - "dynamic": false, - "name": "log_error", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - "29#log_error", - "16#option_mysqld_log-error", - "15#sysvar_log_error" - ] - }, - "log_output": { - "cli": "--log-output=name", - "default": "FILE", - "dynamic": true, - "name": "log_output", - "scope": [ - "global" - ], - "type": "set", - "validValues": [ - "TABLE", - "FILE", - "NONE" - ], - "ids": [ - "29#log_output", - "15#sysvar_log_output" - ] - }, - "log_queries_not_using_indexes": { - "cli": "--log-queries-not-using-indexes[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "log_queries_not_using_indexes", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "29#log_queries_not_using_indexes", - "15#sysvar_log_queries_not_using_indexes" - ] - }, - "log_slow_admin_statements": { - "cli": "--log-slow-admin-statements[={OFF|ON}]", - "dynamic": true, - "name": "log_slow_admin_statements", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "29#log_slow_admin_statements", - "15#sysvar_log_slow_admin_statements" - ] - }, - "log_slow_disabled_statements": { - "cli": "--log-slow-disabled_statements=value", - "default": "sp", - "dynamic": false, - "name": "log_slow_disabled_statements", - "scope": [ - "global", - "session" - ], - "type": "set", - "ids": [ - "29#log_slow_disabled_statements" - ] - }, - "log_slow_filter": { - "cli": "log-slow-filter=value1[,value2...]", - "default": "admin, filesort, filesort_on_disk, full_join, full_scan, query_cache, query_cache_miss, tmp_table, tmp_table_on_disk (<= MariaDB 10.3.0), admin, filesort, filesort_on_disk, filesort_priority_queue, full_join, full_scan, query_cache, query_cache_miss, tmp_table, tmp_table_on_disk (>= MariaDB 10.3.1)", - "dynamic": true, - "name": "log_slow_filter", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "admin", - "filesort", - "filesort_on_disk", - "filesort_priority_queue", - "full_join", - "full_scan", - "query_cache", - "query_cache_miss", - "tmp_table", - "tmp_table_on_disk" - ], - "ids": [ - "29#log_slow_filter" - ] - }, - "log_slow_queries": { - "cli": "--log-slow-queries[=name]", - "default": "OFF", - "dynamic": true, - "name": "log_slow_queries", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "29#log_slow_queries" - ] - }, - "log_slow_rate_limit": { - "cli": "log-slow-rate-limit=#", - "default": "1", - "dynamic": true, - "name": "log_slow_rate_limit", - "range": { - "from": 1, - "to": "upwards" - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#log_slow_rate_limit" - ] - }, - "log_slow_verbosity": { - "cli": "log-slow-verbosity=value1[,value2...]", - "default": "(Empty)", - "dynamic": true, - "name": "log_slow_verbosity", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "query_plan", - "innodb", - "explain" - ], - "ids": [ - "29#log_slow_verbosity" - ] - }, - "log_tc_size": { - "cli": "--log-tc-size=#", - "name": "log_tc_size", - "type": "integer", - "ids": [ - "29#log_tc_size", - "16#option_mysqld_log-tc-size" - ] - }, - "log_warnings": { - "cli": "--log-warnings[=#]", - "default": "2", - "dynamic": true, - "name": "log_warnings", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#log_warnings", - "16#option_mysqld_log-warnings", - "15#sysvar_log_warnings" - ] - }, - "long_query_time": { - "cli": "--long-query-time=#", - "default": "10", - "dynamic": true, - "name": "long_query_time", - "range": { - "from": 0, - "to": "upwards" - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#long_query_time", - "15#sysvar_long_query_time" - ] - }, - "low_priority_updates": { - "cli": "--low-priority-updates[={OFF|ON}]", - "default": "0", - "dynamic": true, - "name": "low_priority_updates", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "29#low_priority_updates", - "15#sysvar_low_priority_updates" - ] - }, - "lower_case_file_system": { - "dynamic": false, - "name": "lower_case_file_system", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "29#lower_case_file_system", - "15#sysvar_lower_case_file_system" - ] - }, - "lower_case_table_names": { - "cli": "--lower-case-table-names[=#]", - "default": "0", - "dynamic": false, - "name": "lower_case_table_names", - "range": { - "from": 0, - "to": 2 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#lower_case_table_names", - "15#sysvar_lower_case_table_names" - ] - }, - "max_allowed_packet": { - "cli": "--max-allowed-packet=#", - "name": "max_allowed_packet", - "range": { - "from": 1024, - "to": 1073741824 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#max_allowed_packet", - "15#sysvar_max_allowed_packet" - ] - }, - "max_connect_errors": { - "cli": "--max-connect-errors=#", - "default": "100", - "dynamic": true, - "name": "max_connect_errors", - "range": { - "from": 1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#max_connect_errors", - "15#sysvar_max_connect_errors" - ] - }, - "max_connections": { - "cli": "--max-connections=#", - "default": "151", - "dynamic": true, - "name": "max_connections", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#max_connections", - "15#sysvar_max_connections" - ] - }, - "max_delayed_threads": { - "cli": "--max-delayed-threads=#", - "default": "20", - "dynamic": true, - "name": "max_delayed_threads", - "range": { - "from": 0, - "to": 16384 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#max_delayed_threads", - "15#sysvar_max_delayed_threads" - ] - }, - "max_digest_length": { - "cli": "--max-digest-length=#", - "default": "1024", - "name": "max_digest_length", - "range": { - "from": 0, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#max_digest_length", - "15#sysvar_max_digest_length" - ] - }, - "max_error_count": { - "cli": "--max-error-count=#", - "dynamic": true, - "name": "max_error_count", - "range": { - "from": 0, - "to": 65535 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#max_error_count", - "15#sysvar_max_error_count" - ] - }, - "max_heap_table_size": { - "cli": "--max-heap-table-size=#", - "default": "16777216", - "dynamic": true, - "name": "max_heap_table_size", - "range": { - "from": 16384 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#max_heap_table_size", - "15#sysvar_max_heap_table_size" - ] - }, - "max_insert_delayed_threads": { - "dynamic": true, - "name": "max_insert_delayed_threads", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#max_insert_delayed_threads", - "15#sysvar_max_insert_delayed_threads" - ] - }, - "max_join_size": { - "cli": "--max-join-size=#", - "default": "18446744073709551615", - "dynamic": true, - "name": "max_join_size", - "range": { - "from": 1, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#max_join_size", - "15#sysvar_max_join_size" - ] - }, - "max_length_for_sort_data": { - "cli": "--max-length-for-sort-data=#", - "dynamic": true, - "name": "max_length_for_sort_data", - "range": { - "from": 4, - "to": 8388608 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#max_length_for_sort_data", - "15#sysvar_max_length_for_sort_data" - ] - }, - "max_long_data_size": { - "cli": "--max-long-data-size=#", - "default": "16777216 (16M) >= MariaDB 10.2.4, 4194304 (4M) <= MariaDB 10.2.3, >= MariaDB 10.1.7, 1048576 (1M) <= MariaDB 10.1.6", - "dynamic": false, - "name": "max_long_data_size", - "range": { - "from": 1024, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#max_long_data_size" - ] - }, - "max_password_errors": { - "cli": "--max-password-errors=#", - "default": "4294967295", - "dynamic": true, - "name": "max_password_errors", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#max_password_errors" - ] - }, - "max_prepared_stmt_count": { - "cli": "--max-prepared-stmt-count=#", - "default": "16382", - "dynamic": true, - "name": "max_prepared_stmt_count", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#max_prepared_stmt_count", - "15#sysvar_max_prepared_stmt_count" - ] - }, - "max_recursive_iterations": { - "cli": "--max-recursive-iterations=#", - "default": "4294967295", - "dynamic": true, - "name": "max_recursive_iterations", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#max_recursive_iterations" - ] - }, - "max_rowid_filter_size": { - "cli": "--max-rowid-filter-size=#", - "default": "131072", - "dynamic": true, - "name": "max_rowid_filter_size", - "range": { - "from": 1024, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#max_rowid_filter_size" - ] - }, - "max_seeks_for_key": { - "cli": "--max-seeks-for-key=#", - "dynamic": true, - "name": "max_seeks_for_key", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#max_seeks_for_key", - "15#sysvar_max_seeks_for_key" - ] - }, - "max_session_mem_used": { - "cli": "--max-session-mem-used=#", - "default": "9223372036854775807 (8192 PB)", - "dynamic": true, - "name": "max_session_mem_used", - "range": { - "from": 8192, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#max_session_mem_used" - ] - }, - "max_sort_length": { - "cli": "--max-sort-length=#", - "default": "1024", - "dynamic": true, - "name": "max_sort_length", - "range": { - "from": 4, - "to": 8388608 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#max_sort_length", - "15#sysvar_max_sort_length" - ] - }, - "max_sp_recursion_depth": { - "cli": "--max-sp-recursion-depth[=#]", - "default": "0", - "dynamic": true, - "name": "max_sp_recursion_depth", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#max_sp_recursion_depth", - "15#sysvar_max_sp_recursion_depth" - ] - }, - "max_statement_time": { - "cli": "--max-statement-time[=#]", - "default": "0.000000 >= MariaDB 10.1.13, 0 <= MariaDB 10.1.12", - "dynamic": true, - "name": "max_statement_time", - "range": { - "from": 0, - "to": "upwards" - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#max_statement_time" - ] - }, - "max_tmp_tables": { - "name": "max_tmp_tables", - "ids": [ - "29#max_tmp_tables" - ] - }, - "max_user_connections": { - "cli": "--max-user-connections=#", - "default": "0", - "name": "max_user_connections", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#max_user_connections", - "15#sysvar_max_user_connections" - ] - }, - "max_write_lock_count": { - "cli": "--max-write-lock-count=#", - "name": "max_write_lock_count", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#max_write_lock_count", - "15#sysvar_max_write_lock_count" - ] - }, - "metadata_locks_cache_size": { - "cli": "--metadata-locks-cache-size=#", - "default": "1024", - "dynamic": false, - "name": "metadata_locks_cache_size", - "range": { - "from": 1, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#metadata_locks_cache_size", - "15#sysvar_metadata_locks_cache_size" - ] - }, - "metadata_locks_hash_instances": { - "cli": "--metadata-locks-hash-instances=#", - "default": "8", - "dynamic": false, - "name": "metadata_locks_hash_instances", - "range": { - "from": 1, - "to": 1024 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#metadata_locks_hash_instances", - "15#sysvar_metadata_locks_hash_instances" - ] - }, - "min_examined_row_limit": { - "cli": "--min-examined-row-limit=#", - "default": "0", - "dynamic": true, - "name": "min_examined_row_limit", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#min_examined_row_limit", - "15#sysvar_min_examined_row_limit" - ] - }, - "mrr_buffer_size": { - "cli": "--mrr-buffer-size=#", - "default": "262144", - "dynamic": true, - "name": "mrr_buffer_size", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#mrr_buffer_size" - ] - }, - "multi_range_count": { - "cli": "--multi-range-count=#", - "default": "256", - "dynamic": true, - "name": "multi_range_count", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#multi_range_count", - "15#sysvar_multi_range_count" - ] - }, - "mysql56_temporal_format": { - "cli": "--mysql56-temporal-format", - "default": "ON", - "dynamic": true, - "name": "mysql56_temporal_format", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "29#mysql56_temporal_format" - ] - }, - "named_pipe": { - "cli": "--named-pipe[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "name": "named_pipe", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "29#named_pipe", - "15#sysvar_named_pipe" - ] - }, - "net_buffer_length": { - "cli": "--net-buffer-length=#", - "default": "16384", - "dynamic": true, - "name": "net_buffer_length", - "range": { - "from": 1024, - "to": 1048576 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#net_buffer_length", - "15#sysvar_net_buffer_length" - ] - }, - "net_read_timeout": { - "cli": "--net-read-timeout=#", - "default": "30", - "dynamic": true, - "name": "net_read_timeout", - "range": { - "from": 1, - "to": "upwards" - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#net_read_timeout", - "15#sysvar_net_read_timeout" - ] - }, - "net_retry_count": { - "cli": "--net-retry-count=#", - "default": "10", - "dynamic": true, - "name": "net_retry_count", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#net_retry_count", - "15#sysvar_net_retry_count" - ] - }, - "net_write_timeout": { - "cli": "--net-write-timeout=#", - "default": "60", - "dynamic": true, - "name": "net_write_timeout", - "range": { - "from": 1, - "to": "upwards" - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#net_write_timeout", - "15#sysvar_net_write_timeout" - ] - }, - "old": { - "cli": "--old[={OFF|ON}]", - "default": "OFF", - "name": "old", - "type": "boolean", - "ids": [ - "29#old", - "15#sysvar_old" - ] - }, - "old_alter_table": { - "cli": "--old-alter-table[={OFF|ON}]", - "default": "0", - "dynamic": true, - "name": "old_alter_table", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "29#old_alter_table", - "15#sysvar_old_alter_table" - ] - }, - "old_mode": { - "cli": "--old-mode", - "default": "(empty string)", - "dynamic": true, - "name": "old_mode", - "scope": [ - "global", - "session" - ], - "type": "string", - "validValues": [], - "ids": [ - "29#old_mode" - ] - }, - "old_passwords": { - "cli": "--old-passwords=value", - "default": "0", - "dynamic": true, - "name": "old_passwords", - "scope": [ - "global", - "session" - ], - "validValues": [ - "0", - "2" - ], - "ids": [ - "29#old_passwords", - "15#sysvar_old_passwords" - ] - }, - "open_files_limit": { - "cli": "--open-files-limit=count", - "dynamic": false, - "name": "open_files_limit", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#open_files_limit", - "15#sysvar_open_files_limit" - ] - }, - "optimizer_prune_level": { - "default": "1", - "dynamic": true, - "name": "optimizer_prune_level", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "ids": [ - "29#optimizer_prune_level", - "15#sysvar_optimizer_prune_level" - ] - }, - "optimizer_search_depth": { - "default": "62", - "dynamic": true, - "name": "optimizer_search_depth", - "range": { - "from": 0 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#optimizer_search_depth", - "15#sysvar_optimizer_search_depth" - ] - }, - "optimizer_selectivity_sampling_limit": { - "cli": "optimizer-selectivity-sampling-limit[=#]", - "default": "100", - "dynamic": true, - "name": "optimizer_selectivity_sampling_limit", - "range": { - "from": 10, - "to": "upwards" - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#optimizer_selectivity_sampling_limit" - ] - }, - "optimizer_switch": { - "cli": "--optimizer-switch=value", - "dynamic": true, - "name": "optimizer_switch", - "scope": [ - "global", - "session" - ], - "ids": [ - "29#optimizer_switch", - "15#sysvar_optimizer_switch" - ] - }, - "optimizer_use_condition_selectivity": { - "cli": "--optimizer-use-condition-selectivity=#", - "default": "4 (>= MariaDB 10.4.1), 1 (<= MariaDB 10.4.0)", - "dynamic": true, - "name": "optimizer_use_condition_selectivity", - "range": { - "from": 1, - "to": 5 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#optimizer_use_condition_selectivity" - ] - }, - "optimizer_trace": { - "cli": "--optimizer-trace=value", - "dynamic": true, - "name": "optimizer_trace", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "29#optimizer_trace", - "15#sysvar_optimizer_trace" - ] - }, - "optimizer_trace_max_mem_size": { - "cli": "--optimizer-trace-max-mem-size=#", - "dynamic": true, - "name": "optimizer_trace_max_mem_size", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#optimizer_trace_max_mem_size", - "15#sysvar_optimizer_trace_max_mem_size" - ] - }, - "pid_file": { - "cli": "--pid-file=file_name", - "dynamic": false, - "name": "pid_file", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - "29#pid_file", - "15#sysvar_pid_file" - ] - }, - "plugin_dir": { - "cli": "--plugin-dir=path", - "default": "BASEDIR/lib/plugin", - "dynamic": false, - "name": "plugin_dir", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - "29#plugin_dir", - "15#sysvar_plugin_dir" - ] - }, - "plugin_maturity": { - "cli": "--plugin-maturity=level", - "default": "One less than the server maturity (>= MariaDB 10.3.3), unknown (<= MariaDB 10.3.2)", - "dynamic": false, - "name": "plugin_maturity", - "scope": [ - "global" - ], - "validValues": [ - "unknown", - "experimental", - "alpha", - "beta", - "gamma", - "stable" - ], - "ids": [ - "29#plugin_maturity" - ] - }, - "port": { - "cli": "--port=port_num", - "default": "3306", - "dynamic": false, - "name": "port", - "range": { - "from": 0, - "to": 65535 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#port", - "16#option_mysqld_port", - "15#sysvar_port" - ] - }, - "preload_buffer_size": { - "cli": "--preload-buffer-size=#", - "default": "32768", - "dynamic": true, - "name": "preload_buffer_size", - "range": { - "from": 1024, - "to": 1073741824 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#preload_buffer_size", - "15#sysvar_preload_buffer_size" - ] - }, - "profiling": { - "default": "OFF", - "dynamic": true, - "name": "profiling", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "29#profiling" - ] - }, - "profiling_history_size": { - "cli": "--profiling-history-size=#", - "default": "15", - "dynamic": true, - "name": "profiling_history_size", - "range": { - "from": 0, - "to": 100 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#profiling_history_size" - ] - }, - "progress_report_time": { - "cli": "--progress-report-time=#", - "default": "56 before MariaDB 5.5.39 and MariaDB 10.0.10, 5 as of MariaDB 5.5.40 and MariaDB 10.0.11", - "dynamic": true, - "name": "progress_report_time", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#progress_report_time" - ] - }, - "protocol_version": { - "dynamic": false, - "name": "protocol_version", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#protocol_version", - "15#sysvar_protocol_version" - ] - }, - "proxy_protocol_networks": { - "cli": "--proxy-protocol-networks=value", - "default": "(empty)", - "dynamic": false, - "name": "proxy_protocol_networks", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "29#proxy_protocol_networks" - ] - }, - "proxy_user": { - "dynamic": false, - "name": "proxy_user", - "scope": [ - "session" - ], - "type": "string", - "ids": [ - "29#proxy_user", - "15#sysvar_proxy_user" - ] - }, - "pseudo_slave_mode": { - "dynamic": true, - "name": "pseudo_slave_mode", - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - "29#pseudo_slave_mode", - "15#sysvar_pseudo_slave_mode" - ] - }, - "pseudo_thread_id": { - "dynamic": true, - "name": "pseudo_thread_id", - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - "29#pseudo_thread_id", - "15#sysvar_pseudo_thread_id" - ] - }, - "query_alloc_block_size": { - "cli": "--query-alloc-block-size=#", - "dynamic": true, - "name": "query_alloc_block_size", - "range": { - "from": 1024, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#query_alloc_block_size", - "15#sysvar_query_alloc_block_size" - ] - }, - "query_cache_limit": { - "cli": "--query-cache-limit=#", - "default": "1048576", - "dynamic": true, - "name": "query_cache_limit", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#query_cache_limit", - "15#sysvar_query_cache_limit" - ] - }, - "query_cache_min_res_unit": { - "cli": "--query-cache-min-res-unit=#", - "default": "4096", - "dynamic": true, - "name": "query_cache_min_res_unit", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#query_cache_min_res_unit", - "15#sysvar_query_cache_min_res_unit" - ] - }, - "query_cache_size": { - "cli": "--query-cache-size=#", - "dynamic": true, - "name": "query_cache_size", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#query_cache_size", - "15#sysvar_query_cache_size" - ] - }, - "query_cache_strip_comments": { - "cli": "query-cache-strip-comments", - "default": "OFF", - "dynamic": true, - "name": "query_cache_strip_comments", - "scope": [ - "session", - "global" - ], - "type": "boolean", - "ids": [ - "29#query_cache_strip_comments" - ] - }, - "query_cache_type": { - "cli": "--query-cache-type=#", - "default": "0", - "dynamic": true, - "name": "query_cache_type", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "0", - "OFF", - "1", - "ON", - "2", - "DEMAND" - ], - "ids": [ - "29#query_cache_type", - "15#sysvar_query_cache_type" - ] - }, - "query_cache_wlock_invalidate": { - "cli": "--query-cache-wlock-invalidate[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "query_cache_wlock_invalidate", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "29#query_cache_wlock_invalidate", - "15#sysvar_query_cache_wlock_invalidate" - ] - }, - "query_prealloc_size": { - "cli": "--query-prealloc-size=#", - "dynamic": true, - "name": "query_prealloc_size", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#query_prealloc_size", - "15#sysvar_query_prealloc_size" - ] - }, - "rand_seed1": { - "dynamic": true, - "name": "rand_seed1", - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - "29#rand_seed1", - "15#sysvar_rand_seed1" - ] - }, - "rand_seed2": { - "name": "rand_seed2", - "ids": [ - "29#rand_seed2" - ] - }, - "range_alloc_block_size": { - "cli": "--range-alloc-block-size=#", - "default": "4096", - "dynamic": true, - "name": "range_alloc_block_size", - "range": { - "from": 4096, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#range_alloc_block_size", - "15#sysvar_range_alloc_block_size" - ] - }, - "read_buffer_size": { - "cli": "--read-buffer-size=#", - "default": "131072", - "dynamic": true, - "name": "read_buffer_size", - "range": { - "from": 8200, - "to": 2147479552 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#read_buffer_size", - "15#sysvar_read_buffer_size" - ] - }, - "read_only": { - "cli": "--read-only[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "read_only", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "29#read_only", - "15#sysvar_read_only" - ] - }, - "read_rnd_buffer_size": { - "cli": "--read-rnd-buffer-size=#", - "default": "262144", - "dynamic": true, - "name": "read_rnd_buffer_size", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#read_rnd_buffer_size", - "15#sysvar_read_rnd_buffer_size" - ] - }, - "rowid_merge_buff_size": { - "cli": "--rowid-merge-buff-size=#", - "default": "8388608", - "dynamic": true, - "name": "rowid_merge_buff_size", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#rowid_merge_buff_size" - ] - }, - "rpl_recovery_rank": { - "name": "rpl_recovery_rank", - "ids": [ - "29#rpl_recovery_rank" - ] - }, - "safe_show_database": { - "cli": "--safe-show-database (until MySQL 4.1.1)", - "dynamic": true, - "name": "safe_show_database", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "29#safe_show_database" - ] - }, - "secure_auth": { - "cli": "--secure-auth[={OFF|ON}]", - "default": "1", - "dynamic": true, - "name": "secure_auth", - "scope": [ - "global" - ], - "type": "boolean", - "validValues": [ - "ON" - ], - "ids": [ - "29#secure_auth", - "15#sysvar_secure_auth" - ] - }, - "secure_file_priv": { - "cli": "--secure-path-priv=path", - "default": "platform specific", - "dynamic": false, - "name": "secure_file_priv", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "empty string", - "dirname", - "NULL" - ], - "ids": [ - "29#secure_file_priv", - "15#sysvar_secure_file_priv" - ] - }, - "secure_timestamp": { - "cli": "--secure-timestamp=value", - "default": "NO", - "dynamic": false, - "name": "secure_timestamp", - "scope": [ - "global" - ], - "ids": [ - "29#secure_timestamp" - ] - }, - "session_track_schema": { - "default": "ON", - "dynamic": true, - "name": "session_track_schema", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "29#session_track_schema", - "15#sysvar_session_track_schema" - ] - }, - "session_track_state_change": { - "default": "OFF", - "dynamic": true, - "name": "session_track_state_change", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "29#session_track_state_change", - "15#sysvar_session_track_state_change" - ] - }, - "session_track_system_variables": { - "cli": "--session-track-system-variables=value", - "default": "time_z1e, autocommit, character_set_client, character_set_results, character_set_c1necti1", - "dynamic": true, - "name": "session_track_system_variables", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "29#session_track_system_variables", - "15#sysvar_session_track_system_variables" - ] - }, - "session_track_transaction_info": { - "cli": "--session-track-transaction-info=value", - "default": "OFF", - "dynamic": true, - "name": "session_track_transaction_info", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "OFF", - "STATE", - "CHARACTERISTICS" - ], - "ids": [ - "29#session_track_transaction_info", - "15#sysvar_session_track_transaction_info" - ] - }, - "shared_memory": { - "cli": "--shared-memory[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "name": "shared_memory", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "29#shared_memory", - "15#sysvar_shared_memory" - ] - }, - "shared_memory_base_name": { - "cli": "--shared-memory-base-name=name", - "default": "MYSQL", - "dynamic": false, - "name": "shared_memory_base_name", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "29#shared_memory_base_name", - "15#sysvar_shared_memory_base_name" - ] - }, - "skip_external_locking": { - "cli": "--skip-external-locking[={OFF|ON}]", - "default": "1", - "dynamic": false, - "name": "skip_external_locking", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "29#skip_external_locking", - "15#sysvar_skip_external_locking" - ] - }, - "skip_name_resolve": { - "cli": "--skip-name-resolve[={OFF|ON}]", - "default": "0", - "dynamic": false, - "name": "skip_name_resolve", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "29#skip_name_resolve", - "15#sysvar_skip_name_resolve" - ] - }, - "skip_networking": { - "cli": "--skip-networking[={OFF|ON}]", - "default": "0", - "dynamic": false, - "name": "skip_networking", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "29#skip_networking", - "15#sysvar_skip_networking" - ] - }, - "skip_show_database": { - "cli": "--skip-show-database", - "dynamic": false, - "name": "skip_show_database", - "scope": [ - "global" - ], - "ids": [ - "29#skip_show_database", - "16#option_mysqld_skip-show-database", - "15#sysvar_skip_show_database" - ] - }, - "slow_launch_time": { - "cli": "--slow-launch-time=#", - "default": "2", - "dynamic": true, - "name": "slow_launch_time", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#slow_launch_time", - "15#sysvar_slow_launch_time" - ] - }, - "slow_query_log": { - "cli": "--slow-query-log[={OFF|ON}]", - "default": "0", - "dynamic": true, - "name": "slow_query_log", - "type": "boolean", - "ids": [ - "29#slow_query_log", - "15#sysvar_slow_query_log" - ] - }, - "slow_query_log_file": { - "cli": "--slow-query-log-file=file_name", - "default": "host_name-slow.log", - "dynamic": true, - "name": "slow_query_log_file", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - "29#slow_query_log_file", - "15#sysvar_slow_query_log_file" - ] - }, - "socket": { - "cli": "--socket={file_name|pipe_name}", - "dynamic": false, - "name": "socket", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "29#socket", - "16#option_mysqld_socket", - "15#sysvar_socket" - ] - }, - "sort_buffer_size": { - "cli": "--sort-buffer-size=#", - "dynamic": true, - "name": "sort_buffer_size", - "range": { - "from": 32768 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#sort_buffer_size", - "15#sysvar_sort_buffer_size" - ] - }, - "sql_auto_is_null": { - "default": "0", - "dynamic": true, - "name": "sql_auto_is_null", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "29#sql_auto_is_null", - "15#sysvar_sql_auto_is_null" - ] - }, - "sql_big_selects": { - "default": "1", - "dynamic": true, - "name": "sql_big_selects", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "29#sql_big_selects", - "15#sysvar_sql_big_selects" - ] - }, - "sql_big_tables": { - "cli": "--sql-big-tables", - "default": "0", - "dynamic": true, - "name": "sql_big_tables", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "29#sql_big_tables" - ] - }, - "sql_buffer_result": { - "default": "0", - "dynamic": true, - "name": "sql_buffer_result", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "29#sql_buffer_result", - "15#sysvar_sql_buffer_result" - ] - }, - "sql_log_off": { - "default": "0", - "dynamic": true, - "name": "sql_log_off", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "validValues": [ - "OFF", - "ON" - ], - "ids": [ - "29#sql_log_off", - "15#sysvar_sql_log_off" - ] - }, - "sql_log_update": { - "name": "sql_log_update", - "ids": [ - "29#sql_log_update" - ] - }, - "sql_low_priority_updates": { - "cli": "--sql-low-priority-updates", - "default": "0", - "dynamic": true, - "name": "sql_low_priority_updates", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "29#sql_low_priority_updates" - ] - }, - "sql_max_join_size": { - "name": "sql_max_join_size", - "ids": [ - "29#sql_max_join_size" - ] - }, - "sql_mode": { - "cli": "--sql-mode=name", - "dynamic": true, - "name": "sql_mode", - "scope": [ - "global", - "session" - ], - "type": "set", - "ids": [ - "29#sql_mode", - "16#option_mysqld_sql-mode", - "15#sysvar_sql_mode" - ] - }, - "sql_notes": { - "default": "1", - "dynamic": true, - "name": "sql_notes", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "29#sql_notes", - "15#sysvar_sql_notes" - ] - }, - "sql_quote_show_create": { - "default": "1", - "dynamic": true, - "name": "sql_quote_show_create", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "29#sql_quote_show_create", - "15#sysvar_sql_quote_show_create" - ] - }, - "sql_safe_updates": { - "default": "OFF", - "dynamic": true, - "name": "sql_safe_updates", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "29#sql_safe_updates", - "15#sysvar_sql_safe_updates" - ] - }, - "sql_select_limit": { - "dynamic": true, - "name": "sql_select_limit", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#sql_select_limit", - "15#sysvar_sql_select_limit" - ] - }, - "sql_warnings": { - "default": "0", - "dynamic": true, - "name": "sql_warnings", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "29#sql_warnings", - "15#sysvar_sql_warnings" - ] - }, - "storage_engine": { - "name": "storage_engine", - "ids": [ - "29#storage_engine" - ] - }, - "standard_compliant_cte": { - "cli": "--standard-compliant-cte={0|1}", - "default": "ON", - "dynamic": true, - "name": "standard_compliant_cte", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "29#standard_compliant_cte" - ] - }, - "stored_program_cache": { - "cli": "--stored-program-cache=#", - "default": "256", - "dynamic": true, - "name": "stored_program_cache", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#stored_program_cache", - "15#sysvar_stored_program_cache" - ] - }, - "strict_password_validation": { - "cli": "--strict-password-validation", - "default": "ON", - "dynamic": true, - "name": "strict_password_validation", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "29#strict_password_validation" - ] - }, - "sync_frm": { - "cli": "--sync-frm", - "default": "TRUE", - "dynamic": true, - "name": "sync_frm", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "29#sync_frm" - ] - }, - "system_time_zone": { - "dynamic": false, - "name": "system_time_zone", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "29#system_time_zone", - "15#sysvar_system_time_zone" - ] - }, - "table_definition_cache": { - "cli": "--table-definition-cache=#", - "dynamic": true, - "name": "table_definition_cache", - "range": { - "from": 400 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#table_definition_cache", - "15#sysvar_table_definition_cache" - ] - }, - "table_lock_wait_timeout": { - "cli": "--table-lock-wait-timeout=#", - "default": "50", - "dynamic": true, - "name": "table_lock_wait_timeout", - "range": { - "from": 1, - "to": 1073741824 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#table_lock_wait_timeout" - ] - }, - "table_open_cache": { - "cli": "--table-open-cache=#", - "dynamic": true, - "name": "table_open_cache", - "range": { - "from": 1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#table_open_cache", - "15#sysvar_table_open_cache" - ] - }, - "table_open_cache_instances": { - "cli": "--table-open-cache-instances=#", - "dynamic": false, - "name": "table_open_cache_instances", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#table_open_cache_instances", - "15#sysvar_table_open_cache_instances" - ] - }, - "table_type": { - "name": "table_type", - "ids": [ - "29#table_type" - ] - }, - "tcp_keepalive_interval": { - "cli": "--tcp-keepalive-interval=#", - "default": "0", - "dynamic": true, - "name": "tcp_keepalive_interval", - "range": { - "from": 0, - "to": 2147483 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#tcp_keepalive_interval" - ] - }, - "tcp_keepalive_probes": { - "cli": "--tcp-keepalive-probes=#", - "default": "0", - "dynamic": true, - "name": "tcp_keepalive_probes", - "range": { - "from": 0, - "to": 2147483 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#tcp_keepalive_probes" - ] - }, - "tcp_keepalive_time": { - "cli": "--tcp-keepalive-time=#", - "default": "0", - "dynamic": true, - "name": "tcp_keepalive_time", - "range": { - "from": 0, - "to": 2147483 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#tcp_keepalive_time" - ] - }, - "tcp_nodelay": { - "cli": "--tcp-nodelay={0|1}", - "default": "1", - "dynamic": true, - "name": "tcp_nodelay", - "scope": [ - "session" - ], - "type": "boolean", - "ids": [ - "29#tcp_nodelay" - ] - }, - "thread_cache_size": { - "cli": "--thread-cache-size=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": true, - "name": "thread_cache_size", - "range": { - "from": 0, - "to": 16384 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#thread_cache_size", - "15#sysvar_thread_cache_size" - ] - }, - "thread_concurrency": { - "cli": "--thread-concurrency=#", - "default": "10", - "dynamic": false, - "name": "thread_concurrency", - "range": { - "from": 1, - "to": 512 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#thread_concurrency" - ] - }, - "thread_stack": { - "cli": "--thread-stack=#", - "dynamic": false, - "name": "thread_stack", - "range": { - "from": 131072, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "29#thread_stack", - "15#sysvar_thread_stack" - ] - }, - "time_format": { - "name": "time_format", - "ids": [ - "29#time_format" - ] - }, - "time_zone": { - "dynamic": true, - "name": "time_zone", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "29#time_zone", - "15#sysvar_time_zone" - ] - }, - "timed_mutexes": { - "cli": "--timed-mutexes", - "default": "OFF", - "dynamic": true, - "name": "timed_mutexes", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "29#timed_mutexes" - ] - }, - "timestamp": { - "dynamic": true, - "name": "timestamp", - "scope": [ - "session" - ], - "type": "numeric", - "ids": [ - "29#timestamp", - "15#sysvar_timestamp" - ] - }, - "tmp_disk_table_size": { - "cli": "--tmp-disk-table-size=#", - "default": "18446744073709551615 (max unsigned integer, no limit)", - "dynamic": true, - "name": "tmp_disk_table_size", - "range": { - "from": 1024, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#tmp_disk_table_size" - ] - }, - "tmp_memory_table_size": { - "cli": "--tmp-memory-table-size=#", - "name": "tmp_memory_table_size", - "ids": [ - "29#tmp_memory_table_size" - ] - }, - "tmp_table_size": { - "cli": "--tmp-table-size=#", - "default": "16777216", - "dynamic": true, - "name": "tmp_table_size", - "range": { - "from": 1024 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#tmp_table_size", - "15#sysvar_tmp_table_size" - ] - }, - "tmpdir": { - "cli": "--tmpdir=path or -t path", - "dynamic": false, - "name": "tmpdir", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - "29#tmpdir", - "16#option_mysqld_tmpdir", - "15#sysvar_tmpdir" - ] - }, - "transaction_alloc_block_size": { - "cli": "--transaction-alloc-block-size=#", - "default": "8192", - "dynamic": true, - "name": "transaction_alloc_block_size", - "range": { - "from": 1024 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#transaction_alloc_block_size", - "15#sysvar_transaction_alloc_block_size" - ] - }, - "transaction_prealloc_size": { - "cli": "--transaction-prealloc-size=#", - "default": "4096", - "dynamic": true, - "name": "transaction_prealloc_size", - "range": { - "from": 1024 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#transaction_prealloc_size", - "15#sysvar_transaction_prealloc_size" - ] - }, - "tx_isolation": { - "default": "REPEATABLE-READ", - "dynamic": true, - "name": "tx_isolation", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "READ-UNCOMMITTED", - "READ-COMMITTED", - "REPEATABLE-READ", - "SERIALIZABLE" - ], - "ids": [ - "29#tx_isolation", - "15#sysvar_tx_isolation" - ] - }, - "tx_read_only": { - "default": "0", - "dynamic": true, - "name": "tx_read_only", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "29#tx_read_only", - "15#sysvar_tx_read_only" - ] - }, - "unique_checks": { - "default": "1", - "dynamic": true, - "name": "unique_checks", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "29#unique_checks", - "15#sysvar_unique_checks" - ] - }, - "updatable_views_with_limit": { - "default": "1", - "dynamic": true, - "name": "updatable_views_with_limit", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "29#updatable_views_with_limit", - "15#sysvar_updatable_views_with_limit" - ] - }, - "use_stat_tables": { - "cli": "--use-stat-tables=mode", - "default": "preferably_for_queries (>= MariaDB 10.4.1), never (<= MariaDB 10.4.0)", - "dynamic": true, - "name": "use_stat_tables", - "scope": [ - "global", - "session" - ], - "ids": [ - "29#use_stat_tables" - ] - }, - "version": { - "cli": "-V, --version[=name] (>= MariaDB 10.2.1), --version (<= MariaDB 10.2.0)", - "dynamic": false, - "name": "version", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "29#version" - ] - }, - "version_comment": { - "dynamic": false, - "name": "version_comment", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "29#version_comment", - "15#sysvar_version_comment" - ] - }, - "version_compile_machine": { - "dynamic": false, - "name": "version_compile_machine", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "29#version_compile_machine", - "15#sysvar_version_compile_machine" - ] - }, - "version_compile_os": { - "dynamic": false, - "name": "version_compile_os", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "29#version_compile_os", - "15#sysvar_version_compile_os" - ] - }, - "version_malloc_library": { - "dynamic": false, - "name": "version_malloc_library", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "29#version_malloc_library" - ] - }, - "version_source_revision": { - "dynamic": false, - "name": "version_source_revision", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "29#version_source_revision" - ] - }, - "wait_timeout": { - "cli": "--wait-timeout=#", - "default": "28800", - "dynamic": true, - "name": "wait_timeout", - "range": { - "from": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "29#wait_timeout", - "15#sysvar_wait_timeout" - ] - }, - "warning_count": { - "dynamic": false, - "name": "warning_count", - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - "29#warning_count" - ] - }, - "Sphinx_error": { - "name": "Sphinx_error", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "31#sphinx_error" - ] - }, - "Sphinx_time": { - "name": "Sphinx_time", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "30#sphinx_time" - ] - }, - "Sphinx_total": { - "name": "Sphinx_total", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "30#sphinx_total" - ] - }, - "Sphinx_total_found": { - "name": "Sphinx_total_found", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "30#sphinx_total_found" - ] - }, - "Sphinx_word_count": { - "name": "Sphinx_word_count", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "30#sphinx_word_count" - ] - }, - "Sphinx_words": { - "name": "Sphinx_words", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "30#sphinx_words" - ] - }, - "Spider_direct_aggregate": { - "name": "Spider_direct_aggregate", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_direct_aggregate" - ] - }, - "Spider_direct_order_limit": { - "name": "Spider_direct_order_limit", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "31#spider_direct_order_limit" - ] - }, - "Spider_mon_table_cache_version": { - "name": "Spider_mon_table_cache_version", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "31#spider_mon_table_cache_version" - ] - }, - "Spider_mon_table_cache_version_req": { - "name": "Spider_mon_table_cache_version_req", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "31#spider_mon_table_cache_version_req" - ] - }, - "spider_auto_increment_mode": { - "dynamic": true, - "name": "spider_auto_increment_mode", - "range": { - "from": -1, - "to": 3 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "33#spider_auto_increment_mode" - ] - }, - "spider_bgs_first_read": { - "dynamic": true, - "name": "spider_bgs_first_read", - "range": { - "from": -1, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_bgs_first_read" - ] - }, - "spider_bgs_mode": { - "dynamic": true, - "name": "spider_bgs_mode", - "range": { - "from": -1, - "to": 3 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_bgs_mode" - ] - }, - "spider_bgs_second_read": { - "dynamic": true, - "name": "spider_bgs_second_read", - "range": { - "from": -1, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_bgs_second_read" - ] - }, - "spider_bka_engine": { - "dynamic": true, - "name": "spider_bka_engine", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "32#spider_bka_engine" - ] - }, - "spider_bka_mode": { - "dynamic": true, - "name": "spider_bka_mode", - "range": { - "from": -1, - "to": 2 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_bka_mode" - ] - }, - "spider_bka_table_name_type": { - "dynamic": true, - "name": "spider_bka_table_name_type", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_bka_table_name_type" - ] - }, - "spider_block_size": { - "dynamic": true, - "name": "spider_block_size", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_block_size" - ] - }, - "spider_bulk_size": { - "dynamic": true, - "name": "spider_bulk_size", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_bulk_size" - ] - }, - "spider_bulk_update_mode": { - "dynamic": true, - "name": "spider_bulk_update_mode", - "range": { - "from": -1, - "to": 2 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_bulk_update_mode" - ] - }, - "spider_bulk_update_size": { - "dynamic": true, - "name": "spider_bulk_update_size", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_bulk_update_size" - ] - }, - "spider_casual_read": { - "dynamic": true, - "name": "spider_casual_read", - "range": { - "from": -1, - "to": 63 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_casual_read" - ] - }, - "spider_conn_recycle_mode": { - "dynamic": true, - "name": "spider_conn_recycle_mode", - "range": { - "from": 0, - "to": 2 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_conn_recycle_mode" - ] - }, - "spider_conn_recycle_strict": { - "dynamic": true, - "name": "spider_conn_recycle_strict", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_conn_recycle_strict" - ] - }, - "spider_conn_wait_timeout": { - "dynamic": true, - "name": "spider_conn_wait_timeout", - "range": { - "from": 0, - "to": 1000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_conn_wait_timeout" - ] - }, - "spider_connect_error_interval": { - "default": "1", - "dynamic": true, - "name": "spider_connect_error_interval", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "32#spider_connect_error_interval" - ] - }, - "spider_connect_mutex": { - "dynamic": true, - "name": "spider_connect_mutex", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "32#spider_connect_mutex" - ] - }, - "spider_connect_retry_count": { - "dynamic": true, - "name": "spider_connect_retry_count", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_connect_retry_count" - ] - }, - "spider_connect_retry_interval": { - "dynamic": true, - "name": "spider_connect_retry_interval", - "range": { - "from": -1, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_connect_retry_interval" - ] - }, - "spider_connect_timeout": { - "dynamic": true, - "name": "spider_connect_timeout", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_connect_timeout" - ] - }, - "spider_crd_bg_mode": { - "dynamic": true, - "name": "spider_crd_bg_mode", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_crd_bg_mode" - ] - }, - "spider_crd_interval": { - "dynamic": true, - "name": "spider_crd_interval", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_crd_interval" - ] - }, - "spider_crd_mode": { - "dynamic": true, - "name": "spider_crd_mode", - "range": { - "from": -1, - "to": 3 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_crd_mode" - ] - }, - "spider_crd_sync": { - "dynamic": true, - "name": "spider_crd_sync", - "range": { - "from": -1, - "to": 2 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_crd_sync" - ] - }, - "spider_crd_type": { - "dynamic": true, - "name": "spider_crd_type", - "range": { - "from": -1, - "to": 2 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_crd_type" - ] - }, - "spider_crd_weight": { - "dynamic": true, - "name": "spider_crd_weight", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_crd_weight" - ] - }, - "spider_delete_all_rows_type": { - "dynamic": true, - "name": "spider_delete_all_rows_type", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_delete_all_rows_type" - ] - }, - "spider_direct_dup_insert": { - "dynamic": true, - "name": "spider_direct_dup_insert", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_direct_dup_insert" - ] - }, - "spider_direct_order_limit": { - "dynamic": true, - "name": "spider_direct_order_limit", - "range": { - "from": -1, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_direct_order_limit" - ] - }, - "spider_dry_access": { - "default": "OFF", - "dynamic": false, - "name": "spider_dry_access", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "32#spider_dry_access" - ] - }, - "spider_error_read_mode": { - "dynamic": true, - "name": "spider_error_read_mode", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_error_read_mode" - ] - }, - "spider_error_write_mode": { - "dynamic": true, - "name": "spider_error_write_mode", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_error_write_mode" - ] - }, - "spider_first_read": { - "dynamic": true, - "name": "spider_first_read", - "range": { - "from": -1, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_first_read" - ] - }, - "spider_force_commit": { - "dynamic": true, - "name": "spider_force_commit", - "range": { - "from": 0, - "to": 2 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_force_commit" - ] - }, - "spider_general_log": { - "dynamic": true, - "name": "spider_general_log", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "32#spider_general_log" - ] - }, - "spider_index_hint_pushdown": { - "dynamic": true, - "name": "spider_index_hint_pushdown", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "32#spider_index_hint_pushdown" - ] - }, - "spider_init_sql_alloc_size": { - "dynamic": true, - "name": "spider_init_sql_alloc_size", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_init_sql_alloc_size" - ] - }, - "spider_internal_limit": { - "dynamic": true, - "name": "spider_internal_limit", - "range": { - "from": -1, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_internal_limit" - ] - }, - "spider_internal_offset": { - "dynamic": true, - "name": "spider_internal_offset", - "range": { - "from": -1, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_internal_offset" - ] - }, - "spider_internal_optimize": { - "dynamic": true, - "name": "spider_internal_optimize", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_internal_optimize" - ] - }, - "spider_internal_optimize_local": { - "name": "spider_internal_optimize_local", - "range": { - "from": -1, - "to": 1 - }, - "ids": [ - "32#spider_internal_optimize_local" - ] - }, - "spider_internal_sql_log_off": { - "dynamic": true, - "name": "spider_internal_sql_log_off", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "32#spider_internal_sql_log_off" - ] - }, - "spider_internal_unlock": { - "name": "spider_internal_unlock", - "type": "boolean", - "ids": [ - "32#spider_internal_unlock" - ] - }, - "spider_internal_xa": { - "dynamic": true, - "name": "spider_internal_xa", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "32#spider_internal_xa" - ] - }, - "spider_internal_xa_id_type": { - "dynamic": true, - "name": "spider_internal_xa_id_type", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_internal_xa_id_type" - ] - }, - "spider_internal_xa_snapshot": { - "dynamic": true, - "name": "spider_internal_xa_snapshot", - "range": { - "from": 0, - "to": 3 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_internal_xa_snapshot" - ] - }, - "spider_load_crd_at_startup": { - "dynamic": true, - "name": "spider_load_crd_at_startup", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "32#spider_load_crd_at_startup" - ] - }, - "spider_load_sts_at_startup": { - "dynamic": true, - "name": "spider_load_sts_at_startup", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "32#spider_load_sts_at_startup" - ] - }, - "spider_local_lock_table": { - "dynamic": true, - "name": "spider_local_lock_table", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "32#spider_local_lock_table" - ] - }, - "spider_lock_exchange": { - "dynamic": true, - "name": "spider_lock_exchange", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "32#spider_lock_exchange" - ] - }, - "spider_log_result_error_with_sql": { - "dynamic": true, - "name": "spider_log_result_error_with_sql", - "range": { - "from": 0, - "to": 3 - }, - "type": "integer", - "ids": [ - "32#spider_log_result_error_with_sql" - ] - }, - "spider_log_result_errors": { - "dynamic": true, - "name": "spider_log_result_errors", - "range": { - "from": 0, - "to": 4 - }, - "type": "integer", - "ids": [ - "32#spider_log_result_errors" - ] - }, - "spider_low_mem_read": { - "default": "-1", - "name": "spider_low_mem_read", - "range": { - "from": -1, - "to": 1 - }, - "type": "integer", - "ids": [ - "32#spider_low_mem_read" - ] - }, - "spider_max_connections": { - "dynamic": true, - "name": "spider_max_connections", - "range": { - "from": 0, - "to": 99999 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_max_connections" - ] - }, - "spider_max_order": { - "dynamic": true, - "name": "spider_max_order", - "range": { - "from": -1, - "to": 32767 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_max_order" - ] - }, - "spider_multi_split_read": { - "dynamic": true, - "name": "spider_multi_split_read", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_multi_split_read" - ] - }, - "spider_net_read_timeout": { - "dynamic": true, - "name": "spider_net_read_timeout", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_net_read_timeout" - ] - }, - "spider_net_write_timeout": { - "dynamic": true, - "name": "spider_net_write_timeout", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_net_write_timeout" - ] - }, - "spider_ping_interval_at_trx_start": { - "dynamic": true, - "name": "spider_ping_interval_at_trx_start", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_ping_interval_at_trx_start" - ] - }, - "spider_quick_mode": { - "dynamic": true, - "name": "spider_quick_mode", - "range": { - "from": -1, - "to": 3 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_quick_mode" - ] - }, - "spider_quick_page_size": { - "dynamic": true, - "name": "spider_quick_page_size", - "range": { - "from": -1, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_quick_page_size" - ] - }, - "spider_read_only_mode": { - "dynamic": true, - "name": "spider_read_only_mode", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_read_only_mode" - ] - }, - "spider_remote_access_charset": { - "dynamic": true, - "name": "spider_remote_access_charset", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "32#spider_remote_access_charset" - ] - }, - "spider_remote_autocommit": { - "dynamic": true, - "name": "spider_remote_autocommit", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_remote_autocommit" - ] - }, - "spider_remote_default_database": { - "dynamic": true, - "name": "spider_remote_default_database", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "32#spider_remote_default_database" - ] - }, - "spider_remote_sql_log_off": { - "dynamic": true, - "name": "spider_remote_sql_log_off", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_remote_sql_log_off" - ] - }, - "spider_remote_time_zone": { - "dynamic": true, - "name": "spider_remote_time_zone", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "32#spider_remote_time_zone" - ] - }, - "spider_remote_trx_isolation": { - "dynamic": true, - "name": "spider_remote_trx_isolation", - "range": { - "from": -1, - "to": 3 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_remote_trx_isolation" - ] - }, - "spider_reset_sql_alloc": { - "dynamic": true, - "name": "spider_reset_sql_alloc", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_reset_sql_alloc" - ] - }, - "spider_same_server_link": { - "dynamic": true, - "name": "spider_same_server_link", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "32#spider_same_server_link" - ] - }, - "spider_second_read": { - "dynamic": true, - "name": "spider_second_read", - "range": { - "from": -1, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_second_read" - ] - }, - "spider_select_column_mode": { - "dynamic": true, - "name": "spider_select_column_mode", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_select_column_mode" - ] - }, - "spider_selupd_lock_mode": { - "dynamic": true, - "name": "spider_selupd_lock_mode", - "range": { - "from": -1, - "to": 2 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_selupd_lock_mode" - ] - }, - "spider_semi_split_read": { - "dynamic": true, - "name": "spider_semi_split_read", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_semi_split_read" - ] - }, - "spider_semi_split_read_limit": { - "dynamic": true, - "name": "spider_semi_split_read_limit", - "range": { - "from": -1, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_semi_split_read_limit" - ] - }, - "spider_semi_table_lock": { - "dynamic": true, - "name": "spider_semi_table_lock", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_semi_table_lock" - ] - }, - "spider_semi_table_lock_connection": { - "dynamic": true, - "name": "spider_semi_table_lock_connection", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_semi_table_lock_connection" - ] - }, - "spider_semi_trx": { - "dynamic": true, - "name": "spider_semi_trx", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "32#spider_semi_trx" - ] - }, - "spider_semi_trx_isolation": { - "dynamic": true, - "name": "spider_semi_trx_isolation", - "range": { - "from": -1, - "to": 3 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_semi_trx_isolation" - ] - }, - "spider_skip_default_condition": { - "dynamic": true, - "name": "spider_skip_default_condition", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_skip_default_condition" - ] - }, - "spider_skip_parallel_search": { - "cli": "--spider-skip-parallel-search=#", - "dynamic": true, - "name": "spider_skip_parallel_search", - "range": { - "from": -1, - "to": 3 - }, - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - "32#spider_skip_parallel_search" - ] - }, - "spider_split_read": { - "dynamic": true, - "name": "spider_split_read", - "range": { - "from": -1, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_split_read" - ] - }, - "spider_store_last_crd": { - "cli": "--spider-store-last-crd=#", - "dynamic": true, - "name": "spider_store_last_crd", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "32#spider_store_last_crd" - ] - }, - "spider_store_last_sts": { - "cli": "--spider-store-last-sts=#", - "dynamic": true, - "name": "spider_store_last_sts", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "32#spider_store_last_sts" - ] - }, - "spider_sts_bg_mode": { - "dynamic": true, - "name": "spider_sts_bg_mode", - "range": { - "from": -1, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_sts_bg_mode" - ] - }, - "spider_sts_interval": { - "dynamic": true, - "name": "spider_sts_interval", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_sts_interval" - ] - }, - "spider_sts_mode": { - "dynamic": true, - "name": "spider_sts_mode", - "range": { - "from": -1, - "to": 2 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_sts_mode" - ] - }, - "spider_sts_sync": { - "dynamic": true, - "name": "spider_sts_sync", - "range": { - "from": -1, - "to": 2 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_sts_sync" - ] - }, - "spider_support_xa": { - "dynamic": false, - "name": "spider_support_xa", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "32#spider_support_xa" - ] - }, - "spider_sync_autocommit": { - "dynamic": true, - "name": "spider_sync_autocommit", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "32#spider_sync_autocommit" - ] - }, - "spider_sync_time_zone": { - "dynamic": true, - "name": "spider_sync_time_zone", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "32#spider_sync_time_zone" - ] - }, - "spider_sync_trx_isolation": { - "dynamic": true, - "name": "spider_sync_trx_isolation", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "32#spider_sync_trx_isolation" - ] - }, - "spider_table_crd_thread_count": { - "cli": "--spider-table-crd-thread-count=#", - "default": "10", - "dynamic": false, - "name": "spider_table_crd_thread_count", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "32#spider_table_crd_thread_count" - ] - }, - "spider_table_init_error_interval": { - "default": "1", - "dynamic": true, - "name": "spider_table_init_error_interval", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "32#spider_table_init_error_interval" - ] - }, - "spider_table_sts_thread_count": { - "cli": "--spider-table-sts-thread-count=#", - "default": "10", - "dynamic": false, - "name": "spider_table_sts_thread_count", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "32#spider_table_sts_thread_count" - ] - }, - "spider_udf_ct_bulk_insert_interval": { - "dynamic": true, - "name": "spider_udf_ct_bulk_insert_interval", - "range": { - "from": -1, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "32#spider_udf_ct_bulk_insert_interval" - ] - }, - "spider_udf_ct_bulk_insert_rows": { - "dynamic": true, - "name": "spider_udf_ct_bulk_insert_rows", - "range": { - "from": -1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "32#spider_udf_ct_bulk_insert_rows" - ] - }, - "spider_udf_ds_bulk_insert_rows": { - "dynamic": true, - "name": "spider_udf_ds_bulk_insert_rows", - "range": { - "from": -1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "32#spider_udf_ds_bulk_insert_rows" - ] - }, - "spider_udf_ds_table_loop_mode": { - "dynamic": true, - "name": "spider_udf_ds_table_loop_mode", - "range": { - "from": -1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_udf_ds_table_loop_mode" - ] - }, - "spider_udf_ds_use_real_table": { - "dynamic": true, - "name": "spider_udf_ds_use_real_table", - "range": { - "from": -1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_udf_ds_use_real_table" - ] - }, - "spider_udf_table_lock_mutex_count": { - "default": "20", - "dynamic": false, - "name": "spider_udf_table_lock_mutex_count", - "range": { - "from": 1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "32#spider_udf_table_lock_mutex_count" - ] - }, - "spider_udf_table_mon_mutex_count": { - "default": "20", - "dynamic": false, - "name": "spider_udf_table_mon_mutex_count", - "range": { - "from": 1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "32#spider_udf_table_mon_mutex_count" - ] - }, - "spider_use_all_conns_snapshot": { - "dynamic": true, - "name": "spider_use_all_conns_snapshot", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "32#spider_use_all_conns_snapshot" - ] - }, - "spider_use_consistent_snapshot": { - "dynamic": true, - "name": "spider_use_consistent_snapshot", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "32#spider_use_consistent_snapshot" - ] - }, - "spider_use_default_database": { - "dynamic": true, - "name": "spider_use_default_database", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "32#spider_use_default_database" - ] - }, - "spider_use_flash_logs": { - "dynamic": true, - "name": "spider_use_flash_logs", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "32#spider_use_flash_logs" - ] - }, - "spider_use_handler": { - "name": "spider_use_handler", - "ids": [ - "32#spider_use_handler" - ] - }, - "spider_use_pushdown_udf": { - "dynamic": true, - "name": "spider_use_pushdown_udf", - "range": { - "from": -1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_use_pushdown_udf" - ] - }, - "spider_use_snapshot_with_flush_tables": { - "dynamic": true, - "name": "spider_use_snapshot_with_flush_tables", - "range": { - "from": 0 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_use_snapshot_with_flush_tables" - ] - }, - "spider_use_table_charset": { - "dynamic": true, - "name": "spider_use_table_charset", - "range": { - "from": -1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_use_table_charset" - ] - }, - "spider_version": { - "dynamic": false, - "name": "spider_version", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "32#spider_version" - ] - }, - "spider_xa_register_mode": { - "default": "1", - "dynamic": true, - "name": "spider_xa_register_mode", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "32#spider_xa_register_mode" - ] - }, - "Ssl_accept_renegotiates": { - "name": "Ssl_accept_renegotiates", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "34#ssl_accept_renegotiates" - ] - }, - "Ssl_accepts": { - "name": "Ssl_accepts", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "33#ssl_accepts" - ] - }, - "Ssl_callback_cache_hits": { - "name": "Ssl_callback_cache_hits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "33#ssl_callback_cache_hits" - ] - }, - "Ssl_cipher": { - "name": "Ssl_cipher", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "33#ssl_cipher" - ] - }, - "Ssl_cipher_list": { - "name": "Ssl_cipher_list", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "33#ssl_cipher_list" - ] - }, - "Ssl_client_connects": { - "name": "Ssl_client_connects", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "33#ssl_client_connects" - ] - }, - "Ssl_connect_renegotiates": { - "name": "Ssl_connect_renegotiates", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "33#ssl_connect_renegotiates" - ] - }, - "Ssl_ctx_verify_depth": { - "name": "Ssl_ctx_verify_depth", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "33#ssl_ctx_verify_depth" - ] - }, - "Ssl_ctx_verify_mode": { - "name": "Ssl_ctx_verify_mode", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "33#ssl_ctx_verify_mode" - ] - }, - "Ssl_default_timeout": { - "name": "Ssl_default_timeout", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "33#ssl_default_timeout" - ] - }, - "Ssl_finished_accepts": { - "name": "Ssl_finished_accepts", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "33#ssl_finished_accepts" - ] - }, - "Ssl_finished_connects": { - "name": "Ssl_finished_connects", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "33#ssl_finished_connects" - ] - }, - "Ssl_server_not_after": { - "name": "Ssl_server_not_after", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "33#ssl_server_not_after" - ] - }, - "Ssl_server_not_before": { - "name": "Ssl_server_not_before", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "33#ssl_server_not_before" - ] - }, - "Ssl_session_cache_hits": { - "name": "Ssl_session_cache_hits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "33#ssl_session_cache_hits" - ] - }, - "Ssl_session_cache_misses": { - "name": "Ssl_session_cache_misses", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "33#ssl_session_cache_misses" - ] - }, - "Ssl_session_cache_mode": { - "name": "Ssl_session_cache_mode", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "33#ssl_session_cache_mode" - ] - }, - "Ssl_session_cache_overflows": { - "name": "Ssl_session_cache_overflows", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "33#ssl_session_cache_overflows" - ] - }, - "Ssl_session_cache_size": { - "name": "Ssl_session_cache_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "33#ssl_session_cache_size" - ] - }, - "Ssl_session_cache_timeouts": { - "name": "Ssl_session_cache_timeouts", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "33#ssl_session_cache_timeouts" - ] - }, - "Ssl_sessions_reused": { - "name": "Ssl_sessions_reused", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "33#ssl_sessions_reused" - ] - }, - "Ssl_used_session_cache_entries": { - "name": "Ssl_used_session_cache_entries", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "33#ssl_used_session_cache_entries" - ] - }, - "Ssl_verify_depth": { - "name": "Ssl_verify_depth", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "33#ssl_verify_depth" - ] - }, - "Ssl_verify_mode": { - "name": "Ssl_verify_mode", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "33#ssl_verify_mode" - ] - }, - "Ssl_version": { - "name": "Ssl_version", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "33#ssl_version" - ] - }, - "have_openssl": { - "dynamic": false, - "name": "have_openssl", - "scope": [ - "global" - ], - "ids": [ - "35#have_openssl" - ] - }, - "have_ssl": { - "dynamic": false, - "name": "have_ssl", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "YES", - "DISABLED" - ], - "ids": [ - "34#have_ssl", - "15#sysvar_have_ssl" - ] - }, - "ssl_ca": { - "cli": "--ssl-ca=file_name", - "name": "ssl_ca", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - "34#ssl_ca", - "15#sysvar_ssl_ca" - ] - }, - "ssl_capath": { - "name": "ssl_capath", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - "34#ssl_capath", - "15#sysvar_ssl_capath" - ] - }, - "ssl_cert": { - "name": "ssl_cert", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - "34#ssl_cert", - "15#sysvar_ssl_cert" - ] - }, - "ssl_cipher": { - "cli": "--ssl-cipher=name", - "name": "ssl_cipher", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "34#ssl_cipher", - "15#sysvar_ssl_cipher" - ] - }, - "ssl_crl": { - "name": "ssl_crl", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - "34#ssl_crl", - "15#sysvar_ssl_crl" - ] - }, - "ssl_crlpath": { - "name": "ssl_crlpath", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - "34#ssl_crlpath", - "15#sysvar_ssl_crlpath" - ] - }, - "ssl_key": { - "name": "ssl_key", - "scope": [ - "global" - ], - "ids": [ - "34#ssl_key", - "15#sysvar_ssl_key" - ] - }, - "tls_version": { - "name": "tls_version", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "34#tls_version", - "15#sysvar_tls_version" - ] - }, - "version_ssl_library": { - "default": "None", - "dynamic": false, - "name": "version_ssl_library", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "34#version_ssl_library" - ] - }, - "extra_max_connections": { - "cli": "--extra-max-connections=#", - "default": "1", - "dynamic": true, - "name": "extra_max_connections", - "range": { - "from": 1, - "to": 100000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "36#extra_max_connections" - ] - }, - "extra_port": { - "cli": "--extra-port=#", - "default": "0", - "dynamic": false, - "name": "extra_port", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "35#extra_port" - ] - }, - "thread_handling": { - "cli": "--thread-handling=name", - "default": "one-thread-per-connection", - "dynamic": false, - "name": "thread_handling", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "no-threads", - "one-thread-per-connection", - "pool-of-threads" - ], - "ids": [ - "35#thread_handling", - "15#sysvar_thread_handling" - ] - }, - "thread_pool_dedicated_listener": { - "cli": "thread-pool-dedicated-listener={0|1}", - "default": "0", - "dynamic": false, - "name": "thread_pool_dedicated_listener", - "scope": [], - "type": "boolean", - "ids": [ - "35#thread_pool_dedicated_listener" - ] - }, - "thread_pool_exact_stats": { - "cli": "thread-pool-exact-stats={0|1}", - "default": "0", - "dynamic": false, - "name": "thread_pool_exact_stats", - "scope": [], - "type": "boolean", - "ids": [ - "35#thread_pool_exact_stats" - ] - }, - "thread_pool_idle_timeout": { - "cli": "thread-pool-idle-timeout=#", - "default": "60", - "dynamic": true, - "name": "thread_pool_idle_timeout", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "35#thread_pool_idle_timeout" - ] - }, - "thread_pool_max_threads": { - "cli": "thread-pool-max-threads=#", - "default": "65536 (>= MariaDB 10.2.4), 1000 (<= MariaDB 10.2.3, >= MariaDB 10.1), 500 (<= MariaDB 10.0)", - "dynamic": true, - "name": "thread_pool_max_threads", - "range": { - "from": 1, - "to": 65536 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "35#thread_pool_max_threads" - ] - }, - "thread_pool_min_threads": { - "cli": "thread-pool-min-threads=#", - "default": "1", - "name": "thread_pool_min_threads", - "type": "integer", - "ids": [ - "35#thread_pool_min_threads" - ] - }, - "thread_pool_oversubscribe": { - "default": "3", - "dynamic": true, - "name": "thread_pool_oversubscribe", - "range": { - "from": 1, - "to": 65536 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "35#thread_pool_oversubscribe" - ] - }, - "thread_pool_prio_kickup_timer": { - "default": "1000", - "dynamic": true, - "name": "thread_pool_prio_kickup_timer", - "range": { - "from": 0 - }, - "type": "integer", - "ids": [ - "35#thread_pool_prio_kickup_timer", - "15#sysvar_thread_pool_prio_kickup_timer" - ] - }, - "thread_pool_priority": { - "cli": "--thread-pool-priority=#", - "default": "auto", - "name": "thread_pool_priority", - "scope": [ - "global", - "connection" - ], - "validValues": [ - "high", - "low", - "auto" - ], - "ids": [ - "35#thread_pool_priority" - ] - }, - "thread_pool_size": { - "cli": "--thread-pool-size=#", - "name": "thread_pool_size", - "range": { - "from": 1, - "to": 128 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "35#thread_pool_size", - "15#sysvar_thread_pool_size" - ] - }, - "thread_pool_stall_limit": { - "cli": "--thread-pool-stall-limit=#", - "dynamic": true, - "name": "thread_pool_stall_limit", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "35#thread_pool_stall_limit", - "15#sysvar_thread_pool_stall_limit" - ] - }, - "Threadpool_idle_threads": { - "name": "Threadpool_idle_threads", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "35#threadpool_idle_threads" - ] - }, - "Threadpool_threads": { - "name": "Threadpool_threads", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "35#threadpool_threads" - ] - }, - "Tokudb_basement_deserialization_fixed_key": { - "name": "Tokudb_basement_deserialization_fixed_key", - "type": "integer", - "ids": [ - "37#tokudb_basement_deserialization_fixed_key" - ] - }, - "Tokudb_basement_deserialization_variable_key": { - "name": "Tokudb_basement_deserialization_variable_key", - "type": "integer", - "ids": [ - "36#tokudb_basement_deserialization_variable_key" - ] - }, - "Tokudb_basements_decompressed_for_write": { - "name": "Tokudb_basements_decompressed_for_write", - "type": "integer", - "ids": [ - "36#tokudb_basements_decompressed_for_write" - ] - }, - "Tokudb_basements_decompressed_prefetch": { - "name": "Tokudb_basements_decompressed_prefetch", - "type": "integer", - "ids": [ - "36#tokudb_basements_decompressed_prefetch" - ] - }, - "Tokudb_basements_decompressed_prelocked_range": { - "name": "Tokudb_basements_decompressed_prelocked_range", - "type": "integer", - "ids": [ - "36#tokudb_basements_decompressed_prelocked_range" - ] - }, - "Tokudb_basements_decompressed_target_query": { - "name": "Tokudb_basements_decompressed_target_query", - "type": "integer", - "ids": [ - "36#tokudb_basements_decompressed_target_query" - ] - }, - "Tokudb_basements_fetched_for_write": { - "name": "Tokudb_basements_fetched_for_write", - "type": "integer", - "ids": [ - "36#tokudb_basements_fetched_for_write" - ] - }, - "Tokudb_basements_fetched_for_write_bytes": { - "name": "Tokudb_basements_fetched_for_write_bytes", - "ids": [ - "36#tokudb_basements_fetched_for_write_bytes" - ] - }, - "Tokudb_basements_fetched_for_write_seconds": { - "name": "Tokudb_basements_fetched_for_write_seconds", - "type": "integer", - "ids": [ - "36#tokudb_basements_fetched_for_write_seconds" - ] - }, - "Tokudb_basements_fetched_prefetch": { - "name": "Tokudb_basements_fetched_prefetch", - "type": "integer", - "ids": [ - "36#tokudb_basements_fetched_prefetch" - ] - }, - "Tokudb_basements_fetched_prefetch_bytes": { - "name": "Tokudb_basements_fetched_prefetch_bytes", - "ids": [ - "36#tokudb_basements_fetched_prefetch_bytes" - ] - }, - "Tokudb_basements_fetched_prefetch_seconds": { - "name": "Tokudb_basements_fetched_prefetch_seconds", - "type": "integer", - "ids": [ - "36#tokudb_basements_fetched_prefetch_seconds" - ] - }, - "Tokudb_basements_fetched_prelocked_range": { - "name": "Tokudb_basements_fetched_prelocked_range", - "type": "integer", - "ids": [ - "36#tokudb_basements_fetched_prelocked_range" - ] - }, - "Tokudb_basements_fetched_prelocked_range_bytes": { - "name": "Tokudb_basements_fetched_prelocked_range_bytes", - "ids": [ - "36#tokudb_basements_fetched_prelocked_range_bytes" - ] - }, - "Tokudb_basements_fetched_prelocked_range_seconds": { - "name": "Tokudb_basements_fetched_prelocked_range_seconds", - "type": "integer", - "ids": [ - "36#tokudb_basements_fetched_prelocked_range_seconds" - ] - }, - "Tokudb_basements_fetched_target_query": { - "name": "Tokudb_basements_fetched_target_query", - "type": "integer", - "ids": [ - "36#tokudb_basements_fetched_target_query" - ] - }, - "Tokudb_basements_fetched_target_query_bytes": { - "name": "Tokudb_basements_fetched_target_query_bytes", - "ids": [ - "36#tokudb_basements_fetched_target_query_bytes" - ] - }, - "Tokudb_basements_fetched_target_query_seconds": { - "name": "Tokudb_basements_fetched_target_query_seconds", - "type": "integer", - "ids": [ - "36#tokudb_basements_fetched_target_query_seconds" - ] - }, - "Tokudb_broadcase_messages_injected_at_root": { - "name": "Tokudb_broadcase_messages_injected_at_root", - "type": "integer", - "ids": [ - "36#tokudb_broadcase_messages_injected_at_root" - ] - }, - "Tokudb_buffers_decompressed_for_write": { - "name": "Tokudb_buffers_decompressed_for_write", - "type": "integer", - "ids": [ - "36#tokudb_buffers_decompressed_for_write" - ] - }, - "Tokudb_buffers_decompressed_prefetch": { - "name": "Tokudb_buffers_decompressed_prefetch", - "type": "integer", - "ids": [ - "36#tokudb_buffers_decompressed_prefetch" - ] - }, - "Tokudb_buffers_decompressed_prelocked_range": { - "name": "Tokudb_buffers_decompressed_prelocked_range", - "type": "integer", - "ids": [ - "36#tokudb_buffers_decompressed_prelocked_range" - ] - }, - "Tokudb_buffers_decompressed_target_query": { - "name": "Tokudb_buffers_decompressed_target_query", - "type": "integer", - "ids": [ - "36#tokudb_buffers_decompressed_target_query" - ] - }, - "Tokudb_buffers_fetched_for_write": { - "name": "Tokudb_buffers_fetched_for_write", - "type": "integer", - "ids": [ - "36#tokudb_buffers_fetched_for_write" - ] - }, - "Tokudb_buffers_fetched_for_write_bytes": { - "name": "Tokudb_buffers_fetched_for_write_bytes", - "ids": [ - "36#tokudb_buffers_fetched_for_write_bytes" - ] - }, - "Tokudb_buffers_fetched_for_write_seconds": { - "name": "Tokudb_buffers_fetched_for_write_seconds", - "type": "integer", - "ids": [ - "36#tokudb_buffers_fetched_for_write_seconds" - ] - }, - "Tokudb_buffers_fetched_prefetch": { - "name": "Tokudb_buffers_fetched_prefetch", - "type": "integer", - "ids": [ - "36#tokudb_buffers_fetched_prefetch" - ] - }, - "Tokudb_buffers_fetched_prefetch_bytes": { - "name": "Tokudb_buffers_fetched_prefetch_bytes", - "ids": [ - "36#tokudb_buffers_fetched_prefetch_bytes" - ] - }, - "Tokudb_buffers_fetched_prefetch_seconds": { - "name": "Tokudb_buffers_fetched_prefetch_seconds", - "type": "integer", - "ids": [ - "36#tokudb_buffers_fetched_prefetch_seconds" - ] - }, - "Tokudb_buffers_fetched_prelocked_range": { - "name": "Tokudb_buffers_fetched_prelocked_range", - "type": "integer", - "ids": [ - "36#tokudb_buffers_fetched_prelocked_range" - ] - }, - "Tokudb_buffers_fetched_prelocked_range_bytes": { - "name": "Tokudb_buffers_fetched_prelocked_range_bytes", - "ids": [ - "36#tokudb_buffers_fetched_prelocked_range_bytes" - ] - }, - "Tokudb_buffers_fetched_prelocked_range_seconds": { - "name": "Tokudb_buffers_fetched_prelocked_range_seconds", - "type": "integer", - "ids": [ - "36#tokudb_buffers_fetched_prelocked_range_seconds" - ] - }, - "Tokudb_buffers_fetched_target_query": { - "name": "Tokudb_buffers_fetched_target_query", - "type": "integer", - "ids": [ - "36#tokudb_buffers_fetched_target_query" - ] - }, - "Tokudb_buffers_fetched_target_query_bytes": { - "name": "Tokudb_buffers_fetched_target_query_bytes", - "ids": [ - "36#tokudb_buffers_fetched_target_query_bytes" - ] - }, - "Tokudb_buffers_fetched_target_query_seconds": { - "name": "Tokudb_buffers_fetched_target_query_seconds", - "type": "integer", - "ids": [ - "36#tokudb_buffers_fetched_target_query_seconds" - ] - }, - "Tokudb_cachetable_cleaner_executions": { - "name": "Tokudb_cachetable_cleaner_executions", - "type": "integer", - "ids": [ - "36#tokudb_cachetable_cleaner_executions" - ] - }, - "Tokudb_cachetable_cleaner_iterations": { - "name": "Tokudb_cachetable_cleaner_iterations", - "type": "integer", - "ids": [ - "36#tokudb_cachetable_cleaner_iterations" - ] - }, - "Tokudb_cachetable_cleaner_period": { - "name": "Tokudb_cachetable_cleaner_period", - "type": "integer", - "ids": [ - "36#tokudb_cachetable_cleaner_period" - ] - }, - "Tokudb_cachetable_evictions": { - "name": "Tokudb_cachetable_evictions", - "type": "integer", - "ids": [ - "36#tokudb_cachetable_evictions" - ] - }, - "Tokudb_cachetable_long_wait_pressure_count": { - "name": "Tokudb_cachetable_long_wait_pressure_count", - "type": "integer", - "ids": [ - "36#tokudb_cachetable_long_wait_pressure_count" - ] - }, - "Tokudb_cachetable_long_wait_pressure_time": { - "name": "Tokudb_cachetable_long_wait_pressure_time", - "type": "integer", - "ids": [ - "36#tokudb_cachetable_long_wait_pressure_time" - ] - }, - "Tokudb_cachetable_miss": { - "name": "Tokudb_cachetable_miss", - "type": "integer", - "ids": [ - "36#tokudb_cachetable_miss" - ] - }, - "Tokudb_cachetable_miss_time": { - "name": "Tokudb_cachetable_miss_time", - "type": "integer", - "ids": [ - "36#tokudb_cachetable_miss_time" - ] - }, - "Tokudb_cachetable_prefetches": { - "name": "Tokudb_cachetable_prefetches", - "type": "integer", - "ids": [ - "36#tokudb_cachetable_prefetches" - ] - }, - "Tokudb_cachetable_size_cachepressure": { - "name": "Tokudb_cachetable_size_cachepressure", - "type": "byte", - "ids": [ - "36#tokudb_cachetable_size_cachepressure" - ] - }, - "Tokudb_cachetable_size_cloned": { - "name": "Tokudb_cachetable_size_cloned", - "type": "byte", - "ids": [ - "36#tokudb_cachetable_size_cloned" - ] - }, - "Tokudb_cachetable_size_current": { - "name": "Tokudb_cachetable_size_current", - "type": "byte", - "ids": [ - "36#tokudb_cachetable_size_current" - ] - }, - "Tokudb_cachetable_size_leaf": { - "name": "Tokudb_cachetable_size_leaf", - "type": "byte", - "ids": [ - "36#tokudb_cachetable_size_leaf" - ] - }, - "Tokudb_cachetable_size_limit": { - "name": "Tokudb_cachetable_size_limit", - "type": "byte", - "ids": [ - "36#tokudb_cachetable_size_limit" - ] - }, - "Tokudb_cachetable_size_nonleaf": { - "name": "Tokudb_cachetable_size_nonleaf", - "type": "byte", - "ids": [ - "36#tokudb_cachetable_size_nonleaf" - ] - }, - "Tokudb_cachetable_size_rollback": { - "name": "Tokudb_cachetable_size_rollback", - "type": "byte", - "ids": [ - "36#tokudb_cachetable_size_rollback" - ] - }, - "Tokudb_cachetable_size_writing": { - "name": "Tokudb_cachetable_size_writing", - "type": "byte", - "ids": [ - "36#tokudb_cachetable_size_writing" - ] - }, - "Tokudb_cachetable_wait_pressure_count": { - "name": "Tokudb_cachetable_wait_pressure_count", - "type": "integer", - "ids": [ - "36#tokudb_cachetable_wait_pressure_count" - ] - }, - "Tokudb_cachetable_wait_pressure_time": { - "name": "Tokudb_cachetable_wait_pressure_time", - "type": "integer", - "ids": [ - "36#tokudb_cachetable_wait_pressure_time" - ] - }, - "Tokudb_checkpoint_begin_time": { - "name": "Tokudb_checkpoint_begin_time", - "type": "integer", - "ids": [ - "36#tokudb_checkpoint_begin_time" - ] - }, - "Tokudb_checkpoint_duration": { - "name": "Tokudb_checkpoint_duration", - "type": "integer", - "ids": [ - "36#tokudb_checkpoint_duration" - ] - }, - "Tokudb_checkpoint_duration_last": { - "name": "Tokudb_checkpoint_duration_last", - "type": "integer", - "ids": [ - "36#tokudb_checkpoint_duration_last" - ] - }, - "Tokudb_checkpoint_failed": { - "name": "Tokudb_checkpoint_failed", - "type": "integer", - "ids": [ - "36#tokudb_checkpoint_failed" - ] - }, - "Tokudb_checkpoint_last_began": { - "name": "Tokudb_checkpoint_last_began", - "ids": [ - "36#tokudb_checkpoint_last_began" - ] - }, - "Tokudb_checkpoint_last_complete_began": { - "name": "Tokudb_checkpoint_last_complete_began", - "ids": [ - "36#tokudb_checkpoint_last_complete_began" - ] - }, - "Tokudb_checkpoint_last_complete_ended": { - "name": "Tokudb_checkpoint_last_complete_ended", - "ids": [ - "36#tokudb_checkpoint_last_complete_ended" - ] - }, - "Tokudb_checkpoint_long_begin_count": { - "name": "Tokudb_checkpoint_long_begin_count", - "type": "integer", - "ids": [ - "36#tokudb_checkpoint_long_begin_count" - ] - }, - "Tokudb_checkpoint_long_begin_time": { - "name": "Tokudb_checkpoint_long_begin_time", - "type": "integer", - "ids": [ - "36#tokudb_checkpoint_long_begin_time" - ] - }, - "Tokudb_checkpoint_period": { - "name": "Tokudb_checkpoint_period", - "type": "integer", - "ids": [ - "36#tokudb_checkpoint_period" - ] - }, - "Tokudb_checkpoint_taken": { - "name": "Tokudb_checkpoint_taken", - "type": "integer", - "ids": [ - "36#tokudb_checkpoint_taken" - ] - }, - "Tokudb_cursor_skip_deleted_leaf_entry": { - "name": "Tokudb_cursor_skip_deleted_leaf_entry", - "ids": [ - "36#tokudb_cursor_skip_deleted_leaf_entry" - ] - }, - "Tokudb_db_closes": { - "name": "Tokudb_db_closes", - "type": "integer", - "ids": [ - "36#tokudb_db_closes" - ] - }, - "Tokudb_db_open_current": { - "name": "Tokudb_db_open_current", - "type": "integer", - "ids": [ - "36#tokudb_db_open_current" - ] - }, - "Tokudb_db_open_max": { - "name": "Tokudb_db_open_max", - "type": "integer", - "ids": [ - "36#tokudb_db_open_max" - ] - }, - "Tokudb_db_opens": { - "name": "Tokudb_db_opens", - "type": "integer", - "ids": [ - "36#tokudb_db_opens" - ] - }, - "Tokudb_descriptor_set": { - "name": "Tokudb_descriptor_set", - "type": "integer", - "ids": [ - "36#tokudb_descriptor_set" - ] - }, - "Tokudb_dictionary_broadcast_updates": { - "name": "Tokudb_dictionary_broadcast_updates", - "type": "integer", - "ids": [ - "36#tokudb_dictionary_broadcast_updates" - ] - }, - "Tokudb_dictionary_updates": { - "name": "Tokudb_dictionary_updates", - "type": "integer", - "ids": [ - "36#tokudb_dictionary_updates" - ] - }, - "Tokudb_filesystem_fsync_num": { - "name": "Tokudb_filesystem_fsync_num", - "type": "integer", - "ids": [ - "36#tokudb_filesystem_fsync_num" - ] - }, - "Tokudb_filesystem_fsync_time": { - "name": "Tokudb_filesystem_fsync_time", - "type": "integer", - "ids": [ - "36#tokudb_filesystem_fsync_time" - ] - }, - "Tokudb_filesystem_long_fsync_num": { - "name": "Tokudb_filesystem_long_fsync_num", - "type": "integer", - "ids": [ - "36#tokudb_filesystem_long_fsync_num" - ] - }, - "Tokudb_filesystem_long_fsync_time": { - "name": "Tokudb_filesystem_long_fsync_time", - "type": "integer", - "ids": [ - "36#tokudb_filesystem_long_fsync_time" - ] - }, - "Tokudb_filesystem_threads_blocked_by_full_disk": { - "name": "Tokudb_filesystem_threads_blocked_by_full_disk", - "type": "integer", - "ids": [ - "36#tokudb_filesystem_threads_blocked_by_full_disk" - ] - }, - "Tokudb_leaf_compression_to_memory_seconds": { - "name": "Tokudb_leaf_compression_to_memory_seconds", - "type": "integer", - "ids": [ - "36#tokudb_leaf_compression_to_memory_seconds" - ] - }, - "Tokudb_leaf_decompression_to_memory_seconds": { - "name": "Tokudb_leaf_decompression_to_memory_seconds", - "type": "integer", - "ids": [ - "36#tokudb_leaf_decompression_to_memory_seconds" - ] - }, - "Tokudb_leaf_deserialization_to_memory_seconds": { - "name": "Tokudb_leaf_deserialization_to_memory_seconds", - "type": "integer", - "ids": [ - "36#tokudb_leaf_deserialization_to_memory_seconds" - ] - }, - "Tokudb_leaf_node_compression_ratio": { - "name": "Tokudb_leaf_node_compression_ratio", - "ids": [ - "36#tokudb_leaf_node_compression_ratio" - ] - }, - "Tokudb_leaf_node_full_evictions": { - "name": "Tokudb_leaf_node_full_evictions", - "type": "integer", - "ids": [ - "36#tokudb_leaf_node_full_evictions" - ] - }, - "Tokudb_leaf_node_full_evictions_bytes": { - "name": "Tokudb_leaf_node_full_evictions_bytes", - "ids": [ - "36#tokudb_leaf_node_full_evictions_bytes" - ] - }, - "Tokudb_leaf_node_partial_evictions": { - "name": "Tokudb_leaf_node_partial_evictions", - "type": "integer", - "ids": [ - "36#tokudb_leaf_node_partial_evictions" - ] - }, - "Tokudb_leaf_node_partial_evictions_bytes": { - "name": "Tokudb_leaf_node_partial_evictions_bytes", - "ids": [ - "36#tokudb_leaf_node_partial_evictions_bytes" - ] - }, - "Tokudb_leaf_nodes_created": { - "name": "Tokudb_leaf_nodes_created", - "type": "integer", - "ids": [ - "36#tokudb_leaf_nodes_created" - ] - }, - "Tokudb_leaf_nodes_destroyed": { - "name": "Tokudb_leaf_nodes_destroyed", - "type": "integer", - "ids": [ - "36#tokudb_leaf_nodes_destroyed" - ] - }, - "Tokudb_leaf_nodes_flushed_checkpoint": { - "name": "Tokudb_leaf_nodes_flushed_checkpoint", - "type": "integer", - "ids": [ - "36#tokudb_leaf_nodes_flushed_checkpoint" - ] - }, - "Tokudb_leaf_nodes_flushed_checkpoint_bytes": { - "name": "Tokudb_leaf_nodes_flushed_checkpoint_bytes", - "type": "byte", - "ids": [ - "36#tokudb_leaf_nodes_flushed_checkpoint_bytes" - ] - }, - "Tokudb_leaf_nodes_flushed_checkpoint_seconds": { - "name": "Tokudb_leaf_nodes_flushed_checkpoint_seconds", - "type": "integer", - "ids": [ - "36#tokudb_leaf_nodes_flushed_checkpoint_seconds" - ] - }, - "Tokudb_leaf_nodes_flushed_checkpoint_uncompressed_bytes": { - "name": "Tokudb_leaf_nodes_flushed_checkpoint_uncompressed_bytes", - "ids": [ - "36#tokudb_leaf_nodes_flushed_checkpoint_uncompressed_bytes" - ] - }, - "Tokudb_leaf_nodes_flushed_not_checkpoint": { - "name": "Tokudb_leaf_nodes_flushed_not_checkpoint", - "type": "integer", - "ids": [ - "36#tokudb_leaf_nodes_flushed_not_checkpoint" - ] - }, - "Tokudb_leaf_nodes_flushed_not_checkpoint_bytes": { - "name": "Tokudb_leaf_nodes_flushed_not_checkpoint_bytes", - "type": "byte", - "ids": [ - "36#tokudb_leaf_nodes_flushed_not_checkpoint_bytes" - ] - }, - "Tokudb_leaf_nodes_flushed_not_checkpoint_seconds": { - "name": "Tokudb_leaf_nodes_flushed_not_checkpoint_seconds", - "type": "integer", - "ids": [ - "36#tokudb_leaf_nodes_flushed_not_checkpoint_seconds" - ] - }, - "Tokudb_leaf_nodes_flushed_not_checkpoint_uncompressed_bytes": { - "name": "Tokudb_leaf_nodes_flushed_not_checkpoint_uncompressed_bytes", - "ids": [ - "36#tokudb_leaf_nodes_flushed_not_checkpoint_uncompressed_bytes" - ] - }, - "Tokudb_leaf_serialization_to_memory_seconds": { - "name": "Tokudb_leaf_serialization_to_memory_seconds", - "type": "integer", - "ids": [ - "36#tokudb_leaf_serialization_to_memory_seconds" - ] - }, - "Tokudb_loader_num_created": { - "name": "Tokudb_loader_num_created", - "type": "integer", - "ids": [ - "36#tokudb_loader_num_created" - ] - }, - "Tokudb_loader_num_current": { - "name": "Tokudb_loader_num_current", - "type": "integer", - "ids": [ - "36#tokudb_loader_num_current" - ] - }, - "Tokudb_loader_num_max": { - "name": "Tokudb_loader_num_max", - "type": "integer", - "ids": [ - "36#tokudb_loader_num_max" - ] - }, - "Tokudb_locktree_escalation_num": { - "name": "Tokudb_locktree_escalation_num", - "type": "integer", - "ids": [ - "36#tokudb_locktree_escalation_num" - ] - }, - "Tokudb_locktree_escalation_seconds": { - "name": "Tokudb_locktree_escalation_seconds", - "type": "integer", - "ids": [ - "36#tokudb_locktree_escalation_seconds" - ] - }, - "Tokudb_locktree_latest_post_escalation_memory_size": { - "name": "Tokudb_locktree_latest_post_escalation_memory_size", - "type": "byte", - "ids": [ - "36#tokudb_locktree_latest_post_escalation_memory_size" - ] - }, - "Tokudb_locktree_long_wait_count": { - "name": "Tokudb_locktree_long_wait_count", - "type": "integer", - "ids": [ - "36#tokudb_locktree_long_wait_count" - ] - }, - "Tokudb_locktree_long_wait_escalation_count": { - "name": "Tokudb_locktree_long_wait_escalation_count", - "type": "integer", - "ids": [ - "36#tokudb_locktree_long_wait_escalation_count" - ] - }, - "Tokudb_locktree_long_wait_escalation_time": { - "name": "Tokudb_locktree_long_wait_escalation_time", - "type": "integer", - "ids": [ - "36#tokudb_locktree_long_wait_escalation_time" - ] - }, - "Tokudb_locktree_long_wait_time": { - "name": "Tokudb_locktree_long_wait_time", - "type": "integer", - "ids": [ - "36#tokudb_locktree_long_wait_time" - ] - }, - "Tokudb_locktree_memory_size": { - "name": "Tokudb_locktree_memory_size", - "type": "byte", - "ids": [ - "36#tokudb_locktree_memory_size" - ] - }, - "Tokudb_locktree_memory_size_limit": { - "name": "Tokudb_locktree_memory_size_limit", - "type": "byte", - "ids": [ - "36#tokudb_locktree_memory_size_limit" - ] - }, - "Tokudb_locktree_open_current": { - "name": "Tokudb_locktree_open_current", - "type": "integer", - "ids": [ - "36#tokudb_locktree_open_current" - ] - }, - "Tokudb_locktree_pending_lock_requests": { - "name": "Tokudb_locktree_pending_lock_requests", - "type": "integer", - "ids": [ - "36#tokudb_locktree_pending_lock_requests" - ] - }, - "Tokudb_locktree_sto_eligible_num": { - "name": "Tokudb_locktree_sto_eligible_num", - "type": "integer", - "ids": [ - "36#tokudb_locktree_sto_eligible_num" - ] - }, - "Tokudb_locktree_sto_ended_num": { - "name": "Tokudb_locktree_sto_ended_num", - "type": "integer", - "ids": [ - "36#tokudb_locktree_sto_ended_num" - ] - }, - "Tokudb_locktree_sto_ended_seconds": { - "name": "Tokudb_locktree_sto_ended_seconds", - "type": "integer", - "ids": [ - "36#tokudb_locktree_sto_ended_seconds" - ] - }, - "Tokudb_locktree_timeout_count": { - "name": "Tokudb_locktree_timeout_count", - "type": "integer", - "ids": [ - "36#tokudb_locktree_timeout_count" - ] - }, - "Tokudb_locktree_wait_count": { - "name": "Tokudb_locktree_wait_count", - "type": "integer", - "ids": [ - "36#tokudb_locktree_wait_count" - ] - }, - "Tokudb_locktree_wait_escalation_count": { - "name": "Tokudb_locktree_wait_escalation_count", - "type": "integer", - "ids": [ - "36#tokudb_locktree_wait_escalation_count" - ] - }, - "Tokudb_locktree_wait_escalation_time": { - "name": "Tokudb_locktree_wait_escalation_time", - "type": "integer", - "ids": [ - "36#tokudb_locktree_wait_escalation_time" - ] - }, - "Tokudb_locktree_wait_time": { - "name": "Tokudb_locktree_wait_time", - "type": "integer", - "ids": [ - "36#tokudb_locktree_wait_time" - ] - }, - "Tokudb_logger_wait_long": { - "name": "Tokudb_logger_wait_long", - "ids": [ - "36#tokudb_logger_wait_long" - ] - }, - "Tokudb_logger_writes": { - "name": "Tokudb_logger_writes", - "type": "integer", - "ids": [ - "36#tokudb_logger_writes" - ] - }, - "Tokudb_logger_writes_bytes": { - "name": "Tokudb_logger_writes_bytes", - "ids": [ - "36#tokudb_logger_writes_bytes" - ] - }, - "Tokudb_logger_writes_seconds": { - "name": "Tokudb_logger_writes_seconds", - "type": "integer", - "ids": [ - "36#tokudb_logger_writes_seconds" - ] - }, - "Tokudb_logger_writes_uncompressed_bytes": { - "name": "Tokudb_logger_writes_uncompressed_bytes", - "ids": [ - "36#tokudb_logger_writes_uncompressed_bytes" - ] - }, - "Tokudb_mem_estimated_maximum_memory_footprint": { - "name": "Tokudb_mem_estimated_maximum_memory_footprint", - "ids": [ - "36#tokudb_mem_estimated_maximum_memory_footprint" - ] - }, - "Tokudb_messages_flushed_from_h1_to_leaves_bytes": { - "name": "Tokudb_messages_flushed_from_h1_to_leaves_bytes", - "ids": [ - "36#tokudb_messages_flushed_from_h1_to_leaves_bytes" - ] - }, - "Tokudb_messages_ignored_by_leaf_due_to_msn": { - "name": "Tokudb_messages_ignored_by_leaf_due_to_msn", - "type": "integer", - "ids": [ - "36#tokudb_messages_ignored_by_leaf_due_to_msn" - ] - }, - "Tokudb_messages_in_trees_estimate_bytes": { - "name": "Tokudb_messages_in_trees_estimate_bytes", - "ids": [ - "36#tokudb_messages_in_trees_estimate_bytes" - ] - }, - "Tokudb_messages_injected_at_root": { - "name": "Tokudb_messages_injected_at_root", - "type": "integer", - "ids": [ - "36#tokudb_messages_injected_at_root" - ] - }, - "Tokudb_messages_injected_at_root_bytes": { - "name": "Tokudb_messages_injected_at_root_bytes", - "ids": [ - "36#tokudb_messages_injected_at_root_bytes" - ] - }, - "Tokudb_nonleaf_compression_to_memory_seconds": { - "name": "Tokudb_nonleaf_compression_to_memory_seconds", - "type": "integer", - "ids": [ - "36#tokudb_nonleaf_compression_to_memory_seconds" - ] - }, - "Tokudb_nonleaf_decompression_to_memory_seconds": { - "name": "Tokudb_nonleaf_decompression_to_memory_seconds", - "type": "integer", - "ids": [ - "36#tokudb_nonleaf_decompression_to_memory_seconds" - ] - }, - "Tokudb_nonleaf_deserialization_to_memory_seconds": { - "name": "Tokudb_nonleaf_deserialization_to_memory_seconds", - "type": "integer", - "ids": [ - "36#tokudb_nonleaf_deserialization_to_memory_seconds" - ] - }, - "Tokudb_nonleaf_node_compression_ratio": { - "name": "Tokudb_nonleaf_node_compression_ratio", - "ids": [ - "36#tokudb_nonleaf_node_compression_ratio" - ] - }, - "Tokudb_nonleaf_node_full_evictions": { - "name": "Tokudb_nonleaf_node_full_evictions", - "type": "integer", - "ids": [ - "36#tokudb_nonleaf_node_full_evictions" - ] - }, - "Tokudb_nonleaf_node_full_evictions_bytes": { - "name": "Tokudb_nonleaf_node_full_evictions_bytes", - "ids": [ - "36#tokudb_nonleaf_node_full_evictions_bytes" - ] - }, - "Tokudb_nonleaf_node_partial_evictions": { - "name": "Tokudb_nonleaf_node_partial_evictions", - "type": "integer", - "ids": [ - "36#tokudb_nonleaf_node_partial_evictions" - ] - }, - "Tokudb_nonleaf_node_partial_evictions_bytes": { - "name": "Tokudb_nonleaf_node_partial_evictions_bytes", - "ids": [ - "36#tokudb_nonleaf_node_partial_evictions_bytes" - ] - }, - "Tokudb_nonleaf_nodes_created": { - "name": "Tokudb_nonleaf_nodes_created", - "type": "integer", - "ids": [ - "36#tokudb_nonleaf_nodes_created" - ] - }, - "Tokudb_nonleaf_nodes_destroyed": { - "name": "Tokudb_nonleaf_nodes_destroyed", - "type": "integer", - "ids": [ - "36#tokudb_nonleaf_nodes_destroyed" - ] - }, - "Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint": { - "name": "Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint", - "type": "integer", - "ids": [ - "36#tokudb_nonleaf_nodes_flushed_to_disk_checkpoint" - ] - }, - "Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_bytes": { - "name": "Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_bytes", - "type": "byte", - "ids": [ - "36#tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_bytes" - ] - }, - "Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_seconds": { - "name": "Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_seconds", - "type": "integer", - "ids": [ - "36#tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_seconds" - ] - }, - "Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_uncompressed_bytes": { - "name": "Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_uncompressed_bytes", - "ids": [ - "36#tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_uncompressed_bytes" - ] - }, - "Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint": { - "name": "Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint", - "type": "integer", - "ids": [ - "36#tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint" - ] - }, - "Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_bytes": { - "name": "Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_bytes", - "type": "byte", - "ids": [ - "36#tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_bytes" - ] - }, - "Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_seconds": { - "name": "Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_seconds", - "type": "integer", - "ids": [ - "36#tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_seconds" - ] - }, - "Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_uncompressed_bytes": { - "name": "Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_uncompressed_bytes", - "ids": [ - "36#tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_uncompressed_bytes" - ] - }, - "Tokudb_nonleaf_serialization_to_memory_seconds": { - "name": "Tokudb_nonleaf_serialization_to_memory_seconds", - "type": "integer", - "ids": [ - "36#tokudb_nonleaf_serialization_to_memory_seconds" - ] - }, - "Tokudb_overall_node_compression_ratio": { - "name": "Tokudb_overall_node_compression_ratio", - "ids": [ - "36#tokudb_overall_node_compression_ratio" - ] - }, - "Tokudb_pivots_fetched_for_query": { - "name": "Tokudb_pivots_fetched_for_query", - "type": "integer", - "ids": [ - "36#tokudb_pivots_fetched_for_query" - ] - }, - "Tokudb_pivots_fetched_for_query_bytes": { - "name": "Tokudb_pivots_fetched_for_query_bytes", - "type": "byte", - "ids": [ - "36#tokudb_pivots_fetched_for_query_bytes" - ] - }, - "Tokudb_pivots_fetched_for_query_seconds": { - "name": "Tokudb_pivots_fetched_for_query_seconds", - "type": "integer", - "ids": [ - "36#tokudb_pivots_fetched_for_query_seconds" - ] - }, - "Tokudb_pivots_fetched_for_prefetch": { - "name": "Tokudb_pivots_fetched_for_prefetch", - "type": "integer", - "ids": [ - "36#tokudb_pivots_fetched_for_prefetch" - ] - }, - "Tokudb_pivots_fetched_for_prefetch_bytes": { - "name": "Tokudb_pivots_fetched_for_prefetch_bytes", - "type": "byte", - "ids": [ - "36#tokudb_pivots_fetched_for_prefetch_bytes" - ] - }, - "Tokudb_pivots_fetched_for_prefetch_seconds": { - "name": "Tokudb_pivots_fetched_for_prefetch_seconds", - "type": "integer", - "ids": [ - "36#tokudb_pivots_fetched_for_prefetch_seconds" - ] - }, - "Tokudb_pivots_fetched_for_write": { - "name": "Tokudb_pivots_fetched_for_write", - "type": "integer", - "ids": [ - "36#tokudb_pivots_fetched_for_write" - ] - }, - "Tokudb_pivots_fetched_for_write_bytes": { - "name": "Tokudb_pivots_fetched_for_write_bytes", - "type": "byte", - "ids": [ - "36#tokudb_pivots_fetched_for_write_bytes" - ] - }, - "Tokudb_pivots_fetched_for_write_seconds": { - "name": "Tokudb_pivots_fetched_for_write_seconds", - "type": "integer", - "ids": [ - "36#tokudb_pivots_fetched_for_write_seconds" - ] - }, - "Tokudb_promotion_h1_roots_injected_into": { - "name": "Tokudb_promotion_h1_roots_injected_into", - "type": "integer", - "ids": [ - "36#tokudb_promotion_h1_roots_injected_into" - ] - }, - "Tokudb_promotion_injections_at_depth_0": { - "name": "Tokudb_promotion_injections_at_depth_0", - "type": "integer", - "ids": [ - "36#tokudb_promotion_injections_at_depth_0" - ] - }, - "Tokudb_promotion_injections_at_depth_1": { - "name": "Tokudb_promotion_injections_at_depth_1", - "type": "integer", - "ids": [ - "36#tokudb_promotion_injections_at_depth_1" - ] - }, - "Tokudb_promotion_injections_at_depth_2": { - "name": "Tokudb_promotion_injections_at_depth_2", - "type": "integer", - "ids": [ - "36#tokudb_promotion_injections_at_depth_2" - ] - }, - "Tokudb_promotion_injections_at_depth_3": { - "name": "Tokudb_promotion_injections_at_depth_3", - "type": "integer", - "ids": [ - "36#tokudb_promotion_injections_at_depth_3" - ] - }, - "Tokudb_promotion_injections_lower_than_depth_3": { - "name": "Tokudb_promotion_injections_lower_than_depth_3", - "type": "integer", - "ids": [ - "36#tokudb_promotion_injections_lower_than_depth_3" - ] - }, - "Tokudb_promotion_leaf_roots_injected_into": { - "name": "Tokudb_promotion_leaf_roots_injected_into", - "type": "integer", - "ids": [ - "36#tokudb_promotion_leaf_roots_injected_into" - ] - }, - "Tokudb_promotion_roots_split": { - "name": "Tokudb_promotion_roots_split", - "type": "integer", - "ids": [ - "36#tokudb_promotion_roots_split" - ] - }, - "Tokudb_promotion_stopped_after_locking_child": { - "name": "Tokudb_promotion_stopped_after_locking_child", - "type": "integer", - "ids": [ - "36#tokudb_promotion_stopped_after_locking_child" - ] - }, - "Tokudb_promotion_stopped_at_height_1": { - "name": "Tokudb_promotion_stopped_at_height_1", - "type": "integer", - "ids": [ - "36#tokudb_promotion_stopped_at_height_1" - ] - }, - "Tokudb_promotion_stopped_child_locked_or_not_in_memory": { - "name": "Tokudb_promotion_stopped_child_locked_or_not_in_memory", - "type": "integer", - "ids": [ - "36#tokudb_promotion_stopped_child_locked_or_not_in_memory" - ] - }, - "Tokudb_promotion_stopped_child_not_fully_in_memory": { - "name": "Tokudb_promotion_stopped_child_not_fully_in_memory", - "type": "integer", - "ids": [ - "36#tokudb_promotion_stopped_child_not_fully_in_memory" - ] - }, - "Tokudb_promotion_stopped_nonempty_buffer": { - "name": "Tokudb_promotion_stopped_nonempty_buffer", - "type": "integer", - "ids": [ - "36#tokudb_promotion_stopped_nonempty_buffer" - ] - }, - "Tokudb_txn_aborts": { - "name": "Tokudb_txn_aborts", - "type": "integer", - "ids": [ - "36#tokudb_txn_aborts" - ] - }, - "Tokudb_txn_begin": { - "name": "Tokudb_txn_begin", - "type": "integer", - "ids": [ - "36#tokudb_txn_begin" - ] - }, - "Tokudb_txn_begin_read_only": { - "name": "Tokudb_txn_begin_read_only", - "type": "integer", - "ids": [ - "36#tokudb_txn_begin_read_only" - ] - }, - "Tokudb_txn_commits": { - "name": "Tokudb_txn_commits", - "type": "integer", - "ids": [ - "36#tokudb_txn_commits" - ] - }, - "tokudb_alter_print_error": { - "default": "OFF", - "dynamic": true, - "name": "tokudb_alter_print_error", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "38#tokudb_alter_print_error" - ] - }, - "tokudb_analyze_time": { - "default": "5", - "dynamic": true, - "name": "tokudb_analyze_time", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "37#tokudb_analyze_time" - ] - }, - "tokudb_block_size": { - "default": "4194304 (4MB)", - "dynamic": true, - "name": "tokudb_block_size", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "37#tokudb_block_size" - ] - }, - "tokudb_bulk_fetch": { - "default": "ON", - "dynamic": true, - "name": "tokudb_bulk_fetch", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "37#tokudb_bulk_fetch" - ] - }, - "tokudb_cache_size": { - "default": "Half of the total system memory", - "dynamic": false, - "name": "tokudb_cache_size", - "type": "integer", - "ids": [ - "37#tokudb_cache_size" - ] - }, - "tokudb_check_jemalloc": { - "default": "1", - "dynamic": true, - "name": "tokudb_check_jemalloc", - "scope": [ - "global" - ], - "type": "integer", - "validValues": [ - "0", - "1" - ], - "ids": [ - "37#tokudb_check_jemalloc" - ] - }, - "tokudb_checkpoint_lock": { - "default": "OFF", - "dynamic": true, - "name": "tokudb_checkpoint_lock", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "37#tokudb_checkpoint_lock" - ] - }, - "tokudb_checkpoint_on_flush_logs": { - "default": "OFF", - "dynamic": true, - "name": "tokudb_checkpoint_on_flush_logs", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "37#tokudb_checkpoint_on_flush_logs" - ] - }, - "tokudb_checkpointing_period": { - "default": "60", - "dynamic": true, - "name": "tokudb_checkpointing_period", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "37#tokudb_checkpointing_period" - ] - }, - "tokudb_cleaner_iterations": { - "default": "5", - "dynamic": true, - "name": "tokudb_cleaner_iterations", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "37#tokudb_cleaner_iterations" - ] - }, - "tokudb_cleaner_period": { - "default": "1", - "dynamic": true, - "name": "tokudb_cleaner_period", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "37#tokudb_cleaner_period" - ] - }, - "tokudb_commit_sync": { - "default": "ON", - "dynamic": true, - "name": "tokudb_commit_sync", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "37#tokudb_commit_sync" - ] - }, - "tokudb_create_index_online": { - "default": "ON", - "dynamic": true, - "name": "tokudb_create_index_online", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "37#tokudb_create_index_online" - ] - }, - "tokudb_data_dir": { - "default": "Empty (the MariaDB datadir is used)", - "dynamic": false, - "name": "tokudb_data_dir", - "type": "string", - "ids": [ - "37#tokudb_data_dir" - ] - }, - "tokudb_debug": { - "default": "0", - "dynamic": true, - "name": "tokudb_debug", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "37#tokudb_debug" - ] - }, - "tokudb_directio": { - "default": "OFF", - "dynamic": false, - "name": "tokudb_directio", - "type": "boolean", - "ids": [ - "37#tokudb_directio" - ] - }, - "tokudb_disable_hot_alter": { - "default": "OFF", - "dynamic": true, - "name": "tokudb_disable_hot_alter", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "37#tokudb_disable_hot_alter" - ] - }, - "tokudb_disable_prefetching": { - "default": "OFF", - "dynamic": true, - "name": "tokudb_disable_prefetching", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "37#tokudb_disable_prefetching" - ] - }, - "tokudb_disable_slow_alter": { - "default": "OFF", - "dynamic": true, - "name": "tokudb_disable_slow_alter", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "37#tokudb_disable_slow_alter" - ] - }, - "tokudb_empty_scan": { - "default": "rl", - "dynamic": true, - "name": "tokudb_empty_scan", - "scope": [ - "global", - "session" - ], - "validValues": [ - "lr", - "rl", - "disabled" - ], - "ids": [ - "37#tokudb_empty_scan" - ] - }, - "tokudb_fs_reserve_percent": { - "default": "5", - "dynamic": false, - "name": "tokudb_fs_reserve_percent", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "37#tokudb_fs_reserve_percent" - ] - }, - "tokudb_fsync_log_period": { - "default": "0", - "dynamic": true, - "name": "tokudb_fsync_log_period", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "37#tokudb_fsync_log_period" - ] - }, - "tokudb_hide_default_row_format": { - "default": "ON", - "dynamic": true, - "name": "tokudb_hide_default_row_format", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "37#tokudb_hide_default_row_format" - ] - }, - "tokudb_killed_time": { - "default": "4000", - "dynamic": true, - "name": "tokudb_killed_time", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "37#tokudb_killed_time" - ] - }, - "tokudb_last_lock_timeout": { - "default": "Empty", - "dynamic": true, - "name": "tokudb_last_lock_timeout", - "scope": [ - "global", - "session" - ], - "ids": [ - "37#tokudb_last_lock_timeout" - ] - }, - "tokudb_load_save_space": { - "default": "ON", - "dynamic": true, - "name": "tokudb_load_save_space", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "37#tokudb_load_save_space" - ] - }, - "tokudb_loader_memory_size": { - "default": "100000000 (100M)", - "dynamic": true, - "name": "tokudb_loader_memory_size", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "37#tokudb_loader_memory_size" - ] - }, - "tokudb_lock_timeout": { - "default": "4000 (4 seconds)", - "dynamic": true, - "name": "tokudb_lock_timeout", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "37#tokudb_lock_timeout" - ] - }, - "tokudb_lock_timeout_debug": { - "default": "1", - "dynamic": true, - "name": "tokudb_lock_timeout_debug", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "37#tokudb_lock_timeout_debug" - ] - }, - "tokudb_log_dir": { - "default": "Empty (the MariaDB datadir is used)", - "dynamic": false, - "name": "tokudb_log_dir", - "type": "string", - "ids": [ - "37#tokudb_log_dir" - ] - }, - "tokudb_max_lock_memory": { - "default": "130653952", - "dynamic": false, - "name": "tokudb_max_lock_memory", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "37#tokudb_max_lock_memory" - ] - }, - "tokudb_optimize_index_fraction": { - "default": "1.000000", - "dynamic": true, - "name": "tokudb_optimize_index_fraction", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "37#tokudb_optimize_index_fraction" - ] - }, - "tokudb_optimize_index_name": { - "default": "None", - "dynamic": true, - "name": "tokudb_optimize_index_name", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "37#tokudb_optimize_index_name" - ] - }, - "tokudb_optimize_throttle": { - "default": "0", - "dynamic": true, - "name": "tokudb_optimize_throttle", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "37#tokudb_optimize_throttle" - ] - }, - "tokudb_pk_insert_mode": { - "default": "1", - "dynamic": true, - "name": "tokudb_pk_insert_mode", - "scope": [ - "global", - "session" - ], - "validValues": [ - "0", - "1", - "2" - ], - "ids": [ - "37#tokudb_pk_insert_mode" - ] - }, - "tokudb_prelock_empty": { - "default": "ON", - "dynamic": true, - "name": "tokudb_prelock_empty", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "37#tokudb_prelock_empty" - ] - }, - "tokudb_read_block_size": { - "default": "65536 (64KB)", - "dynamic": true, - "name": "tokudb_read_block_size", - "range": { - "from": 4096, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "37#tokudb_read_block_size" - ] - }, - "tokudb_read_buf_size": { - "default": "131072 (128KB)", - "dynamic": true, - "name": "tokudb_read_buf_size", - "range": { - "from": 0, - "to": 1048576 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "37#tokudb_read_buf_size" - ] - }, - "tokudb_read_status_frequency": { - "default": "10000", - "dynamic": true, - "name": "tokudb_read_status_frequency", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "37#tokudb_read_status_frequency" - ] - }, - "tokudb_row_format": { - "default": "tokudb_zlib", - "dynamic": true, - "name": "tokudb_row_format", - "scope": [ - "global", - "session" - ], - "validValues": [ - "tokudb_default", - "tokudb_fast", - "tokudb_small", - "tokudb_zlib", - "tokudb_quicklz", - "tokudb_lzma", - "tokudb_uncompressed" - ], - "ids": [ - "37#tokudb_row_format" - ] - }, - "tokudb_rpl_check_readonly": { - "default": "ON", - "dynamic": true, - "name": "tokudb_rpl_check_readonly", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "37#tokudb_rpl_check_readonly" - ] - }, - "tokudb_rpl_lookup_rows": { - "default": "ON", - "dynamic": true, - "name": "tokudb_rpl_lookup_rows", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "37#tokudb_rpl_lookup_rows" - ] - }, - "tokudb_rpl_lookup_rows_delay": { - "default": "0", - "dynamic": true, - "name": "tokudb_rpl_lookup_rows_delay", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "37#tokudb_rpl_lookup_rows_delay" - ] - }, - "tokudb_rpl_unique_checks": { - "default": "ON", - "dynamic": true, - "name": "tokudb_rpl_unique_checks", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "37#tokudb_rpl_unique_checks" - ] - }, - "tokudb_rpl_unique_checks_delay": { - "default": "0", - "dynamic": true, - "name": "tokudb_rpl_unique_checks_delay", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "37#tokudb_rpl_unique_checks_delay" - ] - }, - "tokudb_support_xa": { - "default": "ON", - "dynamic": true, - "name": "tokudb_support_xa", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "37#tokudb_support_xa" - ] - }, - "tokudb_tmp_dir": { - "default": "Empty (the MariaDB datadir is used)", - "dynamic": false, - "name": "tokudb_tmp_dir", - "type": "directory name", - "ids": [ - "37#tokudb_tmp_dir" - ] - }, - "tokudb_version": { - "dynamic": false, - "name": "tokudb_version", - "type": "string", - "ids": [ - "37#tokudb_version" - ] - }, - "tokudb_write_status_frequency": { - "default": "1000", - "dynamic": true, - "name": "tokudb_write_status_frequency", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "37#tokudb_write_status_frequency" - ] - }, - "system_versioning_alter_history": { - "cli": "--system-versioning-alter-history=value", - "default": "ERROR", - "dynamic": true, - "name": "system_versioning_alter_history", - "scope": [ - "global", - "session" - ], - "validValues": [ - "ERROR", - "KEEP" - ], - "ids": [ - "39#system_versioning_alter_history" - ] - }, - "system_versioning_asof": { - "default": "DEFAULT", - "dynamic": true, - "name": "system_versioning_asof", - "scope": [ - "global", - "session" - ], - "ids": [ - "38#system_versioning_asof" - ] - }, - "system_versioning_innodb_algorithm_simple": { - "cli": "--system-versioning-innodb-algorithm-simple[={0|1}]", - "default": "ON", - "dynamic": true, - "name": "system_versioning_innodb_algorithm_simple", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "38#system_versioning_innodb_algorithm_simple" - ] - }, - "Innodb_adaptive_hash_cells": { - "name": "Innodb_adaptive_hash_cells", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_adaptive_hash_cells" - ] - }, - "Innodb_adaptive_hash_hash_searches": { - "name": "Innodb_adaptive_hash_hash_searches", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_adaptive_hash_hash_searches" - ] - }, - "Innodb_adaptive_hash_heap_buffers": { - "name": "Innodb_adaptive_hash_heap_buffers", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_adaptive_hash_heap_buffers" - ] - }, - "Innodb_adaptive_hash_non_hash_searches": { - "name": "Innodb_adaptive_hash_non_hash_searches", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_adaptive_hash_non_hash_searches" - ] - }, - "Innodb_available_undo_logs": { - "name": "Innodb_available_undo_logs", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_available_undo_logs" - ] - }, - "Innodb_background_log_sync": { - "name": "Innodb_background_log_sync", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_background_log_sync" - ] - }, - "Innodb_buffer_pool_bytes_data": { - "name": "Innodb_buffer_pool_bytes_data", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_buffer_pool_bytes_data" - ] - }, - "Innodb_buffer_pool_bytes_dirty": { - "name": "Innodb_buffer_pool_bytes_dirty", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_buffer_pool_bytes_dirty" - ] - }, - "Innodb_buffer_pool_dump_status": { - "name": "Innodb_buffer_pool_dump_status", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "39#innodb_buffer_pool_dump_status" - ] - }, - "Innodb_buffer_pool_load_incomplete": { - "name": "Innodb_buffer_pool_load_incomplete", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "39#innodb_buffer_pool_load_incomplete" - ] - }, - "Innodb_buffer_pool_load_status": { - "name": "Innodb_buffer_pool_load_status", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "39#innodb_buffer_pool_load_status" - ] - }, - "Innodb_buffer_pool_pages_data": { - "name": "Innodb_buffer_pool_pages_data", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_buffer_pool_pages_data" - ] - }, - "Innodb_buffer_pool_pages_dirty": { - "name": "Innodb_buffer_pool_pages_dirty", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_buffer_pool_pages_dirty" - ] - }, - "Innodb_buffer_pool_pages_flushed": { - "name": "Innodb_buffer_pool_pages_flushed", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_buffer_pool_pages_flushed" - ] - }, - "Innodb_buffer_pool_pages_LRU_flushed": { - "name": "Innodb_buffer_pool_pages_LRU_flushed", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_buffer_pool_pages_lru_flushed" - ] - }, - "Innodb_buffer_pool_pages_free": { - "name": "Innodb_buffer_pool_pages_free", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_buffer_pool_pages_free" - ] - }, - "Innodb_buffer_pool_pages_made_not_young": { - "name": "Innodb_buffer_pool_pages_made_not_young", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_buffer_pool_pages_made_not_young" - ] - }, - "Innodb_buffer_pool_pages_made_young": { - "name": "Innodb_buffer_pool_pages_made_young", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_buffer_pool_pages_made_young" - ] - }, - "Innodb_buffer_pool_pages_misc": { - "name": "Innodb_buffer_pool_pages_misc", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_buffer_pool_pages_misc" - ] - }, - "Innodb_buffer_pool_pages_old": { - "name": "Innodb_buffer_pool_pages_old", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_buffer_pool_pages_old" - ] - }, - "Innodb_buffer_pool_pages_total": { - "name": "Innodb_buffer_pool_pages_total", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_buffer_pool_pages_total" - ] - }, - "Innodb_buffer_pool_read_ahead": { - "name": "Innodb_buffer_pool_read_ahead", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_buffer_pool_read_ahead" - ] - }, - "Innodb_buffer_pool_read_ahead_evicted": { - "name": "Innodb_buffer_pool_read_ahead_evicted", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_buffer_pool_read_ahead_evicted" - ] - }, - "Innodb_buffer_pool_read_ahead_rnd": { - "name": "Innodb_buffer_pool_read_ahead_rnd", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_buffer_pool_read_ahead_rnd" - ] - }, - "Innodb_buffer_pool_read_requests": { - "name": "Innodb_buffer_pool_read_requests", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_buffer_pool_read_requests" - ] - }, - "Innodb_buffer_pool_reads": { - "name": "Innodb_buffer_pool_reads", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_buffer_pool_reads" - ] - }, - "Innodb_buffer_pool_resize_status": { - "name": "Innodb_buffer_pool_resize_status", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_buffer_pool_resize_status" - ] - }, - "Innodb_buffer_pool_wait_free": { - "name": "Innodb_buffer_pool_wait_free", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_buffer_pool_wait_free" - ] - }, - "Innodb_buffer_pool_write_requests": { - "name": "Innodb_buffer_pool_write_requests", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_buffer_pool_write_requests" - ] - }, - "Innodb_checkpoint_age": { - "name": "Innodb_checkpoint_age", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_checkpoint_age" - ] - }, - "Innodb_checkpoint_max_age": { - "name": "Innodb_checkpoint_max_age", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_checkpoint_max_age" - ] - }, - "Innodb_checkpoint_target_age": { - "name": "Innodb_checkpoint_target_age", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_checkpoint_target_age" - ] - }, - "Innodb_current_row_locks": { - "name": "Innodb_current_row_locks", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_current_row_locks" - ] - }, - "Innodb_data_fsyncs": { - "name": "Innodb_data_fsyncs", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_data_fsyncs" - ] - }, - "Innodb_data_pending_fsyncs": { - "name": "Innodb_data_pending_fsyncs", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_data_pending_fsyncs" - ] - }, - "Innodb_data_pending_reads": { - "name": "Innodb_data_pending_reads", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_data_pending_reads" - ] - }, - "Innodb_data_pending_writes": { - "name": "Innodb_data_pending_writes", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_data_pending_writes" - ] - }, - "Innodb_data_read": { - "name": "Innodb_data_read", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_data_read" - ] - }, - "Innodb_data_reads": { - "name": "Innodb_data_reads", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_data_reads" - ] - }, - "Innodb_data_writes": { - "name": "Innodb_data_writes", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_data_writes" - ] - }, - "Innodb_data_written": { - "name": "Innodb_data_written", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_data_written" - ] - }, - "Innodb_dblwr_pages_written": { - "name": "Innodb_dblwr_pages_written", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_dblwr_pages_written" - ] - }, - "Innodb_dblwr_writes": { - "name": "Innodb_dblwr_writes", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_dblwr_writes" - ] - }, - "Innodb_deadlocks": { - "name": "Innodb_deadlocks", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_deadlocks" - ] - }, - "Innodb_defragment_compression_failures": { - "name": "Innodb_defragment_compression_failures", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_defragment_compression_failures" - ] - }, - "Innodb_defragment_count": { - "name": "Innodb_defragment_count", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_defragment_count" - ] - }, - "Innodb_defragment_failures": { - "name": "Innodb_defragment_failures", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_defragment_failures" - ] - }, - "Innodb_dict_tables": { - "name": "Innodb_dict_tables", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_dict_tables" - ] - }, - "Innodb_encryption_n_merge_blocks_decrypted": { - "name": "Innodb_encryption_n_merge_blocks_decrypted", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_encryption_n_merge_blocks_decrypted" - ] - }, - "Innodb_encryption_n_merge_blocks_encrypted": { - "name": "Innodb_encryption_n_merge_blocks_encrypted", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_encryption_n_merge_blocks_encrypted" - ] - }, - "Innodb_encryption_n_rowlog_blocks_decrypted": { - "name": "Innodb_encryption_n_rowlog_blocks_decrypted", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_encryption_n_rowlog_blocks_decrypted" - ] - }, - "Innodb_encryption_n_rowlog_blocks_encrypted": { - "name": "Innodb_encryption_n_rowlog_blocks_encrypted", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_encryption_n_rowlog_blocks_encrypted" - ] - }, - "Innodb_encryption_num_key_requests": { - "name": "Innodb_encryption_num_key_requests", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_encryption_num_key_requests" - ] - }, - "Innodb_encryption_rotation_estimated_iops": { - "name": "Innodb_encryption_rotation_estimated_iops", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_encryption_rotation_estimated_iops" - ] - }, - "Innodb_encryption_rotation_pages_flushed": { - "name": "Innodb_encryption_rotation_pages_flushed", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_encryption_rotation_pages_flushed" - ] - }, - "Innodb_encryption_rotation_pages_modified": { - "name": "Innodb_encryption_rotation_pages_modified", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_encryption_rotation_pages_modified" - ] - }, - "Innodb_encryption_rotation_pages_read_from_cache": { - "name": "Innodb_encryption_rotation_pages_read_from_cache", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_encryption_rotation_pages_read_from_cache" - ] - }, - "Innodb_encryption_rotation_pages_read_from_disk": { - "name": "Innodb_encryption_rotation_pages_read_from_disk", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_encryption_rotation_pages_read_from_disk" - ] - }, - "Innodb_have_atomic_builtins": { - "name": "Innodb_have_atomic_builtins", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "39#innodb_have_atomic_builtins" - ] - }, - "Innodb_have_bzip2": { - "name": "Innodb_have_bzip2", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "39#innodb_have_bzip2" - ] - }, - "Innodb_have_lz4": { - "name": "Innodb_have_lz4", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "39#innodb_have_lz4" - ] - }, - "Innodb_have_lzma": { - "name": "Innodb_have_lzma", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "39#innodb_have_lzma" - ] - }, - "Innodb_have_lzo": { - "name": "Innodb_have_lzo", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "39#innodb_have_lzo" - ] - }, - "Innodb_have_punch_hole": { - "name": "Innodb_have_punch_hole", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_have_punch_hole" - ] - }, - "Innodb_have_snappy": { - "name": "Innodb_have_snappy", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "39#innodb_have_snappy" - ] - }, - "Innodb_history_list_length": { - "name": "Innodb_history_list_length", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_history_list_length" - ] - }, - "Innodb_ibuf_discarded_delete_marks": { - "name": "Innodb_ibuf_discarded_delete_marks", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_ibuf_discarded_delete_marks" - ] - }, - "Innodb_ibuf_discarded_deletes": { - "name": "Innodb_ibuf_discarded_deletes", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_ibuf_discarded_deletes" - ] - }, - "Innodb_ibuf_discarded_inserts": { - "name": "Innodb_ibuf_discarded_inserts", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_ibuf_discarded_inserts" - ] - }, - "Innodb_ibuf_free_list": { - "name": "Innodb_ibuf_free_list", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_ibuf_free_list" - ] - }, - "Innodb_ibuf_merged_delete_marks": { - "name": "Innodb_ibuf_merged_delete_marks", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_ibuf_merged_delete_marks" - ] - }, - "Innodb_ibuf_merged_deletes": { - "name": "Innodb_ibuf_merged_deletes", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_ibuf_merged_deletes" - ] - }, - "Innodb_ibuf_merged_inserts": { - "name": "Innodb_ibuf_merged_inserts", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_ibuf_merged_inserts" - ] - }, - "Innodb_ibuf_merges": { - "name": "Innodb_ibuf_merges", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_ibuf_merges" - ] - }, - "Innodb_ibuf_segment_size": { - "name": "Innodb_ibuf_segment_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_ibuf_segment_size" - ] - }, - "Innodb_ibuf_size": { - "name": "Innodb_ibuf_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_ibuf_size" - ] - }, - "Innodb_instant_alter_column": { - "name": "Innodb_instant_alter_column", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_instant_alter_column" - ] - }, - "Innodb_log_waits": { - "name": "Innodb_log_waits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_log_waits" - ] - }, - "Innodb_log_write_requests": { - "name": "Innodb_log_write_requests", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_log_write_requests" - ] - }, - "Innodb_log_writes": { - "name": "Innodb_log_writes", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_log_writes" - ] - }, - "Innodb_lsn_current": { - "name": "Innodb_lsn_current", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_lsn_current" - ] - }, - "Innodb_lsn_flushed": { - "name": "Innodb_lsn_flushed", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_lsn_flushed" - ] - }, - "Innodb_lsn_last_checkpoint": { - "name": "Innodb_lsn_last_checkpoint", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_lsn_last_checkpoint" - ] - }, - "Innodb_master_thread_1_second_loops": { - "name": "Innodb_master_thread_1_second_loops", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_master_thread_1_second_loops" - ] - }, - "Innodb_master_thread_10_second_loops": { - "name": "Innodb_master_thread_10_second_loops", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_master_thread_10_second_loops" - ] - }, - "Innodb_master_thread_active_loops": { - "name": "Innodb_master_thread_active_loops", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_master_thread_active_loops" - ] - }, - "Innodb_master_thread_background_loops": { - "name": "Innodb_master_thread_background_loops", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_master_thread_background_loops" - ] - }, - "Innodb_master_thread_idle_loops": { - "name": "Innodb_master_thread_idle_loops", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_master_thread_idle_loops" - ] - }, - "Innodb_master_thread_main_flush_loops": { - "name": "Innodb_master_thread_main_flush_loops", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_master_thread_main_flush_loops" - ] - }, - "Innodb_master_thread_sleeps": { - "name": "Innodb_master_thread_sleeps", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_master_thread_sleeps" - ] - }, - "Innodb_max_trx_id": { - "name": "Innodb_max_trx_id", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_max_trx_id" - ] - }, - "Innodb_mem_adaptive_hash": { - "name": "Innodb_mem_adaptive_hash", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_mem_adaptive_hash" - ] - }, - "Innodb_mem_dictionary": { - "name": "Innodb_mem_dictionary", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_mem_dictionary" - ] - }, - "Innodb_mem_total": { - "name": "Innodb_mem_total", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_mem_total" - ] - }, - "Innodb_mutex_os_waits": { - "name": "Innodb_mutex_os_waits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_mutex_os_waits" - ] - }, - "Innodb_mutex_spin_rounds": { - "name": "Innodb_mutex_spin_rounds", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_mutex_spin_rounds" - ] - }, - "Innodb_mutex_spin_waits": { - "name": "Innodb_mutex_spin_waits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_mutex_spin_waits" - ] - }, - "Innodb_num_index_pages_written": { - "name": "Innodb_num_index_pages_written", - "scope": [], - "type": "integer", - "ids": [ - "39#innodb_num_index_pages_written" - ] - }, - "Innodb_num_non_index_pages_written": { - "name": "Innodb_num_non_index_pages_written", - "scope": [], - "type": "integer", - "ids": [ - "39#innodb_num_non_index_pages_written" - ] - }, - "Innodb_num_open_files": { - "name": "Innodb_num_open_files", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_num_open_files" - ] - }, - "Innodb_num_page_compressed_trim_op": { - "name": "Innodb_num_page_compressed_trim_op", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_num_page_compressed_trim_op" - ] - }, - "Innodb_num_page_compressed_trim_op_saved": { - "name": "Innodb_num_page_compressed_trim_op_saved", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_num_page_compressed_trim_op_saved" - ] - }, - "Innodb_num_pages_decrypted": { - "name": "Innodb_num_pages_decrypted", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_num_pages_decrypted" - ] - }, - "Innodb_num_pages_encrypted": { - "name": "Innodb_num_pages_encrypted", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_num_pages_encrypted" - ] - }, - "Innodb_num_pages_page_compressed": { - "name": "Innodb_num_pages_page_compressed", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_num_pages_page_compressed" - ] - }, - "Innodb_num_pages_page_compression_error": { - "name": "Innodb_num_pages_page_compression_error", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_num_pages_page_compression_error" - ] - }, - "Innodb_num_pages_page_decompressed": { - "name": "Innodb_num_pages_page_decompressed", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_num_pages_page_decompressed" - ] - }, - "Innodb_num_pages_page_encryption_error": { - "name": "Innodb_num_pages_page_encryption_error", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_num_pages_page_encryption_error" - ] - }, - "Innodb_oldest_view_low_limit_trx_id": { - "name": "Innodb_oldest_view_low_limit_trx_id", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_oldest_view_low_limit_trx_id" - ] - }, - "Innodb_onlineddl_pct_progress": { - "name": "Innodb_onlineddl_pct_progress", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_onlineddl_pct_progress" - ] - }, - "Innodb_onlineddl_rowlog_pct_used": { - "name": "Innodb_onlineddl_rowlog_pct_used", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_onlineddl_rowlog_pct_used" - ] - }, - "Innodb_onlineddl_rowlog_rows": { - "name": "Innodb_onlineddl_rowlog_rows", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_onlineddl_rowlog_rows" - ] - }, - "Innodb_os_log_fsyncs": { - "name": "Innodb_os_log_fsyncs", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_os_log_fsyncs" - ] - }, - "Innodb_os_log_pending_fsyncs": { - "name": "Innodb_os_log_pending_fsyncs", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_os_log_pending_fsyncs" - ] - }, - "Innodb_os_log_pending_writes": { - "name": "Innodb_os_log_pending_writes", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_os_log_pending_writes" - ] - }, - "Innodb_os_log_written": { - "name": "Innodb_os_log_written", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_os_log_written" - ] - }, - "Innodb_page_compression_saved": { - "name": "Innodb_page_compression_saved", - "scope": [], - "type": "byte", - "ids": [ - "39#innodb_page_compression_saved" - ] - }, - "Innodb_page_compression_trim_sect512": { - "name": "Innodb_page_compression_trim_sect512", - "scope": [], - "type": "integer", - "ids": [ - "39#innodb_page_compression_trim_sect512" - ] - }, - "Innodb_page_compression_trim_sect1024": { - "name": "Innodb_page_compression_trim_sect1024", - "scope": [], - "type": "integer", - "ids": [ - "39#innodb_page_compression_trim_sect1024" - ] - }, - "Innodb_page_compression_trim_sect2048": { - "name": "Innodb_page_compression_trim_sect2048", - "scope": [], - "type": "integer", - "ids": [ - "39#innodb_page_compression_trim_sect2048" - ] - }, - "Innodb_page_compression_trim_sect4096": { - "name": "Innodb_page_compression_trim_sect4096", - "scope": [], - "type": "integer", - "ids": [ - "39#innodb_page_compression_trim_sect4096" - ] - }, - "Innodb_page_compression_trim_sect8192": { - "name": "Innodb_page_compression_trim_sect8192", - "scope": [], - "type": "integer", - "ids": [ - "39#innodb_page_compression_trim_sect8192" - ] - }, - "Innodb_page_compression_trim_sect16384": { - "name": "Innodb_page_compression_trim_sect16384", - "scope": [], - "type": "integer", - "ids": [ - "39#innodb_page_compression_trim_sect16384" - ] - }, - "Innodb_page_compression_trim_sect32768": { - "name": "Innodb_page_compression_trim_sect32768", - "scope": [], - "type": "integer", - "ids": [ - "39#innodb_page_compression_trim_sect32768" - ] - }, - "Innodb_page_size": { - "name": "Innodb_page_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_page_size" - ] - }, - "Innodb_pages_created": { - "name": "Innodb_pages_created", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_pages_created" - ] - }, - "Innodb_pages_read": { - "name": "Innodb_pages_read", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_pages_read" - ] - }, - "Innodb_pages0_read": { - "name": "Innodb_pages0_read", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_pages0_read" - ] - }, - "Innodb_pages_written": { - "name": "Innodb_pages_written", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_pages_written" - ] - }, - "Innodb_purge_trx_id": { - "name": "Innodb_purge_trx_id", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_purge_trx_id" - ] - }, - "Innodb_purge_undo_no": { - "name": "Innodb_purge_undo_no", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_purge_undo_no" - ] - }, - "Innodb_read_views_memory": { - "name": "Innodb_read_views_memory", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_read_views_memory" - ] - }, - "Innodb_row_lock_current_waits": { - "name": "Innodb_row_lock_current_waits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_row_lock_current_waits" - ] - }, - "Innodb_row_lock_numbers": { - "name": "Innodb_row_lock_numbers", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_row_lock_numbers" - ] - }, - "Innodb_row_lock_time": { - "name": "Innodb_row_lock_time", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_row_lock_time" - ] - }, - "Innodb_row_lock_time_avg": { - "name": "Innodb_row_lock_time_avg", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_row_lock_time_avg" - ] - }, - "Innodb_row_lock_time_max": { - "name": "Innodb_row_lock_time_max", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_row_lock_time_max" - ] - }, - "Innodb_row_lock_time_waits": { - "name": "Innodb_row_lock_time_waits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_row_lock_time_waits" - ] - }, - "Innodb_rows_deleted": { - "name": "Innodb_rows_deleted", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_rows_deleted" - ] - }, - "Innodb_rows_inserted": { - "name": "Innodb_rows_inserted", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_rows_inserted" - ] - }, - "Innodb_rows_read": { - "name": "Innodb_rows_read", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_rows_read" - ] - }, - "Innodb_rows_updated": { - "name": "Innodb_rows_updated", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_rows_updated" - ] - }, - "Innodb_s_lock_os_waits": { - "name": "Innodb_s_lock_os_waits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_s_lock_os_waits" - ] - }, - "Innodb_s_lock_spin_rounds": { - "name": "Innodb_s_lock_spin_rounds", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_s_lock_spin_rounds" - ] - }, - "Innodb_s_lock_spin_waits": { - "name": "Innodb_s_lock_spin_waits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_s_lock_spin_waits" - ] - }, - "Innodb_scrub_background_page_reorganizations": { - "name": "Innodb_scrub_background_page_reorganizations", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_scrub_background_page_reorganizations" - ] - }, - "Innodb_scrub_background_page_split_failures_missing_index": { - "name": "Innodb_scrub_background_page_split_failures_missing_index", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_scrub_background_page_split_failures_missing_index" - ] - }, - "Innodb_scrub_background_page_split_failures_out_of_filespace": { - "name": "Innodb_scrub_background_page_split_failures_out_of_filespace", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_scrub_background_page_split_failures_out_of_filespace" - ] - }, - "Innodb_scrub_background_page_split_failures_underflow": { - "name": "Innodb_scrub_background_page_split_failures_underflow", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_scrub_background_page_split_failures_underflow" - ] - }, - "Innodb_scrub_background_page_split_failures_unknown": { - "name": "Innodb_scrub_background_page_split_failures_unknown", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_scrub_background_page_split_failures_unknown" - ] - }, - "Innodb_scrub_background_page_splits": { - "name": "Innodb_scrub_background_page_splits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_scrub_background_page_splits" - ] - }, - "Innodb_scrub_log": { - "name": "Innodb_scrub_log", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_scrub_log" - ] - }, - "Innodb_secondary_index_triggered_cluster_reads": { - "name": "Innodb_secondary_index_triggered_cluster_reads", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_secondary_index_triggered_cluster_reads" - ] - }, - "Innodb_secondary_index_triggered_cluster_reads_avoided": { - "name": "Innodb_secondary_index_triggered_cluster_reads_avoided", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_secondary_index_triggered_cluster_reads_avoided" - ] - }, - "Innodb_system_rows_deleted": { - "name": "Innodb_system_rows_deleted", - "scope": [], - "type": "integer", - "ids": [ - "39#innodb_system_rows_deleted" - ] - }, - "Innodb_system_rows_inserted": { - "name": "Innodb_system_rows_inserted", - "scope": [], - "type": "integer", - "ids": [ - "39#innodb_system_rows_inserted" - ] - }, - "Innodb_system_rows_read": { - "name": "Innodb_system_rows_read", - "scope": [], - "type": "integer", - "ids": [ - "39#innodb_system_rows_read" - ] - }, - "Innodb_system_rows_updated": { - "name": "Innodb_system_rows_updated", - "scope": [], - "type": "integer", - "ids": [ - "39#innodb_system_rows_updated" - ] - }, - "Innodb_truncated_status_writes": { - "name": "Innodb_truncated_status_writes", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_truncated_status_writes" - ] - }, - "Innodb_undo_truncations": { - "name": "Innodb_undo_truncations", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_undo_truncations" - ] - }, - "Innodb_x_lock_os_waits": { - "name": "Innodb_x_lock_os_waits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_x_lock_os_waits" - ] - }, - "Innodb_x_lock_spin_rounds": { - "name": "Innodb_x_lock_spin_rounds", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_x_lock_spin_rounds" - ] - }, - "Innodb_x_lock_spin_waits": { - "name": "Innodb_x_lock_spin_waits", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "39#innodb_x_lock_spin_waits" - ] - }, - "have_innodb": { - "dynamic": false, - "name": "have_innodb", - "scope": [ - "global" - ], - "ids": [ - "41#have_innodb" - ] - }, - "ignore_builtin_innodb": { - "cli": "--ignore-builtin-innodb[={OFF|ON}]", - "dynamic": false, - "name": "ignore_builtin_innodb", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#ignore_builtin_innodb", - "42#sysvar_ignore_builtin_innodb" - ] - }, - "innodb_adaptive_checkpoint": { - "cli": "--innodb-adaptive-checkpoint=#", - "default": "estimate", - "dynamic": true, - "name": "innodb_adaptive_checkpoint", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "none", - "0", - "reflex", - "1", - "estimate", - "2", - "keep_average", - "3" - ], - "ids": [ - "40#innodb_adaptive_checkpoint" - ] - }, - "innodb_adaptive_flushing": { - "default": "ON", - "dynamic": true, - "name": "innodb_adaptive_flushing", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_adaptive_flushing", - "41#sysvar_innodb_adaptive_flushing" - ] - }, - "innodb_adaptive_flushing_lwm": { - "cli": "--innodb-adaptive-flushing-lwm=#", - "default": "10", - "dynamic": true, - "name": "innodb_adaptive_flushing_lwm", - "range": { - "from": 0, - "to": 70 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_adaptive_flushing_lwm", - "41#sysvar_innodb_adaptive_flushing_lwm" - ] - }, - "innodb_adaptive_flushing_method": { - "cli": "innodb-adaptive-flushing-method=value", - "default": "estimate", - "dynamic": true, - "name": "innodb_adaptive_flushing_method", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "native", - "0", - "estimate", - "1", - "keep_average", - "2" - ], - "ids": [ - "40#innodb_adaptive_flushing_method" - ] - }, - "innodb_adaptive_hash_index": { - "dynamic": true, - "name": "innodb_adaptive_hash_index", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_adaptive_hash_index", - "41#sysvar_innodb_adaptive_hash_index" - ] - }, - "innodb_adaptive_hash_index_partitions": { - "cli": "innodb-adaptive-hash-index-partitions=#", - "default": "1", - "dynamic": false, - "name": "innodb_adaptive_hash_index_partitions", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_adaptive_hash_index_partitions" - ] - }, - "innodb_adaptive_hash_index_parts": { - "cli": "--innodb-adaptive-hash-index-parts=#", - "default": "8", - "dynamic": false, - "name": "innodb_adaptive_hash_index_parts", - "range": { - "from": 1, - "to": 512 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_adaptive_hash_index_parts", - "41#sysvar_innodb_adaptive_hash_index_parts" - ] - }, - "innodb_adaptive_max_sleep_delay": { - "cli": "--innodb-adaptive-max-sleep-delay=#", - "default": "150000", - "dynamic": true, - "name": "innodb_adaptive_max_sleep_delay", - "range": { - "from": 0, - "to": 1000000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_adaptive_max_sleep_delay", - "41#sysvar_innodb_adaptive_max_sleep_delay" - ] - }, - "innodb_additional_mem_pool_size": { - "cli": "--innodb-additional-mem-pool-size=#", - "default": "8388608", - "dynamic": false, - "name": "innodb_additional_mem_pool_size", - "range": { - "from": 2097152, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_additional_mem_pool_size" - ] - }, - "innodb_api_bk_commit_interval": { - "cli": "--innodb-api-bk-commit-interval=#", - "default": "5", - "dynamic": true, - "name": "innodb_api_bk_commit_interval", - "range": { - "from": 1, - "to": 1073741824 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_api_bk_commit_interval", - "41#sysvar_innodb_api_bk_commit_interval" - ] - }, - "innodb_api_disable_rowlock": { - "default": "OFF", - "dynamic": false, - "name": "innodb_api_disable_rowlock", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_api_disable_rowlock", - "41#sysvar_innodb_api_disable_rowlock" - ] - }, - "innodb_api_enable_binlog": { - "default": "OFF", - "dynamic": false, - "name": "innodb_api_enable_binlog", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_api_enable_binlog", - "41#sysvar_innodb_api_enable_binlog" - ] - }, - "innodb_api_enable_mdl": { - "default": "OFF", - "dynamic": false, - "name": "innodb_api_enable_mdl", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_api_enable_mdl", - "41#sysvar_innodb_api_enable_mdl" - ] - }, - "innodb_api_trx_level": { - "cli": "--innodb-api-trx-level=#", - "default": "0", - "dynamic": true, - "name": "innodb_api_trx_level", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_api_trx_level", - "41#sysvar_innodb_api_trx_level" - ] - }, - "innodb_auto_lru_dump": { - "cli": "--innodb-auto-lru-dump=#", - "name": "innodb_auto_lru_dump", - "ids": [ - "40#innodb_auto_lru_dump" - ] - }, - "innodb_autoextend_increment": { - "cli": "--innodb-autoextend-increment=#", - "default": "64", - "dynamic": true, - "name": "innodb_autoextend_increment", - "range": { - "from": 1, - "to": 1000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_autoextend_increment", - "41#sysvar_innodb_autoextend_increment" - ] - }, - "innodb_autoinc_lock_mode": { - "cli": "--innodb-autoinc-lock-mode=#", - "dynamic": false, - "name": "innodb_autoinc_lock_mode", - "scope": [ - "global" - ], - "type": "integer", - "validValues": [ - "0", - "1", - "2" - ], - "ids": [ - "40#innodb_autoinc_lock_mode", - "41#sysvar_innodb_autoinc_lock_mode" - ] - }, - "innodb_background_scrub_data_check_interval": { - "cli": "--innodb-background-scrub-data-check-interval=#", - "default": "3600", - "dynamic": true, - "name": "innodb_background_scrub_data_check_interval", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_background_scrub_data_check_interval" - ] - }, - "innodb_background_scrub_data_compressed": { - "cli": "--innodb-background-scrub-data-compressed={0|1}", - "default": "0", - "dynamic": true, - "name": "innodb_background_scrub_data_compressed", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_background_scrub_data_compressed" - ] - }, - "innodb_background_scrub_data_interval": { - "cli": "--innodb-background-scrub-data-interval=#", - "default": "604800", - "dynamic": true, - "name": "innodb_background_scrub_data_interval", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_background_scrub_data_interval" - ] - }, - "innodb_background_scrub_data_uncompressed": { - "cli": "--innodb-background-scrub-data-uncompressed={0|1}", - "default": "0", - "dynamic": true, - "name": "innodb_background_scrub_data_uncompressed", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_background_scrub_data_uncompressed" - ] - }, - "innodb_blocking_buffer_pool_restore": { - "cli": "innodb-blocking-buffer-pool-restore={1|2}", - "default": "OFF", - "dynamic": false, - "name": "innodb_blocking_buffer_pool_restore", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_blocking_buffer_pool_restore" - ] - }, - "innodb_buf_dump_status_frequency": { - "cli": "--innodb-buf-dump-status-frequency=#", - "default": "0", - "dynamic": true, - "name": "innodb_buf_dump_status_frequency", - "range": { - "from": 0, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_buf_dump_status_frequency" - ] - }, - "innodb_buffer_pool_chunk_size": { - "cli": "--innodb-buffer-pool-chunk-size=#", - "default": "134217728", - "dynamic": false, - "name": "innodb_buffer_pool_chunk_size", - "range": { - "from": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_buffer_pool_chunk_size", - "41#sysvar_innodb_buffer_pool_chunk_size" - ] - }, - "innodb_buffer_pool_dump_at_shutdown": { - "default": "1", - "dynamic": true, - "name": "innodb_buffer_pool_dump_at_shutdown", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_buffer_pool_dump_at_shutdown", - "41#sysvar_innodb_buffer_pool_dump_at_shutdown" - ] - }, - "innodb_buffer_pool_dump_now": { - "default": "OFF", - "dynamic": true, - "name": "innodb_buffer_pool_dump_now", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_buffer_pool_dump_now", - "41#sysvar_innodb_buffer_pool_dump_now" - ] - }, - "innodb_buffer_pool_dump_pct": { - "cli": "--innodb-buffer-pool-dump-pct=#", - "default": "25", - "dynamic": true, - "name": "innodb_buffer_pool_dump_pct", - "range": { - "from": 1, - "to": 100 - }, - "scope": [ - "global" - ], - "ids": [ - "40#innodb_buffer_pool_dump_pct", - "41#sysvar_innodb_buffer_pool_dump_pct" - ] - }, - "innodb_buffer_pool_evict": { - "cli": "--innodb-buffer-pool-evict=#", - "default": "\"\"", - "dynamic": true, - "name": "innodb_buffer_pool_evict", - "scope": [ - "global" - ], - "type": "string", - "validValues": [], - "ids": [ - "40#innodb_buffer_pool_evict" - ] - }, - "innodb_buffer_pool_filename": { - "cli": "--innodb-buffer-pool-pathname=path-name", - "default": "ib_buffer_pool", - "dynamic": true, - "name": "innodb_buffer_pool_filename", - "scope": [ - "global" - ], - "ids": [ - "40#innodb_buffer_pool_filename", - "41#sysvar_innodb_buffer_pool_filename" - ] - }, - "innodb_buffer_pool_instances": { - "cli": "--innodb-buffer-pool-instances=#", - "dynamic": false, - "name": "innodb_buffer_pool_instances", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_buffer_pool_instances", - "41#sysvar_innodb_buffer_pool_instances" - ] - }, - "innodb_buffer_pool_load_abort": { - "default": "OFF", - "dynamic": true, - "name": "innodb_buffer_pool_load_abort", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_buffer_pool_load_abort", - "41#sysvar_innodb_buffer_pool_load_abort" - ] - }, - "innodb_buffer_pool_load_at_startup": { - "default": "1", - "dynamic": false, - "name": "innodb_buffer_pool_load_at_startup", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_buffer_pool_load_at_startup", - "41#sysvar_innodb_buffer_pool_load_at_startup" - ] - }, - "innodb_buffer_pool_load_now": { - "default": "OFF", - "dynamic": true, - "name": "innodb_buffer_pool_load_now", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_buffer_pool_load_now", - "41#sysvar_innodb_buffer_pool_load_now" - ] - }, - "innodb_buffer_pool_populate": { - "cli": "innodb-buffer-pool-populate={0|1}", - "default": "OFF", - "dynamic": false, - "name": "innodb_buffer_pool_populate", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_buffer_pool_populate" - ] - }, - "innodb_buffer_pool_restore_at_startup": { - "cli": "innodb-buffer-pool-restore-at-startup", - "default": "0", - "dynamic": true, - "name": "innodb_buffer_pool_restore_at_startup", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_buffer_pool_restore_at_startup" - ] - }, - "innodb_buffer_pool_shm_checksum": { - "cli": "innodb-buffer-pool-shm-checksum={0|1}", - "default": "ON", - "dynamic": false, - "name": "innodb_buffer_pool_shm_checksum", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_buffer_pool_shm_checksum" - ] - }, - "innodb_buffer_pool_shm_key": { - "cli": "innodb-buffer-pool-shm-key={0|1}", - "default": "0", - "dynamic": false, - "name": "innodb_buffer_pool_shm_key", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_buffer_pool_shm_key" - ] - }, - "innodb_buffer_pool_size": { - "cli": "--innodb-buffer-pool-size=#", - "default": "134217728", - "name": "innodb_buffer_pool_size", - "range": { - "from": 5242880, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_buffer_pool_size", - "41#sysvar_innodb_buffer_pool_size" - ] - }, - "innodb_change_buffer_dump": { - "default": "OFF", - "dynamic": false, - "name": "innodb_change_buffer_dump", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_change_buffer_dump" - ] - }, - "innodb_change_buffer_max_size": { - "cli": "--innodb-change-buffer-max-size=#", - "default": "25", - "dynamic": true, - "name": "innodb_change_buffer_max_size", - "range": { - "from": 0, - "to": 50 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_change_buffer_max_size", - "41#sysvar_innodb_change_buffer_max_size" - ] - }, - "innodb_change_buffering": { - "cli": "--innodb-change-buffering=value", - "default": "all", - "dynamic": true, - "name": "innodb_change_buffering", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "none", - "inserts", - "deletes", - "changes", - "purges", - "all" - ], - "ids": [ - "40#innodb_change_buffering", - "41#sysvar_innodb_change_buffering" - ] - }, - "innodb_change_buffering_debug": { - "cli": "--innodb-change-buffering-debug=#", - "default": "0", - "dynamic": true, - "name": "innodb_change_buffering_debug", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_change_buffering_debug", - "41#sysvar_innodb_change_buffering_debug" - ] - }, - "innodb_checkpoint_age_target": { - "cli": "innodb-checkpoint-age-target=#", - "default": "0", - "dynamic": true, - "name": "innodb_checkpoint_age_target", - "range": { - "from": 0, - "to": "upwards" - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_checkpoint_age_target" - ] - }, - "innodb_checksum_algorithm": { - "cli": "--innodb-checksum-algorithm=value", - "default": "crc32", - "dynamic": true, - "name": "innodb_checksum_algorithm", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "innodb", - "crc32", - "full_crc32", - "none", - "strict_innodb", - "strict_crc32", - "strict_none", - "strict_full_crc32" - ], - "ids": [ - "40#innodb_checksum_algorithm", - "41#sysvar_innodb_checksum_algorithm" - ] - }, - "innodb_checksums": { - "cli": "--innodb-checksums, --skip-innodb-checksums", - "default": "ON", - "dynamic": false, - "name": "innodb_checksums", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_checksums" - ] - }, - "innodb_cleaner_lsn_age_factor": { - "cli": "--innodb-cleaner-lsn-age-factor=value", - "default": "deprecated (>= MariaDB 10.2.6), high_checkpoint (<= MariaDB 10.1)", - "dynamic": true, - "name": "innodb_cleaner_lsn_age_factor", - "scope": [ - "global" - ], - "validValues": [ - "high_checkpoint", - "legacy", - "deprecated", - "high_checkpoint", - "legacy" - ], - "ids": [ - "40#innodb_cleaner_lsn_age_factor" - ] - }, - "innodb_cmp_per_index_enabled": { - "default": "OFF", - "dynamic": true, - "name": "innodb_cmp_per_index_enabled", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_cmp_per_index_enabled", - "41#sysvar_innodb_cmp_per_index_enabled" - ] - }, - "innodb_commit_concurrency": { - "cli": "--innodb-commit-concurrency=#", - "default": "0", - "dynamic": true, - "name": "innodb_commit_concurrency", - "range": { - "from": 0, - "to": 1000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_commit_concurrency", - "41#sysvar_innodb_commit_concurrency" - ] - }, - "innodb_compression_algorithm": { - "cli": "--innodb-compression-algorithm=value", - "default": "zlib (>= MariaDB 10.2.4, MariaDB 10.1.22), none (<= MariaDB 10.2.3, MariaDB 10.1.21)", - "dynamic": true, - "name": "innodb_compression_algorithm", - "scope": [ - "global" - ], - "validValues": [ - "none", - "zlib", - "lz4", - "lzo", - "lzma", - "bzip2", - "snappy" - ], - "ids": [ - "40#innodb_compression_algorithm" - ] - }, - "innodb_compression_default": { - "cli": "--innodb-compression-default={0|1}", - "default": "OFF", - "dynamic": true, - "name": "innodb_compression_default", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "40#innodb_compression_default" - ] - }, - "innodb_compression_failure_threshold_pct": { - "cli": "--innodb-compression-failure-threshold-pct=#", - "default": "5", - "dynamic": true, - "name": "innodb_compression_failure_threshold_pct", - "range": { - "from": 0, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_compression_failure_threshold_pct", - "41#sysvar_innodb_compression_failure_threshold_pct" - ] - }, - "innodb_compression_level": { - "cli": "--innodb-compression-level=#", - "default": "6", - "dynamic": true, - "name": "innodb_compression_level", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_compression_level", - "41#sysvar_innodb_compression_level" - ] - }, - "innodb_compression_pad_pct_max": { - "cli": "--innodb-compression-pad-pct-max=#", - "default": "50", - "dynamic": true, - "name": "innodb_compression_pad_pct_max", - "range": { - "from": 0, - "to": 75 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_compression_pad_pct_max", - "41#sysvar_innodb_compression_pad_pct_max" - ] - }, - "innodb_concurrency_tickets": { - "cli": "--innodb-concurrency-tickets=#", - "default": "5000", - "dynamic": true, - "name": "innodb_concurrency_tickets", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_concurrency_tickets", - "41#sysvar_innodb_concurrency_tickets" - ] - }, - "innodb_corrupt_table_action": { - "cli": "innodb-corrupt-table-action=value", - "default": "assert (<= MariaDB 10.1), deprecated (<= MariaDB 10.2.6)", - "dynamic": true, - "name": "innodb_corrupt_table_action", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "deprecated", - "assert", - "warn", - "salvage", - "assert", - "warn", - "salvage" - ], - "ids": [ - "40#innodb_corrupt_table_action" - ] - }, - "innodb_data_file_path": { - "default": "ibdata1:12M:autoextend", - "dynamic": false, - "name": "innodb_data_file_path", - "scope": [ - "global" - ], - "ids": [ - "40#innodb_data_file_path", - "41#sysvar_innodb_data_file_path" - ] - }, - "innodb_data_home_dir": { - "cli": "--innodb-data-home-dir=path", - "dynamic": false, - "name": "innodb_data_home_dir", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - "40#innodb_data_home_dir", - "41#sysvar_innodb_data_home_dir" - ] - }, - "innodb_deadlock_detect": { - "cli": "--innodb-deadlock-detect[={OFF|ON}]", - "default": "1", - "dynamic": true, - "name": "innodb_deadlock_detect", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_deadlock_detect", - "41#sysvar_innodb_deadlock_detect" - ] - }, - "innodb_default_page_encryption_key": { - "cli": "--innodb-default-page-encryption-key=#", - "default": "1", - "dynamic": true, - "name": "innodb_default_page_encryption_key", - "range": { - "from": 1, - "to": 255 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_default_page_encryption_key" - ] - }, - "innodb_default_encryption_key_id": { - "cli": "--innodb-default-encryption-key-id=#", - "default": "1", - "dynamic": true, - "name": "innodb_default_encryption_key_id", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "40#innodb_default_encryption_key_id" - ] - }, - "innodb_default_row_format": { - "cli": "--innodb-default-row-format=value", - "default": "DYNAMIC", - "dynamic": true, - "name": "innodb_default_row_format", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "redundant", - "compact", - "dynamic" - ], - "ids": [ - "40#innodb_default_row_format", - "41#sysvar_innodb_default_row_format" - ] - }, - "innodb_defragment": { - "cli": "--innodb-defragment=#", - "default": "OFF", - "dynamic": true, - "name": "innodb_defragment", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_defragment" - ] - }, - "innodb_defragment_fill_factor": { - "cli": "--innodb-defragment-fill-factor=#", - "default": "0.9", - "dynamic": true, - "name": "innodb_defragment_fill_factor", - "range": { - "from": 0.7, - "to": 1 - }, - "scope": [ - "global" - ], - "ids": [ - "40#innodb_defragment_fill_factor" - ] - }, - "innodb_defragment_fill_factor_n_recs": { - "cli": "--innodb-defragment-fill-factor-n-recs=#", - "default": "20", - "dynamic": true, - "name": "innodb_defragment_fill_factor_n_recs", - "range": { - "from": 1, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_defragment_fill_factor_n_recs" - ] - }, - "innodb_defragment_frequency": { - "cli": "--innodb-defragment-frequency=#", - "default": "40", - "dynamic": true, - "name": "innodb_defragment_frequency", - "range": { - "from": 1, - "to": 1000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_defragment_frequency" - ] - }, - "innodb_defragment_n_pages": { - "cli": "--innodb-defragment-n-pages=#", - "default": "7", - "dynamic": true, - "name": "innodb_defragment_n_pages", - "range": { - "from": 2, - "to": 32 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_defragment_n_pages" - ] - }, - "innodb_defragment_stats_accuracy": { - "cli": "--innodb-defragment-stats-accuracy=#", - "default": "0", - "dynamic": true, - "name": "innodb_defragment_stats_accuracy", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_defragment_stats_accuracy" - ] - }, - "innodb_dict_size_limit": { - "cli": "innodb-dict-size-limit=#", - "default": "0", - "dynamic": true, - "name": "innodb_dict_size_limit", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_dict_size_limit" - ] - }, - "innodb_disable_sort_file_cache": { - "default": "OFF", - "dynamic": true, - "name": "innodb_disable_sort_file_cache", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_disable_sort_file_cache", - "41#sysvar_innodb_disable_sort_file_cache" - ] - }, - "innodb_disallow_writes": { - "default": "OFF", - "dynamic": true, - "name": "innodb_disallow_writes", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_disallow_writes" - ] - }, - "innodb_doublewrite": { - "default": "ON", - "dynamic": false, - "name": "innodb_doublewrite", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_doublewrite", - "41#sysvar_innodb_doublewrite" - ] - }, - "innodb_doublewrite_file": { - "cli": "innodb-doublewrite-file=filename", - "default": "NULL", - "dynamic": false, - "name": "innodb_doublewrite_file", - "scope": [ - "global" - ], - "ids": [ - "40#innodb_doublewrite_file" - ] - }, - "innodb_empty_free_list_algorithm": { - "cli": "innodb-empty-free-list-algorithm=value", - "default": "deprecated (>= MariaDB 10.2.6), legacy (>= MariaDB 10.1.24), backoff (<= MariaDB 10.1.23)", - "dynamic": true, - "name": "innodb_empty_free_list_algorithm", - "scope": [ - "global" - ], - "validValues": [ - "deprecated", - "backoff", - "legacy", - "backoff", - "legacy" - ], - "ids": [ - "40#innodb_empty_free_list_algorithm" - ] - }, - "innodb_enable_unsafe_group_commit": { - "cli": "--innodb-enable-unsafe-group-commit", - "default": "0", - "dynamic": true, - "name": "innodb_enable_unsafe_group_commit", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_enable_unsafe_group_commit" - ] - }, - "innodb_encrypt_log": { - "cli": "--innodb-encrypt-log", - "default": "OFF", - "dynamic": false, - "name": "innodb_encrypt_log", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_encrypt_log" - ] - }, - "innodb_encrypt_tables": { - "cli": "--innodb-encrypt-tables=value", - "default": "OFF", - "dynamic": true, - "name": "innodb_encrypt_tables", - "scope": [ - "global" - ], - "type": "boolean", - "validValues": [ - "ON", - "OFF", - "FORCE" - ], - "ids": [ - "40#innodb_encrypt_tables" - ] - }, - "innodb_encrypt_temporary_tables": { - "cli": "--innodb-encrypt-temporary-tables=value", - "default": "OFF", - "dynamic": false, - "name": "innodb_encrypt_temporary_tables", - "scope": [ - "global" - ], - "type": "boolean", - "validValues": [ - "ON", - "OFF" - ], - "ids": [ - "40#innodb_encrypt_temporary_tables" - ] - }, - "innodb_encryption_rotate_key_age": { - "cli": "--innodb-encryption-rotate-key-age=#", - "default": "1", - "dynamic": true, - "name": "innodb_encryption_rotate_key_age", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_encryption_rotate_key_age" - ] - }, - "innodb_encryption_rotation_iops": { - "cli": "--innodb-encryption-rotation_iops=#", - "default": "100", - "dynamic": true, - "name": "innodb_encryption_rotation_iops", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_encryption_rotation_iops" - ] - }, - "innodb_encryption_threads": { - "cli": "--innodb-encryption-threads=#", - "default": "0", - "dynamic": true, - "name": "innodb_encryption_threads", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_encryption_threads" - ] - }, - "innodb_extra_rsegments": { - "cli": "--innodb-extra-rsegments=#", - "default": "0", - "dynamic": false, - "name": "innodb_extra_rsegments", - "range": { - "from": 0, - "to": 126 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_extra_rsegments" - ] - }, - "innodb_extra_undoslots": { - "cli": "--innodb-extra-undoslots=#", - "default": "OFF", - "dynamic": false, - "name": "innodb_extra_undoslots", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_extra_undoslots" - ] - }, - "innodb_fake_changes": { - "cli": "--innodb-fake-changes={0|1}", - "default": "OFF", - "dynamic": true, - "name": "innodb_fake_changes", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "40#innodb_fake_changes" - ] - }, - "innodb_fast_checksum": { - "cli": "--innodb-fast-checksum={0|1}", - "default": "OFF", - "dynamic": false, - "name": "innodb_fast_checksum", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_fast_checksum" - ] - }, - "innodb_fast_shutdown": { - "default": "1", - "dynamic": true, - "name": "innodb_fast_shutdown", - "scope": [ - "global" - ], - "type": "integer", - "validValues": [ - "0", - "1", - "2" - ], - "ids": [ - "40#innodb_fast_shutdown", - "41#sysvar_innodb_fast_shutdown" - ] - }, - "innodb_fatal_semaphore_wait_threshold": { - "cli": "--innodb-fatal-semaphore-wait-threshold=#", - "default": "600", - "dynamic": false, - "name": "innodb_fatal_semaphore_wait_threshold", - "range": { - "from": 1, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_fatal_semaphore_wait_threshold" - ] - }, - "innodb_file_format": { - "cli": "--innodb-file-format=value", - "default": "Barracuda (>= MariaDB 10.2.2), Antelope (<= MariaDB 10.2.1)", - "dynamic": true, - "name": "innodb_file_format", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "Antelope", - "Barracuda" - ], - "ids": [ - "40#innodb_file_format" - ] - }, - "innodb_file_format_check": { - "cli": "--innodb-file-format-check=#", - "default": "ON (>= MariaDB 5.5)", - "dynamic": false, - "name": "innodb_file_format_check", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_file_format_check" - ] - }, - "innodb_file_format_max": { - "cli": "--innodb-file-format-max=value", - "default": "Antelope", - "dynamic": true, - "name": "innodb_file_format_max", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "Antelope", - "Barracuda" - ], - "ids": [ - "40#innodb_file_format_max" - ] - }, - "innodb_file_per_table": { - "cli": "--innodb-path-per-table[={OFF|ON}]", - "default": "1", - "dynamic": true, - "name": "innodb_file_per_table", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_file_per_table", - "41#sysvar_innodb_file_per_table" - ] - }, - "innodb_fill_factor": { - "cli": "--innodb-fill-factor=#", - "default": "100", - "dynamic": true, - "name": "innodb_fill_factor", - "range": { - "from": 10, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_fill_factor", - "41#sysvar_innodb_fill_factor" - ] - }, - "innodb_flush_log_at_timeout": { - "cli": "--innodb-flush-log-at-timeout=#", - "default": "1", - "dynamic": true, - "name": "innodb_flush_log_at_timeout", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_flush_log_at_timeout", - "41#sysvar_innodb_flush_log_at_timeout" - ] - }, - "innodb_flush_log_at_trx_commit": { - "default": "1", - "dynamic": true, - "name": "innodb_flush_log_at_trx_commit", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "0", - "1", - "2", - "3" - ], - "ids": [ - "40#innodb_flush_log_at_trx_commit", - "41#sysvar_innodb_flush_log_at_trx_commit" - ] - }, - "innodb_flush_method": { - "dynamic": false, - "name": "innodb_flush_method", - "scope": [ - "global" - ], - "ids": [ - "40#innodb_flush_method", - "41#sysvar_innodb_flush_method" - ] - }, - "innodb_flush_neighbor_pages": { - "cli": "innodb-flush-neighbor-pages=value", - "default": "area", - "dynamic": true, - "name": "innodb_flush_neighbor_pages", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "none", - "0", - "area", - "1", - "cont", - "2" - ], - "ids": [ - "40#innodb_flush_neighbor_pages" - ] - }, - "innodb_flush_neighbors": { - "cli": "--innodb-flush-neighbors=#", - "dynamic": true, - "name": "innodb_flush_neighbors", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "0", - "1", - "2" - ], - "ids": [ - "40#innodb_flush_neighbors", - "41#sysvar_innodb_flush_neighbors" - ] - }, - "innodb_flush_sync": { - "default": "ON", - "dynamic": true, - "name": "innodb_flush_sync", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_flush_sync", - "41#sysvar_innodb_flush_sync" - ] - }, - "innodb_flushing_avg_loops": { - "cli": "--innodb-flushing-avg-loops=#", - "default": "30", - "dynamic": true, - "name": "innodb_flushing_avg_loops", - "range": { - "from": 1, - "to": 1000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_flushing_avg_loops", - "41#sysvar_innodb_flushing_avg_loops" - ] - }, - "innodb_force_load_corrupted": { - "cli": "--innodb-force-load-corrupted[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "name": "innodb_force_load_corrupted", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_force_load_corrupted", - "41#sysvar_innodb_force_load_corrupted" - ] - }, - "innodb_force_primary_key": { - "cli": "--innodb-force-primary-key", - "default": "OFF", - "dynamic": true, - "name": "innodb_force_primary_key", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_force_primary_key" - ] - }, - "innodb_force_recovery": { - "cli": "--innodb-force-recovery=#", - "default": "0", - "dynamic": false, - "name": "innodb_force_recovery", - "range": { - "from": 0, - "to": 6 - }, - "scope": [ - "global" - ], - "ids": [ - "40#innodb_force_recovery", - "41#sysvar_innodb_force_recovery" - ] - }, - "innodb_foreground_preflush": { - "cli": "innodb-foreground-preflush=value", - "default": "deprecated (>= MariaDB 10.2.6), exponential_backoff (<= MariaDB 10.1)", - "dynamic": true, - "name": "innodb_foreground_preflush", - "scope": [ - "global" - ], - "validValues": [ - "deprecated", - "exponential_backoff", - "sync_preflush", - "exponential_backoff", - "sync_preflush" - ], - "ids": [ - "40#innodb_foreground_preflush" - ] - }, - "innodb_ft_aux_table": { - "dynamic": true, - "name": "innodb_ft_aux_table", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "40#innodb_ft_aux_table", - "41#sysvar_innodb_ft_aux_table" - ] - }, - "innodb_ft_cache_size": { - "cli": "--innodb-ft-cache-size=#", - "default": "8000000", - "dynamic": false, - "name": "innodb_ft_cache_size", - "range": { - "from": 1600000, - "to": 80000000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_ft_cache_size", - "41#sysvar_innodb_ft_cache_size" - ] - }, - "innodb_ft_enable_diag_print": { - "default": "OFF", - "dynamic": true, - "name": "innodb_ft_enable_diag_print", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_ft_enable_diag_print", - "41#sysvar_innodb_ft_enable_diag_print" - ] - }, - "innodb_ft_enable_stopword": { - "default": "ON", - "dynamic": true, - "name": "innodb_ft_enable_stopword", - "type": "boolean", - "ids": [ - "40#innodb_ft_enable_stopword", - "41#sysvar_innodb_ft_enable_stopword" - ] - }, - "innodb_ft_max_token_size": { - "cli": "--innodb-ft-max-token-size=#", - "default": "84", - "dynamic": false, - "name": "innodb_ft_max_token_size", - "range": { - "from": 10 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_ft_max_token_size", - "41#sysvar_innodb_ft_max_token_size" - ] - }, - "innodb_ft_min_token_size": { - "cli": "--innodb-ft-min-token-size=#", - "default": "3", - "dynamic": false, - "name": "innodb_ft_min_token_size", - "range": { - "from": 0, - "to": 16 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_ft_min_token_size", - "41#sysvar_innodb_ft_min_token_size" - ] - }, - "innodb_ft_num_word_optimize": { - "cli": "--innodb-ft-num-word-optimize=#", - "default": "2000", - "dynamic": true, - "name": "innodb_ft_num_word_optimize", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_ft_num_word_optimize", - "41#sysvar_innodb_ft_num_word_optimize" - ] - }, - "innodb_ft_result_cache_limit": { - "cli": "--innodb-ft-result-cache-limit=#", - "default": "2000000000", - "dynamic": true, - "name": "innodb_ft_result_cache_limit", - "range": { - "from": 1000000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_ft_result_cache_limit", - "41#sysvar_innodb_ft_result_cache_limit" - ] - }, - "innodb_ft_server_stopword_table": { - "cli": "--innodb-ft-server-stopword-table=db_name/table_name", - "default": "NULL", - "dynamic": true, - "name": "innodb_ft_server_stopword_table", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "40#innodb_ft_server_stopword_table", - "41#sysvar_innodb_ft_server_stopword_table" - ] - }, - "innodb_ft_sort_pll_degree": { - "cli": "--innodb-ft-sort-pll-degree=#", - "default": "2", - "dynamic": false, - "name": "innodb_ft_sort_pll_degree", - "range": { - "from": 1, - "to": 32 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_ft_sort_pll_degree", - "41#sysvar_innodb_ft_sort_pll_degree" - ] - }, - "innodb_ft_total_cache_size": { - "cli": "--innodb-ft-total-cache-size=#", - "default": "640000000", - "dynamic": false, - "name": "innodb_ft_total_cache_size", - "range": { - "from": 32000000, - "to": 1600000000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_ft_total_cache_size", - "41#sysvar_innodb_ft_total_cache_size" - ] - }, - "innodb_ft_user_stopword_table": { - "cli": "--innodb-ft-user-stopword-table=db_name/table_name", - "default": "NULL", - "dynamic": true, - "name": "innodb_ft_user_stopword_table", - "type": "string", - "ids": [ - "40#innodb_ft_user_stopword_table", - "41#sysvar_innodb_ft_user_stopword_table" - ] - }, - "innodb_ibuf_accel_rate": { - "cli": "innodb-ibuf-accel-rate=#", - "default": "100", - "dynamic": true, - "name": "innodb_ibuf_accel_rate", - "range": { - "from": 100, - "to": 999999999 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_ibuf_accel_rate" - ] - }, - "innodb_ibuf_active_contract": { - "cli": "innodb-ibuf-active-contract=#", - "default": "1", - "dynamic": true, - "name": "innodb_ibuf_active_contract", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_ibuf_active_contract" - ] - }, - "innodb_ibuf_max_size": { - "cli": "innodb-ibuf-max-size=#", - "default": "1/2 the size of the InnoDB buffer pool", - "dynamic": false, - "name": "innodb_ibuf_max_size", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_ibuf_max_size" - ] - }, - "innodb_idle_flush_pct": { - "cli": "--innodb-idle-flush-pct=#", - "default": "100", - "dynamic": true, - "name": "innodb_idle_flush_pct", - "range": { - "from": 0, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_idle_flush_pct", - "41#sysvar_innodb_idle_flush_pct" - ] - }, - "innodb_immediate_scrub_data_uncompressed": { - "cli": "--innodb-immediate-scrub-data-uncompressed=#", - "default": "OFF", - "dynamic": true, - "name": "innodb_immediate_scrub_data_uncompressed", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_immediate_scrub_data_uncompressed" - ] - }, - "innodb_import_table_from_xtrabackup": { - "cli": "innodb-import-table-from-xtrabackup=#", - "default": "0", - "dynamic": true, - "name": "innodb_import_table_from_xtrabackup", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_import_table_from_xtrabackup" - ] - }, - "innodb_instrument_semaphores": { - "cli": "--innodb-instrument-semaphores={0|1}", - "default": "OFF", - "dynamic": true, - "name": "innodb_instrument_semaphores", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_instrument_semaphores" - ] - }, - "innodb_io_capacity": { - "cli": "--innodb-io-capacity=#", - "default": "200", - "dynamic": true, - "name": "innodb_io_capacity", - "range": { - "from": 100, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_io_capacity", - "41#sysvar_innodb_io_capacity" - ] - }, - "innodb_io_capacity_max": { - "cli": "--innodb-io-capacity-max=#", - "dynamic": true, - "name": "innodb_io_capacity_max", - "range": { - "from": 100 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_io_capacity_max", - "41#sysvar_innodb_io_capacity_max" - ] - }, - "innodb_kill_idle_transaction": { - "default": "0", - "dynamic": true, - "name": "innodb_kill_idle_transaction", - "range": { - "from": 0, - "to": 9.223372036854776e+18 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_kill_idle_transaction" - ] - }, - "innodb_large_prefix": { - "cli": "--innodb-large-prefix", - "default": "ON (>= MariaDB 10.2.2), OFF (<= MariaDB 10.2.1)", - "dynamic": true, - "name": "innodb_large_prefix", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_large_prefix" - ] - }, - "innodb_lazy_drop_table": { - "cli": "innodb-lazy-drop-table={0|1}", - "default": "0", - "dynamic": true, - "name": "innodb_lazy_drop_table", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_lazy_drop_table" - ] - }, - "innodb_lock_schedule_algorithm": { - "cli": "--innodb-lock-schedule-algorithm=#", - "default": "VATS (10.2), FCFS (10.1)", - "dynamic": false, - "name": "innodb_lock_schedule_algorithm", - "scope": [ - "global" - ], - "validValues": [ - "FCFS", - "VATS" - ], - "ids": [ - "40#innodb_lock_schedule_algorithm" - ] - }, - "innodb_lock_wait_timeout": { - "cli": "--innodb-lock-wait-timeout=#", - "default": "50", - "dynamic": true, - "name": "innodb_lock_wait_timeout", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "40#innodb_lock_wait_timeout", - "41#sysvar_innodb_lock_wait_timeout" - ] - }, - "innodb_locking_fake_changes": { - "cli": "--innodb-locking-fake-changes", - "default": "ON", - "dynamic": true, - "name": "innodb_locking_fake_changes", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_locking_fake_changes" - ] - }, - "innodb_locks_unsafe_for_binlog": { - "cli": "--innodb-locks-unsafe-for-binlog", - "default": "OFF", - "dynamic": false, - "name": "innodb_locks_unsafe_for_binlog", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_locks_unsafe_for_binlog" - ] - }, - "innodb_log_arch_dir": { - "cli": "--innodb-log-arch-dir=name", - "default": "./", - "dynamic": false, - "name": "innodb_log_arch_dir", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "40#innodb_log_arch_dir" - ] - }, - "innodb_log_arch_expire_sec": { - "cli": "--innodb-log-arch-expire-sec=#", - "default": "0", - "dynamic": true, - "name": "innodb_log_arch_expire_sec", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_log_arch_expire_sec" - ] - }, - "innodb_log_archive": { - "cli": "--innodb-log-archive=value", - "default": "OFF", - "dynamic": true, - "name": "innodb_log_archive", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_log_archive" - ] - }, - "innodb_log_block_size": { - "cli": "innodb-log-block-size=#", - "default": "512", - "dynamic": false, - "name": "innodb_log_block_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_log_block_size" - ] - }, - "innodb_log_buffer_size": { - "cli": "--innodb-log-buffer-size=#", - "default": "16777216", - "name": "innodb_log_buffer_size", - "type": "integer", - "ids": [ - "40#innodb_log_buffer_size", - "41#sysvar_innodb_log_buffer_size" - ] - }, - "innodb_log_checksum_algorithm": { - "cli": "innodb-log-checksum-algorithm=value", - "default": "deprecated (>= MariaDB 10.2.6), innodb (<= MariaDB 10.1)", - "dynamic": true, - "name": "innodb_log_checksum_algorithm", - "scope": [ - "global" - ], - "validValues": [ - "deprecated", - "innodb", - "none", - "crc32", - "strict_none", - "strict_innodb", - "strict_crc32", - "innodb", - "none", - "crc32", - "strict_none", - "strict_innodb", - "strict_crc32" - ], - "ids": [ - "40#innodb_log_checksum_algorithm" - ] - }, - "innodb_log_checksums": { - "default": "ON", - "dynamic": true, - "name": "innodb_log_checksums", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_log_checksums", - "41#sysvar_innodb_log_checksums" - ] - }, - "innodb_log_compressed_pages": { - "default": "1", - "dynamic": true, - "name": "innodb_log_compressed_pages", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_log_compressed_pages", - "41#sysvar_innodb_log_compressed_pages" - ] - }, - "innodb_log_file_size": { - "cli": "--innodb-log-file-size=#", - "default": "50331648", - "dynamic": false, - "name": "innodb_log_file_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_log_file_size", - "41#sysvar_innodb_log_file_size" - ] - }, - "innodb_log_files_in_group": { - "cli": "--innodb-log-files-in-group=#", - "default": "2", - "dynamic": false, - "name": "innodb_log_files_in_group", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_log_files_in_group", - "41#sysvar_innodb_log_files_in_group" - ] - }, - "innodb_log_group_home_dir": { - "cli": "--innodb-log-group-home-dir=path", - "dynamic": false, - "name": "innodb_log_group_home_dir", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - "40#innodb_log_group_home_dir", - "41#sysvar_innodb_log_group_home_dir" - ] - }, - "innodb_log_optimize_ddl": { - "cli": "--innodb-log-optimize-ddl={0|1}", - "default": "ON", - "dynamic": true, - "name": "innodb_log_optimize_ddl", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_log_optimize_ddl" - ] - }, - "innodb_log_write_ahead_size": { - "cli": "--innodb-log-write-ahead-size=#", - "default": "8192", - "dynamic": true, - "name": "innodb_log_write_ahead_size", - "range": { - "from": 512 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_log_write_ahead_size", - "41#sysvar_innodb_log_write_ahead_size" - ] - }, - "innodb_lru_scan_depth": { - "cli": "--innodb-lru-scan-depth=#", - "default": "1024", - "dynamic": true, - "name": "innodb_lru_scan_depth", - "range": { - "from": 100 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_lru_scan_depth", - "41#sysvar_innodb_lru_scan_depth" - ] - }, - "innodb_max_bitmap_file_size": { - "cli": "innodb-max-bitmap-file-size=#", - "default": "4096 (4KB)", - "dynamic": true, - "name": "innodb_max_bitmap_file_size", - "range": { - "from": 4096, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_max_bitmap_file_size" - ] - }, - "innodb_max_changed_pages": { - "cli": "innodb-max-changed-pages=#", - "default": "1000000", - "dynamic": true, - "name": "innodb_max_changed_pages", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_max_changed_pages" - ] - }, - "innodb_max_dirty_pages_pct": { - "cli": "--innodb-max-dirty-pages-pct=#", - "name": "innodb_max_dirty_pages_pct", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_max_dirty_pages_pct", - "41#sysvar_innodb_max_dirty_pages_pct" - ] - }, - "innodb_max_dirty_pages_pct_lwm": { - "cli": "--innodb-max-dirty-pages-pct-lwm=#", - "dynamic": true, - "name": "innodb_max_dirty_pages_pct_lwm", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_max_dirty_pages_pct_lwm", - "41#sysvar_innodb_max_dirty_pages_pct_lwm" - ] - }, - "innodb_max_purge_lag": { - "cli": "--innodb-max-purge-lag=#", - "default": "0", - "dynamic": true, - "name": "innodb_max_purge_lag", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_max_purge_lag", - "41#sysvar_innodb_max_purge_lag" - ] - }, - "innodb_max_purge_lag_delay": { - "cli": "--innodb-max-purge-lag-delay=#", - "default": "0", - "dynamic": true, - "name": "innodb_max_purge_lag_delay", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_max_purge_lag_delay", - "41#sysvar_innodb_max_purge_lag_delay" - ] - }, - "innodb_max_undo_log_size": { - "cli": "--innodb-max-undo-log-size=#", - "dynamic": true, - "name": "innodb_max_undo_log_size", - "range": { - "from": 10485760 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_max_undo_log_size", - "41#sysvar_innodb_max_undo_log_size" - ] - }, - "innodb_merge_sort_block_size": { - "cli": "innodb-merge-sort-block-size=#", - "default": "1048576 (1M)", - "dynamic": true, - "name": "innodb_merge_sort_block_size", - "range": { - "from": 1048576, - "to": 1073741824 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_merge_sort_block_size" - ] - }, - "innodb_mirrored_log_groups": { - "name": "innodb_mirrored_log_groups", - "ids": [ - "40#innodb_mirrored_log_groups" - ] - }, - "innodb_mtflush_threads": { - "cli": "--innodb-mtflush-threads=#", - "default": "8", - "dynamic": false, - "name": "innodb_mtflush_threads", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_mtflush_threads" - ] - }, - "innodb_monitor_disable": { - "dynamic": true, - "name": "innodb_monitor_disable", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "40#innodb_monitor_disable", - "41#sysvar_innodb_monitor_disable" - ] - }, - "innodb_monitor_enable": { - "dynamic": true, - "name": "innodb_monitor_enable", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "40#innodb_monitor_enable", - "41#sysvar_innodb_monitor_enable" - ] - }, - "innodb_monitor_reset": { - "default": "empty string", - "dynamic": true, - "name": "innodb_monitor_reset", - "scope": [ - "global" - ], - "validValues": [ - "counter", - "module", - "pattern", - "all" - ], - "ids": [ - "40#innodb_monitor_reset", - "41#sysvar_innodb_monitor_reset" - ] - }, - "innodb_monitor_reset_all": { - "default": "empty string", - "dynamic": true, - "name": "innodb_monitor_reset_all", - "scope": [ - "global" - ], - "validValues": [ - "counter", - "module", - "pattern", - "all" - ], - "ids": [ - "40#innodb_monitor_reset_all", - "41#sysvar_innodb_monitor_reset_all" - ] - }, - "innodb_numa_interleave": { - "default": "OFF", - "dynamic": false, - "name": "innodb_numa_interleave", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_numa_interleave", - "41#sysvar_innodb_numa_interleave" - ] - }, - "innodb_old_blocks_pct": { - "cli": "--innodb-old-blocks-pct=#", - "default": "37", - "dynamic": true, - "name": "innodb_old_blocks_pct", - "range": { - "from": 5, - "to": 95 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_old_blocks_pct", - "41#sysvar_innodb_old_blocks_pct" - ] - }, - "innodb_old_blocks_time": { - "cli": "--innodb-old-blocks-time=#", - "default": "1000", - "dynamic": true, - "name": "innodb_old_blocks_time", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_old_blocks_time", - "41#sysvar_innodb_old_blocks_time" - ] - }, - "innodb_online_alter_log_max_size": { - "cli": "--innodb-online-alter-log-max-size=#", - "default": "134217728", - "dynamic": true, - "name": "innodb_online_alter_log_max_size", - "range": { - "from": 65536 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_online_alter_log_max_size", - "41#sysvar_innodb_online_alter_log_max_size" - ] - }, - "innodb_open_files": { - "cli": "--innodb-open-files=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": false, - "name": "innodb_open_files", - "range": { - "from": 10, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_open_files", - "41#sysvar_innodb_open_files" - ] - }, - "innodb_optimize_fulltext_only": { - "default": "OFF", - "dynamic": true, - "name": "innodb_optimize_fulltext_only", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_optimize_fulltext_only", - "41#sysvar_innodb_optimize_fulltext_only" - ] - }, - "innodb_page_cleaners": { - "cli": "--innodb-page-cleaners=#", - "default": "4", - "dynamic": false, - "name": "innodb_page_cleaners", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_page_cleaners", - "41#sysvar_innodb_page_cleaners" - ] - }, - "innodb_page_size": { - "cli": "--innodb-page-size=#", - "default": "16384", - "dynamic": false, - "name": "innodb_page_size", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "4096", - "8192", - "16384", - "32768", - "65536" - ], - "ids": [ - "40#innodb_page_size", - "41#sysvar_innodb_page_size" - ] - }, - "innodb_pass_corrupt_table": { - "name": "innodb_pass_corrupt_table", - "ids": [ - "40#innodb_pass_corrupt_table" - ] - }, - "innodb_prefix_index_cluster_optimization": { - "cli": "--innodb-prefix-index-cluster-optimization=#", - "default": "OFF", - "dynamic": true, - "name": "innodb_prefix_index_cluster_optimization", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_prefix_index_cluster_optimization" - ] - }, - "innodb_print_all_deadlocks": { - "default": "OFF", - "dynamic": true, - "name": "innodb_print_all_deadlocks", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_print_all_deadlocks", - "41#sysvar_innodb_print_all_deadlocks" - ] - }, - "innodb_purge_batch_size": { - "cli": "--innodb-purge-batch-size=#", - "name": "innodb_purge_batch_size", - "range": { - "from": 1, - "to": 5000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_purge_batch_size", - "41#sysvar_innodb_purge_batch_size" - ] - }, - "innodb_purge_rseg_truncate_frequency": { - "cli": "--innodb-purge-rseg-truncate-frequency=#", - "default": "128", - "dynamic": true, - "name": "innodb_purge_rseg_truncate_frequency", - "range": { - "from": 1, - "to": 128 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_purge_rseg_truncate_frequency", - "41#sysvar_innodb_purge_rseg_truncate_frequency" - ] - }, - "innodb_purge_threads": { - "cli": "--innodb-purge-threads=#", - "default": "4", - "dynamic": false, - "name": "innodb_purge_threads", - "range": { - "from": 1, - "to": 32 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_purge_threads", - "41#sysvar_innodb_purge_threads" - ] - }, - "innodb_random_read_ahead": { - "default": "OFF", - "dynamic": true, - "name": "innodb_random_read_ahead", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_random_read_ahead", - "41#sysvar_innodb_random_read_ahead" - ] - }, - "innodb_read_ahead": { - "cli": "innodb-read-ahead=value", - "default": "linear", - "dynamic": true, - "name": "innodb_read_ahead", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "none", - "random", - "linear", - "both" - ], - "ids": [ - "40#innodb_read_ahead" - ] - }, - "innodb_read_ahead_threshold": { - "cli": "--innodb-read-ahead-threshold=#", - "default": "56", - "dynamic": true, - "name": "innodb_read_ahead_threshold", - "range": { - "from": 0, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_read_ahead_threshold", - "41#sysvar_innodb_read_ahead_threshold" - ] - }, - "innodb_read_io_threads": { - "cli": "--innodb-read-io-threads=#", - "default": "4", - "dynamic": false, - "name": "innodb_read_io_threads", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_read_io_threads", - "41#sysvar_innodb_read_io_threads" - ] - }, - "innodb_read_only": { - "default": "OFF", - "dynamic": false, - "name": "innodb_read_only", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_read_only", - "41#sysvar_innodb_read_only" - ] - }, - "innodb_recovery_stats": { - "default": "OFF", - "dynamic": false, - "name": "innodb_recovery_stats", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_recovery_stats" - ] - }, - "innodb_recovery_update_relay_log": { - "cli": "innodb-recovery-update-relay-log={0|1}", - "default": "OFF", - "dynamic": false, - "name": "innodb_recovery_update_relay_log", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_recovery_update_relay_log" - ] - }, - "innodb_replication_delay": { - "cli": "--innodb-replication-delay=#", - "default": "0", - "dynamic": true, - "name": "innodb_replication_delay", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_replication_delay", - "41#sysvar_innodb_replication_delay" - ] - }, - "innodb_rollback_on_timeout": { - "cli": "--innodb-rollback-on-timeout[={OFF|ON}]", - "default": "0", - "dynamic": false, - "name": "innodb_rollback_on_timeout", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_rollback_on_timeout", - "41#sysvar_innodb_rollback_on_timeout" - ] - }, - "innodb_rollback_segments": { - "cli": "--innodb-rollback-segments=#", - "default": "128", - "dynamic": true, - "name": "innodb_rollback_segments", - "range": { - "from": 1, - "to": 128 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_rollback_segments", - "41#sysvar_innodb_rollback_segments" - ] - }, - "innodb_safe_truncate": { - "cli": "--innodb-safe-truncate={0|1}", - "default": "ON", - "dynamic": false, - "name": "innodb_safe_truncate", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_safe_truncate" - ] - }, - "innodb_scrub_log": { - "cli": "--innodb-scrub-log", - "default": "OFF", - "dynamic": false, - "name": "innodb_scrub_log", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_scrub_log" - ] - }, - "innodb_scrub_log_interval": { - "cli": "--innodb-scrub-log-interval=#", - "default": "56", - "dynamic": true, - "name": "innodb_scrub_log_interval", - "range": { - "from": 0, - "to": 50000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_scrub_log_interval" - ] - }, - "innodb_scrub_log_speed": { - "cli": "--innodb-scrub-log-speed=#", - "default": "256", - "dynamic": true, - "name": "innodb_scrub_log_speed", - "range": { - "from": 1, - "to": 50000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_scrub_log_speed" - ] - }, - "innodb_sched_priority_cleaner": { - "cli": "innodb-sched-priority-cleaner=#", - "default": "19", - "dynamic": true, - "name": "innodb_sched_priority_cleaner", - "range": { - "from": 0, - "to": 39 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_sched_priority_cleaner" - ] - }, - "innodb_show_locks_held": { - "cli": "innodb-show-locks-held=#", - "default": "10", - "dynamic": true, - "name": "innodb_show_locks_held", - "range": { - "from": 0, - "to": 1000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_show_locks_held" - ] - }, - "innodb_show_verbose_locks": { - "cli": "innodb-show-verbose-locks=#", - "default": "0", - "dynamic": true, - "name": "innodb_show_verbose_locks", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_show_verbose_locks" - ] - }, - "innodb_simulate_comp_failures": { - "default": "0", - "dynamic": true, - "name": "innodb_simulate_comp_failures", - "range": { - "from": 0, - "to": 99 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_simulate_comp_failures" - ] - }, - "innodb_sort_buffer_size": { - "cli": "--innodb-sort-buffer-size=#", - "default": "1048576", - "dynamic": false, - "name": "innodb_sort_buffer_size", - "range": { - "from": 65536, - "to": 67108864 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_sort_buffer_size", - "41#sysvar_innodb_sort_buffer_size" - ] - }, - "innodb_spin_wait_delay": { - "cli": "--innodb-spin-wait-delay=#", - "dynamic": true, - "name": "innodb_spin_wait_delay", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_spin_wait_delay", - "41#sysvar_innodb_spin_wait_delay" - ] - }, - "innodb_stats_auto_recalc": { - "default": "ON", - "dynamic": true, - "name": "innodb_stats_auto_recalc", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_stats_auto_recalc", - "41#sysvar_innodb_stats_auto_recalc" - ] - }, - "innodb_stats_auto_update": { - "default": "1", - "dynamic": true, - "name": "innodb_stats_auto_update", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_stats_auto_update" - ] - }, - "innodb_stats_include_delete_marked": { - "cli": "--innodb-stats-include-delete-marked[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "innodb_stats_include_delete_marked", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_stats_include_delete_marked", - "41#sysvar_innodb_stats_include_delete_marked" - ] - }, - "innodb_stats_method": { - "default": "nulls_equal", - "dynamic": true, - "name": "innodb_stats_method", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "nulls_equal", - "nulls_unequal", - "nulls_ignored" - ], - "ids": [ - "40#innodb_stats_method", - "41#sysvar_innodb_stats_method" - ] - }, - "innodb_stats_modified_counter": { - "cli": "--innodb-stats-modified-counter=#", - "default": "0", - "dynamic": true, - "name": "innodb_stats_modified_counter", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_stats_modified_counter" - ] - }, - "innodb_stats_on_metadata": { - "cli": "--innodb-stats-on-metadata[={OFF|ON}]", - "default": "0", - "dynamic": true, - "name": "innodb_stats_on_metadata", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_stats_on_metadata", - "41#sysvar_innodb_stats_on_metadata" - ] - }, - "innodb_stats_persistent": { - "default": "ON", - "dynamic": true, - "name": "innodb_stats_persistent", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_stats_persistent", - "41#sysvar_innodb_stats_persistent" - ] - }, - "innodb_stats_persistent_sample_pages": { - "cli": "--innodb-stats-persistent-sample-pages=#", - "default": "20", - "dynamic": true, - "name": "innodb_stats_persistent_sample_pages", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_stats_persistent_sample_pages", - "41#sysvar_innodb_stats_persistent_sample_pages" - ] - }, - "innodb_stats_sample_pages": { - "cli": "--innodb-stats-sample-pages=#", - "default": "8", - "dynamic": true, - "name": "innodb_stats_sample_pages", - "range": { - "from": 1, - "to": 264 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_stats_sample_pages" - ] - }, - "innodb_stats_traditional": { - "cli": "--innodb-stats-traditional=#", - "default": "ON", - "dynamic": true, - "name": "innodb_stats_traditional", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_stats_traditional" - ] - }, - "innodb_stats_transient_sample_pages": { - "cli": "--innodb-stats-transient-sample-pages=#", - "default": "8", - "dynamic": true, - "name": "innodb_stats_transient_sample_pages", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_stats_transient_sample_pages", - "41#sysvar_innodb_stats_transient_sample_pages" - ] - }, - "innodb_stats_update_need_lock": { - "default": "1", - "dynamic": true, - "name": "innodb_stats_update_need_lock", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_stats_update_need_lock" - ] - }, - "innodb_status_output": { - "default": "OFF", - "dynamic": true, - "name": "innodb_status_output", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_status_output", - "41#sysvar_innodb_status_output" - ] - }, - "innodb_status_output_locks": { - "default": "OFF", - "dynamic": true, - "name": "innodb_status_output_locks", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_status_output_locks", - "41#sysvar_innodb_status_output_locks" - ] - }, - "innodb_strict_mode": { - "default": "1", - "dynamic": true, - "name": "innodb_strict_mode", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "40#innodb_strict_mode", - "41#sysvar_innodb_strict_mode" - ] - }, - "innodb_support_xa": { - "cli": "--innodb-support-xa", - "default": "ON", - "dynamic": true, - "name": "innodb_support_xa", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "40#innodb_support_xa" - ] - }, - "innodb_sync_array_size": { - "cli": "--innodb-sync-array-size=#", - "default": "1", - "dynamic": false, - "name": "innodb_sync_array_size", - "range": { - "from": 1, - "to": 1024 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_sync_array_size", - "41#sysvar_innodb_sync_array_size" - ] - }, - "innodb_sync_spin_loops": { - "cli": "--innodb-sync-spin-loops=#", - "default": "30", - "dynamic": true, - "name": "innodb_sync_spin_loops", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_sync_spin_loops", - "41#sysvar_innodb_sync_spin_loops" - ] - }, - "innodb_table_locks": { - "cli": "--innodb-table-locks[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "name": "innodb_table_locks", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "40#innodb_table_locks", - "41#sysvar_innodb_table_locks" - ] - }, - "innodb_thread_concurrency": { - "cli": "--innodb-thread-concurrency=#", - "default": "0", - "dynamic": true, - "name": "innodb_thread_concurrency", - "range": { - "from": 0, - "to": 1000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_thread_concurrency", - "41#sysvar_innodb_thread_concurrency" - ] - }, - "innodb_thread_concurrency_timer_based": { - "cli": "innodb-thread-concurrency-timer-based={0|1}", - "default": "OFF", - "dynamic": false, - "name": "innodb_thread_concurrency_timer_based", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_thread_concurrency_timer_based" - ] - }, - "innodb_thread_sleep_delay": { - "cli": "--innodb-thread-sleep-delay=#", - "default": "10000", - "dynamic": true, - "name": "innodb_thread_sleep_delay", - "range": { - "from": 0, - "to": 1000000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_thread_sleep_delay", - "41#sysvar_innodb_thread_sleep_delay" - ] - }, - "innodb_temp_data_file_path": { - "cli": "--innodb-temp-data-path-path=path-name", - "default": "ibtmp1:12M:autoextend", - "dynamic": false, - "name": "innodb_temp_data_file_path", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "40#innodb_temp_data_file_path", - "41#sysvar_innodb_temp_data_file_path" - ] - }, - "innodb_tmpdir": { - "cli": "--innodb-tmpdir=path", - "default": "NULL", - "dynamic": true, - "name": "innodb_tmpdir", - "ids": [ - "40#innodb_tmpdir", - "41#sysvar_innodb_tmpdir" - ] - }, - "innodb_track_changed_pages": { - "cli": "innodb-track-changed-pages={0|1}", - "default": "OFF", - "dynamic": false, - "name": "innodb_track_changed_pages", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_track_changed_pages" - ] - }, - "innodb_track_redo_log_now": { - "cli": "innodb-track-redo-log-now={0|1}", - "default": "OFF", - "dynamic": true, - "name": "innodb_track_redo_log_now", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_track_redo_log_now" - ] - }, - "innodb_undo_directory": { - "dynamic": false, - "name": "innodb_undo_directory", - "scope": [ - "global" - ], - "ids": [ - "40#innodb_undo_directory", - "41#sysvar_innodb_undo_directory" - ] - }, - "innodb_undo_log_truncate": { - "dynamic": true, - "name": "innodb_undo_log_truncate", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_undo_log_truncate", - "41#sysvar_innodb_undo_log_truncate" - ] - }, - "innodb_undo_logs": { - "cli": "--innodb-undo-logs=#", - "default": "128", - "dynamic": true, - "name": "innodb_undo_logs", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_undo_logs", - "41#sysvar_innodb_undo_logs" - ] - }, - "innodb_undo_tablespaces": { - "cli": "--innodb-undo-tablespaces=#", - "name": "innodb_undo_tablespaces", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_undo_tablespaces", - "41#sysvar_innodb_undo_tablespaces" - ] - }, - "innodb_use_atomic_writes": { - "cli": "innodb-use-atomic-writes={0|1}", - "default": "ON (>= MariaDB 10.2.4), OFF (<= MariaDB 10.2.3)", - "dynamic": false, - "name": "innodb_use_atomic_writes", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_use_atomic_writes" - ] - }, - "innodb_use_fallocate": { - "cli": "innodb-use-fallocate={0|1}", - "default": "OFF", - "dynamic": false, - "name": "innodb_use_fallocate", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_use_fallocate" - ] - }, - "innodb_use_global_flush_log_at_trx_commit": { - "cli": "innodb-use-global-flush-log-at-trx_commit={0|1}", - "default": "ON", - "dynamic": true, - "name": "innodb_use_global_flush_log_at_trx_commit", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_use_global_flush_log_at_trx_commit" - ] - }, - "innodb_use_mtflush": { - "cli": "--innodb-use-mtflush=#", - "default": "OFF", - "dynamic": false, - "name": "innodb_use_mtflush", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_use_mtflush" - ] - }, - "innodb_use_native_aio": { - "default": "ON", - "dynamic": false, - "name": "innodb_use_native_aio", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_use_native_aio", - "41#sysvar_innodb_use_native_aio" - ] - }, - "innodb_use_purge_thread": { - "cli": "--innodb-use-purge-thread=#", - "default": "1", - "dynamic": false, - "name": "innodb_use_purge_thread", - "range": { - "from": 0, - "to": 32 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_use_purge_thread" - ] - }, - "innodb_use_stacktrace": { - "cli": "--innodb-use-stacktrace=#", - "default": "OFF", - "dynamic": false, - "name": "innodb_use_stacktrace", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_use_stacktrace" - ] - }, - "innodb_use_sys_malloc": { - "cli": "--innodb-use-sys-malloc=#", - "default": "ON", - "dynamic": false, - "name": "innodb_use_sys_malloc", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_use_sys_malloc" - ] - }, - "innodb_use_sys_stats_table": { - "cli": "innodb-use-sys-stats-table={0|1}", - "default": "0", - "dynamic": false, - "name": "innodb_use_sys_stats_table", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_use_sys_stats_table" - ] - }, - "innodb_use_trim": { - "cli": "--innodb-use-trim=#", - "default": "ON (>= MariaDB 10.2.4), OFF (<= MariaDB 10.2.3)", - "dynamic": false, - "name": "innodb_use_trim", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "40#innodb_use_trim" - ] - }, - "innodb_version": { - "dynamic": false, - "name": "innodb_version", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "40#innodb_version" - ] - }, - "innodb_write_io_threads": { - "cli": "--innodb-write-io-threads=#", - "default": "4", - "dynamic": false, - "name": "innodb_write_io_threads", - "range": { - "from": 1, - "to": 64 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "40#innodb_write_io_threads", - "41#sysvar_innodb_write_io_threads" - ] - }, - "audit_log": { - "cli": "--audit-log[=value]", - "default": "ON", - "name": "audit_log", - "type": "enumeration", - "validValues": [ - "ON", - "OFF", - "FORCE", - "FORCE_PLUS_PERMANENT" - ], - "ids": [ - "43#option_mysqld_audit-log" - ] - }, - "audit_log_buffer_size": { - "cli": "--audit-log-buffer-size=#", - "default": "1048576", - "dynamic": false, - "name": "audit_log_buffer_size", - "range": { - "from": 4096 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "42#sysvar_audit_log_buffer_size" - ] - }, - "audit_log_compression": { - "cli": "--audit-log-compression=value", - "default": "NONE", - "dynamic": false, - "name": "audit_log_compression", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "NONE", - "GZIP" - ], - "ids": [ - "42#sysvar_audit_log_compression" - ] - }, - "audit_log_connection_policy": { - "cli": "--audit-log-connection-policy=value", - "default": "ALL", - "dynamic": true, - "name": "audit_log_connection_policy", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "ALL", - "ERRORS", - "NONE" - ], - "ids": [ - "42#sysvar_audit_log_connection_policy" - ] - }, - "audit_log_current_session": { - "default": "depends on filtering policy", - "dynamic": false, - "name": "audit_log_current_session", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "42#sysvar_audit_log_current_session" - ] - }, - "audit_log_encryption": { - "cli": "--audit-log-encryption=value", - "default": "NONE", - "dynamic": false, - "name": "audit_log_encryption", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "NONE", - "AES" - ], - "ids": [ - "42#sysvar_audit_log_encryption" - ] - }, - "audit_log_exclude_accounts": { - "cli": "--audit-log-exclude-accounts=value", - "default": "NULL", - "dynamic": true, - "name": "audit_log_exclude_accounts", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "42#sysvar_audit_log_exclude_accounts" - ] - }, - "audit_log_file": { - "cli": "--audit-log-file=file_name", - "default": "audit.log", - "dynamic": false, - "name": "audit_log_file", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - "42#sysvar_audit_log_file" - ] - }, - "audit_log_filter_id": { - "dynamic": false, - "name": "audit_log_filter_id", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "42#sysvar_audit_log_filter_id" - ] - }, - "audit_log_flush": { - "default": "OFF", - "dynamic": true, - "name": "audit_log_flush", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "42#sysvar_audit_log_flush" - ] - }, - "audit_log_format": { - "cli": "--audit-log-format=value", - "default": "NEW", - "dynamic": false, - "name": "audit_log_format", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "OLD", - "NEW", - "JSON" - ], - "ids": [ - "42#sysvar_audit_log_format" - ] - }, - "audit_log_include_accounts": { - "cli": "--audit-log-include-accounts=value", - "default": "NULL", - "dynamic": true, - "name": "audit_log_include_accounts", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "42#sysvar_audit_log_include_accounts" - ] - }, - "audit_log_password_history_keep_days": { - "cli": "--audit-log-password-history-keep-days=#", - "default": "0", - "dynamic": true, - "name": "audit_log_password_history_keep_days", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "42#sysvar_audit_log_password_history_keep_days" - ] - }, - "audit_log_policy": { - "cli": "--audit-log-policy=value", - "default": "ALL", - "dynamic": false, - "name": "audit_log_policy", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "ALL", - "LOGINS", - "QUERIES", - "NONE" - ], - "ids": [ - "42#sysvar_audit_log_policy" - ] - }, - "audit_log_read_buffer_size": { - "cli": "--audit-log-read-buffer-size=#", - "name": "audit_log_read_buffer_size", - "range": { - "to": 4194304 - }, - "type": "integer", - "ids": [ - "42#sysvar_audit_log_read_buffer_size" - ] - }, - "audit_log_rotate_on_size": { - "cli": "--audit-log-rotate-on-size=#", - "default": "0", - "dynamic": true, - "name": "audit_log_rotate_on_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "42#sysvar_audit_log_rotate_on_size" - ] - }, - "audit_log_statement_policy": { - "cli": "--audit-log-statement-policy=value", - "default": "ALL", - "dynamic": true, - "name": "audit_log_statement_policy", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "ALL", - "ERRORS", - "NONE" - ], - "ids": [ - "42#sysvar_audit_log_statement_policy" - ] - }, - "audit_log_strategy": { - "cli": "--audit-log-strategy=value", - "default": "ASYNCHRONOUS", - "dynamic": false, - "name": "audit_log_strategy", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "ASYNCHRONOUS", - "PERFORMANCE", - "SEMISYNCHRONOUS", - "SYNCHRONOUS" - ], - "ids": [ - "42#sysvar_audit_log_strategy" - ] - }, - "innodb": { - "cli": "--innodb[=value]", - "default": "ON", - "name": "innodb", - "type": "enumeration", - "validValues": [ - "OFF", - "ON", - "FORCE" - ], - "ids": [ - "41#option_mysqld_innodb" - ] - }, - "innodb_status_file": { - "cli": "--innodb-status-file[={OFF|ON}]", - "default": "OFF", - "name": "innodb_status_file", - "type": "boolean", - "ids": [ - "41#option_mysqld_innodb-status-file" - ] - }, - "daemon_memcached_enable_binlog": { - "cli": "--daemon-memcached-enable-binlog[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "name": "daemon_memcached_enable_binlog", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "41#sysvar_daemon_memcached_enable_binlog" - ] - }, - "daemon_memcached_engine_lib_name": { - "cli": "--daemon-memcached-engine-lib-name=file_name", - "default": "innodb_engine.so", - "dynamic": false, - "name": "daemon_memcached_engine_lib_name", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - "41#sysvar_daemon_memcached_engine_lib_name" - ] - }, - "daemon_memcached_engine_lib_path": { - "cli": "--daemon-memcached-engine-lib-path=dir_name", - "default": "NULL", - "dynamic": false, - "name": "daemon_memcached_engine_lib_path", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - "41#sysvar_daemon_memcached_engine_lib_path" - ] - }, - "daemon_memcached_option": { - "cli": "--daemon-memcached-option=options", - "default": "", - "dynamic": false, - "name": "daemon_memcached_option", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "41#sysvar_daemon_memcached_option" - ] - }, - "daemon_memcached_r_batch_size": { - "cli": "--daemon-memcached-r-batch-size=#", - "default": "1", - "dynamic": false, - "name": "daemon_memcached_r_batch_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "41#sysvar_daemon_memcached_r_batch_size" - ] - }, - "daemon_memcached_w_batch_size": { - "cli": "--daemon-memcached-w-batch-size=#", - "default": "1", - "dynamic": false, - "name": "daemon_memcached_w_batch_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "41#sysvar_daemon_memcached_w_batch_size" - ] - }, - "innodb_background_drop_list_empty": { - "cli": "--innodb-background-drop-list-empty[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "innodb_background_drop_list_empty", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "41#sysvar_innodb_background_drop_list_empty" - ] - }, - "innodb_buffer_pool_debug": { - "cli": "--innodb-buffer-pool-debug[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "name": "innodb_buffer_pool_debug", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "41#sysvar_innodb_buffer_pool_debug" - ] - }, - "innodb_buffer_pool_in_core_file": { - "cli": "--innodb-buffer-pool-in-core-file[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "name": "innodb_buffer_pool_in_core_file", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "41#sysvar_innodb_buffer_pool_in_core_file" - ] - }, - "innodb_checkpoint_disabled": { - "cli": "--innodb-checkpoint-disabled[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "innodb_checkpoint_disabled", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "41#sysvar_innodb_checkpoint_disabled" - ] - }, - "innodb_compress_debug": { - "cli": "--innodb-compress-debug=value", - "default": "none", - "dynamic": true, - "name": "innodb_compress_debug", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "none", - "zlib", - "lz4", - "lz4hc" - ], - "ids": [ - "41#sysvar_innodb_compress_debug" - ] - }, - "innodb_ddl_log_crash_reset_debug": { - "cli": "--innodb-ddl-log-crash-reset-debug[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "innodb_ddl_log_crash_reset_debug", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "41#sysvar_innodb_ddl_log_crash_reset_debug" - ] - }, - "innodb_dedicated_server": { - "cli": "--innodb-dedicated-server[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "name": "innodb_dedicated_server", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "41#sysvar_innodb_dedicated_server" - ] - }, - "innodb_directories": { - "cli": "--innodb-directories=dir_name", - "dynamic": false, - "name": "innodb_directories", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - "41#sysvar_innodb_directories" - ] - }, - "innodb_fil_make_page_dirty_debug": { - "cli": "--innodb-fil-make-page-dirty-debug=#", - "default": "0", - "dynamic": true, - "name": "innodb_fil_make_page_dirty_debug", - "range": { - "to": 2 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "41#sysvar_innodb_fil_make_page_dirty_debug" - ] - }, - "innodb_fsync_threshold": { - "cli": "--innodb-fsync-threshold=#", - "default": "0", - "dynamic": true, - "name": "innodb_fsync_threshold", - "range": { - "from": 0, - "to": 2 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "41#sysvar_innodb_fsync_threshold" - ] - }, - "innodb_limit_optimistic_insert_debug": { - "cli": "--innodb-limit-optimistic-insert-debug=#", - "default": "0", - "dynamic": true, - "name": "innodb_limit_optimistic_insert_debug", - "range": { - "from": 0, - "to": 2 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "41#sysvar_innodb_limit_optimistic_insert_debug" - ] - }, - "innodb_log_checkpoint_fuzzy_now": { - "cli": "--innodb-log-checkpoint-fuzzy-now[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "innodb_log_checkpoint_fuzzy_now", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "41#sysvar_innodb_log_checkpoint_fuzzy_now" - ] - }, - "innodb_log_checkpoint_now": { - "cli": "--innodb-log-checkpoint-now[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "innodb_log_checkpoint_now", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "41#sysvar_innodb_log_checkpoint_now" - ] - }, - "innodb_log_spin_cpu_abs_lwm": { - "cli": "--innodb-log-spin-cpu-abs-lwm=#", - "default": "80", - "dynamic": true, - "name": "innodb_log_spin_cpu_abs_lwm", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "41#sysvar_innodb_log_spin_cpu_abs_lwm" - ] - }, - "innodb_log_spin_cpu_pct_hwm": { - "cli": "--innodb-log-spin-cpu-pct-hwm=#", - "default": "50", - "dynamic": true, - "name": "innodb_log_spin_cpu_pct_hwm", - "range": { - "from": 0, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "41#sysvar_innodb_log_spin_cpu_pct_hwm" - ] - }, - "innodb_log_wait_for_flush_spin_hwm": { - "cli": "--innodb-log-wait-for-flush-spin-hwm=#", - "default": "400", - "dynamic": true, - "name": "innodb_log_wait_for_flush_spin_hwm", - "range": { - "from": 0 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "41#sysvar_innodb_log_wait_for_flush_spin_hwm" - ] - }, - "innodb_merge_threshold_set_all_debug": { - "cli": "--innodb-merge-threshold-set-all-debug=#", - "default": "50", - "dynamic": true, - "name": "innodb_merge_threshold_set_all_debug", - "range": { - "from": 1, - "to": 50 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "41#sysvar_innodb_merge_threshold_set_all_debug" - ] - }, - "innodb_parallel_read_threads": { - "cli": "--innodb-parallel-read-threads=#", - "default": "4", - "dynamic": true, - "name": "innodb_parallel_read_threads", - "range": { - "from": 1, - "to": 256 - }, - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - "41#sysvar_innodb_parallel_read_threads" - ] - }, - "innodb_print_ddl_logs": { - "cli": "--innodb-print-ddl-logs[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "innodb_print_ddl_logs", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "41#sysvar_innodb_print_ddl_logs" - ] - }, - "innodb_redo_log_archive_dirs": { - "cli": "--innodb-redo-log-archive-dirs", - "default": "NULL", - "dynamic": true, - "name": "innodb_redo_log_archive_dirs", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "41#sysvar_innodb_redo_log_archive_dirs" - ] - }, - "innodb_redo_log_encrypt": { - "cli": "--innodb-redo-log-encrypt[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "innodb_redo_log_encrypt", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "41#sysvar_innodb_redo_log_encrypt" - ] - }, - "innodb_scan_directories": { - "cli": "--innodb-scan-directories=dir_name", - "default": "NULL", - "dynamic": false, - "name": "innodb_scan_directories", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - "41#sysvar_innodb_scan_directories" - ] - }, - "innodb_saved_page_number_debug": { - "cli": "--innodb-saved-page-number-debug=#", - "default": "0", - "dynamic": true, - "name": "innodb_saved_page_number_debug", - "range": { - "to": 2 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "41#sysvar_innodb_saved_page_number_debug" - ] - }, - "innodb_spin_wait_pause_multiplier": { - "cli": "--innodb-spin-wait-pause-multiplier=#", - "default": "50", - "dynamic": true, - "name": "innodb_spin_wait_pause_multiplier", - "range": { - "from": 1, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "41#sysvar_innodb_spin_wait_pause_multiplier" - ] - }, - "innodb_sync_debug": { - "cli": "--innodb-sync-debug[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "name": "innodb_sync_debug", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "41#sysvar_innodb_sync_debug" - ] - }, - "innodb_temp_tablespaces_dir": { - "cli": "--innodb-temp-tablespaces-dir=dir_name", - "default": "#innodb_temp", - "dynamic": false, - "name": "innodb_temp_tablespaces_dir", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - "41#sysvar_innodb_temp_tablespaces_dir" - ] - }, - "innodb_trx_purge_view_update_only_debug": { - "cli": "--innodb-trx-purge-view-update-only-debug[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "innodb_trx_purge_view_update_only_debug", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "41#sysvar_innodb_trx_purge_view_update_only_debug" - ] - }, - "innodb_trx_rseg_n_slots_debug": { - "cli": "--innodb-trx-rseg-n-slots-debug=#", - "default": "0", - "dynamic": true, - "name": "innodb_trx_rseg_n_slots_debug", - "range": { - "to": 1024 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "41#sysvar_innodb_trx_rseg_n_slots_debug" - ] - }, - "innodb_undo_log_encrypt": { - "cli": "--innodb-undo-log-encrypt[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "innodb_undo_log_encrypt", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "41#sysvar_innodb_undo_log_encrypt" - ] - }, - "ndbcluster": { - "cli": "--ndbcluster", - "default": "FALSE (Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndbcluster", - "ids": [ - "44#option_mysqld_ndbcluster" - ] - }, - "ndb-allow-copying-alter-table": { - "cli": "--ndb-allow-copying-alter-table=[ON|OFF]", - "default": "ON (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb-allow-copying-alter-table", - "scope": [ - "global", - "session" - ], - "ids": [ - "43#option_mysqld_ndb-allow-copying-alter-table" - ] - }, - "ndb-batch-size": { - "cli": "--ndb-batch-size=#", - "default": "32768 / 0 - 31536000 (Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndb-batch-size", - "scope": [ - "global" - ], - "ids": [ - "43#option_mysqld_ndb-batch-size" - ] - }, - "ndb-cluster-connection-pool": { - "cli": "--ndb-cluster-connection-pool=#", - "default": "1 / 1 - 63 (Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndb-cluster-connection-pool", - "scope": [ - "global" - ], - "ids": [ - "43#option_mysqld_ndb-cluster-connection-pool" - ] - }, - "ndb-cluster-connection-pool-nodeids": { - "cli": "--ndb-cluster-connection-pool-nodeids=list", - "default": "/ (Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndb-cluster-connection-pool-nodeids", - "scope": [ - "global" - ], - "ids": [ - "43#option_mysqld_ndb-cluster-connection-pool-nodeids" - ] - }, - "ndb-blob-read-batch-bytes": { - "cli": "--ndb-blob-read-batch-bytes=bytes", - "default": "65536 / 0 - 4294967295 (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb-blob-read-batch-bytes", - "scope": [ - "global", - "session" - ], - "ids": [ - "43#option_mysqld_ndb-blob-read-batch-bytes" - ] - }, - "ndb-blob-write-batch-bytes": { - "cli": "--ndb-blob-write-batch-bytes=bytes", - "default": "65536 / 0 - 4294967295 (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb-blob-write-batch-bytes", - "scope": [ - "global", - "session" - ], - "ids": [ - "43#option_mysqld_ndb-blob-write-batch-bytes" - ] - }, - "ndb-connectstring": { - "cli": "--ndb-connectstring=connection_string", - "default": "(Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndb-connectstring", - "ids": [ - "43#option_mysqld_ndb-connectstring" - ] - }, - "ndb-default-column-format": { - "cli": "--ndb-default-column-format=[FIXED|DYNAMIC]", - "default": "FIXED / FIXED, DYNAMIC (Version: 5.7.16-ndb-7.5.4)", - "dynamic": true, - "name": "ndb-default-column-format", - "scope": [ - "global" - ], - "ids": [ - "43#option_mysqld_ndb-default-column-format" - ] - }, - "ndb-deferred-constraints": { - "cli": "--ndb-deferred-constraints=[0|1]", - "default": "0 / 0 - 1 (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb-deferred-constraints", - "scope": [ - "global", - "session" - ], - "ids": [ - "43#option_mysqld_ndb-deferred-constraints" - ] - }, - "ndb-distribution": { - "cli": "--ndb-distribution=[KEYHASH|LINHASH]", - "default": "KEYHASH / LINHASH, KEYHASH (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb-distribution", - "scope": [ - "global" - ], - "ids": [ - "43#option_mysqld_ndb-distribution" - ] - }, - "ndb-log-apply-status": { - "cli": "--ndb-log-apply-status", - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndb-log-apply-status", - "scope": [ - "global" - ], - "ids": [ - "43#option_mysqld_ndb-log-apply-status" - ] - }, - "ndb-log-empty-epochs": { - "cli": "--ndb-log-empty-epochs=[ON|OFF]", - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb-log-empty-epochs", - "scope": [ - "global" - ], - "ids": [ - "43#option_mysqld_ndb-log-empty-epochs" - ] - }, - "ndb-log-empty-update": { - "cli": "--ndb-log-empty-update=[ON|OFF]", - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb-log-empty-update", - "scope": [ - "global" - ], - "ids": [ - "43#option_mysqld_ndb-log-empty-update" - ] - }, - "ndb-log-exclusive-reads": { - "cli": "--ndb-log-exclusive-reads=[0|1]", - "default": "0 (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb-log-exclusive-reads", - "scope": [ - "global", - "session" - ], - "ids": [ - "43#option_mysqld_ndb-log-exclusive-reads" - ] - }, - "ndb-log-orig": { - "cli": "--ndb-log-orig", - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndb-log-orig", - "scope": [ - "global" - ], - "ids": [ - "43#option_mysqld_ndb-log-orig" - ] - }, - "ndb-log-transaction-id": { - "cli": "--ndb-log-transaction-id", - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndb-log-transaction-id", - "scope": [ - "global" - ], - "ids": [ - "43#option_mysqld_ndb-log-transaction-id" - ] - }, - "ndb-log-update-minimal": { - "cli": "--ndb-log-update-minimal", - "default": "OFF (Version: 5.7.18-ndb-7.6.3)", - "dynamic": true, - "name": "ndb-log-update-minimal", - "scope": [ - "global" - ], - "ids": [ - "43#option_mysqld_ndb-log-update-minimal" - ] - }, - "ndb-mgmd-host": { - "cli": "--ndb-mgmd-host=host[:port]", - "default": "localhost:1186 (Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndb-mgmd-host", - "ids": [ - "43#option_mysqld_ndb-mgmd-host" - ] - }, - "ndb-nodeid": { - "cli": "--ndb-nodeid=#", - "default": "/ 1 - 255 (Version: 5.1.5)", - "dynamic": false, - "name": "ndb-nodeid", - "scope": [ - "global" - ], - "ids": [ - "43#option_mysqld_ndb-nodeid" - ] - }, - "ndb-optimization-delay": { - "cli": "--ndb-optimization-delay=milliseconds", - "default": "10 / 0 - 100000 (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb-optimization-delay", - "scope": [ - "global" - ], - "ids": [ - "43#option_mysqld_ndb-optimization-delay" - ] - }, - "ndb-recv-thread-activation-threshold": { - "cli": "--ndb-recv-thread-activation-threshold=threshold", - "default": "8 / 0 (MIN_ACTIVATION_THRESHOLD) - 16 (MAX_ACTIVATION_THRESHOLD), (Version: 5.6.10-ndb-7.3.1)", - "dynamic": false, - "name": "ndb-recv-thread-activation-threshold", - "ids": [ - "43#option_mysqld_ndb-recv-thread-activation-threshold" - ] - }, - "ndb-recv-thread-cpu-mask": { - "cli": "--ndb-recv-thread-cpu-mask=bitmask", - "default": "[empty] (Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndb-recv-thread-cpu-mask", - "ids": [ - "43#option_mysqld_ndb-recv-thread-cpu-mask" - ] - }, - "ndb-transid-mysql-connection-map": { - "cli": "ndb-transid-mysql-connection-map=state", - "default": "ON / ON, OFF, FORCE (Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndb-transid-mysql-connection-map", - "ids": [ - "43#option_mysqld_ndb-transid-mysql-connection-map" - ] - }, - "ndb-wait-connected": { - "cli": "--ndb-wait-connected=seconds", - "default": "30 / 0 - 31536000 (Version: 5.1.56-ndb-7.1.16)", - "dynamic": false, - "name": "ndb-wait-connected", - "scope": [ - "global" - ], - "ids": [ - "43#option_mysqld_ndb-wait-connected" - ] - }, - "ndb-wait-setup": { - "cli": "--ndb-wait-setup=seconds", - "default": "30 / 0 - 31536000 (Version: 5.1.56-ndb-7.1.16)", - "dynamic": false, - "name": "ndb-wait-setup", - "scope": [ - "global" - ], - "ids": [ - "43#option_mysqld_ndb-wait-setup" - ] - }, - "skip-ndbcluster": { - "cli": "--skip-ndbcluster", - "dynamic": false, - "name": "skip-ndbcluster", - "ids": [ - "43#option_mysqld_skip-ndbcluster" - ] - }, - "ndb_autoincrement_prefetch_sz": { - "default": "1 / 1 - 256 (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_autoincrement_prefetch_sz", - "scope": [ - "global", - "session" - ], - "ids": [ - "43#sysvar_ndb_autoincrement_prefetch_sz" - ] - }, - "ndb_cache_check_time": { - "default": "0 / - (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_cache_check_time", - "scope": [ - "global" - ], - "ids": [ - "43#sysvar_ndb_cache_check_time" - ] - }, - "ndb_clear_apply_status": { - "default": "ON (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_clear_apply_status", - "scope": [ - "global" - ], - "ids": [ - "43#sysvar_ndb_clear_apply_status" - ] - }, - "ndb_data_node_neighbour": { - "default": "0 / 0 - 255 (Version: 5.7.12-ndb-7.5.2)", - "dynamic": true, - "name": "ndb_data_node_neighbour", - "scope": [ - "global" - ], - "ids": [ - "43#sysvar_ndb_data_node_neighbour" - ] - }, - "ndb_default_column_format": { - "default": "FIXED / FIXED, DYNAMIC (Version: 5.7.16-ndb-7.5.4)", - "dynamic": true, - "name": "ndb_default_column_format", - "scope": [ - "global" - ], - "ids": [ - "43#sysvar_ndb_default_column_format" - ] - }, - "ndb_deferred_constraints": { - "default": "0 / 0 - 1 (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_deferred_constraints", - "scope": [ - "global", - "session" - ], - "ids": [ - "43#sysvar_ndb_deferred_constraints" - ] - }, - "ndb_distribution": { - "default": "KEYHASH / LINHASH, KEYHASH (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_distribution", - "scope": [ - "global" - ], - "ids": [ - "43#sysvar_ndb_distribution" - ] - }, - "ndb_eventbuffer_free_percent": { - "default": "20 / 1 - 99 (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_eventbuffer_free_percent", - "scope": [ - "global" - ], - "ids": [ - "43#sysvar_ndb_eventbuffer_free_percent" - ] - }, - "ndb_eventbuffer_max_alloc": { - "default": "0 / 0 - 4294967295 (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_eventbuffer_max_alloc", - "scope": [ - "global" - ], - "ids": [ - "43#sysvar_ndb_eventbuffer_max_alloc" - ] - }, - "ndb_extra_logging": { - "default": "1 / - (Version: 5.1.19-ndb-6.3.0)", - "dynamic": true, - "name": "ndb_extra_logging", - "scope": [ - "global" - ], - "ids": [ - "43#sysvar_ndb_extra_logging" - ] - }, - "ndb_force_send": { - "default": "TRUE (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_force_send", - "scope": [ - "global", - "session" - ], - "ids": [ - "43#sysvar_ndb_force_send" - ] - }, - "ndb_fully_replicated": { - "default": "OFF (Version: 5.7.12-ndb-7-5-2)", - "dynamic": true, - "name": "ndb_fully_replicated", - "scope": [ - "global", - "session" - ], - "ids": [ - "43#sysvar_ndb_fully_replicated" - ] - }, - "ndb_index_stat_enable": { - "default": "ON (Version: 5.5.15-ndb-7.2.1)", - "dynamic": true, - "name": "ndb_index_stat_enable", - "scope": [ - "global", - "session" - ], - "ids": [ - "43#sysvar_ndb_index_stat_enable" - ] - }, - "ndb_index_stat_option": { - "default": "loop_checkon=1000ms,loop_idle=1000ms,loop_busy=100ms,, update_batch=1,read_batch=4,idle_batch=32,check_batch=32,, check_delay=1m,delete_batch=8,clean_delay=0,error_batch=4,, error_delay=1m,evict_batch=8,evict_delay=1m,cache_limit=32M,, cache_lowpct=90 (Version: 5.1.56-ndb-7.1.17)", - "dynamic": true, - "name": "ndb_index_stat_option", - "scope": [ - "global", - "session" - ], - "ids": [ - "43#sysvar_ndb_index_stat_option" - ] - }, - "ndb_join_pushdown": { - "default": "TRUE (Version: 5.1.51-ndb-7.2.0)", - "dynamic": true, - "name": "ndb_join_pushdown", - "scope": [ - "global", - "session" - ], - "ids": [ - "43#sysvar_ndb_join_pushdown" - ] - }, - "ndb_log_apply_status": { - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndb_log_apply_status", - "scope": [ - "global" - ], - "ids": [ - "43#sysvar_ndb_log_apply_status" - ] - }, - "ndb_log_bin": { - "default": "ON (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_log_bin", - "scope": [ - "global", - "session" - ], - "ids": [ - "43#sysvar_ndb_log_bin" - ] - }, - "ndb_log_binlog_index": { - "default": "ON (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_log_binlog_index", - "scope": [ - "global" - ], - "ids": [ - "43#sysvar_ndb_log_binlog_index" - ] - }, - "ndb_log_empty_epochs": { - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_log_empty_epochs", - "scope": [ - "global" - ], - "ids": [ - "43#sysvar_ndb_log_empty_epochs" - ] - }, - "ndb_log_empty_update": { - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_log_empty_update", - "scope": [ - "global" - ], - "ids": [ - "43#sysvar_ndb_log_empty_update" - ] - }, - "ndb_log_exclusive_reads": { - "default": "0 (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_log_exclusive_reads", - "scope": [ - "global", - "session" - ], - "ids": [ - "43#sysvar_ndb_log_exclusive_reads" - ] - }, - "ndb_log_orig": { - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndb_log_orig", - "scope": [ - "global" - ], - "ids": [ - "43#sysvar_ndb_log_orig" - ] - }, - "ndb_log_transaction_id": { - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndb_log_transaction_id", - "scope": [ - "global" - ], - "ids": [ - "43#sysvar_ndb_log_transaction_id" - ] - }, - "ndb_optimized_node_selection": { - "default": "3 / 0 - 3 (Version: 5.1.22-ndb-6.3.4)", - "dynamic": false, - "name": "ndb_optimized_node_selection", - "scope": [ - "global" - ], - "ids": [ - "43#sysvar_ndb_optimized_node_selection" - ] - }, - "ndb_read_backup": { - "default": "OFF (Version: 5.7.12-ndb-7.5.2)", - "dynamic": true, - "name": "ndb_read_backup", - "scope": [ - "global" - ], - "ids": [ - "43#sysvar_ndb_read_backup" - ] - }, - "ndb_recv_thread_activation_threshold": { - "default": "8 / 0 (MIN_ACTIVATION_THRESHOLD) - 16 (MAX_ACTIVATION_THRESHOLD), (Version: 5.6.10-ndb-7.3.1)", - "dynamic": false, - "name": "ndb_recv_thread_activation_threshold", - "ids": [ - "43#sysvar_ndb_recv_thread_activation_threshold" - ] - }, - "ndb_recv_thread_cpu_mask": { - "default": "[empty] (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_recv_thread_cpu_mask", - "scope": [ - "global" - ], - "ids": [ - "43#sysvar_ndb_recv_thread_cpu_mask" - ] - }, - "ndb_report_thresh_binlog_epoch_slip": { - "default": "10 / 0 - 256 (Version: 5.7.16-ndb-7.5.4)", - "dynamic": true, - "name": "ndb_report_thresh_binlog_epoch_slip", - "scope": [ - "global" - ], - "ids": [ - "43#sysvar_ndb_report_thresh_binlog_epoch_slip" - ] - }, - "ndb_report_thresh_binlog_mem_usage": { - "default": "1 / 0 - 1 (Version: NDB 7.6.8)", - "dynamic": true, - "name": "ndb_report_thresh_binlog_mem_usage", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "43#sysvar_ndb_report_thresh_binlog_mem_usage" - ] - }, - "ndb_row_checksum": { - "default": "1 / 0 - 1 (Version: NDB 7.6.8)", - "dynamic": true, - "name": "ndb_row_checksum", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "43#sysvar_ndb_row_checksum" - ] - }, - "ndb_show_foreign_key_mock_tables": { - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_show_foreign_key_mock_tables", - "scope": [ - "global" - ], - "ids": [ - "43#sysvar_ndb_show_foreign_key_mock_tables" - ] - }, - "ndb_slave_conflict_role": { - "default": "NONE / NONE, PRIMARY, SECONDARY, PASS (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_slave_conflict_role", - "scope": [ - "global" - ], - "ids": [ - "43#sysvar_ndb_slave_conflict_role" - ] - }, - "ndb_table_no_logging": { - "default": "FALSE (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_table_no_logging", - "scope": [ - "session" - ], - "ids": [ - "43#sysvar_ndb_table_no_logging" - ] - }, - "ndb_table_temporary": { - "default": "FALSE (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_table_temporary", - "scope": [ - "session" - ], - "ids": [ - "43#sysvar_ndb_table_temporary" - ] - }, - "ndb_use_copying_alter_table": { - "dynamic": false, - "name": "ndb_use_copying_alter_table", - "scope": [ - "global", - "session" - ], - "ids": [ - "43#sysvar_ndb_use_copying_alter_table" - ] - }, - "ndb_use_exact_count": { - "default": "OFF (Version: 5.1.47-ndb-7.1.8)", - "dynamic": true, - "name": "ndb_use_exact_count", - "scope": [ - "global", - "session" - ], - "ids": [ - "43#sysvar_ndb_use_exact_count" - ] - }, - "ndb_use_transactions": { - "default": "ON (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndb_use_transactions", - "scope": [ - "global", - "session" - ], - "ids": [ - "43#sysvar_ndb_use_transactions" - ] - }, - "ndb_version": { - "default": "(Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndb_version", - "scope": [ - "global" - ], - "ids": [ - "43#sysvar_ndb_version" - ] - }, - "ndb_version_string": { - "default": "(Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndb_version_string", - "scope": [ - "global" - ], - "ids": [ - "43#sysvar_ndb_version_string" - ] - }, - "server_id_bits": { - "default": "32 / 7 - 32 (Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "server_id_bits", - "scope": [ - "global" - ], - "ids": [ - "43#sysvar_server_id_bits" - ] - }, - "slave_allow_batching": { - "default": "off (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "slave_allow_batching", - "scope": [ - "global" - ], - "ids": [ - "43#sysvar_slave_allow_batching" - ] - }, - "transaction_allow_batching": { - "default": "FALSE (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "transaction_allow_batching", - "scope": [ - "session" - ], - "ids": [ - "43#sysvar_transaction_allow_batching" - ] - }, - "ndbinfo_database": { - "default": "ndbinfo (Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndbinfo_database", - "scope": [ - "global" - ], - "ids": [ - "43#sysvar_ndbinfo_database" - ] - }, - "ndbinfo_max_bytes": { - "default": "0 / - (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndbinfo_max_bytes", - "scope": [ - "global", - "session" - ], - "ids": [ - "43#sysvar_ndbinfo_max_bytes" - ] - }, - "ndbinfo_max_rows": { - "default": "10 / - (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndbinfo_max_rows", - "scope": [ - "global", - "session" - ], - "ids": [ - "43#sysvar_ndbinfo_max_rows" - ] - }, - "ndbinfo_offline": { - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndbinfo_offline", - "scope": [ - "global" - ], - "ids": [ - "43#sysvar_ndbinfo_offline" - ] - }, - "ndbinfo_show_hidden": { - "default": "OFF (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndbinfo_show_hidden", - "scope": [ - "global", - "session" - ], - "ids": [ - "43#sysvar_ndbinfo_show_hidden" - ] - }, - "ndbinfo_table_prefix": { - "default": "ndb$ (Version: NDB 7.5-7.6)", - "dynamic": true, - "name": "ndbinfo_table_prefix", - "scope": [ - "global", - "session" - ], - "ids": [ - "43#sysvar_ndbinfo_table_prefix" - ] - }, - "ndbinfo_version": { - "default": "(Version: NDB 7.5-7.6)", - "dynamic": false, - "name": "ndbinfo_version", - "scope": [ - "global" - ], - "ids": [ - "43#sysvar_ndbinfo_version" - ] - }, - "performance_schema_error_size": { - "cli": "--performance-schema-error-size=#", - "default": "number of server error codes", - "dynamic": false, - "name": "performance_schema_error_size", - "range": { - "from": 0, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "20#sysvar_performance_schema_error_size" - ] - }, - "performance_schema_events_transactions_history_long_size": { - "cli": "--performance-schema-events-transactions-history-long-size=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": false, - "name": "performance_schema_events_transactions_history_long_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "20#sysvar_performance_schema_events_transactions_history_long_size" - ] - }, - "performance_schema_events_transactions_history_size": { - "cli": "--performance-schema-events-transactions-history-size=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": false, - "name": "performance_schema_events_transactions_history_size", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "20#sysvar_performance_schema_events_transactions_history_size" - ] - }, - "performance_schema_max_digest_sample_age": { - "cli": "--performance-schema-max-digest-sample-age=#", - "default": "60", - "dynamic": true, - "name": "performance_schema_max_digest_sample_age", - "range": { - "from": 0, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "20#sysvar_performance_schema_max_digest_sample_age" - ] - }, - "performance_schema_max_index_stat": { - "cli": "--performance-schema-max-index-stat=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": false, - "name": "performance_schema_max_index_stat", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "20#sysvar_performance_schema_max_index_stat" - ] - }, - "performance_schema_max_memory_classes": { - "cli": "--performance-schema-max-memory-classes=#", - "dynamic": false, - "name": "performance_schema_max_memory_classes", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "20#sysvar_performance_schema_max_memory_classes" - ] - }, - "performance_schema_max_metadata_locks": { - "cli": "--performance-schema-max-metadata-locks=#", - "default": "(-1 signifies autoscaling; do not use -1)", - "dynamic": false, - "name": "performance_schema_max_metadata_locks", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "20#sysvar_performance_schema_max_metadata_locks" - ] - }, - "performance_schema_max_prepared_statements_instances": { - "cli": "--performance-schema-max-prepared-statements-instances=#", - "default": "(-1 signifies autoscaling; do not use -1)", - "dynamic": false, - "name": "performance_schema_max_prepared_statements_instances", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "20#sysvar_performance_schema_max_prepared_statements_instances" - ] - }, - "performance_schema_max_program_instances": { - "cli": "--performance-schema-max-program-instances=#", - "default": "(-1 signifies autoscaling; do not use -1)", - "dynamic": false, - "name": "performance_schema_max_program_instances", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "20#sysvar_performance_schema_max_program_instances" - ] - }, - "performance_schema_max_sql_text_length": { - "cli": "--performance-schema-max-sql-text-length=#", - "default": "1024", - "dynamic": false, - "name": "performance_schema_max_sql_text_length", - "range": { - "from": 0, - "to": 1048576 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "20#sysvar_performance_schema_max_sql_text_length" - ] - }, - "performance_schema_max_statement_stack": { - "cli": "--performance-schema-max-statement-stack=#", - "default": "10", - "dynamic": false, - "name": "performance_schema_max_statement_stack", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "20#sysvar_performance_schema_max_statement_stack" - ] - }, - "performance_schema_max_table_lock_stat": { - "cli": "--performance-schema-max-table-lock-stat=#", - "default": "(-1 signifies autosizing; do not use -1)", - "dynamic": false, - "name": "performance_schema_max_table_lock_stat", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "20#sysvar_performance_schema_max_table_lock_stat" - ] - }, - "authentication_ldap_sasl_auth_method_name": { - "cli": "--authentication-ldap-sasl-auth-method-name=value", - "default": "SCRAM-SHA-1", - "dynamic": true, - "name": "authentication_ldap_sasl_auth_method_name", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "45#sysvar_authentication_ldap_sasl_auth_method_name" - ] - }, - "authentication_ldap_sasl_bind_base_dn": { - "cli": "--authentication-ldap-sasl-bind-base-dn=value", - "default": "NULL", - "dynamic": true, - "name": "authentication_ldap_sasl_bind_base_dn", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "44#sysvar_authentication_ldap_sasl_bind_base_dn" - ] - }, - "authentication_ldap_sasl_bind_root_dn": { - "cli": "--authentication-ldap-sasl-bind-root-dn=value", - "default": "NULL", - "dynamic": true, - "name": "authentication_ldap_sasl_bind_root_dn", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "44#sysvar_authentication_ldap_sasl_bind_root_dn" - ] - }, - "authentication_ldap_sasl_bind_root_pwd": { - "cli": "--authentication-ldap-sasl-bind-root-pwd=value", - "default": "NULL", - "dynamic": true, - "name": "authentication_ldap_sasl_bind_root_pwd", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "44#sysvar_authentication_ldap_sasl_bind_root_pwd" - ] - }, - "authentication_ldap_sasl_ca_path": { - "cli": "--authentication-ldap-sasl-ca-path=value", - "default": "NULL", - "dynamic": true, - "name": "authentication_ldap_sasl_ca_path", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "44#sysvar_authentication_ldap_sasl_ca_path" - ] - }, - "authentication_ldap_sasl_group_search_attr": { - "cli": "--authentication-ldap-sasl-group-search-attr=value", - "default": "cn", - "dynamic": true, - "name": "authentication_ldap_sasl_group_search_attr", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "44#sysvar_authentication_ldap_sasl_group_search_attr" - ] - }, - "authentication_ldap_sasl_group_search_filter": { - "cli": "--authentication-ldap-sasl-group-search-filter=value", - "default": "(|(&(objectClass=posixGroup)(memberUid=%s))(&(objectClass=group)(member=%s)))", - "dynamic": true, - "name": "authentication_ldap_sasl_group_search_filter", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "44#sysvar_authentication_ldap_sasl_group_search_filter" - ] - }, - "authentication_ldap_sasl_init_pool_size": { - "cli": "--authentication-ldap-sasl-init-pool-size=#", - "default": "10", - "dynamic": true, - "name": "authentication_ldap_sasl_init_pool_size", - "range": { - "from": 0, - "to": 32767 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "44#sysvar_authentication_ldap_sasl_init_pool_size" - ] - }, - "authentication_ldap_sasl_log_status": { - "cli": "--authentication-ldap-sasl-log-status=#", - "default": "1", - "dynamic": true, - "name": "authentication_ldap_sasl_log_status", - "range": { - "from": 1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "44#sysvar_authentication_ldap_sasl_log_status" - ] - }, - "authentication_ldap_sasl_max_pool_size": { - "cli": "--authentication-ldap-sasl-max-pool-size=#", - "default": "1000", - "dynamic": true, - "name": "authentication_ldap_sasl_max_pool_size", - "range": { - "from": 0, - "to": 32767 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "44#sysvar_authentication_ldap_sasl_max_pool_size" - ] - }, - "authentication_ldap_sasl_server_host": { - "cli": "--authentication-ldap-sasl-server-host=host_name", - "dynamic": true, - "name": "authentication_ldap_sasl_server_host", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "44#sysvar_authentication_ldap_sasl_server_host" - ] - }, - "authentication_ldap_sasl_server_port": { - "cli": "--authentication-ldap-sasl-server-port=port_num", - "default": "389", - "dynamic": true, - "name": "authentication_ldap_sasl_server_port", - "range": { - "from": 1, - "to": 32376 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "44#sysvar_authentication_ldap_sasl_server_port" - ] - }, - "authentication_ldap_sasl_tls": { - "cli": "--authentication-ldap-sasl-tls[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "authentication_ldap_sasl_tls", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "44#sysvar_authentication_ldap_sasl_tls" - ] - }, - "authentication_ldap_sasl_user_search_attr": { - "cli": "--authentication-ldap-sasl-user-search-attr=value", - "default": "uid", - "dynamic": true, - "name": "authentication_ldap_sasl_user_search_attr", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "44#sysvar_authentication_ldap_sasl_user_search_attr" - ] - }, - "authentication_ldap_simple_auth_method_name": { - "cli": "--authentication-ldap-simple-auth-method-name=value", - "default": "SIMPLE", - "dynamic": true, - "name": "authentication_ldap_simple_auth_method_name", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "44#sysvar_authentication_ldap_simple_auth_method_name" - ] - }, - "authentication_ldap_simple_bind_base_dn": { - "cli": "--authentication-ldap-simple-bind-base-dn=value", - "default": "NULL", - "dynamic": true, - "name": "authentication_ldap_simple_bind_base_dn", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "44#sysvar_authentication_ldap_simple_bind_base_dn" - ] - }, - "authentication_ldap_simple_bind_root_dn": { - "cli": "--authentication-ldap-simple-bind-root-dn=value", - "default": "NULL", - "dynamic": true, - "name": "authentication_ldap_simple_bind_root_dn", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "44#sysvar_authentication_ldap_simple_bind_root_dn" - ] - }, - "authentication_ldap_simple_bind_root_pwd": { - "cli": "--authentication-ldap-simple-bind-root-pwd=value", - "default": "NULL", - "dynamic": true, - "name": "authentication_ldap_simple_bind_root_pwd", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "44#sysvar_authentication_ldap_simple_bind_root_pwd" - ] - }, - "authentication_ldap_simple_ca_path": { - "cli": "--authentication-ldap-simple-ca-path=value", - "default": "NULL", - "dynamic": true, - "name": "authentication_ldap_simple_ca_path", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "44#sysvar_authentication_ldap_simple_ca_path" - ] - }, - "authentication_ldap_simple_group_search_attr": { - "cli": "--authentication-ldap-simple-group-search-attr=value", - "default": "cn", - "dynamic": true, - "name": "authentication_ldap_simple_group_search_attr", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "44#sysvar_authentication_ldap_simple_group_search_attr" - ] - }, - "authentication_ldap_simple_group_search_filter": { - "cli": "--authentication-ldap-simple-group-search-filter=value", - "default": "(|(&(objectClass=posixGroup)(memberUid=%s))(&(objectClass=group)(member=%s)))", - "dynamic": true, - "name": "authentication_ldap_simple_group_search_filter", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "44#sysvar_authentication_ldap_simple_group_search_filter" - ] - }, - "authentication_ldap_simple_init_pool_size": { - "cli": "--authentication-ldap-simple-init-pool-size=#", - "default": "10", - "dynamic": true, - "name": "authentication_ldap_simple_init_pool_size", - "range": { - "from": 0, - "to": 32767 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "44#sysvar_authentication_ldap_simple_init_pool_size" - ] - }, - "authentication_ldap_simple_log_status": { - "cli": "--authentication-ldap-simple-log-status=#", - "default": "1", - "dynamic": true, - "name": "authentication_ldap_simple_log_status", - "range": { - "from": 1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "44#sysvar_authentication_ldap_simple_log_status" - ] - }, - "authentication_ldap_simple_max_pool_size": { - "cli": "--authentication-ldap-simple-max-pool-size=#", - "default": "1000", - "dynamic": true, - "name": "authentication_ldap_simple_max_pool_size", - "range": { - "from": 0, - "to": 32767 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "44#sysvar_authentication_ldap_simple_max_pool_size" - ] - }, - "authentication_ldap_simple_server_host": { - "cli": "--authentication-ldap-simple-server-host=host_name", - "dynamic": true, - "name": "authentication_ldap_simple_server_host", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "44#sysvar_authentication_ldap_simple_server_host" - ] - }, - "authentication_ldap_simple_server_port": { - "cli": "--authentication-ldap-simple-server-port=port_num", - "default": "389", - "dynamic": true, - "name": "authentication_ldap_simple_server_port", - "range": { - "from": 1, - "to": 32376 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "44#sysvar_authentication_ldap_simple_server_port" - ] - }, - "authentication_ldap_simple_tls": { - "cli": "--authentication-ldap-simple-tls[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "authentication_ldap_simple_tls", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "44#sysvar_authentication_ldap_simple_tls" - ] - }, - "authentication_ldap_simple_user_search_attr": { - "cli": "--authentication-ldap-simple-user-search-attr=value", - "default": "uid", - "dynamic": true, - "name": "authentication_ldap_simple_user_search_attr", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "44#sysvar_authentication_ldap_simple_user_search_attr" - ] - }, - "binlog_row_event_max_size": { - "cli": "--binlog-row-event-max-size=#", - "default": "8192", - "name": "binlog_row_event_max_size", - "range": { - "from": 256 - }, - "type": "integer", - "ids": [ - "22#option_mysqld_binlog-row-event-max-size", - "22#sysvar_binlog_row_event_max_size", - "23#option_mysqld_binlog-row-event-max-size" - ] - }, - "binlog_do_db": { - "cli": "--binlog-do-db=name", - "name": "binlog_do_db", - "type": "string", - "ids": [ - "22#option_mysqld_binlog-do-db", - "23#option_mysqld_binlog-do-db" - ] - }, - "binlog_ignore_db": { - "cli": "--binlog-ignore-db=name", - "name": "binlog_ignore_db", - "type": "string", - "ids": [ - "22#option_mysqld_binlog-ignore-db", - "23#option_mysqld_binlog-ignore-db" - ] - }, - "max_binlog_dump_events": { - "cli": "--max-binlog-dump-events=#", - "default": "0", - "name": "max_binlog_dump_events", - "type": "integer", - "ids": [ - "22#option_mysqld_max-binlog-dump-events", - "23#option_mysqld_max-binlog-dump-events" - ] - }, - "sporadic_binlog_dump_fail": { - "cli": "--sporadic-binlog-dump-fail[={OFF|ON}]", - "default": "OFF", - "name": "sporadic_binlog_dump_fail", - "type": "boolean", - "ids": [ - "22#option_mysqld_sporadic-binlog-dump-fail", - "23#option_mysqld_sporadic-binlog-dump-fail" - ] - }, - "binlog_encryption": { - "cli": "--binlog-encryption[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "binlog_encryption", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "22#sysvar_binlog_encryption" - ] - }, - "binlog_error_action": { - "cli": "--binlog-error-action[=value]", - "dynamic": true, - "name": "binlog_error_action", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "IGNORE_ERROR", - "ABORT_SERVER" - ], - "ids": [ - "22#sysvar_binlog_error_action", - "23#sysvar_binlog_error_action" - ] - }, - "binlog_expire_logs_seconds": { - "cli": "--binlog-expire-logs-seconds=#", - "dynamic": true, - "name": "binlog_expire_logs_seconds", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "22#sysvar_binlog_expire_logs_seconds" - ] - }, - "binlog_group_commit_sync_delay": { - "cli": "--binlog-group-commit-sync-delay=#", - "default": "0", - "dynamic": true, - "name": "binlog_group_commit_sync_delay", - "range": { - "from": 0, - "to": 1000000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "22#sysvar_binlog_group_commit_sync_delay", - "23#sysvar_binlog_group_commit_sync_delay" - ] - }, - "binlog_group_commit_sync_no_delay_count": { - "cli": "--binlog-group-commit-sync-no-delay-count=#", - "default": "0", - "dynamic": true, - "name": "binlog_group_commit_sync_no_delay_count", - "range": { - "from": 0, - "to": 1000000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "22#sysvar_binlog_group_commit_sync_no_delay_count", - "23#sysvar_binlog_group_commit_sync_no_delay_count" - ] - }, - "binlog_max_flush_queue_time": { - "cli": "--binlog-max-flush-queue-time=#", - "default": "0", - "dynamic": true, - "name": "binlog_max_flush_queue_time", - "range": { - "from": 0, - "to": 100000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "22#sysvar_binlog_max_flush_queue_time", - "23#sysvar_binlog_max_flush_queue_time" - ] - }, - "binlog_order_commits": { - "cli": "--binlog-order-commits[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "name": "binlog_order_commits", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "22#sysvar_binlog_order_commits", - "23#sysvar_binlog_order_commits" - ] - }, - "binlog_rotate_encryption_master_key_at_startup": { - "cli": "--binlog-rotate-encryption-master-key-at-startup[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "name": "binlog_rotate_encryption_master_key_at_startup", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "22#sysvar_binlog_rotate_encryption_master_key_at_startup" - ] - }, - "binlog_row_value_options": { - "cli": "--binlog-row-value-options=#", - "default": "''", - "dynamic": true, - "name": "binlog_row_value_options", - "scope": [ - "global", - "session" - ], - "type": "set", - "validValues": [ - "PARTIAL_JSON" - ], - "ids": [ - "22#sysvar_binlog_row_value_options" - ] - }, - "binlog_rows_query_log_events": { - "cli": "--binlog-rows-query-log-events[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "binlog_rows_query_log_events", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "22#sysvar_binlog_rows_query_log_events", - "23#sysvar_binlog_rows_query_log_events" - ] - }, - "binlog_transaction_dependency_tracking": { - "cli": "--binlog-transaction-dependency-tracking=value", - "default": "COMMIT_ORDER", - "dynamic": true, - "name": "binlog_transaction_dependency_tracking", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "COMMIT_ORDER", - "WRITESET", - "WRITESET_SESSION" - ], - "ids": [ - "22#sysvar_binlog_transaction_dependency_tracking", - "23#sysvar_binlog_transaction_dependency_tracking" - ] - }, - "binlog_transaction_dependency_history_size": { - "cli": "--binlog-transaction-dependency-history-size=#", - "default": "25000", - "dynamic": true, - "name": "binlog_transaction_dependency_history_size", - "range": { - "from": 1, - "to": 1000000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "22#sysvar_binlog_transaction_dependency_history_size", - "23#sysvar_binlog_transaction_dependency_history_size" - ] - }, - "log_bin_use_v1_row_events": { - "cli": "--log-bin-use-v1-row-events[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "name": "log_bin_use_v1_row_events", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "22#sysvar_log_bin_use_v1_row_events", - "23#sysvar_log_bin_use_v1_row_events" - ] - }, - "log_builtin_as_identified_by_password": { - "cli": "--log-builtin-as-identified-by-password[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "log_builtin_as_identified_by_password", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "22#sysvar_log_builtin_as_identified_by_password", - "23#sysvar_log_builtin_as_identified_by_password" - ] - }, - "log_statements_unsafe_for_binlog": { - "cli": "--log-statements-unsafe-for-binlog[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "name": "log_statements_unsafe_for_binlog", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "22#sysvar_log_statements_unsafe_for_binlog", - "23#sysvar_log_statements_unsafe_for_binlog" - ] - }, - "original_commit_timestamp": { - "dynamic": true, - "name": "original_commit_timestamp", - "scope": [ - "session" - ], - "type": "numeric", - "ids": [ - "22#sysvar_original_commit_timestamp" - ] - }, - "transaction_write_set_extraction": { - "cli": "--transaction-write-set-extraction[=value]", - "default": "OFF", - "dynamic": true, - "name": "transaction_write_set_extraction", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "ids": [ - "22#sysvar_transaction_write_set_extraction", - "23#sysvar_transaction_write_set_extraction" - ] - }, - "binlogging_impossible_mode": { - "cli": "--binlogging-impossible-mode[=value]", - "default": "IGNORE_ERROR", - "dynamic": true, - "name": "binlogging_impossible_mode", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "IGNORE_ERROR", - "ABORT_SERVER" - ], - "ids": [ - "23#sysvar_binlogging_impossible_mode" - ] - }, - "log_backward_compatible_user_definitions": { - "cli": "--log-backward-compatible-user-definitions[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "log_backward_compatible_user_definitions", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "23#sysvar_log_backward_compatible_user_definitions" - ] - }, - "binlog_gtid_simple_recovery": { - "cli": "--binlog-gtid-simple-recovery[={OFF|ON}]", - "default": "ON", - "dynamic": false, - "name": "binlog_gtid_simple_recovery", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "46#sysvar_binlog_gtid_simple_recovery" - ] - }, - "enforce_gtid_consistency": { - "cli": "--enforce-gtid-consistency[=value]", - "default": "OFF", - "dynamic": true, - "name": "enforce_gtid_consistency", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "OFF", - "ON", - "WARN" - ], - "ids": [ - "45#sysvar_enforce_gtid_consistency" - ] - }, - "gtid_executed": { - "dynamic": false, - "name": "gtid_executed", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "45#sysvar_gtid_executed" - ] - }, - "gtid_executed_compression_period": { - "cli": "--gtid-executed-compression-period=#", - "default": "1000", - "dynamic": true, - "name": "gtid_executed_compression_period", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "45#sysvar_gtid_executed_compression_period" - ] - }, - "gtid_mode": { - "cli": "--gtid-mode=MODE", - "default": "OFF", - "dynamic": true, - "name": "gtid_mode", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "OFF", - "OFF_PERMISSIVE", - "ON_PERMISSIVE", - "ON" - ], - "ids": [ - "45#sysvar_gtid_mode" - ] - }, - "gtid_next": { - "default": "AUTOMATIC", - "dynamic": true, - "name": "gtid_next", - "scope": [ - "session" - ], - "type": "enumeration", - "validValues": [ - "AUTOMATIC", - "ANONYMOUS", - "UUID:NUMBER" - ], - "ids": [ - "45#sysvar_gtid_next" - ] - }, - "gtid_owned": { - "dynamic": false, - "name": "gtid_owned", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "45#sysvar_gtid_owned" - ] - }, - "gtid_purged": { - "dynamic": true, - "name": "gtid_purged", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "45#sysvar_gtid_purged" - ] - }, - "show_slave_auth_info": { - "cli": "--show-slave-auth-info[={OFF|ON}]", - "default": "OFF", - "name": "show_slave_auth_info", - "type": "boolean", - "ids": [ - "21#option_mysqld_show-slave-auth-info" - ] - }, - "immediate_server_version": { - "dynamic": true, - "name": "immediate_server_version", - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - "21#sysvar_immediate_server_version" - ] - }, - "original_server_version": { - "dynamic": true, - "name": "original_server_version", - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - "21#sysvar_original_server_version" - ] - }, - "rpl_semi_sync_master_wait_for_slave_count": { - "cli": "--rpl-semi-sync-master-wait-for-slave-count=#", - "default": "1", - "dynamic": true, - "name": "rpl_semi_sync_master_wait_for_slave_count", - "range": { - "from": 1, - "to": 65535 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "21#sysvar_rpl_semi_sync_master_wait_for_slave_count" - ] - }, - "master_info_file": { - "cli": "--master-info-file=file_name", - "default": "master.info", - "name": "master_info_file", - "type": "file name", - "ids": [ - "24#option_mysqld_master-info-file" - ] - }, - "master_retry_count": { - "cli": "--master-retry-count=#", - "default": "86400", - "name": "master_retry_count", - "range": { - "from": 0 - }, - "type": "integer", - "ids": [ - "24#option_mysqld_master-retry-count" - ] - }, - "replicate_same_server_id": { - "cli": "--replicate-same-server-id[={OFF|ON}]", - "default": "OFF", - "name": "replicate_same_server_id", - "type": "boolean", - "ids": [ - "24#option_mysqld_replicate-same-server-id" - ] - }, - "skip_slave_start": { - "cli": "--skip-slave-start[={OFF|ON}]", - "default": "OFF", - "name": "skip_slave_start", - "type": "boolean", - "ids": [ - "24#option_mysqld_skip-slave-start" - ] - }, - "abort_slave_event_count": { - "cli": "--abort-slave-event-count=#", - "default": "0", - "name": "abort_slave_event_count", - "range": { - "from": 0 - }, - "type": "integer", - "ids": [ - "24#option_mysqld_abort-slave-event-count" - ] - }, - "disconnect_slave_event_count": { - "cli": "--disconnect-slave-event-count=#", - "default": "0", - "name": "disconnect_slave_event_count", - "type": "integer", - "ids": [ - "24#option_mysqld_disconnect-slave-event-count" - ] - }, - "master_info_repository": { - "cli": "--master-info-repository={FILE|TABLE}", - "dynamic": true, - "name": "master_info_repository", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "FILE", - "TABLE" - ], - "ids": [ - "24#sysvar_master_info_repository" - ] - }, - "relay_log_info_repository": { - "cli": "--relay-log-info-repository=value", - "dynamic": true, - "name": "relay_log_info_repository", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "FILE", - "TABLE" - ], - "ids": [ - "24#sysvar_relay_log_info_repository" - ] - }, - "rpl_read_size": { - "cli": "--rpl-read-size=#", - "default": "8192", - "dynamic": true, - "name": "rpl_read_size", - "range": { - "from": 8192, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "24#sysvar_rpl_read_size" - ] - }, - "rpl_stop_slave_timeout": { - "cli": "--rpl-stop-slave-timeout=seconds", - "default": "31536000", - "dynamic": true, - "name": "rpl_stop_slave_timeout", - "range": { - "from": 2, - "to": 31536000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "24#sysvar_rpl_stop_slave_timeout" - ] - }, - "slave_checkpoint_group": { - "cli": "--slave-checkpoint-group=#", - "default": "512", - "dynamic": true, - "name": "slave_checkpoint_group", - "range": { - "from": 32, - "to": 524280 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "24#sysvar_slave_checkpoint_group" - ] - }, - "slave_checkpoint_period": { - "cli": "--slave-checkpoint-period=#", - "default": "300", - "dynamic": true, - "name": "slave_checkpoint_period", - "range": { - "from": 1, - "to": 4 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "24#sysvar_slave_checkpoint_period" - ] - }, - "slave_parallel_type": { - "cli": "--slave-parallel-type=value", - "default": "DATABASE", - "dynamic": true, - "name": "slave_parallel_type", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "DATABASE", - "LOGICAL_CLOCK" - ], - "ids": [ - "24#sysvar_slave_parallel_type" - ] - }, - "slave_pending_jobs_size_max": { - "cli": "--slave-pending-jobs-size-max=#", - "dynamic": true, - "name": "slave_pending_jobs_size_max", - "range": { - "from": 1024, - "to": 16 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "24#sysvar_slave_pending_jobs_size_max" - ] - }, - "slave_preserve_commit_order": { - "cli": "--slave-preserve-commit-order[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "slave_preserve_commit_order", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "24#sysvar_slave_preserve_commit_order" - ] - }, - "slave_rows_search_algorithms": { - "cli": "--slave-rows-search-algorithms=value", - "dynamic": true, - "name": "slave_rows_search_algorithms", - "scope": [ - "global" - ], - "type": "set", - "validValues": [ - "TABLE_SCAN,INDEX_SCAN", - "INDEX_SCAN,HASH_SCAN", - "TABLE_SCAN,HASH_SCAN", - "TABLE_SCAN,INDEX_SCAN,HASH_SCAN" - ], - "ids": [ - "24#sysvar_slave_rows_search_algorithms" - ] - }, - "server_uuid": { - "dynamic": false, - "name": "server_uuid", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "9#sysvar_server_uuid" - ] - }, - "help": { - "cli": "--help", - "name": "help", - "ids": [ - "16#option_mysqld_help" - ] - }, - "allow_suspicious_udfs": { - "cli": "--allow-suspicious-udfs[={OFF|ON}]", - "default": "OFF", - "name": "allow_suspicious_udfs", - "type": "boolean", - "ids": [ - "16#option_mysqld_allow-suspicious-udfs" - ] - }, - "ansi": { - "cli": "--ansi", - "name": "ansi", - "ids": [ - "16#option_mysqld_ansi" - ] - }, - "character_set_client_handshake": { - "cli": "--character-set-client-handshake[={OFF|ON}]", - "default": "ON", - "name": "character_set_client_handshake", - "type": "boolean", - "ids": [ - "16#option_mysqld_character-set-client-handshake" - ] - }, - "chroot": { - "cli": "--chroot=dir_name", - "name": "chroot", - "type": "directory name", - "ids": [ - "16#option_mysqld_chroot" - ] - }, - "console": { - "cli": "--console", - "name": "console", - "ids": [ - "16#option_mysqld_console" - ] - }, - "daemonize": { - "cli": "--daemonize[={OFF|ON}]", - "default": "OFF", - "name": "daemonize", - "type": "boolean", - "ids": [ - "16#option_mysqld_daemonize" - ] - }, - "debug_sync_timeout": { - "cli": "--debug-sync-timeout[=#]", - "name": "debug_sync_timeout", - "type": "integer", - "ids": [ - "16#option_mysqld_debug-sync-timeout" - ] - }, - "default_time_zone": { - "cli": "--default-time-zone=name", - "name": "default_time_zone", - "type": "string", - "ids": [ - "16#option_mysqld_default-time-zone" - ] - }, - "des_key_file": { - "cli": "--des-key-file=file_name", - "name": "des_key_file", - "ids": [ - "16#option_mysqld_des-key-file" - ] - }, - "early_plugin_load": { - "cli": "--early-plugin-load=plugin_list", - "default": "empty string", - "name": "early_plugin_load", - "type": "string", - "ids": [ - "16#option_mysqld_early-plugin-load" - ] - }, - "exit_info": { - "cli": "--exit-info[=flags]", - "name": "exit_info", - "type": "integer", - "ids": [ - "16#option_mysqld_exit-info" - ] - }, - "external_locking": { - "cli": "--external-locking[={OFF|ON}]", - "default": "OFF", - "name": "external_locking", - "type": "boolean", - "ids": [ - "16#option_mysqld_external-locking" - ] - }, - "gdb": { - "cli": "--gdb[={OFF|ON}]", - "default": "OFF", - "name": "gdb", - "type": "boolean", - "ids": [ - "16#option_mysqld_gdb" - ] - }, - "initialize": { - "cli": "--initialize[={OFF|ON}]", - "default": "OFF", - "name": "initialize", - "type": "boolean", - "ids": [ - "16#option_mysqld_initialize" - ] - }, - "initialize_insecure": { - "cli": "--initialize-insecure[={OFF|ON}]", - "default": "OFF", - "name": "initialize_insecure", - "type": "boolean", - "ids": [ - "16#option_mysqld_initialize-insecure" - ] - }, - "install": { - "cli": "--install [service_name]", - "name": "install", - "ids": [ - "16#option_mysqld_install" - ] - }, - "install_manual": { - "cli": "--install-manual [service_name]", - "name": "install_manual", - "ids": [ - "16#option_mysqld_install-manual" - ] - }, - "language": { - "cli": "--language=name", - "default": "/usr/local/mysql/share/mysql/english/", - "dynamic": false, - "name": "language", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - "16#option_mysqld_language" - ] - }, - "local_service": { - "cli": "--local-service", - "name": "local_service", - "ids": [ - "16#option_mysqld_local-service" - ] - }, - "log_isam": { - "cli": "--log-isam[=file_name]", - "name": "log_isam", - "type": "file name", - "ids": [ - "16#option_mysqld_log-isam" - ] - }, - "log_raw": { - "cli": "--log-raw[={OFF|ON}]", - "default": "OFF", - "name": "log_raw", - "type": "boolean", - "ids": [ - "16#option_mysqld_log-raw", - "15#sysvar_log_raw" - ] - }, - "log_short_format": { - "cli": "--log-short-format[={OFF|ON}]", - "default": "OFF", - "name": "log_short_format", - "type": "boolean", - "ids": [ - "16#option_mysqld_log-short-format" - ] - }, - "log_tc": { - "cli": "--log-tc=file_name", - "default": "tc.log", - "name": "log_tc", - "type": "file name", - "ids": [ - "16#option_mysqld_log-tc" - ] - }, - "memlock": { - "cli": "--memlock[={OFF|ON}]", - "default": "OFF", - "name": "memlock", - "type": "boolean", - "ids": [ - "16#option_mysqld_memlock" - ] - }, - "no_dd_upgrade": { - "cli": "--no-dd-upgrade[={OFF|ON}]", - "default": "OFF", - "name": "no_dd_upgrade", - "type": "boolean", - "ids": [ - "16#option_mysqld_no-dd-upgrade" - ] - }, - "no_monitor": { - "cli": "--no-monitor[={OFF|ON}]", - "default": "OFF", - "name": "no_monitor", - "type": "boolean", - "ids": [ - "16#option_mysqld_no-monitor" - ] - }, - "old_style_user_limits": { - "cli": "--old-style-user-limits[={OFF|ON}]", - "default": "OFF", - "name": "old_style_user_limits", - "type": "boolean", - "ids": [ - "16#option_mysqld_old-style-user-limits" - ] - }, - "plugin_load": { - "cli": "--plugin-load=plugin_list", - "dynamic": false, - "name": "plugin_load", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "16#option_mysqld_plugin-load" - ] - }, - "plugin_load_add": { - "cli": "--plugin-load-add=plugin_list", - "dynamic": false, - "name": "plugin_load_add", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "16#option_mysqld_plugin-load-add" - ] - }, - "port_open_timeout": { - "cli": "--port-open-timeout=#", - "default": "0", - "name": "port_open_timeout", - "type": "integer", - "ids": [ - "16#option_mysqld_port-open-timeout" - ] - }, - "remove": { - "cli": "--remove [service_name]", - "name": "remove", - "ids": [ - "16#option_mysqld_remove" - ] - }, - "safe_user_create": { - "cli": "--safe-user-create[={OFF|ON}]", - "default": "OFF", - "name": "safe_user_create", - "type": "boolean", - "ids": [ - "16#option_mysqld_safe-user-create" - ] - }, - "skip_grant_tables": { - "cli": "--skip-grant-tables[={OFF|ON}]", - "default": "OFF", - "name": "skip_grant_tables", - "type": "boolean", - "ids": [ - "16#option_mysqld_skip-grant-tables" - ] - }, - "skip_host_cache": { - "cli": "--skip-host-cache", - "name": "skip_host_cache", - "ids": [ - "16#option_mysqld_skip-host-cache" - ] - }, - "skip_new": { - "cli": "--skip-new", - "name": "skip_new", - "ids": [ - "16#option_mysqld_skip-new" - ] - }, - "skip_stack_trace": { - "cli": "--skip-stack-trace", - "name": "skip_stack_trace", - "ids": [ - "16#option_mysqld_skip-stack-trace" - ] - }, - "slow_start_timeout": { - "cli": "--slow-start-timeout=#", - "default": "15000", - "name": "slow_start_timeout", - "type": "integer", - "ids": [ - "16#option_mysqld_slow-start-timeout" - ] - }, - "standalone": { - "cli": "--standalone", - "name": "standalone", - "ids": [ - "16#option_mysqld_standalone" - ] - }, - "super_large_pages": { - "cli": "--super-large-pages[={OFF|ON}]", - "default": "OFF", - "name": "super_large_pages", - "type": "boolean", - "ids": [ - "16#option_mysqld_super-large-pages" - ] - }, - "symbolic_links": { - "cli": "--symbolic-links[={OFF|ON}]", - "name": "symbolic_links", - "type": "boolean", - "ids": [ - "16#option_mysqld_symbolic-links" - ] - }, - "sysdate_is_now": { - "cli": "--sysdate-is-now[={OFF|ON}]", - "default": "OFF", - "name": "sysdate_is_now", - "type": "boolean", - "ids": [ - "16#option_mysqld_sysdate-is-now" - ] - }, - "tc_heuristic_recover": { - "cli": "--tc-heuristic-recover=name", - "default": "COMMIT", - "name": "tc_heuristic_recover", - "type": "enumeration", - "validValues": [ - "COMMIT", - "ROLLBACK" - ], - "ids": [ - "16#option_mysqld_tc-heuristic-recover" - ] - }, - "temp_pool": { - "cli": "--temp-pool[={OFF|ON}]", - "name": "temp_pool", - "type": "boolean", - "ids": [ - "16#option_mysqld_temp-pool" - ] - }, - "transaction_isolation": { - "cli": "--transaction-isolation=name", - "default": "REPEATABLE-READ", - "dynamic": true, - "name": "transaction_isolation", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "READ-UNCOMMITTED", - "READ-COMMITTED", - "REPEATABLE-READ", - "SERIALIZABLE" - ], - "ids": [ - "16#option_mysqld_transaction-isolation", - "15#sysvar_transaction_isolation" - ] - }, - "transaction_read_only": { - "cli": "--transaction-read-only[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "transaction_read_only", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "16#option_mysqld_transaction-read-only", - "15#sysvar_transaction_read_only" - ] - }, - "upgrade": { - "cli": "--upgrade=value", - "default": "AUTO", - "name": "upgrade", - "type": "enumeration", - "validValues": [ - "AUTO", - "NONE", - "MINIMAL", - "FORCE" - ], - "ids": [ - "16#option_mysqld_upgrade" - ] - }, - "user": { - "cli": "--user=name", - "name": "user", - "type": "string", - "ids": [ - "16#option_mysqld_user" - ] - }, - "validate_config": { - "cli": "--validate-config[={OFF|ON}]", - "default": "OFF", - "name": "validate_config", - "type": "boolean", - "ids": [ - "16#option_mysqld_validate-config" - ] - }, - "activate_all_roles_on_login": { - "cli": "--activate-all-roles-on-login[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "activate_all_roles_on_login", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "15#sysvar_activate_all_roles_on_login" - ] - }, - "admin_address": { - "cli": "--admin-address=addr", - "dynamic": false, - "name": "admin_address", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "15#sysvar_admin_address" - ] - }, - "admin_port": { - "cli": "--admin-port=port_num", - "default": "33062", - "dynamic": false, - "name": "admin_port", - "range": { - "from": 0, - "to": 65535 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "15#sysvar_admin_port" - ] - }, - "authentication_windows_log_level": { - "cli": "--authentication-windows-log-level=#", - "default": "2", - "dynamic": false, - "name": "authentication_windows_log_level", - "range": { - "from": 0, - "to": 4 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "15#sysvar_authentication_windows_log_level" - ] - }, - "authentication_windows_use_principal_name": { - "cli": "--authentication-windows-use-principal-name[={OFF|ON}]", - "default": "ON", - "dynamic": false, - "name": "authentication_windows_use_principal_name", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "15#sysvar_authentication_windows_use_principal_name" - ] - }, - "auto_generate_certs": { - "cli": "--auto-generate-certs[={OFF|ON}]", - "default": "ON", - "dynamic": false, - "name": "auto_generate_certs", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "15#sysvar_auto_generate_certs" - ] - }, - "avoid_temporal_upgrade": { - "cli": "--avoid-temporal-upgrade[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "avoid_temporal_upgrade", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "15#sysvar_avoid_temporal_upgrade" - ] - }, - "block_encryption_mode": { - "cli": "--block-encryption-mode=#", - "default": "aes-128-ecb", - "dynamic": true, - "name": "block_encryption_mode", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "15#sysvar_block_encryption_mode" - ] - }, - "caching_sha2_password_auto_generate_rsa_keys": { - "cli": "--caching-sha2-password-auto-generate-rsa-keys[={OFF|ON}]", - "default": "ON", - "dynamic": false, - "name": "caching_sha2_password_auto_generate_rsa_keys", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "15#sysvar_caching_sha2_password_auto_generate_rsa_keys" - ] - }, - "caching_sha2_password_private_key_path": { - "cli": "--caching-sha2-password-private-key-path=file_name", - "default": "private_key.pem", - "dynamic": false, - "name": "caching_sha2_password_private_key_path", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - "15#sysvar_caching_sha2_password_private_key_path" - ] - }, - "caching_sha2_password_public_key_path": { - "cli": "--caching-sha2-password-public-key-path=file_name", - "default": "public_key.pem", - "dynamic": false, - "name": "caching_sha2_password_public_key_path", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - "15#sysvar_caching_sha2_password_public_key_path" - ] - }, - "check_proxy_users": { - "cli": "--check-proxy-users[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "check_proxy_users", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "15#sysvar_check_proxy_users" - ] - }, - "create_admin_listener_thread": { - "cli": "--create-admin-listener-thread[={OFF|ON}]", - "default": "OFF", - "dynamic": false, - "name": "create_admin_listener_thread", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "15#sysvar_create_admin_listener_thread" - ] - }, - "cte_max_recursion_depth": { - "cli": "--cte-max-recursion-depth=#", - "default": "1000", - "dynamic": true, - "name": "cte_max_recursion_depth", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "15#sysvar_cte_max_recursion_depth" - ] - }, - "default_authentication_plugin": { - "cli": "--default-authentication-plugin=plugin_name", - "dynamic": false, - "name": "default_authentication_plugin", - "scope": [ - "global" - ], - "type": "enumeration", - "ids": [ - "15#sysvar_default_authentication_plugin" - ] - }, - "default_collation_for_utf8mb4": { - "dynamic": true, - "name": "default_collation_for_utf8mb4", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "utf8mb4_0900_ai_ci", - "utf8mb4_general_ci" - ], - "ids": [ - "15#sysvar_default_collation_for_utf8mb4" - ] - }, - "default_table_encryption": { - "cli": "--default-table-encryption[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "default_table_encryption", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "15#sysvar_default_table_encryption" - ] - }, - "disabled_storage_engines": { - "cli": "--disabled-storage-engines=engine[,engine]...", - "default": "empty string", - "dynamic": false, - "name": "disabled_storage_engines", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "15#sysvar_disabled_storage_engines" - ] - }, - "dragnet.log_error_filter_rules": { - "cli": "--dragnet.log-error-filter-rules=value", - "default": "IF prio>=INFORMATION THEN drop. IF EXISTS source_line THEN unset source_line.", - "dynamic": true, - "name": "dragnet.log_error_filter_rules", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "15#sysvar_dragnet.log_error_filter_rules" - ] - }, - "end_markers_in_json": { - "cli": "--end-markers-in-json[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "end_markers_in_json", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "15#sysvar_end_markers_in_json" - ] - }, - "generated_random_password_length": { - "cli": "--generated-random-password-length=#", - "default": "20", - "dynamic": true, - "name": "generated_random_password_length", - "range": { - "from": 5, - "to": 255 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "15#sysvar_generated_random_password_length" - ] - }, - "have_statement_timeout": { - "dynamic": false, - "name": "have_statement_timeout", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "15#sysvar_have_statement_timeout" - ] - }, - "histogram_generation_max_mem_size": { - "cli": "--histogram-generation-max-mem-size=#", - "default": "20000000", - "dynamic": true, - "name": "histogram_generation_max_mem_size", - "range": { - "from": 1000000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "15#sysvar_histogram_generation_max_mem_size" - ] - }, - "information_schema_stats_expiry": { - "cli": "--information-schema-stats-expiry=#", - "default": "86400", - "dynamic": true, - "name": "information_schema_stats_expiry", - "range": { - "from": 0, - "to": 31536000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "15#sysvar_information_schema_stats_expiry" - ] - }, - "internal_tmp_disk_storage_engine": { - "cli": "--internal-tmp-disk-storage-engine=#", - "default": "INNODB", - "dynamic": true, - "name": "internal_tmp_disk_storage_engine", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "MYISAM", - "INNODB" - ], - "ids": [ - "15#sysvar_internal_tmp_disk_storage_engine" - ] - }, - "internal_tmp_mem_storage_engine": { - "cli": "--internal-tmp-mem-storage-engine=#", - "default": "TempTable", - "dynamic": true, - "name": "internal_tmp_mem_storage_engine", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "TempTable", - "MEMORY" - ], - "ids": [ - "15#sysvar_internal_tmp_mem_storage_engine" - ] - }, - "log_error_filter_rules": { - "cli": "--log-error-filter-rules=value", - "default": "set by server", - "dynamic": true, - "name": "log_error_filter_rules", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "15#sysvar_log_error_filter_rules" - ] - }, - "log_error_services": { - "cli": "--log-error-services=value", - "default": "log_filter_internal; log_sink_internal", - "dynamic": true, - "name": "log_error_services", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "15#sysvar_log_error_services" - ] - }, - "log_error_suppression_list": { - "cli": "--log-error-suppression-list=value", - "default": "empty string", - "dynamic": true, - "name": "log_error_suppression_list", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "15#sysvar_log_error_suppression_list" - ] - }, - "log_error_verbosity": { - "cli": "--log-error-verbosity=#", - "dynamic": true, - "name": "log_error_verbosity", - "range": { - "from": 1, - "to": 3 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "15#sysvar_log_error_verbosity" - ] - }, - "log_slow_extra": { - "cli": "--log-slow-extra[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "log_slow_extra", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "15#sysvar_log_slow_extra" - ] - }, - "log_syslog": { - "cli": "--log-syslog[={OFF|ON}]", - "dynamic": true, - "name": "log_syslog", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "15#sysvar_log_syslog" - ] - }, - "log_syslog_facility": { - "cli": "--log-syslog-facility=value", - "default": "daemon", - "dynamic": true, - "name": "log_syslog_facility", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "15#sysvar_log_syslog_facility" - ] - }, - "log_syslog_include_pid": { - "cli": "--log-syslog-include-pid[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "name": "log_syslog_include_pid", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "15#sysvar_log_syslog_include_pid" - ] - }, - "log_syslog_tag": { - "cli": "--log-syslog-tag=tag", - "default": "empty string", - "dynamic": true, - "name": "log_syslog_tag", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "15#sysvar_log_syslog_tag" - ] - }, - "log_timestamps": { - "cli": "--log-timestamps=#", - "default": "UTC", - "dynamic": true, - "name": "log_timestamps", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "UTC", - "SYSTEM" - ], - "ids": [ - "15#sysvar_log_timestamps" - ] - }, - "log_throttle_queries_not_using_indexes": { - "cli": "--log-throttle-queries-not-using-indexes=#", - "default": "0", - "dynamic": true, - "name": "log_throttle_queries_not_using_indexes", - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "15#sysvar_log_throttle_queries_not_using_indexes" - ] - }, - "mandatory_roles": { - "cli": "--mandatory-roles=value", - "default": "empty string", - "dynamic": true, - "name": "mandatory_roles", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "15#sysvar_mandatory_roles" - ] - }, - "max_execution_time": { - "cli": "--max-execution-time=#", - "default": "0", - "dynamic": true, - "name": "max_execution_time", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "15#sysvar_max_execution_time" - ] - }, - "max_points_in_geometry": { - "cli": "--max-points-in-geometry=#", - "default": "65536", - "dynamic": true, - "name": "max_points_in_geometry", - "range": { - "from": 3, - "to": 1048576 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "15#sysvar_max_points_in_geometry" - ] - }, - "mecab_rc_file": { - "cli": "--mecab-rc-file=file_name", - "dynamic": false, - "name": "mecab_rc_file", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - "15#sysvar_mecab_rc_file" - ] - }, - "mysql_native_password_proxy_users": { - "cli": "--mysql-native-password-proxy-users[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "mysql_native_password_proxy_users", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "15#sysvar_mysql_native_password_proxy_users" - ] - }, - "named_pipe_full_access_group": { - "cli": "--named-pipe-full-access-group=value", - "default": "*everyone*", - "dynamic": false, - "name": "named_pipe_full_access_group", - "scope": [ - "global" - ], - "type": "string", - "validValues": [ - "*everyone*", - "empty string" - ], - "ids": [ - "15#sysvar_named_pipe_full_access_group" - ] - }, - "new": { - "cli": "--new[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "new", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "15#sysvar_new" - ] - }, - "ngram_token_size": { - "cli": "--ngram-token-size=#", - "default": "2", - "dynamic": false, - "name": "ngram_token_size", - "range": { - "from": 1, - "to": 10 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "15#sysvar_ngram_token_size" - ] - }, - "offline_mode": { - "cli": "--offline-mode[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "offline_mode", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "15#sysvar_offline_mode" - ] - }, - "optimizer_trace_features": { - "cli": "--optimizer-trace-features=value", - "dynamic": true, - "name": "optimizer_trace_features", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "15#sysvar_optimizer_trace_features" - ] - }, - "optimizer_trace_limit": { - "cli": "--optimizer-trace-limit=#", - "default": "1", - "dynamic": true, - "name": "optimizer_trace_limit", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "15#sysvar_optimizer_trace_limit" - ] - }, - "optimizer_trace_offset": { - "cli": "--optimizer-trace-offset=#", - "default": "-1", - "dynamic": true, - "name": "optimizer_trace_offset", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "15#sysvar_optimizer_trace_offset" - ] - }, - "parser_max_mem_size": { - "cli": "--parser-max-mem-size=#", - "dynamic": true, - "name": "parser_max_mem_size", - "range": { - "from": 10000000 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "15#sysvar_parser_max_mem_size" - ] - }, - "partial_revokes": { - "cli": "--partial-revokes[={OFF|ON}]", - "default": "OFF (if partial revokes do not exist)ON (if partial revokes exist)", - "dynamic": true, - "name": "partial_revokes", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "15#sysvar_partial_revokes" - ] - }, - "password_history": { - "cli": "--password-history=#", - "default": "0", - "dynamic": true, - "name": "password_history", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "15#sysvar_password_history" - ] - }, - "password_require_current": { - "cli": "--password-require-current[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "password_require_current", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "15#sysvar_password_require_current" - ] - }, - "password_reuse_interval": { - "cli": "--password-reuse-interval=#", - "default": "0", - "dynamic": true, - "name": "password_reuse_interval", - "range": { - "from": 0, - "to": 4294967295 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "15#sysvar_password_reuse_interval" - ] - }, - "persisted_globals_load": { - "cli": "--persisted-globals-load[={OFF|ON}]", - "default": "ON", - "dynamic": false, - "name": "persisted_globals_load", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "15#sysvar_persisted_globals_load" - ] - }, - "persist_only_admin_x509_subject": { - "cli": "--persist-only-admin-x509-subject=string", - "default": "empty string", - "dynamic": false, - "name": "persist_only_admin_x509_subject", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "15#sysvar_persist_only_admin_x509_subject" - ] - }, - "print_identified_with_as_hex": { - "cli": "--print-identified-with-as-hex[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "print_identified_with_as_hex", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "15#sysvar_print_identified_with_as_hex" - ] - }, - "protocol_compression_algorithms": { - "cli": "--protocol-compression-algorithms=value", - "default": "zlib,zstd,uncompressed", - "dynamic": true, - "name": "protocol_compression_algorithms", - "scope": [ - "global" - ], - "type": "set", - "validValues": [ - "zlib", - "zstd", - "uncompressed" - ], - "ids": [ - "15#sysvar_protocol_compression_algorithms" - ] - }, - "range_optimizer_max_mem_size": { - "cli": "--range-optimizer-max-mem-size=#", - "default": "8388608", - "dynamic": true, - "name": "range_optimizer_max_mem_size", - "range": { - "from": 0, - "to": 1.8446744073709552e+19 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "15#sysvar_range_optimizer_max_mem_size" - ] - }, - "rbr_exec_mode": { - "default": "STRICT", - "dynamic": true, - "name": "rbr_exec_mode", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "IDEMPOTENT", - "STRICT" - ], - "ids": [ - "15#sysvar_rbr_exec_mode" - ] - }, - "regexp_stack_limit": { - "cli": "--regexp-stack-limit=#", - "default": "8000000", - "dynamic": true, - "name": "regexp_stack_limit", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "15#sysvar_regexp_stack_limit" - ] - }, - "regexp_time_limit": { - "cli": "--regexp-time-limit=#", - "default": "32", - "dynamic": true, - "name": "regexp_time_limit", - "range": { - "from": 0, - "to": 2147483647 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "15#sysvar_regexp_time_limit" - ] - }, - "require_secure_transport": { - "cli": "--require-secure-transport[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "require_secure_transport", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "15#sysvar_require_secure_transport" - ] - }, - "resultset_metadata": { - "default": "FULL", - "dynamic": true, - "name": "resultset_metadata", - "scope": [ - "session" - ], - "type": "enumeration", - "validValues": [ - "FULL", - "NONE" - ], - "ids": [ - "15#sysvar_resultset_metadata" - ] - }, - "secondary_engine_cost_threshold": { - "default": "100000.000000", - "dynamic": true, - "name": "secondary_engine_cost_threshold", - "range": { - "from": 0 - }, - "scope": [ - "session" - ], - "type": "numeric", - "ids": [ - "15#sysvar_secondary_engine_cost_threshold" - ] - }, - "schema_definition_cache": { - "cli": "--schema-definition-cache=#", - "default": "256", - "dynamic": true, - "name": "schema_definition_cache", - "range": { - "from": 256, - "to": 524288 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "15#sysvar_schema_definition_cache" - ] - }, - "session_track_gtids": { - "cli": "--session-track-gtids=value", - "default": "OFF", - "dynamic": true, - "name": "session_track_gtids", - "scope": [ - "global", - "session" - ], - "type": "enumeration", - "validValues": [ - "OFF", - "OWN_GTID", - "ALL_GTIDS" - ], - "ids": [ - "15#sysvar_session_track_gtids" - ] - }, - "sha256_password_auto_generate_rsa_keys": { - "cli": "--sha256-password-auto-generate-rsa-keys[={OFF|ON}]", - "default": "ON", - "dynamic": false, - "name": "sha256_password_auto_generate_rsa_keys", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "15#sysvar_sha256_password_auto_generate_rsa_keys" - ] - }, - "sha256_password_private_key_path": { - "cli": "--sha256-password-private-key-path=file_name", - "default": "private_key.pem", - "dynamic": false, - "name": "sha256_password_private_key_path", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - "15#sysvar_sha256_password_private_key_path" - ] - }, - "sha256_password_proxy_users": { - "cli": "--sha256-password-proxy-users[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "sha256_password_proxy_users", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "15#sysvar_sha256_password_proxy_users" - ] - }, - "sha256_password_public_key_path": { - "cli": "--sha256-password-public-key-path=file_name", - "default": "public_key.pem", - "dynamic": false, - "name": "sha256_password_public_key_path", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - "15#sysvar_sha256_password_public_key_path" - ] - }, - "show_compatibility_56": { - "cli": "--show-compatibility-56[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "show_compatibility_56", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "15#sysvar_show_compatibility_56" - ] - }, - "show_create_table_skip_secondary_engine": { - "cli": "--show-create-table-skip-secondary-engine[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "show_create_table_skip_secondary_engine", - "scope": [ - "session" - ], - "type": "boolean", - "ids": [ - "15#sysvar_show_create_table_skip_secondary_engine" - ] - }, - "show_create_table_verbosity": { - "cli": "--show-create-table-verbosity[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "show_create_table_verbosity", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "15#sysvar_show_create_table_verbosity" - ] - }, - "show_old_temporals": { - "cli": "--show-old-temporals[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "show_old_temporals", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "15#sysvar_show_old_temporals" - ] - }, - "sql_require_primary_key": { - "cli": "--sql-require-primary-key[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "sql_require_primary_key", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "15#sysvar_sql_require_primary_key" - ] - }, - "ssl_fips_mode": { - "cli": "--ssl-fips-mode={OFF|ON|STRICT}", - "default": "OFF", - "dynamic": true, - "name": "ssl_fips_mode", - "scope": [ - "global" - ], - "type": "enumeration", - "validValues": [ - "OFF", - "ON", - "STRICT" - ], - "ids": [ - "15#sysvar_ssl_fips_mode" - ] - }, - "stored_program_definition_cache": { - "cli": "--stored-program-definition-cache=#", - "default": "256", - "dynamic": true, - "name": "stored_program_definition_cache", - "range": { - "from": 256, - "to": 524288 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "15#sysvar_stored_program_definition_cache" - ] - }, - "super_read_only": { - "cli": "--super-read-only[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "super_read_only", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "15#sysvar_super_read_only" - ] - }, - "syseventlog.facility": { - "cli": "--syseventlog.facility=value", - "default": "daemon", - "dynamic": true, - "name": "syseventlog.facility", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "15#sysvar_syseventlog.facility" - ] - }, - "syseventlog.include_pid": { - "cli": "--syseventlog.include-pid[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "name": "syseventlog.include_pid", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "15#sysvar_syseventlog.include_pid" - ] - }, - "syseventlog.tag": { - "cli": "--syseventlog.tag=tag", - "default": "empty string", - "dynamic": true, - "name": "syseventlog.tag", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "15#sysvar_syseventlog.tag" - ] - }, - "table_encryption_privilege_check": { - "cli": "--table-encryption-privilege-check[={OFF|ON}]", - "default": "OFF", - "dynamic": true, - "name": "table_encryption_privilege_check", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "15#sysvar_table_encryption_privilege_check" - ] - }, - "tablespace_definition_cache": { - "cli": "--tablespace-definition-cache=#", - "default": "256", - "dynamic": true, - "name": "tablespace_definition_cache", - "range": { - "from": 256, - "to": 524288 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "15#sysvar_tablespace_definition_cache" - ] - }, - "temptable_max_ram": { - "cli": "--temptable-max-ram=#", - "default": "1073741824", - "dynamic": true, - "name": "temptable_max_ram", - "range": { - "from": 2097152, - "to": 2 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "15#sysvar_temptable_max_ram" - ] - }, - "temptable_use_mmap": { - "cli": "--temptable-use-mmap[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "name": "temptable_use_mmap", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "15#sysvar_temptable_use_mmap" - ] - }, - "thread_pool_algorithm": { - "cli": "--thread-pool-algorithm=#", - "default": "0", - "dynamic": false, - "name": "thread_pool_algorithm", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "15#sysvar_thread_pool_algorithm" - ] - }, - "thread_pool_high_priority_connection": { - "cli": "--thread-pool-high-priority-connection=#", - "default": "0", - "dynamic": true, - "name": "thread_pool_high_priority_connection", - "range": { - "from": 0, - "to": 1 - }, - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "15#sysvar_thread_pool_high_priority_connection" - ] - }, - "thread_pool_max_active_query_threads": { - "cli": "--thread-pool-max-active-query-threads", - "default": "0", - "dynamic": true, - "name": "thread_pool_max_active_query_threads", - "range": { - "from": 0, - "to": 512 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "15#sysvar_thread_pool_max_active_query_threads" - ] - }, - "thread_pool_max_unused_threads": { - "cli": "--thread-pool-max-unused-threads=#", - "default": "0", - "dynamic": true, - "name": "thread_pool_max_unused_threads", - "range": { - "from": 0, - "to": 4096 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "15#sysvar_thread_pool_max_unused_threads" - ] - }, - "tls_ciphersuites": { - "cli": "--tls-ciphersuites=ciphersuite_list", - "default": "empty string", - "dynamic": true, - "name": "tls_ciphersuites", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "15#sysvar_tls_ciphersuites" - ] - }, - "use_secondary_engine": { - "default": "ON", - "dynamic": true, - "name": "use_secondary_engine", - "scope": [ - "session" - ], - "type": "enumeration", - "validValues": [ - "OFF", - "ON", - "FORCED" - ], - "ids": [ - "15#sysvar_use_secondary_engine" - ] - }, - "validate_user_plugins": { - "cli": "--validate-user-plugins[={OFF|ON}]", - "default": "ON", - "dynamic": false, - "name": "validate_user_plugins", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "15#sysvar_validate_user_plugins" - ] - }, - "version_compile_zlib": { - "dynamic": false, - "name": "version_compile_zlib", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "15#sysvar_version_compile_zlib" - ] - }, - "windowing_use_high_precision": { - "cli": "--windowing-use-high-precision[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "name": "windowing_use_high_precision", - "scope": [ - "global", - "session" - ], - "type": "boolean", - "ids": [ - "15#sysvar_windowing_use_high_precision" - ] - }, - "version_tokens_session": { - "cli": "--version-tokens-session=value", - "default": "NULL", - "dynamic": true, - "name": "version_tokens_session", - "scope": [ - "global", - "session" - ], - "type": "string", - "ids": [ - "47#sysvar_version_tokens_session" - ] - }, - "version_tokens_session_number": { - "cli": "--version-tokens-session-number=#", - "default": "0", - "dynamic": false, - "name": "version_tokens_session_number", - "scope": [ - "global", - "session" - ], - "type": "integer", - "ids": [ - "46#sysvar_version_tokens_session_number" - ] - }, - "mysqlx": { - "cli": "--mysqlx[=value]", - "default": "ON", - "name": "mysqlx", - "type": "enumeration", - "validValues": [ - "ON", - "OFF", - "FORCE", - "FORCE_PLUS_PERMANENT" - ], - "ids": [ - "48#option_mysqld_mysqlx" - ] - }, - "mysqlx_bind_address": { - "cli": "--mysqlx-bind-address=addr", - "default": "*", - "dynamic": false, - "name": "mysqlx_bind_address", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "47#sysvar_mysqlx_bind_address" - ] - }, - "mysqlx_connect_timeout": { - "cli": "--mysqlx-connect-timeout=#", - "default": "30", - "dynamic": true, - "name": "mysqlx_connect_timeout", - "range": { - "from": 1, - "to": 1000000000 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "47#sysvar_mysqlx_connect_timeout" - ] - }, - "mysqlx_document_id_unique_prefix": { - "cli": "--mysqlx-document-id-unique-prefix=#", - "default": "0", - "dynamic": true, - "name": "mysqlx_document_id_unique_prefix", - "range": { - "from": 0, - "to": 65535 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "47#sysvar_mysqlx_document_id_unique_prefix" - ] - }, - "mysqlx_enable_hello_notice": { - "cli": "--mysqlx-enable-hello-notice[={OFF|ON}]", - "default": "ON", - "dynamic": true, - "name": "mysqlx_enable_hello_notice", - "scope": [ - "global" - ], - "type": "boolean", - "ids": [ - "47#sysvar_mysqlx_enable_hello_notice" - ] - }, - "mysqlx_idle_worker_thread_timeout": { - "cli": "--mysqlx-idle-worker-thread-timeout=#", - "default": "60", - "dynamic": true, - "name": "mysqlx_idle_worker_thread_timeout", - "range": { - "from": 0, - "to": 3600 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "47#sysvar_mysqlx_idle_worker_thread_timeout" - ] - }, - "mysqlx_interactive_timeout": { - "cli": "--mysqlx-interactive-timeout=#", - "default": "28800", - "dynamic": true, - "name": "mysqlx_interactive_timeout", - "range": { - "from": 1, - "to": 2147483 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "47#sysvar_mysqlx_interactive_timeout" - ] - }, - "mysqlx_max_allowed_packet": { - "cli": "--mysqlx-max-allowed-packet=#", - "default": "67108864", - "dynamic": true, - "name": "mysqlx_max_allowed_packet", - "range": { - "from": 512, - "to": 1073741824 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "47#sysvar_mysqlx_max_allowed_packet" - ] - }, - "mysqlx_max_connections": { - "cli": "--mysqlx-max-connections=#", - "default": "100", - "dynamic": true, - "name": "mysqlx_max_connections", - "range": { - "from": 1, - "to": 65535 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "47#sysvar_mysqlx_max_connections" - ] - }, - "mysqlx_min_worker_threads": { - "cli": "--mysqlx-min-worker-threads=#", - "default": "2", - "dynamic": true, - "name": "mysqlx_min_worker_threads", - "range": { - "from": 1, - "to": 100 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "47#sysvar_mysqlx_min_worker_threads" - ] - }, - "mysqlx_port": { - "cli": "--mysqlx-port=port_num", - "default": "33060", - "dynamic": false, - "name": "mysqlx_port", - "range": { - "from": 1, - "to": 65535 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "47#sysvar_mysqlx_port" - ] - }, - "mysqlx_port_open_timeout": { - "cli": "--mysqlx-port-open-timeout=#", - "default": "0", - "dynamic": false, - "name": "mysqlx_port_open_timeout", - "range": { - "from": 0, - "to": 120 - }, - "scope": [ - "global" - ], - "type": "integer", - "ids": [ - "47#sysvar_mysqlx_port_open_timeout" - ] - }, - "mysqlx_read_timeout": { - "cli": "--mysqlx-read-timeout=#", - "default": "28800", - "dynamic": true, - "name": "mysqlx_read_timeout", - "range": { - "from": 30, - "to": 2147483 - }, - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - "47#sysvar_mysqlx_read_timeout" - ] - }, - "mysqlx_socket": { - "cli": "--mysqlx-socket=file_name", - "default": "/tmp/mysqlx.sock", - "dynamic": false, - "name": "mysqlx_socket", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "47#sysvar_mysqlx_socket" - ] - }, - "mysqlx_ssl_ca": { - "cli": "--mysqlx-ssl-ca=file_name", - "dynamic": false, - "name": "mysqlx_ssl_ca", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - "47#sysvar_mysqlx_ssl_ca" - ] - }, - "mysqlx_ssl_capath": { - "cli": "--mysqlx-ssl-capath=dir_name", - "dynamic": false, - "name": "mysqlx_ssl_capath", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - "47#sysvar_mysqlx_ssl_capath" - ] - }, - "mysqlx_ssl_cert": { - "cli": "--mysqlx-ssl-cert=name", - "dynamic": false, - "name": "mysqlx_ssl_cert", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - "47#sysvar_mysqlx_ssl_cert" - ] - }, - "mysqlx_ssl_cipher": { - "cli": "--mysqlx-ssl-cipher=name", - "dynamic": false, - "name": "mysqlx_ssl_cipher", - "scope": [ - "global" - ], - "type": "string", - "ids": [ - "47#sysvar_mysqlx_ssl_cipher" - ] - }, - "mysqlx_ssl_crl": { - "cli": "--mysqlx-ssl-crl=file_name", - "dynamic": false, - "name": "mysqlx_ssl_crl", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - "47#sysvar_mysqlx_ssl_crl" - ] - }, - "mysqlx_ssl_crlpath": { - "cli": "--mysqlx-ssl-crlpath=dir_name", - "dynamic": false, - "name": "mysqlx_ssl_crlpath", - "scope": [ - "global" - ], - "type": "directory name", - "ids": [ - "47#sysvar_mysqlx_ssl_crlpath" - ] - }, - "mysqlx_ssl_key": { - "cli": "--mysqlx-ssl-key=file_name", - "dynamic": false, - "name": "mysqlx_ssl_key", - "scope": [ - "global" - ], - "type": "file name", - "ids": [ - "47#sysvar_mysqlx_ssl_key" - ] - }, - "mysqlx_wait_timeout": { - "cli": "--mysqlx-wait-timeout=#", - "default": "28800", - "dynamic": true, - "name": "mysqlx_wait_timeout", - "range": { - "from": 1, - "to": 2147483 - }, - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - "47#sysvar_mysqlx_wait_timeout" - ] - }, - "mysqlx_write_timeout": { - "cli": "--mysqlx-write-timeout=#", - "default": "60", - "dynamic": true, - "name": "mysqlx_write_timeout", - "range": { - "from": 1, - "to": 2147483 - }, - "scope": [ - "session" - ], - "type": "integer", - "ids": [ - "47#sysvar_mysqlx_write_timeout" - ] - } - }, - "version": 1, - "urls": [ - "https://mariadb.com/kb/en/library/documentation/aria-server-status-variables/", - "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/", - "https://mariadb.com/kb/en/library/documentation/cassandra-status-variables/", - "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/cassandra/cassandra-system-variables/", - "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/", - "https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/", - "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/", - "https://mariadb.com/kb/en/library/documentation/gtid/", - "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/", - "https://dev.mysql.com/doc/refman/8.0/en/replication-options.html", - "https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-status-variables/", - "https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/", - "https://mariadb.com/kb/en/library/documentation/mroonga-status-variables/", - "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/", - "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/", - "https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html", - "https://dev.mysql.com/doc/refman/8.0/en/server-options.html", - "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/", - "https://mariadb.com/kb/en/library/documentation/oqgraph-system-and-status-variables/", - "https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/", - "https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html", - "https://dev.mysql.com/doc/refman/8.0/en/replication-options-master.html", - "https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html", - "https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html", - "https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html", - "https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/", - "https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/", - "https://mariadb.com/kb/en/library/documentation/semisynchronous-replication/", - "https://mariadb.com/kb/en/library/documentation/server-status-variables/", - "https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/", - "https://mariadb.com/kb/en/library/documentation/sphinx-status-variables/", - "https://mariadb.com/kb/en/library/documentation/spider-server-status-variables/", - "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/", - "https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/", - "https://mariadb.com/kb/en/library/documentation/ssltls-system-variables/", - "https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/", - "https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/", - "https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/", - "https://mariadb.com/kb/en/library/documentation/system-versioned-tables/", - "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/", - "https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/", - "https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html", - "https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html", - "https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html", - "https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html", - "https://dev.mysql.com/doc/refman/8.0/en/replication-options-gtids.html", - "https://dev.mysql.com/doc/refman/8.0/en/version-tokens-reference.html", - "https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html" - ] -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/dist/merged-ultraslim.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/dist/merged-ultraslim.json deleted file mode 100644 index f346e8c..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/dist/merged-ultraslim.json +++ /dev/null @@ -1 +0,0 @@ -{"vars":{"Aria_pagecache_blocks_not_flushed":{"t":3,"a":[{"a":"aria_pagecache_blocks_not_flushed","u":0,"t":2}]},"Aria_pagecache_blocks_unused":{"t":3,"a":[{"a":"aria_pagecache_blocks_unused","u":0,"t":2}]},"Aria_pagecache_blocks_used":{"t":3,"a":[{"a":"aria_pagecache_blocks_used","u":0,"t":2}]},"Aria_pagecache_read_requests":{"t":3,"a":[{"a":"aria_pagecache_read_requests","u":0,"t":2}]},"Aria_pagecache_reads":{"t":3,"a":[{"a":"aria_pagecache_reads","u":0,"t":2}]},"Aria_pagecache_write_requests":{"t":3,"a":[{"a":"aria_pagecache_write_requests","u":0,"t":2}]},"Aria_pagecache_writes":{"t":3,"a":[{"a":"aria_pagecache_writes","u":0,"t":2}]},"Aria_transaction_log_syncs":{"t":3,"a":[{"a":"aria_transaction_log_syncs","u":0,"t":2}]},"aria_block_size":{"d":false,"t":3,"a":[{"a":"aria_block_size","u":1,"t":2}]},"aria_checkpoint_interval":{"d":true,"t":3,"a":[{"a":"aria_checkpoint_interval","u":1,"t":2}]},"aria_checkpoint_log_activity":{"d":true,"t":3,"a":[{"a":"aria_checkpoint_log_activity","u":1,"t":2}]},"aria_encrypt_tables":{"d":true,"t":2,"a":[{"a":"aria_encrypt_tables","u":1,"t":2}]},"aria_force_start_after_recovery_failures":{"d":false,"t":3,"a":[{"a":"aria_force_start_after_recovery_failures","u":1,"t":2}]},"aria_group_commit":{"d":false,"t":1,"a":[{"a":"aria_group_commit","u":1,"t":2}]},"aria_group_commit_interval":{"d":false,"t":3,"a":[{"a":"aria_group_commit_interval","u":1,"t":2}]},"aria_log_file_size":{"d":true,"t":3,"a":[{"a":"aria_log_file_size","u":1,"t":2}]},"aria_log_purge_type":{"d":true,"t":5,"a":[{"a":"aria_log_purge_type","u":1,"t":2}]},"aria_max_sort_file_size":{"d":true,"t":3,"a":[{"a":"aria_max_sort_file_size","u":1,"t":2}]},"aria_page_checksum":{"d":true,"t":2,"a":[{"a":"aria_page_checksum","u":1,"t":2}]},"aria_pagecache_age_threshold":{"d":true,"t":3,"a":[{"a":"aria_pagecache_age_threshold","u":1,"t":2}]},"aria_pagecache_buffer_size":{"d":false,"t":3,"a":[{"a":"aria_pagecache_buffer_size","u":1,"t":2}]},"aria_pagecache_division_limit":{"d":true,"t":3,"a":[{"a":"aria_pagecache_division_limit","u":1,"t":2}]},"aria_pagecache_file_hash_size":{"d":false,"t":3,"a":[{"a":"aria_pagecache_file_hash_size","u":1,"t":2}]},"aria_recover":{"a":[{"a":"aria_recover","u":1,"t":2}]},"aria_recover_options":{"d":true,"t":5,"a":[{"a":"aria_recover_options","u":1,"t":2}]},"aria_repair_threads":{"d":true,"t":3,"a":[{"a":"aria_repair_threads","u":1,"t":2}]},"aria_sort_buffer_size":{"d":true,"t":3,"a":[{"a":"aria_sort_buffer_size","u":1,"t":2}]},"aria_stats_method":{"d":true,"t":3,"a":[{"a":"aria_stats_method","u":1,"t":2}]},"aria_sync_log_dir":{"d":true,"t":5,"a":[{"a":"aria_sync_log_dir","u":1,"t":2}]},"aria_used_for_temp_tables":{"d":false,"t":2,"a":[{"a":"aria_used_for_temp_tables","u":1,"t":2}]},"deadlock_search_depth_long":{"d":true,"t":3,"a":[{"a":"deadlock_search_depth_long","u":1,"t":2}]},"deadlock_search_depth_short":{"d":true,"t":3,"a":[{"a":"deadlock_search_depth_short","u":1,"t":2}]},"deadlock_timeout_long":{"d":true,"t":3,"a":[{"a":"deadlock_timeout_long","u":1,"t":2}]},"deadlock_timeout_short":{"d":true,"t":3,"a":[{"a":"deadlock_timeout_short","u":1,"t":2}]},"Cassandra_multiget_keys_scanned":{"t":3,"a":[{"a":"cassandra_multiget_keys_scanned","u":2,"t":2}]},"Cassandra_multiget_reads":{"t":3,"a":[{"a":"cassandra_multiget_reads","u":2,"t":2}]},"Cassandra_multiget_rows_read":{"t":3,"a":[{"a":"cassandra_multiget_rows_read","u":2,"t":2}]},"Cassandra_network_exceptions":{"t":3,"a":[{"a":"cassandra_network_exceptions","u":2,"t":2}]},"Cassandra_row_insert_batches":{"t":3,"a":[{"a":"cassandra_row_insert_batches","u":2,"t":2}]},"Cassandra_row_inserts":{"t":3,"a":[{"a":"cassandra_row_inserts","u":2,"t":2}]},"Cassandra_timeout_exceptions":{"t":3,"a":[{"a":"cassandra_timeout_exceptions","u":2,"t":2}]},"Cassandra_unavailable_exceptions":{"t":3,"a":[{"a":"cassandra_unavailable_exceptions","u":2,"t":2}]},"cassandra_default_thrift_host":{"d":true,"t":1,"a":[{"a":"cassandra_default_thrift_host","u":3,"t":2}]},"cassandra_failure_retries":{"d":true,"t":3,"a":[{"a":"cassandra_failure_retries","u":3,"t":2}]},"cassandra_insert_batch_size":{"d":true,"t":3,"a":[{"a":"cassandra_insert_batch_size","u":3,"t":2}]},"cassandra_multiget_batch_size":{"d":true,"t":3,"a":[{"a":"cassandra_multiget_batch_size","u":3,"t":2}]},"cassandra_read_consistency":{"a":[{"a":"cassandra_read_consistency","u":3,"t":2}]},"cassandra_rnd_batch_size":{"a":[{"a":"cassandra_rnd_batch_size","u":3,"t":2}]},"cassandra_write_consistency":{"a":[{"a":"cassandra_write_consistency","u":3,"t":2}]},"connect_class_path":{"d":false,"t":1,"a":[{"a":"connect_class_path","u":4,"t":2}]},"connect_cond_push":{"d":true,"t":2,"a":[{"a":"connect_cond_push","u":4,"t":2}]},"connect_conv_size":{"d":true,"t":3,"a":[{"a":"connect_conv_size","u":4,"t":2}]},"connect_enable_mongo":{"d":false,"t":2,"a":[{"a":"connect_enable_mongo","u":4,"t":2}]},"connect_exact_info":{"d":true,"t":2,"a":[{"a":"connect_exact_info","u":4,"t":2}]},"connect_indx_map":{"d":true,"t":2,"a":[{"a":"connect_indx_map","u":4,"t":2}]},"connect_java_wrapper":{"d":true,"t":1,"a":[{"a":"connect_java_wrapper","u":4,"t":2}]},"connect_json_grp_size":{"d":true,"t":3,"a":[{"a":"connect_json_grp_size","u":4,"t":2}]},"connect_json_null":{"d":true,"t":1,"a":[{"a":"connect_json_null","u":4,"t":2}]},"connect_jvm_path":{"d":false,"t":1,"a":[{"a":"connect_jvm_path","u":4,"t":2}]},"connect_type_conv":{"d":true,"a":[{"a":"connect_type_conv","u":4,"t":2}]},"connect_use_tempfile":{"d":true,"a":[{"a":"connect_use_tempfile","u":4,"t":2}]},"connect_work_size":{"d":true,"t":3,"a":[{"a":"connect_work_size","u":4,"t":2}]},"connect_xtrace":{"d":true,"t":6,"a":[{"a":"connect_xtrace","u":4,"t":2}]},"wsrep_apply_oooe":{"a":[{"a":"wsrep_apply_oooe","u":5,"t":2}]},"wsrep_apply_oool":{"a":[{"a":"wsrep_apply_oool","u":5,"t":2}]},"wsrep_apply_window":{"a":[{"a":"wsrep_apply_window","u":5,"t":2}]},"wsrep_cert_deps_distance":{"a":[{"a":"wsrep_cert_deps_distance","u":5,"t":2}]},"wsrep_cert_index_size":{"t":3,"a":[{"a":"wsrep_cert_index_size","u":5,"t":2}]},"wsrep_cert_interval":{"t":3,"a":[{"a":"wsrep_cert_interval","u":5,"t":2}]},"wsrep_cluster_capabilities":{"a":[{"a":"wsrep_cluster_capabilities","u":5,"t":2}]},"wsrep_cluster_conf_id":{"t":3,"a":[{"a":"wsrep_cluster_conf_id","u":5,"t":2}]},"wsrep_cluster_size":{"t":3,"a":[{"a":"wsrep_cluster_size","u":5,"t":2}]},"wsrep_cluster_state_uuid":{"a":[{"a":"wsrep_cluster_state_uuid","u":5,"t":2}]},"wsrep_cluster_status":{"a":[{"a":"wsrep_cluster_status","u":5,"t":2}]},"wsrep_cluster_weight":{"a":[{"a":"wsrep_cluster_weight","u":5,"t":2}]},"wsrep_commit_oooe":{"a":[{"a":"wsrep_commit_oooe","u":5,"t":2}]},"wsrep_commit_oool":{"a":[{"a":"wsrep_commit_oool","u":5,"t":2}]},"wsrep_commit_window":{"a":[{"a":"wsrep_commit_window","u":5,"t":2}]},"wsrep_connected":{"a":[{"a":"wsrep_connected","u":5,"t":2}]},"wsrep_desync_count":{"t":3,"a":[{"a":"wsrep_desync_count","u":5,"t":2}]},"wsrep_evs_delayed":{"a":[{"a":"wsrep_evs_delayed","u":5,"t":2}]},"wsrep_evs_evict_list":{"a":[{"a":"wsrep_evs_evict_list","u":5,"t":2}]},"wsrep_evs_repl_latency":{"a":[{"a":"wsrep_evs_repl_latency","u":5,"t":2}]},"wsrep_evs_state":{"a":[{"a":"wsrep_evs_state","u":5,"t":2}]},"wsrep_flow_control_paused":{"a":[{"a":"wsrep_flow_control_paused","u":5,"t":2}]},"wsrep_flow_control_paused_ns":{"a":[{"a":"wsrep_flow_control_paused_ns","u":5,"t":2}]},"wsrep_flow_control_recv":{"t":3,"a":[{"a":"wsrep_flow_control_recv","u":5,"t":2}]},"wsrep_flow_control_sent":{"t":3,"a":[{"a":"wsrep_flow_control_sent","u":5,"t":2}]},"wsrep_gcomm_uuid":{"a":[{"a":"wsrep_gcomm_uuid","u":5,"t":2}]},"wsrep_incoming_addresses":{"a":[{"a":"wsrep_incoming_addresses","u":5,"t":2}]},"wsrep_last_committed":{"t":3,"a":[{"a":"wsrep_last_committed","u":5,"t":2}]},"wsrep_local_bf_aborts":{"t":3,"a":[{"a":"wsrep_local_bf_aborts","u":5,"t":2}]},"wsrep_local_cached_downto":{"a":[{"a":"wsrep_local_cached_downto","u":5,"t":2}]},"wsrep_local_cert_failures":{"t":3,"a":[{"a":"wsrep_local_cert_failures","u":5,"t":2}]},"wsrep_local_commits":{"t":3,"a":[{"a":"wsrep_local_commits","u":5,"t":2}]},"wsrep_local_index":{"a":[{"a":"wsrep_local_index","u":5,"t":2}]},"wsrep_local_recv_queue":{"t":3,"a":[{"a":"wsrep_local_recv_queue","u":5,"t":2}]},"wsrep_local_recv_queue_avg":{"a":[{"a":"wsrep_local_recv_queue_avg","u":5,"t":2}]},"wsrep_local_recv_queue_max":{"a":[{"a":"wsrep_local_recv_queue_max","u":5,"t":2}]},"wsrep_local_recv_queue_min":{"a":[{"a":"wsrep_local_recv_queue_min","u":5,"t":2}]},"wsrep_local_replays":{"t":3,"a":[{"a":"wsrep_local_replays","u":5,"t":2}]},"wsrep_local_send_queue":{"t":3,"a":[{"a":"wsrep_local_send_queue","u":5,"t":2}]},"wsrep_local_send_queue_avg":{"a":[{"a":"wsrep_local_send_queue_avg","u":5,"t":2}]},"wsrep_local_send_queue_max":{"a":[{"a":"wsrep_local_send_queue_max","u":5,"t":2}]},"wsrep_local_send_queue_min":{"a":[{"a":"wsrep_local_send_queue_min","u":5,"t":2}]},"wsrep_local_state":{"a":[{"a":"wsrep_local_state","u":5,"t":2}]},"wsrep_local_state_comment":{"a":[{"a":"wsrep_local_state_comment","u":5,"t":2}]},"wsrep_local_state_uuid":{"a":[{"a":"wsrep_local_state_uuid","u":5,"t":2}]},"wsrep_open_connections":{"t":3,"a":[{"a":"wsrep_open_connections","u":5,"t":2}]},"wsrep_open_transactions":{"t":3,"a":[{"a":"wsrep_open_transactions","u":5,"t":2}]},"wsrep_protocol_version":{"a":[{"a":"wsrep_protocol_version","u":5,"t":2}]},"wsrep_provider_name":{"a":[{"a":"wsrep_provider_name","u":5,"t":2}]},"wsrep_provider_vendor":{"a":[{"a":"wsrep_provider_vendor","u":5,"t":2}]},"wsrep_provider_version":{"t":3,"a":[{"a":"wsrep_provider_version","u":5,"t":2}]},"wsrep_ready":{"a":[{"a":"wsrep_ready","u":5,"t":2}]},"wsrep_received":{"t":3,"a":[{"a":"wsrep_received","u":5,"t":2}]},"wsrep_received_bytes":{"t":9,"a":[{"a":"wsrep_received_bytes","u":5,"t":2}]},"wsrep_repl_data_bytes":{"t":3,"a":[{"a":"wsrep_repl_data_bytes","u":5,"t":2}]},"wsrep_repl_keys":{"t":3,"a":[{"a":"wsrep_repl_keys","u":5,"t":2}]},"wsrep_repl_keys_bytes":{"t":3,"a":[{"a":"wsrep_repl_keys_bytes","u":5,"t":2}]},"wsrep_repl_other_bytes":{"t":3,"a":[{"a":"wsrep_repl_other_bytes","u":5,"t":2}]},"wsrep_replicated":{"t":3,"a":[{"a":"wsrep_replicated","u":5,"t":2}]},"wsrep_replicated_bytes":{"t":9,"a":[{"a":"wsrep_replicated_bytes","u":5,"t":2}]},"wsrep_thread_count":{"t":3,"a":[{"a":"wsrep_thread_count","u":5,"t":2}]},"wsrep_auto_increment_control":{"d":true,"t":2,"a":[{"a":"wsrep_auto_increment_control","u":6,"t":2}]},"wsrep_causal_reads":{"d":true,"t":2,"a":[{"a":"wsrep_causal_reads","u":6,"t":2}]},"wsrep_certification_rules":{"d":true,"t":5,"a":[{"a":"wsrep_certification_rules","u":6,"t":2}]},"wsrep_certify_nonPK":{"d":true,"t":2,"a":[{"a":"wsrep_certify_nonpk","u":6,"t":2}]},"wsrep_cluster_address":{"d":false,"t":1,"a":[{"a":"wsrep_cluster_address","u":6,"t":2}]},"wsrep_cluster_name":{"d":true,"t":1,"a":[{"a":"wsrep_cluster_name","u":6,"t":2}]},"wsrep_convert_LOCK_to_trx":{"d":true,"t":2,"a":[{"a":"wsrep_convert_lock_to_trx","u":6,"t":2}]},"wsrep_data_home_dir":{"d":false,"t":1,"a":[{"a":"wsrep_data_home_dir","u":6,"t":2}]},"wsrep_dbug_option":{"d":true,"t":1,"a":[{"a":"wsrep_dbug_option","u":6,"t":2}]},"wsrep_debug":{"d":true,"a":[{"a":"wsrep_debug","u":6,"t":2}]},"wsrep_desync":{"d":true,"t":2,"a":[{"a":"wsrep_desync","u":6,"t":2}]},"wsrep_dirty_reads":{"d":true,"t":2,"a":[{"a":"wsrep_dirty_reads","u":6,"t":2}]},"wsrep_drupal_282555_workaround":{"d":true,"t":2,"a":[{"a":"wsrep_drupal_282555_workaround","u":6,"t":2}]},"wsrep_forced_binlog_format":{"d":true,"a":[{"a":"wsrep_forced_binlog_format","u":6,"t":2}]},"wsrep_gtid_domain_id":{"d":true,"t":3,"a":[{"a":"wsrep_gtid_domain_id","u":6,"t":2}]},"wsrep_gtid_mode":{"d":true,"t":2,"a":[{"a":"wsrep_gtid_mode","u":6,"t":2}]},"wsrep_ignore_apply_errors":{"d":true,"t":3,"a":[{"a":"wsrep_ignore_apply_errors","u":6,"t":2}]},"wsrep_load_data_splitting":{"d":true,"t":2,"a":[{"a":"wsrep_load_data_splitting","u":6,"t":2}]},"wsrep_log_conflicts":{"d":true,"t":2,"a":[{"a":"wsrep_log_conflicts","u":6,"t":2}]},"wsrep_max_ws_rows":{"d":true,"t":3,"a":[{"a":"wsrep_max_ws_rows","u":6,"t":2}]},"wsrep_max_ws_size":{"d":true,"t":3,"a":[{"a":"wsrep_max_ws_size","u":6,"t":2}]},"wsrep_mysql_replication_bundle":{"d":false,"t":3,"a":[{"a":"wsrep_mysql_replication_bundle","u":6,"t":2}]},"wsrep_node_address":{"d":false,"t":1,"a":[{"a":"wsrep_node_address","u":6,"t":2}]},"wsrep_node_incoming_address":{"d":false,"t":1,"a":[{"a":"wsrep_node_incoming_address","u":6,"t":2}]},"wsrep_node_name":{"d":true,"t":1,"a":[{"a":"wsrep_node_name","u":6,"t":2}]},"wsrep_notify_cmd":{"d":true,"t":1,"a":[{"a":"wsrep_notify_cmd","u":6,"t":2}]},"wsrep_on":{"d":true,"t":2,"a":[{"a":"wsrep_on","u":6,"t":2}]},"wsrep_OSU_method":{"d":true,"a":[{"a":"wsrep_osu_method","u":6,"t":2}]},"wsrep_patch_version":{"d":false,"t":1,"a":[{"a":"wsrep_patch_version","u":6,"t":2}]},"wsrep_provider":{"d":true,"t":1,"a":[{"a":"wsrep_provider","u":6,"t":2}]},"wsrep_provider_options":{"d":false,"t":1,"a":[{"a":"wsrep_provider_options","u":6,"t":2}]},"wsrep_recover":{"d":false,"t":2,"a":[{"a":"wsrep_recover","u":6,"t":2}]},"wsrep_reject_queries":{"d":true,"a":[{"a":"wsrep_reject_queries","u":6,"t":2}]},"wsrep_replicate_myisam":{"d":true,"t":2,"a":[{"a":"wsrep_replicate_myisam","u":6,"t":2}]},"wsrep_restart_slave":{"d":true,"t":2,"a":[{"a":"wsrep_restart_slave","u":6,"t":2}]},"wsrep_retry_autocommit":{"d":false,"t":3,"a":[{"a":"wsrep_retry_autocommit","u":6,"t":2}]},"wsrep_slave_FK_checks":{"d":true,"t":2,"a":[{"a":"wsrep_slave_fk_checks","u":6,"t":2}]},"wsrep_slave_threads":{"d":true,"t":3,"a":[{"a":"wsrep_slave_threads","u":6,"t":2}]},"wsrep_slave_UK_checks":{"d":true,"t":2,"a":[{"a":"wsrep_slave_uk_checks","u":6,"t":2}]},"wsrep_sr_store":{"d":false,"a":[{"a":"wsrep_sr_store","u":6,"t":2}]},"wsrep_sst_auth":{"d":true,"t":1,"a":[{"a":"wsrep_sst_auth","u":6,"t":2}]},"wsrep_sst_donor":{"d":true,"t":1,"a":[{"a":"wsrep_sst_donor","u":6,"t":2}]},"wsrep_sst_donor_rejects_queries":{"d":true,"t":2,"a":[{"a":"wsrep_sst_donor_rejects_queries","u":6,"t":2}]},"wsrep_sst_method":{"d":true,"t":1,"a":[{"a":"wsrep_sst_method","u":6,"t":2}]},"wsrep_sst_receive_address":{"d":true,"t":1,"a":[{"a":"wsrep_sst_receive_address","u":6,"t":2}]},"wsrep_start_position":{"d":true,"t":1,"a":[{"a":"wsrep_start_position","u":6,"t":2}]},"wsrep_sync_wait":{"d":true,"t":3,"a":[{"a":"wsrep_sync_wait","u":6,"t":2}]},"wsrep_trx_fragment_size":{"d":true,"t":3,"a":[{"a":"wsrep_trx_fragment_size","u":6,"t":2}]},"wsrep_trx_fragment_unit":{"d":true,"a":[{"a":"wsrep_trx_fragment_unit","u":6,"t":2}]},"gtid_binlog_pos":{"d":false,"t":1,"a":[{"a":"gtid_binlog_pos","u":7,"t":2}]},"gtid_binlog_state":{"d":true,"t":1,"a":[{"a":"gtid_binlog_state","u":7,"t":2}]},"gtid_current_pos":{"d":false,"t":1,"a":[{"a":"gtid_current_pos","u":7,"t":2}]},"gtid_domain_id":{"d":true,"a":[{"a":"gtid_domain_id","u":7,"t":2}]},"last_gtid":{"d":false,"t":1,"a":[{"a":"last_gtid","u":7,"t":2}]},"server_id":{"d":true,"t":3,"a":[{"a":"server_id","u":7,"t":2},{"a":"server_id","u":8,"t":2},{"a":"sysvar_server_id","u":9,"t":1}]},"gtid_seq_no":{"d":true,"a":[{"a":"gtid_seq_no","u":7,"t":2}]},"gtid_ignore_duplicates":{"d":true,"t":2,"a":[{"a":"gtid_ignore_duplicates","u":7,"t":2}]},"gtid_pos_auto_engines":{"d":true,"t":1,"a":[{"a":"gtid_pos_auto_engines","u":7,"t":2}]},"gtid_cleanup_batch_size":{"d":true,"t":3,"a":[{"a":"gtid_cleanup_batch_size","u":7,"t":2}]},"Server_audit_active":{"t":2,"a":[{"a":"server_audit_active","u":10,"t":2}]},"Server_audit_current_log":{"t":1,"a":[{"a":"server_audit_current_log","u":10,"t":2}]},"Server_audit_last_error":{"t":1,"a":[{"a":"server_audit_last_error","u":10,"t":2}]},"Server_audit_writes_failed":{"t":3,"a":[{"a":"server_audit_writes_failed","u":10,"t":2}]},"server_audit_events":{"d":true,"t":1,"a":[{"a":"server_audit_events","u":11,"t":2}]},"server_audit_excl_users":{"d":true,"t":1,"a":[{"a":"server_audit_excl_users","u":11,"t":2}]},"server_audit_file_path":{"d":true,"t":1,"a":[{"a":"server_audit_file_path","u":11,"t":2}]},"server_audit_file_rotate_now":{"d":true,"t":2,"a":[{"a":"server_audit_file_rotate_now","u":11,"t":2}]},"server_audit_file_rotate_size":{"d":true,"t":3,"a":[{"a":"server_audit_file_rotate_size","u":11,"t":2}]},"server_audit_file_rotations":{"d":true,"t":3,"a":[{"a":"server_audit_file_rotations","u":11,"t":2}]},"server_audit_incl_users":{"d":true,"t":1,"a":[{"a":"server_audit_incl_users","u":11,"t":2}]},"server_audit_loc_info":{"d":false,"t":1,"a":[{"a":"server_audit_loc_info","u":11,"t":2}]},"server_audit_logging":{"d":true,"t":2,"a":[{"a":"server_audit_logging","u":11,"t":2}]},"server_audit_mode":{"a":[{"a":"server_audit_mode","u":11,"t":2}]},"server_audit_output_type":{"d":true,"a":[{"a":"server_audit_output_type","u":11,"t":2}]},"server_audit_query_log_limit":{"d":true,"t":3,"a":[{"a":"server_audit_query_log_limit","u":11,"t":2}]},"server_audit_syslog_facility":{"d":true,"a":[{"a":"server_audit_syslog_facility","u":11,"t":2}]},"server_audit_syslog_ident":{"d":true,"t":1,"a":[{"a":"server_audit_syslog_ident","u":11,"t":2}]},"server_audit_syslog_info":{"d":true,"t":1,"a":[{"a":"server_audit_syslog_info","u":11,"t":2}]},"server_audit_syslog_priority":{"d":true,"a":[{"a":"server_audit_syslog_priority","u":11,"t":2}]},"server_audit":{"a":[{"a":"server_audit","u":11,"t":2}]},"Mroonga_count_skip":{"t":3,"a":[{"a":"mroonga_count_skip","u":12,"t":2}]},"Mroonga_fast_order_limit":{"t":3,"a":[{"a":"mroonga_fast_order_limit","u":12,"t":2}]},"mroonga_action_on_fulltext_query_error":{"d":true,"a":[{"a":"mroonga_action_on_fulltext_query_error","u":13,"t":2}]},"mroonga_boolean_mode_syntax_flags":{"d":true,"a":[{"a":"mroonga_boolean_mode_syntax_flags","u":13,"t":2}]},"mroonga_database_path_prefix":{"d":true,"t":1,"a":[{"a":"mroonga_database_path_prefix","u":13,"t":2}]},"mroonga_default_parser":{"d":true,"t":1,"a":[{"a":"mroonga_default_parser","u":13,"t":2}]},"mroonga_default_tokenizer":{"d":true,"t":1,"a":[{"a":"mroonga_default_tokenizer","u":13,"t":2}]},"mroonga_default_wrapper_engine":{"d":false,"t":1,"a":[{"a":"mroonga_default_wrapper_engine","u":13,"t":2}]},"mroonga_dry_write":{"d":true,"t":2,"a":[{"a":"mroonga_dry_write","u":13,"t":2}]},"mroonga_enable_operations_recording":{"d":true,"t":2,"a":[{"a":"mroonga_enable_operations_recording","u":13,"t":2}]},"mroonga_enable_optimization":{"d":true,"t":2,"a":[{"a":"mroonga_enable_optimization","u":13,"t":2}]},"mroonga_libgroonga_embedded":{"d":false,"t":2,"a":[{"a":"mroonga_libgroonga_embedded","u":13,"t":2}]},"mroonga_libgroonga_support_lz4":{"d":false,"t":2,"a":[{"a":"mroonga_libgroonga_support_lz4","u":13,"t":2}]},"mroonga_libgroonga_support_zlib":{"d":false,"t":2,"a":[{"a":"mroonga_libgroonga_support_zlib","u":13,"t":2}]},"mroonga_libgroonga_support_zstd":{"d":false,"t":2,"a":[{"a":"mroonga_libgroonga_support_zstd","u":13,"t":2}]},"mroonga_libgroonga_version":{"d":false,"t":1,"a":[{"a":"mroonga_libgroonga_version","u":13,"t":2}]},"mroonga_lock_timeout":{"d":true,"t":3,"a":[{"a":"mroonga_lock_timeout","u":13,"t":2}]},"mroonga_log_file":{"d":true,"t":1,"a":[{"a":"mroonga_log_file","u":13,"t":2}]},"mroonga_log_level":{"d":true,"a":[{"a":"mroonga_log_level","u":13,"t":2}]},"mroonga_match_escalation_threshold":{"d":true,"t":3,"a":[{"a":"mroonga_match_escalation_threshold","u":13,"t":2}]},"mroonga_max_n_records_for_estimate":{"d":true,"t":3,"a":[{"a":"mroonga_max_n_records_for_estimate","u":13,"t":2}]},"mroonga_query_log_file":{"d":true,"t":1,"a":[{"a":"mroonga_query_log_file","u":13,"t":2}]},"mroonga_vector_column_delimiter":{"d":true,"t":1,"a":[{"a":"mroonga_vector_column_delimiter","u":13,"t":2}]},"mroonga_version":{"d":false,"t":1,"a":[{"a":"mroonga_version","u":13,"t":2}]},"key_buffer_size":{"d":true,"t":3,"a":[{"a":"key_buffer_size","u":14,"t":2},{"a":"sysvar_key_buffer_size","u":15,"t":1}]},"key_cache_age_threshold":{"d":true,"t":3,"a":[{"a":"key_cache_age_threshold","u":14,"t":2},{"a":"sysvar_key_cache_age_threshold","u":15,"t":1}]},"key_cache_block_size":{"d":true,"t":3,"a":[{"a":"key_cache_block_size","u":14,"t":2},{"a":"sysvar_key_cache_block_size","u":15,"t":1}]},"key_cache_division_limit":{"d":true,"t":3,"a":[{"a":"key_cache_division_limit","u":14,"t":2},{"a":"sysvar_key_cache_division_limit","u":15,"t":1}]},"key_cache_file_hash_size":{"d":true,"t":3,"a":[{"a":"key_cache_file_hash_size","u":14,"t":2}]},"key_cache_segments":{"d":true,"t":3,"a":[{"a":"key_cache_segments","u":14,"t":2}]},"myisam_block_size":{"t":3,"a":[{"a":"myisam_block_size","u":14,"t":2},{"a":"option_mysqld_myisam-block-size","u":16,"t":1}]},"myisam_data_pointer_size":{"d":true,"t":3,"a":[{"a":"myisam_data_pointer_size","u":14,"t":2},{"a":"sysvar_myisam_data_pointer_size","u":15,"t":1}]},"myisam_max_extra_sort_file_size":{"a":[{"a":"myisam_max_extra_sort_file_size","u":14,"t":2}]},"myisam_max_sort_file_size":{"d":true,"t":3,"a":[{"a":"myisam_max_sort_file_size","u":14,"t":2},{"a":"sysvar_myisam_max_sort_file_size","u":15,"t":1}]},"myisam_mmap_size":{"t":3,"a":[{"a":"myisam_mmap_size","u":14,"t":2},{"a":"sysvar_myisam_mmap_size","u":15,"t":1}]},"myisam_recover_options":{"d":false,"t":5,"a":[{"a":"myisam_recover_options","u":14,"t":2},{"a":"sysvar_myisam_recover_options","u":15,"t":1}]},"myisam_repair_threads":{"d":true,"t":3,"a":[{"a":"myisam_repair_threads","u":14,"t":2},{"a":"sysvar_myisam_repair_threads","u":15,"t":1}]},"myisam_sort_buffer_size":{"d":true,"t":3,"a":[{"a":"myisam_sort_buffer_size","u":14,"t":2},{"a":"sysvar_myisam_sort_buffer_size","u":15,"t":1}]},"myisam_stats_method":{"d":true,"t":5,"a":[{"a":"myisam_stats_method","u":14,"t":2},{"a":"sysvar_myisam_stats_method","u":15,"t":1}]},"myisam_use_mmap":{"d":true,"t":2,"a":[{"a":"myisam_use_mmap","u":14,"t":2},{"a":"sysvar_myisam_use_mmap","u":15,"t":1}]},"rocksdb_access_hint_on_compaction_start":{"d":false,"t":3,"a":[{"a":"rocksdb_access_hint_on_compaction_start","u":17,"t":2}]},"rocksdb_advise_random_on_open":{"d":false,"t":2,"a":[{"a":"rocksdb_advise_random_on_open","u":17,"t":2}]},"rocksdb_allow_concurrent_memtable_write":{"d":false,"t":2,"a":[{"a":"rocksdb_allow_concurrent_memtable_write","u":17,"t":2}]},"rocksdb_allow_mmap_reads":{"d":false,"t":2,"a":[{"a":"rocksdb_allow_mmap_reads","u":17,"t":2}]},"rocksdb_allow_mmap_writes":{"d":false,"t":2,"a":[{"a":"rocksdb_allow_mmap_writes","u":17,"t":2}]},"rocksdb_background_sync":{"d":false,"t":2,"a":[{"a":"rocksdb_background_sync","u":17,"t":2}]},"rocksdb_base_background_compactions":{"d":false,"t":3,"a":[{"a":"rocksdb_base_background_compactions","u":17,"t":2}]},"rocksdb_blind_delete_primary_key":{"d":true,"t":2,"a":[{"a":"rocksdb_blind_delete_primary_key","u":17,"t":2}]},"rocksdb_block_cache_size":{"d":false,"t":3,"a":[{"a":"rocksdb_block_cache_size","u":17,"t":2}]},"rocksdb_block_restart_interval":{"d":false,"t":3,"a":[{"a":"rocksdb_block_restart_interval","u":17,"t":2}]},"rocksdb_block_size":{"d":false,"t":3,"a":[{"a":"rocksdb_block_size","u":17,"t":2}]},"rocksdb_block_size_deviation":{"d":false,"t":3,"a":[{"a":"rocksdb_block_size_deviation","u":17,"t":2}]},"rocksdb_bulk_load":{"d":true,"t":2,"a":[{"a":"rocksdb_bulk_load","u":17,"t":2}]},"rocksdb_bulk_load_allow_unsorted":{"d":true,"t":2,"a":[{"a":"rocksdb_bulk_load_allow_unsorted","u":17,"t":2}]},"rocksdb_bulk_load_size":{"d":true,"t":3,"a":[{"a":"rocksdb_bulk_load_size","u":17,"t":2}]},"rocksdb_bytes_per_sync":{"d":false,"t":3,"a":[{"a":"rocksdb_bytes_per_sync","u":17,"t":2}]},"rocksdb_cache_index_and_filter_blocks":{"d":false,"t":2,"a":[{"a":"rocksdb_cache_index_and_filter_blocks","u":17,"t":2}]},"rocksdb_checksums_pct":{"d":true,"t":3,"a":[{"a":"rocksdb_checksums_pct","u":17,"t":2}]},"rocksdb_collect_sst_properties":{"d":false,"t":2,"a":[{"a":"rocksdb_collect_sst_properties","u":17,"t":2}]},"rocksdb_commit_in_the_middle":{"d":true,"t":2,"a":[{"a":"rocksdb_commit_in_the_middle","u":17,"t":2}]},"rocksdb_compact_cf":{"d":true,"t":1,"a":[{"a":"rocksdb_compact_cf","u":17,"t":2}]},"rocksdb_compaction_readahead_size":{"d":true,"t":3,"a":[{"a":"rocksdb_compaction_readahead_size","u":17,"t":2}]},"rocksdb_compaction_sequential_deletes":{"d":true,"t":3,"a":[{"a":"rocksdb_compaction_sequential_deletes","u":17,"t":2}]},"rocksdb_compaction_sequential_deletes_count_sd":{"d":true,"t":2,"a":[{"a":"rocksdb_compaction_sequential_deletes_count_sd","u":17,"t":2}]},"rocksdb_compaction_sequential_deletes_file_size":{"d":true,"t":3,"a":[{"a":"rocksdb_compaction_sequential_deletes_file_size","u":17,"t":2}]},"rocksdb_compaction_sequential_deletes_window":{"d":true,"t":3,"a":[{"a":"rocksdb_compaction_sequential_deletes_window","u":17,"t":2}]},"rocksdb_concurrent_prepare":{"d":false,"t":2,"a":[{"a":"rocksdb_concurrent_prepare","u":17,"t":2}]},"rocksdb_create_checkpoint":{"d":true,"t":1,"a":[{"a":"rocksdb_create_checkpoint","u":17,"t":2}]},"rocksdb_create_if_missing":{"d":false,"t":2,"a":[{"a":"rocksdb_create_if_missing","u":17,"t":2}]},"rocksdb_create_missing_column_families":{"d":false,"t":2,"a":[{"a":"rocksdb_create_missing_column_families","u":17,"t":2}]},"rocksdb_datadir":{"d":false,"t":1,"a":[{"a":"rocksdb_datadir","u":17,"t":2}]},"rocksdb_db_write_buffer_size":{"d":false,"t":3,"a":[{"a":"rocksdb_db_write_buffer_size","u":17,"t":2}]},"rocksdb_deadlock_detect":{"d":true,"t":2,"a":[{"a":"rocksdb_deadlock_detect","u":17,"t":2}]},"rocksdb_deadlock_detect_depth":{"d":true,"t":3,"a":[{"a":"rocksdb_deadlock_detect_depth","u":17,"t":2}]},"rocksdb_debug_optimizer_no_zero_cardinality":{"d":true,"t":2,"a":[{"a":"rocksdb_debug_optimizer_no_zero_cardinality","u":17,"t":2}]},"rocksdb_debug_ttl_ignore_pk":{"d":true,"t":2,"a":[{"a":"rocksdb_debug_ttl_ignore_pk","u":17,"t":2}]},"rocksdb_debug_ttl_read_filter_ts":{"d":true,"t":3,"a":[{"a":"rocksdb_debug_ttl_read_filter_ts","u":17,"t":2}]},"rocksdb_debug_ttl_rec_ts":{"d":true,"t":3,"a":[{"a":"rocksdb_debug_ttl_rec_ts","u":17,"t":2}]},"rocksdb_debug_ttl_snapshot_ts":{"d":true,"t":3,"a":[{"a":"rocksdb_debug_ttl_snapshot_ts","u":17,"t":2}]},"rocksdb_default_cf_options":{"d":false,"t":1,"a":[{"a":"rocksdb_default_cf_options","u":17,"t":2}]},"rocksdb_delayed_write_rate":{"d":true,"t":3,"a":[{"a":"rocksdb_delayed_write_rate","u":17,"t":2}]},"rocksdb_delete_obsolete_files_period_micros":{"d":false,"t":3,"a":[{"a":"rocksdb_delete_obsolete_files_period_micros","u":17,"t":2}]},"rocksdb_enable_2pc":{"d":true,"t":2,"a":[{"a":"rocksdb_enable_2pc","u":17,"t":2}]},"rocksdb_enable_bulk_load_api":{"d":false,"t":2,"a":[{"a":"rocksdb_enable_bulk_load_api","u":17,"t":2}]},"rocksdb_enable_thread_tracking":{"d":false,"t":2,"a":[{"a":"rocksdb_enable_thread_tracking","u":17,"t":2}]},"rocksdb_enable_ttl":{"d":true,"t":2,"a":[{"a":"rocksdb_enable_ttl","u":17,"t":2}]},"rocksdb_enable_ttl_read_filtering":{"d":true,"t":2,"a":[{"a":"rocksdb_enable_ttl_read_filtering","u":17,"t":2}]},"rocksdb_enable_write_thread_adaptive_yield":{"d":true,"t":2,"a":[{"a":"rocksdb_enable_write_thread_adaptive_yield","u":17,"t":2}]},"rocksdb_error_if_exists":{"d":false,"t":2,"a":[{"a":"rocksdb_error_if_exists","u":17,"t":2}]},"rocksdb_flush_log_at_trx_commit":{"d":true,"t":3,"a":[{"a":"rocksdb_flush_log_at_trx_commit","u":17,"t":2}]},"rocksdb_flush_memtable_on_analyze":{"d":true,"t":2,"a":[{"a":"rocksdb_flush_memtable_on_analyze","u":17,"t":2}]},"rocksdb_force_compute_memtable_stats":{"d":true,"t":2,"a":[{"a":"rocksdb_force_compute_memtable_stats","u":17,"t":2}]},"rocksdb_force_compute_memtable_stats_cachetime":{"d":true,"t":3,"a":[{"a":"rocksdb_force_compute_memtable_stats_cachetime","u":17,"t":2}]},"rocksdb_force_flush_memtable_and_lzero_now":{"d":true,"t":2,"a":[{"a":"rocksdb_force_flush_memtable_and_lzero_now","u":17,"t":2}]},"rocksdb_force_flush_memtable_now":{"d":true,"t":2,"a":[{"a":"rocksdb_force_flush_memtable_now","u":17,"t":2}]},"rocksdb_force_index_records_in_range":{"d":true,"t":3,"a":[{"a":"rocksdb_force_index_records_in_range","u":17,"t":2}]},"rocksdb_git_hash":{"d":false,"t":1,"a":[{"a":"rocksdb_git_hash","u":17,"t":2}]},"rocksdb_hash_index_allow_collision":{"d":false,"t":2,"a":[{"a":"rocksdb_hash_index_allow_collision","u":17,"t":2}]},"rocksdb_index_type":{"d":false,"a":[{"a":"rocksdb_index_type","u":17,"t":2}]},"rocksdb_info_log_level":{"d":true,"a":[{"a":"rocksdb_info_log_level","u":17,"t":2}]},"rocksdb_io_write_timeout":{"d":true,"t":3,"a":[{"a":"rocksdb_io_write_timeout","u":17,"t":2}]},"rocksdb_is_fd_close_on_exec":{"d":false,"t":2,"a":[{"a":"rocksdb_is_fd_close_on_exec","u":17,"t":2}]},"rocksdb_keep_log_file_num":{"d":false,"t":3,"a":[{"a":"rocksdb_keep_log_file_num","u":17,"t":2}]},"rocksdb_large_prefix":{"d":true,"t":2,"a":[{"a":"rocksdb_large_prefix","u":17,"t":2}]},"rocksdb_lock_scanned_rows":{"d":true,"t":2,"a":[{"a":"rocksdb_lock_scanned_rows","u":17,"t":2}]},"rocksdb_lock_wait_timeout":{"d":true,"t":3,"a":[{"a":"rocksdb_lock_wait_timeout","u":17,"t":2}]},"rocksdb_log_file_time_to_roll":{"d":false,"t":3,"a":[{"a":"rocksdb_log_file_time_to_roll","u":17,"t":2}]},"rocksdb_manifest_preallocation_size":{"d":false,"t":3,"a":[{"a":"rocksdb_manifest_preallocation_size","u":17,"t":2}]},"rocksdb_manual_wal_flush":{"d":false,"t":2,"a":[{"a":"rocksdb_manual_wal_flush","u":17,"t":2}]},"rocksdb_master_skip_tx_api":{"d":true,"t":2,"a":[{"a":"rocksdb_master_skip_tx_api","u":17,"t":2}]},"rocksdb_max_background_compactions":{"d":true,"t":3,"a":[{"a":"rocksdb_max_background_compactions","u":17,"t":2}]},"rocksdb_max_background_flushes":{"d":false,"t":3,"a":[{"a":"rocksdb_max_background_flushes","u":17,"t":2}]},"rocksdb_max_background_jobs":{"d":true,"t":3,"a":[{"a":"rocksdb_max_background_jobs","u":17,"t":2}]},"rocksdb_max_latest_deadlocks":{"d":true,"t":3,"a":[{"a":"rocksdb_max_latest_deadlocks","u":17,"t":2}]},"rocksdb_max_log_file_size":{"d":false,"t":3,"a":[{"a":"rocksdb_max_log_file_size","u":17,"t":2}]},"rocksdb_max_manifest_file_size":{"d":false,"t":3,"a":[{"a":"rocksdb_max_manifest_file_size","u":17,"t":2}]},"rocksdb_max_open_files":{"d":false,"t":3,"a":[{"a":"rocksdb_max_open_files","u":17,"t":2}]},"rocksdb_max_row_locks":{"d":true,"t":3,"a":[{"a":"rocksdb_max_row_locks","u":17,"t":2}]},"rocksdb_max_subcompactions":{"d":false,"t":3,"a":[{"a":"rocksdb_max_subcompactions","u":17,"t":2}]},"rocksdb_max_total_wal_size":{"d":false,"t":3,"a":[{"a":"rocksdb_max_total_wal_size","u":17,"t":2}]},"rocksdb_merge_buf_size":{"d":true,"t":3,"a":[{"a":"rocksdb_merge_buf_size","u":17,"t":2}]},"rocksdb_merge_combine_read_size":{"d":true,"t":3,"a":[{"a":"rocksdb_merge_combine_read_size","u":17,"t":2}]},"rocksdb_merge_tmp_file_removal_delay_ms":{"d":true,"t":3,"a":[{"a":"rocksdb_merge_tmp_file_removal_delay_ms","u":17,"t":2}]},"rocksdb_new_table_reader_for_compaction_inputs":{"d":false,"t":2,"a":[{"a":"rocksdb_new_table_reader_for_compaction_inputs","u":17,"t":2}]},"rocksdb_no_block_cache":{"d":false,"t":2,"a":[{"a":"rocksdb_no_block_cache","u":17,"t":2}]},"rocksdb_override_cf_options":{"d":false,"t":1,"a":[{"a":"rocksdb_override_cf_options","u":17,"t":2}]},"rocksdb_paranoid_checks":{"d":false,"t":2,"a":[{"a":"rocksdb_paranoid_checks","u":17,"t":2}]},"rocksdb_pause_background_work":{"d":true,"t":2,"a":[{"a":"rocksdb_pause_background_work","u":17,"t":2}]},"rocksdb_perf_context_level":{"d":true,"t":3,"a":[{"a":"rocksdb_perf_context_level","u":17,"t":2}]},"rocksdb_persistent_cache_path":{"d":false,"t":1,"a":[{"a":"rocksdb_persistent_cache_path","u":17,"t":2}]},"rocksdb_persistent_cache_size_mb":{"d":false,"t":3,"a":[{"a":"rocksdb_persistent_cache_size_mb","u":17,"t":2}]},"rocksdb_pin_l0_filter_and_index_blocks_in_cache":{"d":false,"t":2,"a":[{"a":"rocksdb_pin_l0_filter_and_index_blocks_in_cache","u":17,"t":2}]},"rocksdb_print_snapshot_conflict_queries":{"d":true,"t":2,"a":[{"a":"rocksdb_print_snapshot_conflict_queries","u":17,"t":2}]},"rocksdb_rate_limiter_bytes_per_sec":{"d":true,"t":3,"a":[{"a":"rocksdb_rate_limiter_bytes_per_sec","u":17,"t":2}]},"rocksdb_read_free_rpl_tables":{"d":true,"t":1,"a":[{"a":"rocksdb_read_free_rpl_tables","u":17,"t":2}]},"rocksdb_records_in_range":{"d":true,"t":3,"a":[{"a":"rocksdb_records_in_range","u":17,"t":2}]},"rocksdb_reset_stats":{"d":true,"t":2,"a":[{"a":"rocksdb_reset_stats","u":17,"t":2}]},"rocksdb_seconds_between_stat_computes":{"d":true,"t":3,"a":[{"a":"rocksdb_seconds_between_stat_computes","u":17,"t":2}]},"rocksdb_signal_drop_index_thread":{"d":true,"t":2,"a":[{"a":"rocksdb_signal_drop_index_thread","u":17,"t":2}]},"rocksdb_sim_cache_size":{"d":false,"t":3,"a":[{"a":"rocksdb_sim_cache_size","u":17,"t":2}]},"rocksdb_skip_bloom_filter_on_read":{"d":true,"t":2,"a":[{"a":"rocksdb_skip_bloom_filter_on_read","u":17,"t":2}]},"rocksdb_skip_fill_cache":{"d":true,"t":2,"a":[{"a":"rocksdb_skip_fill_cache","u":17,"t":2}]},"rocksdb_skip_unique_check_tables":{"d":true,"t":1,"a":[{"a":"rocksdb_skip_unique_check_tables","u":17,"t":2}]},"rocksdb_sst_mgr_rate_bytes_per_sec":{"d":true,"t":3,"a":[{"a":"rocksdb_sst_mgr_rate_bytes_per_sec","u":17,"t":2}]},"rocksdb_stats_dump_period_sec":{"d":false,"t":3,"a":[{"a":"rocksdb_stats_dump_period_sec","u":17,"t":2}]},"rocksdb_store_row_debug_checksums":{"d":true,"t":2,"a":[{"a":"rocksdb_store_row_debug_checksums","u":17,"t":2}]},"rocksdb_strict_collation_check":{"d":true,"t":2,"a":[{"a":"rocksdb_strict_collation_check","u":17,"t":2}]},"rocksdb_strict_collation_exceptions":{"d":true,"t":1,"a":[{"a":"rocksdb_strict_collation_exceptions","u":17,"t":2}]},"rocksdb_supported_compression_types":{"d":false,"t":1,"a":[{"a":"rocksdb_supported_compression_types","u":17,"t":2}]},"rocksdb_table_cache_numshardbits":{"d":false,"t":3,"a":[{"a":"rocksdb_table_cache_numshardbits","u":17,"t":2}]},"rocksdb_table_stats_sampling_pct":{"d":true,"t":3,"a":[{"a":"rocksdb_table_stats_sampling_pct","u":17,"t":2}]},"rocksdb_tmpdir":{"d":true,"t":1,"a":[{"a":"rocksdb_tmpdir","u":17,"t":2}]},"rocksdb_trace_sst_api":{"d":true,"t":2,"a":[{"a":"rocksdb_trace_sst_api","u":17,"t":2}]},"rocksdb_unsafe_for_binlog":{"d":true,"t":2,"a":[{"a":"rocksdb_unsafe_for_binlog","u":17,"t":2}]},"rocksdb_update_cf_options":{"d":true,"a":[{"a":"rocksdb_update_cf_options","u":17,"t":2}]},"rocksdb_use_adaptive_mutex":{"d":false,"t":2,"a":[{"a":"rocksdb_use_adaptive_mutex","u":17,"t":2}]},"rocksdb_use_clock_cache":{"d":false,"t":2,"a":[{"a":"rocksdb_use_clock_cache","u":17,"t":2}]},"rocksdb_use_direct_io_for_flush_and_compaction":{"d":false,"t":2,"a":[{"a":"rocksdb_use_direct_io_for_flush_and_compaction","u":17,"t":2}]},"rocksdb_use_direct_reads":{"d":false,"t":2,"a":[{"a":"rocksdb_use_direct_reads","u":17,"t":2}]},"rocksdb_use_direct_writes":{"d":false,"t":2,"a":[{"a":"rocksdb_use_direct_writes","u":17,"t":2}]},"rocksdb_use_fsync":{"d":false,"t":2,"a":[{"a":"rocksdb_use_fsync","u":17,"t":2}]},"rocksdb_validate_tables":{"d":false,"t":3,"a":[{"a":"rocksdb_validate_tables","u":17,"t":2}]},"rocksdb_verify_row_debug_checksums":{"d":true,"t":2,"a":[{"a":"rocksdb_verify_row_debug_checksums","u":17,"t":2}]},"rocksdb_wal_bytes_per_sync":{"d":false,"t":3,"a":[{"a":"rocksdb_wal_bytes_per_sync","u":17,"t":2}]},"rocksdb_wal_dir":{"d":false,"t":1,"a":[{"a":"rocksdb_wal_dir","u":17,"t":2}]},"rocksdb_wal_recovery_mode":{"d":true,"t":3,"a":[{"a":"rocksdb_wal_recovery_mode","u":17,"t":2}]},"rocksdb_wal_size_limit_mb":{"d":false,"t":3,"a":[{"a":"rocksdb_wal_size_limit_mb","u":17,"t":2}]},"rocksdb_wal_ttl_seconds":{"d":false,"t":3,"a":[{"a":"rocksdb_wal_ttl_seconds","u":17,"t":2}]},"rocksdb_whole_key_filtering":{"d":false,"t":2,"a":[{"a":"rocksdb_whole_key_filtering","u":17,"t":2}]},"rocksdb_write_batch_max_bytes":{"d":true,"t":3,"a":[{"a":"rocksdb_write_batch_max_bytes","u":17,"t":2}]},"rocksdb_write_disable_wal":{"d":true,"t":2,"a":[{"a":"rocksdb_write_disable_wal","u":17,"t":2}]},"rocksdb_write_ignore_missing_column_families":{"d":true,"t":2,"a":[{"a":"rocksdb_write_ignore_missing_column_families","u":17,"t":2}]},"oqgraph_allow_create_integer_latch":{"d":true,"t":2,"a":[{"a":"oqgraph_allow_create_integer_latch","u":18,"t":2}]},"Oqgraph_boost_version":{"t":1,"a":[{"a":"oqgraph_boost_version","u":18,"t":2}]},"Oqgraph_compat_mode":{"t":1,"a":[{"a":"oqgraph_compat_mode","u":18,"t":2}]},"Oqgraph_verbose_debug":{"t":1,"a":[{"a":"oqgraph_verbose_debug","u":18,"t":2}]},"performance_schema":{"d":false,"t":2,"a":[{"a":"performance_schema","u":19,"t":2},{"a":"sysvar_performance_schema","u":20,"t":1}]},"performance_schema_accounts_size":{"d":false,"t":3,"a":[{"a":"performance_schema_accounts_size","u":19,"t":2},{"a":"sysvar_performance_schema_accounts_size","u":20,"t":1}]},"performance_schema_digests_size":{"d":false,"t":3,"a":[{"a":"performance_schema_digests_size","u":19,"t":2},{"a":"sysvar_performance_schema_digests_size","u":20,"t":1}]},"performance_schema_events_stages_history_long_size":{"d":false,"t":3,"a":[{"a":"performance_schema_events_stages_history_long_size","u":19,"t":2},{"a":"sysvar_performance_schema_events_stages_history_long_size","u":20,"t":1}]},"performance_schema_events_stages_history_size":{"d":false,"t":3,"a":[{"a":"performance_schema_events_stages_history_size","u":19,"t":2},{"a":"sysvar_performance_schema_events_stages_history_size","u":20,"t":1}]},"performance_schema_events_statements_history_long_size":{"d":false,"t":3,"a":[{"a":"performance_schema_events_statements_history_long_size","u":19,"t":2},{"a":"sysvar_performance_schema_events_statements_history_long_size","u":20,"t":1}]},"performance_schema_events_statements_history_size":{"d":false,"t":3,"a":[{"a":"performance_schema_events_statements_history_size","u":19,"t":2},{"a":"sysvar_performance_schema_events_statements_history_size","u":20,"t":1}]},"performance_schema_events_waits_history_long_size":{"d":false,"t":3,"a":[{"a":"performance_schema_events_waits_history_long_size","u":19,"t":2},{"a":"sysvar_performance_schema_events_waits_history_long_size","u":20,"t":1}]},"performance_schema_events_waits_history_size":{"d":false,"t":3,"a":[{"a":"performance_schema_events_waits_history_size","u":19,"t":2},{"a":"sysvar_performance_schema_events_waits_history_size","u":20,"t":1}]},"performance_schema_hosts_size":{"d":false,"t":3,"a":[{"a":"performance_schema_hosts_size","u":19,"t":2},{"a":"sysvar_performance_schema_hosts_size","u":20,"t":1}]},"performance_schema_max_cond_classes":{"d":false,"t":3,"a":[{"a":"performance_schema_max_cond_classes","u":19,"t":2},{"a":"sysvar_performance_schema_max_cond_classes","u":20,"t":1}]},"performance_schema_max_cond_instances":{"d":false,"t":3,"a":[{"a":"performance_schema_max_cond_instances","u":19,"t":2},{"a":"sysvar_performance_schema_max_cond_instances","u":20,"t":1}]},"performance_schema_max_digest_length":{"d":false,"t":3,"a":[{"a":"performance_schema_max_digest_length","u":19,"t":2},{"a":"sysvar_performance_schema_max_digest_length","u":20,"t":1}]},"performance_schema_max_file_classes":{"d":false,"t":3,"a":[{"a":"performance_schema_max_file_classes","u":19,"t":2},{"a":"sysvar_performance_schema_max_file_classes","u":20,"t":1}]},"performance_schema_max_file_handles":{"d":false,"t":3,"a":[{"a":"performance_schema_max_file_handles","u":19,"t":2},{"a":"sysvar_performance_schema_max_file_handles","u":20,"t":1}]},"performance_schema_max_file_instances":{"d":false,"t":3,"a":[{"a":"performance_schema_max_file_instances","u":19,"t":2},{"a":"sysvar_performance_schema_max_file_instances","u":20,"t":1}]},"performance_schema_max_mutex_classes":{"d":false,"t":3,"a":[{"a":"performance_schema_max_mutex_classes","u":19,"t":2},{"a":"sysvar_performance_schema_max_mutex_classes","u":20,"t":1}]},"performance_schema_max_mutex_instances":{"d":false,"t":3,"a":[{"a":"performance_schema_max_mutex_instances","u":19,"t":2},{"a":"sysvar_performance_schema_max_mutex_instances","u":20,"t":1}]},"performance_schema_max_rwlock_classes":{"d":false,"t":3,"a":[{"a":"performance_schema_max_rwlock_classes","u":19,"t":2},{"a":"sysvar_performance_schema_max_rwlock_classes","u":20,"t":1}]},"performance_schema_max_rwlock_instances":{"d":false,"t":3,"a":[{"a":"performance_schema_max_rwlock_instances","u":19,"t":2},{"a":"sysvar_performance_schema_max_rwlock_instances","u":20,"t":1}]},"performance_schema_max_socket_classes":{"d":false,"t":3,"a":[{"a":"performance_schema_max_socket_classes","u":19,"t":2},{"a":"sysvar_performance_schema_max_socket_classes","u":20,"t":1}]},"performance_schema_max_socket_instances":{"d":false,"t":3,"a":[{"a":"performance_schema_max_socket_instances","u":19,"t":2},{"a":"sysvar_performance_schema_max_socket_instances","u":20,"t":1}]},"performance_schema_max_stage_classes":{"d":false,"t":3,"a":[{"a":"performance_schema_max_stage_classes","u":19,"t":2},{"a":"sysvar_performance_schema_max_stage_classes","u":20,"t":1}]},"performance_schema_max_statement_classes":{"d":false,"t":3,"a":[{"a":"performance_schema_max_statement_classes","u":19,"t":2},{"a":"sysvar_performance_schema_max_statement_classes","u":20,"t":1}]},"performance_schema_max_table_handles":{"d":false,"t":3,"a":[{"a":"performance_schema_max_table_handles","u":19,"t":2},{"a":"sysvar_performance_schema_max_table_handles","u":20,"t":1}]},"performance_schema_max_table_instances":{"d":false,"t":3,"a":[{"a":"performance_schema_max_table_instances","u":19,"t":2},{"a":"sysvar_performance_schema_max_table_instances","u":20,"t":1}]},"performance_schema_max_thread_classes":{"d":false,"t":3,"a":[{"a":"performance_schema_max_thread_classes","u":19,"t":2},{"a":"sysvar_performance_schema_max_thread_classes","u":20,"t":1}]},"performance_schema_max_thread_instances":{"d":false,"t":3,"a":[{"a":"performance_schema_max_thread_instances","u":19,"t":2},{"a":"sysvar_performance_schema_max_thread_instances","u":20,"t":1}]},"performance_schema_session_connect_attrs_size":{"d":false,"t":3,"a":[{"a":"performance_schema_session_connect_attrs_size","u":19,"t":2},{"a":"sysvar_performance_schema_session_connect_attrs_size","u":20,"t":1}]},"performance_schema_setup_actors_size":{"d":false,"t":3,"a":[{"a":"performance_schema_setup_actors_size","u":19,"t":2},{"a":"sysvar_performance_schema_setup_actors_size","u":20,"t":1}]},"performance_schema_setup_objects_size":{"d":false,"t":3,"a":[{"a":"performance_schema_setup_objects_size","u":19,"t":2},{"a":"sysvar_performance_schema_setup_objects_size","u":20,"t":1}]},"performance_schema_users_size":{"d":false,"t":3,"a":[{"a":"performance_schema_users_size","u":19,"t":2},{"a":"sysvar_performance_schema_users_size","u":20,"t":1}]},"auto_increment_increment":{"d":true,"t":3,"a":[{"a":"auto_increment_increment","u":8,"t":2},{"a":"sysvar_auto_increment_increment","u":21,"t":1}]},"auto_increment_offset":{"d":true,"t":3,"a":[{"a":"auto_increment_offset","u":8,"t":2},{"a":"sysvar_auto_increment_offset","u":21,"t":1}]},"binlog_annotate_row_events":{"d":true,"t":2,"a":[{"a":"binlog_annotate_row_events","u":8,"t":2}]},"binlog_cache_size":{"d":true,"t":3,"a":[{"a":"binlog_cache_size","u":8,"t":2},{"a":"sysvar_binlog_cache_size","u":22,"t":1},{"a":"sysvar_binlog_cache_size","u":23,"t":1}]},"binlog_checksum":{"d":true,"t":1,"a":[{"a":"binlog_checksum","u":8,"t":2},{"a":"option_mysqld_binlog-checksum","u":22,"t":1},{"a":"sysvar_binlog_checksum","u":22,"t":1},{"a":"option_mysqld_binlog-checksum","u":23,"t":1},{"a":"sysvar_binlog_checksum","u":23,"t":1}]},"binlog_commit_wait_count":{"d":true,"t":3,"a":[{"a":"binlog_commit_wait_count","u":8,"t":2}]},"binlog_commit_wait_usec":{"d":true,"t":3,"a":[{"a":"binlog_commit_wait_usec","u":8,"t":2}]},"binlog_direct_non_transactional_updates":{"d":true,"t":2,"a":[{"a":"binlog_direct_non_transactional_updates","u":8,"t":2},{"a":"sysvar_binlog_direct_non_transactional_updates","u":22,"t":1},{"a":"sysvar_binlog_direct_non_transactional_updates","u":23,"t":1}]},"binlog_file_cache_size":{"d":true,"t":3,"a":[{"a":"binlog_file_cache_size","u":8,"t":2}]},"binlog_format":{"d":true,"t":5,"a":[{"a":"binlog_format","u":8,"t":2},{"a":"sysvar_binlog_format","u":22,"t":1},{"a":"sysvar_binlog_format","u":23,"t":1}]},"binlog_optimize_thread_scheduling":{"d":false,"t":2,"a":[{"a":"binlog_optimize_thread_scheduling","u":8,"t":2}]},"binlog_row_image":{"d":true,"t":5,"a":[{"a":"binlog_row_image","u":8,"t":2},{"a":"sysvar_binlog_row_image","u":22,"t":1},{"a":"sysvar_binlog_row_image","u":23,"t":1}]},"binlog_row_metadata":{"d":true,"t":5,"a":[{"a":"binlog_row_metadata","u":8,"t":2},{"a":"sysvar_binlog_row_metadata","u":22,"t":1}]},"binlog_stmt_cache_size":{"d":true,"t":3,"a":[{"a":"binlog_stmt_cache_size","u":8,"t":2},{"a":"sysvar_binlog_stmt_cache_size","u":22,"t":1},{"a":"sysvar_binlog_stmt_cache_size","u":23,"t":1}]},"default_master_connection":{"d":true,"t":1,"a":[{"a":"default_master_connection","u":8,"t":2}]},"encrypt_binlog":{"d":false,"t":2,"a":[{"a":"encrypt_binlog","u":8,"t":2}]},"expire_logs_days":{"d":true,"t":3,"a":[{"a":"expire_logs_days","u":8,"t":2},{"a":"sysvar_expire_logs_days","u":22,"t":1},{"a":"sysvar_expire_logs_days","u":23,"t":1}]},"init_slave":{"d":true,"t":1,"a":[{"a":"init_slave","u":8,"t":2},{"a":"sysvar_init_slave","u":24,"t":1}]},"log_bin":{"d":false,"t":2,"a":[{"a":"log_bin","u":8,"t":2},{"a":"option_mysqld_log-bin","u":22,"t":1},{"a":"sysvar_log_bin","u":22,"t":1},{"a":"option_mysqld_log-bin","u":23,"t":1},{"a":"sysvar_log_bin","u":23,"t":1}]},"log_bin_basename":{"d":false,"t":8,"a":[{"a":"log_bin_basename","u":8,"t":2},{"a":"sysvar_log_bin_basename","u":22,"t":1},{"a":"sysvar_log_bin_basename","u":23,"t":1}]},"log_bin_compress":{"d":true,"t":2,"a":[{"a":"log_bin_compress","u":8,"t":2}]},"log_bin_compress_min_len":{"d":true,"t":3,"a":[{"a":"log_bin_compress_min_len","u":8,"t":2}]},"log_bin_index":{"d":false,"t":8,"a":[{"a":"log_bin_index","u":8,"t":2},{"a":"option_mysqld_log-bin-index","u":22,"t":1},{"a":"sysvar_log_bin_index","u":22,"t":1},{"a":"option_mysqld_log-bin-index","u":23,"t":1},{"a":"sysvar_log_bin_index","u":23,"t":1}]},"log_bin_trust_function_creators":{"d":true,"t":2,"a":[{"a":"log_bin_trust_function_creators","u":8,"t":2},{"a":"sysvar_log_bin_trust_function_creators","u":22,"t":1},{"a":"sysvar_log_bin_trust_function_creators","u":23,"t":1}]},"log_slow_slave_statements":{"d":true,"t":2,"a":[{"a":"log_slow_slave_statements","u":8,"t":2},{"a":"sysvar_log_slow_slave_statements","u":24,"t":1}]},"log_slave_updates":{"d":false,"t":2,"a":[{"a":"log_slave_updates","u":8,"t":2},{"a":"sysvar_log_slave_updates","u":22,"t":1},{"a":"sysvar_log_slave_updates","u":23,"t":1}]},"master_verify_checksum":{"d":true,"t":2,"a":[{"a":"master_verify_checksum","u":8,"t":2},{"a":"sysvar_master_verify_checksum","u":22,"t":1},{"a":"sysvar_master_verify_checksum","u":23,"t":1}]},"max_binlog_cache_size":{"d":true,"t":3,"a":[{"a":"max_binlog_cache_size","u":8,"t":2},{"a":"sysvar_max_binlog_cache_size","u":22,"t":1},{"a":"sysvar_max_binlog_cache_size","u":23,"t":1}]},"max_binlog_size":{"d":true,"t":3,"a":[{"a":"max_binlog_size","u":8,"t":2},{"a":"sysvar_max_binlog_size","u":22,"t":1},{"a":"sysvar_max_binlog_size","u":23,"t":1}]},"max_binlog_stmt_cache_size":{"d":true,"t":3,"a":[{"a":"max_binlog_stmt_cache_size","u":8,"t":2},{"a":"sysvar_max_binlog_stmt_cache_size","u":22,"t":1},{"a":"sysvar_max_binlog_stmt_cache_size","u":23,"t":1}]},"max_relay_log_size":{"d":true,"t":3,"a":[{"a":"max_relay_log_size","u":8,"t":2},{"a":"option_mysqld_max-relay-log-size","u":24,"t":1},{"a":"sysvar_max_relay_log_size","u":24,"t":1}]},"read_binlog_speed_limit":{"d":true,"t":3,"a":[{"a":"read_binlog_speed_limit","u":8,"t":2}]},"relay_log":{"d":false,"t":8,"a":[{"a":"relay_log","u":8,"t":2},{"a":"sysvar_relay_log","u":24,"t":1}]},"relay_log_basename":{"d":false,"a":[{"a":"relay_log_basename","u":8,"t":2},{"a":"sysvar_relay_log_basename","u":24,"t":1}]},"relay_log_index":{"d":false,"a":[{"a":"relay_log_index","u":8,"t":2},{"a":"sysvar_relay_log_index","u":24,"t":1}]},"relay_log_info_file":{"d":false,"a":[{"a":"relay_log_info_file","u":8,"t":2},{"a":"sysvar_relay_log_info_file","u":24,"t":1}]},"relay_log_purge":{"d":true,"t":2,"a":[{"a":"relay_log_purge","u":8,"t":2},{"a":"option_mysqld_relay-log-purge","u":24,"t":1},{"a":"sysvar_relay_log_purge","u":24,"t":1}]},"relay_log_recovery":{"t":2,"a":[{"a":"relay_log_recovery","u":8,"t":2},{"a":"sysvar_relay_log_recovery","u":24,"t":1}]},"relay_log_space_limit":{"d":false,"t":3,"a":[{"a":"relay_log_space_limit","u":8,"t":2},{"a":"option_mysqld_relay-log-space-limit","u":24,"t":1},{"a":"sysvar_relay_log_space_limit","u":24,"t":1}]},"replicate_annotate_row_events":{"d":false,"t":2,"a":[{"a":"replicate_annotate_row_events","u":8,"t":2}]},"replicate_do_db":{"t":1,"a":[{"a":"replicate_do_db","u":8,"t":2},{"a":"option_mysqld_replicate-do-db","u":24,"t":1}]},"replicate_do_table":{"t":1,"a":[{"a":"replicate_do_table","u":8,"t":2},{"a":"option_mysqld_replicate-do-table","u":24,"t":1}]},"replicate_events_marked_for_skip":{"d":true,"t":5,"a":[{"a":"replicate_events_marked_for_skip","u":8,"t":2}]},"replicate_ignore_db":{"t":1,"a":[{"a":"replicate_ignore_db","u":8,"t":2},{"a":"option_mysqld_replicate-ignore-db","u":24,"t":1}]},"replicate_ignore_table":{"t":1,"a":[{"a":"replicate_ignore_table","u":8,"t":2},{"a":"option_mysqld_replicate-ignore-table","u":24,"t":1}]},"replicate_rewrite_db":{"t":1,"a":[{"a":"replicate_rewrite_db","u":8,"t":2},{"a":"option_mysqld_replicate-rewrite-db","u":24,"t":1}]},"replicate_wild_do_table":{"t":1,"a":[{"a":"replicate_wild_do_table","u":8,"t":2},{"a":"option_mysqld_replicate-wild-do-table","u":24,"t":1}]},"replicate_wild_ignore_table":{"t":1,"a":[{"a":"replicate_wild_ignore_table","u":8,"t":2},{"a":"option_mysqld_replicate-wild-ignore-table","u":24,"t":1}]},"report_host":{"d":false,"t":1,"a":[{"a":"report_host","u":8,"t":2},{"a":"sysvar_report_host","u":24,"t":1}]},"report_password":{"d":false,"t":1,"a":[{"a":"report_password","u":8,"t":2},{"a":"sysvar_report_password","u":24,"t":1}]},"report_port":{"d":false,"t":3,"a":[{"a":"report_port","u":8,"t":2},{"a":"sysvar_report_port","u":24,"t":1}]},"report_user":{"d":false,"t":1,"a":[{"a":"report_user","u":8,"t":2},{"a":"sysvar_report_user","u":24,"t":1}]},"skip_parallel_replication":{"d":true,"t":2,"a":[{"a":"skip_parallel_replication","u":8,"t":2}]},"skip_replication":{"d":true,"t":2,"a":[{"a":"skip_replication","u":8,"t":2}]},"slave_compressed_protocol":{"d":true,"t":2,"a":[{"a":"slave_compressed_protocol","u":8,"t":2},{"a":"sysvar_slave_compressed_protocol","u":24,"t":1}]},"slave_ddl_exec_mode":{"d":true,"t":5,"a":[{"a":"slave_ddl_exec_mode","u":8,"t":2}]},"slave_domain_parallel_threads":{"d":true,"t":3,"a":[{"a":"slave_domain_parallel_threads","u":8,"t":2}]},"slave_exec_mode":{"d":true,"t":5,"a":[{"a":"slave_exec_mode","u":8,"t":2},{"a":"sysvar_slave_exec_mode","u":24,"t":1}]},"slave_load_tmpdir":{"d":false,"a":[{"a":"slave_load_tmpdir","u":8,"t":2},{"a":"sysvar_slave_load_tmpdir","u":24,"t":1}]},"slave_max_allowed_packet":{"d":true,"t":3,"a":[{"a":"slave_max_allowed_packet","u":8,"t":2},{"a":"sysvar_slave_max_allowed_packet","u":24,"t":1}]},"slave_net_timeout":{"d":true,"t":3,"a":[{"a":"slave_net_timeout","u":8,"t":2},{"a":"sysvar_slave_net_timeout","u":24,"t":1}]},"slave_parallel_max_queued":{"d":true,"t":3,"a":[{"a":"slave_parallel_max_queued","u":8,"t":2}]},"slave_parallel_mode":{"d":false,"a":[{"a":"slave_parallel_mode","u":8,"t":2}]},"slave_parallel_threads":{"d":true,"t":3,"a":[{"a":"slave_parallel_threads","u":8,"t":2}]},"slave_parallel_workers":{"d":true,"t":3,"a":[{"a":"slave_parallel_workers","u":8,"t":2},{"a":"sysvar_slave_parallel_workers","u":24,"t":1}]},"slave_run_triggers_for_rbr":{"a":[{"a":"slave_run_triggers_for_rbr","u":8,"t":2}]},"slave_skip_errors":{"d":false,"t":1,"a":[{"a":"slave_skip_errors","u":8,"t":2},{"a":"option_mysqld_slave-skip-errors","u":24,"t":1},{"a":"sysvar_slave_skip_errors","u":24,"t":1}]},"slave_sql_verify_checksum":{"d":true,"t":2,"a":[{"a":"slave_sql_verify_checksum","u":8,"t":2},{"a":"option_mysqld_slave-sql-verify-checksum","u":24,"t":1},{"a":"sysvar_slave_sql_verify_checksum","u":24,"t":1}]},"slave_transaction_retries":{"d":true,"t":3,"a":[{"a":"slave_transaction_retries","u":8,"t":2},{"a":"sysvar_slave_transaction_retries","u":24,"t":1}]},"slave_transaction_retry_errors":{"d":false,"t":1,"a":[{"a":"slave_transaction_retry_errors","u":8,"t":2}]},"slave_transaction_retry_interval":{"d":true,"t":3,"a":[{"a":"slave_transaction_retry_interval","u":8,"t":2}]},"slave_type_conversions":{"t":6,"a":[{"a":"slave_type_conversions","u":8,"t":2},{"a":"sysvar_slave_type_conversions","u":24,"t":1}]},"sql_log_bin":{"d":true,"t":2,"a":[{"a":"sql_log_bin","u":8,"t":2},{"a":"sysvar_sql_log_bin","u":22,"t":1},{"a":"sysvar_sql_log_bin","u":23,"t":1}]},"sql_slave_skip_counter":{"d":true,"t":3,"a":[{"a":"sql_slave_skip_counter","u":8,"t":2},{"a":"sysvar_sql_slave_skip_counter","u":24,"t":1}]},"sync_binlog":{"d":true,"t":3,"a":[{"a":"sync_binlog","u":8,"t":2},{"a":"sysvar_sync_binlog","u":22,"t":1},{"a":"sysvar_sync_binlog","u":23,"t":1}]},"sync_master_info":{"d":true,"t":3,"a":[{"a":"sync_master_info","u":8,"t":2},{"a":"sysvar_sync_master_info","u":24,"t":1}]},"sync_relay_log":{"d":true,"t":3,"a":[{"a":"sync_relay_log","u":8,"t":2},{"a":"sysvar_sync_relay_log","u":24,"t":1}]},"sync_relay_log_info":{"d":true,"t":3,"a":[{"a":"sync_relay_log_info","u":8,"t":2},{"a":"sysvar_sync_relay_log_info","u":24,"t":1}]},"Binlog_bytes_written":{"t":3,"a":[{"a":"binlog_bytes_written","u":25,"t":2}]},"Binlog_cache_disk_use":{"t":3,"a":[{"a":"binlog_cache_disk_use","u":25,"t":2}]},"Binlog_cache_use":{"t":3,"a":[{"a":"binlog_cache_use","u":25,"t":2}]},"Binlog_commits":{"t":3,"a":[{"a":"binlog_commits","u":25,"t":2}]},"Binlog_group_commit_trigger_count":{"t":3,"a":[{"a":"binlog_group_commit_trigger_count","u":25,"t":2}]},"Binlog_group_commit_trigger_lock_wait":{"t":3,"a":[{"a":"binlog_group_commit_trigger_lock_wait","u":25,"t":2}]},"Binlog_group_commit_trigger_timeout":{"t":3,"a":[{"a":"binlog_group_commit_trigger_timeout","u":25,"t":2}]},"Binlog_group_commits":{"t":3,"a":[{"a":"binlog_group_commits","u":25,"t":2}]},"Binlog_snapshot_file":{"t":1,"a":[{"a":"binlog_snapshot_file","u":25,"t":2}]},"Binlog_snapshot_position":{"t":3,"a":[{"a":"binlog_snapshot_position","u":25,"t":2}]},"Binlog_stmt_cache_disk_use":{"t":3,"a":[{"a":"binlog_stmt_cache_disk_use","u":25,"t":2}]},"Binlog_stmt_cache_use":{"t":3,"a":[{"a":"binlog_stmt_cache_use","u":25,"t":2}]},"Com_change_master":{"t":3,"a":[{"a":"com_change_master","u":25,"t":2}]},"Com_show_master_status":{"t":3,"a":[{"a":"com_show_master_status","u":25,"t":2}]},"Com_show_new_master":{"t":3,"a":[{"a":"com_show_new_master","u":25,"t":2}]},"Com_show_slave_hosts":{"t":3,"a":[{"a":"com_show_slave_hosts","u":25,"t":2}]},"Com_show_slave_status":{"t":3,"a":[{"a":"com_show_slave_status","u":25,"t":2}]},"Com_slave_start":{"t":3,"a":[{"a":"com_slave_start","u":25,"t":2}]},"Com_slave_stop":{"t":3,"a":[{"a":"com_slave_stop","u":25,"t":2}]},"Com_start_all_slaves":{"t":3,"a":[{"a":"com_start_all_slaves","u":25,"t":2}]},"Com_start_slave":{"t":3,"a":[{"a":"com_start_slave","u":25,"t":2}]},"Com_stop_all_slaves":{"t":3,"a":[{"a":"com_stop_all_slaves","u":25,"t":2}]},"Com_stop_slave":{"t":3,"a":[{"a":"com_stop_slave","u":25,"t":2}]},"Master_gtid_wait_count":{"t":3,"a":[{"a":"master_gtid_wait_count","u":25,"t":2}]},"Master_gtid_wait_time":{"t":3,"a":[{"a":"master_gtid_wait_time","u":25,"t":2}]},"Master_gtid_wait_timeouts":{"t":3,"a":[{"a":"master_gtid_wait_timeouts","u":25,"t":2}]},"Rpl_status":{"a":[{"a":"rpl_status","u":25,"t":2}]},"Rpl_transactions_multi_engine":{"t":3,"a":[{"a":"rpl_transactions_multi_engine","u":25,"t":2}]},"Slave_connections":{"t":3,"a":[{"a":"slave_connections","u":25,"t":2}]},"Slave_heartbeat_period":{"t":3,"a":[{"a":"slave_heartbeat_period","u":25,"t":2}]},"Slave_open_temp_tables":{"t":3,"a":[{"a":"slave_open_temp_tables","u":25,"t":2}]},"Slave_received_heartbeats":{"t":3,"a":[{"a":"slave_received_heartbeats","u":25,"t":2}]},"Slave_retried_transactions":{"t":3,"a":[{"a":"slave_retried_transactions","u":25,"t":2}]},"Slave_running":{"t":3,"a":[{"a":"slave_running","u":25,"t":2}]},"Slave_skipped_errors":{"t":3,"a":[{"a":"slave_skipped_errors","u":25,"t":2}]},"Slaves_connected":{"t":3,"a":[{"a":"slaves_connected","u":25,"t":2}]},"Slaves_running":{"t":3,"a":[{"a":"slaves_running","u":25,"t":2}]},"Transactions_gtid_foreign_engine":{"t":3,"a":[{"a":"transactions_gtid_foreign_engine","u":25,"t":2}]},"Transactions_multi_engine":{"t":3,"a":[{"a":"transactions_multi_engine","u":25,"t":2}]},"Rpl_semi_sync_master_clients":{"t":3,"a":[{"a":"rpl_semi_sync_master_clients","u":26,"t":2}]},"Rpl_semi_sync_master_net_avg_wait_time":{"t":3,"a":[{"a":"rpl_semi_sync_master_net_avg_wait_time","u":26,"t":2}]},"Rpl_semi_sync_master_net_wait_time":{"t":3,"a":[{"a":"rpl_semi_sync_master_net_wait_time","u":26,"t":2}]},"Rpl_semi_sync_master_net_waits":{"t":3,"a":[{"a":"rpl_semi_sync_master_net_waits","u":26,"t":2}]},"Rpl_semi_sync_master_no_times":{"t":3,"a":[{"a":"rpl_semi_sync_master_no_times","u":26,"t":2}]},"Rpl_semi_sync_master_no_tx":{"t":3,"a":[{"a":"rpl_semi_sync_master_no_tx","u":26,"t":2}]},"Rpl_semi_sync_master_status":{"t":2,"a":[{"a":"rpl_semi_sync_master_status","u":26,"t":2}]},"Rpl_semi_sync_master_timefunc_failures":{"t":3,"a":[{"a":"rpl_semi_sync_master_timefunc_failures","u":26,"t":2}]},"Rpl_semi_sync_master_tx_avg_wait_time":{"t":3,"a":[{"a":"rpl_semi_sync_master_tx_avg_wait_time","u":26,"t":2}]},"Rpl_semi_sync_master_tx_wait_time":{"t":3,"a":[{"a":"rpl_semi_sync_master_tx_wait_time","u":26,"t":2}]},"Rpl_semi_sync_master_tx_waits":{"t":3,"a":[{"a":"rpl_semi_sync_master_tx_waits","u":26,"t":2}]},"Rpl_semi_sync_master_wait_pos_backtraverse":{"t":3,"a":[{"a":"rpl_semi_sync_master_wait_pos_backtraverse","u":26,"t":2}]},"Rpl_semi_sync_master_wait_sessions":{"t":3,"a":[{"a":"rpl_semi_sync_master_wait_sessions","u":26,"t":2}]},"Rpl_semi_sync_master_yes_tx":{"t":3,"a":[{"a":"rpl_semi_sync_master_yes_tx","u":26,"t":2}]},"Rpl_semi_sync_slave_status":{"t":2,"a":[{"a":"rpl_semi_sync_slave_status","u":26,"t":2}]},"rpl_semi_sync_master_enabled":{"d":true,"t":2,"a":[{"a":"rpl_semi_sync_master_enabled","u":27,"t":2},{"a":"sysvar_rpl_semi_sync_master_enabled","u":21,"t":1}]},"rpl_semi_sync_master_timeout":{"d":true,"t":3,"a":[{"a":"rpl_semi_sync_master_timeout","u":27,"t":2},{"a":"sysvar_rpl_semi_sync_master_timeout","u":21,"t":1}]},"rpl_semi_sync_master_trace_level":{"d":true,"t":3,"a":[{"a":"rpl_semi_sync_master_trace_level","u":27,"t":2},{"a":"sysvar_rpl_semi_sync_master_trace_level","u":21,"t":1}]},"rpl_semi_sync_master_wait_no_slave":{"d":true,"t":2,"a":[{"a":"rpl_semi_sync_master_wait_no_slave","u":27,"t":2},{"a":"sysvar_rpl_semi_sync_master_wait_no_slave","u":21,"t":1}]},"rpl_semi_sync_master_wait_point":{"d":true,"t":5,"a":[{"a":"rpl_semi_sync_master_wait_point","u":27,"t":2},{"a":"sysvar_rpl_semi_sync_master_wait_point","u":21,"t":1}]},"rpl_semi_sync_slave_delay_master":{"d":true,"t":2,"a":[{"a":"rpl_semi_sync_slave_delay_master","u":27,"t":2}]},"rpl_semi_sync_slave_enabled":{"d":true,"t":2,"a":[{"a":"rpl_semi_sync_slave_enabled","u":27,"t":2},{"a":"sysvar_rpl_semi_sync_slave_enabled","u":24,"t":1}]},"rpl_semi_sync_slave_kill_conn_timeout":{"d":true,"t":3,"a":[{"a":"rpl_semi_sync_slave_kill_conn_timeout","u":27,"t":2}]},"rpl_semi_sync_slave_trace_level":{"d":true,"t":3,"a":[{"a":"rpl_semi_sync_slave_trace_level","u":27,"t":2},{"a":"sysvar_rpl_semi_sync_slave_trace_level","u":24,"t":1}]},"rpl_semi_sync_master":{"a":[{"a":"rpl_semi_sync_master","u":27,"t":2}]},"rpl_semi_sync_slave":{"a":[{"a":"rpl_semi_sync_slave","u":27,"t":2}]},"Aborted_clients":{"t":3,"a":[{"a":"aborted_clients","u":28,"t":2}]},"Aborted_connects":{"t":3,"a":[{"a":"aborted_connects","u":28,"t":2}]},"Aborted_connects_preauth":{"t":3,"a":[{"a":"aborted_connects_preauth","u":28,"t":2}]},"Access_denied_errors":{"t":3,"a":[{"a":"access_denied_errors","u":28,"t":2}]},"Acl_column_grants":{"t":3,"a":[{"a":"acl_column_grants","u":28,"t":2}]},"Acl_database_grants":{"t":3,"a":[{"a":"acl_database_grants","u":28,"t":2}]},"Acl_function_grants":{"t":3,"a":[{"a":"acl_function_grants","u":28,"t":2}]},"Acl_package_body_grants":{"t":3,"a":[{"a":"acl_package_body_grants","u":28,"t":2}]},"Acl_package_spec_grants":{"t":3,"a":[{"a":"acl_package_spec_grants","u":28,"t":2}]},"Acl_procedure_grants":{"t":3,"a":[{"a":"acl_procedure_grants","u":28,"t":2}]},"Acl_proxy_users":{"t":3,"a":[{"a":"acl_proxy_users","u":28,"t":2}]},"Acl_role_grants":{"t":3,"a":[{"a":"acl_role_grants","u":28,"t":2}]},"Acl_roles":{"t":3,"a":[{"a":"acl_roles","u":28,"t":2}]},"Acl_table_grants":{"t":3,"a":[{"a":"acl_table_grants","u":28,"t":2}]},"Acl_users":{"t":3,"a":[{"a":"acl_users","u":28,"t":2}]},"Busy_time":{"t":3,"a":[{"a":"busy_time","u":28,"t":2}]},"Bytes_received":{"t":3,"a":[{"a":"bytes_received","u":28,"t":2}]},"Bytes_sent":{"t":3,"a":[{"a":"bytes_sent","u":28,"t":2}]},"Com_admin_commands":{"t":3,"a":[{"a":"com_admin_commands","u":28,"t":2}]},"Com_alter_db":{"t":3,"a":[{"a":"com_alter_db","u":28,"t":2}]},"Com_alter_db_upgrade":{"t":3,"a":[{"a":"com_alter_db_upgrade","u":28,"t":2}]},"Com_alter_event":{"t":3,"a":[{"a":"com_alter_event","u":28,"t":2}]},"Com_alter_function":{"t":3,"a":[{"a":"com_alter_function","u":28,"t":2}]},"Com_alter_procedure":{"t":3,"a":[{"a":"com_alter_procedure","u":28,"t":2}]},"Com_alter_sequence":{"t":3,"a":[{"a":"com_alter_sequence","u":28,"t":2}]},"Com_alter_server":{"t":3,"a":[{"a":"com_alter_server","u":28,"t":2}]},"Com_alter_table":{"t":3,"a":[{"a":"com_alter_table","u":28,"t":2}]},"Com_alter_tablespace":{"t":3,"a":[{"a":"com_alter_tablespace","u":28,"t":2}]},"Com_alter_user":{"t":3,"a":[{"a":"com_alter_user","u":28,"t":2}]},"Com_analyze":{"t":3,"a":[{"a":"com_analyze","u":28,"t":2}]},"Com_assign_to_keycache":{"t":3,"a":[{"a":"com_assign_to_keycache","u":28,"t":2}]},"Com_backup":{"t":3,"a":[{"a":"com_backup","u":28,"t":2}]},"Com_backup_lock":{"t":3,"a":[{"a":"com_backup_lock","u":28,"t":2}]},"Com_backup_table":{"t":3,"a":[{"a":"com_backup_table","u":28,"t":2}]},"Com_begin":{"t":3,"a":[{"a":"com_begin","u":28,"t":2}]},"Com_binlog":{"t":3,"a":[{"a":"com_binlog","u":28,"t":2}]},"Com_call_procedure":{"t":3,"a":[{"a":"com_call_procedure","u":28,"t":2}]},"Com_change_db":{"t":3,"a":[{"a":"com_change_db","u":28,"t":2}]},"Com_check":{"t":3,"a":[{"a":"com_check","u":28,"t":2}]},"Com_checksum":{"t":3,"a":[{"a":"com_checksum","u":28,"t":2}]},"Com_commit":{"t":3,"a":[{"a":"com_commit","u":28,"t":2}]},"Com_compound_sql":{"t":3,"a":[{"a":"com_compound_sql","u":28,"t":2}]},"Com_create_db":{"t":3,"a":[{"a":"com_create_db","u":28,"t":2}]},"Com_create_event":{"t":3,"a":[{"a":"com_create_event","u":28,"t":2}]},"Com_create_function":{"t":3,"a":[{"a":"com_create_function","u":28,"t":2}]},"Com_create_index":{"t":3,"a":[{"a":"com_create_index","u":28,"t":2}]},"Com_create_package":{"t":3,"a":[{"a":"com_create_package","u":28,"t":2}]},"Com_create_package_body":{"t":3,"a":[{"a":"com_create_package_body","u":28,"t":2}]},"Com_create_procedure":{"t":3,"a":[{"a":"com_create_procedure","u":28,"t":2}]},"Com_create_role":{"t":3,"a":[{"a":"com_create_role","u":28,"t":2}]},"Com_create_sequence":{"t":3,"a":[{"a":"com_create_sequence","u":28,"t":2}]},"Com_create_server":{"t":3,"a":[{"a":"com_create_server","u":28,"t":2}]},"Com_create_table":{"t":3,"a":[{"a":"com_create_table","u":28,"t":2}]},"Com_create_temporary_table":{"t":3,"a":[{"a":"com_create_temporary_table","u":28,"t":2}]},"Com_create_trigger":{"t":3,"a":[{"a":"com_create_trigger","u":28,"t":2}]},"Com_create_udf":{"t":3,"a":[{"a":"com_create_udf","u":28,"t":2}]},"Com_create_user":{"t":3,"a":[{"a":"com_create_user","u":28,"t":2}]},"Com_create_view":{"t":3,"a":[{"a":"com_create_view","u":28,"t":2}]},"Com_dealloc_sql":{"t":3,"a":[{"a":"com_dealloc_sql","u":28,"t":2}]},"Com_delete":{"t":3,"a":[{"a":"com_delete","u":28,"t":2}]},"Com_delete_multi":{"t":3,"a":[{"a":"com_delete_multi","u":28,"t":2}]},"Com_do":{"t":3,"a":[{"a":"com_do","u":28,"t":2}]},"Com_drop_db":{"t":3,"a":[{"a":"com_drop_db","u":28,"t":2}]},"Com_drop_event":{"t":3,"a":[{"a":"com_drop_event","u":28,"t":2}]},"Com_drop_function":{"t":3,"a":[{"a":"com_drop_function","u":28,"t":2}]},"Com_drop_index":{"t":3,"a":[{"a":"com_drop_index","u":28,"t":2}]},"Com_drop_package":{"t":3,"a":[{"a":"com_drop_package","u":28,"t":2}]},"Com_drop_package_body":{"t":3,"a":[{"a":"com_drop_package_body","u":28,"t":2}]},"Com_drop_procedure":{"t":3,"a":[{"a":"com_drop_procedure","u":28,"t":2}]},"Com_drop_role":{"t":3,"a":[{"a":"com_drop_role","u":28,"t":2}]},"Com_drop_sequence":{"t":3,"a":[{"a":"com_drop_sequence","u":28,"t":2}]},"Com_drop_server":{"t":3,"a":[{"a":"com_drop_server","u":28,"t":2}]},"Com_drop_table":{"t":3,"a":[{"a":"com_drop_table","u":28,"t":2}]},"Com_drop_temporary_table":{"t":3,"a":[{"a":"com_drop_temporary_table","u":28,"t":2}]},"Com_drop_trigger":{"t":3,"a":[{"a":"com_drop_trigger","u":28,"t":2}]},"Com_drop_user":{"t":3,"a":[{"a":"com_drop_user","u":28,"t":2}]},"Com_drop_view":{"t":3,"a":[{"a":"com_drop_view","u":28,"t":2}]},"Com_empty_query":{"t":3,"a":[{"a":"com_empty_query","u":28,"t":2}]},"Com_execute_immediate":{"t":3,"a":[{"a":"com_execute_immediate","u":28,"t":2}]},"Com_execute_sql":{"t":3,"a":[{"a":"com_execute_sql","u":28,"t":2}]},"Com_flush":{"t":3,"a":[{"a":"com_flush","u":28,"t":2}]},"Com_get_diagnostics":{"t":3,"a":[{"a":"com_get_diagnostics","u":28,"t":2}]},"Com_grant":{"t":3,"a":[{"a":"com_grant","u":28,"t":2}]},"Com_grant_role":{"t":3,"a":[{"a":"com_grant_role","u":28,"t":2}]},"Com_ha_close":{"t":3,"a":[{"a":"com_ha_close","u":28,"t":2}]},"Com_ha_open":{"t":3,"a":[{"a":"com_ha_open","u":28,"t":2}]},"Com_ha_read":{"t":3,"a":[{"a":"com_ha_read","u":28,"t":2}]},"Com_help":{"t":3,"a":[{"a":"com_help","u":28,"t":2}]},"Com_insert":{"t":3,"a":[{"a":"com_insert","u":28,"t":2}]},"Com_insert_select":{"t":3,"a":[{"a":"com_insert_select","u":28,"t":2}]},"Com_install_plugin":{"t":3,"a":[{"a":"com_install_plugin","u":28,"t":2}]},"Com_kill":{"t":3,"a":[{"a":"com_kill","u":28,"t":2}]},"Com_load":{"t":3,"a":[{"a":"com_load","u":28,"t":2}]},"Com_load_master_data":{"t":3,"a":[{"a":"com_load_master_data","u":28,"t":2}]},"Com_load_master_table":{"t":3,"a":[{"a":"com_load_master_table","u":28,"t":2}]},"Com_multi":{"t":3,"a":[{"a":"com_multi","u":28,"t":2}]},"Com_lock_tables":{"t":3,"a":[{"a":"com_lock_tables","u":28,"t":2}]},"Com_optimize":{"t":3,"a":[{"a":"com_optimize","u":28,"t":2}]},"Com_preload_keys":{"t":3,"a":[{"a":"com_preload_keys","u":28,"t":2}]},"Com_prepare_sql":{"t":3,"a":[{"a":"com_prepare_sql","u":28,"t":2}]},"Com_purge":{"t":3,"a":[{"a":"com_purge","u":28,"t":2}]},"Com_purge_before_date":{"t":3,"a":[{"a":"com_purge_before_date","u":28,"t":2}]},"Com_release_savepoint":{"t":3,"a":[{"a":"com_release_savepoint","u":28,"t":2}]},"Com_rename_table":{"t":3,"a":[{"a":"com_rename_table","u":28,"t":2}]},"Com_rename_user":{"t":3,"a":[{"a":"com_rename_user","u":28,"t":2}]},"Com_repair":{"t":3,"a":[{"a":"com_repair","u":28,"t":2}]},"Com_replace":{"t":3,"a":[{"a":"com_replace","u":28,"t":2}]},"Com_replace_select":{"t":3,"a":[{"a":"com_replace_select","u":28,"t":2}]},"Com_reset":{"t":3,"a":[{"a":"com_reset","u":28,"t":2}]},"Com_resignal":{"t":3,"a":[{"a":"com_resignal","u":28,"t":2}]},"Com_restore_table":{"t":3,"a":[{"a":"com_restore_table","u":28,"t":2}]},"Com_revoke":{"t":3,"a":[{"a":"com_revoke","u":28,"t":2}]},"Com_revoke_all":{"t":3,"a":[{"a":"com_revoke_all","u":28,"t":2}]},"Com_revoke_grant":{"t":3,"a":[{"a":"com_revoke_grant","u":28,"t":2}]},"Com_rollback":{"t":3,"a":[{"a":"com_rollback","u":28,"t":2}]},"Com_rollback_to_savepoint":{"t":3,"a":[{"a":"com_rollback_to_savepoint","u":28,"t":2}]},"Com_savepoint":{"t":3,"a":[{"a":"com_savepoint","u":28,"t":2}]},"Com_select":{"t":3,"a":[{"a":"com_select","u":28,"t":2}]},"Com_set_option":{"t":3,"a":[{"a":"com_set_option","u":28,"t":2}]},"Com_signal":{"t":3,"a":[{"a":"com_signal","u":28,"t":2}]},"Com_show_authors":{"t":3,"a":[{"a":"com_show_authors","u":28,"t":2}]},"Com_show_binlog_events":{"t":3,"a":[{"a":"com_show_binlog_events","u":28,"t":2}]},"Com_show_binlogs":{"t":3,"a":[{"a":"com_show_binlogs","u":28,"t":2}]},"Com_show_charsets":{"t":3,"a":[{"a":"com_show_charsets","u":28,"t":2}]},"Com_show_client_statistics":{"t":3,"a":[{"a":"com_show_client_statistics","u":28,"t":2}]},"Com_show_collations":{"t":3,"a":[{"a":"com_show_collations","u":28,"t":2}]},"Com_show_column_types":{"t":3,"a":[{"a":"com_show_column_types","u":28,"t":2}]},"Com_show_contributors":{"t":3,"a":[{"a":"com_show_contributors","u":28,"t":2}]},"Com_show_create_db":{"t":3,"a":[{"a":"com_show_create_db","u":28,"t":2}]},"Com_show_create_event":{"t":3,"a":[{"a":"com_show_create_event","u":28,"t":2}]},"Com_show_create_func":{"t":3,"a":[{"a":"com_show_create_func","u":28,"t":2}]},"Com_show_create_package":{"t":3,"a":[{"a":"com_show_create_package","u":28,"t":2}]},"Com_show_create_package_body":{"t":3,"a":[{"a":"com_show_create_package_body","u":28,"t":2}]},"Com_show_create_proc":{"t":3,"a":[{"a":"com_show_create_proc","u":28,"t":2}]},"Com_show_create_table":{"t":3,"a":[{"a":"com_show_create_table","u":28,"t":2}]},"Com_show_create_trigger":{"t":3,"a":[{"a":"com_show_create_trigger","u":28,"t":2}]},"Com_show_create_user":{"t":3,"a":[{"a":"com_show_create_user","u":28,"t":2}]},"Com_show_databases":{"t":3,"a":[{"a":"com_show_databases","u":28,"t":2}]},"Com_show_engine_logs":{"t":3,"a":[{"a":"com_show_engine_logs","u":28,"t":2}]},"Com_show_engine_mutex":{"t":3,"a":[{"a":"com_show_engine_mutex","u":28,"t":2}]},"Com_show_engine_status":{"t":3,"a":[{"a":"com_show_engine_status","u":28,"t":2}]},"Com_show_events":{"t":3,"a":[{"a":"com_show_events","u":28,"t":2}]},"Com_show_errors":{"t":3,"a":[{"a":"com_show_errors","u":28,"t":2}]},"Com_show_explain":{"t":3,"a":[{"a":"com_show_explain","u":28,"t":2}]},"Com_show_fields":{"t":3,"a":[{"a":"com_show_fields","u":28,"t":2}]},"Com_show_function_status":{"t":3,"a":[{"a":"com_show_function_status","u":28,"t":2}]},"Com_show_generic":{"t":3,"a":[{"a":"com_show_generic","u":28,"t":2}]},"Com_show_grants":{"t":3,"a":[{"a":"com_show_grants","u":28,"t":2}]},"Com_show_keys":{"t":3,"a":[{"a":"com_show_keys","u":28,"t":2}]},"Com_show_index_statistics":{"t":3,"a":[{"a":"com_show_index_statistics","u":28,"t":2}]},"Com_show_open_tables":{"t":3,"a":[{"a":"com_show_open_tables","u":28,"t":2}]},"Com_show_package_status":{"t":3,"a":[{"a":"com_show_package_status","u":28,"t":2}]},"Com_show_package_body_status":{"t":3,"a":[{"a":"com_show_package_body_status","u":28,"t":2}]},"Com_show_plugins":{"t":3,"a":[{"a":"com_show_plugins","u":28,"t":2}]},"Com_show_privileges":{"t":3,"a":[{"a":"com_show_privileges","u":28,"t":2}]},"Com_show_procedure_status":{"t":3,"a":[{"a":"com_show_procedure_status","u":28,"t":2}]},"Com_show_processlist":{"t":3,"a":[{"a":"com_show_processlist","u":28,"t":2}]},"Com_show_profile":{"t":3,"a":[{"a":"com_show_profile","u":28,"t":2}]},"Com_show_profiles":{"t":3,"a":[{"a":"com_show_profiles","u":28,"t":2}]},"Com_show_relaylog_events":{"t":3,"a":[{"a":"com_show_relaylog_events","u":28,"t":2}]},"Com_show_status":{"t":3,"a":[{"a":"com_show_status","u":28,"t":2}]},"Com_show_storage_engines":{"t":3,"a":[{"a":"com_show_storage_engines","u":28,"t":2}]},"Com_show_table_statistics":{"t":3,"a":[{"a":"com_show_table_statistics","u":28,"t":2}]},"Com_show_table_status":{"t":3,"a":[{"a":"com_show_table_status","u":28,"t":2}]},"Com_show_tables":{"t":3,"a":[{"a":"com_show_tables","u":28,"t":2}]},"Com_show_triggers":{"t":3,"a":[{"a":"com_show_triggers","u":28,"t":2}]},"Com_show_user_statistics":{"t":3,"a":[{"a":"com_show_user_statistics","u":28,"t":2}]},"Com_show_variable":{"t":3,"a":[{"a":"com_show_variable","u":28,"t":2}]},"Com_show_warnings":{"t":3,"a":[{"a":"com_show_warnings","u":28,"t":2}]},"Com_shutdown":{"t":3,"a":[{"a":"com_shutdown","u":28,"t":2}]},"Com_stmt_close":{"t":3,"a":[{"a":"com_stmt_close","u":28,"t":2}]},"Com_stmt_execute":{"t":3,"a":[{"a":"com_stmt_execute","u":28,"t":2}]},"Com_stmt_fetch":{"t":3,"a":[{"a":"com_stmt_fetch","u":28,"t":2}]},"Com_stmt_prepare":{"t":3,"a":[{"a":"com_stmt_prepare","u":28,"t":2}]},"Com_stmt_reprepare":{"t":3,"a":[{"a":"com_stmt_reprepare","u":28,"t":2}]},"Com_stmt_reset":{"t":3,"a":[{"a":"com_stmt_reset","u":28,"t":2}]},"Com_stmt_send_long_data":{"t":3,"a":[{"a":"com_stmt_send_long_data","u":28,"t":2}]},"Com_truncate":{"t":3,"a":[{"a":"com_truncate","u":28,"t":2}]},"Com_uninstall_plugin":{"t":3,"a":[{"a":"com_uninstall_plugin","u":28,"t":2}]},"Com_unlock_tables":{"t":3,"a":[{"a":"com_unlock_tables","u":28,"t":2}]},"Com_update":{"t":3,"a":[{"a":"com_update","u":28,"t":2}]},"Com_update_multi":{"t":3,"a":[{"a":"com_update_multi","u":28,"t":2}]},"Com_xa_commit":{"t":3,"a":[{"a":"com_xa_commit","u":28,"t":2}]},"Com_xa_end":{"t":3,"a":[{"a":"com_xa_end","u":28,"t":2}]},"Com_xa_prepare":{"t":3,"a":[{"a":"com_xa_prepare","u":28,"t":2}]},"Com_xa_recover":{"t":3,"a":[{"a":"com_xa_recover","u":28,"t":2}]},"Com_xa_rollback":{"t":3,"a":[{"a":"com_xa_rollback","u":28,"t":2}]},"Com_xa_start":{"t":3,"a":[{"a":"com_xa_start","u":28,"t":2}]},"Compression":{"t":2,"a":[{"a":"compression","u":28,"t":2}]},"Connection_errors_accept":{"t":3,"a":[{"a":"connection_errors_accept","u":28,"t":2}]},"Connection_errors_internal":{"t":3,"a":[{"a":"connection_errors_internal","u":28,"t":2}]},"Connection_errors_max_connections":{"t":3,"a":[{"a":"connection_errors_max_connections","u":28,"t":2}]},"Connection_errors_peer_address":{"t":3,"a":[{"a":"connection_errors_peer_address","u":28,"t":2}]},"Connection_errors_select":{"t":3,"a":[{"a":"connection_errors_select","u":28,"t":2}]},"Connection_errors_tcpwrap":{"t":3,"a":[{"a":"connection_errors_tcpwrap","u":28,"t":2}]},"Connections":{"t":3,"a":[{"a":"connections","u":28,"t":2}]},"Cpu_time":{"t":3,"a":[{"a":"cpu_time","u":28,"t":2}]},"Created_tmp_disk_tables":{"t":3,"a":[{"a":"created_tmp_disk_tables","u":28,"t":2}]},"Created_tmp_files":{"t":3,"a":[{"a":"created_tmp_files","u":28,"t":2}]},"Created_tmp_tables":{"t":3,"a":[{"a":"created_tmp_tables","u":28,"t":2}]},"Delayed_errors":{"t":3,"a":[{"a":"delayed_errors","u":28,"t":2}]},"Delayed_insert_threads":{"t":3,"a":[{"a":"delayed_insert_threads","u":28,"t":2}]},"Delayed_writes":{"t":3,"a":[{"a":"delayed_writes","u":28,"t":2}]},"Delete_scan":{"t":3,"a":[{"a":"delete_scan","u":28,"t":2}]},"Empty_queries":{"t":3,"a":[{"a":"empty_queries","u":28,"t":2}]},"Executed_events":{"t":3,"a":[{"a":"executed_events","u":28,"t":2}]},"Executed_triggers":{"t":3,"a":[{"a":"executed_triggers","u":28,"t":2}]},"Feature_application_time_periods":{"t":3,"a":[{"a":"feature_application_time_periods","u":28,"t":2}]},"Feature_check_constraint":{"t":3,"a":[{"a":"feature_check_constraint","u":28,"t":2}]},"Feature_custom_aggregate_functions":{"t":3,"a":[{"a":"feature_custom_aggregate_functions","u":28,"t":2}]},"Feature_delay_key_write":{"t":3,"a":[{"a":"feature_delay_key_write","u":28,"t":2}]},"Feature_dynamic_columns":{"t":3,"a":[{"a":"feature_dynamic_columns","u":28,"t":2}]},"Feature_fulltext":{"t":3,"a":[{"a":"feature_fulltext","u":28,"t":2}]},"Feature_gis":{"t":3,"a":[{"a":"feature_gis","u":28,"t":2}]},"Feature_invisible_columns":{"t":3,"a":[{"a":"feature_invisible_columns","u":28,"t":2}]},"Feature_json":{"t":3,"a":[{"a":"feature_json","u":28,"t":2}]},"Feature_locale":{"t":3,"a":[{"a":"feature_locale","u":28,"t":2}]},"Feature_subquery":{"t":3,"a":[{"a":"feature_subquery","u":28,"t":2}]},"Feature_system_versioning":{"t":3,"a":[{"a":"feature_system_versioning","u":28,"t":2}]},"Feature_timezone":{"t":3,"a":[{"a":"feature_timezone","u":28,"t":2}]},"Feature_trigger":{"t":3,"a":[{"a":"feature_trigger","u":28,"t":2}]},"Feature_window_functions":{"t":3,"a":[{"a":"feature_window_functions","u":28,"t":2}]},"Feature_xml":{"t":3,"a":[{"a":"feature_xml","u":28,"t":2}]},"Flush_commands":{"t":3,"a":[{"a":"flush_commands","u":28,"t":2}]},"Handler_commit":{"t":3,"a":[{"a":"handler_commit","u":28,"t":2}]},"Handler_delete":{"t":3,"a":[{"a":"handler_delete","u":28,"t":2}]},"Handler_discover":{"t":3,"a":[{"a":"handler_discover","u":28,"t":2}]},"Handler_external_lock":{"t":3,"a":[{"a":"handler_external_lock","u":28,"t":2}]},"Handler_icp_attempts":{"t":3,"a":[{"a":"handler_icp_attempts","u":28,"t":2}]},"Handler_icp_match":{"t":3,"a":[{"a":"handler_icp_match","u":28,"t":2}]},"Handler_mrr_init":{"t":3,"a":[{"a":"handler_mrr_init","u":28,"t":2}]},"Handler_mrr_key_refills":{"t":3,"a":[{"a":"handler_mrr_key_refills","u":28,"t":2}]},"Handler_mrr_rowid_refills":{"t":3,"a":[{"a":"handler_mrr_rowid_refills","u":28,"t":2}]},"Handler_prepare":{"t":3,"a":[{"a":"handler_prepare","u":28,"t":2}]},"Handler_read_first":{"t":3,"a":[{"a":"handler_read_first","u":28,"t":2}]},"Handler_read_key":{"t":3,"a":[{"a":"handler_read_key","u":28,"t":2}]},"Handler_read_last":{"t":3,"a":[{"a":"handler_read_last","u":28,"t":2}]},"Handler_read_next":{"t":3,"a":[{"a":"handler_read_next","u":28,"t":2}]},"Handler_read_prev":{"t":3,"a":[{"a":"handler_read_prev","u":28,"t":2}]},"Handler_read_retry":{"t":3,"a":[{"a":"handler_read_retry","u":28,"t":2}]},"Handler_read_rnd":{"t":3,"a":[{"a":"handler_read_rnd","u":28,"t":2}]},"Handler_read_rnd_deleted":{"t":3,"a":[{"a":"handler_read_rnd_deleted","u":28,"t":2}]},"Handler_read_rnd_next":{"t":3,"a":[{"a":"handler_read_rnd_next","u":28,"t":2}]},"Handler_rollback":{"t":3,"a":[{"a":"handler_rollback","u":28,"t":2}]},"Handler_savepoint":{"t":3,"a":[{"a":"handler_savepoint","u":28,"t":2}]},"Handler_savepoint_rollback":{"t":3,"a":[{"a":"handler_savepoint_rollback","u":28,"t":2}]},"Handler_tmp_delete":{"t":3,"a":[{"a":"handler_tmp_delete","u":28,"t":2}]},"Handler_tmp_update":{"t":3,"a":[{"a":"handler_tmp_update","u":28,"t":2}]},"Handler_tmp_write":{"t":3,"a":[{"a":"handler_tmp_write","u":28,"t":2}]},"Handler_update":{"t":3,"a":[{"a":"handler_update","u":28,"t":2}]},"Handler_write":{"t":3,"a":[{"a":"handler_write","u":28,"t":2}]},"Key_blocks_not_flushed":{"t":3,"a":[{"a":"key_blocks_not_flushed","u":28,"t":2}]},"Key_blocks_unused":{"t":3,"a":[{"a":"key_blocks_unused","u":28,"t":2}]},"Key_blocks_used":{"t":3,"a":[{"a":"key_blocks_used","u":28,"t":2}]},"Key_blocks_warm":{"t":3,"a":[{"a":"key_blocks_warm","u":28,"t":2}]},"Key_read_requests":{"t":3,"a":[{"a":"key_read_requests","u":28,"t":2}]},"Key_reads":{"t":3,"a":[{"a":"key_reads","u":28,"t":2}]},"Key_write_requests":{"t":3,"a":[{"a":"key_write_requests","u":28,"t":2}]},"Key_writes":{"t":3,"a":[{"a":"key_writes","u":28,"t":2}]},"Last_query_cost":{"t":3,"a":[{"a":"last_query_cost","u":28,"t":2}]},"Maria_*":{"a":[{"a":"maria_","u":28,"t":2}]},"Max_statement_time_exceeded":{"t":3,"a":[{"a":"max_statement_time_exceeded","u":28,"t":2}]},"Max_used_connections":{"t":3,"a":[{"a":"max_used_connections","u":28,"t":2}]},"Memory_used":{"t":3,"a":[{"a":"memory_used","u":28,"t":2}]},"Memory_used_initial":{"t":3,"a":[{"a":"memory_used_initial","u":28,"t":2}]},"Not_flushed_delayed_rows":{"t":3,"a":[{"a":"not_flushed_delayed_rows","u":28,"t":2}]},"Open_files":{"t":3,"a":[{"a":"open_files","u":28,"t":2}]},"Open_streams":{"t":3,"a":[{"a":"open_streams","u":28,"t":2}]},"Open_table_definitions":{"t":3,"a":[{"a":"open_table_definitions","u":28,"t":2}]},"Open_tables":{"t":3,"a":[{"a":"open_tables","u":28,"t":2}]},"Opened_files":{"t":3,"a":[{"a":"opened_files","u":28,"t":2}]},"Opened_plugin_libraries":{"t":3,"a":[{"a":"opened_plugin_libraries","u":28,"t":2}]},"Opened_table_definitions":{"t":3,"a":[{"a":"opened_table_definitions","u":28,"t":2}]},"Opened_tables":{"t":3,"a":[{"a":"opened_tables","u":28,"t":2}]},"Opened_views":{"t":3,"a":[{"a":"opened_views","u":28,"t":2}]},"Performance_schema_accounts_lost":{"t":3,"a":[{"a":"performance_schema_accounts_lost","u":28,"t":2}]},"Performance_schema_cond_classes_lost":{"t":3,"a":[{"a":"performance_schema_cond_classes_lost","u":28,"t":2}]},"Performance_schema_cond_instances_lost":{"t":3,"a":[{"a":"performance_schema_cond_instances_lost","u":28,"t":2}]},"Performance_schema_digest_lost":{"t":3,"a":[{"a":"performance_schema_digest_lost","u":28,"t":2}]},"Performance_schema_file_classes_lost":{"t":3,"a":[{"a":"performance_schema_file_classes_lost","u":28,"t":2}]},"Performance_schema_file_handles_lost":{"t":3,"a":[{"a":"performance_schema_file_handles_lost","u":28,"t":2}]},"Performance_schema_file_instances_lost":{"t":3,"a":[{"a":"performance_schema_file_instances_lost","u":28,"t":2}]},"Performance_schema_hosts_lost":{"t":3,"a":[{"a":"performance_schema_hosts_lost","u":28,"t":2}]},"Performance_schema_locker_lost":{"t":3,"a":[{"a":"performance_schema_locker_lost","u":28,"t":2}]},"Performance_schema_mutex_classes_lost":{"t":3,"a":[{"a":"performance_schema_mutex_classes_lost","u":28,"t":2}]},"Performance_schema_mutex_instances_lost":{"t":3,"a":[{"a":"performance_schema_mutex_instances_lost","u":28,"t":2}]},"Performance_schema_rwlock_classes_lost":{"t":3,"a":[{"a":"performance_schema_rwlock_classes_lost","u":28,"t":2}]},"Performance_schema_rwlock_instances_lost":{"t":3,"a":[{"a":"performance_schema_rwlock_instances_lost","u":28,"t":2}]},"Performance_schema_session_connect_attrs_lost":{"t":3,"a":[{"a":"performance_schema_session_connect_attrs_lost","u":28,"t":2}]},"Performance_schema_socket_classes_lost":{"t":3,"a":[{"a":"performance_schema_socket_classes_lost","u":28,"t":2}]},"Performance_schema_socket_instances_lost":{"t":3,"a":[{"a":"performance_schema_socket_instances_lost","u":28,"t":2}]},"Performance_schema_stage_classes_lost":{"t":3,"a":[{"a":"performance_schema_stage_classes_lost","u":28,"t":2}]},"Performance_schema_statement_classes_lost":{"t":3,"a":[{"a":"performance_schema_statement_classes_lost","u":28,"t":2}]},"Performance_schema_table_handles_lost":{"t":3,"a":[{"a":"performance_schema_table_handles_lost","u":28,"t":2}]},"Performance_schema_table_instances_lost":{"t":3,"a":[{"a":"performance_schema_table_instances_lost","u":28,"t":2}]},"Performance_schema_thread_classes_lost":{"t":3,"a":[{"a":"performance_schema_thread_classes_lost","u":28,"t":2}]},"Performance_schema_thread_instances_lost":{"t":3,"a":[{"a":"performance_schema_thread_instances_lost","u":28,"t":2}]},"Performance_schema_users_lost":{"t":3,"a":[{"a":"performance_schema_users_lost","u":28,"t":2}]},"Prepared_stmt_count":{"t":3,"a":[{"a":"prepared_stmt_count","u":28,"t":2}]},"Qcache_free_blocks":{"t":3,"a":[{"a":"qcache_free_blocks","u":28,"t":2}]},"Qcache_free_memory":{"t":3,"a":[{"a":"qcache_free_memory","u":28,"t":2}]},"Qcache_hits":{"t":3,"a":[{"a":"qcache_hits","u":28,"t":2}]},"Qcache_inserts":{"t":3,"a":[{"a":"qcache_inserts","u":28,"t":2}]},"Qcache_lowmem_prunes":{"t":3,"a":[{"a":"qcache_lowmem_prunes","u":28,"t":2}]},"Qcache_not_cached":{"t":3,"a":[{"a":"qcache_not_cached","u":28,"t":2}]},"Qcache_queries_in_cache":{"t":3,"a":[{"a":"qcache_queries_in_cache","u":28,"t":2}]},"Qcache_total_blocks":{"t":3,"a":[{"a":"qcache_total_blocks","u":28,"t":2}]},"Queries":{"t":3,"a":[{"a":"queries","u":28,"t":2}]},"Questions":{"t":3,"a":[{"a":"questions","u":28,"t":2}]},"Rows_read":{"t":3,"a":[{"a":"rows_read","u":28,"t":2}]},"Rows_sent":{"t":3,"a":[{"a":"rows_sent","u":28,"t":2}]},"Rows_tmp_read":{"t":3,"a":[{"a":"rows_tmp_read","u":28,"t":2}]},"Select_full_join":{"t":3,"a":[{"a":"select_full_join","u":28,"t":2}]},"Select_full_range_join":{"t":3,"a":[{"a":"select_full_range_join","u":28,"t":2}]},"Select_range":{"t":3,"a":[{"a":"select_range","u":28,"t":2}]},"Select_range_check":{"t":3,"a":[{"a":"select_range_check","u":28,"t":2}]},"Select_scan":{"t":3,"a":[{"a":"select_scan","u":28,"t":2}]},"Slow_launch_threads":{"t":3,"a":[{"a":"slow_launch_threads","u":28,"t":2}]},"Slow_queries":{"t":3,"a":[{"a":"slow_queries","u":28,"t":2}]},"Sort_merge_passes":{"t":3,"a":[{"a":"sort_merge_passes","u":28,"t":2}]},"Sort_priority_queue_sorts":{"t":3,"a":[{"a":"sort_priority_queue_sorts","u":28,"t":2}]},"Sort_range":{"t":3,"a":[{"a":"sort_range","u":28,"t":2}]},"Sort_rows":{"t":3,"a":[{"a":"sort_rows","u":28,"t":2}]},"Sort_scan":{"t":3,"a":[{"a":"sort_scan","u":28,"t":2}]},"Subquery_cache_hit":{"t":3,"a":[{"a":"subquery_cache_hit","u":28,"t":2}]},"Subquery_cache_miss":{"t":3,"a":[{"a":"subquery_cache_miss","u":28,"t":2}]},"Syncs":{"t":3,"a":[{"a":"syncs","u":28,"t":2}]},"Table_locks_immediate":{"t":3,"a":[{"a":"table_locks_immediate","u":28,"t":2}]},"Table_locks_waited":{"t":3,"a":[{"a":"table_locks_waited","u":28,"t":2}]},"Table_open_cache_active_instances":{"t":3,"a":[{"a":"table_open_cache_active_instances","u":28,"t":2}]},"Table_open_cache_hits":{"t":3,"a":[{"a":"table_open_cache_hits","u":28,"t":2}]},"Table_open_cache_misses":{"t":3,"a":[{"a":"table_open_cache_misses","u":28,"t":2}]},"Table_open_cache_overflows":{"t":3,"a":[{"a":"table_open_cache_overflows","u":28,"t":2}]},"Tc_log_max_pages_used":{"t":3,"a":[{"a":"tc_log_max_pages_used","u":28,"t":2}]},"Tc_log_page_size":{"t":3,"a":[{"a":"tc_log_page_size","u":28,"t":2}]},"Tc_log_page_waits":{"t":3,"a":[{"a":"tc_log_page_waits","u":28,"t":2}]},"Threads_cached":{"t":3,"a":[{"a":"threads_cached","u":28,"t":2}]},"Threads_connected":{"t":3,"a":[{"a":"threads_connected","u":28,"t":2}]},"Threads_created":{"t":3,"a":[{"a":"threads_created","u":28,"t":2}]},"Threads_running":{"t":3,"a":[{"a":"threads_running","u":28,"t":2}]},"Update_scan":{"t":3,"a":[{"a":"update_scan","u":28,"t":2}]},"Uptime":{"t":3,"a":[{"a":"uptime","u":28,"t":2}]},"Uptime_since_flush_status":{"t":3,"a":[{"a":"uptime_since_flush_status","u":28,"t":2}]},"alter_algorithm":{"d":true,"a":[{"a":"alter_algorithm","u":29,"t":2}]},"analyze_sample_percentage":{"d":true,"t":3,"a":[{"a":"analyze_sample_percentage","u":29,"t":2}]},"autocommit":{"d":true,"t":2,"a":[{"a":"autocommit","u":29,"t":2},{"a":"sysvar_autocommit","u":15,"t":1}]},"automatic_sp_privileges":{"d":true,"t":2,"a":[{"a":"automatic_sp_privileges","u":29,"t":2},{"a":"sysvar_automatic_sp_privileges","u":15,"t":1}]},"back_log":{"d":false,"t":3,"a":[{"a":"back_log","u":29,"t":2},{"a":"sysvar_back_log","u":15,"t":1}]},"basedir":{"d":false,"t":7,"a":[{"a":"basedir","u":29,"t":2},{"a":"sysvar_basedir","u":16,"t":1},{"a":"sysvar_basedir","u":15,"t":1}]},"big_tables":{"d":true,"t":2,"a":[{"a":"big_tables","u":29,"t":2},{"a":"sysvar_big_tables","u":15,"t":1}]},"bind_address":{"d":false,"t":1,"a":[{"a":"bind_address","u":29,"t":2},{"a":"sysvar_bind_address","u":15,"t":1}]},"bulk_insert_buffer_size":{"d":true,"t":3,"a":[{"a":"bulk_insert_buffer_size","u":29,"t":2},{"a":"sysvar_bulk_insert_buffer_size","u":15,"t":1}]},"character_set_client":{"d":true,"t":1,"a":[{"a":"character_set_client","u":29,"t":2},{"a":"sysvar_character_set_client","u":15,"t":1}]},"character_set_connection":{"d":true,"t":1,"a":[{"a":"character_set_connection","u":29,"t":2},{"a":"sysvar_character_set_connection","u":15,"t":1}]},"character_set_database":{"d":true,"t":1,"a":[{"a":"character_set_database","u":29,"t":2},{"a":"sysvar_character_set_database","u":15,"t":1}]},"character_set_filesystem":{"d":true,"t":1,"a":[{"a":"character_set_filesystem","u":29,"t":2},{"a":"sysvar_character_set_filesystem","u":15,"t":1}]},"character_set_results":{"d":true,"t":1,"a":[{"a":"character_set_results","u":29,"t":2},{"a":"sysvar_character_set_results","u":15,"t":1}]},"character_set_server":{"d":true,"t":1,"a":[{"a":"character_set_server","u":29,"t":2},{"a":"sysvar_character_set_server","u":15,"t":1}]},"character_set_system":{"d":false,"t":1,"a":[{"a":"character_set_system","u":29,"t":2},{"a":"sysvar_character_set_system","u":15,"t":1}]},"character_sets_dir":{"d":false,"t":7,"a":[{"a":"character_sets_dir","u":29,"t":2},{"a":"sysvar_character_sets_dir","u":15,"t":1}]},"check_constraint_checks":{"d":true,"t":2,"a":[{"a":"check_constraint_checks","u":29,"t":2}]},"collation_connection":{"d":true,"t":1,"a":[{"a":"collation_connection","u":29,"t":2},{"a":"sysvar_collation_connection","u":15,"t":1}]},"collation_database":{"d":true,"t":1,"a":[{"a":"collation_database","u":29,"t":2},{"a":"sysvar_collation_database","u":15,"t":1}]},"collation_server":{"d":true,"t":1,"a":[{"a":"collation_server","u":29,"t":2},{"a":"sysvar_collation_server","u":15,"t":1}]},"completion_type":{"d":true,"t":5,"a":[{"a":"completion_type","u":29,"t":2},{"a":"sysvar_completion_type","u":15,"t":1}]},"concurrent_insert":{"d":true,"t":5,"a":[{"a":"concurrent_insert","u":29,"t":2},{"a":"sysvar_concurrent_insert","u":15,"t":1}]},"connect_timeout":{"d":true,"t":3,"a":[{"a":"connect_timeout","u":29,"t":2},{"a":"sysvar_connect_timeout","u":15,"t":1}]},"core_file":{"d":false,"t":2,"a":[{"a":"core_file","u":29,"t":2},{"a":"option_mysqld_core-file","u":16,"t":1},{"a":"sysvar_core_file","u":15,"t":1}]},"datadir":{"d":false,"t":7,"a":[{"a":"datadir","u":29,"t":2},{"a":"sysvar_datadir","u":16,"t":1},{"a":"sysvar_datadir","u":15,"t":1}]},"date_format":{"a":[{"a":"date_format","u":29,"t":2}]},"datetime_format":{"a":[{"a":"datetime_format","u":29,"t":2}]},"debug":{"d":true,"t":1,"a":[{"a":"debug","u":29,"t":2},{"a":"option_mysqld_debug","u":16,"t":1},{"a":"sysvar_debug","u":15,"t":1}]},"debug_no_thread_alarm":{"d":false,"t":2,"a":[{"a":"debug_no_thread_alarm","u":29,"t":2}]},"debug_sync":{"d":true,"t":1,"a":[{"a":"debug_sync","u":29,"t":2},{"a":"sysvar_debug_sync","u":15,"t":1}]},"default_password_lifetime":{"d":true,"t":3,"a":[{"a":"default_password_lifetime","u":29,"t":2},{"a":"sysvar_default_password_lifetime","u":15,"t":1}]},"default_regex_flags":{"a":[{"a":"default_regex_flags","u":29,"t":2}]},"default_storage_engine":{"d":true,"t":5,"a":[{"a":"default_storage_engine","u":29,"t":2},{"a":"sysvar_default_storage_engine","u":15,"t":1}]},"default_table_type":{"d":true,"a":[{"a":"default_table_type","u":29,"t":2}]},"default_tmp_storage_engine":{"d":true,"t":5,"a":[{"a":"default_tmp_storage_engine","u":29,"t":2},{"a":"sysvar_default_tmp_storage_engine","u":15,"t":1}]},"default_week_format":{"d":true,"t":3,"a":[{"a":"default_week_format","u":29,"t":2},{"a":"sysvar_default_week_format","u":15,"t":1}]},"delay_key_write":{"d":true,"t":5,"a":[{"a":"delay_key_write","u":29,"t":2},{"a":"sysvar_delay_key_write","u":15,"t":1}]},"delayed_insert_limit":{"d":true,"t":3,"a":[{"a":"delayed_insert_limit","u":29,"t":2},{"a":"sysvar_delayed_insert_limit","u":15,"t":1}]},"delayed_insert_timeout":{"d":true,"t":3,"a":[{"a":"delayed_insert_timeout","u":29,"t":2},{"a":"sysvar_delayed_insert_timeout","u":15,"t":1}]},"delayed_queue_size":{"d":true,"t":3,"a":[{"a":"delayed_queue_size","u":29,"t":2},{"a":"sysvar_delayed_queue_size","u":15,"t":1}]},"disconnect_on_expired_password":{"t":2,"a":[{"a":"disconnect_on_expired_password","u":29,"t":2},{"a":"sysvar_disconnect_on_expired_password","u":15,"t":1}]},"div_precision_increment":{"d":true,"t":3,"a":[{"a":"div_precision_increment","u":29,"t":2},{"a":"sysvar_div_precision_increment","u":15,"t":1}]},"encrypt_tmp_disk_tables":{"d":true,"t":2,"a":[{"a":"encrypt_tmp_disk_tables","u":29,"t":2}]},"encrypt_tmp_files":{"d":false,"t":2,"a":[{"a":"encrypt_tmp_files","u":29,"t":2}]},"encryption_algorithm":{"d":false,"a":[{"a":"encryption_algorithm","u":29,"t":2}]},"enforce_storage_engine":{"d":true,"t":1,"a":[{"a":"enforce_storage_engine","u":29,"t":2}]},"engine_condition_pushdown":{"d":true,"t":2,"a":[{"a":"engine_condition_pushdown","u":29,"t":2}]},"eq_range_index_dive_limit":{"d":true,"t":3,"a":[{"a":"eq_range_index_dive_limit","u":29,"t":2},{"a":"sysvar_eq_range_index_dive_limit","u":15,"t":1}]},"error_count":{"d":true,"t":3,"a":[{"a":"error_count","u":29,"t":2}]},"event_scheduler":{"d":true,"t":5,"a":[{"a":"event_scheduler","u":29,"t":2},{"a":"sysvar_event_scheduler","u":15,"t":1}]},"expensive_subquery_limit":{"d":true,"t":3,"a":[{"a":"expensive_subquery_limit","u":29,"t":2}]},"explicit_defaults_for_timestamp":{"t":2,"a":[{"a":"explicit_defaults_for_timestamp","u":29,"t":2},{"a":"sysvar_explicit_defaults_for_timestamp","u":15,"t":1}]},"external_user":{"d":false,"t":1,"a":[{"a":"external_user","u":29,"t":2},{"a":"sysvar_external_user","u":15,"t":1}]},"flush":{"d":true,"t":2,"a":[{"a":"flush","u":29,"t":2},{"a":"option_mysqld_flush","u":16,"t":1},{"a":"sysvar_flush","u":15,"t":1}]},"flush_time":{"d":true,"t":3,"a":[{"a":"flush_time","u":29,"t":2},{"a":"sysvar_flush_time","u":15,"t":1}]},"foreign_key_checks":{"d":true,"t":2,"a":[{"a":"foreign_key_checks","u":29,"t":2},{"a":"sysvar_foreign_key_checks","u":15,"t":1}]},"ft_boolean_syntax":{"d":true,"t":1,"a":[{"a":"ft_boolean_syntax","u":29,"t":2},{"a":"sysvar_ft_boolean_syntax","u":15,"t":1}]},"ft_max_word_len":{"d":false,"t":3,"a":[{"a":"ft_max_word_len","u":29,"t":2},{"a":"sysvar_ft_max_word_len","u":15,"t":1}]},"ft_min_word_len":{"d":false,"t":3,"a":[{"a":"ft_min_word_len","u":29,"t":2},{"a":"sysvar_ft_min_word_len","u":15,"t":1}]},"ft_query_expansion_limit":{"d":false,"t":3,"a":[{"a":"ft_query_expansion_limit","u":29,"t":2},{"a":"sysvar_ft_query_expansion_limit","u":15,"t":1}]},"ft_stopword_file":{"d":false,"t":8,"a":[{"a":"ft_stopword_file","u":29,"t":2},{"a":"sysvar_ft_stopword_file","u":15,"t":1}]},"general_log":{"d":true,"t":2,"a":[{"a":"general_log","u":29,"t":2},{"a":"sysvar_general_log","u":15,"t":1}]},"general_log_file":{"d":true,"t":8,"a":[{"a":"general_log_file","u":29,"t":2},{"a":"sysvar_general_log_file","u":15,"t":1}]},"group_concat_max_len":{"d":true,"t":3,"a":[{"a":"group_concat_max_len","u":29,"t":2},{"a":"sysvar_group_concat_max_len","u":15,"t":1}]},"have_compress":{"d":false,"a":[{"a":"have_compress","u":29,"t":2}]},"have_crypt":{"d":false,"a":[{"a":"have_crypt","u":29,"t":2}]},"have_csv":{"d":false,"a":[{"a":"have_csv","u":29,"t":2}]},"have_dynamic_loading":{"d":false,"a":[{"a":"have_dynamic_loading","u":29,"t":2}]},"have_geometry":{"d":false,"a":[{"a":"have_geometry","u":29,"t":2}]},"have_ndbcluster":{"d":false,"a":[{"a":"have_ndbcluster","u":29,"t":2}]},"have_partitioning":{"d":false,"a":[{"a":"have_partitioning","u":29,"t":2}]},"have_profiling":{"d":false,"a":[{"a":"have_profiling","u":29,"t":2}]},"have_query_cache":{"d":false,"a":[{"a":"have_query_cache","u":29,"t":2}]},"have_rtree_keys":{"d":false,"a":[{"a":"have_rtree_keys","u":29,"t":2}]},"have_symlink":{"d":false,"a":[{"a":"have_symlink","u":29,"t":2}]},"histogram_size":{"d":true,"t":3,"a":[{"a":"histogram_size","u":29,"t":2}]},"histogram_type":{"d":true,"t":5,"a":[{"a":"histogram_type","u":29,"t":2}]},"host_cache_size":{"d":true,"t":3,"a":[{"a":"host_cache_size","u":29,"t":2},{"a":"sysvar_host_cache_size","u":15,"t":1}]},"hostname":{"d":false,"t":1,"a":[{"a":"hostname","u":29,"t":2},{"a":"sysvar_hostname","u":15,"t":1}]},"identity":{"a":[{"a":"identity","u":29,"t":2}]},"idle_readonly_transaction_timeout":{"d":true,"t":3,"a":[{"a":"idle_readonly_transaction_timeout","u":29,"t":2}]},"idle_transaction_timeout":{"d":true,"t":3,"a":[{"a":"idle_transaction_timeout","u":29,"t":2}]},"idle_write_transaction_timeout":{"d":true,"t":3,"a":[{"a":"idle_write_transaction_timeout","u":29,"t":2}]},"ignore_db_dirs":{"d":false,"t":1,"a":[{"a":"ignore_db_dirs","u":29,"t":2}]},"in_transaction":{"d":false,"t":2,"a":[{"a":"in_transaction","u":29,"t":2}]},"init_connect":{"d":true,"t":1,"a":[{"a":"init_connect","u":29,"t":2},{"a":"sysvar_init_connect","u":15,"t":1}]},"init_file":{"d":false,"t":8,"a":[{"a":"init_file","u":29,"t":2},{"a":"sysvar_init_file","u":15,"t":1}]},"insert_id":{"d":true,"t":3,"a":[{"a":"insert_id","u":29,"t":2}]},"interactive_timeout":{"d":true,"t":3,"a":[{"a":"interactive_timeout","u":29,"t":2},{"a":"sysvar_interactive_timeout","u":15,"t":1}]},"join_buffer_size":{"d":true,"t":3,"a":[{"a":"join_buffer_size","u":29,"t":2},{"a":"sysvar_join_buffer_size","u":15,"t":1}]},"join_buffer_space_limit":{"d":true,"t":3,"a":[{"a":"join_buffer_space_limit","u":29,"t":2}]},"join_cache_level":{"d":true,"t":3,"a":[{"a":"join_cache_level","u":29,"t":2}]},"keep_files_on_create":{"d":true,"t":2,"a":[{"a":"keep_files_on_create","u":29,"t":2},{"a":"sysvar_keep_files_on_create","u":15,"t":1}]},"large_files_support":{"d":false,"a":[{"a":"large_files_support","u":29,"t":2},{"a":"sysvar_large_files_support","u":15,"t":1}]},"large_page_size":{"d":false,"t":3,"a":[{"a":"large_page_size","u":29,"t":2},{"a":"sysvar_large_page_size","u":15,"t":1}]},"large_pages":{"d":false,"t":2,"a":[{"a":"large_pages","u":29,"t":2},{"a":"option_mysqld_large-pages","u":16,"t":1},{"a":"sysvar_large_pages","u":15,"t":1}]},"last_insert_id":{"d":true,"t":3,"a":[{"a":"last_insert_id","u":29,"t":2}]},"lc_messages":{"d":true,"t":1,"a":[{"a":"lc_messages","u":29,"t":2},{"a":"option_mysqld_lc-messages","u":16,"t":1},{"a":"sysvar_lc_messages","u":15,"t":1}]},"lc_messages_dir":{"d":false,"t":7,"a":[{"a":"lc_messages_dir","u":29,"t":2},{"a":"option_mysqld_lc-messages-dir","u":16,"t":1},{"a":"sysvar_lc_messages_dir","u":15,"t":1}]},"lc_time_names":{"d":true,"t":1,"a":[{"a":"lc_time_names","u":29,"t":2},{"a":"sysvar_lc_time_names","u":15,"t":1}]},"license":{"d":false,"t":1,"a":[{"a":"license","u":29,"t":2},{"a":"sysvar_license","u":15,"t":1}]},"local_infile":{"d":true,"t":2,"a":[{"a":"local_infile","u":29,"t":2},{"a":"sysvar_local_infile","u":15,"t":1}]},"lock_wait_timeout":{"d":true,"t":3,"a":[{"a":"lock_wait_timeout","u":29,"t":2},{"a":"sysvar_lock_wait_timeout","u":15,"t":1}]},"locked_in_memory":{"d":false,"a":[{"a":"locked_in_memory","u":29,"t":2},{"a":"sysvar_locked_in_memory","u":15,"t":1}]},"log":{"d":true,"t":1,"a":[{"a":"log","u":29,"t":2}]},"log_disabled_statements":{"d":false,"t":6,"a":[{"a":"log_disabled_statements","u":29,"t":2}]},"log_error":{"d":false,"t":8,"a":[{"a":"log_error","u":29,"t":2},{"a":"option_mysqld_log-error","u":16,"t":1},{"a":"sysvar_log_error","u":15,"t":1}]},"log_output":{"d":true,"t":6,"a":[{"a":"log_output","u":29,"t":2},{"a":"sysvar_log_output","u":15,"t":1}]},"log_queries_not_using_indexes":{"d":true,"t":2,"a":[{"a":"log_queries_not_using_indexes","u":29,"t":2},{"a":"sysvar_log_queries_not_using_indexes","u":15,"t":1}]},"log_slow_admin_statements":{"d":true,"t":2,"a":[{"a":"log_slow_admin_statements","u":29,"t":2},{"a":"sysvar_log_slow_admin_statements","u":15,"t":1}]},"log_slow_disabled_statements":{"d":false,"t":6,"a":[{"a":"log_slow_disabled_statements","u":29,"t":2}]},"log_slow_filter":{"d":true,"t":5,"a":[{"a":"log_slow_filter","u":29,"t":2}]},"log_slow_queries":{"d":true,"t":2,"a":[{"a":"log_slow_queries","u":29,"t":2}]},"log_slow_rate_limit":{"d":true,"t":3,"a":[{"a":"log_slow_rate_limit","u":29,"t":2}]},"log_slow_verbosity":{"d":true,"t":5,"a":[{"a":"log_slow_verbosity","u":29,"t":2}]},"log_tc_size":{"t":3,"a":[{"a":"log_tc_size","u":29,"t":2},{"a":"option_mysqld_log-tc-size","u":16,"t":1}]},"log_warnings":{"d":true,"t":3,"a":[{"a":"log_warnings","u":29,"t":2},{"a":"option_mysqld_log-warnings","u":16,"t":1},{"a":"sysvar_log_warnings","u":15,"t":1}]},"long_query_time":{"d":true,"t":3,"a":[{"a":"long_query_time","u":29,"t":2},{"a":"sysvar_long_query_time","u":15,"t":1}]},"low_priority_updates":{"d":true,"t":2,"a":[{"a":"low_priority_updates","u":29,"t":2},{"a":"sysvar_low_priority_updates","u":15,"t":1}]},"lower_case_file_system":{"d":false,"t":2,"a":[{"a":"lower_case_file_system","u":29,"t":2},{"a":"sysvar_lower_case_file_system","u":15,"t":1}]},"lower_case_table_names":{"d":false,"t":3,"a":[{"a":"lower_case_table_names","u":29,"t":2},{"a":"sysvar_lower_case_table_names","u":15,"t":1}]},"max_allowed_packet":{"t":3,"a":[{"a":"max_allowed_packet","u":29,"t":2},{"a":"sysvar_max_allowed_packet","u":15,"t":1}]},"max_connect_errors":{"d":true,"t":3,"a":[{"a":"max_connect_errors","u":29,"t":2},{"a":"sysvar_max_connect_errors","u":15,"t":1}]},"max_connections":{"d":true,"t":3,"a":[{"a":"max_connections","u":29,"t":2},{"a":"sysvar_max_connections","u":15,"t":1}]},"max_delayed_threads":{"d":true,"t":3,"a":[{"a":"max_delayed_threads","u":29,"t":2},{"a":"sysvar_max_delayed_threads","u":15,"t":1}]},"max_digest_length":{"t":3,"a":[{"a":"max_digest_length","u":29,"t":2},{"a":"sysvar_max_digest_length","u":15,"t":1}]},"max_error_count":{"d":true,"t":3,"a":[{"a":"max_error_count","u":29,"t":2},{"a":"sysvar_max_error_count","u":15,"t":1}]},"max_heap_table_size":{"d":true,"t":3,"a":[{"a":"max_heap_table_size","u":29,"t":2},{"a":"sysvar_max_heap_table_size","u":15,"t":1}]},"max_insert_delayed_threads":{"d":true,"t":3,"a":[{"a":"max_insert_delayed_threads","u":29,"t":2},{"a":"sysvar_max_insert_delayed_threads","u":15,"t":1}]},"max_join_size":{"d":true,"t":3,"a":[{"a":"max_join_size","u":29,"t":2},{"a":"sysvar_max_join_size","u":15,"t":1}]},"max_length_for_sort_data":{"d":true,"t":3,"a":[{"a":"max_length_for_sort_data","u":29,"t":2},{"a":"sysvar_max_length_for_sort_data","u":15,"t":1}]},"max_long_data_size":{"d":false,"t":3,"a":[{"a":"max_long_data_size","u":29,"t":2}]},"max_password_errors":{"d":true,"t":3,"a":[{"a":"max_password_errors","u":29,"t":2}]},"max_prepared_stmt_count":{"d":true,"t":3,"a":[{"a":"max_prepared_stmt_count","u":29,"t":2},{"a":"sysvar_max_prepared_stmt_count","u":15,"t":1}]},"max_recursive_iterations":{"d":true,"t":3,"a":[{"a":"max_recursive_iterations","u":29,"t":2}]},"max_rowid_filter_size":{"d":true,"t":3,"a":[{"a":"max_rowid_filter_size","u":29,"t":2}]},"max_seeks_for_key":{"d":true,"t":3,"a":[{"a":"max_seeks_for_key","u":29,"t":2},{"a":"sysvar_max_seeks_for_key","u":15,"t":1}]},"max_session_mem_used":{"d":true,"t":3,"a":[{"a":"max_session_mem_used","u":29,"t":2}]},"max_sort_length":{"d":true,"t":3,"a":[{"a":"max_sort_length","u":29,"t":2},{"a":"sysvar_max_sort_length","u":15,"t":1}]},"max_sp_recursion_depth":{"d":true,"t":3,"a":[{"a":"max_sp_recursion_depth","u":29,"t":2},{"a":"sysvar_max_sp_recursion_depth","u":15,"t":1}]},"max_statement_time":{"d":true,"t":3,"a":[{"a":"max_statement_time","u":29,"t":2}]},"max_tmp_tables":{"a":[{"a":"max_tmp_tables","u":29,"t":2}]},"max_user_connections":{"t":3,"a":[{"a":"max_user_connections","u":29,"t":2},{"a":"sysvar_max_user_connections","u":15,"t":1}]},"max_write_lock_count":{"t":3,"a":[{"a":"max_write_lock_count","u":29,"t":2},{"a":"sysvar_max_write_lock_count","u":15,"t":1}]},"metadata_locks_cache_size":{"d":false,"t":3,"a":[{"a":"metadata_locks_cache_size","u":29,"t":2},{"a":"sysvar_metadata_locks_cache_size","u":15,"t":1}]},"metadata_locks_hash_instances":{"d":false,"t":3,"a":[{"a":"metadata_locks_hash_instances","u":29,"t":2},{"a":"sysvar_metadata_locks_hash_instances","u":15,"t":1}]},"min_examined_row_limit":{"d":true,"t":3,"a":[{"a":"min_examined_row_limit","u":29,"t":2},{"a":"sysvar_min_examined_row_limit","u":15,"t":1}]},"mrr_buffer_size":{"d":true,"t":3,"a":[{"a":"mrr_buffer_size","u":29,"t":2}]},"multi_range_count":{"d":true,"t":3,"a":[{"a":"multi_range_count","u":29,"t":2},{"a":"sysvar_multi_range_count","u":15,"t":1}]},"mysql56_temporal_format":{"d":true,"t":2,"a":[{"a":"mysql56_temporal_format","u":29,"t":2}]},"named_pipe":{"d":false,"t":2,"a":[{"a":"named_pipe","u":29,"t":2},{"a":"sysvar_named_pipe","u":15,"t":1}]},"net_buffer_length":{"d":true,"t":3,"a":[{"a":"net_buffer_length","u":29,"t":2},{"a":"sysvar_net_buffer_length","u":15,"t":1}]},"net_read_timeout":{"d":true,"t":3,"a":[{"a":"net_read_timeout","u":29,"t":2},{"a":"sysvar_net_read_timeout","u":15,"t":1}]},"net_retry_count":{"d":true,"t":3,"a":[{"a":"net_retry_count","u":29,"t":2},{"a":"sysvar_net_retry_count","u":15,"t":1}]},"net_write_timeout":{"d":true,"t":3,"a":[{"a":"net_write_timeout","u":29,"t":2},{"a":"sysvar_net_write_timeout","u":15,"t":1}]},"old":{"t":2,"a":[{"a":"old","u":29,"t":2},{"a":"sysvar_old","u":15,"t":1}]},"old_alter_table":{"d":true,"t":2,"a":[{"a":"old_alter_table","u":29,"t":2},{"a":"sysvar_old_alter_table","u":15,"t":1}]},"old_mode":{"d":true,"t":1,"a":[{"a":"old_mode","u":29,"t":2}]},"old_passwords":{"d":true,"a":[{"a":"old_passwords","u":29,"t":2},{"a":"sysvar_old_passwords","u":15,"t":1}]},"open_files_limit":{"d":false,"t":3,"a":[{"a":"open_files_limit","u":29,"t":2},{"a":"sysvar_open_files_limit","u":15,"t":1}]},"optimizer_prune_level":{"d":true,"a":[{"a":"optimizer_prune_level","u":29,"t":2},{"a":"sysvar_optimizer_prune_level","u":15,"t":1}]},"optimizer_search_depth":{"d":true,"t":3,"a":[{"a":"optimizer_search_depth","u":29,"t":2},{"a":"sysvar_optimizer_search_depth","u":15,"t":1}]},"optimizer_selectivity_sampling_limit":{"d":true,"t":3,"a":[{"a":"optimizer_selectivity_sampling_limit","u":29,"t":2}]},"optimizer_switch":{"d":true,"a":[{"a":"optimizer_switch","u":29,"t":2},{"a":"sysvar_optimizer_switch","u":15,"t":1}]},"optimizer_use_condition_selectivity":{"d":true,"t":3,"a":[{"a":"optimizer_use_condition_selectivity","u":29,"t":2}]},"optimizer_trace":{"d":true,"t":1,"a":[{"a":"optimizer_trace","u":29,"t":2},{"a":"sysvar_optimizer_trace","u":15,"t":1}]},"optimizer_trace_max_mem_size":{"d":true,"t":3,"a":[{"a":"optimizer_trace_max_mem_size","u":29,"t":2},{"a":"sysvar_optimizer_trace_max_mem_size","u":15,"t":1}]},"pid_file":{"d":false,"t":8,"a":[{"a":"pid_file","u":29,"t":2},{"a":"sysvar_pid_file","u":15,"t":1}]},"plugin_dir":{"d":false,"t":7,"a":[{"a":"plugin_dir","u":29,"t":2},{"a":"sysvar_plugin_dir","u":15,"t":1}]},"plugin_maturity":{"d":false,"a":[{"a":"plugin_maturity","u":29,"t":2}]},"port":{"d":false,"t":3,"a":[{"a":"port","u":29,"t":2},{"a":"option_mysqld_port","u":16,"t":1},{"a":"sysvar_port","u":15,"t":1}]},"preload_buffer_size":{"d":true,"t":3,"a":[{"a":"preload_buffer_size","u":29,"t":2},{"a":"sysvar_preload_buffer_size","u":15,"t":1}]},"profiling":{"d":true,"t":2,"a":[{"a":"profiling","u":29,"t":2}]},"profiling_history_size":{"d":true,"t":3,"a":[{"a":"profiling_history_size","u":29,"t":2}]},"progress_report_time":{"d":true,"t":3,"a":[{"a":"progress_report_time","u":29,"t":2}]},"protocol_version":{"d":false,"t":3,"a":[{"a":"protocol_version","u":29,"t":2},{"a":"sysvar_protocol_version","u":15,"t":1}]},"proxy_protocol_networks":{"d":false,"t":1,"a":[{"a":"proxy_protocol_networks","u":29,"t":2}]},"proxy_user":{"d":false,"t":1,"a":[{"a":"proxy_user","u":29,"t":2},{"a":"sysvar_proxy_user","u":15,"t":1}]},"pseudo_slave_mode":{"d":true,"t":3,"a":[{"a":"pseudo_slave_mode","u":29,"t":2},{"a":"sysvar_pseudo_slave_mode","u":15,"t":1}]},"pseudo_thread_id":{"d":true,"t":3,"a":[{"a":"pseudo_thread_id","u":29,"t":2},{"a":"sysvar_pseudo_thread_id","u":15,"t":1}]},"query_alloc_block_size":{"d":true,"t":3,"a":[{"a":"query_alloc_block_size","u":29,"t":2},{"a":"sysvar_query_alloc_block_size","u":15,"t":1}]},"query_cache_limit":{"d":true,"t":3,"a":[{"a":"query_cache_limit","u":29,"t":2},{"a":"sysvar_query_cache_limit","u":15,"t":1}]},"query_cache_min_res_unit":{"d":true,"t":3,"a":[{"a":"query_cache_min_res_unit","u":29,"t":2},{"a":"sysvar_query_cache_min_res_unit","u":15,"t":1}]},"query_cache_size":{"d":true,"t":3,"a":[{"a":"query_cache_size","u":29,"t":2},{"a":"sysvar_query_cache_size","u":15,"t":1}]},"query_cache_strip_comments":{"d":true,"t":2,"a":[{"a":"query_cache_strip_comments","u":29,"t":2}]},"query_cache_type":{"d":true,"t":5,"a":[{"a":"query_cache_type","u":29,"t":2},{"a":"sysvar_query_cache_type","u":15,"t":1}]},"query_cache_wlock_invalidate":{"d":true,"t":2,"a":[{"a":"query_cache_wlock_invalidate","u":29,"t":2},{"a":"sysvar_query_cache_wlock_invalidate","u":15,"t":1}]},"query_prealloc_size":{"d":true,"t":3,"a":[{"a":"query_prealloc_size","u":29,"t":2},{"a":"sysvar_query_prealloc_size","u":15,"t":1}]},"rand_seed1":{"d":true,"t":3,"a":[{"a":"rand_seed1","u":29,"t":2},{"a":"sysvar_rand_seed1","u":15,"t":1}]},"rand_seed2":{"a":[{"a":"rand_seed2","u":29,"t":2}]},"range_alloc_block_size":{"d":true,"t":3,"a":[{"a":"range_alloc_block_size","u":29,"t":2},{"a":"sysvar_range_alloc_block_size","u":15,"t":1}]},"read_buffer_size":{"d":true,"t":3,"a":[{"a":"read_buffer_size","u":29,"t":2},{"a":"sysvar_read_buffer_size","u":15,"t":1}]},"read_only":{"d":true,"t":2,"a":[{"a":"read_only","u":29,"t":2},{"a":"sysvar_read_only","u":15,"t":1}]},"read_rnd_buffer_size":{"d":true,"t":3,"a":[{"a":"read_rnd_buffer_size","u":29,"t":2},{"a":"sysvar_read_rnd_buffer_size","u":15,"t":1}]},"rowid_merge_buff_size":{"d":true,"t":3,"a":[{"a":"rowid_merge_buff_size","u":29,"t":2}]},"rpl_recovery_rank":{"a":[{"a":"rpl_recovery_rank","u":29,"t":2}]},"safe_show_database":{"d":true,"t":2,"a":[{"a":"safe_show_database","u":29,"t":2}]},"secure_auth":{"d":true,"t":2,"a":[{"a":"secure_auth","u":29,"t":2},{"a":"sysvar_secure_auth","u":15,"t":1}]},"secure_file_priv":{"d":false,"t":1,"a":[{"a":"secure_file_priv","u":29,"t":2},{"a":"sysvar_secure_file_priv","u":15,"t":1}]},"secure_timestamp":{"d":false,"a":[{"a":"secure_timestamp","u":29,"t":2}]},"session_track_schema":{"d":true,"t":2,"a":[{"a":"session_track_schema","u":29,"t":2},{"a":"sysvar_session_track_schema","u":15,"t":1}]},"session_track_state_change":{"d":true,"t":2,"a":[{"a":"session_track_state_change","u":29,"t":2},{"a":"sysvar_session_track_state_change","u":15,"t":1}]},"session_track_system_variables":{"d":true,"t":1,"a":[{"a":"session_track_system_variables","u":29,"t":2},{"a":"sysvar_session_track_system_variables","u":15,"t":1}]},"session_track_transaction_info":{"d":true,"t":5,"a":[{"a":"session_track_transaction_info","u":29,"t":2},{"a":"sysvar_session_track_transaction_info","u":15,"t":1}]},"shared_memory":{"d":false,"t":2,"a":[{"a":"shared_memory","u":29,"t":2},{"a":"sysvar_shared_memory","u":15,"t":1}]},"shared_memory_base_name":{"d":false,"t":1,"a":[{"a":"shared_memory_base_name","u":29,"t":2},{"a":"sysvar_shared_memory_base_name","u":15,"t":1}]},"skip_external_locking":{"d":false,"t":2,"a":[{"a":"skip_external_locking","u":29,"t":2},{"a":"sysvar_skip_external_locking","u":15,"t":1}]},"skip_name_resolve":{"d":false,"t":2,"a":[{"a":"skip_name_resolve","u":29,"t":2},{"a":"sysvar_skip_name_resolve","u":15,"t":1}]},"skip_networking":{"d":false,"t":2,"a":[{"a":"skip_networking","u":29,"t":2},{"a":"sysvar_skip_networking","u":15,"t":1}]},"skip_show_database":{"d":false,"a":[{"a":"skip_show_database","u":29,"t":2},{"a":"option_mysqld_skip-show-database","u":16,"t":1},{"a":"sysvar_skip_show_database","u":15,"t":1}]},"slow_launch_time":{"d":true,"t":3,"a":[{"a":"slow_launch_time","u":29,"t":2},{"a":"sysvar_slow_launch_time","u":15,"t":1}]},"slow_query_log":{"d":true,"t":2,"a":[{"a":"slow_query_log","u":29,"t":2},{"a":"sysvar_slow_query_log","u":15,"t":1}]},"slow_query_log_file":{"d":true,"t":8,"a":[{"a":"slow_query_log_file","u":29,"t":2},{"a":"sysvar_slow_query_log_file","u":15,"t":1}]},"socket":{"d":false,"t":1,"a":[{"a":"socket","u":29,"t":2},{"a":"option_mysqld_socket","u":16,"t":1},{"a":"sysvar_socket","u":15,"t":1}]},"sort_buffer_size":{"d":true,"t":3,"a":[{"a":"sort_buffer_size","u":29,"t":2},{"a":"sysvar_sort_buffer_size","u":15,"t":1}]},"sql_auto_is_null":{"d":true,"t":2,"a":[{"a":"sql_auto_is_null","u":29,"t":2},{"a":"sysvar_sql_auto_is_null","u":15,"t":1}]},"sql_big_selects":{"d":true,"t":2,"a":[{"a":"sql_big_selects","u":29,"t":2},{"a":"sysvar_sql_big_selects","u":15,"t":1}]},"sql_big_tables":{"d":true,"t":2,"a":[{"a":"sql_big_tables","u":29,"t":2}]},"sql_buffer_result":{"d":true,"t":2,"a":[{"a":"sql_buffer_result","u":29,"t":2},{"a":"sysvar_sql_buffer_result","u":15,"t":1}]},"sql_log_off":{"d":true,"t":2,"a":[{"a":"sql_log_off","u":29,"t":2},{"a":"sysvar_sql_log_off","u":15,"t":1}]},"sql_log_update":{"a":[{"a":"sql_log_update","u":29,"t":2}]},"sql_low_priority_updates":{"d":true,"t":2,"a":[{"a":"sql_low_priority_updates","u":29,"t":2}]},"sql_max_join_size":{"a":[{"a":"sql_max_join_size","u":29,"t":2}]},"sql_mode":{"d":true,"t":6,"a":[{"a":"sql_mode","u":29,"t":2},{"a":"option_mysqld_sql-mode","u":16,"t":1},{"a":"sysvar_sql_mode","u":15,"t":1}]},"sql_notes":{"d":true,"t":2,"a":[{"a":"sql_notes","u":29,"t":2},{"a":"sysvar_sql_notes","u":15,"t":1}]},"sql_quote_show_create":{"d":true,"t":2,"a":[{"a":"sql_quote_show_create","u":29,"t":2},{"a":"sysvar_sql_quote_show_create","u":15,"t":1}]},"sql_safe_updates":{"d":true,"t":2,"a":[{"a":"sql_safe_updates","u":29,"t":2},{"a":"sysvar_sql_safe_updates","u":15,"t":1}]},"sql_select_limit":{"d":true,"t":3,"a":[{"a":"sql_select_limit","u":29,"t":2},{"a":"sysvar_sql_select_limit","u":15,"t":1}]},"sql_warnings":{"d":true,"t":2,"a":[{"a":"sql_warnings","u":29,"t":2},{"a":"sysvar_sql_warnings","u":15,"t":1}]},"storage_engine":{"a":[{"a":"storage_engine","u":29,"t":2}]},"standard_compliant_cte":{"d":true,"t":2,"a":[{"a":"standard_compliant_cte","u":29,"t":2}]},"stored_program_cache":{"d":true,"t":3,"a":[{"a":"stored_program_cache","u":29,"t":2},{"a":"sysvar_stored_program_cache","u":15,"t":1}]},"strict_password_validation":{"d":true,"t":2,"a":[{"a":"strict_password_validation","u":29,"t":2}]},"sync_frm":{"d":true,"t":2,"a":[{"a":"sync_frm","u":29,"t":2}]},"system_time_zone":{"d":false,"t":1,"a":[{"a":"system_time_zone","u":29,"t":2},{"a":"sysvar_system_time_zone","u":15,"t":1}]},"table_definition_cache":{"d":true,"t":3,"a":[{"a":"table_definition_cache","u":29,"t":2},{"a":"sysvar_table_definition_cache","u":15,"t":1}]},"table_lock_wait_timeout":{"d":true,"t":3,"a":[{"a":"table_lock_wait_timeout","u":29,"t":2}]},"table_open_cache":{"d":true,"t":3,"a":[{"a":"table_open_cache","u":29,"t":2},{"a":"sysvar_table_open_cache","u":15,"t":1}]},"table_open_cache_instances":{"d":false,"t":3,"a":[{"a":"table_open_cache_instances","u":29,"t":2},{"a":"sysvar_table_open_cache_instances","u":15,"t":1}]},"table_type":{"a":[{"a":"table_type","u":29,"t":2}]},"tcp_keepalive_interval":{"d":true,"t":3,"a":[{"a":"tcp_keepalive_interval","u":29,"t":2}]},"tcp_keepalive_probes":{"d":true,"t":3,"a":[{"a":"tcp_keepalive_probes","u":29,"t":2}]},"tcp_keepalive_time":{"d":true,"t":3,"a":[{"a":"tcp_keepalive_time","u":29,"t":2}]},"tcp_nodelay":{"d":true,"t":2,"a":[{"a":"tcp_nodelay","u":29,"t":2}]},"thread_cache_size":{"d":true,"t":3,"a":[{"a":"thread_cache_size","u":29,"t":2},{"a":"sysvar_thread_cache_size","u":15,"t":1}]},"thread_concurrency":{"d":false,"t":3,"a":[{"a":"thread_concurrency","u":29,"t":2}]},"thread_stack":{"d":false,"t":3,"a":[{"a":"thread_stack","u":29,"t":2},{"a":"sysvar_thread_stack","u":15,"t":1}]},"time_format":{"a":[{"a":"time_format","u":29,"t":2}]},"time_zone":{"d":true,"t":1,"a":[{"a":"time_zone","u":29,"t":2},{"a":"sysvar_time_zone","u":15,"t":1}]},"timed_mutexes":{"d":true,"t":2,"a":[{"a":"timed_mutexes","u":29,"t":2}]},"timestamp":{"d":true,"t":4,"a":[{"a":"timestamp","u":29,"t":2},{"a":"sysvar_timestamp","u":15,"t":1}]},"tmp_disk_table_size":{"d":true,"t":3,"a":[{"a":"tmp_disk_table_size","u":29,"t":2}]},"tmp_memory_table_size":{"a":[{"a":"tmp_memory_table_size","u":29,"t":2}]},"tmp_table_size":{"d":true,"t":3,"a":[{"a":"tmp_table_size","u":29,"t":2},{"a":"sysvar_tmp_table_size","u":15,"t":1}]},"tmpdir":{"d":false,"t":7,"a":[{"a":"tmpdir","u":29,"t":2},{"a":"option_mysqld_tmpdir","u":16,"t":1},{"a":"sysvar_tmpdir","u":15,"t":1}]},"transaction_alloc_block_size":{"d":true,"t":3,"a":[{"a":"transaction_alloc_block_size","u":29,"t":2},{"a":"sysvar_transaction_alloc_block_size","u":15,"t":1}]},"transaction_prealloc_size":{"d":true,"t":3,"a":[{"a":"transaction_prealloc_size","u":29,"t":2},{"a":"sysvar_transaction_prealloc_size","u":15,"t":1}]},"tx_isolation":{"d":true,"t":5,"a":[{"a":"tx_isolation","u":29,"t":2},{"a":"sysvar_tx_isolation","u":15,"t":1}]},"tx_read_only":{"d":true,"t":2,"a":[{"a":"tx_read_only","u":29,"t":2},{"a":"sysvar_tx_read_only","u":15,"t":1}]},"unique_checks":{"d":true,"t":2,"a":[{"a":"unique_checks","u":29,"t":2},{"a":"sysvar_unique_checks","u":15,"t":1}]},"updatable_views_with_limit":{"d":true,"t":2,"a":[{"a":"updatable_views_with_limit","u":29,"t":2},{"a":"sysvar_updatable_views_with_limit","u":15,"t":1}]},"use_stat_tables":{"d":true,"a":[{"a":"use_stat_tables","u":29,"t":2}]},"version":{"d":false,"t":1,"a":[{"a":"version","u":29,"t":2}]},"version_comment":{"d":false,"t":1,"a":[{"a":"version_comment","u":29,"t":2},{"a":"sysvar_version_comment","u":15,"t":1}]},"version_compile_machine":{"d":false,"t":1,"a":[{"a":"version_compile_machine","u":29,"t":2},{"a":"sysvar_version_compile_machine","u":15,"t":1}]},"version_compile_os":{"d":false,"t":1,"a":[{"a":"version_compile_os","u":29,"t":2},{"a":"sysvar_version_compile_os","u":15,"t":1}]},"version_malloc_library":{"d":false,"t":1,"a":[{"a":"version_malloc_library","u":29,"t":2}]},"version_source_revision":{"d":false,"t":1,"a":[{"a":"version_source_revision","u":29,"t":2}]},"wait_timeout":{"d":true,"t":3,"a":[{"a":"wait_timeout","u":29,"t":2},{"a":"sysvar_wait_timeout","u":15,"t":1}]},"warning_count":{"d":false,"t":3,"a":[{"a":"warning_count","u":29,"t":2}]},"Sphinx_error":{"t":3,"a":[{"a":"sphinx_error","u":30,"t":2}]},"Sphinx_time":{"t":3,"a":[{"a":"sphinx_time","u":30,"t":2}]},"Sphinx_total":{"t":3,"a":[{"a":"sphinx_total","u":30,"t":2}]},"Sphinx_total_found":{"t":3,"a":[{"a":"sphinx_total_found","u":30,"t":2}]},"Sphinx_word_count":{"t":3,"a":[{"a":"sphinx_word_count","u":30,"t":2}]},"Sphinx_words":{"t":3,"a":[{"a":"sphinx_words","u":30,"t":2}]},"Spider_direct_aggregate":{"t":3,"a":[{"a":"spider_direct_aggregate","u":31,"t":2}]},"Spider_direct_order_limit":{"t":3,"a":[{"a":"spider_direct_order_limit","u":31,"t":2}]},"Spider_mon_table_cache_version":{"t":3,"a":[{"a":"spider_mon_table_cache_version","u":31,"t":2}]},"Spider_mon_table_cache_version_req":{"t":3,"a":[{"a":"spider_mon_table_cache_version_req","u":31,"t":2}]},"spider_auto_increment_mode":{"d":true,"t":3,"a":[{"a":"spider_auto_increment_mode","u":32,"t":2}]},"spider_bgs_first_read":{"d":true,"t":3,"a":[{"a":"spider_bgs_first_read","u":32,"t":2}]},"spider_bgs_mode":{"d":true,"t":3,"a":[{"a":"spider_bgs_mode","u":32,"t":2}]},"spider_bgs_second_read":{"d":true,"t":3,"a":[{"a":"spider_bgs_second_read","u":32,"t":2}]},"spider_bka_engine":{"d":true,"t":1,"a":[{"a":"spider_bka_engine","u":32,"t":2}]},"spider_bka_mode":{"d":true,"t":3,"a":[{"a":"spider_bka_mode","u":32,"t":2}]},"spider_bka_table_name_type":{"d":true,"t":3,"a":[{"a":"spider_bka_table_name_type","u":32,"t":2}]},"spider_block_size":{"d":true,"t":3,"a":[{"a":"spider_block_size","u":32,"t":2}]},"spider_bulk_size":{"d":true,"t":3,"a":[{"a":"spider_bulk_size","u":32,"t":2}]},"spider_bulk_update_mode":{"d":true,"t":3,"a":[{"a":"spider_bulk_update_mode","u":32,"t":2}]},"spider_bulk_update_size":{"d":true,"t":3,"a":[{"a":"spider_bulk_update_size","u":32,"t":2}]},"spider_casual_read":{"d":true,"t":3,"a":[{"a":"spider_casual_read","u":32,"t":2}]},"spider_conn_recycle_mode":{"d":true,"t":3,"a":[{"a":"spider_conn_recycle_mode","u":32,"t":2}]},"spider_conn_recycle_strict":{"d":true,"t":3,"a":[{"a":"spider_conn_recycle_strict","u":32,"t":2}]},"spider_conn_wait_timeout":{"d":true,"t":3,"a":[{"a":"spider_conn_wait_timeout","u":32,"t":2}]},"spider_connect_error_interval":{"d":true,"t":3,"a":[{"a":"spider_connect_error_interval","u":32,"t":2}]},"spider_connect_mutex":{"d":true,"t":2,"a":[{"a":"spider_connect_mutex","u":32,"t":2}]},"spider_connect_retry_count":{"d":true,"t":3,"a":[{"a":"spider_connect_retry_count","u":32,"t":2}]},"spider_connect_retry_interval":{"d":true,"t":3,"a":[{"a":"spider_connect_retry_interval","u":32,"t":2}]},"spider_connect_timeout":{"d":true,"t":3,"a":[{"a":"spider_connect_timeout","u":32,"t":2}]},"spider_crd_bg_mode":{"d":true,"t":3,"a":[{"a":"spider_crd_bg_mode","u":32,"t":2}]},"spider_crd_interval":{"d":true,"t":3,"a":[{"a":"spider_crd_interval","u":32,"t":2}]},"spider_crd_mode":{"d":true,"t":3,"a":[{"a":"spider_crd_mode","u":32,"t":2}]},"spider_crd_sync":{"d":true,"t":3,"a":[{"a":"spider_crd_sync","u":32,"t":2}]},"spider_crd_type":{"d":true,"t":3,"a":[{"a":"spider_crd_type","u":32,"t":2}]},"spider_crd_weight":{"d":true,"t":3,"a":[{"a":"spider_crd_weight","u":32,"t":2}]},"spider_delete_all_rows_type":{"d":true,"t":3,"a":[{"a":"spider_delete_all_rows_type","u":32,"t":2}]},"spider_direct_dup_insert":{"d":true,"t":3,"a":[{"a":"spider_direct_dup_insert","u":32,"t":2}]},"spider_direct_order_limit":{"d":true,"t":3,"a":[{"a":"spider_direct_order_limit","u":32,"t":2}]},"spider_dry_access":{"d":false,"t":2,"a":[{"a":"spider_dry_access","u":32,"t":2}]},"spider_error_read_mode":{"d":true,"t":3,"a":[{"a":"spider_error_read_mode","u":32,"t":2}]},"spider_error_write_mode":{"d":true,"t":3,"a":[{"a":"spider_error_write_mode","u":32,"t":2}]},"spider_first_read":{"d":true,"t":3,"a":[{"a":"spider_first_read","u":32,"t":2}]},"spider_force_commit":{"d":true,"t":3,"a":[{"a":"spider_force_commit","u":32,"t":2}]},"spider_general_log":{"d":true,"t":2,"a":[{"a":"spider_general_log","u":32,"t":2}]},"spider_index_hint_pushdown":{"d":true,"t":2,"a":[{"a":"spider_index_hint_pushdown","u":32,"t":2}]},"spider_init_sql_alloc_size":{"d":true,"t":3,"a":[{"a":"spider_init_sql_alloc_size","u":32,"t":2}]},"spider_internal_limit":{"d":true,"t":3,"a":[{"a":"spider_internal_limit","u":32,"t":2}]},"spider_internal_offset":{"d":true,"t":3,"a":[{"a":"spider_internal_offset","u":32,"t":2}]},"spider_internal_optimize":{"d":true,"t":3,"a":[{"a":"spider_internal_optimize","u":32,"t":2}]},"spider_internal_optimize_local":{"a":[{"a":"spider_internal_optimize_local","u":32,"t":2}]},"spider_internal_sql_log_off":{"d":true,"t":2,"a":[{"a":"spider_internal_sql_log_off","u":32,"t":2}]},"spider_internal_unlock":{"t":2,"a":[{"a":"spider_internal_unlock","u":32,"t":2}]},"spider_internal_xa":{"d":true,"t":2,"a":[{"a":"spider_internal_xa","u":32,"t":2}]},"spider_internal_xa_id_type":{"d":true,"t":3,"a":[{"a":"spider_internal_xa_id_type","u":32,"t":2}]},"spider_internal_xa_snapshot":{"d":true,"t":3,"a":[{"a":"spider_internal_xa_snapshot","u":32,"t":2}]},"spider_load_crd_at_startup":{"d":true,"t":2,"a":[{"a":"spider_load_crd_at_startup","u":32,"t":2}]},"spider_load_sts_at_startup":{"d":true,"t":2,"a":[{"a":"spider_load_sts_at_startup","u":32,"t":2}]},"spider_local_lock_table":{"d":true,"t":2,"a":[{"a":"spider_local_lock_table","u":32,"t":2}]},"spider_lock_exchange":{"d":true,"t":2,"a":[{"a":"spider_lock_exchange","u":32,"t":2}]},"spider_log_result_error_with_sql":{"d":true,"t":3,"a":[{"a":"spider_log_result_error_with_sql","u":32,"t":2}]},"spider_log_result_errors":{"d":true,"t":3,"a":[{"a":"spider_log_result_errors","u":32,"t":2}]},"spider_low_mem_read":{"t":3,"a":[{"a":"spider_low_mem_read","u":32,"t":2}]},"spider_max_connections":{"d":true,"t":3,"a":[{"a":"spider_max_connections","u":32,"t":2}]},"spider_max_order":{"d":true,"t":3,"a":[{"a":"spider_max_order","u":32,"t":2}]},"spider_multi_split_read":{"d":true,"t":3,"a":[{"a":"spider_multi_split_read","u":32,"t":2}]},"spider_net_read_timeout":{"d":true,"t":3,"a":[{"a":"spider_net_read_timeout","u":32,"t":2}]},"spider_net_write_timeout":{"d":true,"t":3,"a":[{"a":"spider_net_write_timeout","u":32,"t":2}]},"spider_ping_interval_at_trx_start":{"d":true,"t":3,"a":[{"a":"spider_ping_interval_at_trx_start","u":32,"t":2}]},"spider_quick_mode":{"d":true,"t":3,"a":[{"a":"spider_quick_mode","u":32,"t":2}]},"spider_quick_page_size":{"d":true,"t":3,"a":[{"a":"spider_quick_page_size","u":32,"t":2}]},"spider_read_only_mode":{"d":true,"t":3,"a":[{"a":"spider_read_only_mode","u":32,"t":2}]},"spider_remote_access_charset":{"d":true,"t":1,"a":[{"a":"spider_remote_access_charset","u":32,"t":2}]},"spider_remote_autocommit":{"d":true,"t":3,"a":[{"a":"spider_remote_autocommit","u":32,"t":2}]},"spider_remote_default_database":{"d":true,"t":1,"a":[{"a":"spider_remote_default_database","u":32,"t":2}]},"spider_remote_sql_log_off":{"d":true,"t":3,"a":[{"a":"spider_remote_sql_log_off","u":32,"t":2}]},"spider_remote_time_zone":{"d":true,"t":1,"a":[{"a":"spider_remote_time_zone","u":32,"t":2}]},"spider_remote_trx_isolation":{"d":true,"t":3,"a":[{"a":"spider_remote_trx_isolation","u":32,"t":2}]},"spider_reset_sql_alloc":{"d":true,"t":3,"a":[{"a":"spider_reset_sql_alloc","u":32,"t":2}]},"spider_same_server_link":{"d":true,"t":2,"a":[{"a":"spider_same_server_link","u":32,"t":2}]},"spider_second_read":{"d":true,"t":3,"a":[{"a":"spider_second_read","u":32,"t":2}]},"spider_select_column_mode":{"d":true,"t":3,"a":[{"a":"spider_select_column_mode","u":32,"t":2}]},"spider_selupd_lock_mode":{"d":true,"t":3,"a":[{"a":"spider_selupd_lock_mode","u":32,"t":2}]},"spider_semi_split_read":{"d":true,"t":3,"a":[{"a":"spider_semi_split_read","u":32,"t":2}]},"spider_semi_split_read_limit":{"d":true,"t":3,"a":[{"a":"spider_semi_split_read_limit","u":32,"t":2}]},"spider_semi_table_lock":{"d":true,"t":3,"a":[{"a":"spider_semi_table_lock","u":32,"t":2}]},"spider_semi_table_lock_connection":{"d":true,"t":3,"a":[{"a":"spider_semi_table_lock_connection","u":32,"t":2}]},"spider_semi_trx":{"d":true,"t":2,"a":[{"a":"spider_semi_trx","u":32,"t":2}]},"spider_semi_trx_isolation":{"d":true,"t":3,"a":[{"a":"spider_semi_trx_isolation","u":32,"t":2}]},"spider_skip_default_condition":{"d":true,"t":3,"a":[{"a":"spider_skip_default_condition","u":32,"t":2}]},"spider_skip_parallel_search":{"d":true,"t":3,"a":[{"a":"spider_skip_parallel_search","u":32,"t":2}]},"spider_split_read":{"d":true,"t":3,"a":[{"a":"spider_split_read","u":32,"t":2}]},"spider_store_last_crd":{"d":true,"t":3,"a":[{"a":"spider_store_last_crd","u":32,"t":2}]},"spider_store_last_sts":{"d":true,"t":3,"a":[{"a":"spider_store_last_sts","u":32,"t":2}]},"spider_sts_bg_mode":{"d":true,"t":3,"a":[{"a":"spider_sts_bg_mode","u":32,"t":2}]},"spider_sts_interval":{"d":true,"t":3,"a":[{"a":"spider_sts_interval","u":32,"t":2}]},"spider_sts_mode":{"d":true,"t":3,"a":[{"a":"spider_sts_mode","u":32,"t":2}]},"spider_sts_sync":{"d":true,"t":3,"a":[{"a":"spider_sts_sync","u":32,"t":2}]},"spider_support_xa":{"d":false,"t":2,"a":[{"a":"spider_support_xa","u":32,"t":2}]},"spider_sync_autocommit":{"d":true,"t":2,"a":[{"a":"spider_sync_autocommit","u":32,"t":2}]},"spider_sync_time_zone":{"d":true,"t":2,"a":[{"a":"spider_sync_time_zone","u":32,"t":2}]},"spider_sync_trx_isolation":{"d":true,"t":2,"a":[{"a":"spider_sync_trx_isolation","u":32,"t":2}]},"spider_table_crd_thread_count":{"d":false,"t":3,"a":[{"a":"spider_table_crd_thread_count","u":32,"t":2}]},"spider_table_init_error_interval":{"d":true,"t":3,"a":[{"a":"spider_table_init_error_interval","u":32,"t":2}]},"spider_table_sts_thread_count":{"d":false,"t":3,"a":[{"a":"spider_table_sts_thread_count","u":32,"t":2}]},"spider_udf_ct_bulk_insert_interval":{"d":true,"t":3,"a":[{"a":"spider_udf_ct_bulk_insert_interval","u":32,"t":2}]},"spider_udf_ct_bulk_insert_rows":{"d":true,"t":3,"a":[{"a":"spider_udf_ct_bulk_insert_rows","u":32,"t":2}]},"spider_udf_ds_bulk_insert_rows":{"d":true,"t":3,"a":[{"a":"spider_udf_ds_bulk_insert_rows","u":32,"t":2}]},"spider_udf_ds_table_loop_mode":{"d":true,"t":3,"a":[{"a":"spider_udf_ds_table_loop_mode","u":32,"t":2}]},"spider_udf_ds_use_real_table":{"d":true,"t":3,"a":[{"a":"spider_udf_ds_use_real_table","u":32,"t":2}]},"spider_udf_table_lock_mutex_count":{"d":false,"t":3,"a":[{"a":"spider_udf_table_lock_mutex_count","u":32,"t":2}]},"spider_udf_table_mon_mutex_count":{"d":false,"t":3,"a":[{"a":"spider_udf_table_mon_mutex_count","u":32,"t":2}]},"spider_use_all_conns_snapshot":{"d":true,"t":2,"a":[{"a":"spider_use_all_conns_snapshot","u":32,"t":2}]},"spider_use_consistent_snapshot":{"d":true,"t":2,"a":[{"a":"spider_use_consistent_snapshot","u":32,"t":2}]},"spider_use_default_database":{"d":true,"t":2,"a":[{"a":"spider_use_default_database","u":32,"t":2}]},"spider_use_flash_logs":{"d":true,"t":2,"a":[{"a":"spider_use_flash_logs","u":32,"t":2}]},"spider_use_handler":{"a":[{"a":"spider_use_handler","u":32,"t":2}]},"spider_use_pushdown_udf":{"d":true,"t":3,"a":[{"a":"spider_use_pushdown_udf","u":32,"t":2}]},"spider_use_snapshot_with_flush_tables":{"d":true,"t":3,"a":[{"a":"spider_use_snapshot_with_flush_tables","u":32,"t":2}]},"spider_use_table_charset":{"d":true,"t":3,"a":[{"a":"spider_use_table_charset","u":32,"t":2}]},"spider_version":{"d":false,"t":1,"a":[{"a":"spider_version","u":32,"t":2}]},"spider_xa_register_mode":{"d":true,"t":3,"a":[{"a":"spider_xa_register_mode","u":32,"t":2}]},"Ssl_accept_renegotiates":{"t":3,"a":[{"a":"ssl_accept_renegotiates","u":33,"t":2}]},"Ssl_accepts":{"t":3,"a":[{"a":"ssl_accepts","u":33,"t":2}]},"Ssl_callback_cache_hits":{"t":3,"a":[{"a":"ssl_callback_cache_hits","u":33,"t":2}]},"Ssl_cipher":{"t":1,"a":[{"a":"ssl_cipher","u":33,"t":2}]},"Ssl_cipher_list":{"t":1,"a":[{"a":"ssl_cipher_list","u":33,"t":2}]},"Ssl_client_connects":{"t":3,"a":[{"a":"ssl_client_connects","u":33,"t":2}]},"Ssl_connect_renegotiates":{"t":3,"a":[{"a":"ssl_connect_renegotiates","u":33,"t":2}]},"Ssl_ctx_verify_depth":{"t":3,"a":[{"a":"ssl_ctx_verify_depth","u":33,"t":2}]},"Ssl_ctx_verify_mode":{"t":3,"a":[{"a":"ssl_ctx_verify_mode","u":33,"t":2}]},"Ssl_default_timeout":{"t":3,"a":[{"a":"ssl_default_timeout","u":33,"t":2}]},"Ssl_finished_accepts":{"t":3,"a":[{"a":"ssl_finished_accepts","u":33,"t":2}]},"Ssl_finished_connects":{"t":3,"a":[{"a":"ssl_finished_connects","u":33,"t":2}]},"Ssl_server_not_after":{"t":3,"a":[{"a":"ssl_server_not_after","u":33,"t":2}]},"Ssl_server_not_before":{"t":3,"a":[{"a":"ssl_server_not_before","u":33,"t":2}]},"Ssl_session_cache_hits":{"t":3,"a":[{"a":"ssl_session_cache_hits","u":33,"t":2}]},"Ssl_session_cache_misses":{"t":3,"a":[{"a":"ssl_session_cache_misses","u":33,"t":2}]},"Ssl_session_cache_mode":{"t":1,"a":[{"a":"ssl_session_cache_mode","u":33,"t":2}]},"Ssl_session_cache_overflows":{"t":3,"a":[{"a":"ssl_session_cache_overflows","u":33,"t":2}]},"Ssl_session_cache_size":{"t":3,"a":[{"a":"ssl_session_cache_size","u":33,"t":2}]},"Ssl_session_cache_timeouts":{"t":3,"a":[{"a":"ssl_session_cache_timeouts","u":33,"t":2}]},"Ssl_sessions_reused":{"t":3,"a":[{"a":"ssl_sessions_reused","u":33,"t":2}]},"Ssl_used_session_cache_entries":{"t":3,"a":[{"a":"ssl_used_session_cache_entries","u":33,"t":2}]},"Ssl_verify_depth":{"t":3,"a":[{"a":"ssl_verify_depth","u":33,"t":2}]},"Ssl_verify_mode":{"t":3,"a":[{"a":"ssl_verify_mode","u":33,"t":2}]},"Ssl_version":{"t":1,"a":[{"a":"ssl_version","u":33,"t":2}]},"have_openssl":{"d":false,"a":[{"a":"have_openssl","u":34,"t":2}]},"have_ssl":{"d":false,"t":1,"a":[{"a":"have_ssl","u":34,"t":2},{"a":"sysvar_have_ssl","u":15,"t":1}]},"ssl_ca":{"t":8,"a":[{"a":"ssl_ca","u":34,"t":2},{"a":"sysvar_ssl_ca","u":15,"t":1}]},"ssl_capath":{"t":7,"a":[{"a":"ssl_capath","u":34,"t":2},{"a":"sysvar_ssl_capath","u":15,"t":1}]},"ssl_cert":{"t":8,"a":[{"a":"ssl_cert","u":34,"t":2},{"a":"sysvar_ssl_cert","u":15,"t":1}]},"ssl_cipher":{"t":1,"a":[{"a":"ssl_cipher","u":34,"t":2},{"a":"sysvar_ssl_cipher","u":15,"t":1}]},"ssl_crl":{"t":8,"a":[{"a":"ssl_crl","u":34,"t":2},{"a":"sysvar_ssl_crl","u":15,"t":1}]},"ssl_crlpath":{"t":7,"a":[{"a":"ssl_crlpath","u":34,"t":2},{"a":"sysvar_ssl_crlpath","u":15,"t":1}]},"ssl_key":{"a":[{"a":"ssl_key","u":34,"t":2},{"a":"sysvar_ssl_key","u":15,"t":1}]},"tls_version":{"t":1,"a":[{"a":"tls_version","u":34,"t":2},{"a":"sysvar_tls_version","u":15,"t":1}]},"version_ssl_library":{"d":false,"t":1,"a":[{"a":"version_ssl_library","u":34,"t":2}]},"extra_max_connections":{"d":true,"t":3,"a":[{"a":"extra_max_connections","u":35,"t":2}]},"extra_port":{"d":false,"t":3,"a":[{"a":"extra_port","u":35,"t":2}]},"thread_handling":{"d":false,"t":5,"a":[{"a":"thread_handling","u":35,"t":2},{"a":"sysvar_thread_handling","u":15,"t":1}]},"thread_pool_dedicated_listener":{"d":false,"t":2,"a":[{"a":"thread_pool_dedicated_listener","u":35,"t":2}]},"thread_pool_exact_stats":{"d":false,"t":2,"a":[{"a":"thread_pool_exact_stats","u":35,"t":2}]},"thread_pool_idle_timeout":{"d":true,"t":3,"a":[{"a":"thread_pool_idle_timeout","u":35,"t":2}]},"thread_pool_max_threads":{"d":true,"t":3,"a":[{"a":"thread_pool_max_threads","u":35,"t":2}]},"thread_pool_min_threads":{"t":3,"a":[{"a":"thread_pool_min_threads","u":35,"t":2}]},"thread_pool_oversubscribe":{"d":true,"t":3,"a":[{"a":"thread_pool_oversubscribe","u":35,"t":2}]},"thread_pool_prio_kickup_timer":{"d":true,"t":3,"a":[{"a":"thread_pool_prio_kickup_timer","u":35,"t":2},{"a":"sysvar_thread_pool_prio_kickup_timer","u":15,"t":1}]},"thread_pool_priority":{"a":[{"a":"thread_pool_priority","u":35,"t":2}]},"thread_pool_size":{"t":3,"a":[{"a":"thread_pool_size","u":35,"t":2},{"a":"sysvar_thread_pool_size","u":15,"t":1}]},"thread_pool_stall_limit":{"d":true,"t":3,"a":[{"a":"thread_pool_stall_limit","u":35,"t":2},{"a":"sysvar_thread_pool_stall_limit","u":15,"t":1}]},"Threadpool_idle_threads":{"t":3,"a":[{"a":"threadpool_idle_threads","u":35,"t":2}]},"Threadpool_threads":{"t":3,"a":[{"a":"threadpool_threads","u":35,"t":2}]},"Tokudb_basement_deserialization_fixed_key":{"t":3,"a":[{"a":"tokudb_basement_deserialization_fixed_key","u":36,"t":2}]},"Tokudb_basement_deserialization_variable_key":{"t":3,"a":[{"a":"tokudb_basement_deserialization_variable_key","u":36,"t":2}]},"Tokudb_basements_decompressed_for_write":{"t":3,"a":[{"a":"tokudb_basements_decompressed_for_write","u":36,"t":2}]},"Tokudb_basements_decompressed_prefetch":{"t":3,"a":[{"a":"tokudb_basements_decompressed_prefetch","u":36,"t":2}]},"Tokudb_basements_decompressed_prelocked_range":{"t":3,"a":[{"a":"tokudb_basements_decompressed_prelocked_range","u":36,"t":2}]},"Tokudb_basements_decompressed_target_query":{"t":3,"a":[{"a":"tokudb_basements_decompressed_target_query","u":36,"t":2}]},"Tokudb_basements_fetched_for_write":{"t":3,"a":[{"a":"tokudb_basements_fetched_for_write","u":36,"t":2}]},"Tokudb_basements_fetched_for_write_bytes":{"a":[{"a":"tokudb_basements_fetched_for_write_bytes","u":36,"t":2}]},"Tokudb_basements_fetched_for_write_seconds":{"t":3,"a":[{"a":"tokudb_basements_fetched_for_write_seconds","u":36,"t":2}]},"Tokudb_basements_fetched_prefetch":{"t":3,"a":[{"a":"tokudb_basements_fetched_prefetch","u":36,"t":2}]},"Tokudb_basements_fetched_prefetch_bytes":{"a":[{"a":"tokudb_basements_fetched_prefetch_bytes","u":36,"t":2}]},"Tokudb_basements_fetched_prefetch_seconds":{"t":3,"a":[{"a":"tokudb_basements_fetched_prefetch_seconds","u":36,"t":2}]},"Tokudb_basements_fetched_prelocked_range":{"t":3,"a":[{"a":"tokudb_basements_fetched_prelocked_range","u":36,"t":2}]},"Tokudb_basements_fetched_prelocked_range_bytes":{"a":[{"a":"tokudb_basements_fetched_prelocked_range_bytes","u":36,"t":2}]},"Tokudb_basements_fetched_prelocked_range_seconds":{"t":3,"a":[{"a":"tokudb_basements_fetched_prelocked_range_seconds","u":36,"t":2}]},"Tokudb_basements_fetched_target_query":{"t":3,"a":[{"a":"tokudb_basements_fetched_target_query","u":36,"t":2}]},"Tokudb_basements_fetched_target_query_bytes":{"a":[{"a":"tokudb_basements_fetched_target_query_bytes","u":36,"t":2}]},"Tokudb_basements_fetched_target_query_seconds":{"t":3,"a":[{"a":"tokudb_basements_fetched_target_query_seconds","u":36,"t":2}]},"Tokudb_broadcase_messages_injected_at_root":{"t":3,"a":[{"a":"tokudb_broadcase_messages_injected_at_root","u":36,"t":2}]},"Tokudb_buffers_decompressed_for_write":{"t":3,"a":[{"a":"tokudb_buffers_decompressed_for_write","u":36,"t":2}]},"Tokudb_buffers_decompressed_prefetch":{"t":3,"a":[{"a":"tokudb_buffers_decompressed_prefetch","u":36,"t":2}]},"Tokudb_buffers_decompressed_prelocked_range":{"t":3,"a":[{"a":"tokudb_buffers_decompressed_prelocked_range","u":36,"t":2}]},"Tokudb_buffers_decompressed_target_query":{"t":3,"a":[{"a":"tokudb_buffers_decompressed_target_query","u":36,"t":2}]},"Tokudb_buffers_fetched_for_write":{"t":3,"a":[{"a":"tokudb_buffers_fetched_for_write","u":36,"t":2}]},"Tokudb_buffers_fetched_for_write_bytes":{"a":[{"a":"tokudb_buffers_fetched_for_write_bytes","u":36,"t":2}]},"Tokudb_buffers_fetched_for_write_seconds":{"t":3,"a":[{"a":"tokudb_buffers_fetched_for_write_seconds","u":36,"t":2}]},"Tokudb_buffers_fetched_prefetch":{"t":3,"a":[{"a":"tokudb_buffers_fetched_prefetch","u":36,"t":2}]},"Tokudb_buffers_fetched_prefetch_bytes":{"a":[{"a":"tokudb_buffers_fetched_prefetch_bytes","u":36,"t":2}]},"Tokudb_buffers_fetched_prefetch_seconds":{"t":3,"a":[{"a":"tokudb_buffers_fetched_prefetch_seconds","u":36,"t":2}]},"Tokudb_buffers_fetched_prelocked_range":{"t":3,"a":[{"a":"tokudb_buffers_fetched_prelocked_range","u":36,"t":2}]},"Tokudb_buffers_fetched_prelocked_range_bytes":{"a":[{"a":"tokudb_buffers_fetched_prelocked_range_bytes","u":36,"t":2}]},"Tokudb_buffers_fetched_prelocked_range_seconds":{"t":3,"a":[{"a":"tokudb_buffers_fetched_prelocked_range_seconds","u":36,"t":2}]},"Tokudb_buffers_fetched_target_query":{"t":3,"a":[{"a":"tokudb_buffers_fetched_target_query","u":36,"t":2}]},"Tokudb_buffers_fetched_target_query_bytes":{"a":[{"a":"tokudb_buffers_fetched_target_query_bytes","u":36,"t":2}]},"Tokudb_buffers_fetched_target_query_seconds":{"t":3,"a":[{"a":"tokudb_buffers_fetched_target_query_seconds","u":36,"t":2}]},"Tokudb_cachetable_cleaner_executions":{"t":3,"a":[{"a":"tokudb_cachetable_cleaner_executions","u":36,"t":2}]},"Tokudb_cachetable_cleaner_iterations":{"t":3,"a":[{"a":"tokudb_cachetable_cleaner_iterations","u":36,"t":2}]},"Tokudb_cachetable_cleaner_period":{"t":3,"a":[{"a":"tokudb_cachetable_cleaner_period","u":36,"t":2}]},"Tokudb_cachetable_evictions":{"t":3,"a":[{"a":"tokudb_cachetable_evictions","u":36,"t":2}]},"Tokudb_cachetable_long_wait_pressure_count":{"t":3,"a":[{"a":"tokudb_cachetable_long_wait_pressure_count","u":36,"t":2}]},"Tokudb_cachetable_long_wait_pressure_time":{"t":3,"a":[{"a":"tokudb_cachetable_long_wait_pressure_time","u":36,"t":2}]},"Tokudb_cachetable_miss":{"t":3,"a":[{"a":"tokudb_cachetable_miss","u":36,"t":2}]},"Tokudb_cachetable_miss_time":{"t":3,"a":[{"a":"tokudb_cachetable_miss_time","u":36,"t":2}]},"Tokudb_cachetable_prefetches":{"t":3,"a":[{"a":"tokudb_cachetable_prefetches","u":36,"t":2}]},"Tokudb_cachetable_size_cachepressure":{"t":9,"a":[{"a":"tokudb_cachetable_size_cachepressure","u":36,"t":2}]},"Tokudb_cachetable_size_cloned":{"t":9,"a":[{"a":"tokudb_cachetable_size_cloned","u":36,"t":2}]},"Tokudb_cachetable_size_current":{"t":9,"a":[{"a":"tokudb_cachetable_size_current","u":36,"t":2}]},"Tokudb_cachetable_size_leaf":{"t":9,"a":[{"a":"tokudb_cachetable_size_leaf","u":36,"t":2}]},"Tokudb_cachetable_size_limit":{"t":9,"a":[{"a":"tokudb_cachetable_size_limit","u":36,"t":2}]},"Tokudb_cachetable_size_nonleaf":{"t":9,"a":[{"a":"tokudb_cachetable_size_nonleaf","u":36,"t":2}]},"Tokudb_cachetable_size_rollback":{"t":9,"a":[{"a":"tokudb_cachetable_size_rollback","u":36,"t":2}]},"Tokudb_cachetable_size_writing":{"t":9,"a":[{"a":"tokudb_cachetable_size_writing","u":36,"t":2}]},"Tokudb_cachetable_wait_pressure_count":{"t":3,"a":[{"a":"tokudb_cachetable_wait_pressure_count","u":36,"t":2}]},"Tokudb_cachetable_wait_pressure_time":{"t":3,"a":[{"a":"tokudb_cachetable_wait_pressure_time","u":36,"t":2}]},"Tokudb_checkpoint_begin_time":{"t":3,"a":[{"a":"tokudb_checkpoint_begin_time","u":36,"t":2}]},"Tokudb_checkpoint_duration":{"t":3,"a":[{"a":"tokudb_checkpoint_duration","u":36,"t":2}]},"Tokudb_checkpoint_duration_last":{"t":3,"a":[{"a":"tokudb_checkpoint_duration_last","u":36,"t":2}]},"Tokudb_checkpoint_failed":{"t":3,"a":[{"a":"tokudb_checkpoint_failed","u":36,"t":2}]},"Tokudb_checkpoint_last_began":{"a":[{"a":"tokudb_checkpoint_last_began","u":36,"t":2}]},"Tokudb_checkpoint_last_complete_began":{"a":[{"a":"tokudb_checkpoint_last_complete_began","u":36,"t":2}]},"Tokudb_checkpoint_last_complete_ended":{"a":[{"a":"tokudb_checkpoint_last_complete_ended","u":36,"t":2}]},"Tokudb_checkpoint_long_begin_count":{"t":3,"a":[{"a":"tokudb_checkpoint_long_begin_count","u":36,"t":2}]},"Tokudb_checkpoint_long_begin_time":{"t":3,"a":[{"a":"tokudb_checkpoint_long_begin_time","u":36,"t":2}]},"Tokudb_checkpoint_period":{"t":3,"a":[{"a":"tokudb_checkpoint_period","u":36,"t":2}]},"Tokudb_checkpoint_taken":{"t":3,"a":[{"a":"tokudb_checkpoint_taken","u":36,"t":2}]},"Tokudb_cursor_skip_deleted_leaf_entry":{"a":[{"a":"tokudb_cursor_skip_deleted_leaf_entry","u":36,"t":2}]},"Tokudb_db_closes":{"t":3,"a":[{"a":"tokudb_db_closes","u":36,"t":2}]},"Tokudb_db_open_current":{"t":3,"a":[{"a":"tokudb_db_open_current","u":36,"t":2}]},"Tokudb_db_open_max":{"t":3,"a":[{"a":"tokudb_db_open_max","u":36,"t":2}]},"Tokudb_db_opens":{"t":3,"a":[{"a":"tokudb_db_opens","u":36,"t":2}]},"Tokudb_descriptor_set":{"t":3,"a":[{"a":"tokudb_descriptor_set","u":36,"t":2}]},"Tokudb_dictionary_broadcast_updates":{"t":3,"a":[{"a":"tokudb_dictionary_broadcast_updates","u":36,"t":2}]},"Tokudb_dictionary_updates":{"t":3,"a":[{"a":"tokudb_dictionary_updates","u":36,"t":2}]},"Tokudb_filesystem_fsync_num":{"t":3,"a":[{"a":"tokudb_filesystem_fsync_num","u":36,"t":2}]},"Tokudb_filesystem_fsync_time":{"t":3,"a":[{"a":"tokudb_filesystem_fsync_time","u":36,"t":2}]},"Tokudb_filesystem_long_fsync_num":{"t":3,"a":[{"a":"tokudb_filesystem_long_fsync_num","u":36,"t":2}]},"Tokudb_filesystem_long_fsync_time":{"t":3,"a":[{"a":"tokudb_filesystem_long_fsync_time","u":36,"t":2}]},"Tokudb_filesystem_threads_blocked_by_full_disk":{"t":3,"a":[{"a":"tokudb_filesystem_threads_blocked_by_full_disk","u":36,"t":2}]},"Tokudb_leaf_compression_to_memory_seconds":{"t":3,"a":[{"a":"tokudb_leaf_compression_to_memory_seconds","u":36,"t":2}]},"Tokudb_leaf_decompression_to_memory_seconds":{"t":3,"a":[{"a":"tokudb_leaf_decompression_to_memory_seconds","u":36,"t":2}]},"Tokudb_leaf_deserialization_to_memory_seconds":{"t":3,"a":[{"a":"tokudb_leaf_deserialization_to_memory_seconds","u":36,"t":2}]},"Tokudb_leaf_node_compression_ratio":{"a":[{"a":"tokudb_leaf_node_compression_ratio","u":36,"t":2}]},"Tokudb_leaf_node_full_evictions":{"t":3,"a":[{"a":"tokudb_leaf_node_full_evictions","u":36,"t":2}]},"Tokudb_leaf_node_full_evictions_bytes":{"a":[{"a":"tokudb_leaf_node_full_evictions_bytes","u":36,"t":2}]},"Tokudb_leaf_node_partial_evictions":{"t":3,"a":[{"a":"tokudb_leaf_node_partial_evictions","u":36,"t":2}]},"Tokudb_leaf_node_partial_evictions_bytes":{"a":[{"a":"tokudb_leaf_node_partial_evictions_bytes","u":36,"t":2}]},"Tokudb_leaf_nodes_created":{"t":3,"a":[{"a":"tokudb_leaf_nodes_created","u":36,"t":2}]},"Tokudb_leaf_nodes_destroyed":{"t":3,"a":[{"a":"tokudb_leaf_nodes_destroyed","u":36,"t":2}]},"Tokudb_leaf_nodes_flushed_checkpoint":{"t":3,"a":[{"a":"tokudb_leaf_nodes_flushed_checkpoint","u":36,"t":2}]},"Tokudb_leaf_nodes_flushed_checkpoint_bytes":{"t":9,"a":[{"a":"tokudb_leaf_nodes_flushed_checkpoint_bytes","u":36,"t":2}]},"Tokudb_leaf_nodes_flushed_checkpoint_seconds":{"t":3,"a":[{"a":"tokudb_leaf_nodes_flushed_checkpoint_seconds","u":36,"t":2}]},"Tokudb_leaf_nodes_flushed_checkpoint_uncompressed_bytes":{"a":[{"a":"tokudb_leaf_nodes_flushed_checkpoint_uncompressed_bytes","u":36,"t":2}]},"Tokudb_leaf_nodes_flushed_not_checkpoint":{"t":3,"a":[{"a":"tokudb_leaf_nodes_flushed_not_checkpoint","u":36,"t":2}]},"Tokudb_leaf_nodes_flushed_not_checkpoint_bytes":{"t":9,"a":[{"a":"tokudb_leaf_nodes_flushed_not_checkpoint_bytes","u":36,"t":2}]},"Tokudb_leaf_nodes_flushed_not_checkpoint_seconds":{"t":3,"a":[{"a":"tokudb_leaf_nodes_flushed_not_checkpoint_seconds","u":36,"t":2}]},"Tokudb_leaf_nodes_flushed_not_checkpoint_uncompressed_bytes":{"a":[{"a":"tokudb_leaf_nodes_flushed_not_checkpoint_uncompressed_bytes","u":36,"t":2}]},"Tokudb_leaf_serialization_to_memory_seconds":{"t":3,"a":[{"a":"tokudb_leaf_serialization_to_memory_seconds","u":36,"t":2}]},"Tokudb_loader_num_created":{"t":3,"a":[{"a":"tokudb_loader_num_created","u":36,"t":2}]},"Tokudb_loader_num_current":{"t":3,"a":[{"a":"tokudb_loader_num_current","u":36,"t":2}]},"Tokudb_loader_num_max":{"t":3,"a":[{"a":"tokudb_loader_num_max","u":36,"t":2}]},"Tokudb_locktree_escalation_num":{"t":3,"a":[{"a":"tokudb_locktree_escalation_num","u":36,"t":2}]},"Tokudb_locktree_escalation_seconds":{"t":3,"a":[{"a":"tokudb_locktree_escalation_seconds","u":36,"t":2}]},"Tokudb_locktree_latest_post_escalation_memory_size":{"t":9,"a":[{"a":"tokudb_locktree_latest_post_escalation_memory_size","u":36,"t":2}]},"Tokudb_locktree_long_wait_count":{"t":3,"a":[{"a":"tokudb_locktree_long_wait_count","u":36,"t":2}]},"Tokudb_locktree_long_wait_escalation_count":{"t":3,"a":[{"a":"tokudb_locktree_long_wait_escalation_count","u":36,"t":2}]},"Tokudb_locktree_long_wait_escalation_time":{"t":3,"a":[{"a":"tokudb_locktree_long_wait_escalation_time","u":36,"t":2}]},"Tokudb_locktree_long_wait_time":{"t":3,"a":[{"a":"tokudb_locktree_long_wait_time","u":36,"t":2}]},"Tokudb_locktree_memory_size":{"t":9,"a":[{"a":"tokudb_locktree_memory_size","u":36,"t":2}]},"Tokudb_locktree_memory_size_limit":{"t":9,"a":[{"a":"tokudb_locktree_memory_size_limit","u":36,"t":2}]},"Tokudb_locktree_open_current":{"t":3,"a":[{"a":"tokudb_locktree_open_current","u":36,"t":2}]},"Tokudb_locktree_pending_lock_requests":{"t":3,"a":[{"a":"tokudb_locktree_pending_lock_requests","u":36,"t":2}]},"Tokudb_locktree_sto_eligible_num":{"t":3,"a":[{"a":"tokudb_locktree_sto_eligible_num","u":36,"t":2}]},"Tokudb_locktree_sto_ended_num":{"t":3,"a":[{"a":"tokudb_locktree_sto_ended_num","u":36,"t":2}]},"Tokudb_locktree_sto_ended_seconds":{"t":3,"a":[{"a":"tokudb_locktree_sto_ended_seconds","u":36,"t":2}]},"Tokudb_locktree_timeout_count":{"t":3,"a":[{"a":"tokudb_locktree_timeout_count","u":36,"t":2}]},"Tokudb_locktree_wait_count":{"t":3,"a":[{"a":"tokudb_locktree_wait_count","u":36,"t":2}]},"Tokudb_locktree_wait_escalation_count":{"t":3,"a":[{"a":"tokudb_locktree_wait_escalation_count","u":36,"t":2}]},"Tokudb_locktree_wait_escalation_time":{"t":3,"a":[{"a":"tokudb_locktree_wait_escalation_time","u":36,"t":2}]},"Tokudb_locktree_wait_time":{"t":3,"a":[{"a":"tokudb_locktree_wait_time","u":36,"t":2}]},"Tokudb_logger_wait_long":{"a":[{"a":"tokudb_logger_wait_long","u":36,"t":2}]},"Tokudb_logger_writes":{"t":3,"a":[{"a":"tokudb_logger_writes","u":36,"t":2}]},"Tokudb_logger_writes_bytes":{"a":[{"a":"tokudb_logger_writes_bytes","u":36,"t":2}]},"Tokudb_logger_writes_seconds":{"t":3,"a":[{"a":"tokudb_logger_writes_seconds","u":36,"t":2}]},"Tokudb_logger_writes_uncompressed_bytes":{"a":[{"a":"tokudb_logger_writes_uncompressed_bytes","u":36,"t":2}]},"Tokudb_mem_estimated_maximum_memory_footprint":{"a":[{"a":"tokudb_mem_estimated_maximum_memory_footprint","u":36,"t":2}]},"Tokudb_messages_flushed_from_h1_to_leaves_bytes":{"a":[{"a":"tokudb_messages_flushed_from_h1_to_leaves_bytes","u":36,"t":2}]},"Tokudb_messages_ignored_by_leaf_due_to_msn":{"t":3,"a":[{"a":"tokudb_messages_ignored_by_leaf_due_to_msn","u":36,"t":2}]},"Tokudb_messages_in_trees_estimate_bytes":{"a":[{"a":"tokudb_messages_in_trees_estimate_bytes","u":36,"t":2}]},"Tokudb_messages_injected_at_root":{"t":3,"a":[{"a":"tokudb_messages_injected_at_root","u":36,"t":2}]},"Tokudb_messages_injected_at_root_bytes":{"a":[{"a":"tokudb_messages_injected_at_root_bytes","u":36,"t":2}]},"Tokudb_nonleaf_compression_to_memory_seconds":{"t":3,"a":[{"a":"tokudb_nonleaf_compression_to_memory_seconds","u":36,"t":2}]},"Tokudb_nonleaf_decompression_to_memory_seconds":{"t":3,"a":[{"a":"tokudb_nonleaf_decompression_to_memory_seconds","u":36,"t":2}]},"Tokudb_nonleaf_deserialization_to_memory_seconds":{"t":3,"a":[{"a":"tokudb_nonleaf_deserialization_to_memory_seconds","u":36,"t":2}]},"Tokudb_nonleaf_node_compression_ratio":{"a":[{"a":"tokudb_nonleaf_node_compression_ratio","u":36,"t":2}]},"Tokudb_nonleaf_node_full_evictions":{"t":3,"a":[{"a":"tokudb_nonleaf_node_full_evictions","u":36,"t":2}]},"Tokudb_nonleaf_node_full_evictions_bytes":{"a":[{"a":"tokudb_nonleaf_node_full_evictions_bytes","u":36,"t":2}]},"Tokudb_nonleaf_node_partial_evictions":{"t":3,"a":[{"a":"tokudb_nonleaf_node_partial_evictions","u":36,"t":2}]},"Tokudb_nonleaf_node_partial_evictions_bytes":{"a":[{"a":"tokudb_nonleaf_node_partial_evictions_bytes","u":36,"t":2}]},"Tokudb_nonleaf_nodes_created":{"t":3,"a":[{"a":"tokudb_nonleaf_nodes_created","u":36,"t":2}]},"Tokudb_nonleaf_nodes_destroyed":{"t":3,"a":[{"a":"tokudb_nonleaf_nodes_destroyed","u":36,"t":2}]},"Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint":{"t":3,"a":[{"a":"tokudb_nonleaf_nodes_flushed_to_disk_checkpoint","u":36,"t":2}]},"Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_bytes":{"t":9,"a":[{"a":"tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_bytes","u":36,"t":2}]},"Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_seconds":{"t":3,"a":[{"a":"tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_seconds","u":36,"t":2}]},"Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_uncompressed_bytes":{"a":[{"a":"tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_uncompressed_bytes","u":36,"t":2}]},"Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint":{"t":3,"a":[{"a":"tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint","u":36,"t":2}]},"Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_bytes":{"t":9,"a":[{"a":"tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_bytes","u":36,"t":2}]},"Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_seconds":{"t":3,"a":[{"a":"tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_seconds","u":36,"t":2}]},"Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_uncompressed_bytes":{"a":[{"a":"tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_uncompressed_bytes","u":36,"t":2}]},"Tokudb_nonleaf_serialization_to_memory_seconds":{"t":3,"a":[{"a":"tokudb_nonleaf_serialization_to_memory_seconds","u":36,"t":2}]},"Tokudb_overall_node_compression_ratio":{"a":[{"a":"tokudb_overall_node_compression_ratio","u":36,"t":2}]},"Tokudb_pivots_fetched_for_query":{"t":3,"a":[{"a":"tokudb_pivots_fetched_for_query","u":36,"t":2}]},"Tokudb_pivots_fetched_for_query_bytes":{"t":9,"a":[{"a":"tokudb_pivots_fetched_for_query_bytes","u":36,"t":2}]},"Tokudb_pivots_fetched_for_query_seconds":{"t":3,"a":[{"a":"tokudb_pivots_fetched_for_query_seconds","u":36,"t":2}]},"Tokudb_pivots_fetched_for_prefetch":{"t":3,"a":[{"a":"tokudb_pivots_fetched_for_prefetch","u":36,"t":2}]},"Tokudb_pivots_fetched_for_prefetch_bytes":{"t":9,"a":[{"a":"tokudb_pivots_fetched_for_prefetch_bytes","u":36,"t":2}]},"Tokudb_pivots_fetched_for_prefetch_seconds":{"t":3,"a":[{"a":"tokudb_pivots_fetched_for_prefetch_seconds","u":36,"t":2}]},"Tokudb_pivots_fetched_for_write":{"t":3,"a":[{"a":"tokudb_pivots_fetched_for_write","u":36,"t":2}]},"Tokudb_pivots_fetched_for_write_bytes":{"t":9,"a":[{"a":"tokudb_pivots_fetched_for_write_bytes","u":36,"t":2}]},"Tokudb_pivots_fetched_for_write_seconds":{"t":3,"a":[{"a":"tokudb_pivots_fetched_for_write_seconds","u":36,"t":2}]},"Tokudb_promotion_h1_roots_injected_into":{"t":3,"a":[{"a":"tokudb_promotion_h1_roots_injected_into","u":36,"t":2}]},"Tokudb_promotion_injections_at_depth_0":{"t":3,"a":[{"a":"tokudb_promotion_injections_at_depth_0","u":36,"t":2}]},"Tokudb_promotion_injections_at_depth_1":{"t":3,"a":[{"a":"tokudb_promotion_injections_at_depth_1","u":36,"t":2}]},"Tokudb_promotion_injections_at_depth_2":{"t":3,"a":[{"a":"tokudb_promotion_injections_at_depth_2","u":36,"t":2}]},"Tokudb_promotion_injections_at_depth_3":{"t":3,"a":[{"a":"tokudb_promotion_injections_at_depth_3","u":36,"t":2}]},"Tokudb_promotion_injections_lower_than_depth_3":{"t":3,"a":[{"a":"tokudb_promotion_injections_lower_than_depth_3","u":36,"t":2}]},"Tokudb_promotion_leaf_roots_injected_into":{"t":3,"a":[{"a":"tokudb_promotion_leaf_roots_injected_into","u":36,"t":2}]},"Tokudb_promotion_roots_split":{"t":3,"a":[{"a":"tokudb_promotion_roots_split","u":36,"t":2}]},"Tokudb_promotion_stopped_after_locking_child":{"t":3,"a":[{"a":"tokudb_promotion_stopped_after_locking_child","u":36,"t":2}]},"Tokudb_promotion_stopped_at_height_1":{"t":3,"a":[{"a":"tokudb_promotion_stopped_at_height_1","u":36,"t":2}]},"Tokudb_promotion_stopped_child_locked_or_not_in_memory":{"t":3,"a":[{"a":"tokudb_promotion_stopped_child_locked_or_not_in_memory","u":36,"t":2}]},"Tokudb_promotion_stopped_child_not_fully_in_memory":{"t":3,"a":[{"a":"tokudb_promotion_stopped_child_not_fully_in_memory","u":36,"t":2}]},"Tokudb_promotion_stopped_nonempty_buffer":{"t":3,"a":[{"a":"tokudb_promotion_stopped_nonempty_buffer","u":36,"t":2}]},"Tokudb_txn_aborts":{"t":3,"a":[{"a":"tokudb_txn_aborts","u":36,"t":2}]},"Tokudb_txn_begin":{"t":3,"a":[{"a":"tokudb_txn_begin","u":36,"t":2}]},"Tokudb_txn_begin_read_only":{"t":3,"a":[{"a":"tokudb_txn_begin_read_only","u":36,"t":2}]},"Tokudb_txn_commits":{"t":3,"a":[{"a":"tokudb_txn_commits","u":36,"t":2}]},"tokudb_alter_print_error":{"d":true,"t":2,"a":[{"a":"tokudb_alter_print_error","u":37,"t":2}]},"tokudb_analyze_time":{"d":true,"t":3,"a":[{"a":"tokudb_analyze_time","u":37,"t":2}]},"tokudb_block_size":{"d":true,"t":3,"a":[{"a":"tokudb_block_size","u":37,"t":2}]},"tokudb_bulk_fetch":{"d":true,"t":2,"a":[{"a":"tokudb_bulk_fetch","u":37,"t":2}]},"tokudb_cache_size":{"d":false,"t":3,"a":[{"a":"tokudb_cache_size","u":37,"t":2}]},"tokudb_check_jemalloc":{"d":true,"t":3,"a":[{"a":"tokudb_check_jemalloc","u":37,"t":2}]},"tokudb_checkpoint_lock":{"d":true,"t":2,"a":[{"a":"tokudb_checkpoint_lock","u":37,"t":2}]},"tokudb_checkpoint_on_flush_logs":{"d":true,"t":2,"a":[{"a":"tokudb_checkpoint_on_flush_logs","u":37,"t":2}]},"tokudb_checkpointing_period":{"d":true,"t":3,"a":[{"a":"tokudb_checkpointing_period","u":37,"t":2}]},"tokudb_cleaner_iterations":{"d":true,"t":3,"a":[{"a":"tokudb_cleaner_iterations","u":37,"t":2}]},"tokudb_cleaner_period":{"d":true,"t":3,"a":[{"a":"tokudb_cleaner_period","u":37,"t":2}]},"tokudb_commit_sync":{"d":true,"t":2,"a":[{"a":"tokudb_commit_sync","u":37,"t":2}]},"tokudb_create_index_online":{"d":true,"t":2,"a":[{"a":"tokudb_create_index_online","u":37,"t":2}]},"tokudb_data_dir":{"d":false,"t":1,"a":[{"a":"tokudb_data_dir","u":37,"t":2}]},"tokudb_debug":{"d":true,"t":3,"a":[{"a":"tokudb_debug","u":37,"t":2}]},"tokudb_directio":{"d":false,"t":2,"a":[{"a":"tokudb_directio","u":37,"t":2}]},"tokudb_disable_hot_alter":{"d":true,"t":2,"a":[{"a":"tokudb_disable_hot_alter","u":37,"t":2}]},"tokudb_disable_prefetching":{"d":true,"t":2,"a":[{"a":"tokudb_disable_prefetching","u":37,"t":2}]},"tokudb_disable_slow_alter":{"d":true,"t":2,"a":[{"a":"tokudb_disable_slow_alter","u":37,"t":2}]},"tokudb_empty_scan":{"d":true,"a":[{"a":"tokudb_empty_scan","u":37,"t":2}]},"tokudb_fs_reserve_percent":{"d":false,"t":3,"a":[{"a":"tokudb_fs_reserve_percent","u":37,"t":2}]},"tokudb_fsync_log_period":{"d":true,"t":3,"a":[{"a":"tokudb_fsync_log_period","u":37,"t":2}]},"tokudb_hide_default_row_format":{"d":true,"t":2,"a":[{"a":"tokudb_hide_default_row_format","u":37,"t":2}]},"tokudb_killed_time":{"d":true,"t":3,"a":[{"a":"tokudb_killed_time","u":37,"t":2}]},"tokudb_last_lock_timeout":{"d":true,"a":[{"a":"tokudb_last_lock_timeout","u":37,"t":2}]},"tokudb_load_save_space":{"d":true,"t":2,"a":[{"a":"tokudb_load_save_space","u":37,"t":2}]},"tokudb_loader_memory_size":{"d":true,"t":3,"a":[{"a":"tokudb_loader_memory_size","u":37,"t":2}]},"tokudb_lock_timeout":{"d":true,"t":3,"a":[{"a":"tokudb_lock_timeout","u":37,"t":2}]},"tokudb_lock_timeout_debug":{"d":true,"t":3,"a":[{"a":"tokudb_lock_timeout_debug","u":37,"t":2}]},"tokudb_log_dir":{"d":false,"t":1,"a":[{"a":"tokudb_log_dir","u":37,"t":2}]},"tokudb_max_lock_memory":{"d":false,"t":3,"a":[{"a":"tokudb_max_lock_memory","u":37,"t":2}]},"tokudb_optimize_index_fraction":{"d":true,"t":3,"a":[{"a":"tokudb_optimize_index_fraction","u":37,"t":2}]},"tokudb_optimize_index_name":{"d":true,"t":1,"a":[{"a":"tokudb_optimize_index_name","u":37,"t":2}]},"tokudb_optimize_throttle":{"d":true,"t":3,"a":[{"a":"tokudb_optimize_throttle","u":37,"t":2}]},"tokudb_pk_insert_mode":{"d":true,"a":[{"a":"tokudb_pk_insert_mode","u":37,"t":2}]},"tokudb_prelock_empty":{"d":true,"t":2,"a":[{"a":"tokudb_prelock_empty","u":37,"t":2}]},"tokudb_read_block_size":{"d":true,"t":3,"a":[{"a":"tokudb_read_block_size","u":37,"t":2}]},"tokudb_read_buf_size":{"d":true,"t":3,"a":[{"a":"tokudb_read_buf_size","u":37,"t":2}]},"tokudb_read_status_frequency":{"d":true,"t":3,"a":[{"a":"tokudb_read_status_frequency","u":37,"t":2}]},"tokudb_row_format":{"d":true,"a":[{"a":"tokudb_row_format","u":37,"t":2}]},"tokudb_rpl_check_readonly":{"d":true,"t":2,"a":[{"a":"tokudb_rpl_check_readonly","u":37,"t":2}]},"tokudb_rpl_lookup_rows":{"d":true,"t":2,"a":[{"a":"tokudb_rpl_lookup_rows","u":37,"t":2}]},"tokudb_rpl_lookup_rows_delay":{"d":true,"t":3,"a":[{"a":"tokudb_rpl_lookup_rows_delay","u":37,"t":2}]},"tokudb_rpl_unique_checks":{"d":true,"t":2,"a":[{"a":"tokudb_rpl_unique_checks","u":37,"t":2}]},"tokudb_rpl_unique_checks_delay":{"d":true,"t":3,"a":[{"a":"tokudb_rpl_unique_checks_delay","u":37,"t":2}]},"tokudb_support_xa":{"d":true,"t":2,"a":[{"a":"tokudb_support_xa","u":37,"t":2}]},"tokudb_tmp_dir":{"d":false,"t":7,"a":[{"a":"tokudb_tmp_dir","u":37,"t":2}]},"tokudb_version":{"d":false,"t":1,"a":[{"a":"tokudb_version","u":37,"t":2}]},"tokudb_write_status_frequency":{"d":true,"t":3,"a":[{"a":"tokudb_write_status_frequency","u":37,"t":2}]},"system_versioning_alter_history":{"d":true,"a":[{"a":"system_versioning_alter_history","u":38,"t":2}]},"system_versioning_asof":{"d":true,"a":[{"a":"system_versioning_asof","u":38,"t":2}]},"system_versioning_innodb_algorithm_simple":{"d":true,"t":2,"a":[{"a":"system_versioning_innodb_algorithm_simple","u":38,"t":2}]},"Innodb_adaptive_hash_cells":{"t":3,"a":[{"a":"innodb_adaptive_hash_cells","u":39,"t":2}]},"Innodb_adaptive_hash_hash_searches":{"t":3,"a":[{"a":"innodb_adaptive_hash_hash_searches","u":39,"t":2}]},"Innodb_adaptive_hash_heap_buffers":{"t":3,"a":[{"a":"innodb_adaptive_hash_heap_buffers","u":39,"t":2}]},"Innodb_adaptive_hash_non_hash_searches":{"t":3,"a":[{"a":"innodb_adaptive_hash_non_hash_searches","u":39,"t":2}]},"Innodb_available_undo_logs":{"t":3,"a":[{"a":"innodb_available_undo_logs","u":39,"t":2}]},"Innodb_background_log_sync":{"t":3,"a":[{"a":"innodb_background_log_sync","u":39,"t":2}]},"Innodb_buffer_pool_bytes_data":{"t":3,"a":[{"a":"innodb_buffer_pool_bytes_data","u":39,"t":2}]},"Innodb_buffer_pool_bytes_dirty":{"t":3,"a":[{"a":"innodb_buffer_pool_bytes_dirty","u":39,"t":2}]},"Innodb_buffer_pool_dump_status":{"t":1,"a":[{"a":"innodb_buffer_pool_dump_status","u":39,"t":2}]},"Innodb_buffer_pool_load_incomplete":{"t":2,"a":[{"a":"innodb_buffer_pool_load_incomplete","u":39,"t":2}]},"Innodb_buffer_pool_load_status":{"t":1,"a":[{"a":"innodb_buffer_pool_load_status","u":39,"t":2}]},"Innodb_buffer_pool_pages_data":{"t":3,"a":[{"a":"innodb_buffer_pool_pages_data","u":39,"t":2}]},"Innodb_buffer_pool_pages_dirty":{"t":3,"a":[{"a":"innodb_buffer_pool_pages_dirty","u":39,"t":2}]},"Innodb_buffer_pool_pages_flushed":{"t":3,"a":[{"a":"innodb_buffer_pool_pages_flushed","u":39,"t":2}]},"Innodb_buffer_pool_pages_LRU_flushed":{"t":3,"a":[{"a":"innodb_buffer_pool_pages_lru_flushed","u":39,"t":2}]},"Innodb_buffer_pool_pages_free":{"t":3,"a":[{"a":"innodb_buffer_pool_pages_free","u":39,"t":2}]},"Innodb_buffer_pool_pages_made_not_young":{"t":3,"a":[{"a":"innodb_buffer_pool_pages_made_not_young","u":39,"t":2}]},"Innodb_buffer_pool_pages_made_young":{"t":3,"a":[{"a":"innodb_buffer_pool_pages_made_young","u":39,"t":2}]},"Innodb_buffer_pool_pages_misc":{"t":3,"a":[{"a":"innodb_buffer_pool_pages_misc","u":39,"t":2}]},"Innodb_buffer_pool_pages_old":{"t":3,"a":[{"a":"innodb_buffer_pool_pages_old","u":39,"t":2}]},"Innodb_buffer_pool_pages_total":{"t":3,"a":[{"a":"innodb_buffer_pool_pages_total","u":39,"t":2}]},"Innodb_buffer_pool_read_ahead":{"t":3,"a":[{"a":"innodb_buffer_pool_read_ahead","u":39,"t":2}]},"Innodb_buffer_pool_read_ahead_evicted":{"t":3,"a":[{"a":"innodb_buffer_pool_read_ahead_evicted","u":39,"t":2}]},"Innodb_buffer_pool_read_ahead_rnd":{"t":3,"a":[{"a":"innodb_buffer_pool_read_ahead_rnd","u":39,"t":2}]},"Innodb_buffer_pool_read_requests":{"t":3,"a":[{"a":"innodb_buffer_pool_read_requests","u":39,"t":2}]},"Innodb_buffer_pool_reads":{"t":3,"a":[{"a":"innodb_buffer_pool_reads","u":39,"t":2}]},"Innodb_buffer_pool_resize_status":{"t":3,"a":[{"a":"innodb_buffer_pool_resize_status","u":39,"t":2}]},"Innodb_buffer_pool_wait_free":{"t":3,"a":[{"a":"innodb_buffer_pool_wait_free","u":39,"t":2}]},"Innodb_buffer_pool_write_requests":{"t":3,"a":[{"a":"innodb_buffer_pool_write_requests","u":39,"t":2}]},"Innodb_checkpoint_age":{"t":3,"a":[{"a":"innodb_checkpoint_age","u":39,"t":2}]},"Innodb_checkpoint_max_age":{"t":3,"a":[{"a":"innodb_checkpoint_max_age","u":39,"t":2}]},"Innodb_checkpoint_target_age":{"t":3,"a":[{"a":"innodb_checkpoint_target_age","u":39,"t":2}]},"Innodb_current_row_locks":{"t":3,"a":[{"a":"innodb_current_row_locks","u":39,"t":2}]},"Innodb_data_fsyncs":{"t":3,"a":[{"a":"innodb_data_fsyncs","u":39,"t":2}]},"Innodb_data_pending_fsyncs":{"t":3,"a":[{"a":"innodb_data_pending_fsyncs","u":39,"t":2}]},"Innodb_data_pending_reads":{"t":3,"a":[{"a":"innodb_data_pending_reads","u":39,"t":2}]},"Innodb_data_pending_writes":{"t":3,"a":[{"a":"innodb_data_pending_writes","u":39,"t":2}]},"Innodb_data_read":{"t":3,"a":[{"a":"innodb_data_read","u":39,"t":2}]},"Innodb_data_reads":{"t":3,"a":[{"a":"innodb_data_reads","u":39,"t":2}]},"Innodb_data_writes":{"t":3,"a":[{"a":"innodb_data_writes","u":39,"t":2}]},"Innodb_data_written":{"t":3,"a":[{"a":"innodb_data_written","u":39,"t":2}]},"Innodb_dblwr_pages_written":{"t":3,"a":[{"a":"innodb_dblwr_pages_written","u":39,"t":2}]},"Innodb_dblwr_writes":{"t":3,"a":[{"a":"innodb_dblwr_writes","u":39,"t":2}]},"Innodb_deadlocks":{"t":3,"a":[{"a":"innodb_deadlocks","u":39,"t":2}]},"Innodb_defragment_compression_failures":{"t":3,"a":[{"a":"innodb_defragment_compression_failures","u":39,"t":2}]},"Innodb_defragment_count":{"t":3,"a":[{"a":"innodb_defragment_count","u":39,"t":2}]},"Innodb_defragment_failures":{"t":3,"a":[{"a":"innodb_defragment_failures","u":39,"t":2}]},"Innodb_dict_tables":{"t":3,"a":[{"a":"innodb_dict_tables","u":39,"t":2}]},"Innodb_encryption_n_merge_blocks_decrypted":{"t":3,"a":[{"a":"innodb_encryption_n_merge_blocks_decrypted","u":39,"t":2}]},"Innodb_encryption_n_merge_blocks_encrypted":{"t":3,"a":[{"a":"innodb_encryption_n_merge_blocks_encrypted","u":39,"t":2}]},"Innodb_encryption_n_rowlog_blocks_decrypted":{"t":3,"a":[{"a":"innodb_encryption_n_rowlog_blocks_decrypted","u":39,"t":2}]},"Innodb_encryption_n_rowlog_blocks_encrypted":{"t":3,"a":[{"a":"innodb_encryption_n_rowlog_blocks_encrypted","u":39,"t":2}]},"Innodb_encryption_num_key_requests":{"t":3,"a":[{"a":"innodb_encryption_num_key_requests","u":39,"t":2}]},"Innodb_encryption_rotation_estimated_iops":{"t":3,"a":[{"a":"innodb_encryption_rotation_estimated_iops","u":39,"t":2}]},"Innodb_encryption_rotation_pages_flushed":{"t":3,"a":[{"a":"innodb_encryption_rotation_pages_flushed","u":39,"t":2}]},"Innodb_encryption_rotation_pages_modified":{"t":3,"a":[{"a":"innodb_encryption_rotation_pages_modified","u":39,"t":2}]},"Innodb_encryption_rotation_pages_read_from_cache":{"t":3,"a":[{"a":"innodb_encryption_rotation_pages_read_from_cache","u":39,"t":2}]},"Innodb_encryption_rotation_pages_read_from_disk":{"t":3,"a":[{"a":"innodb_encryption_rotation_pages_read_from_disk","u":39,"t":2}]},"Innodb_have_atomic_builtins":{"t":2,"a":[{"a":"innodb_have_atomic_builtins","u":39,"t":2}]},"Innodb_have_bzip2":{"t":2,"a":[{"a":"innodb_have_bzip2","u":39,"t":2}]},"Innodb_have_lz4":{"t":2,"a":[{"a":"innodb_have_lz4","u":39,"t":2}]},"Innodb_have_lzma":{"t":2,"a":[{"a":"innodb_have_lzma","u":39,"t":2}]},"Innodb_have_lzo":{"t":2,"a":[{"a":"innodb_have_lzo","u":39,"t":2}]},"Innodb_have_punch_hole":{"t":3,"a":[{"a":"innodb_have_punch_hole","u":39,"t":2}]},"Innodb_have_snappy":{"t":2,"a":[{"a":"innodb_have_snappy","u":39,"t":2}]},"Innodb_history_list_length":{"t":3,"a":[{"a":"innodb_history_list_length","u":39,"t":2}]},"Innodb_ibuf_discarded_delete_marks":{"t":3,"a":[{"a":"innodb_ibuf_discarded_delete_marks","u":39,"t":2}]},"Innodb_ibuf_discarded_deletes":{"t":3,"a":[{"a":"innodb_ibuf_discarded_deletes","u":39,"t":2}]},"Innodb_ibuf_discarded_inserts":{"t":3,"a":[{"a":"innodb_ibuf_discarded_inserts","u":39,"t":2}]},"Innodb_ibuf_free_list":{"t":3,"a":[{"a":"innodb_ibuf_free_list","u":39,"t":2}]},"Innodb_ibuf_merged_delete_marks":{"t":3,"a":[{"a":"innodb_ibuf_merged_delete_marks","u":39,"t":2}]},"Innodb_ibuf_merged_deletes":{"t":3,"a":[{"a":"innodb_ibuf_merged_deletes","u":39,"t":2}]},"Innodb_ibuf_merged_inserts":{"t":3,"a":[{"a":"innodb_ibuf_merged_inserts","u":39,"t":2}]},"Innodb_ibuf_merges":{"t":3,"a":[{"a":"innodb_ibuf_merges","u":39,"t":2}]},"Innodb_ibuf_segment_size":{"t":3,"a":[{"a":"innodb_ibuf_segment_size","u":39,"t":2}]},"Innodb_ibuf_size":{"t":3,"a":[{"a":"innodb_ibuf_size","u":39,"t":2}]},"Innodb_instant_alter_column":{"t":3,"a":[{"a":"innodb_instant_alter_column","u":39,"t":2}]},"Innodb_log_waits":{"t":3,"a":[{"a":"innodb_log_waits","u":39,"t":2}]},"Innodb_log_write_requests":{"t":3,"a":[{"a":"innodb_log_write_requests","u":39,"t":2}]},"Innodb_log_writes":{"t":3,"a":[{"a":"innodb_log_writes","u":39,"t":2}]},"Innodb_lsn_current":{"t":3,"a":[{"a":"innodb_lsn_current","u":39,"t":2}]},"Innodb_lsn_flushed":{"t":3,"a":[{"a":"innodb_lsn_flushed","u":39,"t":2}]},"Innodb_lsn_last_checkpoint":{"t":3,"a":[{"a":"innodb_lsn_last_checkpoint","u":39,"t":2}]},"Innodb_master_thread_1_second_loops":{"t":3,"a":[{"a":"innodb_master_thread_1_second_loops","u":39,"t":2}]},"Innodb_master_thread_10_second_loops":{"t":3,"a":[{"a":"innodb_master_thread_10_second_loops","u":39,"t":2}]},"Innodb_master_thread_active_loops":{"t":3,"a":[{"a":"innodb_master_thread_active_loops","u":39,"t":2}]},"Innodb_master_thread_background_loops":{"t":3,"a":[{"a":"innodb_master_thread_background_loops","u":39,"t":2}]},"Innodb_master_thread_idle_loops":{"t":3,"a":[{"a":"innodb_master_thread_idle_loops","u":39,"t":2}]},"Innodb_master_thread_main_flush_loops":{"t":3,"a":[{"a":"innodb_master_thread_main_flush_loops","u":39,"t":2}]},"Innodb_master_thread_sleeps":{"t":3,"a":[{"a":"innodb_master_thread_sleeps","u":39,"t":2}]},"Innodb_max_trx_id":{"t":3,"a":[{"a":"innodb_max_trx_id","u":39,"t":2}]},"Innodb_mem_adaptive_hash":{"t":3,"a":[{"a":"innodb_mem_adaptive_hash","u":39,"t":2}]},"Innodb_mem_dictionary":{"t":3,"a":[{"a":"innodb_mem_dictionary","u":39,"t":2}]},"Innodb_mem_total":{"t":3,"a":[{"a":"innodb_mem_total","u":39,"t":2}]},"Innodb_mutex_os_waits":{"t":3,"a":[{"a":"innodb_mutex_os_waits","u":39,"t":2}]},"Innodb_mutex_spin_rounds":{"t":3,"a":[{"a":"innodb_mutex_spin_rounds","u":39,"t":2}]},"Innodb_mutex_spin_waits":{"t":3,"a":[{"a":"innodb_mutex_spin_waits","u":39,"t":2}]},"Innodb_num_index_pages_written":{"t":3,"a":[{"a":"innodb_num_index_pages_written","u":39,"t":2}]},"Innodb_num_non_index_pages_written":{"t":3,"a":[{"a":"innodb_num_non_index_pages_written","u":39,"t":2}]},"Innodb_num_open_files":{"t":3,"a":[{"a":"innodb_num_open_files","u":39,"t":2}]},"Innodb_num_page_compressed_trim_op":{"t":3,"a":[{"a":"innodb_num_page_compressed_trim_op","u":39,"t":2}]},"Innodb_num_page_compressed_trim_op_saved":{"t":3,"a":[{"a":"innodb_num_page_compressed_trim_op_saved","u":39,"t":2}]},"Innodb_num_pages_decrypted":{"t":3,"a":[{"a":"innodb_num_pages_decrypted","u":39,"t":2}]},"Innodb_num_pages_encrypted":{"t":3,"a":[{"a":"innodb_num_pages_encrypted","u":39,"t":2}]},"Innodb_num_pages_page_compressed":{"t":3,"a":[{"a":"innodb_num_pages_page_compressed","u":39,"t":2}]},"Innodb_num_pages_page_compression_error":{"t":3,"a":[{"a":"innodb_num_pages_page_compression_error","u":39,"t":2}]},"Innodb_num_pages_page_decompressed":{"t":3,"a":[{"a":"innodb_num_pages_page_decompressed","u":39,"t":2}]},"Innodb_num_pages_page_encryption_error":{"t":3,"a":[{"a":"innodb_num_pages_page_encryption_error","u":39,"t":2}]},"Innodb_oldest_view_low_limit_trx_id":{"t":3,"a":[{"a":"innodb_oldest_view_low_limit_trx_id","u":39,"t":2}]},"Innodb_onlineddl_pct_progress":{"t":3,"a":[{"a":"innodb_onlineddl_pct_progress","u":39,"t":2}]},"Innodb_onlineddl_rowlog_pct_used":{"t":3,"a":[{"a":"innodb_onlineddl_rowlog_pct_used","u":39,"t":2}]},"Innodb_onlineddl_rowlog_rows":{"t":3,"a":[{"a":"innodb_onlineddl_rowlog_rows","u":39,"t":2}]},"Innodb_os_log_fsyncs":{"t":3,"a":[{"a":"innodb_os_log_fsyncs","u":39,"t":2}]},"Innodb_os_log_pending_fsyncs":{"t":3,"a":[{"a":"innodb_os_log_pending_fsyncs","u":39,"t":2}]},"Innodb_os_log_pending_writes":{"t":3,"a":[{"a":"innodb_os_log_pending_writes","u":39,"t":2}]},"Innodb_os_log_written":{"t":3,"a":[{"a":"innodb_os_log_written","u":39,"t":2}]},"Innodb_page_compression_saved":{"t":9,"a":[{"a":"innodb_page_compression_saved","u":39,"t":2}]},"Innodb_page_compression_trim_sect512":{"t":3,"a":[{"a":"innodb_page_compression_trim_sect512","u":39,"t":2}]},"Innodb_page_compression_trim_sect1024":{"t":3,"a":[{"a":"innodb_page_compression_trim_sect1024","u":39,"t":2}]},"Innodb_page_compression_trim_sect2048":{"t":3,"a":[{"a":"innodb_page_compression_trim_sect2048","u":39,"t":2}]},"Innodb_page_compression_trim_sect4096":{"t":3,"a":[{"a":"innodb_page_compression_trim_sect4096","u":39,"t":2}]},"Innodb_page_compression_trim_sect8192":{"t":3,"a":[{"a":"innodb_page_compression_trim_sect8192","u":39,"t":2}]},"Innodb_page_compression_trim_sect16384":{"t":3,"a":[{"a":"innodb_page_compression_trim_sect16384","u":39,"t":2}]},"Innodb_page_compression_trim_sect32768":{"t":3,"a":[{"a":"innodb_page_compression_trim_sect32768","u":39,"t":2}]},"Innodb_page_size":{"t":3,"a":[{"a":"innodb_page_size","u":39,"t":2}]},"Innodb_pages_created":{"t":3,"a":[{"a":"innodb_pages_created","u":39,"t":2}]},"Innodb_pages_read":{"t":3,"a":[{"a":"innodb_pages_read","u":39,"t":2}]},"Innodb_pages0_read":{"t":3,"a":[{"a":"innodb_pages0_read","u":39,"t":2}]},"Innodb_pages_written":{"t":3,"a":[{"a":"innodb_pages_written","u":39,"t":2}]},"Innodb_purge_trx_id":{"t":3,"a":[{"a":"innodb_purge_trx_id","u":39,"t":2}]},"Innodb_purge_undo_no":{"t":3,"a":[{"a":"innodb_purge_undo_no","u":39,"t":2}]},"Innodb_read_views_memory":{"t":3,"a":[{"a":"innodb_read_views_memory","u":39,"t":2}]},"Innodb_row_lock_current_waits":{"t":3,"a":[{"a":"innodb_row_lock_current_waits","u":39,"t":2}]},"Innodb_row_lock_numbers":{"t":3,"a":[{"a":"innodb_row_lock_numbers","u":39,"t":2}]},"Innodb_row_lock_time":{"t":3,"a":[{"a":"innodb_row_lock_time","u":39,"t":2}]},"Innodb_row_lock_time_avg":{"t":3,"a":[{"a":"innodb_row_lock_time_avg","u":39,"t":2}]},"Innodb_row_lock_time_max":{"t":3,"a":[{"a":"innodb_row_lock_time_max","u":39,"t":2}]},"Innodb_row_lock_time_waits":{"t":3,"a":[{"a":"innodb_row_lock_time_waits","u":39,"t":2}]},"Innodb_rows_deleted":{"t":3,"a":[{"a":"innodb_rows_deleted","u":39,"t":2}]},"Innodb_rows_inserted":{"t":3,"a":[{"a":"innodb_rows_inserted","u":39,"t":2}]},"Innodb_rows_read":{"t":3,"a":[{"a":"innodb_rows_read","u":39,"t":2}]},"Innodb_rows_updated":{"t":3,"a":[{"a":"innodb_rows_updated","u":39,"t":2}]},"Innodb_s_lock_os_waits":{"t":3,"a":[{"a":"innodb_s_lock_os_waits","u":39,"t":2}]},"Innodb_s_lock_spin_rounds":{"t":3,"a":[{"a":"innodb_s_lock_spin_rounds","u":39,"t":2}]},"Innodb_s_lock_spin_waits":{"t":3,"a":[{"a":"innodb_s_lock_spin_waits","u":39,"t":2}]},"Innodb_scrub_background_page_reorganizations":{"t":3,"a":[{"a":"innodb_scrub_background_page_reorganizations","u":39,"t":2}]},"Innodb_scrub_background_page_split_failures_missing_index":{"t":3,"a":[{"a":"innodb_scrub_background_page_split_failures_missing_index","u":39,"t":2}]},"Innodb_scrub_background_page_split_failures_out_of_filespace":{"t":3,"a":[{"a":"innodb_scrub_background_page_split_failures_out_of_filespace","u":39,"t":2}]},"Innodb_scrub_background_page_split_failures_underflow":{"t":3,"a":[{"a":"innodb_scrub_background_page_split_failures_underflow","u":39,"t":2}]},"Innodb_scrub_background_page_split_failures_unknown":{"t":3,"a":[{"a":"innodb_scrub_background_page_split_failures_unknown","u":39,"t":2}]},"Innodb_scrub_background_page_splits":{"t":3,"a":[{"a":"innodb_scrub_background_page_splits","u":39,"t":2}]},"Innodb_scrub_log":{"t":3,"a":[{"a":"innodb_scrub_log","u":39,"t":2}]},"Innodb_secondary_index_triggered_cluster_reads":{"t":3,"a":[{"a":"innodb_secondary_index_triggered_cluster_reads","u":39,"t":2}]},"Innodb_secondary_index_triggered_cluster_reads_avoided":{"t":3,"a":[{"a":"innodb_secondary_index_triggered_cluster_reads_avoided","u":39,"t":2}]},"Innodb_system_rows_deleted":{"t":3,"a":[{"a":"innodb_system_rows_deleted","u":39,"t":2}]},"Innodb_system_rows_inserted":{"t":3,"a":[{"a":"innodb_system_rows_inserted","u":39,"t":2}]},"Innodb_system_rows_read":{"t":3,"a":[{"a":"innodb_system_rows_read","u":39,"t":2}]},"Innodb_system_rows_updated":{"t":3,"a":[{"a":"innodb_system_rows_updated","u":39,"t":2}]},"Innodb_truncated_status_writes":{"t":3,"a":[{"a":"innodb_truncated_status_writes","u":39,"t":2}]},"Innodb_undo_truncations":{"t":3,"a":[{"a":"innodb_undo_truncations","u":39,"t":2}]},"Innodb_x_lock_os_waits":{"t":3,"a":[{"a":"innodb_x_lock_os_waits","u":39,"t":2}]},"Innodb_x_lock_spin_rounds":{"t":3,"a":[{"a":"innodb_x_lock_spin_rounds","u":39,"t":2}]},"Innodb_x_lock_spin_waits":{"t":3,"a":[{"a":"innodb_x_lock_spin_waits","u":39,"t":2}]},"have_innodb":{"d":false,"a":[{"a":"have_innodb","u":40,"t":2}]},"ignore_builtin_innodb":{"d":false,"t":2,"a":[{"a":"ignore_builtin_innodb","u":40,"t":2},{"a":"sysvar_ignore_builtin_innodb","u":41,"t":1}]},"innodb_adaptive_checkpoint":{"d":true,"t":1,"a":[{"a":"innodb_adaptive_checkpoint","u":40,"t":2}]},"innodb_adaptive_flushing":{"d":true,"t":2,"a":[{"a":"innodb_adaptive_flushing","u":40,"t":2},{"a":"sysvar_innodb_adaptive_flushing","u":41,"t":1}]},"innodb_adaptive_flushing_lwm":{"d":true,"t":3,"a":[{"a":"innodb_adaptive_flushing_lwm","u":40,"t":2},{"a":"sysvar_innodb_adaptive_flushing_lwm","u":41,"t":1}]},"innodb_adaptive_flushing_method":{"d":true,"t":5,"a":[{"a":"innodb_adaptive_flushing_method","u":40,"t":2}]},"innodb_adaptive_hash_index":{"d":true,"t":2,"a":[{"a":"innodb_adaptive_hash_index","u":40,"t":2},{"a":"sysvar_innodb_adaptive_hash_index","u":41,"t":1}]},"innodb_adaptive_hash_index_partitions":{"d":false,"t":3,"a":[{"a":"innodb_adaptive_hash_index_partitions","u":40,"t":2}]},"innodb_adaptive_hash_index_parts":{"d":false,"t":3,"a":[{"a":"innodb_adaptive_hash_index_parts","u":40,"t":2},{"a":"sysvar_innodb_adaptive_hash_index_parts","u":41,"t":1}]},"innodb_adaptive_max_sleep_delay":{"d":true,"t":3,"a":[{"a":"innodb_adaptive_max_sleep_delay","u":40,"t":2},{"a":"sysvar_innodb_adaptive_max_sleep_delay","u":41,"t":1}]},"innodb_additional_mem_pool_size":{"d":false,"t":3,"a":[{"a":"innodb_additional_mem_pool_size","u":40,"t":2}]},"innodb_api_bk_commit_interval":{"d":true,"t":3,"a":[{"a":"innodb_api_bk_commit_interval","u":40,"t":2},{"a":"sysvar_innodb_api_bk_commit_interval","u":41,"t":1}]},"innodb_api_disable_rowlock":{"d":false,"t":2,"a":[{"a":"innodb_api_disable_rowlock","u":40,"t":2},{"a":"sysvar_innodb_api_disable_rowlock","u":41,"t":1}]},"innodb_api_enable_binlog":{"d":false,"t":2,"a":[{"a":"innodb_api_enable_binlog","u":40,"t":2},{"a":"sysvar_innodb_api_enable_binlog","u":41,"t":1}]},"innodb_api_enable_mdl":{"d":false,"t":2,"a":[{"a":"innodb_api_enable_mdl","u":40,"t":2},{"a":"sysvar_innodb_api_enable_mdl","u":41,"t":1}]},"innodb_api_trx_level":{"d":true,"t":3,"a":[{"a":"innodb_api_trx_level","u":40,"t":2},{"a":"sysvar_innodb_api_trx_level","u":41,"t":1}]},"innodb_auto_lru_dump":{"a":[{"a":"innodb_auto_lru_dump","u":40,"t":2}]},"innodb_autoextend_increment":{"d":true,"t":3,"a":[{"a":"innodb_autoextend_increment","u":40,"t":2},{"a":"sysvar_innodb_autoextend_increment","u":41,"t":1}]},"innodb_autoinc_lock_mode":{"d":false,"t":3,"a":[{"a":"innodb_autoinc_lock_mode","u":40,"t":2},{"a":"sysvar_innodb_autoinc_lock_mode","u":41,"t":1}]},"innodb_background_scrub_data_check_interval":{"d":true,"t":3,"a":[{"a":"innodb_background_scrub_data_check_interval","u":40,"t":2}]},"innodb_background_scrub_data_compressed":{"d":true,"t":2,"a":[{"a":"innodb_background_scrub_data_compressed","u":40,"t":2}]},"innodb_background_scrub_data_interval":{"d":true,"t":3,"a":[{"a":"innodb_background_scrub_data_interval","u":40,"t":2}]},"innodb_background_scrub_data_uncompressed":{"d":true,"t":2,"a":[{"a":"innodb_background_scrub_data_uncompressed","u":40,"t":2}]},"innodb_blocking_buffer_pool_restore":{"d":false,"t":2,"a":[{"a":"innodb_blocking_buffer_pool_restore","u":40,"t":2}]},"innodb_buf_dump_status_frequency":{"d":true,"t":3,"a":[{"a":"innodb_buf_dump_status_frequency","u":40,"t":2}]},"innodb_buffer_pool_chunk_size":{"d":false,"t":3,"a":[{"a":"innodb_buffer_pool_chunk_size","u":40,"t":2},{"a":"sysvar_innodb_buffer_pool_chunk_size","u":41,"t":1}]},"innodb_buffer_pool_dump_at_shutdown":{"d":true,"t":2,"a":[{"a":"innodb_buffer_pool_dump_at_shutdown","u":40,"t":2},{"a":"sysvar_innodb_buffer_pool_dump_at_shutdown","u":41,"t":1}]},"innodb_buffer_pool_dump_now":{"d":true,"t":2,"a":[{"a":"innodb_buffer_pool_dump_now","u":40,"t":2},{"a":"sysvar_innodb_buffer_pool_dump_now","u":41,"t":1}]},"innodb_buffer_pool_dump_pct":{"d":true,"a":[{"a":"innodb_buffer_pool_dump_pct","u":40,"t":2},{"a":"sysvar_innodb_buffer_pool_dump_pct","u":41,"t":1}]},"innodb_buffer_pool_evict":{"d":true,"t":1,"a":[{"a":"innodb_buffer_pool_evict","u":40,"t":2}]},"innodb_buffer_pool_filename":{"d":true,"a":[{"a":"innodb_buffer_pool_filename","u":40,"t":2},{"a":"sysvar_innodb_buffer_pool_filename","u":41,"t":1}]},"innodb_buffer_pool_instances":{"d":false,"t":3,"a":[{"a":"innodb_buffer_pool_instances","u":40,"t":2},{"a":"sysvar_innodb_buffer_pool_instances","u":41,"t":1}]},"innodb_buffer_pool_load_abort":{"d":true,"t":2,"a":[{"a":"innodb_buffer_pool_load_abort","u":40,"t":2},{"a":"sysvar_innodb_buffer_pool_load_abort","u":41,"t":1}]},"innodb_buffer_pool_load_at_startup":{"d":false,"t":2,"a":[{"a":"innodb_buffer_pool_load_at_startup","u":40,"t":2},{"a":"sysvar_innodb_buffer_pool_load_at_startup","u":41,"t":1}]},"innodb_buffer_pool_load_now":{"d":true,"t":2,"a":[{"a":"innodb_buffer_pool_load_now","u":40,"t":2},{"a":"sysvar_innodb_buffer_pool_load_now","u":41,"t":1}]},"innodb_buffer_pool_populate":{"d":false,"t":2,"a":[{"a":"innodb_buffer_pool_populate","u":40,"t":2}]},"innodb_buffer_pool_restore_at_startup":{"d":true,"t":3,"a":[{"a":"innodb_buffer_pool_restore_at_startup","u":40,"t":2}]},"innodb_buffer_pool_shm_checksum":{"d":false,"t":2,"a":[{"a":"innodb_buffer_pool_shm_checksum","u":40,"t":2}]},"innodb_buffer_pool_shm_key":{"d":false,"t":2,"a":[{"a":"innodb_buffer_pool_shm_key","u":40,"t":2}]},"innodb_buffer_pool_size":{"t":3,"a":[{"a":"innodb_buffer_pool_size","u":40,"t":2},{"a":"sysvar_innodb_buffer_pool_size","u":41,"t":1}]},"innodb_change_buffer_dump":{"d":false,"t":2,"a":[{"a":"innodb_change_buffer_dump","u":40,"t":2}]},"innodb_change_buffer_max_size":{"d":true,"t":3,"a":[{"a":"innodb_change_buffer_max_size","u":40,"t":2},{"a":"sysvar_innodb_change_buffer_max_size","u":41,"t":1}]},"innodb_change_buffering":{"d":true,"t":5,"a":[{"a":"innodb_change_buffering","u":40,"t":2},{"a":"sysvar_innodb_change_buffering","u":41,"t":1}]},"innodb_change_buffering_debug":{"d":true,"t":3,"a":[{"a":"innodb_change_buffering_debug","u":40,"t":2},{"a":"sysvar_innodb_change_buffering_debug","u":41,"t":1}]},"innodb_checkpoint_age_target":{"d":true,"t":3,"a":[{"a":"innodb_checkpoint_age_target","u":40,"t":2}]},"innodb_checksum_algorithm":{"d":true,"t":5,"a":[{"a":"innodb_checksum_algorithm","u":40,"t":2},{"a":"sysvar_innodb_checksum_algorithm","u":41,"t":1}]},"innodb_checksums":{"d":false,"t":2,"a":[{"a":"innodb_checksums","u":40,"t":2}]},"innodb_cleaner_lsn_age_factor":{"d":true,"a":[{"a":"innodb_cleaner_lsn_age_factor","u":40,"t":2}]},"innodb_cmp_per_index_enabled":{"d":true,"t":2,"a":[{"a":"innodb_cmp_per_index_enabled","u":40,"t":2},{"a":"sysvar_innodb_cmp_per_index_enabled","u":41,"t":1}]},"innodb_commit_concurrency":{"d":true,"t":3,"a":[{"a":"innodb_commit_concurrency","u":40,"t":2},{"a":"sysvar_innodb_commit_concurrency","u":41,"t":1}]},"innodb_compression_algorithm":{"d":true,"a":[{"a":"innodb_compression_algorithm","u":40,"t":2}]},"innodb_compression_default":{"d":true,"t":2,"a":[{"a":"innodb_compression_default","u":40,"t":2}]},"innodb_compression_failure_threshold_pct":{"d":true,"t":3,"a":[{"a":"innodb_compression_failure_threshold_pct","u":40,"t":2},{"a":"sysvar_innodb_compression_failure_threshold_pct","u":41,"t":1}]},"innodb_compression_level":{"d":true,"t":3,"a":[{"a":"innodb_compression_level","u":40,"t":2},{"a":"sysvar_innodb_compression_level","u":41,"t":1}]},"innodb_compression_pad_pct_max":{"d":true,"t":3,"a":[{"a":"innodb_compression_pad_pct_max","u":40,"t":2},{"a":"sysvar_innodb_compression_pad_pct_max","u":41,"t":1}]},"innodb_concurrency_tickets":{"d":true,"t":3,"a":[{"a":"innodb_concurrency_tickets","u":40,"t":2},{"a":"sysvar_innodb_concurrency_tickets","u":41,"t":1}]},"innodb_corrupt_table_action":{"d":true,"t":5,"a":[{"a":"innodb_corrupt_table_action","u":40,"t":2}]},"innodb_data_file_path":{"d":false,"a":[{"a":"innodb_data_file_path","u":40,"t":2},{"a":"sysvar_innodb_data_file_path","u":41,"t":1}]},"innodb_data_home_dir":{"d":false,"t":7,"a":[{"a":"innodb_data_home_dir","u":40,"t":2},{"a":"sysvar_innodb_data_home_dir","u":41,"t":1}]},"innodb_deadlock_detect":{"d":true,"t":2,"a":[{"a":"innodb_deadlock_detect","u":40,"t":2},{"a":"sysvar_innodb_deadlock_detect","u":41,"t":1}]},"innodb_default_page_encryption_key":{"d":true,"t":3,"a":[{"a":"innodb_default_page_encryption_key","u":40,"t":2}]},"innodb_default_encryption_key_id":{"d":true,"t":3,"a":[{"a":"innodb_default_encryption_key_id","u":40,"t":2}]},"innodb_default_row_format":{"d":true,"t":5,"a":[{"a":"innodb_default_row_format","u":40,"t":2},{"a":"sysvar_innodb_default_row_format","u":41,"t":1}]},"innodb_defragment":{"d":true,"t":2,"a":[{"a":"innodb_defragment","u":40,"t":2}]},"innodb_defragment_fill_factor":{"d":true,"a":[{"a":"innodb_defragment_fill_factor","u":40,"t":2}]},"innodb_defragment_fill_factor_n_recs":{"d":true,"t":3,"a":[{"a":"innodb_defragment_fill_factor_n_recs","u":40,"t":2}]},"innodb_defragment_frequency":{"d":true,"t":3,"a":[{"a":"innodb_defragment_frequency","u":40,"t":2}]},"innodb_defragment_n_pages":{"d":true,"t":3,"a":[{"a":"innodb_defragment_n_pages","u":40,"t":2}]},"innodb_defragment_stats_accuracy":{"d":true,"t":3,"a":[{"a":"innodb_defragment_stats_accuracy","u":40,"t":2}]},"innodb_dict_size_limit":{"d":true,"t":3,"a":[{"a":"innodb_dict_size_limit","u":40,"t":2}]},"innodb_disable_sort_file_cache":{"d":true,"t":2,"a":[{"a":"innodb_disable_sort_file_cache","u":40,"t":2},{"a":"sysvar_innodb_disable_sort_file_cache","u":41,"t":1}]},"innodb_disallow_writes":{"d":true,"t":2,"a":[{"a":"innodb_disallow_writes","u":40,"t":2}]},"innodb_doublewrite":{"d":false,"t":2,"a":[{"a":"innodb_doublewrite","u":40,"t":2},{"a":"sysvar_innodb_doublewrite","u":41,"t":1}]},"innodb_doublewrite_file":{"d":false,"a":[{"a":"innodb_doublewrite_file","u":40,"t":2}]},"innodb_empty_free_list_algorithm":{"d":true,"a":[{"a":"innodb_empty_free_list_algorithm","u":40,"t":2}]},"innodb_enable_unsafe_group_commit":{"d":true,"t":3,"a":[{"a":"innodb_enable_unsafe_group_commit","u":40,"t":2}]},"innodb_encrypt_log":{"d":false,"t":2,"a":[{"a":"innodb_encrypt_log","u":40,"t":2}]},"innodb_encrypt_tables":{"d":true,"t":2,"a":[{"a":"innodb_encrypt_tables","u":40,"t":2}]},"innodb_encrypt_temporary_tables":{"d":false,"t":2,"a":[{"a":"innodb_encrypt_temporary_tables","u":40,"t":2}]},"innodb_encryption_rotate_key_age":{"d":true,"t":3,"a":[{"a":"innodb_encryption_rotate_key_age","u":40,"t":2}]},"innodb_encryption_rotation_iops":{"d":true,"t":3,"a":[{"a":"innodb_encryption_rotation_iops","u":40,"t":2}]},"innodb_encryption_threads":{"d":true,"t":3,"a":[{"a":"innodb_encryption_threads","u":40,"t":2}]},"innodb_extra_rsegments":{"d":false,"t":3,"a":[{"a":"innodb_extra_rsegments","u":40,"t":2}]},"innodb_extra_undoslots":{"d":false,"t":2,"a":[{"a":"innodb_extra_undoslots","u":40,"t":2}]},"innodb_fake_changes":{"d":true,"t":2,"a":[{"a":"innodb_fake_changes","u":40,"t":2}]},"innodb_fast_checksum":{"d":false,"t":2,"a":[{"a":"innodb_fast_checksum","u":40,"t":2}]},"innodb_fast_shutdown":{"d":true,"t":3,"a":[{"a":"innodb_fast_shutdown","u":40,"t":2},{"a":"sysvar_innodb_fast_shutdown","u":41,"t":1}]},"innodb_fatal_semaphore_wait_threshold":{"d":false,"t":3,"a":[{"a":"innodb_fatal_semaphore_wait_threshold","u":40,"t":2}]},"innodb_file_format":{"d":true,"t":1,"a":[{"a":"innodb_file_format","u":40,"t":2}]},"innodb_file_format_check":{"d":false,"t":2,"a":[{"a":"innodb_file_format_check","u":40,"t":2}]},"innodb_file_format_max":{"d":true,"t":1,"a":[{"a":"innodb_file_format_max","u":40,"t":2}]},"innodb_file_per_table":{"d":true,"t":2,"a":[{"a":"innodb_file_per_table","u":40,"t":2},{"a":"sysvar_innodb_file_per_table","u":41,"t":1}]},"innodb_fill_factor":{"d":true,"t":3,"a":[{"a":"innodb_fill_factor","u":40,"t":2},{"a":"sysvar_innodb_fill_factor","u":41,"t":1}]},"innodb_flush_log_at_timeout":{"d":true,"t":3,"a":[{"a":"innodb_flush_log_at_timeout","u":40,"t":2},{"a":"sysvar_innodb_flush_log_at_timeout","u":41,"t":1}]},"innodb_flush_log_at_trx_commit":{"d":true,"t":5,"a":[{"a":"innodb_flush_log_at_trx_commit","u":40,"t":2},{"a":"sysvar_innodb_flush_log_at_trx_commit","u":41,"t":1}]},"innodb_flush_method":{"d":false,"a":[{"a":"innodb_flush_method","u":40,"t":2},{"a":"sysvar_innodb_flush_method","u":41,"t":1}]},"innodb_flush_neighbor_pages":{"d":true,"t":5,"a":[{"a":"innodb_flush_neighbor_pages","u":40,"t":2}]},"innodb_flush_neighbors":{"d":true,"t":5,"a":[{"a":"innodb_flush_neighbors","u":40,"t":2},{"a":"sysvar_innodb_flush_neighbors","u":41,"t":1}]},"innodb_flush_sync":{"d":true,"t":2,"a":[{"a":"innodb_flush_sync","u":40,"t":2},{"a":"sysvar_innodb_flush_sync","u":41,"t":1}]},"innodb_flushing_avg_loops":{"d":true,"t":3,"a":[{"a":"innodb_flushing_avg_loops","u":40,"t":2},{"a":"sysvar_innodb_flushing_avg_loops","u":41,"t":1}]},"innodb_force_load_corrupted":{"d":false,"t":2,"a":[{"a":"innodb_force_load_corrupted","u":40,"t":2},{"a":"sysvar_innodb_force_load_corrupted","u":41,"t":1}]},"innodb_force_primary_key":{"d":true,"t":2,"a":[{"a":"innodb_force_primary_key","u":40,"t":2}]},"innodb_force_recovery":{"d":false,"a":[{"a":"innodb_force_recovery","u":40,"t":2},{"a":"sysvar_innodb_force_recovery","u":41,"t":1}]},"innodb_foreground_preflush":{"d":true,"a":[{"a":"innodb_foreground_preflush","u":40,"t":2}]},"innodb_ft_aux_table":{"d":true,"t":1,"a":[{"a":"innodb_ft_aux_table","u":40,"t":2},{"a":"sysvar_innodb_ft_aux_table","u":41,"t":1}]},"innodb_ft_cache_size":{"d":false,"t":3,"a":[{"a":"innodb_ft_cache_size","u":40,"t":2},{"a":"sysvar_innodb_ft_cache_size","u":41,"t":1}]},"innodb_ft_enable_diag_print":{"d":true,"t":2,"a":[{"a":"innodb_ft_enable_diag_print","u":40,"t":2},{"a":"sysvar_innodb_ft_enable_diag_print","u":41,"t":1}]},"innodb_ft_enable_stopword":{"d":true,"t":2,"a":[{"a":"innodb_ft_enable_stopword","u":40,"t":2},{"a":"sysvar_innodb_ft_enable_stopword","u":41,"t":1}]},"innodb_ft_max_token_size":{"d":false,"t":3,"a":[{"a":"innodb_ft_max_token_size","u":40,"t":2},{"a":"sysvar_innodb_ft_max_token_size","u":41,"t":1}]},"innodb_ft_min_token_size":{"d":false,"t":3,"a":[{"a":"innodb_ft_min_token_size","u":40,"t":2},{"a":"sysvar_innodb_ft_min_token_size","u":41,"t":1}]},"innodb_ft_num_word_optimize":{"d":true,"t":3,"a":[{"a":"innodb_ft_num_word_optimize","u":40,"t":2},{"a":"sysvar_innodb_ft_num_word_optimize","u":41,"t":1}]},"innodb_ft_result_cache_limit":{"d":true,"t":3,"a":[{"a":"innodb_ft_result_cache_limit","u":40,"t":2},{"a":"sysvar_innodb_ft_result_cache_limit","u":41,"t":1}]},"innodb_ft_server_stopword_table":{"d":true,"t":1,"a":[{"a":"innodb_ft_server_stopword_table","u":40,"t":2},{"a":"sysvar_innodb_ft_server_stopword_table","u":41,"t":1}]},"innodb_ft_sort_pll_degree":{"d":false,"t":3,"a":[{"a":"innodb_ft_sort_pll_degree","u":40,"t":2},{"a":"sysvar_innodb_ft_sort_pll_degree","u":41,"t":1}]},"innodb_ft_total_cache_size":{"d":false,"t":3,"a":[{"a":"innodb_ft_total_cache_size","u":40,"t":2},{"a":"sysvar_innodb_ft_total_cache_size","u":41,"t":1}]},"innodb_ft_user_stopword_table":{"d":true,"t":1,"a":[{"a":"innodb_ft_user_stopword_table","u":40,"t":2},{"a":"sysvar_innodb_ft_user_stopword_table","u":41,"t":1}]},"innodb_ibuf_accel_rate":{"d":true,"t":3,"a":[{"a":"innodb_ibuf_accel_rate","u":40,"t":2}]},"innodb_ibuf_active_contract":{"d":true,"t":3,"a":[{"a":"innodb_ibuf_active_contract","u":40,"t":2}]},"innodb_ibuf_max_size":{"d":false,"t":3,"a":[{"a":"innodb_ibuf_max_size","u":40,"t":2}]},"innodb_idle_flush_pct":{"d":true,"t":3,"a":[{"a":"innodb_idle_flush_pct","u":40,"t":2},{"a":"sysvar_innodb_idle_flush_pct","u":41,"t":1}]},"innodb_immediate_scrub_data_uncompressed":{"d":true,"t":2,"a":[{"a":"innodb_immediate_scrub_data_uncompressed","u":40,"t":2}]},"innodb_import_table_from_xtrabackup":{"d":true,"t":3,"a":[{"a":"innodb_import_table_from_xtrabackup","u":40,"t":2}]},"innodb_instrument_semaphores":{"d":true,"t":2,"a":[{"a":"innodb_instrument_semaphores","u":40,"t":2}]},"innodb_io_capacity":{"d":true,"t":3,"a":[{"a":"innodb_io_capacity","u":40,"t":2},{"a":"sysvar_innodb_io_capacity","u":41,"t":1}]},"innodb_io_capacity_max":{"d":true,"t":3,"a":[{"a":"innodb_io_capacity_max","u":40,"t":2},{"a":"sysvar_innodb_io_capacity_max","u":41,"t":1}]},"innodb_kill_idle_transaction":{"d":true,"t":3,"a":[{"a":"innodb_kill_idle_transaction","u":40,"t":2}]},"innodb_large_prefix":{"d":true,"t":2,"a":[{"a":"innodb_large_prefix","u":40,"t":2}]},"innodb_lazy_drop_table":{"d":true,"t":2,"a":[{"a":"innodb_lazy_drop_table","u":40,"t":2}]},"innodb_lock_schedule_algorithm":{"d":false,"a":[{"a":"innodb_lock_schedule_algorithm","u":40,"t":2}]},"innodb_lock_wait_timeout":{"d":true,"t":3,"a":[{"a":"innodb_lock_wait_timeout","u":40,"t":2},{"a":"sysvar_innodb_lock_wait_timeout","u":41,"t":1}]},"innodb_locking_fake_changes":{"d":true,"t":2,"a":[{"a":"innodb_locking_fake_changes","u":40,"t":2}]},"innodb_locks_unsafe_for_binlog":{"d":false,"t":2,"a":[{"a":"innodb_locks_unsafe_for_binlog","u":40,"t":2}]},"innodb_log_arch_dir":{"d":false,"t":1,"a":[{"a":"innodb_log_arch_dir","u":40,"t":2}]},"innodb_log_arch_expire_sec":{"d":true,"t":3,"a":[{"a":"innodb_log_arch_expire_sec","u":40,"t":2}]},"innodb_log_archive":{"d":true,"t":2,"a":[{"a":"innodb_log_archive","u":40,"t":2}]},"innodb_log_block_size":{"d":false,"t":3,"a":[{"a":"innodb_log_block_size","u":40,"t":2}]},"innodb_log_buffer_size":{"t":3,"a":[{"a":"innodb_log_buffer_size","u":40,"t":2},{"a":"sysvar_innodb_log_buffer_size","u":41,"t":1}]},"innodb_log_checksum_algorithm":{"d":true,"a":[{"a":"innodb_log_checksum_algorithm","u":40,"t":2}]},"innodb_log_checksums":{"d":true,"t":2,"a":[{"a":"innodb_log_checksums","u":40,"t":2},{"a":"sysvar_innodb_log_checksums","u":41,"t":1}]},"innodb_log_compressed_pages":{"d":true,"t":2,"a":[{"a":"innodb_log_compressed_pages","u":40,"t":2},{"a":"sysvar_innodb_log_compressed_pages","u":41,"t":1}]},"innodb_log_file_size":{"d":false,"t":3,"a":[{"a":"innodb_log_file_size","u":40,"t":2},{"a":"sysvar_innodb_log_file_size","u":41,"t":1}]},"innodb_log_files_in_group":{"d":false,"t":3,"a":[{"a":"innodb_log_files_in_group","u":40,"t":2},{"a":"sysvar_innodb_log_files_in_group","u":41,"t":1}]},"innodb_log_group_home_dir":{"d":false,"t":7,"a":[{"a":"innodb_log_group_home_dir","u":40,"t":2},{"a":"sysvar_innodb_log_group_home_dir","u":41,"t":1}]},"innodb_log_optimize_ddl":{"d":true,"t":2,"a":[{"a":"innodb_log_optimize_ddl","u":40,"t":2}]},"innodb_log_write_ahead_size":{"d":true,"t":3,"a":[{"a":"innodb_log_write_ahead_size","u":40,"t":2},{"a":"sysvar_innodb_log_write_ahead_size","u":41,"t":1}]},"innodb_lru_scan_depth":{"d":true,"t":3,"a":[{"a":"innodb_lru_scan_depth","u":40,"t":2},{"a":"sysvar_innodb_lru_scan_depth","u":41,"t":1}]},"innodb_max_bitmap_file_size":{"d":true,"t":3,"a":[{"a":"innodb_max_bitmap_file_size","u":40,"t":2}]},"innodb_max_changed_pages":{"d":true,"t":3,"a":[{"a":"innodb_max_changed_pages","u":40,"t":2}]},"innodb_max_dirty_pages_pct":{"t":3,"a":[{"a":"innodb_max_dirty_pages_pct","u":40,"t":2},{"a":"sysvar_innodb_max_dirty_pages_pct","u":41,"t":1}]},"innodb_max_dirty_pages_pct_lwm":{"d":true,"t":3,"a":[{"a":"innodb_max_dirty_pages_pct_lwm","u":40,"t":2},{"a":"sysvar_innodb_max_dirty_pages_pct_lwm","u":41,"t":1}]},"innodb_max_purge_lag":{"d":true,"t":3,"a":[{"a":"innodb_max_purge_lag","u":40,"t":2},{"a":"sysvar_innodb_max_purge_lag","u":41,"t":1}]},"innodb_max_purge_lag_delay":{"d":true,"t":3,"a":[{"a":"innodb_max_purge_lag_delay","u":40,"t":2},{"a":"sysvar_innodb_max_purge_lag_delay","u":41,"t":1}]},"innodb_max_undo_log_size":{"d":true,"t":3,"a":[{"a":"innodb_max_undo_log_size","u":40,"t":2},{"a":"sysvar_innodb_max_undo_log_size","u":41,"t":1}]},"innodb_merge_sort_block_size":{"d":true,"t":3,"a":[{"a":"innodb_merge_sort_block_size","u":40,"t":2}]},"innodb_mirrored_log_groups":{"a":[{"a":"innodb_mirrored_log_groups","u":40,"t":2}]},"innodb_mtflush_threads":{"d":false,"t":3,"a":[{"a":"innodb_mtflush_threads","u":40,"t":2}]},"innodb_monitor_disable":{"d":true,"t":1,"a":[{"a":"innodb_monitor_disable","u":40,"t":2},{"a":"sysvar_innodb_monitor_disable","u":41,"t":1}]},"innodb_monitor_enable":{"d":true,"t":1,"a":[{"a":"innodb_monitor_enable","u":40,"t":2},{"a":"sysvar_innodb_monitor_enable","u":41,"t":1}]},"innodb_monitor_reset":{"d":true,"a":[{"a":"innodb_monitor_reset","u":40,"t":2},{"a":"sysvar_innodb_monitor_reset","u":41,"t":1}]},"innodb_monitor_reset_all":{"d":true,"a":[{"a":"innodb_monitor_reset_all","u":40,"t":2},{"a":"sysvar_innodb_monitor_reset_all","u":41,"t":1}]},"innodb_numa_interleave":{"d":false,"t":2,"a":[{"a":"innodb_numa_interleave","u":40,"t":2},{"a":"sysvar_innodb_numa_interleave","u":41,"t":1}]},"innodb_old_blocks_pct":{"d":true,"t":3,"a":[{"a":"innodb_old_blocks_pct","u":40,"t":2},{"a":"sysvar_innodb_old_blocks_pct","u":41,"t":1}]},"innodb_old_blocks_time":{"d":true,"t":3,"a":[{"a":"innodb_old_blocks_time","u":40,"t":2},{"a":"sysvar_innodb_old_blocks_time","u":41,"t":1}]},"innodb_online_alter_log_max_size":{"d":true,"t":3,"a":[{"a":"innodb_online_alter_log_max_size","u":40,"t":2},{"a":"sysvar_innodb_online_alter_log_max_size","u":41,"t":1}]},"innodb_open_files":{"d":false,"t":3,"a":[{"a":"innodb_open_files","u":40,"t":2},{"a":"sysvar_innodb_open_files","u":41,"t":1}]},"innodb_optimize_fulltext_only":{"d":true,"t":2,"a":[{"a":"innodb_optimize_fulltext_only","u":40,"t":2},{"a":"sysvar_innodb_optimize_fulltext_only","u":41,"t":1}]},"innodb_page_cleaners":{"d":false,"t":3,"a":[{"a":"innodb_page_cleaners","u":40,"t":2},{"a":"sysvar_innodb_page_cleaners","u":41,"t":1}]},"innodb_page_size":{"d":false,"t":5,"a":[{"a":"innodb_page_size","u":40,"t":2},{"a":"sysvar_innodb_page_size","u":41,"t":1}]},"innodb_pass_corrupt_table":{"a":[{"a":"innodb_pass_corrupt_table","u":40,"t":2}]},"innodb_prefix_index_cluster_optimization":{"d":true,"t":2,"a":[{"a":"innodb_prefix_index_cluster_optimization","u":40,"t":2}]},"innodb_print_all_deadlocks":{"d":true,"t":2,"a":[{"a":"innodb_print_all_deadlocks","u":40,"t":2},{"a":"sysvar_innodb_print_all_deadlocks","u":41,"t":1}]},"innodb_purge_batch_size":{"t":3,"a":[{"a":"innodb_purge_batch_size","u":40,"t":2},{"a":"sysvar_innodb_purge_batch_size","u":41,"t":1}]},"innodb_purge_rseg_truncate_frequency":{"d":true,"t":3,"a":[{"a":"innodb_purge_rseg_truncate_frequency","u":40,"t":2},{"a":"sysvar_innodb_purge_rseg_truncate_frequency","u":41,"t":1}]},"innodb_purge_threads":{"d":false,"t":3,"a":[{"a":"innodb_purge_threads","u":40,"t":2},{"a":"sysvar_innodb_purge_threads","u":41,"t":1}]},"innodb_random_read_ahead":{"d":true,"t":2,"a":[{"a":"innodb_random_read_ahead","u":40,"t":2},{"a":"sysvar_innodb_random_read_ahead","u":41,"t":1}]},"innodb_read_ahead":{"d":true,"t":5,"a":[{"a":"innodb_read_ahead","u":40,"t":2}]},"innodb_read_ahead_threshold":{"d":true,"t":3,"a":[{"a":"innodb_read_ahead_threshold","u":40,"t":2},{"a":"sysvar_innodb_read_ahead_threshold","u":41,"t":1}]},"innodb_read_io_threads":{"d":false,"t":3,"a":[{"a":"innodb_read_io_threads","u":40,"t":2},{"a":"sysvar_innodb_read_io_threads","u":41,"t":1}]},"innodb_read_only":{"d":false,"t":2,"a":[{"a":"innodb_read_only","u":40,"t":2},{"a":"sysvar_innodb_read_only","u":41,"t":1}]},"innodb_recovery_stats":{"d":false,"t":2,"a":[{"a":"innodb_recovery_stats","u":40,"t":2}]},"innodb_recovery_update_relay_log":{"d":false,"t":2,"a":[{"a":"innodb_recovery_update_relay_log","u":40,"t":2}]},"innodb_replication_delay":{"d":true,"t":3,"a":[{"a":"innodb_replication_delay","u":40,"t":2},{"a":"sysvar_innodb_replication_delay","u":41,"t":1}]},"innodb_rollback_on_timeout":{"d":false,"t":2,"a":[{"a":"innodb_rollback_on_timeout","u":40,"t":2},{"a":"sysvar_innodb_rollback_on_timeout","u":41,"t":1}]},"innodb_rollback_segments":{"d":true,"t":3,"a":[{"a":"innodb_rollback_segments","u":40,"t":2},{"a":"sysvar_innodb_rollback_segments","u":41,"t":1}]},"innodb_safe_truncate":{"d":false,"t":2,"a":[{"a":"innodb_safe_truncate","u":40,"t":2}]},"innodb_scrub_log":{"d":false,"t":2,"a":[{"a":"innodb_scrub_log","u":40,"t":2}]},"innodb_scrub_log_interval":{"d":true,"t":3,"a":[{"a":"innodb_scrub_log_interval","u":40,"t":2}]},"innodb_scrub_log_speed":{"d":true,"t":3,"a":[{"a":"innodb_scrub_log_speed","u":40,"t":2}]},"innodb_sched_priority_cleaner":{"d":true,"t":3,"a":[{"a":"innodb_sched_priority_cleaner","u":40,"t":2}]},"innodb_show_locks_held":{"d":true,"t":3,"a":[{"a":"innodb_show_locks_held","u":40,"t":2}]},"innodb_show_verbose_locks":{"d":true,"t":3,"a":[{"a":"innodb_show_verbose_locks","u":40,"t":2}]},"innodb_simulate_comp_failures":{"d":true,"t":3,"a":[{"a":"innodb_simulate_comp_failures","u":40,"t":2}]},"innodb_sort_buffer_size":{"d":false,"t":3,"a":[{"a":"innodb_sort_buffer_size","u":40,"t":2},{"a":"sysvar_innodb_sort_buffer_size","u":41,"t":1}]},"innodb_spin_wait_delay":{"d":true,"t":3,"a":[{"a":"innodb_spin_wait_delay","u":40,"t":2},{"a":"sysvar_innodb_spin_wait_delay","u":41,"t":1}]},"innodb_stats_auto_recalc":{"d":true,"t":2,"a":[{"a":"innodb_stats_auto_recalc","u":40,"t":2},{"a":"sysvar_innodb_stats_auto_recalc","u":41,"t":1}]},"innodb_stats_auto_update":{"d":true,"t":2,"a":[{"a":"innodb_stats_auto_update","u":40,"t":2}]},"innodb_stats_include_delete_marked":{"d":true,"t":2,"a":[{"a":"innodb_stats_include_delete_marked","u":40,"t":2},{"a":"sysvar_innodb_stats_include_delete_marked","u":41,"t":1}]},"innodb_stats_method":{"d":true,"t":5,"a":[{"a":"innodb_stats_method","u":40,"t":2},{"a":"sysvar_innodb_stats_method","u":41,"t":1}]},"innodb_stats_modified_counter":{"d":true,"t":3,"a":[{"a":"innodb_stats_modified_counter","u":40,"t":2}]},"innodb_stats_on_metadata":{"d":true,"t":2,"a":[{"a":"innodb_stats_on_metadata","u":40,"t":2},{"a":"sysvar_innodb_stats_on_metadata","u":41,"t":1}]},"innodb_stats_persistent":{"d":true,"t":2,"a":[{"a":"innodb_stats_persistent","u":40,"t":2},{"a":"sysvar_innodb_stats_persistent","u":41,"t":1}]},"innodb_stats_persistent_sample_pages":{"d":true,"t":3,"a":[{"a":"innodb_stats_persistent_sample_pages","u":40,"t":2},{"a":"sysvar_innodb_stats_persistent_sample_pages","u":41,"t":1}]},"innodb_stats_sample_pages":{"d":true,"t":3,"a":[{"a":"innodb_stats_sample_pages","u":40,"t":2}]},"innodb_stats_traditional":{"d":true,"t":2,"a":[{"a":"innodb_stats_traditional","u":40,"t":2}]},"innodb_stats_transient_sample_pages":{"d":true,"t":3,"a":[{"a":"innodb_stats_transient_sample_pages","u":40,"t":2},{"a":"sysvar_innodb_stats_transient_sample_pages","u":41,"t":1}]},"innodb_stats_update_need_lock":{"d":true,"t":2,"a":[{"a":"innodb_stats_update_need_lock","u":40,"t":2}]},"innodb_status_output":{"d":true,"t":2,"a":[{"a":"innodb_status_output","u":40,"t":2},{"a":"sysvar_innodb_status_output","u":41,"t":1}]},"innodb_status_output_locks":{"d":true,"t":2,"a":[{"a":"innodb_status_output_locks","u":40,"t":2},{"a":"sysvar_innodb_status_output_locks","u":41,"t":1}]},"innodb_strict_mode":{"d":true,"t":2,"a":[{"a":"innodb_strict_mode","u":40,"t":2},{"a":"sysvar_innodb_strict_mode","u":41,"t":1}]},"innodb_support_xa":{"d":true,"t":2,"a":[{"a":"innodb_support_xa","u":40,"t":2}]},"innodb_sync_array_size":{"d":false,"t":3,"a":[{"a":"innodb_sync_array_size","u":40,"t":2},{"a":"sysvar_innodb_sync_array_size","u":41,"t":1}]},"innodb_sync_spin_loops":{"d":true,"t":3,"a":[{"a":"innodb_sync_spin_loops","u":40,"t":2},{"a":"sysvar_innodb_sync_spin_loops","u":41,"t":1}]},"innodb_table_locks":{"d":true,"t":2,"a":[{"a":"innodb_table_locks","u":40,"t":2},{"a":"sysvar_innodb_table_locks","u":41,"t":1}]},"innodb_thread_concurrency":{"d":true,"t":3,"a":[{"a":"innodb_thread_concurrency","u":40,"t":2},{"a":"sysvar_innodb_thread_concurrency","u":41,"t":1}]},"innodb_thread_concurrency_timer_based":{"d":false,"t":2,"a":[{"a":"innodb_thread_concurrency_timer_based","u":40,"t":2}]},"innodb_thread_sleep_delay":{"d":true,"t":3,"a":[{"a":"innodb_thread_sleep_delay","u":40,"t":2},{"a":"sysvar_innodb_thread_sleep_delay","u":41,"t":1}]},"innodb_temp_data_file_path":{"d":false,"t":1,"a":[{"a":"innodb_temp_data_file_path","u":40,"t":2},{"a":"sysvar_innodb_temp_data_file_path","u":41,"t":1}]},"innodb_tmpdir":{"d":true,"a":[{"a":"innodb_tmpdir","u":40,"t":2},{"a":"sysvar_innodb_tmpdir","u":41,"t":1}]},"innodb_track_changed_pages":{"d":false,"t":2,"a":[{"a":"innodb_track_changed_pages","u":40,"t":2}]},"innodb_track_redo_log_now":{"d":true,"t":2,"a":[{"a":"innodb_track_redo_log_now","u":40,"t":2}]},"innodb_undo_directory":{"d":false,"a":[{"a":"innodb_undo_directory","u":40,"t":2},{"a":"sysvar_innodb_undo_directory","u":41,"t":1}]},"innodb_undo_log_truncate":{"d":true,"t":2,"a":[{"a":"innodb_undo_log_truncate","u":40,"t":2},{"a":"sysvar_innodb_undo_log_truncate","u":41,"t":1}]},"innodb_undo_logs":{"d":true,"t":3,"a":[{"a":"innodb_undo_logs","u":40,"t":2},{"a":"sysvar_innodb_undo_logs","u":41,"t":1}]},"innodb_undo_tablespaces":{"t":3,"a":[{"a":"innodb_undo_tablespaces","u":40,"t":2},{"a":"sysvar_innodb_undo_tablespaces","u":41,"t":1}]},"innodb_use_atomic_writes":{"d":false,"t":2,"a":[{"a":"innodb_use_atomic_writes","u":40,"t":2}]},"innodb_use_fallocate":{"d":false,"t":2,"a":[{"a":"innodb_use_fallocate","u":40,"t":2}]},"innodb_use_global_flush_log_at_trx_commit":{"d":true,"t":2,"a":[{"a":"innodb_use_global_flush_log_at_trx_commit","u":40,"t":2}]},"innodb_use_mtflush":{"d":false,"t":2,"a":[{"a":"innodb_use_mtflush","u":40,"t":2}]},"innodb_use_native_aio":{"d":false,"t":2,"a":[{"a":"innodb_use_native_aio","u":40,"t":2},{"a":"sysvar_innodb_use_native_aio","u":41,"t":1}]},"innodb_use_purge_thread":{"d":false,"t":3,"a":[{"a":"innodb_use_purge_thread","u":40,"t":2}]},"innodb_use_stacktrace":{"d":false,"t":2,"a":[{"a":"innodb_use_stacktrace","u":40,"t":2}]},"innodb_use_sys_malloc":{"d":false,"t":2,"a":[{"a":"innodb_use_sys_malloc","u":40,"t":2}]},"innodb_use_sys_stats_table":{"d":false,"t":2,"a":[{"a":"innodb_use_sys_stats_table","u":40,"t":2}]},"innodb_use_trim":{"d":false,"t":2,"a":[{"a":"innodb_use_trim","u":40,"t":2}]},"innodb_version":{"d":false,"t":1,"a":[{"a":"innodb_version","u":40,"t":2}]},"innodb_write_io_threads":{"d":false,"t":3,"a":[{"a":"innodb_write_io_threads","u":40,"t":2},{"a":"sysvar_innodb_write_io_threads","u":41,"t":1}]},"audit_log":{"t":5,"a":[{"a":"option_mysqld_audit-log","u":42,"t":1}]},"audit_log_buffer_size":{"d":false,"t":3,"a":[{"a":"sysvar_audit_log_buffer_size","u":42,"t":1}]},"audit_log_compression":{"d":false,"t":5,"a":[{"a":"sysvar_audit_log_compression","u":42,"t":1}]},"audit_log_connection_policy":{"d":true,"t":5,"a":[{"a":"sysvar_audit_log_connection_policy","u":42,"t":1}]},"audit_log_current_session":{"d":false,"t":2,"a":[{"a":"sysvar_audit_log_current_session","u":42,"t":1}]},"audit_log_encryption":{"d":false,"t":5,"a":[{"a":"sysvar_audit_log_encryption","u":42,"t":1}]},"audit_log_exclude_accounts":{"d":true,"t":1,"a":[{"a":"sysvar_audit_log_exclude_accounts","u":42,"t":1}]},"audit_log_file":{"d":false,"t":8,"a":[{"a":"sysvar_audit_log_file","u":42,"t":1}]},"audit_log_filter_id":{"d":false,"t":3,"a":[{"a":"sysvar_audit_log_filter_id","u":42,"t":1}]},"audit_log_flush":{"d":true,"t":2,"a":[{"a":"sysvar_audit_log_flush","u":42,"t":1}]},"audit_log_format":{"d":false,"t":5,"a":[{"a":"sysvar_audit_log_format","u":42,"t":1}]},"audit_log_include_accounts":{"d":true,"t":1,"a":[{"a":"sysvar_audit_log_include_accounts","u":42,"t":1}]},"audit_log_password_history_keep_days":{"d":true,"t":3,"a":[{"a":"sysvar_audit_log_password_history_keep_days","u":42,"t":1}]},"audit_log_policy":{"d":false,"t":5,"a":[{"a":"sysvar_audit_log_policy","u":42,"t":1}]},"audit_log_read_buffer_size":{"t":3,"a":[{"a":"sysvar_audit_log_read_buffer_size","u":42,"t":1}]},"audit_log_rotate_on_size":{"d":true,"t":3,"a":[{"a":"sysvar_audit_log_rotate_on_size","u":42,"t":1}]},"audit_log_statement_policy":{"d":true,"t":5,"a":[{"a":"sysvar_audit_log_statement_policy","u":42,"t":1}]},"audit_log_strategy":{"d":false,"t":5,"a":[{"a":"sysvar_audit_log_strategy","u":42,"t":1}]},"innodb":{"t":5,"a":[{"a":"option_mysqld_innodb","u":41,"t":1}]},"innodb_status_file":{"t":2,"a":[{"a":"option_mysqld_innodb-status-file","u":41,"t":1}]},"daemon_memcached_enable_binlog":{"d":false,"t":2,"a":[{"a":"sysvar_daemon_memcached_enable_binlog","u":41,"t":1}]},"daemon_memcached_engine_lib_name":{"d":false,"t":8,"a":[{"a":"sysvar_daemon_memcached_engine_lib_name","u":41,"t":1}]},"daemon_memcached_engine_lib_path":{"d":false,"t":7,"a":[{"a":"sysvar_daemon_memcached_engine_lib_path","u":41,"t":1}]},"daemon_memcached_option":{"d":false,"t":1,"a":[{"a":"sysvar_daemon_memcached_option","u":41,"t":1}]},"daemon_memcached_r_batch_size":{"d":false,"t":3,"a":[{"a":"sysvar_daemon_memcached_r_batch_size","u":41,"t":1}]},"daemon_memcached_w_batch_size":{"d":false,"t":3,"a":[{"a":"sysvar_daemon_memcached_w_batch_size","u":41,"t":1}]},"innodb_background_drop_list_empty":{"d":true,"t":2,"a":[{"a":"sysvar_innodb_background_drop_list_empty","u":41,"t":1}]},"innodb_buffer_pool_debug":{"d":false,"t":2,"a":[{"a":"sysvar_innodb_buffer_pool_debug","u":41,"t":1}]},"innodb_buffer_pool_in_core_file":{"d":true,"t":2,"a":[{"a":"sysvar_innodb_buffer_pool_in_core_file","u":41,"t":1}]},"innodb_checkpoint_disabled":{"d":true,"t":2,"a":[{"a":"sysvar_innodb_checkpoint_disabled","u":41,"t":1}]},"innodb_compress_debug":{"d":true,"t":5,"a":[{"a":"sysvar_innodb_compress_debug","u":41,"t":1}]},"innodb_ddl_log_crash_reset_debug":{"d":true,"t":2,"a":[{"a":"sysvar_innodb_ddl_log_crash_reset_debug","u":41,"t":1}]},"innodb_dedicated_server":{"d":false,"t":2,"a":[{"a":"sysvar_innodb_dedicated_server","u":41,"t":1}]},"innodb_directories":{"d":false,"t":7,"a":[{"a":"sysvar_innodb_directories","u":41,"t":1}]},"innodb_fil_make_page_dirty_debug":{"d":true,"t":3,"a":[{"a":"sysvar_innodb_fil_make_page_dirty_debug","u":41,"t":1}]},"innodb_fsync_threshold":{"d":true,"t":3,"a":[{"a":"sysvar_innodb_fsync_threshold","u":41,"t":1}]},"innodb_limit_optimistic_insert_debug":{"d":true,"t":3,"a":[{"a":"sysvar_innodb_limit_optimistic_insert_debug","u":41,"t":1}]},"innodb_log_checkpoint_fuzzy_now":{"d":true,"t":2,"a":[{"a":"sysvar_innodb_log_checkpoint_fuzzy_now","u":41,"t":1}]},"innodb_log_checkpoint_now":{"d":true,"t":2,"a":[{"a":"sysvar_innodb_log_checkpoint_now","u":41,"t":1}]},"innodb_log_spin_cpu_abs_lwm":{"d":true,"t":3,"a":[{"a":"sysvar_innodb_log_spin_cpu_abs_lwm","u":41,"t":1}]},"innodb_log_spin_cpu_pct_hwm":{"d":true,"t":3,"a":[{"a":"sysvar_innodb_log_spin_cpu_pct_hwm","u":41,"t":1}]},"innodb_log_wait_for_flush_spin_hwm":{"d":true,"t":3,"a":[{"a":"sysvar_innodb_log_wait_for_flush_spin_hwm","u":41,"t":1}]},"innodb_merge_threshold_set_all_debug":{"d":true,"t":3,"a":[{"a":"sysvar_innodb_merge_threshold_set_all_debug","u":41,"t":1}]},"innodb_parallel_read_threads":{"d":true,"t":3,"a":[{"a":"sysvar_innodb_parallel_read_threads","u":41,"t":1}]},"innodb_print_ddl_logs":{"d":true,"t":2,"a":[{"a":"sysvar_innodb_print_ddl_logs","u":41,"t":1}]},"innodb_redo_log_archive_dirs":{"d":true,"t":1,"a":[{"a":"sysvar_innodb_redo_log_archive_dirs","u":41,"t":1}]},"innodb_redo_log_encrypt":{"d":true,"t":2,"a":[{"a":"sysvar_innodb_redo_log_encrypt","u":41,"t":1}]},"innodb_scan_directories":{"d":false,"t":7,"a":[{"a":"sysvar_innodb_scan_directories","u":41,"t":1}]},"innodb_saved_page_number_debug":{"d":true,"t":3,"a":[{"a":"sysvar_innodb_saved_page_number_debug","u":41,"t":1}]},"innodb_spin_wait_pause_multiplier":{"d":true,"t":3,"a":[{"a":"sysvar_innodb_spin_wait_pause_multiplier","u":41,"t":1}]},"innodb_sync_debug":{"d":false,"t":2,"a":[{"a":"sysvar_innodb_sync_debug","u":41,"t":1}]},"innodb_temp_tablespaces_dir":{"d":false,"t":7,"a":[{"a":"sysvar_innodb_temp_tablespaces_dir","u":41,"t":1}]},"innodb_trx_purge_view_update_only_debug":{"d":true,"t":2,"a":[{"a":"sysvar_innodb_trx_purge_view_update_only_debug","u":41,"t":1}]},"innodb_trx_rseg_n_slots_debug":{"d":true,"t":3,"a":[{"a":"sysvar_innodb_trx_rseg_n_slots_debug","u":41,"t":1}]},"innodb_undo_log_encrypt":{"d":true,"t":2,"a":[{"a":"sysvar_innodb_undo_log_encrypt","u":41,"t":1}]},"ndbcluster":{"d":false,"a":[{"a":"option_mysqld_ndbcluster","u":43,"t":1}]},"ndb-allow-copying-alter-table":{"d":true,"a":[{"a":"option_mysqld_ndb-allow-copying-alter-table","u":43,"t":1}]},"ndb-batch-size":{"d":false,"a":[{"a":"option_mysqld_ndb-batch-size","u":43,"t":1}]},"ndb-cluster-connection-pool":{"d":false,"a":[{"a":"option_mysqld_ndb-cluster-connection-pool","u":43,"t":1}]},"ndb-cluster-connection-pool-nodeids":{"d":false,"a":[{"a":"option_mysqld_ndb-cluster-connection-pool-nodeids","u":43,"t":1}]},"ndb-blob-read-batch-bytes":{"d":true,"a":[{"a":"option_mysqld_ndb-blob-read-batch-bytes","u":43,"t":1}]},"ndb-blob-write-batch-bytes":{"d":true,"a":[{"a":"option_mysqld_ndb-blob-write-batch-bytes","u":43,"t":1}]},"ndb-connectstring":{"d":false,"a":[{"a":"option_mysqld_ndb-connectstring","u":43,"t":1}]},"ndb-default-column-format":{"d":true,"a":[{"a":"option_mysqld_ndb-default-column-format","u":43,"t":1}]},"ndb-deferred-constraints":{"d":true,"a":[{"a":"option_mysqld_ndb-deferred-constraints","u":43,"t":1}]},"ndb-distribution":{"d":true,"a":[{"a":"option_mysqld_ndb-distribution","u":43,"t":1}]},"ndb-log-apply-status":{"d":false,"a":[{"a":"option_mysqld_ndb-log-apply-status","u":43,"t":1}]},"ndb-log-empty-epochs":{"d":true,"a":[{"a":"option_mysqld_ndb-log-empty-epochs","u":43,"t":1}]},"ndb-log-empty-update":{"d":true,"a":[{"a":"option_mysqld_ndb-log-empty-update","u":43,"t":1}]},"ndb-log-exclusive-reads":{"d":true,"a":[{"a":"option_mysqld_ndb-log-exclusive-reads","u":43,"t":1}]},"ndb-log-orig":{"d":false,"a":[{"a":"option_mysqld_ndb-log-orig","u":43,"t":1}]},"ndb-log-transaction-id":{"d":false,"a":[{"a":"option_mysqld_ndb-log-transaction-id","u":43,"t":1}]},"ndb-log-update-minimal":{"d":true,"a":[{"a":"option_mysqld_ndb-log-update-minimal","u":43,"t":1}]},"ndb-mgmd-host":{"d":false,"a":[{"a":"option_mysqld_ndb-mgmd-host","u":43,"t":1}]},"ndb-nodeid":{"d":false,"a":[{"a":"option_mysqld_ndb-nodeid","u":43,"t":1}]},"ndb-optimization-delay":{"d":true,"a":[{"a":"option_mysqld_ndb-optimization-delay","u":43,"t":1}]},"ndb-recv-thread-activation-threshold":{"d":false,"a":[{"a":"option_mysqld_ndb-recv-thread-activation-threshold","u":43,"t":1}]},"ndb-recv-thread-cpu-mask":{"d":false,"a":[{"a":"option_mysqld_ndb-recv-thread-cpu-mask","u":43,"t":1}]},"ndb-transid-mysql-connection-map":{"d":false,"a":[{"a":"option_mysqld_ndb-transid-mysql-connection-map","u":43,"t":1}]},"ndb-wait-connected":{"d":false,"a":[{"a":"option_mysqld_ndb-wait-connected","u":43,"t":1}]},"ndb-wait-setup":{"d":false,"a":[{"a":"option_mysqld_ndb-wait-setup","u":43,"t":1}]},"skip-ndbcluster":{"d":false,"a":[{"a":"option_mysqld_skip-ndbcluster","u":43,"t":1}]},"ndb_autoincrement_prefetch_sz":{"d":true,"a":[{"a":"sysvar_ndb_autoincrement_prefetch_sz","u":43,"t":1}]},"ndb_cache_check_time":{"d":true,"a":[{"a":"sysvar_ndb_cache_check_time","u":43,"t":1}]},"ndb_clear_apply_status":{"d":true,"a":[{"a":"sysvar_ndb_clear_apply_status","u":43,"t":1}]},"ndb_data_node_neighbour":{"d":true,"a":[{"a":"sysvar_ndb_data_node_neighbour","u":43,"t":1}]},"ndb_default_column_format":{"d":true,"a":[{"a":"sysvar_ndb_default_column_format","u":43,"t":1}]},"ndb_deferred_constraints":{"d":true,"a":[{"a":"sysvar_ndb_deferred_constraints","u":43,"t":1}]},"ndb_distribution":{"d":true,"a":[{"a":"sysvar_ndb_distribution","u":43,"t":1}]},"ndb_eventbuffer_free_percent":{"d":true,"a":[{"a":"sysvar_ndb_eventbuffer_free_percent","u":43,"t":1}]},"ndb_eventbuffer_max_alloc":{"d":true,"a":[{"a":"sysvar_ndb_eventbuffer_max_alloc","u":43,"t":1}]},"ndb_extra_logging":{"d":true,"a":[{"a":"sysvar_ndb_extra_logging","u":43,"t":1}]},"ndb_force_send":{"d":true,"a":[{"a":"sysvar_ndb_force_send","u":43,"t":1}]},"ndb_fully_replicated":{"d":true,"a":[{"a":"sysvar_ndb_fully_replicated","u":43,"t":1}]},"ndb_index_stat_enable":{"d":true,"a":[{"a":"sysvar_ndb_index_stat_enable","u":43,"t":1}]},"ndb_index_stat_option":{"d":true,"a":[{"a":"sysvar_ndb_index_stat_option","u":43,"t":1}]},"ndb_join_pushdown":{"d":true,"a":[{"a":"sysvar_ndb_join_pushdown","u":43,"t":1}]},"ndb_log_apply_status":{"d":false,"a":[{"a":"sysvar_ndb_log_apply_status","u":43,"t":1}]},"ndb_log_bin":{"d":true,"a":[{"a":"sysvar_ndb_log_bin","u":43,"t":1}]},"ndb_log_binlog_index":{"d":true,"a":[{"a":"sysvar_ndb_log_binlog_index","u":43,"t":1}]},"ndb_log_empty_epochs":{"d":true,"a":[{"a":"sysvar_ndb_log_empty_epochs","u":43,"t":1}]},"ndb_log_empty_update":{"d":true,"a":[{"a":"sysvar_ndb_log_empty_update","u":43,"t":1}]},"ndb_log_exclusive_reads":{"d":true,"a":[{"a":"sysvar_ndb_log_exclusive_reads","u":43,"t":1}]},"ndb_log_orig":{"d":false,"a":[{"a":"sysvar_ndb_log_orig","u":43,"t":1}]},"ndb_log_transaction_id":{"d":false,"a":[{"a":"sysvar_ndb_log_transaction_id","u":43,"t":1}]},"ndb_optimized_node_selection":{"d":false,"a":[{"a":"sysvar_ndb_optimized_node_selection","u":43,"t":1}]},"ndb_read_backup":{"d":true,"a":[{"a":"sysvar_ndb_read_backup","u":43,"t":1}]},"ndb_recv_thread_activation_threshold":{"d":false,"a":[{"a":"sysvar_ndb_recv_thread_activation_threshold","u":43,"t":1}]},"ndb_recv_thread_cpu_mask":{"d":true,"a":[{"a":"sysvar_ndb_recv_thread_cpu_mask","u":43,"t":1}]},"ndb_report_thresh_binlog_epoch_slip":{"d":true,"a":[{"a":"sysvar_ndb_report_thresh_binlog_epoch_slip","u":43,"t":1}]},"ndb_report_thresh_binlog_mem_usage":{"d":true,"t":2,"a":[{"a":"sysvar_ndb_report_thresh_binlog_mem_usage","u":43,"t":1}]},"ndb_row_checksum":{"d":true,"t":3,"a":[{"a":"sysvar_ndb_row_checksum","u":43,"t":1}]},"ndb_show_foreign_key_mock_tables":{"d":true,"a":[{"a":"sysvar_ndb_show_foreign_key_mock_tables","u":43,"t":1}]},"ndb_slave_conflict_role":{"d":true,"a":[{"a":"sysvar_ndb_slave_conflict_role","u":43,"t":1}]},"ndb_table_no_logging":{"d":true,"a":[{"a":"sysvar_ndb_table_no_logging","u":43,"t":1}]},"ndb_table_temporary":{"d":true,"a":[{"a":"sysvar_ndb_table_temporary","u":43,"t":1}]},"ndb_use_copying_alter_table":{"d":false,"a":[{"a":"sysvar_ndb_use_copying_alter_table","u":43,"t":1}]},"ndb_use_exact_count":{"d":true,"a":[{"a":"sysvar_ndb_use_exact_count","u":43,"t":1}]},"ndb_use_transactions":{"d":true,"a":[{"a":"sysvar_ndb_use_transactions","u":43,"t":1}]},"ndb_version":{"d":false,"a":[{"a":"sysvar_ndb_version","u":43,"t":1}]},"ndb_version_string":{"d":false,"a":[{"a":"sysvar_ndb_version_string","u":43,"t":1}]},"server_id_bits":{"d":false,"a":[{"a":"sysvar_server_id_bits","u":43,"t":1}]},"slave_allow_batching":{"d":true,"a":[{"a":"sysvar_slave_allow_batching","u":43,"t":1}]},"transaction_allow_batching":{"d":true,"a":[{"a":"sysvar_transaction_allow_batching","u":43,"t":1}]},"ndbinfo_database":{"d":false,"a":[{"a":"sysvar_ndbinfo_database","u":43,"t":1}]},"ndbinfo_max_bytes":{"d":true,"a":[{"a":"sysvar_ndbinfo_max_bytes","u":43,"t":1}]},"ndbinfo_max_rows":{"d":true,"a":[{"a":"sysvar_ndbinfo_max_rows","u":43,"t":1}]},"ndbinfo_offline":{"d":true,"a":[{"a":"sysvar_ndbinfo_offline","u":43,"t":1}]},"ndbinfo_show_hidden":{"d":true,"a":[{"a":"sysvar_ndbinfo_show_hidden","u":43,"t":1}]},"ndbinfo_table_prefix":{"d":true,"a":[{"a":"sysvar_ndbinfo_table_prefix","u":43,"t":1}]},"ndbinfo_version":{"d":false,"a":[{"a":"sysvar_ndbinfo_version","u":43,"t":1}]},"performance_schema_error_size":{"d":false,"t":3,"a":[{"a":"sysvar_performance_schema_error_size","u":20,"t":1}]},"performance_schema_events_transactions_history_long_size":{"d":false,"t":3,"a":[{"a":"sysvar_performance_schema_events_transactions_history_long_size","u":20,"t":1}]},"performance_schema_events_transactions_history_size":{"d":false,"t":3,"a":[{"a":"sysvar_performance_schema_events_transactions_history_size","u":20,"t":1}]},"performance_schema_max_digest_sample_age":{"d":true,"t":3,"a":[{"a":"sysvar_performance_schema_max_digest_sample_age","u":20,"t":1}]},"performance_schema_max_index_stat":{"d":false,"t":3,"a":[{"a":"sysvar_performance_schema_max_index_stat","u":20,"t":1}]},"performance_schema_max_memory_classes":{"d":false,"t":3,"a":[{"a":"sysvar_performance_schema_max_memory_classes","u":20,"t":1}]},"performance_schema_max_metadata_locks":{"d":false,"t":3,"a":[{"a":"sysvar_performance_schema_max_metadata_locks","u":20,"t":1}]},"performance_schema_max_prepared_statements_instances":{"d":false,"t":3,"a":[{"a":"sysvar_performance_schema_max_prepared_statements_instances","u":20,"t":1}]},"performance_schema_max_program_instances":{"d":false,"t":3,"a":[{"a":"sysvar_performance_schema_max_program_instances","u":20,"t":1}]},"performance_schema_max_sql_text_length":{"d":false,"t":3,"a":[{"a":"sysvar_performance_schema_max_sql_text_length","u":20,"t":1}]},"performance_schema_max_statement_stack":{"d":false,"t":3,"a":[{"a":"sysvar_performance_schema_max_statement_stack","u":20,"t":1}]},"performance_schema_max_table_lock_stat":{"d":false,"t":3,"a":[{"a":"sysvar_performance_schema_max_table_lock_stat","u":20,"t":1}]},"authentication_ldap_sasl_auth_method_name":{"d":true,"t":1,"a":[{"a":"sysvar_authentication_ldap_sasl_auth_method_name","u":44,"t":1}]},"authentication_ldap_sasl_bind_base_dn":{"d":true,"t":1,"a":[{"a":"sysvar_authentication_ldap_sasl_bind_base_dn","u":44,"t":1}]},"authentication_ldap_sasl_bind_root_dn":{"d":true,"t":1,"a":[{"a":"sysvar_authentication_ldap_sasl_bind_root_dn","u":44,"t":1}]},"authentication_ldap_sasl_bind_root_pwd":{"d":true,"t":1,"a":[{"a":"sysvar_authentication_ldap_sasl_bind_root_pwd","u":44,"t":1}]},"authentication_ldap_sasl_ca_path":{"d":true,"t":1,"a":[{"a":"sysvar_authentication_ldap_sasl_ca_path","u":44,"t":1}]},"authentication_ldap_sasl_group_search_attr":{"d":true,"t":1,"a":[{"a":"sysvar_authentication_ldap_sasl_group_search_attr","u":44,"t":1}]},"authentication_ldap_sasl_group_search_filter":{"d":true,"t":1,"a":[{"a":"sysvar_authentication_ldap_sasl_group_search_filter","u":44,"t":1}]},"authentication_ldap_sasl_init_pool_size":{"d":true,"t":3,"a":[{"a":"sysvar_authentication_ldap_sasl_init_pool_size","u":44,"t":1}]},"authentication_ldap_sasl_log_status":{"d":true,"t":3,"a":[{"a":"sysvar_authentication_ldap_sasl_log_status","u":44,"t":1}]},"authentication_ldap_sasl_max_pool_size":{"d":true,"t":3,"a":[{"a":"sysvar_authentication_ldap_sasl_max_pool_size","u":44,"t":1}]},"authentication_ldap_sasl_server_host":{"d":true,"t":1,"a":[{"a":"sysvar_authentication_ldap_sasl_server_host","u":44,"t":1}]},"authentication_ldap_sasl_server_port":{"d":true,"t":3,"a":[{"a":"sysvar_authentication_ldap_sasl_server_port","u":44,"t":1}]},"authentication_ldap_sasl_tls":{"d":true,"t":2,"a":[{"a":"sysvar_authentication_ldap_sasl_tls","u":44,"t":1}]},"authentication_ldap_sasl_user_search_attr":{"d":true,"t":1,"a":[{"a":"sysvar_authentication_ldap_sasl_user_search_attr","u":44,"t":1}]},"authentication_ldap_simple_auth_method_name":{"d":true,"t":1,"a":[{"a":"sysvar_authentication_ldap_simple_auth_method_name","u":44,"t":1}]},"authentication_ldap_simple_bind_base_dn":{"d":true,"t":1,"a":[{"a":"sysvar_authentication_ldap_simple_bind_base_dn","u":44,"t":1}]},"authentication_ldap_simple_bind_root_dn":{"d":true,"t":1,"a":[{"a":"sysvar_authentication_ldap_simple_bind_root_dn","u":44,"t":1}]},"authentication_ldap_simple_bind_root_pwd":{"d":true,"t":1,"a":[{"a":"sysvar_authentication_ldap_simple_bind_root_pwd","u":44,"t":1}]},"authentication_ldap_simple_ca_path":{"d":true,"t":1,"a":[{"a":"sysvar_authentication_ldap_simple_ca_path","u":44,"t":1}]},"authentication_ldap_simple_group_search_attr":{"d":true,"t":1,"a":[{"a":"sysvar_authentication_ldap_simple_group_search_attr","u":44,"t":1}]},"authentication_ldap_simple_group_search_filter":{"d":true,"t":1,"a":[{"a":"sysvar_authentication_ldap_simple_group_search_filter","u":44,"t":1}]},"authentication_ldap_simple_init_pool_size":{"d":true,"t":3,"a":[{"a":"sysvar_authentication_ldap_simple_init_pool_size","u":44,"t":1}]},"authentication_ldap_simple_log_status":{"d":true,"t":3,"a":[{"a":"sysvar_authentication_ldap_simple_log_status","u":44,"t":1}]},"authentication_ldap_simple_max_pool_size":{"d":true,"t":3,"a":[{"a":"sysvar_authentication_ldap_simple_max_pool_size","u":44,"t":1}]},"authentication_ldap_simple_server_host":{"d":true,"t":1,"a":[{"a":"sysvar_authentication_ldap_simple_server_host","u":44,"t":1}]},"authentication_ldap_simple_server_port":{"d":true,"t":3,"a":[{"a":"sysvar_authentication_ldap_simple_server_port","u":44,"t":1}]},"authentication_ldap_simple_tls":{"d":true,"t":2,"a":[{"a":"sysvar_authentication_ldap_simple_tls","u":44,"t":1}]},"authentication_ldap_simple_user_search_attr":{"d":true,"t":1,"a":[{"a":"sysvar_authentication_ldap_simple_user_search_attr","u":44,"t":1}]},"binlog_row_event_max_size":{"t":3,"a":[{"a":"option_mysqld_binlog-row-event-max-size","u":22,"t":1},{"a":"sysvar_binlog_row_event_max_size","u":22,"t":1},{"a":"option_mysqld_binlog-row-event-max-size","u":23,"t":1}]},"binlog_do_db":{"t":1,"a":[{"a":"option_mysqld_binlog-do-db","u":22,"t":1},{"a":"option_mysqld_binlog-do-db","u":23,"t":1}]},"binlog_ignore_db":{"t":1,"a":[{"a":"option_mysqld_binlog-ignore-db","u":22,"t":1},{"a":"option_mysqld_binlog-ignore-db","u":23,"t":1}]},"max_binlog_dump_events":{"t":3,"a":[{"a":"option_mysqld_max-binlog-dump-events","u":22,"t":1},{"a":"option_mysqld_max-binlog-dump-events","u":23,"t":1}]},"sporadic_binlog_dump_fail":{"t":2,"a":[{"a":"option_mysqld_sporadic-binlog-dump-fail","u":22,"t":1},{"a":"option_mysqld_sporadic-binlog-dump-fail","u":23,"t":1}]},"binlog_encryption":{"d":true,"t":2,"a":[{"a":"sysvar_binlog_encryption","u":22,"t":1}]},"binlog_error_action":{"d":true,"t":5,"a":[{"a":"sysvar_binlog_error_action","u":22,"t":1},{"a":"sysvar_binlog_error_action","u":23,"t":1}]},"binlog_expire_logs_seconds":{"d":true,"t":3,"a":[{"a":"sysvar_binlog_expire_logs_seconds","u":22,"t":1}]},"binlog_group_commit_sync_delay":{"d":true,"t":3,"a":[{"a":"sysvar_binlog_group_commit_sync_delay","u":22,"t":1},{"a":"sysvar_binlog_group_commit_sync_delay","u":23,"t":1}]},"binlog_group_commit_sync_no_delay_count":{"d":true,"t":3,"a":[{"a":"sysvar_binlog_group_commit_sync_no_delay_count","u":22,"t":1},{"a":"sysvar_binlog_group_commit_sync_no_delay_count","u":23,"t":1}]},"binlog_max_flush_queue_time":{"d":true,"t":3,"a":[{"a":"sysvar_binlog_max_flush_queue_time","u":22,"t":1},{"a":"sysvar_binlog_max_flush_queue_time","u":23,"t":1}]},"binlog_order_commits":{"d":true,"t":2,"a":[{"a":"sysvar_binlog_order_commits","u":22,"t":1},{"a":"sysvar_binlog_order_commits","u":23,"t":1}]},"binlog_rotate_encryption_master_key_at_startup":{"d":false,"t":2,"a":[{"a":"sysvar_binlog_rotate_encryption_master_key_at_startup","u":22,"t":1}]},"binlog_row_value_options":{"d":true,"t":6,"a":[{"a":"sysvar_binlog_row_value_options","u":22,"t":1}]},"binlog_rows_query_log_events":{"d":true,"t":2,"a":[{"a":"sysvar_binlog_rows_query_log_events","u":22,"t":1},{"a":"sysvar_binlog_rows_query_log_events","u":23,"t":1}]},"binlog_transaction_dependency_tracking":{"d":true,"t":5,"a":[{"a":"sysvar_binlog_transaction_dependency_tracking","u":22,"t":1},{"a":"sysvar_binlog_transaction_dependency_tracking","u":23,"t":1}]},"binlog_transaction_dependency_history_size":{"d":true,"t":3,"a":[{"a":"sysvar_binlog_transaction_dependency_history_size","u":22,"t":1},{"a":"sysvar_binlog_transaction_dependency_history_size","u":23,"t":1}]},"log_bin_use_v1_row_events":{"d":false,"t":2,"a":[{"a":"sysvar_log_bin_use_v1_row_events","u":22,"t":1},{"a":"sysvar_log_bin_use_v1_row_events","u":23,"t":1}]},"log_builtin_as_identified_by_password":{"d":true,"t":2,"a":[{"a":"sysvar_log_builtin_as_identified_by_password","u":22,"t":1},{"a":"sysvar_log_builtin_as_identified_by_password","u":23,"t":1}]},"log_statements_unsafe_for_binlog":{"d":true,"t":2,"a":[{"a":"sysvar_log_statements_unsafe_for_binlog","u":22,"t":1},{"a":"sysvar_log_statements_unsafe_for_binlog","u":23,"t":1}]},"original_commit_timestamp":{"d":true,"t":4,"a":[{"a":"sysvar_original_commit_timestamp","u":22,"t":1}]},"transaction_write_set_extraction":{"d":true,"t":5,"a":[{"a":"sysvar_transaction_write_set_extraction","u":22,"t":1},{"a":"sysvar_transaction_write_set_extraction","u":23,"t":1}]},"binlogging_impossible_mode":{"d":true,"t":5,"a":[{"a":"sysvar_binlogging_impossible_mode","u":23,"t":1}]},"log_backward_compatible_user_definitions":{"d":true,"t":2,"a":[{"a":"sysvar_log_backward_compatible_user_definitions","u":23,"t":1}]},"binlog_gtid_simple_recovery":{"d":false,"t":2,"a":[{"a":"sysvar_binlog_gtid_simple_recovery","u":45,"t":1}]},"enforce_gtid_consistency":{"d":true,"t":5,"a":[{"a":"sysvar_enforce_gtid_consistency","u":45,"t":1}]},"gtid_executed":{"d":false,"t":1,"a":[{"a":"sysvar_gtid_executed","u":45,"t":1}]},"gtid_executed_compression_period":{"d":true,"t":3,"a":[{"a":"sysvar_gtid_executed_compression_period","u":45,"t":1}]},"gtid_mode":{"d":true,"t":5,"a":[{"a":"sysvar_gtid_mode","u":45,"t":1}]},"gtid_next":{"d":true,"t":5,"a":[{"a":"sysvar_gtid_next","u":45,"t":1}]},"gtid_owned":{"d":false,"t":1,"a":[{"a":"sysvar_gtid_owned","u":45,"t":1}]},"gtid_purged":{"d":true,"t":1,"a":[{"a":"sysvar_gtid_purged","u":45,"t":1}]},"show_slave_auth_info":{"t":2,"a":[{"a":"option_mysqld_show-slave-auth-info","u":21,"t":1}]},"immediate_server_version":{"d":true,"t":3,"a":[{"a":"sysvar_immediate_server_version","u":21,"t":1}]},"original_server_version":{"d":true,"t":3,"a":[{"a":"sysvar_original_server_version","u":21,"t":1}]},"rpl_semi_sync_master_wait_for_slave_count":{"d":true,"t":3,"a":[{"a":"sysvar_rpl_semi_sync_master_wait_for_slave_count","u":21,"t":1}]},"master_info_file":{"t":8,"a":[{"a":"option_mysqld_master-info-file","u":24,"t":1}]},"master_retry_count":{"t":3,"a":[{"a":"option_mysqld_master-retry-count","u":24,"t":1}]},"replicate_same_server_id":{"t":2,"a":[{"a":"option_mysqld_replicate-same-server-id","u":24,"t":1}]},"skip_slave_start":{"t":2,"a":[{"a":"option_mysqld_skip-slave-start","u":24,"t":1}]},"abort_slave_event_count":{"t":3,"a":[{"a":"option_mysqld_abort-slave-event-count","u":24,"t":1}]},"disconnect_slave_event_count":{"t":3,"a":[{"a":"option_mysqld_disconnect-slave-event-count","u":24,"t":1}]},"master_info_repository":{"d":true,"t":1,"a":[{"a":"sysvar_master_info_repository","u":24,"t":1}]},"relay_log_info_repository":{"d":true,"t":1,"a":[{"a":"sysvar_relay_log_info_repository","u":24,"t":1}]},"rpl_read_size":{"d":true,"t":3,"a":[{"a":"sysvar_rpl_read_size","u":24,"t":1}]},"rpl_stop_slave_timeout":{"d":true,"t":3,"a":[{"a":"sysvar_rpl_stop_slave_timeout","u":24,"t":1}]},"slave_checkpoint_group":{"d":true,"t":3,"a":[{"a":"sysvar_slave_checkpoint_group","u":24,"t":1}]},"slave_checkpoint_period":{"d":true,"t":3,"a":[{"a":"sysvar_slave_checkpoint_period","u":24,"t":1}]},"slave_parallel_type":{"d":true,"t":5,"a":[{"a":"sysvar_slave_parallel_type","u":24,"t":1}]},"slave_pending_jobs_size_max":{"d":true,"t":3,"a":[{"a":"sysvar_slave_pending_jobs_size_max","u":24,"t":1}]},"slave_preserve_commit_order":{"d":true,"t":2,"a":[{"a":"sysvar_slave_preserve_commit_order","u":24,"t":1}]},"slave_rows_search_algorithms":{"d":true,"t":6,"a":[{"a":"sysvar_slave_rows_search_algorithms","u":24,"t":1}]},"server_uuid":{"d":false,"t":1,"a":[{"a":"sysvar_server_uuid","u":9,"t":1}]},"help":{"a":[{"a":"option_mysqld_help","u":16,"t":1}]},"allow_suspicious_udfs":{"t":2,"a":[{"a":"option_mysqld_allow-suspicious-udfs","u":16,"t":1}]},"ansi":{"a":[{"a":"option_mysqld_ansi","u":16,"t":1}]},"character_set_client_handshake":{"t":2,"a":[{"a":"option_mysqld_character-set-client-handshake","u":16,"t":1}]},"chroot":{"t":7,"a":[{"a":"option_mysqld_chroot","u":16,"t":1}]},"console":{"a":[{"a":"option_mysqld_console","u":16,"t":1}]},"daemonize":{"t":2,"a":[{"a":"option_mysqld_daemonize","u":16,"t":1}]},"debug_sync_timeout":{"t":3,"a":[{"a":"option_mysqld_debug-sync-timeout","u":16,"t":1}]},"default_time_zone":{"t":1,"a":[{"a":"option_mysqld_default-time-zone","u":16,"t":1}]},"des_key_file":{"a":[{"a":"option_mysqld_des-key-file","u":16,"t":1}]},"early_plugin_load":{"t":1,"a":[{"a":"option_mysqld_early-plugin-load","u":16,"t":1}]},"exit_info":{"t":3,"a":[{"a":"option_mysqld_exit-info","u":16,"t":1}]},"external_locking":{"t":2,"a":[{"a":"option_mysqld_external-locking","u":16,"t":1}]},"gdb":{"t":2,"a":[{"a":"option_mysqld_gdb","u":16,"t":1}]},"initialize":{"t":2,"a":[{"a":"option_mysqld_initialize","u":16,"t":1}]},"initialize_insecure":{"t":2,"a":[{"a":"option_mysqld_initialize-insecure","u":16,"t":1}]},"install":{"a":[{"a":"option_mysqld_install","u":16,"t":1}]},"install_manual":{"a":[{"a":"option_mysqld_install-manual","u":16,"t":1}]},"language":{"d":false,"t":7,"a":[{"a":"option_mysqld_language","u":16,"t":1}]},"local_service":{"a":[{"a":"option_mysqld_local-service","u":16,"t":1}]},"log_isam":{"t":8,"a":[{"a":"option_mysqld_log-isam","u":16,"t":1}]},"log_raw":{"t":2,"a":[{"a":"option_mysqld_log-raw","u":16,"t":1},{"a":"sysvar_log_raw","u":15,"t":1}]},"log_short_format":{"t":2,"a":[{"a":"option_mysqld_log-short-format","u":16,"t":1}]},"log_tc":{"t":8,"a":[{"a":"option_mysqld_log-tc","u":16,"t":1}]},"memlock":{"t":2,"a":[{"a":"option_mysqld_memlock","u":16,"t":1}]},"no_dd_upgrade":{"t":2,"a":[{"a":"option_mysqld_no-dd-upgrade","u":16,"t":1}]},"no_monitor":{"t":2,"a":[{"a":"option_mysqld_no-monitor","u":16,"t":1}]},"old_style_user_limits":{"t":2,"a":[{"a":"option_mysqld_old-style-user-limits","u":16,"t":1}]},"plugin_load":{"d":false,"t":1,"a":[{"a":"option_mysqld_plugin-load","u":16,"t":1}]},"plugin_load_add":{"d":false,"t":1,"a":[{"a":"option_mysqld_plugin-load-add","u":16,"t":1}]},"port_open_timeout":{"t":3,"a":[{"a":"option_mysqld_port-open-timeout","u":16,"t":1}]},"remove":{"a":[{"a":"option_mysqld_remove","u":16,"t":1}]},"safe_user_create":{"t":2,"a":[{"a":"option_mysqld_safe-user-create","u":16,"t":1}]},"skip_grant_tables":{"t":2,"a":[{"a":"option_mysqld_skip-grant-tables","u":16,"t":1}]},"skip_host_cache":{"a":[{"a":"option_mysqld_skip-host-cache","u":16,"t":1}]},"skip_new":{"a":[{"a":"option_mysqld_skip-new","u":16,"t":1}]},"skip_stack_trace":{"a":[{"a":"option_mysqld_skip-stack-trace","u":16,"t":1}]},"slow_start_timeout":{"t":3,"a":[{"a":"option_mysqld_slow-start-timeout","u":16,"t":1}]},"standalone":{"a":[{"a":"option_mysqld_standalone","u":16,"t":1}]},"super_large_pages":{"t":2,"a":[{"a":"option_mysqld_super-large-pages","u":16,"t":1}]},"symbolic_links":{"t":2,"a":[{"a":"option_mysqld_symbolic-links","u":16,"t":1}]},"sysdate_is_now":{"t":2,"a":[{"a":"option_mysqld_sysdate-is-now","u":16,"t":1}]},"tc_heuristic_recover":{"t":5,"a":[{"a":"option_mysqld_tc-heuristic-recover","u":16,"t":1}]},"temp_pool":{"t":2,"a":[{"a":"option_mysqld_temp-pool","u":16,"t":1}]},"transaction_isolation":{"d":true,"t":5,"a":[{"a":"option_mysqld_transaction-isolation","u":16,"t":1},{"a":"sysvar_transaction_isolation","u":15,"t":1}]},"transaction_read_only":{"d":true,"t":2,"a":[{"a":"option_mysqld_transaction-read-only","u":16,"t":1},{"a":"sysvar_transaction_read_only","u":15,"t":1}]},"upgrade":{"t":5,"a":[{"a":"option_mysqld_upgrade","u":16,"t":1}]},"user":{"t":1,"a":[{"a":"option_mysqld_user","u":16,"t":1}]},"validate_config":{"t":2,"a":[{"a":"option_mysqld_validate-config","u":16,"t":1}]},"activate_all_roles_on_login":{"d":true,"t":2,"a":[{"a":"sysvar_activate_all_roles_on_login","u":15,"t":1}]},"admin_address":{"d":false,"t":1,"a":[{"a":"sysvar_admin_address","u":15,"t":1}]},"admin_port":{"d":false,"t":3,"a":[{"a":"sysvar_admin_port","u":15,"t":1}]},"authentication_windows_log_level":{"d":false,"t":3,"a":[{"a":"sysvar_authentication_windows_log_level","u":15,"t":1}]},"authentication_windows_use_principal_name":{"d":false,"t":2,"a":[{"a":"sysvar_authentication_windows_use_principal_name","u":15,"t":1}]},"auto_generate_certs":{"d":false,"t":2,"a":[{"a":"sysvar_auto_generate_certs","u":15,"t":1}]},"avoid_temporal_upgrade":{"d":true,"t":2,"a":[{"a":"sysvar_avoid_temporal_upgrade","u":15,"t":1}]},"block_encryption_mode":{"d":true,"t":1,"a":[{"a":"sysvar_block_encryption_mode","u":15,"t":1}]},"caching_sha2_password_auto_generate_rsa_keys":{"d":false,"t":2,"a":[{"a":"sysvar_caching_sha2_password_auto_generate_rsa_keys","u":15,"t":1}]},"caching_sha2_password_private_key_path":{"d":false,"t":8,"a":[{"a":"sysvar_caching_sha2_password_private_key_path","u":15,"t":1}]},"caching_sha2_password_public_key_path":{"d":false,"t":8,"a":[{"a":"sysvar_caching_sha2_password_public_key_path","u":15,"t":1}]},"check_proxy_users":{"d":true,"t":2,"a":[{"a":"sysvar_check_proxy_users","u":15,"t":1}]},"create_admin_listener_thread":{"d":false,"t":2,"a":[{"a":"sysvar_create_admin_listener_thread","u":15,"t":1}]},"cte_max_recursion_depth":{"d":true,"t":3,"a":[{"a":"sysvar_cte_max_recursion_depth","u":15,"t":1}]},"default_authentication_plugin":{"d":false,"t":5,"a":[{"a":"sysvar_default_authentication_plugin","u":15,"t":1}]},"default_collation_for_utf8mb4":{"d":true,"t":5,"a":[{"a":"sysvar_default_collation_for_utf8mb4","u":15,"t":1}]},"default_table_encryption":{"d":true,"t":2,"a":[{"a":"sysvar_default_table_encryption","u":15,"t":1}]},"disabled_storage_engines":{"d":false,"t":1,"a":[{"a":"sysvar_disabled_storage_engines","u":15,"t":1}]},"dragnet.log_error_filter_rules":{"d":true,"t":1,"a":[{"a":"sysvar_dragnet.log_error_filter_rules","u":15,"t":1}]},"end_markers_in_json":{"d":true,"t":2,"a":[{"a":"sysvar_end_markers_in_json","u":15,"t":1}]},"generated_random_password_length":{"d":true,"t":3,"a":[{"a":"sysvar_generated_random_password_length","u":15,"t":1}]},"have_statement_timeout":{"d":false,"t":2,"a":[{"a":"sysvar_have_statement_timeout","u":15,"t":1}]},"histogram_generation_max_mem_size":{"d":true,"t":3,"a":[{"a":"sysvar_histogram_generation_max_mem_size","u":15,"t":1}]},"information_schema_stats_expiry":{"d":true,"t":3,"a":[{"a":"sysvar_information_schema_stats_expiry","u":15,"t":1}]},"internal_tmp_disk_storage_engine":{"d":true,"t":5,"a":[{"a":"sysvar_internal_tmp_disk_storage_engine","u":15,"t":1}]},"internal_tmp_mem_storage_engine":{"d":true,"t":5,"a":[{"a":"sysvar_internal_tmp_mem_storage_engine","u":15,"t":1}]},"log_error_filter_rules":{"d":true,"t":1,"a":[{"a":"sysvar_log_error_filter_rules","u":15,"t":1}]},"log_error_services":{"d":true,"t":1,"a":[{"a":"sysvar_log_error_services","u":15,"t":1}]},"log_error_suppression_list":{"d":true,"t":1,"a":[{"a":"sysvar_log_error_suppression_list","u":15,"t":1}]},"log_error_verbosity":{"d":true,"t":3,"a":[{"a":"sysvar_log_error_verbosity","u":15,"t":1}]},"log_slow_extra":{"d":true,"t":2,"a":[{"a":"sysvar_log_slow_extra","u":15,"t":1}]},"log_syslog":{"d":true,"t":2,"a":[{"a":"sysvar_log_syslog","u":15,"t":1}]},"log_syslog_facility":{"d":true,"t":1,"a":[{"a":"sysvar_log_syslog_facility","u":15,"t":1}]},"log_syslog_include_pid":{"d":true,"t":2,"a":[{"a":"sysvar_log_syslog_include_pid","u":15,"t":1}]},"log_syslog_tag":{"d":true,"t":1,"a":[{"a":"sysvar_log_syslog_tag","u":15,"t":1}]},"log_timestamps":{"d":true,"t":5,"a":[{"a":"sysvar_log_timestamps","u":15,"t":1}]},"log_throttle_queries_not_using_indexes":{"d":true,"t":3,"a":[{"a":"sysvar_log_throttle_queries_not_using_indexes","u":15,"t":1}]},"mandatory_roles":{"d":true,"t":1,"a":[{"a":"sysvar_mandatory_roles","u":15,"t":1}]},"max_execution_time":{"d":true,"t":3,"a":[{"a":"sysvar_max_execution_time","u":15,"t":1}]},"max_points_in_geometry":{"d":true,"t":3,"a":[{"a":"sysvar_max_points_in_geometry","u":15,"t":1}]},"mecab_rc_file":{"d":false,"t":8,"a":[{"a":"sysvar_mecab_rc_file","u":15,"t":1}]},"mysql_native_password_proxy_users":{"d":true,"t":2,"a":[{"a":"sysvar_mysql_native_password_proxy_users","u":15,"t":1}]},"named_pipe_full_access_group":{"d":false,"t":1,"a":[{"a":"sysvar_named_pipe_full_access_group","u":15,"t":1}]},"new":{"d":true,"t":2,"a":[{"a":"sysvar_new","u":15,"t":1}]},"ngram_token_size":{"d":false,"t":3,"a":[{"a":"sysvar_ngram_token_size","u":15,"t":1}]},"offline_mode":{"d":true,"t":2,"a":[{"a":"sysvar_offline_mode","u":15,"t":1}]},"optimizer_trace_features":{"d":true,"t":1,"a":[{"a":"sysvar_optimizer_trace_features","u":15,"t":1}]},"optimizer_trace_limit":{"d":true,"t":3,"a":[{"a":"sysvar_optimizer_trace_limit","u":15,"t":1}]},"optimizer_trace_offset":{"d":true,"t":3,"a":[{"a":"sysvar_optimizer_trace_offset","u":15,"t":1}]},"parser_max_mem_size":{"d":true,"t":3,"a":[{"a":"sysvar_parser_max_mem_size","u":15,"t":1}]},"partial_revokes":{"d":true,"t":2,"a":[{"a":"sysvar_partial_revokes","u":15,"t":1}]},"password_history":{"d":true,"t":3,"a":[{"a":"sysvar_password_history","u":15,"t":1}]},"password_require_current":{"d":true,"t":2,"a":[{"a":"sysvar_password_require_current","u":15,"t":1}]},"password_reuse_interval":{"d":true,"t":3,"a":[{"a":"sysvar_password_reuse_interval","u":15,"t":1}]},"persisted_globals_load":{"d":false,"t":2,"a":[{"a":"sysvar_persisted_globals_load","u":15,"t":1}]},"persist_only_admin_x509_subject":{"d":false,"t":1,"a":[{"a":"sysvar_persist_only_admin_x509_subject","u":15,"t":1}]},"print_identified_with_as_hex":{"d":true,"t":2,"a":[{"a":"sysvar_print_identified_with_as_hex","u":15,"t":1}]},"protocol_compression_algorithms":{"d":true,"t":6,"a":[{"a":"sysvar_protocol_compression_algorithms","u":15,"t":1}]},"range_optimizer_max_mem_size":{"d":true,"t":3,"a":[{"a":"sysvar_range_optimizer_max_mem_size","u":15,"t":1}]},"rbr_exec_mode":{"d":true,"t":5,"a":[{"a":"sysvar_rbr_exec_mode","u":15,"t":1}]},"regexp_stack_limit":{"d":true,"t":3,"a":[{"a":"sysvar_regexp_stack_limit","u":15,"t":1}]},"regexp_time_limit":{"d":true,"t":3,"a":[{"a":"sysvar_regexp_time_limit","u":15,"t":1}]},"require_secure_transport":{"d":true,"t":2,"a":[{"a":"sysvar_require_secure_transport","u":15,"t":1}]},"resultset_metadata":{"d":true,"t":5,"a":[{"a":"sysvar_resultset_metadata","u":15,"t":1}]},"secondary_engine_cost_threshold":{"d":true,"t":4,"a":[{"a":"sysvar_secondary_engine_cost_threshold","u":15,"t":1}]},"schema_definition_cache":{"d":true,"t":3,"a":[{"a":"sysvar_schema_definition_cache","u":15,"t":1}]},"session_track_gtids":{"d":true,"t":5,"a":[{"a":"sysvar_session_track_gtids","u":15,"t":1}]},"sha256_password_auto_generate_rsa_keys":{"d":false,"t":2,"a":[{"a":"sysvar_sha256_password_auto_generate_rsa_keys","u":15,"t":1}]},"sha256_password_private_key_path":{"d":false,"t":8,"a":[{"a":"sysvar_sha256_password_private_key_path","u":15,"t":1}]},"sha256_password_proxy_users":{"d":true,"t":2,"a":[{"a":"sysvar_sha256_password_proxy_users","u":15,"t":1}]},"sha256_password_public_key_path":{"d":false,"t":8,"a":[{"a":"sysvar_sha256_password_public_key_path","u":15,"t":1}]},"show_compatibility_56":{"d":true,"t":2,"a":[{"a":"sysvar_show_compatibility_56","u":15,"t":1}]},"show_create_table_skip_secondary_engine":{"d":true,"t":2,"a":[{"a":"sysvar_show_create_table_skip_secondary_engine","u":15,"t":1}]},"show_create_table_verbosity":{"d":true,"t":2,"a":[{"a":"sysvar_show_create_table_verbosity","u":15,"t":1}]},"show_old_temporals":{"d":true,"t":2,"a":[{"a":"sysvar_show_old_temporals","u":15,"t":1}]},"sql_require_primary_key":{"d":true,"t":2,"a":[{"a":"sysvar_sql_require_primary_key","u":15,"t":1}]},"ssl_fips_mode":{"d":true,"t":5,"a":[{"a":"sysvar_ssl_fips_mode","u":15,"t":1}]},"stored_program_definition_cache":{"d":true,"t":3,"a":[{"a":"sysvar_stored_program_definition_cache","u":15,"t":1}]},"super_read_only":{"d":true,"t":2,"a":[{"a":"sysvar_super_read_only","u":15,"t":1}]},"syseventlog.facility":{"d":true,"t":1,"a":[{"a":"sysvar_syseventlog.facility","u":15,"t":1}]},"syseventlog.include_pid":{"d":true,"t":2,"a":[{"a":"sysvar_syseventlog.include_pid","u":15,"t":1}]},"syseventlog.tag":{"d":true,"t":1,"a":[{"a":"sysvar_syseventlog.tag","u":15,"t":1}]},"table_encryption_privilege_check":{"d":true,"t":2,"a":[{"a":"sysvar_table_encryption_privilege_check","u":15,"t":1}]},"tablespace_definition_cache":{"d":true,"t":3,"a":[{"a":"sysvar_tablespace_definition_cache","u":15,"t":1}]},"temptable_max_ram":{"d":true,"t":3,"a":[{"a":"sysvar_temptable_max_ram","u":15,"t":1}]},"temptable_use_mmap":{"d":true,"t":2,"a":[{"a":"sysvar_temptable_use_mmap","u":15,"t":1}]},"thread_pool_algorithm":{"d":false,"t":3,"a":[{"a":"sysvar_thread_pool_algorithm","u":15,"t":1}]},"thread_pool_high_priority_connection":{"d":true,"t":3,"a":[{"a":"sysvar_thread_pool_high_priority_connection","u":15,"t":1}]},"thread_pool_max_active_query_threads":{"d":true,"t":3,"a":[{"a":"sysvar_thread_pool_max_active_query_threads","u":15,"t":1}]},"thread_pool_max_unused_threads":{"d":true,"t":3,"a":[{"a":"sysvar_thread_pool_max_unused_threads","u":15,"t":1}]},"tls_ciphersuites":{"d":true,"t":1,"a":[{"a":"sysvar_tls_ciphersuites","u":15,"t":1}]},"use_secondary_engine":{"d":true,"t":5,"a":[{"a":"sysvar_use_secondary_engine","u":15,"t":1}]},"validate_user_plugins":{"d":false,"t":2,"a":[{"a":"sysvar_validate_user_plugins","u":15,"t":1}]},"version_compile_zlib":{"d":false,"t":1,"a":[{"a":"sysvar_version_compile_zlib","u":15,"t":1}]},"windowing_use_high_precision":{"d":true,"t":2,"a":[{"a":"sysvar_windowing_use_high_precision","u":15,"t":1}]},"version_tokens_session":{"d":true,"t":1,"a":[{"a":"sysvar_version_tokens_session","u":46,"t":1}]},"version_tokens_session_number":{"d":false,"t":3,"a":[{"a":"sysvar_version_tokens_session_number","u":46,"t":1}]},"mysqlx":{"t":5,"a":[{"a":"option_mysqld_mysqlx","u":47,"t":1}]},"mysqlx_bind_address":{"d":false,"t":1,"a":[{"a":"sysvar_mysqlx_bind_address","u":47,"t":1}]},"mysqlx_connect_timeout":{"d":true,"t":3,"a":[{"a":"sysvar_mysqlx_connect_timeout","u":47,"t":1}]},"mysqlx_document_id_unique_prefix":{"d":true,"t":3,"a":[{"a":"sysvar_mysqlx_document_id_unique_prefix","u":47,"t":1}]},"mysqlx_enable_hello_notice":{"d":true,"t":2,"a":[{"a":"sysvar_mysqlx_enable_hello_notice","u":47,"t":1}]},"mysqlx_idle_worker_thread_timeout":{"d":true,"t":3,"a":[{"a":"sysvar_mysqlx_idle_worker_thread_timeout","u":47,"t":1}]},"mysqlx_interactive_timeout":{"d":true,"t":3,"a":[{"a":"sysvar_mysqlx_interactive_timeout","u":47,"t":1}]},"mysqlx_max_allowed_packet":{"d":true,"t":3,"a":[{"a":"sysvar_mysqlx_max_allowed_packet","u":47,"t":1}]},"mysqlx_max_connections":{"d":true,"t":3,"a":[{"a":"sysvar_mysqlx_max_connections","u":47,"t":1}]},"mysqlx_min_worker_threads":{"d":true,"t":3,"a":[{"a":"sysvar_mysqlx_min_worker_threads","u":47,"t":1}]},"mysqlx_port":{"d":false,"t":3,"a":[{"a":"sysvar_mysqlx_port","u":47,"t":1}]},"mysqlx_port_open_timeout":{"d":false,"t":3,"a":[{"a":"sysvar_mysqlx_port_open_timeout","u":47,"t":1}]},"mysqlx_read_timeout":{"d":true,"t":3,"a":[{"a":"sysvar_mysqlx_read_timeout","u":47,"t":1}]},"mysqlx_socket":{"d":false,"t":1,"a":[{"a":"sysvar_mysqlx_socket","u":47,"t":1}]},"mysqlx_ssl_ca":{"d":false,"t":8,"a":[{"a":"sysvar_mysqlx_ssl_ca","u":47,"t":1}]},"mysqlx_ssl_capath":{"d":false,"t":7,"a":[{"a":"sysvar_mysqlx_ssl_capath","u":47,"t":1}]},"mysqlx_ssl_cert":{"d":false,"t":8,"a":[{"a":"sysvar_mysqlx_ssl_cert","u":47,"t":1}]},"mysqlx_ssl_cipher":{"d":false,"t":1,"a":[{"a":"sysvar_mysqlx_ssl_cipher","u":47,"t":1}]},"mysqlx_ssl_crl":{"d":false,"t":8,"a":[{"a":"sysvar_mysqlx_ssl_crl","u":47,"t":1}]},"mysqlx_ssl_crlpath":{"d":false,"t":7,"a":[{"a":"sysvar_mysqlx_ssl_crlpath","u":47,"t":1}]},"mysqlx_ssl_key":{"d":false,"t":8,"a":[{"a":"sysvar_mysqlx_ssl_key","u":47,"t":1}]},"mysqlx_wait_timeout":{"d":true,"t":3,"a":[{"a":"sysvar_mysqlx_wait_timeout","u":47,"t":1}]},"mysqlx_write_timeout":{"d":true,"t":3,"a":[{"a":"sysvar_mysqlx_write_timeout","u":47,"t":1}]}},"version":1,"urls":["https://mariadb.com/kb/en/library/documentation/aria-server-status-variables/","https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/","https://mariadb.com/kb/en/library/documentation/cassandra-status-variables/","https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/cassandra/cassandra-system-variables/","https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/","https://mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/","https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/","https://mariadb.com/kb/en/library/documentation/gtid/","https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/","https://dev.mysql.com/doc/refman/8.0/en/replication-options.html","https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-status-variables/","https://mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/","https://mariadb.com/kb/en/library/documentation/mroonga-status-variables/","https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/","https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/","https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html","https://dev.mysql.com/doc/refman/8.0/en/server-options.html","https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/","https://mariadb.com/kb/en/library/documentation/oqgraph-system-and-status-variables/","https://mariadb.com/kb/en/library/documentation/performance-schema-system-variables/","https://dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html","https://dev.mysql.com/doc/refman/8.0/en/replication-options-master.html","https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html","https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html","https://dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html","https://mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/","https://mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/","https://mariadb.com/kb/en/library/documentation/semisynchronous-replication/","https://mariadb.com/kb/en/library/documentation/server-status-variables/","https://mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/","https://mariadb.com/kb/en/library/documentation/sphinx-status-variables/","https://mariadb.com/kb/en/library/documentation/spider-server-status-variables/","https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/","https://mariadb.com/kb/en/library/documentation/ssltls-status-variables/","https://mariadb.com/kb/en/library/documentation/ssltls-system-variables/","https://mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/","https://mariadb.com/kb/en/library/documentation/tokudb-status-variables/","https://mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/","https://mariadb.com/kb/en/library/documentation/system-versioned-tables/","https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/","https://mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/","https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html","https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html","https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html","https://dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html","https://dev.mysql.com/doc/refman/8.0/en/replication-options-gtids.html","https://dev.mysql.com/doc/refman/8.0/en/version-tokens-reference.html","https://dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html"],"types":{"1":"MYSQL","2":"MARIADB"},"varTypes":{"1":"string","2":"boolean","3":"integer","4":"numeric","5":"enumeration","6":"set","7":"directory name","8":"file name","9":"byte"}} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/dist/merged-ultraslim.php b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/dist/merged-ultraslim.php deleted file mode 100644 index 42944a4..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/dist/merged-ultraslim.php +++ /dev/null @@ -1,2 +0,0 @@ -["Aria_pagecache_blocks_not_flushed"=>["t"=>3,"a"=>[["a"=>"aria_pagecache_blocks_not_flushed","u"=>0,"t"=>2]]],"Aria_pagecache_blocks_unused"=>["t"=>3,"a"=>[["a"=>"aria_pagecache_blocks_unused","u"=>0,"t"=>2]]],"Aria_pagecache_blocks_used"=>["t"=>3,"a"=>[["a"=>"aria_pagecache_blocks_used","u"=>0,"t"=>2]]],"Aria_pagecache_read_requests"=>["t"=>3,"a"=>[["a"=>"aria_pagecache_read_requests","u"=>0,"t"=>2]]],"Aria_pagecache_reads"=>["t"=>3,"a"=>[["a"=>"aria_pagecache_reads","u"=>0,"t"=>2]]],"Aria_pagecache_write_requests"=>["t"=>3,"a"=>[["a"=>"aria_pagecache_write_requests","u"=>0,"t"=>2]]],"Aria_pagecache_writes"=>["t"=>3,"a"=>[["a"=>"aria_pagecache_writes","u"=>0,"t"=>2]]],"Aria_transaction_log_syncs"=>["t"=>3,"a"=>[["a"=>"aria_transaction_log_syncs","u"=>0,"t"=>2]]],"aria_block_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"aria_block_size","u"=>1,"t"=>2]]],"aria_checkpoint_interval"=>["d"=>true,"t"=>3,"a"=>[["a"=>"aria_checkpoint_interval","u"=>1,"t"=>2]]],"aria_checkpoint_log_activity"=>["d"=>true,"t"=>3,"a"=>[["a"=>"aria_checkpoint_log_activity","u"=>1,"t"=>2]]],"aria_encrypt_tables"=>["d"=>true,"t"=>2,"a"=>[["a"=>"aria_encrypt_tables","u"=>1,"t"=>2]]],"aria_force_start_after_recovery_failures"=>["d"=>false,"t"=>3,"a"=>[["a"=>"aria_force_start_after_recovery_failures","u"=>1,"t"=>2]]],"aria_group_commit"=>["d"=>false,"t"=>1,"a"=>[["a"=>"aria_group_commit","u"=>1,"t"=>2]]],"aria_group_commit_interval"=>["d"=>false,"t"=>3,"a"=>[["a"=>"aria_group_commit_interval","u"=>1,"t"=>2]]],"aria_log_file_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"aria_log_file_size","u"=>1,"t"=>2]]],"aria_log_purge_type"=>["d"=>true,"t"=>5,"a"=>[["a"=>"aria_log_purge_type","u"=>1,"t"=>2]]],"aria_max_sort_file_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"aria_max_sort_file_size","u"=>1,"t"=>2]]],"aria_page_checksum"=>["d"=>true,"t"=>2,"a"=>[["a"=>"aria_page_checksum","u"=>1,"t"=>2]]],"aria_pagecache_age_threshold"=>["d"=>true,"t"=>3,"a"=>[["a"=>"aria_pagecache_age_threshold","u"=>1,"t"=>2]]],"aria_pagecache_buffer_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"aria_pagecache_buffer_size","u"=>1,"t"=>2]]],"aria_pagecache_division_limit"=>["d"=>true,"t"=>3,"a"=>[["a"=>"aria_pagecache_division_limit","u"=>1,"t"=>2]]],"aria_pagecache_file_hash_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"aria_pagecache_file_hash_size","u"=>1,"t"=>2]]],"aria_recover"=>["a"=>[["a"=>"aria_recover","u"=>1,"t"=>2]]],"aria_recover_options"=>["d"=>true,"t"=>5,"a"=>[["a"=>"aria_recover_options","u"=>1,"t"=>2]]],"aria_repair_threads"=>["d"=>true,"t"=>3,"a"=>[["a"=>"aria_repair_threads","u"=>1,"t"=>2]]],"aria_sort_buffer_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"aria_sort_buffer_size","u"=>1,"t"=>2]]],"aria_stats_method"=>["d"=>true,"t"=>3,"a"=>[["a"=>"aria_stats_method","u"=>1,"t"=>2]]],"aria_sync_log_dir"=>["d"=>true,"t"=>5,"a"=>[["a"=>"aria_sync_log_dir","u"=>1,"t"=>2]]],"aria_used_for_temp_tables"=>["d"=>false,"t"=>2,"a"=>[["a"=>"aria_used_for_temp_tables","u"=>1,"t"=>2]]],"deadlock_search_depth_long"=>["d"=>true,"t"=>3,"a"=>[["a"=>"deadlock_search_depth_long","u"=>1,"t"=>2]]],"deadlock_search_depth_short"=>["d"=>true,"t"=>3,"a"=>[["a"=>"deadlock_search_depth_short","u"=>1,"t"=>2]]],"deadlock_timeout_long"=>["d"=>true,"t"=>3,"a"=>[["a"=>"deadlock_timeout_long","u"=>1,"t"=>2]]],"deadlock_timeout_short"=>["d"=>true,"t"=>3,"a"=>[["a"=>"deadlock_timeout_short","u"=>1,"t"=>2]]],"Cassandra_multiget_keys_scanned"=>["t"=>3,"a"=>[["a"=>"cassandra_multiget_keys_scanned","u"=>2,"t"=>2]]],"Cassandra_multiget_reads"=>["t"=>3,"a"=>[["a"=>"cassandra_multiget_reads","u"=>2,"t"=>2]]],"Cassandra_multiget_rows_read"=>["t"=>3,"a"=>[["a"=>"cassandra_multiget_rows_read","u"=>2,"t"=>2]]],"Cassandra_network_exceptions"=>["t"=>3,"a"=>[["a"=>"cassandra_network_exceptions","u"=>2,"t"=>2]]],"Cassandra_row_insert_batches"=>["t"=>3,"a"=>[["a"=>"cassandra_row_insert_batches","u"=>2,"t"=>2]]],"Cassandra_row_inserts"=>["t"=>3,"a"=>[["a"=>"cassandra_row_inserts","u"=>2,"t"=>2]]],"Cassandra_timeout_exceptions"=>["t"=>3,"a"=>[["a"=>"cassandra_timeout_exceptions","u"=>2,"t"=>2]]],"Cassandra_unavailable_exceptions"=>["t"=>3,"a"=>[["a"=>"cassandra_unavailable_exceptions","u"=>2,"t"=>2]]],"cassandra_default_thrift_host"=>["d"=>true,"t"=>1,"a"=>[["a"=>"cassandra_default_thrift_host","u"=>3,"t"=>2]]],"cassandra_failure_retries"=>["d"=>true,"t"=>3,"a"=>[["a"=>"cassandra_failure_retries","u"=>3,"t"=>2]]],"cassandra_insert_batch_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"cassandra_insert_batch_size","u"=>3,"t"=>2]]],"cassandra_multiget_batch_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"cassandra_multiget_batch_size","u"=>3,"t"=>2]]],"cassandra_read_consistency"=>["a"=>[["a"=>"cassandra_read_consistency","u"=>3,"t"=>2]]],"cassandra_rnd_batch_size"=>["a"=>[["a"=>"cassandra_rnd_batch_size","u"=>3,"t"=>2]]],"cassandra_write_consistency"=>["a"=>[["a"=>"cassandra_write_consistency","u"=>3,"t"=>2]]],"connect_class_path"=>["d"=>false,"t"=>1,"a"=>[["a"=>"connect_class_path","u"=>4,"t"=>2]]],"connect_cond_push"=>["d"=>true,"t"=>2,"a"=>[["a"=>"connect_cond_push","u"=>4,"t"=>2]]],"connect_conv_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"connect_conv_size","u"=>4,"t"=>2]]],"connect_enable_mongo"=>["d"=>false,"t"=>2,"a"=>[["a"=>"connect_enable_mongo","u"=>4,"t"=>2]]],"connect_exact_info"=>["d"=>true,"t"=>2,"a"=>[["a"=>"connect_exact_info","u"=>4,"t"=>2]]],"connect_indx_map"=>["d"=>true,"t"=>2,"a"=>[["a"=>"connect_indx_map","u"=>4,"t"=>2]]],"connect_java_wrapper"=>["d"=>true,"t"=>1,"a"=>[["a"=>"connect_java_wrapper","u"=>4,"t"=>2]]],"connect_json_grp_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"connect_json_grp_size","u"=>4,"t"=>2]]],"connect_json_null"=>["d"=>true,"t"=>1,"a"=>[["a"=>"connect_json_null","u"=>4,"t"=>2]]],"connect_jvm_path"=>["d"=>false,"t"=>1,"a"=>[["a"=>"connect_jvm_path","u"=>4,"t"=>2]]],"connect_type_conv"=>["d"=>true,"a"=>[["a"=>"connect_type_conv","u"=>4,"t"=>2]]],"connect_use_tempfile"=>["d"=>true,"a"=>[["a"=>"connect_use_tempfile","u"=>4,"t"=>2]]],"connect_work_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"connect_work_size","u"=>4,"t"=>2]]],"connect_xtrace"=>["d"=>true,"t"=>6,"a"=>[["a"=>"connect_xtrace","u"=>4,"t"=>2]]],"wsrep_apply_oooe"=>["a"=>[["a"=>"wsrep_apply_oooe","u"=>5,"t"=>2]]],"wsrep_apply_oool"=>["a"=>[["a"=>"wsrep_apply_oool","u"=>5,"t"=>2]]],"wsrep_apply_window"=>["a"=>[["a"=>"wsrep_apply_window","u"=>5,"t"=>2]]],"wsrep_cert_deps_distance"=>["a"=>[["a"=>"wsrep_cert_deps_distance","u"=>5,"t"=>2]]],"wsrep_cert_index_size"=>["t"=>3,"a"=>[["a"=>"wsrep_cert_index_size","u"=>5,"t"=>2]]],"wsrep_cert_interval"=>["t"=>3,"a"=>[["a"=>"wsrep_cert_interval","u"=>5,"t"=>2]]],"wsrep_cluster_capabilities"=>["a"=>[["a"=>"wsrep_cluster_capabilities","u"=>5,"t"=>2]]],"wsrep_cluster_conf_id"=>["t"=>3,"a"=>[["a"=>"wsrep_cluster_conf_id","u"=>5,"t"=>2]]],"wsrep_cluster_size"=>["t"=>3,"a"=>[["a"=>"wsrep_cluster_size","u"=>5,"t"=>2]]],"wsrep_cluster_state_uuid"=>["a"=>[["a"=>"wsrep_cluster_state_uuid","u"=>5,"t"=>2]]],"wsrep_cluster_status"=>["a"=>[["a"=>"wsrep_cluster_status","u"=>5,"t"=>2]]],"wsrep_cluster_weight"=>["a"=>[["a"=>"wsrep_cluster_weight","u"=>5,"t"=>2]]],"wsrep_commit_oooe"=>["a"=>[["a"=>"wsrep_commit_oooe","u"=>5,"t"=>2]]],"wsrep_commit_oool"=>["a"=>[["a"=>"wsrep_commit_oool","u"=>5,"t"=>2]]],"wsrep_commit_window"=>["a"=>[["a"=>"wsrep_commit_window","u"=>5,"t"=>2]]],"wsrep_connected"=>["a"=>[["a"=>"wsrep_connected","u"=>5,"t"=>2]]],"wsrep_desync_count"=>["t"=>3,"a"=>[["a"=>"wsrep_desync_count","u"=>5,"t"=>2]]],"wsrep_evs_delayed"=>["a"=>[["a"=>"wsrep_evs_delayed","u"=>5,"t"=>2]]],"wsrep_evs_evict_list"=>["a"=>[["a"=>"wsrep_evs_evict_list","u"=>5,"t"=>2]]],"wsrep_evs_repl_latency"=>["a"=>[["a"=>"wsrep_evs_repl_latency","u"=>5,"t"=>2]]],"wsrep_evs_state"=>["a"=>[["a"=>"wsrep_evs_state","u"=>5,"t"=>2]]],"wsrep_flow_control_paused"=>["a"=>[["a"=>"wsrep_flow_control_paused","u"=>5,"t"=>2]]],"wsrep_flow_control_paused_ns"=>["a"=>[["a"=>"wsrep_flow_control_paused_ns","u"=>5,"t"=>2]]],"wsrep_flow_control_recv"=>["t"=>3,"a"=>[["a"=>"wsrep_flow_control_recv","u"=>5,"t"=>2]]],"wsrep_flow_control_sent"=>["t"=>3,"a"=>[["a"=>"wsrep_flow_control_sent","u"=>5,"t"=>2]]],"wsrep_gcomm_uuid"=>["a"=>[["a"=>"wsrep_gcomm_uuid","u"=>5,"t"=>2]]],"wsrep_incoming_addresses"=>["a"=>[["a"=>"wsrep_incoming_addresses","u"=>5,"t"=>2]]],"wsrep_last_committed"=>["t"=>3,"a"=>[["a"=>"wsrep_last_committed","u"=>5,"t"=>2]]],"wsrep_local_bf_aborts"=>["t"=>3,"a"=>[["a"=>"wsrep_local_bf_aborts","u"=>5,"t"=>2]]],"wsrep_local_cached_downto"=>["a"=>[["a"=>"wsrep_local_cached_downto","u"=>5,"t"=>2]]],"wsrep_local_cert_failures"=>["t"=>3,"a"=>[["a"=>"wsrep_local_cert_failures","u"=>5,"t"=>2]]],"wsrep_local_commits"=>["t"=>3,"a"=>[["a"=>"wsrep_local_commits","u"=>5,"t"=>2]]],"wsrep_local_index"=>["a"=>[["a"=>"wsrep_local_index","u"=>5,"t"=>2]]],"wsrep_local_recv_queue"=>["t"=>3,"a"=>[["a"=>"wsrep_local_recv_queue","u"=>5,"t"=>2]]],"wsrep_local_recv_queue_avg"=>["a"=>[["a"=>"wsrep_local_recv_queue_avg","u"=>5,"t"=>2]]],"wsrep_local_recv_queue_max"=>["a"=>[["a"=>"wsrep_local_recv_queue_max","u"=>5,"t"=>2]]],"wsrep_local_recv_queue_min"=>["a"=>[["a"=>"wsrep_local_recv_queue_min","u"=>5,"t"=>2]]],"wsrep_local_replays"=>["t"=>3,"a"=>[["a"=>"wsrep_local_replays","u"=>5,"t"=>2]]],"wsrep_local_send_queue"=>["t"=>3,"a"=>[["a"=>"wsrep_local_send_queue","u"=>5,"t"=>2]]],"wsrep_local_send_queue_avg"=>["a"=>[["a"=>"wsrep_local_send_queue_avg","u"=>5,"t"=>2]]],"wsrep_local_send_queue_max"=>["a"=>[["a"=>"wsrep_local_send_queue_max","u"=>5,"t"=>2]]],"wsrep_local_send_queue_min"=>["a"=>[["a"=>"wsrep_local_send_queue_min","u"=>5,"t"=>2]]],"wsrep_local_state"=>["a"=>[["a"=>"wsrep_local_state","u"=>5,"t"=>2]]],"wsrep_local_state_comment"=>["a"=>[["a"=>"wsrep_local_state_comment","u"=>5,"t"=>2]]],"wsrep_local_state_uuid"=>["a"=>[["a"=>"wsrep_local_state_uuid","u"=>5,"t"=>2]]],"wsrep_open_connections"=>["t"=>3,"a"=>[["a"=>"wsrep_open_connections","u"=>5,"t"=>2]]],"wsrep_open_transactions"=>["t"=>3,"a"=>[["a"=>"wsrep_open_transactions","u"=>5,"t"=>2]]],"wsrep_protocol_version"=>["a"=>[["a"=>"wsrep_protocol_version","u"=>5,"t"=>2]]],"wsrep_provider_name"=>["a"=>[["a"=>"wsrep_provider_name","u"=>5,"t"=>2]]],"wsrep_provider_vendor"=>["a"=>[["a"=>"wsrep_provider_vendor","u"=>5,"t"=>2]]],"wsrep_provider_version"=>["t"=>3,"a"=>[["a"=>"wsrep_provider_version","u"=>5,"t"=>2]]],"wsrep_ready"=>["a"=>[["a"=>"wsrep_ready","u"=>5,"t"=>2]]],"wsrep_received"=>["t"=>3,"a"=>[["a"=>"wsrep_received","u"=>5,"t"=>2]]],"wsrep_received_bytes"=>["t"=>9,"a"=>[["a"=>"wsrep_received_bytes","u"=>5,"t"=>2]]],"wsrep_repl_data_bytes"=>["t"=>3,"a"=>[["a"=>"wsrep_repl_data_bytes","u"=>5,"t"=>2]]],"wsrep_repl_keys"=>["t"=>3,"a"=>[["a"=>"wsrep_repl_keys","u"=>5,"t"=>2]]],"wsrep_repl_keys_bytes"=>["t"=>3,"a"=>[["a"=>"wsrep_repl_keys_bytes","u"=>5,"t"=>2]]],"wsrep_repl_other_bytes"=>["t"=>3,"a"=>[["a"=>"wsrep_repl_other_bytes","u"=>5,"t"=>2]]],"wsrep_replicated"=>["t"=>3,"a"=>[["a"=>"wsrep_replicated","u"=>5,"t"=>2]]],"wsrep_replicated_bytes"=>["t"=>9,"a"=>[["a"=>"wsrep_replicated_bytes","u"=>5,"t"=>2]]],"wsrep_thread_count"=>["t"=>3,"a"=>[["a"=>"wsrep_thread_count","u"=>5,"t"=>2]]],"wsrep_auto_increment_control"=>["d"=>true,"t"=>2,"a"=>[["a"=>"wsrep_auto_increment_control","u"=>6,"t"=>2]]],"wsrep_causal_reads"=>["d"=>true,"t"=>2,"a"=>[["a"=>"wsrep_causal_reads","u"=>6,"t"=>2]]],"wsrep_certification_rules"=>["d"=>true,"t"=>5,"a"=>[["a"=>"wsrep_certification_rules","u"=>6,"t"=>2]]],"wsrep_certify_nonPK"=>["d"=>true,"t"=>2,"a"=>[["a"=>"wsrep_certify_nonpk","u"=>6,"t"=>2]]],"wsrep_cluster_address"=>["d"=>false,"t"=>1,"a"=>[["a"=>"wsrep_cluster_address","u"=>6,"t"=>2]]],"wsrep_cluster_name"=>["d"=>true,"t"=>1,"a"=>[["a"=>"wsrep_cluster_name","u"=>6,"t"=>2]]],"wsrep_convert_LOCK_to_trx"=>["d"=>true,"t"=>2,"a"=>[["a"=>"wsrep_convert_lock_to_trx","u"=>6,"t"=>2]]],"wsrep_data_home_dir"=>["d"=>false,"t"=>1,"a"=>[["a"=>"wsrep_data_home_dir","u"=>6,"t"=>2]]],"wsrep_dbug_option"=>["d"=>true,"t"=>1,"a"=>[["a"=>"wsrep_dbug_option","u"=>6,"t"=>2]]],"wsrep_debug"=>["d"=>true,"a"=>[["a"=>"wsrep_debug","u"=>6,"t"=>2]]],"wsrep_desync"=>["d"=>true,"t"=>2,"a"=>[["a"=>"wsrep_desync","u"=>6,"t"=>2]]],"wsrep_dirty_reads"=>["d"=>true,"t"=>2,"a"=>[["a"=>"wsrep_dirty_reads","u"=>6,"t"=>2]]],"wsrep_drupal_282555_workaround"=>["d"=>true,"t"=>2,"a"=>[["a"=>"wsrep_drupal_282555_workaround","u"=>6,"t"=>2]]],"wsrep_forced_binlog_format"=>["d"=>true,"a"=>[["a"=>"wsrep_forced_binlog_format","u"=>6,"t"=>2]]],"wsrep_gtid_domain_id"=>["d"=>true,"t"=>3,"a"=>[["a"=>"wsrep_gtid_domain_id","u"=>6,"t"=>2]]],"wsrep_gtid_mode"=>["d"=>true,"t"=>2,"a"=>[["a"=>"wsrep_gtid_mode","u"=>6,"t"=>2]]],"wsrep_ignore_apply_errors"=>["d"=>true,"t"=>3,"a"=>[["a"=>"wsrep_ignore_apply_errors","u"=>6,"t"=>2]]],"wsrep_load_data_splitting"=>["d"=>true,"t"=>2,"a"=>[["a"=>"wsrep_load_data_splitting","u"=>6,"t"=>2]]],"wsrep_log_conflicts"=>["d"=>true,"t"=>2,"a"=>[["a"=>"wsrep_log_conflicts","u"=>6,"t"=>2]]],"wsrep_max_ws_rows"=>["d"=>true,"t"=>3,"a"=>[["a"=>"wsrep_max_ws_rows","u"=>6,"t"=>2]]],"wsrep_max_ws_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"wsrep_max_ws_size","u"=>6,"t"=>2]]],"wsrep_mysql_replication_bundle"=>["d"=>false,"t"=>3,"a"=>[["a"=>"wsrep_mysql_replication_bundle","u"=>6,"t"=>2]]],"wsrep_node_address"=>["d"=>false,"t"=>1,"a"=>[["a"=>"wsrep_node_address","u"=>6,"t"=>2]]],"wsrep_node_incoming_address"=>["d"=>false,"t"=>1,"a"=>[["a"=>"wsrep_node_incoming_address","u"=>6,"t"=>2]]],"wsrep_node_name"=>["d"=>true,"t"=>1,"a"=>[["a"=>"wsrep_node_name","u"=>6,"t"=>2]]],"wsrep_notify_cmd"=>["d"=>true,"t"=>1,"a"=>[["a"=>"wsrep_notify_cmd","u"=>6,"t"=>2]]],"wsrep_on"=>["d"=>true,"t"=>2,"a"=>[["a"=>"wsrep_on","u"=>6,"t"=>2]]],"wsrep_OSU_method"=>["d"=>true,"a"=>[["a"=>"wsrep_osu_method","u"=>6,"t"=>2]]],"wsrep_patch_version"=>["d"=>false,"t"=>1,"a"=>[["a"=>"wsrep_patch_version","u"=>6,"t"=>2]]],"wsrep_provider"=>["d"=>true,"t"=>1,"a"=>[["a"=>"wsrep_provider","u"=>6,"t"=>2]]],"wsrep_provider_options"=>["d"=>false,"t"=>1,"a"=>[["a"=>"wsrep_provider_options","u"=>6,"t"=>2]]],"wsrep_recover"=>["d"=>false,"t"=>2,"a"=>[["a"=>"wsrep_recover","u"=>6,"t"=>2]]],"wsrep_reject_queries"=>["d"=>true,"a"=>[["a"=>"wsrep_reject_queries","u"=>6,"t"=>2]]],"wsrep_replicate_myisam"=>["d"=>true,"t"=>2,"a"=>[["a"=>"wsrep_replicate_myisam","u"=>6,"t"=>2]]],"wsrep_restart_slave"=>["d"=>true,"t"=>2,"a"=>[["a"=>"wsrep_restart_slave","u"=>6,"t"=>2]]],"wsrep_retry_autocommit"=>["d"=>false,"t"=>3,"a"=>[["a"=>"wsrep_retry_autocommit","u"=>6,"t"=>2]]],"wsrep_slave_FK_checks"=>["d"=>true,"t"=>2,"a"=>[["a"=>"wsrep_slave_fk_checks","u"=>6,"t"=>2]]],"wsrep_slave_threads"=>["d"=>true,"t"=>3,"a"=>[["a"=>"wsrep_slave_threads","u"=>6,"t"=>2]]],"wsrep_slave_UK_checks"=>["d"=>true,"t"=>2,"a"=>[["a"=>"wsrep_slave_uk_checks","u"=>6,"t"=>2]]],"wsrep_sr_store"=>["d"=>false,"a"=>[["a"=>"wsrep_sr_store","u"=>6,"t"=>2]]],"wsrep_sst_auth"=>["d"=>true,"t"=>1,"a"=>[["a"=>"wsrep_sst_auth","u"=>6,"t"=>2]]],"wsrep_sst_donor"=>["d"=>true,"t"=>1,"a"=>[["a"=>"wsrep_sst_donor","u"=>6,"t"=>2]]],"wsrep_sst_donor_rejects_queries"=>["d"=>true,"t"=>2,"a"=>[["a"=>"wsrep_sst_donor_rejects_queries","u"=>6,"t"=>2]]],"wsrep_sst_method"=>["d"=>true,"t"=>1,"a"=>[["a"=>"wsrep_sst_method","u"=>6,"t"=>2]]],"wsrep_sst_receive_address"=>["d"=>true,"t"=>1,"a"=>[["a"=>"wsrep_sst_receive_address","u"=>6,"t"=>2]]],"wsrep_start_position"=>["d"=>true,"t"=>1,"a"=>[["a"=>"wsrep_start_position","u"=>6,"t"=>2]]],"wsrep_sync_wait"=>["d"=>true,"t"=>3,"a"=>[["a"=>"wsrep_sync_wait","u"=>6,"t"=>2]]],"wsrep_trx_fragment_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"wsrep_trx_fragment_size","u"=>6,"t"=>2]]],"wsrep_trx_fragment_unit"=>["d"=>true,"a"=>[["a"=>"wsrep_trx_fragment_unit","u"=>6,"t"=>2]]],"gtid_binlog_pos"=>["d"=>false,"t"=>1,"a"=>[["a"=>"gtid_binlog_pos","u"=>7,"t"=>2]]],"gtid_binlog_state"=>["d"=>true,"t"=>1,"a"=>[["a"=>"gtid_binlog_state","u"=>7,"t"=>2]]],"gtid_current_pos"=>["d"=>false,"t"=>1,"a"=>[["a"=>"gtid_current_pos","u"=>7,"t"=>2]]],"gtid_domain_id"=>["d"=>true,"a"=>[["a"=>"gtid_domain_id","u"=>7,"t"=>2]]],"last_gtid"=>["d"=>false,"t"=>1,"a"=>[["a"=>"last_gtid","u"=>7,"t"=>2]]],"server_id"=>["d"=>true,"t"=>3,"a"=>[["a"=>"server_id","u"=>7,"t"=>2],["a"=>"server_id","u"=>8,"t"=>2],["a"=>"sysvar_server_id","u"=>9,"t"=>1]]],"gtid_seq_no"=>["d"=>true,"a"=>[["a"=>"gtid_seq_no","u"=>7,"t"=>2]]],"gtid_ignore_duplicates"=>["d"=>true,"t"=>2,"a"=>[["a"=>"gtid_ignore_duplicates","u"=>7,"t"=>2]]],"gtid_pos_auto_engines"=>["d"=>true,"t"=>1,"a"=>[["a"=>"gtid_pos_auto_engines","u"=>7,"t"=>2]]],"gtid_cleanup_batch_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"gtid_cleanup_batch_size","u"=>7,"t"=>2]]],"Server_audit_active"=>["t"=>2,"a"=>[["a"=>"server_audit_active","u"=>10,"t"=>2]]],"Server_audit_current_log"=>["t"=>1,"a"=>[["a"=>"server_audit_current_log","u"=>10,"t"=>2]]],"Server_audit_last_error"=>["t"=>1,"a"=>[["a"=>"server_audit_last_error","u"=>10,"t"=>2]]],"Server_audit_writes_failed"=>["t"=>3,"a"=>[["a"=>"server_audit_writes_failed","u"=>10,"t"=>2]]],"server_audit_events"=>["d"=>true,"t"=>1,"a"=>[["a"=>"server_audit_events","u"=>11,"t"=>2]]],"server_audit_excl_users"=>["d"=>true,"t"=>1,"a"=>[["a"=>"server_audit_excl_users","u"=>11,"t"=>2]]],"server_audit_file_path"=>["d"=>true,"t"=>1,"a"=>[["a"=>"server_audit_file_path","u"=>11,"t"=>2]]],"server_audit_file_rotate_now"=>["d"=>true,"t"=>2,"a"=>[["a"=>"server_audit_file_rotate_now","u"=>11,"t"=>2]]],"server_audit_file_rotate_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"server_audit_file_rotate_size","u"=>11,"t"=>2]]],"server_audit_file_rotations"=>["d"=>true,"t"=>3,"a"=>[["a"=>"server_audit_file_rotations","u"=>11,"t"=>2]]],"server_audit_incl_users"=>["d"=>true,"t"=>1,"a"=>[["a"=>"server_audit_incl_users","u"=>11,"t"=>2]]],"server_audit_loc_info"=>["d"=>false,"t"=>1,"a"=>[["a"=>"server_audit_loc_info","u"=>11,"t"=>2]]],"server_audit_logging"=>["d"=>true,"t"=>2,"a"=>[["a"=>"server_audit_logging","u"=>11,"t"=>2]]],"server_audit_mode"=>["a"=>[["a"=>"server_audit_mode","u"=>11,"t"=>2]]],"server_audit_output_type"=>["d"=>true,"a"=>[["a"=>"server_audit_output_type","u"=>11,"t"=>2]]],"server_audit_query_log_limit"=>["d"=>true,"t"=>3,"a"=>[["a"=>"server_audit_query_log_limit","u"=>11,"t"=>2]]],"server_audit_syslog_facility"=>["d"=>true,"a"=>[["a"=>"server_audit_syslog_facility","u"=>11,"t"=>2]]],"server_audit_syslog_ident"=>["d"=>true,"t"=>1,"a"=>[["a"=>"server_audit_syslog_ident","u"=>11,"t"=>2]]],"server_audit_syslog_info"=>["d"=>true,"t"=>1,"a"=>[["a"=>"server_audit_syslog_info","u"=>11,"t"=>2]]],"server_audit_syslog_priority"=>["d"=>true,"a"=>[["a"=>"server_audit_syslog_priority","u"=>11,"t"=>2]]],"server_audit"=>["a"=>[["a"=>"server_audit","u"=>11,"t"=>2]]],"Mroonga_count_skip"=>["t"=>3,"a"=>[["a"=>"mroonga_count_skip","u"=>12,"t"=>2]]],"Mroonga_fast_order_limit"=>["t"=>3,"a"=>[["a"=>"mroonga_fast_order_limit","u"=>12,"t"=>2]]],"mroonga_action_on_fulltext_query_error"=>["d"=>true,"a"=>[["a"=>"mroonga_action_on_fulltext_query_error","u"=>13,"t"=>2]]],"mroonga_boolean_mode_syntax_flags"=>["d"=>true,"a"=>[["a"=>"mroonga_boolean_mode_syntax_flags","u"=>13,"t"=>2]]],"mroonga_database_path_prefix"=>["d"=>true,"t"=>1,"a"=>[["a"=>"mroonga_database_path_prefix","u"=>13,"t"=>2]]],"mroonga_default_parser"=>["d"=>true,"t"=>1,"a"=>[["a"=>"mroonga_default_parser","u"=>13,"t"=>2]]],"mroonga_default_tokenizer"=>["d"=>true,"t"=>1,"a"=>[["a"=>"mroonga_default_tokenizer","u"=>13,"t"=>2]]],"mroonga_default_wrapper_engine"=>["d"=>false,"t"=>1,"a"=>[["a"=>"mroonga_default_wrapper_engine","u"=>13,"t"=>2]]],"mroonga_dry_write"=>["d"=>true,"t"=>2,"a"=>[["a"=>"mroonga_dry_write","u"=>13,"t"=>2]]],"mroonga_enable_operations_recording"=>["d"=>true,"t"=>2,"a"=>[["a"=>"mroonga_enable_operations_recording","u"=>13,"t"=>2]]],"mroonga_enable_optimization"=>["d"=>true,"t"=>2,"a"=>[["a"=>"mroonga_enable_optimization","u"=>13,"t"=>2]]],"mroonga_libgroonga_embedded"=>["d"=>false,"t"=>2,"a"=>[["a"=>"mroonga_libgroonga_embedded","u"=>13,"t"=>2]]],"mroonga_libgroonga_support_lz4"=>["d"=>false,"t"=>2,"a"=>[["a"=>"mroonga_libgroonga_support_lz4","u"=>13,"t"=>2]]],"mroonga_libgroonga_support_zlib"=>["d"=>false,"t"=>2,"a"=>[["a"=>"mroonga_libgroonga_support_zlib","u"=>13,"t"=>2]]],"mroonga_libgroonga_support_zstd"=>["d"=>false,"t"=>2,"a"=>[["a"=>"mroonga_libgroonga_support_zstd","u"=>13,"t"=>2]]],"mroonga_libgroonga_version"=>["d"=>false,"t"=>1,"a"=>[["a"=>"mroonga_libgroonga_version","u"=>13,"t"=>2]]],"mroonga_lock_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"mroonga_lock_timeout","u"=>13,"t"=>2]]],"mroonga_log_file"=>["d"=>true,"t"=>1,"a"=>[["a"=>"mroonga_log_file","u"=>13,"t"=>2]]],"mroonga_log_level"=>["d"=>true,"a"=>[["a"=>"mroonga_log_level","u"=>13,"t"=>2]]],"mroonga_match_escalation_threshold"=>["d"=>true,"t"=>3,"a"=>[["a"=>"mroonga_match_escalation_threshold","u"=>13,"t"=>2]]],"mroonga_max_n_records_for_estimate"=>["d"=>true,"t"=>3,"a"=>[["a"=>"mroonga_max_n_records_for_estimate","u"=>13,"t"=>2]]],"mroonga_query_log_file"=>["d"=>true,"t"=>1,"a"=>[["a"=>"mroonga_query_log_file","u"=>13,"t"=>2]]],"mroonga_vector_column_delimiter"=>["d"=>true,"t"=>1,"a"=>[["a"=>"mroonga_vector_column_delimiter","u"=>13,"t"=>2]]],"mroonga_version"=>["d"=>false,"t"=>1,"a"=>[["a"=>"mroonga_version","u"=>13,"t"=>2]]],"key_buffer_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"key_buffer_size","u"=>14,"t"=>2],["a"=>"sysvar_key_buffer_size","u"=>15,"t"=>1]]],"key_cache_age_threshold"=>["d"=>true,"t"=>3,"a"=>[["a"=>"key_cache_age_threshold","u"=>14,"t"=>2],["a"=>"sysvar_key_cache_age_threshold","u"=>15,"t"=>1]]],"key_cache_block_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"key_cache_block_size","u"=>14,"t"=>2],["a"=>"sysvar_key_cache_block_size","u"=>15,"t"=>1]]],"key_cache_division_limit"=>["d"=>true,"t"=>3,"a"=>[["a"=>"key_cache_division_limit","u"=>14,"t"=>2],["a"=>"sysvar_key_cache_division_limit","u"=>15,"t"=>1]]],"key_cache_file_hash_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"key_cache_file_hash_size","u"=>14,"t"=>2]]],"key_cache_segments"=>["d"=>true,"t"=>3,"a"=>[["a"=>"key_cache_segments","u"=>14,"t"=>2]]],"myisam_block_size"=>["t"=>3,"a"=>[["a"=>"myisam_block_size","u"=>14,"t"=>2],["a"=>"option_mysqld_myisam-block-size","u"=>16,"t"=>1]]],"myisam_data_pointer_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"myisam_data_pointer_size","u"=>14,"t"=>2],["a"=>"sysvar_myisam_data_pointer_size","u"=>15,"t"=>1]]],"myisam_max_extra_sort_file_size"=>["a"=>[["a"=>"myisam_max_extra_sort_file_size","u"=>14,"t"=>2]]],"myisam_max_sort_file_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"myisam_max_sort_file_size","u"=>14,"t"=>2],["a"=>"sysvar_myisam_max_sort_file_size","u"=>15,"t"=>1]]],"myisam_mmap_size"=>["t"=>3,"a"=>[["a"=>"myisam_mmap_size","u"=>14,"t"=>2],["a"=>"sysvar_myisam_mmap_size","u"=>15,"t"=>1]]],"myisam_recover_options"=>["d"=>false,"t"=>5,"a"=>[["a"=>"myisam_recover_options","u"=>14,"t"=>2],["a"=>"sysvar_myisam_recover_options","u"=>15,"t"=>1]]],"myisam_repair_threads"=>["d"=>true,"t"=>3,"a"=>[["a"=>"myisam_repair_threads","u"=>14,"t"=>2],["a"=>"sysvar_myisam_repair_threads","u"=>15,"t"=>1]]],"myisam_sort_buffer_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"myisam_sort_buffer_size","u"=>14,"t"=>2],["a"=>"sysvar_myisam_sort_buffer_size","u"=>15,"t"=>1]]],"myisam_stats_method"=>["d"=>true,"t"=>5,"a"=>[["a"=>"myisam_stats_method","u"=>14,"t"=>2],["a"=>"sysvar_myisam_stats_method","u"=>15,"t"=>1]]],"myisam_use_mmap"=>["d"=>true,"t"=>2,"a"=>[["a"=>"myisam_use_mmap","u"=>14,"t"=>2],["a"=>"sysvar_myisam_use_mmap","u"=>15,"t"=>1]]],"rocksdb_access_hint_on_compaction_start"=>["d"=>false,"t"=>3,"a"=>[["a"=>"rocksdb_access_hint_on_compaction_start","u"=>17,"t"=>2]]],"rocksdb_advise_random_on_open"=>["d"=>false,"t"=>2,"a"=>[["a"=>"rocksdb_advise_random_on_open","u"=>17,"t"=>2]]],"rocksdb_allow_concurrent_memtable_write"=>["d"=>false,"t"=>2,"a"=>[["a"=>"rocksdb_allow_concurrent_memtable_write","u"=>17,"t"=>2]]],"rocksdb_allow_mmap_reads"=>["d"=>false,"t"=>2,"a"=>[["a"=>"rocksdb_allow_mmap_reads","u"=>17,"t"=>2]]],"rocksdb_allow_mmap_writes"=>["d"=>false,"t"=>2,"a"=>[["a"=>"rocksdb_allow_mmap_writes","u"=>17,"t"=>2]]],"rocksdb_background_sync"=>["d"=>false,"t"=>2,"a"=>[["a"=>"rocksdb_background_sync","u"=>17,"t"=>2]]],"rocksdb_base_background_compactions"=>["d"=>false,"t"=>3,"a"=>[["a"=>"rocksdb_base_background_compactions","u"=>17,"t"=>2]]],"rocksdb_blind_delete_primary_key"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_blind_delete_primary_key","u"=>17,"t"=>2]]],"rocksdb_block_cache_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"rocksdb_block_cache_size","u"=>17,"t"=>2]]],"rocksdb_block_restart_interval"=>["d"=>false,"t"=>3,"a"=>[["a"=>"rocksdb_block_restart_interval","u"=>17,"t"=>2]]],"rocksdb_block_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"rocksdb_block_size","u"=>17,"t"=>2]]],"rocksdb_block_size_deviation"=>["d"=>false,"t"=>3,"a"=>[["a"=>"rocksdb_block_size_deviation","u"=>17,"t"=>2]]],"rocksdb_bulk_load"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_bulk_load","u"=>17,"t"=>2]]],"rocksdb_bulk_load_allow_unsorted"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_bulk_load_allow_unsorted","u"=>17,"t"=>2]]],"rocksdb_bulk_load_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rocksdb_bulk_load_size","u"=>17,"t"=>2]]],"rocksdb_bytes_per_sync"=>["d"=>false,"t"=>3,"a"=>[["a"=>"rocksdb_bytes_per_sync","u"=>17,"t"=>2]]],"rocksdb_cache_index_and_filter_blocks"=>["d"=>false,"t"=>2,"a"=>[["a"=>"rocksdb_cache_index_and_filter_blocks","u"=>17,"t"=>2]]],"rocksdb_checksums_pct"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rocksdb_checksums_pct","u"=>17,"t"=>2]]],"rocksdb_collect_sst_properties"=>["d"=>false,"t"=>2,"a"=>[["a"=>"rocksdb_collect_sst_properties","u"=>17,"t"=>2]]],"rocksdb_commit_in_the_middle"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_commit_in_the_middle","u"=>17,"t"=>2]]],"rocksdb_compact_cf"=>["d"=>true,"t"=>1,"a"=>[["a"=>"rocksdb_compact_cf","u"=>17,"t"=>2]]],"rocksdb_compaction_readahead_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rocksdb_compaction_readahead_size","u"=>17,"t"=>2]]],"rocksdb_compaction_sequential_deletes"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rocksdb_compaction_sequential_deletes","u"=>17,"t"=>2]]],"rocksdb_compaction_sequential_deletes_count_sd"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_compaction_sequential_deletes_count_sd","u"=>17,"t"=>2]]],"rocksdb_compaction_sequential_deletes_file_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rocksdb_compaction_sequential_deletes_file_size","u"=>17,"t"=>2]]],"rocksdb_compaction_sequential_deletes_window"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rocksdb_compaction_sequential_deletes_window","u"=>17,"t"=>2]]],"rocksdb_concurrent_prepare"=>["d"=>false,"t"=>2,"a"=>[["a"=>"rocksdb_concurrent_prepare","u"=>17,"t"=>2]]],"rocksdb_create_checkpoint"=>["d"=>true,"t"=>1,"a"=>[["a"=>"rocksdb_create_checkpoint","u"=>17,"t"=>2]]],"rocksdb_create_if_missing"=>["d"=>false,"t"=>2,"a"=>[["a"=>"rocksdb_create_if_missing","u"=>17,"t"=>2]]],"rocksdb_create_missing_column_families"=>["d"=>false,"t"=>2,"a"=>[["a"=>"rocksdb_create_missing_column_families","u"=>17,"t"=>2]]],"rocksdb_datadir"=>["d"=>false,"t"=>1,"a"=>[["a"=>"rocksdb_datadir","u"=>17,"t"=>2]]],"rocksdb_db_write_buffer_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"rocksdb_db_write_buffer_size","u"=>17,"t"=>2]]],"rocksdb_deadlock_detect"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_deadlock_detect","u"=>17,"t"=>2]]],"rocksdb_deadlock_detect_depth"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rocksdb_deadlock_detect_depth","u"=>17,"t"=>2]]],"rocksdb_debug_optimizer_no_zero_cardinality"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_debug_optimizer_no_zero_cardinality","u"=>17,"t"=>2]]],"rocksdb_debug_ttl_ignore_pk"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_debug_ttl_ignore_pk","u"=>17,"t"=>2]]],"rocksdb_debug_ttl_read_filter_ts"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rocksdb_debug_ttl_read_filter_ts","u"=>17,"t"=>2]]],"rocksdb_debug_ttl_rec_ts"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rocksdb_debug_ttl_rec_ts","u"=>17,"t"=>2]]],"rocksdb_debug_ttl_snapshot_ts"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rocksdb_debug_ttl_snapshot_ts","u"=>17,"t"=>2]]],"rocksdb_default_cf_options"=>["d"=>false,"t"=>1,"a"=>[["a"=>"rocksdb_default_cf_options","u"=>17,"t"=>2]]],"rocksdb_delayed_write_rate"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rocksdb_delayed_write_rate","u"=>17,"t"=>2]]],"rocksdb_delete_obsolete_files_period_micros"=>["d"=>false,"t"=>3,"a"=>[["a"=>"rocksdb_delete_obsolete_files_period_micros","u"=>17,"t"=>2]]],"rocksdb_enable_2pc"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_enable_2pc","u"=>17,"t"=>2]]],"rocksdb_enable_bulk_load_api"=>["d"=>false,"t"=>2,"a"=>[["a"=>"rocksdb_enable_bulk_load_api","u"=>17,"t"=>2]]],"rocksdb_enable_thread_tracking"=>["d"=>false,"t"=>2,"a"=>[["a"=>"rocksdb_enable_thread_tracking","u"=>17,"t"=>2]]],"rocksdb_enable_ttl"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_enable_ttl","u"=>17,"t"=>2]]],"rocksdb_enable_ttl_read_filtering"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_enable_ttl_read_filtering","u"=>17,"t"=>2]]],"rocksdb_enable_write_thread_adaptive_yield"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_enable_write_thread_adaptive_yield","u"=>17,"t"=>2]]],"rocksdb_error_if_exists"=>["d"=>false,"t"=>2,"a"=>[["a"=>"rocksdb_error_if_exists","u"=>17,"t"=>2]]],"rocksdb_flush_log_at_trx_commit"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rocksdb_flush_log_at_trx_commit","u"=>17,"t"=>2]]],"rocksdb_flush_memtable_on_analyze"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_flush_memtable_on_analyze","u"=>17,"t"=>2]]],"rocksdb_force_compute_memtable_stats"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_force_compute_memtable_stats","u"=>17,"t"=>2]]],"rocksdb_force_compute_memtable_stats_cachetime"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rocksdb_force_compute_memtable_stats_cachetime","u"=>17,"t"=>2]]],"rocksdb_force_flush_memtable_and_lzero_now"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_force_flush_memtable_and_lzero_now","u"=>17,"t"=>2]]],"rocksdb_force_flush_memtable_now"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_force_flush_memtable_now","u"=>17,"t"=>2]]],"rocksdb_force_index_records_in_range"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rocksdb_force_index_records_in_range","u"=>17,"t"=>2]]],"rocksdb_git_hash"=>["d"=>false,"t"=>1,"a"=>[["a"=>"rocksdb_git_hash","u"=>17,"t"=>2]]],"rocksdb_hash_index_allow_collision"=>["d"=>false,"t"=>2,"a"=>[["a"=>"rocksdb_hash_index_allow_collision","u"=>17,"t"=>2]]],"rocksdb_index_type"=>["d"=>false,"a"=>[["a"=>"rocksdb_index_type","u"=>17,"t"=>2]]],"rocksdb_info_log_level"=>["d"=>true,"a"=>[["a"=>"rocksdb_info_log_level","u"=>17,"t"=>2]]],"rocksdb_io_write_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rocksdb_io_write_timeout","u"=>17,"t"=>2]]],"rocksdb_is_fd_close_on_exec"=>["d"=>false,"t"=>2,"a"=>[["a"=>"rocksdb_is_fd_close_on_exec","u"=>17,"t"=>2]]],"rocksdb_keep_log_file_num"=>["d"=>false,"t"=>3,"a"=>[["a"=>"rocksdb_keep_log_file_num","u"=>17,"t"=>2]]],"rocksdb_large_prefix"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_large_prefix","u"=>17,"t"=>2]]],"rocksdb_lock_scanned_rows"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_lock_scanned_rows","u"=>17,"t"=>2]]],"rocksdb_lock_wait_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rocksdb_lock_wait_timeout","u"=>17,"t"=>2]]],"rocksdb_log_file_time_to_roll"=>["d"=>false,"t"=>3,"a"=>[["a"=>"rocksdb_log_file_time_to_roll","u"=>17,"t"=>2]]],"rocksdb_manifest_preallocation_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"rocksdb_manifest_preallocation_size","u"=>17,"t"=>2]]],"rocksdb_manual_wal_flush"=>["d"=>false,"t"=>2,"a"=>[["a"=>"rocksdb_manual_wal_flush","u"=>17,"t"=>2]]],"rocksdb_master_skip_tx_api"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_master_skip_tx_api","u"=>17,"t"=>2]]],"rocksdb_max_background_compactions"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rocksdb_max_background_compactions","u"=>17,"t"=>2]]],"rocksdb_max_background_flushes"=>["d"=>false,"t"=>3,"a"=>[["a"=>"rocksdb_max_background_flushes","u"=>17,"t"=>2]]],"rocksdb_max_background_jobs"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rocksdb_max_background_jobs","u"=>17,"t"=>2]]],"rocksdb_max_latest_deadlocks"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rocksdb_max_latest_deadlocks","u"=>17,"t"=>2]]],"rocksdb_max_log_file_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"rocksdb_max_log_file_size","u"=>17,"t"=>2]]],"rocksdb_max_manifest_file_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"rocksdb_max_manifest_file_size","u"=>17,"t"=>2]]],"rocksdb_max_open_files"=>["d"=>false,"t"=>3,"a"=>[["a"=>"rocksdb_max_open_files","u"=>17,"t"=>2]]],"rocksdb_max_row_locks"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rocksdb_max_row_locks","u"=>17,"t"=>2]]],"rocksdb_max_subcompactions"=>["d"=>false,"t"=>3,"a"=>[["a"=>"rocksdb_max_subcompactions","u"=>17,"t"=>2]]],"rocksdb_max_total_wal_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"rocksdb_max_total_wal_size","u"=>17,"t"=>2]]],"rocksdb_merge_buf_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rocksdb_merge_buf_size","u"=>17,"t"=>2]]],"rocksdb_merge_combine_read_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rocksdb_merge_combine_read_size","u"=>17,"t"=>2]]],"rocksdb_merge_tmp_file_removal_delay_ms"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rocksdb_merge_tmp_file_removal_delay_ms","u"=>17,"t"=>2]]],"rocksdb_new_table_reader_for_compaction_inputs"=>["d"=>false,"t"=>2,"a"=>[["a"=>"rocksdb_new_table_reader_for_compaction_inputs","u"=>17,"t"=>2]]],"rocksdb_no_block_cache"=>["d"=>false,"t"=>2,"a"=>[["a"=>"rocksdb_no_block_cache","u"=>17,"t"=>2]]],"rocksdb_override_cf_options"=>["d"=>false,"t"=>1,"a"=>[["a"=>"rocksdb_override_cf_options","u"=>17,"t"=>2]]],"rocksdb_paranoid_checks"=>["d"=>false,"t"=>2,"a"=>[["a"=>"rocksdb_paranoid_checks","u"=>17,"t"=>2]]],"rocksdb_pause_background_work"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_pause_background_work","u"=>17,"t"=>2]]],"rocksdb_perf_context_level"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rocksdb_perf_context_level","u"=>17,"t"=>2]]],"rocksdb_persistent_cache_path"=>["d"=>false,"t"=>1,"a"=>[["a"=>"rocksdb_persistent_cache_path","u"=>17,"t"=>2]]],"rocksdb_persistent_cache_size_mb"=>["d"=>false,"t"=>3,"a"=>[["a"=>"rocksdb_persistent_cache_size_mb","u"=>17,"t"=>2]]],"rocksdb_pin_l0_filter_and_index_blocks_in_cache"=>["d"=>false,"t"=>2,"a"=>[["a"=>"rocksdb_pin_l0_filter_and_index_blocks_in_cache","u"=>17,"t"=>2]]],"rocksdb_print_snapshot_conflict_queries"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_print_snapshot_conflict_queries","u"=>17,"t"=>2]]],"rocksdb_rate_limiter_bytes_per_sec"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rocksdb_rate_limiter_bytes_per_sec","u"=>17,"t"=>2]]],"rocksdb_read_free_rpl_tables"=>["d"=>true,"t"=>1,"a"=>[["a"=>"rocksdb_read_free_rpl_tables","u"=>17,"t"=>2]]],"rocksdb_records_in_range"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rocksdb_records_in_range","u"=>17,"t"=>2]]],"rocksdb_reset_stats"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_reset_stats","u"=>17,"t"=>2]]],"rocksdb_seconds_between_stat_computes"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rocksdb_seconds_between_stat_computes","u"=>17,"t"=>2]]],"rocksdb_signal_drop_index_thread"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_signal_drop_index_thread","u"=>17,"t"=>2]]],"rocksdb_sim_cache_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"rocksdb_sim_cache_size","u"=>17,"t"=>2]]],"rocksdb_skip_bloom_filter_on_read"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_skip_bloom_filter_on_read","u"=>17,"t"=>2]]],"rocksdb_skip_fill_cache"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_skip_fill_cache","u"=>17,"t"=>2]]],"rocksdb_skip_unique_check_tables"=>["d"=>true,"t"=>1,"a"=>[["a"=>"rocksdb_skip_unique_check_tables","u"=>17,"t"=>2]]],"rocksdb_sst_mgr_rate_bytes_per_sec"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rocksdb_sst_mgr_rate_bytes_per_sec","u"=>17,"t"=>2]]],"rocksdb_stats_dump_period_sec"=>["d"=>false,"t"=>3,"a"=>[["a"=>"rocksdb_stats_dump_period_sec","u"=>17,"t"=>2]]],"rocksdb_store_row_debug_checksums"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_store_row_debug_checksums","u"=>17,"t"=>2]]],"rocksdb_strict_collation_check"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_strict_collation_check","u"=>17,"t"=>2]]],"rocksdb_strict_collation_exceptions"=>["d"=>true,"t"=>1,"a"=>[["a"=>"rocksdb_strict_collation_exceptions","u"=>17,"t"=>2]]],"rocksdb_supported_compression_types"=>["d"=>false,"t"=>1,"a"=>[["a"=>"rocksdb_supported_compression_types","u"=>17,"t"=>2]]],"rocksdb_table_cache_numshardbits"=>["d"=>false,"t"=>3,"a"=>[["a"=>"rocksdb_table_cache_numshardbits","u"=>17,"t"=>2]]],"rocksdb_table_stats_sampling_pct"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rocksdb_table_stats_sampling_pct","u"=>17,"t"=>2]]],"rocksdb_tmpdir"=>["d"=>true,"t"=>1,"a"=>[["a"=>"rocksdb_tmpdir","u"=>17,"t"=>2]]],"rocksdb_trace_sst_api"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_trace_sst_api","u"=>17,"t"=>2]]],"rocksdb_unsafe_for_binlog"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_unsafe_for_binlog","u"=>17,"t"=>2]]],"rocksdb_update_cf_options"=>["d"=>true,"a"=>[["a"=>"rocksdb_update_cf_options","u"=>17,"t"=>2]]],"rocksdb_use_adaptive_mutex"=>["d"=>false,"t"=>2,"a"=>[["a"=>"rocksdb_use_adaptive_mutex","u"=>17,"t"=>2]]],"rocksdb_use_clock_cache"=>["d"=>false,"t"=>2,"a"=>[["a"=>"rocksdb_use_clock_cache","u"=>17,"t"=>2]]],"rocksdb_use_direct_io_for_flush_and_compaction"=>["d"=>false,"t"=>2,"a"=>[["a"=>"rocksdb_use_direct_io_for_flush_and_compaction","u"=>17,"t"=>2]]],"rocksdb_use_direct_reads"=>["d"=>false,"t"=>2,"a"=>[["a"=>"rocksdb_use_direct_reads","u"=>17,"t"=>2]]],"rocksdb_use_direct_writes"=>["d"=>false,"t"=>2,"a"=>[["a"=>"rocksdb_use_direct_writes","u"=>17,"t"=>2]]],"rocksdb_use_fsync"=>["d"=>false,"t"=>2,"a"=>[["a"=>"rocksdb_use_fsync","u"=>17,"t"=>2]]],"rocksdb_validate_tables"=>["d"=>false,"t"=>3,"a"=>[["a"=>"rocksdb_validate_tables","u"=>17,"t"=>2]]],"rocksdb_verify_row_debug_checksums"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_verify_row_debug_checksums","u"=>17,"t"=>2]]],"rocksdb_wal_bytes_per_sync"=>["d"=>false,"t"=>3,"a"=>[["a"=>"rocksdb_wal_bytes_per_sync","u"=>17,"t"=>2]]],"rocksdb_wal_dir"=>["d"=>false,"t"=>1,"a"=>[["a"=>"rocksdb_wal_dir","u"=>17,"t"=>2]]],"rocksdb_wal_recovery_mode"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rocksdb_wal_recovery_mode","u"=>17,"t"=>2]]],"rocksdb_wal_size_limit_mb"=>["d"=>false,"t"=>3,"a"=>[["a"=>"rocksdb_wal_size_limit_mb","u"=>17,"t"=>2]]],"rocksdb_wal_ttl_seconds"=>["d"=>false,"t"=>3,"a"=>[["a"=>"rocksdb_wal_ttl_seconds","u"=>17,"t"=>2]]],"rocksdb_whole_key_filtering"=>["d"=>false,"t"=>2,"a"=>[["a"=>"rocksdb_whole_key_filtering","u"=>17,"t"=>2]]],"rocksdb_write_batch_max_bytes"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rocksdb_write_batch_max_bytes","u"=>17,"t"=>2]]],"rocksdb_write_disable_wal"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_write_disable_wal","u"=>17,"t"=>2]]],"rocksdb_write_ignore_missing_column_families"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rocksdb_write_ignore_missing_column_families","u"=>17,"t"=>2]]],"oqgraph_allow_create_integer_latch"=>["d"=>true,"t"=>2,"a"=>[["a"=>"oqgraph_allow_create_integer_latch","u"=>18,"t"=>2]]],"Oqgraph_boost_version"=>["t"=>1,"a"=>[["a"=>"oqgraph_boost_version","u"=>18,"t"=>2]]],"Oqgraph_compat_mode"=>["t"=>1,"a"=>[["a"=>"oqgraph_compat_mode","u"=>18,"t"=>2]]],"Oqgraph_verbose_debug"=>["t"=>1,"a"=>[["a"=>"oqgraph_verbose_debug","u"=>18,"t"=>2]]],"performance_schema"=>["d"=>false,"t"=>2,"a"=>[["a"=>"performance_schema","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema","u"=>20,"t"=>1]]],"performance_schema_accounts_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"performance_schema_accounts_size","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema_accounts_size","u"=>20,"t"=>1]]],"performance_schema_digests_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"performance_schema_digests_size","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema_digests_size","u"=>20,"t"=>1]]],"performance_schema_events_stages_history_long_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"performance_schema_events_stages_history_long_size","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema_events_stages_history_long_size","u"=>20,"t"=>1]]],"performance_schema_events_stages_history_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"performance_schema_events_stages_history_size","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema_events_stages_history_size","u"=>20,"t"=>1]]],"performance_schema_events_statements_history_long_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"performance_schema_events_statements_history_long_size","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema_events_statements_history_long_size","u"=>20,"t"=>1]]],"performance_schema_events_statements_history_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"performance_schema_events_statements_history_size","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema_events_statements_history_size","u"=>20,"t"=>1]]],"performance_schema_events_waits_history_long_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"performance_schema_events_waits_history_long_size","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema_events_waits_history_long_size","u"=>20,"t"=>1]]],"performance_schema_events_waits_history_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"performance_schema_events_waits_history_size","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema_events_waits_history_size","u"=>20,"t"=>1]]],"performance_schema_hosts_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"performance_schema_hosts_size","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema_hosts_size","u"=>20,"t"=>1]]],"performance_schema_max_cond_classes"=>["d"=>false,"t"=>3,"a"=>[["a"=>"performance_schema_max_cond_classes","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema_max_cond_classes","u"=>20,"t"=>1]]],"performance_schema_max_cond_instances"=>["d"=>false,"t"=>3,"a"=>[["a"=>"performance_schema_max_cond_instances","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema_max_cond_instances","u"=>20,"t"=>1]]],"performance_schema_max_digest_length"=>["d"=>false,"t"=>3,"a"=>[["a"=>"performance_schema_max_digest_length","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema_max_digest_length","u"=>20,"t"=>1]]],"performance_schema_max_file_classes"=>["d"=>false,"t"=>3,"a"=>[["a"=>"performance_schema_max_file_classes","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema_max_file_classes","u"=>20,"t"=>1]]],"performance_schema_max_file_handles"=>["d"=>false,"t"=>3,"a"=>[["a"=>"performance_schema_max_file_handles","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema_max_file_handles","u"=>20,"t"=>1]]],"performance_schema_max_file_instances"=>["d"=>false,"t"=>3,"a"=>[["a"=>"performance_schema_max_file_instances","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema_max_file_instances","u"=>20,"t"=>1]]],"performance_schema_max_mutex_classes"=>["d"=>false,"t"=>3,"a"=>[["a"=>"performance_schema_max_mutex_classes","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema_max_mutex_classes","u"=>20,"t"=>1]]],"performance_schema_max_mutex_instances"=>["d"=>false,"t"=>3,"a"=>[["a"=>"performance_schema_max_mutex_instances","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema_max_mutex_instances","u"=>20,"t"=>1]]],"performance_schema_max_rwlock_classes"=>["d"=>false,"t"=>3,"a"=>[["a"=>"performance_schema_max_rwlock_classes","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema_max_rwlock_classes","u"=>20,"t"=>1]]],"performance_schema_max_rwlock_instances"=>["d"=>false,"t"=>3,"a"=>[["a"=>"performance_schema_max_rwlock_instances","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema_max_rwlock_instances","u"=>20,"t"=>1]]],"performance_schema_max_socket_classes"=>["d"=>false,"t"=>3,"a"=>[["a"=>"performance_schema_max_socket_classes","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema_max_socket_classes","u"=>20,"t"=>1]]],"performance_schema_max_socket_instances"=>["d"=>false,"t"=>3,"a"=>[["a"=>"performance_schema_max_socket_instances","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema_max_socket_instances","u"=>20,"t"=>1]]],"performance_schema_max_stage_classes"=>["d"=>false,"t"=>3,"a"=>[["a"=>"performance_schema_max_stage_classes","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema_max_stage_classes","u"=>20,"t"=>1]]],"performance_schema_max_statement_classes"=>["d"=>false,"t"=>3,"a"=>[["a"=>"performance_schema_max_statement_classes","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema_max_statement_classes","u"=>20,"t"=>1]]],"performance_schema_max_table_handles"=>["d"=>false,"t"=>3,"a"=>[["a"=>"performance_schema_max_table_handles","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema_max_table_handles","u"=>20,"t"=>1]]],"performance_schema_max_table_instances"=>["d"=>false,"t"=>3,"a"=>[["a"=>"performance_schema_max_table_instances","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema_max_table_instances","u"=>20,"t"=>1]]],"performance_schema_max_thread_classes"=>["d"=>false,"t"=>3,"a"=>[["a"=>"performance_schema_max_thread_classes","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema_max_thread_classes","u"=>20,"t"=>1]]],"performance_schema_max_thread_instances"=>["d"=>false,"t"=>3,"a"=>[["a"=>"performance_schema_max_thread_instances","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema_max_thread_instances","u"=>20,"t"=>1]]],"performance_schema_session_connect_attrs_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"performance_schema_session_connect_attrs_size","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema_session_connect_attrs_size","u"=>20,"t"=>1]]],"performance_schema_setup_actors_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"performance_schema_setup_actors_size","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema_setup_actors_size","u"=>20,"t"=>1]]],"performance_schema_setup_objects_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"performance_schema_setup_objects_size","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema_setup_objects_size","u"=>20,"t"=>1]]],"performance_schema_users_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"performance_schema_users_size","u"=>19,"t"=>2],["a"=>"sysvar_performance_schema_users_size","u"=>20,"t"=>1]]],"auto_increment_increment"=>["d"=>true,"t"=>3,"a"=>[["a"=>"auto_increment_increment","u"=>8,"t"=>2],["a"=>"sysvar_auto_increment_increment","u"=>21,"t"=>1]]],"auto_increment_offset"=>["d"=>true,"t"=>3,"a"=>[["a"=>"auto_increment_offset","u"=>8,"t"=>2],["a"=>"sysvar_auto_increment_offset","u"=>21,"t"=>1]]],"binlog_annotate_row_events"=>["d"=>true,"t"=>2,"a"=>[["a"=>"binlog_annotate_row_events","u"=>8,"t"=>2]]],"binlog_cache_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"binlog_cache_size","u"=>8,"t"=>2],["a"=>"sysvar_binlog_cache_size","u"=>22,"t"=>1],["a"=>"sysvar_binlog_cache_size","u"=>23,"t"=>1]]],"binlog_checksum"=>["d"=>true,"t"=>1,"a"=>[["a"=>"binlog_checksum","u"=>8,"t"=>2],["a"=>"option_mysqld_binlog-checksum","u"=>22,"t"=>1],["a"=>"sysvar_binlog_checksum","u"=>22,"t"=>1],["a"=>"option_mysqld_binlog-checksum","u"=>23,"t"=>1],["a"=>"sysvar_binlog_checksum","u"=>23,"t"=>1]]],"binlog_commit_wait_count"=>["d"=>true,"t"=>3,"a"=>[["a"=>"binlog_commit_wait_count","u"=>8,"t"=>2]]],"binlog_commit_wait_usec"=>["d"=>true,"t"=>3,"a"=>[["a"=>"binlog_commit_wait_usec","u"=>8,"t"=>2]]],"binlog_direct_non_transactional_updates"=>["d"=>true,"t"=>2,"a"=>[["a"=>"binlog_direct_non_transactional_updates","u"=>8,"t"=>2],["a"=>"sysvar_binlog_direct_non_transactional_updates","u"=>22,"t"=>1],["a"=>"sysvar_binlog_direct_non_transactional_updates","u"=>23,"t"=>1]]],"binlog_file_cache_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"binlog_file_cache_size","u"=>8,"t"=>2]]],"binlog_format"=>["d"=>true,"t"=>5,"a"=>[["a"=>"binlog_format","u"=>8,"t"=>2],["a"=>"sysvar_binlog_format","u"=>22,"t"=>1],["a"=>"sysvar_binlog_format","u"=>23,"t"=>1]]],"binlog_optimize_thread_scheduling"=>["d"=>false,"t"=>2,"a"=>[["a"=>"binlog_optimize_thread_scheduling","u"=>8,"t"=>2]]],"binlog_row_image"=>["d"=>true,"t"=>5,"a"=>[["a"=>"binlog_row_image","u"=>8,"t"=>2],["a"=>"sysvar_binlog_row_image","u"=>22,"t"=>1],["a"=>"sysvar_binlog_row_image","u"=>23,"t"=>1]]],"binlog_row_metadata"=>["d"=>true,"t"=>5,"a"=>[["a"=>"binlog_row_metadata","u"=>8,"t"=>2],["a"=>"sysvar_binlog_row_metadata","u"=>22,"t"=>1]]],"binlog_stmt_cache_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"binlog_stmt_cache_size","u"=>8,"t"=>2],["a"=>"sysvar_binlog_stmt_cache_size","u"=>22,"t"=>1],["a"=>"sysvar_binlog_stmt_cache_size","u"=>23,"t"=>1]]],"default_master_connection"=>["d"=>true,"t"=>1,"a"=>[["a"=>"default_master_connection","u"=>8,"t"=>2]]],"encrypt_binlog"=>["d"=>false,"t"=>2,"a"=>[["a"=>"encrypt_binlog","u"=>8,"t"=>2]]],"expire_logs_days"=>["d"=>true,"t"=>3,"a"=>[["a"=>"expire_logs_days","u"=>8,"t"=>2],["a"=>"sysvar_expire_logs_days","u"=>22,"t"=>1],["a"=>"sysvar_expire_logs_days","u"=>23,"t"=>1]]],"init_slave"=>["d"=>true,"t"=>1,"a"=>[["a"=>"init_slave","u"=>8,"t"=>2],["a"=>"sysvar_init_slave","u"=>24,"t"=>1]]],"log_bin"=>["d"=>false,"t"=>2,"a"=>[["a"=>"log_bin","u"=>8,"t"=>2],["a"=>"option_mysqld_log-bin","u"=>22,"t"=>1],["a"=>"sysvar_log_bin","u"=>22,"t"=>1],["a"=>"option_mysqld_log-bin","u"=>23,"t"=>1],["a"=>"sysvar_log_bin","u"=>23,"t"=>1]]],"log_bin_basename"=>["d"=>false,"t"=>8,"a"=>[["a"=>"log_bin_basename","u"=>8,"t"=>2],["a"=>"sysvar_log_bin_basename","u"=>22,"t"=>1],["a"=>"sysvar_log_bin_basename","u"=>23,"t"=>1]]],"log_bin_compress"=>["d"=>true,"t"=>2,"a"=>[["a"=>"log_bin_compress","u"=>8,"t"=>2]]],"log_bin_compress_min_len"=>["d"=>true,"t"=>3,"a"=>[["a"=>"log_bin_compress_min_len","u"=>8,"t"=>2]]],"log_bin_index"=>["d"=>false,"t"=>8,"a"=>[["a"=>"log_bin_index","u"=>8,"t"=>2],["a"=>"option_mysqld_log-bin-index","u"=>22,"t"=>1],["a"=>"sysvar_log_bin_index","u"=>22,"t"=>1],["a"=>"option_mysqld_log-bin-index","u"=>23,"t"=>1],["a"=>"sysvar_log_bin_index","u"=>23,"t"=>1]]],"log_bin_trust_function_creators"=>["d"=>true,"t"=>2,"a"=>[["a"=>"log_bin_trust_function_creators","u"=>8,"t"=>2],["a"=>"sysvar_log_bin_trust_function_creators","u"=>22,"t"=>1],["a"=>"sysvar_log_bin_trust_function_creators","u"=>23,"t"=>1]]],"log_slow_slave_statements"=>["d"=>true,"t"=>2,"a"=>[["a"=>"log_slow_slave_statements","u"=>8,"t"=>2],["a"=>"sysvar_log_slow_slave_statements","u"=>24,"t"=>1]]],"log_slave_updates"=>["d"=>false,"t"=>2,"a"=>[["a"=>"log_slave_updates","u"=>8,"t"=>2],["a"=>"sysvar_log_slave_updates","u"=>22,"t"=>1],["a"=>"sysvar_log_slave_updates","u"=>23,"t"=>1]]],"master_verify_checksum"=>["d"=>true,"t"=>2,"a"=>[["a"=>"master_verify_checksum","u"=>8,"t"=>2],["a"=>"sysvar_master_verify_checksum","u"=>22,"t"=>1],["a"=>"sysvar_master_verify_checksum","u"=>23,"t"=>1]]],"max_binlog_cache_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"max_binlog_cache_size","u"=>8,"t"=>2],["a"=>"sysvar_max_binlog_cache_size","u"=>22,"t"=>1],["a"=>"sysvar_max_binlog_cache_size","u"=>23,"t"=>1]]],"max_binlog_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"max_binlog_size","u"=>8,"t"=>2],["a"=>"sysvar_max_binlog_size","u"=>22,"t"=>1],["a"=>"sysvar_max_binlog_size","u"=>23,"t"=>1]]],"max_binlog_stmt_cache_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"max_binlog_stmt_cache_size","u"=>8,"t"=>2],["a"=>"sysvar_max_binlog_stmt_cache_size","u"=>22,"t"=>1],["a"=>"sysvar_max_binlog_stmt_cache_size","u"=>23,"t"=>1]]],"max_relay_log_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"max_relay_log_size","u"=>8,"t"=>2],["a"=>"option_mysqld_max-relay-log-size","u"=>24,"t"=>1],["a"=>"sysvar_max_relay_log_size","u"=>24,"t"=>1]]],"read_binlog_speed_limit"=>["d"=>true,"t"=>3,"a"=>[["a"=>"read_binlog_speed_limit","u"=>8,"t"=>2]]],"relay_log"=>["d"=>false,"t"=>8,"a"=>[["a"=>"relay_log","u"=>8,"t"=>2],["a"=>"sysvar_relay_log","u"=>24,"t"=>1]]],"relay_log_basename"=>["d"=>false,"a"=>[["a"=>"relay_log_basename","u"=>8,"t"=>2],["a"=>"sysvar_relay_log_basename","u"=>24,"t"=>1]]],"relay_log_index"=>["d"=>false,"a"=>[["a"=>"relay_log_index","u"=>8,"t"=>2],["a"=>"sysvar_relay_log_index","u"=>24,"t"=>1]]],"relay_log_info_file"=>["d"=>false,"a"=>[["a"=>"relay_log_info_file","u"=>8,"t"=>2],["a"=>"sysvar_relay_log_info_file","u"=>24,"t"=>1]]],"relay_log_purge"=>["d"=>true,"t"=>2,"a"=>[["a"=>"relay_log_purge","u"=>8,"t"=>2],["a"=>"option_mysqld_relay-log-purge","u"=>24,"t"=>1],["a"=>"sysvar_relay_log_purge","u"=>24,"t"=>1]]],"relay_log_recovery"=>["t"=>2,"a"=>[["a"=>"relay_log_recovery","u"=>8,"t"=>2],["a"=>"sysvar_relay_log_recovery","u"=>24,"t"=>1]]],"relay_log_space_limit"=>["d"=>false,"t"=>3,"a"=>[["a"=>"relay_log_space_limit","u"=>8,"t"=>2],["a"=>"option_mysqld_relay-log-space-limit","u"=>24,"t"=>1],["a"=>"sysvar_relay_log_space_limit","u"=>24,"t"=>1]]],"replicate_annotate_row_events"=>["d"=>false,"t"=>2,"a"=>[["a"=>"replicate_annotate_row_events","u"=>8,"t"=>2]]],"replicate_do_db"=>["t"=>1,"a"=>[["a"=>"replicate_do_db","u"=>8,"t"=>2],["a"=>"option_mysqld_replicate-do-db","u"=>24,"t"=>1]]],"replicate_do_table"=>["t"=>1,"a"=>[["a"=>"replicate_do_table","u"=>8,"t"=>2],["a"=>"option_mysqld_replicate-do-table","u"=>24,"t"=>1]]],"replicate_events_marked_for_skip"=>["d"=>true,"t"=>5,"a"=>[["a"=>"replicate_events_marked_for_skip","u"=>8,"t"=>2]]],"replicate_ignore_db"=>["t"=>1,"a"=>[["a"=>"replicate_ignore_db","u"=>8,"t"=>2],["a"=>"option_mysqld_replicate-ignore-db","u"=>24,"t"=>1]]],"replicate_ignore_table"=>["t"=>1,"a"=>[["a"=>"replicate_ignore_table","u"=>8,"t"=>2],["a"=>"option_mysqld_replicate-ignore-table","u"=>24,"t"=>1]]],"replicate_rewrite_db"=>["t"=>1,"a"=>[["a"=>"replicate_rewrite_db","u"=>8,"t"=>2],["a"=>"option_mysqld_replicate-rewrite-db","u"=>24,"t"=>1]]],"replicate_wild_do_table"=>["t"=>1,"a"=>[["a"=>"replicate_wild_do_table","u"=>8,"t"=>2],["a"=>"option_mysqld_replicate-wild-do-table","u"=>24,"t"=>1]]],"replicate_wild_ignore_table"=>["t"=>1,"a"=>[["a"=>"replicate_wild_ignore_table","u"=>8,"t"=>2],["a"=>"option_mysqld_replicate-wild-ignore-table","u"=>24,"t"=>1]]],"report_host"=>["d"=>false,"t"=>1,"a"=>[["a"=>"report_host","u"=>8,"t"=>2],["a"=>"sysvar_report_host","u"=>24,"t"=>1]]],"report_password"=>["d"=>false,"t"=>1,"a"=>[["a"=>"report_password","u"=>8,"t"=>2],["a"=>"sysvar_report_password","u"=>24,"t"=>1]]],"report_port"=>["d"=>false,"t"=>3,"a"=>[["a"=>"report_port","u"=>8,"t"=>2],["a"=>"sysvar_report_port","u"=>24,"t"=>1]]],"report_user"=>["d"=>false,"t"=>1,"a"=>[["a"=>"report_user","u"=>8,"t"=>2],["a"=>"sysvar_report_user","u"=>24,"t"=>1]]],"skip_parallel_replication"=>["d"=>true,"t"=>2,"a"=>[["a"=>"skip_parallel_replication","u"=>8,"t"=>2]]],"skip_replication"=>["d"=>true,"t"=>2,"a"=>[["a"=>"skip_replication","u"=>8,"t"=>2]]],"slave_compressed_protocol"=>["d"=>true,"t"=>2,"a"=>[["a"=>"slave_compressed_protocol","u"=>8,"t"=>2],["a"=>"sysvar_slave_compressed_protocol","u"=>24,"t"=>1]]],"slave_ddl_exec_mode"=>["d"=>true,"t"=>5,"a"=>[["a"=>"slave_ddl_exec_mode","u"=>8,"t"=>2]]],"slave_domain_parallel_threads"=>["d"=>true,"t"=>3,"a"=>[["a"=>"slave_domain_parallel_threads","u"=>8,"t"=>2]]],"slave_exec_mode"=>["d"=>true,"t"=>5,"a"=>[["a"=>"slave_exec_mode","u"=>8,"t"=>2],["a"=>"sysvar_slave_exec_mode","u"=>24,"t"=>1]]],"slave_load_tmpdir"=>["d"=>false,"a"=>[["a"=>"slave_load_tmpdir","u"=>8,"t"=>2],["a"=>"sysvar_slave_load_tmpdir","u"=>24,"t"=>1]]],"slave_max_allowed_packet"=>["d"=>true,"t"=>3,"a"=>[["a"=>"slave_max_allowed_packet","u"=>8,"t"=>2],["a"=>"sysvar_slave_max_allowed_packet","u"=>24,"t"=>1]]],"slave_net_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"slave_net_timeout","u"=>8,"t"=>2],["a"=>"sysvar_slave_net_timeout","u"=>24,"t"=>1]]],"slave_parallel_max_queued"=>["d"=>true,"t"=>3,"a"=>[["a"=>"slave_parallel_max_queued","u"=>8,"t"=>2]]],"slave_parallel_mode"=>["d"=>false,"a"=>[["a"=>"slave_parallel_mode","u"=>8,"t"=>2]]],"slave_parallel_threads"=>["d"=>true,"t"=>3,"a"=>[["a"=>"slave_parallel_threads","u"=>8,"t"=>2]]],"slave_parallel_workers"=>["d"=>true,"t"=>3,"a"=>[["a"=>"slave_parallel_workers","u"=>8,"t"=>2],["a"=>"sysvar_slave_parallel_workers","u"=>24,"t"=>1]]],"slave_run_triggers_for_rbr"=>["a"=>[["a"=>"slave_run_triggers_for_rbr","u"=>8,"t"=>2]]],"slave_skip_errors"=>["d"=>false,"t"=>1,"a"=>[["a"=>"slave_skip_errors","u"=>8,"t"=>2],["a"=>"option_mysqld_slave-skip-errors","u"=>24,"t"=>1],["a"=>"sysvar_slave_skip_errors","u"=>24,"t"=>1]]],"slave_sql_verify_checksum"=>["d"=>true,"t"=>2,"a"=>[["a"=>"slave_sql_verify_checksum","u"=>8,"t"=>2],["a"=>"option_mysqld_slave-sql-verify-checksum","u"=>24,"t"=>1],["a"=>"sysvar_slave_sql_verify_checksum","u"=>24,"t"=>1]]],"slave_transaction_retries"=>["d"=>true,"t"=>3,"a"=>[["a"=>"slave_transaction_retries","u"=>8,"t"=>2],["a"=>"sysvar_slave_transaction_retries","u"=>24,"t"=>1]]],"slave_transaction_retry_errors"=>["d"=>false,"t"=>1,"a"=>[["a"=>"slave_transaction_retry_errors","u"=>8,"t"=>2]]],"slave_transaction_retry_interval"=>["d"=>true,"t"=>3,"a"=>[["a"=>"slave_transaction_retry_interval","u"=>8,"t"=>2]]],"slave_type_conversions"=>["t"=>6,"a"=>[["a"=>"slave_type_conversions","u"=>8,"t"=>2],["a"=>"sysvar_slave_type_conversions","u"=>24,"t"=>1]]],"sql_log_bin"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sql_log_bin","u"=>8,"t"=>2],["a"=>"sysvar_sql_log_bin","u"=>22,"t"=>1],["a"=>"sysvar_sql_log_bin","u"=>23,"t"=>1]]],"sql_slave_skip_counter"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sql_slave_skip_counter","u"=>8,"t"=>2],["a"=>"sysvar_sql_slave_skip_counter","u"=>24,"t"=>1]]],"sync_binlog"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sync_binlog","u"=>8,"t"=>2],["a"=>"sysvar_sync_binlog","u"=>22,"t"=>1],["a"=>"sysvar_sync_binlog","u"=>23,"t"=>1]]],"sync_master_info"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sync_master_info","u"=>8,"t"=>2],["a"=>"sysvar_sync_master_info","u"=>24,"t"=>1]]],"sync_relay_log"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sync_relay_log","u"=>8,"t"=>2],["a"=>"sysvar_sync_relay_log","u"=>24,"t"=>1]]],"sync_relay_log_info"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sync_relay_log_info","u"=>8,"t"=>2],["a"=>"sysvar_sync_relay_log_info","u"=>24,"t"=>1]]],"Binlog_bytes_written"=>["t"=>3,"a"=>[["a"=>"binlog_bytes_written","u"=>25,"t"=>2]]],"Binlog_cache_disk_use"=>["t"=>3,"a"=>[["a"=>"binlog_cache_disk_use","u"=>25,"t"=>2]]],"Binlog_cache_use"=>["t"=>3,"a"=>[["a"=>"binlog_cache_use","u"=>25,"t"=>2]]],"Binlog_commits"=>["t"=>3,"a"=>[["a"=>"binlog_commits","u"=>25,"t"=>2]]],"Binlog_group_commit_trigger_count"=>["t"=>3,"a"=>[["a"=>"binlog_group_commit_trigger_count","u"=>25,"t"=>2]]],"Binlog_group_commit_trigger_lock_wait"=>["t"=>3,"a"=>[["a"=>"binlog_group_commit_trigger_lock_wait","u"=>25,"t"=>2]]],"Binlog_group_commit_trigger_timeout"=>["t"=>3,"a"=>[["a"=>"binlog_group_commit_trigger_timeout","u"=>25,"t"=>2]]],"Binlog_group_commits"=>["t"=>3,"a"=>[["a"=>"binlog_group_commits","u"=>25,"t"=>2]]],"Binlog_snapshot_file"=>["t"=>1,"a"=>[["a"=>"binlog_snapshot_file","u"=>25,"t"=>2]]],"Binlog_snapshot_position"=>["t"=>3,"a"=>[["a"=>"binlog_snapshot_position","u"=>25,"t"=>2]]],"Binlog_stmt_cache_disk_use"=>["t"=>3,"a"=>[["a"=>"binlog_stmt_cache_disk_use","u"=>25,"t"=>2]]],"Binlog_stmt_cache_use"=>["t"=>3,"a"=>[["a"=>"binlog_stmt_cache_use","u"=>25,"t"=>2]]],"Com_change_master"=>["t"=>3,"a"=>[["a"=>"com_change_master","u"=>25,"t"=>2]]],"Com_show_master_status"=>["t"=>3,"a"=>[["a"=>"com_show_master_status","u"=>25,"t"=>2]]],"Com_show_new_master"=>["t"=>3,"a"=>[["a"=>"com_show_new_master","u"=>25,"t"=>2]]],"Com_show_slave_hosts"=>["t"=>3,"a"=>[["a"=>"com_show_slave_hosts","u"=>25,"t"=>2]]],"Com_show_slave_status"=>["t"=>3,"a"=>[["a"=>"com_show_slave_status","u"=>25,"t"=>2]]],"Com_slave_start"=>["t"=>3,"a"=>[["a"=>"com_slave_start","u"=>25,"t"=>2]]],"Com_slave_stop"=>["t"=>3,"a"=>[["a"=>"com_slave_stop","u"=>25,"t"=>2]]],"Com_start_all_slaves"=>["t"=>3,"a"=>[["a"=>"com_start_all_slaves","u"=>25,"t"=>2]]],"Com_start_slave"=>["t"=>3,"a"=>[["a"=>"com_start_slave","u"=>25,"t"=>2]]],"Com_stop_all_slaves"=>["t"=>3,"a"=>[["a"=>"com_stop_all_slaves","u"=>25,"t"=>2]]],"Com_stop_slave"=>["t"=>3,"a"=>[["a"=>"com_stop_slave","u"=>25,"t"=>2]]],"Master_gtid_wait_count"=>["t"=>3,"a"=>[["a"=>"master_gtid_wait_count","u"=>25,"t"=>2]]],"Master_gtid_wait_time"=>["t"=>3,"a"=>[["a"=>"master_gtid_wait_time","u"=>25,"t"=>2]]],"Master_gtid_wait_timeouts"=>["t"=>3,"a"=>[["a"=>"master_gtid_wait_timeouts","u"=>25,"t"=>2]]],"Rpl_status"=>["a"=>[["a"=>"rpl_status","u"=>25,"t"=>2]]],"Rpl_transactions_multi_engine"=>["t"=>3,"a"=>[["a"=>"rpl_transactions_multi_engine","u"=>25,"t"=>2]]],"Slave_connections"=>["t"=>3,"a"=>[["a"=>"slave_connections","u"=>25,"t"=>2]]],"Slave_heartbeat_period"=>["t"=>3,"a"=>[["a"=>"slave_heartbeat_period","u"=>25,"t"=>2]]],"Slave_open_temp_tables"=>["t"=>3,"a"=>[["a"=>"slave_open_temp_tables","u"=>25,"t"=>2]]],"Slave_received_heartbeats"=>["t"=>3,"a"=>[["a"=>"slave_received_heartbeats","u"=>25,"t"=>2]]],"Slave_retried_transactions"=>["t"=>3,"a"=>[["a"=>"slave_retried_transactions","u"=>25,"t"=>2]]],"Slave_running"=>["t"=>3,"a"=>[["a"=>"slave_running","u"=>25,"t"=>2]]],"Slave_skipped_errors"=>["t"=>3,"a"=>[["a"=>"slave_skipped_errors","u"=>25,"t"=>2]]],"Slaves_connected"=>["t"=>3,"a"=>[["a"=>"slaves_connected","u"=>25,"t"=>2]]],"Slaves_running"=>["t"=>3,"a"=>[["a"=>"slaves_running","u"=>25,"t"=>2]]],"Transactions_gtid_foreign_engine"=>["t"=>3,"a"=>[["a"=>"transactions_gtid_foreign_engine","u"=>25,"t"=>2]]],"Transactions_multi_engine"=>["t"=>3,"a"=>[["a"=>"transactions_multi_engine","u"=>25,"t"=>2]]],"Rpl_semi_sync_master_clients"=>["t"=>3,"a"=>[["a"=>"rpl_semi_sync_master_clients","u"=>26,"t"=>2]]],"Rpl_semi_sync_master_net_avg_wait_time"=>["t"=>3,"a"=>[["a"=>"rpl_semi_sync_master_net_avg_wait_time","u"=>26,"t"=>2]]],"Rpl_semi_sync_master_net_wait_time"=>["t"=>3,"a"=>[["a"=>"rpl_semi_sync_master_net_wait_time","u"=>26,"t"=>2]]],"Rpl_semi_sync_master_net_waits"=>["t"=>3,"a"=>[["a"=>"rpl_semi_sync_master_net_waits","u"=>26,"t"=>2]]],"Rpl_semi_sync_master_no_times"=>["t"=>3,"a"=>[["a"=>"rpl_semi_sync_master_no_times","u"=>26,"t"=>2]]],"Rpl_semi_sync_master_no_tx"=>["t"=>3,"a"=>[["a"=>"rpl_semi_sync_master_no_tx","u"=>26,"t"=>2]]],"Rpl_semi_sync_master_status"=>["t"=>2,"a"=>[["a"=>"rpl_semi_sync_master_status","u"=>26,"t"=>2]]],"Rpl_semi_sync_master_timefunc_failures"=>["t"=>3,"a"=>[["a"=>"rpl_semi_sync_master_timefunc_failures","u"=>26,"t"=>2]]],"Rpl_semi_sync_master_tx_avg_wait_time"=>["t"=>3,"a"=>[["a"=>"rpl_semi_sync_master_tx_avg_wait_time","u"=>26,"t"=>2]]],"Rpl_semi_sync_master_tx_wait_time"=>["t"=>3,"a"=>[["a"=>"rpl_semi_sync_master_tx_wait_time","u"=>26,"t"=>2]]],"Rpl_semi_sync_master_tx_waits"=>["t"=>3,"a"=>[["a"=>"rpl_semi_sync_master_tx_waits","u"=>26,"t"=>2]]],"Rpl_semi_sync_master_wait_pos_backtraverse"=>["t"=>3,"a"=>[["a"=>"rpl_semi_sync_master_wait_pos_backtraverse","u"=>26,"t"=>2]]],"Rpl_semi_sync_master_wait_sessions"=>["t"=>3,"a"=>[["a"=>"rpl_semi_sync_master_wait_sessions","u"=>26,"t"=>2]]],"Rpl_semi_sync_master_yes_tx"=>["t"=>3,"a"=>[["a"=>"rpl_semi_sync_master_yes_tx","u"=>26,"t"=>2]]],"Rpl_semi_sync_slave_status"=>["t"=>2,"a"=>[["a"=>"rpl_semi_sync_slave_status","u"=>26,"t"=>2]]],"rpl_semi_sync_master_enabled"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rpl_semi_sync_master_enabled","u"=>27,"t"=>2],["a"=>"sysvar_rpl_semi_sync_master_enabled","u"=>21,"t"=>1]]],"rpl_semi_sync_master_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rpl_semi_sync_master_timeout","u"=>27,"t"=>2],["a"=>"sysvar_rpl_semi_sync_master_timeout","u"=>21,"t"=>1]]],"rpl_semi_sync_master_trace_level"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rpl_semi_sync_master_trace_level","u"=>27,"t"=>2],["a"=>"sysvar_rpl_semi_sync_master_trace_level","u"=>21,"t"=>1]]],"rpl_semi_sync_master_wait_no_slave"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rpl_semi_sync_master_wait_no_slave","u"=>27,"t"=>2],["a"=>"sysvar_rpl_semi_sync_master_wait_no_slave","u"=>21,"t"=>1]]],"rpl_semi_sync_master_wait_point"=>["d"=>true,"t"=>5,"a"=>[["a"=>"rpl_semi_sync_master_wait_point","u"=>27,"t"=>2],["a"=>"sysvar_rpl_semi_sync_master_wait_point","u"=>21,"t"=>1]]],"rpl_semi_sync_slave_delay_master"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rpl_semi_sync_slave_delay_master","u"=>27,"t"=>2]]],"rpl_semi_sync_slave_enabled"=>["d"=>true,"t"=>2,"a"=>[["a"=>"rpl_semi_sync_slave_enabled","u"=>27,"t"=>2],["a"=>"sysvar_rpl_semi_sync_slave_enabled","u"=>24,"t"=>1]]],"rpl_semi_sync_slave_kill_conn_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rpl_semi_sync_slave_kill_conn_timeout","u"=>27,"t"=>2]]],"rpl_semi_sync_slave_trace_level"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rpl_semi_sync_slave_trace_level","u"=>27,"t"=>2],["a"=>"sysvar_rpl_semi_sync_slave_trace_level","u"=>24,"t"=>1]]],"rpl_semi_sync_master"=>["a"=>[["a"=>"rpl_semi_sync_master","u"=>27,"t"=>2]]],"rpl_semi_sync_slave"=>["a"=>[["a"=>"rpl_semi_sync_slave","u"=>27,"t"=>2]]],"Aborted_clients"=>["t"=>3,"a"=>[["a"=>"aborted_clients","u"=>28,"t"=>2]]],"Aborted_connects"=>["t"=>3,"a"=>[["a"=>"aborted_connects","u"=>28,"t"=>2]]],"Aborted_connects_preauth"=>["t"=>3,"a"=>[["a"=>"aborted_connects_preauth","u"=>28,"t"=>2]]],"Access_denied_errors"=>["t"=>3,"a"=>[["a"=>"access_denied_errors","u"=>28,"t"=>2]]],"Acl_column_grants"=>["t"=>3,"a"=>[["a"=>"acl_column_grants","u"=>28,"t"=>2]]],"Acl_database_grants"=>["t"=>3,"a"=>[["a"=>"acl_database_grants","u"=>28,"t"=>2]]],"Acl_function_grants"=>["t"=>3,"a"=>[["a"=>"acl_function_grants","u"=>28,"t"=>2]]],"Acl_package_body_grants"=>["t"=>3,"a"=>[["a"=>"acl_package_body_grants","u"=>28,"t"=>2]]],"Acl_package_spec_grants"=>["t"=>3,"a"=>[["a"=>"acl_package_spec_grants","u"=>28,"t"=>2]]],"Acl_procedure_grants"=>["t"=>3,"a"=>[["a"=>"acl_procedure_grants","u"=>28,"t"=>2]]],"Acl_proxy_users"=>["t"=>3,"a"=>[["a"=>"acl_proxy_users","u"=>28,"t"=>2]]],"Acl_role_grants"=>["t"=>3,"a"=>[["a"=>"acl_role_grants","u"=>28,"t"=>2]]],"Acl_roles"=>["t"=>3,"a"=>[["a"=>"acl_roles","u"=>28,"t"=>2]]],"Acl_table_grants"=>["t"=>3,"a"=>[["a"=>"acl_table_grants","u"=>28,"t"=>2]]],"Acl_users"=>["t"=>3,"a"=>[["a"=>"acl_users","u"=>28,"t"=>2]]],"Busy_time"=>["t"=>3,"a"=>[["a"=>"busy_time","u"=>28,"t"=>2]]],"Bytes_received"=>["t"=>3,"a"=>[["a"=>"bytes_received","u"=>28,"t"=>2]]],"Bytes_sent"=>["t"=>3,"a"=>[["a"=>"bytes_sent","u"=>28,"t"=>2]]],"Com_admin_commands"=>["t"=>3,"a"=>[["a"=>"com_admin_commands","u"=>28,"t"=>2]]],"Com_alter_db"=>["t"=>3,"a"=>[["a"=>"com_alter_db","u"=>28,"t"=>2]]],"Com_alter_db_upgrade"=>["t"=>3,"a"=>[["a"=>"com_alter_db_upgrade","u"=>28,"t"=>2]]],"Com_alter_event"=>["t"=>3,"a"=>[["a"=>"com_alter_event","u"=>28,"t"=>2]]],"Com_alter_function"=>["t"=>3,"a"=>[["a"=>"com_alter_function","u"=>28,"t"=>2]]],"Com_alter_procedure"=>["t"=>3,"a"=>[["a"=>"com_alter_procedure","u"=>28,"t"=>2]]],"Com_alter_sequence"=>["t"=>3,"a"=>[["a"=>"com_alter_sequence","u"=>28,"t"=>2]]],"Com_alter_server"=>["t"=>3,"a"=>[["a"=>"com_alter_server","u"=>28,"t"=>2]]],"Com_alter_table"=>["t"=>3,"a"=>[["a"=>"com_alter_table","u"=>28,"t"=>2]]],"Com_alter_tablespace"=>["t"=>3,"a"=>[["a"=>"com_alter_tablespace","u"=>28,"t"=>2]]],"Com_alter_user"=>["t"=>3,"a"=>[["a"=>"com_alter_user","u"=>28,"t"=>2]]],"Com_analyze"=>["t"=>3,"a"=>[["a"=>"com_analyze","u"=>28,"t"=>2]]],"Com_assign_to_keycache"=>["t"=>3,"a"=>[["a"=>"com_assign_to_keycache","u"=>28,"t"=>2]]],"Com_backup"=>["t"=>3,"a"=>[["a"=>"com_backup","u"=>28,"t"=>2]]],"Com_backup_lock"=>["t"=>3,"a"=>[["a"=>"com_backup_lock","u"=>28,"t"=>2]]],"Com_backup_table"=>["t"=>3,"a"=>[["a"=>"com_backup_table","u"=>28,"t"=>2]]],"Com_begin"=>["t"=>3,"a"=>[["a"=>"com_begin","u"=>28,"t"=>2]]],"Com_binlog"=>["t"=>3,"a"=>[["a"=>"com_binlog","u"=>28,"t"=>2]]],"Com_call_procedure"=>["t"=>3,"a"=>[["a"=>"com_call_procedure","u"=>28,"t"=>2]]],"Com_change_db"=>["t"=>3,"a"=>[["a"=>"com_change_db","u"=>28,"t"=>2]]],"Com_check"=>["t"=>3,"a"=>[["a"=>"com_check","u"=>28,"t"=>2]]],"Com_checksum"=>["t"=>3,"a"=>[["a"=>"com_checksum","u"=>28,"t"=>2]]],"Com_commit"=>["t"=>3,"a"=>[["a"=>"com_commit","u"=>28,"t"=>2]]],"Com_compound_sql"=>["t"=>3,"a"=>[["a"=>"com_compound_sql","u"=>28,"t"=>2]]],"Com_create_db"=>["t"=>3,"a"=>[["a"=>"com_create_db","u"=>28,"t"=>2]]],"Com_create_event"=>["t"=>3,"a"=>[["a"=>"com_create_event","u"=>28,"t"=>2]]],"Com_create_function"=>["t"=>3,"a"=>[["a"=>"com_create_function","u"=>28,"t"=>2]]],"Com_create_index"=>["t"=>3,"a"=>[["a"=>"com_create_index","u"=>28,"t"=>2]]],"Com_create_package"=>["t"=>3,"a"=>[["a"=>"com_create_package","u"=>28,"t"=>2]]],"Com_create_package_body"=>["t"=>3,"a"=>[["a"=>"com_create_package_body","u"=>28,"t"=>2]]],"Com_create_procedure"=>["t"=>3,"a"=>[["a"=>"com_create_procedure","u"=>28,"t"=>2]]],"Com_create_role"=>["t"=>3,"a"=>[["a"=>"com_create_role","u"=>28,"t"=>2]]],"Com_create_sequence"=>["t"=>3,"a"=>[["a"=>"com_create_sequence","u"=>28,"t"=>2]]],"Com_create_server"=>["t"=>3,"a"=>[["a"=>"com_create_server","u"=>28,"t"=>2]]],"Com_create_table"=>["t"=>3,"a"=>[["a"=>"com_create_table","u"=>28,"t"=>2]]],"Com_create_temporary_table"=>["t"=>3,"a"=>[["a"=>"com_create_temporary_table","u"=>28,"t"=>2]]],"Com_create_trigger"=>["t"=>3,"a"=>[["a"=>"com_create_trigger","u"=>28,"t"=>2]]],"Com_create_udf"=>["t"=>3,"a"=>[["a"=>"com_create_udf","u"=>28,"t"=>2]]],"Com_create_user"=>["t"=>3,"a"=>[["a"=>"com_create_user","u"=>28,"t"=>2]]],"Com_create_view"=>["t"=>3,"a"=>[["a"=>"com_create_view","u"=>28,"t"=>2]]],"Com_dealloc_sql"=>["t"=>3,"a"=>[["a"=>"com_dealloc_sql","u"=>28,"t"=>2]]],"Com_delete"=>["t"=>3,"a"=>[["a"=>"com_delete","u"=>28,"t"=>2]]],"Com_delete_multi"=>["t"=>3,"a"=>[["a"=>"com_delete_multi","u"=>28,"t"=>2]]],"Com_do"=>["t"=>3,"a"=>[["a"=>"com_do","u"=>28,"t"=>2]]],"Com_drop_db"=>["t"=>3,"a"=>[["a"=>"com_drop_db","u"=>28,"t"=>2]]],"Com_drop_event"=>["t"=>3,"a"=>[["a"=>"com_drop_event","u"=>28,"t"=>2]]],"Com_drop_function"=>["t"=>3,"a"=>[["a"=>"com_drop_function","u"=>28,"t"=>2]]],"Com_drop_index"=>["t"=>3,"a"=>[["a"=>"com_drop_index","u"=>28,"t"=>2]]],"Com_drop_package"=>["t"=>3,"a"=>[["a"=>"com_drop_package","u"=>28,"t"=>2]]],"Com_drop_package_body"=>["t"=>3,"a"=>[["a"=>"com_drop_package_body","u"=>28,"t"=>2]]],"Com_drop_procedure"=>["t"=>3,"a"=>[["a"=>"com_drop_procedure","u"=>28,"t"=>2]]],"Com_drop_role"=>["t"=>3,"a"=>[["a"=>"com_drop_role","u"=>28,"t"=>2]]],"Com_drop_sequence"=>["t"=>3,"a"=>[["a"=>"com_drop_sequence","u"=>28,"t"=>2]]],"Com_drop_server"=>["t"=>3,"a"=>[["a"=>"com_drop_server","u"=>28,"t"=>2]]],"Com_drop_table"=>["t"=>3,"a"=>[["a"=>"com_drop_table","u"=>28,"t"=>2]]],"Com_drop_temporary_table"=>["t"=>3,"a"=>[["a"=>"com_drop_temporary_table","u"=>28,"t"=>2]]],"Com_drop_trigger"=>["t"=>3,"a"=>[["a"=>"com_drop_trigger","u"=>28,"t"=>2]]],"Com_drop_user"=>["t"=>3,"a"=>[["a"=>"com_drop_user","u"=>28,"t"=>2]]],"Com_drop_view"=>["t"=>3,"a"=>[["a"=>"com_drop_view","u"=>28,"t"=>2]]],"Com_empty_query"=>["t"=>3,"a"=>[["a"=>"com_empty_query","u"=>28,"t"=>2]]],"Com_execute_immediate"=>["t"=>3,"a"=>[["a"=>"com_execute_immediate","u"=>28,"t"=>2]]],"Com_execute_sql"=>["t"=>3,"a"=>[["a"=>"com_execute_sql","u"=>28,"t"=>2]]],"Com_flush"=>["t"=>3,"a"=>[["a"=>"com_flush","u"=>28,"t"=>2]]],"Com_get_diagnostics"=>["t"=>3,"a"=>[["a"=>"com_get_diagnostics","u"=>28,"t"=>2]]],"Com_grant"=>["t"=>3,"a"=>[["a"=>"com_grant","u"=>28,"t"=>2]]],"Com_grant_role"=>["t"=>3,"a"=>[["a"=>"com_grant_role","u"=>28,"t"=>2]]],"Com_ha_close"=>["t"=>3,"a"=>[["a"=>"com_ha_close","u"=>28,"t"=>2]]],"Com_ha_open"=>["t"=>3,"a"=>[["a"=>"com_ha_open","u"=>28,"t"=>2]]],"Com_ha_read"=>["t"=>3,"a"=>[["a"=>"com_ha_read","u"=>28,"t"=>2]]],"Com_help"=>["t"=>3,"a"=>[["a"=>"com_help","u"=>28,"t"=>2]]],"Com_insert"=>["t"=>3,"a"=>[["a"=>"com_insert","u"=>28,"t"=>2]]],"Com_insert_select"=>["t"=>3,"a"=>[["a"=>"com_insert_select","u"=>28,"t"=>2]]],"Com_install_plugin"=>["t"=>3,"a"=>[["a"=>"com_install_plugin","u"=>28,"t"=>2]]],"Com_kill"=>["t"=>3,"a"=>[["a"=>"com_kill","u"=>28,"t"=>2]]],"Com_load"=>["t"=>3,"a"=>[["a"=>"com_load","u"=>28,"t"=>2]]],"Com_load_master_data"=>["t"=>3,"a"=>[["a"=>"com_load_master_data","u"=>28,"t"=>2]]],"Com_load_master_table"=>["t"=>3,"a"=>[["a"=>"com_load_master_table","u"=>28,"t"=>2]]],"Com_multi"=>["t"=>3,"a"=>[["a"=>"com_multi","u"=>28,"t"=>2]]],"Com_lock_tables"=>["t"=>3,"a"=>[["a"=>"com_lock_tables","u"=>28,"t"=>2]]],"Com_optimize"=>["t"=>3,"a"=>[["a"=>"com_optimize","u"=>28,"t"=>2]]],"Com_preload_keys"=>["t"=>3,"a"=>[["a"=>"com_preload_keys","u"=>28,"t"=>2]]],"Com_prepare_sql"=>["t"=>3,"a"=>[["a"=>"com_prepare_sql","u"=>28,"t"=>2]]],"Com_purge"=>["t"=>3,"a"=>[["a"=>"com_purge","u"=>28,"t"=>2]]],"Com_purge_before_date"=>["t"=>3,"a"=>[["a"=>"com_purge_before_date","u"=>28,"t"=>2]]],"Com_release_savepoint"=>["t"=>3,"a"=>[["a"=>"com_release_savepoint","u"=>28,"t"=>2]]],"Com_rename_table"=>["t"=>3,"a"=>[["a"=>"com_rename_table","u"=>28,"t"=>2]]],"Com_rename_user"=>["t"=>3,"a"=>[["a"=>"com_rename_user","u"=>28,"t"=>2]]],"Com_repair"=>["t"=>3,"a"=>[["a"=>"com_repair","u"=>28,"t"=>2]]],"Com_replace"=>["t"=>3,"a"=>[["a"=>"com_replace","u"=>28,"t"=>2]]],"Com_replace_select"=>["t"=>3,"a"=>[["a"=>"com_replace_select","u"=>28,"t"=>2]]],"Com_reset"=>["t"=>3,"a"=>[["a"=>"com_reset","u"=>28,"t"=>2]]],"Com_resignal"=>["t"=>3,"a"=>[["a"=>"com_resignal","u"=>28,"t"=>2]]],"Com_restore_table"=>["t"=>3,"a"=>[["a"=>"com_restore_table","u"=>28,"t"=>2]]],"Com_revoke"=>["t"=>3,"a"=>[["a"=>"com_revoke","u"=>28,"t"=>2]]],"Com_revoke_all"=>["t"=>3,"a"=>[["a"=>"com_revoke_all","u"=>28,"t"=>2]]],"Com_revoke_grant"=>["t"=>3,"a"=>[["a"=>"com_revoke_grant","u"=>28,"t"=>2]]],"Com_rollback"=>["t"=>3,"a"=>[["a"=>"com_rollback","u"=>28,"t"=>2]]],"Com_rollback_to_savepoint"=>["t"=>3,"a"=>[["a"=>"com_rollback_to_savepoint","u"=>28,"t"=>2]]],"Com_savepoint"=>["t"=>3,"a"=>[["a"=>"com_savepoint","u"=>28,"t"=>2]]],"Com_select"=>["t"=>3,"a"=>[["a"=>"com_select","u"=>28,"t"=>2]]],"Com_set_option"=>["t"=>3,"a"=>[["a"=>"com_set_option","u"=>28,"t"=>2]]],"Com_signal"=>["t"=>3,"a"=>[["a"=>"com_signal","u"=>28,"t"=>2]]],"Com_show_authors"=>["t"=>3,"a"=>[["a"=>"com_show_authors","u"=>28,"t"=>2]]],"Com_show_binlog_events"=>["t"=>3,"a"=>[["a"=>"com_show_binlog_events","u"=>28,"t"=>2]]],"Com_show_binlogs"=>["t"=>3,"a"=>[["a"=>"com_show_binlogs","u"=>28,"t"=>2]]],"Com_show_charsets"=>["t"=>3,"a"=>[["a"=>"com_show_charsets","u"=>28,"t"=>2]]],"Com_show_client_statistics"=>["t"=>3,"a"=>[["a"=>"com_show_client_statistics","u"=>28,"t"=>2]]],"Com_show_collations"=>["t"=>3,"a"=>[["a"=>"com_show_collations","u"=>28,"t"=>2]]],"Com_show_column_types"=>["t"=>3,"a"=>[["a"=>"com_show_column_types","u"=>28,"t"=>2]]],"Com_show_contributors"=>["t"=>3,"a"=>[["a"=>"com_show_contributors","u"=>28,"t"=>2]]],"Com_show_create_db"=>["t"=>3,"a"=>[["a"=>"com_show_create_db","u"=>28,"t"=>2]]],"Com_show_create_event"=>["t"=>3,"a"=>[["a"=>"com_show_create_event","u"=>28,"t"=>2]]],"Com_show_create_func"=>["t"=>3,"a"=>[["a"=>"com_show_create_func","u"=>28,"t"=>2]]],"Com_show_create_package"=>["t"=>3,"a"=>[["a"=>"com_show_create_package","u"=>28,"t"=>2]]],"Com_show_create_package_body"=>["t"=>3,"a"=>[["a"=>"com_show_create_package_body","u"=>28,"t"=>2]]],"Com_show_create_proc"=>["t"=>3,"a"=>[["a"=>"com_show_create_proc","u"=>28,"t"=>2]]],"Com_show_create_table"=>["t"=>3,"a"=>[["a"=>"com_show_create_table","u"=>28,"t"=>2]]],"Com_show_create_trigger"=>["t"=>3,"a"=>[["a"=>"com_show_create_trigger","u"=>28,"t"=>2]]],"Com_show_create_user"=>["t"=>3,"a"=>[["a"=>"com_show_create_user","u"=>28,"t"=>2]]],"Com_show_databases"=>["t"=>3,"a"=>[["a"=>"com_show_databases","u"=>28,"t"=>2]]],"Com_show_engine_logs"=>["t"=>3,"a"=>[["a"=>"com_show_engine_logs","u"=>28,"t"=>2]]],"Com_show_engine_mutex"=>["t"=>3,"a"=>[["a"=>"com_show_engine_mutex","u"=>28,"t"=>2]]],"Com_show_engine_status"=>["t"=>3,"a"=>[["a"=>"com_show_engine_status","u"=>28,"t"=>2]]],"Com_show_events"=>["t"=>3,"a"=>[["a"=>"com_show_events","u"=>28,"t"=>2]]],"Com_show_errors"=>["t"=>3,"a"=>[["a"=>"com_show_errors","u"=>28,"t"=>2]]],"Com_show_explain"=>["t"=>3,"a"=>[["a"=>"com_show_explain","u"=>28,"t"=>2]]],"Com_show_fields"=>["t"=>3,"a"=>[["a"=>"com_show_fields","u"=>28,"t"=>2]]],"Com_show_function_status"=>["t"=>3,"a"=>[["a"=>"com_show_function_status","u"=>28,"t"=>2]]],"Com_show_generic"=>["t"=>3,"a"=>[["a"=>"com_show_generic","u"=>28,"t"=>2]]],"Com_show_grants"=>["t"=>3,"a"=>[["a"=>"com_show_grants","u"=>28,"t"=>2]]],"Com_show_keys"=>["t"=>3,"a"=>[["a"=>"com_show_keys","u"=>28,"t"=>2]]],"Com_show_index_statistics"=>["t"=>3,"a"=>[["a"=>"com_show_index_statistics","u"=>28,"t"=>2]]],"Com_show_open_tables"=>["t"=>3,"a"=>[["a"=>"com_show_open_tables","u"=>28,"t"=>2]]],"Com_show_package_status"=>["t"=>3,"a"=>[["a"=>"com_show_package_status","u"=>28,"t"=>2]]],"Com_show_package_body_status"=>["t"=>3,"a"=>[["a"=>"com_show_package_body_status","u"=>28,"t"=>2]]],"Com_show_plugins"=>["t"=>3,"a"=>[["a"=>"com_show_plugins","u"=>28,"t"=>2]]],"Com_show_privileges"=>["t"=>3,"a"=>[["a"=>"com_show_privileges","u"=>28,"t"=>2]]],"Com_show_procedure_status"=>["t"=>3,"a"=>[["a"=>"com_show_procedure_status","u"=>28,"t"=>2]]],"Com_show_processlist"=>["t"=>3,"a"=>[["a"=>"com_show_processlist","u"=>28,"t"=>2]]],"Com_show_profile"=>["t"=>3,"a"=>[["a"=>"com_show_profile","u"=>28,"t"=>2]]],"Com_show_profiles"=>["t"=>3,"a"=>[["a"=>"com_show_profiles","u"=>28,"t"=>2]]],"Com_show_relaylog_events"=>["t"=>3,"a"=>[["a"=>"com_show_relaylog_events","u"=>28,"t"=>2]]],"Com_show_status"=>["t"=>3,"a"=>[["a"=>"com_show_status","u"=>28,"t"=>2]]],"Com_show_storage_engines"=>["t"=>3,"a"=>[["a"=>"com_show_storage_engines","u"=>28,"t"=>2]]],"Com_show_table_statistics"=>["t"=>3,"a"=>[["a"=>"com_show_table_statistics","u"=>28,"t"=>2]]],"Com_show_table_status"=>["t"=>3,"a"=>[["a"=>"com_show_table_status","u"=>28,"t"=>2]]],"Com_show_tables"=>["t"=>3,"a"=>[["a"=>"com_show_tables","u"=>28,"t"=>2]]],"Com_show_triggers"=>["t"=>3,"a"=>[["a"=>"com_show_triggers","u"=>28,"t"=>2]]],"Com_show_user_statistics"=>["t"=>3,"a"=>[["a"=>"com_show_user_statistics","u"=>28,"t"=>2]]],"Com_show_variable"=>["t"=>3,"a"=>[["a"=>"com_show_variable","u"=>28,"t"=>2]]],"Com_show_warnings"=>["t"=>3,"a"=>[["a"=>"com_show_warnings","u"=>28,"t"=>2]]],"Com_shutdown"=>["t"=>3,"a"=>[["a"=>"com_shutdown","u"=>28,"t"=>2]]],"Com_stmt_close"=>["t"=>3,"a"=>[["a"=>"com_stmt_close","u"=>28,"t"=>2]]],"Com_stmt_execute"=>["t"=>3,"a"=>[["a"=>"com_stmt_execute","u"=>28,"t"=>2]]],"Com_stmt_fetch"=>["t"=>3,"a"=>[["a"=>"com_stmt_fetch","u"=>28,"t"=>2]]],"Com_stmt_prepare"=>["t"=>3,"a"=>[["a"=>"com_stmt_prepare","u"=>28,"t"=>2]]],"Com_stmt_reprepare"=>["t"=>3,"a"=>[["a"=>"com_stmt_reprepare","u"=>28,"t"=>2]]],"Com_stmt_reset"=>["t"=>3,"a"=>[["a"=>"com_stmt_reset","u"=>28,"t"=>2]]],"Com_stmt_send_long_data"=>["t"=>3,"a"=>[["a"=>"com_stmt_send_long_data","u"=>28,"t"=>2]]],"Com_truncate"=>["t"=>3,"a"=>[["a"=>"com_truncate","u"=>28,"t"=>2]]],"Com_uninstall_plugin"=>["t"=>3,"a"=>[["a"=>"com_uninstall_plugin","u"=>28,"t"=>2]]],"Com_unlock_tables"=>["t"=>3,"a"=>[["a"=>"com_unlock_tables","u"=>28,"t"=>2]]],"Com_update"=>["t"=>3,"a"=>[["a"=>"com_update","u"=>28,"t"=>2]]],"Com_update_multi"=>["t"=>3,"a"=>[["a"=>"com_update_multi","u"=>28,"t"=>2]]],"Com_xa_commit"=>["t"=>3,"a"=>[["a"=>"com_xa_commit","u"=>28,"t"=>2]]],"Com_xa_end"=>["t"=>3,"a"=>[["a"=>"com_xa_end","u"=>28,"t"=>2]]],"Com_xa_prepare"=>["t"=>3,"a"=>[["a"=>"com_xa_prepare","u"=>28,"t"=>2]]],"Com_xa_recover"=>["t"=>3,"a"=>[["a"=>"com_xa_recover","u"=>28,"t"=>2]]],"Com_xa_rollback"=>["t"=>3,"a"=>[["a"=>"com_xa_rollback","u"=>28,"t"=>2]]],"Com_xa_start"=>["t"=>3,"a"=>[["a"=>"com_xa_start","u"=>28,"t"=>2]]],"Compression"=>["t"=>2,"a"=>[["a"=>"compression","u"=>28,"t"=>2]]],"Connection_errors_accept"=>["t"=>3,"a"=>[["a"=>"connection_errors_accept","u"=>28,"t"=>2]]],"Connection_errors_internal"=>["t"=>3,"a"=>[["a"=>"connection_errors_internal","u"=>28,"t"=>2]]],"Connection_errors_max_connections"=>["t"=>3,"a"=>[["a"=>"connection_errors_max_connections","u"=>28,"t"=>2]]],"Connection_errors_peer_address"=>["t"=>3,"a"=>[["a"=>"connection_errors_peer_address","u"=>28,"t"=>2]]],"Connection_errors_select"=>["t"=>3,"a"=>[["a"=>"connection_errors_select","u"=>28,"t"=>2]]],"Connection_errors_tcpwrap"=>["t"=>3,"a"=>[["a"=>"connection_errors_tcpwrap","u"=>28,"t"=>2]]],"Connections"=>["t"=>3,"a"=>[["a"=>"connections","u"=>28,"t"=>2]]],"Cpu_time"=>["t"=>3,"a"=>[["a"=>"cpu_time","u"=>28,"t"=>2]]],"Created_tmp_disk_tables"=>["t"=>3,"a"=>[["a"=>"created_tmp_disk_tables","u"=>28,"t"=>2]]],"Created_tmp_files"=>["t"=>3,"a"=>[["a"=>"created_tmp_files","u"=>28,"t"=>2]]],"Created_tmp_tables"=>["t"=>3,"a"=>[["a"=>"created_tmp_tables","u"=>28,"t"=>2]]],"Delayed_errors"=>["t"=>3,"a"=>[["a"=>"delayed_errors","u"=>28,"t"=>2]]],"Delayed_insert_threads"=>["t"=>3,"a"=>[["a"=>"delayed_insert_threads","u"=>28,"t"=>2]]],"Delayed_writes"=>["t"=>3,"a"=>[["a"=>"delayed_writes","u"=>28,"t"=>2]]],"Delete_scan"=>["t"=>3,"a"=>[["a"=>"delete_scan","u"=>28,"t"=>2]]],"Empty_queries"=>["t"=>3,"a"=>[["a"=>"empty_queries","u"=>28,"t"=>2]]],"Executed_events"=>["t"=>3,"a"=>[["a"=>"executed_events","u"=>28,"t"=>2]]],"Executed_triggers"=>["t"=>3,"a"=>[["a"=>"executed_triggers","u"=>28,"t"=>2]]],"Feature_application_time_periods"=>["t"=>3,"a"=>[["a"=>"feature_application_time_periods","u"=>28,"t"=>2]]],"Feature_check_constraint"=>["t"=>3,"a"=>[["a"=>"feature_check_constraint","u"=>28,"t"=>2]]],"Feature_custom_aggregate_functions"=>["t"=>3,"a"=>[["a"=>"feature_custom_aggregate_functions","u"=>28,"t"=>2]]],"Feature_delay_key_write"=>["t"=>3,"a"=>[["a"=>"feature_delay_key_write","u"=>28,"t"=>2]]],"Feature_dynamic_columns"=>["t"=>3,"a"=>[["a"=>"feature_dynamic_columns","u"=>28,"t"=>2]]],"Feature_fulltext"=>["t"=>3,"a"=>[["a"=>"feature_fulltext","u"=>28,"t"=>2]]],"Feature_gis"=>["t"=>3,"a"=>[["a"=>"feature_gis","u"=>28,"t"=>2]]],"Feature_invisible_columns"=>["t"=>3,"a"=>[["a"=>"feature_invisible_columns","u"=>28,"t"=>2]]],"Feature_json"=>["t"=>3,"a"=>[["a"=>"feature_json","u"=>28,"t"=>2]]],"Feature_locale"=>["t"=>3,"a"=>[["a"=>"feature_locale","u"=>28,"t"=>2]]],"Feature_subquery"=>["t"=>3,"a"=>[["a"=>"feature_subquery","u"=>28,"t"=>2]]],"Feature_system_versioning"=>["t"=>3,"a"=>[["a"=>"feature_system_versioning","u"=>28,"t"=>2]]],"Feature_timezone"=>["t"=>3,"a"=>[["a"=>"feature_timezone","u"=>28,"t"=>2]]],"Feature_trigger"=>["t"=>3,"a"=>[["a"=>"feature_trigger","u"=>28,"t"=>2]]],"Feature_window_functions"=>["t"=>3,"a"=>[["a"=>"feature_window_functions","u"=>28,"t"=>2]]],"Feature_xml"=>["t"=>3,"a"=>[["a"=>"feature_xml","u"=>28,"t"=>2]]],"Flush_commands"=>["t"=>3,"a"=>[["a"=>"flush_commands","u"=>28,"t"=>2]]],"Handler_commit"=>["t"=>3,"a"=>[["a"=>"handler_commit","u"=>28,"t"=>2]]],"Handler_delete"=>["t"=>3,"a"=>[["a"=>"handler_delete","u"=>28,"t"=>2]]],"Handler_discover"=>["t"=>3,"a"=>[["a"=>"handler_discover","u"=>28,"t"=>2]]],"Handler_external_lock"=>["t"=>3,"a"=>[["a"=>"handler_external_lock","u"=>28,"t"=>2]]],"Handler_icp_attempts"=>["t"=>3,"a"=>[["a"=>"handler_icp_attempts","u"=>28,"t"=>2]]],"Handler_icp_match"=>["t"=>3,"a"=>[["a"=>"handler_icp_match","u"=>28,"t"=>2]]],"Handler_mrr_init"=>["t"=>3,"a"=>[["a"=>"handler_mrr_init","u"=>28,"t"=>2]]],"Handler_mrr_key_refills"=>["t"=>3,"a"=>[["a"=>"handler_mrr_key_refills","u"=>28,"t"=>2]]],"Handler_mrr_rowid_refills"=>["t"=>3,"a"=>[["a"=>"handler_mrr_rowid_refills","u"=>28,"t"=>2]]],"Handler_prepare"=>["t"=>3,"a"=>[["a"=>"handler_prepare","u"=>28,"t"=>2]]],"Handler_read_first"=>["t"=>3,"a"=>[["a"=>"handler_read_first","u"=>28,"t"=>2]]],"Handler_read_key"=>["t"=>3,"a"=>[["a"=>"handler_read_key","u"=>28,"t"=>2]]],"Handler_read_last"=>["t"=>3,"a"=>[["a"=>"handler_read_last","u"=>28,"t"=>2]]],"Handler_read_next"=>["t"=>3,"a"=>[["a"=>"handler_read_next","u"=>28,"t"=>2]]],"Handler_read_prev"=>["t"=>3,"a"=>[["a"=>"handler_read_prev","u"=>28,"t"=>2]]],"Handler_read_retry"=>["t"=>3,"a"=>[["a"=>"handler_read_retry","u"=>28,"t"=>2]]],"Handler_read_rnd"=>["t"=>3,"a"=>[["a"=>"handler_read_rnd","u"=>28,"t"=>2]]],"Handler_read_rnd_deleted"=>["t"=>3,"a"=>[["a"=>"handler_read_rnd_deleted","u"=>28,"t"=>2]]],"Handler_read_rnd_next"=>["t"=>3,"a"=>[["a"=>"handler_read_rnd_next","u"=>28,"t"=>2]]],"Handler_rollback"=>["t"=>3,"a"=>[["a"=>"handler_rollback","u"=>28,"t"=>2]]],"Handler_savepoint"=>["t"=>3,"a"=>[["a"=>"handler_savepoint","u"=>28,"t"=>2]]],"Handler_savepoint_rollback"=>["t"=>3,"a"=>[["a"=>"handler_savepoint_rollback","u"=>28,"t"=>2]]],"Handler_tmp_delete"=>["t"=>3,"a"=>[["a"=>"handler_tmp_delete","u"=>28,"t"=>2]]],"Handler_tmp_update"=>["t"=>3,"a"=>[["a"=>"handler_tmp_update","u"=>28,"t"=>2]]],"Handler_tmp_write"=>["t"=>3,"a"=>[["a"=>"handler_tmp_write","u"=>28,"t"=>2]]],"Handler_update"=>["t"=>3,"a"=>[["a"=>"handler_update","u"=>28,"t"=>2]]],"Handler_write"=>["t"=>3,"a"=>[["a"=>"handler_write","u"=>28,"t"=>2]]],"Key_blocks_not_flushed"=>["t"=>3,"a"=>[["a"=>"key_blocks_not_flushed","u"=>28,"t"=>2]]],"Key_blocks_unused"=>["t"=>3,"a"=>[["a"=>"key_blocks_unused","u"=>28,"t"=>2]]],"Key_blocks_used"=>["t"=>3,"a"=>[["a"=>"key_blocks_used","u"=>28,"t"=>2]]],"Key_blocks_warm"=>["t"=>3,"a"=>[["a"=>"key_blocks_warm","u"=>28,"t"=>2]]],"Key_read_requests"=>["t"=>3,"a"=>[["a"=>"key_read_requests","u"=>28,"t"=>2]]],"Key_reads"=>["t"=>3,"a"=>[["a"=>"key_reads","u"=>28,"t"=>2]]],"Key_write_requests"=>["t"=>3,"a"=>[["a"=>"key_write_requests","u"=>28,"t"=>2]]],"Key_writes"=>["t"=>3,"a"=>[["a"=>"key_writes","u"=>28,"t"=>2]]],"Last_query_cost"=>["t"=>3,"a"=>[["a"=>"last_query_cost","u"=>28,"t"=>2]]],"Maria_*"=>["a"=>[["a"=>"maria_","u"=>28,"t"=>2]]],"Max_statement_time_exceeded"=>["t"=>3,"a"=>[["a"=>"max_statement_time_exceeded","u"=>28,"t"=>2]]],"Max_used_connections"=>["t"=>3,"a"=>[["a"=>"max_used_connections","u"=>28,"t"=>2]]],"Memory_used"=>["t"=>3,"a"=>[["a"=>"memory_used","u"=>28,"t"=>2]]],"Memory_used_initial"=>["t"=>3,"a"=>[["a"=>"memory_used_initial","u"=>28,"t"=>2]]],"Not_flushed_delayed_rows"=>["t"=>3,"a"=>[["a"=>"not_flushed_delayed_rows","u"=>28,"t"=>2]]],"Open_files"=>["t"=>3,"a"=>[["a"=>"open_files","u"=>28,"t"=>2]]],"Open_streams"=>["t"=>3,"a"=>[["a"=>"open_streams","u"=>28,"t"=>2]]],"Open_table_definitions"=>["t"=>3,"a"=>[["a"=>"open_table_definitions","u"=>28,"t"=>2]]],"Open_tables"=>["t"=>3,"a"=>[["a"=>"open_tables","u"=>28,"t"=>2]]],"Opened_files"=>["t"=>3,"a"=>[["a"=>"opened_files","u"=>28,"t"=>2]]],"Opened_plugin_libraries"=>["t"=>3,"a"=>[["a"=>"opened_plugin_libraries","u"=>28,"t"=>2]]],"Opened_table_definitions"=>["t"=>3,"a"=>[["a"=>"opened_table_definitions","u"=>28,"t"=>2]]],"Opened_tables"=>["t"=>3,"a"=>[["a"=>"opened_tables","u"=>28,"t"=>2]]],"Opened_views"=>["t"=>3,"a"=>[["a"=>"opened_views","u"=>28,"t"=>2]]],"Performance_schema_accounts_lost"=>["t"=>3,"a"=>[["a"=>"performance_schema_accounts_lost","u"=>28,"t"=>2]]],"Performance_schema_cond_classes_lost"=>["t"=>3,"a"=>[["a"=>"performance_schema_cond_classes_lost","u"=>28,"t"=>2]]],"Performance_schema_cond_instances_lost"=>["t"=>3,"a"=>[["a"=>"performance_schema_cond_instances_lost","u"=>28,"t"=>2]]],"Performance_schema_digest_lost"=>["t"=>3,"a"=>[["a"=>"performance_schema_digest_lost","u"=>28,"t"=>2]]],"Performance_schema_file_classes_lost"=>["t"=>3,"a"=>[["a"=>"performance_schema_file_classes_lost","u"=>28,"t"=>2]]],"Performance_schema_file_handles_lost"=>["t"=>3,"a"=>[["a"=>"performance_schema_file_handles_lost","u"=>28,"t"=>2]]],"Performance_schema_file_instances_lost"=>["t"=>3,"a"=>[["a"=>"performance_schema_file_instances_lost","u"=>28,"t"=>2]]],"Performance_schema_hosts_lost"=>["t"=>3,"a"=>[["a"=>"performance_schema_hosts_lost","u"=>28,"t"=>2]]],"Performance_schema_locker_lost"=>["t"=>3,"a"=>[["a"=>"performance_schema_locker_lost","u"=>28,"t"=>2]]],"Performance_schema_mutex_classes_lost"=>["t"=>3,"a"=>[["a"=>"performance_schema_mutex_classes_lost","u"=>28,"t"=>2]]],"Performance_schema_mutex_instances_lost"=>["t"=>3,"a"=>[["a"=>"performance_schema_mutex_instances_lost","u"=>28,"t"=>2]]],"Performance_schema_rwlock_classes_lost"=>["t"=>3,"a"=>[["a"=>"performance_schema_rwlock_classes_lost","u"=>28,"t"=>2]]],"Performance_schema_rwlock_instances_lost"=>["t"=>3,"a"=>[["a"=>"performance_schema_rwlock_instances_lost","u"=>28,"t"=>2]]],"Performance_schema_session_connect_attrs_lost"=>["t"=>3,"a"=>[["a"=>"performance_schema_session_connect_attrs_lost","u"=>28,"t"=>2]]],"Performance_schema_socket_classes_lost"=>["t"=>3,"a"=>[["a"=>"performance_schema_socket_classes_lost","u"=>28,"t"=>2]]],"Performance_schema_socket_instances_lost"=>["t"=>3,"a"=>[["a"=>"performance_schema_socket_instances_lost","u"=>28,"t"=>2]]],"Performance_schema_stage_classes_lost"=>["t"=>3,"a"=>[["a"=>"performance_schema_stage_classes_lost","u"=>28,"t"=>2]]],"Performance_schema_statement_classes_lost"=>["t"=>3,"a"=>[["a"=>"performance_schema_statement_classes_lost","u"=>28,"t"=>2]]],"Performance_schema_table_handles_lost"=>["t"=>3,"a"=>[["a"=>"performance_schema_table_handles_lost","u"=>28,"t"=>2]]],"Performance_schema_table_instances_lost"=>["t"=>3,"a"=>[["a"=>"performance_schema_table_instances_lost","u"=>28,"t"=>2]]],"Performance_schema_thread_classes_lost"=>["t"=>3,"a"=>[["a"=>"performance_schema_thread_classes_lost","u"=>28,"t"=>2]]],"Performance_schema_thread_instances_lost"=>["t"=>3,"a"=>[["a"=>"performance_schema_thread_instances_lost","u"=>28,"t"=>2]]],"Performance_schema_users_lost"=>["t"=>3,"a"=>[["a"=>"performance_schema_users_lost","u"=>28,"t"=>2]]],"Prepared_stmt_count"=>["t"=>3,"a"=>[["a"=>"prepared_stmt_count","u"=>28,"t"=>2]]],"Qcache_free_blocks"=>["t"=>3,"a"=>[["a"=>"qcache_free_blocks","u"=>28,"t"=>2]]],"Qcache_free_memory"=>["t"=>3,"a"=>[["a"=>"qcache_free_memory","u"=>28,"t"=>2]]],"Qcache_hits"=>["t"=>3,"a"=>[["a"=>"qcache_hits","u"=>28,"t"=>2]]],"Qcache_inserts"=>["t"=>3,"a"=>[["a"=>"qcache_inserts","u"=>28,"t"=>2]]],"Qcache_lowmem_prunes"=>["t"=>3,"a"=>[["a"=>"qcache_lowmem_prunes","u"=>28,"t"=>2]]],"Qcache_not_cached"=>["t"=>3,"a"=>[["a"=>"qcache_not_cached","u"=>28,"t"=>2]]],"Qcache_queries_in_cache"=>["t"=>3,"a"=>[["a"=>"qcache_queries_in_cache","u"=>28,"t"=>2]]],"Qcache_total_blocks"=>["t"=>3,"a"=>[["a"=>"qcache_total_blocks","u"=>28,"t"=>2]]],"Queries"=>["t"=>3,"a"=>[["a"=>"queries","u"=>28,"t"=>2]]],"Questions"=>["t"=>3,"a"=>[["a"=>"questions","u"=>28,"t"=>2]]],"Rows_read"=>["t"=>3,"a"=>[["a"=>"rows_read","u"=>28,"t"=>2]]],"Rows_sent"=>["t"=>3,"a"=>[["a"=>"rows_sent","u"=>28,"t"=>2]]],"Rows_tmp_read"=>["t"=>3,"a"=>[["a"=>"rows_tmp_read","u"=>28,"t"=>2]]],"Select_full_join"=>["t"=>3,"a"=>[["a"=>"select_full_join","u"=>28,"t"=>2]]],"Select_full_range_join"=>["t"=>3,"a"=>[["a"=>"select_full_range_join","u"=>28,"t"=>2]]],"Select_range"=>["t"=>3,"a"=>[["a"=>"select_range","u"=>28,"t"=>2]]],"Select_range_check"=>["t"=>3,"a"=>[["a"=>"select_range_check","u"=>28,"t"=>2]]],"Select_scan"=>["t"=>3,"a"=>[["a"=>"select_scan","u"=>28,"t"=>2]]],"Slow_launch_threads"=>["t"=>3,"a"=>[["a"=>"slow_launch_threads","u"=>28,"t"=>2]]],"Slow_queries"=>["t"=>3,"a"=>[["a"=>"slow_queries","u"=>28,"t"=>2]]],"Sort_merge_passes"=>["t"=>3,"a"=>[["a"=>"sort_merge_passes","u"=>28,"t"=>2]]],"Sort_priority_queue_sorts"=>["t"=>3,"a"=>[["a"=>"sort_priority_queue_sorts","u"=>28,"t"=>2]]],"Sort_range"=>["t"=>3,"a"=>[["a"=>"sort_range","u"=>28,"t"=>2]]],"Sort_rows"=>["t"=>3,"a"=>[["a"=>"sort_rows","u"=>28,"t"=>2]]],"Sort_scan"=>["t"=>3,"a"=>[["a"=>"sort_scan","u"=>28,"t"=>2]]],"Subquery_cache_hit"=>["t"=>3,"a"=>[["a"=>"subquery_cache_hit","u"=>28,"t"=>2]]],"Subquery_cache_miss"=>["t"=>3,"a"=>[["a"=>"subquery_cache_miss","u"=>28,"t"=>2]]],"Syncs"=>["t"=>3,"a"=>[["a"=>"syncs","u"=>28,"t"=>2]]],"Table_locks_immediate"=>["t"=>3,"a"=>[["a"=>"table_locks_immediate","u"=>28,"t"=>2]]],"Table_locks_waited"=>["t"=>3,"a"=>[["a"=>"table_locks_waited","u"=>28,"t"=>2]]],"Table_open_cache_active_instances"=>["t"=>3,"a"=>[["a"=>"table_open_cache_active_instances","u"=>28,"t"=>2]]],"Table_open_cache_hits"=>["t"=>3,"a"=>[["a"=>"table_open_cache_hits","u"=>28,"t"=>2]]],"Table_open_cache_misses"=>["t"=>3,"a"=>[["a"=>"table_open_cache_misses","u"=>28,"t"=>2]]],"Table_open_cache_overflows"=>["t"=>3,"a"=>[["a"=>"table_open_cache_overflows","u"=>28,"t"=>2]]],"Tc_log_max_pages_used"=>["t"=>3,"a"=>[["a"=>"tc_log_max_pages_used","u"=>28,"t"=>2]]],"Tc_log_page_size"=>["t"=>3,"a"=>[["a"=>"tc_log_page_size","u"=>28,"t"=>2]]],"Tc_log_page_waits"=>["t"=>3,"a"=>[["a"=>"tc_log_page_waits","u"=>28,"t"=>2]]],"Threads_cached"=>["t"=>3,"a"=>[["a"=>"threads_cached","u"=>28,"t"=>2]]],"Threads_connected"=>["t"=>3,"a"=>[["a"=>"threads_connected","u"=>28,"t"=>2]]],"Threads_created"=>["t"=>3,"a"=>[["a"=>"threads_created","u"=>28,"t"=>2]]],"Threads_running"=>["t"=>3,"a"=>[["a"=>"threads_running","u"=>28,"t"=>2]]],"Update_scan"=>["t"=>3,"a"=>[["a"=>"update_scan","u"=>28,"t"=>2]]],"Uptime"=>["t"=>3,"a"=>[["a"=>"uptime","u"=>28,"t"=>2]]],"Uptime_since_flush_status"=>["t"=>3,"a"=>[["a"=>"uptime_since_flush_status","u"=>28,"t"=>2]]],"alter_algorithm"=>["d"=>true,"a"=>[["a"=>"alter_algorithm","u"=>29,"t"=>2]]],"analyze_sample_percentage"=>["d"=>true,"t"=>3,"a"=>[["a"=>"analyze_sample_percentage","u"=>29,"t"=>2]]],"autocommit"=>["d"=>true,"t"=>2,"a"=>[["a"=>"autocommit","u"=>29,"t"=>2],["a"=>"sysvar_autocommit","u"=>15,"t"=>1]]],"automatic_sp_privileges"=>["d"=>true,"t"=>2,"a"=>[["a"=>"automatic_sp_privileges","u"=>29,"t"=>2],["a"=>"sysvar_automatic_sp_privileges","u"=>15,"t"=>1]]],"back_log"=>["d"=>false,"t"=>3,"a"=>[["a"=>"back_log","u"=>29,"t"=>2],["a"=>"sysvar_back_log","u"=>15,"t"=>1]]],"basedir"=>["d"=>false,"t"=>7,"a"=>[["a"=>"basedir","u"=>29,"t"=>2],["a"=>"sysvar_basedir","u"=>16,"t"=>1],["a"=>"sysvar_basedir","u"=>15,"t"=>1]]],"big_tables"=>["d"=>true,"t"=>2,"a"=>[["a"=>"big_tables","u"=>29,"t"=>2],["a"=>"sysvar_big_tables","u"=>15,"t"=>1]]],"bind_address"=>["d"=>false,"t"=>1,"a"=>[["a"=>"bind_address","u"=>29,"t"=>2],["a"=>"sysvar_bind_address","u"=>15,"t"=>1]]],"bulk_insert_buffer_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"bulk_insert_buffer_size","u"=>29,"t"=>2],["a"=>"sysvar_bulk_insert_buffer_size","u"=>15,"t"=>1]]],"character_set_client"=>["d"=>true,"t"=>1,"a"=>[["a"=>"character_set_client","u"=>29,"t"=>2],["a"=>"sysvar_character_set_client","u"=>15,"t"=>1]]],"character_set_connection"=>["d"=>true,"t"=>1,"a"=>[["a"=>"character_set_connection","u"=>29,"t"=>2],["a"=>"sysvar_character_set_connection","u"=>15,"t"=>1]]],"character_set_database"=>["d"=>true,"t"=>1,"a"=>[["a"=>"character_set_database","u"=>29,"t"=>2],["a"=>"sysvar_character_set_database","u"=>15,"t"=>1]]],"character_set_filesystem"=>["d"=>true,"t"=>1,"a"=>[["a"=>"character_set_filesystem","u"=>29,"t"=>2],["a"=>"sysvar_character_set_filesystem","u"=>15,"t"=>1]]],"character_set_results"=>["d"=>true,"t"=>1,"a"=>[["a"=>"character_set_results","u"=>29,"t"=>2],["a"=>"sysvar_character_set_results","u"=>15,"t"=>1]]],"character_set_server"=>["d"=>true,"t"=>1,"a"=>[["a"=>"character_set_server","u"=>29,"t"=>2],["a"=>"sysvar_character_set_server","u"=>15,"t"=>1]]],"character_set_system"=>["d"=>false,"t"=>1,"a"=>[["a"=>"character_set_system","u"=>29,"t"=>2],["a"=>"sysvar_character_set_system","u"=>15,"t"=>1]]],"character_sets_dir"=>["d"=>false,"t"=>7,"a"=>[["a"=>"character_sets_dir","u"=>29,"t"=>2],["a"=>"sysvar_character_sets_dir","u"=>15,"t"=>1]]],"check_constraint_checks"=>["d"=>true,"t"=>2,"a"=>[["a"=>"check_constraint_checks","u"=>29,"t"=>2]]],"collation_connection"=>["d"=>true,"t"=>1,"a"=>[["a"=>"collation_connection","u"=>29,"t"=>2],["a"=>"sysvar_collation_connection","u"=>15,"t"=>1]]],"collation_database"=>["d"=>true,"t"=>1,"a"=>[["a"=>"collation_database","u"=>29,"t"=>2],["a"=>"sysvar_collation_database","u"=>15,"t"=>1]]],"collation_server"=>["d"=>true,"t"=>1,"a"=>[["a"=>"collation_server","u"=>29,"t"=>2],["a"=>"sysvar_collation_server","u"=>15,"t"=>1]]],"completion_type"=>["d"=>true,"t"=>5,"a"=>[["a"=>"completion_type","u"=>29,"t"=>2],["a"=>"sysvar_completion_type","u"=>15,"t"=>1]]],"concurrent_insert"=>["d"=>true,"t"=>5,"a"=>[["a"=>"concurrent_insert","u"=>29,"t"=>2],["a"=>"sysvar_concurrent_insert","u"=>15,"t"=>1]]],"connect_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"connect_timeout","u"=>29,"t"=>2],["a"=>"sysvar_connect_timeout","u"=>15,"t"=>1]]],"core_file"=>["d"=>false,"t"=>2,"a"=>[["a"=>"core_file","u"=>29,"t"=>2],["a"=>"option_mysqld_core-file","u"=>16,"t"=>1],["a"=>"sysvar_core_file","u"=>15,"t"=>1]]],"datadir"=>["d"=>false,"t"=>7,"a"=>[["a"=>"datadir","u"=>29,"t"=>2],["a"=>"sysvar_datadir","u"=>16,"t"=>1],["a"=>"sysvar_datadir","u"=>15,"t"=>1]]],"date_format"=>["a"=>[["a"=>"date_format","u"=>29,"t"=>2]]],"datetime_format"=>["a"=>[["a"=>"datetime_format","u"=>29,"t"=>2]]],"debug"=>["d"=>true,"t"=>1,"a"=>[["a"=>"debug","u"=>29,"t"=>2],["a"=>"option_mysqld_debug","u"=>16,"t"=>1],["a"=>"sysvar_debug","u"=>15,"t"=>1]]],"debug_no_thread_alarm"=>["d"=>false,"t"=>2,"a"=>[["a"=>"debug_no_thread_alarm","u"=>29,"t"=>2]]],"debug_sync"=>["d"=>true,"t"=>1,"a"=>[["a"=>"debug_sync","u"=>29,"t"=>2],["a"=>"sysvar_debug_sync","u"=>15,"t"=>1]]],"default_password_lifetime"=>["d"=>true,"t"=>3,"a"=>[["a"=>"default_password_lifetime","u"=>29,"t"=>2],["a"=>"sysvar_default_password_lifetime","u"=>15,"t"=>1]]],"default_regex_flags"=>["a"=>[["a"=>"default_regex_flags","u"=>29,"t"=>2]]],"default_storage_engine"=>["d"=>true,"t"=>5,"a"=>[["a"=>"default_storage_engine","u"=>29,"t"=>2],["a"=>"sysvar_default_storage_engine","u"=>15,"t"=>1]]],"default_table_type"=>["d"=>true,"a"=>[["a"=>"default_table_type","u"=>29,"t"=>2]]],"default_tmp_storage_engine"=>["d"=>true,"t"=>5,"a"=>[["a"=>"default_tmp_storage_engine","u"=>29,"t"=>2],["a"=>"sysvar_default_tmp_storage_engine","u"=>15,"t"=>1]]],"default_week_format"=>["d"=>true,"t"=>3,"a"=>[["a"=>"default_week_format","u"=>29,"t"=>2],["a"=>"sysvar_default_week_format","u"=>15,"t"=>1]]],"delay_key_write"=>["d"=>true,"t"=>5,"a"=>[["a"=>"delay_key_write","u"=>29,"t"=>2],["a"=>"sysvar_delay_key_write","u"=>15,"t"=>1]]],"delayed_insert_limit"=>["d"=>true,"t"=>3,"a"=>[["a"=>"delayed_insert_limit","u"=>29,"t"=>2],["a"=>"sysvar_delayed_insert_limit","u"=>15,"t"=>1]]],"delayed_insert_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"delayed_insert_timeout","u"=>29,"t"=>2],["a"=>"sysvar_delayed_insert_timeout","u"=>15,"t"=>1]]],"delayed_queue_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"delayed_queue_size","u"=>29,"t"=>2],["a"=>"sysvar_delayed_queue_size","u"=>15,"t"=>1]]],"disconnect_on_expired_password"=>["t"=>2,"a"=>[["a"=>"disconnect_on_expired_password","u"=>29,"t"=>2],["a"=>"sysvar_disconnect_on_expired_password","u"=>15,"t"=>1]]],"div_precision_increment"=>["d"=>true,"t"=>3,"a"=>[["a"=>"div_precision_increment","u"=>29,"t"=>2],["a"=>"sysvar_div_precision_increment","u"=>15,"t"=>1]]],"encrypt_tmp_disk_tables"=>["d"=>true,"t"=>2,"a"=>[["a"=>"encrypt_tmp_disk_tables","u"=>29,"t"=>2]]],"encrypt_tmp_files"=>["d"=>false,"t"=>2,"a"=>[["a"=>"encrypt_tmp_files","u"=>29,"t"=>2]]],"encryption_algorithm"=>["d"=>false,"a"=>[["a"=>"encryption_algorithm","u"=>29,"t"=>2]]],"enforce_storage_engine"=>["d"=>true,"t"=>1,"a"=>[["a"=>"enforce_storage_engine","u"=>29,"t"=>2]]],"engine_condition_pushdown"=>["d"=>true,"t"=>2,"a"=>[["a"=>"engine_condition_pushdown","u"=>29,"t"=>2]]],"eq_range_index_dive_limit"=>["d"=>true,"t"=>3,"a"=>[["a"=>"eq_range_index_dive_limit","u"=>29,"t"=>2],["a"=>"sysvar_eq_range_index_dive_limit","u"=>15,"t"=>1]]],"error_count"=>["d"=>true,"t"=>3,"a"=>[["a"=>"error_count","u"=>29,"t"=>2]]],"event_scheduler"=>["d"=>true,"t"=>5,"a"=>[["a"=>"event_scheduler","u"=>29,"t"=>2],["a"=>"sysvar_event_scheduler","u"=>15,"t"=>1]]],"expensive_subquery_limit"=>["d"=>true,"t"=>3,"a"=>[["a"=>"expensive_subquery_limit","u"=>29,"t"=>2]]],"explicit_defaults_for_timestamp"=>["t"=>2,"a"=>[["a"=>"explicit_defaults_for_timestamp","u"=>29,"t"=>2],["a"=>"sysvar_explicit_defaults_for_timestamp","u"=>15,"t"=>1]]],"external_user"=>["d"=>false,"t"=>1,"a"=>[["a"=>"external_user","u"=>29,"t"=>2],["a"=>"sysvar_external_user","u"=>15,"t"=>1]]],"flush"=>["d"=>true,"t"=>2,"a"=>[["a"=>"flush","u"=>29,"t"=>2],["a"=>"option_mysqld_flush","u"=>16,"t"=>1],["a"=>"sysvar_flush","u"=>15,"t"=>1]]],"flush_time"=>["d"=>true,"t"=>3,"a"=>[["a"=>"flush_time","u"=>29,"t"=>2],["a"=>"sysvar_flush_time","u"=>15,"t"=>1]]],"foreign_key_checks"=>["d"=>true,"t"=>2,"a"=>[["a"=>"foreign_key_checks","u"=>29,"t"=>2],["a"=>"sysvar_foreign_key_checks","u"=>15,"t"=>1]]],"ft_boolean_syntax"=>["d"=>true,"t"=>1,"a"=>[["a"=>"ft_boolean_syntax","u"=>29,"t"=>2],["a"=>"sysvar_ft_boolean_syntax","u"=>15,"t"=>1]]],"ft_max_word_len"=>["d"=>false,"t"=>3,"a"=>[["a"=>"ft_max_word_len","u"=>29,"t"=>2],["a"=>"sysvar_ft_max_word_len","u"=>15,"t"=>1]]],"ft_min_word_len"=>["d"=>false,"t"=>3,"a"=>[["a"=>"ft_min_word_len","u"=>29,"t"=>2],["a"=>"sysvar_ft_min_word_len","u"=>15,"t"=>1]]],"ft_query_expansion_limit"=>["d"=>false,"t"=>3,"a"=>[["a"=>"ft_query_expansion_limit","u"=>29,"t"=>2],["a"=>"sysvar_ft_query_expansion_limit","u"=>15,"t"=>1]]],"ft_stopword_file"=>["d"=>false,"t"=>8,"a"=>[["a"=>"ft_stopword_file","u"=>29,"t"=>2],["a"=>"sysvar_ft_stopword_file","u"=>15,"t"=>1]]],"general_log"=>["d"=>true,"t"=>2,"a"=>[["a"=>"general_log","u"=>29,"t"=>2],["a"=>"sysvar_general_log","u"=>15,"t"=>1]]],"general_log_file"=>["d"=>true,"t"=>8,"a"=>[["a"=>"general_log_file","u"=>29,"t"=>2],["a"=>"sysvar_general_log_file","u"=>15,"t"=>1]]],"group_concat_max_len"=>["d"=>true,"t"=>3,"a"=>[["a"=>"group_concat_max_len","u"=>29,"t"=>2],["a"=>"sysvar_group_concat_max_len","u"=>15,"t"=>1]]],"have_compress"=>["d"=>false,"a"=>[["a"=>"have_compress","u"=>29,"t"=>2]]],"have_crypt"=>["d"=>false,"a"=>[["a"=>"have_crypt","u"=>29,"t"=>2]]],"have_csv"=>["d"=>false,"a"=>[["a"=>"have_csv","u"=>29,"t"=>2]]],"have_dynamic_loading"=>["d"=>false,"a"=>[["a"=>"have_dynamic_loading","u"=>29,"t"=>2]]],"have_geometry"=>["d"=>false,"a"=>[["a"=>"have_geometry","u"=>29,"t"=>2]]],"have_ndbcluster"=>["d"=>false,"a"=>[["a"=>"have_ndbcluster","u"=>29,"t"=>2]]],"have_partitioning"=>["d"=>false,"a"=>[["a"=>"have_partitioning","u"=>29,"t"=>2]]],"have_profiling"=>["d"=>false,"a"=>[["a"=>"have_profiling","u"=>29,"t"=>2]]],"have_query_cache"=>["d"=>false,"a"=>[["a"=>"have_query_cache","u"=>29,"t"=>2]]],"have_rtree_keys"=>["d"=>false,"a"=>[["a"=>"have_rtree_keys","u"=>29,"t"=>2]]],"have_symlink"=>["d"=>false,"a"=>[["a"=>"have_symlink","u"=>29,"t"=>2]]],"histogram_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"histogram_size","u"=>29,"t"=>2]]],"histogram_type"=>["d"=>true,"t"=>5,"a"=>[["a"=>"histogram_type","u"=>29,"t"=>2]]],"host_cache_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"host_cache_size","u"=>29,"t"=>2],["a"=>"sysvar_host_cache_size","u"=>15,"t"=>1]]],"hostname"=>["d"=>false,"t"=>1,"a"=>[["a"=>"hostname","u"=>29,"t"=>2],["a"=>"sysvar_hostname","u"=>15,"t"=>1]]],"identity"=>["a"=>[["a"=>"identity","u"=>29,"t"=>2]]],"idle_readonly_transaction_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"idle_readonly_transaction_timeout","u"=>29,"t"=>2]]],"idle_transaction_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"idle_transaction_timeout","u"=>29,"t"=>2]]],"idle_write_transaction_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"idle_write_transaction_timeout","u"=>29,"t"=>2]]],"ignore_db_dirs"=>["d"=>false,"t"=>1,"a"=>[["a"=>"ignore_db_dirs","u"=>29,"t"=>2]]],"in_transaction"=>["d"=>false,"t"=>2,"a"=>[["a"=>"in_transaction","u"=>29,"t"=>2]]],"init_connect"=>["d"=>true,"t"=>1,"a"=>[["a"=>"init_connect","u"=>29,"t"=>2],["a"=>"sysvar_init_connect","u"=>15,"t"=>1]]],"init_file"=>["d"=>false,"t"=>8,"a"=>[["a"=>"init_file","u"=>29,"t"=>2],["a"=>"sysvar_init_file","u"=>15,"t"=>1]]],"insert_id"=>["d"=>true,"t"=>3,"a"=>[["a"=>"insert_id","u"=>29,"t"=>2]]],"interactive_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"interactive_timeout","u"=>29,"t"=>2],["a"=>"sysvar_interactive_timeout","u"=>15,"t"=>1]]],"join_buffer_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"join_buffer_size","u"=>29,"t"=>2],["a"=>"sysvar_join_buffer_size","u"=>15,"t"=>1]]],"join_buffer_space_limit"=>["d"=>true,"t"=>3,"a"=>[["a"=>"join_buffer_space_limit","u"=>29,"t"=>2]]],"join_cache_level"=>["d"=>true,"t"=>3,"a"=>[["a"=>"join_cache_level","u"=>29,"t"=>2]]],"keep_files_on_create"=>["d"=>true,"t"=>2,"a"=>[["a"=>"keep_files_on_create","u"=>29,"t"=>2],["a"=>"sysvar_keep_files_on_create","u"=>15,"t"=>1]]],"large_files_support"=>["d"=>false,"a"=>[["a"=>"large_files_support","u"=>29,"t"=>2],["a"=>"sysvar_large_files_support","u"=>15,"t"=>1]]],"large_page_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"large_page_size","u"=>29,"t"=>2],["a"=>"sysvar_large_page_size","u"=>15,"t"=>1]]],"large_pages"=>["d"=>false,"t"=>2,"a"=>[["a"=>"large_pages","u"=>29,"t"=>2],["a"=>"option_mysqld_large-pages","u"=>16,"t"=>1],["a"=>"sysvar_large_pages","u"=>15,"t"=>1]]],"last_insert_id"=>["d"=>true,"t"=>3,"a"=>[["a"=>"last_insert_id","u"=>29,"t"=>2]]],"lc_messages"=>["d"=>true,"t"=>1,"a"=>[["a"=>"lc_messages","u"=>29,"t"=>2],["a"=>"option_mysqld_lc-messages","u"=>16,"t"=>1],["a"=>"sysvar_lc_messages","u"=>15,"t"=>1]]],"lc_messages_dir"=>["d"=>false,"t"=>7,"a"=>[["a"=>"lc_messages_dir","u"=>29,"t"=>2],["a"=>"option_mysqld_lc-messages-dir","u"=>16,"t"=>1],["a"=>"sysvar_lc_messages_dir","u"=>15,"t"=>1]]],"lc_time_names"=>["d"=>true,"t"=>1,"a"=>[["a"=>"lc_time_names","u"=>29,"t"=>2],["a"=>"sysvar_lc_time_names","u"=>15,"t"=>1]]],"license"=>["d"=>false,"t"=>1,"a"=>[["a"=>"license","u"=>29,"t"=>2],["a"=>"sysvar_license","u"=>15,"t"=>1]]],"local_infile"=>["d"=>true,"t"=>2,"a"=>[["a"=>"local_infile","u"=>29,"t"=>2],["a"=>"sysvar_local_infile","u"=>15,"t"=>1]]],"lock_wait_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"lock_wait_timeout","u"=>29,"t"=>2],["a"=>"sysvar_lock_wait_timeout","u"=>15,"t"=>1]]],"locked_in_memory"=>["d"=>false,"a"=>[["a"=>"locked_in_memory","u"=>29,"t"=>2],["a"=>"sysvar_locked_in_memory","u"=>15,"t"=>1]]],"log"=>["d"=>true,"t"=>1,"a"=>[["a"=>"log","u"=>29,"t"=>2]]],"log_disabled_statements"=>["d"=>false,"t"=>6,"a"=>[["a"=>"log_disabled_statements","u"=>29,"t"=>2]]],"log_error"=>["d"=>false,"t"=>8,"a"=>[["a"=>"log_error","u"=>29,"t"=>2],["a"=>"option_mysqld_log-error","u"=>16,"t"=>1],["a"=>"sysvar_log_error","u"=>15,"t"=>1]]],"log_output"=>["d"=>true,"t"=>6,"a"=>[["a"=>"log_output","u"=>29,"t"=>2],["a"=>"sysvar_log_output","u"=>15,"t"=>1]]],"log_queries_not_using_indexes"=>["d"=>true,"t"=>2,"a"=>[["a"=>"log_queries_not_using_indexes","u"=>29,"t"=>2],["a"=>"sysvar_log_queries_not_using_indexes","u"=>15,"t"=>1]]],"log_slow_admin_statements"=>["d"=>true,"t"=>2,"a"=>[["a"=>"log_slow_admin_statements","u"=>29,"t"=>2],["a"=>"sysvar_log_slow_admin_statements","u"=>15,"t"=>1]]],"log_slow_disabled_statements"=>["d"=>false,"t"=>6,"a"=>[["a"=>"log_slow_disabled_statements","u"=>29,"t"=>2]]],"log_slow_filter"=>["d"=>true,"t"=>5,"a"=>[["a"=>"log_slow_filter","u"=>29,"t"=>2]]],"log_slow_queries"=>["d"=>true,"t"=>2,"a"=>[["a"=>"log_slow_queries","u"=>29,"t"=>2]]],"log_slow_rate_limit"=>["d"=>true,"t"=>3,"a"=>[["a"=>"log_slow_rate_limit","u"=>29,"t"=>2]]],"log_slow_verbosity"=>["d"=>true,"t"=>5,"a"=>[["a"=>"log_slow_verbosity","u"=>29,"t"=>2]]],"log_tc_size"=>["t"=>3,"a"=>[["a"=>"log_tc_size","u"=>29,"t"=>2],["a"=>"option_mysqld_log-tc-size","u"=>16,"t"=>1]]],"log_warnings"=>["d"=>true,"t"=>3,"a"=>[["a"=>"log_warnings","u"=>29,"t"=>2],["a"=>"option_mysqld_log-warnings","u"=>16,"t"=>1],["a"=>"sysvar_log_warnings","u"=>15,"t"=>1]]],"long_query_time"=>["d"=>true,"t"=>3,"a"=>[["a"=>"long_query_time","u"=>29,"t"=>2],["a"=>"sysvar_long_query_time","u"=>15,"t"=>1]]],"low_priority_updates"=>["d"=>true,"t"=>2,"a"=>[["a"=>"low_priority_updates","u"=>29,"t"=>2],["a"=>"sysvar_low_priority_updates","u"=>15,"t"=>1]]],"lower_case_file_system"=>["d"=>false,"t"=>2,"a"=>[["a"=>"lower_case_file_system","u"=>29,"t"=>2],["a"=>"sysvar_lower_case_file_system","u"=>15,"t"=>1]]],"lower_case_table_names"=>["d"=>false,"t"=>3,"a"=>[["a"=>"lower_case_table_names","u"=>29,"t"=>2],["a"=>"sysvar_lower_case_table_names","u"=>15,"t"=>1]]],"max_allowed_packet"=>["t"=>3,"a"=>[["a"=>"max_allowed_packet","u"=>29,"t"=>2],["a"=>"sysvar_max_allowed_packet","u"=>15,"t"=>1]]],"max_connect_errors"=>["d"=>true,"t"=>3,"a"=>[["a"=>"max_connect_errors","u"=>29,"t"=>2],["a"=>"sysvar_max_connect_errors","u"=>15,"t"=>1]]],"max_connections"=>["d"=>true,"t"=>3,"a"=>[["a"=>"max_connections","u"=>29,"t"=>2],["a"=>"sysvar_max_connections","u"=>15,"t"=>1]]],"max_delayed_threads"=>["d"=>true,"t"=>3,"a"=>[["a"=>"max_delayed_threads","u"=>29,"t"=>2],["a"=>"sysvar_max_delayed_threads","u"=>15,"t"=>1]]],"max_digest_length"=>["t"=>3,"a"=>[["a"=>"max_digest_length","u"=>29,"t"=>2],["a"=>"sysvar_max_digest_length","u"=>15,"t"=>1]]],"max_error_count"=>["d"=>true,"t"=>3,"a"=>[["a"=>"max_error_count","u"=>29,"t"=>2],["a"=>"sysvar_max_error_count","u"=>15,"t"=>1]]],"max_heap_table_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"max_heap_table_size","u"=>29,"t"=>2],["a"=>"sysvar_max_heap_table_size","u"=>15,"t"=>1]]],"max_insert_delayed_threads"=>["d"=>true,"t"=>3,"a"=>[["a"=>"max_insert_delayed_threads","u"=>29,"t"=>2],["a"=>"sysvar_max_insert_delayed_threads","u"=>15,"t"=>1]]],"max_join_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"max_join_size","u"=>29,"t"=>2],["a"=>"sysvar_max_join_size","u"=>15,"t"=>1]]],"max_length_for_sort_data"=>["d"=>true,"t"=>3,"a"=>[["a"=>"max_length_for_sort_data","u"=>29,"t"=>2],["a"=>"sysvar_max_length_for_sort_data","u"=>15,"t"=>1]]],"max_long_data_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"max_long_data_size","u"=>29,"t"=>2]]],"max_password_errors"=>["d"=>true,"t"=>3,"a"=>[["a"=>"max_password_errors","u"=>29,"t"=>2]]],"max_prepared_stmt_count"=>["d"=>true,"t"=>3,"a"=>[["a"=>"max_prepared_stmt_count","u"=>29,"t"=>2],["a"=>"sysvar_max_prepared_stmt_count","u"=>15,"t"=>1]]],"max_recursive_iterations"=>["d"=>true,"t"=>3,"a"=>[["a"=>"max_recursive_iterations","u"=>29,"t"=>2]]],"max_rowid_filter_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"max_rowid_filter_size","u"=>29,"t"=>2]]],"max_seeks_for_key"=>["d"=>true,"t"=>3,"a"=>[["a"=>"max_seeks_for_key","u"=>29,"t"=>2],["a"=>"sysvar_max_seeks_for_key","u"=>15,"t"=>1]]],"max_session_mem_used"=>["d"=>true,"t"=>3,"a"=>[["a"=>"max_session_mem_used","u"=>29,"t"=>2]]],"max_sort_length"=>["d"=>true,"t"=>3,"a"=>[["a"=>"max_sort_length","u"=>29,"t"=>2],["a"=>"sysvar_max_sort_length","u"=>15,"t"=>1]]],"max_sp_recursion_depth"=>["d"=>true,"t"=>3,"a"=>[["a"=>"max_sp_recursion_depth","u"=>29,"t"=>2],["a"=>"sysvar_max_sp_recursion_depth","u"=>15,"t"=>1]]],"max_statement_time"=>["d"=>true,"t"=>3,"a"=>[["a"=>"max_statement_time","u"=>29,"t"=>2]]],"max_tmp_tables"=>["a"=>[["a"=>"max_tmp_tables","u"=>29,"t"=>2]]],"max_user_connections"=>["t"=>3,"a"=>[["a"=>"max_user_connections","u"=>29,"t"=>2],["a"=>"sysvar_max_user_connections","u"=>15,"t"=>1]]],"max_write_lock_count"=>["t"=>3,"a"=>[["a"=>"max_write_lock_count","u"=>29,"t"=>2],["a"=>"sysvar_max_write_lock_count","u"=>15,"t"=>1]]],"metadata_locks_cache_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"metadata_locks_cache_size","u"=>29,"t"=>2],["a"=>"sysvar_metadata_locks_cache_size","u"=>15,"t"=>1]]],"metadata_locks_hash_instances"=>["d"=>false,"t"=>3,"a"=>[["a"=>"metadata_locks_hash_instances","u"=>29,"t"=>2],["a"=>"sysvar_metadata_locks_hash_instances","u"=>15,"t"=>1]]],"min_examined_row_limit"=>["d"=>true,"t"=>3,"a"=>[["a"=>"min_examined_row_limit","u"=>29,"t"=>2],["a"=>"sysvar_min_examined_row_limit","u"=>15,"t"=>1]]],"mrr_buffer_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"mrr_buffer_size","u"=>29,"t"=>2]]],"multi_range_count"=>["d"=>true,"t"=>3,"a"=>[["a"=>"multi_range_count","u"=>29,"t"=>2],["a"=>"sysvar_multi_range_count","u"=>15,"t"=>1]]],"mysql56_temporal_format"=>["d"=>true,"t"=>2,"a"=>[["a"=>"mysql56_temporal_format","u"=>29,"t"=>2]]],"named_pipe"=>["d"=>false,"t"=>2,"a"=>[["a"=>"named_pipe","u"=>29,"t"=>2],["a"=>"sysvar_named_pipe","u"=>15,"t"=>1]]],"net_buffer_length"=>["d"=>true,"t"=>3,"a"=>[["a"=>"net_buffer_length","u"=>29,"t"=>2],["a"=>"sysvar_net_buffer_length","u"=>15,"t"=>1]]],"net_read_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"net_read_timeout","u"=>29,"t"=>2],["a"=>"sysvar_net_read_timeout","u"=>15,"t"=>1]]],"net_retry_count"=>["d"=>true,"t"=>3,"a"=>[["a"=>"net_retry_count","u"=>29,"t"=>2],["a"=>"sysvar_net_retry_count","u"=>15,"t"=>1]]],"net_write_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"net_write_timeout","u"=>29,"t"=>2],["a"=>"sysvar_net_write_timeout","u"=>15,"t"=>1]]],"old"=>["t"=>2,"a"=>[["a"=>"old","u"=>29,"t"=>2],["a"=>"sysvar_old","u"=>15,"t"=>1]]],"old_alter_table"=>["d"=>true,"t"=>2,"a"=>[["a"=>"old_alter_table","u"=>29,"t"=>2],["a"=>"sysvar_old_alter_table","u"=>15,"t"=>1]]],"old_mode"=>["d"=>true,"t"=>1,"a"=>[["a"=>"old_mode","u"=>29,"t"=>2]]],"old_passwords"=>["d"=>true,"a"=>[["a"=>"old_passwords","u"=>29,"t"=>2],["a"=>"sysvar_old_passwords","u"=>15,"t"=>1]]],"open_files_limit"=>["d"=>false,"t"=>3,"a"=>[["a"=>"open_files_limit","u"=>29,"t"=>2],["a"=>"sysvar_open_files_limit","u"=>15,"t"=>1]]],"optimizer_prune_level"=>["d"=>true,"a"=>[["a"=>"optimizer_prune_level","u"=>29,"t"=>2],["a"=>"sysvar_optimizer_prune_level","u"=>15,"t"=>1]]],"optimizer_search_depth"=>["d"=>true,"t"=>3,"a"=>[["a"=>"optimizer_search_depth","u"=>29,"t"=>2],["a"=>"sysvar_optimizer_search_depth","u"=>15,"t"=>1]]],"optimizer_selectivity_sampling_limit"=>["d"=>true,"t"=>3,"a"=>[["a"=>"optimizer_selectivity_sampling_limit","u"=>29,"t"=>2]]],"optimizer_switch"=>["d"=>true,"a"=>[["a"=>"optimizer_switch","u"=>29,"t"=>2],["a"=>"sysvar_optimizer_switch","u"=>15,"t"=>1]]],"optimizer_use_condition_selectivity"=>["d"=>true,"t"=>3,"a"=>[["a"=>"optimizer_use_condition_selectivity","u"=>29,"t"=>2]]],"optimizer_trace"=>["d"=>true,"t"=>1,"a"=>[["a"=>"optimizer_trace","u"=>29,"t"=>2],["a"=>"sysvar_optimizer_trace","u"=>15,"t"=>1]]],"optimizer_trace_max_mem_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"optimizer_trace_max_mem_size","u"=>29,"t"=>2],["a"=>"sysvar_optimizer_trace_max_mem_size","u"=>15,"t"=>1]]],"pid_file"=>["d"=>false,"t"=>8,"a"=>[["a"=>"pid_file","u"=>29,"t"=>2],["a"=>"sysvar_pid_file","u"=>15,"t"=>1]]],"plugin_dir"=>["d"=>false,"t"=>7,"a"=>[["a"=>"plugin_dir","u"=>29,"t"=>2],["a"=>"sysvar_plugin_dir","u"=>15,"t"=>1]]],"plugin_maturity"=>["d"=>false,"a"=>[["a"=>"plugin_maturity","u"=>29,"t"=>2]]],"port"=>["d"=>false,"t"=>3,"a"=>[["a"=>"port","u"=>29,"t"=>2],["a"=>"option_mysqld_port","u"=>16,"t"=>1],["a"=>"sysvar_port","u"=>15,"t"=>1]]],"preload_buffer_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"preload_buffer_size","u"=>29,"t"=>2],["a"=>"sysvar_preload_buffer_size","u"=>15,"t"=>1]]],"profiling"=>["d"=>true,"t"=>2,"a"=>[["a"=>"profiling","u"=>29,"t"=>2]]],"profiling_history_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"profiling_history_size","u"=>29,"t"=>2]]],"progress_report_time"=>["d"=>true,"t"=>3,"a"=>[["a"=>"progress_report_time","u"=>29,"t"=>2]]],"protocol_version"=>["d"=>false,"t"=>3,"a"=>[["a"=>"protocol_version","u"=>29,"t"=>2],["a"=>"sysvar_protocol_version","u"=>15,"t"=>1]]],"proxy_protocol_networks"=>["d"=>false,"t"=>1,"a"=>[["a"=>"proxy_protocol_networks","u"=>29,"t"=>2]]],"proxy_user"=>["d"=>false,"t"=>1,"a"=>[["a"=>"proxy_user","u"=>29,"t"=>2],["a"=>"sysvar_proxy_user","u"=>15,"t"=>1]]],"pseudo_slave_mode"=>["d"=>true,"t"=>3,"a"=>[["a"=>"pseudo_slave_mode","u"=>29,"t"=>2],["a"=>"sysvar_pseudo_slave_mode","u"=>15,"t"=>1]]],"pseudo_thread_id"=>["d"=>true,"t"=>3,"a"=>[["a"=>"pseudo_thread_id","u"=>29,"t"=>2],["a"=>"sysvar_pseudo_thread_id","u"=>15,"t"=>1]]],"query_alloc_block_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"query_alloc_block_size","u"=>29,"t"=>2],["a"=>"sysvar_query_alloc_block_size","u"=>15,"t"=>1]]],"query_cache_limit"=>["d"=>true,"t"=>3,"a"=>[["a"=>"query_cache_limit","u"=>29,"t"=>2],["a"=>"sysvar_query_cache_limit","u"=>15,"t"=>1]]],"query_cache_min_res_unit"=>["d"=>true,"t"=>3,"a"=>[["a"=>"query_cache_min_res_unit","u"=>29,"t"=>2],["a"=>"sysvar_query_cache_min_res_unit","u"=>15,"t"=>1]]],"query_cache_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"query_cache_size","u"=>29,"t"=>2],["a"=>"sysvar_query_cache_size","u"=>15,"t"=>1]]],"query_cache_strip_comments"=>["d"=>true,"t"=>2,"a"=>[["a"=>"query_cache_strip_comments","u"=>29,"t"=>2]]],"query_cache_type"=>["d"=>true,"t"=>5,"a"=>[["a"=>"query_cache_type","u"=>29,"t"=>2],["a"=>"sysvar_query_cache_type","u"=>15,"t"=>1]]],"query_cache_wlock_invalidate"=>["d"=>true,"t"=>2,"a"=>[["a"=>"query_cache_wlock_invalidate","u"=>29,"t"=>2],["a"=>"sysvar_query_cache_wlock_invalidate","u"=>15,"t"=>1]]],"query_prealloc_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"query_prealloc_size","u"=>29,"t"=>2],["a"=>"sysvar_query_prealloc_size","u"=>15,"t"=>1]]],"rand_seed1"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rand_seed1","u"=>29,"t"=>2],["a"=>"sysvar_rand_seed1","u"=>15,"t"=>1]]],"rand_seed2"=>["a"=>[["a"=>"rand_seed2","u"=>29,"t"=>2]]],"range_alloc_block_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"range_alloc_block_size","u"=>29,"t"=>2],["a"=>"sysvar_range_alloc_block_size","u"=>15,"t"=>1]]],"read_buffer_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"read_buffer_size","u"=>29,"t"=>2],["a"=>"sysvar_read_buffer_size","u"=>15,"t"=>1]]],"read_only"=>["d"=>true,"t"=>2,"a"=>[["a"=>"read_only","u"=>29,"t"=>2],["a"=>"sysvar_read_only","u"=>15,"t"=>1]]],"read_rnd_buffer_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"read_rnd_buffer_size","u"=>29,"t"=>2],["a"=>"sysvar_read_rnd_buffer_size","u"=>15,"t"=>1]]],"rowid_merge_buff_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"rowid_merge_buff_size","u"=>29,"t"=>2]]],"rpl_recovery_rank"=>["a"=>[["a"=>"rpl_recovery_rank","u"=>29,"t"=>2]]],"safe_show_database"=>["d"=>true,"t"=>2,"a"=>[["a"=>"safe_show_database","u"=>29,"t"=>2]]],"secure_auth"=>["d"=>true,"t"=>2,"a"=>[["a"=>"secure_auth","u"=>29,"t"=>2],["a"=>"sysvar_secure_auth","u"=>15,"t"=>1]]],"secure_file_priv"=>["d"=>false,"t"=>1,"a"=>[["a"=>"secure_file_priv","u"=>29,"t"=>2],["a"=>"sysvar_secure_file_priv","u"=>15,"t"=>1]]],"secure_timestamp"=>["d"=>false,"a"=>[["a"=>"secure_timestamp","u"=>29,"t"=>2]]],"session_track_schema"=>["d"=>true,"t"=>2,"a"=>[["a"=>"session_track_schema","u"=>29,"t"=>2],["a"=>"sysvar_session_track_schema","u"=>15,"t"=>1]]],"session_track_state_change"=>["d"=>true,"t"=>2,"a"=>[["a"=>"session_track_state_change","u"=>29,"t"=>2],["a"=>"sysvar_session_track_state_change","u"=>15,"t"=>1]]],"session_track_system_variables"=>["d"=>true,"t"=>1,"a"=>[["a"=>"session_track_system_variables","u"=>29,"t"=>2],["a"=>"sysvar_session_track_system_variables","u"=>15,"t"=>1]]],"session_track_transaction_info"=>["d"=>true,"t"=>5,"a"=>[["a"=>"session_track_transaction_info","u"=>29,"t"=>2],["a"=>"sysvar_session_track_transaction_info","u"=>15,"t"=>1]]],"shared_memory"=>["d"=>false,"t"=>2,"a"=>[["a"=>"shared_memory","u"=>29,"t"=>2],["a"=>"sysvar_shared_memory","u"=>15,"t"=>1]]],"shared_memory_base_name"=>["d"=>false,"t"=>1,"a"=>[["a"=>"shared_memory_base_name","u"=>29,"t"=>2],["a"=>"sysvar_shared_memory_base_name","u"=>15,"t"=>1]]],"skip_external_locking"=>["d"=>false,"t"=>2,"a"=>[["a"=>"skip_external_locking","u"=>29,"t"=>2],["a"=>"sysvar_skip_external_locking","u"=>15,"t"=>1]]],"skip_name_resolve"=>["d"=>false,"t"=>2,"a"=>[["a"=>"skip_name_resolve","u"=>29,"t"=>2],["a"=>"sysvar_skip_name_resolve","u"=>15,"t"=>1]]],"skip_networking"=>["d"=>false,"t"=>2,"a"=>[["a"=>"skip_networking","u"=>29,"t"=>2],["a"=>"sysvar_skip_networking","u"=>15,"t"=>1]]],"skip_show_database"=>["d"=>false,"a"=>[["a"=>"skip_show_database","u"=>29,"t"=>2],["a"=>"option_mysqld_skip-show-database","u"=>16,"t"=>1],["a"=>"sysvar_skip_show_database","u"=>15,"t"=>1]]],"slow_launch_time"=>["d"=>true,"t"=>3,"a"=>[["a"=>"slow_launch_time","u"=>29,"t"=>2],["a"=>"sysvar_slow_launch_time","u"=>15,"t"=>1]]],"slow_query_log"=>["d"=>true,"t"=>2,"a"=>[["a"=>"slow_query_log","u"=>29,"t"=>2],["a"=>"sysvar_slow_query_log","u"=>15,"t"=>1]]],"slow_query_log_file"=>["d"=>true,"t"=>8,"a"=>[["a"=>"slow_query_log_file","u"=>29,"t"=>2],["a"=>"sysvar_slow_query_log_file","u"=>15,"t"=>1]]],"socket"=>["d"=>false,"t"=>1,"a"=>[["a"=>"socket","u"=>29,"t"=>2],["a"=>"option_mysqld_socket","u"=>16,"t"=>1],["a"=>"sysvar_socket","u"=>15,"t"=>1]]],"sort_buffer_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sort_buffer_size","u"=>29,"t"=>2],["a"=>"sysvar_sort_buffer_size","u"=>15,"t"=>1]]],"sql_auto_is_null"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sql_auto_is_null","u"=>29,"t"=>2],["a"=>"sysvar_sql_auto_is_null","u"=>15,"t"=>1]]],"sql_big_selects"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sql_big_selects","u"=>29,"t"=>2],["a"=>"sysvar_sql_big_selects","u"=>15,"t"=>1]]],"sql_big_tables"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sql_big_tables","u"=>29,"t"=>2]]],"sql_buffer_result"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sql_buffer_result","u"=>29,"t"=>2],["a"=>"sysvar_sql_buffer_result","u"=>15,"t"=>1]]],"sql_log_off"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sql_log_off","u"=>29,"t"=>2],["a"=>"sysvar_sql_log_off","u"=>15,"t"=>1]]],"sql_log_update"=>["a"=>[["a"=>"sql_log_update","u"=>29,"t"=>2]]],"sql_low_priority_updates"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sql_low_priority_updates","u"=>29,"t"=>2]]],"sql_max_join_size"=>["a"=>[["a"=>"sql_max_join_size","u"=>29,"t"=>2]]],"sql_mode"=>["d"=>true,"t"=>6,"a"=>[["a"=>"sql_mode","u"=>29,"t"=>2],["a"=>"option_mysqld_sql-mode","u"=>16,"t"=>1],["a"=>"sysvar_sql_mode","u"=>15,"t"=>1]]],"sql_notes"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sql_notes","u"=>29,"t"=>2],["a"=>"sysvar_sql_notes","u"=>15,"t"=>1]]],"sql_quote_show_create"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sql_quote_show_create","u"=>29,"t"=>2],["a"=>"sysvar_sql_quote_show_create","u"=>15,"t"=>1]]],"sql_safe_updates"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sql_safe_updates","u"=>29,"t"=>2],["a"=>"sysvar_sql_safe_updates","u"=>15,"t"=>1]]],"sql_select_limit"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sql_select_limit","u"=>29,"t"=>2],["a"=>"sysvar_sql_select_limit","u"=>15,"t"=>1]]],"sql_warnings"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sql_warnings","u"=>29,"t"=>2],["a"=>"sysvar_sql_warnings","u"=>15,"t"=>1]]],"storage_engine"=>["a"=>[["a"=>"storage_engine","u"=>29,"t"=>2]]],"standard_compliant_cte"=>["d"=>true,"t"=>2,"a"=>[["a"=>"standard_compliant_cte","u"=>29,"t"=>2]]],"stored_program_cache"=>["d"=>true,"t"=>3,"a"=>[["a"=>"stored_program_cache","u"=>29,"t"=>2],["a"=>"sysvar_stored_program_cache","u"=>15,"t"=>1]]],"strict_password_validation"=>["d"=>true,"t"=>2,"a"=>[["a"=>"strict_password_validation","u"=>29,"t"=>2]]],"sync_frm"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sync_frm","u"=>29,"t"=>2]]],"system_time_zone"=>["d"=>false,"t"=>1,"a"=>[["a"=>"system_time_zone","u"=>29,"t"=>2],["a"=>"sysvar_system_time_zone","u"=>15,"t"=>1]]],"table_definition_cache"=>["d"=>true,"t"=>3,"a"=>[["a"=>"table_definition_cache","u"=>29,"t"=>2],["a"=>"sysvar_table_definition_cache","u"=>15,"t"=>1]]],"table_lock_wait_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"table_lock_wait_timeout","u"=>29,"t"=>2]]],"table_open_cache"=>["d"=>true,"t"=>3,"a"=>[["a"=>"table_open_cache","u"=>29,"t"=>2],["a"=>"sysvar_table_open_cache","u"=>15,"t"=>1]]],"table_open_cache_instances"=>["d"=>false,"t"=>3,"a"=>[["a"=>"table_open_cache_instances","u"=>29,"t"=>2],["a"=>"sysvar_table_open_cache_instances","u"=>15,"t"=>1]]],"table_type"=>["a"=>[["a"=>"table_type","u"=>29,"t"=>2]]],"tcp_keepalive_interval"=>["d"=>true,"t"=>3,"a"=>[["a"=>"tcp_keepalive_interval","u"=>29,"t"=>2]]],"tcp_keepalive_probes"=>["d"=>true,"t"=>3,"a"=>[["a"=>"tcp_keepalive_probes","u"=>29,"t"=>2]]],"tcp_keepalive_time"=>["d"=>true,"t"=>3,"a"=>[["a"=>"tcp_keepalive_time","u"=>29,"t"=>2]]],"tcp_nodelay"=>["d"=>true,"t"=>2,"a"=>[["a"=>"tcp_nodelay","u"=>29,"t"=>2]]],"thread_cache_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"thread_cache_size","u"=>29,"t"=>2],["a"=>"sysvar_thread_cache_size","u"=>15,"t"=>1]]],"thread_concurrency"=>["d"=>false,"t"=>3,"a"=>[["a"=>"thread_concurrency","u"=>29,"t"=>2]]],"thread_stack"=>["d"=>false,"t"=>3,"a"=>[["a"=>"thread_stack","u"=>29,"t"=>2],["a"=>"sysvar_thread_stack","u"=>15,"t"=>1]]],"time_format"=>["a"=>[["a"=>"time_format","u"=>29,"t"=>2]]],"time_zone"=>["d"=>true,"t"=>1,"a"=>[["a"=>"time_zone","u"=>29,"t"=>2],["a"=>"sysvar_time_zone","u"=>15,"t"=>1]]],"timed_mutexes"=>["d"=>true,"t"=>2,"a"=>[["a"=>"timed_mutexes","u"=>29,"t"=>2]]],"timestamp"=>["d"=>true,"t"=>4,"a"=>[["a"=>"timestamp","u"=>29,"t"=>2],["a"=>"sysvar_timestamp","u"=>15,"t"=>1]]],"tmp_disk_table_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"tmp_disk_table_size","u"=>29,"t"=>2]]],"tmp_memory_table_size"=>["a"=>[["a"=>"tmp_memory_table_size","u"=>29,"t"=>2]]],"tmp_table_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"tmp_table_size","u"=>29,"t"=>2],["a"=>"sysvar_tmp_table_size","u"=>15,"t"=>1]]],"tmpdir"=>["d"=>false,"t"=>7,"a"=>[["a"=>"tmpdir","u"=>29,"t"=>2],["a"=>"option_mysqld_tmpdir","u"=>16,"t"=>1],["a"=>"sysvar_tmpdir","u"=>15,"t"=>1]]],"transaction_alloc_block_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"transaction_alloc_block_size","u"=>29,"t"=>2],["a"=>"sysvar_transaction_alloc_block_size","u"=>15,"t"=>1]]],"transaction_prealloc_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"transaction_prealloc_size","u"=>29,"t"=>2],["a"=>"sysvar_transaction_prealloc_size","u"=>15,"t"=>1]]],"tx_isolation"=>["d"=>true,"t"=>5,"a"=>[["a"=>"tx_isolation","u"=>29,"t"=>2],["a"=>"sysvar_tx_isolation","u"=>15,"t"=>1]]],"tx_read_only"=>["d"=>true,"t"=>2,"a"=>[["a"=>"tx_read_only","u"=>29,"t"=>2],["a"=>"sysvar_tx_read_only","u"=>15,"t"=>1]]],"unique_checks"=>["d"=>true,"t"=>2,"a"=>[["a"=>"unique_checks","u"=>29,"t"=>2],["a"=>"sysvar_unique_checks","u"=>15,"t"=>1]]],"updatable_views_with_limit"=>["d"=>true,"t"=>2,"a"=>[["a"=>"updatable_views_with_limit","u"=>29,"t"=>2],["a"=>"sysvar_updatable_views_with_limit","u"=>15,"t"=>1]]],"use_stat_tables"=>["d"=>true,"a"=>[["a"=>"use_stat_tables","u"=>29,"t"=>2]]],"version"=>["d"=>false,"t"=>1,"a"=>[["a"=>"version","u"=>29,"t"=>2]]],"version_comment"=>["d"=>false,"t"=>1,"a"=>[["a"=>"version_comment","u"=>29,"t"=>2],["a"=>"sysvar_version_comment","u"=>15,"t"=>1]]],"version_compile_machine"=>["d"=>false,"t"=>1,"a"=>[["a"=>"version_compile_machine","u"=>29,"t"=>2],["a"=>"sysvar_version_compile_machine","u"=>15,"t"=>1]]],"version_compile_os"=>["d"=>false,"t"=>1,"a"=>[["a"=>"version_compile_os","u"=>29,"t"=>2],["a"=>"sysvar_version_compile_os","u"=>15,"t"=>1]]],"version_malloc_library"=>["d"=>false,"t"=>1,"a"=>[["a"=>"version_malloc_library","u"=>29,"t"=>2]]],"version_source_revision"=>["d"=>false,"t"=>1,"a"=>[["a"=>"version_source_revision","u"=>29,"t"=>2]]],"wait_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"wait_timeout","u"=>29,"t"=>2],["a"=>"sysvar_wait_timeout","u"=>15,"t"=>1]]],"warning_count"=>["d"=>false,"t"=>3,"a"=>[["a"=>"warning_count","u"=>29,"t"=>2]]],"Sphinx_error"=>["t"=>3,"a"=>[["a"=>"sphinx_error","u"=>30,"t"=>2]]],"Sphinx_time"=>["t"=>3,"a"=>[["a"=>"sphinx_time","u"=>30,"t"=>2]]],"Sphinx_total"=>["t"=>3,"a"=>[["a"=>"sphinx_total","u"=>30,"t"=>2]]],"Sphinx_total_found"=>["t"=>3,"a"=>[["a"=>"sphinx_total_found","u"=>30,"t"=>2]]],"Sphinx_word_count"=>["t"=>3,"a"=>[["a"=>"sphinx_word_count","u"=>30,"t"=>2]]],"Sphinx_words"=>["t"=>3,"a"=>[["a"=>"sphinx_words","u"=>30,"t"=>2]]],"Spider_direct_aggregate"=>["t"=>3,"a"=>[["a"=>"spider_direct_aggregate","u"=>31,"t"=>2]]],"Spider_direct_order_limit"=>["t"=>3,"a"=>[["a"=>"spider_direct_order_limit","u"=>31,"t"=>2]]],"Spider_mon_table_cache_version"=>["t"=>3,"a"=>[["a"=>"spider_mon_table_cache_version","u"=>31,"t"=>2]]],"Spider_mon_table_cache_version_req"=>["t"=>3,"a"=>[["a"=>"spider_mon_table_cache_version_req","u"=>31,"t"=>2]]],"spider_auto_increment_mode"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_auto_increment_mode","u"=>32,"t"=>2]]],"spider_bgs_first_read"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_bgs_first_read","u"=>32,"t"=>2]]],"spider_bgs_mode"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_bgs_mode","u"=>32,"t"=>2]]],"spider_bgs_second_read"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_bgs_second_read","u"=>32,"t"=>2]]],"spider_bka_engine"=>["d"=>true,"t"=>1,"a"=>[["a"=>"spider_bka_engine","u"=>32,"t"=>2]]],"spider_bka_mode"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_bka_mode","u"=>32,"t"=>2]]],"spider_bka_table_name_type"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_bka_table_name_type","u"=>32,"t"=>2]]],"spider_block_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_block_size","u"=>32,"t"=>2]]],"spider_bulk_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_bulk_size","u"=>32,"t"=>2]]],"spider_bulk_update_mode"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_bulk_update_mode","u"=>32,"t"=>2]]],"spider_bulk_update_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_bulk_update_size","u"=>32,"t"=>2]]],"spider_casual_read"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_casual_read","u"=>32,"t"=>2]]],"spider_conn_recycle_mode"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_conn_recycle_mode","u"=>32,"t"=>2]]],"spider_conn_recycle_strict"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_conn_recycle_strict","u"=>32,"t"=>2]]],"spider_conn_wait_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_conn_wait_timeout","u"=>32,"t"=>2]]],"spider_connect_error_interval"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_connect_error_interval","u"=>32,"t"=>2]]],"spider_connect_mutex"=>["d"=>true,"t"=>2,"a"=>[["a"=>"spider_connect_mutex","u"=>32,"t"=>2]]],"spider_connect_retry_count"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_connect_retry_count","u"=>32,"t"=>2]]],"spider_connect_retry_interval"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_connect_retry_interval","u"=>32,"t"=>2]]],"spider_connect_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_connect_timeout","u"=>32,"t"=>2]]],"spider_crd_bg_mode"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_crd_bg_mode","u"=>32,"t"=>2]]],"spider_crd_interval"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_crd_interval","u"=>32,"t"=>2]]],"spider_crd_mode"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_crd_mode","u"=>32,"t"=>2]]],"spider_crd_sync"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_crd_sync","u"=>32,"t"=>2]]],"spider_crd_type"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_crd_type","u"=>32,"t"=>2]]],"spider_crd_weight"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_crd_weight","u"=>32,"t"=>2]]],"spider_delete_all_rows_type"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_delete_all_rows_type","u"=>32,"t"=>2]]],"spider_direct_dup_insert"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_direct_dup_insert","u"=>32,"t"=>2]]],"spider_direct_order_limit"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_direct_order_limit","u"=>32,"t"=>2]]],"spider_dry_access"=>["d"=>false,"t"=>2,"a"=>[["a"=>"spider_dry_access","u"=>32,"t"=>2]]],"spider_error_read_mode"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_error_read_mode","u"=>32,"t"=>2]]],"spider_error_write_mode"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_error_write_mode","u"=>32,"t"=>2]]],"spider_first_read"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_first_read","u"=>32,"t"=>2]]],"spider_force_commit"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_force_commit","u"=>32,"t"=>2]]],"spider_general_log"=>["d"=>true,"t"=>2,"a"=>[["a"=>"spider_general_log","u"=>32,"t"=>2]]],"spider_index_hint_pushdown"=>["d"=>true,"t"=>2,"a"=>[["a"=>"spider_index_hint_pushdown","u"=>32,"t"=>2]]],"spider_init_sql_alloc_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_init_sql_alloc_size","u"=>32,"t"=>2]]],"spider_internal_limit"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_internal_limit","u"=>32,"t"=>2]]],"spider_internal_offset"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_internal_offset","u"=>32,"t"=>2]]],"spider_internal_optimize"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_internal_optimize","u"=>32,"t"=>2]]],"spider_internal_optimize_local"=>["a"=>[["a"=>"spider_internal_optimize_local","u"=>32,"t"=>2]]],"spider_internal_sql_log_off"=>["d"=>true,"t"=>2,"a"=>[["a"=>"spider_internal_sql_log_off","u"=>32,"t"=>2]]],"spider_internal_unlock"=>["t"=>2,"a"=>[["a"=>"spider_internal_unlock","u"=>32,"t"=>2]]],"spider_internal_xa"=>["d"=>true,"t"=>2,"a"=>[["a"=>"spider_internal_xa","u"=>32,"t"=>2]]],"spider_internal_xa_id_type"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_internal_xa_id_type","u"=>32,"t"=>2]]],"spider_internal_xa_snapshot"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_internal_xa_snapshot","u"=>32,"t"=>2]]],"spider_load_crd_at_startup"=>["d"=>true,"t"=>2,"a"=>[["a"=>"spider_load_crd_at_startup","u"=>32,"t"=>2]]],"spider_load_sts_at_startup"=>["d"=>true,"t"=>2,"a"=>[["a"=>"spider_load_sts_at_startup","u"=>32,"t"=>2]]],"spider_local_lock_table"=>["d"=>true,"t"=>2,"a"=>[["a"=>"spider_local_lock_table","u"=>32,"t"=>2]]],"spider_lock_exchange"=>["d"=>true,"t"=>2,"a"=>[["a"=>"spider_lock_exchange","u"=>32,"t"=>2]]],"spider_log_result_error_with_sql"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_log_result_error_with_sql","u"=>32,"t"=>2]]],"spider_log_result_errors"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_log_result_errors","u"=>32,"t"=>2]]],"spider_low_mem_read"=>["t"=>3,"a"=>[["a"=>"spider_low_mem_read","u"=>32,"t"=>2]]],"spider_max_connections"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_max_connections","u"=>32,"t"=>2]]],"spider_max_order"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_max_order","u"=>32,"t"=>2]]],"spider_multi_split_read"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_multi_split_read","u"=>32,"t"=>2]]],"spider_net_read_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_net_read_timeout","u"=>32,"t"=>2]]],"spider_net_write_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_net_write_timeout","u"=>32,"t"=>2]]],"spider_ping_interval_at_trx_start"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_ping_interval_at_trx_start","u"=>32,"t"=>2]]],"spider_quick_mode"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_quick_mode","u"=>32,"t"=>2]]],"spider_quick_page_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_quick_page_size","u"=>32,"t"=>2]]],"spider_read_only_mode"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_read_only_mode","u"=>32,"t"=>2]]],"spider_remote_access_charset"=>["d"=>true,"t"=>1,"a"=>[["a"=>"spider_remote_access_charset","u"=>32,"t"=>2]]],"spider_remote_autocommit"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_remote_autocommit","u"=>32,"t"=>2]]],"spider_remote_default_database"=>["d"=>true,"t"=>1,"a"=>[["a"=>"spider_remote_default_database","u"=>32,"t"=>2]]],"spider_remote_sql_log_off"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_remote_sql_log_off","u"=>32,"t"=>2]]],"spider_remote_time_zone"=>["d"=>true,"t"=>1,"a"=>[["a"=>"spider_remote_time_zone","u"=>32,"t"=>2]]],"spider_remote_trx_isolation"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_remote_trx_isolation","u"=>32,"t"=>2]]],"spider_reset_sql_alloc"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_reset_sql_alloc","u"=>32,"t"=>2]]],"spider_same_server_link"=>["d"=>true,"t"=>2,"a"=>[["a"=>"spider_same_server_link","u"=>32,"t"=>2]]],"spider_second_read"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_second_read","u"=>32,"t"=>2]]],"spider_select_column_mode"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_select_column_mode","u"=>32,"t"=>2]]],"spider_selupd_lock_mode"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_selupd_lock_mode","u"=>32,"t"=>2]]],"spider_semi_split_read"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_semi_split_read","u"=>32,"t"=>2]]],"spider_semi_split_read_limit"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_semi_split_read_limit","u"=>32,"t"=>2]]],"spider_semi_table_lock"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_semi_table_lock","u"=>32,"t"=>2]]],"spider_semi_table_lock_connection"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_semi_table_lock_connection","u"=>32,"t"=>2]]],"spider_semi_trx"=>["d"=>true,"t"=>2,"a"=>[["a"=>"spider_semi_trx","u"=>32,"t"=>2]]],"spider_semi_trx_isolation"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_semi_trx_isolation","u"=>32,"t"=>2]]],"spider_skip_default_condition"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_skip_default_condition","u"=>32,"t"=>2]]],"spider_skip_parallel_search"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_skip_parallel_search","u"=>32,"t"=>2]]],"spider_split_read"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_split_read","u"=>32,"t"=>2]]],"spider_store_last_crd"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_store_last_crd","u"=>32,"t"=>2]]],"spider_store_last_sts"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_store_last_sts","u"=>32,"t"=>2]]],"spider_sts_bg_mode"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_sts_bg_mode","u"=>32,"t"=>2]]],"spider_sts_interval"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_sts_interval","u"=>32,"t"=>2]]],"spider_sts_mode"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_sts_mode","u"=>32,"t"=>2]]],"spider_sts_sync"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_sts_sync","u"=>32,"t"=>2]]],"spider_support_xa"=>["d"=>false,"t"=>2,"a"=>[["a"=>"spider_support_xa","u"=>32,"t"=>2]]],"spider_sync_autocommit"=>["d"=>true,"t"=>2,"a"=>[["a"=>"spider_sync_autocommit","u"=>32,"t"=>2]]],"spider_sync_time_zone"=>["d"=>true,"t"=>2,"a"=>[["a"=>"spider_sync_time_zone","u"=>32,"t"=>2]]],"spider_sync_trx_isolation"=>["d"=>true,"t"=>2,"a"=>[["a"=>"spider_sync_trx_isolation","u"=>32,"t"=>2]]],"spider_table_crd_thread_count"=>["d"=>false,"t"=>3,"a"=>[["a"=>"spider_table_crd_thread_count","u"=>32,"t"=>2]]],"spider_table_init_error_interval"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_table_init_error_interval","u"=>32,"t"=>2]]],"spider_table_sts_thread_count"=>["d"=>false,"t"=>3,"a"=>[["a"=>"spider_table_sts_thread_count","u"=>32,"t"=>2]]],"spider_udf_ct_bulk_insert_interval"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_udf_ct_bulk_insert_interval","u"=>32,"t"=>2]]],"spider_udf_ct_bulk_insert_rows"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_udf_ct_bulk_insert_rows","u"=>32,"t"=>2]]],"spider_udf_ds_bulk_insert_rows"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_udf_ds_bulk_insert_rows","u"=>32,"t"=>2]]],"spider_udf_ds_table_loop_mode"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_udf_ds_table_loop_mode","u"=>32,"t"=>2]]],"spider_udf_ds_use_real_table"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_udf_ds_use_real_table","u"=>32,"t"=>2]]],"spider_udf_table_lock_mutex_count"=>["d"=>false,"t"=>3,"a"=>[["a"=>"spider_udf_table_lock_mutex_count","u"=>32,"t"=>2]]],"spider_udf_table_mon_mutex_count"=>["d"=>false,"t"=>3,"a"=>[["a"=>"spider_udf_table_mon_mutex_count","u"=>32,"t"=>2]]],"spider_use_all_conns_snapshot"=>["d"=>true,"t"=>2,"a"=>[["a"=>"spider_use_all_conns_snapshot","u"=>32,"t"=>2]]],"spider_use_consistent_snapshot"=>["d"=>true,"t"=>2,"a"=>[["a"=>"spider_use_consistent_snapshot","u"=>32,"t"=>2]]],"spider_use_default_database"=>["d"=>true,"t"=>2,"a"=>[["a"=>"spider_use_default_database","u"=>32,"t"=>2]]],"spider_use_flash_logs"=>["d"=>true,"t"=>2,"a"=>[["a"=>"spider_use_flash_logs","u"=>32,"t"=>2]]],"spider_use_handler"=>["a"=>[["a"=>"spider_use_handler","u"=>32,"t"=>2]]],"spider_use_pushdown_udf"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_use_pushdown_udf","u"=>32,"t"=>2]]],"spider_use_snapshot_with_flush_tables"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_use_snapshot_with_flush_tables","u"=>32,"t"=>2]]],"spider_use_table_charset"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_use_table_charset","u"=>32,"t"=>2]]],"spider_version"=>["d"=>false,"t"=>1,"a"=>[["a"=>"spider_version","u"=>32,"t"=>2]]],"spider_xa_register_mode"=>["d"=>true,"t"=>3,"a"=>[["a"=>"spider_xa_register_mode","u"=>32,"t"=>2]]],"Ssl_accept_renegotiates"=>["t"=>3,"a"=>[["a"=>"ssl_accept_renegotiates","u"=>33,"t"=>2]]],"Ssl_accepts"=>["t"=>3,"a"=>[["a"=>"ssl_accepts","u"=>33,"t"=>2]]],"Ssl_callback_cache_hits"=>["t"=>3,"a"=>[["a"=>"ssl_callback_cache_hits","u"=>33,"t"=>2]]],"Ssl_cipher"=>["t"=>1,"a"=>[["a"=>"ssl_cipher","u"=>33,"t"=>2]]],"Ssl_cipher_list"=>["t"=>1,"a"=>[["a"=>"ssl_cipher_list","u"=>33,"t"=>2]]],"Ssl_client_connects"=>["t"=>3,"a"=>[["a"=>"ssl_client_connects","u"=>33,"t"=>2]]],"Ssl_connect_renegotiates"=>["t"=>3,"a"=>[["a"=>"ssl_connect_renegotiates","u"=>33,"t"=>2]]],"Ssl_ctx_verify_depth"=>["t"=>3,"a"=>[["a"=>"ssl_ctx_verify_depth","u"=>33,"t"=>2]]],"Ssl_ctx_verify_mode"=>["t"=>3,"a"=>[["a"=>"ssl_ctx_verify_mode","u"=>33,"t"=>2]]],"Ssl_default_timeout"=>["t"=>3,"a"=>[["a"=>"ssl_default_timeout","u"=>33,"t"=>2]]],"Ssl_finished_accepts"=>["t"=>3,"a"=>[["a"=>"ssl_finished_accepts","u"=>33,"t"=>2]]],"Ssl_finished_connects"=>["t"=>3,"a"=>[["a"=>"ssl_finished_connects","u"=>33,"t"=>2]]],"Ssl_server_not_after"=>["t"=>3,"a"=>[["a"=>"ssl_server_not_after","u"=>33,"t"=>2]]],"Ssl_server_not_before"=>["t"=>3,"a"=>[["a"=>"ssl_server_not_before","u"=>33,"t"=>2]]],"Ssl_session_cache_hits"=>["t"=>3,"a"=>[["a"=>"ssl_session_cache_hits","u"=>33,"t"=>2]]],"Ssl_session_cache_misses"=>["t"=>3,"a"=>[["a"=>"ssl_session_cache_misses","u"=>33,"t"=>2]]],"Ssl_session_cache_mode"=>["t"=>1,"a"=>[["a"=>"ssl_session_cache_mode","u"=>33,"t"=>2]]],"Ssl_session_cache_overflows"=>["t"=>3,"a"=>[["a"=>"ssl_session_cache_overflows","u"=>33,"t"=>2]]],"Ssl_session_cache_size"=>["t"=>3,"a"=>[["a"=>"ssl_session_cache_size","u"=>33,"t"=>2]]],"Ssl_session_cache_timeouts"=>["t"=>3,"a"=>[["a"=>"ssl_session_cache_timeouts","u"=>33,"t"=>2]]],"Ssl_sessions_reused"=>["t"=>3,"a"=>[["a"=>"ssl_sessions_reused","u"=>33,"t"=>2]]],"Ssl_used_session_cache_entries"=>["t"=>3,"a"=>[["a"=>"ssl_used_session_cache_entries","u"=>33,"t"=>2]]],"Ssl_verify_depth"=>["t"=>3,"a"=>[["a"=>"ssl_verify_depth","u"=>33,"t"=>2]]],"Ssl_verify_mode"=>["t"=>3,"a"=>[["a"=>"ssl_verify_mode","u"=>33,"t"=>2]]],"Ssl_version"=>["t"=>1,"a"=>[["a"=>"ssl_version","u"=>33,"t"=>2]]],"have_openssl"=>["d"=>false,"a"=>[["a"=>"have_openssl","u"=>34,"t"=>2]]],"have_ssl"=>["d"=>false,"t"=>1,"a"=>[["a"=>"have_ssl","u"=>34,"t"=>2],["a"=>"sysvar_have_ssl","u"=>15,"t"=>1]]],"ssl_ca"=>["t"=>8,"a"=>[["a"=>"ssl_ca","u"=>34,"t"=>2],["a"=>"sysvar_ssl_ca","u"=>15,"t"=>1]]],"ssl_capath"=>["t"=>7,"a"=>[["a"=>"ssl_capath","u"=>34,"t"=>2],["a"=>"sysvar_ssl_capath","u"=>15,"t"=>1]]],"ssl_cert"=>["t"=>8,"a"=>[["a"=>"ssl_cert","u"=>34,"t"=>2],["a"=>"sysvar_ssl_cert","u"=>15,"t"=>1]]],"ssl_cipher"=>["t"=>1,"a"=>[["a"=>"ssl_cipher","u"=>34,"t"=>2],["a"=>"sysvar_ssl_cipher","u"=>15,"t"=>1]]],"ssl_crl"=>["t"=>8,"a"=>[["a"=>"ssl_crl","u"=>34,"t"=>2],["a"=>"sysvar_ssl_crl","u"=>15,"t"=>1]]],"ssl_crlpath"=>["t"=>7,"a"=>[["a"=>"ssl_crlpath","u"=>34,"t"=>2],["a"=>"sysvar_ssl_crlpath","u"=>15,"t"=>1]]],"ssl_key"=>["a"=>[["a"=>"ssl_key","u"=>34,"t"=>2],["a"=>"sysvar_ssl_key","u"=>15,"t"=>1]]],"tls_version"=>["t"=>1,"a"=>[["a"=>"tls_version","u"=>34,"t"=>2],["a"=>"sysvar_tls_version","u"=>15,"t"=>1]]],"version_ssl_library"=>["d"=>false,"t"=>1,"a"=>[["a"=>"version_ssl_library","u"=>34,"t"=>2]]],"extra_max_connections"=>["d"=>true,"t"=>3,"a"=>[["a"=>"extra_max_connections","u"=>35,"t"=>2]]],"extra_port"=>["d"=>false,"t"=>3,"a"=>[["a"=>"extra_port","u"=>35,"t"=>2]]],"thread_handling"=>["d"=>false,"t"=>5,"a"=>[["a"=>"thread_handling","u"=>35,"t"=>2],["a"=>"sysvar_thread_handling","u"=>15,"t"=>1]]],"thread_pool_dedicated_listener"=>["d"=>false,"t"=>2,"a"=>[["a"=>"thread_pool_dedicated_listener","u"=>35,"t"=>2]]],"thread_pool_exact_stats"=>["d"=>false,"t"=>2,"a"=>[["a"=>"thread_pool_exact_stats","u"=>35,"t"=>2]]],"thread_pool_idle_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"thread_pool_idle_timeout","u"=>35,"t"=>2]]],"thread_pool_max_threads"=>["d"=>true,"t"=>3,"a"=>[["a"=>"thread_pool_max_threads","u"=>35,"t"=>2]]],"thread_pool_min_threads"=>["t"=>3,"a"=>[["a"=>"thread_pool_min_threads","u"=>35,"t"=>2]]],"thread_pool_oversubscribe"=>["d"=>true,"t"=>3,"a"=>[["a"=>"thread_pool_oversubscribe","u"=>35,"t"=>2]]],"thread_pool_prio_kickup_timer"=>["d"=>true,"t"=>3,"a"=>[["a"=>"thread_pool_prio_kickup_timer","u"=>35,"t"=>2],["a"=>"sysvar_thread_pool_prio_kickup_timer","u"=>15,"t"=>1]]],"thread_pool_priority"=>["a"=>[["a"=>"thread_pool_priority","u"=>35,"t"=>2]]],"thread_pool_size"=>["t"=>3,"a"=>[["a"=>"thread_pool_size","u"=>35,"t"=>2],["a"=>"sysvar_thread_pool_size","u"=>15,"t"=>1]]],"thread_pool_stall_limit"=>["d"=>true,"t"=>3,"a"=>[["a"=>"thread_pool_stall_limit","u"=>35,"t"=>2],["a"=>"sysvar_thread_pool_stall_limit","u"=>15,"t"=>1]]],"Threadpool_idle_threads"=>["t"=>3,"a"=>[["a"=>"threadpool_idle_threads","u"=>35,"t"=>2]]],"Threadpool_threads"=>["t"=>3,"a"=>[["a"=>"threadpool_threads","u"=>35,"t"=>2]]],"Tokudb_basement_deserialization_fixed_key"=>["t"=>3,"a"=>[["a"=>"tokudb_basement_deserialization_fixed_key","u"=>36,"t"=>2]]],"Tokudb_basement_deserialization_variable_key"=>["t"=>3,"a"=>[["a"=>"tokudb_basement_deserialization_variable_key","u"=>36,"t"=>2]]],"Tokudb_basements_decompressed_for_write"=>["t"=>3,"a"=>[["a"=>"tokudb_basements_decompressed_for_write","u"=>36,"t"=>2]]],"Tokudb_basements_decompressed_prefetch"=>["t"=>3,"a"=>[["a"=>"tokudb_basements_decompressed_prefetch","u"=>36,"t"=>2]]],"Tokudb_basements_decompressed_prelocked_range"=>["t"=>3,"a"=>[["a"=>"tokudb_basements_decompressed_prelocked_range","u"=>36,"t"=>2]]],"Tokudb_basements_decompressed_target_query"=>["t"=>3,"a"=>[["a"=>"tokudb_basements_decompressed_target_query","u"=>36,"t"=>2]]],"Tokudb_basements_fetched_for_write"=>["t"=>3,"a"=>[["a"=>"tokudb_basements_fetched_for_write","u"=>36,"t"=>2]]],"Tokudb_basements_fetched_for_write_bytes"=>["a"=>[["a"=>"tokudb_basements_fetched_for_write_bytes","u"=>36,"t"=>2]]],"Tokudb_basements_fetched_for_write_seconds"=>["t"=>3,"a"=>[["a"=>"tokudb_basements_fetched_for_write_seconds","u"=>36,"t"=>2]]],"Tokudb_basements_fetched_prefetch"=>["t"=>3,"a"=>[["a"=>"tokudb_basements_fetched_prefetch","u"=>36,"t"=>2]]],"Tokudb_basements_fetched_prefetch_bytes"=>["a"=>[["a"=>"tokudb_basements_fetched_prefetch_bytes","u"=>36,"t"=>2]]],"Tokudb_basements_fetched_prefetch_seconds"=>["t"=>3,"a"=>[["a"=>"tokudb_basements_fetched_prefetch_seconds","u"=>36,"t"=>2]]],"Tokudb_basements_fetched_prelocked_range"=>["t"=>3,"a"=>[["a"=>"tokudb_basements_fetched_prelocked_range","u"=>36,"t"=>2]]],"Tokudb_basements_fetched_prelocked_range_bytes"=>["a"=>[["a"=>"tokudb_basements_fetched_prelocked_range_bytes","u"=>36,"t"=>2]]],"Tokudb_basements_fetched_prelocked_range_seconds"=>["t"=>3,"a"=>[["a"=>"tokudb_basements_fetched_prelocked_range_seconds","u"=>36,"t"=>2]]],"Tokudb_basements_fetched_target_query"=>["t"=>3,"a"=>[["a"=>"tokudb_basements_fetched_target_query","u"=>36,"t"=>2]]],"Tokudb_basements_fetched_target_query_bytes"=>["a"=>[["a"=>"tokudb_basements_fetched_target_query_bytes","u"=>36,"t"=>2]]],"Tokudb_basements_fetched_target_query_seconds"=>["t"=>3,"a"=>[["a"=>"tokudb_basements_fetched_target_query_seconds","u"=>36,"t"=>2]]],"Tokudb_broadcase_messages_injected_at_root"=>["t"=>3,"a"=>[["a"=>"tokudb_broadcase_messages_injected_at_root","u"=>36,"t"=>2]]],"Tokudb_buffers_decompressed_for_write"=>["t"=>3,"a"=>[["a"=>"tokudb_buffers_decompressed_for_write","u"=>36,"t"=>2]]],"Tokudb_buffers_decompressed_prefetch"=>["t"=>3,"a"=>[["a"=>"tokudb_buffers_decompressed_prefetch","u"=>36,"t"=>2]]],"Tokudb_buffers_decompressed_prelocked_range"=>["t"=>3,"a"=>[["a"=>"tokudb_buffers_decompressed_prelocked_range","u"=>36,"t"=>2]]],"Tokudb_buffers_decompressed_target_query"=>["t"=>3,"a"=>[["a"=>"tokudb_buffers_decompressed_target_query","u"=>36,"t"=>2]]],"Tokudb_buffers_fetched_for_write"=>["t"=>3,"a"=>[["a"=>"tokudb_buffers_fetched_for_write","u"=>36,"t"=>2]]],"Tokudb_buffers_fetched_for_write_bytes"=>["a"=>[["a"=>"tokudb_buffers_fetched_for_write_bytes","u"=>36,"t"=>2]]],"Tokudb_buffers_fetched_for_write_seconds"=>["t"=>3,"a"=>[["a"=>"tokudb_buffers_fetched_for_write_seconds","u"=>36,"t"=>2]]],"Tokudb_buffers_fetched_prefetch"=>["t"=>3,"a"=>[["a"=>"tokudb_buffers_fetched_prefetch","u"=>36,"t"=>2]]],"Tokudb_buffers_fetched_prefetch_bytes"=>["a"=>[["a"=>"tokudb_buffers_fetched_prefetch_bytes","u"=>36,"t"=>2]]],"Tokudb_buffers_fetched_prefetch_seconds"=>["t"=>3,"a"=>[["a"=>"tokudb_buffers_fetched_prefetch_seconds","u"=>36,"t"=>2]]],"Tokudb_buffers_fetched_prelocked_range"=>["t"=>3,"a"=>[["a"=>"tokudb_buffers_fetched_prelocked_range","u"=>36,"t"=>2]]],"Tokudb_buffers_fetched_prelocked_range_bytes"=>["a"=>[["a"=>"tokudb_buffers_fetched_prelocked_range_bytes","u"=>36,"t"=>2]]],"Tokudb_buffers_fetched_prelocked_range_seconds"=>["t"=>3,"a"=>[["a"=>"tokudb_buffers_fetched_prelocked_range_seconds","u"=>36,"t"=>2]]],"Tokudb_buffers_fetched_target_query"=>["t"=>3,"a"=>[["a"=>"tokudb_buffers_fetched_target_query","u"=>36,"t"=>2]]],"Tokudb_buffers_fetched_target_query_bytes"=>["a"=>[["a"=>"tokudb_buffers_fetched_target_query_bytes","u"=>36,"t"=>2]]],"Tokudb_buffers_fetched_target_query_seconds"=>["t"=>3,"a"=>[["a"=>"tokudb_buffers_fetched_target_query_seconds","u"=>36,"t"=>2]]],"Tokudb_cachetable_cleaner_executions"=>["t"=>3,"a"=>[["a"=>"tokudb_cachetable_cleaner_executions","u"=>36,"t"=>2]]],"Tokudb_cachetable_cleaner_iterations"=>["t"=>3,"a"=>[["a"=>"tokudb_cachetable_cleaner_iterations","u"=>36,"t"=>2]]],"Tokudb_cachetable_cleaner_period"=>["t"=>3,"a"=>[["a"=>"tokudb_cachetable_cleaner_period","u"=>36,"t"=>2]]],"Tokudb_cachetable_evictions"=>["t"=>3,"a"=>[["a"=>"tokudb_cachetable_evictions","u"=>36,"t"=>2]]],"Tokudb_cachetable_long_wait_pressure_count"=>["t"=>3,"a"=>[["a"=>"tokudb_cachetable_long_wait_pressure_count","u"=>36,"t"=>2]]],"Tokudb_cachetable_long_wait_pressure_time"=>["t"=>3,"a"=>[["a"=>"tokudb_cachetable_long_wait_pressure_time","u"=>36,"t"=>2]]],"Tokudb_cachetable_miss"=>["t"=>3,"a"=>[["a"=>"tokudb_cachetable_miss","u"=>36,"t"=>2]]],"Tokudb_cachetable_miss_time"=>["t"=>3,"a"=>[["a"=>"tokudb_cachetable_miss_time","u"=>36,"t"=>2]]],"Tokudb_cachetable_prefetches"=>["t"=>3,"a"=>[["a"=>"tokudb_cachetable_prefetches","u"=>36,"t"=>2]]],"Tokudb_cachetable_size_cachepressure"=>["t"=>9,"a"=>[["a"=>"tokudb_cachetable_size_cachepressure","u"=>36,"t"=>2]]],"Tokudb_cachetable_size_cloned"=>["t"=>9,"a"=>[["a"=>"tokudb_cachetable_size_cloned","u"=>36,"t"=>2]]],"Tokudb_cachetable_size_current"=>["t"=>9,"a"=>[["a"=>"tokudb_cachetable_size_current","u"=>36,"t"=>2]]],"Tokudb_cachetable_size_leaf"=>["t"=>9,"a"=>[["a"=>"tokudb_cachetable_size_leaf","u"=>36,"t"=>2]]],"Tokudb_cachetable_size_limit"=>["t"=>9,"a"=>[["a"=>"tokudb_cachetable_size_limit","u"=>36,"t"=>2]]],"Tokudb_cachetable_size_nonleaf"=>["t"=>9,"a"=>[["a"=>"tokudb_cachetable_size_nonleaf","u"=>36,"t"=>2]]],"Tokudb_cachetable_size_rollback"=>["t"=>9,"a"=>[["a"=>"tokudb_cachetable_size_rollback","u"=>36,"t"=>2]]],"Tokudb_cachetable_size_writing"=>["t"=>9,"a"=>[["a"=>"tokudb_cachetable_size_writing","u"=>36,"t"=>2]]],"Tokudb_cachetable_wait_pressure_count"=>["t"=>3,"a"=>[["a"=>"tokudb_cachetable_wait_pressure_count","u"=>36,"t"=>2]]],"Tokudb_cachetable_wait_pressure_time"=>["t"=>3,"a"=>[["a"=>"tokudb_cachetable_wait_pressure_time","u"=>36,"t"=>2]]],"Tokudb_checkpoint_begin_time"=>["t"=>3,"a"=>[["a"=>"tokudb_checkpoint_begin_time","u"=>36,"t"=>2]]],"Tokudb_checkpoint_duration"=>["t"=>3,"a"=>[["a"=>"tokudb_checkpoint_duration","u"=>36,"t"=>2]]],"Tokudb_checkpoint_duration_last"=>["t"=>3,"a"=>[["a"=>"tokudb_checkpoint_duration_last","u"=>36,"t"=>2]]],"Tokudb_checkpoint_failed"=>["t"=>3,"a"=>[["a"=>"tokudb_checkpoint_failed","u"=>36,"t"=>2]]],"Tokudb_checkpoint_last_began"=>["a"=>[["a"=>"tokudb_checkpoint_last_began","u"=>36,"t"=>2]]],"Tokudb_checkpoint_last_complete_began"=>["a"=>[["a"=>"tokudb_checkpoint_last_complete_began","u"=>36,"t"=>2]]],"Tokudb_checkpoint_last_complete_ended"=>["a"=>[["a"=>"tokudb_checkpoint_last_complete_ended","u"=>36,"t"=>2]]],"Tokudb_checkpoint_long_begin_count"=>["t"=>3,"a"=>[["a"=>"tokudb_checkpoint_long_begin_count","u"=>36,"t"=>2]]],"Tokudb_checkpoint_long_begin_time"=>["t"=>3,"a"=>[["a"=>"tokudb_checkpoint_long_begin_time","u"=>36,"t"=>2]]],"Tokudb_checkpoint_period"=>["t"=>3,"a"=>[["a"=>"tokudb_checkpoint_period","u"=>36,"t"=>2]]],"Tokudb_checkpoint_taken"=>["t"=>3,"a"=>[["a"=>"tokudb_checkpoint_taken","u"=>36,"t"=>2]]],"Tokudb_cursor_skip_deleted_leaf_entry"=>["a"=>[["a"=>"tokudb_cursor_skip_deleted_leaf_entry","u"=>36,"t"=>2]]],"Tokudb_db_closes"=>["t"=>3,"a"=>[["a"=>"tokudb_db_closes","u"=>36,"t"=>2]]],"Tokudb_db_open_current"=>["t"=>3,"a"=>[["a"=>"tokudb_db_open_current","u"=>36,"t"=>2]]],"Tokudb_db_open_max"=>["t"=>3,"a"=>[["a"=>"tokudb_db_open_max","u"=>36,"t"=>2]]],"Tokudb_db_opens"=>["t"=>3,"a"=>[["a"=>"tokudb_db_opens","u"=>36,"t"=>2]]],"Tokudb_descriptor_set"=>["t"=>3,"a"=>[["a"=>"tokudb_descriptor_set","u"=>36,"t"=>2]]],"Tokudb_dictionary_broadcast_updates"=>["t"=>3,"a"=>[["a"=>"tokudb_dictionary_broadcast_updates","u"=>36,"t"=>2]]],"Tokudb_dictionary_updates"=>["t"=>3,"a"=>[["a"=>"tokudb_dictionary_updates","u"=>36,"t"=>2]]],"Tokudb_filesystem_fsync_num"=>["t"=>3,"a"=>[["a"=>"tokudb_filesystem_fsync_num","u"=>36,"t"=>2]]],"Tokudb_filesystem_fsync_time"=>["t"=>3,"a"=>[["a"=>"tokudb_filesystem_fsync_time","u"=>36,"t"=>2]]],"Tokudb_filesystem_long_fsync_num"=>["t"=>3,"a"=>[["a"=>"tokudb_filesystem_long_fsync_num","u"=>36,"t"=>2]]],"Tokudb_filesystem_long_fsync_time"=>["t"=>3,"a"=>[["a"=>"tokudb_filesystem_long_fsync_time","u"=>36,"t"=>2]]],"Tokudb_filesystem_threads_blocked_by_full_disk"=>["t"=>3,"a"=>[["a"=>"tokudb_filesystem_threads_blocked_by_full_disk","u"=>36,"t"=>2]]],"Tokudb_leaf_compression_to_memory_seconds"=>["t"=>3,"a"=>[["a"=>"tokudb_leaf_compression_to_memory_seconds","u"=>36,"t"=>2]]],"Tokudb_leaf_decompression_to_memory_seconds"=>["t"=>3,"a"=>[["a"=>"tokudb_leaf_decompression_to_memory_seconds","u"=>36,"t"=>2]]],"Tokudb_leaf_deserialization_to_memory_seconds"=>["t"=>3,"a"=>[["a"=>"tokudb_leaf_deserialization_to_memory_seconds","u"=>36,"t"=>2]]],"Tokudb_leaf_node_compression_ratio"=>["a"=>[["a"=>"tokudb_leaf_node_compression_ratio","u"=>36,"t"=>2]]],"Tokudb_leaf_node_full_evictions"=>["t"=>3,"a"=>[["a"=>"tokudb_leaf_node_full_evictions","u"=>36,"t"=>2]]],"Tokudb_leaf_node_full_evictions_bytes"=>["a"=>[["a"=>"tokudb_leaf_node_full_evictions_bytes","u"=>36,"t"=>2]]],"Tokudb_leaf_node_partial_evictions"=>["t"=>3,"a"=>[["a"=>"tokudb_leaf_node_partial_evictions","u"=>36,"t"=>2]]],"Tokudb_leaf_node_partial_evictions_bytes"=>["a"=>[["a"=>"tokudb_leaf_node_partial_evictions_bytes","u"=>36,"t"=>2]]],"Tokudb_leaf_nodes_created"=>["t"=>3,"a"=>[["a"=>"tokudb_leaf_nodes_created","u"=>36,"t"=>2]]],"Tokudb_leaf_nodes_destroyed"=>["t"=>3,"a"=>[["a"=>"tokudb_leaf_nodes_destroyed","u"=>36,"t"=>2]]],"Tokudb_leaf_nodes_flushed_checkpoint"=>["t"=>3,"a"=>[["a"=>"tokudb_leaf_nodes_flushed_checkpoint","u"=>36,"t"=>2]]],"Tokudb_leaf_nodes_flushed_checkpoint_bytes"=>["t"=>9,"a"=>[["a"=>"tokudb_leaf_nodes_flushed_checkpoint_bytes","u"=>36,"t"=>2]]],"Tokudb_leaf_nodes_flushed_checkpoint_seconds"=>["t"=>3,"a"=>[["a"=>"tokudb_leaf_nodes_flushed_checkpoint_seconds","u"=>36,"t"=>2]]],"Tokudb_leaf_nodes_flushed_checkpoint_uncompressed_bytes"=>["a"=>[["a"=>"tokudb_leaf_nodes_flushed_checkpoint_uncompressed_bytes","u"=>36,"t"=>2]]],"Tokudb_leaf_nodes_flushed_not_checkpoint"=>["t"=>3,"a"=>[["a"=>"tokudb_leaf_nodes_flushed_not_checkpoint","u"=>36,"t"=>2]]],"Tokudb_leaf_nodes_flushed_not_checkpoint_bytes"=>["t"=>9,"a"=>[["a"=>"tokudb_leaf_nodes_flushed_not_checkpoint_bytes","u"=>36,"t"=>2]]],"Tokudb_leaf_nodes_flushed_not_checkpoint_seconds"=>["t"=>3,"a"=>[["a"=>"tokudb_leaf_nodes_flushed_not_checkpoint_seconds","u"=>36,"t"=>2]]],"Tokudb_leaf_nodes_flushed_not_checkpoint_uncompressed_bytes"=>["a"=>[["a"=>"tokudb_leaf_nodes_flushed_not_checkpoint_uncompressed_bytes","u"=>36,"t"=>2]]],"Tokudb_leaf_serialization_to_memory_seconds"=>["t"=>3,"a"=>[["a"=>"tokudb_leaf_serialization_to_memory_seconds","u"=>36,"t"=>2]]],"Tokudb_loader_num_created"=>["t"=>3,"a"=>[["a"=>"tokudb_loader_num_created","u"=>36,"t"=>2]]],"Tokudb_loader_num_current"=>["t"=>3,"a"=>[["a"=>"tokudb_loader_num_current","u"=>36,"t"=>2]]],"Tokudb_loader_num_max"=>["t"=>3,"a"=>[["a"=>"tokudb_loader_num_max","u"=>36,"t"=>2]]],"Tokudb_locktree_escalation_num"=>["t"=>3,"a"=>[["a"=>"tokudb_locktree_escalation_num","u"=>36,"t"=>2]]],"Tokudb_locktree_escalation_seconds"=>["t"=>3,"a"=>[["a"=>"tokudb_locktree_escalation_seconds","u"=>36,"t"=>2]]],"Tokudb_locktree_latest_post_escalation_memory_size"=>["t"=>9,"a"=>[["a"=>"tokudb_locktree_latest_post_escalation_memory_size","u"=>36,"t"=>2]]],"Tokudb_locktree_long_wait_count"=>["t"=>3,"a"=>[["a"=>"tokudb_locktree_long_wait_count","u"=>36,"t"=>2]]],"Tokudb_locktree_long_wait_escalation_count"=>["t"=>3,"a"=>[["a"=>"tokudb_locktree_long_wait_escalation_count","u"=>36,"t"=>2]]],"Tokudb_locktree_long_wait_escalation_time"=>["t"=>3,"a"=>[["a"=>"tokudb_locktree_long_wait_escalation_time","u"=>36,"t"=>2]]],"Tokudb_locktree_long_wait_time"=>["t"=>3,"a"=>[["a"=>"tokudb_locktree_long_wait_time","u"=>36,"t"=>2]]],"Tokudb_locktree_memory_size"=>["t"=>9,"a"=>[["a"=>"tokudb_locktree_memory_size","u"=>36,"t"=>2]]],"Tokudb_locktree_memory_size_limit"=>["t"=>9,"a"=>[["a"=>"tokudb_locktree_memory_size_limit","u"=>36,"t"=>2]]],"Tokudb_locktree_open_current"=>["t"=>3,"a"=>[["a"=>"tokudb_locktree_open_current","u"=>36,"t"=>2]]],"Tokudb_locktree_pending_lock_requests"=>["t"=>3,"a"=>[["a"=>"tokudb_locktree_pending_lock_requests","u"=>36,"t"=>2]]],"Tokudb_locktree_sto_eligible_num"=>["t"=>3,"a"=>[["a"=>"tokudb_locktree_sto_eligible_num","u"=>36,"t"=>2]]],"Tokudb_locktree_sto_ended_num"=>["t"=>3,"a"=>[["a"=>"tokudb_locktree_sto_ended_num","u"=>36,"t"=>2]]],"Tokudb_locktree_sto_ended_seconds"=>["t"=>3,"a"=>[["a"=>"tokudb_locktree_sto_ended_seconds","u"=>36,"t"=>2]]],"Tokudb_locktree_timeout_count"=>["t"=>3,"a"=>[["a"=>"tokudb_locktree_timeout_count","u"=>36,"t"=>2]]],"Tokudb_locktree_wait_count"=>["t"=>3,"a"=>[["a"=>"tokudb_locktree_wait_count","u"=>36,"t"=>2]]],"Tokudb_locktree_wait_escalation_count"=>["t"=>3,"a"=>[["a"=>"tokudb_locktree_wait_escalation_count","u"=>36,"t"=>2]]],"Tokudb_locktree_wait_escalation_time"=>["t"=>3,"a"=>[["a"=>"tokudb_locktree_wait_escalation_time","u"=>36,"t"=>2]]],"Tokudb_locktree_wait_time"=>["t"=>3,"a"=>[["a"=>"tokudb_locktree_wait_time","u"=>36,"t"=>2]]],"Tokudb_logger_wait_long"=>["a"=>[["a"=>"tokudb_logger_wait_long","u"=>36,"t"=>2]]],"Tokudb_logger_writes"=>["t"=>3,"a"=>[["a"=>"tokudb_logger_writes","u"=>36,"t"=>2]]],"Tokudb_logger_writes_bytes"=>["a"=>[["a"=>"tokudb_logger_writes_bytes","u"=>36,"t"=>2]]],"Tokudb_logger_writes_seconds"=>["t"=>3,"a"=>[["a"=>"tokudb_logger_writes_seconds","u"=>36,"t"=>2]]],"Tokudb_logger_writes_uncompressed_bytes"=>["a"=>[["a"=>"tokudb_logger_writes_uncompressed_bytes","u"=>36,"t"=>2]]],"Tokudb_mem_estimated_maximum_memory_footprint"=>["a"=>[["a"=>"tokudb_mem_estimated_maximum_memory_footprint","u"=>36,"t"=>2]]],"Tokudb_messages_flushed_from_h1_to_leaves_bytes"=>["a"=>[["a"=>"tokudb_messages_flushed_from_h1_to_leaves_bytes","u"=>36,"t"=>2]]],"Tokudb_messages_ignored_by_leaf_due_to_msn"=>["t"=>3,"a"=>[["a"=>"tokudb_messages_ignored_by_leaf_due_to_msn","u"=>36,"t"=>2]]],"Tokudb_messages_in_trees_estimate_bytes"=>["a"=>[["a"=>"tokudb_messages_in_trees_estimate_bytes","u"=>36,"t"=>2]]],"Tokudb_messages_injected_at_root"=>["t"=>3,"a"=>[["a"=>"tokudb_messages_injected_at_root","u"=>36,"t"=>2]]],"Tokudb_messages_injected_at_root_bytes"=>["a"=>[["a"=>"tokudb_messages_injected_at_root_bytes","u"=>36,"t"=>2]]],"Tokudb_nonleaf_compression_to_memory_seconds"=>["t"=>3,"a"=>[["a"=>"tokudb_nonleaf_compression_to_memory_seconds","u"=>36,"t"=>2]]],"Tokudb_nonleaf_decompression_to_memory_seconds"=>["t"=>3,"a"=>[["a"=>"tokudb_nonleaf_decompression_to_memory_seconds","u"=>36,"t"=>2]]],"Tokudb_nonleaf_deserialization_to_memory_seconds"=>["t"=>3,"a"=>[["a"=>"tokudb_nonleaf_deserialization_to_memory_seconds","u"=>36,"t"=>2]]],"Tokudb_nonleaf_node_compression_ratio"=>["a"=>[["a"=>"tokudb_nonleaf_node_compression_ratio","u"=>36,"t"=>2]]],"Tokudb_nonleaf_node_full_evictions"=>["t"=>3,"a"=>[["a"=>"tokudb_nonleaf_node_full_evictions","u"=>36,"t"=>2]]],"Tokudb_nonleaf_node_full_evictions_bytes"=>["a"=>[["a"=>"tokudb_nonleaf_node_full_evictions_bytes","u"=>36,"t"=>2]]],"Tokudb_nonleaf_node_partial_evictions"=>["t"=>3,"a"=>[["a"=>"tokudb_nonleaf_node_partial_evictions","u"=>36,"t"=>2]]],"Tokudb_nonleaf_node_partial_evictions_bytes"=>["a"=>[["a"=>"tokudb_nonleaf_node_partial_evictions_bytes","u"=>36,"t"=>2]]],"Tokudb_nonleaf_nodes_created"=>["t"=>3,"a"=>[["a"=>"tokudb_nonleaf_nodes_created","u"=>36,"t"=>2]]],"Tokudb_nonleaf_nodes_destroyed"=>["t"=>3,"a"=>[["a"=>"tokudb_nonleaf_nodes_destroyed","u"=>36,"t"=>2]]],"Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint"=>["t"=>3,"a"=>[["a"=>"tokudb_nonleaf_nodes_flushed_to_disk_checkpoint","u"=>36,"t"=>2]]],"Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_bytes"=>["t"=>9,"a"=>[["a"=>"tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_bytes","u"=>36,"t"=>2]]],"Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_seconds"=>["t"=>3,"a"=>[["a"=>"tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_seconds","u"=>36,"t"=>2]]],"Tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_uncompressed_bytes"=>["a"=>[["a"=>"tokudb_nonleaf_nodes_flushed_to_disk_checkpoint_uncompressed_bytes","u"=>36,"t"=>2]]],"Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint"=>["t"=>3,"a"=>[["a"=>"tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint","u"=>36,"t"=>2]]],"Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_bytes"=>["t"=>9,"a"=>[["a"=>"tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_bytes","u"=>36,"t"=>2]]],"Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_seconds"=>["t"=>3,"a"=>[["a"=>"tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_seconds","u"=>36,"t"=>2]]],"Tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_uncompressed_bytes"=>["a"=>[["a"=>"tokudb_nonleaf_nodes_flushed_to_disk_not_checkpoint_uncompressed_bytes","u"=>36,"t"=>2]]],"Tokudb_nonleaf_serialization_to_memory_seconds"=>["t"=>3,"a"=>[["a"=>"tokudb_nonleaf_serialization_to_memory_seconds","u"=>36,"t"=>2]]],"Tokudb_overall_node_compression_ratio"=>["a"=>[["a"=>"tokudb_overall_node_compression_ratio","u"=>36,"t"=>2]]],"Tokudb_pivots_fetched_for_query"=>["t"=>3,"a"=>[["a"=>"tokudb_pivots_fetched_for_query","u"=>36,"t"=>2]]],"Tokudb_pivots_fetched_for_query_bytes"=>["t"=>9,"a"=>[["a"=>"tokudb_pivots_fetched_for_query_bytes","u"=>36,"t"=>2]]],"Tokudb_pivots_fetched_for_query_seconds"=>["t"=>3,"a"=>[["a"=>"tokudb_pivots_fetched_for_query_seconds","u"=>36,"t"=>2]]],"Tokudb_pivots_fetched_for_prefetch"=>["t"=>3,"a"=>[["a"=>"tokudb_pivots_fetched_for_prefetch","u"=>36,"t"=>2]]],"Tokudb_pivots_fetched_for_prefetch_bytes"=>["t"=>9,"a"=>[["a"=>"tokudb_pivots_fetched_for_prefetch_bytes","u"=>36,"t"=>2]]],"Tokudb_pivots_fetched_for_prefetch_seconds"=>["t"=>3,"a"=>[["a"=>"tokudb_pivots_fetched_for_prefetch_seconds","u"=>36,"t"=>2]]],"Tokudb_pivots_fetched_for_write"=>["t"=>3,"a"=>[["a"=>"tokudb_pivots_fetched_for_write","u"=>36,"t"=>2]]],"Tokudb_pivots_fetched_for_write_bytes"=>["t"=>9,"a"=>[["a"=>"tokudb_pivots_fetched_for_write_bytes","u"=>36,"t"=>2]]],"Tokudb_pivots_fetched_for_write_seconds"=>["t"=>3,"a"=>[["a"=>"tokudb_pivots_fetched_for_write_seconds","u"=>36,"t"=>2]]],"Tokudb_promotion_h1_roots_injected_into"=>["t"=>3,"a"=>[["a"=>"tokudb_promotion_h1_roots_injected_into","u"=>36,"t"=>2]]],"Tokudb_promotion_injections_at_depth_0"=>["t"=>3,"a"=>[["a"=>"tokudb_promotion_injections_at_depth_0","u"=>36,"t"=>2]]],"Tokudb_promotion_injections_at_depth_1"=>["t"=>3,"a"=>[["a"=>"tokudb_promotion_injections_at_depth_1","u"=>36,"t"=>2]]],"Tokudb_promotion_injections_at_depth_2"=>["t"=>3,"a"=>[["a"=>"tokudb_promotion_injections_at_depth_2","u"=>36,"t"=>2]]],"Tokudb_promotion_injections_at_depth_3"=>["t"=>3,"a"=>[["a"=>"tokudb_promotion_injections_at_depth_3","u"=>36,"t"=>2]]],"Tokudb_promotion_injections_lower_than_depth_3"=>["t"=>3,"a"=>[["a"=>"tokudb_promotion_injections_lower_than_depth_3","u"=>36,"t"=>2]]],"Tokudb_promotion_leaf_roots_injected_into"=>["t"=>3,"a"=>[["a"=>"tokudb_promotion_leaf_roots_injected_into","u"=>36,"t"=>2]]],"Tokudb_promotion_roots_split"=>["t"=>3,"a"=>[["a"=>"tokudb_promotion_roots_split","u"=>36,"t"=>2]]],"Tokudb_promotion_stopped_after_locking_child"=>["t"=>3,"a"=>[["a"=>"tokudb_promotion_stopped_after_locking_child","u"=>36,"t"=>2]]],"Tokudb_promotion_stopped_at_height_1"=>["t"=>3,"a"=>[["a"=>"tokudb_promotion_stopped_at_height_1","u"=>36,"t"=>2]]],"Tokudb_promotion_stopped_child_locked_or_not_in_memory"=>["t"=>3,"a"=>[["a"=>"tokudb_promotion_stopped_child_locked_or_not_in_memory","u"=>36,"t"=>2]]],"Tokudb_promotion_stopped_child_not_fully_in_memory"=>["t"=>3,"a"=>[["a"=>"tokudb_promotion_stopped_child_not_fully_in_memory","u"=>36,"t"=>2]]],"Tokudb_promotion_stopped_nonempty_buffer"=>["t"=>3,"a"=>[["a"=>"tokudb_promotion_stopped_nonempty_buffer","u"=>36,"t"=>2]]],"Tokudb_txn_aborts"=>["t"=>3,"a"=>[["a"=>"tokudb_txn_aborts","u"=>36,"t"=>2]]],"Tokudb_txn_begin"=>["t"=>3,"a"=>[["a"=>"tokudb_txn_begin","u"=>36,"t"=>2]]],"Tokudb_txn_begin_read_only"=>["t"=>3,"a"=>[["a"=>"tokudb_txn_begin_read_only","u"=>36,"t"=>2]]],"Tokudb_txn_commits"=>["t"=>3,"a"=>[["a"=>"tokudb_txn_commits","u"=>36,"t"=>2]]],"tokudb_alter_print_error"=>["d"=>true,"t"=>2,"a"=>[["a"=>"tokudb_alter_print_error","u"=>37,"t"=>2]]],"tokudb_analyze_time"=>["d"=>true,"t"=>3,"a"=>[["a"=>"tokudb_analyze_time","u"=>37,"t"=>2]]],"tokudb_block_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"tokudb_block_size","u"=>37,"t"=>2]]],"tokudb_bulk_fetch"=>["d"=>true,"t"=>2,"a"=>[["a"=>"tokudb_bulk_fetch","u"=>37,"t"=>2]]],"tokudb_cache_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"tokudb_cache_size","u"=>37,"t"=>2]]],"tokudb_check_jemalloc"=>["d"=>true,"t"=>3,"a"=>[["a"=>"tokudb_check_jemalloc","u"=>37,"t"=>2]]],"tokudb_checkpoint_lock"=>["d"=>true,"t"=>2,"a"=>[["a"=>"tokudb_checkpoint_lock","u"=>37,"t"=>2]]],"tokudb_checkpoint_on_flush_logs"=>["d"=>true,"t"=>2,"a"=>[["a"=>"tokudb_checkpoint_on_flush_logs","u"=>37,"t"=>2]]],"tokudb_checkpointing_period"=>["d"=>true,"t"=>3,"a"=>[["a"=>"tokudb_checkpointing_period","u"=>37,"t"=>2]]],"tokudb_cleaner_iterations"=>["d"=>true,"t"=>3,"a"=>[["a"=>"tokudb_cleaner_iterations","u"=>37,"t"=>2]]],"tokudb_cleaner_period"=>["d"=>true,"t"=>3,"a"=>[["a"=>"tokudb_cleaner_period","u"=>37,"t"=>2]]],"tokudb_commit_sync"=>["d"=>true,"t"=>2,"a"=>[["a"=>"tokudb_commit_sync","u"=>37,"t"=>2]]],"tokudb_create_index_online"=>["d"=>true,"t"=>2,"a"=>[["a"=>"tokudb_create_index_online","u"=>37,"t"=>2]]],"tokudb_data_dir"=>["d"=>false,"t"=>1,"a"=>[["a"=>"tokudb_data_dir","u"=>37,"t"=>2]]],"tokudb_debug"=>["d"=>true,"t"=>3,"a"=>[["a"=>"tokudb_debug","u"=>37,"t"=>2]]],"tokudb_directio"=>["d"=>false,"t"=>2,"a"=>[["a"=>"tokudb_directio","u"=>37,"t"=>2]]],"tokudb_disable_hot_alter"=>["d"=>true,"t"=>2,"a"=>[["a"=>"tokudb_disable_hot_alter","u"=>37,"t"=>2]]],"tokudb_disable_prefetching"=>["d"=>true,"t"=>2,"a"=>[["a"=>"tokudb_disable_prefetching","u"=>37,"t"=>2]]],"tokudb_disable_slow_alter"=>["d"=>true,"t"=>2,"a"=>[["a"=>"tokudb_disable_slow_alter","u"=>37,"t"=>2]]],"tokudb_empty_scan"=>["d"=>true,"a"=>[["a"=>"tokudb_empty_scan","u"=>37,"t"=>2]]],"tokudb_fs_reserve_percent"=>["d"=>false,"t"=>3,"a"=>[["a"=>"tokudb_fs_reserve_percent","u"=>37,"t"=>2]]],"tokudb_fsync_log_period"=>["d"=>true,"t"=>3,"a"=>[["a"=>"tokudb_fsync_log_period","u"=>37,"t"=>2]]],"tokudb_hide_default_row_format"=>["d"=>true,"t"=>2,"a"=>[["a"=>"tokudb_hide_default_row_format","u"=>37,"t"=>2]]],"tokudb_killed_time"=>["d"=>true,"t"=>3,"a"=>[["a"=>"tokudb_killed_time","u"=>37,"t"=>2]]],"tokudb_last_lock_timeout"=>["d"=>true,"a"=>[["a"=>"tokudb_last_lock_timeout","u"=>37,"t"=>2]]],"tokudb_load_save_space"=>["d"=>true,"t"=>2,"a"=>[["a"=>"tokudb_load_save_space","u"=>37,"t"=>2]]],"tokudb_loader_memory_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"tokudb_loader_memory_size","u"=>37,"t"=>2]]],"tokudb_lock_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"tokudb_lock_timeout","u"=>37,"t"=>2]]],"tokudb_lock_timeout_debug"=>["d"=>true,"t"=>3,"a"=>[["a"=>"tokudb_lock_timeout_debug","u"=>37,"t"=>2]]],"tokudb_log_dir"=>["d"=>false,"t"=>1,"a"=>[["a"=>"tokudb_log_dir","u"=>37,"t"=>2]]],"tokudb_max_lock_memory"=>["d"=>false,"t"=>3,"a"=>[["a"=>"tokudb_max_lock_memory","u"=>37,"t"=>2]]],"tokudb_optimize_index_fraction"=>["d"=>true,"t"=>3,"a"=>[["a"=>"tokudb_optimize_index_fraction","u"=>37,"t"=>2]]],"tokudb_optimize_index_name"=>["d"=>true,"t"=>1,"a"=>[["a"=>"tokudb_optimize_index_name","u"=>37,"t"=>2]]],"tokudb_optimize_throttle"=>["d"=>true,"t"=>3,"a"=>[["a"=>"tokudb_optimize_throttle","u"=>37,"t"=>2]]],"tokudb_pk_insert_mode"=>["d"=>true,"a"=>[["a"=>"tokudb_pk_insert_mode","u"=>37,"t"=>2]]],"tokudb_prelock_empty"=>["d"=>true,"t"=>2,"a"=>[["a"=>"tokudb_prelock_empty","u"=>37,"t"=>2]]],"tokudb_read_block_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"tokudb_read_block_size","u"=>37,"t"=>2]]],"tokudb_read_buf_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"tokudb_read_buf_size","u"=>37,"t"=>2]]],"tokudb_read_status_frequency"=>["d"=>true,"t"=>3,"a"=>[["a"=>"tokudb_read_status_frequency","u"=>37,"t"=>2]]],"tokudb_row_format"=>["d"=>true,"a"=>[["a"=>"tokudb_row_format","u"=>37,"t"=>2]]],"tokudb_rpl_check_readonly"=>["d"=>true,"t"=>2,"a"=>[["a"=>"tokudb_rpl_check_readonly","u"=>37,"t"=>2]]],"tokudb_rpl_lookup_rows"=>["d"=>true,"t"=>2,"a"=>[["a"=>"tokudb_rpl_lookup_rows","u"=>37,"t"=>2]]],"tokudb_rpl_lookup_rows_delay"=>["d"=>true,"t"=>3,"a"=>[["a"=>"tokudb_rpl_lookup_rows_delay","u"=>37,"t"=>2]]],"tokudb_rpl_unique_checks"=>["d"=>true,"t"=>2,"a"=>[["a"=>"tokudb_rpl_unique_checks","u"=>37,"t"=>2]]],"tokudb_rpl_unique_checks_delay"=>["d"=>true,"t"=>3,"a"=>[["a"=>"tokudb_rpl_unique_checks_delay","u"=>37,"t"=>2]]],"tokudb_support_xa"=>["d"=>true,"t"=>2,"a"=>[["a"=>"tokudb_support_xa","u"=>37,"t"=>2]]],"tokudb_tmp_dir"=>["d"=>false,"t"=>7,"a"=>[["a"=>"tokudb_tmp_dir","u"=>37,"t"=>2]]],"tokudb_version"=>["d"=>false,"t"=>1,"a"=>[["a"=>"tokudb_version","u"=>37,"t"=>2]]],"tokudb_write_status_frequency"=>["d"=>true,"t"=>3,"a"=>[["a"=>"tokudb_write_status_frequency","u"=>37,"t"=>2]]],"system_versioning_alter_history"=>["d"=>true,"a"=>[["a"=>"system_versioning_alter_history","u"=>38,"t"=>2]]],"system_versioning_asof"=>["d"=>true,"a"=>[["a"=>"system_versioning_asof","u"=>38,"t"=>2]]],"system_versioning_innodb_algorithm_simple"=>["d"=>true,"t"=>2,"a"=>[["a"=>"system_versioning_innodb_algorithm_simple","u"=>38,"t"=>2]]],"Innodb_adaptive_hash_cells"=>["t"=>3,"a"=>[["a"=>"innodb_adaptive_hash_cells","u"=>39,"t"=>2]]],"Innodb_adaptive_hash_hash_searches"=>["t"=>3,"a"=>[["a"=>"innodb_adaptive_hash_hash_searches","u"=>39,"t"=>2]]],"Innodb_adaptive_hash_heap_buffers"=>["t"=>3,"a"=>[["a"=>"innodb_adaptive_hash_heap_buffers","u"=>39,"t"=>2]]],"Innodb_adaptive_hash_non_hash_searches"=>["t"=>3,"a"=>[["a"=>"innodb_adaptive_hash_non_hash_searches","u"=>39,"t"=>2]]],"Innodb_available_undo_logs"=>["t"=>3,"a"=>[["a"=>"innodb_available_undo_logs","u"=>39,"t"=>2]]],"Innodb_background_log_sync"=>["t"=>3,"a"=>[["a"=>"innodb_background_log_sync","u"=>39,"t"=>2]]],"Innodb_buffer_pool_bytes_data"=>["t"=>3,"a"=>[["a"=>"innodb_buffer_pool_bytes_data","u"=>39,"t"=>2]]],"Innodb_buffer_pool_bytes_dirty"=>["t"=>3,"a"=>[["a"=>"innodb_buffer_pool_bytes_dirty","u"=>39,"t"=>2]]],"Innodb_buffer_pool_dump_status"=>["t"=>1,"a"=>[["a"=>"innodb_buffer_pool_dump_status","u"=>39,"t"=>2]]],"Innodb_buffer_pool_load_incomplete"=>["t"=>2,"a"=>[["a"=>"innodb_buffer_pool_load_incomplete","u"=>39,"t"=>2]]],"Innodb_buffer_pool_load_status"=>["t"=>1,"a"=>[["a"=>"innodb_buffer_pool_load_status","u"=>39,"t"=>2]]],"Innodb_buffer_pool_pages_data"=>["t"=>3,"a"=>[["a"=>"innodb_buffer_pool_pages_data","u"=>39,"t"=>2]]],"Innodb_buffer_pool_pages_dirty"=>["t"=>3,"a"=>[["a"=>"innodb_buffer_pool_pages_dirty","u"=>39,"t"=>2]]],"Innodb_buffer_pool_pages_flushed"=>["t"=>3,"a"=>[["a"=>"innodb_buffer_pool_pages_flushed","u"=>39,"t"=>2]]],"Innodb_buffer_pool_pages_LRU_flushed"=>["t"=>3,"a"=>[["a"=>"innodb_buffer_pool_pages_lru_flushed","u"=>39,"t"=>2]]],"Innodb_buffer_pool_pages_free"=>["t"=>3,"a"=>[["a"=>"innodb_buffer_pool_pages_free","u"=>39,"t"=>2]]],"Innodb_buffer_pool_pages_made_not_young"=>["t"=>3,"a"=>[["a"=>"innodb_buffer_pool_pages_made_not_young","u"=>39,"t"=>2]]],"Innodb_buffer_pool_pages_made_young"=>["t"=>3,"a"=>[["a"=>"innodb_buffer_pool_pages_made_young","u"=>39,"t"=>2]]],"Innodb_buffer_pool_pages_misc"=>["t"=>3,"a"=>[["a"=>"innodb_buffer_pool_pages_misc","u"=>39,"t"=>2]]],"Innodb_buffer_pool_pages_old"=>["t"=>3,"a"=>[["a"=>"innodb_buffer_pool_pages_old","u"=>39,"t"=>2]]],"Innodb_buffer_pool_pages_total"=>["t"=>3,"a"=>[["a"=>"innodb_buffer_pool_pages_total","u"=>39,"t"=>2]]],"Innodb_buffer_pool_read_ahead"=>["t"=>3,"a"=>[["a"=>"innodb_buffer_pool_read_ahead","u"=>39,"t"=>2]]],"Innodb_buffer_pool_read_ahead_evicted"=>["t"=>3,"a"=>[["a"=>"innodb_buffer_pool_read_ahead_evicted","u"=>39,"t"=>2]]],"Innodb_buffer_pool_read_ahead_rnd"=>["t"=>3,"a"=>[["a"=>"innodb_buffer_pool_read_ahead_rnd","u"=>39,"t"=>2]]],"Innodb_buffer_pool_read_requests"=>["t"=>3,"a"=>[["a"=>"innodb_buffer_pool_read_requests","u"=>39,"t"=>2]]],"Innodb_buffer_pool_reads"=>["t"=>3,"a"=>[["a"=>"innodb_buffer_pool_reads","u"=>39,"t"=>2]]],"Innodb_buffer_pool_resize_status"=>["t"=>3,"a"=>[["a"=>"innodb_buffer_pool_resize_status","u"=>39,"t"=>2]]],"Innodb_buffer_pool_wait_free"=>["t"=>3,"a"=>[["a"=>"innodb_buffer_pool_wait_free","u"=>39,"t"=>2]]],"Innodb_buffer_pool_write_requests"=>["t"=>3,"a"=>[["a"=>"innodb_buffer_pool_write_requests","u"=>39,"t"=>2]]],"Innodb_checkpoint_age"=>["t"=>3,"a"=>[["a"=>"innodb_checkpoint_age","u"=>39,"t"=>2]]],"Innodb_checkpoint_max_age"=>["t"=>3,"a"=>[["a"=>"innodb_checkpoint_max_age","u"=>39,"t"=>2]]],"Innodb_checkpoint_target_age"=>["t"=>3,"a"=>[["a"=>"innodb_checkpoint_target_age","u"=>39,"t"=>2]]],"Innodb_current_row_locks"=>["t"=>3,"a"=>[["a"=>"innodb_current_row_locks","u"=>39,"t"=>2]]],"Innodb_data_fsyncs"=>["t"=>3,"a"=>[["a"=>"innodb_data_fsyncs","u"=>39,"t"=>2]]],"Innodb_data_pending_fsyncs"=>["t"=>3,"a"=>[["a"=>"innodb_data_pending_fsyncs","u"=>39,"t"=>2]]],"Innodb_data_pending_reads"=>["t"=>3,"a"=>[["a"=>"innodb_data_pending_reads","u"=>39,"t"=>2]]],"Innodb_data_pending_writes"=>["t"=>3,"a"=>[["a"=>"innodb_data_pending_writes","u"=>39,"t"=>2]]],"Innodb_data_read"=>["t"=>3,"a"=>[["a"=>"innodb_data_read","u"=>39,"t"=>2]]],"Innodb_data_reads"=>["t"=>3,"a"=>[["a"=>"innodb_data_reads","u"=>39,"t"=>2]]],"Innodb_data_writes"=>["t"=>3,"a"=>[["a"=>"innodb_data_writes","u"=>39,"t"=>2]]],"Innodb_data_written"=>["t"=>3,"a"=>[["a"=>"innodb_data_written","u"=>39,"t"=>2]]],"Innodb_dblwr_pages_written"=>["t"=>3,"a"=>[["a"=>"innodb_dblwr_pages_written","u"=>39,"t"=>2]]],"Innodb_dblwr_writes"=>["t"=>3,"a"=>[["a"=>"innodb_dblwr_writes","u"=>39,"t"=>2]]],"Innodb_deadlocks"=>["t"=>3,"a"=>[["a"=>"innodb_deadlocks","u"=>39,"t"=>2]]],"Innodb_defragment_compression_failures"=>["t"=>3,"a"=>[["a"=>"innodb_defragment_compression_failures","u"=>39,"t"=>2]]],"Innodb_defragment_count"=>["t"=>3,"a"=>[["a"=>"innodb_defragment_count","u"=>39,"t"=>2]]],"Innodb_defragment_failures"=>["t"=>3,"a"=>[["a"=>"innodb_defragment_failures","u"=>39,"t"=>2]]],"Innodb_dict_tables"=>["t"=>3,"a"=>[["a"=>"innodb_dict_tables","u"=>39,"t"=>2]]],"Innodb_encryption_n_merge_blocks_decrypted"=>["t"=>3,"a"=>[["a"=>"innodb_encryption_n_merge_blocks_decrypted","u"=>39,"t"=>2]]],"Innodb_encryption_n_merge_blocks_encrypted"=>["t"=>3,"a"=>[["a"=>"innodb_encryption_n_merge_blocks_encrypted","u"=>39,"t"=>2]]],"Innodb_encryption_n_rowlog_blocks_decrypted"=>["t"=>3,"a"=>[["a"=>"innodb_encryption_n_rowlog_blocks_decrypted","u"=>39,"t"=>2]]],"Innodb_encryption_n_rowlog_blocks_encrypted"=>["t"=>3,"a"=>[["a"=>"innodb_encryption_n_rowlog_blocks_encrypted","u"=>39,"t"=>2]]],"Innodb_encryption_num_key_requests"=>["t"=>3,"a"=>[["a"=>"innodb_encryption_num_key_requests","u"=>39,"t"=>2]]],"Innodb_encryption_rotation_estimated_iops"=>["t"=>3,"a"=>[["a"=>"innodb_encryption_rotation_estimated_iops","u"=>39,"t"=>2]]],"Innodb_encryption_rotation_pages_flushed"=>["t"=>3,"a"=>[["a"=>"innodb_encryption_rotation_pages_flushed","u"=>39,"t"=>2]]],"Innodb_encryption_rotation_pages_modified"=>["t"=>3,"a"=>[["a"=>"innodb_encryption_rotation_pages_modified","u"=>39,"t"=>2]]],"Innodb_encryption_rotation_pages_read_from_cache"=>["t"=>3,"a"=>[["a"=>"innodb_encryption_rotation_pages_read_from_cache","u"=>39,"t"=>2]]],"Innodb_encryption_rotation_pages_read_from_disk"=>["t"=>3,"a"=>[["a"=>"innodb_encryption_rotation_pages_read_from_disk","u"=>39,"t"=>2]]],"Innodb_have_atomic_builtins"=>["t"=>2,"a"=>[["a"=>"innodb_have_atomic_builtins","u"=>39,"t"=>2]]],"Innodb_have_bzip2"=>["t"=>2,"a"=>[["a"=>"innodb_have_bzip2","u"=>39,"t"=>2]]],"Innodb_have_lz4"=>["t"=>2,"a"=>[["a"=>"innodb_have_lz4","u"=>39,"t"=>2]]],"Innodb_have_lzma"=>["t"=>2,"a"=>[["a"=>"innodb_have_lzma","u"=>39,"t"=>2]]],"Innodb_have_lzo"=>["t"=>2,"a"=>[["a"=>"innodb_have_lzo","u"=>39,"t"=>2]]],"Innodb_have_punch_hole"=>["t"=>3,"a"=>[["a"=>"innodb_have_punch_hole","u"=>39,"t"=>2]]],"Innodb_have_snappy"=>["t"=>2,"a"=>[["a"=>"innodb_have_snappy","u"=>39,"t"=>2]]],"Innodb_history_list_length"=>["t"=>3,"a"=>[["a"=>"innodb_history_list_length","u"=>39,"t"=>2]]],"Innodb_ibuf_discarded_delete_marks"=>["t"=>3,"a"=>[["a"=>"innodb_ibuf_discarded_delete_marks","u"=>39,"t"=>2]]],"Innodb_ibuf_discarded_deletes"=>["t"=>3,"a"=>[["a"=>"innodb_ibuf_discarded_deletes","u"=>39,"t"=>2]]],"Innodb_ibuf_discarded_inserts"=>["t"=>3,"a"=>[["a"=>"innodb_ibuf_discarded_inserts","u"=>39,"t"=>2]]],"Innodb_ibuf_free_list"=>["t"=>3,"a"=>[["a"=>"innodb_ibuf_free_list","u"=>39,"t"=>2]]],"Innodb_ibuf_merged_delete_marks"=>["t"=>3,"a"=>[["a"=>"innodb_ibuf_merged_delete_marks","u"=>39,"t"=>2]]],"Innodb_ibuf_merged_deletes"=>["t"=>3,"a"=>[["a"=>"innodb_ibuf_merged_deletes","u"=>39,"t"=>2]]],"Innodb_ibuf_merged_inserts"=>["t"=>3,"a"=>[["a"=>"innodb_ibuf_merged_inserts","u"=>39,"t"=>2]]],"Innodb_ibuf_merges"=>["t"=>3,"a"=>[["a"=>"innodb_ibuf_merges","u"=>39,"t"=>2]]],"Innodb_ibuf_segment_size"=>["t"=>3,"a"=>[["a"=>"innodb_ibuf_segment_size","u"=>39,"t"=>2]]],"Innodb_ibuf_size"=>["t"=>3,"a"=>[["a"=>"innodb_ibuf_size","u"=>39,"t"=>2]]],"Innodb_instant_alter_column"=>["t"=>3,"a"=>[["a"=>"innodb_instant_alter_column","u"=>39,"t"=>2]]],"Innodb_log_waits"=>["t"=>3,"a"=>[["a"=>"innodb_log_waits","u"=>39,"t"=>2]]],"Innodb_log_write_requests"=>["t"=>3,"a"=>[["a"=>"innodb_log_write_requests","u"=>39,"t"=>2]]],"Innodb_log_writes"=>["t"=>3,"a"=>[["a"=>"innodb_log_writes","u"=>39,"t"=>2]]],"Innodb_lsn_current"=>["t"=>3,"a"=>[["a"=>"innodb_lsn_current","u"=>39,"t"=>2]]],"Innodb_lsn_flushed"=>["t"=>3,"a"=>[["a"=>"innodb_lsn_flushed","u"=>39,"t"=>2]]],"Innodb_lsn_last_checkpoint"=>["t"=>3,"a"=>[["a"=>"innodb_lsn_last_checkpoint","u"=>39,"t"=>2]]],"Innodb_master_thread_1_second_loops"=>["t"=>3,"a"=>[["a"=>"innodb_master_thread_1_second_loops","u"=>39,"t"=>2]]],"Innodb_master_thread_10_second_loops"=>["t"=>3,"a"=>[["a"=>"innodb_master_thread_10_second_loops","u"=>39,"t"=>2]]],"Innodb_master_thread_active_loops"=>["t"=>3,"a"=>[["a"=>"innodb_master_thread_active_loops","u"=>39,"t"=>2]]],"Innodb_master_thread_background_loops"=>["t"=>3,"a"=>[["a"=>"innodb_master_thread_background_loops","u"=>39,"t"=>2]]],"Innodb_master_thread_idle_loops"=>["t"=>3,"a"=>[["a"=>"innodb_master_thread_idle_loops","u"=>39,"t"=>2]]],"Innodb_master_thread_main_flush_loops"=>["t"=>3,"a"=>[["a"=>"innodb_master_thread_main_flush_loops","u"=>39,"t"=>2]]],"Innodb_master_thread_sleeps"=>["t"=>3,"a"=>[["a"=>"innodb_master_thread_sleeps","u"=>39,"t"=>2]]],"Innodb_max_trx_id"=>["t"=>3,"a"=>[["a"=>"innodb_max_trx_id","u"=>39,"t"=>2]]],"Innodb_mem_adaptive_hash"=>["t"=>3,"a"=>[["a"=>"innodb_mem_adaptive_hash","u"=>39,"t"=>2]]],"Innodb_mem_dictionary"=>["t"=>3,"a"=>[["a"=>"innodb_mem_dictionary","u"=>39,"t"=>2]]],"Innodb_mem_total"=>["t"=>3,"a"=>[["a"=>"innodb_mem_total","u"=>39,"t"=>2]]],"Innodb_mutex_os_waits"=>["t"=>3,"a"=>[["a"=>"innodb_mutex_os_waits","u"=>39,"t"=>2]]],"Innodb_mutex_spin_rounds"=>["t"=>3,"a"=>[["a"=>"innodb_mutex_spin_rounds","u"=>39,"t"=>2]]],"Innodb_mutex_spin_waits"=>["t"=>3,"a"=>[["a"=>"innodb_mutex_spin_waits","u"=>39,"t"=>2]]],"Innodb_num_index_pages_written"=>["t"=>3,"a"=>[["a"=>"innodb_num_index_pages_written","u"=>39,"t"=>2]]],"Innodb_num_non_index_pages_written"=>["t"=>3,"a"=>[["a"=>"innodb_num_non_index_pages_written","u"=>39,"t"=>2]]],"Innodb_num_open_files"=>["t"=>3,"a"=>[["a"=>"innodb_num_open_files","u"=>39,"t"=>2]]],"Innodb_num_page_compressed_trim_op"=>["t"=>3,"a"=>[["a"=>"innodb_num_page_compressed_trim_op","u"=>39,"t"=>2]]],"Innodb_num_page_compressed_trim_op_saved"=>["t"=>3,"a"=>[["a"=>"innodb_num_page_compressed_trim_op_saved","u"=>39,"t"=>2]]],"Innodb_num_pages_decrypted"=>["t"=>3,"a"=>[["a"=>"innodb_num_pages_decrypted","u"=>39,"t"=>2]]],"Innodb_num_pages_encrypted"=>["t"=>3,"a"=>[["a"=>"innodb_num_pages_encrypted","u"=>39,"t"=>2]]],"Innodb_num_pages_page_compressed"=>["t"=>3,"a"=>[["a"=>"innodb_num_pages_page_compressed","u"=>39,"t"=>2]]],"Innodb_num_pages_page_compression_error"=>["t"=>3,"a"=>[["a"=>"innodb_num_pages_page_compression_error","u"=>39,"t"=>2]]],"Innodb_num_pages_page_decompressed"=>["t"=>3,"a"=>[["a"=>"innodb_num_pages_page_decompressed","u"=>39,"t"=>2]]],"Innodb_num_pages_page_encryption_error"=>["t"=>3,"a"=>[["a"=>"innodb_num_pages_page_encryption_error","u"=>39,"t"=>2]]],"Innodb_oldest_view_low_limit_trx_id"=>["t"=>3,"a"=>[["a"=>"innodb_oldest_view_low_limit_trx_id","u"=>39,"t"=>2]]],"Innodb_onlineddl_pct_progress"=>["t"=>3,"a"=>[["a"=>"innodb_onlineddl_pct_progress","u"=>39,"t"=>2]]],"Innodb_onlineddl_rowlog_pct_used"=>["t"=>3,"a"=>[["a"=>"innodb_onlineddl_rowlog_pct_used","u"=>39,"t"=>2]]],"Innodb_onlineddl_rowlog_rows"=>["t"=>3,"a"=>[["a"=>"innodb_onlineddl_rowlog_rows","u"=>39,"t"=>2]]],"Innodb_os_log_fsyncs"=>["t"=>3,"a"=>[["a"=>"innodb_os_log_fsyncs","u"=>39,"t"=>2]]],"Innodb_os_log_pending_fsyncs"=>["t"=>3,"a"=>[["a"=>"innodb_os_log_pending_fsyncs","u"=>39,"t"=>2]]],"Innodb_os_log_pending_writes"=>["t"=>3,"a"=>[["a"=>"innodb_os_log_pending_writes","u"=>39,"t"=>2]]],"Innodb_os_log_written"=>["t"=>3,"a"=>[["a"=>"innodb_os_log_written","u"=>39,"t"=>2]]],"Innodb_page_compression_saved"=>["t"=>9,"a"=>[["a"=>"innodb_page_compression_saved","u"=>39,"t"=>2]]],"Innodb_page_compression_trim_sect512"=>["t"=>3,"a"=>[["a"=>"innodb_page_compression_trim_sect512","u"=>39,"t"=>2]]],"Innodb_page_compression_trim_sect1024"=>["t"=>3,"a"=>[["a"=>"innodb_page_compression_trim_sect1024","u"=>39,"t"=>2]]],"Innodb_page_compression_trim_sect2048"=>["t"=>3,"a"=>[["a"=>"innodb_page_compression_trim_sect2048","u"=>39,"t"=>2]]],"Innodb_page_compression_trim_sect4096"=>["t"=>3,"a"=>[["a"=>"innodb_page_compression_trim_sect4096","u"=>39,"t"=>2]]],"Innodb_page_compression_trim_sect8192"=>["t"=>3,"a"=>[["a"=>"innodb_page_compression_trim_sect8192","u"=>39,"t"=>2]]],"Innodb_page_compression_trim_sect16384"=>["t"=>3,"a"=>[["a"=>"innodb_page_compression_trim_sect16384","u"=>39,"t"=>2]]],"Innodb_page_compression_trim_sect32768"=>["t"=>3,"a"=>[["a"=>"innodb_page_compression_trim_sect32768","u"=>39,"t"=>2]]],"Innodb_page_size"=>["t"=>3,"a"=>[["a"=>"innodb_page_size","u"=>39,"t"=>2]]],"Innodb_pages_created"=>["t"=>3,"a"=>[["a"=>"innodb_pages_created","u"=>39,"t"=>2]]],"Innodb_pages_read"=>["t"=>3,"a"=>[["a"=>"innodb_pages_read","u"=>39,"t"=>2]]],"Innodb_pages0_read"=>["t"=>3,"a"=>[["a"=>"innodb_pages0_read","u"=>39,"t"=>2]]],"Innodb_pages_written"=>["t"=>3,"a"=>[["a"=>"innodb_pages_written","u"=>39,"t"=>2]]],"Innodb_purge_trx_id"=>["t"=>3,"a"=>[["a"=>"innodb_purge_trx_id","u"=>39,"t"=>2]]],"Innodb_purge_undo_no"=>["t"=>3,"a"=>[["a"=>"innodb_purge_undo_no","u"=>39,"t"=>2]]],"Innodb_read_views_memory"=>["t"=>3,"a"=>[["a"=>"innodb_read_views_memory","u"=>39,"t"=>2]]],"Innodb_row_lock_current_waits"=>["t"=>3,"a"=>[["a"=>"innodb_row_lock_current_waits","u"=>39,"t"=>2]]],"Innodb_row_lock_numbers"=>["t"=>3,"a"=>[["a"=>"innodb_row_lock_numbers","u"=>39,"t"=>2]]],"Innodb_row_lock_time"=>["t"=>3,"a"=>[["a"=>"innodb_row_lock_time","u"=>39,"t"=>2]]],"Innodb_row_lock_time_avg"=>["t"=>3,"a"=>[["a"=>"innodb_row_lock_time_avg","u"=>39,"t"=>2]]],"Innodb_row_lock_time_max"=>["t"=>3,"a"=>[["a"=>"innodb_row_lock_time_max","u"=>39,"t"=>2]]],"Innodb_row_lock_time_waits"=>["t"=>3,"a"=>[["a"=>"innodb_row_lock_time_waits","u"=>39,"t"=>2]]],"Innodb_rows_deleted"=>["t"=>3,"a"=>[["a"=>"innodb_rows_deleted","u"=>39,"t"=>2]]],"Innodb_rows_inserted"=>["t"=>3,"a"=>[["a"=>"innodb_rows_inserted","u"=>39,"t"=>2]]],"Innodb_rows_read"=>["t"=>3,"a"=>[["a"=>"innodb_rows_read","u"=>39,"t"=>2]]],"Innodb_rows_updated"=>["t"=>3,"a"=>[["a"=>"innodb_rows_updated","u"=>39,"t"=>2]]],"Innodb_s_lock_os_waits"=>["t"=>3,"a"=>[["a"=>"innodb_s_lock_os_waits","u"=>39,"t"=>2]]],"Innodb_s_lock_spin_rounds"=>["t"=>3,"a"=>[["a"=>"innodb_s_lock_spin_rounds","u"=>39,"t"=>2]]],"Innodb_s_lock_spin_waits"=>["t"=>3,"a"=>[["a"=>"innodb_s_lock_spin_waits","u"=>39,"t"=>2]]],"Innodb_scrub_background_page_reorganizations"=>["t"=>3,"a"=>[["a"=>"innodb_scrub_background_page_reorganizations","u"=>39,"t"=>2]]],"Innodb_scrub_background_page_split_failures_missing_index"=>["t"=>3,"a"=>[["a"=>"innodb_scrub_background_page_split_failures_missing_index","u"=>39,"t"=>2]]],"Innodb_scrub_background_page_split_failures_out_of_filespace"=>["t"=>3,"a"=>[["a"=>"innodb_scrub_background_page_split_failures_out_of_filespace","u"=>39,"t"=>2]]],"Innodb_scrub_background_page_split_failures_underflow"=>["t"=>3,"a"=>[["a"=>"innodb_scrub_background_page_split_failures_underflow","u"=>39,"t"=>2]]],"Innodb_scrub_background_page_split_failures_unknown"=>["t"=>3,"a"=>[["a"=>"innodb_scrub_background_page_split_failures_unknown","u"=>39,"t"=>2]]],"Innodb_scrub_background_page_splits"=>["t"=>3,"a"=>[["a"=>"innodb_scrub_background_page_splits","u"=>39,"t"=>2]]],"Innodb_scrub_log"=>["t"=>3,"a"=>[["a"=>"innodb_scrub_log","u"=>39,"t"=>2]]],"Innodb_secondary_index_triggered_cluster_reads"=>["t"=>3,"a"=>[["a"=>"innodb_secondary_index_triggered_cluster_reads","u"=>39,"t"=>2]]],"Innodb_secondary_index_triggered_cluster_reads_avoided"=>["t"=>3,"a"=>[["a"=>"innodb_secondary_index_triggered_cluster_reads_avoided","u"=>39,"t"=>2]]],"Innodb_system_rows_deleted"=>["t"=>3,"a"=>[["a"=>"innodb_system_rows_deleted","u"=>39,"t"=>2]]],"Innodb_system_rows_inserted"=>["t"=>3,"a"=>[["a"=>"innodb_system_rows_inserted","u"=>39,"t"=>2]]],"Innodb_system_rows_read"=>["t"=>3,"a"=>[["a"=>"innodb_system_rows_read","u"=>39,"t"=>2]]],"Innodb_system_rows_updated"=>["t"=>3,"a"=>[["a"=>"innodb_system_rows_updated","u"=>39,"t"=>2]]],"Innodb_truncated_status_writes"=>["t"=>3,"a"=>[["a"=>"innodb_truncated_status_writes","u"=>39,"t"=>2]]],"Innodb_undo_truncations"=>["t"=>3,"a"=>[["a"=>"innodb_undo_truncations","u"=>39,"t"=>2]]],"Innodb_x_lock_os_waits"=>["t"=>3,"a"=>[["a"=>"innodb_x_lock_os_waits","u"=>39,"t"=>2]]],"Innodb_x_lock_spin_rounds"=>["t"=>3,"a"=>[["a"=>"innodb_x_lock_spin_rounds","u"=>39,"t"=>2]]],"Innodb_x_lock_spin_waits"=>["t"=>3,"a"=>[["a"=>"innodb_x_lock_spin_waits","u"=>39,"t"=>2]]],"have_innodb"=>["d"=>false,"a"=>[["a"=>"have_innodb","u"=>40,"t"=>2]]],"ignore_builtin_innodb"=>["d"=>false,"t"=>2,"a"=>[["a"=>"ignore_builtin_innodb","u"=>40,"t"=>2],["a"=>"sysvar_ignore_builtin_innodb","u"=>41,"t"=>1]]],"innodb_adaptive_checkpoint"=>["d"=>true,"t"=>1,"a"=>[["a"=>"innodb_adaptive_checkpoint","u"=>40,"t"=>2]]],"innodb_adaptive_flushing"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_adaptive_flushing","u"=>40,"t"=>2],["a"=>"sysvar_innodb_adaptive_flushing","u"=>41,"t"=>1]]],"innodb_adaptive_flushing_lwm"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_adaptive_flushing_lwm","u"=>40,"t"=>2],["a"=>"sysvar_innodb_adaptive_flushing_lwm","u"=>41,"t"=>1]]],"innodb_adaptive_flushing_method"=>["d"=>true,"t"=>5,"a"=>[["a"=>"innodb_adaptive_flushing_method","u"=>40,"t"=>2]]],"innodb_adaptive_hash_index"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_adaptive_hash_index","u"=>40,"t"=>2],["a"=>"sysvar_innodb_adaptive_hash_index","u"=>41,"t"=>1]]],"innodb_adaptive_hash_index_partitions"=>["d"=>false,"t"=>3,"a"=>[["a"=>"innodb_adaptive_hash_index_partitions","u"=>40,"t"=>2]]],"innodb_adaptive_hash_index_parts"=>["d"=>false,"t"=>3,"a"=>[["a"=>"innodb_adaptive_hash_index_parts","u"=>40,"t"=>2],["a"=>"sysvar_innodb_adaptive_hash_index_parts","u"=>41,"t"=>1]]],"innodb_adaptive_max_sleep_delay"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_adaptive_max_sleep_delay","u"=>40,"t"=>2],["a"=>"sysvar_innodb_adaptive_max_sleep_delay","u"=>41,"t"=>1]]],"innodb_additional_mem_pool_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"innodb_additional_mem_pool_size","u"=>40,"t"=>2]]],"innodb_api_bk_commit_interval"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_api_bk_commit_interval","u"=>40,"t"=>2],["a"=>"sysvar_innodb_api_bk_commit_interval","u"=>41,"t"=>1]]],"innodb_api_disable_rowlock"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_api_disable_rowlock","u"=>40,"t"=>2],["a"=>"sysvar_innodb_api_disable_rowlock","u"=>41,"t"=>1]]],"innodb_api_enable_binlog"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_api_enable_binlog","u"=>40,"t"=>2],["a"=>"sysvar_innodb_api_enable_binlog","u"=>41,"t"=>1]]],"innodb_api_enable_mdl"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_api_enable_mdl","u"=>40,"t"=>2],["a"=>"sysvar_innodb_api_enable_mdl","u"=>41,"t"=>1]]],"innodb_api_trx_level"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_api_trx_level","u"=>40,"t"=>2],["a"=>"sysvar_innodb_api_trx_level","u"=>41,"t"=>1]]],"innodb_auto_lru_dump"=>["a"=>[["a"=>"innodb_auto_lru_dump","u"=>40,"t"=>2]]],"innodb_autoextend_increment"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_autoextend_increment","u"=>40,"t"=>2],["a"=>"sysvar_innodb_autoextend_increment","u"=>41,"t"=>1]]],"innodb_autoinc_lock_mode"=>["d"=>false,"t"=>3,"a"=>[["a"=>"innodb_autoinc_lock_mode","u"=>40,"t"=>2],["a"=>"sysvar_innodb_autoinc_lock_mode","u"=>41,"t"=>1]]],"innodb_background_scrub_data_check_interval"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_background_scrub_data_check_interval","u"=>40,"t"=>2]]],"innodb_background_scrub_data_compressed"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_background_scrub_data_compressed","u"=>40,"t"=>2]]],"innodb_background_scrub_data_interval"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_background_scrub_data_interval","u"=>40,"t"=>2]]],"innodb_background_scrub_data_uncompressed"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_background_scrub_data_uncompressed","u"=>40,"t"=>2]]],"innodb_blocking_buffer_pool_restore"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_blocking_buffer_pool_restore","u"=>40,"t"=>2]]],"innodb_buf_dump_status_frequency"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_buf_dump_status_frequency","u"=>40,"t"=>2]]],"innodb_buffer_pool_chunk_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"innodb_buffer_pool_chunk_size","u"=>40,"t"=>2],["a"=>"sysvar_innodb_buffer_pool_chunk_size","u"=>41,"t"=>1]]],"innodb_buffer_pool_dump_at_shutdown"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_buffer_pool_dump_at_shutdown","u"=>40,"t"=>2],["a"=>"sysvar_innodb_buffer_pool_dump_at_shutdown","u"=>41,"t"=>1]]],"innodb_buffer_pool_dump_now"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_buffer_pool_dump_now","u"=>40,"t"=>2],["a"=>"sysvar_innodb_buffer_pool_dump_now","u"=>41,"t"=>1]]],"innodb_buffer_pool_dump_pct"=>["d"=>true,"a"=>[["a"=>"innodb_buffer_pool_dump_pct","u"=>40,"t"=>2],["a"=>"sysvar_innodb_buffer_pool_dump_pct","u"=>41,"t"=>1]]],"innodb_buffer_pool_evict"=>["d"=>true,"t"=>1,"a"=>[["a"=>"innodb_buffer_pool_evict","u"=>40,"t"=>2]]],"innodb_buffer_pool_filename"=>["d"=>true,"a"=>[["a"=>"innodb_buffer_pool_filename","u"=>40,"t"=>2],["a"=>"sysvar_innodb_buffer_pool_filename","u"=>41,"t"=>1]]],"innodb_buffer_pool_instances"=>["d"=>false,"t"=>3,"a"=>[["a"=>"innodb_buffer_pool_instances","u"=>40,"t"=>2],["a"=>"sysvar_innodb_buffer_pool_instances","u"=>41,"t"=>1]]],"innodb_buffer_pool_load_abort"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_buffer_pool_load_abort","u"=>40,"t"=>2],["a"=>"sysvar_innodb_buffer_pool_load_abort","u"=>41,"t"=>1]]],"innodb_buffer_pool_load_at_startup"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_buffer_pool_load_at_startup","u"=>40,"t"=>2],["a"=>"sysvar_innodb_buffer_pool_load_at_startup","u"=>41,"t"=>1]]],"innodb_buffer_pool_load_now"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_buffer_pool_load_now","u"=>40,"t"=>2],["a"=>"sysvar_innodb_buffer_pool_load_now","u"=>41,"t"=>1]]],"innodb_buffer_pool_populate"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_buffer_pool_populate","u"=>40,"t"=>2]]],"innodb_buffer_pool_restore_at_startup"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_buffer_pool_restore_at_startup","u"=>40,"t"=>2]]],"innodb_buffer_pool_shm_checksum"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_buffer_pool_shm_checksum","u"=>40,"t"=>2]]],"innodb_buffer_pool_shm_key"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_buffer_pool_shm_key","u"=>40,"t"=>2]]],"innodb_buffer_pool_size"=>["t"=>3,"a"=>[["a"=>"innodb_buffer_pool_size","u"=>40,"t"=>2],["a"=>"sysvar_innodb_buffer_pool_size","u"=>41,"t"=>1]]],"innodb_change_buffer_dump"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_change_buffer_dump","u"=>40,"t"=>2]]],"innodb_change_buffer_max_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_change_buffer_max_size","u"=>40,"t"=>2],["a"=>"sysvar_innodb_change_buffer_max_size","u"=>41,"t"=>1]]],"innodb_change_buffering"=>["d"=>true,"t"=>5,"a"=>[["a"=>"innodb_change_buffering","u"=>40,"t"=>2],["a"=>"sysvar_innodb_change_buffering","u"=>41,"t"=>1]]],"innodb_change_buffering_debug"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_change_buffering_debug","u"=>40,"t"=>2],["a"=>"sysvar_innodb_change_buffering_debug","u"=>41,"t"=>1]]],"innodb_checkpoint_age_target"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_checkpoint_age_target","u"=>40,"t"=>2]]],"innodb_checksum_algorithm"=>["d"=>true,"t"=>5,"a"=>[["a"=>"innodb_checksum_algorithm","u"=>40,"t"=>2],["a"=>"sysvar_innodb_checksum_algorithm","u"=>41,"t"=>1]]],"innodb_checksums"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_checksums","u"=>40,"t"=>2]]],"innodb_cleaner_lsn_age_factor"=>["d"=>true,"a"=>[["a"=>"innodb_cleaner_lsn_age_factor","u"=>40,"t"=>2]]],"innodb_cmp_per_index_enabled"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_cmp_per_index_enabled","u"=>40,"t"=>2],["a"=>"sysvar_innodb_cmp_per_index_enabled","u"=>41,"t"=>1]]],"innodb_commit_concurrency"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_commit_concurrency","u"=>40,"t"=>2],["a"=>"sysvar_innodb_commit_concurrency","u"=>41,"t"=>1]]],"innodb_compression_algorithm"=>["d"=>true,"a"=>[["a"=>"innodb_compression_algorithm","u"=>40,"t"=>2]]],"innodb_compression_default"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_compression_default","u"=>40,"t"=>2]]],"innodb_compression_failure_threshold_pct"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_compression_failure_threshold_pct","u"=>40,"t"=>2],["a"=>"sysvar_innodb_compression_failure_threshold_pct","u"=>41,"t"=>1]]],"innodb_compression_level"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_compression_level","u"=>40,"t"=>2],["a"=>"sysvar_innodb_compression_level","u"=>41,"t"=>1]]],"innodb_compression_pad_pct_max"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_compression_pad_pct_max","u"=>40,"t"=>2],["a"=>"sysvar_innodb_compression_pad_pct_max","u"=>41,"t"=>1]]],"innodb_concurrency_tickets"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_concurrency_tickets","u"=>40,"t"=>2],["a"=>"sysvar_innodb_concurrency_tickets","u"=>41,"t"=>1]]],"innodb_corrupt_table_action"=>["d"=>true,"t"=>5,"a"=>[["a"=>"innodb_corrupt_table_action","u"=>40,"t"=>2]]],"innodb_data_file_path"=>["d"=>false,"a"=>[["a"=>"innodb_data_file_path","u"=>40,"t"=>2],["a"=>"sysvar_innodb_data_file_path","u"=>41,"t"=>1]]],"innodb_data_home_dir"=>["d"=>false,"t"=>7,"a"=>[["a"=>"innodb_data_home_dir","u"=>40,"t"=>2],["a"=>"sysvar_innodb_data_home_dir","u"=>41,"t"=>1]]],"innodb_deadlock_detect"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_deadlock_detect","u"=>40,"t"=>2],["a"=>"sysvar_innodb_deadlock_detect","u"=>41,"t"=>1]]],"innodb_default_page_encryption_key"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_default_page_encryption_key","u"=>40,"t"=>2]]],"innodb_default_encryption_key_id"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_default_encryption_key_id","u"=>40,"t"=>2]]],"innodb_default_row_format"=>["d"=>true,"t"=>5,"a"=>[["a"=>"innodb_default_row_format","u"=>40,"t"=>2],["a"=>"sysvar_innodb_default_row_format","u"=>41,"t"=>1]]],"innodb_defragment"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_defragment","u"=>40,"t"=>2]]],"innodb_defragment_fill_factor"=>["d"=>true,"a"=>[["a"=>"innodb_defragment_fill_factor","u"=>40,"t"=>2]]],"innodb_defragment_fill_factor_n_recs"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_defragment_fill_factor_n_recs","u"=>40,"t"=>2]]],"innodb_defragment_frequency"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_defragment_frequency","u"=>40,"t"=>2]]],"innodb_defragment_n_pages"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_defragment_n_pages","u"=>40,"t"=>2]]],"innodb_defragment_stats_accuracy"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_defragment_stats_accuracy","u"=>40,"t"=>2]]],"innodb_dict_size_limit"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_dict_size_limit","u"=>40,"t"=>2]]],"innodb_disable_sort_file_cache"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_disable_sort_file_cache","u"=>40,"t"=>2],["a"=>"sysvar_innodb_disable_sort_file_cache","u"=>41,"t"=>1]]],"innodb_disallow_writes"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_disallow_writes","u"=>40,"t"=>2]]],"innodb_doublewrite"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_doublewrite","u"=>40,"t"=>2],["a"=>"sysvar_innodb_doublewrite","u"=>41,"t"=>1]]],"innodb_doublewrite_file"=>["d"=>false,"a"=>[["a"=>"innodb_doublewrite_file","u"=>40,"t"=>2]]],"innodb_empty_free_list_algorithm"=>["d"=>true,"a"=>[["a"=>"innodb_empty_free_list_algorithm","u"=>40,"t"=>2]]],"innodb_enable_unsafe_group_commit"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_enable_unsafe_group_commit","u"=>40,"t"=>2]]],"innodb_encrypt_log"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_encrypt_log","u"=>40,"t"=>2]]],"innodb_encrypt_tables"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_encrypt_tables","u"=>40,"t"=>2]]],"innodb_encrypt_temporary_tables"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_encrypt_temporary_tables","u"=>40,"t"=>2]]],"innodb_encryption_rotate_key_age"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_encryption_rotate_key_age","u"=>40,"t"=>2]]],"innodb_encryption_rotation_iops"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_encryption_rotation_iops","u"=>40,"t"=>2]]],"innodb_encryption_threads"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_encryption_threads","u"=>40,"t"=>2]]],"innodb_extra_rsegments"=>["d"=>false,"t"=>3,"a"=>[["a"=>"innodb_extra_rsegments","u"=>40,"t"=>2]]],"innodb_extra_undoslots"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_extra_undoslots","u"=>40,"t"=>2]]],"innodb_fake_changes"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_fake_changes","u"=>40,"t"=>2]]],"innodb_fast_checksum"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_fast_checksum","u"=>40,"t"=>2]]],"innodb_fast_shutdown"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_fast_shutdown","u"=>40,"t"=>2],["a"=>"sysvar_innodb_fast_shutdown","u"=>41,"t"=>1]]],"innodb_fatal_semaphore_wait_threshold"=>["d"=>false,"t"=>3,"a"=>[["a"=>"innodb_fatal_semaphore_wait_threshold","u"=>40,"t"=>2]]],"innodb_file_format"=>["d"=>true,"t"=>1,"a"=>[["a"=>"innodb_file_format","u"=>40,"t"=>2]]],"innodb_file_format_check"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_file_format_check","u"=>40,"t"=>2]]],"innodb_file_format_max"=>["d"=>true,"t"=>1,"a"=>[["a"=>"innodb_file_format_max","u"=>40,"t"=>2]]],"innodb_file_per_table"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_file_per_table","u"=>40,"t"=>2],["a"=>"sysvar_innodb_file_per_table","u"=>41,"t"=>1]]],"innodb_fill_factor"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_fill_factor","u"=>40,"t"=>2],["a"=>"sysvar_innodb_fill_factor","u"=>41,"t"=>1]]],"innodb_flush_log_at_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_flush_log_at_timeout","u"=>40,"t"=>2],["a"=>"sysvar_innodb_flush_log_at_timeout","u"=>41,"t"=>1]]],"innodb_flush_log_at_trx_commit"=>["d"=>true,"t"=>5,"a"=>[["a"=>"innodb_flush_log_at_trx_commit","u"=>40,"t"=>2],["a"=>"sysvar_innodb_flush_log_at_trx_commit","u"=>41,"t"=>1]]],"innodb_flush_method"=>["d"=>false,"a"=>[["a"=>"innodb_flush_method","u"=>40,"t"=>2],["a"=>"sysvar_innodb_flush_method","u"=>41,"t"=>1]]],"innodb_flush_neighbor_pages"=>["d"=>true,"t"=>5,"a"=>[["a"=>"innodb_flush_neighbor_pages","u"=>40,"t"=>2]]],"innodb_flush_neighbors"=>["d"=>true,"t"=>5,"a"=>[["a"=>"innodb_flush_neighbors","u"=>40,"t"=>2],["a"=>"sysvar_innodb_flush_neighbors","u"=>41,"t"=>1]]],"innodb_flush_sync"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_flush_sync","u"=>40,"t"=>2],["a"=>"sysvar_innodb_flush_sync","u"=>41,"t"=>1]]],"innodb_flushing_avg_loops"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_flushing_avg_loops","u"=>40,"t"=>2],["a"=>"sysvar_innodb_flushing_avg_loops","u"=>41,"t"=>1]]],"innodb_force_load_corrupted"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_force_load_corrupted","u"=>40,"t"=>2],["a"=>"sysvar_innodb_force_load_corrupted","u"=>41,"t"=>1]]],"innodb_force_primary_key"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_force_primary_key","u"=>40,"t"=>2]]],"innodb_force_recovery"=>["d"=>false,"a"=>[["a"=>"innodb_force_recovery","u"=>40,"t"=>2],["a"=>"sysvar_innodb_force_recovery","u"=>41,"t"=>1]]],"innodb_foreground_preflush"=>["d"=>true,"a"=>[["a"=>"innodb_foreground_preflush","u"=>40,"t"=>2]]],"innodb_ft_aux_table"=>["d"=>true,"t"=>1,"a"=>[["a"=>"innodb_ft_aux_table","u"=>40,"t"=>2],["a"=>"sysvar_innodb_ft_aux_table","u"=>41,"t"=>1]]],"innodb_ft_cache_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"innodb_ft_cache_size","u"=>40,"t"=>2],["a"=>"sysvar_innodb_ft_cache_size","u"=>41,"t"=>1]]],"innodb_ft_enable_diag_print"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_ft_enable_diag_print","u"=>40,"t"=>2],["a"=>"sysvar_innodb_ft_enable_diag_print","u"=>41,"t"=>1]]],"innodb_ft_enable_stopword"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_ft_enable_stopword","u"=>40,"t"=>2],["a"=>"sysvar_innodb_ft_enable_stopword","u"=>41,"t"=>1]]],"innodb_ft_max_token_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"innodb_ft_max_token_size","u"=>40,"t"=>2],["a"=>"sysvar_innodb_ft_max_token_size","u"=>41,"t"=>1]]],"innodb_ft_min_token_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"innodb_ft_min_token_size","u"=>40,"t"=>2],["a"=>"sysvar_innodb_ft_min_token_size","u"=>41,"t"=>1]]],"innodb_ft_num_word_optimize"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_ft_num_word_optimize","u"=>40,"t"=>2],["a"=>"sysvar_innodb_ft_num_word_optimize","u"=>41,"t"=>1]]],"innodb_ft_result_cache_limit"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_ft_result_cache_limit","u"=>40,"t"=>2],["a"=>"sysvar_innodb_ft_result_cache_limit","u"=>41,"t"=>1]]],"innodb_ft_server_stopword_table"=>["d"=>true,"t"=>1,"a"=>[["a"=>"innodb_ft_server_stopword_table","u"=>40,"t"=>2],["a"=>"sysvar_innodb_ft_server_stopword_table","u"=>41,"t"=>1]]],"innodb_ft_sort_pll_degree"=>["d"=>false,"t"=>3,"a"=>[["a"=>"innodb_ft_sort_pll_degree","u"=>40,"t"=>2],["a"=>"sysvar_innodb_ft_sort_pll_degree","u"=>41,"t"=>1]]],"innodb_ft_total_cache_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"innodb_ft_total_cache_size","u"=>40,"t"=>2],["a"=>"sysvar_innodb_ft_total_cache_size","u"=>41,"t"=>1]]],"innodb_ft_user_stopword_table"=>["d"=>true,"t"=>1,"a"=>[["a"=>"innodb_ft_user_stopword_table","u"=>40,"t"=>2],["a"=>"sysvar_innodb_ft_user_stopword_table","u"=>41,"t"=>1]]],"innodb_ibuf_accel_rate"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_ibuf_accel_rate","u"=>40,"t"=>2]]],"innodb_ibuf_active_contract"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_ibuf_active_contract","u"=>40,"t"=>2]]],"innodb_ibuf_max_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"innodb_ibuf_max_size","u"=>40,"t"=>2]]],"innodb_idle_flush_pct"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_idle_flush_pct","u"=>40,"t"=>2],["a"=>"sysvar_innodb_idle_flush_pct","u"=>41,"t"=>1]]],"innodb_immediate_scrub_data_uncompressed"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_immediate_scrub_data_uncompressed","u"=>40,"t"=>2]]],"innodb_import_table_from_xtrabackup"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_import_table_from_xtrabackup","u"=>40,"t"=>2]]],"innodb_instrument_semaphores"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_instrument_semaphores","u"=>40,"t"=>2]]],"innodb_io_capacity"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_io_capacity","u"=>40,"t"=>2],["a"=>"sysvar_innodb_io_capacity","u"=>41,"t"=>1]]],"innodb_io_capacity_max"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_io_capacity_max","u"=>40,"t"=>2],["a"=>"sysvar_innodb_io_capacity_max","u"=>41,"t"=>1]]],"innodb_kill_idle_transaction"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_kill_idle_transaction","u"=>40,"t"=>2]]],"innodb_large_prefix"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_large_prefix","u"=>40,"t"=>2]]],"innodb_lazy_drop_table"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_lazy_drop_table","u"=>40,"t"=>2]]],"innodb_lock_schedule_algorithm"=>["d"=>false,"a"=>[["a"=>"innodb_lock_schedule_algorithm","u"=>40,"t"=>2]]],"innodb_lock_wait_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_lock_wait_timeout","u"=>40,"t"=>2],["a"=>"sysvar_innodb_lock_wait_timeout","u"=>41,"t"=>1]]],"innodb_locking_fake_changes"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_locking_fake_changes","u"=>40,"t"=>2]]],"innodb_locks_unsafe_for_binlog"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_locks_unsafe_for_binlog","u"=>40,"t"=>2]]],"innodb_log_arch_dir"=>["d"=>false,"t"=>1,"a"=>[["a"=>"innodb_log_arch_dir","u"=>40,"t"=>2]]],"innodb_log_arch_expire_sec"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_log_arch_expire_sec","u"=>40,"t"=>2]]],"innodb_log_archive"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_log_archive","u"=>40,"t"=>2]]],"innodb_log_block_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"innodb_log_block_size","u"=>40,"t"=>2]]],"innodb_log_buffer_size"=>["t"=>3,"a"=>[["a"=>"innodb_log_buffer_size","u"=>40,"t"=>2],["a"=>"sysvar_innodb_log_buffer_size","u"=>41,"t"=>1]]],"innodb_log_checksum_algorithm"=>["d"=>true,"a"=>[["a"=>"innodb_log_checksum_algorithm","u"=>40,"t"=>2]]],"innodb_log_checksums"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_log_checksums","u"=>40,"t"=>2],["a"=>"sysvar_innodb_log_checksums","u"=>41,"t"=>1]]],"innodb_log_compressed_pages"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_log_compressed_pages","u"=>40,"t"=>2],["a"=>"sysvar_innodb_log_compressed_pages","u"=>41,"t"=>1]]],"innodb_log_file_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"innodb_log_file_size","u"=>40,"t"=>2],["a"=>"sysvar_innodb_log_file_size","u"=>41,"t"=>1]]],"innodb_log_files_in_group"=>["d"=>false,"t"=>3,"a"=>[["a"=>"innodb_log_files_in_group","u"=>40,"t"=>2],["a"=>"sysvar_innodb_log_files_in_group","u"=>41,"t"=>1]]],"innodb_log_group_home_dir"=>["d"=>false,"t"=>7,"a"=>[["a"=>"innodb_log_group_home_dir","u"=>40,"t"=>2],["a"=>"sysvar_innodb_log_group_home_dir","u"=>41,"t"=>1]]],"innodb_log_optimize_ddl"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_log_optimize_ddl","u"=>40,"t"=>2]]],"innodb_log_write_ahead_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_log_write_ahead_size","u"=>40,"t"=>2],["a"=>"sysvar_innodb_log_write_ahead_size","u"=>41,"t"=>1]]],"innodb_lru_scan_depth"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_lru_scan_depth","u"=>40,"t"=>2],["a"=>"sysvar_innodb_lru_scan_depth","u"=>41,"t"=>1]]],"innodb_max_bitmap_file_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_max_bitmap_file_size","u"=>40,"t"=>2]]],"innodb_max_changed_pages"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_max_changed_pages","u"=>40,"t"=>2]]],"innodb_max_dirty_pages_pct"=>["t"=>3,"a"=>[["a"=>"innodb_max_dirty_pages_pct","u"=>40,"t"=>2],["a"=>"sysvar_innodb_max_dirty_pages_pct","u"=>41,"t"=>1]]],"innodb_max_dirty_pages_pct_lwm"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_max_dirty_pages_pct_lwm","u"=>40,"t"=>2],["a"=>"sysvar_innodb_max_dirty_pages_pct_lwm","u"=>41,"t"=>1]]],"innodb_max_purge_lag"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_max_purge_lag","u"=>40,"t"=>2],["a"=>"sysvar_innodb_max_purge_lag","u"=>41,"t"=>1]]],"innodb_max_purge_lag_delay"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_max_purge_lag_delay","u"=>40,"t"=>2],["a"=>"sysvar_innodb_max_purge_lag_delay","u"=>41,"t"=>1]]],"innodb_max_undo_log_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_max_undo_log_size","u"=>40,"t"=>2],["a"=>"sysvar_innodb_max_undo_log_size","u"=>41,"t"=>1]]],"innodb_merge_sort_block_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_merge_sort_block_size","u"=>40,"t"=>2]]],"innodb_mirrored_log_groups"=>["a"=>[["a"=>"innodb_mirrored_log_groups","u"=>40,"t"=>2]]],"innodb_mtflush_threads"=>["d"=>false,"t"=>3,"a"=>[["a"=>"innodb_mtflush_threads","u"=>40,"t"=>2]]],"innodb_monitor_disable"=>["d"=>true,"t"=>1,"a"=>[["a"=>"innodb_monitor_disable","u"=>40,"t"=>2],["a"=>"sysvar_innodb_monitor_disable","u"=>41,"t"=>1]]],"innodb_monitor_enable"=>["d"=>true,"t"=>1,"a"=>[["a"=>"innodb_monitor_enable","u"=>40,"t"=>2],["a"=>"sysvar_innodb_monitor_enable","u"=>41,"t"=>1]]],"innodb_monitor_reset"=>["d"=>true,"a"=>[["a"=>"innodb_monitor_reset","u"=>40,"t"=>2],["a"=>"sysvar_innodb_monitor_reset","u"=>41,"t"=>1]]],"innodb_monitor_reset_all"=>["d"=>true,"a"=>[["a"=>"innodb_monitor_reset_all","u"=>40,"t"=>2],["a"=>"sysvar_innodb_monitor_reset_all","u"=>41,"t"=>1]]],"innodb_numa_interleave"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_numa_interleave","u"=>40,"t"=>2],["a"=>"sysvar_innodb_numa_interleave","u"=>41,"t"=>1]]],"innodb_old_blocks_pct"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_old_blocks_pct","u"=>40,"t"=>2],["a"=>"sysvar_innodb_old_blocks_pct","u"=>41,"t"=>1]]],"innodb_old_blocks_time"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_old_blocks_time","u"=>40,"t"=>2],["a"=>"sysvar_innodb_old_blocks_time","u"=>41,"t"=>1]]],"innodb_online_alter_log_max_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_online_alter_log_max_size","u"=>40,"t"=>2],["a"=>"sysvar_innodb_online_alter_log_max_size","u"=>41,"t"=>1]]],"innodb_open_files"=>["d"=>false,"t"=>3,"a"=>[["a"=>"innodb_open_files","u"=>40,"t"=>2],["a"=>"sysvar_innodb_open_files","u"=>41,"t"=>1]]],"innodb_optimize_fulltext_only"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_optimize_fulltext_only","u"=>40,"t"=>2],["a"=>"sysvar_innodb_optimize_fulltext_only","u"=>41,"t"=>1]]],"innodb_page_cleaners"=>["d"=>false,"t"=>3,"a"=>[["a"=>"innodb_page_cleaners","u"=>40,"t"=>2],["a"=>"sysvar_innodb_page_cleaners","u"=>41,"t"=>1]]],"innodb_page_size"=>["d"=>false,"t"=>5,"a"=>[["a"=>"innodb_page_size","u"=>40,"t"=>2],["a"=>"sysvar_innodb_page_size","u"=>41,"t"=>1]]],"innodb_pass_corrupt_table"=>["a"=>[["a"=>"innodb_pass_corrupt_table","u"=>40,"t"=>2]]],"innodb_prefix_index_cluster_optimization"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_prefix_index_cluster_optimization","u"=>40,"t"=>2]]],"innodb_print_all_deadlocks"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_print_all_deadlocks","u"=>40,"t"=>2],["a"=>"sysvar_innodb_print_all_deadlocks","u"=>41,"t"=>1]]],"innodb_purge_batch_size"=>["t"=>3,"a"=>[["a"=>"innodb_purge_batch_size","u"=>40,"t"=>2],["a"=>"sysvar_innodb_purge_batch_size","u"=>41,"t"=>1]]],"innodb_purge_rseg_truncate_frequency"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_purge_rseg_truncate_frequency","u"=>40,"t"=>2],["a"=>"sysvar_innodb_purge_rseg_truncate_frequency","u"=>41,"t"=>1]]],"innodb_purge_threads"=>["d"=>false,"t"=>3,"a"=>[["a"=>"innodb_purge_threads","u"=>40,"t"=>2],["a"=>"sysvar_innodb_purge_threads","u"=>41,"t"=>1]]],"innodb_random_read_ahead"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_random_read_ahead","u"=>40,"t"=>2],["a"=>"sysvar_innodb_random_read_ahead","u"=>41,"t"=>1]]],"innodb_read_ahead"=>["d"=>true,"t"=>5,"a"=>[["a"=>"innodb_read_ahead","u"=>40,"t"=>2]]],"innodb_read_ahead_threshold"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_read_ahead_threshold","u"=>40,"t"=>2],["a"=>"sysvar_innodb_read_ahead_threshold","u"=>41,"t"=>1]]],"innodb_read_io_threads"=>["d"=>false,"t"=>3,"a"=>[["a"=>"innodb_read_io_threads","u"=>40,"t"=>2],["a"=>"sysvar_innodb_read_io_threads","u"=>41,"t"=>1]]],"innodb_read_only"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_read_only","u"=>40,"t"=>2],["a"=>"sysvar_innodb_read_only","u"=>41,"t"=>1]]],"innodb_recovery_stats"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_recovery_stats","u"=>40,"t"=>2]]],"innodb_recovery_update_relay_log"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_recovery_update_relay_log","u"=>40,"t"=>2]]],"innodb_replication_delay"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_replication_delay","u"=>40,"t"=>2],["a"=>"sysvar_innodb_replication_delay","u"=>41,"t"=>1]]],"innodb_rollback_on_timeout"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_rollback_on_timeout","u"=>40,"t"=>2],["a"=>"sysvar_innodb_rollback_on_timeout","u"=>41,"t"=>1]]],"innodb_rollback_segments"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_rollback_segments","u"=>40,"t"=>2],["a"=>"sysvar_innodb_rollback_segments","u"=>41,"t"=>1]]],"innodb_safe_truncate"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_safe_truncate","u"=>40,"t"=>2]]],"innodb_scrub_log"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_scrub_log","u"=>40,"t"=>2]]],"innodb_scrub_log_interval"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_scrub_log_interval","u"=>40,"t"=>2]]],"innodb_scrub_log_speed"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_scrub_log_speed","u"=>40,"t"=>2]]],"innodb_sched_priority_cleaner"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_sched_priority_cleaner","u"=>40,"t"=>2]]],"innodb_show_locks_held"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_show_locks_held","u"=>40,"t"=>2]]],"innodb_show_verbose_locks"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_show_verbose_locks","u"=>40,"t"=>2]]],"innodb_simulate_comp_failures"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_simulate_comp_failures","u"=>40,"t"=>2]]],"innodb_sort_buffer_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"innodb_sort_buffer_size","u"=>40,"t"=>2],["a"=>"sysvar_innodb_sort_buffer_size","u"=>41,"t"=>1]]],"innodb_spin_wait_delay"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_spin_wait_delay","u"=>40,"t"=>2],["a"=>"sysvar_innodb_spin_wait_delay","u"=>41,"t"=>1]]],"innodb_stats_auto_recalc"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_stats_auto_recalc","u"=>40,"t"=>2],["a"=>"sysvar_innodb_stats_auto_recalc","u"=>41,"t"=>1]]],"innodb_stats_auto_update"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_stats_auto_update","u"=>40,"t"=>2]]],"innodb_stats_include_delete_marked"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_stats_include_delete_marked","u"=>40,"t"=>2],["a"=>"sysvar_innodb_stats_include_delete_marked","u"=>41,"t"=>1]]],"innodb_stats_method"=>["d"=>true,"t"=>5,"a"=>[["a"=>"innodb_stats_method","u"=>40,"t"=>2],["a"=>"sysvar_innodb_stats_method","u"=>41,"t"=>1]]],"innodb_stats_modified_counter"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_stats_modified_counter","u"=>40,"t"=>2]]],"innodb_stats_on_metadata"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_stats_on_metadata","u"=>40,"t"=>2],["a"=>"sysvar_innodb_stats_on_metadata","u"=>41,"t"=>1]]],"innodb_stats_persistent"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_stats_persistent","u"=>40,"t"=>2],["a"=>"sysvar_innodb_stats_persistent","u"=>41,"t"=>1]]],"innodb_stats_persistent_sample_pages"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_stats_persistent_sample_pages","u"=>40,"t"=>2],["a"=>"sysvar_innodb_stats_persistent_sample_pages","u"=>41,"t"=>1]]],"innodb_stats_sample_pages"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_stats_sample_pages","u"=>40,"t"=>2]]],"innodb_stats_traditional"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_stats_traditional","u"=>40,"t"=>2]]],"innodb_stats_transient_sample_pages"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_stats_transient_sample_pages","u"=>40,"t"=>2],["a"=>"sysvar_innodb_stats_transient_sample_pages","u"=>41,"t"=>1]]],"innodb_stats_update_need_lock"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_stats_update_need_lock","u"=>40,"t"=>2]]],"innodb_status_output"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_status_output","u"=>40,"t"=>2],["a"=>"sysvar_innodb_status_output","u"=>41,"t"=>1]]],"innodb_status_output_locks"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_status_output_locks","u"=>40,"t"=>2],["a"=>"sysvar_innodb_status_output_locks","u"=>41,"t"=>1]]],"innodb_strict_mode"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_strict_mode","u"=>40,"t"=>2],["a"=>"sysvar_innodb_strict_mode","u"=>41,"t"=>1]]],"innodb_support_xa"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_support_xa","u"=>40,"t"=>2]]],"innodb_sync_array_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"innodb_sync_array_size","u"=>40,"t"=>2],["a"=>"sysvar_innodb_sync_array_size","u"=>41,"t"=>1]]],"innodb_sync_spin_loops"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_sync_spin_loops","u"=>40,"t"=>2],["a"=>"sysvar_innodb_sync_spin_loops","u"=>41,"t"=>1]]],"innodb_table_locks"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_table_locks","u"=>40,"t"=>2],["a"=>"sysvar_innodb_table_locks","u"=>41,"t"=>1]]],"innodb_thread_concurrency"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_thread_concurrency","u"=>40,"t"=>2],["a"=>"sysvar_innodb_thread_concurrency","u"=>41,"t"=>1]]],"innodb_thread_concurrency_timer_based"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_thread_concurrency_timer_based","u"=>40,"t"=>2]]],"innodb_thread_sleep_delay"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_thread_sleep_delay","u"=>40,"t"=>2],["a"=>"sysvar_innodb_thread_sleep_delay","u"=>41,"t"=>1]]],"innodb_temp_data_file_path"=>["d"=>false,"t"=>1,"a"=>[["a"=>"innodb_temp_data_file_path","u"=>40,"t"=>2],["a"=>"sysvar_innodb_temp_data_file_path","u"=>41,"t"=>1]]],"innodb_tmpdir"=>["d"=>true,"a"=>[["a"=>"innodb_tmpdir","u"=>40,"t"=>2],["a"=>"sysvar_innodb_tmpdir","u"=>41,"t"=>1]]],"innodb_track_changed_pages"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_track_changed_pages","u"=>40,"t"=>2]]],"innodb_track_redo_log_now"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_track_redo_log_now","u"=>40,"t"=>2]]],"innodb_undo_directory"=>["d"=>false,"a"=>[["a"=>"innodb_undo_directory","u"=>40,"t"=>2],["a"=>"sysvar_innodb_undo_directory","u"=>41,"t"=>1]]],"innodb_undo_log_truncate"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_undo_log_truncate","u"=>40,"t"=>2],["a"=>"sysvar_innodb_undo_log_truncate","u"=>41,"t"=>1]]],"innodb_undo_logs"=>["d"=>true,"t"=>3,"a"=>[["a"=>"innodb_undo_logs","u"=>40,"t"=>2],["a"=>"sysvar_innodb_undo_logs","u"=>41,"t"=>1]]],"innodb_undo_tablespaces"=>["t"=>3,"a"=>[["a"=>"innodb_undo_tablespaces","u"=>40,"t"=>2],["a"=>"sysvar_innodb_undo_tablespaces","u"=>41,"t"=>1]]],"innodb_use_atomic_writes"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_use_atomic_writes","u"=>40,"t"=>2]]],"innodb_use_fallocate"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_use_fallocate","u"=>40,"t"=>2]]],"innodb_use_global_flush_log_at_trx_commit"=>["d"=>true,"t"=>2,"a"=>[["a"=>"innodb_use_global_flush_log_at_trx_commit","u"=>40,"t"=>2]]],"innodb_use_mtflush"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_use_mtflush","u"=>40,"t"=>2]]],"innodb_use_native_aio"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_use_native_aio","u"=>40,"t"=>2],["a"=>"sysvar_innodb_use_native_aio","u"=>41,"t"=>1]]],"innodb_use_purge_thread"=>["d"=>false,"t"=>3,"a"=>[["a"=>"innodb_use_purge_thread","u"=>40,"t"=>2]]],"innodb_use_stacktrace"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_use_stacktrace","u"=>40,"t"=>2]]],"innodb_use_sys_malloc"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_use_sys_malloc","u"=>40,"t"=>2]]],"innodb_use_sys_stats_table"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_use_sys_stats_table","u"=>40,"t"=>2]]],"innodb_use_trim"=>["d"=>false,"t"=>2,"a"=>[["a"=>"innodb_use_trim","u"=>40,"t"=>2]]],"innodb_version"=>["d"=>false,"t"=>1,"a"=>[["a"=>"innodb_version","u"=>40,"t"=>2]]],"innodb_write_io_threads"=>["d"=>false,"t"=>3,"a"=>[["a"=>"innodb_write_io_threads","u"=>40,"t"=>2],["a"=>"sysvar_innodb_write_io_threads","u"=>41,"t"=>1]]],"audit_log"=>["t"=>5,"a"=>[["a"=>"option_mysqld_audit-log","u"=>42,"t"=>1]]],"audit_log_buffer_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"sysvar_audit_log_buffer_size","u"=>42,"t"=>1]]],"audit_log_compression"=>["d"=>false,"t"=>5,"a"=>[["a"=>"sysvar_audit_log_compression","u"=>42,"t"=>1]]],"audit_log_connection_policy"=>["d"=>true,"t"=>5,"a"=>[["a"=>"sysvar_audit_log_connection_policy","u"=>42,"t"=>1]]],"audit_log_current_session"=>["d"=>false,"t"=>2,"a"=>[["a"=>"sysvar_audit_log_current_session","u"=>42,"t"=>1]]],"audit_log_encryption"=>["d"=>false,"t"=>5,"a"=>[["a"=>"sysvar_audit_log_encryption","u"=>42,"t"=>1]]],"audit_log_exclude_accounts"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_audit_log_exclude_accounts","u"=>42,"t"=>1]]],"audit_log_file"=>["d"=>false,"t"=>8,"a"=>[["a"=>"sysvar_audit_log_file","u"=>42,"t"=>1]]],"audit_log_filter_id"=>["d"=>false,"t"=>3,"a"=>[["a"=>"sysvar_audit_log_filter_id","u"=>42,"t"=>1]]],"audit_log_flush"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_audit_log_flush","u"=>42,"t"=>1]]],"audit_log_format"=>["d"=>false,"t"=>5,"a"=>[["a"=>"sysvar_audit_log_format","u"=>42,"t"=>1]]],"audit_log_include_accounts"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_audit_log_include_accounts","u"=>42,"t"=>1]]],"audit_log_password_history_keep_days"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_audit_log_password_history_keep_days","u"=>42,"t"=>1]]],"audit_log_policy"=>["d"=>false,"t"=>5,"a"=>[["a"=>"sysvar_audit_log_policy","u"=>42,"t"=>1]]],"audit_log_read_buffer_size"=>["t"=>3,"a"=>[["a"=>"sysvar_audit_log_read_buffer_size","u"=>42,"t"=>1]]],"audit_log_rotate_on_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_audit_log_rotate_on_size","u"=>42,"t"=>1]]],"audit_log_statement_policy"=>["d"=>true,"t"=>5,"a"=>[["a"=>"sysvar_audit_log_statement_policy","u"=>42,"t"=>1]]],"audit_log_strategy"=>["d"=>false,"t"=>5,"a"=>[["a"=>"sysvar_audit_log_strategy","u"=>42,"t"=>1]]],"innodb"=>["t"=>5,"a"=>[["a"=>"option_mysqld_innodb","u"=>41,"t"=>1]]],"innodb_status_file"=>["t"=>2,"a"=>[["a"=>"option_mysqld_innodb-status-file","u"=>41,"t"=>1]]],"daemon_memcached_enable_binlog"=>["d"=>false,"t"=>2,"a"=>[["a"=>"sysvar_daemon_memcached_enable_binlog","u"=>41,"t"=>1]]],"daemon_memcached_engine_lib_name"=>["d"=>false,"t"=>8,"a"=>[["a"=>"sysvar_daemon_memcached_engine_lib_name","u"=>41,"t"=>1]]],"daemon_memcached_engine_lib_path"=>["d"=>false,"t"=>7,"a"=>[["a"=>"sysvar_daemon_memcached_engine_lib_path","u"=>41,"t"=>1]]],"daemon_memcached_option"=>["d"=>false,"t"=>1,"a"=>[["a"=>"sysvar_daemon_memcached_option","u"=>41,"t"=>1]]],"daemon_memcached_r_batch_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"sysvar_daemon_memcached_r_batch_size","u"=>41,"t"=>1]]],"daemon_memcached_w_batch_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"sysvar_daemon_memcached_w_batch_size","u"=>41,"t"=>1]]],"innodb_background_drop_list_empty"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_innodb_background_drop_list_empty","u"=>41,"t"=>1]]],"innodb_buffer_pool_debug"=>["d"=>false,"t"=>2,"a"=>[["a"=>"sysvar_innodb_buffer_pool_debug","u"=>41,"t"=>1]]],"innodb_buffer_pool_in_core_file"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_innodb_buffer_pool_in_core_file","u"=>41,"t"=>1]]],"innodb_checkpoint_disabled"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_innodb_checkpoint_disabled","u"=>41,"t"=>1]]],"innodb_compress_debug"=>["d"=>true,"t"=>5,"a"=>[["a"=>"sysvar_innodb_compress_debug","u"=>41,"t"=>1]]],"innodb_ddl_log_crash_reset_debug"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_innodb_ddl_log_crash_reset_debug","u"=>41,"t"=>1]]],"innodb_dedicated_server"=>["d"=>false,"t"=>2,"a"=>[["a"=>"sysvar_innodb_dedicated_server","u"=>41,"t"=>1]]],"innodb_directories"=>["d"=>false,"t"=>7,"a"=>[["a"=>"sysvar_innodb_directories","u"=>41,"t"=>1]]],"innodb_fil_make_page_dirty_debug"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_innodb_fil_make_page_dirty_debug","u"=>41,"t"=>1]]],"innodb_fsync_threshold"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_innodb_fsync_threshold","u"=>41,"t"=>1]]],"innodb_limit_optimistic_insert_debug"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_innodb_limit_optimistic_insert_debug","u"=>41,"t"=>1]]],"innodb_log_checkpoint_fuzzy_now"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_innodb_log_checkpoint_fuzzy_now","u"=>41,"t"=>1]]],"innodb_log_checkpoint_now"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_innodb_log_checkpoint_now","u"=>41,"t"=>1]]],"innodb_log_spin_cpu_abs_lwm"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_innodb_log_spin_cpu_abs_lwm","u"=>41,"t"=>1]]],"innodb_log_spin_cpu_pct_hwm"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_innodb_log_spin_cpu_pct_hwm","u"=>41,"t"=>1]]],"innodb_log_wait_for_flush_spin_hwm"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_innodb_log_wait_for_flush_spin_hwm","u"=>41,"t"=>1]]],"innodb_merge_threshold_set_all_debug"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_innodb_merge_threshold_set_all_debug","u"=>41,"t"=>1]]],"innodb_parallel_read_threads"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_innodb_parallel_read_threads","u"=>41,"t"=>1]]],"innodb_print_ddl_logs"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_innodb_print_ddl_logs","u"=>41,"t"=>1]]],"innodb_redo_log_archive_dirs"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_innodb_redo_log_archive_dirs","u"=>41,"t"=>1]]],"innodb_redo_log_encrypt"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_innodb_redo_log_encrypt","u"=>41,"t"=>1]]],"innodb_scan_directories"=>["d"=>false,"t"=>7,"a"=>[["a"=>"sysvar_innodb_scan_directories","u"=>41,"t"=>1]]],"innodb_saved_page_number_debug"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_innodb_saved_page_number_debug","u"=>41,"t"=>1]]],"innodb_spin_wait_pause_multiplier"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_innodb_spin_wait_pause_multiplier","u"=>41,"t"=>1]]],"innodb_sync_debug"=>["d"=>false,"t"=>2,"a"=>[["a"=>"sysvar_innodb_sync_debug","u"=>41,"t"=>1]]],"innodb_temp_tablespaces_dir"=>["d"=>false,"t"=>7,"a"=>[["a"=>"sysvar_innodb_temp_tablespaces_dir","u"=>41,"t"=>1]]],"innodb_trx_purge_view_update_only_debug"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_innodb_trx_purge_view_update_only_debug","u"=>41,"t"=>1]]],"innodb_trx_rseg_n_slots_debug"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_innodb_trx_rseg_n_slots_debug","u"=>41,"t"=>1]]],"innodb_undo_log_encrypt"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_innodb_undo_log_encrypt","u"=>41,"t"=>1]]],"ndbcluster"=>["d"=>false,"a"=>[["a"=>"option_mysqld_ndbcluster","u"=>43,"t"=>1]]],"ndb-allow-copying-alter-table"=>["d"=>true,"a"=>[["a"=>"option_mysqld_ndb-allow-copying-alter-table","u"=>43,"t"=>1]]],"ndb-batch-size"=>["d"=>false,"a"=>[["a"=>"option_mysqld_ndb-batch-size","u"=>43,"t"=>1]]],"ndb-cluster-connection-pool"=>["d"=>false,"a"=>[["a"=>"option_mysqld_ndb-cluster-connection-pool","u"=>43,"t"=>1]]],"ndb-cluster-connection-pool-nodeids"=>["d"=>false,"a"=>[["a"=>"option_mysqld_ndb-cluster-connection-pool-nodeids","u"=>43,"t"=>1]]],"ndb-blob-read-batch-bytes"=>["d"=>true,"a"=>[["a"=>"option_mysqld_ndb-blob-read-batch-bytes","u"=>43,"t"=>1]]],"ndb-blob-write-batch-bytes"=>["d"=>true,"a"=>[["a"=>"option_mysqld_ndb-blob-write-batch-bytes","u"=>43,"t"=>1]]],"ndb-connectstring"=>["d"=>false,"a"=>[["a"=>"option_mysqld_ndb-connectstring","u"=>43,"t"=>1]]],"ndb-default-column-format"=>["d"=>true,"a"=>[["a"=>"option_mysqld_ndb-default-column-format","u"=>43,"t"=>1]]],"ndb-deferred-constraints"=>["d"=>true,"a"=>[["a"=>"option_mysqld_ndb-deferred-constraints","u"=>43,"t"=>1]]],"ndb-distribution"=>["d"=>true,"a"=>[["a"=>"option_mysqld_ndb-distribution","u"=>43,"t"=>1]]],"ndb-log-apply-status"=>["d"=>false,"a"=>[["a"=>"option_mysqld_ndb-log-apply-status","u"=>43,"t"=>1]]],"ndb-log-empty-epochs"=>["d"=>true,"a"=>[["a"=>"option_mysqld_ndb-log-empty-epochs","u"=>43,"t"=>1]]],"ndb-log-empty-update"=>["d"=>true,"a"=>[["a"=>"option_mysqld_ndb-log-empty-update","u"=>43,"t"=>1]]],"ndb-log-exclusive-reads"=>["d"=>true,"a"=>[["a"=>"option_mysqld_ndb-log-exclusive-reads","u"=>43,"t"=>1]]],"ndb-log-orig"=>["d"=>false,"a"=>[["a"=>"option_mysqld_ndb-log-orig","u"=>43,"t"=>1]]],"ndb-log-transaction-id"=>["d"=>false,"a"=>[["a"=>"option_mysqld_ndb-log-transaction-id","u"=>43,"t"=>1]]],"ndb-log-update-minimal"=>["d"=>true,"a"=>[["a"=>"option_mysqld_ndb-log-update-minimal","u"=>43,"t"=>1]]],"ndb-mgmd-host"=>["d"=>false,"a"=>[["a"=>"option_mysqld_ndb-mgmd-host","u"=>43,"t"=>1]]],"ndb-nodeid"=>["d"=>false,"a"=>[["a"=>"option_mysqld_ndb-nodeid","u"=>43,"t"=>1]]],"ndb-optimization-delay"=>["d"=>true,"a"=>[["a"=>"option_mysqld_ndb-optimization-delay","u"=>43,"t"=>1]]],"ndb-recv-thread-activation-threshold"=>["d"=>false,"a"=>[["a"=>"option_mysqld_ndb-recv-thread-activation-threshold","u"=>43,"t"=>1]]],"ndb-recv-thread-cpu-mask"=>["d"=>false,"a"=>[["a"=>"option_mysqld_ndb-recv-thread-cpu-mask","u"=>43,"t"=>1]]],"ndb-transid-mysql-connection-map"=>["d"=>false,"a"=>[["a"=>"option_mysqld_ndb-transid-mysql-connection-map","u"=>43,"t"=>1]]],"ndb-wait-connected"=>["d"=>false,"a"=>[["a"=>"option_mysqld_ndb-wait-connected","u"=>43,"t"=>1]]],"ndb-wait-setup"=>["d"=>false,"a"=>[["a"=>"option_mysqld_ndb-wait-setup","u"=>43,"t"=>1]]],"skip-ndbcluster"=>["d"=>false,"a"=>[["a"=>"option_mysqld_skip-ndbcluster","u"=>43,"t"=>1]]],"ndb_autoincrement_prefetch_sz"=>["d"=>true,"a"=>[["a"=>"sysvar_ndb_autoincrement_prefetch_sz","u"=>43,"t"=>1]]],"ndb_cache_check_time"=>["d"=>true,"a"=>[["a"=>"sysvar_ndb_cache_check_time","u"=>43,"t"=>1]]],"ndb_clear_apply_status"=>["d"=>true,"a"=>[["a"=>"sysvar_ndb_clear_apply_status","u"=>43,"t"=>1]]],"ndb_data_node_neighbour"=>["d"=>true,"a"=>[["a"=>"sysvar_ndb_data_node_neighbour","u"=>43,"t"=>1]]],"ndb_default_column_format"=>["d"=>true,"a"=>[["a"=>"sysvar_ndb_default_column_format","u"=>43,"t"=>1]]],"ndb_deferred_constraints"=>["d"=>true,"a"=>[["a"=>"sysvar_ndb_deferred_constraints","u"=>43,"t"=>1]]],"ndb_distribution"=>["d"=>true,"a"=>[["a"=>"sysvar_ndb_distribution","u"=>43,"t"=>1]]],"ndb_eventbuffer_free_percent"=>["d"=>true,"a"=>[["a"=>"sysvar_ndb_eventbuffer_free_percent","u"=>43,"t"=>1]]],"ndb_eventbuffer_max_alloc"=>["d"=>true,"a"=>[["a"=>"sysvar_ndb_eventbuffer_max_alloc","u"=>43,"t"=>1]]],"ndb_extra_logging"=>["d"=>true,"a"=>[["a"=>"sysvar_ndb_extra_logging","u"=>43,"t"=>1]]],"ndb_force_send"=>["d"=>true,"a"=>[["a"=>"sysvar_ndb_force_send","u"=>43,"t"=>1]]],"ndb_fully_replicated"=>["d"=>true,"a"=>[["a"=>"sysvar_ndb_fully_replicated","u"=>43,"t"=>1]]],"ndb_index_stat_enable"=>["d"=>true,"a"=>[["a"=>"sysvar_ndb_index_stat_enable","u"=>43,"t"=>1]]],"ndb_index_stat_option"=>["d"=>true,"a"=>[["a"=>"sysvar_ndb_index_stat_option","u"=>43,"t"=>1]]],"ndb_join_pushdown"=>["d"=>true,"a"=>[["a"=>"sysvar_ndb_join_pushdown","u"=>43,"t"=>1]]],"ndb_log_apply_status"=>["d"=>false,"a"=>[["a"=>"sysvar_ndb_log_apply_status","u"=>43,"t"=>1]]],"ndb_log_bin"=>["d"=>true,"a"=>[["a"=>"sysvar_ndb_log_bin","u"=>43,"t"=>1]]],"ndb_log_binlog_index"=>["d"=>true,"a"=>[["a"=>"sysvar_ndb_log_binlog_index","u"=>43,"t"=>1]]],"ndb_log_empty_epochs"=>["d"=>true,"a"=>[["a"=>"sysvar_ndb_log_empty_epochs","u"=>43,"t"=>1]]],"ndb_log_empty_update"=>["d"=>true,"a"=>[["a"=>"sysvar_ndb_log_empty_update","u"=>43,"t"=>1]]],"ndb_log_exclusive_reads"=>["d"=>true,"a"=>[["a"=>"sysvar_ndb_log_exclusive_reads","u"=>43,"t"=>1]]],"ndb_log_orig"=>["d"=>false,"a"=>[["a"=>"sysvar_ndb_log_orig","u"=>43,"t"=>1]]],"ndb_log_transaction_id"=>["d"=>false,"a"=>[["a"=>"sysvar_ndb_log_transaction_id","u"=>43,"t"=>1]]],"ndb_optimized_node_selection"=>["d"=>false,"a"=>[["a"=>"sysvar_ndb_optimized_node_selection","u"=>43,"t"=>1]]],"ndb_read_backup"=>["d"=>true,"a"=>[["a"=>"sysvar_ndb_read_backup","u"=>43,"t"=>1]]],"ndb_recv_thread_activation_threshold"=>["d"=>false,"a"=>[["a"=>"sysvar_ndb_recv_thread_activation_threshold","u"=>43,"t"=>1]]],"ndb_recv_thread_cpu_mask"=>["d"=>true,"a"=>[["a"=>"sysvar_ndb_recv_thread_cpu_mask","u"=>43,"t"=>1]]],"ndb_report_thresh_binlog_epoch_slip"=>["d"=>true,"a"=>[["a"=>"sysvar_ndb_report_thresh_binlog_epoch_slip","u"=>43,"t"=>1]]],"ndb_report_thresh_binlog_mem_usage"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_ndb_report_thresh_binlog_mem_usage","u"=>43,"t"=>1]]],"ndb_row_checksum"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_ndb_row_checksum","u"=>43,"t"=>1]]],"ndb_show_foreign_key_mock_tables"=>["d"=>true,"a"=>[["a"=>"sysvar_ndb_show_foreign_key_mock_tables","u"=>43,"t"=>1]]],"ndb_slave_conflict_role"=>["d"=>true,"a"=>[["a"=>"sysvar_ndb_slave_conflict_role","u"=>43,"t"=>1]]],"ndb_table_no_logging"=>["d"=>true,"a"=>[["a"=>"sysvar_ndb_table_no_logging","u"=>43,"t"=>1]]],"ndb_table_temporary"=>["d"=>true,"a"=>[["a"=>"sysvar_ndb_table_temporary","u"=>43,"t"=>1]]],"ndb_use_copying_alter_table"=>["d"=>false,"a"=>[["a"=>"sysvar_ndb_use_copying_alter_table","u"=>43,"t"=>1]]],"ndb_use_exact_count"=>["d"=>true,"a"=>[["a"=>"sysvar_ndb_use_exact_count","u"=>43,"t"=>1]]],"ndb_use_transactions"=>["d"=>true,"a"=>[["a"=>"sysvar_ndb_use_transactions","u"=>43,"t"=>1]]],"ndb_version"=>["d"=>false,"a"=>[["a"=>"sysvar_ndb_version","u"=>43,"t"=>1]]],"ndb_version_string"=>["d"=>false,"a"=>[["a"=>"sysvar_ndb_version_string","u"=>43,"t"=>1]]],"server_id_bits"=>["d"=>false,"a"=>[["a"=>"sysvar_server_id_bits","u"=>43,"t"=>1]]],"slave_allow_batching"=>["d"=>true,"a"=>[["a"=>"sysvar_slave_allow_batching","u"=>43,"t"=>1]]],"transaction_allow_batching"=>["d"=>true,"a"=>[["a"=>"sysvar_transaction_allow_batching","u"=>43,"t"=>1]]],"ndbinfo_database"=>["d"=>false,"a"=>[["a"=>"sysvar_ndbinfo_database","u"=>43,"t"=>1]]],"ndbinfo_max_bytes"=>["d"=>true,"a"=>[["a"=>"sysvar_ndbinfo_max_bytes","u"=>43,"t"=>1]]],"ndbinfo_max_rows"=>["d"=>true,"a"=>[["a"=>"sysvar_ndbinfo_max_rows","u"=>43,"t"=>1]]],"ndbinfo_offline"=>["d"=>true,"a"=>[["a"=>"sysvar_ndbinfo_offline","u"=>43,"t"=>1]]],"ndbinfo_show_hidden"=>["d"=>true,"a"=>[["a"=>"sysvar_ndbinfo_show_hidden","u"=>43,"t"=>1]]],"ndbinfo_table_prefix"=>["d"=>true,"a"=>[["a"=>"sysvar_ndbinfo_table_prefix","u"=>43,"t"=>1]]],"ndbinfo_version"=>["d"=>false,"a"=>[["a"=>"sysvar_ndbinfo_version","u"=>43,"t"=>1]]],"performance_schema_error_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"sysvar_performance_schema_error_size","u"=>20,"t"=>1]]],"performance_schema_events_transactions_history_long_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"sysvar_performance_schema_events_transactions_history_long_size","u"=>20,"t"=>1]]],"performance_schema_events_transactions_history_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"sysvar_performance_schema_events_transactions_history_size","u"=>20,"t"=>1]]],"performance_schema_max_digest_sample_age"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_performance_schema_max_digest_sample_age","u"=>20,"t"=>1]]],"performance_schema_max_index_stat"=>["d"=>false,"t"=>3,"a"=>[["a"=>"sysvar_performance_schema_max_index_stat","u"=>20,"t"=>1]]],"performance_schema_max_memory_classes"=>["d"=>false,"t"=>3,"a"=>[["a"=>"sysvar_performance_schema_max_memory_classes","u"=>20,"t"=>1]]],"performance_schema_max_metadata_locks"=>["d"=>false,"t"=>3,"a"=>[["a"=>"sysvar_performance_schema_max_metadata_locks","u"=>20,"t"=>1]]],"performance_schema_max_prepared_statements_instances"=>["d"=>false,"t"=>3,"a"=>[["a"=>"sysvar_performance_schema_max_prepared_statements_instances","u"=>20,"t"=>1]]],"performance_schema_max_program_instances"=>["d"=>false,"t"=>3,"a"=>[["a"=>"sysvar_performance_schema_max_program_instances","u"=>20,"t"=>1]]],"performance_schema_max_sql_text_length"=>["d"=>false,"t"=>3,"a"=>[["a"=>"sysvar_performance_schema_max_sql_text_length","u"=>20,"t"=>1]]],"performance_schema_max_statement_stack"=>["d"=>false,"t"=>3,"a"=>[["a"=>"sysvar_performance_schema_max_statement_stack","u"=>20,"t"=>1]]],"performance_schema_max_table_lock_stat"=>["d"=>false,"t"=>3,"a"=>[["a"=>"sysvar_performance_schema_max_table_lock_stat","u"=>20,"t"=>1]]],"authentication_ldap_sasl_auth_method_name"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_authentication_ldap_sasl_auth_method_name","u"=>44,"t"=>1]]],"authentication_ldap_sasl_bind_base_dn"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_authentication_ldap_sasl_bind_base_dn","u"=>44,"t"=>1]]],"authentication_ldap_sasl_bind_root_dn"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_authentication_ldap_sasl_bind_root_dn","u"=>44,"t"=>1]]],"authentication_ldap_sasl_bind_root_pwd"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_authentication_ldap_sasl_bind_root_pwd","u"=>44,"t"=>1]]],"authentication_ldap_sasl_ca_path"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_authentication_ldap_sasl_ca_path","u"=>44,"t"=>1]]],"authentication_ldap_sasl_group_search_attr"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_authentication_ldap_sasl_group_search_attr","u"=>44,"t"=>1]]],"authentication_ldap_sasl_group_search_filter"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_authentication_ldap_sasl_group_search_filter","u"=>44,"t"=>1]]],"authentication_ldap_sasl_init_pool_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_authentication_ldap_sasl_init_pool_size","u"=>44,"t"=>1]]],"authentication_ldap_sasl_log_status"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_authentication_ldap_sasl_log_status","u"=>44,"t"=>1]]],"authentication_ldap_sasl_max_pool_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_authentication_ldap_sasl_max_pool_size","u"=>44,"t"=>1]]],"authentication_ldap_sasl_server_host"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_authentication_ldap_sasl_server_host","u"=>44,"t"=>1]]],"authentication_ldap_sasl_server_port"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_authentication_ldap_sasl_server_port","u"=>44,"t"=>1]]],"authentication_ldap_sasl_tls"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_authentication_ldap_sasl_tls","u"=>44,"t"=>1]]],"authentication_ldap_sasl_user_search_attr"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_authentication_ldap_sasl_user_search_attr","u"=>44,"t"=>1]]],"authentication_ldap_simple_auth_method_name"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_authentication_ldap_simple_auth_method_name","u"=>44,"t"=>1]]],"authentication_ldap_simple_bind_base_dn"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_authentication_ldap_simple_bind_base_dn","u"=>44,"t"=>1]]],"authentication_ldap_simple_bind_root_dn"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_authentication_ldap_simple_bind_root_dn","u"=>44,"t"=>1]]],"authentication_ldap_simple_bind_root_pwd"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_authentication_ldap_simple_bind_root_pwd","u"=>44,"t"=>1]]],"authentication_ldap_simple_ca_path"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_authentication_ldap_simple_ca_path","u"=>44,"t"=>1]]],"authentication_ldap_simple_group_search_attr"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_authentication_ldap_simple_group_search_attr","u"=>44,"t"=>1]]],"authentication_ldap_simple_group_search_filter"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_authentication_ldap_simple_group_search_filter","u"=>44,"t"=>1]]],"authentication_ldap_simple_init_pool_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_authentication_ldap_simple_init_pool_size","u"=>44,"t"=>1]]],"authentication_ldap_simple_log_status"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_authentication_ldap_simple_log_status","u"=>44,"t"=>1]]],"authentication_ldap_simple_max_pool_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_authentication_ldap_simple_max_pool_size","u"=>44,"t"=>1]]],"authentication_ldap_simple_server_host"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_authentication_ldap_simple_server_host","u"=>44,"t"=>1]]],"authentication_ldap_simple_server_port"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_authentication_ldap_simple_server_port","u"=>44,"t"=>1]]],"authentication_ldap_simple_tls"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_authentication_ldap_simple_tls","u"=>44,"t"=>1]]],"authentication_ldap_simple_user_search_attr"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_authentication_ldap_simple_user_search_attr","u"=>44,"t"=>1]]],"binlog_row_event_max_size"=>["t"=>3,"a"=>[["a"=>"option_mysqld_binlog-row-event-max-size","u"=>22,"t"=>1],["a"=>"sysvar_binlog_row_event_max_size","u"=>22,"t"=>1],["a"=>"option_mysqld_binlog-row-event-max-size","u"=>23,"t"=>1]]],"binlog_do_db"=>["t"=>1,"a"=>[["a"=>"option_mysqld_binlog-do-db","u"=>22,"t"=>1],["a"=>"option_mysqld_binlog-do-db","u"=>23,"t"=>1]]],"binlog_ignore_db"=>["t"=>1,"a"=>[["a"=>"option_mysqld_binlog-ignore-db","u"=>22,"t"=>1],["a"=>"option_mysqld_binlog-ignore-db","u"=>23,"t"=>1]]],"max_binlog_dump_events"=>["t"=>3,"a"=>[["a"=>"option_mysqld_max-binlog-dump-events","u"=>22,"t"=>1],["a"=>"option_mysqld_max-binlog-dump-events","u"=>23,"t"=>1]]],"sporadic_binlog_dump_fail"=>["t"=>2,"a"=>[["a"=>"option_mysqld_sporadic-binlog-dump-fail","u"=>22,"t"=>1],["a"=>"option_mysqld_sporadic-binlog-dump-fail","u"=>23,"t"=>1]]],"binlog_encryption"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_binlog_encryption","u"=>22,"t"=>1]]],"binlog_error_action"=>["d"=>true,"t"=>5,"a"=>[["a"=>"sysvar_binlog_error_action","u"=>22,"t"=>1],["a"=>"sysvar_binlog_error_action","u"=>23,"t"=>1]]],"binlog_expire_logs_seconds"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_binlog_expire_logs_seconds","u"=>22,"t"=>1]]],"binlog_group_commit_sync_delay"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_binlog_group_commit_sync_delay","u"=>22,"t"=>1],["a"=>"sysvar_binlog_group_commit_sync_delay","u"=>23,"t"=>1]]],"binlog_group_commit_sync_no_delay_count"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_binlog_group_commit_sync_no_delay_count","u"=>22,"t"=>1],["a"=>"sysvar_binlog_group_commit_sync_no_delay_count","u"=>23,"t"=>1]]],"binlog_max_flush_queue_time"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_binlog_max_flush_queue_time","u"=>22,"t"=>1],["a"=>"sysvar_binlog_max_flush_queue_time","u"=>23,"t"=>1]]],"binlog_order_commits"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_binlog_order_commits","u"=>22,"t"=>1],["a"=>"sysvar_binlog_order_commits","u"=>23,"t"=>1]]],"binlog_rotate_encryption_master_key_at_startup"=>["d"=>false,"t"=>2,"a"=>[["a"=>"sysvar_binlog_rotate_encryption_master_key_at_startup","u"=>22,"t"=>1]]],"binlog_row_value_options"=>["d"=>true,"t"=>6,"a"=>[["a"=>"sysvar_binlog_row_value_options","u"=>22,"t"=>1]]],"binlog_rows_query_log_events"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_binlog_rows_query_log_events","u"=>22,"t"=>1],["a"=>"sysvar_binlog_rows_query_log_events","u"=>23,"t"=>1]]],"binlog_transaction_dependency_tracking"=>["d"=>true,"t"=>5,"a"=>[["a"=>"sysvar_binlog_transaction_dependency_tracking","u"=>22,"t"=>1],["a"=>"sysvar_binlog_transaction_dependency_tracking","u"=>23,"t"=>1]]],"binlog_transaction_dependency_history_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_binlog_transaction_dependency_history_size","u"=>22,"t"=>1],["a"=>"sysvar_binlog_transaction_dependency_history_size","u"=>23,"t"=>1]]],"log_bin_use_v1_row_events"=>["d"=>false,"t"=>2,"a"=>[["a"=>"sysvar_log_bin_use_v1_row_events","u"=>22,"t"=>1],["a"=>"sysvar_log_bin_use_v1_row_events","u"=>23,"t"=>1]]],"log_builtin_as_identified_by_password"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_log_builtin_as_identified_by_password","u"=>22,"t"=>1],["a"=>"sysvar_log_builtin_as_identified_by_password","u"=>23,"t"=>1]]],"log_statements_unsafe_for_binlog"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_log_statements_unsafe_for_binlog","u"=>22,"t"=>1],["a"=>"sysvar_log_statements_unsafe_for_binlog","u"=>23,"t"=>1]]],"original_commit_timestamp"=>["d"=>true,"t"=>4,"a"=>[["a"=>"sysvar_original_commit_timestamp","u"=>22,"t"=>1]]],"transaction_write_set_extraction"=>["d"=>true,"t"=>5,"a"=>[["a"=>"sysvar_transaction_write_set_extraction","u"=>22,"t"=>1],["a"=>"sysvar_transaction_write_set_extraction","u"=>23,"t"=>1]]],"binlogging_impossible_mode"=>["d"=>true,"t"=>5,"a"=>[["a"=>"sysvar_binlogging_impossible_mode","u"=>23,"t"=>1]]],"log_backward_compatible_user_definitions"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_log_backward_compatible_user_definitions","u"=>23,"t"=>1]]],"binlog_gtid_simple_recovery"=>["d"=>false,"t"=>2,"a"=>[["a"=>"sysvar_binlog_gtid_simple_recovery","u"=>45,"t"=>1]]],"enforce_gtid_consistency"=>["d"=>true,"t"=>5,"a"=>[["a"=>"sysvar_enforce_gtid_consistency","u"=>45,"t"=>1]]],"gtid_executed"=>["d"=>false,"t"=>1,"a"=>[["a"=>"sysvar_gtid_executed","u"=>45,"t"=>1]]],"gtid_executed_compression_period"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_gtid_executed_compression_period","u"=>45,"t"=>1]]],"gtid_mode"=>["d"=>true,"t"=>5,"a"=>[["a"=>"sysvar_gtid_mode","u"=>45,"t"=>1]]],"gtid_next"=>["d"=>true,"t"=>5,"a"=>[["a"=>"sysvar_gtid_next","u"=>45,"t"=>1]]],"gtid_owned"=>["d"=>false,"t"=>1,"a"=>[["a"=>"sysvar_gtid_owned","u"=>45,"t"=>1]]],"gtid_purged"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_gtid_purged","u"=>45,"t"=>1]]],"show_slave_auth_info"=>["t"=>2,"a"=>[["a"=>"option_mysqld_show-slave-auth-info","u"=>21,"t"=>1]]],"immediate_server_version"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_immediate_server_version","u"=>21,"t"=>1]]],"original_server_version"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_original_server_version","u"=>21,"t"=>1]]],"rpl_semi_sync_master_wait_for_slave_count"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_rpl_semi_sync_master_wait_for_slave_count","u"=>21,"t"=>1]]],"master_info_file"=>["t"=>8,"a"=>[["a"=>"option_mysqld_master-info-file","u"=>24,"t"=>1]]],"master_retry_count"=>["t"=>3,"a"=>[["a"=>"option_mysqld_master-retry-count","u"=>24,"t"=>1]]],"replicate_same_server_id"=>["t"=>2,"a"=>[["a"=>"option_mysqld_replicate-same-server-id","u"=>24,"t"=>1]]],"skip_slave_start"=>["t"=>2,"a"=>[["a"=>"option_mysqld_skip-slave-start","u"=>24,"t"=>1]]],"abort_slave_event_count"=>["t"=>3,"a"=>[["a"=>"option_mysqld_abort-slave-event-count","u"=>24,"t"=>1]]],"disconnect_slave_event_count"=>["t"=>3,"a"=>[["a"=>"option_mysqld_disconnect-slave-event-count","u"=>24,"t"=>1]]],"master_info_repository"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_master_info_repository","u"=>24,"t"=>1]]],"relay_log_info_repository"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_relay_log_info_repository","u"=>24,"t"=>1]]],"rpl_read_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_rpl_read_size","u"=>24,"t"=>1]]],"rpl_stop_slave_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_rpl_stop_slave_timeout","u"=>24,"t"=>1]]],"slave_checkpoint_group"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_slave_checkpoint_group","u"=>24,"t"=>1]]],"slave_checkpoint_period"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_slave_checkpoint_period","u"=>24,"t"=>1]]],"slave_parallel_type"=>["d"=>true,"t"=>5,"a"=>[["a"=>"sysvar_slave_parallel_type","u"=>24,"t"=>1]]],"slave_pending_jobs_size_max"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_slave_pending_jobs_size_max","u"=>24,"t"=>1]]],"slave_preserve_commit_order"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_slave_preserve_commit_order","u"=>24,"t"=>1]]],"slave_rows_search_algorithms"=>["d"=>true,"t"=>6,"a"=>[["a"=>"sysvar_slave_rows_search_algorithms","u"=>24,"t"=>1]]],"server_uuid"=>["d"=>false,"t"=>1,"a"=>[["a"=>"sysvar_server_uuid","u"=>9,"t"=>1]]],"help"=>["a"=>[["a"=>"option_mysqld_help","u"=>16,"t"=>1]]],"allow_suspicious_udfs"=>["t"=>2,"a"=>[["a"=>"option_mysqld_allow-suspicious-udfs","u"=>16,"t"=>1]]],"ansi"=>["a"=>[["a"=>"option_mysqld_ansi","u"=>16,"t"=>1]]],"character_set_client_handshake"=>["t"=>2,"a"=>[["a"=>"option_mysqld_character-set-client-handshake","u"=>16,"t"=>1]]],"chroot"=>["t"=>7,"a"=>[["a"=>"option_mysqld_chroot","u"=>16,"t"=>1]]],"console"=>["a"=>[["a"=>"option_mysqld_console","u"=>16,"t"=>1]]],"daemonize"=>["t"=>2,"a"=>[["a"=>"option_mysqld_daemonize","u"=>16,"t"=>1]]],"debug_sync_timeout"=>["t"=>3,"a"=>[["a"=>"option_mysqld_debug-sync-timeout","u"=>16,"t"=>1]]],"default_time_zone"=>["t"=>1,"a"=>[["a"=>"option_mysqld_default-time-zone","u"=>16,"t"=>1]]],"des_key_file"=>["a"=>[["a"=>"option_mysqld_des-key-file","u"=>16,"t"=>1]]],"early_plugin_load"=>["t"=>1,"a"=>[["a"=>"option_mysqld_early-plugin-load","u"=>16,"t"=>1]]],"exit_info"=>["t"=>3,"a"=>[["a"=>"option_mysqld_exit-info","u"=>16,"t"=>1]]],"external_locking"=>["t"=>2,"a"=>[["a"=>"option_mysqld_external-locking","u"=>16,"t"=>1]]],"gdb"=>["t"=>2,"a"=>[["a"=>"option_mysqld_gdb","u"=>16,"t"=>1]]],"initialize"=>["t"=>2,"a"=>[["a"=>"option_mysqld_initialize","u"=>16,"t"=>1]]],"initialize_insecure"=>["t"=>2,"a"=>[["a"=>"option_mysqld_initialize-insecure","u"=>16,"t"=>1]]],"install"=>["a"=>[["a"=>"option_mysqld_install","u"=>16,"t"=>1]]],"install_manual"=>["a"=>[["a"=>"option_mysqld_install-manual","u"=>16,"t"=>1]]],"language"=>["d"=>false,"t"=>7,"a"=>[["a"=>"option_mysqld_language","u"=>16,"t"=>1]]],"local_service"=>["a"=>[["a"=>"option_mysqld_local-service","u"=>16,"t"=>1]]],"log_isam"=>["t"=>8,"a"=>[["a"=>"option_mysqld_log-isam","u"=>16,"t"=>1]]],"log_raw"=>["t"=>2,"a"=>[["a"=>"option_mysqld_log-raw","u"=>16,"t"=>1],["a"=>"sysvar_log_raw","u"=>15,"t"=>1]]],"log_short_format"=>["t"=>2,"a"=>[["a"=>"option_mysqld_log-short-format","u"=>16,"t"=>1]]],"log_tc"=>["t"=>8,"a"=>[["a"=>"option_mysqld_log-tc","u"=>16,"t"=>1]]],"memlock"=>["t"=>2,"a"=>[["a"=>"option_mysqld_memlock","u"=>16,"t"=>1]]],"no_dd_upgrade"=>["t"=>2,"a"=>[["a"=>"option_mysqld_no-dd-upgrade","u"=>16,"t"=>1]]],"no_monitor"=>["t"=>2,"a"=>[["a"=>"option_mysqld_no-monitor","u"=>16,"t"=>1]]],"old_style_user_limits"=>["t"=>2,"a"=>[["a"=>"option_mysqld_old-style-user-limits","u"=>16,"t"=>1]]],"plugin_load"=>["d"=>false,"t"=>1,"a"=>[["a"=>"option_mysqld_plugin-load","u"=>16,"t"=>1]]],"plugin_load_add"=>["d"=>false,"t"=>1,"a"=>[["a"=>"option_mysqld_plugin-load-add","u"=>16,"t"=>1]]],"port_open_timeout"=>["t"=>3,"a"=>[["a"=>"option_mysqld_port-open-timeout","u"=>16,"t"=>1]]],"remove"=>["a"=>[["a"=>"option_mysqld_remove","u"=>16,"t"=>1]]],"safe_user_create"=>["t"=>2,"a"=>[["a"=>"option_mysqld_safe-user-create","u"=>16,"t"=>1]]],"skip_grant_tables"=>["t"=>2,"a"=>[["a"=>"option_mysqld_skip-grant-tables","u"=>16,"t"=>1]]],"skip_host_cache"=>["a"=>[["a"=>"option_mysqld_skip-host-cache","u"=>16,"t"=>1]]],"skip_new"=>["a"=>[["a"=>"option_mysqld_skip-new","u"=>16,"t"=>1]]],"skip_stack_trace"=>["a"=>[["a"=>"option_mysqld_skip-stack-trace","u"=>16,"t"=>1]]],"slow_start_timeout"=>["t"=>3,"a"=>[["a"=>"option_mysqld_slow-start-timeout","u"=>16,"t"=>1]]],"standalone"=>["a"=>[["a"=>"option_mysqld_standalone","u"=>16,"t"=>1]]],"super_large_pages"=>["t"=>2,"a"=>[["a"=>"option_mysqld_super-large-pages","u"=>16,"t"=>1]]],"symbolic_links"=>["t"=>2,"a"=>[["a"=>"option_mysqld_symbolic-links","u"=>16,"t"=>1]]],"sysdate_is_now"=>["t"=>2,"a"=>[["a"=>"option_mysqld_sysdate-is-now","u"=>16,"t"=>1]]],"tc_heuristic_recover"=>["t"=>5,"a"=>[["a"=>"option_mysqld_tc-heuristic-recover","u"=>16,"t"=>1]]],"temp_pool"=>["t"=>2,"a"=>[["a"=>"option_mysqld_temp-pool","u"=>16,"t"=>1]]],"transaction_isolation"=>["d"=>true,"t"=>5,"a"=>[["a"=>"option_mysqld_transaction-isolation","u"=>16,"t"=>1],["a"=>"sysvar_transaction_isolation","u"=>15,"t"=>1]]],"transaction_read_only"=>["d"=>true,"t"=>2,"a"=>[["a"=>"option_mysqld_transaction-read-only","u"=>16,"t"=>1],["a"=>"sysvar_transaction_read_only","u"=>15,"t"=>1]]],"upgrade"=>["t"=>5,"a"=>[["a"=>"option_mysqld_upgrade","u"=>16,"t"=>1]]],"user"=>["t"=>1,"a"=>[["a"=>"option_mysqld_user","u"=>16,"t"=>1]]],"validate_config"=>["t"=>2,"a"=>[["a"=>"option_mysqld_validate-config","u"=>16,"t"=>1]]],"activate_all_roles_on_login"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_activate_all_roles_on_login","u"=>15,"t"=>1]]],"admin_address"=>["d"=>false,"t"=>1,"a"=>[["a"=>"sysvar_admin_address","u"=>15,"t"=>1]]],"admin_port"=>["d"=>false,"t"=>3,"a"=>[["a"=>"sysvar_admin_port","u"=>15,"t"=>1]]],"authentication_windows_log_level"=>["d"=>false,"t"=>3,"a"=>[["a"=>"sysvar_authentication_windows_log_level","u"=>15,"t"=>1]]],"authentication_windows_use_principal_name"=>["d"=>false,"t"=>2,"a"=>[["a"=>"sysvar_authentication_windows_use_principal_name","u"=>15,"t"=>1]]],"auto_generate_certs"=>["d"=>false,"t"=>2,"a"=>[["a"=>"sysvar_auto_generate_certs","u"=>15,"t"=>1]]],"avoid_temporal_upgrade"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_avoid_temporal_upgrade","u"=>15,"t"=>1]]],"block_encryption_mode"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_block_encryption_mode","u"=>15,"t"=>1]]],"caching_sha2_password_auto_generate_rsa_keys"=>["d"=>false,"t"=>2,"a"=>[["a"=>"sysvar_caching_sha2_password_auto_generate_rsa_keys","u"=>15,"t"=>1]]],"caching_sha2_password_private_key_path"=>["d"=>false,"t"=>8,"a"=>[["a"=>"sysvar_caching_sha2_password_private_key_path","u"=>15,"t"=>1]]],"caching_sha2_password_public_key_path"=>["d"=>false,"t"=>8,"a"=>[["a"=>"sysvar_caching_sha2_password_public_key_path","u"=>15,"t"=>1]]],"check_proxy_users"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_check_proxy_users","u"=>15,"t"=>1]]],"create_admin_listener_thread"=>["d"=>false,"t"=>2,"a"=>[["a"=>"sysvar_create_admin_listener_thread","u"=>15,"t"=>1]]],"cte_max_recursion_depth"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_cte_max_recursion_depth","u"=>15,"t"=>1]]],"default_authentication_plugin"=>["d"=>false,"t"=>5,"a"=>[["a"=>"sysvar_default_authentication_plugin","u"=>15,"t"=>1]]],"default_collation_for_utf8mb4"=>["d"=>true,"t"=>5,"a"=>[["a"=>"sysvar_default_collation_for_utf8mb4","u"=>15,"t"=>1]]],"default_table_encryption"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_default_table_encryption","u"=>15,"t"=>1]]],"disabled_storage_engines"=>["d"=>false,"t"=>1,"a"=>[["a"=>"sysvar_disabled_storage_engines","u"=>15,"t"=>1]]],"dragnet.log_error_filter_rules"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_dragnet.log_error_filter_rules","u"=>15,"t"=>1]]],"end_markers_in_json"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_end_markers_in_json","u"=>15,"t"=>1]]],"generated_random_password_length"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_generated_random_password_length","u"=>15,"t"=>1]]],"have_statement_timeout"=>["d"=>false,"t"=>2,"a"=>[["a"=>"sysvar_have_statement_timeout","u"=>15,"t"=>1]]],"histogram_generation_max_mem_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_histogram_generation_max_mem_size","u"=>15,"t"=>1]]],"information_schema_stats_expiry"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_information_schema_stats_expiry","u"=>15,"t"=>1]]],"internal_tmp_disk_storage_engine"=>["d"=>true,"t"=>5,"a"=>[["a"=>"sysvar_internal_tmp_disk_storage_engine","u"=>15,"t"=>1]]],"internal_tmp_mem_storage_engine"=>["d"=>true,"t"=>5,"a"=>[["a"=>"sysvar_internal_tmp_mem_storage_engine","u"=>15,"t"=>1]]],"log_error_filter_rules"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_log_error_filter_rules","u"=>15,"t"=>1]]],"log_error_services"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_log_error_services","u"=>15,"t"=>1]]],"log_error_suppression_list"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_log_error_suppression_list","u"=>15,"t"=>1]]],"log_error_verbosity"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_log_error_verbosity","u"=>15,"t"=>1]]],"log_slow_extra"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_log_slow_extra","u"=>15,"t"=>1]]],"log_syslog"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_log_syslog","u"=>15,"t"=>1]]],"log_syslog_facility"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_log_syslog_facility","u"=>15,"t"=>1]]],"log_syslog_include_pid"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_log_syslog_include_pid","u"=>15,"t"=>1]]],"log_syslog_tag"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_log_syslog_tag","u"=>15,"t"=>1]]],"log_timestamps"=>["d"=>true,"t"=>5,"a"=>[["a"=>"sysvar_log_timestamps","u"=>15,"t"=>1]]],"log_throttle_queries_not_using_indexes"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_log_throttle_queries_not_using_indexes","u"=>15,"t"=>1]]],"mandatory_roles"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_mandatory_roles","u"=>15,"t"=>1]]],"max_execution_time"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_max_execution_time","u"=>15,"t"=>1]]],"max_points_in_geometry"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_max_points_in_geometry","u"=>15,"t"=>1]]],"mecab_rc_file"=>["d"=>false,"t"=>8,"a"=>[["a"=>"sysvar_mecab_rc_file","u"=>15,"t"=>1]]],"mysql_native_password_proxy_users"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_mysql_native_password_proxy_users","u"=>15,"t"=>1]]],"named_pipe_full_access_group"=>["d"=>false,"t"=>1,"a"=>[["a"=>"sysvar_named_pipe_full_access_group","u"=>15,"t"=>1]]],"new"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_new","u"=>15,"t"=>1]]],"ngram_token_size"=>["d"=>false,"t"=>3,"a"=>[["a"=>"sysvar_ngram_token_size","u"=>15,"t"=>1]]],"offline_mode"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_offline_mode","u"=>15,"t"=>1]]],"optimizer_trace_features"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_optimizer_trace_features","u"=>15,"t"=>1]]],"optimizer_trace_limit"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_optimizer_trace_limit","u"=>15,"t"=>1]]],"optimizer_trace_offset"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_optimizer_trace_offset","u"=>15,"t"=>1]]],"parser_max_mem_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_parser_max_mem_size","u"=>15,"t"=>1]]],"partial_revokes"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_partial_revokes","u"=>15,"t"=>1]]],"password_history"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_password_history","u"=>15,"t"=>1]]],"password_require_current"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_password_require_current","u"=>15,"t"=>1]]],"password_reuse_interval"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_password_reuse_interval","u"=>15,"t"=>1]]],"persisted_globals_load"=>["d"=>false,"t"=>2,"a"=>[["a"=>"sysvar_persisted_globals_load","u"=>15,"t"=>1]]],"persist_only_admin_x509_subject"=>["d"=>false,"t"=>1,"a"=>[["a"=>"sysvar_persist_only_admin_x509_subject","u"=>15,"t"=>1]]],"print_identified_with_as_hex"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_print_identified_with_as_hex","u"=>15,"t"=>1]]],"protocol_compression_algorithms"=>["d"=>true,"t"=>6,"a"=>[["a"=>"sysvar_protocol_compression_algorithms","u"=>15,"t"=>1]]],"range_optimizer_max_mem_size"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_range_optimizer_max_mem_size","u"=>15,"t"=>1]]],"rbr_exec_mode"=>["d"=>true,"t"=>5,"a"=>[["a"=>"sysvar_rbr_exec_mode","u"=>15,"t"=>1]]],"regexp_stack_limit"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_regexp_stack_limit","u"=>15,"t"=>1]]],"regexp_time_limit"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_regexp_time_limit","u"=>15,"t"=>1]]],"require_secure_transport"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_require_secure_transport","u"=>15,"t"=>1]]],"resultset_metadata"=>["d"=>true,"t"=>5,"a"=>[["a"=>"sysvar_resultset_metadata","u"=>15,"t"=>1]]],"secondary_engine_cost_threshold"=>["d"=>true,"t"=>4,"a"=>[["a"=>"sysvar_secondary_engine_cost_threshold","u"=>15,"t"=>1]]],"schema_definition_cache"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_schema_definition_cache","u"=>15,"t"=>1]]],"session_track_gtids"=>["d"=>true,"t"=>5,"a"=>[["a"=>"sysvar_session_track_gtids","u"=>15,"t"=>1]]],"sha256_password_auto_generate_rsa_keys"=>["d"=>false,"t"=>2,"a"=>[["a"=>"sysvar_sha256_password_auto_generate_rsa_keys","u"=>15,"t"=>1]]],"sha256_password_private_key_path"=>["d"=>false,"t"=>8,"a"=>[["a"=>"sysvar_sha256_password_private_key_path","u"=>15,"t"=>1]]],"sha256_password_proxy_users"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_sha256_password_proxy_users","u"=>15,"t"=>1]]],"sha256_password_public_key_path"=>["d"=>false,"t"=>8,"a"=>[["a"=>"sysvar_sha256_password_public_key_path","u"=>15,"t"=>1]]],"show_compatibility_56"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_show_compatibility_56","u"=>15,"t"=>1]]],"show_create_table_skip_secondary_engine"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_show_create_table_skip_secondary_engine","u"=>15,"t"=>1]]],"show_create_table_verbosity"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_show_create_table_verbosity","u"=>15,"t"=>1]]],"show_old_temporals"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_show_old_temporals","u"=>15,"t"=>1]]],"sql_require_primary_key"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_sql_require_primary_key","u"=>15,"t"=>1]]],"ssl_fips_mode"=>["d"=>true,"t"=>5,"a"=>[["a"=>"sysvar_ssl_fips_mode","u"=>15,"t"=>1]]],"stored_program_definition_cache"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_stored_program_definition_cache","u"=>15,"t"=>1]]],"super_read_only"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_super_read_only","u"=>15,"t"=>1]]],"syseventlog.facility"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_syseventlog.facility","u"=>15,"t"=>1]]],"syseventlog.include_pid"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_syseventlog.include_pid","u"=>15,"t"=>1]]],"syseventlog.tag"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_syseventlog.tag","u"=>15,"t"=>1]]],"table_encryption_privilege_check"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_table_encryption_privilege_check","u"=>15,"t"=>1]]],"tablespace_definition_cache"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_tablespace_definition_cache","u"=>15,"t"=>1]]],"temptable_max_ram"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_temptable_max_ram","u"=>15,"t"=>1]]],"temptable_use_mmap"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_temptable_use_mmap","u"=>15,"t"=>1]]],"thread_pool_algorithm"=>["d"=>false,"t"=>3,"a"=>[["a"=>"sysvar_thread_pool_algorithm","u"=>15,"t"=>1]]],"thread_pool_high_priority_connection"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_thread_pool_high_priority_connection","u"=>15,"t"=>1]]],"thread_pool_max_active_query_threads"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_thread_pool_max_active_query_threads","u"=>15,"t"=>1]]],"thread_pool_max_unused_threads"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_thread_pool_max_unused_threads","u"=>15,"t"=>1]]],"tls_ciphersuites"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_tls_ciphersuites","u"=>15,"t"=>1]]],"use_secondary_engine"=>["d"=>true,"t"=>5,"a"=>[["a"=>"sysvar_use_secondary_engine","u"=>15,"t"=>1]]],"validate_user_plugins"=>["d"=>false,"t"=>2,"a"=>[["a"=>"sysvar_validate_user_plugins","u"=>15,"t"=>1]]],"version_compile_zlib"=>["d"=>false,"t"=>1,"a"=>[["a"=>"sysvar_version_compile_zlib","u"=>15,"t"=>1]]],"windowing_use_high_precision"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_windowing_use_high_precision","u"=>15,"t"=>1]]],"version_tokens_session"=>["d"=>true,"t"=>1,"a"=>[["a"=>"sysvar_version_tokens_session","u"=>46,"t"=>1]]],"version_tokens_session_number"=>["d"=>false,"t"=>3,"a"=>[["a"=>"sysvar_version_tokens_session_number","u"=>46,"t"=>1]]],"mysqlx"=>["t"=>5,"a"=>[["a"=>"option_mysqld_mysqlx","u"=>47,"t"=>1]]],"mysqlx_bind_address"=>["d"=>false,"t"=>1,"a"=>[["a"=>"sysvar_mysqlx_bind_address","u"=>47,"t"=>1]]],"mysqlx_connect_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_mysqlx_connect_timeout","u"=>47,"t"=>1]]],"mysqlx_document_id_unique_prefix"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_mysqlx_document_id_unique_prefix","u"=>47,"t"=>1]]],"mysqlx_enable_hello_notice"=>["d"=>true,"t"=>2,"a"=>[["a"=>"sysvar_mysqlx_enable_hello_notice","u"=>47,"t"=>1]]],"mysqlx_idle_worker_thread_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_mysqlx_idle_worker_thread_timeout","u"=>47,"t"=>1]]],"mysqlx_interactive_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_mysqlx_interactive_timeout","u"=>47,"t"=>1]]],"mysqlx_max_allowed_packet"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_mysqlx_max_allowed_packet","u"=>47,"t"=>1]]],"mysqlx_max_connections"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_mysqlx_max_connections","u"=>47,"t"=>1]]],"mysqlx_min_worker_threads"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_mysqlx_min_worker_threads","u"=>47,"t"=>1]]],"mysqlx_port"=>["d"=>false,"t"=>3,"a"=>[["a"=>"sysvar_mysqlx_port","u"=>47,"t"=>1]]],"mysqlx_port_open_timeout"=>["d"=>false,"t"=>3,"a"=>[["a"=>"sysvar_mysqlx_port_open_timeout","u"=>47,"t"=>1]]],"mysqlx_read_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_mysqlx_read_timeout","u"=>47,"t"=>1]]],"mysqlx_socket"=>["d"=>false,"t"=>1,"a"=>[["a"=>"sysvar_mysqlx_socket","u"=>47,"t"=>1]]],"mysqlx_ssl_ca"=>["d"=>false,"t"=>8,"a"=>[["a"=>"sysvar_mysqlx_ssl_ca","u"=>47,"t"=>1]]],"mysqlx_ssl_capath"=>["d"=>false,"t"=>7,"a"=>[["a"=>"sysvar_mysqlx_ssl_capath","u"=>47,"t"=>1]]],"mysqlx_ssl_cert"=>["d"=>false,"t"=>8,"a"=>[["a"=>"sysvar_mysqlx_ssl_cert","u"=>47,"t"=>1]]],"mysqlx_ssl_cipher"=>["d"=>false,"t"=>1,"a"=>[["a"=>"sysvar_mysqlx_ssl_cipher","u"=>47,"t"=>1]]],"mysqlx_ssl_crl"=>["d"=>false,"t"=>8,"a"=>[["a"=>"sysvar_mysqlx_ssl_crl","u"=>47,"t"=>1]]],"mysqlx_ssl_crlpath"=>["d"=>false,"t"=>7,"a"=>[["a"=>"sysvar_mysqlx_ssl_crlpath","u"=>47,"t"=>1]]],"mysqlx_ssl_key"=>["d"=>false,"t"=>8,"a"=>[["a"=>"sysvar_mysqlx_ssl_key","u"=>47,"t"=>1]]],"mysqlx_wait_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_mysqlx_wait_timeout","u"=>47,"t"=>1]]],"mysqlx_write_timeout"=>["d"=>true,"t"=>3,"a"=>[["a"=>"sysvar_mysqlx_write_timeout","u"=>47,"t"=>1]]]],"version"=>1,"urls"=>["https=>//mariadb.com/kb/en/library/documentation/aria-server-status-variables/","https=>//mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/aria/aria-system-variables/","https=>//mariadb.com/kb/en/library/documentation/cassandra-status-variables/","https=>//mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/cassandra/cassandra-system-variables/","https=>//mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/connect/connect-system-variables/","https=>//mariadb.com/kb/en/library/documentation/galera-cluster-status-variables/","https=>//mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/galera-cluster/galera-cluster-system-variables/","https=>//mariadb.com/kb/en/library/documentation/gtid/","https=>//mariadb.com/kb/en/library/documentation/replication-and-binary-log-server-system-variables/","https=>//dev.mysql.com/doc/refman/8.0/en/replication-options.html","https=>//mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-status-variables/","https=>//mariadb.com/kb/en/library/documentation/mariadb-audit-plugin-system-variables/","https=>//mariadb.com/kb/en/library/documentation/mroonga-status-variables/","https=>//mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/mroonga/mroonga-system-variables/","https=>//mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myisam/myisam-system-variables/","https=>//dev.mysql.com/doc/refman/8.0/en/server-system-variables.html","https=>//dev.mysql.com/doc/refman/8.0/en/server-options.html","https=>//mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/myrocks/myrocks-system-variables/","https=>//mariadb.com/kb/en/library/documentation/oqgraph-system-and-status-variables/","https=>//mariadb.com/kb/en/library/documentation/performance-schema-system-variables/","https=>//dev.mysql.com/doc/refman/8.0/en/performance-schema-system-variables.html","https=>//dev.mysql.com/doc/refman/8.0/en/replication-options-master.html","https=>//dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html","https=>//dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html","https=>//dev.mysql.com/doc/refman/8.0/en/replication-options-slave.html","https=>//mariadb.com/kb/en/library/documentation/replication-and-binary-log-status-variables/","https=>//mariadb.com/kb/en/library/documentation/semisynchronous-replication-plugin-status-variables/","https=>//mariadb.com/kb/en/library/documentation/semisynchronous-replication/","https=>//mariadb.com/kb/en/library/documentation/server-status-variables/","https=>//mariadb.com/kb/en/library/documentation/replication/optimization-and-tuning/system-variables/server-system-variables/","https=>//mariadb.com/kb/en/library/documentation/sphinx-status-variables/","https=>//mariadb.com/kb/en/library/documentation/spider-server-status-variables/","https=>//mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/","https=>//mariadb.com/kb/en/library/documentation/ssltls-status-variables/","https=>//mariadb.com/kb/en/library/documentation/ssltls-system-variables/","https=>//mariadb.com/kb/en/library/documentation/thread-pool-system-and-status-variables/","https=>//mariadb.com/kb/en/library/documentation/tokudb-status-variables/","https=>//mariadb.com/kb/en/library/documentation/columns-storage-engines-and-plugins/storage-engines/tokudb/tokudb-system-variables/","https=>//mariadb.com/kb/en/library/documentation/system-versioned-tables/","https=>//mariadb.com/kb/en/library/documentation/xtradbinnodb-server-status-variables/","https=>//mariadb.com/kb/en/library/documentation/xtradbinnodb-server-system-variables/","https=>//dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html","https=>//dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html","https=>//dev.mysql.com/doc/refman/5.7/en/mysql-cluster-options-variables.html","https=>//dev.mysql.com/doc/refman/8.0/en/pluggable-authentication-system-variables.html","https=>//dev.mysql.com/doc/refman/8.0/en/replication-options-gtids.html","https=>//dev.mysql.com/doc/refman/8.0/en/version-tokens-reference.html","https=>//dev.mysql.com/doc/refman/8.0/en/x-plugin-options-system-variables.html"],"types"=>["1"=>"MYSQL","2"=>"MARIADB"],"varTypes"=>["1"=>"string","2"=>"boolean","3"=>"integer","4"=>"numeric","5"=>"enumeration","6"=>"set","7"=>"directory name","8"=>"file name","9"=>"byte"]]; diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/package-lock.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/package-lock.json deleted file mode 100644 index 93a165f..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/package-lock.json +++ /dev/null @@ -1,3330 +0,0 @@ -{ - "name": "mariadb-mysql-kbs", - "version": "1.2.8", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", - "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", - "dev": true, - "requires": { - "@babel/highlight": "^7.0.0" - } - }, - "@babel/generator": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.4.tgz", - "integrity": "sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ==", - "dev": true, - "requires": { - "@babel/types": "^7.4.4", - "jsesc": "^2.5.1", - "lodash": "^4.17.11", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" - } - }, - "@babel/helper-function-name": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", - "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.0.0", - "@babel/template": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", - "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", - "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", - "dev": true, - "requires": { - "@babel/types": "^7.4.4" - } - }, - "@babel/highlight": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", - "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.5.tgz", - "integrity": "sha512-9mUqkL1FF5T7f0WDFfAoDdiMVPWsdD1gZYzSnaXsxUCUqzuch/8of9G3VUSNiZmMBoRxT3neyVsqeiL/ZPcjew==", - "dev": true - }, - "@babel/template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", - "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.4.4", - "@babel/types": "^7.4.4" - } - }, - "@babel/traverse": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.5.tgz", - "integrity": "sha512-Vc+qjynwkjRmIFGxy0KYoPj4FdVDxLej89kMHFsWScq999uX+pwcX4v9mWRjW0KcAYTPAuVQl2LKP1wEVLsp+A==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.4.4", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.4.4", - "@babel/parser": "^7.4.5", - "@babel/types": "^7.4.4", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.11" - } - }, - "@babel/types": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", - "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.11", - "to-fast-properties": "^2.0.0" - } - }, - "@octokit/endpoint": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-5.5.1.tgz", - "integrity": "sha512-nBFhRUb5YzVTCX/iAK1MgQ4uWo89Gu0TH00qQHoYRCsE12dWcG1OiLd7v2EIo2+tpUKPMOQ62QFy9hy9Vg2ULg==", - "dev": true, - "requires": { - "@octokit/types": "^2.0.0", - "is-plain-object": "^3.0.0", - "universal-user-agent": "^4.0.0" - } - }, - "@octokit/request": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.3.1.tgz", - "integrity": "sha512-5/X0AL1ZgoU32fAepTfEoggFinO3rxsMLtzhlUX+RctLrusn/CApJuGFCd0v7GMFhF+8UiCsTTfsu7Fh1HnEJg==", - "dev": true, - "requires": { - "@octokit/endpoint": "^5.5.0", - "@octokit/request-error": "^1.0.1", - "@octokit/types": "^2.0.0", - "deprecation": "^2.0.0", - "is-plain-object": "^3.0.0", - "node-fetch": "^2.3.0", - "once": "^1.4.0", - "universal-user-agent": "^4.0.0" - } - }, - "@octokit/request-error": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-1.2.0.tgz", - "integrity": "sha512-DNBhROBYjjV/I9n7A8kVkmQNkqFAMem90dSxqvPq57e2hBr7mNTX98y3R2zDpqMQHVRpBDjsvsfIGgBzy+4PAg==", - "dev": true, - "requires": { - "@octokit/types": "^2.0.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" - } - }, - "@octokit/rest": { - "version": "16.34.1", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.34.1.tgz", - "integrity": "sha512-JUoS12cdktf1fv86rgrjC/RvYLuL+o7p57W7zX1x7ANFJ7OvdV8emvUNkFlcidEaOkYrxK3SoWgQFt3FhNmabA==", - "dev": true, - "requires": { - "@octokit/request": "^5.2.0", - "@octokit/request-error": "^1.0.2", - "atob-lite": "^2.0.0", - "before-after-hook": "^2.0.0", - "btoa-lite": "^1.0.0", - "deprecation": "^2.0.0", - "lodash.get": "^4.4.2", - "lodash.set": "^4.3.2", - "lodash.uniq": "^4.5.0", - "octokit-pagination-methods": "^1.1.0", - "once": "^1.4.0", - "universal-user-agent": "^4.0.0" - } - }, - "@octokit/types": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.0.1.tgz", - "integrity": "sha512-YDYgV6nCzdGdOm7wy43Ce8SQ3M5DMKegB8E5sTB/1xrxOdo2yS/KgUgML2N2ZGD621mkbdrAglwTyA4NDOlFFA==", - "dev": true, - "requires": { - "@types/node": ">= 8" - } - }, - "@types/node": { - "version": "12.12.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.7.tgz", - "integrity": "sha512-E6Zn0rffhgd130zbCbAr/JdXfXkoOUFAKNs/rF8qnafSJ8KYaA/j3oz7dcwal+lYjLA7xvdd5J4wdYpCTlP8+w==", - "dev": true - }, - "agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", - "dev": true, - "requires": { - "es6-promisify": "^5.0.0" - } - }, - "ajv": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", - "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-colors": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", - "dev": true - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "append-transform": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", - "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==", - "dev": true, - "requires": { - "default-require-extensions": "^2.0.0" - } - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "argv": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz", - "integrity": "sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas=", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.2.0.tgz", - "integrity": "sha512-Q7hnYGGNYbcmGrCPulXfkEw7oW7qjWeM4ZTALmgpuIcZLxyqqKYWxCZg2UBm8bklrnB4m2mGyJPWfoktdORD8A==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "atob-lite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz", - "integrity": "sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY=", - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "before-after-hook": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz", - "integrity": "sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==", - "dev": true - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "bottleneckp": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/bottleneckp/-/bottleneckp-1.1.3.tgz", - "integrity": "sha1-oD6pBgCVGusJzACW7QnmVYLZY9k=", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "btoa-lite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", - "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc=", - "dev": true - }, - "buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=", - "dev": true - }, - "caching-transform": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-3.0.2.tgz", - "integrity": "sha512-Mtgcv3lh3U0zRii/6qVgQODdPA4G3zhG+jtbCWj39RXuUFTMzH0vcdMtaJS1jPowd+It2Pqr6y3NJMQqOqCE2w==", - "dev": true, - "requires": { - "hasha": "^3.0.0", - "make-dir": "^2.0.0", - "package-hash": "^3.0.0", - "write-file-atomic": "^2.4.2" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "chai": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", - "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", - "dev": true, - "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.0", - "type-detect": "^4.0.5" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "changelog-generator-twig": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/changelog-generator-twig/-/changelog-generator-twig-1.2.0.tgz", - "integrity": "sha512-Uoop2cRyyCh+b0EA1iwn42PIK5wRCbuLrnP2SxVX5cR8q0X4T5FR14ycSUYZjJwK2HOCxwtpfGIOk1xbwGBI1g==", - "dev": true, - "requires": { - "simple-git": "^1.113.0", - "snack-cli": "^2.0.0", - "twig": "^1.13.3" - } - }, - "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true - }, - "cheerio": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", - "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=", - "dev": true, - "requires": { - "css-select": "~1.2.0", - "dom-serializer": "~0.1.0", - "entities": "~1.1.1", - "htmlparser2": "^3.9.1", - "lodash.assignin": "^4.0.9", - "lodash.bind": "^4.1.4", - "lodash.defaults": "^4.0.1", - "lodash.filter": "^4.4.0", - "lodash.flatten": "^4.2.0", - "lodash.foreach": "^4.3.0", - "lodash.map": "^4.4.0", - "lodash.merge": "^4.4.0", - "lodash.pick": "^4.2.1", - "lodash.reduce": "^4.4.0", - "lodash.reject": "^4.4.0", - "lodash.some": "^4.4.0" - } - }, - "cli": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", - "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=", - "dev": true, - "requires": { - "exit": "0.1.2", - "glob": "^7.1.1" - } - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "codecov": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.6.1.tgz", - "integrity": "sha512-IUJB6WG47nWK7o50etF8jBadxdMw7DmoQg05yIljstXFBGB6clOZsIj6iD4P82T2YaIU3qq+FFu8K9pxgkCJDQ==", - "dev": true, - "requires": { - "argv": "^0.0.2", - "ignore-walk": "^3.0.1", - "js-yaml": "^3.13.1", - "teeny-request": "^3.11.3", - "urlgrey": "^0.4.4" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true, - "optional": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "requires": { - "date-now": "^0.1.4" - } - }, - "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cp-file": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-6.2.0.tgz", - "integrity": "sha512-fmvV4caBnofhPe8kOcitBwSn2f39QLjnAnGq3gO9dfd75mUytzKNZB1hde6QHunW2Rt+OwuBOMc3i1tNElbszA==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "make-dir": "^2.0.0", - "nested-error-stacks": "^2.0.0", - "pify": "^4.0.1", - "safe-buffer": "^5.0.1" - } - }, - "crawler": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/crawler/-/crawler-1.2.1.tgz", - "integrity": "sha512-5hpo+iqAwIl0TXs+c3u5V1gQd4NqsiFDF0QiGZCE/OolLiY1QZA32AaDqAPTTmmxErwYJEoi6lN1j8mO4/WE+A==", - "dev": true, - "requires": { - "bottleneckp": "~1.1.3", - "cheerio": "^0.22.0", - "iconv-lite": "^0.4.8", - "lodash": "^4.17.10", - "request": "~2.88.0", - "seenreq": "^3.0.0", - "type-is": "^1.6.14" - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", - "dev": true, - "requires": { - "boolbase": "~1.0.0", - "css-what": "2.1", - "domutils": "1.5.1", - "nth-check": "~1.0.1" - } - }, - "css-what": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", - "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", - "dev": true - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "dev": true, - "requires": { - "type-detect": "^4.0.0" - } - }, - "default-require-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz", - "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=", - "dev": true, - "requires": { - "strip-bom": "^3.0.0" - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", - "dev": true - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "dom-serializer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", - "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", - "dev": true, - "requires": { - "domelementtype": "^1.3.0", - "entities": "^1.1.1" - } - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "dev": true, - "requires": { - "domelementtype": "1" - } - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "dotenv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", - "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==", - "dev": true - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz", - "integrity": "sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.0", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.0", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-inspect": "^1.6.0", - "object-keys": "^1.1.1", - "string.prototype.trimleft": "^2.1.0", - "string.prototype.trimright": "^2.1.0" - } - }, - "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "dev": true - }, - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "dev": true, - "requires": { - "es6-promise": "^4.0.3" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "flat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", - "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", - "dev": true, - "requires": { - "is-buffer": "~2.0.3" - } - }, - "foreachasync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz", - "integrity": "sha1-VQKYfchxS+M5IJfzLgBxyd7gfPY=", - "dev": true - }, - "foreground-child": { - "version": "1.5.6", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", - "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", - "dev": true, - "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - } - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "dev": true - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", - "dev": true - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true - }, - "handlebars": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.4.5.tgz", - "integrity": "sha512-0Ce31oWVB7YidkaTq33ZxEbN+UDxMMgThvCe8ptgQViymL5DPis9uLdTA13MiRPhgvqyxIegugrP97iK3JeBHg==", - "dev": true, - "requires": { - "neo-async": "^2.6.0", - "optimist": "^0.6.1", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "dev": true, - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", - "dev": true - }, - "hasha": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-3.0.0.tgz", - "integrity": "sha1-UqMvq4Vp1BymmmH/GiFPjrfIvTk=", - "dev": true, - "requires": { - "is-stream": "^1.0.1" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", - "dev": true - }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "dev": true, - "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-proxy-agent": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", - "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", - "dev": true, - "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", - "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==", - "dev": true - }, - "ignore-walk": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", - "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", - "dev": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-buffer": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", - "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", - "dev": true - }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", - "dev": true - }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-plain-object": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz", - "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==", - "dev": true, - "requires": { - "isobject": "^4.0.0" - } - }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "dev": true, - "requires": { - "has": "^1.0.1" - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", - "dev": true, - "requires": { - "has-symbols": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", - "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", - "dev": true - }, - "istanbul-lib-hook": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz", - "integrity": "sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA==", - "dev": true, - "requires": { - "append-transform": "^1.0.0" - } - }, - "istanbul-lib-instrument": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", - "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", - "dev": true, - "requires": { - "@babel/generator": "^7.4.0", - "@babel/parser": "^7.4.3", - "@babel/template": "^7.4.0", - "@babel/traverse": "^7.4.3", - "@babel/types": "^7.4.0", - "istanbul-lib-coverage": "^2.0.5", - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.1.1.tgz", - "integrity": "sha512-rWYq2e5iYW+fFe/oPPtYJxYgjBm8sC4rmoGdUOgBB7VnwKt6HrL793l2voH1UlsyYZpJ4g0wfjnTEO1s1NP2eQ==", - "dev": true - } - } - }, - "istanbul-lib-report": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz", - "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "supports-color": "^6.1.0" - }, - "dependencies": { - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", - "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "rimraf": "^2.6.3", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "istanbul-reports": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.6.tgz", - "integrity": "sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA==", - "dev": true, - "requires": { - "handlebars": "^4.1.2" - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "jshint": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.10.3.tgz", - "integrity": "sha512-d8AoXcNNYzmm7cdmulQ3dQApbrPYArtVBO6n4xOICe4QsXGNHCAKDcFORzqP52LhK61KX0VhY39yYzCsNq+bxQ==", - "dev": true, - "requires": { - "cli": "~1.0.0", - "console-browserify": "1.1.x", - "exit": "0.1.x", - "htmlparser2": "3.8.x", - "lodash": "~4.17.11", - "minimatch": "~3.0.2", - "shelljs": "0.3.x", - "strip-json-comments": "1.0.x" - }, - "dependencies": { - "domhandler": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", - "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", - "dev": true, - "requires": { - "domelementtype": "1" - } - }, - "entities": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", - "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=", - "dev": true - }, - "htmlparser2": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", - "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", - "dev": true, - "requires": { - "domelementtype": "1", - "domhandler": "2.3", - "domutils": "1.5", - "entities": "1.0", - "readable-stream": "1.1" - } - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", - "dev": true, - "requires": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "jwa": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", - "dev": true, - "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "dev": true, - "requires": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "requires": { - "invert-kv": "^2.0.0" - } - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "locutus": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/locutus/-/locutus-2.0.10.tgz", - "integrity": "sha512-AZg2kCqrquMJ5FehDsBidV0qHl98NrsYtseUClzjAQ3HFnsDBJTCwGVplSQ82t9/QfgahqvTjaKcZqZkHmS0wQ==", - "dev": true - }, - "lodash": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", - "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==", - "dev": true - }, - "lodash.assignin": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz", - "integrity": "sha1-uo31+4QesKPoBEIysOJjqNxqKKI=", - "dev": true - }, - "lodash.bind": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz", - "integrity": "sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU=", - "dev": true - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", - "dev": true - }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", - "dev": true - }, - "lodash.endswith": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/lodash.endswith/-/lodash.endswith-4.2.1.tgz", - "integrity": "sha1-/tWawXOO0+I27dcGTsRWRIs3vAk=", - "dev": true - }, - "lodash.filter": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz", - "integrity": "sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4=", - "dev": true - }, - "lodash.find": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.find/-/lodash.find-4.6.0.tgz", - "integrity": "sha1-ywcE1Hq3F4n/oN6Ll92Sb7iLE7E=", - "dev": true - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", - "dev": true - }, - "lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", - "dev": true - }, - "lodash.foreach": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", - "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=", - "dev": true - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true - }, - "lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=", - "dev": true - }, - "lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=", - "dev": true - }, - "lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=", - "dev": true - }, - "lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=", - "dev": true - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", - "dev": true - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", - "dev": true - }, - "lodash.map": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", - "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=", - "dev": true - }, - "lodash.maxby": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.maxby/-/lodash.maxby-4.6.0.tgz", - "integrity": "sha1-CCJABo88eiJ6oAqDgOTzjPB4bj0=", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", - "dev": true - }, - "lodash.padend": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", - "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", - "dev": true - }, - "lodash.pick": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=", - "dev": true - }, - "lodash.reduce": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz", - "integrity": "sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs=", - "dev": true - }, - "lodash.reject": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz", - "integrity": "sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU=", - "dev": true - }, - "lodash.set": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", - "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", - "dev": true - }, - "lodash.some": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", - "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=", - "dev": true - }, - "lodash.startswith": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/lodash.startswith/-/lodash.startswith-4.2.1.tgz", - "integrity": "sha1-xZjErc4YiiflMUVzHNxsDnF3YAw=", - "dev": true - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "dev": true, - "requires": { - "chalk": "^2.0.1" - } - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "macos-release": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.3.0.tgz", - "integrity": "sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA==", - "dev": true - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "requires": { - "p-defer": "^1.0.0" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, - "merge-source-map": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", - "dev": true, - "requires": { - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", - "dev": true - }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", - "dev": true, - "requires": { - "mime-db": "1.40.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "mocha": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.2.tgz", - "integrity": "sha512-FgDS9Re79yU1xz5d+C4rv1G7QagNGHZ+iXF81hO8zY35YZZcLEsJVfFolfsqKFWunATEvNzMK0r/CwWd/szO9A==", - "dev": true, - "requires": { - "ansi-colors": "3.2.3", - "browser-stdout": "1.3.1", - "debug": "3.2.6", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "find-up": "3.0.0", - "glob": "7.1.3", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "3.13.1", - "log-symbols": "2.2.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "ms": "2.1.1", - "node-environment-flags": "1.0.5", - "object.assign": "4.1.0", - "strip-json-comments": "2.0.1", - "supports-color": "6.0.0", - "which": "1.3.1", - "wide-align": "1.1.3", - "yargs": "13.3.0", - "yargs-parser": "13.1.1", - "yargs-unparser": "1.6.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - }, - "yargs": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", - "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.1" - } - }, - "yargs-parser": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", - "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "neo-async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", - "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", - "dev": true - }, - "nested-error-stacks": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", - "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node-environment-flags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz", - "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==", - "dev": true, - "requires": { - "object.getownpropertydescriptors": "^2.0.3", - "semver": "^5.7.0" - } - }, - "node-fetch": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", - "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==", - "dev": true - }, - "node-localstorage": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-localstorage/-/node-localstorage-1.3.1.tgz", - "integrity": "sha512-NMWCSWWc6JbHT5PyWlNT2i8r7PgGYXVntmKawY83k/M0UJScZ5jirb61TLnqKwd815DfBQu+lR3sRw08SPzIaQ==", - "dev": true, - "requires": { - "write-file-atomic": "^1.1.4" - }, - "dependencies": { - "write-file-atomic": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", - "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" - } - } - } - }, - "node-url-utils": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-url-utils/-/node-url-utils-0.4.0.tgz", - "integrity": "sha1-4qEOfdqq4FEiNGTMewPSHulcrxU=", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "dev": true, - "requires": { - "boolbase": "~1.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "nyc": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-14.1.1.tgz", - "integrity": "sha512-OI0vm6ZGUnoGZv/tLdZ2esSVzDwUC88SNs+6JoSOMVxA+gKMB8Tk7jBwgemLx4O40lhhvZCVw1C+OYLOBOPXWw==", - "dev": true, - "requires": { - "archy": "^1.0.0", - "caching-transform": "^3.0.2", - "convert-source-map": "^1.6.0", - "cp-file": "^6.2.0", - "find-cache-dir": "^2.1.0", - "find-up": "^3.0.0", - "foreground-child": "^1.5.6", - "glob": "^7.1.3", - "istanbul-lib-coverage": "^2.0.5", - "istanbul-lib-hook": "^2.0.7", - "istanbul-lib-instrument": "^3.3.0", - "istanbul-lib-report": "^2.0.8", - "istanbul-lib-source-maps": "^3.0.6", - "istanbul-reports": "^2.2.4", - "js-yaml": "^3.13.1", - "make-dir": "^2.1.0", - "merge-source-map": "^1.1.0", - "resolve-from": "^4.0.0", - "rimraf": "^2.6.3", - "signal-exit": "^3.0.2", - "spawn-wrap": "^1.4.2", - "test-exclude": "^5.2.3", - "uuid": "^3.3.2", - "yargs": "^13.2.2", - "yargs-parser": "^13.0.0" - } - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-inspect": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", - "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" - } - }, - "octokit-pagination-methods": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz", - "integrity": "sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "openpgp": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/openpgp/-/openpgp-4.6.2.tgz", - "integrity": "sha512-zgQmTZjKxjI2vs++5Ejs8wQbs9+YekOAulfq8YxKV7uUxcNxDE2IIh88I/RmjPOvpxCrV7kNqSBwVQMzZxTtDQ==", - "dev": true, - "requires": { - "asn1.js": "^5.0.0", - "node-fetch": "^2.1.2", - "node-localstorage": "~1.3.0" - } - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, - "os-name": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", - "integrity": "sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==", - "dev": true, - "requires": { - "macos-release": "^2.2.0", - "windows-release": "^3.1.0" - } - }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", - "dev": true - }, - "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "package-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-3.0.0.tgz", - "integrity": "sha512-lOtmukMDVvtkL84rJHI7dpTYq+0rli8N2wlnqUcBuDWCfVhRUfOmnR9SsoHFMLpACvEV60dX7rd0rFaYDZI+FA==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.15", - "hasha": "^3.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "pathval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "psl": { - "version": "1.1.32", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.32.tgz", - "integrity": "sha512-MHACAkHpihU/REGGPLj4sEfc/XKW2bheigvHO1dUqjaKigMp1C8+WLQYRGgeKFMsw5PMfegZcaN8IDXK/cD0+g==", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", - "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", - "dev": true, - "requires": { - "find-up": "^3.0.0", - "read-pkg": "^3.0.0" - } - }, - "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", - "dev": true, - "requires": { - "es6-error": "^4.0.1" - } - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "resolve": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", - "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "seenreq": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/seenreq/-/seenreq-3.0.0.tgz", - "integrity": "sha512-wSe7hb83TKkyweL8Jq5a1xuStmqfwxiJn2SXjA/Wns42aUJjlWzPzj/jWaomOCRY5ZpIRkiyh/+5pNz/20363A==", - "dev": true, - "requires": { - "node-url-utils": "^0.4.0" - } - }, - "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "shelljs": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", - "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=", - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "simple-git": { - "version": "1.113.0", - "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-1.113.0.tgz", - "integrity": "sha512-i9WVsrK2u0G/cASI9nh7voxOk9mhanWY9eGtWBDSYql6m49Yk5/Fan6uZsDr/xmzv8n+eQ8ahKCoEr8cvU3h+g==", - "dev": true, - "requires": { - "debug": "^4.0.1" - } - }, - "slide": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", - "dev": true - }, - "snack-cli": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/snack-cli/-/snack-cli-2.0.0.tgz", - "integrity": "sha512-mrNdZ0aFiIpa7ENNEkV7gTqHMy1m3e2fVssjYBIFQb0WxBBgIpDJGlVcIZvP1hwp1WTgMZpwQgPid5jjEiASdQ==", - "dev": true, - "requires": { - "lodash.camelcase": "^4.3.0", - "lodash.endswith": "^4.2.1", - "lodash.find": "^4.6.0", - "lodash.maxby": "^4.6.0", - "lodash.padend": "^4.6.1", - "lodash.startswith": "^4.2.1" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "spawn-wrap": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", - "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", - "dev": true, - "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" - } - }, - "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", - "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==", - "dev": true - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "string.prototype.trimleft": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", - "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" - } - }, - "string.prototype.trimright": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", - "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" - } - }, - "string_decoder": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz", - "integrity": "sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-json-comments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", - "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", - "dev": true - }, - "sudo-bot": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/sudo-bot/-/sudo-bot-1.1.11.tgz", - "integrity": "sha512-O0lxgHbBKNiMMyamjtlxOcj6NQZdOajR+NoI7SgvbbWGDBTt5AuoWxp73w37jiWsagGj6+Pv+kS736mN0k72RA==", - "dev": true, - "requires": { - "@octokit/rest": "^16.34.1", - "dotenv": "^8.2.0", - "ignore": "^5.1.4", - "jsonwebtoken": "^8.5.1", - "openpgp": "^4.6.2", - "simple-git": "^1.126.0", - "snack-cli": "^2.0.0" - }, - "dependencies": { - "simple-git": { - "version": "1.126.0", - "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-1.126.0.tgz", - "integrity": "sha512-47mqHxgZnN8XRa9HbpWprzUv3Ooqz9RY/LSZgvA7jCkW8jcwLahMz7LKugY91KZehfG0sCVPtgXiU72hd6b1Bw==", - "dev": true, - "requires": { - "debug": "^4.0.1" - } - } - } - }, - "supports-color": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", - "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "teeny-request": { - "version": "3.11.3", - "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-3.11.3.tgz", - "integrity": "sha512-CKncqSF7sH6p4rzCgkb/z/Pcos5efl0DmolzvlqRQUNcpRIruOhY9+T1FsIlyEbfWd7MsFpodROOwHYh2BaXzw==", - "dev": true, - "requires": { - "https-proxy-agent": "^2.2.1", - "node-fetch": "^2.2.0", - "uuid": "^3.3.2" - } - }, - "test-exclude": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz", - "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==", - "dev": true, - "requires": { - "glob": "^7.1.3", - "minimatch": "^3.0.4", - "read-pkg-up": "^4.0.0", - "require-main-filename": "^2.0.0" - } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dev": true, - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "twig": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/twig/-/twig-1.13.3.tgz", - "integrity": "sha512-Kjart2102Kf0IdsEmLonSJKcByU7o9uiJhBde3GhrNHrX4XenT5WSKu4Hpkx+rF6Kyppeyd48BKsCREIOPXd/g==", - "dev": true, - "requires": { - "locutus": "^2.0.5", - "minimatch": "3.0.x", - "walk": "2.3.x" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "uglify-js": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.4.tgz", - "integrity": "sha512-9Yc2i881pF4BPGhjteCXQNaXx1DCwm3dtOyBaG2hitHjLWOczw/ki8vD1bqyT3u6K0Ms/FpCShkmfg+FtlOfYA==", - "dev": true, - "optional": true, - "requires": { - "commander": "~2.20.3", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true - } - } - }, - "universal-user-agent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-4.0.0.tgz", - "integrity": "sha512-eM8knLpev67iBDizr/YtqkJsF3GK8gzDc6st/WKzrTuPtcsOKW/0IdL4cnMBsU69pOx0otavLWBDGTwg+dB0aA==", - "dev": true, - "requires": { - "os-name": "^3.1.0" - } - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "urlgrey": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-0.4.4.tgz", - "integrity": "sha1-iS/pWWCAXoVRnxzUOJ8stMu3ZS8=", - "dev": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "walk": { - "version": "2.3.14", - "resolved": "https://registry.npmjs.org/walk/-/walk-2.3.14.tgz", - "integrity": "sha512-5skcWAUmySj6hkBdH6B6+3ddMjVQYH5Qy9QGbPmN8kVmLteXk+yVXg+yfk1nbX30EYakahLrr8iPcCxJQSCBeg==", - "dev": true, - "requires": { - "foreachasync": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "windows-release": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.2.0.tgz", - "integrity": "sha512-QTlz2hKLrdqukrsapKsINzqMgOUpQW268eJ0OaOpJN32h272waxR9fkB9VoWRtK7uKHG5EHJcTXQBD8XZVJkFA==", - "dev": true, - "requires": { - "execa": "^1.0.0" - } - }, - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - }, - "yargs": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.2.tgz", - "integrity": "sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "os-locale": "^3.1.0", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "yargs-parser": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz", - "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "yargs-unparser": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", - "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", - "dev": true, - "requires": { - "flat": "^4.1.0", - "lodash": "^4.17.15", - "yargs": "^13.3.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - }, - "yargs": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", - "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.1" - } - }, - "yargs-parser": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", - "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - } - } -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/package.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/package.json deleted file mode 100644 index 8926f72..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/package.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "name": "mariadb-mysql-kbs", - "repository": "williamdes/mariadb-mysql-kbs", - "version": "1.2.8", - "description": "An index of the MariaDB and MySQL Knowledge bases", - "main": "src/index.js", - "homepage": "https://github.com/williamdes/mariadb-mysql-kbs#readme", - "readme": "https://github.com/williamdes/mariadb-mysql-kbs/blob/master/README.md", - "license": "MPL-2.0", - "bugs": { - "url": "https://github.com/williamdes/mariadb-mysql-kbs/issues", - "email": "williamdes@wdes.fr" - }, - "keywords": [ - "mariadb", - "mysql", - "dataset", - "kb", - "knowledge-base", - "json", - "library", - "mysql-knowledge-bases", - "mariadb-knowledge-bases", - "composer-package", - "npm-package" - ], - "nyc": { - "exclude": [ - "docs", - "data", - "test", - "build", - "vendor", - "coverage", - ".nyc_output", - "scripts/vendor" - ], - "reporter": [ - "text", - "text-summary" - ] - }, - "scripts": { - "changelog": "changelog-generator-twig --owner williamdes --repo mariadb-mysql-kbs --repoDir ./ --baseCommit 28e9e010dc027dee17a55f5eedad776dcf983e95", - "changelog-file": "npm run --silent changelog > CHANGELOG.md", - "prettier": "prettier \"*.js\" \"*/**/*.js\" --ignore-path ./.prettierignore --write", - "test": "nyc --all mocha --ui tdd", - "jshint": "jshint ./", - "build": "node ./src/index.js", - "report-coverage": "nyc report --reporter=text-lcov > coverage.lcov", - "sudo-bot-pr": "sudo-bot --env scripts/sudo-bot/.env --verbose" - }, - "author": { - "email": "williamdes@wdes.fr", - "name": "William Desportes", - "url": "https://william.wdes.fr" - }, - "dependencies": {}, - "devDependencies": { - "chai": "^4.2.0", - "changelog-generator-twig": "^1.2.0", - "codecov": "^3.6.1", - "crawler": "^1.2.1", - "jshint": "^2.10.3", - "mocha": "^6.2.2", - "nyc": "^14.1.1", - "prettier": "^1.19.1", - "sudo-bot": "^1.1.11" - }, - "directories": { - "lib": "src", - "test": "test" - }, - "prettier": { - "singleQuote": true, - "proseWrap": "never", - "trailingComma": "es5", - "printWidth": 120 - }, - "publishConfig": { - "access": "public" - } -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/phpcs.xml b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/phpcs.xml deleted file mode 100644 index 2e25b78..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/phpcs.xml +++ /dev/null @@ -1,155 +0,0 @@ - - - - Wdes PHP_CodeSniffer custom coding standard - - . - */tmp/* - */vendor/* - *.js - */docs/* - */dist/* - */build/* - */node_modules/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/phpstan.neon b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/phpstan.neon deleted file mode 100644 index b52361f..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/phpstan.neon +++ /dev/null @@ -1,9 +0,0 @@ -parameters: - excludes_analyse: - - %rootDir%/../../../src/merge.php - - %rootDir%/../../../dist/* - - %rootDir%/../../../tmp/* - - %rootDir%/../../../docs/* - - %rootDir%/../../../build/* - - %rootDir%/../../../nodes_modules/* - - %rootDir%/../../../vendor/* diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/schemas/doc-url.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/schemas/doc-url.json deleted file mode 100644 index 10c7161..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/schemas/doc-url.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "definitions": {}, - "$id": "urn:williamdes:mariadb-mysql-kbs:doc-url", - "$schema": "http://json-schema.org/draft-07/schema#", - "type": "string", - "pattern": "^(https|http)://(mariadb.com|dev.mysql.com)", - "minLength": 20 -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/schemas/doc-version.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/schemas/doc-version.json deleted file mode 100644 index 118a316..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/schemas/doc-version.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "definitions": {}, - "$id": "urn:williamdes:mariadb-mysql-kbs:doc-version", - "$schema": "http://json-schema.org/draft-07/schema#", - "type": "number", - "title": "The Version Schema ", - "description": "Version of file", - "default": 1, - "examples": [ - 1, - 1.1, - 2.9, - 3 - ] -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/schemas/linked-key-var-url.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/schemas/linked-key-var-url.json deleted file mode 100644 index 79ac06f..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/schemas/linked-key-var-url.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "definitions": {}, - "$id": "urn:williamdes:mariadb-mysql-kbs:linked-key-var-url", - "$schema": "http://json-schema.org/draft-07/schema#", - "type": "string", - "additionalProperties": false, - "pattern": "^[0-9]+#[A-Za-z0-9]+" -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/schemas/linked-key-var.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/schemas/linked-key-var.json deleted file mode 100644 index 6e96ce8..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/schemas/linked-key-var.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "definitions": {}, - "$id": "urn:williamdes:mariadb-mysql-kbs:linked-key-var", - "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^[0-9]+": { - "type": "string" - } - } -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/schemas/merged-raw.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/schemas/merged-raw.json deleted file mode 100644 index 461653c..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/schemas/merged-raw.json +++ /dev/null @@ -1,112 +0,0 @@ -{ - "$id": "urn:williamdes:mariadb-mysql-kbs:rawdata", - "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", - "definitions": {}, - "properties": { - "vars": { - "type": "object", - "patternProperties": { - "^([a-zA-Z_]+)": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2 - }, - "scope": { - "type": "array", - "additionalItems": false, - "items": { - "type": "string", - "enum": [ - "global", - "session", - "connection" - ] - } - }, - "type": { - "type": "string" - }, - "ids": { - "type": "array", - "additionalItems": false, - "items": { - "type": "object", - "additionalProperties": false, - "properties": { - "anchor": { - "type": "string", - "minLength": 1 - }, - "url": { - "type": "string", - "format": "uri" - } - } - } - }, - "cli": { - "type": "string", - "minLength": 2 - }, - "default": { - "type": "string", - "minLength": 0 - }, - "dynamic": { - "type": "boolean" - }, - "range": { - "type": "object", - "additionalProperties": false, - "properties": { - "from": { - "type": "number" - }, - "to": { - "oneOf": [ - { - "type": "number" - }, - { - "type": "string", - "enum": ["upwards"] - } - ] - } - } - }, - "validValues": { - "type": "array", - "additionalItems": false, - "items": { - "type": [ "string", "number"] - } - } - }, - "additionalProperties": false - } - }, - "additionalProperties": false - }, - "version": { - "$ref": "urn:williamdes:mariadb-mysql-kbs:doc-version" - }, - "urls": { - "type": "array", - "additionalItems": false, - "items": { - "$ref": "urn:williamdes:mariadb-mysql-kbs:doc-url" - } - }, - "types": { - "$ref": "urn:williamdes:mariadb-mysql-kbs:linked-key-var" - }, - "varTypes": { - "$ref": "urn:williamdes:mariadb-mysql-kbs:linked-key-var" - } - }, - "additionalProperties": false -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/schemas/merged-slim.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/schemas/merged-slim.json deleted file mode 100644 index a3d1388..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/schemas/merged-slim.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "$id": "urn:williamdes:mariadb-mysql-kbs:slimdata", - "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", - "definitions": {}, - "properties": { - "vars": { - "type": "object", - "patternProperties": { - "^([a-zA-Z_]+)": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2 - }, - "scope": { - "type": "array", - "additionalItems": false, - "items": { - "type": "string", - "enum": [ - "global", - "session", - "connection" - ] - } - }, - "type": { - "type": "string" - }, - "ids": { - "type": "array", - "additionalItems": false, - "items": { - "$ref": "urn:williamdes:mariadb-mysql-kbs:linked-key-var-url" - } - }, - "cli": { - "type": "string", - "minLength": 2 - }, - "default": { - "type": "string", - "minLength": 0 - }, - "dynamic": { - "type": "boolean" - }, - "range": { - "type": "object", - "additionalProperties": false, - "properties": { - "from": { - "type": "number" - }, - "to": { - "oneOf": [ - { - "type": "number" - }, - { - "type": "string", - "enum": ["upwards"] - } - ] - } - } - }, - "validValues": { - "type": "array", - "additionalItems": false, - "items": { - "type": [ "string", "number"] - } - } - }, - "additionalProperties": false - } - }, - "additionalProperties": false - }, - "version": { - "$ref": "urn:williamdes:mariadb-mysql-kbs:doc-version" - }, - "urls": { - "type": "array", - "additionalItems": false, - "items": { - "$ref": "urn:williamdes:mariadb-mysql-kbs:doc-url" - } - }, - "types": { - "$ref": "urn:williamdes:mariadb-mysql-kbs:linked-key-var" - }, - "varTypes": { - "$ref": "urn:williamdes:mariadb-mysql-kbs:linked-key-var" - } - }, - "additionalProperties": false -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/schemas/merged-ultraslim.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/schemas/merged-ultraslim.json deleted file mode 100644 index c12f553..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/schemas/merged-ultraslim.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "$id": "urn:williamdes:mariadb-mysql-kbs:ultraslimdata", - "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", - "definitions": {}, - "properties": { - "vars": { - "$id": "/properties/vars", - "type": "object", - "patternProperties": { - "^([a-zA-Z_]+)": { - "type": "object", - "properties": { - "t": { - "type": "integer" - }, - "d": { - "type": "boolean" - }, - "a": { - "type": "array", - "additionalItems": false, - "items": { - "type": "object", - "properties": { - "a": { - "type": "string" - }, - "u": { - "type": "integer" - }, - "t": { - "type": "integer" - } - }, - "additionalProperties": false - } - } - }, - "additionalProperties": false - } - }, - "additionalProperties": false - }, - "version": { - "$ref": "urn:williamdes:mariadb-mysql-kbs:doc-version" - }, - "urls": { - "type": "array", - "additionalItems": false, - "items": { - "$ref": "urn:williamdes:mariadb-mysql-kbs:doc-url" - } - }, - "types": { - "$ref": "urn:williamdes:mariadb-mysql-kbs:linked-key-var" - }, - "varTypes": { - "$ref": "urn:williamdes:mariadb-mysql-kbs:linked-key-var" - } - }, - "additionalProperties": false -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/CHANGELOG.twig b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/CHANGELOG.twig deleted file mode 100644 index 62ca8ac..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/CHANGELOG.twig +++ /dev/null @@ -1,72 +0,0 @@ -# Changelog -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). - -{% for version in versions %} -## {% spaceless %} - [{{version.name}}] - {% if version.tag is defined %} - (https://github.com/{{ owner }}/{{ repo }}/releases/tag/{{ version.tag }}) - {% endif %} -{% endspaceless %}{% if version.date is defined %}- {{version.date}}{% endif %} - - -{% for change in version.changesAdded %} -{% if loop.first %}### Added{{ '\n'|raw }}{% endif %} -{# #}{# #}- [{{change.hash}}](https://github.com/{{ owner }}/{{ repo }}/commit/{{change.longHash}}) {{ change.msg }}{% if not loop.last %}{{ '\n'|raw }}{% else %}{{ '\n'|raw }}{% endif %} -{# #}{% endfor %}{% if version.changesChanged.length > 0 %}{{ '\n'|raw }}{% endif %} -{% for change in version.changesChanged %} -{% if loop.first %}### Changed{{ '\n'|raw }}{% endif %} -{# #}{# #}- [{{change.hash}}](https://github.com/{{ owner }}/{{ repo }}/commit/{{change.longHash}}) {{ change.msg }}{% if not loop.last %}{{ '\n'|raw }}{% else %}{{ '\n'|raw }}{% endif %} -{# #}{% endfor %}{% if version.changesDeprecated.length > 0 %}{{ '\n'|raw }}{% endif %} -{% for change in version.changesDeprecated %} -{% if loop.first %}### Deprecated{{ '\n'|raw }}{% endif %} -{# #}{# #}- [{{change.hash}}](https://github.com/{{ owner }}/{{ repo }}/commit/{{change.longHash}}) {{ change.msg }}{% if not loop.last %}{{ '\n'|raw }}{% else %}{{ '\n'|raw }}{% endif %} -{# #}{% endfor %}{% if version.changesRemoved.length > 0 %}{{ '\n'|raw }}{% endif %} -{% for change in version.changesRemoved %} -{% if loop.first %}### Removed{{ '\n'|raw }}{% endif %} -{# #}{# #}- [{{change.hash}}](https://github.com/{{ owner }}/{{ repo }}/commit/{{change.longHash}}) {{ change.msg }}{% if not loop.last %}{{ '\n'|raw }}{% else %}{{ '\n'|raw }}{% endif %} -{# #}{% endfor %}{% if version.changesFixed.length > 0 %}{{ '\n'|raw }}{% endif %} -{% for change in version.changesFixed %} -{% if loop.first %}### Fixed{{ '\n'|raw }}{% endif %} -{# #}{# #}- [{{change.hash}}](https://github.com/{{ owner }}/{{ repo }}/commit/{{change.longHash}}) {{ change.msg }}{% if not loop.last %}{{ '\n'|raw }}{% else %}{{ '\n'|raw }}{% endif %} -{# #}{% endfor %}{% if version.changesImprove.length > 0 %}{{ '\n'|raw }}{% endif %} -{% for change in version.changesImprove %} -{% if loop.first %}### Improvements{{ '\n'|raw }}{% endif %} -{# #}{# #}- [{{change.hash}}](https://github.com/{{ owner }}/{{ repo }}/commit/{{change.longHash}}) {{ change.msg }}{% if not loop.last %}{{ '\n'|raw }}{% else %}{{ '\n'|raw }}{% endif %} -{# #}{% endfor %}{% if version.changesSecurity.length > 0 %}{{ '\n'|raw }}{% endif %} -{% for change in version.changesSecurity %} -{% if loop.first %}### Security{{ '\n'|raw }}{% endif %} -{# #}{# #}- [{{change.hash}}](https://github.com/{{ owner }}/{{ repo }}/commit/{{change.longHash}}) {{ change.msg }}{% if not loop.last %}{{ '\n'|raw }}{% else %}{{ '\n'|raw }}{% endif %} -{# #}{% endfor %}{{ '\n'|raw }} -{% endfor %} -{{ '\n'|raw }} -{# -## [Unreleased] - -## [0.0.4] - 2014-08-09 -### Added - -### Changed - -### Removed - - -`Added` for new features. -`Changed` for changes in existing functionality. -`Deprecated` for soon-to-be removed features. -`Removed` for now removed features. -`Fixed` for any bug fixes. -`Security` in case of vulnerabilities. -#} - -{% for link in links %} -[{{link.name}}]: https://github.com/{{ owner }}/{{ repo }}/compare/{{link.start}}...{{link.end}} -{% endfor %} - -{# -[Unreleased]: https://github.com/{{ owner }}/{{ repo }}/compare/v1.0.0...HEAD -[1.0.0]: https://github.com/{{ owner }}/{{ repo }}/compare/v0.3.0...v1.0.0 -#} \ No newline at end of file diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/apidoc-generate.sh b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/apidoc-generate.sh deleted file mode 100755 index f0ef282..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/apidoc-generate.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash -cd $(dirname $0)/../scripts -echo "Running in : $(pwd)" - -composer require --no-interaction sami/sami --prefer-dist -./vendor/bin/sami.php --no-interaction --verbose update ./sami-config.php diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/changelog.sh b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/changelog.sh deleted file mode 100755 index 937daa7..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/changelog.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -npm install --only=dev -npm run changelog-file -git diff --no-prefix CHANGELOG.md diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/ci-cron.sh b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/ci-cron.sh deleted file mode 100755 index 1278745..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/ci-cron.sh +++ /dev/null @@ -1,65 +0,0 @@ -#!/bin/bash -if [ "$TRAVIS_EVENT_TYPE" != "cron" ]; then - echo "Not a travis cron !"; - exit 1; -fi - -if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then - echo "Not a travis cron !"; - exit 1; -fi - -therealpath () -{ - f=$@; - if [ -d "$f" ]; then - base=""; - dir="$f"; - else - base="/$(basename "$f")"; - dir=$(dirname "$f"); - fi; - dir=$(cd "$dir" && /bin/pwd); - echo "$dir$base" -} - - -ME="$(dirname $0)" - -BOT_DIR_FILES="$(therealpath $ME/../sudo-bot)" -REPO_DIR="$(therealpath $ME/../../)" - -echo "BOT_DIR_FILES = $BOT_DIR_FILES" -echo "REPO_DIR = $REPO_DIR" - -REPO="mariadb-mysql-kbs" -OWNER="williamdes" - - -#INSTALLATION_ID="123456" -JWT_PRIV_KEY_PATH="$BOT_DIR_FILES/sudo.2018-09-12.private-key.pem" -GPG_PRIV_PATH="$BOT_DIR_FILES/privkey.asc" -GPG_PUB_PATH="$BOT_DIR_FILES/pubkey.asc" -#GPG_PRIV_PASSWORD="gpgPasswordHere" - -BOT_NAME="Sudo Bot" -BOT_EMAIL="sudo-bot@wdes.fr" - -echo "Create env file" - -echo -e "JWT_PRIV_KEY_PATH=$JWT_PRIV_KEY_PATH\nGPG_PRIV_PATH=$GPG_PRIV_PATH\nGPG_PUB_PATH=$GPG_PUB_PATH\nGPG_PRIV_PASSWORD=$GPG_PRIV_PASSWORD\nREPO=$REPO\nOWNER=$OWNER\nASSIGN_USERS=williamdes\nAPP_ID=17453\nINSTALLATION_ID=$INSTALLATION_ID\nBOT_NAME=$BOT_NAME\nBOT_EMAIL=$BOT_EMAIL\nREPO_DIR=$REPO_DIR\nDOT_IGNORE=$BOT_DIR_FILES/.sudobotignore\nTEMPLATE_FILE=$BOT_DIR_FILES/template.js" > $BOT_DIR_FILES/.env - - -cd $REPO_DIR - -echo "Run nodejs scripts" -npm run build - -echo "Run merge script" -composer run build - -echo "Run sudo-bot" - -npm run sudo-bot-pr - -rm -f $BOT_DIR_FILES/.env diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/ci-lint.sh b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/ci-lint.sh deleted file mode 100755 index e9ac666..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/ci-lint.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -cd $(dirname $0)/../../ -echo "Running in : $(pwd)" -echo "Running jshint" -npm run jshint -- --verbose -JSHINT=$? -echo "Running prettier" -npm run prettier -- --list-different -PRETTIER=$? - -if [[ $JSHINT != 0 ]] || [[ $PRETTIER != 0 ]]; then - echo "You have some errors to fix !"; - exit 1; -fi diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/ci-mocha.sh b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/ci-mocha.sh deleted file mode 100755 index 117d9d7..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/ci-mocha.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash -cd $(dirname $0)/../../ -echo "Running in : $(pwd)" -npm run test -npm run report-coverage diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/ci-phpcs.sh b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/ci-phpcs.sh deleted file mode 100755 index b197cfd..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/ci-phpcs.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -cd $(dirname $0)/../../ -echo "Running in : $(pwd)" -composer run phpcs diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/ci-phpcsbf.sh b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/ci-phpcsbf.sh deleted file mode 100755 index 4c70600..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/ci-phpcsbf.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -cd $(dirname $0)/../../ -echo "Running in : $(pwd)" -composer run phpcbf diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/ci-phpstan.sh b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/ci-phpstan.sh deleted file mode 100755 index a69d006..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/ci-phpstan.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -cd $(dirname $0)/../../ -echo "Running in : $(pwd)" -composer run phpstan diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/ci-phpunit.sh b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/ci-phpunit.sh deleted file mode 100755 index 33b6f94..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/ci-phpunit.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -cd $(dirname $0)/../../ -echo "Running in : $(pwd)" -composer run test diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/install-reporters.sh b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/install-reporters.sh deleted file mode 100755 index 19befa5..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/install-reporters.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env bash -therealpath () -{ - f=$@; - if [ -d "$f" ]; then - base=""; - dir="$f"; - else - base="/$(basename "$f")"; - dir=$(dirname "$f"); - fi; - dir=$(cd "$dir" && /bin/pwd); - echo "$dir$base" -} -ME="$(therealpath $(dirname $0))" -echo "I am in : $ME" -mkdir -p "$HOME/.cache/ci" -cd "$HOME/.cache/ci" -CODACY_LATEST_PHAR=$(curl -s https://api.github.com/repos/codacy/php-codacy-coverage/releases/latest | grep browser_download_url | cut -d '"' -f 4) -echo "CODACY_LATEST_PHAR: $CODACY_LATEST_PHAR" -wget --timestamping "$CODACY_LATEST_PHAR" - -cp "$HOME/.cache/ci/codacy-coverage.phar" "$ME/../../codacy-coverage.phar" - -chmod +x "$ME/../../codacy-coverage.phar" - -cd "$ME/../../" diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/install.sh b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/install.sh deleted file mode 100755 index 682237e..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/ci/install.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash -export PATH=~/.composer/vendor/bin/:$PATH -set -x -set -e diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/release.php b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/release.php deleted file mode 100755 index 0af0ddf..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/release.php +++ /dev/null @@ -1,165 +0,0 @@ -#!/usr/bin/env php -version; - return versionToInt($version); -} - -/** - * Int to version - * - * @param int $version The version in int format - * @example $version 123456789 for 123.456.789 - * @example $version 1010020 for 1.10.20 - * @return string - */ -function intToVersion(int $version): string -{ - $major = ($version / 1000000) | 0; - $minor = ( ($version / 1000) - ($major * 1000) ) | 0; - $patch = $version - (($major * 1000000) + ($minor * 1000)); - return $major.".".$minor.".".$patch; -} - -/** - * Saves files (composer, package) - * - * @param string $composerSaveVersion The actual composer version - * @param string $npmSaveVersion The actual npm version - * @return void - */ -function saveFiles(string $composerSaveVersion, string $npmSaveVersion): void -{ - global $composerActualData, $npmActualData; - $composerActualData->version = $composerSaveVersion; - $npmActualData->version = $npmSaveVersion; - $flags = JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES; - file_put_contents(__DIR__."/../composer.json", json_encode($composerActualData, $flags).PHP_EOL); - file_put_contents(__DIR__."/../package.json", json_encode($npmActualData, $flags).PHP_EOL); -} - -/* -// Test data -echo "#1 ".intToVersion(123456789).PHP_EOL; -echo "#2 ".versionToInt("1.10.20").PHP_EOL; -echo "#3 ".intToVersion(100400100).PHP_EOL; -echo "#4 ".intToVersion(1010020).PHP_EOL; -echo "#5 ".getVersion(__DIR__."/../composer.json").PHP_EOL; -echo "#6 ".intToVersion(getVersion(__DIR__."/../composer.json")).PHP_EOL; -*/ -echo "Release a new version".PHP_EOL; -$composerActualData = json_decode(file_get_contents(__DIR__."/../composer.json")); -$npmActualData = json_decode(file_get_contents(__DIR__."/../package.json")); - -$composerActualVersion = $composerActualData->version; -$npmActualVersion = $npmActualData->version; - -$composerSaveVersion = $composerActualVersion; -$npmSaveVersion = $npmActualVersion; - - - -$itemCallable = function (CliMenu $menu): void { - global $composerActualVersion, $npmActualVersion, $composerSaveVersion, $npmSaveVersion; - switch ($menu->getSelectedItem()->getText()) { - case 'Major': - $composerSaveVersion = intToVersion(versionToInt($composerSaveVersion) + 1000000); - $npmSaveVersion = intToVersion(versionToInt($npmSaveVersion) + 1000000); - break; - case 'Minor': - $composerSaveVersion = intToVersion(versionToInt($composerSaveVersion) + 1000); - $npmSaveVersion = intToVersion(versionToInt($npmSaveVersion) + 1000); - break; - case 'Patch': - $composerSaveVersion = intToVersion(versionToInt($composerSaveVersion) + 1); - $npmSaveVersion = intToVersion(versionToInt($npmSaveVersion) + 1); - break; - } - - $menu->close(); - echo "Saved versions, composer: $composerSaveVersion, npm: $npmSaveVersion"; - saveFiles($composerSaveVersion, $npmSaveVersion); -}; - -$cbManual = function (CliMenu $menu): void { - global $composerActualVersion, $npmActualVersion, $composerSaveVersion, $npmSaveVersion; - $result = $menu->askPassword() - ->setPromptText("Actual composer version: $composerActualVersion") - ->setPlaceholderText($composerActualVersion) - ->setValidationFailedText('Invalid version, try again') - ->setValidator( - function ($version) { - return validateVersion($version); - } - )->ask(); - - $composerSaveVersion = $result->fetch(); - - $result = $menu->askPassword() - ->setPromptText("Actual npm version: $npmActualVersion") - ->setPlaceholderText($composerActualVersion) - ->setValidationFailedText('Invalid version, try again') - ->setValidator( - function ($version) { - return validateVersion($version); - } - )->ask(); - $npmSaveVersion = $result->fetch(); - $menu->close(); - echo "Saved versions, composer: $composerSaveVersion, npm: $npmSaveVersion"; - saveFiles($composerSaveVersion, $npmSaveVersion); -}; - -$menu = (new CliMenuBuilder())->setTitle('Bump version') - ->addItem('Major', $itemCallable) - ->addItem('Minor', $itemCallable) - ->addItem('Patch', $itemCallable) - ->addItem('Manual', $cbManual) - ->addLineBreak('-') - ->setPadding(2, 4) - ->setMarginAuto() - ->build(); - -$menu->open(); diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/sami-config.php b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/sami-config.php deleted file mode 100644 index 9909374..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/sami-config.php +++ /dev/null @@ -1,19 +0,0 @@ -files()->name("*.php")->in(__DIR__."/../src"); - -$description = json_decode(file_get_contents(__DIR__."/../composer.json"))->description; - -return new Sami( - $iterator, array( - "title" => $description, - "build_dir" => __DIR__."/../docs", - "cache_dir" => __DIR__."/../tmp" - ) -); diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/sudo-bot/.sudobotignore b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/sudo-bot/.sudobotignore deleted file mode 100644 index aa2b365..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/sudo-bot/.sudobotignore +++ /dev/null @@ -1,3 +0,0 @@ -package-lock.json -.env -composer.lock diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/sudo-bot/keys.tar.enc b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/sudo-bot/keys.tar.enc deleted file mode 100644 index d382dd6..0000000 Binary files a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/sudo-bot/keys.tar.enc and /dev/null differ diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/sudo-bot/pubkey.asc b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/sudo-bot/pubkey.asc deleted file mode 100644 index 0f8bc9f..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/sudo-bot/pubkey.asc +++ /dev/null @@ -1,186 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- - -mQINBFudCJMBEADOr/ISxC+QFyXEa/bRPsAMxnZVpiKgoMSN0gyp2Sa5PciN8QWq -lJFHUPeEsSzOvcKT8DDeX5Om8gAQH8BtgylKSevyRBVt/M2pQ0EOrfy4uQFKJGMz -9usLuZerd6iPYe0W/3SwGs9eGo+A9WzOTr0AdKwY80kzIZ6UGgAD90HwgLGS8Te9 -8i7jK21SlmDDiSSdZpVIERta4cgl4KHTQt6CAfBJgmHrJW3pGvXVtwaSRD1kfAyH -2Qwo7H+ziTADvwGFXM4KRDh7alKrzvDcB1qERcgToYnry1w6CF6U9LhHzuJatfKp -JOW7BUAYUBWKv588DWggvY9vBYnv70+YjsqVq9C+QTRJqEeB4IswIlGDLWPMoZWg -+YJB1hDFoGUxif7TgCuYDcjRn7zNJOe+vS4xDCK2cpdtP+vbC56m0i1sT/wn5d/x -iXd8LZJsxu9g1CK+k6Ng7tooJyeqJvURza8leCO+pklQ5mcGAl/G60Z4b3qgJ9IT -iIpKOMktuoNGO5xUd4k+epSN/nnO5IoCxlpcb5fVp+XQB4UP71lfxLONHQgr5MkC -oumjZNQOXW0pjEE2nW8TJGnuM09Vd7UyH7Jrq292HGEnZb5MXrMG0jFCiz0e/tW8 -ORv0FiX4FcIij40SN1kyYWiRjuSGYsXIqyacreZ2aLblNPpXHakmNYq0dwARAQAB -tCFTdWRvIEJvdCAoQk9UKSA8c3Vkby1ib3RAd2Rlcy5mcj6JAlEEEwEKADsCGwMC -HgECF4ACGQEWIQRmcL239Ji+XfynCI6COI8+tXde1QUCW50h2AULCQgHAgYVCgkI -CwIEFgIDAQAKCRCCOI8+tXde1SYAD/9lcvNC3gHgD+c0nrGL490FHuxvXm5gWmXW -wDOaXmTaIRvEPNYFbC6MU8S2oL0/XenEJi1bkRoU6HrGDlcuh3aSIfAxyerl/00O -XS3jkkf1UZ6zv0G6MUgEwMFYLQgEwIamg+Ywn3zdcpvadkyV6EpG/LSeBcGU5/dG -4OpACfE4WcuN4prKZYKbCvoH9YgziMP/FqPjRCyyVi6aZe+boFQZK6h3Te61fKcu -xBJ21xg9KvAQYPmaEuYwZV83KSQ+PGdZweEbmeq2AHRlqpsDEr/fOM1/PuSRPPSA -jRRMi1M9ldDTXi6kOpuUCT7H2iilTlJTTV/to2N6LrGmioapIPwhstr1qmPxjhh5 -+R0qinAbhprnsnhEYDG0tiqZ+1ebYADOQpIpbY5UhB5brN61UJvIqW0IoLgqYLAR -GUGjhqCZwmgqBVNgAZzW8ZXCx5c1Yba0oW8fSVLG2nbPUav2g37Tqr87fUJOBGC5 -4vQO1MMS+HGJKUAtdnXi/slDJsR9qXXo0IxlSWLbQdJ7eL3v21G8SCzKxc3joTno -Or49+VlNHEWexsm7DkMDrf/KHOMr8mcrGTQXInBd/alV0xw9/PyUlzRCX4P7PwFv -A00NhhEloqxhsUEe5BwBbA2CNYB0JtrV3xHqV5SpWhXh3wdVchlZNN4oVHNDxwxw -HsnHr1Slp4kCMwQQAQoAHRYhBMTZH9/O9rSjxlP9eJCg7xuCUaiJBQJbnSONAAoJ -EJCg7xuCUaiJkzIP/0ufV1coA791TmDtgoBEPOMTceZ0D3F2P6P+P5+igrVpKM5n -hVjK6KW8dhOARpgOax6RKV1pw83lh8v4A61lpi6Es7BIT9c7mP1iIS5XGbP6UUtF -YKqQ4Sh3RVjeeH/U+CSZv8JLR0oSpKER2CauB4mWFqthkp6zuNpfO8uVZcsSIWO5 -VRjbB2OnZBX/WI3L/zTAWsd4ccX6VeSXwTXb9IrmO6F/d9On1fkt45ZGfzypqjHh -D8AAA4tSOupWDmwqP00H4/EI0JkZlNBhcOj2TtK9OFI3OhUMG1ZVumJ3tMSDW5YG -f4edP/oPwkgBPikkuBmo8Vl+8EV3mlv/H/5rV4hL4JWDW4g2YvOjSOn3ZowXz3ji -WsrzrJhPnFk9EttbWdMrZSnnNhZ53pt+7nHygxefIOaAC8vOA+ZSs1l++z+grz0y -2U0wDPMEMfGnujhT5RiEqtrRjk4TQ3Kqq0eqLj5DNF7xc+/0IYnu1Ol8yXEizBp+ -rOhnNdpUngYu4N0UsG12Aph1OgdtNHkO+0URy+uNa18VVGtemj6g/bRryYDAhchI -B4sDK1G6ot2og7+QH6Q5kayg9JZkaDwML7G+0Pczl9v/XFPnRM8u6s34bOsZmWgv -Aqmk+KLqN64MtW9jfPjErfHAF6y3TP3n1hqO75D1DnJm7gWT9u//Qq3YuZR60c2E -zYIBEAABAQAAAAAAAAAAAAAAAP/Y/+AAEEpGSUYAAQEAAAEAAQAA/9sAQwAIBgYH -BgUIBwcHCQkICgwUDQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0 -NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEcITIyMjIyMjIyMjIyMjIyMjIy -MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgAhwCHAwEiAAIR -AQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMC -BAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJ -ChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3 -eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS -09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAA -AAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEH -YXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVG -R0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKj -pKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX2 -9/j5+v/aAAwDAQACEQMRAD8A9/ooooAKKKKACiiigAooqG6ureytnubu4it4EGXl -lcIqj3J4FAE1FctH8SfBUtz9nXxNpvmZxzOAv/fR4/WunjkSaNZInV42GVZTkEeo -NADqKKKACiiigAooooAKKKKACiiigAooooAKKKKAGyyJDE8sjBI0UszHoAOpr4+8 -e+ONV+IfiUxxNL9gWUpY2angDoGI7sepJ6dOlfVvim3mvPCOtW1sCZ5rCeOMDruM -bAfrXx54Iu7ez8U2z3JVVYMis3RWIwP8PxqZtpNoxxFSVKlKcVdpN2Lcvw71uO0M -wNs7gZMKud306Yz+NdJ8IPiFfeF/Eltol9M7aReSiFopD/x7yMcBlz056j8eortW -ZUUsxCqBkkngCvFL/wD4m/jORdNGWubwJBt/iYsACPqefxrCjVlNu542TZlXxcpR -qrbqvyPuCiiiuk98KKKKACiiigAooooAKKKKACiiigAoqKe5gtY/MuJo4k/vSMFH -5mqn9vaP/wBBax/8CU/xoA0K+dPid8FNRTVLjWvC1v8AabWdjJLZJxJEx5OwfxKT -2HI9MV73/b2j/wDQWsf/AAJT/Gj+3tH/AOgtY/8AgSn+NAHxLDLrOoSx6TFLezvI -4iS1Ds2WzjaFr3r4S/B270XUYvEXiWNUuovmtbPIYxt/fcjjI7Dt16ivI/Bc0UXx -Y0qaSREiXVAxdmAUDf1zX15/b2j/APQWsf8AwJT/ABpJExjGOysaFFZ/9vaP/wBB -ax/8CU/xo/t7R/8AoLWP/gQn+NMo0KKZFLHPGJIpEkQ9GQ5B/Gn0AFFFFABRRRQA -UUUUAFeIfFL41SaPeT6D4XdDdxEpc3xAYRN3VAeCw7k8Dp16egfE7xLJ4U8AalqF -u+27ZRBbsOodzjI9wMt+FfPXwe8CxeNvFEs2pKZNMsAJbhSf9a5J2oT6HBJ9hjvS -AxrDwv448fzNfw2eoamWJzdXEmEPqA7kD8Aa1f8AhR/xA/6Asf8A4GQ//FV9awwx -W8KQwRpFFGoVERQFUDoAB0FPosB8j/8ACj/iB/0BY/8AwMh/+Ko/4Uf8QP8AoCx/ -+BkP/wAVX1xRRYD5H/4Uf8QP+gNH/wCBkP8A8VR/wo/4gf8AQFj/APAyH/4qvrii -iwHyP/wo/wCIH/QFj/8AAyH/AOKo/wCFIfEDH/IFj/8AAyH/AOLr64oosB8YzWPj -j4bXyTvHqOkSFuJEb93IfTIyjfTmvd/hX8Xo/GDro2srHBrIXMbpwlyB1wOzY5x3 -5I9K9O1DTrPVrCaxv7aO5tZl2yRSLkMK+QvHfhq5+HHj8wWM0iJGyXdhNn5gufl/ -EEEe+PegD7GorJ8L60niPwvpmsIAv2u3WRlHRWx8w/A5H4VrUwCiiigAqC8vbXTr -OW7vbiK3tol3SSysFVR7k1PXyd8YPiBc+LPEk+m2szDRrGQxxIp4mccGQ+vOQPb6 -mgDofjN8TtA8W6HBomivcTtDeLO9wY9kTAK64GTuPLDtXS/s3Io8May4HzG9UE+w -QY/ma+cmTaoJ619H/s3/APIqax/1/D/0BaqcJQdpID07xR4q0vwhpDajqkpCZ2xx -IMvK3oo/yK8mb9oaT7X8vhxfs2ehuvnx6/dxWT8frq4fxjYWrk/Z4rIPGvbczsGP -/joH4Vds/AHg6b4PNr0lx/xMPsrTG688/JMASItucdcLjGTXbTpUowUpq9zCUpOT -Ueh674R8Y6V4z0s3umuwZCFmgkGHib0I9D2I6/nXQV81fAq6uIfH7QRE+TPaSCVe -2Bgg/nx+NfStc+IpKnPlRpTlzK4UUUVgWcl43+IOk+B7aP7WHuL2YEw2sRAZh/eJ -/hX3/IHmvOrP9obN2Be+HttsTyYbnc6j6FQD+lcD8Urme7+Jmr/anIEcyxJn+FAo -xgfTn8a7L4i+AfB+geAbbU9JnxdloxFL55f7WD1OM46c/LjpXowo0oxipq7kc7nJ -t26Ht2ia1YeIdJg1PTZxNbTDKt0IPcEdiPSvBf2k0UazoLgDcbeUE+wYY/ma3P2e -bq4aDXbQljbI0MijsrtuB/MKPyrF/aU/5C3h/wD64Tf+hLXFWp+zm4m0JcyuaXwk -+K/hrSfCmneG9WuJrO5gMiieVP3LbpGYfMCccN3AHvXukciTRJLE6vG4DK6nIYHo -Qe9fBPlkpuH5V7N8CfiDc2OsReFNRnZ7G7JFoXOfJl67R/stzx649TUyhKFuZblH -0lRRRUgUNbmlttA1GeHPmxWsrpj+8FJFfC0fMgzX3s6LJG0bqGRgQwPcGvijxr4Y -ufB3i290mdGCRuWt3PSSIn5W/Lg+4IqqclGak+jAw5vuD619Gfs3/wDIqax/1/D/ -ANAWvnKRwyDHr0r6N/Zv/wCRU1j/AK/h/wCgLXRjJRlVvF6WBHX/ABL+HqeONNhe -2lSDVLXPkyP911PVGx27g9vxrwtvhN43W7+zf2HITnG8Sx7Pru3Yr6uoqaWKnTXK -jOVNSdzz34YfDf8A4Qm1mvL6SObVblQjmPlYkznaD3ycEn2Hpk+hUUVjObnLmkWk -krIKKKKkZ5R8UvhXP4ouxrWitGNR2BJoJDtE4HAIPZgOOeCAOmOfKrT4SeNru7Fu -2jtAM4Ms0qBF98gnP4Zr6sorpp4upCPKZypRbucv4D8GW3gnw+LCOQTXMreZcz4x -vfGMD2A4H5968f8A2lP+Qt4f/wCuE3/oS19EV87/ALSn/IW8P/8AXCb/ANCWuecn -J3ZaVlZHikf+rFWtDmktfEumzwEiWK7idMeocEVSVwsY9a7n4QeFJ/E/j2ykMZNl -p8i3Vy+OBtOVX6lgOPQH0rsxNSLpU4LdL9APr2iiiuIYVy/jfwFo/jvTFttRQx3E -WTb3UYG+In+YPcH9DzXUUUAfIPjz4U6z4Dtlvrm4trvT5JhDHNESG3EEjcp6cKeh -I969T/ZudT4Y1lARuF6pI9igx/I13fxP8NSeK/AGo6fbpvu0UT26jqXQ5wPcjK/j -Xz38HfHUXgrxRLBqTGPTL8CKdiP9U4J2uR6DJB9jntSA+tKKZDNFcQpNDIkkUihk -dGBVgehBHUU+mAyUSGFxEQshU7C3QHtmvlbUfC/xGbUbg3Vhrc85c75E3urH1BHB -H0r6sorajWdK9lcicOY+Sv8AhFfH/wD0Cte/74krd8G+G/iFb+LdNlW01a1RJ0Ms -lxvWPy8/MGzwRjPHevpiitnjJNW5UQqKXUKKKK4zYK+df2k3U6zoKA/MLeUkexYY -/ka+gdQ1Cz0qwmvr+5jt7WFd0ksjYCivkLx54lufiP4/M9jDI6SMlpYQ4+Yrn5eP -Ukk+2fakwNnwJ8FtX8Y6fa6vNeW9lpU5JV+XlYBipwvQcg9T+Br6S8LeFNJ8H6Mm -maTB5cQO55GOXlbuzHuf0HapfC+ip4c8L6Zo6EN9kt1jZh0ZsfMfxOT+Na1MAooo -oAKKKKACvD/il8FZNXvJ9e8Logu5SXubEkKJG7sh6AnuDwev19wooA+MrDxV448A -TNYQ3l/ppUnNrcR5Ue4RwR+IFa3/AAvHx/8A9BiL/wAA4f8A4mvrK4tre6j8u4gj -mT+7IgYfkap/8I/ov/QIsP8AwGT/AApWA+Wf+F4+P/8AoMRf+AcP/wATR/wvHx// -ANBiL/wDh/8Aia+pv+Ef0X/oEWH/AIDJ/hR/wj+i/wDQIsP/AAGT/CgD5Z/4Xj4/ -/wCgxF/4Bw//ABNH/C8fH/8A0GIv/AOH/wCJr6m/4R/Rf+gRYf8AgMn+FH/CP6L/ -ANAiw/8AAZP8KAPln/hePj//AKDEX/gHD/8AE0H44eP8f8hmP/wDh/8Aia+pv+Ef -0X/oEWH/AIDJ/hR/wj+jf9Aiw/8AAZP8KAPkKfUPG/xJvkt3l1HV5A3yxIv7tD64 -ACL9TivdvhX8IE8IOus60Y59ZK4jjTlLYHrg92xxnoOQPWvVYoYoIxHDGkaDoqKA -B+Ap9FgCiiimAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU -UAf/2YkCTgQTAQoAOBYhBGZwvbf0mL5d/KcIjoI4jz61d17VBQJbnSNPAhsDBQsJ -CAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEII4jz61d17VUhYP/iPZQiPAUtom/WhO -okjtLxURx/mKjkUm+bDqwtAOnSqFMSI5O2hhuOa9u1I7dtnTuYlb5dWdtq4Holzt -biK81lYb2UH74ykIy7/Kjm3c9ox0RL8XKi8aTzNlAuNE6n0+RtUmKRcEWptz+dMT -V6JCHeES6xf001vIshy3LfdA5RLQm3P0mRuQ8dg313OFZb9jQ/sYgB+uU4yZeJv/ -254tXnxX2FpKUNiJhA89CXXbs7vLFXbtluIeGqPj/CjAs7rPaYVUQ26+jraw1hbv -6t1OJuA81GGLJbxJKa4UoBg5jPB6uv2xRI1omGY9NH6UjwNQuNT408NEusBM9Ug5 -45NJLcjisWTrAynheEGU1qqkvYa3TXJa3z68/3XRL9EbiyHRWxUozfZ7TmCV+UYC -9xmT1cqaYn4brigMk7HDEF5DB+40yxkGpmRxVXTS5XO3HLTcJCyx6aM9PAclN689 -uDrX5pKllhLlUuvrBYjaJz6lg4OChLfp+2m5CWBADjIqE2Q84+Of1ZItQMn9CPWR -h9rAdMPC8F5RPirn1F+2WB7sZb8QhQSHM9GMGe2vya8Lyu9NjUVhyFig16bIQsw+ -frvQZ1q0pDai/sz+UVL5y2dZ+OnZkgNO3yJVA6PgJqDb/oZCTe20Jeznz3XTPTvQ -iruoviuQ9sddtS7rJLqNxzhpq3y0uQINBFudCJMBEACXy22ZobYUWarSEXhGOb5R -wjaT2g79JCW3Gpiz2yp6QWSmGLK3YpXdO2WU0CsFKKbWS8JN8iYOYEX2L+HMU3rh -alYm6/BFFmyRvIf2E7HNATctmxLMlszXnpaHWsMxXKer60/+l4CFYke+2Eo3KRku -BXrNCmVZR0gmKQRYLWBC4bmgEsprI1CcpqzQAluthN/rNIRAJCU0olG7xC+leS1H -8+2qyKIY0287kh1vlmWmeM9cBtAVfqgeNEgxEu6pR5MRRZfgh5UubZGdGitCPM/9 -uV36V12ZDxbCpOMocyL+yO3epTyO7mT5QPBUMuMmVz79LLgI8tJrOO9SgiGIQZbB -xuqZ81EFr3fwqocANzitL9tETmCRSdbPF8gBnIkqGS3BQ3FeDDYf4fNlYfroiADy -TSxn3gnwPxiWus51vnNS3FGKOTkfDZ/p918hpbditRKKdF9nb/sfXJOrppjg+7Op -GFbj8hGjCQN7M4t1qyCPWsOQxPgaywnVqZj/5yK5/DP7CtiSZW8YpLaKNwD5cv4m -0p+TKnkD9u5a011ih4bV99UqptTbcTVXJuzCzBZjQ+RETNuvuV5b13qeUKu2A9po -bsLSNZ6DF8Y81UzEp9DknBoQXy0k/RYj6ezmThnvQA/OsiW/sqABvT53OVMDlEsK -0e4IGjVn5E3+KD8lsgfypQARAQABiQI2BBgBCgAgFiEEZnC9t/SYvl38pwiOgjiP -PrV3XtUFAludCJMCGwwACgkQgjiPPrV3XtUJiBAAzTEzvSlHKk+8h7Ow+++jNQks -aGav6wPkrDzrUh4kdTvljPXL7fsMf2NArdvP5o9FMGbMHCI4/05ixhg8thPUAsCB -QzQTZgkazL1rtPZFsvhF17+KEIOX1LknkCemYzqTTdVsbfwiGJZiZsznerMj2gyc -Uaxvezb9gQkYhQHdR2+d13JxEDbegH6EU1TDklMPKN0GSpGAFGFi4WicUOBoo3Jx -vEl9GVhKx4mVBEVMNnsSehZtZmYAQU2N8Zox74KDcgf/P2qPufsb+MA9vzq5i4ij -Y7f7orhdu1FtZ/gARG+J87/YLq8SpYLJzgaNRs0Ii1BGywZosZpYbsvRc36oNnG4 -BlBa/qYLsCnf+Q7PknODYy0P2Oy6sHI367nZdfMf44Iwoqn5i25cA+7qUZXaxz/o -DN4059bMiRZ9dPVld4cXnkiMiOau4IslkTDJjMCQk0HYU2GxOrl8yR5DjMTlQx59 -Q9jue6fn5IUQeDKzs7og1YuCWXUOWKxDQzzsIXK1/sP/1WFOzHZOx36w5cnnrDN4 -1bh4oBT47H+/QJoWvSX7amFq5iojpOQ61JZT2zN5mDTSRkPJ/0e9l3Goqij785Nj -/YC6VqrHIXm4zN4QFZMEnK1kZwb9Oj9PkPO157GsazWyRhg7VJAd7wsfFkfpp2Uk -dr1dmG5Bf62Bsu3HBMm5Ag0EW50iKgEQAJpK6RgAa5R6T9fkE5IfbFl2YiIvFSpy -ItVl5LyXVH3NUOx/TKUI/xbdCiFqvE5mmJ6tdEFaXlm4fUfIElRCoqpIivGqFuDU -UXfKIg17Oi/T5RihglWVkX+gIVhw7Tf1HyNTyMzZ1LLMxxav/UpGUvypRZiDzOoa -11sMGiDmwFoJUhRfayDVhVVES8sZTQuqhLBQMSk2uK9v1jTu0pHqxaj7/2+994LP -47L+WrvV4SuW+Ze1OwF2OTnRRz1dgIKVaTxgEl+jVFDDlErpOejZCk5wI5Z4xz6e -ma6IB9hxRL10fxf5BF5bHejN07i04sC7Zct1y0YtUrV8ZFnRI2CQz+1UaCHRUuTk -jb/hOTNZH4aVy3EzDqRIWFVHuo8gJVNA9hiqSpa+9J/jVuYqbvf122rOYfWrJA1/ -/bCRx2eXxAnWeDw3xiqI9dUQs/BLQMt+K2lmDRghs/JpNsancruCdRUXjjEenuw3 -xtO2hSKC0SXsWSC7Ezu96jh/hbFh2JHL2EGjdxBrFYietAzhSDRsqlVr/VsoIfHi -JRPuzPYLDwGLBkBvJ5axAorg3WEYqISr4Jo87Z1ejR4WGjtCrjHntcLb2HbLBE+D -CFPl+uaZI7kQRAvqdlNOqb3wiRs2xdfdlwxQO6UDX2aMwVpLgzFGcCzLVqk3Bcx1 -3AzZZSGV7tgfABEBAAGJBGwEGAEKACAWIQRmcL239Ji+XfynCI6COI8+tXde1QUC -W50iKgIbAgJACRCCOI8+tXde1cF0IAQZAQoAHRYhBBA2bu60xXCfz82mk21GYzTz -C++LBQJbnSIqAAoJEG1GYzTzC++LY+MP/0uVqf7L/zDfMmu7939uIeax1WN7joFt -qHjx+gVqDR/9UfdQa4GK3gfmn7C6gmqypMlKlCIn1gS5y0KYSGQfsxX5zplBsV/+ -MZK6ZEfhIlTpZgrOmT03jGe78qQqAvK8XFBcmfLEV7WsmEl4IMEjHbg5QbbItQDj -0ls5tik9qXcCfITSBbf2mZ1HT+saBrHF1h15le8uz3WOS3ayHYvdGtitYMXqBS+N -yyncrCB5MsMpi1sFmGzNuOuYtmcG1PF2y+OVi+7teK8eaxX2Nc9qzgSBklahEKhj -cHY+vKm34SZuWsk9uKuBmSt06MClAdVc3yyK3YKsKx5mxOqrlZpv+UmMcevYXesc -ASSdWmX249LU9L78duHh0VQhxjv088Uoe7ZXIr11xvyCuusaJB+FNr1TS0v+EO97 -53IGAWTYwCmBYhNbLCKELbBQrQyX/4L8gv+L57nH/9lbr67QDX+YlfKy95cT1BUO -AxhnJfZpI7MKXOFuxXxWv0DV0SSJpXwpUbaZjd2rxmeV/70/P9AEc/K9wFFanuYr -ofqGnRbreswK4+v9M2MRGxRHzbWSGNw0cw3to4IZy6Vx8TBoFuVLuEkimZ7CEyHV -+LD+ht/2T2pPigtcox9JrGWmSM9Gw8AfsMfqhzRtsijgpy26YPekVs5uX1tbGDjw -PMEMKsZToQZcvCcP/AnXlckDRJ8h6qcl9eq5+aM600DPQlwXEPJJRI5kriIKizsn -kQNaWrIFM8EVn9Z5nW9/MqQGy/bQzwlSnTuYSWBN4H+MCsjrALEDHVrj865CUv8b -xha8DEcmK2bB22UwME0swn6cVlY8f+hk4hAKstqfWy0wNhMNY8zxj3l5n1q1dq/N -zG69HuWgPguSuB5t0coL7d8m7xGCPzzOUfQOwgd3as5pBmhMZUZuFQQH3skA40sm -GHY6DiuSDgexuujukgNOrRkWQfEjnFkzyhtKwu9q9Uga7LANmtU1MnCbfRdGCEub -XtUsYQtbJrmgoAi0YdL+1EtS+Ghmie0D4M384XUZDyWk6rOj0QFb8RiIprW/rYz2 -YOInvDDnyp1X31ES3Mz2Lijkyx4SlliP9KdgMWSwsjro5B4lgn5k867lxBTtxMXG -Sz4txwPw+mDym2syEA08kuSxLRuzb1oKWkhUsVhysRMb6/94enqqYMP3Tu1OK2pO -chmwA2QunI3ZQ97EOIKYsMhyKo8/4Fy2PV9hj8rCsbx/du2hSYdgaRwohsJXnZ1S -3PkbZuCnKuOFzXrnc94hx4DIuzrn+rL//rMvypJqZtucAHGX+zF7CMG/W4Bg3XI+ -wkUIobyFg5MX8Rmt9Iq7/Y6yJaPRyQxYJYfMZDs/LSptZxC8/Lm4x62AA0tp -=0xe2 ------END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/sudo-bot/template.js b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/sudo-bot/template.js deleted file mode 100644 index 03a44b3..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/scripts/sudo-bot/template.js +++ /dev/null @@ -1,89 +0,0 @@ -'use strict'; - -/** - * @param {Array} modifiedFiles The modified files - * @returns {string} The commit message - */ -const commitMessage = function(modifiedFiles) { - const nbrMySQLFiles = modifiedFiles.filter(file => file.match(/mysql-[a-z\-\.]+.json$/g)).length; - const nbrMariaDBFiles = modifiedFiles.filter(file => file.match(/mariadb-[a-z\-\.]+.json$/g)).length; - const nbrMergedData = modifiedFiles.filter(file => file.match(/merged-(slim|ultraslim|raw).(json|md|php)$/g)) - .length; - - const hasMySQLFiles = nbrMySQLFiles > 0; - const hasMariaDBFiles = nbrMariaDBFiles > 0; - const hasOtherFiles = nbrMySQLFiles + nbrMariaDBFiles + nbrMergedData !== modifiedFiles.length; - if (hasMariaDBFiles && hasMySQLFiles) { - return 'update: [MariaDB] && [MySQL] updates' + (hasOtherFiles ? ' and other changes' : ''); - } else if (hasMariaDBFiles && !hasMySQLFiles) { - return 'update: [MariaDB] updates' + (hasOtherFiles ? ' and other changes' : ''); - } else if (!hasMariaDBFiles && hasMySQLFiles) { - return 'update: [MySQL] updates' + (hasOtherFiles ? ' and other changes' : ''); - } - return 'update: 🤖 Some updates 🤖'; -}; - -/** - * @param {Array} modifiedFiles The modified files - * @returns {string} The pr message - */ -const prMessage = function(modifiedFiles) { - const nbrMySQLFiles = modifiedFiles.filter(file => file.match(/mysql-[a-z-]+.json$/g)).length; - const nbrMariaDBFiles = modifiedFiles.filter(file => file.match(/mariadb-[a-z-]+.json$/g)).length; - const nbrMergedData = modifiedFiles.filter(file => file.match(/merged-(slim|ultraslim|raw).(json|md|php)$/g)) - .length; - - const hasMySQLFiles = nbrMySQLFiles > 0; - const hasMariaDBFiles = nbrMariaDBFiles > 0; - const hasOtherFiles = nbrMySQLFiles + nbrMariaDBFiles + nbrMergedData !== modifiedFiles.length; - if (hasMariaDBFiles && hasMySQLFiles) { - return '🤖 [MariaDB] && [MySQL] updates' + (hasOtherFiles ? ' 🚨🚨' : ''); - } else if (hasMariaDBFiles && !hasMySQLFiles) { - return '🤖 [MariaDB] updates' + (hasOtherFiles ? ' 🚨🚨' : ''); - } else if (!hasMariaDBFiles && hasMySQLFiles) { - return '🤖 [MySQL] updates' + (hasOtherFiles ? ' 🚨🚨' : ''); - } - return '🤖 Some updates to review 🤖'; -}; - -/** - * @param {Array} modifiedFiles The modified files - * @returns {string} The pr content - */ -const prContent = function(modifiedFiles) { - let message = - 'Dear human 🌻, after running my task the following file' + - (modifiedFiles.length > 1 ? 's where updated:' : ' was updated:') + - '\n'; - message += modifiedFiles - .map(file => { - let emoji = '👽'; - if (file.match(/mysql-[a-z-]+.json$/g)) { - emoji = '🐬'; - } - if (file.match(/mariadb-[a-z-]+.json$/g)) { - emoji = '🐳'; - } - if (file.match(/merged-(slim|ultraslim|raw).(json|md|php)$/g)) { - emoji = '📦'; - } - return '- `' + file + '` ' + emoji + '\n'; - }) - .join(''); - return message; -}; - -/** - * @param {Array} modifiedFiles The modified files - * @returns {string} The pr branch - */ -const prBranch = function(modifiedFiles) { - return 'refs/heads/update/' + new Date().getTime(); -}; - -module.exports = { - commitMessage: commitMessage, - prMessage: prMessage, - prContent: prContent, - prBranch: prBranch, -}; diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/KBDocumentation.php b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/KBDocumentation.php deleted file mode 100644 index 958f1ad..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/KBDocumentation.php +++ /dev/null @@ -1,75 +0,0 @@ -url = $url; - if ($anchor !== null) { - $this->anchor = $anchor; - } - } - - /** - * Get the url - * - * @return string - */ - public function getUrl(): string - { - return $this->url; - } - - /** - * Get the anchor - * - * @return string|null - */ - public function getAnchor(): ?string - { - return $this->anchor; - } - - /** - * Used for json_encode function - * This can seem useless, do not remove it. - * - * @return array - */ - public function jsonSerialize(): array - { - $outObj = array(); - $outObj['url'] = $this->url; - if ($this->anchor !== null) { - $outObj['anchor'] = $this->anchor; - } - return $outObj; - } - -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/KBEntry.php b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/KBEntry.php deleted file mode 100644 index 7ff7e9c..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/KBEntry.php +++ /dev/null @@ -1,151 +0,0 @@ -name = $name; - if ($type !== null) { - $this->type = $type; - } - if ($dynamic !== null) { - $this->dynamic = $dynamic; - } - } - - /** - * Get the variable name - * - * @return string - */ - public function getName(): string - { - return $this->name; - } - - /** - * Is the variable dynamic - * - * @return bool|null - */ - public function isDynamic(): ?bool - { - return $this->dynamic; - } - - /** - * Get the variable type - * - * @return string|null - */ - public function getType(): ?string - { - return $this->type; - } - - /** - * Variable has documentations - * - * @return bool - */ - public function hasDocumentations(): bool - { - if ($this->docs === null) { - return false; - } else { - return count($this->docs) > 0; - } - } - - /** - * Get all documentations - * - * @return KBDocumentation[] - */ - public function getDocumentations(): array - { - return $this->docs; - } - - /** - * Add documentation link - * - * @param string $url The URL - * @param string|null $anchor The anchor - * @return KBDocumentation - */ - public function addDocumentation(string $url, ?string $anchor = null ): KBDocumentation - { - $this->url = $url; - if ($this->docs === null) { - $this->docs = array(); - } - $kbd = new KBDocumentation($url, $anchor); - $this->docs[] = $kbd; - return $kbd; - } - - /** - * Used for json_encode function - * This can seem useless, do not remove it. - * - * @return array - */ - public function jsonSerialize(): array - { - $outObj = array(); - $outObj['name'] = $this->name; - if ($this->type !== null) { - $outObj['type'] = $this->type; - } - if ($this->dynamic !== null) { - $outObj['dynamic'] = $this->dynamic; - } - if ($this->docs !== null) { - $outObj['docs'] = $this->docs; - } - return $outObj; - } - -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/KBException.php b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/KBException.php deleted file mode 100644 index 05eea91..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/KBException.php +++ /dev/null @@ -1,12 +0,0 @@ - li - const ulElementList = $(element) - .nextAll() - .not('p') - .first(); - if (ulElementList.find('li > strong').length === 0) { - return { id: null }; - } - ulElementList.find('li').each((i, elementDescr) => { - const valueKey = $(elementDescr); - const key = valueKey - .find('strong') - .text() - .toLowerCase() - .trim(); - const value = $(elementDescr) - .text() - .replace(valueKey.find('strong').text(), '') - .trim(); - switch (key) { - case 'dynamic:': - doc.dynamic = value.toLowerCase() === 'yes'; - break; - case 'scope:': - doc.scope = value - .toLowerCase() - .split(',') - .map(item => { - if (item.match(/session/)) { - return 'session'; - } else if (item.match(/global/)) { - return 'global'; - } else { - return item.trim(); - } - }); - doc.scope = doc.scope.filter(function(e) { - return e === 0 || e; - }); - break; - case 'type:': - doc.type = cleaner.cleanType(value.toLowerCase()); - break; - case 'data type:': - /* - * Default method,
  • has a child - * Example:
  • Data Type: numeric
  • - */ - let dataType = valueKey.find('code'); - if (dataType.length > 0) { - doc.type = cleaner.cleanType( - dataType - .first() - .text() - .toLowerCase() - .trim() - ); - } else { - /* - * Fallback method,
  • has text - * Example:
  • Data Type: boolean
  • - */ - let dataType = value.replace(/undefined/gi, ''); - dataType = dataType.toLowerCase().trim(); - if (dataType !== '') { - doc.type = cleaner.cleanType(dataType); - } else if (dataType === '') { - console.log('Empty datatype found for : ' + doc.id); - } else { - console.log('No datatype found for : ' + doc.id); - } - } - break; - case 'description:': - doc.type = cleaner.cleanType(value.toLowerCase()); - break; - case 'default value:': - case 'default:': - doc.default = cleaner.cleanDefault( - valueKey - .text() - .replace(valueKey.find('strong').text(), '') - .trim() - ); - break; - case 'valid values:': - doc.validValues = valueKey - .find('code') - .get() - .map(el => $(el).text()); - break; - case 'range:': - doc.range = valueKey - .find('code') - .get() - .map(el => $(el).text()); - if (doc.range.length === 1) { - // try x-y - doc.range = doc.range[0].split('-').map(item => item.trim()); - } - if (doc.range.length === 1) { - // try x to y - doc.range = doc.range[0].split('to').map(item => item.trim()); - } - if (doc.range[1] !== undefined) { - doc.range[1] = parseFloat(doc.range[1]); - } - if (doc.range.length === 1) { - // try x upwards - if (value.includes('upwards')) { - doc.range[1] = value; - } - } - // Could be oneday a float - doc.range = { - from: parseFloat(doc.range[0]), - to: doc.range[1], - }; - doc.range = cleaner.cleanRange(doc.range); - - break; - case 'commandline:': - if ( - typeof value === 'string' && - (value.toLowerCase() !== 'no' && - value.toLowerCase() !== 'none' && - value.toLowerCase() !== 'n/a' && - value.toLowerCase() !== 'no commandline option') - ) { - doc.cli = cleaner.cleanCli(value, true); - } - break; - default: - break; - } - }); - /* jshint +W083 */ - } catch (e) { - console.error(e); - console.log('Error at : #' + doc.id); - } - if (doc.type !== undefined) { - if (doc.type === 'numeric') { - doc.type = 'integer'; - } - } - return doc; -}; - -function parsePage($, cbSuccess) { - var anchors = []; - $('.anchored_heading').each(function(i, el) { - let doc = createDoc($, el); - if (doc.id && typeof doc.id === 'string') { - anchors.push(doc); - } - }); - cbSuccess(anchors); -} - -const KB_URL = 'https://mariadb.com/kb/en/library/documentation/'; - -const storageEngines = ['aria', 'myrocks', 'cassandra', 'galera-cluster', 'mroonga', 'myisam', 'tokudb', 'connect']; - -const systemVariables = ['xtradbinnodb-server', 'mariadb-audit-plugin', 'ssltls', 'performance-schema']; - -const custom = [ - { - url: 'columns-storage-engines-and-plugins/storage-engines/spider/spider-server-system-variables/', - name: 'spider-server-system-variables', - }, - { - url: 'semisynchronous-replication/', - name: 'semisynchronous-replication-system-variables', - }, - { - url: 'replication-and-binary-log-server-system-variables/', - name: 'replication-and-binary-log-server-system-variables', - }, - { - url: 'gtid/', - name: 'gtid-system-variables', - }, - { - url: 'replication/optimization-and-tuning/system-variables/server-system-variables/', - name: 'server-system-variables', - }, - { - url: 'system-versioned-tables/', - name: 'versioned-tables-system-variables', - }, -]; - -const status = [ - 'server', - 'galera-cluster', - 'aria-server', - 'cassandra', - 'mroonga', - 'spider-server', - 'sphinx', - 'tokudb', - 'xtradbinnodb-server', - 'replication-and-binary-log', - 'oqgraph-system-and', - 'thread-pool-system-and', - 'ssltls', - 'mariadb-audit-plugin', - 'semisynchronous-replication-plugin', -]; - -const pages = []; - -storageEngines.forEach(se => { - pages.push({ - url: KB_URL + 'columns-storage-engines-and-plugins/storage-engines/' + se + '/' + se + '-system-variables/', - name: se + '-system-variables', - }); -}); - -custom.forEach(cu => { - pages.push({ - url: KB_URL + cu.url, - name: cu.name, - }); -}); - -status.forEach(statusName => { - pages.push({ - url: KB_URL + statusName + '-status-variables/', - name: statusName + '-status-variables', - }); -}); - -systemVariables.forEach(systemVariableName => { - pages.push({ - url: KB_URL + systemVariableName + '-system-variables/', - name: systemVariableName + '-system-variables', - }); -}); - -module.exports = { - run: () => { - /*var pages = [ - { - url: 'http://7.2.local/Global%20Transaction%20ID%20-%20MariaDB%20Knowledge%20Base.html', - name: 'gtid-system-variables' - } - ]*/ - return common.processDataExtraction(pages, 'mariadb-', parsePage); - }, -}; diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/MySQL.js b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/MySQL.js deleted file mode 100644 index 99f4561..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/MySQL.js +++ /dev/null @@ -1,251 +0,0 @@ -'use strict'; - -const common = require(__dirname + '/common'); -const cleaner = require(__dirname + '/cleaner'); - -/** - * Complete a doc element with info found in table - * @param {HTMLTableRowElement[]} rows The table rows - * @param {Object} doc The doc object - */ -function completeDoc($, rows, doc) { - $(rows).each((i, elem) => { - let tds = $(elem).find('td'); // first is key and last is value - var name = tds - .first() - .text() - .toLowerCase() - .trim(); - var value = tds.last(); - switch (name) { - case 'dynamic': - doc.dynamic = - value - .text() - .toLowerCase() - .trim() === 'yes'; - break; - case 'name': - doc.name = value.text().trim(); - break; - case 'system variable': - // Do not overwrite the name - if (typeof doc.name === 'undefined') { - doc.name = value - .text() - .toLowerCase() - .trim(); - } - break; - case 'scope': - let scope = value.text().toLowerCase(); - if (scope === 'both') { - // found on mysql-cluster-options-variables.html - doc.scope = ['global', 'session']; - } else if (scope != '') { - doc.scope = scope.split(',').map(item => { - if (item.match(/session/)) { - return 'session'; - } else if (item.match(/global/)) { - return 'global'; - } else { - return item.trim(); - } - }); - } - if (doc.scope !== undefined) { - doc.scope = doc.scope.filter(function(e) { - return e === 0 || e; - }); - } - break; - case 'type': - let type = value - .text() - .toLowerCase() - .trim(); - if (type != '') { - doc.type = cleaner.cleanType(type); - } - break; - case 'default value': - case 'default, range': - doc.default = cleaner.cleanDefault(value.text().trim()); - break; - case 'valid values': - doc.validValues = $(value) - .find('code') - .get() - .map(el => $(el).text()); - break; - case 'minimum value': - if (doc.range == undefined) { - doc.range = {}; - } - doc.range.from = parseFloat(value.text().trim()); - break; - case 'maximum value': - if (doc.range == undefined) { - doc.range = {}; - } - doc.range.to = parseFloat(value.text().trim()); - break; - case 'command-line format': - doc.cli = cleaner.cleanCli(value.text().trim()); - break; - case 'command line': - if (typeof doc.cli !== 'string') { - doc.cli = - value - .text() - .toLowerCase() - .trim() === 'yes'; - } - break; - } - }); -} - -/** - * Create a doc element - * @param {Element} element The root element - * @returns object The doc object - */ -function createDoc($, element, doc) { - completeDoc($, $(element).find('tbody > tr'), doc); - if (doc.range !== undefined) { - doc.range = cleaner.cleanRange(doc.range); - } - - if (doc.name && doc.name.match(cleaner.regexCli)) { - delete doc.name; - } - - return doc; -} - -function parsePage($, cbSuccess) { - var anchors = []; - $('.informaltable, .table') - .filter(function(i, elem) { - return ( - $(elem) - .find('th') - .first() - .text() === 'Property' - ); - }) - .each(function(i, elem) { - let doc = { - id: $(elem) - .prevAll() - .find('a') - .filter(function(i, el) { - return typeof $(el).attr('name') === 'string' && typeof $(el).attr('class') === 'undefined'; - }) - .first() - .attr('name'), - }; - if (typeof doc.id !== 'string') { - doc.id = $(elem) - .prevAll() - .find('.link') - .first() - .attr('href') - .split('#')[1]; - } - createDoc($, elem, doc); - if (typeof doc.cli === 'boolean') { - doc.cli = $(elem) - .prevAll() - .find('.option') - .first() - .text(); - if (doc.cli === '') { - delete doc.cli; - } - } - if (!doc.name && doc.cli) { - var matches = doc.cli.match(cleaner.regexCli); - doc.name = matches[2].replace(/-/g, '_'); - } - anchors.push(doc); - }); - - cbSuccess(anchors); -} - -const KB_URL = 'https://dev.mysql.com/doc/refman/8.0/en/'; -const KB_URL57 = 'https://dev.mysql.com/doc/refman/5.7/en/'; - -const pages = [ - { - url: KB_URL + 'server-system-variables.html', - name: 'server-system-variables', - }, - { - url: KB_URL + 'innodb-parameters.html', - name: 'innodb-parameters', - }, - { - url: KB_URL + 'performance-schema-system-variables.html', - name: 'performance-schema-system-variables', - }, - { - url: KB_URL + 'x-plugin-options-system-variables.html', - name: 'x-plugin-options-system-variables', - }, - { - url: KB_URL + 'replication-options-binary-log.html', - name: 'replication-options-binary-log', - }, - { - url: KB_URL57 + 'replication-options-binary-log.html', - name: 'replication-options-binary-log_5.7', - }, - { - url: KB_URL + 'pluggable-authentication-system-variables.html', - name: 'pluggable-authentication-system-variables', - }, - { - url: KB_URL + 'audit-log-reference.html', - name: 'audit-log-reference', - }, - { - url: KB_URL + 'replication-options-gtids.html', - name: 'replication-options-gtids', - }, - { - url: KB_URL + 'replication-options-slave.html', - name: 'replication-options-slave', - }, - { - url: KB_URL + 'replication-options-master.html', - name: 'replication-options-master', - }, - { - url: KB_URL + 'replication-options.html', - name: 'replication-options', - }, - { - url: KB_URL57 + 'mysql-cluster-options-variables.html', - name: 'mysql-cluster-options-variables', - }, - { - url: KB_URL + 'server-options.html', - name: 'server-options', - }, - { - url: KB_URL + 'version-tokens-reference.html', - name: 'version-tokens-reference', - }, -]; - -module.exports = { - parsePage: parsePage, - createDoc: createDoc, - completeDoc: completeDoc, - run: () => { - return common.processDataExtraction(pages, 'mysql-', parsePage); - }, -}; diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/Search.php b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/Search.php deleted file mode 100644 index 12f8ded..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/Search.php +++ /dev/null @@ -1,167 +0,0 @@ -a)) { - foreach ($kbEntrys->a as $kbEntry) { - if ($type === Search::ANY) { - return Search::$data->urls[$kbEntry->u]."#".$kbEntry->a; - } elseif ($type === Search::MYSQL) { - if ($kbEntry->t === Search::MYSQL) { - return Search::$data->urls[$kbEntry->u]."#".$kbEntry->a; - } - } elseif ($type === Search::MARIADB) { - if ($kbEntry->t === Search::MARIADB) { - return Search::$data->urls[$kbEntry->u]."#".$kbEntry->a; - } - } - } - } - - throw new KBException("$name does not exist for this type of documentation !"); - } - - /** - * Get a variable - * - * @param string $name Name of variable - * @return stdClass - * @throws KBException - */ - public static function getVariable(string $name): stdClass - { - self::loadData(); - if (isset(Search::$data->vars->{$name})) { - return Search::$data->vars->{$name}; - } else { - throw new KBException("$name does not exist !"); - } - } - - /** - * get the type of the variable - * - * @param string $name Name of variable - * @return string - * @throws KBException - */ - public static function getVariableType(string $name): string - { - self::loadData(); - $kbEntry = self::getVariable($name); - if (isset($kbEntry->t)) { - return Search::$data->varTypes->{$kbEntry->t}; - } else { - throw new KBException("$name does have a known type !"); - } - } - - /** - * Return the list of static variables - * - * @return array - */ - public static function getStaticVariables(): array - { - return self::getVariablesWithDynamic(false); - } - - /** - * Return the list of dynamic variables - * - * @return array - */ - public static function getDynamicVariables(): array - { - return self::getVariablesWithDynamic(true); - } - - /** - * Return the list of variables having dynamic = $dynamic - * - * @param bool $dynamic dynamic=true/dynamic=false - * @return array - */ - public static function getVariablesWithDynamic(bool $dynamic): array - { - self::loadData(); - $staticVars = array(); - foreach (Search::$data->vars as $name => $var) { - if (isset($var->d)) { - if ($var->d === $dynamic) { - $staticVars[] = $name; - } - } - } - return $staticVars; - } - -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/SlimData.php b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/SlimData.php deleted file mode 100644 index fc7cd42..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/SlimData.php +++ /dev/null @@ -1,162 +0,0 @@ - - */ - private $types = array("MYSQL" => 1, "MARIADB" => 2); - - /** - * Types of variables - * - * @var array - */ - private $varTypes = array( - "string" => 1, - "boolean" => 2, - "integer" => 3, - "numeric" => 4, - "enumeration" => 5, - "set" => 6, - "directory name" => 7, - "file name" => 8, - "byte" => 9 - ); - - /** - * Create a slimData object - * - * @param float|null $version The version - * @param array|null $types The types of documentations - * @param array|null $varTypes The types of variables - */ - public function __construct( - ?float $version = null, - ?array $types = null, - ?array $varTypes = null - ) { - if ($version !== null) { - $this->version = $version; - } - - if ($types !== null) { - $this->types = $types; - } - - if ($varTypes !== null) { - $this->varTypes = $varTypes; - } - } - - /** - * Add a variable - * - * @param string $name The name - * @param string|null $type The type - * @param bool|null $dynamic Is dynamic - * @return KBEntry The newly created KBEntry - */ - public function addVariable(string $name, ?string $type, ?bool $dynamic): KBEntry - { - $kbe = new KBEntry($name, $type, $dynamic); - $this->vars[] = $kbe; - return $kbe; - } - - /** - * Used for json_encode function - * This can seem useless, do not remove it. - * - * @return array - */ - public function jsonSerialize(): array - { - $outObj = array(); - if (count($this->vars) > 0) { - $vars = new stdClass(); - foreach ($this->vars as $var) { - $variable = new stdClass(); - $variable->d = $var->isDynamic(); - if ($variable->d === null) { - unset($variable->d); - } - - if ($var->getType() !== null) { - if (isset($this->varTypes[$var->getType()]) === false) { - $this->varTypes[$var->getType()] = "".(count($this->varTypes) + 1); - } - - $variable->t = $this->varTypes[$var->getType()]; - } - - if ($var->hasDocumentations()) { - $variable->a = array(); - foreach ($var->getDocumentations() as $kbd) { - $entry = new stdClass(); - $entry->a = $kbd->getAnchor(); - if ($entry->a === null) { - unset($entry->a); - } - if (preg_match("!^(https|http)://mariadb.com!", $kbd->getUrl())) { - $entry->t = $this->types["MARIADB"]; - } elseif (preg_match("!^(https|http)://dev.mysql.com!", $kbd->getUrl())) { - $entry->t = $this->types["MYSQL"]; - } - if (isset($entry->t)) {// If has no valid type, skip. - //Do not allow other urls. - $keyIndex = array_search($kbd->getUrl(), $this->urls); - if ($keyIndex === false) { - $this->urls[] = $kbd->getUrl(); - } - $keyIndex = array_search($kbd->getUrl(), $this->urls); - $entry->u = $keyIndex; - - $variable->a[] = $entry; - } - } - } - - $vars->{$var->getName()} = $variable; - } - $outObj['vars'] = $vars; - } - $outObj['version'] = $this->version; - if (count($this->vars) > 0) { - $outObj['types'] = array_flip($this->types); - $outObj['varTypes'] = array_flip($this->varTypes); - $outObj['urls'] = $this->urls; - } - return $outObj; - } - -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/cleaner.js b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/cleaner.js deleted file mode 100644 index c15d51a..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/cleaner.js +++ /dev/null @@ -1,128 +0,0 @@ -'use strict'; - -const realTypes = [ - 'string', - 'boolean', - 'integer', - 'numeric', - 'enumeration', - 'set', - 'directory name', - 'file name', - 'byte', -]; - -/** - * Clean type using real types - * @param {String} type The type - * @return {String|undefined} The cleaned type - */ -const cleanType = function(type) { - if (realTypes.includes(type) === false && typeof type === 'string') { - if (type.match(/in bytes/i) || type.match(/number of bytes/i) || type.match(/size in mb/i)) { - type = 'byte'; - } else if ( - type.match(/number of/i) || - type.match(/size of/i) || - type.match(/in microseconds/i) || - type.match(/in seconds/i) - ) { - type = 'integer'; - } else if ( - type.match(/numeric (64-bit unsigned integer)/i) || - type.match(/numeric (32-bit unsigned integer)/i) - ) { - type = 'numeric'; - } else { - type = undefined; - } - } - return type; -}; - -const regexCli = /([-]{2})([0-9a-z-_]+)/i; - -/** - * Clean cli argument - * @param {String} cli The command line string - * @param {boolean} skipRegex Skip regex check - * @returns {String} The cleaned cli - */ -const cleanCli = function(cli, skipRegex = false) { - if (typeof cli === 'string') { - if (cli.match(//i) || cli.match(/<\/code\>/i)) { - cli = cli.replace(//gi, ''); - cli = cli.replace(/<\/code\>/gi, ''); - cli = cli.replace(/\>/gi, ''); - cli = cli.replace(/ cleanTextDefault(el.trim())) - .join(', '); -}; - -/** - * Clean text of a default value - * @param {String} defaultTextValue The default text value - * @returns {String} The same or an alternative text - */ -const cleanTextDefault = function(defaultTextValue) { - if (defaultTextValue === 'Autosized (see description)') { - defaultTextValue = '(autosized)'; - } - if (defaultTextValue.indexOf('Based on the number of processors') !== -1) { - defaultTextValue = '(based on the number of processors)'; - } - if (defaultTextValue === 'The MariaDB data directory') { - defaultTextValue = '(the MariaDB data directory)'; - } - if (defaultTextValue.match(/-1 \(signifies (autoscaling); do not assign this literal value\)/g)) { - defaultTextValue = '(-1 signifies autoscaling; do not use -1)'; - } - if (defaultTextValue.match(/-1 \(signifies (autosizing); do not assign this literal value\)/g)) { - defaultTextValue = '(-1 signifies autosizing; do not use -1)'; - } - return defaultTextValue; -}; - -module.exports = { - regexCli: regexCli, - cleanType: cleanType, - cleanCli: cleanCli, - cleanRange: cleanRange, - cleanDefault: cleanDefault, -}; diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/common.js b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/common.js deleted file mode 100644 index d9274dc..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/common.js +++ /dev/null @@ -1,113 +0,0 @@ -'use strict'; - -const fs = require('fs'); -const Crawler = require('crawler'); -const path = require('path'); - -/** - * Sort the object keys - * @see https://stackoverflow.com/a/48112249/5155484 - * @param {Object} obj The object - * @param {Function} arraySorter The sorter callback - */ -const sortObject = function(obj, arraySorter) { - if (typeof obj !== 'object') { - return obj; - } - if (Array.isArray(obj)) { - if (arraySorter) { - obj.sort(arraySorter); - } - for (var i = 0; i < obj.length; i++) { - obj[i] = sortObject(obj[i], arraySorter); - } - return obj; - } - var temp = {}; - var keys = []; - for (var key in obj) { - keys.push(key); - } - keys.sort(); - for (var index in keys) { - temp[keys[index]] = sortObject(obj[keys[index]], arraySorter); - } - return temp; -}; - -const writeJSON = function(filename, data, cbSuccess = null) { - fs.writeFile(filename, JSON.stringify(sortObject(data), null, 2) + '\n', function(err) { - if (err) { - return console.log(err); - } else { - if (cbSuccess !== null) { - cbSuccess(); - } - } - }); -}; - -const readJSON = function(filename, callbackSuccess) { - fs.readFile(filename, 'utf8', function(err, data) { - if (err) { - return console.log(err); - } - callbackSuccess(JSON.parse(data), filename); - }); -}; - -const listDirectory = function(dirname, callbackSuccess) { - fs.readdir(dirname, (err, files) => { - if (err) { - return console.log(err); - } - callbackSuccess(files, dirname); - }); -}; - -const writePage = function(filePrefix, name, url, data, onWriteSuccess) { - let pageKB = { - url: url, - name: name, - data: data, - }; - writeJSON(path.join(__dirname, '../', 'data', filePrefix + pageKB.name + '.json'), pageKB, onWriteSuccess); -}; - -const processDataExtraction = function(pages, filePrefix, parsePage) { - return new Promise(resolve => { - var nbrPagesProcessed = 0; - var crawler = new Crawler({ - maxConnections: 1, - // This will be called for each crawled page - callback: function(error, res, done) { - if (error) { - console.log(error); - } else { - console.log('URL : ' + res.options.url); - parsePage(res.$, anchors => { - writePage(filePrefix, res.options.name, res.options.url, anchors, () => { - nbrPagesProcessed++; - if (nbrPagesProcessed === pages.length) { - resolve(); - } - }); - }); - } - done(); - }, - }); - crawler.queue( - pages.map(page => { - return { uri: page.url, name: page.name, url: page.url }; - }) - ); - }); -}; - -module.exports = { - processDataExtraction: processDataExtraction, - listDirectory: listDirectory, - readJSON: readJSON, - writeJSON: writeJSON, -}; diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/index.js b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/index.js deleted file mode 100644 index e0308f1..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/index.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; -const MariaDB = require('./MariaDB.js'); -const MySQL = require('./MySQL.js'); - -console.log('Run build...'); - -Promise.all([MariaDB.run(), MySQL.run()]) - .then(() => { - console.log('All done.'); - }) - .then(() => { - console.log('End !'); - }); diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/merge.php b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/merge.php deleted file mode 100644 index 471cab1..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/merge.php +++ /dev/null @@ -1,472 +0,0 @@ -from); - $cacheHasFrom = isset($cache->from); - $currentHasTo = isset($current->to); - $cacheHasTo = isset($cache->to); - if ($currentHasFrom === false && $cacheHasFrom === true) { - $current->from = $cache->from; - if (JSONcompare($cache, $current)) { - $newData->$key = $current; - if (JSONcompare($current, $cache)) { - $nbrConflictsSolved++; - } else { - fixRange($current, $cache); - } - } - } elseif ($currentHasFrom === true && $cacheHasFrom === false) { - $cache->from = $current->from; - if (JSONcompare($cache, $current)) { - $newData->$key = $cache; - if (JSONcompare($current, $cache)) { - $nbrConflictsSolved++; - } else { - fixRange($current, $cache); - } - } - } elseif ($currentHasTo === false && $cacheHasTo === true) { - $current->to = $cache->to; - if (JSONcompare($cache, $current)) { - $newData->$key = $current; - if (JSONcompare($current, $cache)) { - $nbrConflictsSolved++; - } else { - fixRange($current, $cache); - } - } - } elseif ($currentHasTo === true && $cacheHasTo === false) { - $cache->to = $current->to; - if (JSONcompare($cache, $current)) { - $newData->$key = $cache; - if (JSONcompare($current, $cache)) { - $nbrConflictsSolved++; - } else { - fixRange($current, $cache); - } - } - } elseif (( $currentHasFrom === true && $currentHasFrom === true ) - && ( $cache->from === $current->from ) - ) { - $onlyFrom = new stdClass(); - $onlyFrom->from = $current->from; - $newData->$key = $onlyFrom; - $nbrConflictsSolved++; - echo '[WARN] conflict range to - '.json_encode($cache).' - '.json_encode($current).PHP_EOL; - } else { - echo '[ERROR] conflict range - '.json_encode($cache).' - '.json_encode($current).PHP_EOL; - } -} - -$variables = array(); - -$nbr = 0; -$nbrConflicts = 0; -$nbrConflictsSolved = 0; -foreach ($files as $file) { - $fileData = json_decode(file_get_contents($file)); - if (isset($fileData->data) === false) { - continue; - } else { - $data = $fileData->data; - } - - foreach ($data as $doc) { - $identifier = $doc->name; - if (isset($identifier)) { - if (isset($variables[$identifier]) === false) { - if (isset($doc->ids) === false) { - $doc->ids = array(); - } - $variables[$identifier] = $doc; - $kbEntry = new stdClass(); - $kbEntry->anchor = $doc->id; - $kbEntry->url = $fileData->url; - $doc->ids[] = $kbEntry; - unset($doc->id); - } else { - if (isset($doc->ids) === false) { - $doc->ids = array(); - } - $kbEntry = new stdClass(); - $kbEntry->anchor = $doc->id; - $kbEntry->url = $fileData->url; - $doc->ids[] = $kbEntry; - unset($doc->id); - //echo $identifier." duplicate ! in ".str_replace($dataDir, "", $file).PHP_EOL; - $newData = new stdClass(); - foreach ((array) $doc as $key => $val) { - if (isset($variables[$identifier]->$key)) { - $cacheValue = $variables[$identifier]->$key; - $docValue = $doc->$key; - if (( strtoupper(json_encode($cacheValue)) === strtoupper(json_encode($docValue))) - && ( json_encode($cacheValue) !== json_encode($docValue)) - ) { - $nbrConflicts++; - $nbrConflictsSolved++; - //echo 'upper conflict '.$key.' - '.json_encode($cacheValue).' - '.json_encode($docValue).PHP_EOL; - $docValue = strtoupper(json_encode($docValue)); - } elseif (json_encode($cacheValue) !== json_encode($docValue)) { - $nbrConflicts++; - if ($key === "type") { - $realTypes = array( - "string", - "boolean", - "integer", - "numeric", - "enumeration", - "set", - "directory name", - "file name", - "byte" - ); - if (in_array($cacheValue, $realTypes)// original - && in_array($docValue, $realTypes) === false// dupe - ) {//original type valid - echo 'original type valid : '.$cacheValue.PHP_EOL; - } elseif (in_array($cacheValue, $realTypes) === false// original - && in_array($docValue, $realTypes)// dupe - ) {// dupe type valid - $newData->$key = $docValue; - //echo 'dupe type valid : '.$docValue.PHP_EOL; - $nbrConflictsSolved++; - } else { - if (( json_encode($cacheValue) === '"numeric"' - && json_encode($docValue) === '"integer"') - || ( json_encode($cacheValue) === '"integer"' - && json_encode($docValue) === '"numeric"') - ) {// numeric vs integer - //echo "integer wins !".PHP_EOL; - $newData->$key = "integer"; - $nbrConflictsSolved++; - } else { - echo 'type conflict : '.json_encode($cacheValue).' - '.json_encode($docValue).PHP_EOL; - } - } - } elseif ($key === "ids") { - /*if (isset($newData->ids) === false) { - $newData->ids = array(); - }*/ - $newData->ids = array_merge($cacheValue, $docValue); - /*$source = array("_", "option-mysqld-", "sysvar-", ); - $destination = array("-", "",""); - if (// Replace prefix to see if same id - str_replace($source, $destination, $docValue) - === - str_replace($source, $destination, $cacheValue) - ) { - $newData->$key = str_replace($source, $destination, $docValue); - $nbrConflictsSolved++;// TODO: check if good idea - } else { - echo '[ERROR] conflict id : ' - .json_encode($cacheValue) - .' - ' - .json_encode($docValue) - .' - ' - .str_replace($source, $destination, $docValue) - .' - ' - .str_replace($source, $destination, $cacheValue) - .PHP_EOL; - }*/ - } elseif ($key === "default") { - $originalValues = array("on", "off", "ON", "OFF", "true", "false", "TRUE", "FALSE"); - $destinationValues = array("1", "0", "1", "0", "1", "0", "1", "0"); - $docValue = str_replace($originalValues, $destinationValues, $docValue); - $cacheValue = str_replace($originalValues, $destinationValues, $cacheValue); - if ($docValue === $cacheValue) { - $newData->$key = $docValue; - $nbrConflictsSolved++; - } else { - if (is_array($cacheValue) === false - && is_array($docValue) === false - ) { - if (floatval($cacheValue) === floatval($docValue)) { - $newData->$key = $docValue; - $nbrConflictsSolved++; - } else { - echo '[ERROR] conflict default, not array : '.json_encode($cacheValue).' - '.json_encode($docValue).PHP_EOL; - } - } else { - echo '[ERROR] conflict default : '.json_encode($cacheValue).' - '.json_encode($docValue).PHP_EOL; - } - } - } elseif ($key === "validValues") { - if (is_array($cacheValue) === false) { - $cacheValue = array($cacheValue); - } - if (is_array($docValue) === false) { - $docValue = array($docValue); - } - $intersecValidValues = array_intersect($docValue, $cacheValue); - if (count($intersecValidValues) === count($docValue) - && count($intersecValidValues) === count($cacheValue) - ) {// No variables were lost in process - $newData->$key = $intersecValidValues; - $nbrConflictsSolved++; - } elseif (array_values(array_diff($docValue, $cacheValue)) === array("32768","65536") - ) {// Missing translation (in bytes) for 32k and 64k - $intersecValidValues[] = "32768"; - $intersecValidValues[] = "65536"; - $newData->$key = array_values($intersecValidValues); - $nbrConflictsSolved++; - } elseif (strtoupper(json_encode(ksort($docValue))) === strtoupper(json_encode(ksort($cacheValue))) - ) {// uppercase / lowercase - ksort($cacheValue); - $newData->$key = json_decode(json_encode($cacheValue)); - $nbrConflictsSolved++; - } else { - echo '[ERROR] conflict validValues : ' - .json_encode($cacheValue) - .' - ' - .json_encode($docValue) - .' - ' - .json_encode($intersecValidValues) - .' - ' - .json_encode(array_values(array_diff($docValue, $cacheValue))).PHP_EOL; - } - } elseif ($key === "cli") { - $replaceSource = array("file", "dir_name", "-- ", "_"); - $replaceDest = array("path", "path", "--", "-"); - $replacedDocValue = str_replace($replaceSource, $replaceDest, $docValue); - $replacedCacheValue = str_replace($replaceSource, $replaceDest, $cacheValue); - if (str_replace($replaceSource, $replaceDest, $docValue) === str_replace($replaceSource, $replaceDest, $cacheValue) - ) {//Try replacements - $newData->$key = str_replace($replaceSource, $replaceDest, $docValue); - $nbrConflictsSolved++; - } elseif (str_replace("--", "", $docValue) === str_replace("--", "", $cacheValue) - ) {// Doc not well formated, missing -- before cli command - $newData->$key = "--".str_replace("--", "", $docValue); - $nbrConflictsSolved++; - } elseif (strlen(str_replace(str_replace("#", "", $docValue), "", $cacheValue)) !== strlen($cacheValue) - ) {// More precise doc, value hint, eg: --blablabla={0|1} - $newData->$key = $cacheValue; - $nbrConflictsSolved++; - } elseif (strlen( - str_replace( - str_replace( - array("#"), - array(""), - $replacedDocValue - ), "", $replacedCacheValue - ) - ) !== strlen($replacedCacheValue) - ) {// More precise doc, value hint, eg: --blablabla={0|1} using replaced values - $newData->$key = $replacedCacheValue; - $nbrConflictsSolved++; - } elseif (strlen( - str_replace( - str_replace( - array("#"), - array(""), - $replacedCacheValue - ), "", $replacedDocValue - ) - ) !== strlen($replacedDocValue) - ) {// More precise doc, value hint, eg: --blablabla={0|1} using replaced values, reversed: cache/doc - $newData->$key = $replacedDocValue; - $nbrConflictsSolved++; - } elseif (strlen(str_replace(str_replace(array("#"), array(""), $docValue), "", $cacheValue)) !== strlen($cacheValue) - ) {// More precise doc, value hint, eg: --blablabla={0|1} - $newData->$key = $cacheValue; - $nbrConflictsSolved++; - } elseif (strlen(str_replace($cacheValue, "", $docValue)) !== strlen($docValue) - ) {// contained in cache - $newData->$key = $docValue; - $nbrConflictsSolved++; - } elseif (strlen(str_replace($docValue, "", $cacheValue)) !== strlen($cacheValue) - ) {// contained in conflict - $newData->$key = $cacheValue; - $nbrConflictsSolved++; - } else { - echo '[ERROR] conflict cli : cacheValue: ' - .json_encode($cacheValue) - .' - docValue: ' - .json_encode($docValue) - .' - docValue: ' - .str_replace($replaceSource, $replaceDest, $docValue) - .' - cacheValue: ' - .str_replace($replaceSource, $replaceDest, $cacheValue) - .PHP_EOL; - } - } elseif ($key === "range") { - $current = $docValue; - $cache = $cacheValue; - fixRange($current, $cache); - } else { - echo '[ERROR] conflict '.$key.' + '.$identifier.' - '.json_encode($cacheValue).' - '.json_encode($docValue).PHP_EOL; - } - } else { - $newData->$key = $val; - } - } else { - $newData->$key = $val; - } - } - //print_r($newData); - $variables[$identifier] = $newData; - } - } - } - $nbr += count($data); -} -echo "NBR: ".$nbr.PHP_EOL; -echo "NBR_UNIQUE: ".count($variables).PHP_EOL; -echo "NBR_CONFLICTS: ".$nbrConflicts.PHP_EOL; -echo "NBR_CONFLICTS_SOLVED: ".$nbrConflictsSolved.PHP_EOL; -echo "NBR_CONFLICTS_REMAINING: ".($nbrConflicts - $nbrConflictsSolved).PHP_EOL; - -$fileOut = new stdClass(); -$fileOut->vars = json_decode(json_encode($variables)); -$fileOut->version = 1.0; - -$md = "# Variables and options".PHP_EOL; -foreach ($fileOut->vars as $id => $doc) { - //$md .= "## ".$doc->url.PHP_EOL; - $md .= "## ".$doc->name.PHP_EOL; - $md .= "|name|value|".PHP_EOL; - $md .= "|----|-----|".PHP_EOL; - if (isset($doc->name)) { - $md .= "|Name|`$doc->name`|".PHP_EOL; - } - if (isset($doc->cli)) { - $md .= "|Command line|`$doc->cli`|".PHP_EOL; - } - if (isset($doc->type)) { - $md .= "|Type of variable|`$doc->type`|".PHP_EOL; - } - if (isset($doc->scope)) { - $md .= "|Scope|`".implode("`, `", $doc->scope)."`|".PHP_EOL; - } - if (isset($doc->default)) { - $md .= "|Default value|`$doc->default`|".PHP_EOL; - } - if (isset($doc->dynamic)) { - $md .= "|Dynamic|`".( ($doc->dynamic) ? 'true' : 'false')."`|".PHP_EOL; - } - if (empty($doc->validValues) === false) { - $md .= "|Valid value(s)|`".implode("`, `", $doc->validValues)."`|".PHP_EOL; - } - if (isset($doc->range)) { - $r = ''; - if (isset($doc->range->from)) { - $r .= "from: `".$doc->range->from."`"; - } - - if (isset($doc->range->to)) { - if (isset($doc->range->from)) { - $r .= " "; - } - $r .= "to: `".$doc->range->to."`"; - } - $md .= "|Range|$r|".PHP_EOL; - } - $md .= PHP_EOL; - $md .= "### Documentation(s)".PHP_EOL; - $md .= "|source|anchor name|".PHP_EOL; - $md .= "|------|----|".PHP_EOL; - foreach ($doc->ids as &$kbEntry) { - $matchs = array(); - preg_match("/:\/\/([a-z.]+)/i", $kbEntry->url, $matchs); - $md .= "|$matchs[1]|[$kbEntry->anchor]($kbEntry->url#$kbEntry->anchor)|".PHP_EOL; - } - $md .= PHP_EOL; -} - -file_put_contents(__DIR__."/../dist/merged-raw.md", $md.PHP_EOL); - -file_put_contents(__DIR__."/../dist/merged-raw.json", json_encode($fileOut, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES).PHP_EOL); - -$fileOut->urls = array(); - -foreach ($fileOut->vars as $id => $doc) { - foreach ($doc->ids as &$kbEntry) { - $urlId = array_search($kbEntry->url, $fileOut->urls, true); - if ($urlId === false) { - $urlId = array_push($fileOut->urls, $kbEntry->url); - } - $kbEntry->url = $urlId; - $kbEntry = "$urlId#$kbEntry->anchor"; - } -} -$fileOut->version = 1.0; -file_put_contents(__DIR__."/../dist/merged-slim.json", json_encode($fileOut, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES).PHP_EOL); - -$fileOut->vars = json_decode(json_encode($variables)); -$fileOut->types = array( "MYSQL" => 1, "MARIADB" => 2 ); -$fileOut->varTypes = array( - "string" => 1, - "boolean" => 2, - "integer" => 3, - "numeric" => 4, - "enumeration" => 5, - "set" => 6, - "directory name" => 7, - "file name" => 8, - "byte" => 9 -); -foreach ($fileOut->vars as $id => &$doc) { - $data = new stdClass(); - if (isset($doc->dynamic)) { - $data->d = $doc->dynamic; - } - if (isset($doc->type)) { - $data->t = $fileOut->varTypes[$doc->type]; - } - $data->a = array(); - foreach ($doc->ids as &$kbEntry) { - $urlId = array_search($kbEntry->url, $fileOut->urls, true); - if ($urlId === false) { - $urlId = array_push($fileOut->urls, $kbEntry->url); - } - $kbEntryMin = new stdClass(); - $kbEntryMin->a = $kbEntry->anchor; - - $kbEntryMin->u = $urlId; - if (preg_match("/mysql\.com/", $kbEntry->url)) { - $kbEntryMin->t = $fileOut->types["MYSQL"]; - } elseif (preg_match("/mariadb\.com/", $kbEntry->url)) { - $kbEntryMin->t = $fileOut->types["MARIADB"]; - } - $data->a[] = $kbEntryMin; - } - $doc = $data; -} -$fileOut->types = array_flip($fileOut->types); -$fileOut->varTypes = array_flip($fileOut->varTypes); -$fileOut->version = 1.0; -file_put_contents(__DIR__."/../dist/merged-ultraslim.json", json_encode($fileOut, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES).PHP_EOL); - -$content = '"), - $content -); - -file_put_contents(__DIR__."/../dist/merged-ultraslim.php", $content); -echo "Files merged !".PHP_EOL; diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/DataTest.php b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/DataTest.php deleted file mode 100644 index c12f576..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/DataTest.php +++ /dev/null @@ -1,74 +0,0 @@ -setRemoteRefProvider(new RefProvider()); - $schema = Schema::import($id, $options); - $schema->in($contents); - return true;// No exception occured - } - - /** - * test files - * - * @return void - */ - public function testFileSample(): void - { - $slimDataTestData = json_decode((string) file_get_contents(__DIR__."/data/ultraSlimDataTestWithVariables.json")); - $this->assertTrue(self::validate($slimDataTestData, "urn:williamdes:mariadb-mysql-kbs:ultraslimdata")); - } - - /** - * test slim data - * - * @return void - */ - public function testFileSlim(): void - { - $slimData = json_decode((string) file_get_contents(__DIR__."/../dist/merged-slim.json")); - $this->assertTrue(self::validate($slimData, "urn:williamdes:mariadb-mysql-kbs:slimdata")); - } - - /** - * test ultra slim data - * - * @return void - */ - public function testFileUltraSlim(): void - { - $slimData = json_decode((string) file_get_contents(__DIR__."/../dist/merged-ultraslim.json")); - $this->assertTrue(self::validate($slimData, "urn:williamdes:mariadb-mysql-kbs:ultraslimdata")); - } - - /** - * test ultra slim data - * - * @return void - */ - public function testFileRaw(): void - { - $slimData = json_decode((string) file_get_contents(__DIR__."/../dist/merged-raw.json")); - $this->assertTrue(self::validate($slimData, "urn:williamdes:mariadb-mysql-kbs:rawdata")); - } - -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/RefProvider.php b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/RefProvider.php deleted file mode 100644 index 50b25cc..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/RefProvider.php +++ /dev/null @@ -1,50 +0,0 @@ -{'$id'}) && $schema !== null) { - $this->urnSchemas[$schema->{'$id'}] = $schema; - } - } - } - } - - /** - * @param string $url The file url - * @return \stdClass|false json_decode of $url resource content - */ - public function getSchemaData($url) - { - if (isset($this->urnSchemas[$url])) {// Handle urn: urls - return $this->urnSchemas[$url]; - } elseif (is_file($url)) {// Handle file - return json_decode((string) file_get_contents($url)); - } else {// Handle URL - return json_decode((string) file_get_contents(rawurldecode($url))); - } - } - -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/SearchTest.php b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/SearchTest.php deleted file mode 100644 index cc15ac9..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/SearchTest.php +++ /dev/null @@ -1,178 +0,0 @@ -addVariable("variable-1", "boolean", true); - $sd->addVariable("variable-2", null, null); - $sd->addVariable("variable-3", null, true); - $variable4 = $sd->addVariable("variable-4", null, false); - $variable4->addDocumentation("https://mariadb.com/testurl/for/variable/4", "myanchor"); - $variable4->addDocumentation("https://dev.mysql.com/testurl_for-variable/4", "my_anchor"); - Search::loadTestData($sd); - } - - /** - * test get by name - * - * @return void - */ - public function testGetByName(): void - { - $found = Search::getByName("variable-4"); - $this->assertEquals("https://mariadb.com/testurl/for/variable/4#myanchor", $found); - } - - /** - * test get by name for MySQL - * - * @return void - */ - public function testGetByNameMYSQL(): void - { - $found = Search::getByName("variable-4", Search::MYSQL); - $this->assertEquals("https://dev.mysql.com/testurl_for-variable/4#my_anchor", $found); - } - - /** - * test get by name for MARIADB - * - * @return void - */ - public function testGetByNameMARIADB(): void - { - $found = Search::getByName("variable-4", Search::MARIADB); - $this->assertEquals("https://mariadb.com/testurl/for/variable/4#myanchor", $found); - } - - /** - * test get by name - * - * - * @return void - */ - public function testException(): void - { - $this->expectException(KBException::class); - $this->expectExceptionCode(0); - $this->expectExceptionMessageRegExp('/(.+) does not exist for this type of documentation !/'); - Search::getByName("variable-3", Search::MARIADB); - } - - /** - * test get by name not found variable - * - * - * @return void - */ - public function testExceptionNoFoundGetVariableType(): void - { - $this->expectException(KBException::class); - $this->expectExceptionCode(0); - $this->expectExceptionMessageRegExp('/(.+) does not exist !/'); - Search::getVariableType("acbdefghi0202"); - } - - /** - * test get by name not found variable - * - * - * @return void - */ - public function testExceptionNoFound(): void - { - $this->expectException(KBException::class); - $this->expectExceptionCode(0); - $this->expectExceptionMessageRegExp('/(.+) does not exist !/'); - Search::getByName("acbdefghi0202", Search::MARIADB); - } - - /** - * test get by name not found variable - * - * - * @return void - */ - public function testExceptionNoFoundGetVariable(): void - { - $this->expectException(KBException::class); - $this->expectExceptionCode(0); - $this->expectExceptionMessageRegExp('/(.+) does not exist !/'); - Search::getVariable("acbdefghi0202"); - } - - /** - * test load data fail - * - * @runInSeparateProcess - * - * @return void - */ - public function testExceptionLoadData(): void - { - $this->expectException(KBException::class); - $this->expectExceptionCode(0); - $this->expectExceptionMessageRegExp('/(.+) does not exist !/'); - Search::$DATA_DIR = "."; - Search::$loaded = false; - Search::loadData(); - } - - /** - * test get variables with dynamic status - * - * @return void - */ - public function testGetVariablesWithDynamic(): void - { - $dynamic = Search::getVariablesWithDynamic(true); - $this->assertEquals($dynamic, Search::getDynamicVariables()); - $static = Search::getVariablesWithDynamic(false); - $this->assertEquals($static, Search::getStaticVariables()); - $this->assertEquals(2, count($dynamic)); - $this->assertEquals(1, count($static)); - $common = \array_intersect($dynamic, $static); - $this->assertEquals(0, count($common));// Impossible to be dynamic and not - } - - /** - * test Exception get variable type has no type - * - * - * @return void - */ - public function testExceptionGetVariableType(): void - { - $this->expectException(KBException::class); - $this->expectExceptionCode(0); - $this->expectExceptionMessageRegExp('/(.+) does have a known type !/'); - Search::getVariableType("variable-2"); - } - - /** - * test get variable type - * - * @return void - */ - public function testGetVariableType(): void - { - $type = Search::getVariableType("variable-1"); - $this->assertEquals("boolean", $type); - } - -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/SlimDataTest.php b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/SlimDataTest.php deleted file mode 100644 index 30a1d18..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/SlimDataTest.php +++ /dev/null @@ -1,59 +0,0 @@ -assertInstanceOf(SlimData::class, $slimData); - return $slimData; - } - - /** - * Test json_encode empty object - * - * @param SlimData $slimData SlimData instance - * @depends testCreateInstance - * @return void - */ - public function testToJsonEmpty(SlimData $slimData): void - { - $this->assertEquals('{"version":1}', json_encode($slimData)); - } - - /** - * Test json_encode with variables - * - * @param SlimData $slimData SlimData instance - * @depends testCreateInstance - * @return void - */ - public function testToJsonWithVariables(SlimData $slimData): void - { - $slimData->addVariable("Test_var", "boolean", true); - $slimData->addVariable("another-variable", "string", false); - $kbe = $slimData->addVariable("doc-variable_ok", "integer", true); - $kbe->addDocumentation("https://example.org/williamdes/mariadb-mysql-kbs", "a_doc-variable_ok"); - $kbe->addDocumentation("https://example.org/williamdes/mariadb-mysql-kbs", "a_href_ok"); - $kbe->addDocumentation("https://example.org/williamdes/mariadb-mysql-kbs/_doc-variable_ok"); - $kbe->addDocumentation("https://dev.mysql.com/"); - $kbe->addDocumentation("https://mariadb.com/"); - $kbe->addDocumentation("https://mariadb.com/", "anchorname"); - $this->assertEquals( - file_get_contents(__DIR__."/data/ultraSlimDataTestWithVariables.json"), - json_encode($slimData, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT) - ); - } - -} diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/cleaner.js b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/cleaner.js deleted file mode 100644 index 007207e..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/cleaner.js +++ /dev/null @@ -1,193 +0,0 @@ -'use strict'; - -const expect = require('chai').expect; -const cleaner = require(__dirname + '/../src/cleaner'); - -module.exports = function() { - suite('cleaner', function() { - test('clean cli html code', function(done) { - const cli = cleaner.cleanCli('--test-argument'); - expect(cli).to.equal('--test-argument'); - done(); - }); - test('clean cli html code not closed', function(done) { - const cli = cleaner.cleanCli('--test-argument'); - expect(cli).to.equal('--test-argument'); - done(); - }); - test('clean cli nothing to clean', function(done) { - const cli = cleaner.cleanCli('--test-argument'); - expect(cli).to.equal('--test-argument'); - done(); - }); - test('clean cli undefined', function(done) { - const cli = cleaner.cleanCli(undefined); - expect(cli).to.equal(undefined); - done(); - }); - test('clean range undefined', function(done) { - const range = cleaner.cleanRange(undefined); - expect(range).to.deep.equal(undefined); - done(); - }); - test('clean range.from typeof object (dataset-1)', function(done) { - const range = cleaner.cleanRange({ - from: null, - to: null, - }); - expect(range).to.deep.equal({}); - done(); - }); - test('clean range.from typeof object (dataset-2)', function(done) { - const range = cleaner.cleanRange({ - to: null, - }); - expect(range).to.deep.equal({}); - done(); - }); - test('clean range.from typeof object (dataset-3)', function(done) { - const range = cleaner.cleanRange({ - from: null, - }); - expect(range).to.deep.equal({}); - done(); - }); - test('clean range.from typeof object (dataset-4)', function(done) { - const range = cleaner.cleanRange({ - from: undefined, - to: undefined, - }); - expect(range).to.deep.equal({}); - done(); - }); - test('clean range.from typeof object (dataset-5)', function(done) { - const range = cleaner.cleanRange({ - to: undefined, - }); - expect(range).to.deep.equal({}); - done(); - }); - test('clean range.from typeof object (dataset-6)', function(done) { - const range = cleaner.cleanRange({ - from: undefined, - }); - expect(range).to.deep.equal({}); - done(); - }); - test('clean range.from typeof object (dataset-7)', function(done) { - const range = cleaner.cleanRange({ - from: NaN, - to: NaN, - }); - expect(range).to.deep.equal({}); - done(); - }); - test('clean range.from typeof int', function(done) { - const range = cleaner.cleanRange({ - from: 1024, - }); - expect(range).to.deep.equal({ - from: 1024, - }); - done(); - }); - test('clean range.from typeof string', function(done) { - const range = cleaner.cleanRange({ - from: '1024', - }); - expect(range).to.deep.equal({}); - done(); - }); - test('clean range.to typeof int', function(done) { - const range = cleaner.cleanRange({ - to: 1024, - }); - expect(range).to.deep.equal({ - to: 1024, - }); - done(); - }); - test('clean range.to typeof string', function(done) { - const range = cleaner.cleanRange({ - to: '1024', - }); - expect(range).to.deep.equal({}); - done(); - }); - test('clean range.to typeof object', function(done) { - const range = cleaner.cleanRange({ - to: {}, - }); - expect(range).to.deep.equal({}); - done(); - }); - test('clean range to upwards', function(done) { - const range = cleaner.cleanRange({ - to: 'upwards', - }); - expect(range).to.deep.equal({ - to: 'upwards', - }); - done(); - }); - test('clean range to upwards match', function(done) { - const range = cleaner.cleanRange({ - to: '(128KB) upwards', - }); - expect(range).to.deep.equal({ - to: 'upwards', - }); - done(); - }); - test('clean binary types in bytes', function(done) { - const type = cleaner.cleanType('in bytes'); - expect(type).to.deep.equal('byte'); - done(); - }); - test('clean binary types size in mb', function(done) { - const type = cleaner.cleanType('size in mb'); - expect(type).to.deep.equal('byte'); - done(); - }); - test('clean binary types number of bytes', function(done) { - const type = cleaner.cleanType('number of bytes'); - expect(type).to.deep.equal('byte'); - done(); - }); - test('clean binary types number of', function(done) { - const type = cleaner.cleanType('number of'); - expect(type).to.deep.equal('integer'); - done(); - }); - test('clean binary types size of', function(done) { - const type = cleaner.cleanType('size of'); - expect(type).to.deep.equal('integer'); - done(); - }); - test('clean binary types in microseconds', function(done) { - const type = cleaner.cleanType('in microseconds'); - expect(type).to.deep.equal('integer'); - done(); - }); - test('clean binary types in seconds', function(done) { - const type = cleaner.cleanType('in seconds'); - expect(type).to.deep.equal('integer'); - done(); - }); - test('clean wtf type', function(done) { - const type = cleaner.cleanType('wtf'); - expect(type).to.deep.equal(undefined); - done(); - }); - test('clean enumeration type', function(done) { - const type = cleaner.cleanType('enumeration'); - expect(type).to.deep.equal('enumeration'); - done(); - }); - test('clean undefined type', function(done) { - const type = cleaner.cleanType(undefined); - expect(type).to.deep.equal(undefined); - done(); - }); - }); -}; diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/data/mysql_test_case_1.html b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/data/mysql_test_case_1.html deleted file mode 100644 index 5855c10..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/data/mysql_test_case_1.html +++ /dev/null @@ -1,235 +0,0 @@ - - -
    -
      -
    • -

      - - - - - --ndbcluster -

      -
      - -

      Table 21.207 - Type and value information for ndbcluster

      -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      PropertyValue
      Namendbcluster -
      Command LineYes
      System VariableNo
      Status VariableNo
      Option FileYes
      Scope
      DynamicNo
      Type
      Default, RangeFALSE (Version: NDB 7.5-7.6)
      Notes -

      - DESCRIPTION: Enable NDB Cluster (if this version - of MySQL supports it) -

      -

      - Disabled by - --skip-ndbcluster. -

      -
      -
      -
      - - - - - - - -
      PropertyValue
      -
      - -
      -
      -

      - The NDBCLUSTER storage engine - is necessary for using NDB Cluster. If a - mysqld binary includes support for the - NDBCLUSTER storage engine, - the engine is disabled by default. Use the - --ndbcluster option to - enable it. Use --skip-ndbcluster to - explicitly disable the engine. -

      -

      - It is not necessary or desirable to use this option - together with --initialize. - Beginning with NDB 7.5.4, --ndbcluster is - ignored (and the NDB storage engine is - not enabled) if - --initialize is also used. (Bug #81689, - Bug #23518923) -

      -
    • -
    • -

      - - - - - --ndb-allow-copying-alter-table=[ON|OFF] -

      -
      - -

      Table 21.208 - Type and value information for ndb-allow-copying-alter-table

      -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      PropertyValue
      Namendb-allow-copying-alter-table -
      Command LineYes
      System VariableYes
      Status VariableNo
      Option FileYes
      ScopeBoth
      DynamicYes
      Type
      Default, RangeON (Version: NDB 7.5-7.6)
      Notes -

      - DESCRIPTION: Set to OFF to keep ALTER TABLE from - using copying operations on NDB tables -

      -
      -
      -
      - - - - - - - -
      PropertyValue
      -
      - -
      -
      -

      - Let ALTER TABLE and other - DDL statements use copying operations on - NDB tables. Set to - OFF to keep this from happening; doing - so may improve performance of critical applications. -

      -
    • -
    • -

      - - - - - --ndb-batch-size=# -

      - - diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/data/mysql_test_case_2.html b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/data/mysql_test_case_2.html deleted file mode 100644 index 2c3c1c5..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/data/mysql_test_case_2.html +++ /dev/null @@ -1,1211 +0,0 @@ - -
      -
        -
      • -

        - - - - - binlog_gtid_simple_recovery -

        -
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        PropertyValue
        Command-Line Format--binlog-gtid-simple-recovery[={OFF|ON}]
        System Variablebinlog_gtid_simple_recovery -
        ScopeGlobal
        DynamicNo
        SET_VAR Hint AppliesNo
        TypeBoolean
        Default ValueON
        -
        -

        - This variable controls how binary log files are iterated - during the search for GTIDs when MySQL starts or restarts. -

        -

        - When - binlog_gtid_simple_recovery=TRUE, - which is the default in MySQL 8.0, the values of - gtid_executed and - gtid_purged are computed at - startup based on the values of - Previous_gtids_log_event in the most recent - and oldest binary log files. For a description of the - computation, see - The gtid_purged System - Variable. This setting - accesses only two binary log files during server restart. If - all binary logs on the server were generated using MySQL 5.7.8 - or later, - binlog_gtid_simple_recovery=TRUE - can always safely be used. - - -

        -

        - If any binary logs from MySQL 5.7.7 or older are present on - the server (for example, following an upgrade of an older - server to MySQL 8.0), with - binlog_gtid_simple_recovery=TRUE, - gtid_executed and - gtid_purged might be - initialized incorrectly in the following two situations: -

        -
        -
          -
        • -

          - The newest binary log was generated by MySQL 5.7.5 or - earlier, and gtid_mode - was ON for some binary logs but - OFF for the newest binary log. -

          -
        • -
        • -

          - A SET @@GLOBAL.gtid_purged statement - was issued on MySQL 5.7.7 or earlier, and the binary log - that was active at the time of the SET - @@GLOBAL.gtid_purged statement has not yet been - purged. - - -

          -
        • -
        -
        -

        - If an incorrect GTID set is computed in either situation, it - will remain incorrect even if the server is later restarted - with - binlog_gtid_simple_recovery=FALSE. - If either of these situations apply or might apply on the - server, set - binlog_gtid_simple_recovery=FALSE - before starting or restarting the server. -

        -

        - When - binlog_gtid_simple_recovery=FALSE - is set, the method of computing - gtid_executed and - gtid_purged as described in - The gtid_purged System - Variable is changed to - iterate the binary log files as follows: -

        -
        -
          -
        • -

          - Instead of using the value of - Previous_gtids_log_event and GTID log - events from the newest binary log file, the computation - for gtid_executed - iterates from the newest binary log file, and uses the - value of Previous_gtids_log_event and - any GTID log events from the first binary log file where - it finds a Previous_gtids_log_event - value. If the server's most recent binary log files do not - have GTID log events, for example if - gtid_mode=ON was used but - the server was later changed to - gtid_mode=OFF, this - process can take a long time. -

          -
        • -
        • -

          - Instead of using the value of - Previous_gtids_log_event from the - oldest binary log file, the computation for - gtid_purged iterates from - the oldest binary log file, and uses the value of - Previous_gtids_log_event from the first - binary log file where it finds either a nonempty - Previous_gtids_log_event value, or at - least one GTID log event (indicating that the use of GTIDs - starts at that point). If the server's older binary log - files do not have GTID log events, for example if - gtid_mode=ON was only set - recently on the server, this process can take a long time. -

          -
        • -
        -
        -
      • -
      • -

        - enforce_gtid_consistency -

        -
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        PropertyValue
        Command-Line Format--enforce-gtid-consistency[=value]
        System Variableenforce_gtid_consistency -
        ScopeGlobal
        DynamicYes
        SET_VAR Hint AppliesNo
        TypeEnumeration
        Default ValueOFF
        Valid Values -

        OFF

        -

        ON

        -

        WARN

        -
        -
        -

        - Depending on the value of this variable, the server enforces - GTID consistency by allowing execution of only statements that - can be safely logged using a GTID. You - must set this variable to - ON before enabling GTID based replication. -

        -

        - The values that - enforce_gtid_consistency can - be configured to are: -

        -
        -
          -
        • -

          - OFF: all transactions are allowed to - violate GTID consistency. -

          -
        • -
        • -

          - ON: no transaction is allowed to - violate GTID consistency. -

          -
        • -
        • -

          - WARN: all transactions are allowed to - violate GTID consistency, but a warning is generated in - this case. -

          -
        • -
        -
        -

        - Only statements that can be logged using GTID safe statements - can be logged when - enforce_gtid_consistency is - set to ON, so the operations listed here - cannot be used with this option: -

        -
        -
          -
        • -

          - CREATE - TABLE ... SELECT statements -

          -
        • -
        • -

          - CREATE - TEMPORARY TABLE or - DROP TEMPORARY - TABLE statements inside transactions -

          -
        • -
        • -

          - Transactions or statements that update both transactional - and nontransactional tables. There is an exception that - nontransactional DML is allowed in the same transaction or - in the same statement as transactional DML, if all - nontransactional tables are - temporary. -

          -
        • -
        -
        -

        - --enforce-gtid-consistency only - takes effect if binary logging takes place for a statement. If - binary logging is disabled on the server, or if statements are - not written to the binary log because they are removed by a - filter, GTID consistency is not checked or enforced for the - statements that are not logged. -

        -

        - For more information, see - Section 17.1.3.6, “Restrictions on - Replication with GTIDs”. -

        -

        - Prior to MySQL 5.7 and in early releases in that release - series, the boolean - enforce_gtid_consistency - defaulted to OFF. To maintain compatibility - with these earlier releases, the enumeration defaults to - OFF, and setting - --enforce-gtid-consistency - without a value is interpreted as setting the value to - ON. The variable also has multiple textual - aliases for the values: 0=OFF=FALSE, - 1=ON=TRUE,2=WARN. This - differs from other enumeration types but maintains - compatibility with the boolean type used in previous releases. - These changes impact on what is returned by the variable. - Using SELECT @@ENFORCE_GTID_CONSISTENCY, - SHOW VARIABLES LIKE - 'ENFORCE_GTID_CONSISTENCY', and SELECT * - FROM INFORMATION_SCHEMA.VARIABLES WHERE 'VARIABLE_NAME' = - 'ENFORCE_GTID_CONSISTENCY', all return the textual - form, not the numeric form. This is an incompatible change, - since @@ENFORCE_GTID_CONSISTENCY returns - the numeric form for booleans but returns the textual form for - SHOW and the Information Schema. -

        -
      • -
      • -

        - - - - - gtid_executed -

        -
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        PropertyValue
        System Variablegtid_executed -
        System Variablegtid_executed -
        ScopeGlobal
        ScopeGlobal, Session
        DynamicNo
        DynamicNo
        SET_VAR Hint AppliesNo
        SET_VAR Hint AppliesNo
        TypeString
        -
        -

        - When used with global scope, this variable contains a - representation of the set of all transactions executed on the - server and GTIDs that have been set by a - SET - gtid_purged statement. This - is the same as the value of the - Executed_Gtid_Set column in the output of - SHOW MASTER STATUS and - SHOW SLAVE STATUS. The value of - this variable is a GTID set, see - GTID Sets for - more information. -

        -

        - When the server starts, - @@GLOBAL.gtid_executed is initialized. See - binlog_gtid_simple_recovery - for more information on how binary logs are iterated to - populate gtid_executed. GTIDs - are then added to the set as transactions are executed, or if - any - SET - gtid_purged statement is - executed. -

        -

        - The set of transactions that can be found in the binary logs - at any given time is equal to - GTID_SUBTRACT(@@GLOBAL.gtid_executed, - @@GLOBAL.gtid_purged); that is, to all transactions - in the binary log that have not yet been purged. -

        -

        - Issuing RESET MASTER causes the - global value (but not the session value) of this variable to - be reset to an empty string. GTIDs are not otherwise removed - from this set other than when the set is cleared due to - RESET MASTER. -

        -

        - In some older releases, this variable could also be used with - session scope, where it contained a representation of the set - of transactions that are written to the cache in the current - session. The session scope is now deprecated. -

        -
      • -
      • -

        - gtid_executed_compression_period -

        -
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        PropertyValue
        Command-Line Format--gtid-executed-compression-period=#
        System Variablegtid_executed_compression_period -
        ScopeGlobal
        DynamicYes
        SET_VAR Hint AppliesNo
        TypeInteger
        Default Value1000
        Minimum Value0
        Maximum Value4294967295
        -
        -

        - Compress the mysql.gtid_executed table each - time this many transactions have been processed. A setting of - 0 means that this table is not compressed. Since no - compression of the table occurs when using the binary log, - setting the value of the variable has no effect unless binary - logging is disabled. -

        -

        - See - mysql.gtid_executed Table Compression, - for more information. -

        -
      • -
      • -

        - gtid_mode -

        -
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        PropertyValue
        Command-Line Format--gtid-mode=MODE
        System Variablegtid_mode -
        ScopeGlobal
        DynamicYes
        SET_VAR Hint AppliesNo
        TypeEnumeration
        Default ValueOFF
        Valid Values -

        OFF

        -

        OFF_PERMISSIVE

        -

        ON_PERMISSIVE

        -

        ON

        -
        -
        -

        - Controls whether GTID based logging is enabled and what type - of transactions the logs can contain. You must have privileges - sufficient to set global system variables. See - Section 5.1.9.1, “System Variable - Privileges”. - enforce_gtid_consistency must - be true before you can set - gtid_mode=ON. Before - modifying this variable, see - Section 17.1.5, “Changing - Replication Modes on Online Servers”. -

        -

        - Logged transactions can be either anonymous or use GTIDs. - Anonymous transactions rely on binary log file and position to - identify specific transactions. GTID transactions have a - unique identifier that is used to refer to transactions. The - different modes are: -

        -
        -
          -
        • -

          - OFF: Both new and replicated - transactions must be anonymous. -

          -
        • -
        • -

          - OFF_PERMISSIVE: New transactions are - anonymous. Replicated transactions can be either anonymous - or GTID transactions. -

          -
        • -
        • -

          - ON_PERMISSIVE: New transactions are - GTID transactions. Replicated transactions can be either - anonymous or GTID transactions. -

          -
        • -
        • -

          - ON: Both new and replicated - transactions must be GTID transactions. -

          -
        • -
        -
        -

        - Changes from one value to another can only be one step at a - time. For example, if - gtid_mode is currently set to - OFF_PERMISSIVE, it is possible to change to - OFF or ON_PERMISSIVE but - not to ON. -

        -

        - The values of gtid_purged and - gtid_executed are persistent - regardless of the value of - gtid_mode. Therefore even - after changing the value of - gtid_mode, these variables - contain the correct values. -

        -
      • -
      • -

        - - - - - gtid_next -

        -
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        PropertyValue
        System Variablegtid_next -
        ScopeSession
        DynamicYes
        SET_VAR Hint AppliesNo
        TypeEnumeration
        Default ValueAUTOMATIC
        Valid Values -

        AUTOMATIC

        -

        ANONYMOUS

        -

        UUID:NUMBER

        -
        -
        -

        - This variable is used to specify whether and how the next GTID - is obtained. -

        -

        - Setting the session value of this system variable is a - restricted operation. The session user must have either the - REPLICATION_APPLIER privilege - (see Section 17.3.3, “Replication Privilege - Checks”), or - privileges sufficient to set restricted session variables (see - Section 5.1.9.1, “System Variable - Privileges”). -

        -

        - gtid_next can take any of the following - values: -

        -
        -
          -
        • -

          - AUTOMATIC: Use the next - automatically-generated global transaction ID. -

          -
        • -
        • -

          - ANONYMOUS: Transactions do not have - global identifiers, and are identified by file and - position only. -

          -
        • -
        • -

          - A global transaction ID in - UUID:NUMBER - format. -

          -
        • -
        -
        -

        - Exactly which of the above options are valid depends on the - setting of gtid_mode, see - Section 17.1.5.1, “Replication Mode - Concepts” for - more information. Setting this variable has no effect if - gtid_mode is - OFF. -

        -

        - After this variable has been set to - UUID:NUMBER, - and a transaction has been committed or rolled back, an - explicit SET GTID_NEXT statement must again - be issued before any other statement. -

        -

        - DROP TABLE or - DROP TEMPORARY - TABLE fails with an explicit error when used on a - combination of nontemporary tables with temporary tables, or - of temporary tables using transactional storage engines with - temporary tables using nontransactional storage engines. -

        -
      • -
      • -

        - - - - - gtid_owned -

        -
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        PropertyValue
        System Variablegtid_owned -
        ScopeGlobal, Session
        DynamicNo
        SET_VAR Hint AppliesNo
        TypeString
        -
        -

        - This read-only variable is primarily for internal use. Its - contents depend on its scope. -

        -
        -
          -
        • -

          - When used with global scope, - gtid_owned holds a list - of all the GTIDs that are currently in use on the server, - with the IDs of the threads that own them. This variable - is mainly useful for a multi-threaded replication slave to - check whether a transaction is already being applied on - another thread. An applier thread takes ownership of a - transaction's GTID all the time it is processing the - transaction, so @@global.gtid_owned - shows the GTID and owner for the duration of processing. - When a transaction has been committed (or rolled back), - the applier thread releases ownership of the GTID. -

          -
        • -
        • -

          - When used with session scope, - gtid_owned holds a single - GTID that is currently in use by and owned by this - session. This variable is mainly useful for testing and - debugging the use of GTIDs when the client has explicitly - assigned a GTID for the transaction by setting - gtid_next. In this case, - @@session.gtid_owned displays the GTID - all the time the client is processing the transaction, - until the transaction has been committed (or rolled back). - When the client has finished processing the transaction, - the variable is cleared. If - gtid_next=AUTOMATIC is - used for the session, - gtid_owned is only - populated briefly during the execution of the commit - statement for the transaction, so it cannot be observed - from the session concerned, although it will be listed if - @@global.gtid_owned is read at the - right point. If you have a requirement to track the GTIDs - that are handled by a client in a session, you can enable - the session state tracker controlled by the - session_track_gtids - system variable. -

          -
        • -
        -
        -
      • -
      • -

        - - - - - gtid_purged -

        -
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        PropertyValue
        System Variablegtid_purged -
        ScopeGlobal
        DynamicYes
        SET_VAR Hint AppliesNo
        TypeString
        -
        -

        - The global value of the - gtid_purged system variable - (@@GLOBAL.gtid_purged) is a GTID set - consisting of the GTIDs of all the transactions that have been - committed on the server, but do not exist in any binary log - file on the server. - gtid_purged is a subset of - gtid_executed. The following - categories of GTIDs are in - gtid_purged: -

        -
        -
          -
        • -

          - GTIDs of replicated transactions that were committed with - binary logging disabled on the slave. -

          -
        • -
        • -

          - GTIDs of transactions that were written to a binary log - file that has now been purged. -

          -
        • -
        • -

          - GTIDs that were added explicitly to the set by the - statement SET @@GLOBAL.gtid_purged. -

          -
        • -
        -
        -

        - When the server starts, the global value of - gtid_purged is initialized to - a set of GTIDs. For information on how this GTID set is - computed, see The gtid_purged System - Variable. - If binary logs from MySQL 5.7.7 or older are present on the - server, you might need to set - binlog_gtid_simple_recovery=FALSE - in the server's configuration file to produce the correct - computation. See the description for - binlog_gtid_simple_recovery - for details of the situations in which this setting is needed. -

        -

        - Issuing RESET MASTER causes the - value of gtid_purged to be - reset to an empty string. -

        -

        - You can set the value of - gtid_purged in order to - record on the server that the transactions in a certain GTID - set have been applied, although they do not exist in any - binary log on the server. An example use case for this action - is when you are restoring a backup of one or more databases on - a server, but you do not have the relevant binary logs - containing the transactions on the server. -

        -

        - From MySQL 8.0, there are two ways to set the value of - gtid_purged. You can either - replace the value of - gtid_purged with your - specified GTID set, or you can append your specified GTID set - to the GTID set that is already held by - gtid_purged. If the server - has no existing GTIDs, for example an empty server that you - are provisioning with a backup of an existing database, both - methods have the same result. If you are restoring a backup - that overlaps the transactions that are already on the server, - for example replacing a corrupted table with a partial dump - from the master made using mysqldump (which - includes the GTIDs of all the transactions on the server, even - though the dump is partial), use the first method of replacing - the value of gtid_purged. If - you are restoring a backup that is disjoint from the - transactions that are already on the server, for example - provisioning a multi-source replication slave using dumps from - two different servers, use the second method of adding to the - value of gtid_purged. -

        -
        -
          -
        • -

          - To replace the value of - gtid_purged with your - specified GTID set, use the following statement: -

          -
          -
          Press CTRL+C to copy
          SET @@GLOBAL.gtid_purged = 'gtid_set'
          -
          -

          - gtid_set must be a superset of the - current value of - gtid_purged, and must not - intersect with - gtid_subtract(gtid_executed,gtid_purged). - In other words, the new GTID set - must include any GTIDs - that were already in - gtid_purged, and - must not include any - GTIDs in gtid_executed - that have not yet been purged. gtid_set - also cannot include any GTIDs that are in - @@global.gtid_owned, that is, the GTIDs - for transactions that are currently being processed on the - server. -

          -

          - The result is that the global value of - gtid_purged is set equal - to gtid_set, and the value of - gtid_executed becomes the - union of gtid_set and the previous - value of gtid_executed. -

          -
        • -
        • -

          - To append your specified GTID set to - gtid_purged, use the - following statement with a plus sign (+) before the GTID - set: -

          -
          -
          Press CTRL+C to copy
          SET @@GLOBAL.gtid_purged = '+gtid_set'
          -
          -

          - gtid_set must - not intersect with the current value of - gtid_executed. In other - words, the new GTID set must not include any GTIDs in - gtid_executed, including - transactions that are already also in - gtid_purged. - gtid_set also cannot include any GTIDs - that are in @@global.gtid_owned, that - is, the GTIDs for transactions that are currently being - processed on the server. -

          -

          - The result is that gtid_set is added to - both gtid_executed and - gtid_purged. -

          -
        • -
        -
        -
      • -
      -
      - - diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/data/mysql_test_case_3.html b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/data/mysql_test_case_3.html deleted file mode 100644 index 8e48a2b..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/data/mysql_test_case_3.html +++ /dev/null @@ -1,339 +0,0 @@ - -
      -
        -
      • -

        - ndb_join_pushdown -

        -
        - -

        Table 21.249 - Type and value information for ndb_join_pushdown

        -
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        PropertyValue
        Namendb_join_pushdown -
        Command LineNo
        System VariableYes
        Status VariableNo
        Option FileNo
        ScopeBoth
        DynamicYes
        Type
        Default, RangeTRUE (Version: 5.1.51-ndb-7.2.0)
        Notes -

        - DESCRIPTION: Enables pushing down of joins to data - nodes -

        -
        -
        -
        - - - - - - - -
        PropertyValue
        -
        - -
        -
        -

        - This variable controls whether joins on - NDB tables are pushed down to - the NDB kernel (data nodes). Previously, a join was - handled using multiple accesses of - NDB by the SQL node; however, - when ndb_join_pushdown is - enabled, a pushable join is sent in its entirety to the - data nodes, where it can be distributed among the data - nodes and executed in parallel on multiple copies of the - data, with a single, merged result being returned to - mysqld. This can reduce greatly the - number of round trips between an SQL node and the data - nodes required to handle such a join. -

        -

        - By default, - ndb_join_pushdown is - enabled. -

        -

        Conditions for NDB pushdown joins.  - In order for a join to be pushable, it must meet the - following conditions: -

        -
        -
          -
        1. -

          - Only columns can be compared, and all columns to be - joined must use exactly the same - data type. -

          -

          - This means that expressions such as t1.a = - t2.a + constant - cannot be pushed down, and that (for example) a join - on an INT column and a - BIGINT column also - cannot be pushed down. -

          -
        2. -
        3. -

          - Queries referencing - BLOB or - TEXT columns are not - supported. -

          -
        4. -
        5. -

          - Explicit locking is not supported; however, the - NDB storage engine's - characteristic implicit row-based locking is enforced. -

          -

          - This means that a join using FOR - UPDATE cannot be pushed down. -

          -
        6. -
        7. -

          - In order for a join to be pushed down, child tables in - the join must be accessed using one of the - ref, - eq_ref, or  - const access methods, - or some combination of these methods. -

          -

          - Outer joined child tables can only be pushed using - eq_ref. -

          -

          - If the root of the pushed join is an - eq_ref or - const, only child - tables joined by - eq_ref can be - appended. (A table joined by - ref - is likely to - become the root of another pushed join.) -

          -

          - If the query optimizer decides on Using join - cache for a candidate child table, that - table cannot be pushed as a child. However, it may be - the root of another set of pushed tables. -

          -
        8. -
        9. -

          - Joins referencing tables explicitly partitioned by - [LINEAR] HASH, - LIST, or RANGE - currently cannot be pushed down. -

          -
        10. -
        -
        -

        - You can see whether a given join can be pushed down by - checking it with EXPLAIN; - when the join can be pushed down, you can see references - to the pushed join in the - Extra column of the output, as shown in - this example: -

        -
        -
        Press CTRL+C to copy
        mysql> EXPLAIN - -> SELECT e.first_name, e.last_name, t.title, d.dept_name - -> FROM employees e - -> JOIN dept_emp de ON e.emp_no=de.emp_no - -> JOIN departments d ON d.dept_no=de.dept_no - -> JOIN titles t ON e.emp_no=t.emp_no\G - *************************** 1. row *************************** - id: 1 - select_type: SIMPLE - table: d - type: ALL - possible_keys: PRIMARY - key: NULL - key_len: NULL - ref: NULL - rows: 9 - Extra: Parent of 4 pushed join@1 - *************************** 2. row *************************** - id: 1 - select_type: SIMPLE - table: de - type: ref - possible_keys: PRIMARY,emp_no,dept_no - key: dept_no - key_len: 4 - ref: employees.d.dept_no - rows: 5305 - Extra: Child of 'd' in pushed join@1 - *************************** 3. row *************************** - id: 1 - select_type: SIMPLE - table: e - type: eq_ref - possible_keys: PRIMARY - key: PRIMARY - key_len: 4 - ref: employees.de.emp_no - rows: 1 - Extra: Child of 'de' in pushed join@1 - *************************** 4. row *************************** - id: 1 - select_type: SIMPLE - table: t - type: ref - possible_keys: PRIMARY,emp_no - key: emp_no - key_len: 4 - ref: employees.de.emp_no - rows: 19 - Extra: Child of 'e' in pushed join@1 - 4 rows in set (0.00 sec)
        -
        -
        - -
        - Note -
        -

        - If inner joined child tables are joined by - ref, - and the result is ordered or - grouped by a sorted index, this index cannot provide - sorted rows, which forces writing to a sorted tempfile. -

        -
        -

        - Two additional sources of information about pushed join - performance are available: -

        -
        -
          -
        1. -

          - The status variables - Ndb_pushed_queries_defined, - Ndb_pushed_queries_dropped, - Ndb_pushed_queries_executed, - and - Ndb_pushed_reads. -

          -
        2. -
        3. -

          - The counters in the - ndbinfo.counters - table that belong to the DBSPJ - kernel block. See - Section 21.5.10.10, “The ndbinfo - counters Table”, for - information about these counters. See also - The DBSPJ Block, - in the NDB Cluster API Developer - Guide. -

          -
        4. -
        -
        -
      • -
      -
      - - diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/data/ultraSlimDataTestWithVariables.json b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/data/ultraSlimDataTestWithVariables.json deleted file mode 100644 index 1294c9e..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/data/ultraSlimDataTestWithVariables.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "vars": { - "Test_var": { - "d": true, - "t": 2 - }, - "another-variable": { - "d": false, - "t": 1 - }, - "doc-variable_ok": { - "d": true, - "t": 3, - "a": [ - { - "t": 1, - "u": 0 - }, - { - "t": 2, - "u": 1 - }, - { - "a": "anchorname", - "t": 2, - "u": 1 - } - ] - } - }, - "version": 1, - "types": { - "1": "MYSQL", - "2": "MARIADB" - }, - "varTypes": { - "1": "string", - "2": "boolean", - "3": "integer", - "4": "numeric", - "5": "enumeration", - "6": "set", - "7": "directory name", - "8": "file name", - "9": "byte" - }, - "urls": [ - "https://dev.mysql.com/", - "https://mariadb.com/" - ] -} \ No newline at end of file diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/index.js b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/index.js deleted file mode 100644 index b5294d6..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/index.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -process.env.TZ = 'UTC'; -const templates = require(__dirname + '/templates'); -const cleaner = require(__dirname + '/cleaner'); -const parser = require(__dirname + '/parser'); - -suite('MariaDB MySQL KBS', function() { - templates(); - cleaner(); - parser(); -}); diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/parser.js b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/parser.js deleted file mode 100644 index 14b6596..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/parser.js +++ /dev/null @@ -1,129 +0,0 @@ -'use strict'; - -const expect = require('chai').expect; -const MySQL = require(__dirname + '/../src/MySQL'); -const cheerio = require('cheerio'); -const fs = require('fs'); - -module.exports = function() { - suite('parser', function() { - test('test case 1', function(done) { - const $ = cheerio.load(fs.readFileSync(__dirname + '/data/mysql_test_case_1.html')); - MySQL.parsePage($, function(resultData) { - expect(resultData).to.deep.equal([ - { - cli: '--ndbcluster', - default: 'FALSE (Version: NDB 7.5-7.6)', - dynamic: false, - id: 'option_mysqld_ndbcluster', - name: 'ndbcluster', - }, - { - cli: '--ndb-allow-copying-alter-table=[ON|OFF]', - default: 'ON (Version: NDB 7.5-7.6)', - dynamic: true, - id: 'option_mysqld_ndb-allow-copying-alter-table', - name: 'ndb-allow-copying-alter-table', - scope: ['global', 'session'], - }, - ]); - done(); - }); - }); - test('test case 2', function(done) { - const $ = cheerio.load(fs.readFileSync(__dirname + '/data/mysql_test_case_2.html')); - MySQL.parsePage($, function(resultData) { - expect(resultData).to.deep.equal([ - { - cli: '--binlog-gtid-simple-recovery[={OFF|ON}]', - default: 'ON', - dynamic: false, - id: 'sysvar_binlog_gtid_simple_recovery', - name: 'binlog_gtid_simple_recovery', - scope: ['global'], - type: 'boolean', - }, - { - cli: '--enforce-gtid-consistency[=value]', - default: 'OFF', - dynamic: true, - id: 'sysvar_enforce_gtid_consistency', - name: 'enforce_gtid_consistency', - scope: ['global'], - type: 'enumeration', - validValues: ['OFF', 'ON', 'WARN'], - }, - { - dynamic: false, - id: 'sysvar_gtid_executed', - name: 'gtid_executed', - scope: ['global', 'session'], - type: 'string', - }, - { - cli: '--gtid-executed-compression-period=#', - default: '1000', - dynamic: true, - id: 'sysvar_gtid_executed_compression_period', - name: 'gtid_executed_compression_period', - range: { - from: 0, - to: 4294967295, - }, - scope: ['global'], - type: 'integer', - }, - { - cli: '--gtid-mode=MODE', - default: 'OFF', - dynamic: true, - id: 'sysvar_gtid_mode', - name: 'gtid_mode', - scope: ['global'], - type: 'enumeration', - validValues: ['OFF', 'OFF_PERMISSIVE', 'ON_PERMISSIVE', 'ON'], - }, - { - default: 'AUTOMATIC', - dynamic: true, - id: 'sysvar_gtid_next', - name: 'gtid_next', - scope: ['session'], - type: 'enumeration', - validValues: ['AUTOMATIC', 'ANONYMOUS', 'UUID:NUMBER'], - }, - { - dynamic: false, - id: 'sysvar_gtid_owned', - name: 'gtid_owned', - scope: ['global', 'session'], - type: 'string', - }, - { - dynamic: true, - id: 'sysvar_gtid_purged', - name: 'gtid_purged', - scope: ['global'], - type: 'string', - }, - ]); - done(); - }); - }); - test('test case 3', function(done) { - const $ = cheerio.load(fs.readFileSync(__dirname + '/data/mysql_test_case_3.html')); - MySQL.parsePage($, function(resultData) { - expect(resultData).to.deep.equal([ - { - default: 'TRUE (Version: 5.1.51-ndb-7.2.0)', - dynamic: true, - id: 'sysvar_ndb_join_pushdown', - name: 'ndb_join_pushdown', - scope: ['global', 'session'], - }, - ]); - done(); - }); - }); - }); -}; diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/phpunit.xml b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/phpunit.xml deleted file mode 100644 index a04a13b..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/phpunit.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - ../src - - - - - - - - - - - ../test/ - - - - diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/templates.js b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/templates.js deleted file mode 100644 index 94119c2..0000000 --- a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/templates.js +++ /dev/null @@ -1,218 +0,0 @@ -'use strict'; - -const expect = require('chai').expect; -const templates = require(__dirname + '/../scripts/sudo-bot/template.js'); - -module.exports = function() { - suite('pr message', function() { - test('prMessage for lambda files', function(done) { - const commmitMsg = templates.prMessage(['a.json', 'ab/cd/ef.json', 'README.md']); - expect(commmitMsg).to.equal('🤖 Some updates to review 🤖'); - done(); - }); - test('prMessage for MariaDB files', function(done) { - const commmitMsg = templates.prMessage(['data/mariadb-aria-server-status-variables.json']); - expect(commmitMsg).to.equal('🤖 [MariaDB] updates'); - done(); - }); - test('prMessage for MariaDB files and merged', function(done) { - const commmitMsg = templates.prMessage([ - 'dist/merged-raw.json', - 'dist/merged-raw.md', - 'dist/merged-slim.json', - 'dist/merged-ultraslim.json', - 'dist/merged-ultraslim.php', - 'data/mariadb-aria-server-status-variables.json', - ]); - expect(commmitMsg).to.equal('🤖 [MariaDB] updates'); - done(); - }); - test('prMessage for MariaDB files and others', function(done) { - const commmitMsg = templates.prMessage([ - 'a.json', - 'ab/cd/ef.json', - 'README.md', - 'data/mariadb-aria-server-status-variables.json', - ]); - expect(commmitMsg).to.equal('🤖 [MariaDB] updates 🚨🚨'); - done(); - }); - test('prMessage for MariaDB files and others and merged', function(done) { - const commmitMsg = templates.prMessage([ - 'dist/merged-raw.json', - 'dist/merged-raw.md', - 'dist/merged-slim.json', - 'dist/merged-ultraslim.json', - 'dist/merged-ultraslim.php', - 'a.json', - 'ab/cd/ef.json', - 'README.md', - 'data/mariadb-aria-server-status-variables.json', - ]); - expect(commmitMsg).to.equal('🤖 [MariaDB] updates 🚨🚨'); - done(); - }); - test('prMessage for MySQL files', function(done) { - const commmitMsg = templates.prMessage(['data/mysql-server-options.json']); - expect(commmitMsg).to.equal('🤖 [MySQL] updates'); - done(); - }); - test('prMessage for MySQL files and merged', function(done) { - const commmitMsg = templates.prMessage([ - 'dist/merged-raw.json', - 'dist/merged-raw.md', - 'dist/merged-slim.json', - 'dist/merged-ultraslim.json', - 'dist/merged-ultraslim.php', - 'data/mysql-server-options.json', - ]); - expect(commmitMsg).to.equal('🤖 [MySQL] updates'); - done(); - }); - test('prMessage for MySQL files and others', function(done) { - const commmitMsg = templates.prMessage([ - 'a.json', - 'ab/cd/ef.json', - 'README.md', - 'data/mysql-server-options.json', - ]); - expect(commmitMsg).to.equal('🤖 [MySQL] updates 🚨🚨'); - done(); - }); - test('prMessage for MySQL files and others and merged', function(done) { - const commmitMsg = templates.prMessage([ - 'dist/merged-raw.json', - 'dist/merged-raw.md', - 'dist/merged-slim.json', - 'dist/merged-ultraslim.json', - 'dist/merged-ultraslim.php', - 'a.json', - 'ab/cd/ef.json', - 'README.md', - 'data/mysql-server-options.json', - ]); - expect(commmitMsg).to.equal('🤖 [MySQL] updates 🚨🚨'); - done(); - }); - test('prMessage for MySQL and MariaDB files', function(done) { - const commmitMsg = templates.prMessage([ - 'data/mariadb-aria-server-status-variables.json', - 'data/mysql-server-options.json', - ]); - expect(commmitMsg).to.equal('🤖 [MariaDB] && [MySQL] updates'); - done(); - }); - test('prMessage for MySQL and MariaDB files and merged', function(done) { - const commmitMsg = templates.prMessage([ - 'dist/merged-raw.json', - 'dist/merged-raw.md', - 'dist/merged-slim.json', - 'dist/merged-ultraslim.json', - 'dist/merged-ultraslim.php', - 'data/mariadb-aria-server-status-variables.json', - 'data/mysql-server-options.json', - ]); - expect(commmitMsg).to.equal('🤖 [MariaDB] && [MySQL] updates'); - done(); - }); - test('prMessage for MySQL and MariaDB files and others', function(done) { - const commmitMsg = templates.prMessage([ - 'a.json', - 'ab/cd/ef.json', - 'README.md', - 'data/mariadb-aria-server-status-variables.json', - 'data/mysql-server-options.json', - ]); - expect(commmitMsg).to.equal('🤖 [MariaDB] && [MySQL] updates 🚨🚨'); - done(); - }); - }); - suite('commit message', function() { - test('commitMessage for lambda files', function(done) { - const commmitMsg = templates.commitMessage(['a.json', 'ab/cd/ef.json', 'README.md']); - expect(commmitMsg).to.equal('update: 🤖 Some updates 🤖'); - done(); - }); - test('commitMessage for MariaDB files', function(done) { - const commmitMsg = templates.commitMessage(['data/mariadb-aria-server-status-variables.json']); - expect(commmitMsg).to.equal('update: [MariaDB] updates'); - done(); - }); - test('commitMessage for MariaDB files and others', function(done) { - const commmitMsg = templates.commitMessage([ - 'a.json', - 'ab/cd/ef.json', - 'README.md', - 'data/mariadb-aria-server-status-variables.json', - ]); - expect(commmitMsg).to.equal('update: [MariaDB] updates and other changes'); - done(); - }); - test('commitMessage for MySQL files', function(done) { - const commmitMsg = templates.commitMessage(['data/mysql-server-options.json']); - expect(commmitMsg).to.equal('update: [MySQL] updates'); - done(); - }); - test('commitMessage for MySQL files and others', function(done) { - const commmitMsg = templates.commitMessage([ - 'a.json', - 'ab/cd/ef.json', - 'README.md', - 'data/mysql-server-options.json', - ]); - expect(commmitMsg).to.equal('update: [MySQL] updates and other changes'); - done(); - }); - test('commitMessage for MySQL and MariaDB files', function(done) { - const commmitMsg = templates.commitMessage([ - 'data/mariadb-aria-server-status-variables.json', - 'data/mysql-server-options.json', - ]); - expect(commmitMsg).to.equal('update: [MariaDB] && [MySQL] updates'); - done(); - }); - test('commitMessage for MySQL and MariaDB files and others', function(done) { - const commmitMsg = templates.commitMessage([ - 'a.json', - 'ab/cd/ef.json', - 'README.md', - 'data/mariadb-aria-server-status-variables.json', - 'data/mysql-server-options.json', - ]); - expect(commmitMsg).to.equal('update: [MariaDB] && [MySQL] updates and other changes'); - done(); - }); - }); - suite('pr', function() { - test('prContent', function(done) { - const prContent = templates.prContent([ - 'a.json', - 'ab/cd/ef.json', - 'data/mariadb-aria-server-status-variables.json', - 'dist/merged-raw.json', - 'dist/merged-raw.md', - 'dist/merged-slim.json', - 'dist/merged-ultraslim.json', - 'dist/merged-ultraslim.php', - 'data/mysql-server-options.json', - 'README.md', - ]); - expect(prContent).to.equal( - 'Dear human 🌻, after running my task the following files where updated:\n- `a.json` 👽\n- `ab/cd/ef.json` 👽\n- `data/mariadb-aria-server-status-variables.json` 🐳\n- `dist/merged-raw.json` 📦\n- `dist/merged-raw.md` 📦\n- `dist/merged-slim.json` 📦\n- `dist/merged-ultraslim.json` 📦\n- `dist/merged-ultraslim.php` 📦\n- `data/mysql-server-options.json` 🐬\n- `README.md` 👽\n' - ); - done(); - }); - test('prContent one file', function(done) { - const prContent = templates.prContent(['README.md']); - expect(prContent).to.equal( - 'Dear human 🌻, after running my task the following file was updated:\n- `README.md` 👽\n' - ); - done(); - }); - test('prBranch', function(done) { - const prBranch = templates.prBranch([]); - expect(prBranch).to.match(/^refs\/heads\/update\/[0-9]{13}$/); - done(); - }); - }); -}; -- cgit
  • ', $html); - // fix first image tag alignment - $html = preg_replace('/^
    FontFamily; - $dom[$key]['fontstyle'] = $this->FontStyle; - $dom[$key]['fontsize'] = $this->FontSizePt; - $dom[$key]['font-stretch'] = $this->font_stretching; - $dom[$key]['letter-spacing'] = $this->font_spacing; - $dom[$key]['stroke'] = $this->textstrokewidth; - $dom[$key]['fill'] = (($this->textrendermode % 2) == 0); - $dom[$key]['clip'] = ($this->textrendermode > 3); - $dom[$key]['line-height'] = $this->cell_height_ratio; - $dom[$key]['bgcolor'] = false; - $dom[$key]['fgcolor'] = $this->fgcolor; // color - $dom[$key]['strokecolor'] = $this->strokecolor; - $dom[$key]['align'] = ''; - $dom[$key]['listtype'] = ''; - $dom[$key]['text-indent'] = 0; - $dom[$key]['text-transform'] = ''; - $dom[$key]['border'] = array(); - $dom[$key]['dir'] = $this->rtl?'rtl':'ltr'; - $thead = false; // true when we are inside the THEAD tag - ++$key; - $level = array(); - array_push($level, 0); // root - while ($elkey < $maxel) { - $dom[$key] = array(); - $element = $a[$elkey]; - $dom[$key]['elkey'] = $elkey; - if (preg_match($tagpattern, $element)) { - // html tag - $element = substr($element, 1, -1); - // get tag name - preg_match('/[\/]?([a-zA-Z0-9]*)/', $element, $tag); - $tagname = strtolower($tag[1]); - // check if we are inside a table header - if ($tagname == 'thead') { - if ($element[0] == '/') { - $thead = false; - } else { - $thead = true; - } - ++$elkey; - continue; - } - $dom[$key]['tag'] = true; - $dom[$key]['value'] = $tagname; - if (in_array($dom[$key]['value'], $blocktags)) { - $dom[$key]['block'] = true; - } else { - $dom[$key]['block'] = false; - } - if ($element[0] == '/') { - // *** closing html tag - $dom[$key]['opening'] = false; - $dom[$key]['parent'] = end($level); - array_pop($level); - $dom[$key]['hide'] = $dom[($dom[($dom[$key]['parent'])]['parent'])]['hide']; - $dom[$key]['fontname'] = $dom[($dom[($dom[$key]['parent'])]['parent'])]['fontname']; - $dom[$key]['fontstyle'] = $dom[($dom[($dom[$key]['parent'])]['parent'])]['fontstyle']; - $dom[$key]['fontsize'] = $dom[($dom[($dom[$key]['parent'])]['parent'])]['fontsize']; - $dom[$key]['font-stretch'] = $dom[($dom[($dom[$key]['parent'])]['parent'])]['font-stretch']; - $dom[$key]['letter-spacing'] = $dom[($dom[($dom[$key]['parent'])]['parent'])]['letter-spacing']; - $dom[$key]['stroke'] = $dom[($dom[($dom[$key]['parent'])]['parent'])]['stroke']; - $dom[$key]['fill'] = $dom[($dom[($dom[$key]['parent'])]['parent'])]['fill']; - $dom[$key]['clip'] = $dom[($dom[($dom[$key]['parent'])]['parent'])]['clip']; - $dom[$key]['line-height'] = $dom[($dom[($dom[$key]['parent'])]['parent'])]['line-height']; - $dom[$key]['bgcolor'] = $dom[($dom[($dom[$key]['parent'])]['parent'])]['bgcolor']; - $dom[$key]['fgcolor'] = $dom[($dom[($dom[$key]['parent'])]['parent'])]['fgcolor']; - $dom[$key]['strokecolor'] = $dom[($dom[($dom[$key]['parent'])]['parent'])]['strokecolor']; - $dom[$key]['align'] = $dom[($dom[($dom[$key]['parent'])]['parent'])]['align']; - $dom[$key]['text-transform'] = $dom[($dom[($dom[$key]['parent'])]['parent'])]['text-transform']; - $dom[$key]['dir'] = $dom[($dom[($dom[$key]['parent'])]['parent'])]['dir']; - if (isset($dom[($dom[($dom[$key]['parent'])]['parent'])]['listtype'])) { - $dom[$key]['listtype'] = $dom[($dom[($dom[$key]['parent'])]['parent'])]['listtype']; - } - // set the number of columns in table tag - if (($dom[$key]['value'] == 'tr') AND (!isset($dom[($dom[($dom[$key]['parent'])]['parent'])]['cols']))) { - $dom[($dom[($dom[$key]['parent'])]['parent'])]['cols'] = $dom[($dom[$key]['parent'])]['cols']; - } - if (($dom[$key]['value'] == 'td') OR ($dom[$key]['value'] == 'th')) { - $dom[($dom[$key]['parent'])]['content'] = $csstagarray; - for ($i = ($dom[$key]['parent'] + 1); $i < $key; ++$i) { - $dom[($dom[$key]['parent'])]['content'] .= stripslashes($a[$dom[$i]['elkey']]); - } - $key = $i; - // mark nested tables - $dom[($dom[$key]['parent'])]['content'] = str_replace('', '', $dom[($dom[$key]['parent'])]['content']); - $dom[($dom[$key]['parent'])]['content'] = str_replace('', '', $dom[($dom[$key]['parent'])]['content']); - } - // store header rows on a new table - if (($dom[$key]['value'] == 'tr') AND ($dom[($dom[$key]['parent'])]['thead'] === true)) { - if (TCPDF_STATIC::empty_string($dom[($dom[($dom[$key]['parent'])]['parent'])]['thead'])) { - $dom[($dom[($dom[$key]['parent'])]['parent'])]['thead'] = $csstagarray.$a[$dom[($dom[($dom[$key]['parent'])]['parent'])]['elkey']]; - } - for ($i = $dom[$key]['parent']; $i <= $key; ++$i) { - $dom[($dom[($dom[$key]['parent'])]['parent'])]['thead'] .= $a[$dom[$i]['elkey']]; - } - if (!isset($dom[($dom[$key]['parent'])]['attribute'])) { - $dom[($dom[$key]['parent'])]['attribute'] = array(); - } - // header elements must be always contained in a single page - $dom[($dom[$key]['parent'])]['attribute']['nobr'] = 'true'; - } - if (($dom[$key]['value'] == 'table') AND (!TCPDF_STATIC::empty_string($dom[($dom[$key]['parent'])]['thead']))) { - // remove the nobr attributes from the table header - $dom[($dom[$key]['parent'])]['thead'] = str_replace(' nobr="true"', '', $dom[($dom[$key]['parent'])]['thead']); - $dom[($dom[$key]['parent'])]['thead'] .= ''; - } - } else { - // *** opening or self-closing html tag - $dom[$key]['opening'] = true; - $dom[$key]['parent'] = end($level); - if ((substr($element, -1, 1) == '/') OR (in_array($dom[$key]['value'], $selfclosingtags))) { - // self-closing tag - $dom[$key]['self'] = true; - } else { - // opening tag - array_push($level, $key); - $dom[$key]['self'] = false; - } - // copy some values from parent - $parentkey = 0; - if ($key > 0) { - $parentkey = $dom[$key]['parent']; - $dom[$key]['hide'] = $dom[$parentkey]['hide']; - $dom[$key]['fontname'] = $dom[$parentkey]['fontname']; - $dom[$key]['fontstyle'] = $dom[$parentkey]['fontstyle']; - $dom[$key]['fontsize'] = $dom[$parentkey]['fontsize']; - $dom[$key]['font-stretch'] = $dom[$parentkey]['font-stretch']; - $dom[$key]['letter-spacing'] = $dom[$parentkey]['letter-spacing']; - $dom[$key]['stroke'] = $dom[$parentkey]['stroke']; - $dom[$key]['fill'] = $dom[$parentkey]['fill']; - $dom[$key]['clip'] = $dom[$parentkey]['clip']; - $dom[$key]['line-height'] = $dom[$parentkey]['line-height']; - $dom[$key]['bgcolor'] = $dom[$parentkey]['bgcolor']; - $dom[$key]['fgcolor'] = $dom[$parentkey]['fgcolor']; - $dom[$key]['strokecolor'] = $dom[$parentkey]['strokecolor']; - $dom[$key]['align'] = $dom[$parentkey]['align']; - $dom[$key]['listtype'] = $dom[$parentkey]['listtype']; - $dom[$key]['text-indent'] = $dom[$parentkey]['text-indent']; - $dom[$key]['text-transform'] = $dom[$parentkey]['text-transform']; - $dom[$key]['border'] = array(); - $dom[$key]['dir'] = $dom[$parentkey]['dir']; - } - // get attributes - preg_match_all('/([^=\s]*)[\s]*=[\s]*"([^"]*)"/', $element, $attr_array, PREG_PATTERN_ORDER); - $dom[$key]['attribute'] = array(); // reset attribute array - foreach($attr_array[1] as $id => $name) { - $dom[$key]['attribute'][strtolower($name)] = $attr_array[2][$id]; - } - if (!empty($css)) { - // merge CSS style to current style - list($dom[$key]['csssel'], $dom[$key]['cssdata']) = TCPDF_STATIC::getCSSdataArray($dom, $key, $css); - $dom[$key]['attribute']['style'] = TCPDF_STATIC::getTagStyleFromCSSarray($dom[$key]['cssdata']); - } - // split style attributes - if (isset($dom[$key]['attribute']['style']) AND !empty($dom[$key]['attribute']['style'])) { - // get style attributes - preg_match_all('/([^;:\s]*):([^;]*)/', $dom[$key]['attribute']['style'], $style_array, PREG_PATTERN_ORDER); - $dom[$key]['style'] = array(); // reset style attribute array - foreach($style_array[1] as $id => $name) { - // in case of duplicate attribute the last replace the previous - $dom[$key]['style'][strtolower($name)] = trim($style_array[2][$id]); - } - // --- get some style attributes --- - // text direction - if (isset($dom[$key]['style']['direction'])) { - $dom[$key]['dir'] = $dom[$key]['style']['direction']; - } - // display - if (isset($dom[$key]['style']['display'])) { - $dom[$key]['hide'] = (trim(strtolower($dom[$key]['style']['display'])) == 'none'); - } - // font family - if (isset($dom[$key]['style']['font-family'])) { - $dom[$key]['fontname'] = $this->getFontFamilyName($dom[$key]['style']['font-family']); - } - // list-style-type - if (isset($dom[$key]['style']['list-style-type'])) { - $dom[$key]['listtype'] = trim(strtolower($dom[$key]['style']['list-style-type'])); - if ($dom[$key]['listtype'] == 'inherit') { - $dom[$key]['listtype'] = $dom[$parentkey]['listtype']; - } - } - // text-indent - if (isset($dom[$key]['style']['text-indent'])) { - $dom[$key]['text-indent'] = $this->getHTMLUnitToUnits($dom[$key]['style']['text-indent']); - if ($dom[$key]['text-indent'] == 'inherit') { - $dom[$key]['text-indent'] = $dom[$parentkey]['text-indent']; - } - } - // text-transform - if (isset($dom[$key]['style']['text-transform'])) { - $dom[$key]['text-transform'] = $dom[$key]['style']['text-transform']; - } - // font size - if (isset($dom[$key]['style']['font-size'])) { - $fsize = trim($dom[$key]['style']['font-size']); - $dom[$key]['fontsize'] = $this->getHTMLFontUnits($fsize, $dom[0]['fontsize'], $dom[$parentkey]['fontsize'], 'pt'); - } - // font-stretch - if (isset($dom[$key]['style']['font-stretch'])) { - $dom[$key]['font-stretch'] = $this->getCSSFontStretching($dom[$key]['style']['font-stretch'], $dom[$parentkey]['font-stretch']); - } - // letter-spacing - if (isset($dom[$key]['style']['letter-spacing'])) { - $dom[$key]['letter-spacing'] = $this->getCSSFontSpacing($dom[$key]['style']['letter-spacing'], $dom[$parentkey]['letter-spacing']); - } - // line-height (internally is the cell height ratio) - if (isset($dom[$key]['style']['line-height'])) { - $lineheight = trim($dom[$key]['style']['line-height']); - switch ($lineheight) { - // A normal line height. This is default - case 'normal': { - $dom[$key]['line-height'] = $dom[0]['line-height']; - break; - } - case 'inherit': { - $dom[$key]['line-height'] = $dom[$parentkey]['line-height']; - } - default: { - if (is_numeric($lineheight)) { - // convert to percentage of font height - $lineheight = ($lineheight * 100).'%'; - } - $dom[$key]['line-height'] = $this->getHTMLUnitToUnits($lineheight, 1, '%', true); - if (substr($lineheight, -1) !== '%') { - if ($dom[$key]['fontsize'] <= 0) { - $dom[$key]['line-height'] = 1; - } else { - $dom[$key]['line-height'] = (($dom[$key]['line-height'] - $this->cell_padding['T'] - $this->cell_padding['B']) / $dom[$key]['fontsize']); - } - } - } - } - } - // font style - if (isset($dom[$key]['style']['font-weight'])) { - if (strtolower($dom[$key]['style']['font-weight'][0]) == 'n') { - if (strpos($dom[$key]['fontstyle'], 'B') !== false) { - $dom[$key]['fontstyle'] = str_replace('B', '', $dom[$key]['fontstyle']); - } - } elseif (strtolower($dom[$key]['style']['font-weight'][0]) == 'b') { - $dom[$key]['fontstyle'] .= 'B'; - } - } - if (isset($dom[$key]['style']['font-style']) AND (strtolower($dom[$key]['style']['font-style'][0]) == 'i')) { - $dom[$key]['fontstyle'] .= 'I'; - } - // font color - if (isset($dom[$key]['style']['color']) AND (!TCPDF_STATIC::empty_string($dom[$key]['style']['color']))) { - $dom[$key]['fgcolor'] = TCPDF_COLORS::convertHTMLColorToDec($dom[$key]['style']['color'], $this->spot_colors); - } elseif ($dom[$key]['value'] == 'a') { - $dom[$key]['fgcolor'] = $this->htmlLinkColorArray; - } - // background color - if (isset($dom[$key]['style']['background-color']) AND (!TCPDF_STATIC::empty_string($dom[$key]['style']['background-color']))) { - $dom[$key]['bgcolor'] = TCPDF_COLORS::convertHTMLColorToDec($dom[$key]['style']['background-color'], $this->spot_colors); - } - // text-decoration - if (isset($dom[$key]['style']['text-decoration'])) { - $decors = explode(' ', strtolower($dom[$key]['style']['text-decoration'])); - foreach ($decors as $dec) { - $dec = trim($dec); - if (!TCPDF_STATIC::empty_string($dec)) { - if ($dec[0] == 'u') { - // underline - $dom[$key]['fontstyle'] .= 'U'; - } elseif ($dec[0] == 'l') { - // line-through - $dom[$key]['fontstyle'] .= 'D'; - } elseif ($dec[0] == 'o') { - // overline - $dom[$key]['fontstyle'] .= 'O'; - } - } - } - } elseif ($dom[$key]['value'] == 'a') { - $dom[$key]['fontstyle'] = $this->htmlLinkFontStyle; - } - // check for width attribute - if (isset($dom[$key]['style']['width'])) { - $dom[$key]['width'] = $dom[$key]['style']['width']; - } - // check for height attribute - if (isset($dom[$key]['style']['height'])) { - $dom[$key]['height'] = $dom[$key]['style']['height']; - } - // check for text alignment - if (isset($dom[$key]['style']['text-align'])) { - $dom[$key]['align'] = strtoupper($dom[$key]['style']['text-align'][0]); - } - // check for CSS border properties - if (isset($dom[$key]['style']['border'])) { - $borderstyle = $this->getCSSBorderStyle($dom[$key]['style']['border']); - if (!empty($borderstyle)) { - $dom[$key]['border']['LTRB'] = $borderstyle; - } - } - if (isset($dom[$key]['style']['border-color'])) { - $brd_colors = preg_split('/[\s]+/', trim($dom[$key]['style']['border-color'])); - if (isset($brd_colors[3])) { - $dom[$key]['border']['L']['color'] = TCPDF_COLORS::convertHTMLColorToDec($brd_colors[3], $this->spot_colors); - } - if (isset($brd_colors[1])) { - $dom[$key]['border']['R']['color'] = TCPDF_COLORS::convertHTMLColorToDec($brd_colors[1], $this->spot_colors); - } - if (isset($brd_colors[0])) { - $dom[$key]['border']['T']['color'] = TCPDF_COLORS::convertHTMLColorToDec($brd_colors[0], $this->spot_colors); - } - if (isset($brd_colors[2])) { - $dom[$key]['border']['B']['color'] = TCPDF_COLORS::convertHTMLColorToDec($brd_colors[2], $this->spot_colors); - } - } - if (isset($dom[$key]['style']['border-width'])) { - $brd_widths = preg_split('/[\s]+/', trim($dom[$key]['style']['border-width'])); - if (isset($brd_widths[3])) { - $dom[$key]['border']['L']['width'] = $this->getCSSBorderWidth($brd_widths[3]); - } - if (isset($brd_widths[1])) { - $dom[$key]['border']['R']['width'] = $this->getCSSBorderWidth($brd_widths[1]); - } - if (isset($brd_widths[0])) { - $dom[$key]['border']['T']['width'] = $this->getCSSBorderWidth($brd_widths[0]); - } - if (isset($brd_widths[2])) { - $dom[$key]['border']['B']['width'] = $this->getCSSBorderWidth($brd_widths[2]); - } - } - if (isset($dom[$key]['style']['border-style'])) { - $brd_styles = preg_split('/[\s]+/', trim($dom[$key]['style']['border-style'])); - if (isset($brd_styles[3]) AND ($brd_styles[3]!='none')) { - $dom[$key]['border']['L']['cap'] = 'square'; - $dom[$key]['border']['L']['join'] = 'miter'; - $dom[$key]['border']['L']['dash'] = $this->getCSSBorderDashStyle($brd_styles[3]); - if ($dom[$key]['border']['L']['dash'] < 0) { - $dom[$key]['border']['L'] = array(); - } - } - if (isset($brd_styles[1])) { - $dom[$key]['border']['R']['cap'] = 'square'; - $dom[$key]['border']['R']['join'] = 'miter'; - $dom[$key]['border']['R']['dash'] = $this->getCSSBorderDashStyle($brd_styles[1]); - if ($dom[$key]['border']['R']['dash'] < 0) { - $dom[$key]['border']['R'] = array(); - } - } - if (isset($brd_styles[0])) { - $dom[$key]['border']['T']['cap'] = 'square'; - $dom[$key]['border']['T']['join'] = 'miter'; - $dom[$key]['border']['T']['dash'] = $this->getCSSBorderDashStyle($brd_styles[0]); - if ($dom[$key]['border']['T']['dash'] < 0) { - $dom[$key]['border']['T'] = array(); - } - } - if (isset($brd_styles[2])) { - $dom[$key]['border']['B']['cap'] = 'square'; - $dom[$key]['border']['B']['join'] = 'miter'; - $dom[$key]['border']['B']['dash'] = $this->getCSSBorderDashStyle($brd_styles[2]); - if ($dom[$key]['border']['B']['dash'] < 0) { - $dom[$key]['border']['B'] = array(); - } - } - } - $cellside = array('L' => 'left', 'R' => 'right', 'T' => 'top', 'B' => 'bottom'); - foreach ($cellside as $bsk => $bsv) { - if (isset($dom[$key]['style']['border-'.$bsv])) { - $borderstyle = $this->getCSSBorderStyle($dom[$key]['style']['border-'.$bsv]); - if (!empty($borderstyle)) { - $dom[$key]['border'][$bsk] = $borderstyle; - } - } - if (isset($dom[$key]['style']['border-'.$bsv.'-color'])) { - $dom[$key]['border'][$bsk]['color'] = TCPDF_COLORS::convertHTMLColorToDec($dom[$key]['style']['border-'.$bsv.'-color'], $this->spot_colors); - } - if (isset($dom[$key]['style']['border-'.$bsv.'-width'])) { - $dom[$key]['border'][$bsk]['width'] = $this->getCSSBorderWidth($dom[$key]['style']['border-'.$bsv.'-width']); - } - if (isset($dom[$key]['style']['border-'.$bsv.'-style'])) { - $dom[$key]['border'][$bsk]['dash'] = $this->getCSSBorderDashStyle($dom[$key]['style']['border-'.$bsv.'-style']); - if ($dom[$key]['border'][$bsk]['dash'] < 0) { - $dom[$key]['border'][$bsk] = array(); - } - } - } - // check for CSS padding properties - if (isset($dom[$key]['style']['padding'])) { - $dom[$key]['padding'] = $this->getCSSPadding($dom[$key]['style']['padding']); - } else { - $dom[$key]['padding'] = $this->cell_padding; - } - foreach ($cellside as $psk => $psv) { - if (isset($dom[$key]['style']['padding-'.$psv])) { - $dom[$key]['padding'][$psk] = $this->getHTMLUnitToUnits($dom[$key]['style']['padding-'.$psv], 0, 'px', false); - } - } - // check for CSS margin properties - if (isset($dom[$key]['style']['margin'])) { - $dom[$key]['margin'] = $this->getCSSMargin($dom[$key]['style']['margin']); - } else { - $dom[$key]['margin'] = $this->cell_margin; - } - foreach ($cellside as $psk => $psv) { - if (isset($dom[$key]['style']['margin-'.$psv])) { - $dom[$key]['margin'][$psk] = $this->getHTMLUnitToUnits(str_replace('auto', '0', $dom[$key]['style']['margin-'.$psv]), 0, 'px', false); - } - } - // check for CSS border-spacing properties - if (isset($dom[$key]['style']['border-spacing'])) { - $dom[$key]['border-spacing'] = $this->getCSSBorderMargin($dom[$key]['style']['border-spacing']); - } - // page-break-inside - if (isset($dom[$key]['style']['page-break-inside']) AND ($dom[$key]['style']['page-break-inside'] == 'avoid')) { - $dom[$key]['attribute']['nobr'] = 'true'; - } - // page-break-before - if (isset($dom[$key]['style']['page-break-before'])) { - if ($dom[$key]['style']['page-break-before'] == 'always') { - $dom[$key]['attribute']['pagebreak'] = 'true'; - } elseif ($dom[$key]['style']['page-break-before'] == 'left') { - $dom[$key]['attribute']['pagebreak'] = 'left'; - } elseif ($dom[$key]['style']['page-break-before'] == 'right') { - $dom[$key]['attribute']['pagebreak'] = 'right'; - } - } - // page-break-after - if (isset($dom[$key]['style']['page-break-after'])) { - if ($dom[$key]['style']['page-break-after'] == 'always') { - $dom[$key]['attribute']['pagebreakafter'] = 'true'; - } elseif ($dom[$key]['style']['page-break-after'] == 'left') { - $dom[$key]['attribute']['pagebreakafter'] = 'left'; - } elseif ($dom[$key]['style']['page-break-after'] == 'right') { - $dom[$key]['attribute']['pagebreakafter'] = 'right'; - } - } - } - if (isset($dom[$key]['attribute']['display'])) { - $dom[$key]['hide'] = (trim(strtolower($dom[$key]['attribute']['display'])) == 'none'); - } - if (isset($dom[$key]['attribute']['border']) AND ($dom[$key]['attribute']['border'] != 0)) { - $borderstyle = $this->getCSSBorderStyle($dom[$key]['attribute']['border'].' solid black'); - if (!empty($borderstyle)) { - $dom[$key]['border']['LTRB'] = $borderstyle; - } - } - // check for font tag - if ($dom[$key]['value'] == 'font') { - // font family - if (isset($dom[$key]['attribute']['face'])) { - $dom[$key]['fontname'] = $this->getFontFamilyName($dom[$key]['attribute']['face']); - } - // font size - if (isset($dom[$key]['attribute']['size'])) { - if ($key > 0) { - if ($dom[$key]['attribute']['size'][0] == '+') { - $dom[$key]['fontsize'] = $dom[($dom[$key]['parent'])]['fontsize'] + intval(substr($dom[$key]['attribute']['size'], 1)); - } elseif ($dom[$key]['attribute']['size'][0] == '-') { - $dom[$key]['fontsize'] = $dom[($dom[$key]['parent'])]['fontsize'] - intval(substr($dom[$key]['attribute']['size'], 1)); - } else { - $dom[$key]['fontsize'] = intval($dom[$key]['attribute']['size']); - } - } else { - $dom[$key]['fontsize'] = intval($dom[$key]['attribute']['size']); - } - } - } - // force natural alignment for lists - if ((($dom[$key]['value'] == 'ul') OR ($dom[$key]['value'] == 'ol') OR ($dom[$key]['value'] == 'dl')) - AND (!isset($dom[$key]['align']) OR TCPDF_STATIC::empty_string($dom[$key]['align']) OR ($dom[$key]['align'] != 'J'))) { - if ($this->rtl) { - $dom[$key]['align'] = 'R'; - } else { - $dom[$key]['align'] = 'L'; - } - } - if (($dom[$key]['value'] == 'small') OR ($dom[$key]['value'] == 'sup') OR ($dom[$key]['value'] == 'sub')) { - if (!isset($dom[$key]['attribute']['size']) AND !isset($dom[$key]['style']['font-size'])) { - $dom[$key]['fontsize'] = $dom[$key]['fontsize'] * K_SMALL_RATIO; - } - } - if (($dom[$key]['value'] == 'strong') OR ($dom[$key]['value'] == 'b')) { - $dom[$key]['fontstyle'] .= 'B'; - } - if (($dom[$key]['value'] == 'em') OR ($dom[$key]['value'] == 'i')) { - $dom[$key]['fontstyle'] .= 'I'; - } - if ($dom[$key]['value'] == 'u') { - $dom[$key]['fontstyle'] .= 'U'; - } - if (($dom[$key]['value'] == 'del') OR ($dom[$key]['value'] == 's') OR ($dom[$key]['value'] == 'strike')) { - $dom[$key]['fontstyle'] .= 'D'; - } - if (!isset($dom[$key]['style']['text-decoration']) AND ($dom[$key]['value'] == 'a')) { - $dom[$key]['fontstyle'] = $this->htmlLinkFontStyle; - } - if (($dom[$key]['value'] == 'pre') OR ($dom[$key]['value'] == 'tt')) { - $dom[$key]['fontname'] = $this->default_monospaced_font; - } - if (!empty($dom[$key]['value']) AND ($dom[$key]['value'][0] == 'h') AND (intval($dom[$key]['value'][1]) > 0) AND (intval($dom[$key]['value'][1]) < 7)) { - // headings h1, h2, h3, h4, h5, h6 - if (!isset($dom[$key]['attribute']['size']) AND !isset($dom[$key]['style']['font-size'])) { - $headsize = (4 - intval($dom[$key]['value'][1])) * 2; - $dom[$key]['fontsize'] = $dom[0]['fontsize'] + $headsize; - } - if (!isset($dom[$key]['style']['font-weight'])) { - $dom[$key]['fontstyle'] .= 'B'; - } - } - if (($dom[$key]['value'] == 'table')) { - $dom[$key]['rows'] = 0; // number of rows - $dom[$key]['trids'] = array(); // IDs of TR elements - $dom[$key]['thead'] = ''; // table header rows - } - if (($dom[$key]['value'] == 'tr')) { - $dom[$key]['cols'] = 0; - if ($thead) { - $dom[$key]['thead'] = true; - // rows on thead block are printed as a separate table - } else { - $dom[$key]['thead'] = false; - // store the number of rows on table element - ++$dom[($dom[$key]['parent'])]['rows']; - // store the TR elements IDs on table element - array_push($dom[($dom[$key]['parent'])]['trids'], $key); - } - } - if (($dom[$key]['value'] == 'th') OR ($dom[$key]['value'] == 'td')) { - if (isset($dom[$key]['attribute']['colspan'])) { - $colspan = intval($dom[$key]['attribute']['colspan']); - } else { - $colspan = 1; - } - $dom[$key]['attribute']['colspan'] = $colspan; - $dom[($dom[$key]['parent'])]['cols'] += $colspan; - } - // text direction - if (isset($dom[$key]['attribute']['dir'])) { - $dom[$key]['dir'] = $dom[$key]['attribute']['dir']; - } - // set foreground color attribute - if (isset($dom[$key]['attribute']['color']) AND (!TCPDF_STATIC::empty_string($dom[$key]['attribute']['color']))) { - $dom[$key]['fgcolor'] = TCPDF_COLORS::convertHTMLColorToDec($dom[$key]['attribute']['color'], $this->spot_colors); - } elseif (!isset($dom[$key]['style']['color']) AND ($dom[$key]['value'] == 'a')) { - $dom[$key]['fgcolor'] = $this->htmlLinkColorArray; - } - // set background color attribute - if (isset($dom[$key]['attribute']['bgcolor']) AND (!TCPDF_STATIC::empty_string($dom[$key]['attribute']['bgcolor']))) { - $dom[$key]['bgcolor'] = TCPDF_COLORS::convertHTMLColorToDec($dom[$key]['attribute']['bgcolor'], $this->spot_colors); - } - // set stroke color attribute - if (isset($dom[$key]['attribute']['strokecolor']) AND (!TCPDF_STATIC::empty_string($dom[$key]['attribute']['strokecolor']))) { - $dom[$key]['strokecolor'] = TCPDF_COLORS::convertHTMLColorToDec($dom[$key]['attribute']['strokecolor'], $this->spot_colors); - } - // check for width attribute - if (isset($dom[$key]['attribute']['width'])) { - $dom[$key]['width'] = $dom[$key]['attribute']['width']; - } - // check for height attribute - if (isset($dom[$key]['attribute']['height'])) { - $dom[$key]['height'] = $dom[$key]['attribute']['height']; - } - // check for text alignment - if (isset($dom[$key]['attribute']['align']) AND (!TCPDF_STATIC::empty_string($dom[$key]['attribute']['align'])) AND ($dom[$key]['value'] !== 'img')) { - $dom[$key]['align'] = strtoupper($dom[$key]['attribute']['align'][0]); - } - // check for text rendering mode (the following attributes do not exist in HTML) - if (isset($dom[$key]['attribute']['stroke'])) { - // font stroke width - $dom[$key]['stroke'] = $this->getHTMLUnitToUnits($dom[$key]['attribute']['stroke'], $dom[$key]['fontsize'], 'pt', true); - } - if (isset($dom[$key]['attribute']['fill'])) { - // font fill - if ($dom[$key]['attribute']['fill'] == 'true') { - $dom[$key]['fill'] = true; - } else { - $dom[$key]['fill'] = false; - } - } - if (isset($dom[$key]['attribute']['clip'])) { - // clipping mode - if ($dom[$key]['attribute']['clip'] == 'true') { - $dom[$key]['clip'] = true; - } else { - $dom[$key]['clip'] = false; - } - } - } // end opening tag - } else { - // text - $dom[$key]['tag'] = false; - $dom[$key]['block'] = false; - $dom[$key]['parent'] = end($level); - $dom[$key]['dir'] = $dom[$dom[$key]['parent']]['dir']; - if (!empty($dom[$dom[$key]['parent']]['text-transform'])) { - // text-transform for unicode requires mb_convert_case (Multibyte String Functions) - if (function_exists('mb_convert_case')) { - $ttm = array('capitalize' => MB_CASE_TITLE, 'uppercase' => MB_CASE_UPPER, 'lowercase' => MB_CASE_LOWER); - if (isset($ttm[$dom[$dom[$key]['parent']]['text-transform']])) { - $element = mb_convert_case($element, $ttm[$dom[$dom[$key]['parent']]['text-transform']], $this->encoding); - } - } elseif (!$this->isunicode) { - switch ($dom[$dom[$key]['parent']]['text-transform']) { - case 'capitalize': { - $element = ucwords(strtolower($element)); - break; - } - case 'uppercase': { - $element = strtoupper($element); - break; - } - case 'lowercase': { - $element = strtolower($element); - break; - } - } - } - } - $dom[$key]['value'] = stripslashes($this->unhtmlentities($element)); - } - ++$elkey; - ++$key; - } - return $dom; - } - - /** - * Returns the string used to find spaces - * @return string - * @protected - * @author Nicola Asuni - * @since 4.8.024 (2010-01-15) - */ - protected function getSpaceString() { - $spacestr = chr(32); - if ($this->isUnicodeFont()) { - $spacestr = chr(0).chr(32); - } - return $spacestr; - } - - /** - * Return an hash code used to ensure that the serialized data has been generated by this TCPDF instance. - * @param $data (string) serialized data - * @return string - * @public static - */ - protected function getHashForTCPDFtagParams($data) { - return md5(strlen($data).$this->file_id.$data); - } - - /** - * Serialize an array of parameters to be used with TCPDF tag in HTML code. - * @param $data (array) parameters array - * @return string containing serialized data - * @public static - */ - public function serializeTCPDFtagParameters($data) { - $encoded = urlencode(json_encode($data)); - return $this->getHashForTCPDFtagParams($encoded).$encoded; - } - - /** - * Unserialize parameters to be used with TCPDF tag in HTML code. - * @param $data (string) serialized data - * @return array containing unserialized data - * @protected static - */ - protected function unserializeTCPDFtagParameters($data) { - $hash = substr($data, 0, 32); - $encoded = substr($data, 32); - if ($hash != $this->getHashForTCPDFtagParams($encoded)) { - $this->Error('Invalid parameters'); - } - return json_decode(urldecode($encoded), true); - } - - /** - * Prints a cell (rectangular area) with optional borders, background color and html text string. - * The upper-left corner of the cell corresponds to the current position. After the call, the current position moves to the right or to the next line.
    - * If automatic page breaking is enabled and the cell goes beyond the limit, a page break is done before outputting. - * IMPORTANT: The HTML must be well formatted - try to clean-up it using an application like HTML-Tidy before submitting. - * Supported tags are: a, b, blockquote, br, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, img, li, ol, p, pre, small, span, strong, sub, sup, table, tcpdf, td, th, thead, tr, tt, u, ul - * NOTE: all the HTML attributes must be enclosed in double-quote. - * @param $w (float) Cell width. If 0, the cell extends up to the right margin. - * @param $h (float) Cell minimum height. The cell extends automatically if needed. - * @param $x (float) upper-left corner X coordinate - * @param $y (float) upper-left corner Y coordinate - * @param $html (string) html text to print. Default value: empty string. - * @param $border (mixed) Indicates if borders must be drawn around the cell. The value can be a number:
    • 0: no border (default)
    • 1: frame
    or a string containing some or all of the following characters (in any order):
    • L: left
    • T: top
    • R: right
    • B: bottom
    or an array of line styles for each border group - for example: array('LTRB' => array('width' => 2, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0))) - * @param $ln (int) Indicates where the current position should go after the call. Possible values are:
    • 0: to the right (or left for RTL language)
    • 1: to the beginning of the next line
    • 2: below
    -Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value: 0. - * @param $fill (boolean) Indicates if the cell background must be painted (true) or transparent (false). - * @param $reseth (boolean) if true reset the last cell height (default true). - * @param $align (string) Allows to center or align the text. Possible values are:
    • L : left align
    • C : center
    • R : right align
    • '' : empty string : left for LTR or right for RTL
    - * @param $autopadding (boolean) if true, uses internal padding and automatically adjust it to account for line width. - * @see Multicell(), writeHTML() - * @public - */ - public function writeHTMLCell($w, $h, $x, $y, $html='', $border=0, $ln=0, $fill=false, $reseth=true, $align='', $autopadding=true) { - return $this->MultiCell($w, $h, $html, $border, $align, $fill, $ln, $x, $y, $reseth, 0, true, $autopadding, 0, 'T', false); - } - - /** - * Allows to preserve some HTML formatting (limited support).
    - * IMPORTANT: The HTML must be well formatted - try to clean-up it using an application like HTML-Tidy before submitting. - * Supported tags are: a, b, blockquote, br, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, img, li, ol, p, pre, small, span, strong, sub, sup, table, tcpdf, td, th, thead, tr, tt, u, ul - * NOTE: all the HTML attributes must be enclosed in double-quote. - * @param $html (string) text to display - * @param $ln (boolean) if true add a new line after text (default = true) - * @param $fill (boolean) Indicates if the background must be painted (true) or transparent (false). - * @param $reseth (boolean) if true reset the last cell height (default false). - * @param $cell (boolean) if true add the current left (or right for RTL) padding to each Write (default false). - * @param $align (string) Allows to center or align the text. Possible values are:
    • L : left align
    • C : center
    • R : right align
    • '' : empty string : left for LTR or right for RTL
    - * @public - */ - public function writeHTML($html, $ln=true, $fill=false, $reseth=false, $cell=false, $align='') { - $gvars = $this->getGraphicVars(); - // store current values - $prev_cell_margin = $this->cell_margin; - $prev_cell_padding = $this->cell_padding; - $prevPage = $this->page; - $prevlMargin = $this->lMargin; - $prevrMargin = $this->rMargin; - $curfontname = $this->FontFamily; - $curfontstyle = $this->FontStyle; - $curfontsize = $this->FontSizePt; - $curfontascent = $this->getFontAscent($curfontname, $curfontstyle, $curfontsize); - $curfontdescent = $this->getFontDescent($curfontname, $curfontstyle, $curfontsize); - $curfontstretcing = $this->font_stretching; - $curfonttracking = $this->font_spacing; - $this->newline = true; - $newline = true; - $startlinepage = $this->page; - $minstartliney = $this->y; - $maxbottomliney = 0; - $startlinex = $this->x; - $startliney = $this->y; - $yshift = 0; - $loop = 0; - $curpos = 0; - $this_method_vars = array(); - $undo = false; - $fontaligned = false; - $reverse_dir = false; // true when the text direction is reversed - $this->premode = false; - if ($this->inxobj) { - // we are inside an XObject template - $pask = count($this->xobjects[$this->xobjid]['annotations']); - } elseif (isset($this->PageAnnots[$this->page])) { - $pask = count($this->PageAnnots[$this->page]); - } else { - $pask = 0; - } - if ($this->inxobj) { - // we are inside an XObject template - $startlinepos = strlen($this->xobjects[$this->xobjid]['outdata']); - } elseif (!$this->InFooter) { - if (isset($this->footerlen[$this->page])) { - $this->footerpos[$this->page] = $this->pagelen[$this->page] - $this->footerlen[$this->page]; - } else { - $this->footerpos[$this->page] = $this->pagelen[$this->page]; - } - $startlinepos = $this->footerpos[$this->page]; - } else { - // we are inside the footer - $startlinepos = $this->pagelen[$this->page]; - } - $lalign = $align; - $plalign = $align; - if ($this->rtl) { - $w = $this->x - $this->lMargin; - } else { - $w = $this->w - $this->rMargin - $this->x; - } - $w -= ($this->cell_padding['L'] + $this->cell_padding['R']); - if ($cell) { - if ($this->rtl) { - $this->x -= $this->cell_padding['R']; - $this->lMargin += $this->cell_padding['L']; - } else { - $this->x += $this->cell_padding['L']; - $this->rMargin += $this->cell_padding['R']; - } - } - if ($this->customlistindent >= 0) { - $this->listindent = $this->customlistindent; - } else { - $this->listindent = $this->GetStringWidth('000000'); - } - $this->listindentlevel = 0; - // save previous states - $prev_cell_height_ratio = $this->cell_height_ratio; - $prev_listnum = $this->listnum; - $prev_listordered = $this->listordered; - $prev_listcount = $this->listcount; - $prev_lispacer = $this->lispacer; - $this->listnum = 0; - $this->listordered = array(); - $this->listcount = array(); - $this->lispacer = ''; - if ((TCPDF_STATIC::empty_string($this->lasth)) OR ($reseth)) { - // reset row height - $this->resetLastH(); - } - $dom = $this->getHtmlDomArray($html); - $maxel = count($dom); - $key = 0; - while ($key < $maxel) { - if ($dom[$key]['tag'] AND $dom[$key]['opening'] AND $dom[$key]['hide']) { - // store the node key - $hidden_node_key = $key; - if ($dom[$key]['self']) { - // skip just this self-closing tag - ++$key; - } else { - // skip this and all children tags - while (($key < $maxel) AND (!$dom[$key]['tag'] OR $dom[$key]['opening'] OR ($dom[$key]['parent'] != $hidden_node_key))) { - // skip hidden objects - ++$key; - } - ++$key; - } - } - if ($dom[$key]['tag'] AND isset($dom[$key]['attribute']['pagebreak'])) { - // check for pagebreak - if (($dom[$key]['attribute']['pagebreak'] == 'true') OR ($dom[$key]['attribute']['pagebreak'] == 'left') OR ($dom[$key]['attribute']['pagebreak'] == 'right')) { - // add a page (or trig AcceptPageBreak() for multicolumn mode) - $this->checkPageBreak($this->PageBreakTrigger + 1); - $this->htmlvspace = ($this->PageBreakTrigger + 1); - } - if ((($dom[$key]['attribute']['pagebreak'] == 'left') AND (((!$this->rtl) AND (($this->page % 2) == 0)) OR (($this->rtl) AND (($this->page % 2) != 0)))) - OR (($dom[$key]['attribute']['pagebreak'] == 'right') AND (((!$this->rtl) AND (($this->page % 2) != 0)) OR (($this->rtl) AND (($this->page % 2) == 0))))) { - // add a page (or trig AcceptPageBreak() for multicolumn mode) - $this->checkPageBreak($this->PageBreakTrigger + 1); - $this->htmlvspace = ($this->PageBreakTrigger + 1); - } - } - if ($dom[$key]['tag'] AND $dom[$key]['opening'] AND isset($dom[$key]['attribute']['nobr']) AND ($dom[$key]['attribute']['nobr'] == 'true')) { - if (isset($dom[($dom[$key]['parent'])]['attribute']['nobr']) AND ($dom[($dom[$key]['parent'])]['attribute']['nobr'] == 'true')) { - $dom[$key]['attribute']['nobr'] = false; - } else { - // store current object - $this->startTransaction(); - // save this method vars - $this_method_vars['html'] = $html; - $this_method_vars['ln'] = $ln; - $this_method_vars['fill'] = $fill; - $this_method_vars['reseth'] = $reseth; - $this_method_vars['cell'] = $cell; - $this_method_vars['align'] = $align; - $this_method_vars['gvars'] = $gvars; - $this_method_vars['prevPage'] = $prevPage; - $this_method_vars['prev_cell_margin'] = $prev_cell_margin; - $this_method_vars['prev_cell_padding'] = $prev_cell_padding; - $this_method_vars['prevlMargin'] = $prevlMargin; - $this_method_vars['prevrMargin'] = $prevrMargin; - $this_method_vars['curfontname'] = $curfontname; - $this_method_vars['curfontstyle'] = $curfontstyle; - $this_method_vars['curfontsize'] = $curfontsize; - $this_method_vars['curfontascent'] = $curfontascent; - $this_method_vars['curfontdescent'] = $curfontdescent; - $this_method_vars['curfontstretcing'] = $curfontstretcing; - $this_method_vars['curfonttracking'] = $curfonttracking; - $this_method_vars['minstartliney'] = $minstartliney; - $this_method_vars['maxbottomliney'] = $maxbottomliney; - $this_method_vars['yshift'] = $yshift; - $this_method_vars['startlinepage'] = $startlinepage; - $this_method_vars['startlinepos'] = $startlinepos; - $this_method_vars['startlinex'] = $startlinex; - $this_method_vars['startliney'] = $startliney; - $this_method_vars['newline'] = $newline; - $this_method_vars['loop'] = $loop; - $this_method_vars['curpos'] = $curpos; - $this_method_vars['pask'] = $pask; - $this_method_vars['lalign'] = $lalign; - $this_method_vars['plalign'] = $plalign; - $this_method_vars['w'] = $w; - $this_method_vars['prev_cell_height_ratio'] = $prev_cell_height_ratio; - $this_method_vars['prev_listnum'] = $prev_listnum; - $this_method_vars['prev_listordered'] = $prev_listordered; - $this_method_vars['prev_listcount'] = $prev_listcount; - $this_method_vars['prev_lispacer'] = $prev_lispacer; - $this_method_vars['fontaligned'] = $fontaligned; - $this_method_vars['key'] = $key; - $this_method_vars['dom'] = $dom; - } - } - // print THEAD block - if (($dom[$key]['value'] == 'tr') AND isset($dom[$key]['thead']) AND $dom[$key]['thead']) { - if (isset($dom[$key]['parent']) AND isset($dom[$dom[$key]['parent']]['thead']) AND !TCPDF_STATIC::empty_string($dom[$dom[$key]['parent']]['thead'])) { - $this->inthead = true; - // print table header (thead) - $this->writeHTML($this->thead, false, false, false, false, ''); - // check if we are on a new page or on a new column - if (($this->y < $this->start_transaction_y) OR ($this->checkPageBreak($this->lasth, '', false))) { - // we are on a new page or on a new column and the total object height is less than the available vertical space. - // restore previous object - $this->rollbackTransaction(true); - // restore previous values - foreach ($this_method_vars as $vkey => $vval) { - $$vkey = $vval; - } - // disable table header - $tmp_thead = $this->thead; - $this->thead = ''; - // add a page (or trig AcceptPageBreak() for multicolumn mode) - $pre_y = $this->y; - if ((!$this->checkPageBreak($this->PageBreakTrigger + 1)) AND ($this->y < $pre_y)) { - // fix for multicolumn mode - $startliney = $this->y; - } - $this->start_transaction_page = $this->page; - $this->start_transaction_y = $this->y; - // restore table header - $this->thead = $tmp_thead; - // fix table border properties - if (isset($dom[$dom[$key]['parent']]['attribute']['cellspacing'])) { - $tmp_cellspacing = $this->getHTMLUnitToUnits($dom[$dom[$key]['parent']]['attribute']['cellspacing'], 1, 'px'); - } elseif (isset($dom[$dom[$key]['parent']]['border-spacing'])) { - $tmp_cellspacing = $dom[$dom[$key]['parent']]['border-spacing']['V']; - } else { - $tmp_cellspacing = 0; - } - $dom[$dom[$key]['parent']]['borderposition']['page'] = $this->page; - $dom[$dom[$key]['parent']]['borderposition']['column'] = $this->current_column; - $dom[$dom[$key]['parent']]['borderposition']['y'] = $this->y + $tmp_cellspacing; - $xoffset = ($this->x - $dom[$dom[$key]['parent']]['borderposition']['x']); - $dom[$dom[$key]['parent']]['borderposition']['x'] += $xoffset; - $dom[$dom[$key]['parent']]['borderposition']['xmax'] += $xoffset; - // print table header (thead) - $this->writeHTML($this->thead, false, false, false, false, ''); - } - } - // move $key index forward to skip THEAD block - while ( ($key < $maxel) AND (!( - ($dom[$key]['tag'] AND $dom[$key]['opening'] AND ($dom[$key]['value'] == 'tr') AND (!isset($dom[$key]['thead']) OR !$dom[$key]['thead'])) - OR ($dom[$key]['tag'] AND (!$dom[$key]['opening']) AND ($dom[$key]['value'] == 'table'))) )) { - ++$key; - } - } - if ($dom[$key]['tag'] OR ($key == 0)) { - if ((($dom[$key]['value'] == 'table') OR ($dom[$key]['value'] == 'tr')) AND (isset($dom[$key]['align']))) { - $dom[$key]['align'] = ($this->rtl) ? 'R' : 'L'; - } - // vertically align image in line - if ((!$this->newline) AND ($dom[$key]['value'] == 'img') AND (isset($dom[$key]['height'])) AND ($dom[$key]['height'] > 0)) { - // get image height - $imgh = $this->getHTMLUnitToUnits($dom[$key]['height'], ($dom[$key]['fontsize'] / $this->k), 'px'); - $autolinebreak = false; - if (!empty($dom[$key]['width'])) { - $imgw = $this->getHTMLUnitToUnits($dom[$key]['width'], ($dom[$key]['fontsize'] / $this->k), 'px', false); - if (($imgw <= ($this->w - $this->lMargin - $this->rMargin - $this->cell_padding['L'] - $this->cell_padding['R'])) - AND ((($this->rtl) AND (($this->x - $imgw) < ($this->lMargin + $this->cell_padding['L']))) - OR ((!$this->rtl) AND (($this->x + $imgw) > ($this->w - $this->rMargin - $this->cell_padding['R']))))) { - // add automatic line break - $autolinebreak = true; - $this->Ln('', $cell); - if ((!$dom[($key-1)]['tag']) AND ($dom[($key-1)]['value'] == ' ')) { - // go back to evaluate this line break - --$key; - } - } - } - if (!$autolinebreak) { - if ($this->inPageBody()) { - $pre_y = $this->y; - // check for page break - if ((!$this->checkPageBreak($imgh)) AND ($this->y < $pre_y)) { - // fix for multicolumn mode - $startliney = $this->y; - } - } - if ($this->page > $startlinepage) { - // fix line splitted over two pages - if (isset($this->footerlen[$startlinepage])) { - $curpos = $this->pagelen[$startlinepage] - $this->footerlen[$startlinepage]; - } - // line to be moved one page forward - $pagebuff = $this->getPageBuffer($startlinepage); - $linebeg = substr($pagebuff, $startlinepos, ($curpos - $startlinepos)); - $tstart = substr($pagebuff, 0, $startlinepos); - $tend = substr($this->getPageBuffer($startlinepage), $curpos); - // remove line from previous page - $this->setPageBuffer($startlinepage, $tstart.''.$tend); - $pagebuff = $this->getPageBuffer($this->page); - $tstart = substr($pagebuff, 0, $this->cntmrk[$this->page]); - $tend = substr($pagebuff, $this->cntmrk[$this->page]); - // add line start to current page - $yshift = ($minstartliney - $this->y); - if ($fontaligned) { - $yshift += ($curfontsize / $this->k); - } - $try = sprintf('1 0 0 1 0 %F cm', ($yshift * $this->k)); - $this->setPageBuffer($this->page, $tstart."\nq\n".$try."\n".$linebeg."\nQ\n".$tend); - // shift the annotations and links - if (isset($this->PageAnnots[$this->page])) { - $next_pask = count($this->PageAnnots[$this->page]); - } else { - $next_pask = 0; - } - if (isset($this->PageAnnots[$startlinepage])) { - foreach ($this->PageAnnots[$startlinepage] as $pak => $pac) { - if ($pak >= $pask) { - $this->PageAnnots[$this->page][] = $pac; - unset($this->PageAnnots[$startlinepage][$pak]); - $npak = count($this->PageAnnots[$this->page]) - 1; - $this->PageAnnots[$this->page][$npak]['y'] -= $yshift; - } - } - } - $pask = $next_pask; - $startlinepos = $this->cntmrk[$this->page]; - $startlinepage = $this->page; - $startliney = $this->y; - $this->newline = false; - } - $this->y += ($this->getCellHeight($curfontsize / $this->k) - ($curfontdescent * $this->cell_height_ratio) - $imgh); - $minstartliney = min($this->y, $minstartliney); - $maxbottomliney = ($startliney + $this->getCellHeight($curfontsize / $this->k)); - } - } elseif (isset($dom[$key]['fontname']) OR isset($dom[$key]['fontstyle']) OR isset($dom[$key]['fontsize']) OR isset($dom[$key]['line-height'])) { - // account for different font size - $pfontname = $curfontname; - $pfontstyle = $curfontstyle; - $pfontsize = $curfontsize; - $fontname = (isset($dom[$key]['fontname']) ? $dom[$key]['fontname'] : $curfontname); - $fontstyle = (isset($dom[$key]['fontstyle']) ? $dom[$key]['fontstyle'] : $curfontstyle); - $fontsize = (isset($dom[$key]['fontsize']) ? $dom[$key]['fontsize'] : $curfontsize); - $fontascent = $this->getFontAscent($fontname, $fontstyle, $fontsize); - $fontdescent = $this->getFontDescent($fontname, $fontstyle, $fontsize); - if (($fontname != $curfontname) OR ($fontstyle != $curfontstyle) OR ($fontsize != $curfontsize) - OR ($this->cell_height_ratio != $dom[$key]['line-height']) - OR ($dom[$key]['tag'] AND $dom[$key]['opening'] AND ($dom[$key]['value'] == 'li')) ) { - if (($key < ($maxel - 1)) AND ( - ($dom[$key]['tag'] AND $dom[$key]['opening'] AND ($dom[$key]['value'] == 'li')) - OR ($this->cell_height_ratio != $dom[$key]['line-height']) - OR (!$this->newline AND is_numeric($fontsize) AND is_numeric($curfontsize) - AND ($fontsize >= 0) AND ($curfontsize >= 0) - AND (($fontsize != $curfontsize) OR ($fontstyle != $curfontstyle) OR ($fontname != $curfontname))) - )) { - if ($this->page > $startlinepage) { - // fix lines splitted over two pages - if (isset($this->footerlen[$startlinepage])) { - $curpos = $this->pagelen[$startlinepage] - $this->footerlen[$startlinepage]; - } - // line to be moved one page forward - $pagebuff = $this->getPageBuffer($startlinepage); - $linebeg = substr($pagebuff, $startlinepos, ($curpos - $startlinepos)); - $tstart = substr($pagebuff, 0, $startlinepos); - $tend = substr($this->getPageBuffer($startlinepage), $curpos); - // remove line start from previous page - $this->setPageBuffer($startlinepage, $tstart.''.$tend); - $pagebuff = $this->getPageBuffer($this->page); - $tstart = substr($pagebuff, 0, $this->cntmrk[$this->page]); - $tend = substr($pagebuff, $this->cntmrk[$this->page]); - // add line start to current page - $yshift = ($minstartliney - $this->y); - $try = sprintf('1 0 0 1 0 %F cm', ($yshift * $this->k)); - $this->setPageBuffer($this->page, $tstart."\nq\n".$try."\n".$linebeg."\nQ\n".$tend); - // shift the annotations and links - if (isset($this->PageAnnots[$this->page])) { - $next_pask = count($this->PageAnnots[$this->page]); - } else { - $next_pask = 0; - } - if (isset($this->PageAnnots[$startlinepage])) { - foreach ($this->PageAnnots[$startlinepage] as $pak => $pac) { - if ($pak >= $pask) { - $this->PageAnnots[$this->page][] = $pac; - unset($this->PageAnnots[$startlinepage][$pak]); - $npak = count($this->PageAnnots[$this->page]) - 1; - $this->PageAnnots[$this->page][$npak]['y'] -= $yshift; - } - } - } - $pask = $next_pask; - $startlinepos = $this->cntmrk[$this->page]; - $startlinepage = $this->page; - $startliney = $this->y; - } - if (!isset($dom[$key]['line-height'])) { - $dom[$key]['line-height'] = $this->cell_height_ratio; - } - if (!$dom[$key]['block']) { - if (!(isset($dom[($key + 1)]) AND $dom[($key + 1)]['tag'] AND (!$dom[($key + 1)]['opening']) AND ($dom[($key + 1)]['value'] != 'li') AND $dom[$key]['tag'] AND (!$dom[$key]['opening']))) { - $this->y += (((($curfontsize * $this->cell_height_ratio) - ($fontsize * $dom[$key]['line-height'])) / $this->k) + $curfontascent - $fontascent - $curfontdescent + $fontdescent) / 2; - } - if (($dom[$key]['value'] != 'sup') AND ($dom[$key]['value'] != 'sub')) { - $current_line_align_data = array($key, $minstartliney, $maxbottomliney); - if (isset($line_align_data) AND (($line_align_data[0] == ($key - 1)) OR (($line_align_data[0] == ($key - 2)) AND (isset($dom[($key - 1)])) AND (preg_match('/^([\s]+)$/', $dom[($key - 1)]['value']) > 0)))) { - $minstartliney = min($this->y, $line_align_data[1]); - $maxbottomliney = max(($this->y + $this->getCellHeight($fontsize / $this->k)), $line_align_data[2]); - } else { - $minstartliney = min($this->y, $minstartliney); - $maxbottomliney = max(($this->y + $this->getCellHeight($fontsize / $this->k)), $maxbottomliney); - } - $line_align_data = $current_line_align_data; - } - } - $this->cell_height_ratio = $dom[$key]['line-height']; - $fontaligned = true; - } - $this->SetFont($fontname, $fontstyle, $fontsize); - // reset row height - $this->resetLastH(); - $curfontname = $fontname; - $curfontstyle = $fontstyle; - $curfontsize = $fontsize; - $curfontascent = $fontascent; - $curfontdescent = $fontdescent; - } - } - // set text rendering mode - $textstroke = isset($dom[$key]['stroke']) ? $dom[$key]['stroke'] : $this->textstrokewidth; - $textfill = isset($dom[$key]['fill']) ? $dom[$key]['fill'] : (($this->textrendermode % 2) == 0); - $textclip = isset($dom[$key]['clip']) ? $dom[$key]['clip'] : ($this->textrendermode > 3); - $this->setTextRenderingMode($textstroke, $textfill, $textclip); - if (isset($dom[$key]['font-stretch']) AND ($dom[$key]['font-stretch'] !== false)) { - $this->setFontStretching($dom[$key]['font-stretch']); - } - if (isset($dom[$key]['letter-spacing']) AND ($dom[$key]['letter-spacing'] !== false)) { - $this->setFontSpacing($dom[$key]['letter-spacing']); - } - if (($plalign == 'J') AND $dom[$key]['block']) { - $plalign = ''; - } - // get current position on page buffer - $curpos = $this->pagelen[$startlinepage]; - if (isset($dom[$key]['bgcolor']) AND ($dom[$key]['bgcolor'] !== false)) { - $this->SetFillColorArray($dom[$key]['bgcolor']); - $wfill = true; - } else { - $wfill = $fill | false; - } - if (isset($dom[$key]['fgcolor']) AND ($dom[$key]['fgcolor'] !== false)) { - $this->SetTextColorArray($dom[$key]['fgcolor']); - } - if (isset($dom[$key]['strokecolor']) AND ($dom[$key]['strokecolor'] !== false)) { - $this->SetDrawColorArray($dom[$key]['strokecolor']); - } - if (isset($dom[$key]['align'])) { - $lalign = $dom[$key]['align']; - } - if (TCPDF_STATIC::empty_string($lalign)) { - $lalign = $align; - } - } - // align lines - if ($this->newline AND (strlen($dom[$key]['value']) > 0) AND ($dom[$key]['value'] != 'td') AND ($dom[$key]['value'] != 'th')) { - $newline = true; - $fontaligned = false; - // we are at the beginning of a new line - if (isset($startlinex)) { - $yshift = ($minstartliney - $startliney); - if (($yshift > 0) OR ($this->page > $startlinepage)) { - $yshift = 0; - } - $t_x = 0; - // the last line must be shifted to be aligned as requested - $linew = abs($this->endlinex - $startlinex); - if ($this->inxobj) { - // we are inside an XObject template - $pstart = substr($this->xobjects[$this->xobjid]['outdata'], 0, $startlinepos); - if (isset($opentagpos)) { - $midpos = $opentagpos; - } else { - $midpos = 0; - } - if ($midpos > 0) { - $pmid = substr($this->xobjects[$this->xobjid]['outdata'], $startlinepos, ($midpos - $startlinepos)); - $pend = substr($this->xobjects[$this->xobjid]['outdata'], $midpos); - } else { - $pmid = substr($this->xobjects[$this->xobjid]['outdata'], $startlinepos); - $pend = ''; - } - } else { - $pstart = substr($this->getPageBuffer($startlinepage), 0, $startlinepos); - if (isset($opentagpos) AND isset($this->footerlen[$startlinepage]) AND (!$this->InFooter)) { - $this->footerpos[$startlinepage] = $this->pagelen[$startlinepage] - $this->footerlen[$startlinepage]; - $midpos = min($opentagpos, $this->footerpos[$startlinepage]); - } elseif (isset($opentagpos)) { - $midpos = $opentagpos; - } elseif (isset($this->footerlen[$startlinepage]) AND (!$this->InFooter)) { - $this->footerpos[$startlinepage] = $this->pagelen[$startlinepage] - $this->footerlen[$startlinepage]; - $midpos = $this->footerpos[$startlinepage]; - } else { - $midpos = 0; - } - if ($midpos > 0) { - $pmid = substr($this->getPageBuffer($startlinepage), $startlinepos, ($midpos - $startlinepos)); - $pend = substr($this->getPageBuffer($startlinepage), $midpos); - } else { - $pmid = substr($this->getPageBuffer($startlinepage), $startlinepos); - $pend = ''; - } - } - if ((isset($plalign) AND ((($plalign == 'C') OR ($plalign == 'J') OR (($plalign == 'R') AND (!$this->rtl)) OR (($plalign == 'L') AND ($this->rtl)))))) { - // calculate shifting amount - $tw = $w; - if (($plalign == 'J') AND $this->isRTLTextDir() AND ($this->num_columns > 1)) { - $tw += $this->cell_padding['R']; - } - if ($this->lMargin != $prevlMargin) { - $tw += ($prevlMargin - $this->lMargin); - } - if ($this->rMargin != $prevrMargin) { - $tw += ($prevrMargin - $this->rMargin); - } - $one_space_width = $this->GetStringWidth(chr(32)); - $no = 0; // number of spaces on a line contained on a single block - if ($this->isRTLTextDir()) { // RTL - // remove left space if exist - $pos1 = TCPDF_STATIC::revstrpos($pmid, '[('); - if ($pos1 > 0) { - $pos1 = intval($pos1); - if ($this->isUnicodeFont()) { - $pos2 = intval(TCPDF_STATIC::revstrpos($pmid, '[('.chr(0).chr(32))); - $spacelen = 2; - } else { - $pos2 = intval(TCPDF_STATIC::revstrpos($pmid, '[('.chr(32))); - $spacelen = 1; - } - if ($pos1 == $pos2) { - $pmid = substr($pmid, 0, ($pos1 + 2)).substr($pmid, ($pos1 + 2 + $spacelen)); - if (substr($pmid, $pos1, 4) == '[()]') { - $linew -= $one_space_width; - } elseif ($pos1 == strpos($pmid, '[(')) { - $no = 1; - } - } - } - } else { // LTR - // remove right space if exist - $pos1 = TCPDF_STATIC::revstrpos($pmid, ')]'); - if ($pos1 > 0) { - $pos1 = intval($pos1); - if ($this->isUnicodeFont()) { - $pos2 = intval(TCPDF_STATIC::revstrpos($pmid, chr(0).chr(32).')]')) + 2; - $spacelen = 2; - } else { - $pos2 = intval(TCPDF_STATIC::revstrpos($pmid, chr(32).')]')) + 1; - $spacelen = 1; - } - if ($pos1 == $pos2) { - $pmid = substr($pmid, 0, ($pos1 - $spacelen)).substr($pmid, $pos1); - $linew -= $one_space_width; - } - } - } - $mdiff = ($tw - $linew); - if ($plalign == 'C') { - if ($this->rtl) { - $t_x = -($mdiff / 2); - } else { - $t_x = ($mdiff / 2); - } - } elseif ($plalign == 'R') { - // right alignment on LTR document - $t_x = $mdiff; - } elseif ($plalign == 'L') { - // left alignment on RTL document - $t_x = -$mdiff; - } elseif (($plalign == 'J') AND ($plalign == $lalign)) { - // Justification - if ($this->isRTLTextDir()) { - // align text on the left - $t_x = -$mdiff; - } - $ns = 0; // number of spaces - $pmidtemp = $pmid; - // escape special characters - $pmidtemp = preg_replace('/[\\\][\(]/x', '\\#!#OP#!#', $pmidtemp); - $pmidtemp = preg_replace('/[\\\][\)]/x', '\\#!#CP#!#', $pmidtemp); - // search spaces - if (preg_match_all('/\[\(([^\)]*)\)\]/x', $pmidtemp, $lnstring, PREG_PATTERN_ORDER)) { - $spacestr = $this->getSpaceString(); - $maxkk = count($lnstring[1]) - 1; - for ($kk=0; $kk <= $maxkk; ++$kk) { - // restore special characters - $lnstring[1][$kk] = str_replace('#!#OP#!#', '(', $lnstring[1][$kk]); - $lnstring[1][$kk] = str_replace('#!#CP#!#', ')', $lnstring[1][$kk]); - // store number of spaces on the strings - $lnstring[2][$kk] = substr_count($lnstring[1][$kk], $spacestr); - // count total spaces on line - $ns += $lnstring[2][$kk]; - $lnstring[3][$kk] = $ns; - } - if ($ns == 0) { - $ns = 1; - } - // calculate additional space to add to each existing space - $spacewidth = ($mdiff / ($ns - $no)) * $this->k; - if ($this->FontSize <= 0) { - $this->FontSize = 1; - } - $spacewidthu = -1000 * ($mdiff + (($ns + $no) * $one_space_width)) / $ns / $this->FontSize; - if ($this->font_spacing != 0) { - // fixed spacing mode - $osw = -1000 * $this->font_spacing / $this->FontSize; - $spacewidthu += $osw; - } - $nsmax = $ns; - $ns = 0; - reset($lnstring); - $offset = 0; - $strcount = 0; - $prev_epsposbeg = 0; - $textpos = 0; - if ($this->isRTLTextDir()) { - $textpos = $this->wPt; - } - while (preg_match('/([0-9\.\+\-]*)[\s](Td|cm|m|l|c|re)[\s]/x', $pmid, $strpiece, PREG_OFFSET_CAPTURE, $offset) == 1) { - // check if we are inside a string section '[( ... )]' - $stroffset = strpos($pmid, '[(', $offset); - if (($stroffset !== false) AND ($stroffset <= $strpiece[2][1])) { - // set offset to the end of string section - $offset = strpos($pmid, ')]', $stroffset); - while (($offset !== false) AND ($pmid[($offset - 1)] == '\\')) { - $offset = strpos($pmid, ')]', ($offset + 1)); - } - if ($offset === false) { - $this->Error('HTML Justification: malformed PDF code.'); - } - continue; - } - if ($this->isRTLTextDir()) { - $spacew = ($spacewidth * ($nsmax - $ns)); - } else { - $spacew = ($spacewidth * $ns); - } - $offset = $strpiece[2][1] + strlen($strpiece[2][0]); - $epsposend = strpos($pmid, $this->epsmarker.'Q', $offset); - if ($epsposend !== null) { - $epsposend += strlen($this->epsmarker.'Q'); - $epsposbeg = strpos($pmid, 'q'.$this->epsmarker, $offset); - if ($epsposbeg === null) { - $epsposbeg = strpos($pmid, 'q'.$this->epsmarker, ($prev_epsposbeg - 6)); - $prev_epsposbeg = $epsposbeg; - } - if (($epsposbeg > 0) AND ($epsposend > 0) AND ($offset > $epsposbeg) AND ($offset < $epsposend)) { - // shift EPS images - $trx = sprintf('1 0 0 1 %F 0 cm', $spacew); - $pmid_b = substr($pmid, 0, $epsposbeg); - $pmid_m = substr($pmid, $epsposbeg, ($epsposend - $epsposbeg)); - $pmid_e = substr($pmid, $epsposend); - $pmid = $pmid_b."\nq\n".$trx."\n".$pmid_m."\nQ\n".$pmid_e; - $offset = $epsposend; - continue; - } - } - $currentxpos = 0; - // shift blocks of code - switch ($strpiece[2][0]) { - case 'Td': - case 'cm': - case 'm': - case 'l': { - // get current X position - preg_match('/([0-9\.\+\-]*)[\s]('.$strpiece[1][0].')[\s]('.$strpiece[2][0].')([\s]*)/x', $pmid, $xmatches); - if (!isset($xmatches[1])) { - break; - } - $currentxpos = $xmatches[1]; - $textpos = $currentxpos; - if (($strcount <= $maxkk) AND ($strpiece[2][0] == 'Td')) { - $ns = $lnstring[3][$strcount]; - if ($this->isRTLTextDir()) { - $spacew = ($spacewidth * ($nsmax - $ns)); - } - ++$strcount; - } - // justify block - if (preg_match('/([0-9\.\+\-]*)[\s]('.$strpiece[1][0].')[\s]('.$strpiece[2][0].')([\s]*)/x', $pmid, $pmatch) == 1) { - $newpmid = sprintf('%F',(floatval($pmatch[1]) + $spacew)).' '.$pmatch[2].' x*#!#*x'.$pmatch[3].$pmatch[4]; - $pmid = str_replace($pmatch[0], $newpmid, $pmid); - unset($pmatch, $newpmid); - } - break; - } - case 're': { - // justify block - if (!TCPDF_STATIC::empty_string($this->lispacer)) { - $this->lispacer = ''; - break; - } - preg_match('/([0-9\.\+\-]*)[\s]([0-9\.\+\-]*)[\s]([0-9\.\+\-]*)[\s]('.$strpiece[1][0].')[\s](re)([\s]*)/x', $pmid, $xmatches); - if (!isset($xmatches[1])) { - break; - } - $currentxpos = $xmatches[1]; - $x_diff = 0; - $w_diff = 0; - if ($this->isRTLTextDir()) { // RTL - if ($currentxpos < $textpos) { - $x_diff = ($spacewidth * ($nsmax - $lnstring[3][$strcount])); - $w_diff = ($spacewidth * $lnstring[2][$strcount]); - } else { - if ($strcount > 0) { - $x_diff = ($spacewidth * ($nsmax - $lnstring[3][($strcount - 1)])); - $w_diff = ($spacewidth * $lnstring[2][($strcount - 1)]); - } - } - } else { // LTR - if ($currentxpos > $textpos) { - if ($strcount > 0) { - $x_diff = ($spacewidth * $lnstring[3][($strcount - 1)]); - } - $w_diff = ($spacewidth * $lnstring[2][$strcount]); - } else { - if ($strcount > 1) { - $x_diff = ($spacewidth * $lnstring[3][($strcount - 2)]); - } - if ($strcount > 0) { - $w_diff = ($spacewidth * $lnstring[2][($strcount - 1)]); - } - } - } - if (preg_match('/('.$xmatches[1].')[\s]('.$xmatches[2].')[\s]('.$xmatches[3].')[\s]('.$strpiece[1][0].')[\s](re)([\s]*)/x', $pmid, $pmatch) == 1) { - $newx = sprintf('%F',(floatval($pmatch[1]) + $x_diff)); - $neww = sprintf('%F',(floatval($pmatch[3]) + $w_diff)); - $newpmid = $newx.' '.$pmatch[2].' '.$neww.' '.$pmatch[4].' x*#!#*x'.$pmatch[5].$pmatch[6]; - $pmid = str_replace($pmatch[0], $newpmid, $pmid); - unset($pmatch, $newpmid, $newx, $neww); - } - break; - } - case 'c': { - // get current X position - preg_match('/([0-9\.\+\-]*)[\s]([0-9\.\+\-]*)[\s]([0-9\.\+\-]*)[\s]([0-9\.\+\-]*)[\s]([0-9\.\+\-]*)[\s]('.$strpiece[1][0].')[\s](c)([\s]*)/x', $pmid, $xmatches); - if (!isset($xmatches[1])) { - break; - } - $currentxpos = $xmatches[1]; - // justify block - if (preg_match('/('.$xmatches[1].')[\s]('.$xmatches[2].')[\s]('.$xmatches[3].')[\s]('.$xmatches[4].')[\s]('.$xmatches[5].')[\s]('.$strpiece[1][0].')[\s](c)([\s]*)/x', $pmid, $pmatch) == 1) { - $newx1 = sprintf('%F',(floatval($pmatch[1]) + $spacew)); - $newx2 = sprintf('%F',(floatval($pmatch[3]) + $spacew)); - $newx3 = sprintf('%F',(floatval($pmatch[5]) + $spacew)); - $newpmid = $newx1.' '.$pmatch[2].' '.$newx2.' '.$pmatch[4].' '.$newx3.' '.$pmatch[6].' x*#!#*x'.$pmatch[7].$pmatch[8]; - $pmid = str_replace($pmatch[0], $newpmid, $pmid); - unset($pmatch, $newpmid, $newx1, $newx2, $newx3); - } - break; - } - } - // shift the annotations and links - $cxpos = ($currentxpos / $this->k); - $lmpos = ($this->lMargin + $this->cell_padding['L'] + $this->feps); - if ($this->inxobj) { - // we are inside an XObject template - foreach ($this->xobjects[$this->xobjid]['annotations'] as $pak => $pac) { - if (($pac['y'] >= $minstartliney) AND (($pac['x'] * $this->k) >= ($currentxpos - $this->feps)) AND (($pac['x'] * $this->k) <= ($currentxpos + $this->feps))) { - if ($cxpos > $lmpos) { - $this->xobjects[$this->xobjid]['annotations'][$pak]['x'] += ($spacew / $this->k); - $this->xobjects[$this->xobjid]['annotations'][$pak]['w'] += (($spacewidth * $pac['numspaces']) / $this->k); - } else { - $this->xobjects[$this->xobjid]['annotations'][$pak]['w'] += (($spacewidth * $pac['numspaces']) / $this->k); - } - break; - } - } - } elseif (isset($this->PageAnnots[$this->page])) { - foreach ($this->PageAnnots[$this->page] as $pak => $pac) { - if (($pac['y'] >= $minstartliney) AND (($pac['x'] * $this->k) >= ($currentxpos - $this->feps)) AND (($pac['x'] * $this->k) <= ($currentxpos + $this->feps))) { - if ($cxpos > $lmpos) { - $this->PageAnnots[$this->page][$pak]['x'] += ($spacew / $this->k); - $this->PageAnnots[$this->page][$pak]['w'] += (($spacewidth * $pac['numspaces']) / $this->k); - } else { - $this->PageAnnots[$this->page][$pak]['w'] += (($spacewidth * $pac['numspaces']) / $this->k); - } - break; - } - } - } - } // end of while - // remove markers - $pmid = str_replace('x*#!#*x', '', $pmid); - if ($this->isUnicodeFont()) { - // multibyte characters - $spacew = $spacewidthu; - if ($this->font_stretching != 100) { - // word spacing is affected by stretching - $spacew /= ($this->font_stretching / 100); - } - // escape special characters - $pos = 0; - $pmid = preg_replace('/[\\\][\(]/x', '\\#!#OP#!#', $pmid); - $pmid = preg_replace('/[\\\][\)]/x', '\\#!#CP#!#', $pmid); - if (preg_match_all('/\[\(([^\)]*)\)\]/x', $pmid, $pamatch) > 0) { - foreach($pamatch[0] as $pk => $pmatch) { - $replace = $pamatch[1][$pk]; - $replace = str_replace('#!#OP#!#', '(', $replace); - $replace = str_replace('#!#CP#!#', ')', $replace); - $newpmid = '[('.str_replace(chr(0).chr(32), ') '.sprintf('%F', $spacew).' (', $replace).')]'; - $pos = strpos($pmid, $pmatch, $pos); - if ($pos !== FALSE) { - $pmid = substr_replace($pmid, $newpmid, $pos, strlen($pmatch)); - } - ++$pos; - } - unset($pamatch); - } - if ($this->inxobj) { - // we are inside an XObject template - $this->xobjects[$this->xobjid]['outdata'] = $pstart."\n".$pmid."\n".$pend; - } else { - $this->setPageBuffer($startlinepage, $pstart."\n".$pmid."\n".$pend); - } - $endlinepos = strlen($pstart."\n".$pmid."\n"); - } else { - // non-unicode (single-byte characters) - if ($this->font_stretching != 100) { - // word spacing (Tw) is affected by stretching - $spacewidth /= ($this->font_stretching / 100); - } - $rs = sprintf('%F Tw', $spacewidth); - $pmid = preg_replace("/\[\(/x", $rs.' [(', $pmid); - if ($this->inxobj) { - // we are inside an XObject template - $this->xobjects[$this->xobjid]['outdata'] = $pstart."\n".$pmid."\nBT 0 Tw ET\n".$pend; - } else { - $this->setPageBuffer($startlinepage, $pstart."\n".$pmid."\nBT 0 Tw ET\n".$pend); - } - $endlinepos = strlen($pstart."\n".$pmid."\nBT 0 Tw ET\n"); - } - } - } // end of J - } // end if $startlinex - if (($t_x != 0) OR ($yshift < 0)) { - // shift the line - $trx = sprintf('1 0 0 1 %F %F cm', ($t_x * $this->k), ($yshift * $this->k)); - $pstart .= "\nq\n".$trx."\n".$pmid."\nQ\n"; - $endlinepos = strlen($pstart); - if ($this->inxobj) { - // we are inside an XObject template - $this->xobjects[$this->xobjid]['outdata'] = $pstart.$pend; - foreach ($this->xobjects[$this->xobjid]['annotations'] as $pak => $pac) { - if ($pak >= $pask) { - $this->xobjects[$this->xobjid]['annotations'][$pak]['x'] += $t_x; - $this->xobjects[$this->xobjid]['annotations'][$pak]['y'] -= $yshift; - } - } - } else { - $this->setPageBuffer($startlinepage, $pstart.$pend); - // shift the annotations and links - if (isset($this->PageAnnots[$this->page])) { - foreach ($this->PageAnnots[$this->page] as $pak => $pac) { - if ($pak >= $pask) { - $this->PageAnnots[$this->page][$pak]['x'] += $t_x; - $this->PageAnnots[$this->page][$pak]['y'] -= $yshift; - } - } - } - } - $this->y -= $yshift; - } - } - $pbrk = $this->checkPageBreak($this->lasth); - $this->newline = false; - $startlinex = $this->x; - $startliney = $this->y; - if ($dom[$dom[$key]['parent']]['value'] == 'sup') { - $startliney -= ((0.3 * $this->FontSizePt) / $this->k); - } elseif ($dom[$dom[$key]['parent']]['value'] == 'sub') { - $startliney -= (($this->FontSizePt / 0.7) / $this->k); - } else { - $minstartliney = $startliney; - $maxbottomliney = ($this->y + $this->getCellHeight($fontsize / $this->k)); - } - $startlinepage = $this->page; - if (isset($endlinepos) AND (!$pbrk)) { - $startlinepos = $endlinepos; - } else { - if ($this->inxobj) { - // we are inside an XObject template - $startlinepos = strlen($this->xobjects[$this->xobjid]['outdata']); - } elseif (!$this->InFooter) { - if (isset($this->footerlen[$this->page])) { - $this->footerpos[$this->page] = $this->pagelen[$this->page] - $this->footerlen[$this->page]; - } else { - $this->footerpos[$this->page] = $this->pagelen[$this->page]; - } - $startlinepos = $this->footerpos[$this->page]; - } else { - $startlinepos = $this->pagelen[$this->page]; - } - } - unset($endlinepos); - $plalign = $lalign; - if (isset($this->PageAnnots[$this->page])) { - $pask = count($this->PageAnnots[$this->page]); - } else { - $pask = 0; - } - if (!($dom[$key]['tag'] AND !$dom[$key]['opening'] AND ($dom[$key]['value'] == 'table') - AND (isset($this->emptypagemrk[$this->page])) - AND ($this->emptypagemrk[$this->page] == $this->pagelen[$this->page]))) { - $this->SetFont($fontname, $fontstyle, $fontsize); - if ($wfill) { - $this->SetFillColorArray($this->bgcolor); - } - } - } // end newline - if (isset($opentagpos)) { - unset($opentagpos); - } - if ($dom[$key]['tag']) { - if ($dom[$key]['opening']) { - // get text indentation (if any) - if (isset($dom[$key]['text-indent']) AND $dom[$key]['block']) { - $this->textindent = $dom[$key]['text-indent']; - $this->newline = true; - } - // table - if (($dom[$key]['value'] == 'table') AND isset($dom[$key]['cols']) AND ($dom[$key]['cols'] > 0)) { - // available page width - if ($this->rtl) { - $wtmp = $this->x - $this->lMargin; - } else { - $wtmp = $this->w - $this->rMargin - $this->x; - } - // get cell spacing - if (isset($dom[$key]['attribute']['cellspacing'])) { - $clsp = $this->getHTMLUnitToUnits($dom[$key]['attribute']['cellspacing'], 1, 'px'); - $cellspacing = array('H' => $clsp, 'V' => $clsp); - } elseif (isset($dom[$key]['border-spacing'])) { - $cellspacing = $dom[$key]['border-spacing']; - } else { - $cellspacing = array('H' => 0, 'V' => 0); - } - // table width - if (isset($dom[$key]['width'])) { - $table_width = $this->getHTMLUnitToUnits($dom[$key]['width'], $wtmp, 'px'); - } else { - $table_width = $wtmp; - } - $table_width -= (2 * $cellspacing['H']); - if (!$this->inthead) { - $this->y += $cellspacing['V']; - } - if ($this->rtl) { - $cellspacingx = -$cellspacing['H']; - } else { - $cellspacingx = $cellspacing['H']; - } - // total table width without cellspaces - $table_columns_width = ($table_width - ($cellspacing['H'] * ($dom[$key]['cols'] - 1))); - // minimum column width - $table_min_column_width = ($table_columns_width / $dom[$key]['cols']); - // array of custom column widths - $table_colwidths = array_fill(0, $dom[$key]['cols'], $table_min_column_width); - } - // table row - if ($dom[$key]['value'] == 'tr') { - // reset column counter - $colid = 0; - } - // table cell - if (($dom[$key]['value'] == 'td') OR ($dom[$key]['value'] == 'th')) { - $trid = $dom[$key]['parent']; - $table_el = $dom[$trid]['parent']; - if (!isset($dom[$table_el]['cols'])) { - $dom[$table_el]['cols'] = $dom[$trid]['cols']; - } - // store border info - $tdborder = 0; - if (isset($dom[$key]['border']) AND !empty($dom[$key]['border'])) { - $tdborder = $dom[$key]['border']; - } - $colspan = intval($dom[$key]['attribute']['colspan']); - if ($colspan <= 0) { - $colspan = 1; - } - $old_cell_padding = $this->cell_padding; - if (isset($dom[($dom[$trid]['parent'])]['attribute']['cellpadding'])) { - $crclpd = $this->getHTMLUnitToUnits($dom[($dom[$trid]['parent'])]['attribute']['cellpadding'], 1, 'px'); - $current_cell_padding = array('L' => $crclpd, 'T' => $crclpd, 'R' => $crclpd, 'B' => $crclpd); - } elseif (isset($dom[($dom[$trid]['parent'])]['padding'])) { - $current_cell_padding = $dom[($dom[$trid]['parent'])]['padding']; - } else { - $current_cell_padding = array('L' => 0, 'T' => 0, 'R' => 0, 'B' => 0); - } - $this->cell_padding = $current_cell_padding; - if (isset($dom[$key]['height'])) { - // minimum cell height - $cellh = $this->getHTMLUnitToUnits($dom[$key]['height'], 0, 'px'); - } else { - $cellh = 0; - } - if (isset($dom[$key]['content'])) { - $cell_content = $dom[$key]['content']; - } else { - $cell_content = ' '; - } - $tagtype = $dom[$key]['value']; - $parentid = $key; - while (($key < $maxel) AND (!(($dom[$key]['tag']) AND (!$dom[$key]['opening']) AND ($dom[$key]['value'] == $tagtype) AND ($dom[$key]['parent'] == $parentid)))) { - // move $key index forward - ++$key; - } - if (!isset($dom[$trid]['startpage'])) { - $dom[$trid]['startpage'] = $this->page; - } else { - $this->setPage($dom[$trid]['startpage']); - } - if (!isset($dom[$trid]['startcolumn'])) { - $dom[$trid]['startcolumn'] = $this->current_column; - } elseif ($this->current_column != $dom[$trid]['startcolumn']) { - $tmpx = $this->x; - $this->selectColumn($dom[$trid]['startcolumn']); - $this->x = $tmpx; - } - if (!isset($dom[$trid]['starty'])) { - $dom[$trid]['starty'] = $this->y; - } else { - $this->y = $dom[$trid]['starty']; - } - if (!isset($dom[$trid]['startx'])) { - $dom[$trid]['startx'] = $this->x; - $this->x += $cellspacingx; - } else { - $this->x += ($cellspacingx / 2); - } - if (isset($dom[$parentid]['attribute']['rowspan'])) { - $rowspan = intval($dom[$parentid]['attribute']['rowspan']); - } else { - $rowspan = 1; - } - // skip row-spanned cells started on the previous rows - if (isset($dom[$table_el]['rowspans'])) { - $rsk = 0; - $rskmax = count($dom[$table_el]['rowspans']); - while ($rsk < $rskmax) { - $trwsp = $dom[$table_el]['rowspans'][$rsk]; - $rsstartx = $trwsp['startx']; - $rsendx = $trwsp['endx']; - // account for margin changes - if ($trwsp['startpage'] < $this->page) { - if (($this->rtl) AND ($this->pagedim[$this->page]['orm'] != $this->pagedim[$trwsp['startpage']]['orm'])) { - $dl = ($this->pagedim[$this->page]['orm'] - $this->pagedim[$trwsp['startpage']]['orm']); - $rsstartx -= $dl; - $rsendx -= $dl; - } elseif ((!$this->rtl) AND ($this->pagedim[$this->page]['olm'] != $this->pagedim[$trwsp['startpage']]['olm'])) { - $dl = ($this->pagedim[$this->page]['olm'] - $this->pagedim[$trwsp['startpage']]['olm']); - $rsstartx += $dl; - $rsendx += $dl; - } - } - if (($trwsp['rowspan'] > 0) - AND ($rsstartx > ($this->x - $cellspacing['H'] - $current_cell_padding['L'] - $this->feps)) - AND ($rsstartx < ($this->x + $cellspacing['H'] + $current_cell_padding['R'] + $this->feps)) - AND (($trwsp['starty'] < ($this->y - $this->feps)) OR ($trwsp['startpage'] < $this->page) OR ($trwsp['startcolumn'] < $this->current_column))) { - // set the starting X position of the current cell - $this->x = $rsendx + $cellspacingx; - // increment column indicator - $colid += $trwsp['colspan']; - if (($trwsp['rowspan'] == 1) - AND (isset($dom[$trid]['endy'])) - AND (isset($dom[$trid]['endpage'])) - AND (isset($dom[$trid]['endcolumn'])) - AND ($trwsp['endpage'] == $dom[$trid]['endpage']) - AND ($trwsp['endcolumn'] == $dom[$trid]['endcolumn'])) { - // set ending Y position for row - $dom[$table_el]['rowspans'][$rsk]['endy'] = max($dom[$trid]['endy'], $trwsp['endy']); - $dom[$trid]['endy'] = $dom[$table_el]['rowspans'][$rsk]['endy']; - } - $rsk = 0; - } else { - ++$rsk; - } - } - } - if (isset($dom[$parentid]['width'])) { - // user specified width - $cellw = $this->getHTMLUnitToUnits($dom[$parentid]['width'], $table_columns_width, 'px'); - $tmpcw = ($cellw / $colspan); - for ($i = 0; $i < $colspan; ++$i) { - $table_colwidths[($colid + $i)] = $tmpcw; - } - } else { - // inherit column width - $cellw = 0; - for ($i = 0; $i < $colspan; ++$i) { - $cellw += (isset($table_colwidths[($colid + $i)]) ? $table_colwidths[($colid + $i)] : 0); - } - } - $cellw += (($colspan - 1) * $cellspacing['H']); - // increment column indicator - $colid += $colspan; - // add rowspan information to table element - if ($rowspan > 1) { - $trsid = array_push($dom[$table_el]['rowspans'], array('trid' => $trid, 'rowspan' => $rowspan, 'mrowspan' => $rowspan, 'colspan' => $colspan, 'startpage' => $this->page, 'startcolumn' => $this->current_column, 'startx' => $this->x, 'starty' => $this->y)); - } - $cellid = array_push($dom[$trid]['cellpos'], array('startx' => $this->x)); - if ($rowspan > 1) { - $dom[$trid]['cellpos'][($cellid - 1)]['rowspanid'] = ($trsid - 1); - } - // push background colors - if (isset($dom[$parentid]['bgcolor']) AND ($dom[$parentid]['bgcolor'] !== false)) { - $dom[$trid]['cellpos'][($cellid - 1)]['bgcolor'] = $dom[$parentid]['bgcolor']; - } - // store border info - if (isset($tdborder) AND !empty($tdborder)) { - $dom[$trid]['cellpos'][($cellid - 1)]['border'] = $tdborder; - } - $prevLastH = $this->lasth; - // store some info for multicolumn mode - if ($this->rtl) { - $this->colxshift['x'] = $this->w - $this->x - $this->rMargin; - } else { - $this->colxshift['x'] = $this->x - $this->lMargin; - } - $this->colxshift['s'] = $cellspacing; - $this->colxshift['p'] = $current_cell_padding; - // ****** write the cell content ****** - $this->MultiCell($cellw, $cellh, $cell_content, false, $lalign, false, 2, '', '', true, 0, true, true, 0, 'T', false); - // restore some values - $this->colxshift = array('x' => 0, 's' => array('H' => 0, 'V' => 0), 'p' => array('L' => 0, 'T' => 0, 'R' => 0, 'B' => 0)); - $this->lasth = $prevLastH; - $this->cell_padding = $old_cell_padding; - $dom[$trid]['cellpos'][($cellid - 1)]['endx'] = $this->x; - // update the end of row position - if ($rowspan <= 1) { - if (isset($dom[$trid]['endy'])) { - if (($this->page == $dom[$trid]['endpage']) AND ($this->current_column == $dom[$trid]['endcolumn'])) { - $dom[$trid]['endy'] = max($this->y, $dom[$trid]['endy']); - } elseif (($this->page > $dom[$trid]['endpage']) OR ($this->current_column > $dom[$trid]['endcolumn'])) { - $dom[$trid]['endy'] = $this->y; - } - } else { - $dom[$trid]['endy'] = $this->y; - } - if (isset($dom[$trid]['endpage'])) { - $dom[$trid]['endpage'] = max($this->page, $dom[$trid]['endpage']); - } else { - $dom[$trid]['endpage'] = $this->page; - } - if (isset($dom[$trid]['endcolumn'])) { - $dom[$trid]['endcolumn'] = max($this->current_column, $dom[$trid]['endcolumn']); - } else { - $dom[$trid]['endcolumn'] = $this->current_column; - } - } else { - // account for row-spanned cells - $dom[$table_el]['rowspans'][($trsid - 1)]['endx'] = $this->x; - $dom[$table_el]['rowspans'][($trsid - 1)]['endy'] = $this->y; - $dom[$table_el]['rowspans'][($trsid - 1)]['endpage'] = $this->page; - $dom[$table_el]['rowspans'][($trsid - 1)]['endcolumn'] = $this->current_column; - } - if (isset($dom[$table_el]['rowspans'])) { - // update endy and endpage on rowspanned cells - foreach ($dom[$table_el]['rowspans'] as $k => $trwsp) { - if ($trwsp['rowspan'] > 0) { - if (isset($dom[$trid]['endpage'])) { - if (($trwsp['endpage'] == $dom[$trid]['endpage']) AND ($trwsp['endcolumn'] == $dom[$trid]['endcolumn'])) { - $dom[$table_el]['rowspans'][$k]['endy'] = max($dom[$trid]['endy'], $trwsp['endy']); - } elseif (($trwsp['endpage'] < $dom[$trid]['endpage']) OR ($trwsp['endcolumn'] < $dom[$trid]['endcolumn'])) { - $dom[$table_el]['rowspans'][$k]['endy'] = $dom[$trid]['endy']; - $dom[$table_el]['rowspans'][$k]['endpage'] = $dom[$trid]['endpage']; - $dom[$table_el]['rowspans'][$k]['endcolumn'] = $dom[$trid]['endcolumn']; - } else { - $dom[$trid]['endy'] = $this->pagedim[$dom[$trid]['endpage']]['hk'] - $this->pagedim[$dom[$trid]['endpage']]['bm']; - } - } - } - } - } - $this->x += ($cellspacingx / 2); - } else { - // opening tag (or self-closing tag) - if (!isset($opentagpos)) { - if ($this->inxobj) { - // we are inside an XObject template - $opentagpos = strlen($this->xobjects[$this->xobjid]['outdata']); - } elseif (!$this->InFooter) { - if (isset($this->footerlen[$this->page])) { - $this->footerpos[$this->page] = $this->pagelen[$this->page] - $this->footerlen[$this->page]; - } else { - $this->footerpos[$this->page] = $this->pagelen[$this->page]; - } - $opentagpos = $this->footerpos[$this->page]; - } - } - $dom = $this->openHTMLTagHandler($dom, $key, $cell); - } - } else { // closing tag - $prev_numpages = $this->numpages; - $old_bordermrk = $this->bordermrk[$this->page]; - $dom = $this->closeHTMLTagHandler($dom, $key, $cell, $maxbottomliney); - if ($this->bordermrk[$this->page] > $old_bordermrk) { - $startlinepos += ($this->bordermrk[$this->page] - $old_bordermrk); - } - if ($prev_numpages > $this->numpages) { - $startlinepage = $this->page; - } - } - } elseif (strlen($dom[$key]['value']) > 0) { - // print list-item - if (!TCPDF_STATIC::empty_string($this->lispacer) AND ($this->lispacer != '^')) { - $this->SetFont($pfontname, $pfontstyle, $pfontsize); - $this->resetLastH(); - $minstartliney = $this->y; - $maxbottomliney = ($startliney + $this->getCellHeight($this->FontSize)); - if (is_numeric($pfontsize) AND ($pfontsize > 0)) { - $this->putHtmlListBullet($this->listnum, $this->lispacer, $pfontsize); - } - $this->SetFont($curfontname, $curfontstyle, $curfontsize); - $this->resetLastH(); - if (is_numeric($pfontsize) AND ($pfontsize > 0) AND is_numeric($curfontsize) AND ($curfontsize > 0) AND ($pfontsize != $curfontsize)) { - $pfontascent = $this->getFontAscent($pfontname, $pfontstyle, $pfontsize); - $pfontdescent = $this->getFontDescent($pfontname, $pfontstyle, $pfontsize); - $this->y += ($this->getCellHeight(($pfontsize - $curfontsize) / $this->k) + $pfontascent - $curfontascent - $pfontdescent + $curfontdescent) / 2; - $minstartliney = min($this->y, $minstartliney); - $maxbottomliney = max(($this->y + $this->getCellHeight($pfontsize / $this->k)), $maxbottomliney); - } - } - // text - $this->htmlvspace = 0; - $isRTLString = preg_match(TCPDF_FONT_DATA::$uni_RE_PATTERN_RTL, $dom[$key]['value']) || preg_match(TCPDF_FONT_DATA::$uni_RE_PATTERN_ARABIC, $dom[$key]['value']); - if ((!$this->premode) AND $this->isRTLTextDir() AND !$isRTLString) { - // reverse spaces order - $lsp = ''; // left spaces - $rsp = ''; // right spaces - if (preg_match('/^('.$this->re_space['p'].'+)/'.$this->re_space['m'], $dom[$key]['value'], $matches)) { - $lsp = $matches[1]; - } - if (preg_match('/('.$this->re_space['p'].'+)$/'.$this->re_space['m'], $dom[$key]['value'], $matches)) { - $rsp = $matches[1]; - } - $dom[$key]['value'] = $rsp.$this->stringTrim($dom[$key]['value']).$lsp; - } - if ($newline) { - if (!$this->premode) { - $prelen = strlen($dom[$key]['value']); - if ($this->isRTLTextDir() AND !$isRTLString) { - // right trim except non-breaking space - $dom[$key]['value'] = $this->stringRightTrim($dom[$key]['value']); - } else { - // left trim except non-breaking space - $dom[$key]['value'] = $this->stringLeftTrim($dom[$key]['value']); - } - $postlen = strlen($dom[$key]['value']); - if (($postlen == 0) AND ($prelen > 0)) { - $dom[$key]['trimmed_space'] = true; - } - } - $newline = false; - $firstblock = true; - } else { - $firstblock = false; - // replace empty multiple spaces string with a single space - $dom[$key]['value'] = preg_replace('/^'.$this->re_space['p'].'+$/'.$this->re_space['m'], chr(32), $dom[$key]['value']); - } - $strrest = ''; - if ($this->rtl) { - $this->x -= $this->textindent; - } else { - $this->x += $this->textindent; - } - if (!isset($dom[$key]['trimmed_space']) OR !$dom[$key]['trimmed_space']) { - $strlinelen = $this->GetStringWidth($dom[$key]['value']); - if (!empty($this->HREF) AND (isset($this->HREF['url']))) { - // HTML
    Link - $hrefcolor = ''; - if (isset($dom[($dom[$key]['parent'])]['fgcolor']) AND ($dom[($dom[$key]['parent'])]['fgcolor'] !== false)) { - $hrefcolor = $dom[($dom[$key]['parent'])]['fgcolor']; - } - $hrefstyle = -1; - if (isset($dom[($dom[$key]['parent'])]['fontstyle']) AND ($dom[($dom[$key]['parent'])]['fontstyle'] !== false)) { - $hrefstyle = $dom[($dom[$key]['parent'])]['fontstyle']; - } - $strrest = $this->addHtmlLink($this->HREF['url'], $dom[$key]['value'], $wfill, true, $hrefcolor, $hrefstyle, true); - } else { - $wadj = 0; // space to leave for block continuity - if ($this->rtl) { - $cwa = ($this->x - $this->lMargin); - } else { - $cwa = ($this->w - $this->rMargin - $this->x); - } - if (($strlinelen < $cwa) AND (isset($dom[($key + 1)])) AND ($dom[($key + 1)]['tag']) AND (!$dom[($key + 1)]['block'])) { - // check the next text blocks for continuity - $nkey = ($key + 1); - $write_block = true; - $same_textdir = true; - $tmp_fontname = $this->FontFamily; - $tmp_fontstyle = $this->FontStyle; - $tmp_fontsize = $this->FontSizePt; - while ($write_block AND isset($dom[$nkey])) { - if ($dom[$nkey]['tag']) { - if ($dom[$nkey]['block']) { - // end of block - $write_block = false; - } - $tmp_fontname = isset($dom[$nkey]['fontname']) ? $dom[$nkey]['fontname'] : $this->FontFamily; - $tmp_fontstyle = isset($dom[$nkey]['fontstyle']) ? $dom[$nkey]['fontstyle'] : $this->FontStyle; - $tmp_fontsize = isset($dom[$nkey]['fontsize']) ? $dom[$nkey]['fontsize'] : $this->FontSizePt; - $same_textdir = ($dom[$nkey]['dir'] == $dom[$key]['dir']); - } else { - $nextstr = TCPDF_STATIC::pregSplit('/'.$this->re_space['p'].'+/', $this->re_space['m'], $dom[$nkey]['value']); - if (isset($nextstr[0]) AND $same_textdir) { - $wadj += $this->GetStringWidth($nextstr[0], $tmp_fontname, $tmp_fontstyle, $tmp_fontsize); - if (isset($nextstr[1])) { - $write_block = false; - } - } - } - ++$nkey; - } - } - if (($wadj > 0) AND (($strlinelen + $wadj) >= $cwa)) { - $wadj = 0; - $nextstr = TCPDF_STATIC::pregSplit('/'.$this->re_space['p'].'/', $this->re_space['m'], $dom[$key]['value']); - $numblks = count($nextstr); - if ($numblks > 1) { - // try to split on blank spaces - $wadj = ($cwa - $strlinelen + $this->GetStringWidth($nextstr[($numblks - 1)])); - } else { - // set the entire block on new line - $wadj = $this->GetStringWidth($nextstr[0]); - } - } - // check for reversed text direction - if (($wadj > 0) AND (($this->rtl AND ($this->tmprtl === 'L')) OR (!$this->rtl AND ($this->tmprtl === 'R')))) { - // LTR text on RTL direction or RTL text on LTR direction - $reverse_dir = true; - $this->rtl = !$this->rtl; - $revshift = ($strlinelen + $wadj + 0.000001); // add little quantity for rounding problems - if ($this->rtl) { - $this->x += $revshift; - } else { - $this->x -= $revshift; - } - $xws = $this->x; - } - // ****** write only until the end of the line and get the rest ****** - $strrest = $this->Write($this->lasth, $dom[$key]['value'], '', $wfill, '', false, 0, true, $firstblock, 0, $wadj); - // restore default direction - if ($reverse_dir AND ($wadj == 0)) { - $this->x = $xws; - $this->rtl = !$this->rtl; - $reverse_dir = false; - } - } - } - $this->textindent = 0; - if (strlen($strrest) > 0) { - // store the remaining string on the previous $key position - $this->newline = true; - if ($strrest == $dom[$key]['value']) { - // used to avoid infinite loop - ++$loop; - } else { - $loop = 0; - } - $dom[$key]['value'] = $strrest; - if ($cell) { - if ($this->rtl) { - $this->x -= $this->cell_padding['R']; - } else { - $this->x += $this->cell_padding['L']; - } - } - if ($loop < 3) { - --$key; - } - } else { - $loop = 0; - // add the positive font spacing of the last character (if any) - if ($this->font_spacing > 0) { - if ($this->rtl) { - $this->x -= $this->font_spacing; - } else { - $this->x += $this->font_spacing; - } - } - } - } - ++$key; - if (isset($dom[$key]['tag']) AND $dom[$key]['tag'] AND (!isset($dom[$key]['opening']) OR !$dom[$key]['opening']) AND isset($dom[($dom[$key]['parent'])]['attribute']['nobr']) AND ($dom[($dom[$key]['parent'])]['attribute']['nobr'] == 'true')) { - // check if we are on a new page or on a new column - if ((!$undo) AND (($this->y < $this->start_transaction_y) OR (($dom[$key]['value'] == 'tr') AND ($dom[($dom[$key]['parent'])]['endy'] < $this->start_transaction_y)))) { - // we are on a new page or on a new column and the total object height is less than the available vertical space. - // restore previous object - $this->rollbackTransaction(true); - // restore previous values - foreach ($this_method_vars as $vkey => $vval) { - $$vkey = $vval; - } - if (!empty($dom[$key]['thead'])) { - $this->inthead = true; - } - // add a page (or trig AcceptPageBreak() for multicolumn mode) - $pre_y = $this->y; - if ((!$this->checkPageBreak($this->PageBreakTrigger + 1)) AND ($this->y < $pre_y)) { - $startliney = $this->y; - } - $undo = true; // avoid infinite loop - } else { - $undo = false; - } - } - } // end for each $key - // align the last line - if (isset($startlinex)) { - $yshift = ($minstartliney - $startliney); - if (($yshift > 0) OR ($this->page > $startlinepage)) { - $yshift = 0; - } - $t_x = 0; - // the last line must be shifted to be aligned as requested - $linew = abs($this->endlinex - $startlinex); - if ($this->inxobj) { - // we are inside an XObject template - $pstart = substr($this->xobjects[$this->xobjid]['outdata'], 0, $startlinepos); - if (isset($opentagpos)) { - $midpos = $opentagpos; - } else { - $midpos = 0; - } - if ($midpos > 0) { - $pmid = substr($this->xobjects[$this->xobjid]['outdata'], $startlinepos, ($midpos - $startlinepos)); - $pend = substr($this->xobjects[$this->xobjid]['outdata'], $midpos); - } else { - $pmid = substr($this->xobjects[$this->xobjid]['outdata'], $startlinepos); - $pend = ''; - } - } else { - $pstart = substr($this->getPageBuffer($startlinepage), 0, $startlinepos); - if (isset($opentagpos) AND isset($this->footerlen[$startlinepage]) AND (!$this->InFooter)) { - $this->footerpos[$startlinepage] = $this->pagelen[$startlinepage] - $this->footerlen[$startlinepage]; - $midpos = min($opentagpos, $this->footerpos[$startlinepage]); - } elseif (isset($opentagpos)) { - $midpos = $opentagpos; - } elseif (isset($this->footerlen[$startlinepage]) AND (!$this->InFooter)) { - $this->footerpos[$startlinepage] = $this->pagelen[$startlinepage] - $this->footerlen[$startlinepage]; - $midpos = $this->footerpos[$startlinepage]; - } else { - $midpos = 0; - } - if ($midpos > 0) { - $pmid = substr($this->getPageBuffer($startlinepage), $startlinepos, ($midpos - $startlinepos)); - $pend = substr($this->getPageBuffer($startlinepage), $midpos); - } else { - $pmid = substr($this->getPageBuffer($startlinepage), $startlinepos); - $pend = ''; - } - } - if ((isset($plalign) AND ((($plalign == 'C') OR (($plalign == 'R') AND (!$this->rtl)) OR (($plalign == 'L') AND ($this->rtl)))))) { - // calculate shifting amount - $tw = $w; - if ($this->lMargin != $prevlMargin) { - $tw += ($prevlMargin - $this->lMargin); - } - if ($this->rMargin != $prevrMargin) { - $tw += ($prevrMargin - $this->rMargin); - } - $one_space_width = $this->GetStringWidth(chr(32)); - $no = 0; // number of spaces on a line contained on a single block - if ($this->isRTLTextDir()) { // RTL - // remove left space if exist - $pos1 = TCPDF_STATIC::revstrpos($pmid, '[('); - if ($pos1 > 0) { - $pos1 = intval($pos1); - if ($this->isUnicodeFont()) { - $pos2 = intval(TCPDF_STATIC::revstrpos($pmid, '[('.chr(0).chr(32))); - $spacelen = 2; - } else { - $pos2 = intval(TCPDF_STATIC::revstrpos($pmid, '[('.chr(32))); - $spacelen = 1; - } - if ($pos1 == $pos2) { - $pmid = substr($pmid, 0, ($pos1 + 2)).substr($pmid, ($pos1 + 2 + $spacelen)); - if (substr($pmid, $pos1, 4) == '[()]') { - $linew -= $one_space_width; - } elseif ($pos1 == strpos($pmid, '[(')) { - $no = 1; - } - } - } - } else { // LTR - // remove right space if exist - $pos1 = TCPDF_STATIC::revstrpos($pmid, ')]'); - if ($pos1 > 0) { - $pos1 = intval($pos1); - if ($this->isUnicodeFont()) { - $pos2 = intval(TCPDF_STATIC::revstrpos($pmid, chr(0).chr(32).')]')) + 2; - $spacelen = 2; - } else { - $pos2 = intval(TCPDF_STATIC::revstrpos($pmid, chr(32).')]')) + 1; - $spacelen = 1; - } - if ($pos1 == $pos2) { - $pmid = substr($pmid, 0, ($pos1 - $spacelen)).substr($pmid, $pos1); - $linew -= $one_space_width; - } - } - } - $mdiff = ($tw - $linew); - if ($plalign == 'C') { - if ($this->rtl) { - $t_x = -($mdiff / 2); - } else { - $t_x = ($mdiff / 2); - } - } elseif ($plalign == 'R') { - // right alignment on LTR document - $t_x = $mdiff; - } elseif ($plalign == 'L') { - // left alignment on RTL document - $t_x = -$mdiff; - } - } // end if startlinex - if (($t_x != 0) OR ($yshift < 0)) { - // shift the line - $trx = sprintf('1 0 0 1 %F %F cm', ($t_x * $this->k), ($yshift * $this->k)); - $pstart .= "\nq\n".$trx."\n".$pmid."\nQ\n"; - $endlinepos = strlen($pstart); - if ($this->inxobj) { - // we are inside an XObject template - $this->xobjects[$this->xobjid]['outdata'] = $pstart.$pend; - foreach ($this->xobjects[$this->xobjid]['annotations'] as $pak => $pac) { - if ($pak >= $pask) { - $this->xobjects[$this->xobjid]['annotations'][$pak]['x'] += $t_x; - $this->xobjects[$this->xobjid]['annotations'][$pak]['y'] -= $yshift; - } - } - } else { - $this->setPageBuffer($startlinepage, $pstart.$pend); - // shift the annotations and links - if (isset($this->PageAnnots[$this->page])) { - foreach ($this->PageAnnots[$this->page] as $pak => $pac) { - if ($pak >= $pask) { - $this->PageAnnots[$this->page][$pak]['x'] += $t_x; - $this->PageAnnots[$this->page][$pak]['y'] -= $yshift; - } - } - } - } - $this->y -= $yshift; - $yshift = 0; - } - } - // restore previous values - $this->setGraphicVars($gvars); - if ($this->num_columns > 1) { - $this->selectColumn(); - } elseif ($this->page > $prevPage) { - $this->lMargin = $this->pagedim[$this->page]['olm']; - $this->rMargin = $this->pagedim[$this->page]['orm']; - } - // restore previous list state - $this->cell_height_ratio = $prev_cell_height_ratio; - $this->listnum = $prev_listnum; - $this->listordered = $prev_listordered; - $this->listcount = $prev_listcount; - $this->lispacer = $prev_lispacer; - if ($ln AND (!($cell AND ($dom[$key-1]['value'] == 'table')))) { - $this->Ln($this->lasth); - if (($this->y < $maxbottomliney) AND ($startlinepage == $this->page)) { - $this->y = $maxbottomliney; - } - } - unset($dom); - } - - /** - * Process opening tags. - * @param $dom (array) html dom array - * @param $key (int) current element id - * @param $cell (boolean) if true add the default left (or right if RTL) padding to each new line (default false). - * @return $dom array - * @protected - */ - protected function openHTMLTagHandler($dom, $key, $cell) { - $tag = $dom[$key]; - $parent = $dom[($dom[$key]['parent'])]; - $firsttag = ($key == 1); - // check for text direction attribute - if (isset($tag['dir'])) { - $this->setTempRTL($tag['dir']); - } else { - $this->tmprtl = false; - } - if ($tag['block']) { - $hbz = 0; // distance from y to line bottom - $hb = 0; // vertical space between block tags - // calculate vertical space for block tags - if (isset($this->tagvspaces[$tag['value']][0]['h']) && !empty($this->tagvspaces[$tag['value']][0]['h']) && ($this->tagvspaces[$tag['value']][0]['h'] >= 0)) { - $cur_h = $this->tagvspaces[$tag['value']][0]['h']; - } elseif (isset($tag['fontsize'])) { - $cur_h = $this->getCellHeight($tag['fontsize'] / $this->k); - } else { - $cur_h = $this->getCellHeight($this->FontSize); - } - if (isset($this->tagvspaces[$tag['value']][0]['n'])) { - $on = $this->tagvspaces[$tag['value']][0]['n']; - } elseif (preg_match('/[h][0-9]/', $tag['value']) > 0) { - $on = 0.6; - } else { - $on = 1; - } - if ((!isset($this->tagvspaces[$tag['value']])) AND (in_array($tag['value'], array('div', 'dt', 'dd', 'li', 'br', 'hr')))) { - $hb = 0; - } else { - $hb = ($on * $cur_h); - } - if (($this->htmlvspace <= 0) AND ($on > 0)) { - if (isset($parent['fontsize'])) { - $hbz = (($parent['fontsize'] / $this->k) * $this->cell_height_ratio); - } else { - $hbz = $this->getCellHeight($this->FontSize); - } - } - if (isset($dom[($key - 1)]) AND ($dom[($key - 1)]['value'] == 'table')) { - // fix vertical space after table - $hbz = 0; - } - // closing vertical space - $hbc = 0; - if (isset($this->tagvspaces[$tag['value']][1]['h']) && !empty($this->tagvspaces[$tag['value']][1]['h']) && ($this->tagvspaces[$tag['value']][1]['h'] >= 0)) { - $pre_h = $this->tagvspaces[$tag['value']][1]['h']; - } elseif (isset($parent['fontsize'])) { - $pre_h = $this->getCellHeight($parent['fontsize'] / $this->k); - } else { - $pre_h = $this->getCellHeight($this->FontSize); - } - if (isset($this->tagvspaces[$tag['value']][1]['n'])) { - $cn = $this->tagvspaces[$tag['value']][1]['n']; - } elseif (preg_match('/[h][0-9]/', $tag['value']) > 0) { - $cn = 0.6; - } else { - $cn = 1; - } - if (isset($this->tagvspaces[$tag['value']][1])) { - $hbc = ($cn * $pre_h); - } - } - // Opening tag - switch($tag['value']) { - case 'table': { - $cp = 0; - $cs = 0; - $dom[$key]['rowspans'] = array(); - if (!isset($dom[$key]['attribute']['nested']) OR ($dom[$key]['attribute']['nested'] != 'true')) { - $this->htmlvspace = 0; - // set table header - if (!TCPDF_STATIC::empty_string($dom[$key]['thead'])) { - // set table header - $this->thead = $dom[$key]['thead']; - if (!isset($this->theadMargins) OR (empty($this->theadMargins))) { - $this->theadMargins = array(); - $this->theadMargins['cell_padding'] = $this->cell_padding; - $this->theadMargins['lmargin'] = $this->lMargin; - $this->theadMargins['rmargin'] = $this->rMargin; - $this->theadMargins['page'] = $this->page; - $this->theadMargins['cell'] = $cell; - $this->theadMargins['gvars'] = $this->getGraphicVars(); - } - } - } - // store current margins and page - $dom[$key]['old_cell_padding'] = $this->cell_padding; - if (isset($tag['attribute']['cellpadding'])) { - $pad = $this->getHTMLUnitToUnits($tag['attribute']['cellpadding'], 1, 'px'); - $this->SetCellPadding($pad); - } elseif (isset($tag['padding'])) { - $this->cell_padding = $tag['padding']; - } - if (isset($tag['attribute']['cellspacing'])) { - $cs = $this->getHTMLUnitToUnits($tag['attribute']['cellspacing'], 1, 'px'); - } elseif (isset($tag['border-spacing'])) { - $cs = $tag['border-spacing']['V']; - } - $prev_y = $this->y; - if ($this->checkPageBreak(((2 * $cp) + (2 * $cs) + $this->lasth), '', false) OR ($this->y < $prev_y)) { - $this->inthead = true; - // add a page (or trig AcceptPageBreak() for multicolumn mode) - $this->checkPageBreak($this->PageBreakTrigger + 1); - } - break; - } - case 'tr': { - // array of columns positions - $dom[$key]['cellpos'] = array(); - break; - } - case 'hr': { - if ((isset($tag['height'])) AND ($tag['height'] != '')) { - $hrHeight = $this->getHTMLUnitToUnits($tag['height'], 1, 'px'); - } else { - $hrHeight = $this->GetLineWidth(); - } - $this->addHTMLVertSpace($hbz, max($hb, ($hrHeight / 2)), $cell, $firsttag); - $x = $this->GetX(); - $y = $this->GetY(); - $wtmp = $this->w - $this->lMargin - $this->rMargin; - if ($cell) { - $wtmp -= ($this->cell_padding['L'] + $this->cell_padding['R']); - } - if ((isset($tag['width'])) AND ($tag['width'] != '')) { - $hrWidth = $this->getHTMLUnitToUnits($tag['width'], $wtmp, 'px'); - } else { - $hrWidth = $wtmp; - } - $prevlinewidth = $this->GetLineWidth(); - $this->SetLineWidth($hrHeight); - $this->Line($x, $y, $x + $hrWidth, $y); - $this->SetLineWidth($prevlinewidth); - $this->addHTMLVertSpace(max($hbc, ($hrHeight / 2)), 0, $cell, !isset($dom[($key + 1)])); - break; - } - case 'a': { - if (array_key_exists('href', $tag['attribute'])) { - $this->HREF['url'] = $tag['attribute']['href']; - } - break; - } - case 'img': { - if (empty($tag['attribute']['src'])) { - break; - } - $imgsrc = $tag['attribute']['src']; - if ($imgsrc[0] === '@') { - // data stream - $imgsrc = '@'.base64_decode(substr($imgsrc, 1)); - $type = ''; - } else { - if (($imgsrc[0] === '/') AND !empty($_SERVER['DOCUMENT_ROOT']) AND ($_SERVER['DOCUMENT_ROOT'] != '/')) { - // fix image path - $findroot = strpos($imgsrc, $_SERVER['DOCUMENT_ROOT']); - if (($findroot === false) OR ($findroot > 1)) { - if (substr($_SERVER['DOCUMENT_ROOT'], -1) == '/') { - $imgsrc = substr($_SERVER['DOCUMENT_ROOT'], 0, -1).$imgsrc; - } else { - $imgsrc = $_SERVER['DOCUMENT_ROOT'].$imgsrc; - } - } - $imgsrc = urldecode($imgsrc); - $testscrtype = @parse_url($imgsrc); - if (empty($testscrtype['query'])) { - // convert URL to server path - $imgsrc = str_replace(K_PATH_URL, K_PATH_MAIN, $imgsrc); - } elseif (preg_match('|^https?://|', $imgsrc) !== 1) { - // convert URL to server path - $imgsrc = str_replace(K_PATH_MAIN, K_PATH_URL, $imgsrc); - } - } - // get image type - $type = TCPDF_IMAGES::getImageFileType($imgsrc); - } - if (!isset($tag['width'])) { - $tag['width'] = 0; - } - if (!isset($tag['height'])) { - $tag['height'] = 0; - } - //if (!isset($tag['attribute']['align'])) { - // the only alignment supported is "bottom" - // further development is required for other modes. - $tag['attribute']['align'] = 'bottom'; - //} - switch($tag['attribute']['align']) { - case 'top': { - $align = 'T'; - break; - } - case 'middle': { - $align = 'M'; - break; - } - case 'bottom': { - $align = 'B'; - break; - } - default: { - $align = 'B'; - break; - } - } - $prevy = $this->y; - $xpos = $this->x; - $imglink = ''; - if (isset($this->HREF['url']) AND !TCPDF_STATIC::empty_string($this->HREF['url'])) { - $imglink = $this->HREF['url']; - if ($imglink[0] == '#') { - // convert url to internal link - $lnkdata = explode(',', $imglink); - if (isset($lnkdata[0])) { - $page = intval(substr($lnkdata[0], 1)); - if (empty($page) OR ($page <= 0)) { - $page = $this->page; - } - if (isset($lnkdata[1]) AND (strlen($lnkdata[1]) > 0)) { - $lnky = floatval($lnkdata[1]); - } else { - $lnky = 0; - } - $imglink = $this->AddLink(); - $this->SetLink($imglink, $lnky, $page); - } - } - } - $border = 0; - if (isset($tag['border']) AND !empty($tag['border'])) { - // currently only support 1 (frame) or a combination of 'LTRB' - $border = $tag['border']; - } - $iw = ''; - if (isset($tag['width'])) { - $iw = $this->getHTMLUnitToUnits($tag['width'], ($tag['fontsize'] / $this->k), 'px', false); - } - $ih = ''; - if (isset($tag['height'])) { - $ih = $this->getHTMLUnitToUnits($tag['height'], ($tag['fontsize'] / $this->k), 'px', false); - } - if (($type == 'eps') OR ($type == 'ai')) { - $this->ImageEps($imgsrc, $xpos, $this->y, $iw, $ih, $imglink, true, $align, '', $border, true); - } elseif ($type == 'svg') { - $this->ImageSVG($imgsrc, $xpos, $this->y, $iw, $ih, $imglink, $align, '', $border, true); - } else { - $this->Image($imgsrc, $xpos, $this->y, $iw, $ih, '', $imglink, $align, false, 300, '', false, false, $border, false, false, true); - } - switch($align) { - case 'T': { - $this->y = $prevy; - break; - } - case 'M': { - $this->y = (($this->img_rb_y + $prevy - ($this->getCellHeight($tag['fontsize'] / $this->k))) / 2); - break; - } - case 'B': { - $this->y = $this->img_rb_y - ($this->getCellHeight($tag['fontsize'] / $this->k) - ($this->getFontDescent($tag['fontname'], $tag['fontstyle'], $tag['fontsize']) * $this->cell_height_ratio)); - break; - } - } - break; - } - case 'dl': { - ++$this->listnum; - if ($this->listnum == 1) { - $this->addHTMLVertSpace($hbz, $hb, $cell, $firsttag); - } else { - $this->addHTMLVertSpace(0, 0, $cell, $firsttag); - } - break; - } - case 'dt': { - $this->addHTMLVertSpace($hbz, $hb, $cell, $firsttag); - break; - } - case 'dd': { - if ($this->rtl) { - $this->rMargin += $this->listindent; - } else { - $this->lMargin += $this->listindent; - } - ++$this->listindentlevel; - $this->addHTMLVertSpace($hbz, $hb, $cell, $firsttag); - break; - } - case 'ul': - case 'ol': { - ++$this->listnum; - if ($tag['value'] == 'ol') { - $this->listordered[$this->listnum] = true; - } else { - $this->listordered[$this->listnum] = false; - } - if (isset($tag['attribute']['start'])) { - $this->listcount[$this->listnum] = intval($tag['attribute']['start']) - 1; - } else { - $this->listcount[$this->listnum] = 0; - } - if ($this->rtl) { - $this->rMargin += $this->listindent; - $this->x -= $this->listindent; - } else { - $this->lMargin += $this->listindent; - $this->x += $this->listindent; - } - ++$this->listindentlevel; - if ($this->listnum == 1) { - if ($key > 1) { - $this->addHTMLVertSpace($hbz, $hb, $cell, $firsttag); - } - } else { - $this->addHTMLVertSpace(0, 0, $cell, $firsttag); - } - break; - } - case 'li': { - if ($key > 2) { - $this->addHTMLVertSpace($hbz, $hb, $cell, $firsttag); - } - if ($this->listordered[$this->listnum]) { - // ordered item - if (isset($parent['attribute']['type']) AND !TCPDF_STATIC::empty_string($parent['attribute']['type'])) { - $this->lispacer = $parent['attribute']['type']; - } elseif (isset($parent['listtype']) AND !TCPDF_STATIC::empty_string($parent['listtype'])) { - $this->lispacer = $parent['listtype']; - } elseif (isset($this->lisymbol) AND !TCPDF_STATIC::empty_string($this->lisymbol)) { - $this->lispacer = $this->lisymbol; - } else { - $this->lispacer = '#'; - } - ++$this->listcount[$this->listnum]; - if (isset($tag['attribute']['value'])) { - $this->listcount[$this->listnum] = intval($tag['attribute']['value']); - } - } else { - // unordered item - if (isset($parent['attribute']['type']) AND !TCPDF_STATIC::empty_string($parent['attribute']['type'])) { - $this->lispacer = $parent['attribute']['type']; - } elseif (isset($parent['listtype']) AND !TCPDF_STATIC::empty_string($parent['listtype'])) { - $this->lispacer = $parent['listtype']; - } elseif (isset($this->lisymbol) AND !TCPDF_STATIC::empty_string($this->lisymbol)) { - $this->lispacer = $this->lisymbol; - } else { - $this->lispacer = '!'; - } - } - break; - } - case 'blockquote': { - if ($this->rtl) { - $this->rMargin += $this->listindent; - } else { - $this->lMargin += $this->listindent; - } - ++$this->listindentlevel; - $this->addHTMLVertSpace($hbz, $hb, $cell, $firsttag); - break; - } - case 'br': { - $this->addHTMLVertSpace($hbz, $hb, $cell, $firsttag); - break; - } - case 'div': { - $this->addHTMLVertSpace($hbz, $hb, $cell, $firsttag); - break; - } - case 'p': { - $this->addHTMLVertSpace($hbz, $hb, $cell, $firsttag); - break; - } - case 'pre': { - $this->addHTMLVertSpace($hbz, $hb, $cell, $firsttag); - $this->premode = true; - break; - } - case 'sup': { - $this->SetXY($this->GetX(), $this->GetY() - ((0.7 * $this->FontSizePt) / $this->k)); - break; - } - case 'sub': { - $this->SetXY($this->GetX(), $this->GetY() + ((0.3 * $this->FontSizePt) / $this->k)); - break; - } - case 'h1': - case 'h2': - case 'h3': - case 'h4': - case 'h5': - case 'h6': { - $this->addHTMLVertSpace($hbz, $hb, $cell, $firsttag); - break; - } - // Form fields (since 4.8.000 - 2009-09-07) - case 'form': { - if (isset($tag['attribute']['action'])) { - $this->form_action = $tag['attribute']['action']; - } else { - $this->Error('Please explicitly set action attribute path!'); - } - if (isset($tag['attribute']['enctype'])) { - $this->form_enctype = $tag['attribute']['enctype']; - } else { - $this->form_enctype = 'application/x-www-form-urlencoded'; - } - if (isset($tag['attribute']['method'])) { - $this->form_mode = $tag['attribute']['method']; - } else { - $this->form_mode = 'post'; - } - break; - } - case 'input': { - if (isset($tag['attribute']['name']) AND !TCPDF_STATIC::empty_string($tag['attribute']['name'])) { - $name = $tag['attribute']['name']; - } else { - break; - } - $prop = array(); - $opt = array(); - if (isset($tag['attribute']['readonly']) AND !TCPDF_STATIC::empty_string($tag['attribute']['readonly'])) { - $prop['readonly'] = true; - } - if (isset($tag['attribute']['value']) AND !TCPDF_STATIC::empty_string($tag['attribute']['value'])) { - $value = $tag['attribute']['value']; - } - if (isset($tag['attribute']['maxlength']) AND !TCPDF_STATIC::empty_string($tag['attribute']['maxlength'])) { - $opt['maxlen'] = intval($tag['attribute']['maxlength']); - } - $h = $this->getCellHeight($this->FontSize); - if (isset($tag['attribute']['size']) AND !TCPDF_STATIC::empty_string($tag['attribute']['size'])) { - $w = intval($tag['attribute']['size']) * $this->GetStringWidth(chr(32)) * 2; - } else { - $w = $h; - } - if (isset($tag['attribute']['checked']) AND (($tag['attribute']['checked'] == 'checked') OR ($tag['attribute']['checked'] == 'true'))) { - $checked = true; - } else { - $checked = false; - } - if (isset($tag['align'])) { - switch ($tag['align']) { - case 'C': { - $opt['q'] = 1; - break; - } - case 'R': { - $opt['q'] = 2; - break; - } - case 'L': - default: { - break; - } - } - } - switch ($tag['attribute']['type']) { - case 'text': { - if (isset($value)) { - $opt['v'] = $value; - } - $this->TextField($name, $w, $h, $prop, $opt, '', '', false); - break; - } - case 'password': { - if (isset($value)) { - $opt['v'] = $value; - } - $prop['password'] = 'true'; - $this->TextField($name, $w, $h, $prop, $opt, '', '', false); - break; - } - case 'checkbox': { - if (!isset($value)) { - break; - } - $this->CheckBox($name, $w, $checked, $prop, $opt, $value, '', '', false); - break; - } - case 'radio': { - if (!isset($value)) { - break; - } - $this->RadioButton($name, $w, $prop, $opt, $value, $checked, '', '', false); - break; - } - case 'submit': { - if (!isset($value)) { - $value = 'submit'; - } - $w = $this->GetStringWidth($value) * 1.5; - $h *= 1.6; - $prop = array('lineWidth'=>1, 'borderStyle'=>'beveled', 'fillColor'=>array(196, 196, 196), 'strokeColor'=>array(255, 255, 255)); - $action = array(); - $action['S'] = 'SubmitForm'; - $action['F'] = $this->form_action; - if ($this->form_enctype != 'FDF') { - $action['Flags'] = array('ExportFormat'); - } - if ($this->form_mode == 'get') { - $action['Flags'] = array('GetMethod'); - } - $this->Button($name, $w, $h, $value, $action, $prop, $opt, '', '', false); - break; - } - case 'reset': { - if (!isset($value)) { - $value = 'reset'; - } - $w = $this->GetStringWidth($value) * 1.5; - $h *= 1.6; - $prop = array('lineWidth'=>1, 'borderStyle'=>'beveled', 'fillColor'=>array(196, 196, 196), 'strokeColor'=>array(255, 255, 255)); - $this->Button($name, $w, $h, $value, array('S'=>'ResetForm'), $prop, $opt, '', '', false); - break; - } - case 'file': { - $prop['fileSelect'] = 'true'; - $this->TextField($name, $w, $h, $prop, $opt, '', '', false); - if (!isset($value)) { - $value = '*'; - } - $w = $this->GetStringWidth($value) * 2; - $h *= 1.2; - $prop = array('lineWidth'=>1, 'borderStyle'=>'beveled', 'fillColor'=>array(196, 196, 196), 'strokeColor'=>array(255, 255, 255)); - $jsaction = 'var f=this.getField(\''.$name.'\'); f.browseForFileToSubmit();'; - $this->Button('FB_'.$name, $w, $h, $value, $jsaction, $prop, $opt, '', '', false); - break; - } - case 'hidden': { - if (isset($value)) { - $opt['v'] = $value; - } - $opt['f'] = array('invisible', 'hidden'); - $this->TextField($name, 0, 0, $prop, $opt, '', '', false); - break; - } - case 'image': { - // THIS TYPE MUST BE FIXED - if (isset($tag['attribute']['src']) AND !TCPDF_STATIC::empty_string($tag['attribute']['src'])) { - $img = $tag['attribute']['src']; - } else { - break; - } - $value = 'img'; - //$opt['mk'] = array('i'=>$img, 'tp'=>1, 'if'=>array('sw'=>'A', 's'=>'A', 'fb'=>false)); - if (isset($tag['attribute']['onclick']) AND !empty($tag['attribute']['onclick'])) { - $jsaction = $tag['attribute']['onclick']; - } else { - $jsaction = ''; - } - $this->Button($name, $w, $h, $value, $jsaction, $prop, $opt, '', '', false); - break; - } - case 'button': { - if (!isset($value)) { - $value = ' '; - } - $w = $this->GetStringWidth($value) * 1.5; - $h *= 1.6; - $prop = array('lineWidth'=>1, 'borderStyle'=>'beveled', 'fillColor'=>array(196, 196, 196), 'strokeColor'=>array(255, 255, 255)); - if (isset($tag['attribute']['onclick']) AND !empty($tag['attribute']['onclick'])) { - $jsaction = $tag['attribute']['onclick']; - } else { - $jsaction = ''; - } - $this->Button($name, $w, $h, $value, $jsaction, $prop, $opt, '', '', false); - break; - } - } - break; - } - case 'textarea': { - $prop = array(); - $opt = array(); - if (isset($tag['attribute']['readonly']) AND !TCPDF_STATIC::empty_string($tag['attribute']['readonly'])) { - $prop['readonly'] = true; - } - if (isset($tag['attribute']['name']) AND !TCPDF_STATIC::empty_string($tag['attribute']['name'])) { - $name = $tag['attribute']['name']; - } else { - break; - } - if (isset($tag['attribute']['value']) AND !TCPDF_STATIC::empty_string($tag['attribute']['value'])) { - $opt['v'] = $tag['attribute']['value']; - } - if (isset($tag['attribute']['cols']) AND !TCPDF_STATIC::empty_string($tag['attribute']['cols'])) { - $w = intval($tag['attribute']['cols']) * $this->GetStringWidth(chr(32)) * 2; - } else { - $w = 40; - } - if (isset($tag['attribute']['rows']) AND !TCPDF_STATIC::empty_string($tag['attribute']['rows'])) { - $h = intval($tag['attribute']['rows']) * $this->getCellHeight($this->FontSize); - } else { - $h = 10; - } - $prop['multiline'] = 'true'; - $this->TextField($name, $w, $h, $prop, $opt, '', '', false); - break; - } - case 'select': { - $h = $this->getCellHeight($this->FontSize); - if (isset($tag['attribute']['size']) AND !TCPDF_STATIC::empty_string($tag['attribute']['size'])) { - $h *= ($tag['attribute']['size'] + 1); - } - $prop = array(); - $opt = array(); - if (isset($tag['attribute']['name']) AND !TCPDF_STATIC::empty_string($tag['attribute']['name'])) { - $name = $tag['attribute']['name']; - } else { - break; - } - $w = 0; - if (isset($tag['attribute']['opt']) AND !TCPDF_STATIC::empty_string($tag['attribute']['opt'])) { - $options = explode('#!NwL!#', $tag['attribute']['opt']); - $values = array(); - foreach ($options as $val) { - if (strpos($val, '#!TaB!#') !== false) { - $opts = explode('#!TaB!#', $val); - $values[] = $opts; - $w = max($w, $this->GetStringWidth($opts[1])); - } else { - $values[] = $val; - $w = max($w, $this->GetStringWidth($val)); - } - } - } else { - break; - } - $w *= 2; - if (isset($tag['attribute']['multiple']) AND ($tag['attribute']['multiple']='multiple')) { - $prop['multipleSelection'] = 'true'; - $this->ListBox($name, $w, $h, $values, $prop, $opt, '', '', false); - } else { - $this->ComboBox($name, $w, $h, $values, $prop, $opt, '', '', false); - } - break; - } - case 'tcpdf': { - if (defined('K_TCPDF_CALLS_IN_HTML') AND (K_TCPDF_CALLS_IN_HTML === true)) { - // Special tag used to call TCPDF methods - if (isset($tag['attribute']['method'])) { - $tcpdf_method = $tag['attribute']['method']; - if (method_exists($this, $tcpdf_method)) { - if (isset($tag['attribute']['params']) AND (!empty($tag['attribute']['params']))) { - $params = $this->unserializeTCPDFtagParameters($tag['attribute']['params']); - call_user_func_array(array($this, $tcpdf_method), $params); - } else { - $this->$tcpdf_method(); - } - $this->newline = true; - } - } - } - break; - } - default: { - break; - } - } - // define tags that support borders and background colors - $bordertags = array('blockquote','br','dd','dl','div','dt','h1','h2','h3','h4','h5','h6','hr','li','ol','p','pre','ul','tcpdf','table'); - if (in_array($tag['value'], $bordertags)) { - // set border - $dom[$key]['borderposition'] = $this->getBorderStartPosition(); - } - if ($dom[$key]['self'] AND isset($dom[$key]['attribute']['pagebreakafter'])) { - $pba = $dom[$key]['attribute']['pagebreakafter']; - // check for pagebreak - if (($pba == 'true') OR ($pba == 'left') OR ($pba == 'right')) { - // add a page (or trig AcceptPageBreak() for multicolumn mode) - $this->checkPageBreak($this->PageBreakTrigger + 1); - } - if ((($pba == 'left') AND (((!$this->rtl) AND (($this->page % 2) == 0)) OR (($this->rtl) AND (($this->page % 2) != 0)))) - OR (($pba == 'right') AND (((!$this->rtl) AND (($this->page % 2) != 0)) OR (($this->rtl) AND (($this->page % 2) == 0))))) { - // add a page (or trig AcceptPageBreak() for multicolumn mode) - $this->checkPageBreak($this->PageBreakTrigger + 1); - } - } - return $dom; - } - - /** - * Process closing tags. - * @param $dom (array) html dom array - * @param $key (int) current element id - * @param $cell (boolean) if true add the default left (or right if RTL) padding to each new line (default false). - * @param $maxbottomliney (int) maximum y value of current line - * @return $dom array - * @protected - */ - protected function closeHTMLTagHandler($dom, $key, $cell, $maxbottomliney=0) { - $tag = $dom[$key]; - $parent = $dom[($dom[$key]['parent'])]; - $lasttag = ((!isset($dom[($key + 1)])) OR ((!isset($dom[($key + 2)])) AND ($dom[($key + 1)]['value'] == 'marker'))); - $in_table_head = false; - // maximum x position (used to draw borders) - if ($this->rtl) { - $xmax = $this->w; - } else { - $xmax = 0; - } - if ($tag['block']) { - $hbz = 0; // distance from y to line bottom - $hb = 0; // vertical space between block tags - // calculate vertical space for block tags - if (isset($this->tagvspaces[$tag['value']][1]['h']) && !empty($this->tagvspaces[$tag['value']][1]['h']) && ($this->tagvspaces[$tag['value']][1]['h'] >= 0)) { - $pre_h = $this->tagvspaces[$tag['value']][1]['h']; - } elseif (isset($parent['fontsize'])) { - $pre_h = $this->getCellHeight($parent['fontsize'] / $this->k); - } else { - $pre_h = $this->getCellHeight($this->FontSize); - } - if (isset($this->tagvspaces[$tag['value']][1]['n'])) { - $cn = $this->tagvspaces[$tag['value']][1]['n']; - } elseif (preg_match('/[h][0-9]/', $tag['value']) > 0) { - $cn = 0.6; - } else { - $cn = 1; - } - if ((!isset($this->tagvspaces[$tag['value']])) AND ($tag['value'] == 'div')) { - $hb = 0; - } else { - $hb = ($cn * $pre_h); - } - if ($maxbottomliney > $this->PageBreakTrigger) { - $hbz = $this->getCellHeight($this->FontSize); - } elseif ($this->y < $maxbottomliney) { - $hbz = ($maxbottomliney - $this->y); - } - } - // Closing tag - switch($tag['value']) { - case 'tr': { - $table_el = $dom[($dom[$key]['parent'])]['parent']; - if (!isset($parent['endy'])) { - $dom[($dom[$key]['parent'])]['endy'] = $this->y; - $parent['endy'] = $this->y; - } - if (!isset($parent['endpage'])) { - $dom[($dom[$key]['parent'])]['endpage'] = $this->page; - $parent['endpage'] = $this->page; - } - if (!isset($parent['endcolumn'])) { - $dom[($dom[$key]['parent'])]['endcolumn'] = $this->current_column; - $parent['endcolumn'] = $this->current_column; - } - // update row-spanned cells - if (isset($dom[$table_el]['rowspans'])) { - foreach ($dom[$table_el]['rowspans'] as $k => $trwsp) { - $dom[$table_el]['rowspans'][$k]['rowspan'] -= 1; - if ($dom[$table_el]['rowspans'][$k]['rowspan'] == 0) { - if (($dom[$table_el]['rowspans'][$k]['endpage'] == $parent['endpage']) AND ($dom[$table_el]['rowspans'][$k]['endcolumn'] == $parent['endcolumn'])) { - $dom[($dom[$key]['parent'])]['endy'] = max($dom[$table_el]['rowspans'][$k]['endy'], $parent['endy']); - } elseif (($dom[$table_el]['rowspans'][$k]['endpage'] > $parent['endpage']) OR ($dom[$table_el]['rowspans'][$k]['endcolumn'] > $parent['endcolumn'])) { - $dom[($dom[$key]['parent'])]['endy'] = $dom[$table_el]['rowspans'][$k]['endy']; - $dom[($dom[$key]['parent'])]['endpage'] = $dom[$table_el]['rowspans'][$k]['endpage']; - $dom[($dom[$key]['parent'])]['endcolumn'] = $dom[$table_el]['rowspans'][$k]['endcolumn']; - } - } - } - // report new endy and endpage to the rowspanned cells - foreach ($dom[$table_el]['rowspans'] as $k => $trwsp) { - if ($dom[$table_el]['rowspans'][$k]['rowspan'] == 0) { - $dom[$table_el]['rowspans'][$k]['endpage'] = max($dom[$table_el]['rowspans'][$k]['endpage'], $dom[($dom[$key]['parent'])]['endpage']); - $dom[($dom[$key]['parent'])]['endpage'] = $dom[$table_el]['rowspans'][$k]['endpage']; - $dom[$table_el]['rowspans'][$k]['endcolumn'] = max($dom[$table_el]['rowspans'][$k]['endcolumn'], $dom[($dom[$key]['parent'])]['endcolumn']); - $dom[($dom[$key]['parent'])]['endcolumn'] = $dom[$table_el]['rowspans'][$k]['endcolumn']; - $dom[$table_el]['rowspans'][$k]['endy'] = max($dom[$table_el]['rowspans'][$k]['endy'], $dom[($dom[$key]['parent'])]['endy']); - $dom[($dom[$key]['parent'])]['endy'] = $dom[$table_el]['rowspans'][$k]['endy']; - } - } - // update remaining rowspanned cells - foreach ($dom[$table_el]['rowspans'] as $k => $trwsp) { - if ($dom[$table_el]['rowspans'][$k]['rowspan'] == 0) { - $dom[$table_el]['rowspans'][$k]['endpage'] = $dom[($dom[$key]['parent'])]['endpage']; - $dom[$table_el]['rowspans'][$k]['endcolumn'] = $dom[($dom[$key]['parent'])]['endcolumn']; - $dom[$table_el]['rowspans'][$k]['endy'] = $dom[($dom[$key]['parent'])]['endy']; - } - } - } - $prev_page = $this->page; - $this->setPage($dom[($dom[$key]['parent'])]['endpage']); - if ($this->num_columns > 1) { - if (($prev_page < $this->page) - AND ((($this->current_column == 0) AND ($dom[($dom[$key]['parent'])]['endcolumn'] == ($this->num_columns - 1))) - OR ($this->current_column == $dom[($dom[$key]['parent'])]['endcolumn']))) { - // page jump - $this->selectColumn(0); - $dom[($dom[$key]['parent'])]['endcolumn'] = 0; - $dom[($dom[$key]['parent'])]['endy'] = $this->y; - } else { - $this->selectColumn($dom[($dom[$key]['parent'])]['endcolumn']); - $this->y = $dom[($dom[$key]['parent'])]['endy']; - } - } else { - $this->y = $dom[($dom[$key]['parent'])]['endy']; - } - if (isset($dom[$table_el]['attribute']['cellspacing'])) { - $this->y += $this->getHTMLUnitToUnits($dom[$table_el]['attribute']['cellspacing'], 1, 'px'); - } elseif (isset($dom[$table_el]['border-spacing'])) { - $this->y += $dom[$table_el]['border-spacing']['V']; - } - $this->Ln(0, $cell); - if ($this->current_column == $parent['startcolumn']) { - $this->x = $parent['startx']; - } - // account for booklet mode - if ($this->page > $parent['startpage']) { - if (($this->rtl) AND ($this->pagedim[$this->page]['orm'] != $this->pagedim[$parent['startpage']]['orm'])) { - $this->x -= ($this->pagedim[$this->page]['orm'] - $this->pagedim[$parent['startpage']]['orm']); - } elseif ((!$this->rtl) AND ($this->pagedim[$this->page]['olm'] != $this->pagedim[$parent['startpage']]['olm'])) { - $this->x += ($this->pagedim[$this->page]['olm'] - $this->pagedim[$parent['startpage']]['olm']); - } - } - break; - } - case 'tablehead': - // closing tag used for the thead part - $in_table_head = true; - $this->inthead = false; - case 'table': { - $table_el = $parent; - // set default border - if (isset($table_el['attribute']['border']) AND ($table_el['attribute']['border'] > 0)) { - // set default border - $border = array('LTRB' => array('width' => $this->getCSSBorderWidth($table_el['attribute']['border']), 'cap'=>'square', 'join'=>'miter', 'dash'=> 0, 'color'=>array(0,0,0))); - } else { - $border = 0; - } - $default_border = $border; - // fix bottom line alignment of last line before page break - foreach ($dom[($dom[$key]['parent'])]['trids'] as $j => $trkey) { - // update row-spanned cells - if (isset($dom[($dom[$key]['parent'])]['rowspans'])) { - foreach ($dom[($dom[$key]['parent'])]['rowspans'] as $k => $trwsp) { - if (isset($prevtrkey) AND ($trwsp['trid'] == $prevtrkey) AND ($trwsp['mrowspan'] > 0)) { - $dom[($dom[$key]['parent'])]['rowspans'][$k]['trid'] = $trkey; - } - if ($dom[($dom[$key]['parent'])]['rowspans'][$k]['trid'] == $trkey) { - $dom[($dom[$key]['parent'])]['rowspans'][$k]['mrowspan'] -= 1; - } - } - } - if (isset($prevtrkey) AND ($dom[$trkey]['startpage'] > $dom[$prevtrkey]['endpage'])) { - $pgendy = $this->pagedim[$dom[$prevtrkey]['endpage']]['hk'] - $this->pagedim[$dom[$prevtrkey]['endpage']]['bm']; - $dom[$prevtrkey]['endy'] = $pgendy; - // update row-spanned cells - if (isset($dom[($dom[$key]['parent'])]['rowspans'])) { - foreach ($dom[($dom[$key]['parent'])]['rowspans'] as $k => $trwsp) { - if (($trwsp['trid'] == $prevtrkey) AND ($trwsp['mrowspan'] >= 0) AND ($trwsp['endpage'] == $dom[$prevtrkey]['endpage'])) { - $dom[($dom[$key]['parent'])]['rowspans'][$k]['endy'] = $pgendy; - $dom[($dom[$key]['parent'])]['rowspans'][$k]['mrowspan'] = -1; - } - } - } - } - $prevtrkey = $trkey; - $table_el = $dom[($dom[$key]['parent'])]; - } - // for each row - if (count($table_el['trids']) > 0) { - unset($xmax); - } - foreach ($table_el['trids'] as $j => $trkey) { - $parent = $dom[$trkey]; - if (!isset($xmax)) { - $xmax = $parent['cellpos'][(count($parent['cellpos']) - 1)]['endx']; - } - // for each cell on the row - foreach ($parent['cellpos'] as $k => $cellpos) { - if (isset($cellpos['rowspanid']) AND ($cellpos['rowspanid'] >= 0)) { - $cellpos['startx'] = $table_el['rowspans'][($cellpos['rowspanid'])]['startx']; - $cellpos['endx'] = $table_el['rowspans'][($cellpos['rowspanid'])]['endx']; - $endy = $table_el['rowspans'][($cellpos['rowspanid'])]['endy']; - $startpage = $table_el['rowspans'][($cellpos['rowspanid'])]['startpage']; - $endpage = $table_el['rowspans'][($cellpos['rowspanid'])]['endpage']; - $startcolumn = $table_el['rowspans'][($cellpos['rowspanid'])]['startcolumn']; - $endcolumn = $table_el['rowspans'][($cellpos['rowspanid'])]['endcolumn']; - } else { - $endy = $parent['endy']; - $startpage = $parent['startpage']; - $endpage = $parent['endpage']; - $startcolumn = $parent['startcolumn']; - $endcolumn = $parent['endcolumn']; - } - if ($this->num_columns == 0) { - $this->num_columns = 1; - } - if (isset($cellpos['border'])) { - $border = $cellpos['border']; - } - if (isset($cellpos['bgcolor']) AND ($cellpos['bgcolor']) !== false) { - $this->SetFillColorArray($cellpos['bgcolor']); - $fill = true; - } else { - $fill = false; - } - $x = $cellpos['startx']; - $y = $parent['starty']; - $starty = $y; - $w = abs($cellpos['endx'] - $cellpos['startx']); - // get border modes - $border_start = TCPDF_STATIC::getBorderMode($border, $position='start', $this->opencell); - $border_end = TCPDF_STATIC::getBorderMode($border, $position='end', $this->opencell); - $border_middle = TCPDF_STATIC::getBorderMode($border, $position='middle', $this->opencell); - // design borders around HTML cells. - for ($page = $startpage; $page <= $endpage; ++$page) { // for each page - $ccode = ''; - $this->setPage($page); - if ($this->num_columns < 2) { - // single-column mode - $this->x = $x; - $this->y = $this->tMargin; - } - // account for margin changes - if ($page > $startpage) { - if (($this->rtl) AND ($this->pagedim[$page]['orm'] != $this->pagedim[$startpage]['orm'])) { - $this->x -= ($this->pagedim[$page]['orm'] - $this->pagedim[$startpage]['orm']); - } elseif ((!$this->rtl) AND ($this->pagedim[$page]['olm'] != $this->pagedim[$startpage]['olm'])) { - $this->x += ($this->pagedim[$page]['olm'] - $this->pagedim[$startpage]['olm']); - } - } - if ($startpage == $endpage) { // single page - $deltacol = 0; - $deltath = 0; - for ($column = $startcolumn; $column <= $endcolumn; ++$column) { // for each column - $this->selectColumn($column); - if ($startcolumn == $endcolumn) { // single column - $cborder = $border; - $h = $endy - $parent['starty']; - $this->y = $y; - $this->x = $x; - } elseif ($column == $startcolumn) { // first column - $cborder = $border_start; - $this->y = $starty; - $this->x = $x; - $h = $this->h - $this->y - $this->bMargin; - if ($this->rtl) { - $deltacol = $this->x + $this->rMargin - $this->w; - } else { - $deltacol = $this->x - $this->lMargin; - } - } elseif ($column == $endcolumn) { // end column - $cborder = $border_end; - if (isset($this->columns[$column]['th']['\''.$page.'\''])) { - $this->y = $this->columns[$column]['th']['\''.$page.'\'']; - } - $this->x += $deltacol; - $h = $endy - $this->y; - } else { // middle column - $cborder = $border_middle; - if (isset($this->columns[$column]['th']['\''.$page.'\''])) { - $this->y = $this->columns[$column]['th']['\''.$page.'\'']; - } - $this->x += $deltacol; - $h = $this->h - $this->y - $this->bMargin; - } - $ccode .= $this->getCellCode($w, $h, '', $cborder, 1, '', $fill, '', 0, true)."\n"; - } // end for each column - } elseif ($page == $startpage) { // first page - $deltacol = 0; - $deltath = 0; - for ($column = $startcolumn; $column < $this->num_columns; ++$column) { // for each column - $this->selectColumn($column); - if ($column == $startcolumn) { // first column - $cborder = $border_start; - $this->y = $starty; - $this->x = $x; - $h = $this->h - $this->y - $this->bMargin; - if ($this->rtl) { - $deltacol = $this->x + $this->rMargin - $this->w; - } else { - $deltacol = $this->x - $this->lMargin; - } - } else { // middle column - $cborder = $border_middle; - if (isset($this->columns[$column]['th']['\''.$page.'\''])) { - $this->y = $this->columns[$column]['th']['\''.$page.'\'']; - } - $this->x += $deltacol; - $h = $this->h - $this->y - $this->bMargin; - } - $ccode .= $this->getCellCode($w, $h, '', $cborder, 1, '', $fill, '', 0, true)."\n"; - } // end for each column - } elseif ($page == $endpage) { // last page - $deltacol = 0; - $deltath = 0; - for ($column = 0; $column <= $endcolumn; ++$column) { // for each column - $this->selectColumn($column); - if ($column == $endcolumn) { // end column - $cborder = $border_end; - if (isset($this->columns[$column]['th']['\''.$page.'\''])) { - $this->y = $this->columns[$column]['th']['\''.$page.'\'']; - } - $this->x += $deltacol; - $h = $endy - $this->y; - } else { // middle column - $cborder = $border_middle; - if (isset($this->columns[$column]['th']['\''.$page.'\''])) { - $this->y = $this->columns[$column]['th']['\''.$page.'\'']; - } - $this->x += $deltacol; - $h = $this->h - $this->y - $this->bMargin; - } - $ccode .= $this->getCellCode($w, $h, '', $cborder, 1, '', $fill, '', 0, true)."\n"; - } // end for each column - } else { // middle page - $deltacol = 0; - $deltath = 0; - for ($column = 0; $column < $this->num_columns; ++$column) { // for each column - $this->selectColumn($column); - $cborder = $border_middle; - if (isset($this->columns[$column]['th']['\''.$page.'\''])) { - $this->y = $this->columns[$column]['th']['\''.$page.'\'']; - } - $this->x += $deltacol; - $h = $this->h - $this->y - $this->bMargin; - $ccode .= $this->getCellCode($w, $h, '', $cborder, 1, '', $fill, '', 0, true)."\n"; - } // end for each column - } - if (!empty($cborder) OR !empty($fill)) { - $offsetlen = strlen($ccode); - // draw border and fill - if ($this->inxobj) { - // we are inside an XObject template - if (end($this->xobjects[$this->xobjid]['transfmrk']) !== false) { - $pagemarkkey = key($this->xobjects[$this->xobjid]['transfmrk']); - $pagemark = $this->xobjects[$this->xobjid]['transfmrk'][$pagemarkkey]; - $this->xobjects[$this->xobjid]['transfmrk'][$pagemarkkey] += $offsetlen; - } else { - $pagemark = $this->xobjects[$this->xobjid]['intmrk']; - $this->xobjects[$this->xobjid]['intmrk'] += $offsetlen; - } - $pagebuff = $this->xobjects[$this->xobjid]['outdata']; - $pstart = substr($pagebuff, 0, $pagemark); - $pend = substr($pagebuff, $pagemark); - $this->xobjects[$this->xobjid]['outdata'] = $pstart.$ccode.$pend; - } else { - // draw border and fill - if (end($this->transfmrk[$this->page]) !== false) { - $pagemarkkey = key($this->transfmrk[$this->page]); - $pagemark = $this->transfmrk[$this->page][$pagemarkkey]; - } elseif ($this->InFooter) { - $pagemark = $this->footerpos[$this->page]; - } else { - $pagemark = $this->intmrk[$this->page]; - } - $pagebuff = $this->getPageBuffer($this->page); - $pstart = substr($pagebuff, 0, $pagemark); - $pend = substr($pagebuff, $pagemark); - $this->setPageBuffer($this->page, $pstart.$ccode.$pend); - } - } - } // end for each page - // restore default border - $border = $default_border; - } // end for each cell on the row - if (isset($table_el['attribute']['cellspacing'])) { - $this->y += $this->getHTMLUnitToUnits($table_el['attribute']['cellspacing'], 1, 'px'); - } elseif (isset($table_el['border-spacing'])) { - $this->y += $table_el['border-spacing']['V']; - } - $this->Ln(0, $cell); - $this->x = $parent['startx']; - if ($endpage > $startpage) { - if (($this->rtl) AND ($this->pagedim[$endpage]['orm'] != $this->pagedim[$startpage]['orm'])) { - $this->x += ($this->pagedim[$endpage]['orm'] - $this->pagedim[$startpage]['orm']); - } elseif ((!$this->rtl) AND ($this->pagedim[$endpage]['olm'] != $this->pagedim[$startpage]['olm'])) { - $this->x += ($this->pagedim[$endpage]['olm'] - $this->pagedim[$startpage]['olm']); - } - } - } - if (!$in_table_head) { // we are not inside a thead section - $this->cell_padding = $table_el['old_cell_padding']; - // reset row height - $this->resetLastH(); - if (($this->page == ($this->numpages - 1)) AND ($this->pageopen[$this->numpages])) { - $plendiff = ($this->pagelen[$this->numpages] - $this->emptypagemrk[$this->numpages]); - if (($plendiff > 0) AND ($plendiff < 60)) { - $pagediff = substr($this->getPageBuffer($this->numpages), $this->emptypagemrk[$this->numpages], $plendiff); - if (substr($pagediff, 0, 5) == 'BT /F') { - // the difference is only a font setting - $plendiff = 0; - } - } - if ($plendiff == 0) { - // remove last blank page - $this->deletePage($this->numpages); - } - } - if (isset($this->theadMargins['top'])) { - // restore top margin - $this->tMargin = $this->theadMargins['top']; - } - if (!isset($table_el['attribute']['nested']) OR ($table_el['attribute']['nested'] != 'true')) { - // reset main table header - $this->thead = ''; - $this->theadMargins = array(); - $this->pagedim[$this->page]['tm'] = $this->tMargin; - } - } - $parent = $table_el; - break; - } - case 'a': { - $this->HREF = array(); - break; - } - case 'sup': { - $this->SetXY($this->GetX(), $this->GetY() + ((0.7 * $parent['fontsize']) / $this->k)); - break; - } - case 'sub': { - $this->SetXY($this->GetX(), $this->GetY() - ((0.3 * $parent['fontsize']) / $this->k)); - break; - } - case 'div': { - $this->addHTMLVertSpace($hbz, $hb, $cell, false, $lasttag); - break; - } - case 'blockquote': { - if ($this->rtl) { - $this->rMargin -= $this->listindent; - } else { - $this->lMargin -= $this->listindent; - } - --$this->listindentlevel; - $this->addHTMLVertSpace($hbz, $hb, $cell, false, $lasttag); - break; - } - case 'p': { - $this->addHTMLVertSpace($hbz, $hb, $cell, false, $lasttag); - break; - } - case 'pre': { - $this->addHTMLVertSpace($hbz, $hb, $cell, false, $lasttag); - $this->premode = false; - break; - } - case 'dl': { - --$this->listnum; - if ($this->listnum <= 0) { - $this->listnum = 0; - $this->addHTMLVertSpace($hbz, $hb, $cell, false, $lasttag); - } else { - $this->addHTMLVertSpace(0, 0, $cell, false, $lasttag); - } - $this->resetLastH(); - break; - } - case 'dt': { - $this->lispacer = ''; - $this->addHTMLVertSpace(0, 0, $cell, false, $lasttag); - break; - } - case 'dd': { - $this->lispacer = ''; - if ($this->rtl) { - $this->rMargin -= $this->listindent; - } else { - $this->lMargin -= $this->listindent; - } - --$this->listindentlevel; - $this->addHTMLVertSpace(0, 0, $cell, false, $lasttag); - break; - } - case 'ul': - case 'ol': { - --$this->listnum; - $this->lispacer = ''; - if ($this->rtl) { - $this->rMargin -= $this->listindent; - } else { - $this->lMargin -= $this->listindent; - } - --$this->listindentlevel; - if ($this->listnum <= 0) { - $this->listnum = 0; - $this->addHTMLVertSpace($hbz, $hb, $cell, false, $lasttag); - } else { - $this->addHTMLVertSpace(0, 0, $cell, false, $lasttag); - } - $this->resetLastH(); - break; - } - case 'li': { - $this->lispacer = ''; - $this->addHTMLVertSpace(0, 0, $cell, false, $lasttag); - break; - } - case 'h1': - case 'h2': - case 'h3': - case 'h4': - case 'h5': - case 'h6': { - $this->addHTMLVertSpace($hbz, $hb, $cell, false, $lasttag); - break; - } - // Form fields (since 4.8.000 - 2009-09-07) - case 'form': { - $this->form_action = ''; - $this->form_enctype = 'application/x-www-form-urlencoded'; - break; - } - default : { - break; - } - } - // draw border and background (if any) - $this->drawHTMLTagBorder($parent, $xmax); - if (isset($dom[($dom[$key]['parent'])]['attribute']['pagebreakafter'])) { - $pba = $dom[($dom[$key]['parent'])]['attribute']['pagebreakafter']; - // check for pagebreak - if (($pba == 'true') OR ($pba == 'left') OR ($pba == 'right')) { - // add a page (or trig AcceptPageBreak() for multicolumn mode) - $this->checkPageBreak($this->PageBreakTrigger + 1); - } - if ((($pba == 'left') AND (((!$this->rtl) AND (($this->page % 2) == 0)) OR (($this->rtl) AND (($this->page % 2) != 0)))) - OR (($pba == 'right') AND (((!$this->rtl) AND (($this->page % 2) != 0)) OR (($this->rtl) AND (($this->page % 2) == 0))))) { - // add a page (or trig AcceptPageBreak() for multicolumn mode) - $this->checkPageBreak($this->PageBreakTrigger + 1); - } - } - $this->tmprtl = false; - return $dom; - } - - /** - * Add vertical spaces if needed. - * @param $hbz (string) Distance between current y and line bottom. - * @param $hb (string) The height of the break. - * @param $cell (boolean) if true add the default left (or right if RTL) padding to each new line (default false). - * @param $firsttag (boolean) set to true when the tag is the first. - * @param $lasttag (boolean) set to true when the tag is the last. - * @protected - */ - protected function addHTMLVertSpace($hbz=0, $hb=0, $cell=false, $firsttag=false, $lasttag=false) { - if ($firsttag) { - $this->Ln(0, $cell); - $this->htmlvspace = 0; - return; - } - if ($lasttag) { - $this->Ln($hbz, $cell); - $this->htmlvspace = 0; - return; - } - if ($hb < $this->htmlvspace) { - $hd = 0; - } else { - $hd = $hb - $this->htmlvspace; - $this->htmlvspace = $hb; - } - $this->Ln(($hbz + $hd), $cell); - } - - /** - * Return the starting coordinates to draw an html border - * @return array containing top-left border coordinates - * @protected - * @since 5.7.000 (2010-08-03) - */ - protected function getBorderStartPosition() { - if ($this->rtl) { - $xmax = $this->lMargin; - } else { - $xmax = $this->w - $this->rMargin; - } - return array('page' => $this->page, 'column' => $this->current_column, 'x' => $this->x, 'y' => $this->y, 'xmax' => $xmax); - } - - /** - * Draw an HTML block border and fill - * @param $tag (array) array of tag properties. - * @param $xmax (int) end X coordinate for border. - * @protected - * @since 5.7.000 (2010-08-03) - */ - protected function drawHTMLTagBorder($tag, $xmax) { - if (!isset($tag['borderposition'])) { - // nothing to draw - return; - } - $prev_x = $this->x; - $prev_y = $this->y; - $prev_lasth = $this->lasth; - $border = 0; - $fill = false; - $this->lasth = 0; - if (isset($tag['border']) AND !empty($tag['border'])) { - // get border style - $border = $tag['border']; - if (!TCPDF_STATIC::empty_string($this->thead) AND (!$this->inthead)) { - // border for table header - $border = TCPDF_STATIC::getBorderMode($border, $position='middle', $this->opencell); - } - } - if (isset($tag['bgcolor']) AND ($tag['bgcolor'] !== false)) { - // get background color - $old_bgcolor = $this->bgcolor; - $this->SetFillColorArray($tag['bgcolor']); - $fill = true; - } - if (!$border AND !$fill) { - // nothing to draw - return; - } - if (isset($tag['attribute']['cellspacing'])) { - $clsp = $this->getHTMLUnitToUnits($tag['attribute']['cellspacing'], 1, 'px'); - $cellspacing = array('H' => $clsp, 'V' => $clsp); - } elseif (isset($tag['border-spacing'])) { - $cellspacing = $tag['border-spacing']; - } else { - $cellspacing = array('H' => 0, 'V' => 0); - } - if (($tag['value'] != 'table') AND (is_array($border)) AND (!empty($border))) { - // draw the border externally respect the sqare edge. - $border['mode'] = 'ext'; - } - if ($this->rtl) { - if ($xmax >= $tag['borderposition']['x']) { - $xmax = $tag['borderposition']['xmax']; - } - $w = ($tag['borderposition']['x'] - $xmax); - } else { - if ($xmax <= $tag['borderposition']['x']) { - $xmax = $tag['borderposition']['xmax']; - } - $w = ($xmax - $tag['borderposition']['x']); - } - if ($w <= 0) { - return; - } - $w += $cellspacing['H']; - $startpage = $tag['borderposition']['page']; - $startcolumn = $tag['borderposition']['column']; - $x = $tag['borderposition']['x']; - $y = $tag['borderposition']['y']; - $endpage = $this->page; - $starty = $tag['borderposition']['y'] - $cellspacing['V']; - $currentY = $this->y; - $this->x = $x; - // get latest column - $endcolumn = $this->current_column; - if ($this->num_columns == 0) { - $this->num_columns = 1; - } - // get border modes - $border_start = TCPDF_STATIC::getBorderMode($border, $position='start', $this->opencell); - $border_end = TCPDF_STATIC::getBorderMode($border, $position='end', $this->opencell); - $border_middle = TCPDF_STATIC::getBorderMode($border, $position='middle', $this->opencell); - // temporary disable page regions - $temp_page_regions = $this->page_regions; - $this->page_regions = array(); - // design borders around HTML cells. - for ($page = $startpage; $page <= $endpage; ++$page) { // for each page - $ccode = ''; - $this->setPage($page); - if ($this->num_columns < 2) { - // single-column mode - $this->x = $x; - $this->y = $this->tMargin; - } - // account for margin changes - if ($page > $startpage) { - if (($this->rtl) AND ($this->pagedim[$page]['orm'] != $this->pagedim[$startpage]['orm'])) { - $this->x -= ($this->pagedim[$page]['orm'] - $this->pagedim[$startpage]['orm']); - } elseif ((!$this->rtl) AND ($this->pagedim[$page]['olm'] != $this->pagedim[$startpage]['olm'])) { - $this->x += ($this->pagedim[$page]['olm'] - $this->pagedim[$startpage]['olm']); - } - } - if ($startpage == $endpage) { - // single page - for ($column = $startcolumn; $column <= $endcolumn; ++$column) { // for each column - $this->selectColumn($column); - if ($startcolumn == $endcolumn) { // single column - $cborder = $border; - $h = ($currentY - $y) + $cellspacing['V']; - $this->y = $starty; - } elseif ($column == $startcolumn) { // first column - $cborder = $border_start; - $this->y = $starty; - $h = $this->h - $this->y - $this->bMargin; - } elseif ($column == $endcolumn) { // end column - $cborder = $border_end; - $h = $currentY - $this->y; - } else { // middle column - $cborder = $border_middle; - $h = $this->h - $this->y - $this->bMargin; - } - $ccode .= $this->getCellCode($w, $h, '', $cborder, 1, '', $fill, '', 0, true)."\n"; - } // end for each column - } elseif ($page == $startpage) { // first page - for ($column = $startcolumn; $column < $this->num_columns; ++$column) { // for each column - $this->selectColumn($column); - if ($column == $startcolumn) { // first column - $cborder = $border_start; - $this->y = $starty; - $h = $this->h - $this->y - $this->bMargin; - } else { // middle column - $cborder = $border_middle; - $h = $this->h - $this->y - $this->bMargin; - } - $ccode .= $this->getCellCode($w, $h, '', $cborder, 1, '', $fill, '', 0, true)."\n"; - } // end for each column - } elseif ($page == $endpage) { // last page - for ($column = 0; $column <= $endcolumn; ++$column) { // for each column - $this->selectColumn($column); - if ($column == $endcolumn) { - // end column - $cborder = $border_end; - $h = $currentY - $this->y; - } else { - // middle column - $cborder = $border_middle; - $h = $this->h - $this->y - $this->bMargin; - } - $ccode .= $this->getCellCode($w, $h, '', $cborder, 1, '', $fill, '', 0, true)."\n"; - } // end for each column - } else { // middle page - for ($column = 0; $column < $this->num_columns; ++$column) { // for each column - $this->selectColumn($column); - $cborder = $border_middle; - $h = $this->h - $this->y - $this->bMargin; - $ccode .= $this->getCellCode($w, $h, '', $cborder, 1, '', $fill, '', 0, true)."\n"; - } // end for each column - } - if ($cborder OR $fill) { - $offsetlen = strlen($ccode); - // draw border and fill - if ($this->inxobj) { - // we are inside an XObject template - if (end($this->xobjects[$this->xobjid]['transfmrk']) !== false) { - $pagemarkkey = key($this->xobjects[$this->xobjid]['transfmrk']); - $pagemark = $this->xobjects[$this->xobjid]['transfmrk'][$pagemarkkey]; - $this->xobjects[$this->xobjid]['transfmrk'][$pagemarkkey] += $offsetlen; - } else { - $pagemark = $this->xobjects[$this->xobjid]['intmrk']; - $this->xobjects[$this->xobjid]['intmrk'] += $offsetlen; - } - $pagebuff = $this->xobjects[$this->xobjid]['outdata']; - $pstart = substr($pagebuff, 0, $pagemark); - $pend = substr($pagebuff, $pagemark); - $this->xobjects[$this->xobjid]['outdata'] = $pstart.$ccode.$pend; - } else { - if (end($this->transfmrk[$this->page]) !== false) { - $pagemarkkey = key($this->transfmrk[$this->page]); - $pagemark = $this->transfmrk[$this->page][$pagemarkkey]; - } elseif ($this->InFooter) { - $pagemark = $this->footerpos[$this->page]; - } else { - $pagemark = $this->intmrk[$this->page]; - } - $pagebuff = $this->getPageBuffer($this->page); - $pstart = substr($pagebuff, 0, $pagemark); - $pend = substr($pagebuff, $pagemark); - $this->setPageBuffer($this->page, $pstart.$ccode.$pend); - $this->bordermrk[$this->page] += $offsetlen; - $this->cntmrk[$this->page] += $offsetlen; - } - } - } // end for each page - // restore page regions - $this->page_regions = $temp_page_regions; - if (isset($old_bgcolor)) { - // restore background color - $this->SetFillColorArray($old_bgcolor); - } - // restore pointer position - $this->x = $prev_x; - $this->y = $prev_y; - $this->lasth = $prev_lasth; - } - - /** - * Set the default bullet to be used as LI bullet symbol - * @param $symbol (string) character or string to be used (legal values are: '' = automatic, '!' = auto bullet, '#' = auto numbering, 'disc', 'disc', 'circle', 'square', '1', 'decimal', 'decimal-leading-zero', 'i', 'lower-roman', 'I', 'upper-roman', 'a', 'lower-alpha', 'lower-latin', 'A', 'upper-alpha', 'upper-latin', 'lower-greek', 'img|type|width|height|image.ext') - * @public - * @since 4.0.028 (2008-09-26) - */ - public function setLIsymbol($symbol='!') { - // check for custom image symbol - if (substr($symbol, 0, 4) == 'img|') { - $this->lisymbol = $symbol; - return; - } - $symbol = strtolower($symbol); - $valid_symbols = array('!', '#', 'disc', 'circle', 'square', '1', 'decimal', 'decimal-leading-zero', 'i', 'lower-roman', 'I', 'upper-roman', 'a', 'lower-alpha', 'lower-latin', 'A', 'upper-alpha', 'upper-latin', 'lower-greek'); - if (in_array($symbol, $valid_symbols)) { - $this->lisymbol = $symbol; - } else { - $this->lisymbol = ''; - } - } - - /** - * Set the booklet mode for double-sided pages. - * @param $booklet (boolean) true set the booklet mode on, false otherwise. - * @param $inner (float) Inner page margin. - * @param $outer (float) Outer page margin. - * @public - * @since 4.2.000 (2008-10-29) - */ - public function SetBooklet($booklet=true, $inner=-1, $outer=-1) { - $this->booklet = $booklet; - if ($inner >= 0) { - $this->lMargin = $inner; - } - if ($outer >= 0) { - $this->rMargin = $outer; - } - } - - /** - * Swap the left and right margins. - * @param $reverse (boolean) if true swap left and right margins. - * @protected - * @since 4.2.000 (2008-10-29) - */ - protected function swapMargins($reverse=true) { - if ($reverse) { - // swap left and right margins - $mtemp = $this->original_lMargin; - $this->original_lMargin = $this->original_rMargin; - $this->original_rMargin = $mtemp; - $deltam = $this->original_lMargin - $this->original_rMargin; - $this->lMargin += $deltam; - $this->rMargin -= $deltam; - } - } - - /** - * Set the vertical spaces for HTML tags. - * The array must have the following structure (example): - * $tagvs = array('h1' => array(0 => array('h' => '', 'n' => 2), 1 => array('h' => 1.3, 'n' => 1))); - * The first array level contains the tag names, - * the second level contains 0 for opening tags or 1 for closing tags, - * the third level contains the vertical space unit (h) and the number spaces to add (n). - * If the h parameter is not specified, default values are used. - * @param $tagvs (array) array of tags and relative vertical spaces. - * @public - * @since 4.2.001 (2008-10-30) - */ - public function setHtmlVSpace($tagvs) { - $this->tagvspaces = $tagvs; - } - - /** - * Set custom width for list indentation. - * @param $width (float) width of the indentation. Use negative value to disable it. - * @public - * @since 4.2.007 (2008-11-12) - */ - public function setListIndentWidth($width) { - return $this->customlistindent = floatval($width); - } - - /** - * Set the top/bottom cell sides to be open or closed when the cell cross the page. - * @param $isopen (boolean) if true keeps the top/bottom border open for the cell sides that cross the page. - * @public - * @since 4.2.010 (2008-11-14) - */ - public function setOpenCell($isopen) { - $this->opencell = $isopen; - } - - /** - * Set the color and font style for HTML links. - * @param $color (array) RGB array of colors - * @param $fontstyle (string) additional font styles to add - * @public - * @since 4.4.003 (2008-12-09) - */ - public function setHtmlLinksStyle($color=array(0,0,255), $fontstyle='U') { - $this->htmlLinkColorArray = $color; - $this->htmlLinkFontStyle = $fontstyle; - } - - /** - * Convert HTML string containing value and unit of measure to user's units or points. - * @param $htmlval (string) String containing values and unit. - * @param $refsize (string) Reference value in points. - * @param $defaultunit (string) Default unit (can be one of the following: %, em, ex, px, in, mm, pc, pt). - * @param $points (boolean) If true returns points, otherwise returns value in user's units. - * @return float value in user's unit or point if $points=true - * @public - * @since 4.4.004 (2008-12-10) - */ - public function getHTMLUnitToUnits($htmlval, $refsize=1, $defaultunit='px', $points=false) { - $supportedunits = array('%', 'em', 'ex', 'px', 'in', 'cm', 'mm', 'pc', 'pt'); - $retval = 0; - $value = 0; - $unit = 'px'; - if ($points) { - $k = 1; - } else { - $k = $this->k; - } - if (in_array($defaultunit, $supportedunits)) { - $unit = $defaultunit; - } - if (is_numeric($htmlval)) { - $value = floatval($htmlval); - } elseif (preg_match('/([0-9\.\-\+]+)/', $htmlval, $mnum)) { - $value = floatval($mnum[1]); - if (preg_match('/([a-z%]+)/', $htmlval, $munit)) { - if (in_array($munit[1], $supportedunits)) { - $unit = $munit[1]; - } - } - } - switch ($unit) { - // percentage - case '%': { - $retval = (($value * $refsize) / 100); - break; - } - // relative-size - case 'em': { - $retval = ($value * $refsize); - break; - } - // height of lower case 'x' (about half the font-size) - case 'ex': { - $retval = ($value * ($refsize / 2)); - break; - } - // absolute-size - case 'in': { - $retval = (($value * $this->dpi) / $k); - break; - } - // centimeters - case 'cm': { - $retval = (($value / 2.54 * $this->dpi) / $k); - break; - } - // millimeters - case 'mm': { - $retval = (($value / 25.4 * $this->dpi) / $k); - break; - } - // one pica is 12 points - case 'pc': { - $retval = (($value * 12) / $k); - break; - } - // points - case 'pt': { - $retval = ($value / $k); - break; - } - // pixels - case 'px': { - $retval = $this->pixelsToUnits($value); - if ($points) { - $retval *= $this->k; - } - break; - } - } - return $retval; - } - - /** - * Output an HTML list bullet or ordered item symbol - * @param $listdepth (int) list nesting level - * @param $listtype (string) type of list - * @param $size (float) current font size - * @protected - * @since 4.4.004 (2008-12-10) - */ - protected function putHtmlListBullet($listdepth, $listtype='', $size=10) { - if ($this->state != 2) { - return; - } - $size /= $this->k; - $fill = ''; - $bgcolor = $this->bgcolor; - $color = $this->fgcolor; - $strokecolor = $this->strokecolor; - $width = 0; - $textitem = ''; - $tmpx = $this->x; - $lspace = $this->GetStringWidth(' '); - if ($listtype == '^') { - // special symbol used for avoid justification of rect bullet - $this->lispacer = ''; - return; - } elseif ($listtype == '!') { - // set default list type for unordered list - $deftypes = array('disc', 'circle', 'square'); - $listtype = $deftypes[($listdepth - 1) % 3]; - } elseif ($listtype == '#') { - // set default list type for ordered list - $listtype = 'decimal'; - } elseif (substr($listtype, 0, 4) == 'img|') { - // custom image type ('img|type|width|height|image.ext') - $img = explode('|', $listtype); - $listtype = 'img'; - } - switch ($listtype) { - // unordered types - case 'none': { - break; - } - case 'disc': { - $r = $size / 6; - $lspace += (2 * $r); - if ($this->rtl) { - $this->x += $lspace; - } else { - $this->x -= $lspace; - } - $this->Circle(($this->x + $r), ($this->y + ($this->lasth / 2)), $r, 0, 360, 'F', array(), $color, 8); - break; - } - case 'circle': { - $r = $size / 6; - $lspace += (2 * $r); - if ($this->rtl) { - $this->x += $lspace; - } else { - $this->x -= $lspace; - } - $prev_line_style = $this->linestyleWidth.' '.$this->linestyleCap.' '.$this->linestyleJoin.' '.$this->linestyleDash.' '.$this->DrawColor; - $new_line_style = array('width' => ($r / 3), 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'phase' => 0, 'color'=>$color); - $this->Circle(($this->x + $r), ($this->y + ($this->lasth / 2)), ($r * (1 - (1/6))), 0, 360, 'D', $new_line_style, array(), 8); - $this->_out($prev_line_style); // restore line settings - break; - } - case 'square': { - $l = $size / 3; - $lspace += $l; - if ($this->rtl) {; - $this->x += $lspace; - } else { - $this->x -= $lspace; - } - $this->Rect($this->x, ($this->y + (($this->lasth - $l) / 2)), $l, $l, 'F', array(), $color); - break; - } - case 'img': { - // 1=>type, 2=>width, 3=>height, 4=>image.ext - $lspace += $img[2]; - if ($this->rtl) {; - $this->x += $lspace; - } else { - $this->x -= $lspace; - } - $imgtype = strtolower($img[1]); - $prev_y = $this->y; - switch ($imgtype) { - case 'svg': { - $this->ImageSVG($img[4], $this->x, ($this->y + (($this->lasth - $img[3]) / 2)), $img[2], $img[3], '', 'T', '', 0, false); - break; - } - case 'ai': - case 'eps': { - $this->ImageEps($img[4], $this->x, ($this->y + (($this->lasth - $img[3]) / 2)), $img[2], $img[3], '', true, 'T', '', 0, false); - break; - } - default: { - $this->Image($img[4], $this->x, ($this->y + (($this->lasth - $img[3]) / 2)), $img[2], $img[3], $img[1], '', 'T', false, 300, '', false, false, 0, false, false, false); - break; - } - } - $this->y = $prev_y; - break; - } - // ordered types - // $this->listcount[$this->listnum]; - // $textitem - case '1': - case 'decimal': { - $textitem = $this->listcount[$this->listnum]; - break; - } - case 'decimal-leading-zero': { - $textitem = sprintf('%02d', $this->listcount[$this->listnum]); - break; - } - case 'i': - case 'lower-roman': { - $textitem = strtolower(TCPDF_STATIC::intToRoman($this->listcount[$this->listnum])); - break; - } - case 'I': - case 'upper-roman': { - $textitem = TCPDF_STATIC::intToRoman($this->listcount[$this->listnum]); - break; - } - case 'a': - case 'lower-alpha': - case 'lower-latin': { - $textitem = chr(97 + $this->listcount[$this->listnum] - 1); - break; - } - case 'A': - case 'upper-alpha': - case 'upper-latin': { - $textitem = chr(65 + $this->listcount[$this->listnum] - 1); - break; - } - case 'lower-greek': { - $textitem = TCPDF_FONTS::unichr((945 + $this->listcount[$this->listnum] - 1), $this->isunicode); - break; - } - /* - // Types to be implemented (special handling) - case 'hebrew': { - break; - } - case 'armenian': { - break; - } - case 'georgian': { - break; - } - case 'cjk-ideographic': { - break; - } - case 'hiragana': { - break; - } - case 'katakana': { - break; - } - case 'hiragana-iroha': { - break; - } - case 'katakana-iroha': { - break; - } - */ - default: { - $textitem = $this->listcount[$this->listnum]; - } - } - if (!TCPDF_STATIC::empty_string($textitem)) { - // Check whether we need a new page or new column - $prev_y = $this->y; - $h = $this->getCellHeight($this->FontSize); - if ($this->checkPageBreak($h) OR ($this->y < $prev_y)) { - $tmpx = $this->x; - } - // print ordered item - if ($this->rtl) { - $textitem = '.'.$textitem; - } else { - $textitem = $textitem.'.'; - } - $lspace += $this->GetStringWidth($textitem); - if ($this->rtl) { - $this->x += $lspace; - } else { - $this->x -= $lspace; - } - $this->Write($this->lasth, $textitem, '', false, '', false, 0, false); - } - $this->x = $tmpx; - $this->lispacer = '^'; - // restore colors - $this->SetFillColorArray($bgcolor); - $this->SetDrawColorArray($strokecolor); - $this->SettextColorArray($color); - } - - /** - * Returns current graphic variables as array. - * @return array of graphic variables - * @protected - * @since 4.2.010 (2008-11-14) - */ - protected function getGraphicVars() { - $grapvars = array( - 'FontFamily' => $this->FontFamily, - 'FontStyle' => $this->FontStyle, - 'FontSizePt' => $this->FontSizePt, - 'rMargin' => $this->rMargin, - 'lMargin' => $this->lMargin, - 'cell_padding' => $this->cell_padding, - 'cell_margin' => $this->cell_margin, - 'LineWidth' => $this->LineWidth, - 'linestyleWidth' => $this->linestyleWidth, - 'linestyleCap' => $this->linestyleCap, - 'linestyleJoin' => $this->linestyleJoin, - 'linestyleDash' => $this->linestyleDash, - 'textrendermode' => $this->textrendermode, - 'textstrokewidth' => $this->textstrokewidth, - 'DrawColor' => $this->DrawColor, - 'FillColor' => $this->FillColor, - 'TextColor' => $this->TextColor, - 'ColorFlag' => $this->ColorFlag, - 'bgcolor' => $this->bgcolor, - 'fgcolor' => $this->fgcolor, - 'htmlvspace' => $this->htmlvspace, - 'listindent' => $this->listindent, - 'listindentlevel' => $this->listindentlevel, - 'listnum' => $this->listnum, - 'listordered' => $this->listordered, - 'listcount' => $this->listcount, - 'lispacer' => $this->lispacer, - 'cell_height_ratio' => $this->cell_height_ratio, - 'font_stretching' => $this->font_stretching, - 'font_spacing' => $this->font_spacing, - 'alpha' => $this->alpha, - // extended - 'lasth' => $this->lasth, - 'tMargin' => $this->tMargin, - 'bMargin' => $this->bMargin, - 'AutoPageBreak' => $this->AutoPageBreak, - 'PageBreakTrigger' => $this->PageBreakTrigger, - 'x' => $this->x, - 'y' => $this->y, - 'w' => $this->w, - 'h' => $this->h, - 'wPt' => $this->wPt, - 'hPt' => $this->hPt, - 'fwPt' => $this->fwPt, - 'fhPt' => $this->fhPt, - 'page' => $this->page, - 'current_column' => $this->current_column, - 'num_columns' => $this->num_columns - ); - return $grapvars; - } - - /** - * Set graphic variables. - * @param $gvars (array) array of graphic variablesto restore - * @param $extended (boolean) if true restore extended graphic variables - * @protected - * @since 4.2.010 (2008-11-14) - */ - protected function setGraphicVars($gvars, $extended=false) { - if ($this->state != 2) { - return; - } - $this->FontFamily = $gvars['FontFamily']; - $this->FontStyle = $gvars['FontStyle']; - $this->FontSizePt = $gvars['FontSizePt']; - $this->rMargin = $gvars['rMargin']; - $this->lMargin = $gvars['lMargin']; - $this->cell_padding = $gvars['cell_padding']; - $this->cell_margin = $gvars['cell_margin']; - $this->LineWidth = $gvars['LineWidth']; - $this->linestyleWidth = $gvars['linestyleWidth']; - $this->linestyleCap = $gvars['linestyleCap']; - $this->linestyleJoin = $gvars['linestyleJoin']; - $this->linestyleDash = $gvars['linestyleDash']; - $this->textrendermode = $gvars['textrendermode']; - $this->textstrokewidth = $gvars['textstrokewidth']; - $this->DrawColor = $gvars['DrawColor']; - $this->FillColor = $gvars['FillColor']; - $this->TextColor = $gvars['TextColor']; - $this->ColorFlag = $gvars['ColorFlag']; - $this->bgcolor = $gvars['bgcolor']; - $this->fgcolor = $gvars['fgcolor']; - $this->htmlvspace = $gvars['htmlvspace']; - $this->listindent = $gvars['listindent']; - $this->listindentlevel = $gvars['listindentlevel']; - $this->listnum = $gvars['listnum']; - $this->listordered = $gvars['listordered']; - $this->listcount = $gvars['listcount']; - $this->lispacer = $gvars['lispacer']; - $this->cell_height_ratio = $gvars['cell_height_ratio']; - $this->font_stretching = $gvars['font_stretching']; - $this->font_spacing = $gvars['font_spacing']; - $this->alpha = $gvars['alpha']; - if ($extended) { - // restore extended values - $this->lasth = $gvars['lasth']; - $this->tMargin = $gvars['tMargin']; - $this->bMargin = $gvars['bMargin']; - $this->AutoPageBreak = $gvars['AutoPageBreak']; - $this->PageBreakTrigger = $gvars['PageBreakTrigger']; - $this->x = $gvars['x']; - $this->y = $gvars['y']; - $this->w = $gvars['w']; - $this->h = $gvars['h']; - $this->wPt = $gvars['wPt']; - $this->hPt = $gvars['hPt']; - $this->fwPt = $gvars['fwPt']; - $this->fhPt = $gvars['fhPt']; - $this->page = $gvars['page']; - $this->current_column = $gvars['current_column']; - $this->num_columns = $gvars['num_columns']; - } - $this->_out(''.$this->linestyleWidth.' '.$this->linestyleCap.' '.$this->linestyleJoin.' '.$this->linestyleDash.' '.$this->DrawColor.' '.$this->FillColor.''); - if (!TCPDF_STATIC::empty_string($this->FontFamily)) { - $this->SetFont($this->FontFamily, $this->FontStyle, $this->FontSizePt); - } - } - - /** - * Outputs the "save graphics state" operator 'q' - * @protected - */ - protected function _outSaveGraphicsState() { - $this->_out('q'); - } - - /** - * Outputs the "restore graphics state" operator 'Q' - * @protected - */ - protected function _outRestoreGraphicsState() { - $this->_out('Q'); - } - - /** - * Set buffer content (always append data). - * @param $data (string) data - * @protected - * @since 4.5.000 (2009-01-02) - */ - protected function setBuffer($data) { - $this->bufferlen += strlen($data); - $this->buffer .= $data; - } - - /** - * Replace the buffer content - * @param $data (string) data - * @protected - * @since 5.5.000 (2010-06-22) - */ - protected function replaceBuffer($data) { - $this->bufferlen = strlen($data); - $this->buffer = $data; - } - - /** - * Get buffer content. - * @return string buffer content - * @protected - * @since 4.5.000 (2009-01-02) - */ - protected function getBuffer() { - return $this->buffer; - } - - /** - * Set page buffer content. - * @param $page (int) page number - * @param $data (string) page data - * @param $append (boolean) if true append data, false replace. - * @protected - * @since 4.5.000 (2008-12-31) - */ - protected function setPageBuffer($page, $data, $append=false) { - if ($append) { - $this->pages[$page] .= $data; - } else { - $this->pages[$page] = $data; - } - if ($append AND isset($this->pagelen[$page])) { - $this->pagelen[$page] += strlen($data); - } else { - $this->pagelen[$page] = strlen($data); - } - } - - /** - * Get page buffer content. - * @param $page (int) page number - * @return string page buffer content or false in case of error - * @protected - * @since 4.5.000 (2008-12-31) - */ - protected function getPageBuffer($page) { - if (isset($this->pages[$page])) { - return $this->pages[$page]; - } - return false; - } - - /** - * Set image buffer content. - * @param $image (string) image key - * @param $data (array) image data - * @return int image index number - * @protected - * @since 4.5.000 (2008-12-31) - */ - protected function setImageBuffer($image, $data) { - if (($data['i'] = array_search($image, $this->imagekeys)) === FALSE) { - $this->imagekeys[$this->numimages] = $image; - $data['i'] = $this->numimages; - ++$this->numimages; - } - $this->images[$image] = $data; - return $data['i']; - } - - /** - * Set image buffer content for a specified sub-key. - * @param $image (string) image key - * @param $key (string) image sub-key - * @param $data (array) image data - * @protected - * @since 4.5.000 (2008-12-31) - */ - protected function setImageSubBuffer($image, $key, $data) { - if (!isset($this->images[$image])) { - $this->setImageBuffer($image, array()); - } - $this->images[$image][$key] = $data; - } - - /** - * Get image buffer content. - * @param $image (string) image key - * @return string image buffer content or false in case of error - * @protected - * @since 4.5.000 (2008-12-31) - */ - protected function getImageBuffer($image) { - if (isset($this->images[$image])) { - return $this->images[$image]; - } - return false; - } - - /** - * Set font buffer content. - * @param $font (string) font key - * @param $data (array) font data - * @protected - * @since 4.5.000 (2009-01-02) - */ - protected function setFontBuffer($font, $data) { - $this->fonts[$font] = $data; - if (!in_array($font, $this->fontkeys)) { - $this->fontkeys[] = $font; - // store object ID for current font - ++$this->n; - $this->font_obj_ids[$font] = $this->n; - $this->setFontSubBuffer($font, 'n', $this->n); - } - } - - /** - * Set font buffer content. - * @param $font (string) font key - * @param $key (string) font sub-key - * @param $data (array) font data - * @protected - * @since 4.5.000 (2009-01-02) - */ - protected function setFontSubBuffer($font, $key, $data) { - if (!isset($this->fonts[$font])) { - $this->setFontBuffer($font, array()); - } - $this->fonts[$font][$key] = $data; - } - - /** - * Get font buffer content. - * @param $font (string) font key - * @return string font buffer content or false in case of error - * @protected - * @since 4.5.000 (2009-01-02) - */ - protected function getFontBuffer($font) { - if (isset($this->fonts[$font])) { - return $this->fonts[$font]; - } - return false; - } - - /** - * Move a page to a previous position. - * @param $frompage (int) number of the source page - * @param $topage (int) number of the destination page (must be less than $frompage) - * @return true in case of success, false in case of error. - * @public - * @since 4.5.000 (2009-01-02) - */ - public function movePage($frompage, $topage) { - if (($frompage > $this->numpages) OR ($frompage <= $topage)) { - return false; - } - if ($frompage == $this->page) { - // close the page before moving it - $this->endPage(); - } - // move all page-related states - $tmppage = $this->getPageBuffer($frompage); - $tmppagedim = $this->pagedim[$frompage]; - $tmppagelen = $this->pagelen[$frompage]; - $tmpintmrk = $this->intmrk[$frompage]; - $tmpbordermrk = $this->bordermrk[$frompage]; - $tmpcntmrk = $this->cntmrk[$frompage]; - $tmppageobjects = $this->pageobjects[$frompage]; - if (isset($this->footerpos[$frompage])) { - $tmpfooterpos = $this->footerpos[$frompage]; - } - if (isset($this->footerlen[$frompage])) { - $tmpfooterlen = $this->footerlen[$frompage]; - } - if (isset($this->transfmrk[$frompage])) { - $tmptransfmrk = $this->transfmrk[$frompage]; - } - if (isset($this->PageAnnots[$frompage])) { - $tmpannots = $this->PageAnnots[$frompage]; - } - if (isset($this->newpagegroup) AND !empty($this->newpagegroup)) { - for ($i = $frompage; $i > $topage; --$i) { - if (isset($this->newpagegroup[$i]) AND (($i + $this->pagegroups[$this->newpagegroup[$i]]) > $frompage)) { - --$this->pagegroups[$this->newpagegroup[$i]]; - break; - } - } - for ($i = $topage; $i > 0; --$i) { - if (isset($this->newpagegroup[$i]) AND (($i + $this->pagegroups[$this->newpagegroup[$i]]) > $topage)) { - ++$this->pagegroups[$this->newpagegroup[$i]]; - break; - } - } - } - for ($i = $frompage; $i > $topage; --$i) { - $j = $i - 1; - // shift pages down - $this->setPageBuffer($i, $this->getPageBuffer($j)); - $this->pagedim[$i] = $this->pagedim[$j]; - $this->pagelen[$i] = $this->pagelen[$j]; - $this->intmrk[$i] = $this->intmrk[$j]; - $this->bordermrk[$i] = $this->bordermrk[$j]; - $this->cntmrk[$i] = $this->cntmrk[$j]; - $this->pageobjects[$i] = $this->pageobjects[$j]; - if (isset($this->footerpos[$j])) { - $this->footerpos[$i] = $this->footerpos[$j]; - } elseif (isset($this->footerpos[$i])) { - unset($this->footerpos[$i]); - } - if (isset($this->footerlen[$j])) { - $this->footerlen[$i] = $this->footerlen[$j]; - } elseif (isset($this->footerlen[$i])) { - unset($this->footerlen[$i]); - } - if (isset($this->transfmrk[$j])) { - $this->transfmrk[$i] = $this->transfmrk[$j]; - } elseif (isset($this->transfmrk[$i])) { - unset($this->transfmrk[$i]); - } - if (isset($this->PageAnnots[$j])) { - $this->PageAnnots[$i] = $this->PageAnnots[$j]; - } elseif (isset($this->PageAnnots[$i])) { - unset($this->PageAnnots[$i]); - } - if (isset($this->newpagegroup[$j])) { - $this->newpagegroup[$i] = $this->newpagegroup[$j]; - unset($this->newpagegroup[$j]); - } - if ($this->currpagegroup == $j) { - $this->currpagegroup = $i; - } - } - $this->setPageBuffer($topage, $tmppage); - $this->pagedim[$topage] = $tmppagedim; - $this->pagelen[$topage] = $tmppagelen; - $this->intmrk[$topage] = $tmpintmrk; - $this->bordermrk[$topage] = $tmpbordermrk; - $this->cntmrk[$topage] = $tmpcntmrk; - $this->pageobjects[$topage] = $tmppageobjects; - if (isset($tmpfooterpos)) { - $this->footerpos[$topage] = $tmpfooterpos; - } elseif (isset($this->footerpos[$topage])) { - unset($this->footerpos[$topage]); - } - if (isset($tmpfooterlen)) { - $this->footerlen[$topage] = $tmpfooterlen; - } elseif (isset($this->footerlen[$topage])) { - unset($this->footerlen[$topage]); - } - if (isset($tmptransfmrk)) { - $this->transfmrk[$topage] = $tmptransfmrk; - } elseif (isset($this->transfmrk[$topage])) { - unset($this->transfmrk[$topage]); - } - if (isset($tmpannots)) { - $this->PageAnnots[$topage] = $tmpannots; - } elseif (isset($this->PageAnnots[$topage])) { - unset($this->PageAnnots[$topage]); - } - // adjust outlines - $tmpoutlines = $this->outlines; - foreach ($tmpoutlines as $key => $outline) { - if (!$outline['f']) { - if (($outline['p'] >= $topage) AND ($outline['p'] < $frompage)) { - $this->outlines[$key]['p'] = ($outline['p'] + 1); - } elseif ($outline['p'] == $frompage) { - $this->outlines[$key]['p'] = $topage; - } - } - } - // adjust dests - $tmpdests = $this->dests; - foreach ($tmpdests as $key => $dest) { - if (!$dest['f']) { - if (($dest['p'] >= $topage) AND ($dest['p'] < $frompage)) { - $this->dests[$key]['p'] = ($dest['p'] + 1); - } elseif ($dest['p'] == $frompage) { - $this->dests[$key]['p'] = $topage; - } - } - } - // adjust links - $tmplinks = $this->links; - foreach ($tmplinks as $key => $link) { - if (!$link['f']) { - if (($link['p'] >= $topage) AND ($link['p'] < $frompage)) { - $this->links[$key]['p'] = ($link['p'] + 1); - } elseif ($link['p'] == $frompage) { - $this->links[$key]['p'] = $topage; - } - } - } - // adjust javascript - $jfrompage = $frompage; - $jtopage = $topage; - if (preg_match_all('/this\.addField\(\'([^\']*)\',\'([^\']*)\',([0-9]+)/', $this->javascript, $pamatch) > 0) { - foreach($pamatch[0] as $pk => $pmatch) { - $pagenum = intval($pamatch[3][$pk]) + 1; - if (($pagenum >= $jtopage) AND ($pagenum < $jfrompage)) { - $newpage = ($pagenum + 1); - } elseif ($pagenum == $jfrompage) { - $newpage = $jtopage; - } else { - $newpage = $pagenum; - } - --$newpage; - $newjs = "this.addField(\'".$pamatch[1][$pk]."\',\'".$pamatch[2][$pk]."\',".$newpage; - $this->javascript = str_replace($pmatch, $newjs, $this->javascript); - } - unset($pamatch); - } - // return to last page - $this->lastPage(true); - return true; - } - - /** - * Remove the specified page. - * @param $page (int) page to remove - * @return true in case of success, false in case of error. - * @public - * @since 4.6.004 (2009-04-23) - */ - public function deletePage($page) { - if (($page < 1) OR ($page > $this->numpages)) { - return false; - } - // delete current page - unset($this->pages[$page]); - unset($this->pagedim[$page]); - unset($this->pagelen[$page]); - unset($this->intmrk[$page]); - unset($this->bordermrk[$page]); - unset($this->cntmrk[$page]); - foreach ($this->pageobjects[$page] as $oid) { - if (isset($this->offsets[$oid])){ - unset($this->offsets[$oid]); - } - } - unset($this->pageobjects[$page]); - if (isset($this->footerpos[$page])) { - unset($this->footerpos[$page]); - } - if (isset($this->footerlen[$page])) { - unset($this->footerlen[$page]); - } - if (isset($this->transfmrk[$page])) { - unset($this->transfmrk[$page]); - } - if (isset($this->PageAnnots[$page])) { - unset($this->PageAnnots[$page]); - } - if (isset($this->newpagegroup) AND !empty($this->newpagegroup)) { - for ($i = $page; $i > 0; --$i) { - if (isset($this->newpagegroup[$i]) AND (($i + $this->pagegroups[$this->newpagegroup[$i]]) > $page)) { - --$this->pagegroups[$this->newpagegroup[$i]]; - break; - } - } - } - if (isset($this->pageopen[$page])) { - unset($this->pageopen[$page]); - } - if ($page < $this->numpages) { - // update remaining pages - for ($i = $page; $i < $this->numpages; ++$i) { - $j = $i + 1; - // shift pages - $this->setPageBuffer($i, $this->getPageBuffer($j)); - $this->pagedim[$i] = $this->pagedim[$j]; - $this->pagelen[$i] = $this->pagelen[$j]; - $this->intmrk[$i] = $this->intmrk[$j]; - $this->bordermrk[$i] = $this->bordermrk[$j]; - $this->cntmrk[$i] = $this->cntmrk[$j]; - $this->pageobjects[$i] = $this->pageobjects[$j]; - if (isset($this->footerpos[$j])) { - $this->footerpos[$i] = $this->footerpos[$j]; - } elseif (isset($this->footerpos[$i])) { - unset($this->footerpos[$i]); - } - if (isset($this->footerlen[$j])) { - $this->footerlen[$i] = $this->footerlen[$j]; - } elseif (isset($this->footerlen[$i])) { - unset($this->footerlen[$i]); - } - if (isset($this->transfmrk[$j])) { - $this->transfmrk[$i] = $this->transfmrk[$j]; - } elseif (isset($this->transfmrk[$i])) { - unset($this->transfmrk[$i]); - } - if (isset($this->PageAnnots[$j])) { - $this->PageAnnots[$i] = $this->PageAnnots[$j]; - } elseif (isset($this->PageAnnots[$i])) { - unset($this->PageAnnots[$i]); - } - if (isset($this->newpagegroup[$j])) { - $this->newpagegroup[$i] = $this->newpagegroup[$j]; - unset($this->newpagegroup[$j]); - } - if ($this->currpagegroup == $j) { - $this->currpagegroup = $i; - } - if (isset($this->pageopen[$j])) { - $this->pageopen[$i] = $this->pageopen[$j]; - } elseif (isset($this->pageopen[$i])) { - unset($this->pageopen[$i]); - } - } - // remove last page - unset($this->pages[$this->numpages]); - unset($this->pagedim[$this->numpages]); - unset($this->pagelen[$this->numpages]); - unset($this->intmrk[$this->numpages]); - unset($this->bordermrk[$this->numpages]); - unset($this->cntmrk[$this->numpages]); - foreach ($this->pageobjects[$this->numpages] as $oid) { - if (isset($this->offsets[$oid])){ - unset($this->offsets[$oid]); - } - } - unset($this->pageobjects[$this->numpages]); - if (isset($this->footerpos[$this->numpages])) { - unset($this->footerpos[$this->numpages]); - } - if (isset($this->footerlen[$this->numpages])) { - unset($this->footerlen[$this->numpages]); - } - if (isset($this->transfmrk[$this->numpages])) { - unset($this->transfmrk[$this->numpages]); - } - if (isset($this->PageAnnots[$this->numpages])) { - unset($this->PageAnnots[$this->numpages]); - } - if (isset($this->newpagegroup[$this->numpages])) { - unset($this->newpagegroup[$this->numpages]); - } - if ($this->currpagegroup == $this->numpages) { - $this->currpagegroup = ($this->numpages - 1); - } - if (isset($this->pagegroups[$this->numpages])) { - unset($this->pagegroups[$this->numpages]); - } - if (isset($this->pageopen[$this->numpages])) { - unset($this->pageopen[$this->numpages]); - } - } - --$this->numpages; - $this->page = $this->numpages; - // adjust outlines - $tmpoutlines = $this->outlines; - foreach ($tmpoutlines as $key => $outline) { - if (!$outline['f']) { - if ($outline['p'] > $page) { - $this->outlines[$key]['p'] = $outline['p'] - 1; - } elseif ($outline['p'] == $page) { - unset($this->outlines[$key]); - } - } - } - // adjust dests - $tmpdests = $this->dests; - foreach ($tmpdests as $key => $dest) { - if (!$dest['f']) { - if ($dest['p'] > $page) { - $this->dests[$key]['p'] = $dest['p'] - 1; - } elseif ($dest['p'] == $page) { - unset($this->dests[$key]); - } - } - } - // adjust links - $tmplinks = $this->links; - foreach ($tmplinks as $key => $link) { - if (!$link['f']) { - if ($link['p'] > $page) { - $this->links[$key]['p'] = $link['p'] - 1; - } elseif ($link['p'] == $page) { - unset($this->links[$key]); - } - } - } - // adjust javascript - $jpage = $page; - if (preg_match_all('/this\.addField\(\'([^\']*)\',\'([^\']*)\',([0-9]+)/', $this->javascript, $pamatch) > 0) { - foreach($pamatch[0] as $pk => $pmatch) { - $pagenum = intval($pamatch[3][$pk]) + 1; - if ($pagenum >= $jpage) { - $newpage = ($pagenum - 1); - } elseif ($pagenum == $jpage) { - $newpage = 1; - } else { - $newpage = $pagenum; - } - --$newpage; - $newjs = "this.addField(\'".$pamatch[1][$pk]."\',\'".$pamatch[2][$pk]."\',".$newpage; - $this->javascript = str_replace($pmatch, $newjs, $this->javascript); - } - unset($pamatch); - } - // return to last page - if ($this->numpages > 0) { - $this->lastPage(true); - } - return true; - } - - /** - * Clone the specified page to a new page. - * @param $page (int) number of page to copy (0 = current page) - * @return true in case of success, false in case of error. - * @public - * @since 4.9.015 (2010-04-20) - */ - public function copyPage($page=0) { - if ($page == 0) { - // default value - $page = $this->page; - } - if (($page < 1) OR ($page > $this->numpages)) { - return false; - } - // close the last page - $this->endPage(); - // copy all page-related states - ++$this->numpages; - $this->page = $this->numpages; - $this->setPageBuffer($this->page, $this->getPageBuffer($page)); - $this->pagedim[$this->page] = $this->pagedim[$page]; - $this->pagelen[$this->page] = $this->pagelen[$page]; - $this->intmrk[$this->page] = $this->intmrk[$page]; - $this->bordermrk[$this->page] = $this->bordermrk[$page]; - $this->cntmrk[$this->page] = $this->cntmrk[$page]; - $this->pageobjects[$this->page] = $this->pageobjects[$page]; - $this->pageopen[$this->page] = false; - if (isset($this->footerpos[$page])) { - $this->footerpos[$this->page] = $this->footerpos[$page]; - } - if (isset($this->footerlen[$page])) { - $this->footerlen[$this->page] = $this->footerlen[$page]; - } - if (isset($this->transfmrk[$page])) { - $this->transfmrk[$this->page] = $this->transfmrk[$page]; - } - if (isset($this->PageAnnots[$page])) { - $this->PageAnnots[$this->page] = $this->PageAnnots[$page]; - } - if (isset($this->newpagegroup[$page])) { - // start a new group - $this->newpagegroup[$this->page] = sizeof($this->newpagegroup) + 1; - $this->currpagegroup = $this->newpagegroup[$this->page]; - $this->pagegroups[$this->currpagegroup] = 1; - } elseif (isset($this->currpagegroup) AND ($this->currpagegroup > 0)) { - ++$this->pagegroups[$this->currpagegroup]; - } - // copy outlines - $tmpoutlines = $this->outlines; - foreach ($tmpoutlines as $key => $outline) { - if ($outline['p'] == $page) { - $this->outlines[] = array('t' => $outline['t'], 'l' => $outline['l'], 'x' => $outline['x'], 'y' => $outline['y'], 'p' => $this->page, 'f' => $outline['f'], 's' => $outline['s'], 'c' => $outline['c']); - } - } - // copy links - $tmplinks = $this->links; - foreach ($tmplinks as $key => $link) { - if ($link['p'] == $page) { - $this->links[] = array('p' => $this->page, 'y' => $link['y'], 'f' => $link['f']); - } - } - // return to last page - $this->lastPage(true); - return true; - } - - /** - * Output a Table of Content Index (TOC). - * This method must be called after all Bookmarks were set. - * Before calling this method you have to open the page using the addTOCPage() method. - * After calling this method you have to call endTOCPage() to close the TOC page. - * You can override this method to achieve different styles. - * @param $page (int) page number where this TOC should be inserted (leave empty for current page). - * @param $numbersfont (string) set the font for page numbers (please use monospaced font for better alignment). - * @param $filler (string) string used to fill the space between text and page number. - * @param $toc_name (string) name to use for TOC bookmark. - * @param $style (string) Font style for title: B = Bold, I = Italic, BI = Bold + Italic. - * @param $color (array) RGB color array for bookmark title (values from 0 to 255). - * @public - * @author Nicola Asuni - * @since 4.5.000 (2009-01-02) - * @see addTOCPage(), endTOCPage(), addHTMLTOC() - */ - public function addTOC($page='', $numbersfont='', $filler='.', $toc_name='TOC', $style='', $color=array(0,0,0)) { - $fontsize = $this->FontSizePt; - $fontfamily = $this->FontFamily; - $fontstyle = $this->FontStyle; - $w = $this->w - $this->lMargin - $this->rMargin; - $spacer = $this->GetStringWidth(chr(32)) * 4; - $lmargin = $this->lMargin; - $rmargin = $this->rMargin; - $x_start = $this->GetX(); - $page_first = $this->page; - $current_page = $this->page; - $page_fill_start = false; - $page_fill_end = false; - $current_column = $this->current_column; - if (TCPDF_STATIC::empty_string($numbersfont)) { - $numbersfont = $this->default_monospaced_font; - } - if (TCPDF_STATIC::empty_string($filler)) { - $filler = ' '; - } - if (TCPDF_STATIC::empty_string($page)) { - $gap = ' '; - } else { - $gap = ''; - if ($page < 1) { - $page = 1; - } - } - $this->SetFont($numbersfont, $fontstyle, $fontsize); - $numwidth = $this->GetStringWidth('00000'); - $maxpage = 0; //used for pages on attached documents - foreach ($this->outlines as $key => $outline) { - // check for extra pages (used for attachments) - if (($this->page > $page_first) AND ($outline['p'] >= $this->numpages)) { - $outline['p'] += ($this->page - $page_first); - } - if ($this->rtl) { - $aligntext = 'R'; - $alignnum = 'L'; - } else { - $aligntext = 'L'; - $alignnum = 'R'; - } - if ($outline['l'] == 0) { - $this->SetFont($fontfamily, $outline['s'].'B', $fontsize); - } else { - $this->SetFont($fontfamily, $outline['s'], $fontsize - $outline['l']); - } - $this->SetTextColorArray($outline['c']); - // check for page break - $this->checkPageBreak(2 * $this->getCellHeight($this->FontSize)); - // set margins and X position - if (($this->page == $current_page) AND ($this->current_column == $current_column)) { - $this->lMargin = $lmargin; - $this->rMargin = $rmargin; - } else { - if ($this->current_column != $current_column) { - if ($this->rtl) { - $x_start = $this->w - $this->columns[$this->current_column]['x']; - } else { - $x_start = $this->columns[$this->current_column]['x']; - } - } - $lmargin = $this->lMargin; - $rmargin = $this->rMargin; - $current_page = $this->page; - $current_column = $this->current_column; - } - $this->SetX($x_start); - $indent = ($spacer * $outline['l']); - if ($this->rtl) { - $this->x -= $indent; - $this->rMargin = $this->w - $this->x; - } else { - $this->x += $indent; - $this->lMargin = $this->x; - } - $link = $this->AddLink(); - $this->SetLink($link, $outline['y'], $outline['p']); - // write the text - if ($this->rtl) { - $txt = ' '.$outline['t']; - } else { - $txt = $outline['t'].' '; - } - $this->Write(0, $txt, $link, false, $aligntext, false, 0, false, false, 0, $numwidth, ''); - if ($this->rtl) { - $tw = $this->x - $this->lMargin; - } else { - $tw = $this->w - $this->rMargin - $this->x; - } - $this->SetFont($numbersfont, $fontstyle, $fontsize); - if (TCPDF_STATIC::empty_string($page)) { - $pagenum = $outline['p']; - } else { - // placemark to be replaced with the correct number - $pagenum = '{#'.($outline['p']).'}'; - if ($this->isUnicodeFont()) { - $pagenum = '{'.$pagenum.'}'; - } - $maxpage = max($maxpage, $outline['p']); - } - $fw = ($tw - $this->GetStringWidth($pagenum.$filler)); - $wfiller = $this->GetStringWidth($filler); - if ($wfiller > 0) { - $numfills = floor($fw / $wfiller); - } else { - $numfills = 0; - } - if ($numfills > 0) { - $rowfill = str_repeat($filler, $numfills); - } else { - $rowfill = ''; - } - if ($this->rtl) { - $pagenum = $pagenum.$gap.$rowfill; - } else { - $pagenum = $rowfill.$gap.$pagenum; - } - // write the number - $this->Cell($tw, 0, $pagenum, 0, 1, $alignnum, 0, $link, 0); - } - $page_last = $this->getPage(); - $numpages = ($page_last - $page_first + 1); - // account for booklet mode - if ($this->booklet) { - // check if a blank page is required before TOC - $page_fill_start = ((($page_first % 2) == 0) XOR (($page % 2) == 0)); - $page_fill_end = (!((($numpages % 2) == 0) XOR ($page_fill_start))); - if ($page_fill_start) { - // add a page at the end (to be moved before TOC) - $this->addPage(); - ++$page_last; - ++$numpages; - } - if ($page_fill_end) { - // add a page at the end - $this->addPage(); - ++$page_last; - ++$numpages; - } - } - $maxpage = max($maxpage, $page_last); - if (!TCPDF_STATIC::empty_string($page)) { - for ($p = $page_first; $p <= $page_last; ++$p) { - // get page data - $temppage = $this->getPageBuffer($p); - for ($n = 1; $n <= $maxpage; ++$n) { - // update page numbers - $a = '{#'.$n.'}'; - // get page number aliases - $pnalias = $this->getInternalPageNumberAliases($a); - // calculate replacement number - if (($n >= $page) AND ($n <= $this->numpages)) { - $np = $n + $numpages; - } else { - $np = $n; - } - $na = TCPDF_STATIC::formatTOCPageNumber(($this->starting_page_number + $np - 1)); - $nu = TCPDF_FONTS::UTF8ToUTF16BE($na, false, $this->isunicode, $this->CurrentFont); - // replace aliases with numbers - foreach ($pnalias['u'] as $u) { - $sfill = str_repeat($filler, max(0, (strlen($u) - strlen($nu.' ')))); - if ($this->rtl) { - $nr = $nu.TCPDF_FONTS::UTF8ToUTF16BE(' '.$sfill, false, $this->isunicode, $this->CurrentFont); - } else { - $nr = TCPDF_FONTS::UTF8ToUTF16BE($sfill.' ', false, $this->isunicode, $this->CurrentFont).$nu; - } - $temppage = str_replace($u, $nr, $temppage); - } - foreach ($pnalias['a'] as $a) { - $sfill = str_repeat($filler, max(0, (strlen($a) - strlen($na.' ')))); - if ($this->rtl) { - $nr = $na.' '.$sfill; - } else { - $nr = $sfill.' '.$na; - } - $temppage = str_replace($a, $nr, $temppage); - } - } - // save changes - $this->setPageBuffer($p, $temppage); - } - // move pages - $this->Bookmark($toc_name, 0, 0, $page_first, $style, $color); - if ($page_fill_start) { - $this->movePage($page_last, $page_first); - } - for ($i = 0; $i < $numpages; ++$i) { - $this->movePage($page_last, $page); - } - } - } - - /** - * Output a Table Of Content Index (TOC) using HTML templates. - * This method must be called after all Bookmarks were set. - * Before calling this method you have to open the page using the addTOCPage() method. - * After calling this method you have to call endTOCPage() to close the TOC page. - * @param $page (int) page number where this TOC should be inserted (leave empty for current page). - * @param $toc_name (string) name to use for TOC bookmark. - * @param $templates (array) array of html templates. Use: "#TOC_DESCRIPTION#" for bookmark title, "#TOC_PAGE_NUMBER#" for page number. - * @param $correct_align (boolean) if true correct the number alignment (numbers must be in monospaced font like courier and right aligned on LTR, or left aligned on RTL) - * @param $style (string) Font style for title: B = Bold, I = Italic, BI = Bold + Italic. - * @param $color (array) RGB color array for title (values from 0 to 255). - * @public - * @author Nicola Asuni - * @since 5.0.001 (2010-05-06) - * @see addTOCPage(), endTOCPage(), addTOC() - */ - public function addHTMLTOC($page='', $toc_name='TOC', $templates=array(), $correct_align=true, $style='', $color=array(0,0,0)) { - $filler = ' '; - $prev_htmlLinkColorArray = $this->htmlLinkColorArray; - $prev_htmlLinkFontStyle = $this->htmlLinkFontStyle; - // set new style for link - $this->htmlLinkColorArray = array(); - $this->htmlLinkFontStyle = ''; - $page_first = $this->getPage(); - $page_fill_start = false; - $page_fill_end = false; - // get the font type used for numbers in each template - $current_font = $this->FontFamily; - foreach ($templates as $level => $html) { - $dom = $this->getHtmlDomArray($html); - foreach ($dom as $key => $value) { - if ($value['value'] == '#TOC_PAGE_NUMBER#') { - $this->SetFont($dom[($key - 1)]['fontname']); - $templates['F'.$level] = $this->isUnicodeFont(); - } - } - } - $this->SetFont($current_font); - $maxpage = 0; //used for pages on attached documents - foreach ($this->outlines as $key => $outline) { - // get HTML template - $row = $templates[$outline['l']]; - if (TCPDF_STATIC::empty_string($page)) { - $pagenum = $outline['p']; - } else { - // placemark to be replaced with the correct number - $pagenum = '{#'.($outline['p']).'}'; - if (isset($templates['F'.$outline['l']]) && $templates['F'.$outline['l']]) { - $pagenum = '{'.$pagenum.'}'; - } - $maxpage = max($maxpage, $outline['p']); - } - // replace templates with current values - $row = str_replace('#TOC_DESCRIPTION#', $outline['t'], $row); - $row = str_replace('#TOC_PAGE_NUMBER#', $pagenum, $row); - // add link to page - $row = ''.$row.''; - // write bookmark entry - $this->writeHTML($row, false, false, true, false, ''); - } - // restore link styles - $this->htmlLinkColorArray = $prev_htmlLinkColorArray; - $this->htmlLinkFontStyle = $prev_htmlLinkFontStyle; - // move TOC page and replace numbers - $page_last = $this->getPage(); - $numpages = ($page_last - $page_first + 1); - // account for booklet mode - if ($this->booklet) { - // check if a blank page is required before TOC - $page_fill_start = ((($page_first % 2) == 0) XOR (($page % 2) == 0)); - $page_fill_end = (!((($numpages % 2) == 0) XOR ($page_fill_start))); - if ($page_fill_start) { - // add a page at the end (to be moved before TOC) - $this->addPage(); - ++$page_last; - ++$numpages; - } - if ($page_fill_end) { - // add a page at the end - $this->addPage(); - ++$page_last; - ++$numpages; - } - } - $maxpage = max($maxpage, $page_last); - if (!TCPDF_STATIC::empty_string($page)) { - for ($p = $page_first; $p <= $page_last; ++$p) { - // get page data - $temppage = $this->getPageBuffer($p); - for ($n = 1; $n <= $maxpage; ++$n) { - // update page numbers - $a = '{#'.$n.'}'; - // get page number aliases - $pnalias = $this->getInternalPageNumberAliases($a); - // calculate replacement number - if ($n >= $page) { - $np = $n + $numpages; - } else { - $np = $n; - } - $na = TCPDF_STATIC::formatTOCPageNumber(($this->starting_page_number + $np - 1)); - $nu = TCPDF_FONTS::UTF8ToUTF16BE($na, false, $this->isunicode, $this->CurrentFont); - // replace aliases with numbers - foreach ($pnalias['u'] as $u) { - if ($correct_align) { - $sfill = str_repeat($filler, (strlen($u) - strlen($nu.' '))); - if ($this->rtl) { - $nr = $nu.TCPDF_FONTS::UTF8ToUTF16BE(' '.$sfill, false, $this->isunicode, $this->CurrentFont); - } else { - $nr = TCPDF_FONTS::UTF8ToUTF16BE($sfill.' ', false, $this->isunicode, $this->CurrentFont).$nu; - } - } else { - $nr = $nu; - } - $temppage = str_replace($u, $nr, $temppage); - } - foreach ($pnalias['a'] as $a) { - if ($correct_align) { - $sfill = str_repeat($filler, (strlen($a) - strlen($na.' '))); - if ($this->rtl) { - $nr = $na.' '.$sfill; - } else { - $nr = $sfill.' '.$na; - } - } else { - $nr = $na; - } - $temppage = str_replace($a, $nr, $temppage); - } - } - // save changes - $this->setPageBuffer($p, $temppage); - } - // move pages - $this->Bookmark($toc_name, 0, 0, $page_first, $style, $color); - if ($page_fill_start) { - $this->movePage($page_last, $page_first); - } - for ($i = 0; $i < $numpages; ++$i) { - $this->movePage($page_last, $page); - } - } - } - - /** - * Stores a copy of the current TCPDF object used for undo operation. - * @public - * @since 4.5.029 (2009-03-19) - */ - public function startTransaction() { - if (isset($this->objcopy)) { - // remove previous copy - $this->commitTransaction(); - } - // record current page number and Y position - $this->start_transaction_page = $this->page; - $this->start_transaction_y = $this->y; - // clone current object - $this->objcopy = TCPDF_STATIC::objclone($this); - } - - /** - * Delete the copy of the current TCPDF object used for undo operation. - * @public - * @since 4.5.029 (2009-03-19) - */ - public function commitTransaction() { - if (isset($this->objcopy)) { - $this->objcopy->_destroy(true, true); - unset($this->objcopy); - } - } - - /** - * This method allows to undo the latest transaction by returning the latest saved TCPDF object with startTransaction(). - * @param $self (boolean) if true restores current class object to previous state without the need of reassignment via the returned value. - * @return TCPDF object. - * @public - * @since 4.5.029 (2009-03-19) - */ - public function rollbackTransaction($self=false) { - if (isset($this->objcopy)) { - $this->_destroy(true, true); - if ($self) { - $objvars = get_object_vars($this->objcopy); - foreach ($objvars as $key => $value) { - $this->$key = $value; - } - } - return $this->objcopy; - } - return $this; - } - - // --- MULTI COLUMNS METHODS ----------------------- - - /** - * Set multiple columns of the same size - * @param $numcols (int) number of columns (set to zero to disable columns mode) - * @param $width (int) column width - * @param $y (int) column starting Y position (leave empty for current Y position) - * @public - * @since 4.9.001 (2010-03-28) - */ - public function setEqualColumns($numcols=0, $width=0, $y='') { - $this->columns = array(); - if ($numcols < 2) { - $numcols = 0; - $this->columns = array(); - } else { - // maximum column width - $maxwidth = ($this->w - $this->original_lMargin - $this->original_rMargin) / $numcols; - if (($width == 0) OR ($width > $maxwidth)) { - $width = $maxwidth; - } - if (TCPDF_STATIC::empty_string($y)) { - $y = $this->y; - } - // space between columns - $space = (($this->w - $this->original_lMargin - $this->original_rMargin - ($numcols * $width)) / ($numcols - 1)); - // fill the columns array (with, space, starting Y position) - for ($i = 0; $i < $numcols; ++$i) { - $this->columns[$i] = array('w' => $width, 's' => $space, 'y' => $y); - } - } - $this->num_columns = $numcols; - $this->current_column = 0; - $this->column_start_page = $this->page; - $this->selectColumn(0); - } - - /** - * Remove columns and reset page margins. - * @public - * @since 5.9.072 (2011-04-26) - */ - public function resetColumns() { - $this->lMargin = $this->original_lMargin; - $this->rMargin = $this->original_rMargin; - $this->setEqualColumns(); - } - - /** - * Set columns array. - * Each column is represented by an array of arrays with the following keys: (w = width, s = space between columns, y = column top position). - * @param $columns (array) - * @public - * @since 4.9.001 (2010-03-28) - */ - public function setColumnsArray($columns) { - $this->columns = $columns; - $this->num_columns = count($columns); - $this->current_column = 0; - $this->column_start_page = $this->page; - $this->selectColumn(0); - } - - /** - * Set position at a given column - * @param $col (int) column number (from 0 to getNumberOfColumns()-1); empty string = current column. - * @public - * @since 4.9.001 (2010-03-28) - */ - public function selectColumn($col='') { - if (is_string($col)) { - $col = $this->current_column; - } elseif ($col >= $this->num_columns) { - $col = 0; - } - $xshift = array('x' => 0, 's' => array('H' => 0, 'V' => 0), 'p' => array('L' => 0, 'T' => 0, 'R' => 0, 'B' => 0)); - $enable_thead = false; - if ($this->num_columns > 1) { - if ($col != $this->current_column) { - // move Y pointer at the top of the column - if ($this->column_start_page == $this->page) { - $this->y = $this->columns[$col]['y']; - } else { - $this->y = $this->tMargin; - } - // Avoid to write table headers more than once - if (($this->page > $this->maxselcol['page']) OR (($this->page == $this->maxselcol['page']) AND ($col > $this->maxselcol['column']))) { - $enable_thead = true; - $this->maxselcol['page'] = $this->page; - $this->maxselcol['column'] = $col; - } - } - $xshift = $this->colxshift; - // set X position of the current column by case - $listindent = ($this->listindentlevel * $this->listindent); - // calculate column X position - $colpos = 0; - for ($i = 0; $i < $col; ++$i) { - $colpos += ($this->columns[$i]['w'] + $this->columns[$i]['s']); - } - if ($this->rtl) { - $x = $this->w - $this->original_rMargin - $colpos; - $this->rMargin = ($this->w - $x + $listindent); - $this->lMargin = ($x - $this->columns[$col]['w']); - $this->x = $x - $listindent; - } else { - $x = $this->original_lMargin + $colpos; - $this->lMargin = ($x + $listindent); - $this->rMargin = ($this->w - $x - $this->columns[$col]['w']); - $this->x = $x + $listindent; - } - $this->columns[$col]['x'] = $x; - } - $this->current_column = $col; - // fix for HTML mode - $this->newline = true; - // print HTML table header (if any) - if ((!TCPDF_STATIC::empty_string($this->thead)) AND (!$this->inthead)) { - if ($enable_thead) { - // print table header - $this->writeHTML($this->thead, false, false, false, false, ''); - $this->y += $xshift['s']['V']; - // store end of header position - if (!isset($this->columns[$col]['th'])) { - $this->columns[$col]['th'] = array(); - } - $this->columns[$col]['th']['\''.$this->page.'\''] = $this->y; - $this->lasth = 0; - } elseif (isset($this->columns[$col]['th']['\''.$this->page.'\''])) { - $this->y = $this->columns[$col]['th']['\''.$this->page.'\'']; - } - } - // account for an html table cell over multiple columns - if ($this->rtl) { - $this->rMargin += $xshift['x']; - $this->x -= ($xshift['x'] + $xshift['p']['R']); - } else { - $this->lMargin += $xshift['x']; - $this->x += $xshift['x'] + $xshift['p']['L']; - } - } - - /** - * Return the current column number - * @return int current column number - * @public - * @since 5.5.011 (2010-07-08) - */ - public function getColumn() { - return $this->current_column; - } - - /** - * Return the current number of columns. - * @return int number of columns - * @public - * @since 5.8.018 (2010-08-25) - */ - public function getNumberOfColumns() { - return $this->num_columns; - } - - /** - * Set Text rendering mode. - * @param $stroke (int) outline size in user units (0 = disable). - * @param $fill (boolean) if true fills the text (default). - * @param $clip (boolean) if true activate clipping mode - * @public - * @since 4.9.008 (2009-04-02) - */ - public function setTextRenderingMode($stroke=0, $fill=true, $clip=false) { - // Ref.: PDF 32000-1:2008 - 9.3.6 Text Rendering Mode - // convert text rendering parameters - if ($stroke < 0) { - $stroke = 0; - } - if ($fill === true) { - if ($stroke > 0) { - if ($clip === true) { - // Fill, then stroke text and add to path for clipping - $textrendermode = 6; - } else { - // Fill, then stroke text - $textrendermode = 2; - } - $textstrokewidth = $stroke; - } else { - if ($clip === true) { - // Fill text and add to path for clipping - $textrendermode = 4; - } else { - // Fill text - $textrendermode = 0; - } - } - } else { - if ($stroke > 0) { - if ($clip === true) { - // Stroke text and add to path for clipping - $textrendermode = 5; - } else { - // Stroke text - $textrendermode = 1; - } - $textstrokewidth = $stroke; - } else { - if ($clip === true) { - // Add text to path for clipping - $textrendermode = 7; - } else { - // Neither fill nor stroke text (invisible) - $textrendermode = 3; - } - } - } - $this->textrendermode = $textrendermode; - $this->textstrokewidth = $stroke; - } - - /** - * Set parameters for drop shadow effect for text. - * @param $params (array) Array of parameters: enabled (boolean) set to true to enable shadow; depth_w (float) shadow width in user units; depth_h (float) shadow height in user units; color (array) shadow color or false to use the stroke color; opacity (float) Alpha value: real value from 0 (transparent) to 1 (opaque); blend_mode (string) blend mode, one of the following: Normal, Multiply, Screen, Overlay, Darken, Lighten, ColorDodge, ColorBurn, HardLight, SoftLight, Difference, Exclusion, Hue, Saturation, Color, Luminosity. - * @since 5.9.174 (2012-07-25) - * @public - */ - public function setTextShadow($params=array('enabled'=>false, 'depth_w'=>0, 'depth_h'=>0, 'color'=>false, 'opacity'=>1, 'blend_mode'=>'Normal')) { - if (isset($params['enabled'])) { - $this->txtshadow['enabled'] = $params['enabled']?true:false; - } else { - $this->txtshadow['enabled'] = false; - } - if (isset($params['depth_w'])) { - $this->txtshadow['depth_w'] = floatval($params['depth_w']); - } else { - $this->txtshadow['depth_w'] = 0; - } - if (isset($params['depth_h'])) { - $this->txtshadow['depth_h'] = floatval($params['depth_h']); - } else { - $this->txtshadow['depth_h'] = 0; - } - if (isset($params['color']) AND ($params['color'] !== false) AND is_array($params['color'])) { - $this->txtshadow['color'] = $params['color']; - } else { - $this->txtshadow['color'] = $this->strokecolor; - } - if (isset($params['opacity'])) { - $this->txtshadow['opacity'] = min(1, max(0, floatval($params['opacity']))); - } else { - $this->txtshadow['opacity'] = 1; - } - if (isset($params['blend_mode']) AND in_array($params['blend_mode'], array('Normal', 'Multiply', 'Screen', 'Overlay', 'Darken', 'Lighten', 'ColorDodge', 'ColorBurn', 'HardLight', 'SoftLight', 'Difference', 'Exclusion', 'Hue', 'Saturation', 'Color', 'Luminosity'))) { - $this->txtshadow['blend_mode'] = $params['blend_mode']; - } else { - $this->txtshadow['blend_mode'] = 'Normal'; - } - if ((($this->txtshadow['depth_w'] == 0) AND ($this->txtshadow['depth_h'] == 0)) OR ($this->txtshadow['opacity'] == 0)) { - $this->txtshadow['enabled'] = false; - } - } - - /** - * Return the text shadow parameters array. - * @return Array of parameters. - * @since 5.9.174 (2012-07-25) - * @public - */ - public function getTextShadow() { - return $this->txtshadow; - } - - /** - * Returns an array of chars containing soft hyphens. - * @param $word (array) array of chars - * @param $patterns (array) Array of hypenation patterns. - * @param $dictionary (array) Array of words to be returned without applying the hyphenation algorithm. - * @param $leftmin (int) Minimum number of character to leave on the left of the word without applying the hyphens. - * @param $rightmin (int) Minimum number of character to leave on the right of the word without applying the hyphens. - * @param $charmin (int) Minimum word length to apply the hyphenation algorithm. - * @param $charmax (int) Maximum length of broken piece of word. - * @return array text with soft hyphens - * @author Nicola Asuni - * @since 4.9.012 (2010-04-12) - * @protected - */ - protected function hyphenateWord($word, $patterns, $dictionary=array(), $leftmin=1, $rightmin=2, $charmin=1, $charmax=8) { - $hyphenword = array(); // hyphens positions - $numchars = count($word); - if ($numchars <= $charmin) { - return $word; - } - $word_string = TCPDF_FONTS::UTF8ArrSubString($word, '', '', $this->isunicode); - // some words will be returned as-is - $pattern = '/^([a-zA-Z0-9_\.\-]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/'; - if (preg_match($pattern, $word_string) > 0) { - // email - return $word; - } - $pattern = '/(([a-zA-Z0-9\-]+\.)?)((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/'; - if (preg_match($pattern, $word_string) > 0) { - // URL - return $word; - } - if (isset($dictionary[$word_string])) { - return TCPDF_FONTS::UTF8StringToArray($dictionary[$word_string], $this->isunicode, $this->CurrentFont); - } - // surround word with '_' characters - $tmpword = array_merge(array(46), $word, array(46)); - $tmpnumchars = $numchars + 2; - $maxpos = $tmpnumchars - 1; - for ($pos = 0; $pos < $maxpos; ++$pos) { - $imax = min(($tmpnumchars - $pos), $charmax); - for ($i = 1; $i <= $imax; ++$i) { - $subword = strtolower(TCPDF_FONTS::UTF8ArrSubString($tmpword, $pos, ($pos + $i), $this->isunicode)); - if (isset($patterns[$subword])) { - $pattern = TCPDF_FONTS::UTF8StringToArray($patterns[$subword], $this->isunicode, $this->CurrentFont); - $pattern_length = count($pattern); - $digits = 1; - for ($j = 0; $j < $pattern_length; ++$j) { - // check if $pattern[$j] is a number = hyphenation level (only numbers from 1 to 5 are valid) - if (($pattern[$j] >= 48) AND ($pattern[$j] <= 57)) { - if ($j == 0) { - $zero = $pos - 1; - } else { - $zero = $pos + $j - $digits; - } - // get hyphenation level - $level = ($pattern[$j] - 48); - // if two levels from two different patterns match at the same point, the higher one is selected. - if (!isset($hyphenword[$zero]) OR ($hyphenword[$zero] < $level)) { - $hyphenword[$zero] = $level; - } - ++$digits; - } - } - } - } - } - $inserted = 0; - $maxpos = $numchars - $rightmin; - for ($i = $leftmin; $i <= $maxpos; ++$i) { - // only odd levels indicate allowed hyphenation points - if (isset($hyphenword[$i]) AND (($hyphenword[$i] % 2) != 0)) { - // 173 = soft hyphen character - array_splice($word, $i + $inserted, 0, 173); - ++$inserted; - } - } - return $word; - } - - /** - * Returns text with soft hyphens. - * @param $text (string) text to process - * @param $patterns (mixed) Array of hypenation patterns or a TEX file containing hypenation patterns. TEX patterns can be downloaded from http://www.ctan.org/tex-archive/language/hyph-utf8/tex/generic/hyph-utf8/patterns/ - * @param $dictionary (array) Array of words to be returned without applying the hyphenation algorithm. - * @param $leftmin (int) Minimum number of character to leave on the left of the word without applying the hyphens. - * @param $rightmin (int) Minimum number of character to leave on the right of the word without applying the hyphens. - * @param $charmin (int) Minimum word length to apply the hyphenation algorithm. - * @param $charmax (int) Maximum length of broken piece of word. - * @return array text with soft hyphens - * @author Nicola Asuni - * @since 4.9.012 (2010-04-12) - * @public - */ - public function hyphenateText($text, $patterns, $dictionary=array(), $leftmin=1, $rightmin=2, $charmin=1, $charmax=8) { - $text = $this->unhtmlentities($text); - $word = array(); // last word - $txtarr = array(); // text to be returned - $intag = false; // true if we are inside an HTML tag - $skip = false; // true to skip hyphenation - if (!is_array($patterns)) { - $patterns = TCPDF_STATIC::getHyphenPatternsFromTEX($patterns); - } - // get array of characters - $unichars = TCPDF_FONTS::UTF8StringToArray($text, $this->isunicode, $this->CurrentFont); - // for each char - foreach ($unichars as $char) { - if ((!$intag) AND (!$skip) AND TCPDF_FONT_DATA::$uni_type[$char] == 'L') { - // letter character - $word[] = $char; - } else { - // other type of character - if (!TCPDF_STATIC::empty_string($word)) { - // hypenate the word - $txtarr = array_merge($txtarr, $this->hyphenateWord($word, $patterns, $dictionary, $leftmin, $rightmin, $charmin, $charmax)); - $word = array(); - } - $txtarr[] = $char; - if (chr($char) == '<') { - // we are inside an HTML tag - $intag = true; - } elseif ($intag AND (chr($char) == '>')) { - // end of HTML tag - $intag = false; - // check for style tag - $expected = array(115, 116, 121, 108, 101); // = 'style' - $current = array_slice($txtarr, -6, 5); // last 5 chars - $compare = array_diff($expected, $current); - if (empty($compare)) { - // check if it is a closing tag - $expected = array(47); // = '/' - $current = array_slice($txtarr, -7, 1); - $compare = array_diff($expected, $current); - if (empty($compare)) { - // closing style tag - $skip = false; - } else { - // opening style tag - $skip = true; - } - } - } - } - } - if (!TCPDF_STATIC::empty_string($word)) { - // hypenate the word - $txtarr = array_merge($txtarr, $this->hyphenateWord($word, $patterns, $dictionary, $leftmin, $rightmin, $charmin, $charmax)); - } - // convert char array to string and return - return TCPDF_FONTS::UTF8ArrSubString($txtarr, '', '', $this->isunicode); - } - - /** - * Enable/disable rasterization of vector images using ImageMagick library. - * @param $mode (boolean) if true enable rasterization, false otherwise. - * @public - * @since 5.0.000 (2010-04-27) - */ - public function setRasterizeVectorImages($mode) { - $this->rasterize_vector_images = $mode; - } - - /** - * Enable or disable default option for font subsetting. - * @param $enable (boolean) if true enable font subsetting by default. - * @author Nicola Asuni - * @public - * @since 5.3.002 (2010-06-07) - */ - public function setFontSubsetting($enable=true) { - if ($this->pdfa_mode) { - $this->font_subsetting = false; - } else { - $this->font_subsetting = $enable ? true : false; - } - } - - /** - * Return the default option for font subsetting. - * @return boolean default font subsetting state. - * @author Nicola Asuni - * @public - * @since 5.3.002 (2010-06-07) - */ - public function getFontSubsetting() { - return $this->font_subsetting; - } - - /** - * Left trim the input string - * @param $str (string) string to trim - * @param $replace (string) string that replace spaces. - * @return left trimmed string - * @author Nicola Asuni - * @public - * @since 5.8.000 (2010-08-11) - */ - public function stringLeftTrim($str, $replace='') { - return preg_replace('/^'.$this->re_space['p'].'+/'.$this->re_space['m'], $replace, $str); - } - - /** - * Right trim the input string - * @param $str (string) string to trim - * @param $replace (string) string that replace spaces. - * @return right trimmed string - * @author Nicola Asuni - * @public - * @since 5.8.000 (2010-08-11) - */ - public function stringRightTrim($str, $replace='') { - return preg_replace('/'.$this->re_space['p'].'+$/'.$this->re_space['m'], $replace, $str); - } - - /** - * Trim the input string - * @param $str (string) string to trim - * @param $replace (string) string that replace spaces. - * @return trimmed string - * @author Nicola Asuni - * @public - * @since 5.8.000 (2010-08-11) - */ - public function stringTrim($str, $replace='') { - $str = $this->stringLeftTrim($str, $replace); - $str = $this->stringRightTrim($str, $replace); - return $str; - } - - /** - * Return true if the current font is unicode type. - * @return true for unicode font, false otherwise. - * @author Nicola Asuni - * @public - * @since 5.8.002 (2010-08-14) - */ - public function isUnicodeFont() { - return (($this->CurrentFont['type'] == 'TrueTypeUnicode') OR ($this->CurrentFont['type'] == 'cidfont0')); - } - - /** - * Return normalized font name - * @param $fontfamily (string) property string containing font family names - * @return string normalized font name - * @author Nicola Asuni - * @public - * @since 5.8.004 (2010-08-17) - */ - public function getFontFamilyName($fontfamily) { - // remove spaces and symbols - $fontfamily = preg_replace('/[^a-z0-9_\,]/', '', strtolower($fontfamily)); - // extract all font names - $fontslist = preg_split('/[,]/', $fontfamily); - // find first valid font name - foreach ($fontslist as $font) { - // replace font variations - $font = preg_replace('/regular$/', '', $font); - $font = preg_replace('/italic$/', 'I', $font); - $font = preg_replace('/oblique$/', 'I', $font); - $font = preg_replace('/bold([I]?)$/', 'B\\1', $font); - // replace common family names and core fonts - $pattern = array(); - $replacement = array(); - $pattern[] = '/^serif|^cursive|^fantasy|^timesnewroman/'; - $replacement[] = 'times'; - $pattern[] = '/^sansserif/'; - $replacement[] = 'helvetica'; - $pattern[] = '/^monospace/'; - $replacement[] = 'courier'; - $font = preg_replace($pattern, $replacement, $font); - if (in_array(strtolower($font), $this->fontlist) OR in_array($font, $this->fontkeys)) { - return $font; - } - } - // return current font as default - return $this->CurrentFont['fontkey']; - } - - /** - * Start a new XObject Template. - * An XObject Template is a PDF block that is a self-contained description of any sequence of graphics objects (including path objects, text objects, and sampled images). - * An XObject Template may be painted multiple times, either on several pages or at several locations on the same page and produces the same results each time, subject only to the graphics state at the time it is invoked. - * Note: X,Y coordinates will be reset to 0,0. - * @param $w (int) Template width in user units (empty string or zero = page width less margins). - * @param $h (int) Template height in user units (empty string or zero = page height less margins). - * @param $group (mixed) Set transparency group. Can be a boolean value or an array specifying optional parameters: 'CS' (solour space name), 'I' (boolean flag to indicate isolated group) and 'K' (boolean flag to indicate knockout group). - * @return int the XObject Template ID in case of success or false in case of error. - * @author Nicola Asuni - * @public - * @since 5.8.017 (2010-08-24) - * @see endTemplate(), printTemplate() - */ - public function startTemplate($w=0, $h=0, $group=false) { - if ($this->inxobj) { - // we are already inside an XObject template - return false; - } - $this->inxobj = true; - ++$this->n; - // XObject ID - $this->xobjid = 'XT'.$this->n; - // object ID - $this->xobjects[$this->xobjid] = array('n' => $this->n); - // store current graphic state - $this->xobjects[$this->xobjid]['gvars'] = $this->getGraphicVars(); - // initialize data - $this->xobjects[$this->xobjid]['intmrk'] = 0; - $this->xobjects[$this->xobjid]['transfmrk'] = array(); - $this->xobjects[$this->xobjid]['outdata'] = ''; - $this->xobjects[$this->xobjid]['xobjects'] = array(); - $this->xobjects[$this->xobjid]['images'] = array(); - $this->xobjects[$this->xobjid]['fonts'] = array(); - $this->xobjects[$this->xobjid]['annotations'] = array(); - $this->xobjects[$this->xobjid]['extgstates'] = array(); - $this->xobjects[$this->xobjid]['gradients'] = array(); - $this->xobjects[$this->xobjid]['spot_colors'] = array(); - // set new environment - $this->num_columns = 1; - $this->current_column = 0; - $this->SetAutoPageBreak(false); - if (($w === '') OR ($w <= 0)) { - $w = $this->w - $this->lMargin - $this->rMargin; - } - if (($h === '') OR ($h <= 0)) { - $h = $this->h - $this->tMargin - $this->bMargin; - } - $this->xobjects[$this->xobjid]['x'] = 0; - $this->xobjects[$this->xobjid]['y'] = 0; - $this->xobjects[$this->xobjid]['w'] = $w; - $this->xobjects[$this->xobjid]['h'] = $h; - $this->w = $w; - $this->h = $h; - $this->wPt = $this->w * $this->k; - $this->hPt = $this->h * $this->k; - $this->fwPt = $this->wPt; - $this->fhPt = $this->hPt; - $this->x = 0; - $this->y = 0; - $this->lMargin = 0; - $this->rMargin = 0; - $this->tMargin = 0; - $this->bMargin = 0; - // set group mode - $this->xobjects[$this->xobjid]['group'] = $group; - return $this->xobjid; - } - - /** - * End the current XObject Template started with startTemplate() and restore the previous graphic state. - * An XObject Template is a PDF block that is a self-contained description of any sequence of graphics objects (including path objects, text objects, and sampled images). - * An XObject Template may be painted multiple times, either on several pages or at several locations on the same page and produces the same results each time, subject only to the graphics state at the time it is invoked. - * @return int the XObject Template ID in case of success or false in case of error. - * @author Nicola Asuni - * @public - * @since 5.8.017 (2010-08-24) - * @see startTemplate(), printTemplate() - */ - public function endTemplate() { - if (!$this->inxobj) { - // we are not inside a template - return false; - } - $this->inxobj = false; - // restore previous graphic state - $this->setGraphicVars($this->xobjects[$this->xobjid]['gvars'], true); - return $this->xobjid; - } - - /** - * Print an XObject Template. - * You can print an XObject Template inside the currently opened Template. - * An XObject Template is a PDF block that is a self-contained description of any sequence of graphics objects (including path objects, text objects, and sampled images). - * An XObject Template may be painted multiple times, either on several pages or at several locations on the same page and produces the same results each time, subject only to the graphics state at the time it is invoked. - * @param $id (string) The ID of XObject Template to print. - * @param $x (int) X position in user units (empty string = current x position) - * @param $y (int) Y position in user units (empty string = current y position) - * @param $w (int) Width in user units (zero = remaining page width) - * @param $h (int) Height in user units (zero = remaining page height) - * @param $align (string) Indicates the alignment of the pointer next to template insertion relative to template height. The value can be:
    • T: top-right for LTR or top-left for RTL
    • M: middle-right for LTR or middle-left for RTL
    • B: bottom-right for LTR or bottom-left for RTL
    • N: next line
    - * @param $palign (string) Allows to center or align the template on the current line. Possible values are:
    • L : left align
    • C : center
    • R : right align
    • '' : empty string : left for LTR or right for RTL
    - * @param $fitonpage (boolean) If true the template is resized to not exceed page dimensions. - * @author Nicola Asuni - * @public - * @since 5.8.017 (2010-08-24) - * @see startTemplate(), endTemplate() - */ - public function printTemplate($id, $x='', $y='', $w=0, $h=0, $align='', $palign='', $fitonpage=false) { - if ($this->state != 2) { - return; - } - if (!isset($this->xobjects[$id])) { - $this->Error('The XObject Template \''.$id.'\' doesn\'t exist!'); - } - if ($this->inxobj) { - if ($id == $this->xobjid) { - // close current template - $this->endTemplate(); - } else { - // use the template as resource for the template currently opened - $this->xobjects[$this->xobjid]['xobjects'][$id] = $this->xobjects[$id]; - } - } - // set default values - if ($x === '') { - $x = $this->x; - } - if ($y === '') { - $y = $this->y; - } - // check page for no-write regions and adapt page margins if necessary - list($x, $y) = $this->checkPageRegions($h, $x, $y); - $ow = $this->xobjects[$id]['w']; - if ($ow <= 0) { - $ow = 1; - } - $oh = $this->xobjects[$id]['h']; - if ($oh <= 0) { - $oh = 1; - } - // calculate template width and height on document - if (($w <= 0) AND ($h <= 0)) { - $w = $ow; - $h = $oh; - } elseif ($w <= 0) { - $w = $h * $ow / $oh; - } elseif ($h <= 0) { - $h = $w * $oh / $ow; - } - // fit the template on available space - list($w, $h, $x, $y) = $this->fitBlock($w, $h, $x, $y, $fitonpage); - // set page alignment - $rb_y = $y + $h; - // set alignment - if ($this->rtl) { - if ($palign == 'L') { - $xt = $this->lMargin; - } elseif ($palign == 'C') { - $xt = ($this->w + $this->lMargin - $this->rMargin - $w) / 2; - } elseif ($palign == 'R') { - $xt = $this->w - $this->rMargin - $w; - } else { - $xt = $x - $w; - } - $rb_x = $xt; - } else { - if ($palign == 'L') { - $xt = $this->lMargin; - } elseif ($palign == 'C') { - $xt = ($this->w + $this->lMargin - $this->rMargin - $w) / 2; - } elseif ($palign == 'R') { - $xt = $this->w - $this->rMargin - $w; - } else { - $xt = $x; - } - $rb_x = $xt + $w; - } - // print XObject Template + Transformation matrix - $this->StartTransform(); - // translate and scale - $sx = ($w / $ow); - $sy = ($h / $oh); - $tm = array(); - $tm[0] = $sx; - $tm[1] = 0; - $tm[2] = 0; - $tm[3] = $sy; - $tm[4] = $xt * $this->k; - $tm[5] = ($this->h - $h - $y) * $this->k; - $this->Transform($tm); - // set object - $this->_out('/'.$id.' Do'); - $this->StopTransform(); - // add annotations - if (!empty($this->xobjects[$id]['annotations'])) { - foreach ($this->xobjects[$id]['annotations'] as $annot) { - // transform original coordinates - $coordlt = TCPDF_STATIC::getTransformationMatrixProduct($tm, array(1, 0, 0, 1, ($annot['x'] * $this->k), (-$annot['y'] * $this->k))); - $ax = ($coordlt[4] / $this->k); - $ay = ($this->h - $h - ($coordlt[5] / $this->k)); - $coordrb = TCPDF_STATIC::getTransformationMatrixProduct($tm, array(1, 0, 0, 1, (($annot['x'] + $annot['w']) * $this->k), ((-$annot['y'] - $annot['h']) * $this->k))); - $aw = ($coordrb[4] / $this->k) - $ax; - $ah = ($this->h - $h - ($coordrb[5] / $this->k)) - $ay; - $this->Annotation($ax, $ay, $aw, $ah, $annot['text'], $annot['opt'], $annot['spaces']); - } - } - // set pointer to align the next text/objects - switch($align) { - case 'T': { - $this->y = $y; - $this->x = $rb_x; - break; - } - case 'M': { - $this->y = $y + round($h/2); - $this->x = $rb_x; - break; - } - case 'B': { - $this->y = $rb_y; - $this->x = $rb_x; - break; - } - case 'N': { - $this->SetY($rb_y); - break; - } - default:{ - break; - } - } - } - - /** - * Set the percentage of character stretching. - * @param $perc (int) percentage of stretching (100 = no stretching) - * @author Nicola Asuni - * @public - * @since 5.9.000 (2010-09-29) - */ - public function setFontStretching($perc=100) { - $this->font_stretching = $perc; - } - - /** - * Get the percentage of character stretching. - * @return float stretching value - * @author Nicola Asuni - * @public - * @since 5.9.000 (2010-09-29) - */ - public function getFontStretching() { - return $this->font_stretching; - } - - /** - * Set the amount to increase or decrease the space between characters in a text. - * @param $spacing (float) amount to increase or decrease the space between characters in a text (0 = default spacing) - * @author Nicola Asuni - * @public - * @since 5.9.000 (2010-09-29) - */ - public function setFontSpacing($spacing=0) { - $this->font_spacing = $spacing; - } - - /** - * Get the amount to increase or decrease the space between characters in a text. - * @return int font spacing (tracking) value - * @author Nicola Asuni - * @public - * @since 5.9.000 (2010-09-29) - */ - public function getFontSpacing() { - return $this->font_spacing; - } - - /** - * Return an array of no-write page regions - * @return array of no-write page regions - * @author Nicola Asuni - * @public - * @since 5.9.003 (2010-10-13) - * @see setPageRegions(), addPageRegion() - */ - public function getPageRegions() { - return $this->page_regions; - } - - /** - * Set no-write regions on page. - * A no-write region is a portion of the page with a rectangular or trapezium shape that will not be covered when writing text or html code. - * A region is always aligned on the left or right side of the page ad is defined using a vertical segment. - * You can set multiple regions for the same page. - * @param $regions (array) array of no-write regions. For each region you can define an array as follow: ('page' => page number or empy for current page, 'xt' => X top, 'yt' => Y top, 'xb' => X bottom, 'yb' => Y bottom, 'side' => page side 'L' = left or 'R' = right). Omit this parameter to remove all regions. - * @author Nicola Asuni - * @public - * @since 5.9.003 (2010-10-13) - * @see addPageRegion(), getPageRegions() - */ - public function setPageRegions($regions=array()) { - // empty current regions array - $this->page_regions = array(); - // add regions - foreach ($regions as $data) { - $this->addPageRegion($data); - } - } - - /** - * Add a single no-write region on selected page. - * A no-write region is a portion of the page with a rectangular or trapezium shape that will not be covered when writing text or html code. - * A region is always aligned on the left or right side of the page ad is defined using a vertical segment. - * You can set multiple regions for the same page. - * @param $region (array) array of a single no-write region array: ('page' => page number or empy for current page, 'xt' => X top, 'yt' => Y top, 'xb' => X bottom, 'yb' => Y bottom, 'side' => page side 'L' = left or 'R' = right). - * @author Nicola Asuni - * @public - * @since 5.9.003 (2010-10-13) - * @see setPageRegions(), getPageRegions() - */ - public function addPageRegion($region) { - if (!isset($region['page']) OR empty($region['page'])) { - $region['page'] = $this->page; - } - if (isset($region['xt']) AND isset($region['xb']) AND ($region['xt'] > 0) AND ($region['xb'] > 0) - AND isset($region['yt']) AND isset($region['yb']) AND ($region['yt'] >= 0) AND ($region['yt'] < $region['yb']) - AND isset($region['side']) AND (($region['side'] == 'L') OR ($region['side'] == 'R'))) { - $this->page_regions[] = $region; - } - } - - /** - * Remove a single no-write region. - * @param $key (int) region key - * @author Nicola Asuni - * @public - * @since 5.9.003 (2010-10-13) - * @see setPageRegions(), getPageRegions() - */ - public function removePageRegion($key) { - if (isset($this->page_regions[$key])) { - unset($this->page_regions[$key]); - } - } - - /** - * Check page for no-write regions and adapt current coordinates and page margins if necessary. - * A no-write region is a portion of the page with a rectangular or trapezium shape that will not be covered when writing text or html code. - * A region is always aligned on the left or right side of the page ad is defined using a vertical segment. - * @param $h (float) height of the text/image/object to print in user units - * @param $x (float) current X coordinate in user units - * @param $y (float) current Y coordinate in user units - * @return array($x, $y) - * @author Nicola Asuni - * @protected - * @since 5.9.003 (2010-10-13) - */ - protected function checkPageRegions($h, $x, $y) { - // set default values - if ($x === '') { - $x = $this->x; - } - if ($y === '') { - $y = $this->y; - } - if (!$this->check_page_regions OR empty($this->page_regions)) { - // no page regions defined - return array($x, $y); - } - if (empty($h)) { - $h = $this->getCellHeight($this->FontSize); - } - // check for page break - if ($this->checkPageBreak($h, $y)) { - // the content will be printed on a new page - $x = $this->x; - $y = $this->y; - } - if ($this->num_columns > 1) { - if ($this->rtl) { - $this->lMargin = ($this->columns[$this->current_column]['x'] - $this->columns[$this->current_column]['w']); - } else { - $this->rMargin = ($this->w - $this->columns[$this->current_column]['x'] - $this->columns[$this->current_column]['w']); - } - } else { - if ($this->rtl) { - $this->lMargin = max($this->clMargin, $this->original_lMargin); - } else { - $this->rMargin = max($this->crMargin, $this->original_rMargin); - } - } - // adjust coordinates and page margins - foreach ($this->page_regions as $regid => $regdata) { - if ($regdata['page'] == $this->page) { - // check region boundaries - if (($y > ($regdata['yt'] - $h)) AND ($y <= $regdata['yb'])) { - // Y is inside the region - $minv = ($regdata['xb'] - $regdata['xt']) / ($regdata['yb'] - $regdata['yt']); // inverse of angular coefficient - $yt = max($y, $regdata['yt']); - $yb = min(($yt + $h), $regdata['yb']); - $xt = (($yt - $regdata['yt']) * $minv) + $regdata['xt']; - $xb = (($yb - $regdata['yt']) * $minv) + $regdata['xt']; - if ($regdata['side'] == 'L') { // left side - $new_margin = max($xt, $xb); - if ($this->lMargin < $new_margin) { - if ($this->rtl) { - // adjust left page margin - $this->lMargin = max(0, $new_margin); - } - if ($x < $new_margin) { - // adjust x position - $x = $new_margin; - if ($new_margin > ($this->w - $this->rMargin)) { - // adjust y position - $y = $regdata['yb'] - $h; - } - } - } - } elseif ($regdata['side'] == 'R') { // right side - $new_margin = min($xt, $xb); - if (($this->w - $this->rMargin) > $new_margin) { - if (!$this->rtl) { - // adjust right page margin - $this->rMargin = max(0, ($this->w - $new_margin)); - } - if ($x > $new_margin) { - // adjust x position - $x = $new_margin; - if ($new_margin > $this->lMargin) { - // adjust y position - $y = $regdata['yb'] - $h; - } - } - } - } - } - } - } - return array($x, $y); - } - - // --- SVG METHODS --------------------------------------------------------- - - /** - * Embedd a Scalable Vector Graphics (SVG) image. - * NOTE: SVG standard is not yet fully implemented, use the setRasterizeVectorImages() method to enable/disable rasterization of vector images using ImageMagick library. - * @param $file (string) Name of the SVG file or a '@' character followed by the SVG data string. - * @param $x (float) Abscissa of the upper-left corner. - * @param $y (float) Ordinate of the upper-left corner. - * @param $w (float) Width of the image in the page. If not specified or equal to zero, it is automatically calculated. - * @param $h (float) Height of the image in the page. If not specified or equal to zero, it is automatically calculated. - * @param $link (mixed) URL or identifier returned by AddLink(). - * @param $align (string) Indicates the alignment of the pointer next to image insertion relative to image height. The value can be:
    • T: top-right for LTR or top-left for RTL
    • M: middle-right for LTR or middle-left for RTL
    • B: bottom-right for LTR or bottom-left for RTL
    • N: next line
    If the alignment is an empty string, then the pointer will be restored on the starting SVG position. - * @param $palign (string) Allows to center or align the image on the current line. Possible values are:
    • L : left align
    • C : center
    • R : right align
    • '' : empty string : left for LTR or right for RTL
    - * @param $border (mixed) Indicates if borders must be drawn around the cell. The value can be a number:
    • 0: no border (default)
    • 1: frame
    or a string containing some or all of the following characters (in any order):
    • L: left
    • T: top
    • R: right
    • B: bottom
    or an array of line styles for each border group - for example: array('LTRB' => array('width' => 2, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0))) - * @param $fitonpage (boolean) if true the image is resized to not exceed page dimensions. - * @author Nicola Asuni - * @since 5.0.000 (2010-05-02) - * @public - */ - public function ImageSVG($file, $x='', $y='', $w=0, $h=0, $link='', $align='', $palign='', $border=0, $fitonpage=false) { - if ($this->state != 2) { - return; - } - // reset SVG vars - $this->svggradients = array(); - $this->svggradientid = 0; - $this->svgdefsmode = false; - $this->svgdefs = array(); - $this->svgclipmode = false; - $this->svgclippaths = array(); - $this->svgcliptm = array(); - $this->svgclipid = 0; - $this->svgtext = ''; - $this->svgtextmode = array(); - if ($this->rasterize_vector_images AND ($w > 0) AND ($h > 0)) { - // convert SVG to raster image using GD or ImageMagick libraries - return $this->Image($file, $x, $y, $w, $h, 'SVG', $link, $align, true, 300, $palign, false, false, $border, false, false, false); - } - if ($file[0] === '@') { // image from string - $this->svgdir = ''; - $svgdata = substr($file, 1); - } else { // SVG file - $this->svgdir = dirname($file); - $svgdata = TCPDF_STATIC::fileGetContents($file); - } - if ($svgdata === FALSE) { - $this->Error('SVG file not found: '.$file); - } - if ($x === '') { - $x = $this->x; - } - if ($y === '') { - $y = $this->y; - } - // check page for no-write regions and adapt page margins if necessary - list($x, $y) = $this->checkPageRegions($h, $x, $y); - $k = $this->k; - $ox = 0; - $oy = 0; - $ow = $w; - $oh = $h; - $aspect_ratio_align = 'xMidYMid'; - $aspect_ratio_ms = 'meet'; - $regs = array(); - // get original image width and height - preg_match('/]*)>/si', $svgdata, $regs); - if (isset($regs[1]) AND !empty($regs[1])) { - $tmp = array(); - if (preg_match('/[\s]+x[\s]*=[\s]*"([^"]*)"/si', $regs[1], $tmp)) { - $ox = $this->getHTMLUnitToUnits($tmp[1], 0, $this->svgunit, false); - } - $tmp = array(); - if (preg_match('/[\s]+y[\s]*=[\s]*"([^"]*)"/si', $regs[1], $tmp)) { - $oy = $this->getHTMLUnitToUnits($tmp[1], 0, $this->svgunit, false); - } - $tmp = array(); - if (preg_match('/[\s]+width[\s]*=[\s]*"([^"]*)"/si', $regs[1], $tmp)) { - $ow = $this->getHTMLUnitToUnits($tmp[1], 1, $this->svgunit, false); - } - $tmp = array(); - if (preg_match('/[\s]+height[\s]*=[\s]*"([^"]*)"/si', $regs[1], $tmp)) { - $oh = $this->getHTMLUnitToUnits($tmp[1], 1, $this->svgunit, false); - } - $tmp = array(); - $view_box = array(); - if (preg_match('/[\s]+viewBox[\s]*=[\s]*"[\s]*([0-9\.\-]+)[\s]+([0-9\.\-]+)[\s]+([0-9\.]+)[\s]+([0-9\.]+)[\s]*"/si', $regs[1], $tmp)) { - if (count($tmp) == 5) { - array_shift($tmp); - foreach ($tmp as $key => $val) { - $view_box[$key] = $this->getHTMLUnitToUnits($val, 0, $this->svgunit, false); - } - $ox = $view_box[0]; - $oy = $view_box[1]; - } - // get aspect ratio - $tmp = array(); - if (preg_match('/[\s]+preserveAspectRatio[\s]*=[\s]*"([^"]*)"/si', $regs[1], $tmp)) { - $aspect_ratio = preg_split('/[\s]+/si', $tmp[1]); - switch (count($aspect_ratio)) { - case 3: { - $aspect_ratio_align = $aspect_ratio[1]; - $aspect_ratio_ms = $aspect_ratio[2]; - break; - } - case 2: { - $aspect_ratio_align = $aspect_ratio[0]; - $aspect_ratio_ms = $aspect_ratio[1]; - break; - } - case 1: { - $aspect_ratio_align = $aspect_ratio[0]; - $aspect_ratio_ms = 'meet'; - break; - } - } - } - } - } - if ($ow <= 0) { - $ow = 1; - } - if ($oh <= 0) { - $oh = 1; - } - // calculate image width and height on document - if (($w <= 0) AND ($h <= 0)) { - // convert image size to document unit - $w = $ow; - $h = $oh; - } elseif ($w <= 0) { - $w = $h * $ow / $oh; - } elseif ($h <= 0) { - $h = $w * $oh / $ow; - } - // fit the image on available space - list($w, $h, $x, $y) = $this->fitBlock($w, $h, $x, $y, $fitonpage); - if ($this->rasterize_vector_images) { - // convert SVG to raster image using GD or ImageMagick libraries - return $this->Image($file, $x, $y, $w, $h, 'SVG', $link, $align, true, 300, $palign, false, false, $border, false, false, false); - } - // set alignment - $this->img_rb_y = $y + $h; - // set alignment - if ($this->rtl) { - if ($palign == 'L') { - $ximg = $this->lMargin; - } elseif ($palign == 'C') { - $ximg = ($this->w + $this->lMargin - $this->rMargin - $w) / 2; - } elseif ($palign == 'R') { - $ximg = $this->w - $this->rMargin - $w; - } else { - $ximg = $x - $w; - } - $this->img_rb_x = $ximg; - } else { - if ($palign == 'L') { - $ximg = $this->lMargin; - } elseif ($palign == 'C') { - $ximg = ($this->w + $this->lMargin - $this->rMargin - $w) / 2; - } elseif ($palign == 'R') { - $ximg = $this->w - $this->rMargin - $w; - } else { - $ximg = $x; - } - $this->img_rb_x = $ximg + $w; - } - // store current graphic vars - $gvars = $this->getGraphicVars(); - // store SVG position and scale factors - $svgoffset_x = ($ximg - $ox) * $this->k; - $svgoffset_y = -($y - $oy) * $this->k; - if (isset($view_box[2]) AND ($view_box[2] > 0) AND ($view_box[3] > 0)) { - $ow = $view_box[2]; - $oh = $view_box[3]; - } else { - if ($ow <= 0) { - $ow = $w; - } - if ($oh <= 0) { - $oh = $h; - } - } - $svgscale_x = $w / $ow; - $svgscale_y = $h / $oh; - // scaling and alignment - if ($aspect_ratio_align != 'none') { - // store current scaling values - $svgscale_old_x = $svgscale_x; - $svgscale_old_y = $svgscale_y; - // force uniform scaling - if ($aspect_ratio_ms == 'slice') { - // the entire viewport is covered by the viewBox - if ($svgscale_x > $svgscale_y) { - $svgscale_y = $svgscale_x; - } elseif ($svgscale_x < $svgscale_y) { - $svgscale_x = $svgscale_y; - } - } else { // meet - // the entire viewBox is visible within the viewport - if ($svgscale_x < $svgscale_y) { - $svgscale_y = $svgscale_x; - } elseif ($svgscale_x > $svgscale_y) { - $svgscale_x = $svgscale_y; - } - } - // correct X alignment - switch (substr($aspect_ratio_align, 1, 3)) { - case 'Min': { - // do nothing - break; - } - case 'Max': { - $svgoffset_x += (($w * $this->k) - ($ow * $this->k * $svgscale_x)); - break; - } - default: - case 'Mid': { - $svgoffset_x += ((($w * $this->k) - ($ow * $this->k * $svgscale_x)) / 2); - break; - } - } - // correct Y alignment - switch (substr($aspect_ratio_align, 5)) { - case 'Min': { - // do nothing - break; - } - case 'Max': { - $svgoffset_y -= (($h * $this->k) - ($oh * $this->k * $svgscale_y)); - break; - } - default: - case 'Mid': { - $svgoffset_y -= ((($h * $this->k) - ($oh * $this->k * $svgscale_y)) / 2); - break; - } - } - } - // store current page break mode - $page_break_mode = $this->AutoPageBreak; - $page_break_margin = $this->getBreakMargin(); - $cell_padding = $this->cell_padding; - $this->SetCellPadding(0); - $this->SetAutoPageBreak(false); - // save the current graphic state - $this->_out('q'.$this->epsmarker); - // set initial clipping mask - $this->Rect($ximg, $y, $w, $h, 'CNZ', array(), array()); - // scale and translate - $e = $ox * $this->k * (1 - $svgscale_x); - $f = ($this->h - $oy) * $this->k * (1 - $svgscale_y); - $this->_out(sprintf('%F %F %F %F %F %F cm', $svgscale_x, 0, 0, $svgscale_y, ($e + $svgoffset_x), ($f + $svgoffset_y))); - // creates a new XML parser to be used by the other XML functions - $this->parser = xml_parser_create('UTF-8'); - // the following function allows to use parser inside object - xml_set_object($this->parser, $this); - // disable case-folding for this XML parser - xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, 0); - // sets the element handler functions for the XML parser - xml_set_element_handler($this->parser, 'startSVGElementHandler', 'endSVGElementHandler'); - // sets the character data handler function for the XML parser - xml_set_character_data_handler($this->parser, 'segSVGContentHandler'); - // start parsing an XML document - if (!xml_parse($this->parser, $svgdata)) { - $error_message = sprintf('SVG Error: %s at line %d', xml_error_string(xml_get_error_code($this->parser)), xml_get_current_line_number($this->parser)); - $this->Error($error_message); - } - // free this XML parser - xml_parser_free($this->parser); - // restore previous graphic state - $this->_out($this->epsmarker.'Q'); - // restore graphic vars - $this->setGraphicVars($gvars); - $this->lasth = $gvars['lasth']; - if (!empty($border)) { - $bx = $this->x; - $by = $this->y; - $this->x = $ximg; - if ($this->rtl) { - $this->x += $w; - } - $this->y = $y; - $this->Cell($w, $h, '', $border, 0, '', 0, '', 0, true); - $this->x = $bx; - $this->y = $by; - } - if ($link) { - $this->Link($ximg, $y, $w, $h, $link, 0); - } - // set pointer to align the next text/objects - switch($align) { - case 'T':{ - $this->y = $y; - $this->x = $this->img_rb_x; - break; - } - case 'M':{ - $this->y = $y + round($h/2); - $this->x = $this->img_rb_x; - break; - } - case 'B':{ - $this->y = $this->img_rb_y; - $this->x = $this->img_rb_x; - break; - } - case 'N':{ - $this->SetY($this->img_rb_y); - break; - } - default:{ - // restore pointer to starting position - $this->x = $gvars['x']; - $this->y = $gvars['y']; - $this->page = $gvars['page']; - $this->current_column = $gvars['current_column']; - $this->tMargin = $gvars['tMargin']; - $this->bMargin = $gvars['bMargin']; - $this->w = $gvars['w']; - $this->h = $gvars['h']; - $this->wPt = $gvars['wPt']; - $this->hPt = $gvars['hPt']; - $this->fwPt = $gvars['fwPt']; - $this->fhPt = $gvars['fhPt']; - break; - } - } - $this->endlinex = $this->img_rb_x; - // restore page break - $this->SetAutoPageBreak($page_break_mode, $page_break_margin); - $this->cell_padding = $cell_padding; - } - - /** - * Convert SVG transformation matrix to PDF. - * @param $tm (array) original SVG transformation matrix - * @return array transformation matrix - * @protected - * @since 5.0.000 (2010-05-02) - */ - protected function convertSVGtMatrix($tm) { - $a = $tm[0]; - $b = -$tm[1]; - $c = -$tm[2]; - $d = $tm[3]; - $e = $this->getHTMLUnitToUnits($tm[4], 1, $this->svgunit, false) * $this->k; - $f = -$this->getHTMLUnitToUnits($tm[5], 1, $this->svgunit, false) * $this->k; - $x = 0; - $y = $this->h * $this->k; - $e = ($x * (1 - $a)) - ($y * $c) + $e; - $f = ($y * (1 - $d)) - ($x * $b) + $f; - return array($a, $b, $c, $d, $e, $f); - } - - /** - * Apply SVG graphic transformation matrix. - * @param $tm (array) original SVG transformation matrix - * @protected - * @since 5.0.000 (2010-05-02) - */ - protected function SVGTransform($tm) { - $this->Transform($this->convertSVGtMatrix($tm)); - } - - /** - * Apply the requested SVG styles (*** TO BE COMPLETED ***) - * @param $svgstyle (array) array of SVG styles to apply - * @param $prevsvgstyle (array) array of previous SVG style - * @param $x (int) X origin of the bounding box - * @param $y (int) Y origin of the bounding box - * @param $w (int) width of the bounding box - * @param $h (int) height of the bounding box - * @param $clip_function (string) clip function - * @param $clip_params (array) array of parameters for clipping function - * @return object style - * @author Nicola Asuni - * @since 5.0.000 (2010-05-02) - * @protected - */ - protected function setSVGStyles($svgstyle, $prevsvgstyle, $x=0, $y=0, $w=1, $h=1, $clip_function='', $clip_params=array()) { - if ($this->state != 2) { - return; - } - $objstyle = ''; - $minlen = (0.01 / $this->k); // minimum acceptable length - if (!isset($svgstyle['opacity'])) { - return $objstyle; - } - // clip-path - $regs = array(); - if (preg_match('/url\([\s]*\#([^\)]*)\)/si', $svgstyle['clip-path'], $regs)) { - $clip_path = $this->svgclippaths[$regs[1]]; - foreach ($clip_path as $cp) { - $this->startSVGElementHandler('clip-path', $cp['name'], $cp['attribs'], $cp['tm']); - } - } - // opacity - if ($svgstyle['opacity'] != 1) { - $this->setAlpha($svgstyle['opacity'], 'Normal', $svgstyle['opacity'], false); - } - // color - $fill_color = TCPDF_COLORS::convertHTMLColorToDec($svgstyle['color'], $this->spot_colors); - $this->SetFillColorArray($fill_color); - // text color - $text_color = TCPDF_COLORS::convertHTMLColorToDec($svgstyle['text-color'], $this->spot_colors); - $this->SetTextColorArray($text_color); - // clip - if (preg_match('/rect\(([a-z0-9\-\.]*)[\s]*([a-z0-9\-\.]*)[\s]*([a-z0-9\-\.]*)[\s]*([a-z0-9\-\.]*)\)/si', $svgstyle['clip'], $regs)) { - $top = (isset($regs[1])?$this->getHTMLUnitToUnits($regs[1], 0, $this->svgunit, false):0); - $right = (isset($regs[2])?$this->getHTMLUnitToUnits($regs[2], 0, $this->svgunit, false):0); - $bottom = (isset($regs[3])?$this->getHTMLUnitToUnits($regs[3], 0, $this->svgunit, false):0); - $left = (isset($regs[4])?$this->getHTMLUnitToUnits($regs[4], 0, $this->svgunit, false):0); - $cx = $x + $left; - $cy = $y + $top; - $cw = $w - $left - $right; - $ch = $h - $top - $bottom; - if ($svgstyle['clip-rule'] == 'evenodd') { - $clip_rule = 'CNZ'; - } else { - $clip_rule = 'CEO'; - } - $this->Rect($cx, $cy, $cw, $ch, $clip_rule, array(), array()); - } - // fill - $regs = array(); - if (preg_match('/url\([\s]*\#([^\)]*)\)/si', $svgstyle['fill'], $regs)) { - // gradient - $gradient = $this->svggradients[$regs[1]]; - if (isset($gradient['xref'])) { - // reference to another gradient definition - $newgradient = $this->svggradients[$gradient['xref']]; - $newgradient['coords'] = $gradient['coords']; - $newgradient['mode'] = $gradient['mode']; - $newgradient['type'] = $gradient['type']; - $newgradient['gradientUnits'] = $gradient['gradientUnits']; - if (isset($gradient['gradientTransform'])) { - $newgradient['gradientTransform'] = $gradient['gradientTransform']; - } - $gradient = $newgradient; - } - //save current Graphic State - $this->_outSaveGraphicsState(); - //set clipping area - if (!empty($clip_function) AND method_exists($this, $clip_function)) { - $bbox = call_user_func_array(array($this, $clip_function), $clip_params); - if ((!isset($gradient['type']) OR ($gradient['type'] != 3)) AND is_array($bbox) AND (count($bbox) == 4)) { - list($x, $y, $w, $h) = $bbox; - } - } - if ($gradient['mode'] == 'measure') { - if (!isset($gradient['coords'][4])) { - $gradient['coords'][4] = 0.5; - } - if (isset($gradient['gradientTransform']) AND !empty($gradient['gradientTransform'])) { - $gtm = $gradient['gradientTransform']; - // apply transformation matrix - $xa = ($gtm[0] * $gradient['coords'][0]) + ($gtm[2] * $gradient['coords'][1]) + $gtm[4]; - $ya = ($gtm[1] * $gradient['coords'][0]) + ($gtm[3] * $gradient['coords'][1]) + $gtm[5]; - $xb = ($gtm[0] * $gradient['coords'][2]) + ($gtm[2] * $gradient['coords'][3]) + $gtm[4]; - $yb = ($gtm[1] * $gradient['coords'][2]) + ($gtm[3] * $gradient['coords'][3]) + $gtm[5]; - $r = sqrt(pow(($gtm[0] * $gradient['coords'][4]), 2) + pow(($gtm[1] * $gradient['coords'][4]), 2)); - $gradient['coords'][0] = $xa; - $gradient['coords'][1] = $ya; - $gradient['coords'][2] = $xb; - $gradient['coords'][3] = $yb; - $gradient['coords'][4] = $r; - } - // convert SVG coordinates to user units - $gradient['coords'][0] = $this->getHTMLUnitToUnits($gradient['coords'][0], 0, $this->svgunit, false); - $gradient['coords'][1] = $this->getHTMLUnitToUnits($gradient['coords'][1], 0, $this->svgunit, false); - $gradient['coords'][2] = $this->getHTMLUnitToUnits($gradient['coords'][2], 0, $this->svgunit, false); - $gradient['coords'][3] = $this->getHTMLUnitToUnits($gradient['coords'][3], 0, $this->svgunit, false); - $gradient['coords'][4] = $this->getHTMLUnitToUnits($gradient['coords'][4], 0, $this->svgunit, false); - if ($w <= $minlen) { - $w = $minlen; - } - if ($h <= $minlen) { - $h = $minlen; - } - // shift units - if ($gradient['gradientUnits'] == 'objectBoundingBox') { - // convert to SVG coordinate system - $gradient['coords'][0] += $x; - $gradient['coords'][1] += $y; - $gradient['coords'][2] += $x; - $gradient['coords'][3] += $y; - } - // calculate percentages - $gradient['coords'][0] = (($gradient['coords'][0] - $x) / $w); - $gradient['coords'][1] = (($gradient['coords'][1] - $y) / $h); - $gradient['coords'][2] = (($gradient['coords'][2] - $x) / $w); - $gradient['coords'][3] = (($gradient['coords'][3] - $y) / $h); - $gradient['coords'][4] /= $w; - } elseif ($gradient['mode'] == 'percentage') { - foreach($gradient['coords'] as $key => $val) { - $gradient['coords'][$key] = (intval($val) / 100); - if ($val < 0) { - $gradient['coords'][$key] = 0; - } elseif ($val > 1) { - $gradient['coords'][$key] = 1; - } - } - } - if (($gradient['type'] == 2) AND ($gradient['coords'][0] == $gradient['coords'][2]) AND ($gradient['coords'][1] == $gradient['coords'][3])) { - // single color (no shading) - $gradient['coords'][0] = 1; - $gradient['coords'][1] = 0; - $gradient['coords'][2] = 0.999; - $gradient['coords'][3] = 0; - } - // swap Y coordinates - $tmp = $gradient['coords'][1]; - $gradient['coords'][1] = $gradient['coords'][3]; - $gradient['coords'][3] = $tmp; - // set transformation map for gradient - $cy = ($this->h - $y); - if ($gradient['type'] == 3) { - // circular gradient - $cy -= ($gradient['coords'][1] * ($w + $h)); - $h = $w = max($w, $h); - } else { - $cy -= $h; - } - $this->_out(sprintf('%F 0 0 %F %F %F cm', ($w * $this->k), ($h * $this->k), ($x * $this->k), ($cy * $this->k))); - if (count($gradient['stops']) > 1) { - $this->Gradient($gradient['type'], $gradient['coords'], $gradient['stops'], array(), false); - } - } elseif ($svgstyle['fill'] != 'none') { - $fill_color = TCPDF_COLORS::convertHTMLColorToDec($svgstyle['fill'], $this->spot_colors); - if ($svgstyle['fill-opacity'] != 1) { - $this->setAlpha($this->alpha['CA'], 'Normal', $svgstyle['fill-opacity'], false); - } - $this->SetFillColorArray($fill_color); - if ($svgstyle['fill-rule'] == 'evenodd') { - $objstyle .= 'F*'; - } else { - $objstyle .= 'F'; - } - } - // stroke - if ($svgstyle['stroke'] != 'none') { - if ($svgstyle['stroke-opacity'] != 1) { - $this->setAlpha($svgstyle['stroke-opacity'], 'Normal', $this->alpha['ca'], false); - } elseif (preg_match('/rgba\(\d+%?,\s*\d+%?,\s*\d+%?,\s*(\d+(?:\.\d+)?)\)/i', $svgstyle['stroke'], $rgba_matches)) { - $this->setAlpha($rgba_matches[1], 'Normal', $this->alpha['ca'], false); - } - $stroke_style = array( - 'color' => TCPDF_COLORS::convertHTMLColorToDec($svgstyle['stroke'], $this->spot_colors), - 'width' => $this->getHTMLUnitToUnits($svgstyle['stroke-width'], 0, $this->svgunit, false), - 'cap' => $svgstyle['stroke-linecap'], - 'join' => $svgstyle['stroke-linejoin'] - ); - if (isset($svgstyle['stroke-dasharray']) AND !empty($svgstyle['stroke-dasharray']) AND ($svgstyle['stroke-dasharray'] != 'none')) { - $stroke_style['dash'] = $svgstyle['stroke-dasharray']; - } - $this->SetLineStyle($stroke_style); - $objstyle .= 'D'; - } - // font - $regs = array(); - if (!empty($svgstyle['font'])) { - if (preg_match('/font-family[\s]*:[\s]*([^\;\"]*)/si', $svgstyle['font'], $regs)) { - $font_family = $this->getFontFamilyName($regs[1]); - } else { - $font_family = $svgstyle['font-family']; - } - if (preg_match('/font-size[\s]*:[\s]*([^\s\;\"]*)/si', $svgstyle['font'], $regs)) { - $font_size = trim($regs[1]); - } else { - $font_size = $svgstyle['font-size']; - } - if (preg_match('/font-style[\s]*:[\s]*([^\s\;\"]*)/si', $svgstyle['font'], $regs)) { - $font_style = trim($regs[1]); - } else { - $font_style = $svgstyle['font-style']; - } - if (preg_match('/font-weight[\s]*:[\s]*([^\s\;\"]*)/si', $svgstyle['font'], $regs)) { - $font_weight = trim($regs[1]); - } else { - $font_weight = $svgstyle['font-weight']; - } - if (preg_match('/font-stretch[\s]*:[\s]*([^\s\;\"]*)/si', $svgstyle['font'], $regs)) { - $font_stretch = trim($regs[1]); - } else { - $font_stretch = $svgstyle['font-stretch']; - } - if (preg_match('/letter-spacing[\s]*:[\s]*([^\s\;\"]*)/si', $svgstyle['font'], $regs)) { - $font_spacing = trim($regs[1]); - } else { - $font_spacing = $svgstyle['letter-spacing']; - } - } else { - $font_family = $this->getFontFamilyName($svgstyle['font-family']); - $font_size = $svgstyle['font-size']; - $font_style = $svgstyle['font-style']; - $font_weight = $svgstyle['font-weight']; - $font_stretch = $svgstyle['font-stretch']; - $font_spacing = $svgstyle['letter-spacing']; - } - $font_size = $this->getHTMLFontUnits($font_size, $this->svgstyles[0]['font-size'], $prevsvgstyle['font-size'], $this->svgunit); - $font_stretch = $this->getCSSFontStretching($font_stretch, $svgstyle['font-stretch']); - $font_spacing = $this->getCSSFontSpacing($font_spacing, $svgstyle['letter-spacing']); - switch ($font_style) { - case 'italic': { - $font_style = 'I'; - break; - } - case 'oblique': { - $font_style = 'I'; - break; - } - default: - case 'normal': { - $font_style = ''; - break; - } - } - switch ($font_weight) { - case 'bold': - case 'bolder': { - $font_style .= 'B'; - break; - } - case 'normal': { - if ((substr($font_family, -1) == 'I') AND (substr($font_family, -2, 1) == 'B')) { - $font_family = substr($font_family, 0, -2).'I'; - } elseif (substr($font_family, -1) == 'B') { - $font_family = substr($font_family, 0, -1); - } - break; - } - } - switch ($svgstyle['text-decoration']) { - case 'underline': { - $font_style .= 'U'; - break; - } - case 'overline': { - $font_style .= 'O'; - break; - } - case 'line-through': { - $font_style .= 'D'; - break; - } - default: - case 'none': { - break; - } - } - $this->SetFont($font_family, $font_style, $font_size); - $this->setFontStretching($font_stretch); - $this->setFontSpacing($font_spacing); - return $objstyle; - } - - /** - * Draws an SVG path - * @param $d (string) attribute d of the path SVG element - * @param $style (string) Style of rendering. Possible values are: - *
      - *
    • D or empty string: Draw (default).
    • - *
    • F: Fill.
    • - *
    • F*: Fill using the even-odd rule to determine which regions lie inside the clipping path.
    • - *
    • DF or FD: Draw and fill.
    • - *
    • DF* or FD*: Draw and fill using the even-odd rule to determine which regions lie inside the clipping path.
    • - *
    • CNZ: Clipping mode (using the even-odd rule to determine which regions lie inside the clipping path).
    • - *
    • CEO: Clipping mode (using the nonzero winding number rule to determine which regions lie inside the clipping path).
    • - *
    - * @return array of container box measures (x, y, w, h) - * @author Nicola Asuni - * @since 5.0.000 (2010-05-02) - * @protected - */ - protected function SVGPath($d, $style='') { - if ($this->state != 2) { - return; - } - // set fill/stroke style - $op = TCPDF_STATIC::getPathPaintOperator($style, ''); - if (empty($op)) { - return; - } - $paths = array(); - $d = preg_replace('/([0-9ACHLMQSTVZ])([\-\+])/si', '\\1 \\2', $d); - preg_match_all('/([ACHLMQSTVZ])[\s]*([^ACHLMQSTVZ\"]*)/si', $d, $paths, PREG_SET_ORDER); - $x = 0; - $y = 0; - $x1 = 0; - $y1 = 0; - $x2 = 0; - $y2 = 0; - $xmin = 2147483647; - $xmax = 0; - $ymin = 2147483647; - $ymax = 0; - $relcoord = false; - $minlen = (0.01 / $this->k); // minimum acceptable length (3 point) - $firstcmd = true; // used to print first point - // draw curve pieces - foreach ($paths as $key => $val) { - // get curve type - $cmd = trim($val[1]); - if (strtolower($cmd) == $cmd) { - // use relative coordinated instead of absolute - $relcoord = true; - $xoffset = $x; - $yoffset = $y; - } else { - $relcoord = false; - $xoffset = 0; - $yoffset = 0; - } - $params = array(); - if (isset($val[2])) { - // get curve parameters - $rawparams = preg_split('/([\,\s]+)/si', trim($val[2])); - $params = array(); - foreach ($rawparams as $ck => $cp) { - $params[$ck] = $this->getHTMLUnitToUnits($cp, 0, $this->svgunit, false); - if (abs($params[$ck]) < $minlen) { - // approximate little values to zero - $params[$ck] = 0; - } - } - } - // store current origin point - $x0 = $x; - $y0 = $y; - switch (strtoupper($cmd)) { - case 'M': { // moveto - foreach ($params as $ck => $cp) { - if (($ck % 2) == 0) { - $x = $cp + $xoffset; - } else { - $y = $cp + $yoffset; - if ($firstcmd OR (abs($x0 - $x) >= $minlen) OR (abs($y0 - $y) >= $minlen)) { - if ($ck == 1) { - $this->_outPoint($x, $y); - $firstcmd = false; - } else { - $this->_outLine($x, $y); - } - $x0 = $x; - $y0 = $y; - } - $xmin = min($xmin, $x); - $ymin = min($ymin, $y); - $xmax = max($xmax, $x); - $ymax = max($ymax, $y); - if ($relcoord) { - $xoffset = $x; - $yoffset = $y; - } - } - } - break; - } - case 'L': { // lineto - foreach ($params as $ck => $cp) { - if (($ck % 2) == 0) { - $x = $cp + $xoffset; - } else { - $y = $cp + $yoffset; - if ((abs($x0 - $x) >= $minlen) OR (abs($y0 - $y) >= $minlen)) { - $this->_outLine($x, $y); - $x0 = $x; - $y0 = $y; - } - $xmin = min($xmin, $x); - $ymin = min($ymin, $y); - $xmax = max($xmax, $x); - $ymax = max($ymax, $y); - if ($relcoord) { - $xoffset = $x; - $yoffset = $y; - } - } - } - break; - } - case 'H': { // horizontal lineto - foreach ($params as $ck => $cp) { - $x = $cp + $xoffset; - if ((abs($x0 - $x) >= $minlen) OR (abs($y0 - $y) >= $minlen)) { - $this->_outLine($x, $y); - $x0 = $x; - $y0 = $y; - } - $xmin = min($xmin, $x); - $xmax = max($xmax, $x); - if ($relcoord) { - $xoffset = $x; - } - } - break; - } - case 'V': { // vertical lineto - foreach ($params as $ck => $cp) { - $y = $cp + $yoffset; - if ((abs($x0 - $x) >= $minlen) OR (abs($y0 - $y) >= $minlen)) { - $this->_outLine($x, $y); - $x0 = $x; - $y0 = $y; - } - $ymin = min($ymin, $y); - $ymax = max($ymax, $y); - if ($relcoord) { - $yoffset = $y; - } - } - break; - } - case 'C': { // curveto - foreach ($params as $ck => $cp) { - $params[$ck] = $cp; - if ((($ck + 1) % 6) == 0) { - $x1 = $params[($ck - 5)] + $xoffset; - $y1 = $params[($ck - 4)] + $yoffset; - $x2 = $params[($ck - 3)] + $xoffset; - $y2 = $params[($ck - 2)] + $yoffset; - $x = $params[($ck - 1)] + $xoffset; - $y = $params[($ck)] + $yoffset; - $this->_outCurve($x1, $y1, $x2, $y2, $x, $y); - $xmin = min($xmin, $x, $x1, $x2); - $ymin = min($ymin, $y, $y1, $y2); - $xmax = max($xmax, $x, $x1, $x2); - $ymax = max($ymax, $y, $y1, $y2); - if ($relcoord) { - $xoffset = $x; - $yoffset = $y; - } - } - } - break; - } - case 'S': { // shorthand/smooth curveto - foreach ($params as $ck => $cp) { - $params[$ck] = $cp; - if ((($ck + 1) % 4) == 0) { - if (($key > 0) AND ((strtoupper($paths[($key - 1)][1]) == 'C') OR (strtoupper($paths[($key - 1)][1]) == 'S'))) { - $x1 = (2 * $x) - $x2; - $y1 = (2 * $y) - $y2; - } else { - $x1 = $x; - $y1 = $y; - } - $x2 = $params[($ck - 3)] + $xoffset; - $y2 = $params[($ck - 2)] + $yoffset; - $x = $params[($ck - 1)] + $xoffset; - $y = $params[($ck)] + $yoffset; - $this->_outCurve($x1, $y1, $x2, $y2, $x, $y); - $xmin = min($xmin, $x, $x1, $x2); - $ymin = min($ymin, $y, $y1, $y2); - $xmax = max($xmax, $x, $x1, $x2); - $ymax = max($ymax, $y, $y1, $y2); - if ($relcoord) { - $xoffset = $x; - $yoffset = $y; - } - } - } - break; - } - case 'Q': { // quadratic Bezier curveto - foreach ($params as $ck => $cp) { - $params[$ck] = $cp; - if ((($ck + 1) % 4) == 0) { - // convert quadratic points to cubic points - $x1 = $params[($ck - 3)] + $xoffset; - $y1 = $params[($ck - 2)] + $yoffset; - $xa = ($x + (2 * $x1)) / 3; - $ya = ($y + (2 * $y1)) / 3; - $x = $params[($ck - 1)] + $xoffset; - $y = $params[($ck)] + $yoffset; - $xb = ($x + (2 * $x1)) / 3; - $yb = ($y + (2 * $y1)) / 3; - $this->_outCurve($xa, $ya, $xb, $yb, $x, $y); - $xmin = min($xmin, $x, $xa, $xb); - $ymin = min($ymin, $y, $ya, $yb); - $xmax = max($xmax, $x, $xa, $xb); - $ymax = max($ymax, $y, $ya, $yb); - if ($relcoord) { - $xoffset = $x; - $yoffset = $y; - } - } - } - break; - } - case 'T': { // shorthand/smooth quadratic Bezier curveto - foreach ($params as $ck => $cp) { - $params[$ck] = $cp; - if (($ck % 2) != 0) { - if (($key > 0) AND ((strtoupper($paths[($key - 1)][1]) == 'Q') OR (strtoupper($paths[($key - 1)][1]) == 'T'))) { - $x1 = (2 * $x) - $x1; - $y1 = (2 * $y) - $y1; - } else { - $x1 = $x; - $y1 = $y; - } - // convert quadratic points to cubic points - $xa = ($x + (2 * $x1)) / 3; - $ya = ($y + (2 * $y1)) / 3; - $x = $params[($ck - 1)] + $xoffset; - $y = $params[($ck)] + $yoffset; - $xb = ($x + (2 * $x1)) / 3; - $yb = ($y + (2 * $y1)) / 3; - $this->_outCurve($xa, $ya, $xb, $yb, $x, $y); - $xmin = min($xmin, $x, $xa, $xb); - $ymin = min($ymin, $y, $ya, $yb); - $xmax = max($xmax, $x, $xa, $xb); - $ymax = max($ymax, $y, $ya, $yb); - if ($relcoord) { - $xoffset = $x; - $yoffset = $y; - } - } - } - break; - } - case 'A': { // elliptical arc - foreach ($params as $ck => $cp) { - $params[$ck] = $cp; - if ((($ck + 1) % 7) == 0) { - $x0 = $x; - $y0 = $y; - $rx = abs($params[($ck - 6)]); - $ry = abs($params[($ck - 5)]); - $ang = -$rawparams[($ck - 4)]; - $angle = deg2rad($ang); - $fa = $rawparams[($ck - 3)]; // large-arc-flag - $fs = $rawparams[($ck - 2)]; // sweep-flag - $x = $params[($ck - 1)] + $xoffset; - $y = $params[$ck] + $yoffset; - if ((abs($x0 - $x) < $minlen) AND (abs($y0 - $y) < $minlen)) { - // endpoints are almost identical - $xmin = min($xmin, $x); - $ymin = min($ymin, $y); - $xmax = max($xmax, $x); - $ymax = max($ymax, $y); - } else { - $cos_ang = cos($angle); - $sin_ang = sin($angle); - $a = (($x0 - $x) / 2); - $b = (($y0 - $y) / 2); - $xa = ($a * $cos_ang) - ($b * $sin_ang); - $ya = ($a * $sin_ang) + ($b * $cos_ang); - $rx2 = $rx * $rx; - $ry2 = $ry * $ry; - $xa2 = $xa * $xa; - $ya2 = $ya * $ya; - $delta = ($xa2 / $rx2) + ($ya2 / $ry2); - if ($delta > 1) { - $rx *= sqrt($delta); - $ry *= sqrt($delta); - $rx2 = $rx * $rx; - $ry2 = $ry * $ry; - } - $numerator = (($rx2 * $ry2) - ($rx2 * $ya2) - ($ry2 * $xa2)); - if ($numerator < 0) { - $root = 0; - } else { - $root = sqrt($numerator / (($rx2 * $ya2) + ($ry2 * $xa2))); - } - if ($fa == $fs){ - $root *= -1; - } - $cax = $root * (($rx * $ya) / $ry); - $cay = -$root * (($ry * $xa) / $rx); - // coordinates of ellipse center - $cx = ($cax * $cos_ang) - ($cay * $sin_ang) + (($x0 + $x) / 2); - $cy = ($cax * $sin_ang) + ($cay * $cos_ang) + (($y0 + $y) / 2); - // get angles - $angs = TCPDF_STATIC::getVectorsAngle(1, 0, (($xa - $cax) / $rx), (($cay - $ya) / $ry)); - $dang = TCPDF_STATIC::getVectorsAngle((($xa - $cax) / $rx), (($ya - $cay) / $ry), ((-$xa - $cax) / $rx), ((-$ya - $cay) / $ry)); - if (($fs == 0) AND ($dang > 0)) { - $dang -= (2 * M_PI); - } elseif (($fs == 1) AND ($dang < 0)) { - $dang += (2 * M_PI); - } - $angf = $angs - $dang; - if ((($fs == 0) AND ($angs > $angf)) OR (($fs == 1) AND ($angs < $angf))) { - // reverse angles - $tmp = $angs; - $angs = $angf; - $angf = $tmp; - } - $angs = round(rad2deg($angs), 6); - $angf = round(rad2deg($angf), 6); - // covent angles to positive values - if (($angs < 0) AND ($angf < 0)) { - $angs += 360; - $angf += 360; - } - $pie = false; - if (($key == 0) AND (isset($paths[($key + 1)][1])) AND (trim($paths[($key + 1)][1]) == 'z')) { - $pie = true; - } - list($axmin, $aymin, $axmax, $aymax) = $this->_outellipticalarc($cx, $cy, $rx, $ry, $ang, $angs, $angf, $pie, 2, false, ($fs == 0), true); - $xmin = min($xmin, $x, $axmin); - $ymin = min($ymin, $y, $aymin); - $xmax = max($xmax, $x, $axmax); - $ymax = max($ymax, $y, $aymax); - } - if ($relcoord) { - $xoffset = $x; - $yoffset = $y; - } - } - } - break; - } - case 'Z': { - $this->_out('h'); - break; - } - } - $firstcmd = false; - } // end foreach - if (!empty($op)) { - $this->_out($op); - } - return array($xmin, $ymin, ($xmax - $xmin), ($ymax - $ymin)); - } - - /** - * Return the tag name without the namespace - * @param $name (string) Tag name - * @protected - */ - protected function removeTagNamespace($name) { - if(strpos($name, ':') !== false) { - $parts = explode(':', $name); - return $parts[(sizeof($parts) - 1)]; - } - return $name; - } - - /** - * Sets the opening SVG element handler function for the XML parser. (*** TO BE COMPLETED ***) - * @param $parser (resource) The first parameter, parser, is a reference to the XML parser calling the handler. - * @param $name (string) The second parameter, name, contains the name of the element for which this handler is called. If case-folding is in effect for this parser, the element name will be in uppercase letters. - * @param $attribs (array) The third parameter, attribs, contains an associative array with the element's attributes (if any). The keys of this array are the attribute names, the values are the attribute values. Attribute names are case-folded on the same criteria as element names. Attribute values are not case-folded. The original order of the attributes can be retrieved by walking through attribs the normal way, using each(). The first key in the array was the first attribute, and so on. - * @param $ctm (array) tranformation matrix for clipping mode (starting transformation matrix). - * @author Nicola Asuni - * @since 5.0.000 (2010-05-02) - * @protected - */ - protected function startSVGElementHandler($parser, $name, $attribs, $ctm=array()) { - $name = $this->removeTagNamespace($name); - // check if we are in clip mode - if ($this->svgclipmode) { - $this->svgclippaths[$this->svgclipid][] = array('name' => $name, 'attribs' => $attribs, 'tm' => $this->svgcliptm[$this->svgclipid]); - return; - } - if ($this->svgdefsmode AND !in_array($name, array('clipPath', 'linearGradient', 'radialGradient', 'stop'))) { - if (isset($attribs['id'])) { - $attribs['child_elements'] = array(); - $this->svgdefs[$attribs['id']] = array('name' => $name, 'attribs' => $attribs); - return; - } - if (end($this->svgdefs) !== FALSE) { - $last_svgdefs_id = key($this->svgdefs); - if (isset($this->svgdefs[$last_svgdefs_id]['attribs']['child_elements'])) { - $attribs['id'] = 'DF_'.(count($this->svgdefs[$last_svgdefs_id]['attribs']['child_elements']) + 1); - $this->svgdefs[$last_svgdefs_id]['attribs']['child_elements'][$attribs['id']] = array('name' => $name, 'attribs' => $attribs); - return; - } - } - return; - } - $clipping = false; - if ($parser == 'clip-path') { - // set clipping mode - $clipping = true; - } - // get styling properties - $prev_svgstyle = $this->svgstyles[max(0,(count($this->svgstyles) - 1))]; // previous style - $svgstyle = $this->svgstyles[0]; // set default style - if ($clipping AND !isset($attribs['fill']) AND (!isset($attribs['style']) OR (!preg_match('/[;\"\s]{1}fill[\s]*:[\s]*([^;\"]*)/si', $attribs['style'], $attrval)))) { - // default fill attribute for clipping - $attribs['fill'] = 'none'; - } - if (isset($attribs['style']) AND !TCPDF_STATIC::empty_string($attribs['style']) AND ($attribs['style'][0] != ';')) { - // fix style for regular expression - $attribs['style'] = ';'.$attribs['style']; - } - foreach ($prev_svgstyle as $key => $val) { - if (in_array($key, TCPDF_IMAGES::$svginheritprop)) { - // inherit previous value - $svgstyle[$key] = $val; - } - if (isset($attribs[$key]) AND !TCPDF_STATIC::empty_string($attribs[$key])) { - // specific attribute settings - if ($attribs[$key] == 'inherit') { - $svgstyle[$key] = $val; - } else { - $svgstyle[$key] = $attribs[$key]; - } - } elseif (isset($attribs['style']) AND !TCPDF_STATIC::empty_string($attribs['style'])) { - // CSS style syntax - $attrval = array(); - if (preg_match('/[;\"\s]{1}'.$key.'[\s]*:[\s]*([^;\"]*)/si', $attribs['style'], $attrval) AND isset($attrval[1])) { - if ($attrval[1] == 'inherit') { - $svgstyle[$key] = $val; - } else { - $svgstyle[$key] = $attrval[1]; - } - } - } - } - // transformation matrix - if (!empty($ctm)) { - $tm = $ctm; - } else { - $tm = array(1,0,0,1,0,0); - } - if (isset($attribs['transform']) AND !empty($attribs['transform'])) { - $tm = TCPDF_STATIC::getTransformationMatrixProduct($tm, TCPDF_STATIC::getSVGTransformMatrix($attribs['transform'])); - } - $svgstyle['transfmatrix'] = $tm; - $invisible = false; - if (($svgstyle['visibility'] == 'hidden') OR ($svgstyle['visibility'] == 'collapse') OR ($svgstyle['display'] == 'none')) { - // the current graphics element is invisible (nothing is painted) - $invisible = true; - } - // process tag - switch($name) { - case 'defs': { - $this->svgdefsmode = true; - break; - } - // clipPath - case 'clipPath': { - if ($invisible) { - break; - } - $this->svgclipmode = true; - if (!isset($attribs['id'])) { - $attribs['id'] = 'CP_'.(count($this->svgcliptm) + 1); - } - $this->svgclipid = $attribs['id']; - $this->svgclippaths[$this->svgclipid] = array(); - $this->svgcliptm[$this->svgclipid] = $tm; - break; - } - case 'svg': { - // start of SVG object - if(++$this->svg_tag_depth <= 1) { - break; - } - // inner SVG - array_push($this->svgstyles, $svgstyle); - $this->StartTransform(); - $svgX = (isset($attribs['x'])?$attribs['x']:0); - $svgY = (isset($attribs['y'])?$attribs['y']:0); - $svgW = (isset($attribs['width'])?$attribs['width']:0); - $svgH = (isset($attribs['height'])?$attribs['height']:0); - // set x, y position using transform matrix - $tm = TCPDF_STATIC::getTransformationMatrixProduct($tm, array( 1, 0, 0, 1, $svgX, $svgY)); - $this->SVGTransform($tm); - // set clipping for width and height - $x = 0; - $y = 0; - $w = (isset($attribs['width'])?$this->getHTMLUnitToUnits($attribs['width'], 0, $this->svgunit, false):$this->w); - $h = (isset($attribs['height'])?$this->getHTMLUnitToUnits($attribs['height'], 0, $this->svgunit, false):$this->h); - // draw clipping rect - $this->Rect($x, $y, $w, $h, 'CNZ', array(), array()); - // parse viewbox, calculate extra transformation matrix - if (isset($attribs['viewBox'])) { - $tmp = array(); - preg_match_all("/[0-9]+/", $attribs['viewBox'], $tmp); - $tmp = $tmp[0]; - if (sizeof($tmp) == 4) { - $vx = $tmp[0]; - $vy = $tmp[1]; - $vw = $tmp[2]; - $vh = $tmp[3]; - // get aspect ratio - $tmp = array(); - $aspectX = 'xMid'; - $aspectY = 'YMid'; - $fit = 'meet'; - if (isset($attribs['preserveAspectRatio'])) { - if($attribs['preserveAspectRatio'] == 'none') { - $fit = 'none'; - } else { - preg_match_all('/[a-zA-Z]+/', $attribs['preserveAspectRatio'], $tmp); - $tmp = $tmp[0]; - if ((sizeof($tmp) == 2) AND (strlen($tmp[0]) == 8) AND (in_array($tmp[1], array('meet', 'slice', 'none')))) { - $aspectX = substr($tmp[0], 0, 4); - $aspectY = substr($tmp[0], 4, 4); - $fit = $tmp[1]; - } - } - } - $wr = ($svgW / $vw); - $hr = ($svgH / $vh); - $ax = $ay = 0; - if ((($fit == 'meet') AND ($hr < $wr)) OR (($fit == 'slice') AND ($hr > $wr))) { - if ($aspectX == 'xMax') { - $ax = (($vw * ($wr / $hr)) - $vw); - } - if ($aspectX == 'xMid') { - $ax = ((($vw * ($wr / $hr)) - $vw) / 2); - } - $wr = $hr; - } elseif ((($fit == 'meet') AND ($hr > $wr)) OR (($fit == 'slice') AND ($hr < $wr))) { - if ($aspectY == 'YMax') { - $ay = (($vh * ($hr / $wr)) - $vh); - } - if ($aspectY == 'YMid') { - $ay = ((($vh * ($hr / $wr)) - $vh) / 2); - } - $hr = $wr; - } - $newtm = array($wr, 0, 0, $hr, (($wr * ($ax - $vx)) - $svgX), (($hr * ($ay - $vy)) - $svgY)); - $tm = TCPDF_STATIC::getTransformationMatrixProduct($tm, $newtm); - $this->SVGTransform($tm); - } - } - $this->setSVGStyles($svgstyle, $prev_svgstyle); - break; - } - case 'g': { - // group together related graphics elements - array_push($this->svgstyles, $svgstyle); - $this->StartTransform(); - $x = (isset($attribs['x'])?$attribs['x']:0); - $y = (isset($attribs['y'])?$attribs['y']:0); - $w = 1;//(isset($attribs['width'])?$attribs['width']:1); - $h = 1;//(isset($attribs['height'])?$attribs['height']:1); - $tm = TCPDF_STATIC::getTransformationMatrixProduct($tm, array($w, 0, 0, $h, $x, $y)); - $this->SVGTransform($tm); - $this->setSVGStyles($svgstyle, $prev_svgstyle); - break; - } - case 'linearGradient': { - if ($this->pdfa_mode) { - break; - } - if (!isset($attribs['id'])) { - $attribs['id'] = 'GR_'.(count($this->svggradients) + 1); - } - $this->svggradientid = $attribs['id']; - $this->svggradients[$this->svggradientid] = array(); - $this->svggradients[$this->svggradientid]['type'] = 2; - $this->svggradients[$this->svggradientid]['stops'] = array(); - if (isset($attribs['gradientUnits'])) { - $this->svggradients[$this->svggradientid]['gradientUnits'] = $attribs['gradientUnits']; - } else { - $this->svggradients[$this->svggradientid]['gradientUnits'] = 'objectBoundingBox'; - } - //$attribs['spreadMethod'] - if (((!isset($attribs['x1'])) AND (!isset($attribs['y1'])) AND (!isset($attribs['x2'])) AND (!isset($attribs['y2']))) - OR ((isset($attribs['x1']) AND (substr($attribs['x1'], -1) == '%')) - OR (isset($attribs['y1']) AND (substr($attribs['y1'], -1) == '%')) - OR (isset($attribs['x2']) AND (substr($attribs['x2'], -1) == '%')) - OR (isset($attribs['y2']) AND (substr($attribs['y2'], -1) == '%')))) { - $this->svggradients[$this->svggradientid]['mode'] = 'percentage'; - } else { - $this->svggradients[$this->svggradientid]['mode'] = 'measure'; - } - $x1 = (isset($attribs['x1'])?$attribs['x1']:'0'); - $y1 = (isset($attribs['y1'])?$attribs['y1']:'0'); - $x2 = (isset($attribs['x2'])?$attribs['x2']:'100'); - $y2 = (isset($attribs['y2'])?$attribs['y2']:'0'); - if (isset($attribs['gradientTransform'])) { - $this->svggradients[$this->svggradientid]['gradientTransform'] = TCPDF_STATIC::getSVGTransformMatrix($attribs['gradientTransform']); - } - $this->svggradients[$this->svggradientid]['coords'] = array($x1, $y1, $x2, $y2); - if (isset($attribs['xlink:href']) AND !empty($attribs['xlink:href'])) { - // gradient is defined on another place - $this->svggradients[$this->svggradientid]['xref'] = substr($attribs['xlink:href'], 1); - } - break; - } - case 'radialGradient': { - if ($this->pdfa_mode) { - break; - } - if (!isset($attribs['id'])) { - $attribs['id'] = 'GR_'.(count($this->svggradients) + 1); - } - $this->svggradientid = $attribs['id']; - $this->svggradients[$this->svggradientid] = array(); - $this->svggradients[$this->svggradientid]['type'] = 3; - $this->svggradients[$this->svggradientid]['stops'] = array(); - if (isset($attribs['gradientUnits'])) { - $this->svggradients[$this->svggradientid]['gradientUnits'] = $attribs['gradientUnits']; - } else { - $this->svggradients[$this->svggradientid]['gradientUnits'] = 'objectBoundingBox'; - } - //$attribs['spreadMethod'] - if (((!isset($attribs['cx'])) AND (!isset($attribs['cy']))) - OR ((isset($attribs['cx']) AND (substr($attribs['cx'], -1) == '%')) - OR (isset($attribs['cy']) AND (substr($attribs['cy'], -1) == '%')))) { - $this->svggradients[$this->svggradientid]['mode'] = 'percentage'; - } elseif (isset($attribs['r']) AND is_numeric($attribs['r']) AND ($attribs['r']) <= 1) { - $this->svggradients[$this->svggradientid]['mode'] = 'ratio'; - } else { - $this->svggradients[$this->svggradientid]['mode'] = 'measure'; - } - $cx = (isset($attribs['cx']) ? $attribs['cx'] : 0.5); - $cy = (isset($attribs['cy']) ? $attribs['cy'] : 0.5); - $fx = (isset($attribs['fx']) ? $attribs['fx'] : $cx); - $fy = (isset($attribs['fy']) ? $attribs['fy'] : $cy); - $r = (isset($attribs['r']) ? $attribs['r'] : 0.5); - if (isset($attribs['gradientTransform'])) { - $this->svggradients[$this->svggradientid]['gradientTransform'] = TCPDF_STATIC::getSVGTransformMatrix($attribs['gradientTransform']); - } - $this->svggradients[$this->svggradientid]['coords'] = array($cx, $cy, $fx, $fy, $r); - if (isset($attribs['xlink:href']) AND !empty($attribs['xlink:href'])) { - // gradient is defined on another place - $this->svggradients[$this->svggradientid]['xref'] = substr($attribs['xlink:href'], 1); - } - break; - } - case 'stop': { - // gradient stops - if (substr($attribs['offset'], -1) == '%') { - $offset = floatval(substr($attribs['offset'], 0, -1)) / 100; - } else { - $offset = floatval($attribs['offset']); - if ($offset > 1) { - $offset /= 100; - } - } - $stop_color = isset($svgstyle['stop-color'])?TCPDF_COLORS::convertHTMLColorToDec($svgstyle['stop-color'], $this->spot_colors):'black'; - $opacity = isset($svgstyle['stop-opacity'])?$svgstyle['stop-opacity']:1; - $this->svggradients[$this->svggradientid]['stops'][] = array('offset' => $offset, 'color' => $stop_color, 'opacity' => $opacity); - break; - } - // paths - case 'path': { - if ($invisible) { - break; - } - if (isset($attribs['d'])) { - $d = trim($attribs['d']); - if (!empty($d)) { - $x = (isset($attribs['x'])?$attribs['x']:0); - $y = (isset($attribs['y'])?$attribs['y']:0); - $w = (isset($attribs['width'])?$attribs['width']:1); - $h = (isset($attribs['height'])?$attribs['height']:1); - $tm = TCPDF_STATIC::getTransformationMatrixProduct($tm, array($w, 0, 0, $h, $x, $y)); - if ($clipping) { - $this->SVGTransform($tm); - $this->SVGPath($d, 'CNZ'); - } else { - $this->StartTransform(); - $this->SVGTransform($tm); - $obstyle = $this->setSVGStyles($svgstyle, $prev_svgstyle, $x, $y, $w, $h, 'SVGPath', array($d, 'CNZ')); - if (!empty($obstyle)) { - $this->SVGPath($d, $obstyle); - } - $this->StopTransform(); - } - } - } - break; - } - // shapes - case 'rect': { - if ($invisible) { - break; - } - $x = (isset($attribs['x'])?$this->getHTMLUnitToUnits($attribs['x'], 0, $this->svgunit, false):0); - $y = (isset($attribs['y'])?$this->getHTMLUnitToUnits($attribs['y'], 0, $this->svgunit, false):0); - $w = (isset($attribs['width'])?$this->getHTMLUnitToUnits($attribs['width'], 0, $this->svgunit, false):0); - $h = (isset($attribs['height'])?$this->getHTMLUnitToUnits($attribs['height'], 0, $this->svgunit, false):0); - $rx = (isset($attribs['rx'])?$this->getHTMLUnitToUnits($attribs['rx'], 0, $this->svgunit, false):0); - $ry = (isset($attribs['ry'])?$this->getHTMLUnitToUnits($attribs['ry'], 0, $this->svgunit, false):$rx); - if ($clipping) { - $this->SVGTransform($tm); - $this->RoundedRectXY($x, $y, $w, $h, $rx, $ry, '1111', 'CNZ', array(), array()); - } else { - $this->StartTransform(); - $this->SVGTransform($tm); - $obstyle = $this->setSVGStyles($svgstyle, $prev_svgstyle, $x, $y, $w, $h, 'RoundedRectXY', array($x, $y, $w, $h, $rx, $ry, '1111', 'CNZ')); - if (!empty($obstyle)) { - $this->RoundedRectXY($x, $y, $w, $h, $rx, $ry, '1111', $obstyle, array(), array()); - } - $this->StopTransform(); - } - break; - } - case 'circle': { - if ($invisible) { - break; - } - $r = (isset($attribs['r']) ? $this->getHTMLUnitToUnits($attribs['r'], 0, $this->svgunit, false) : 0); - $cx = (isset($attribs['cx']) ? $this->getHTMLUnitToUnits($attribs['cx'], 0, $this->svgunit, false) : (isset($attribs['x']) ? $this->getHTMLUnitToUnits($attribs['x'], 0, $this->svgunit, false) : 0)); - $cy = (isset($attribs['cy']) ? $this->getHTMLUnitToUnits($attribs['cy'], 0, $this->svgunit, false) : (isset($attribs['y']) ? $this->getHTMLUnitToUnits($attribs['y'], 0, $this->svgunit, false) : 0)); - $x = ($cx - $r); - $y = ($cy - $r); - $w = (2 * $r); - $h = $w; - if ($clipping) { - $this->SVGTransform($tm); - $this->Circle($cx, $cy, $r, 0, 360, 'CNZ', array(), array(), 8); - } else { - $this->StartTransform(); - $this->SVGTransform($tm); - $obstyle = $this->setSVGStyles($svgstyle, $prev_svgstyle, $x, $y, $w, $h, 'Circle', array($cx, $cy, $r, 0, 360, 'CNZ')); - if (!empty($obstyle)) { - $this->Circle($cx, $cy, $r, 0, 360, $obstyle, array(), array(), 8); - } - $this->StopTransform(); - } - break; - } - case 'ellipse': { - if ($invisible) { - break; - } - $rx = (isset($attribs['rx']) ? $this->getHTMLUnitToUnits($attribs['rx'], 0, $this->svgunit, false) : 0); - $ry = (isset($attribs['ry']) ? $this->getHTMLUnitToUnits($attribs['ry'], 0, $this->svgunit, false) : 0); - $cx = (isset($attribs['cx']) ? $this->getHTMLUnitToUnits($attribs['cx'], 0, $this->svgunit, false) : (isset($attribs['x']) ? $this->getHTMLUnitToUnits($attribs['x'], 0, $this->svgunit, false) : 0)); - $cy = (isset($attribs['cy']) ? $this->getHTMLUnitToUnits($attribs['cy'], 0, $this->svgunit, false) : (isset($attribs['y']) ? $this->getHTMLUnitToUnits($attribs['y'], 0, $this->svgunit, false) : 0)); - $x = ($cx - $rx); - $y = ($cy - $ry); - $w = (2 * $rx); - $h = (2 * $ry); - if ($clipping) { - $this->SVGTransform($tm); - $this->Ellipse($cx, $cy, $rx, $ry, 0, 0, 360, 'CNZ', array(), array(), 8); - } else { - $this->StartTransform(); - $this->SVGTransform($tm); - $obstyle = $this->setSVGStyles($svgstyle, $prev_svgstyle, $x, $y, $w, $h, 'Ellipse', array($cx, $cy, $rx, $ry, 0, 0, 360, 'CNZ')); - if (!empty($obstyle)) { - $this->Ellipse($cx, $cy, $rx, $ry, 0, 0, 360, $obstyle, array(), array(), 8); - } - $this->StopTransform(); - } - break; - } - case 'line': { - if ($invisible) { - break; - } - $x1 = (isset($attribs['x1'])?$this->getHTMLUnitToUnits($attribs['x1'], 0, $this->svgunit, false):0); - $y1 = (isset($attribs['y1'])?$this->getHTMLUnitToUnits($attribs['y1'], 0, $this->svgunit, false):0); - $x2 = (isset($attribs['x2'])?$this->getHTMLUnitToUnits($attribs['x2'], 0, $this->svgunit, false):0); - $y2 = (isset($attribs['y2'])?$this->getHTMLUnitToUnits($attribs['y2'], 0, $this->svgunit, false):0); - $x = $x1; - $y = $y1; - $w = abs($x2 - $x1); - $h = abs($y2 - $y1); - if (!$clipping) { - $this->StartTransform(); - $this->SVGTransform($tm); - $obstyle = $this->setSVGStyles($svgstyle, $prev_svgstyle, $x, $y, $w, $h, 'Line', array($x1, $y1, $x2, $y2)); - $this->Line($x1, $y1, $x2, $y2); - $this->StopTransform(); - } - break; - } - case 'polyline': - case 'polygon': { - if ($invisible) { - break; - } - $points = (isset($attribs['points'])?$attribs['points']:'0 0'); - $points = trim($points); - // note that point may use a complex syntax not covered here - $points = preg_split('/[\,\s]+/si', $points); - if (count($points) < 4) { - break; - } - $p = array(); - $xmin = 2147483647; - $xmax = 0; - $ymin = 2147483647; - $ymax = 0; - foreach ($points as $key => $val) { - $p[$key] = $this->getHTMLUnitToUnits($val, 0, $this->svgunit, false); - if (($key % 2) == 0) { - // X coordinate - $xmin = min($xmin, $p[$key]); - $xmax = max($xmax, $p[$key]); - } else { - // Y coordinate - $ymin = min($ymin, $p[$key]); - $ymax = max($ymax, $p[$key]); - } - } - $x = $xmin; - $y = $ymin; - $w = ($xmax - $xmin); - $h = ($ymax - $ymin); - if ($name == 'polyline') { - $this->StartTransform(); - $this->SVGTransform($tm); - $obstyle = $this->setSVGStyles($svgstyle, $prev_svgstyle, $x, $y, $w, $h, 'PolyLine', array($p, 'CNZ')); - if (!empty($obstyle)) { - $this->PolyLine($p, $obstyle, array(), array()); - } - $this->StopTransform(); - } else { // polygon - if ($clipping) { - $this->SVGTransform($tm); - $this->Polygon($p, 'CNZ', array(), array(), true); - } else { - $this->StartTransform(); - $this->SVGTransform($tm); - $obstyle = $this->setSVGStyles($svgstyle, $prev_svgstyle, $x, $y, $w, $h, 'Polygon', array($p, 'CNZ')); - if (!empty($obstyle)) { - $this->Polygon($p, $obstyle, array(), array(), true); - } - $this->StopTransform(); - } - } - break; - } - // image - case 'image': { - if ($invisible) { - break; - } - if (!isset($attribs['xlink:href']) OR empty($attribs['xlink:href'])) { - break; - } - $x = (isset($attribs['x'])?$this->getHTMLUnitToUnits($attribs['x'], 0, $this->svgunit, false):0); - $y = (isset($attribs['y'])?$this->getHTMLUnitToUnits($attribs['y'], 0, $this->svgunit, false):0); - $w = (isset($attribs['width'])?$this->getHTMLUnitToUnits($attribs['width'], 0, $this->svgunit, false):0); - $h = (isset($attribs['height'])?$this->getHTMLUnitToUnits($attribs['height'], 0, $this->svgunit, false):0); - $img = $attribs['xlink:href']; - if (!$clipping) { - $this->StartTransform(); - $this->SVGTransform($tm); - $obstyle = $this->setSVGStyles($svgstyle, $prev_svgstyle, $x, $y, $w, $h); - if (preg_match('/^data:image\/[^;]+;base64,/', $img, $m) > 0) { - // embedded image encoded as base64 - $img = '@'.base64_decode(substr($img, strlen($m[0]))); - } else { - // fix image path - if (!TCPDF_STATIC::empty_string($this->svgdir) AND (($img[0] == '.') OR (basename($img) == $img))) { - // replace relative path with full server path - $img = $this->svgdir.'/'.$img; - } - if (($img[0] == '/') AND !empty($_SERVER['DOCUMENT_ROOT']) AND ($_SERVER['DOCUMENT_ROOT'] != '/')) { - $findroot = strpos($img, $_SERVER['DOCUMENT_ROOT']); - if (($findroot === false) OR ($findroot > 1)) { - if (substr($_SERVER['DOCUMENT_ROOT'], -1) == '/') { - $img = substr($_SERVER['DOCUMENT_ROOT'], 0, -1).$img; - } else { - $img = $_SERVER['DOCUMENT_ROOT'].$img; - } - } - } - $img = urldecode($img); - $testscrtype = @parse_url($img); - if (empty($testscrtype['query'])) { - // convert URL to server path - $img = str_replace(K_PATH_URL, K_PATH_MAIN, $img); - } elseif (preg_match('|^https?://|', $img) !== 1) { - // convert server path to URL - $img = str_replace(K_PATH_MAIN, K_PATH_URL, $img); - } - } - // get image type - $imgtype = TCPDF_IMAGES::getImageFileType($img); - if (($imgtype == 'eps') OR ($imgtype == 'ai')) { - $this->ImageEps($img, $x, $y, $w, $h); - } elseif ($imgtype == 'svg') { - // store SVG vars - $svggradients = $this->svggradients; - $svggradientid = $this->svggradientid; - $svgdefsmode = $this->svgdefsmode; - $svgdefs = $this->svgdefs; - $svgclipmode = $this->svgclipmode; - $svgclippaths = $this->svgclippaths; - $svgcliptm = $this->svgcliptm; - $svgclipid = $this->svgclipid; - $svgtext = $this->svgtext; - $svgtextmode = $this->svgtextmode; - $this->ImageSVG($img, $x, $y, $w, $h); - // restore SVG vars - $this->svggradients = $svggradients; - $this->svggradientid = $svggradientid; - $this->svgdefsmode = $svgdefsmode; - $this->svgdefs = $svgdefs; - $this->svgclipmode = $svgclipmode; - $this->svgclippaths = $svgclippaths; - $this->svgcliptm = $svgcliptm; - $this->svgclipid = $svgclipid; - $this->svgtext = $svgtext; - $this->svgtextmode = $svgtextmode; - } else { - $this->Image($img, $x, $y, $w, $h); - } - $this->StopTransform(); - } - break; - } - // text - case 'text': - case 'tspan': { - if (isset($this->svgtextmode['text-anchor']) AND !empty($this->svgtext)) { - // @TODO: unsupported feature - } - // only basic support - advanced features must be implemented - $this->svgtextmode['invisible'] = $invisible; - if ($invisible) { - break; - } - array_push($this->svgstyles, $svgstyle); - if (isset($attribs['x'])) { - $x = $this->getHTMLUnitToUnits($attribs['x'], 0, $this->svgunit, false); - } elseif ($name == 'tspan') { - $x = $this->x; - } else { - $x = 0; - } - if (isset($attribs['dx'])) { - $x += $this->getHTMLUnitToUnits($attribs['dx'], 0, $this->svgunit, false); - } - if (isset($attribs['y'])) { - $y = $this->getHTMLUnitToUnits($attribs['y'], 0, $this->svgunit, false); - } elseif ($name == 'tspan') { - $y = $this->y; - } else { - $y = 0; - } - if (isset($attribs['dy'])) { - $y += $this->getHTMLUnitToUnits($attribs['dy'], 0, $this->svgunit, false); - } - $svgstyle['text-color'] = $svgstyle['fill']; - $this->svgtext = ''; - if (isset($svgstyle['text-anchor'])) { - $this->svgtextmode['text-anchor'] = $svgstyle['text-anchor']; - } else { - $this->svgtextmode['text-anchor'] = 'start'; - } - if (isset($svgstyle['direction'])) { - if ($svgstyle['direction'] == 'rtl') { - $this->svgtextmode['rtl'] = true; - } else { - $this->svgtextmode['rtl'] = false; - } - } else { - $this->svgtextmode['rtl'] = false; - } - if (isset($svgstyle['stroke']) AND ($svgstyle['stroke'] != 'none') AND isset($svgstyle['stroke-width']) AND ($svgstyle['stroke-width'] > 0)) { - $this->svgtextmode['stroke'] = $this->getHTMLUnitToUnits($svgstyle['stroke-width'], 0, $this->svgunit, false); - } else { - $this->svgtextmode['stroke'] = false; - } - $this->StartTransform(); - $this->SVGTransform($tm); - $obstyle = $this->setSVGStyles($svgstyle, $prev_svgstyle, $x, $y, 1, 1); - $this->x = $x; - $this->y = $y; - break; - } - // use - case 'use': { - if (isset($attribs['xlink:href']) AND !empty($attribs['xlink:href'])) { - $svgdefid = substr($attribs['xlink:href'], 1); - if (isset($this->svgdefs[$svgdefid])) { - $use = $this->svgdefs[$svgdefid]; - if (isset($attribs['xlink:href'])) { - unset($attribs['xlink:href']); - } - if (isset($attribs['id'])) { - unset($attribs['id']); - } - if (isset($use['attribs']['x']) AND isset($attribs['x'])) { - $attribs['x'] += $use['attribs']['x']; - } - if (isset($use['attribs']['y']) AND isset($attribs['y'])) { - $attribs['y'] += $use['attribs']['y']; - } - if (empty($attribs['style'])) { - $attribs['style'] = ''; - } - if (!empty($use['attribs']['style'])) { - // merge styles - $attribs['style'] = str_replace(';;',';',';'.$use['attribs']['style'].$attribs['style']); - } - $attribs = array_merge($use['attribs'], $attribs); - $this->startSVGElementHandler($parser, $use['name'], $attribs); - return; - } - } - break; - } - default: { - break; - } - } // end of switch - // process child elements - if (!empty($attribs['child_elements'])) { - $child_elements = $attribs['child_elements']; - unset($attribs['child_elements']); - foreach($child_elements as $child_element) { - if (empty($child_element['attribs']['closing_tag'])) { - $this->startSVGElementHandler('child-tag', $child_element['name'], $child_element['attribs']); - } else { - if (isset($child_element['attribs']['content'])) { - $this->svgtext = $child_element['attribs']['content']; - } - $this->endSVGElementHandler('child-tag', $child_element['name']); - } - } - } - } - - /** - * Sets the closing SVG element handler function for the XML parser. - * @param $parser (resource) The first parameter, parser, is a reference to the XML parser calling the handler. - * @param $name (string) The second parameter, name, contains the name of the element for which this handler is called. If case-folding is in effect for this parser, the element name will be in uppercase letters. - * @author Nicola Asuni - * @since 5.0.000 (2010-05-02) - * @protected - */ - protected function endSVGElementHandler($parser, $name) { - $name = $this->removeTagNamespace($name); - if ($this->svgdefsmode AND !in_array($name, array('defs', 'clipPath', 'linearGradient', 'radialGradient', 'stop'))) {; - if (end($this->svgdefs) !== FALSE) { - $last_svgdefs_id = key($this->svgdefs); - if (isset($this->svgdefs[$last_svgdefs_id]['attribs']['child_elements'])) { - foreach($this->svgdefs[$last_svgdefs_id]['attribs']['child_elements'] as $child_element) { - if (isset($child_element['attribs']['id']) AND ($child_element['name'] == $name)) { - $this->svgdefs[$last_svgdefs_id]['attribs']['child_elements'][$child_element['attribs']['id'].'_CLOSE'] = array('name' => $name, 'attribs' => array('closing_tag' => TRUE, 'content' => $this->svgtext)); - return; - } - } - if ($this->svgdefs[$last_svgdefs_id]['name'] == $name) { - $this->svgdefs[$last_svgdefs_id]['attribs']['child_elements'][$last_svgdefs_id.'_CLOSE'] = array('name' => $name, 'attribs' => array('closing_tag' => TRUE, 'content' => $this->svgtext)); - return; - } - } - } - return; - } - switch($name) { - case 'defs': { - $this->svgdefsmode = false; - break; - } - // clipPath - case 'clipPath': { - $this->svgclipmode = false; - break; - } - case 'svg': { - if (--$this->svg_tag_depth <= 0) { - break; - } - } - case 'g': { - // ungroup: remove last style from array - array_pop($this->svgstyles); - $this->StopTransform(); - break; - } - case 'text': - case 'tspan': { - if ($this->svgtextmode['invisible']) { - // This implementation must be fixed to following the rule: - // If the 'visibility' property is set to hidden on a 'tspan', 'tref' or 'altGlyph' element, then the text is invisible but still takes up space in text layout calculations. - break; - } - // print text - $text = $this->svgtext; - //$text = $this->stringTrim($text); - $textlen = $this->GetStringWidth($text); - if ($this->svgtextmode['text-anchor'] != 'start') { - // check if string is RTL text - if ($this->svgtextmode['text-anchor'] == 'end') { - if ($this->svgtextmode['rtl']) { - $this->x += $textlen; - } else { - $this->x -= $textlen; - } - } elseif ($this->svgtextmode['text-anchor'] == 'middle') { - if ($this->svgtextmode['rtl']) { - $this->x += ($textlen / 2); - } else { - $this->x -= ($textlen / 2); - } - } - } - $textrendermode = $this->textrendermode; - $textstrokewidth = $this->textstrokewidth; - $this->setTextRenderingMode($this->svgtextmode['stroke'], true, false); - if ($name == 'text') { - // store current coordinates - $tmpx = $this->x; - $tmpy = $this->y; - } - // print the text - $this->Cell($textlen, 0, $text, 0, 0, '', false, '', 0, false, 'L', 'T'); - if ($name == 'text') { - // restore coordinates - $this->x = $tmpx; - $this->y = $tmpy; - } - // restore previous rendering mode - $this->textrendermode = $textrendermode; - $this->textstrokewidth = $textstrokewidth; - $this->svgtext = ''; - $this->StopTransform(); - if (!$this->svgdefsmode) { - array_pop($this->svgstyles); - } - break; - } - default: { - break; - } - } - } - - /** - * Sets the character data handler function for the XML parser. - * @param $parser (resource) The first parameter, parser, is a reference to the XML parser calling the handler. - * @param $data (string) The second parameter, data, contains the character data as a string. - * @author Nicola Asuni - * @since 5.0.000 (2010-05-02) - * @protected - */ - protected function segSVGContentHandler($parser, $data) { - $this->svgtext .= $data; - } - - // --- END SVG METHODS ----------------------------------------------------- - -} // END OF TCPDF CLASS - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/tcpdf_autoconfig.php b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/tcpdf_autoconfig.php deleted file mode 100644 index 6ec9ce8..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/tcpdf_autoconfig.php +++ /dev/null @@ -1,241 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : Try to automatically configure some TCPDF -// constants if not defined. -// -//============================================================+ - -/** - * @file - * Try to automatically configure some TCPDF constants if not defined. - * @package com.tecnick.tcpdf - * @version 1.1.1 - */ - -// DOCUMENT_ROOT fix for IIS Webserver -if ((!isset($_SERVER['DOCUMENT_ROOT'])) OR (empty($_SERVER['DOCUMENT_ROOT']))) { - if(isset($_SERVER['SCRIPT_FILENAME'])) { - $_SERVER['DOCUMENT_ROOT'] = str_replace( '\\', '/', substr($_SERVER['SCRIPT_FILENAME'], 0, 0-strlen($_SERVER['PHP_SELF']))); - } elseif(isset($_SERVER['PATH_TRANSLATED'])) { - $_SERVER['DOCUMENT_ROOT'] = str_replace( '\\', '/', substr(str_replace('\\\\', '\\', $_SERVER['PATH_TRANSLATED']), 0, 0-strlen($_SERVER['PHP_SELF']))); - } else { - // define here your DOCUMENT_ROOT path if the previous fails (e.g. '/var/www') - $_SERVER['DOCUMENT_ROOT'] = '/'; - } -} -$_SERVER['DOCUMENT_ROOT'] = str_replace('//', '/', $_SERVER['DOCUMENT_ROOT']); -if (substr($_SERVER['DOCUMENT_ROOT'], -1) != '/') { - $_SERVER['DOCUMENT_ROOT'] .= '/'; -} - -// Load main configuration file only if the K_TCPDF_EXTERNAL_CONFIG constant is set to false. -if (!defined('K_TCPDF_EXTERNAL_CONFIG') OR !K_TCPDF_EXTERNAL_CONFIG) { - // define a list of default config files in order of priority - $tcpdf_config_files = array(dirname(__FILE__).'/config/tcpdf_config.php', '/etc/php-tcpdf/tcpdf_config.php', '/etc/tcpdf/tcpdf_config.php', '/etc/tcpdf_config.php'); - foreach ($tcpdf_config_files as $tcpdf_config) { - if (@file_exists($tcpdf_config) AND is_readable($tcpdf_config)) { - require_once($tcpdf_config); - break; - } - } -} - -if (!defined('K_PATH_MAIN')) { - define ('K_PATH_MAIN', dirname(__FILE__).'/'); -} - -if (!defined('K_PATH_FONTS')) { - define ('K_PATH_FONTS', K_PATH_MAIN.'fonts/'); -} - -if (!defined('K_PATH_URL')) { - $k_path_url = K_PATH_MAIN; // default value for console mode - if (isset($_SERVER['HTTP_HOST']) AND (!empty($_SERVER['HTTP_HOST']))) { - if(isset($_SERVER['HTTPS']) AND (!empty($_SERVER['HTTPS'])) AND (strtolower($_SERVER['HTTPS']) != 'off')) { - $k_path_url = 'https://'; - } else { - $k_path_url = 'http://'; - } - $k_path_url .= $_SERVER['HTTP_HOST']; - $k_path_url .= str_replace( '\\', '/', substr(K_PATH_MAIN, (strlen($_SERVER['DOCUMENT_ROOT']) - 1))); - } - define ('K_PATH_URL', $k_path_url); -} - -if (!defined('K_PATH_IMAGES')) { - $tcpdf_images_dirs = array(K_PATH_MAIN.'examples/images/', K_PATH_MAIN.'images/', '/usr/share/doc/php-tcpdf/examples/images/', '/usr/share/doc/tcpdf/examples/images/', '/usr/share/doc/php/tcpdf/examples/images/', '/var/www/tcpdf/images/', '/var/www/html/tcpdf/images/', '/usr/local/apache2/htdocs/tcpdf/images/', K_PATH_MAIN); - foreach ($tcpdf_images_dirs as $tcpdf_images_path) { - if (@file_exists($tcpdf_images_path)) { - define ('K_PATH_IMAGES', $tcpdf_images_path); - break; - } - } -} - -if (!defined('PDF_HEADER_LOGO')) { - $tcpdf_header_logo = ''; - if (@file_exists(K_PATH_IMAGES.'tcpdf_logo.jpg')) { - $tcpdf_header_logo = 'tcpdf_logo.jpg'; - } - define ('PDF_HEADER_LOGO', $tcpdf_header_logo); -} - -if (!defined('PDF_HEADER_LOGO_WIDTH')) { - if (!empty($tcpdf_header_logo)) { - define ('PDF_HEADER_LOGO_WIDTH', 30); - } else { - define ('PDF_HEADER_LOGO_WIDTH', 0); - } -} - -if (!defined('K_PATH_CACHE')) { - $K_PATH_CACHE = ini_get('upload_tmp_dir') ? ini_get('upload_tmp_dir') : sys_get_temp_dir(); - if (substr($K_PATH_CACHE, -1) != '/') { - $K_PATH_CACHE .= '/'; - } - define ('K_PATH_CACHE', $K_PATH_CACHE); -} - -if (!defined('K_BLANK_IMAGE')) { - define ('K_BLANK_IMAGE', '_blank.png'); -} - -if (!defined('PDF_PAGE_FORMAT')) { - define ('PDF_PAGE_FORMAT', 'A4'); -} - -if (!defined('PDF_PAGE_ORIENTATION')) { - define ('PDF_PAGE_ORIENTATION', 'P'); -} - -if (!defined('PDF_CREATOR')) { - define ('PDF_CREATOR', 'TCPDF'); -} - -if (!defined('PDF_AUTHOR')) { - define ('PDF_AUTHOR', 'TCPDF'); -} - -if (!defined('PDF_HEADER_TITLE')) { - define ('PDF_HEADER_TITLE', 'TCPDF Example'); -} - -if (!defined('PDF_HEADER_STRING')) { - define ('PDF_HEADER_STRING', "by Nicola Asuni - Tecnick.com\nwww.tcpdf.org"); -} - -if (!defined('PDF_UNIT')) { - define ('PDF_UNIT', 'mm'); -} - -if (!defined('PDF_MARGIN_HEADER')) { - define ('PDF_MARGIN_HEADER', 5); -} - -if (!defined('PDF_MARGIN_FOOTER')) { - define ('PDF_MARGIN_FOOTER', 10); -} - -if (!defined('PDF_MARGIN_TOP')) { - define ('PDF_MARGIN_TOP', 27); -} - -if (!defined('PDF_MARGIN_BOTTOM')) { - define ('PDF_MARGIN_BOTTOM', 25); -} - -if (!defined('PDF_MARGIN_LEFT')) { - define ('PDF_MARGIN_LEFT', 15); -} - -if (!defined('PDF_MARGIN_RIGHT')) { - define ('PDF_MARGIN_RIGHT', 15); -} - -if (!defined('PDF_FONT_NAME_MAIN')) { - define ('PDF_FONT_NAME_MAIN', 'helvetica'); -} - -if (!defined('PDF_FONT_SIZE_MAIN')) { - define ('PDF_FONT_SIZE_MAIN', 10); -} - -if (!defined('PDF_FONT_NAME_DATA')) { - define ('PDF_FONT_NAME_DATA', 'helvetica'); -} - -if (!defined('PDF_FONT_SIZE_DATA')) { - define ('PDF_FONT_SIZE_DATA', 8); -} - -if (!defined('PDF_FONT_MONOSPACED')) { - define ('PDF_FONT_MONOSPACED', 'courier'); -} - -if (!defined('PDF_IMAGE_SCALE_RATIO')) { - define ('PDF_IMAGE_SCALE_RATIO', 1.25); -} - -if (!defined('HEAD_MAGNIFICATION')) { - define('HEAD_MAGNIFICATION', 1.1); -} - -if (!defined('K_CELL_HEIGHT_RATIO')) { - define('K_CELL_HEIGHT_RATIO', 1.25); -} - -if (!defined('K_TITLE_MAGNIFICATION')) { - define('K_TITLE_MAGNIFICATION', 1.3); -} - -if (!defined('K_SMALL_RATIO')) { - define('K_SMALL_RATIO', 2/3); -} - -if (!defined('K_THAI_TOPCHARS')) { - define('K_THAI_TOPCHARS', true); -} - -if (!defined('K_TCPDF_CALLS_IN_HTML')) { - define('K_TCPDF_CALLS_IN_HTML', false); -} - -if (!defined('K_TCPDF_THROW_EXCEPTION_ERROR')) { - define('K_TCPDF_THROW_EXCEPTION_ERROR', false); -} - -if (!defined('K_TIMEZONE')) { - define('K_TIMEZONE', @date_default_timezone_get()); -} - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/tcpdf_barcodes_1d.php b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/tcpdf_barcodes_1d.php deleted file mode 100644 index 78bfc5b..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/tcpdf_barcodes_1d.php +++ /dev/null @@ -1,2357 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : PHP class to creates array representations for -// common 1D barcodes to be used with TCPDF. -// -//============================================================+ - -/** - * @file - * PHP class to creates array representations for common 1D barcodes to be used with TCPDF. - * @package com.tecnick.tcpdf - * @author Nicola Asuni - * @version 1.0.027 - */ - -/** - * @class TCPDFBarcode - * PHP class to creates array representations for common 1D barcodes to be used with TCPDF (http://www.tcpdf.org).
    - * @package com.tecnick.tcpdf - * @version 1.0.027 - * @author Nicola Asuni - */ -class TCPDFBarcode { - - /** - * Array representation of barcode. - * @protected - */ - protected $barcode_array; - - /** - * This is the class constructor. - * Return an array representations for common 1D barcodes:
      - *
    • $arrcode['code'] code to be printed on text label
    • - *
    • $arrcode['maxh'] max barcode height
    • - *
    • $arrcode['maxw'] max barcode width
    • - *
    • $arrcode['bcode'][$k] single bar or space in $k position
    • - *
    • $arrcode['bcode'][$k]['t'] bar type: true = bar, false = space.
    • - *
    • $arrcode['bcode'][$k]['w'] bar width in units.
    • - *
    • $arrcode['bcode'][$k]['h'] bar height in units.
    • - *
    • $arrcode['bcode'][$k]['p'] bar top position (0 = top, 1 = middle)
    - * @param $code (string) code to print - * @param $type (string) type of barcode:
    • C39 : CODE 39 - ANSI MH10.8M-1983 - USD-3 - 3 of 9.
    • C39+ : CODE 39 with checksum
    • C39E : CODE 39 EXTENDED
    • C39E+ : CODE 39 EXTENDED + CHECKSUM
    • C93 : CODE 93 - USS-93
    • S25 : Standard 2 of 5
    • S25+ : Standard 2 of 5 + CHECKSUM
    • I25 : Interleaved 2 of 5
    • I25+ : Interleaved 2 of 5 + CHECKSUM
    • C128 : CODE 128
    • C128A : CODE 128 A
    • C128B : CODE 128 B
    • C128C : CODE 128 C
    • EAN2 : 2-Digits UPC-Based Extension
    • EAN5 : 5-Digits UPC-Based Extension
    • EAN8 : EAN 8
    • EAN13 : EAN 13
    • UPCA : UPC-A
    • UPCE : UPC-E
    • MSI : MSI (Variation of Plessey code)
    • MSI+ : MSI + CHECKSUM (modulo 11)
    • POSTNET : POSTNET
    • PLANET : PLANET
    • RMS4CC : RMS4CC (Royal Mail 4-state Customer Code) - CBC (Customer Bar Code)
    • KIX : KIX (Klant index - Customer index)
    • IMB: Intelligent Mail Barcode - Onecode - USPS-B-3200
    • CODABAR : CODABAR
    • CODE11 : CODE 11
    • PHARMA : PHARMACODE
    • PHARMA2T : PHARMACODE TWO-TRACKS
    - * @public - */ - public function __construct($code, $type) { - $this->setBarcode($code, $type); - } - - /** - * Return an array representations of barcode. - * @return array - * @public - */ - public function getBarcodeArray() { - return $this->barcode_array; - } - - /** - * Send barcode as SVG image object to the standard output. - * @param $w (int) Minimum width of a single bar in user units. - * @param $h (int) Height of barcode in user units. - * @param $color (string) Foreground color (in SVG format) for bar elements (background is transparent). - * @public - */ - public function getBarcodeSVG($w=2, $h=30, $color='black') { - // send headers - $code = $this->getBarcodeSVGcode($w, $h, $color); - header('Content-Type: application/svg+xml'); - header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1 - header('Pragma: public'); - header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past - header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); - header('Content-Disposition: inline; filename="'.md5($code).'.svg";'); - //header('Content-Length: '.strlen($code)); - echo $code; - } - - /** - * Return a SVG string representation of barcode. - * @param $w (int) Minimum width of a single bar in user units. - * @param $h (int) Height of barcode in user units. - * @param $color (string) Foreground color (in SVG format) for bar elements (background is transparent). - * @return string SVG code. - * @public - */ - public function getBarcodeSVGcode($w=2, $h=30, $color='black') { - // replace table for special characters - $repstr = array("\0" => '', '&' => '&', '<' => '<', '>' => '>'); - $svg = '<'.'?'.'xml version="1.0" standalone="no"'.'?'.'>'."\n"; - $svg .= ''."\n"; - $svg .= ''."\n"; - $svg .= "\t".''.strtr($this->barcode_array['code'], $repstr).''."\n"; - $svg .= "\t".''."\n"; - // print bars - $x = 0; - foreach ($this->barcode_array['bcode'] as $k => $v) { - $bw = round(($v['w'] * $w), 3); - $bh = round(($v['h'] * $h / $this->barcode_array['maxh']), 3); - if ($v['t']) { - $y = round(($v['p'] * $h / $this->barcode_array['maxh']), 3); - // draw a vertical bar - $svg .= "\t\t".''."\n"; - } - $x += $bw; - } - $svg .= "\t".''."\n"; - $svg .= ''."\n"; - return $svg; - } - - /** - * Return an HTML representation of barcode. - * @param $w (int) Width of a single bar element in pixels. - * @param $h (int) Height of a single bar element in pixels. - * @param $color (string) Foreground color for bar elements (background is transparent). - * @return string HTML code. - * @public - */ - public function getBarcodeHTML($w=2, $h=30, $color='black') { - $html = '
    '."\n"; - // print bars - $x = 0; - foreach ($this->barcode_array['bcode'] as $k => $v) { - $bw = round(($v['w'] * $w), 3); - $bh = round(($v['h'] * $h / $this->barcode_array['maxh']), 3); - if ($v['t']) { - $y = round(($v['p'] * $h / $this->barcode_array['maxh']), 3); - // draw a vertical bar - $html .= '
     
    '."\n"; - } - $x += $bw; - } - $html .= '
    '."\n"; - return $html; - } - - /** - * Send a PNG image representation of barcode (requires GD or Imagick library). - * @param $w (int) Width of a single bar element in pixels. - * @param $h (int) Height of a single bar element in pixels. - * @param $color (array) RGB (0-255) foreground color for bar elements (background is transparent). - * @public - */ - public function getBarcodePNG($w=2, $h=30, $color=array(0,0,0)) { - $data = $this->getBarcodePngData($w, $h, $color); - // send headers - header('Content-Type: image/png'); - header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1 - header('Pragma: public'); - header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past - header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); - //header('Content-Length: '.strlen($data)); - echo $data; - } - - /** - * Return a PNG image representation of barcode (requires GD or Imagick library). - * @param $w (int) Width of a single bar element in pixels. - * @param $h (int) Height of a single bar element in pixels. - * @param $color (array) RGB (0-255) foreground color for bar elements (background is transparent). - * @return image or false in case of error. - * @public - */ - public function getBarcodePngData($w=2, $h=30, $color=array(0,0,0)) { - // calculate image size - $width = ($this->barcode_array['maxw'] * $w); - $height = $h; - if (function_exists('imagecreate')) { - // GD library - $imagick = false; - $png = imagecreate($width, $height); - $bgcol = imagecolorallocate($png, 255, 255, 255); - imagecolortransparent($png, $bgcol); - $fgcol = imagecolorallocate($png, $color[0], $color[1], $color[2]); - } elseif (extension_loaded('imagick')) { - $imagick = true; - $bgcol = new imagickpixel('rgb(255,255,255'); - $fgcol = new imagickpixel('rgb('.$color[0].','.$color[1].','.$color[2].')'); - $png = new Imagick(); - $png->newImage($width, $height, 'none', 'png'); - $bar = new imagickdraw(); - $bar->setfillcolor($fgcol); - } else { - return false; - } - // print bars - $x = 0; - foreach ($this->barcode_array['bcode'] as $k => $v) { - $bw = round(($v['w'] * $w), 3); - $bh = round(($v['h'] * $h / $this->barcode_array['maxh']), 3); - if ($v['t']) { - $y = round(($v['p'] * $h / $this->barcode_array['maxh']), 3); - // draw a vertical bar - if ($imagick) { - $bar->rectangle($x, $y, ($x + $bw - 1), ($y + $bh - 1)); - } else { - imagefilledrectangle($png, $x, $y, ($x + $bw - 1), ($y + $bh - 1), $fgcol); - } - } - $x += $bw; - } - if ($imagick) { - $png->drawimage($bar); - return $png; - } else { - ob_start(); - imagepng($png); - $imagedata = ob_get_clean(); - imagedestroy($png); - return $imagedata; - } - } - - /** - * Set the barcode. - * @param $code (string) code to print - * @param $type (string) type of barcode:
    • C39 : CODE 39 - ANSI MH10.8M-1983 - USD-3 - 3 of 9.
    • C39+ : CODE 39 with checksum
    • C39E : CODE 39 EXTENDED
    • C39E+ : CODE 39 EXTENDED + CHECKSUM
    • C93 : CODE 93 - USS-93
    • S25 : Standard 2 of 5
    • S25+ : Standard 2 of 5 + CHECKSUM
    • I25 : Interleaved 2 of 5
    • I25+ : Interleaved 2 of 5 + CHECKSUM
    • C128 : CODE 128
    • C128A : CODE 128 A
    • C128B : CODE 128 B
    • C128C : CODE 128 C
    • EAN2 : 2-Digits UPC-Based Extension
    • EAN5 : 5-Digits UPC-Based Extension
    • EAN8 : EAN 8
    • EAN13 : EAN 13
    • UPCA : UPC-A
    • UPCE : UPC-E
    • MSI : MSI (Variation of Plessey code)
    • MSI+ : MSI + CHECKSUM (modulo 11)
    • POSTNET : POSTNET
    • PLANET : PLANET
    • RMS4CC : RMS4CC (Royal Mail 4-state Customer Code) - CBC (Customer Bar Code)
    • KIX : KIX (Klant index - Customer index)
    • IMB: Intelligent Mail Barcode - Onecode - USPS-B-3200
    • IMBPRE: Pre-processed Intelligent Mail Barcode - Onecode - USPS-B-3200, using only F,A,D,T letters
    • CODABAR : CODABAR
    • CODE11 : CODE 11
    • PHARMA : PHARMACODE
    • PHARMA2T : PHARMACODE TWO-TRACKS
    - * @return array barcode array - * @public - */ - public function setBarcode($code, $type) { - switch (strtoupper($type)) { - case 'C39': { // CODE 39 - ANSI MH10.8M-1983 - USD-3 - 3 of 9. - $arrcode = $this->barcode_code39($code, false, false); - break; - } - case 'C39+': { // CODE 39 with checksum - $arrcode = $this->barcode_code39($code, false, true); - break; - } - case 'C39E': { // CODE 39 EXTENDED - $arrcode = $this->barcode_code39($code, true, false); - break; - } - case 'C39E+': { // CODE 39 EXTENDED + CHECKSUM - $arrcode = $this->barcode_code39($code, true, true); - break; - } - case 'C93': { // CODE 93 - USS-93 - $arrcode = $this->barcode_code93($code); - break; - } - case 'S25': { // Standard 2 of 5 - $arrcode = $this->barcode_s25($code, false); - break; - } - case 'S25+': { // Standard 2 of 5 + CHECKSUM - $arrcode = $this->barcode_s25($code, true); - break; - } - case 'I25': { // Interleaved 2 of 5 - $arrcode = $this->barcode_i25($code, false); - break; - } - case 'I25+': { // Interleaved 2 of 5 + CHECKSUM - $arrcode = $this->barcode_i25($code, true); - break; - } - case 'C128': { // CODE 128 - $arrcode = $this->barcode_c128($code, ''); - break; - } - case 'C128A': { // CODE 128 A - $arrcode = $this->barcode_c128($code, 'A'); - break; - } - case 'C128B': { // CODE 128 B - $arrcode = $this->barcode_c128($code, 'B'); - break; - } - case 'C128C': { // CODE 128 C - $arrcode = $this->barcode_c128($code, 'C'); - break; - } - case 'EAN2': { // 2-Digits UPC-Based Extension - $arrcode = $this->barcode_eanext($code, 2); - break; - } - case 'EAN5': { // 5-Digits UPC-Based Extension - $arrcode = $this->barcode_eanext($code, 5); - break; - } - case 'EAN8': { // EAN 8 - $arrcode = $this->barcode_eanupc($code, 8); - break; - } - case 'EAN13': { // EAN 13 - $arrcode = $this->barcode_eanupc($code, 13); - break; - } - case 'UPCA': { // UPC-A - $arrcode = $this->barcode_eanupc($code, 12); - break; - } - case 'UPCE': { // UPC-E - $arrcode = $this->barcode_eanupc($code, 6); - break; - } - case 'MSI': { // MSI (Variation of Plessey code) - $arrcode = $this->barcode_msi($code, false); - break; - } - case 'MSI+': { // MSI + CHECKSUM (modulo 11) - $arrcode = $this->barcode_msi($code, true); - break; - } - case 'POSTNET': { // POSTNET - $arrcode = $this->barcode_postnet($code, false); - break; - } - case 'PLANET': { // PLANET - $arrcode = $this->barcode_postnet($code, true); - break; - } - case 'RMS4CC': { // RMS4CC (Royal Mail 4-state Customer Code) - CBC (Customer Bar Code) - $arrcode = $this->barcode_rms4cc($code, false); - break; - } - case 'KIX': { // KIX (Klant index - Customer index) - $arrcode = $this->barcode_rms4cc($code, true); - break; - } - case 'IMB': { // IMB - Intelligent Mail Barcode - Onecode - USPS-B-3200 - $arrcode = $this->barcode_imb($code); - break; - } - case 'IMBPRE': { // IMB - Intelligent Mail Barcode - Onecode - USPS-B-3200- pre-processed - $arrcode = $this->barcode_imb_pre($code); - break; - } - case 'CODABAR': { // CODABAR - $arrcode = $this->barcode_codabar($code); - break; - } - case 'CODE11': { // CODE 11 - $arrcode = $this->barcode_code11($code); - break; - } - case 'PHARMA': { // PHARMACODE - $arrcode = $this->barcode_pharmacode($code); - break; - } - case 'PHARMA2T': { // PHARMACODE TWO-TRACKS - $arrcode = $this->barcode_pharmacode2t($code); - break; - } - default: { - $this->barcode_array = false; - $arrcode = false; - break; - } - } - $this->barcode_array = $arrcode; - } - - /** - * CODE 39 - ANSI MH10.8M-1983 - USD-3 - 3 of 9. - * General-purpose code in very wide use world-wide - * @param $code (string) code to represent. - * @param $extended (boolean) if true uses the extended mode. - * @param $checksum (boolean) if true add a checksum to the code. - * @return array barcode representation. - * @protected - */ - protected function barcode_code39($code, $extended=false, $checksum=false) { - $chr['0'] = '111331311'; - $chr['1'] = '311311113'; - $chr['2'] = '113311113'; - $chr['3'] = '313311111'; - $chr['4'] = '111331113'; - $chr['5'] = '311331111'; - $chr['6'] = '113331111'; - $chr['7'] = '111311313'; - $chr['8'] = '311311311'; - $chr['9'] = '113311311'; - $chr['A'] = '311113113'; - $chr['B'] = '113113113'; - $chr['C'] = '313113111'; - $chr['D'] = '111133113'; - $chr['E'] = '311133111'; - $chr['F'] = '113133111'; - $chr['G'] = '111113313'; - $chr['H'] = '311113311'; - $chr['I'] = '113113311'; - $chr['J'] = '111133311'; - $chr['K'] = '311111133'; - $chr['L'] = '113111133'; - $chr['M'] = '313111131'; - $chr['N'] = '111131133'; - $chr['O'] = '311131131'; - $chr['P'] = '113131131'; - $chr['Q'] = '111111333'; - $chr['R'] = '311111331'; - $chr['S'] = '113111331'; - $chr['T'] = '111131331'; - $chr['U'] = '331111113'; - $chr['V'] = '133111113'; - $chr['W'] = '333111111'; - $chr['X'] = '131131113'; - $chr['Y'] = '331131111'; - $chr['Z'] = '133131111'; - $chr['-'] = '131111313'; - $chr['.'] = '331111311'; - $chr[' '] = '133111311'; - $chr['$'] = '131313111'; - $chr['/'] = '131311131'; - $chr['+'] = '131113131'; - $chr['%'] = '111313131'; - $chr['*'] = '131131311'; - $code = strtoupper($code); - if ($extended) { - // extended mode - $code = $this->encode_code39_ext($code); - } - if ($code === false) { - return false; - } - if ($checksum) { - // checksum - $code .= $this->checksum_code39($code); - } - // add start and stop codes - $code = '*'.$code.'*'; - $bararray = array('code' => $code, 'maxw' => 0, 'maxh' => 1, 'bcode' => array()); - $k = 0; - $clen = strlen($code); - for ($i = 0; $i < $clen; ++$i) { - $char = $code[$i]; - if(!isset($chr[$char])) { - // invalid character - return false; - } - for ($j = 0; $j < 9; ++$j) { - if (($j % 2) == 0) { - $t = true; // bar - } else { - $t = false; // space - } - $w = $chr[$char][$j]; - $bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0); - $bararray['maxw'] += $w; - ++$k; - } - // intercharacter gap - $bararray['bcode'][$k] = array('t' => false, 'w' => 1, 'h' => 1, 'p' => 0); - $bararray['maxw'] += 1; - ++$k; - } - return $bararray; - } - - /** - * Encode a string to be used for CODE 39 Extended mode. - * @param $code (string) code to represent. - * @return encoded string. - * @protected - */ - protected function encode_code39_ext($code) { - $encode = array( - chr(0) => '%U', chr(1) => '$A', chr(2) => '$B', chr(3) => '$C', - chr(4) => '$D', chr(5) => '$E', chr(6) => '$F', chr(7) => '$G', - chr(8) => '$H', chr(9) => '$I', chr(10) => '$J', chr(11) => '£K', - chr(12) => '$L', chr(13) => '$M', chr(14) => '$N', chr(15) => '$O', - chr(16) => '$P', chr(17) => '$Q', chr(18) => '$R', chr(19) => '$S', - chr(20) => '$T', chr(21) => '$U', chr(22) => '$V', chr(23) => '$W', - chr(24) => '$X', chr(25) => '$Y', chr(26) => '$Z', chr(27) => '%A', - chr(28) => '%B', chr(29) => '%C', chr(30) => '%D', chr(31) => '%E', - chr(32) => ' ', chr(33) => '/A', chr(34) => '/B', chr(35) => '/C', - chr(36) => '/D', chr(37) => '/E', chr(38) => '/F', chr(39) => '/G', - chr(40) => '/H', chr(41) => '/I', chr(42) => '/J', chr(43) => '/K', - chr(44) => '/L', chr(45) => '-', chr(46) => '.', chr(47) => '/O', - chr(48) => '0', chr(49) => '1', chr(50) => '2', chr(51) => '3', - chr(52) => '4', chr(53) => '5', chr(54) => '6', chr(55) => '7', - chr(56) => '8', chr(57) => '9', chr(58) => '/Z', chr(59) => '%F', - chr(60) => '%G', chr(61) => '%H', chr(62) => '%I', chr(63) => '%J', - chr(64) => '%V', chr(65) => 'A', chr(66) => 'B', chr(67) => 'C', - chr(68) => 'D', chr(69) => 'E', chr(70) => 'F', chr(71) => 'G', - chr(72) => 'H', chr(73) => 'I', chr(74) => 'J', chr(75) => 'K', - chr(76) => 'L', chr(77) => 'M', chr(78) => 'N', chr(79) => 'O', - chr(80) => 'P', chr(81) => 'Q', chr(82) => 'R', chr(83) => 'S', - chr(84) => 'T', chr(85) => 'U', chr(86) => 'V', chr(87) => 'W', - chr(88) => 'X', chr(89) => 'Y', chr(90) => 'Z', chr(91) => '%K', - chr(92) => '%L', chr(93) => '%M', chr(94) => '%N', chr(95) => '%O', - chr(96) => '%W', chr(97) => '+A', chr(98) => '+B', chr(99) => '+C', - chr(100) => '+D', chr(101) => '+E', chr(102) => '+F', chr(103) => '+G', - chr(104) => '+H', chr(105) => '+I', chr(106) => '+J', chr(107) => '+K', - chr(108) => '+L', chr(109) => '+M', chr(110) => '+N', chr(111) => '+O', - chr(112) => '+P', chr(113) => '+Q', chr(114) => '+R', chr(115) => '+S', - chr(116) => '+T', chr(117) => '+U', chr(118) => '+V', chr(119) => '+W', - chr(120) => '+X', chr(121) => '+Y', chr(122) => '+Z', chr(123) => '%P', - chr(124) => '%Q', chr(125) => '%R', chr(126) => '%S', chr(127) => '%T'); - $code_ext = ''; - $clen = strlen($code); - for ($i = 0 ; $i < $clen; ++$i) { - if (ord($code[$i]) > 127) { - return false; - } - $code_ext .= $encode[$code[$i]]; - } - return $code_ext; - } - - /** - * Calculate CODE 39 checksum (modulo 43). - * @param $code (string) code to represent. - * @return char checksum. - * @protected - */ - protected function checksum_code39($code) { - $chars = array( - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', - 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', - 'W', 'X', 'Y', 'Z', '-', '.', ' ', '$', '/', '+', '%'); - $sum = 0; - $clen = strlen($code); - for ($i = 0 ; $i < $clen; ++$i) { - $k = array_keys($chars, $code[$i]); - $sum += $k[0]; - } - $j = ($sum % 43); - return $chars[$j]; - } - - /** - * CODE 93 - USS-93 - * Compact code similar to Code 39 - * @param $code (string) code to represent. - * @return array barcode representation. - * @protected - */ - protected function barcode_code93($code) { - $chr[48] = '131112'; // 0 - $chr[49] = '111213'; // 1 - $chr[50] = '111312'; // 2 - $chr[51] = '111411'; // 3 - $chr[52] = '121113'; // 4 - $chr[53] = '121212'; // 5 - $chr[54] = '121311'; // 6 - $chr[55] = '111114'; // 7 - $chr[56] = '131211'; // 8 - $chr[57] = '141111'; // 9 - $chr[65] = '211113'; // A - $chr[66] = '211212'; // B - $chr[67] = '211311'; // C - $chr[68] = '221112'; // D - $chr[69] = '221211'; // E - $chr[70] = '231111'; // F - $chr[71] = '112113'; // G - $chr[72] = '112212'; // H - $chr[73] = '112311'; // I - $chr[74] = '122112'; // J - $chr[75] = '132111'; // K - $chr[76] = '111123'; // L - $chr[77] = '111222'; // M - $chr[78] = '111321'; // N - $chr[79] = '121122'; // O - $chr[80] = '131121'; // P - $chr[81] = '212112'; // Q - $chr[82] = '212211'; // R - $chr[83] = '211122'; // S - $chr[84] = '211221'; // T - $chr[85] = '221121'; // U - $chr[86] = '222111'; // V - $chr[87] = '112122'; // W - $chr[88] = '112221'; // X - $chr[89] = '122121'; // Y - $chr[90] = '123111'; // Z - $chr[45] = '121131'; // - - $chr[46] = '311112'; // . - $chr[32] = '311211'; // - $chr[36] = '321111'; // $ - $chr[47] = '112131'; // / - $chr[43] = '113121'; // + - $chr[37] = '211131'; // % - $chr[128] = '121221'; // ($) - $chr[129] = '311121'; // (/) - $chr[130] = '122211'; // (+) - $chr[131] = '312111'; // (%) - $chr[42] = '111141'; // start-stop - $code = strtoupper($code); - $encode = array( - chr(0) => chr(131).'U', chr(1) => chr(128).'A', chr(2) => chr(128).'B', chr(3) => chr(128).'C', - chr(4) => chr(128).'D', chr(5) => chr(128).'E', chr(6) => chr(128).'F', chr(7) => chr(128).'G', - chr(8) => chr(128).'H', chr(9) => chr(128).'I', chr(10) => chr(128).'J', chr(11) => '£K', - chr(12) => chr(128).'L', chr(13) => chr(128).'M', chr(14) => chr(128).'N', chr(15) => chr(128).'O', - chr(16) => chr(128).'P', chr(17) => chr(128).'Q', chr(18) => chr(128).'R', chr(19) => chr(128).'S', - chr(20) => chr(128).'T', chr(21) => chr(128).'U', chr(22) => chr(128).'V', chr(23) => chr(128).'W', - chr(24) => chr(128).'X', chr(25) => chr(128).'Y', chr(26) => chr(128).'Z', chr(27) => chr(131).'A', - chr(28) => chr(131).'B', chr(29) => chr(131).'C', chr(30) => chr(131).'D', chr(31) => chr(131).'E', - chr(32) => ' ', chr(33) => chr(129).'A', chr(34) => chr(129).'B', chr(35) => chr(129).'C', - chr(36) => chr(129).'D', chr(37) => chr(129).'E', chr(38) => chr(129).'F', chr(39) => chr(129).'G', - chr(40) => chr(129).'H', chr(41) => chr(129).'I', chr(42) => chr(129).'J', chr(43) => chr(129).'K', - chr(44) => chr(129).'L', chr(45) => '-', chr(46) => '.', chr(47) => chr(129).'O', - chr(48) => '0', chr(49) => '1', chr(50) => '2', chr(51) => '3', - chr(52) => '4', chr(53) => '5', chr(54) => '6', chr(55) => '7', - chr(56) => '8', chr(57) => '9', chr(58) => chr(129).'Z', chr(59) => chr(131).'F', - chr(60) => chr(131).'G', chr(61) => chr(131).'H', chr(62) => chr(131).'I', chr(63) => chr(131).'J', - chr(64) => chr(131).'V', chr(65) => 'A', chr(66) => 'B', chr(67) => 'C', - chr(68) => 'D', chr(69) => 'E', chr(70) => 'F', chr(71) => 'G', - chr(72) => 'H', chr(73) => 'I', chr(74) => 'J', chr(75) => 'K', - chr(76) => 'L', chr(77) => 'M', chr(78) => 'N', chr(79) => 'O', - chr(80) => 'P', chr(81) => 'Q', chr(82) => 'R', chr(83) => 'S', - chr(84) => 'T', chr(85) => 'U', chr(86) => 'V', chr(87) => 'W', - chr(88) => 'X', chr(89) => 'Y', chr(90) => 'Z', chr(91) => chr(131).'K', - chr(92) => chr(131).'L', chr(93) => chr(131).'M', chr(94) => chr(131).'N', chr(95) => chr(131).'O', - chr(96) => chr(131).'W', chr(97) => chr(130).'A', chr(98) => chr(130).'B', chr(99) => chr(130).'C', - chr(100) => chr(130).'D', chr(101) => chr(130).'E', chr(102) => chr(130).'F', chr(103) => chr(130).'G', - chr(104) => chr(130).'H', chr(105) => chr(130).'I', chr(106) => chr(130).'J', chr(107) => chr(130).'K', - chr(108) => chr(130).'L', chr(109) => chr(130).'M', chr(110) => chr(130).'N', chr(111) => chr(130).'O', - chr(112) => chr(130).'P', chr(113) => chr(130).'Q', chr(114) => chr(130).'R', chr(115) => chr(130).'S', - chr(116) => chr(130).'T', chr(117) => chr(130).'U', chr(118) => chr(130).'V', chr(119) => chr(130).'W', - chr(120) => chr(130).'X', chr(121) => chr(130).'Y', chr(122) => chr(130).'Z', chr(123) => chr(131).'P', - chr(124) => chr(131).'Q', chr(125) => chr(131).'R', chr(126) => chr(131).'S', chr(127) => chr(131).'T'); - $code_ext = ''; - $clen = strlen($code); - for ($i = 0 ; $i < $clen; ++$i) { - if (ord($code[$i]) > 127) { - return false; - } - $code_ext .= $encode[$code[$i]]; - } - // checksum - $code_ext .= $this->checksum_code93($code_ext); - // add start and stop codes - $code = '*'.$code_ext.'*'; - $bararray = array('code' => $code, 'maxw' => 0, 'maxh' => 1, 'bcode' => array()); - $k = 0; - $clen = strlen($code); - for ($i = 0; $i < $clen; ++$i) { - $char = ord($code[$i]); - if(!isset($chr[$char])) { - // invalid character - return false; - } - for ($j = 0; $j < 6; ++$j) { - if (($j % 2) == 0) { - $t = true; // bar - } else { - $t = false; // space - } - $w = $chr[$char][$j]; - $bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0); - $bararray['maxw'] += $w; - ++$k; - } - } - $bararray['bcode'][$k] = array('t' => true, 'w' => 1, 'h' => 1, 'p' => 0); - $bararray['maxw'] += 1; - ++$k; - return $bararray; - } - - /** - * Calculate CODE 93 checksum (modulo 47). - * @param $code (string) code to represent. - * @return string checksum code. - * @protected - */ - protected function checksum_code93($code) { - $chars = array( - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', - 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', - 'W', 'X', 'Y', 'Z', '-', '.', ' ', '$', '/', '+', '%', - '<', '=', '>', '?'); - // translate special characters - $code = strtr($code, chr(128).chr(131).chr(129).chr(130), '<=>?'); - $len = strlen($code); - // calculate check digit C - $p = 1; - $check = 0; - for ($i = ($len - 1); $i >= 0; --$i) { - $k = array_keys($chars, $code[$i]); - $check += ($k[0] * $p); - ++$p; - if ($p > 20) { - $p = 1; - } - } - $check %= 47; - $c = $chars[$check]; - $code .= $c; - // calculate check digit K - $p = 1; - $check = 0; - for ($i = $len; $i >= 0; --$i) { - $k = array_keys($chars, $code[$i]); - $check += ($k[0] * $p); - ++$p; - if ($p > 15) { - $p = 1; - } - } - $check %= 47; - $k = $chars[$check]; - $checksum = $c.$k; - // resto respecial characters - $checksum = strtr($checksum, '<=>?', chr(128).chr(131).chr(129).chr(130)); - return $checksum; - } - - /** - * Checksum for standard 2 of 5 barcodes. - * @param $code (string) code to process. - * @return int checksum. - * @protected - */ - protected function checksum_s25($code) { - $len = strlen($code); - $sum = 0; - for ($i = 0; $i < $len; $i+=2) { - $sum += $code[$i]; - } - $sum *= 3; - for ($i = 1; $i < $len; $i+=2) { - $sum += ($code[$i]); - } - $r = $sum % 10; - if($r > 0) { - $r = (10 - $r); - } - return $r; - } - - /** - * MSI. - * Variation of Plessey code, with similar applications - * Contains digits (0 to 9) and encodes the data only in the width of bars. - * @param $code (string) code to represent. - * @param $checksum (boolean) if true add a checksum to the code (modulo 11) - * @return array barcode representation. - * @protected - */ - protected function barcode_msi($code, $checksum=false) { - $chr['0'] = '100100100100'; - $chr['1'] = '100100100110'; - $chr['2'] = '100100110100'; - $chr['3'] = '100100110110'; - $chr['4'] = '100110100100'; - $chr['5'] = '100110100110'; - $chr['6'] = '100110110100'; - $chr['7'] = '100110110110'; - $chr['8'] = '110100100100'; - $chr['9'] = '110100100110'; - $chr['A'] = '110100110100'; - $chr['B'] = '110100110110'; - $chr['C'] = '110110100100'; - $chr['D'] = '110110100110'; - $chr['E'] = '110110110100'; - $chr['F'] = '110110110110'; - if ($checksum) { - // add checksum - $clen = strlen($code); - $p = 2; - $check = 0; - for ($i = ($clen - 1); $i >= 0; --$i) { - $check += (hexdec($code[$i]) * $p); - ++$p; - if ($p > 7) { - $p = 2; - } - } - $check %= 11; - if ($check > 0) { - $check = 11 - $check; - } - $code .= $check; - } - $seq = '110'; // left guard - $clen = strlen($code); - for ($i = 0; $i < $clen; ++$i) { - $digit = $code[$i]; - if (!isset($chr[$digit])) { - // invalid character - return false; - } - $seq .= $chr[$digit]; - } - $seq .= '1001'; // right guard - $bararray = array('code' => $code, 'maxw' => 0, 'maxh' => 1, 'bcode' => array()); - return $this->binseq_to_array($seq, $bararray); - } - - /** - * Standard 2 of 5 barcodes. - * Used in airline ticket marking, photofinishing - * Contains digits (0 to 9) and encodes the data only in the width of bars. - * @param $code (string) code to represent. - * @param $checksum (boolean) if true add a checksum to the code - * @return array barcode representation. - * @protected - */ - protected function barcode_s25($code, $checksum=false) { - $chr['0'] = '10101110111010'; - $chr['1'] = '11101010101110'; - $chr['2'] = '10111010101110'; - $chr['3'] = '11101110101010'; - $chr['4'] = '10101110101110'; - $chr['5'] = '11101011101010'; - $chr['6'] = '10111011101010'; - $chr['7'] = '10101011101110'; - $chr['8'] = '10101110111010'; - $chr['9'] = '10111010111010'; - if ($checksum) { - // add checksum - $code .= $this->checksum_s25($code); - } - if((strlen($code) % 2) != 0) { - // add leading zero if code-length is odd - $code = '0'.$code; - } - $seq = '11011010'; - $clen = strlen($code); - for ($i = 0; $i < $clen; ++$i) { - $digit = $code[$i]; - if (!isset($chr[$digit])) { - // invalid character - return false; - } - $seq .= $chr[$digit]; - } - $seq .= '1101011'; - $bararray = array('code' => $code, 'maxw' => 0, 'maxh' => 1, 'bcode' => array()); - return $this->binseq_to_array($seq, $bararray); - } - - /** - * Convert binary barcode sequence to TCPDF barcode array. - * @param $seq (string) barcode as binary sequence. - * @param $bararray (array) barcode array. - * òparam array $bararray TCPDF barcode array to fill up - * @return array barcode representation. - * @protected - */ - protected function binseq_to_array($seq, $bararray) { - $len = strlen($seq); - $w = 0; - $k = 0; - for ($i = 0; $i < $len; ++$i) { - $w += 1; - if (($i == ($len - 1)) OR (($i < ($len - 1)) AND ($seq[$i] != $seq[($i+1)]))) { - if ($seq[$i] == '1') { - $t = true; // bar - } else { - $t = false; // space - } - $bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0); - $bararray['maxw'] += $w; - ++$k; - $w = 0; - } - } - return $bararray; - } - - /** - * Interleaved 2 of 5 barcodes. - * Compact numeric code, widely used in industry, air cargo - * Contains digits (0 to 9) and encodes the data in the width of both bars and spaces. - * @param $code (string) code to represent. - * @param $checksum (boolean) if true add a checksum to the code - * @return array barcode representation. - * @protected - */ - protected function barcode_i25($code, $checksum=false) { - $chr['0'] = '11221'; - $chr['1'] = '21112'; - $chr['2'] = '12112'; - $chr['3'] = '22111'; - $chr['4'] = '11212'; - $chr['5'] = '21211'; - $chr['6'] = '12211'; - $chr['7'] = '11122'; - $chr['8'] = '21121'; - $chr['9'] = '12121'; - $chr['A'] = '11'; - $chr['Z'] = '21'; - if ($checksum) { - // add checksum - $code .= $this->checksum_s25($code); - } - if((strlen($code) % 2) != 0) { - // add leading zero if code-length is odd - $code = '0'.$code; - } - // add start and stop codes - $code = 'AA'.strtolower($code).'ZA'; - - $bararray = array('code' => $code, 'maxw' => 0, 'maxh' => 1, 'bcode' => array()); - $k = 0; - $clen = strlen($code); - for ($i = 0; $i < $clen; $i = ($i + 2)) { - $char_bar = $code[$i]; - $char_space = $code[$i+1]; - if((!isset($chr[$char_bar])) OR (!isset($chr[$char_space]))) { - // invalid character - return false; - } - // create a bar-space sequence - $seq = ''; - $chrlen = strlen($chr[$char_bar]); - for ($s = 0; $s < $chrlen; $s++){ - $seq .= $chr[$char_bar][$s] . $chr[$char_space][$s]; - } - $seqlen = strlen($seq); - for ($j = 0; $j < $seqlen; ++$j) { - if (($j % 2) == 0) { - $t = true; // bar - } else { - $t = false; // space - } - $w = $seq[$j]; - $bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0); - $bararray['maxw'] += $w; - ++$k; - } - } - return $bararray; - } - - /** - * C128 barcodes. - * Very capable code, excellent density, high reliability; in very wide use world-wide - * @param $code (string) code to represent. - * @param $type (string) barcode type: A, B, C or empty for automatic switch (AUTO mode) - * @return array barcode representation. - * @protected - */ - protected function barcode_c128($code, $type='') { - $chr = array( - '212222', /* 00 */ - '222122', /* 01 */ - '222221', /* 02 */ - '121223', /* 03 */ - '121322', /* 04 */ - '131222', /* 05 */ - '122213', /* 06 */ - '122312', /* 07 */ - '132212', /* 08 */ - '221213', /* 09 */ - '221312', /* 10 */ - '231212', /* 11 */ - '112232', /* 12 */ - '122132', /* 13 */ - '122231', /* 14 */ - '113222', /* 15 */ - '123122', /* 16 */ - '123221', /* 17 */ - '223211', /* 18 */ - '221132', /* 19 */ - '221231', /* 20 */ - '213212', /* 21 */ - '223112', /* 22 */ - '312131', /* 23 */ - '311222', /* 24 */ - '321122', /* 25 */ - '321221', /* 26 */ - '312212', /* 27 */ - '322112', /* 28 */ - '322211', /* 29 */ - '212123', /* 30 */ - '212321', /* 31 */ - '232121', /* 32 */ - '111323', /* 33 */ - '131123', /* 34 */ - '131321', /* 35 */ - '112313', /* 36 */ - '132113', /* 37 */ - '132311', /* 38 */ - '211313', /* 39 */ - '231113', /* 40 */ - '231311', /* 41 */ - '112133', /* 42 */ - '112331', /* 43 */ - '132131', /* 44 */ - '113123', /* 45 */ - '113321', /* 46 */ - '133121', /* 47 */ - '313121', /* 48 */ - '211331', /* 49 */ - '231131', /* 50 */ - '213113', /* 51 */ - '213311', /* 52 */ - '213131', /* 53 */ - '311123', /* 54 */ - '311321', /* 55 */ - '331121', /* 56 */ - '312113', /* 57 */ - '312311', /* 58 */ - '332111', /* 59 */ - '314111', /* 60 */ - '221411', /* 61 */ - '431111', /* 62 */ - '111224', /* 63 */ - '111422', /* 64 */ - '121124', /* 65 */ - '121421', /* 66 */ - '141122', /* 67 */ - '141221', /* 68 */ - '112214', /* 69 */ - '112412', /* 70 */ - '122114', /* 71 */ - '122411', /* 72 */ - '142112', /* 73 */ - '142211', /* 74 */ - '241211', /* 75 */ - '221114', /* 76 */ - '413111', /* 77 */ - '241112', /* 78 */ - '134111', /* 79 */ - '111242', /* 80 */ - '121142', /* 81 */ - '121241', /* 82 */ - '114212', /* 83 */ - '124112', /* 84 */ - '124211', /* 85 */ - '411212', /* 86 */ - '421112', /* 87 */ - '421211', /* 88 */ - '212141', /* 89 */ - '214121', /* 90 */ - '412121', /* 91 */ - '111143', /* 92 */ - '111341', /* 93 */ - '131141', /* 94 */ - '114113', /* 95 */ - '114311', /* 96 */ - '411113', /* 97 */ - '411311', /* 98 */ - '113141', /* 99 */ - '114131', /* 100 */ - '311141', /* 101 */ - '411131', /* 102 */ - '211412', /* 103 START A */ - '211214', /* 104 START B */ - '211232', /* 105 START C */ - '233111', /* STOP */ - '200000' /* END */ - ); - // ASCII characters for code A (ASCII 00 - 95) - $keys_a = ' !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_'; - $keys_a .= chr(0).chr(1).chr(2).chr(3).chr(4).chr(5).chr(6).chr(7).chr(8).chr(9); - $keys_a .= chr(10).chr(11).chr(12).chr(13).chr(14).chr(15).chr(16).chr(17).chr(18).chr(19); - $keys_a .= chr(20).chr(21).chr(22).chr(23).chr(24).chr(25).chr(26).chr(27).chr(28).chr(29); - $keys_a .= chr(30).chr(31); - // ASCII characters for code B (ASCII 32 - 127) - $keys_b = ' !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~'.chr(127); - // special codes - $fnc_a = array(241 => 102, 242 => 97, 243 => 96, 244 => 101); - $fnc_b = array(241 => 102, 242 => 97, 243 => 96, 244 => 100); - // array of symbols - $code_data = array(); - // length of the code - $len = strlen($code); - switch(strtoupper($type)) { - case 'A': { // MODE A - $startid = 103; - for ($i = 0; $i < $len; ++$i) { - $char = $code[$i]; - $char_id = ord($char); - if (($char_id >= 241) AND ($char_id <= 244)) { - $code_data[] = $fnc_a[$char_id]; - } elseif (($char_id >= 0) AND ($char_id <= 95)) { - $code_data[] = strpos($keys_a, $char); - } else { - return false; - } - } - break; - } - case 'B': { // MODE B - $startid = 104; - for ($i = 0; $i < $len; ++$i) { - $char = $code[$i]; - $char_id = ord($char); - if (($char_id >= 241) AND ($char_id <= 244)) { - $code_data[] = $fnc_b[$char_id]; - } elseif (($char_id >= 32) AND ($char_id <= 127)) { - $code_data[] = strpos($keys_b, $char); - } else { - return false; - } - } - break; - } - case 'C': { // MODE C - $startid = 105; - if (ord($code[0]) == 241) { - $code_data[] = 102; - $code = substr($code, 1); - --$len; - } - if (($len % 2) != 0) { - // the length must be even - return false; - } - for ($i = 0; $i < $len; $i+=2) { - $chrnum = $code[$i].$code[$i+1]; - if (preg_match('/([0-9]{2})/', $chrnum) > 0) { - $code_data[] = intval($chrnum); - } else { - return false; - } - } - break; - } - default: { // MODE AUTO - // split code into sequences - $sequence = array(); - // get numeric sequences (if any) - $numseq = array(); - preg_match_all('/([0-9]{4,})/', $code, $numseq, PREG_OFFSET_CAPTURE); - if (isset($numseq[1]) AND !empty($numseq[1])) { - $end_offset = 0; - foreach ($numseq[1] as $val) { - $offset = $val[1]; - if ($offset > $end_offset) { - // non numeric sequence - $sequence = array_merge($sequence, $this->get128ABsequence(substr($code, $end_offset, ($offset - $end_offset)))); - } - // numeric sequence - $slen = strlen($val[0]); - if (($slen % 2) != 0) { - // the length must be even - --$slen; - } - $sequence[] = array('C', substr($code, $offset, $slen), $slen); - $end_offset = $offset + $slen; - } - if ($end_offset < $len) { - $sequence = array_merge($sequence, $this->get128ABsequence(substr($code, $end_offset))); - } - } else { - // text code (non C mode) - $sequence = array_merge($sequence, $this->get128ABsequence($code)); - } - // process the sequence - foreach ($sequence as $key => $seq) { - switch($seq[0]) { - case 'A': { - if ($key == 0) { - $startid = 103; - } elseif ($sequence[($key - 1)][0] != 'A') { - if (($seq[2] == 1) AND ($key > 0) AND ($sequence[($key - 1)][0] == 'B') AND (!isset($sequence[($key - 1)][3]))) { - // single character shift - $code_data[] = 98; - // mark shift - $sequence[$key][3] = true; - } elseif (!isset($sequence[($key - 1)][3])) { - $code_data[] = 101; - } - } - for ($i = 0; $i < $seq[2]; ++$i) { - $char = $seq[1][$i]; - $char_id = ord($char); - if (($char_id >= 241) AND ($char_id <= 244)) { - $code_data[] = $fnc_a[$char_id]; - } else { - $code_data[] = strpos($keys_a, $char); - } - } - break; - } - case 'B': { - if ($key == 0) { - $tmpchr = ord($seq[1][0]); - if (($seq[2] == 1) AND ($tmpchr >= 241) AND ($tmpchr <= 244) AND isset($sequence[($key + 1)]) AND ($sequence[($key + 1)][0] != 'B')) { - switch ($sequence[($key + 1)][0]) { - case 'A': { - $startid = 103; - $sequence[$key][0] = 'A'; - $code_data[] = $fnc_a[$tmpchr]; - break; - } - case 'C': { - $startid = 105; - $sequence[$key][0] = 'C'; - $code_data[] = $fnc_a[$tmpchr]; - break; - } - } - break; - } else { - $startid = 104; - } - } elseif ($sequence[($key - 1)][0] != 'B') { - if (($seq[2] == 1) AND ($key > 0) AND ($sequence[($key - 1)][0] == 'A') AND (!isset($sequence[($key - 1)][3]))) { - // single character shift - $code_data[] = 98; - // mark shift - $sequence[$key][3] = true; - } elseif (!isset($sequence[($key - 1)][3])) { - $code_data[] = 100; - } - } - for ($i = 0; $i < $seq[2]; ++$i) { - $char = $seq[1][$i]; - $char_id = ord($char); - if (($char_id >= 241) AND ($char_id <= 244)) { - $code_data[] = $fnc_b[$char_id]; - } else { - $code_data[] = strpos($keys_b, $char); - } - } - break; - } - case 'C': { - if ($key == 0) { - $startid = 105; - } elseif ($sequence[($key - 1)][0] != 'C') { - $code_data[] = 99; - } - for ($i = 0; $i < $seq[2]; $i+=2) { - $chrnum = $seq[1][$i].$seq[1][$i+1]; - $code_data[] = intval($chrnum); - } - break; - } - } - } - } - } - // calculate check character - $sum = $startid; - foreach ($code_data as $key => $val) { - $sum += ($val * ($key + 1)); - } - // add check character - $code_data[] = ($sum % 103); - // add stop sequence - $code_data[] = 106; - $code_data[] = 107; - // add start code at the beginning - array_unshift($code_data, $startid); - // build barcode array - $bararray = array('code' => $code, 'maxw' => 0, 'maxh' => 1, 'bcode' => array()); - foreach ($code_data as $val) { - $seq = $chr[$val]; - for ($j = 0; $j < 6; ++$j) { - if (($j % 2) == 0) { - $t = true; // bar - } else { - $t = false; // space - } - $w = $seq[$j]; - $bararray['bcode'][] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0); - $bararray['maxw'] += $w; - } - } - return $bararray; - } - - /** - * Split text code in A/B sequence for 128 code - * @param $code (string) code to split. - * @return array sequence - * @protected - */ - protected function get128ABsequence($code) { - $len = strlen($code); - $sequence = array(); - // get A sequences (if any) - $numseq = array(); - preg_match_all('/([\0-\31])/', $code, $numseq, PREG_OFFSET_CAPTURE); - if (isset($numseq[1]) AND !empty($numseq[1])) { - $end_offset = 0; - foreach ($numseq[1] as $val) { - $offset = $val[1]; - if ($offset > $end_offset) { - // B sequence - $sequence[] = array('B', substr($code, $end_offset, ($offset - $end_offset)), ($offset - $end_offset)); - } - // A sequence - $slen = strlen($val[0]); - $sequence[] = array('A', substr($code, $offset, $slen), $slen); - $end_offset = $offset + $slen; - } - if ($end_offset < $len) { - $sequence[] = array('B', substr($code, $end_offset), ($len - $end_offset)); - } - } else { - // only B sequence - $sequence[] = array('B', $code, $len); - } - return $sequence; - } - - /** - * EAN13 and UPC-A barcodes. - * EAN13: European Article Numbering international retail product code - * UPC-A: Universal product code seen on almost all retail products in the USA and Canada - * UPC-E: Short version of UPC symbol - * @param $code (string) code to represent. - * @param $len (string) barcode type: 6 = UPC-E, 8 = EAN8, 13 = EAN13, 12 = UPC-A - * @return array barcode representation. - * @protected - */ - protected function barcode_eanupc($code, $len=13) { - $upce = false; - if ($len == 6) { - $len = 12; // UPC-A - $upce = true; // UPC-E mode - } - $data_len = $len - 1; - //Padding - $code = str_pad($code, $data_len, '0', STR_PAD_LEFT); - $code_len = strlen($code); - // calculate check digit - $sum_a = 0; - for ($i = 1; $i < $data_len; $i+=2) { - $sum_a += $code[$i]; - } - if ($len > 12) { - $sum_a *= 3; - } - $sum_b = 0; - for ($i = 0; $i < $data_len; $i+=2) { - $sum_b += ($code[$i]); - } - if ($len < 13) { - $sum_b *= 3; - } - $r = ($sum_a + $sum_b) % 10; - if($r > 0) { - $r = (10 - $r); - } - if ($code_len == $data_len) { - // add check digit - $code .= $r; - } elseif ($r !== intval($code[$data_len])) { - // wrong checkdigit - return false; - } - if ($len == 12) { - // UPC-A - $code = '0'.$code; - ++$len; - } - if ($upce) { - // convert UPC-A to UPC-E - $tmp = substr($code, 4, 3); - if (($tmp == '000') OR ($tmp == '100') OR ($tmp == '200')) { - // manufacturer code ends in 000, 100, or 200 - $upce_code = substr($code, 2, 2).substr($code, 9, 3).substr($code, 4, 1); - } else { - $tmp = substr($code, 5, 2); - if ($tmp == '00') { - // manufacturer code ends in 00 - $upce_code = substr($code, 2, 3).substr($code, 10, 2).'3'; - } else { - $tmp = substr($code, 6, 1); - if ($tmp == '0') { - // manufacturer code ends in 0 - $upce_code = substr($code, 2, 4).substr($code, 11, 1).'4'; - } else { - // manufacturer code does not end in zero - $upce_code = substr($code, 2, 5).substr($code, 11, 1); - } - } - } - } - //Convert digits to bars - $codes = array( - 'A'=>array( // left odd parity - '0'=>'0001101', - '1'=>'0011001', - '2'=>'0010011', - '3'=>'0111101', - '4'=>'0100011', - '5'=>'0110001', - '6'=>'0101111', - '7'=>'0111011', - '8'=>'0110111', - '9'=>'0001011'), - 'B'=>array( // left even parity - '0'=>'0100111', - '1'=>'0110011', - '2'=>'0011011', - '3'=>'0100001', - '4'=>'0011101', - '5'=>'0111001', - '6'=>'0000101', - '7'=>'0010001', - '8'=>'0001001', - '9'=>'0010111'), - 'C'=>array( // right - '0'=>'1110010', - '1'=>'1100110', - '2'=>'1101100', - '3'=>'1000010', - '4'=>'1011100', - '5'=>'1001110', - '6'=>'1010000', - '7'=>'1000100', - '8'=>'1001000', - '9'=>'1110100') - ); - $parities = array( - '0'=>array('A','A','A','A','A','A'), - '1'=>array('A','A','B','A','B','B'), - '2'=>array('A','A','B','B','A','B'), - '3'=>array('A','A','B','B','B','A'), - '4'=>array('A','B','A','A','B','B'), - '5'=>array('A','B','B','A','A','B'), - '6'=>array('A','B','B','B','A','A'), - '7'=>array('A','B','A','B','A','B'), - '8'=>array('A','B','A','B','B','A'), - '9'=>array('A','B','B','A','B','A') - ); - $upce_parities = array(); - $upce_parities[0] = array( - '0'=>array('B','B','B','A','A','A'), - '1'=>array('B','B','A','B','A','A'), - '2'=>array('B','B','A','A','B','A'), - '3'=>array('B','B','A','A','A','B'), - '4'=>array('B','A','B','B','A','A'), - '5'=>array('B','A','A','B','B','A'), - '6'=>array('B','A','A','A','B','B'), - '7'=>array('B','A','B','A','B','A'), - '8'=>array('B','A','B','A','A','B'), - '9'=>array('B','A','A','B','A','B') - ); - $upce_parities[1] = array( - '0'=>array('A','A','A','B','B','B'), - '1'=>array('A','A','B','A','B','B'), - '2'=>array('A','A','B','B','A','B'), - '3'=>array('A','A','B','B','B','A'), - '4'=>array('A','B','A','A','B','B'), - '5'=>array('A','B','B','A','A','B'), - '6'=>array('A','B','B','B','A','A'), - '7'=>array('A','B','A','B','A','B'), - '8'=>array('A','B','A','B','B','A'), - '9'=>array('A','B','B','A','B','A') - ); - $k = 0; - $seq = '101'; // left guard bar - if ($upce) { - $bararray = array('code' => $upce_code, 'maxw' => 0, 'maxh' => 1, 'bcode' => array()); - $p = $upce_parities[$code[1]][$r]; - for ($i = 0; $i < 6; ++$i) { - $seq .= $codes[$p[$i]][$upce_code[$i]]; - } - $seq .= '010101'; // right guard bar - } else { - $bararray = array('code' => $code, 'maxw' => 0, 'maxh' => 1, 'bcode' => array()); - $half_len = intval(ceil($len / 2)); - if ($len == 8) { - for ($i = 0; $i < $half_len; ++$i) { - $seq .= $codes['A'][$code[$i]]; - } - } else { - $p = $parities[$code[0]]; - for ($i = 1; $i < $half_len; ++$i) { - $seq .= $codes[$p[$i-1]][$code[$i]]; - } - } - $seq .= '01010'; // center guard bar - for ($i = $half_len; $i < $len; ++$i) { - $seq .= $codes['C'][$code[$i]]; - } - $seq .= '101'; // right guard bar - } - $clen = strlen($seq); - $w = 0; - for ($i = 0; $i < $clen; ++$i) { - $w += 1; - if (($i == ($clen - 1)) OR (($i < ($clen - 1)) AND ($seq[$i] != $seq[$i+1]))) { - if ($seq[$i] == '1') { - $t = true; // bar - } else { - $t = false; // space - } - $bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0); - $bararray['maxw'] += $w; - ++$k; - $w = 0; - } - } - return $bararray; - } - - /** - * UPC-Based Extensions - * 2-Digit Ext.: Used to indicate magazines and newspaper issue numbers - * 5-Digit Ext.: Used to mark suggested retail price of books - * @param $code (string) code to represent. - * @param $len (string) barcode type: 2 = 2-Digit, 5 = 5-Digit - * @return array barcode representation. - * @protected - */ - protected function barcode_eanext($code, $len=5) { - //Padding - $code = str_pad($code, $len, '0', STR_PAD_LEFT); - // calculate check digit - if ($len == 2) { - $r = $code % 4; - } elseif ($len == 5) { - $r = (3 * ($code[0] + $code[2] + $code[4])) + (9 * ($code[1] + $code[3])); - $r %= 10; - } else { - return false; - } - //Convert digits to bars - $codes = array( - 'A'=>array( // left odd parity - '0'=>'0001101', - '1'=>'0011001', - '2'=>'0010011', - '3'=>'0111101', - '4'=>'0100011', - '5'=>'0110001', - '6'=>'0101111', - '7'=>'0111011', - '8'=>'0110111', - '9'=>'0001011'), - 'B'=>array( // left even parity - '0'=>'0100111', - '1'=>'0110011', - '2'=>'0011011', - '3'=>'0100001', - '4'=>'0011101', - '5'=>'0111001', - '6'=>'0000101', - '7'=>'0010001', - '8'=>'0001001', - '9'=>'0010111') - ); - $parities = array(); - $parities[2] = array( - '0'=>array('A','A'), - '1'=>array('A','B'), - '2'=>array('B','A'), - '3'=>array('B','B') - ); - $parities[5] = array( - '0'=>array('B','B','A','A','A'), - '1'=>array('B','A','B','A','A'), - '2'=>array('B','A','A','B','A'), - '3'=>array('B','A','A','A','B'), - '4'=>array('A','B','B','A','A'), - '5'=>array('A','A','B','B','A'), - '6'=>array('A','A','A','B','B'), - '7'=>array('A','B','A','B','A'), - '8'=>array('A','B','A','A','B'), - '9'=>array('A','A','B','A','B') - ); - $p = $parities[$len][$r]; - $seq = '1011'; // left guard bar - $seq .= $codes[$p[0]][$code[0]]; - for ($i = 1; $i < $len; ++$i) { - $seq .= '01'; // separator - $seq .= $codes[$p[$i]][$code[$i]]; - } - $bararray = array('code' => $code, 'maxw' => 0, 'maxh' => 1, 'bcode' => array()); - return $this->binseq_to_array($seq, $bararray); - } - - /** - * POSTNET and PLANET barcodes. - * Used by U.S. Postal Service for automated mail sorting - * @param $code (string) zip code to represent. Must be a string containing a zip code of the form DDDDD or DDDDD-DDDD. - * @param $planet (boolean) if true print the PLANET barcode, otherwise print POSTNET - * @return array barcode representation. - * @protected - */ - protected function barcode_postnet($code, $planet=false) { - // bar length - if ($planet) { - $barlen = Array( - 0 => Array(1,1,2,2,2), - 1 => Array(2,2,2,1,1), - 2 => Array(2,2,1,2,1), - 3 => Array(2,2,1,1,2), - 4 => Array(2,1,2,2,1), - 5 => Array(2,1,2,1,2), - 6 => Array(2,1,1,2,2), - 7 => Array(1,2,2,2,1), - 8 => Array(1,2,2,1,2), - 9 => Array(1,2,1,2,2) - ); - } else { - $barlen = Array( - 0 => Array(2,2,1,1,1), - 1 => Array(1,1,1,2,2), - 2 => Array(1,1,2,1,2), - 3 => Array(1,1,2,2,1), - 4 => Array(1,2,1,1,2), - 5 => Array(1,2,1,2,1), - 6 => Array(1,2,2,1,1), - 7 => Array(2,1,1,1,2), - 8 => Array(2,1,1,2,1), - 9 => Array(2,1,2,1,1) - ); - } - $bararray = array('code' => $code, 'maxw' => 0, 'maxh' => 2, 'bcode' => array()); - $k = 0; - $code = str_replace('-', '', $code); - $code = str_replace(' ', '', $code); - $len = strlen($code); - // calculate checksum - $sum = 0; - for ($i = 0; $i < $len; ++$i) { - $sum += intval($code[$i]); - } - $chkd = ($sum % 10); - if($chkd > 0) { - $chkd = (10 - $chkd); - } - $code .= $chkd; - $len = strlen($code); - // start bar - $bararray['bcode'][$k++] = array('t' => 1, 'w' => 1, 'h' => 2, 'p' => 0); - $bararray['bcode'][$k++] = array('t' => 0, 'w' => 1, 'h' => 2, 'p' => 0); - $bararray['maxw'] += 2; - for ($i = 0; $i < $len; ++$i) { - for ($j = 0; $j < 5; ++$j) { - $h = $barlen[$code[$i]][$j]; - $p = floor(1 / $h); - $bararray['bcode'][$k++] = array('t' => 1, 'w' => 1, 'h' => $h, 'p' => $p); - $bararray['bcode'][$k++] = array('t' => 0, 'w' => 1, 'h' => 2, 'p' => 0); - $bararray['maxw'] += 2; - } - } - // end bar - $bararray['bcode'][$k++] = array('t' => 1, 'w' => 1, 'h' => 2, 'p' => 0); - $bararray['maxw'] += 1; - return $bararray; - } - - /** - * RMS4CC - CBC - KIX - * RMS4CC (Royal Mail 4-state Customer Code) - CBC (Customer Bar Code) - KIX (Klant index - Customer index) - * RM4SCC is the name of the barcode symbology used by the Royal Mail for its Cleanmail service. - * @param $code (string) code to print - * @param $kix (boolean) if true prints the KIX variation (doesn't use the start and end symbols, and the checksum) - in this case the house number must be sufficed with an X and placed at the end of the code. - * @return array barcode representation. - * @protected - */ - protected function barcode_rms4cc($code, $kix=false) { - $notkix = !$kix; - // bar mode - // 1 = pos 1, length 2 - // 2 = pos 1, length 3 - // 3 = pos 2, length 1 - // 4 = pos 2, length 2 - $barmode = array( - '0' => array(3,3,2,2), - '1' => array(3,4,1,2), - '2' => array(3,4,2,1), - '3' => array(4,3,1,2), - '4' => array(4,3,2,1), - '5' => array(4,4,1,1), - '6' => array(3,1,4,2), - '7' => array(3,2,3,2), - '8' => array(3,2,4,1), - '9' => array(4,1,3,2), - 'A' => array(4,1,4,1), - 'B' => array(4,2,3,1), - 'C' => array(3,1,2,4), - 'D' => array(3,2,1,4), - 'E' => array(3,2,2,3), - 'F' => array(4,1,1,4), - 'G' => array(4,1,2,3), - 'H' => array(4,2,1,3), - 'I' => array(1,3,4,2), - 'J' => array(1,4,3,2), - 'K' => array(1,4,4,1), - 'L' => array(2,3,3,2), - 'M' => array(2,3,4,1), - 'N' => array(2,4,3,1), - 'O' => array(1,3,2,4), - 'P' => array(1,4,1,4), - 'Q' => array(1,4,2,3), - 'R' => array(2,3,1,4), - 'S' => array(2,3,2,3), - 'T' => array(2,4,1,3), - 'U' => array(1,1,4,4), - 'V' => array(1,2,3,4), - 'W' => array(1,2,4,3), - 'X' => array(2,1,3,4), - 'Y' => array(2,1,4,3), - 'Z' => array(2,2,3,3) - ); - $code = strtoupper($code); - $len = strlen($code); - $bararray = array('code' => $code, 'maxw' => 0, 'maxh' => 3, 'bcode' => array()); - if ($notkix) { - // table for checksum calculation (row,col) - $checktable = array( - '0' => array(1,1), - '1' => array(1,2), - '2' => array(1,3), - '3' => array(1,4), - '4' => array(1,5), - '5' => array(1,0), - '6' => array(2,1), - '7' => array(2,2), - '8' => array(2,3), - '9' => array(2,4), - 'A' => array(2,5), - 'B' => array(2,0), - 'C' => array(3,1), - 'D' => array(3,2), - 'E' => array(3,3), - 'F' => array(3,4), - 'G' => array(3,5), - 'H' => array(3,0), - 'I' => array(4,1), - 'J' => array(4,2), - 'K' => array(4,3), - 'L' => array(4,4), - 'M' => array(4,5), - 'N' => array(4,0), - 'O' => array(5,1), - 'P' => array(5,2), - 'Q' => array(5,3), - 'R' => array(5,4), - 'S' => array(5,5), - 'T' => array(5,0), - 'U' => array(0,1), - 'V' => array(0,2), - 'W' => array(0,3), - 'X' => array(0,4), - 'Y' => array(0,5), - 'Z' => array(0,0) - ); - $row = 0; - $col = 0; - for ($i = 0; $i < $len; ++$i) { - $row += $checktable[$code[$i]][0]; - $col += $checktable[$code[$i]][1]; - } - $row %= 6; - $col %= 6; - $chk = array_keys($checktable, array($row,$col)); - $code .= $chk[0]; - ++$len; - } - $k = 0; - if ($notkix) { - // start bar - $bararray['bcode'][$k++] = array('t' => 1, 'w' => 1, 'h' => 2, 'p' => 0); - $bararray['bcode'][$k++] = array('t' => 0, 'w' => 1, 'h' => 2, 'p' => 0); - $bararray['maxw'] += 2; - } - for ($i = 0; $i < $len; ++$i) { - for ($j = 0; $j < 4; ++$j) { - switch ($barmode[$code[$i]][$j]) { - case 1: { - $p = 0; - $h = 2; - break; - } - case 2: { - $p = 0; - $h = 3; - break; - } - case 3: { - $p = 1; - $h = 1; - break; - } - case 4: { - $p = 1; - $h = 2; - break; - } - } - $bararray['bcode'][$k++] = array('t' => 1, 'w' => 1, 'h' => $h, 'p' => $p); - $bararray['bcode'][$k++] = array('t' => 0, 'w' => 1, 'h' => 2, 'p' => 0); - $bararray['maxw'] += 2; - } - } - if ($notkix) { - // stop bar - $bararray['bcode'][$k++] = array('t' => 1, 'w' => 1, 'h' => 3, 'p' => 0); - $bararray['maxw'] += 1; - } - return $bararray; - } - - /** - * CODABAR barcodes. - * Older code often used in library systems, sometimes in blood banks - * @param $code (string) code to represent. - * @return array barcode representation. - * @protected - */ - protected function barcode_codabar($code) { - $chr = array( - '0' => '11111221', - '1' => '11112211', - '2' => '11121121', - '3' => '22111111', - '4' => '11211211', - '5' => '21111211', - '6' => '12111121', - '7' => '12112111', - '8' => '12211111', - '9' => '21121111', - '-' => '11122111', - '$' => '11221111', - ':' => '21112121', - '/' => '21211121', - '.' => '21212111', - '+' => '11222221', - 'A' => '11221211', - 'B' => '12121121', - 'C' => '11121221', - 'D' => '11122211' - ); - $bararray = array('code' => $code, 'maxw' => 0, 'maxh' => 1, 'bcode' => array()); - $k = 0; - $w = 0; - $seq = ''; - $code = 'A'.strtoupper($code).'A'; - $len = strlen($code); - for ($i = 0; $i < $len; ++$i) { - if (!isset($chr[$code[$i]])) { - return false; - } - $seq = $chr[$code[$i]]; - for ($j = 0; $j < 8; ++$j) { - if (($j % 2) == 0) { - $t = true; // bar - } else { - $t = false; // space - } - $w = $seq[$j]; - $bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0); - $bararray['maxw'] += $w; - ++$k; - } - } - return $bararray; - } - - /** - * CODE11 barcodes. - * Used primarily for labeling telecommunications equipment - * @param $code (string) code to represent. - * @return array barcode representation. - * @protected - */ - protected function barcode_code11($code) { - $chr = array( - '0' => '111121', - '1' => '211121', - '2' => '121121', - '3' => '221111', - '4' => '112121', - '5' => '212111', - '6' => '122111', - '7' => '111221', - '8' => '211211', - '9' => '211111', - '-' => '112111', - 'S' => '112211' - ); - $bararray = array('code' => $code, 'maxw' => 0, 'maxh' => 1, 'bcode' => array()); - $k = 0; - $w = 0; - $seq = ''; - $len = strlen($code); - // calculate check digit C - $p = 1; - $check = 0; - for ($i = ($len - 1); $i >= 0; --$i) { - $digit = $code[$i]; - if ($digit == '-') { - $dval = 10; - } else { - $dval = intval($digit); - } - $check += ($dval * $p); - ++$p; - if ($p > 10) { - $p = 1; - } - } - $check %= 11; - if ($check == 10) { - $check = '-'; - } - $code .= $check; - if ($len > 10) { - // calculate check digit K - $p = 1; - $check = 0; - for ($i = $len; $i >= 0; --$i) { - $digit = $code[$i]; - if ($digit == '-') { - $dval = 10; - } else { - $dval = intval($digit); - } - $check += ($dval * $p); - ++$p; - if ($p > 9) { - $p = 1; - } - } - $check %= 11; - $code .= $check; - ++$len; - } - $code = 'S'.$code.'S'; - $len += 3; - for ($i = 0; $i < $len; ++$i) { - if (!isset($chr[$code[$i]])) { - return false; - } - $seq = $chr[$code[$i]]; - for ($j = 0; $j < 6; ++$j) { - if (($j % 2) == 0) { - $t = true; // bar - } else { - $t = false; // space - } - $w = $seq[$j]; - $bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0); - $bararray['maxw'] += $w; - ++$k; - } - } - return $bararray; - } - - /** - * Pharmacode - * Contains digits (0 to 9) - * @param $code (string) code to represent. - * @return array barcode representation. - * @protected - */ - protected function barcode_pharmacode($code) { - $seq = ''; - $code = intval($code); - while ($code > 0) { - if (($code % 2) == 0) { - $seq .= '11100'; - $code -= 2; - } else { - $seq .= '100'; - $code -= 1; - } - $code /= 2; - } - $seq = substr($seq, 0, -2); - $seq = strrev($seq); - $bararray = array('code' => $code, 'maxw' => 0, 'maxh' => 1, 'bcode' => array()); - return $this->binseq_to_array($seq, $bararray); - } - - /** - * Pharmacode two-track - * Contains digits (0 to 9) - * @param $code (string) code to represent. - * @return array barcode representation. - * @protected - */ - protected function barcode_pharmacode2t($code) { - $seq = ''; - $code = intval($code); - do { - switch ($code % 3) { - case 0: { - $seq .= '3'; - $code = ($code - 3) / 3; - break; - } - case 1: { - $seq .= '1'; - $code = ($code - 1) / 3; - break; - } - case 2: { - $seq .= '2'; - $code = ($code - 2) / 3; - break; - } - } - } while($code != 0); - $seq = strrev($seq); - $k = 0; - $bararray = array('code' => $code, 'maxw' => 0, 'maxh' => 2, 'bcode' => array()); - $len = strlen($seq); - for ($i = 0; $i < $len; ++$i) { - switch ($seq[$i]) { - case '1': { - $p = 1; - $h = 1; - break; - } - case '2': { - $p = 0; - $h = 1; - break; - } - case '3': { - $p = 0; - $h = 2; - break; - } - } - $bararray['bcode'][$k++] = array('t' => 1, 'w' => 1, 'h' => $h, 'p' => $p); - $bararray['bcode'][$k++] = array('t' => 0, 'w' => 1, 'h' => 2, 'p' => 0); - $bararray['maxw'] += 2; - } - unset($bararray['bcode'][($k - 1)]); - --$bararray['maxw']; - return $bararray; - } - - /** - * IMB - Intelligent Mail Barcode - Onecode - USPS-B-3200 - * (requires PHP bcmath extension) - * Intelligent Mail barcode is a 65-bar code for use on mail in the United States. - * The fields are described as follows:
    • The Barcode Identifier shall be assigned by USPS to encode the presort identification that is currently printed in human readable form on the optional endorsement line (OEL) as well as for future USPS use. This shall be two digits, with the second digit in the range of 0–4. The allowable encoding ranges shall be 00–04, 10–14, 20–24, 30–34, 40–44, 50–54, 60–64, 70–74, 80–84, and 90–94.
    • The Service Type Identifier shall be assigned by USPS for any combination of services requested on the mailpiece. The allowable encoding range shall be 000http://it2.php.net/manual/en/function.dechex.php–999. Each 3-digit value shall correspond to a particular mail class with a particular combination of service(s). Each service program, such as OneCode Confirm and OneCode ACS, shall provide the list of Service Type Identifier values.
    • The Mailer or Customer Identifier shall be assigned by USPS as a unique, 6 or 9 digit number that identifies a business entity. The allowable encoding range for the 6 digit Mailer ID shall be 000000- 899999, while the allowable encoding range for the 9 digit Mailer ID shall be 900000000-999999999.
    • The Serial or Sequence Number shall be assigned by the mailer for uniquely identifying and tracking mailpieces. The allowable encoding range shall be 000000000–999999999 when used with a 6 digit Mailer ID and 000000-999999 when used with a 9 digit Mailer ID. e. The Delivery Point ZIP Code shall be assigned by the mailer for routing the mailpiece. This shall replace POSTNET for routing the mailpiece to its final delivery point. The length may be 0, 5, 9, or 11 digits. The allowable encoding ranges shall be no ZIP Code, 00000–99999, 000000000–999999999, and 00000000000–99999999999.
    - * @param $code (string) code to print, separate the ZIP (routing code) from the rest using a minus char '-' (BarcodeID_ServiceTypeID_MailerID_SerialNumber-RoutingCode) - * @return array barcode representation. - * @protected - */ - protected function barcode_imb($code) { - $asc_chr = array(4,0,2,6,3,5,1,9,8,7,1,2,0,6,4,8,2,9,5,3,0,1,3,7,4,6,8,9,2,0,5,1,9,4,3,8,6,7,1,2,4,3,9,5,7,8,3,0,2,1,4,0,9,1,7,0,2,4,6,3,7,1,9,5,8); - $dsc_chr = array(7,1,9,5,8,0,2,4,6,3,5,8,9,7,3,0,6,1,7,4,6,8,9,2,5,1,7,5,4,3,8,7,6,0,2,5,4,9,3,0,1,6,8,2,0,4,5,9,6,7,5,2,6,3,8,5,1,9,8,7,4,0,2,6,3); - $asc_pos = array(3,0,8,11,1,12,8,11,10,6,4,12,2,7,9,6,7,9,2,8,4,0,12,7,10,9,0,7,10,5,7,9,6,8,2,12,1,4,2,0,1,5,4,6,12,1,0,9,4,7,5,10,2,6,9,11,2,12,6,7,5,11,0,3,2); - $dsc_pos = array(2,10,12,5,9,1,5,4,3,9,11,5,10,1,6,3,4,1,10,0,2,11,8,6,1,12,3,8,6,4,4,11,0,6,1,9,11,5,3,7,3,10,7,11,8,2,10,3,5,8,0,3,12,11,8,4,5,1,3,0,7,12,9,8,10); - $code_arr = explode('-', $code); - $tracking_number = $code_arr[0]; - if (isset($code_arr[1])) { - $routing_code = $code_arr[1]; - } else { - $routing_code = ''; - } - // Conversion of Routing Code - switch (strlen($routing_code)) { - case 0: { - $binary_code = 0; - break; - } - case 5: { - $binary_code = bcadd($routing_code, '1'); - break; - } - case 9: { - $binary_code = bcadd($routing_code, '100001'); - break; - } - case 11: { - $binary_code = bcadd($routing_code, '1000100001'); - break; - } - default: { - return false; - break; - } - } - $binary_code = bcmul($binary_code, 10); - $binary_code = bcadd($binary_code, $tracking_number[0]); - $binary_code = bcmul($binary_code, 5); - $binary_code = bcadd($binary_code, $tracking_number[1]); - $binary_code .= substr($tracking_number, 2, 18); - // convert to hexadecimal - $binary_code = $this->dec_to_hex($binary_code); - // pad to get 13 bytes - $binary_code = str_pad($binary_code, 26, '0', STR_PAD_LEFT); - // convert string to array of bytes - $binary_code_arr = chunk_split($binary_code, 2, "\r"); - $binary_code_arr = substr($binary_code_arr, 0, -1); - $binary_code_arr = explode("\r", $binary_code_arr); - // calculate frame check sequence - $fcs = $this->imb_crc11fcs($binary_code_arr); - // exclude first 2 bits from first byte - $first_byte = sprintf('%2s', dechex((hexdec($binary_code_arr[0]) << 2) >> 2)); - $binary_code_102bit = $first_byte.substr($binary_code, 2); - // convert binary data to codewords - $codewords = array(); - $data = $this->hex_to_dec($binary_code_102bit); - $codewords[0] = bcmod($data, 636) * 2; - $data = bcdiv($data, 636); - for ($i = 1; $i < 9; ++$i) { - $codewords[$i] = bcmod($data, 1365); - $data = bcdiv($data, 1365); - } - $codewords[9] = $data; - if (($fcs >> 10) == 1) { - $codewords[9] += 659; - } - // generate lookup tables - $table2of13 = $this->imb_tables(2, 78); - $table5of13 = $this->imb_tables(5, 1287); - // convert codewords to characters - $characters = array(); - $bitmask = 512; - foreach($codewords as $k => $val) { - if ($val <= 1286) { - $chrcode = $table5of13[$val]; - } else { - $chrcode = $table2of13[($val - 1287)]; - } - if (($fcs & $bitmask) > 0) { - // bitwise invert - $chrcode = ((~$chrcode) & 8191); - } - $characters[] = $chrcode; - $bitmask /= 2; - } - $characters = array_reverse($characters); - // build bars - $k = 0; - $bararray = array('code' => $code, 'maxw' => 0, 'maxh' => 3, 'bcode' => array()); - for ($i = 0; $i < 65; ++$i) { - $asc = (($characters[$asc_chr[$i]] & pow(2, $asc_pos[$i])) > 0); - $dsc = (($characters[$dsc_chr[$i]] & pow(2, $dsc_pos[$i])) > 0); - if ($asc AND $dsc) { - // full bar (F) - $p = 0; - $h = 3; - } elseif ($asc) { - // ascender (A) - $p = 0; - $h = 2; - } elseif ($dsc) { - // descender (D) - $p = 1; - $h = 2; - } else { - // tracker (T) - $p = 1; - $h = 1; - } - $bararray['bcode'][$k++] = array('t' => 1, 'w' => 1, 'h' => $h, 'p' => $p); - $bararray['bcode'][$k++] = array('t' => 0, 'w' => 1, 'h' => 2, 'p' => 0); - $bararray['maxw'] += 2; - } - unset($bararray['bcode'][($k - 1)]); - --$bararray['maxw']; - return $bararray; - } - - /** - * IMB - Intelligent Mail Barcode - Onecode - USPS-B-3200 - * - * @param $code (string) pre-formatted IMB barcode (65 chars "FADT") - * @return array barcode representation. - * @protected - */ - protected function barcode_imb_pre($code) { - if (!preg_match('/^[fadtFADT]{65}$/', $code) == 1) { - return false; - } - $characters = str_split(strtolower($code), 1); - // build bars - $k = 0; - $bararray = array('code' => $code, 'maxw' => 0, 'maxh' => 3, 'bcode' => array()); - for ($i = 0; $i < 65; ++$i) { - switch($characters[$i]) { - case 'f': { - // full bar - $p = 0; - $h = 3; - break; - } - case 'a': { - // ascender - $p = 0; - $h = 2; - break; - } - case 'd': { - // descender - $p = 1; - $h = 2; - break; - } - case 't': { - // tracker (short) - $p = 1; - $h = 1; - break; - } - } - $bararray['bcode'][$k++] = array('t' => 1, 'w' => 1, 'h' => $h, 'p' => $p); - $bararray['bcode'][$k++] = array('t' => 0, 'w' => 1, 'h' => 2, 'p' => 0); - $bararray['maxw'] += 2; - } - unset($bararray['bcode'][($k - 1)]); - --$bararray['maxw']; - return $bararray; - } - - /** - * Convert large integer number to hexadecimal representation. - * (requires PHP bcmath extension) - * @param $number (string) number to convert specified as a string - * @return string hexadecimal representation - */ - public function dec_to_hex($number) { - $i = 0; - $hex = array(); - if($number == 0) { - return '00'; - } - while($number > 0) { - if($number == 0) { - array_push($hex, '0'); - } else { - array_push($hex, strtoupper(dechex(bcmod($number, '16')))); - $number = bcdiv($number, '16', 0); - } - } - $hex = array_reverse($hex); - return implode($hex); - } - - /** - * Convert large hexadecimal number to decimal representation (string). - * (requires PHP bcmath extension) - * @param $hex (string) hexadecimal number to convert specified as a string - * @return string hexadecimal representation - */ - public function hex_to_dec($hex) { - $dec = 0; - $bitval = 1; - $len = strlen($hex); - for($pos = ($len - 1); $pos >= 0; --$pos) { - $dec = bcadd($dec, bcmul(hexdec($hex[$pos]), $bitval)); - $bitval = bcmul($bitval, 16); - } - return $dec; - } - - /** - * Intelligent Mail Barcode calculation of Frame Check Sequence - * @param $code_arr (string) array of hexadecimal values (13 bytes holding 102 bits right justified). - * @return int 11 bit Frame Check Sequence as integer (decimal base) - * @protected - */ - protected function imb_crc11fcs($code_arr) { - $genpoly = 0x0F35; // generator polynomial - $fcs = 0x07FF; // Frame Check Sequence - // do most significant byte skipping the 2 most significant bits - $data = hexdec($code_arr[0]) << 5; - for ($bit = 2; $bit < 8; ++$bit) { - if (($fcs ^ $data) & 0x400) { - $fcs = ($fcs << 1) ^ $genpoly; - } else { - $fcs = ($fcs << 1); - } - $fcs &= 0x7FF; - $data <<= 1; - } - // do rest of bytes - for ($byte = 1; $byte < 13; ++$byte) { - $data = hexdec($code_arr[$byte]) << 3; - for ($bit = 0; $bit < 8; ++$bit) { - if (($fcs ^ $data) & 0x400) { - $fcs = ($fcs << 1) ^ $genpoly; - } else { - $fcs = ($fcs << 1); - } - $fcs &= 0x7FF; - $data <<= 1; - } - } - return $fcs; - } - - /** - * Reverse unsigned short value - * @param $num (int) value to reversr - * @return int reversed value - * @protected - */ - protected function imb_reverse_us($num) { - $rev = 0; - for ($i = 0; $i < 16; ++$i) { - $rev <<= 1; - $rev |= ($num & 1); - $num >>= 1; - } - return $rev; - } - - /** - * generate Nof13 tables used for Intelligent Mail Barcode - * @param $n (int) is the type of table: 2 for 2of13 table, 5 for 5of13table - * @param $size (int) size of table (78 for n=2 and 1287 for n=5) - * @return array requested table - * @protected - */ - protected function imb_tables($n, $size) { - $table = array(); - $lli = 0; // LUT lower index - $lui = $size - 1; // LUT upper index - for ($count = 0; $count < 8192; ++$count) { - $bit_count = 0; - for ($bit_index = 0; $bit_index < 13; ++$bit_index) { - $bit_count += intval(($count & (1 << $bit_index)) != 0); - } - // if we don't have the right number of bits on, go on to the next value - if ($bit_count == $n) { - $reverse = ($this->imb_reverse_us($count) >> 3); - // if the reverse is less than count, we have already visited this pair before - if ($reverse >= $count) { - // If count is symmetric, place it at the first free slot from the end of the list. - // Otherwise, place it at the first free slot from the beginning of the list AND place $reverse ath the next free slot from the beginning of the list - if ($reverse == $count) { - $table[$lui] = $count; - --$lui; - } else { - $table[$lli] = $count; - ++$lli; - $table[$lli] = $reverse; - ++$lli; - } - } - } - } - return $table; - } - -} // end of class -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/tcpdf_barcodes_2d.php b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/tcpdf_barcodes_2d.php deleted file mode 100644 index 13e2365..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/tcpdf_barcodes_2d.php +++ /dev/null @@ -1,349 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : PHP class to creates array representations for -// 2D barcodes to be used with TCPDF. -// -//============================================================+ - -/** - * @file - * PHP class to creates array representations for 2D barcodes to be used with TCPDF. - * @package com.tecnick.tcpdf - * @author Nicola Asuni - * @version 1.0.015 - */ - -/** - * @class TCPDF2DBarcode - * PHP class to creates array representations for 2D barcodes to be used with TCPDF (http://www.tcpdf.org). - * @package com.tecnick.tcpdf - * @version 1.0.015 - * @author Nicola Asuni - */ -class TCPDF2DBarcode { - - /** - * Array representation of barcode. - * @protected - */ - protected $barcode_array = false; - - /** - * This is the class constructor. - * Return an array representations for 2D barcodes:
      - *
    • $arrcode['code'] code to be printed on text label
    • - *
    • $arrcode['num_rows'] required number of rows
    • - *
    • $arrcode['num_cols'] required number of columns
    • - *
    • $arrcode['bcode'][$r][$c] value of the cell is $r row and $c column (0 = transparent, 1 = black)
    - * @param $code (string) code to print - * @param $type (string) type of barcode:
    • DATAMATRIX : Datamatrix (ISO/IEC 16022)
    • PDF417 : PDF417 (ISO/IEC 15438:2006)
    • PDF417,a,e,t,s,f,o0,o1,o2,o3,o4,o5,o6 : PDF417 with parameters: a = aspect ratio (width/height); e = error correction level (0-8); t = total number of macro segments; s = macro segment index (0-99998); f = file ID; o0 = File Name (text); o1 = Segment Count (numeric); o2 = Time Stamp (numeric); o3 = Sender (text); o4 = Addressee (text); o5 = File Size (numeric); o6 = Checksum (numeric). NOTES: Parameters t, s and f are required for a Macro Control Block, all other parametrs are optional. To use a comma character ',' on text options, replace it with the character 255: "\xff".
    • QRCODE : QRcode Low error correction
    • QRCODE,L : QRcode Low error correction
    • QRCODE,M : QRcode Medium error correction
    • QRCODE,Q : QRcode Better error correction
    • QRCODE,H : QR-CODE Best error correction
    • RAW: raw mode - comma-separad list of array rows
    • RAW2: raw mode - array rows are surrounded by square parenthesis.
    • TEST : Test matrix
    - */ - public function __construct($code, $type) { - $this->setBarcode($code, $type); - } - - /** - * Return an array representations of barcode. - * @return array - */ - public function getBarcodeArray() { - return $this->barcode_array; - } - - /** - * Send barcode as SVG image object to the standard output. - * @param $w (int) Width of a single rectangle element in user units. - * @param $h (int) Height of a single rectangle element in user units. - * @param $color (string) Foreground color (in SVG format) for bar elements (background is transparent). - * @public - */ - public function getBarcodeSVG($w=3, $h=3, $color='black') { - // send headers - $code = $this->getBarcodeSVGcode($w, $h, $color); - header('Content-Type: application/svg+xml'); - header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1 - header('Pragma: public'); - header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past - header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); - header('Content-Disposition: inline; filename="'.md5($code).'.svg";'); - //header('Content-Length: '.strlen($code)); - echo $code; - } - - /** - * Return a SVG string representation of barcode. - * @param $w (int) Width of a single rectangle element in user units. - * @param $h (int) Height of a single rectangle element in user units. - * @param $color (string) Foreground color (in SVG format) for bar elements (background is transparent). - * @return string SVG code. - * @public - */ - public function getBarcodeSVGcode($w=3, $h=3, $color='black') { - // replace table for special characters - $repstr = array("\0" => '', '&' => '&', '<' => '<', '>' => '>'); - $svg = '<'.'?'.'xml version="1.0" standalone="no"'.'?'.'>'."\n"; - $svg .= ''."\n"; - $svg .= ''."\n"; - $svg .= "\t".''.strtr($this->barcode_array['code'], $repstr).''."\n"; - $svg .= "\t".''."\n"; - // print barcode elements - $y = 0; - // for each row - for ($r = 0; $r < $this->barcode_array['num_rows']; ++$r) { - $x = 0; - // for each column - for ($c = 0; $c < $this->barcode_array['num_cols']; ++$c) { - if ($this->barcode_array['bcode'][$r][$c] == 1) { - // draw a single barcode cell - $svg .= "\t\t".''."\n"; - } - $x += $w; - } - $y += $h; - } - $svg .= "\t".''."\n"; - $svg .= ''."\n"; - return $svg; - } - - /** - * Return an HTML representation of barcode. - * @param $w (int) Width of a single rectangle element in pixels. - * @param $h (int) Height of a single rectangle element in pixels. - * @param $color (string) Foreground color for bar elements (background is transparent). - * @return string HTML code. - * @public - */ - public function getBarcodeHTML($w=10, $h=10, $color='black') { - $html = '
    '."\n"; - // print barcode elements - $y = 0; - // for each row - for ($r = 0; $r < $this->barcode_array['num_rows']; ++$r) { - $x = 0; - // for each column - for ($c = 0; $c < $this->barcode_array['num_cols']; ++$c) { - if ($this->barcode_array['bcode'][$r][$c] == 1) { - // draw a single barcode cell - $html .= '
     
    '."\n"; - } - $x += $w; - } - $y += $h; - } - $html .= '
    '."\n"; - return $html; - } - - /** - * Send a PNG image representation of barcode (requires GD or Imagick library). - * @param $w (int) Width of a single rectangle element in pixels. - * @param $h (int) Height of a single rectangle element in pixels. - * @param $color (array) RGB (0-255) foreground color for bar elements (background is transparent). - * @public - */ - public function getBarcodePNG($w=3, $h=3, $color=array(0,0,0)) { - $data = $this->getBarcodePngData($w, $h, $color); - // send headers - header('Content-Type: image/png'); - header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1 - header('Pragma: public'); - header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past - header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); - //header('Content-Length: '.strlen($data)); - echo $data; - - } - - /** - * Return a PNG image representation of barcode (requires GD or Imagick library). - * @param $w (int) Width of a single rectangle element in pixels. - * @param $h (int) Height of a single rectangle element in pixels. - * @param $color (array) RGB (0-255) foreground color for bar elements (background is transparent). - * @return image or false in case of error. - * @public - */ - public function getBarcodePngData($w=3, $h=3, $color=array(0,0,0)) { - // calculate image size - $width = ($this->barcode_array['num_cols'] * $w); - $height = ($this->barcode_array['num_rows'] * $h); - if (function_exists('imagecreate')) { - // GD library - $imagick = false; - $png = imagecreate($width, $height); - $bgcol = imagecolorallocate($png, 255, 255, 255); - imagecolortransparent($png, $bgcol); - $fgcol = imagecolorallocate($png, $color[0], $color[1], $color[2]); - } elseif (extension_loaded('imagick')) { - $imagick = true; - $bgcol = new imagickpixel('rgb(255,255,255'); - $fgcol = new imagickpixel('rgb('.$color[0].','.$color[1].','.$color[2].')'); - $png = new Imagick(); - $png->newImage($width, $height, 'none', 'png'); - $bar = new imagickdraw(); - $bar->setfillcolor($fgcol); - } else { - return false; - } - // print barcode elements - $y = 0; - // for each row - for ($r = 0; $r < $this->barcode_array['num_rows']; ++$r) { - $x = 0; - // for each column - for ($c = 0; $c < $this->barcode_array['num_cols']; ++$c) { - if ($this->barcode_array['bcode'][$r][$c] == 1) { - // draw a single barcode cell - if ($imagick) { - $bar->rectangle($x, $y, ($x + $w - 1), ($y + $h - 1)); - } else { - imagefilledrectangle($png, $x, $y, ($x + $w - 1), ($y + $h - 1), $fgcol); - } - } - $x += $w; - } - $y += $h; - } - if ($imagick) { - $png->drawimage($bar); - return $png; - } else { - ob_start(); - imagepng($png); - $imagedata = ob_get_clean(); - imagedestroy($png); - return $imagedata; - } - } - - /** - * Set the barcode. - * @param $code (string) code to print - * @param $type (string) type of barcode:
    • DATAMATRIX : Datamatrix (ISO/IEC 16022)
    • PDF417 : PDF417 (ISO/IEC 15438:2006)
    • PDF417,a,e,t,s,f,o0,o1,o2,o3,o4,o5,o6 : PDF417 with parameters: a = aspect ratio (width/height); e = error correction level (0-8); t = total number of macro segments; s = macro segment index (0-99998); f = file ID; o0 = File Name (text); o1 = Segment Count (numeric); o2 = Time Stamp (numeric); o3 = Sender (text); o4 = Addressee (text); o5 = File Size (numeric); o6 = Checksum (numeric). NOTES: Parameters t, s and f are required for a Macro Control Block, all other parametrs are optional. To use a comma character ',' on text options, replace it with the character 255: "\xff".
    • QRCODE : QRcode Low error correction
    • QRCODE,L : QRcode Low error correction
    • QRCODE,M : QRcode Medium error correction
    • QRCODE,Q : QRcode Better error correction
    • QRCODE,H : QR-CODE Best error correction
    • RAW: raw mode - comma-separad list of array rows
    • RAW2: raw mode - array rows are surrounded by square parenthesis.
    • TEST : Test matrix
    - * @return array - */ - public function setBarcode($code, $type) { - $mode = explode(',', $type); - $qrtype = strtoupper($mode[0]); - switch ($qrtype) { - case 'DATAMATRIX': { // DATAMATRIX (ISO/IEC 16022) - require_once(dirname(__FILE__).'/include/barcodes/datamatrix.php'); - $qrcode = new Datamatrix($code); - $this->barcode_array = $qrcode->getBarcodeArray(); - $this->barcode_array['code'] = $code; - break; - } - case 'PDF417': { // PDF417 (ISO/IEC 15438:2006) - require_once(dirname(__FILE__).'/include/barcodes/pdf417.php'); - if (!isset($mode[1]) OR ($mode[1] === '')) { - $aspectratio = 2; // default aspect ratio (width / height) - } else { - $aspectratio = floatval($mode[1]); - } - if (!isset($mode[2]) OR ($mode[2] === '')) { - $ecl = -1; // default error correction level (auto) - } else { - $ecl = intval($mode[2]); - } - // set macro block - $macro = array(); - if (isset($mode[3]) AND ($mode[3] !== '') AND isset($mode[4]) AND ($mode[4] !== '') AND isset($mode[5]) AND ($mode[5] !== '')) { - $macro['segment_total'] = intval($mode[3]); - $macro['segment_index'] = intval($mode[4]); - $macro['file_id'] = strtr($mode[5], "\xff", ','); - for ($i = 0; $i < 7; ++$i) { - $o = $i + 6; - if (isset($mode[$o]) AND ($mode[$o] !== '')) { - // add option - $macro['option_'.$i] = strtr($mode[$o], "\xff", ','); - } - } - } - $qrcode = new PDF417($code, $ecl, $aspectratio, $macro); - $this->barcode_array = $qrcode->getBarcodeArray(); - $this->barcode_array['code'] = $code; - break; - } - case 'QRCODE': { // QR-CODE - require_once(dirname(__FILE__).'/include/barcodes/qrcode.php'); - if (!isset($mode[1]) OR (!in_array($mode[1],array('L','M','Q','H')))) { - $mode[1] = 'L'; // Ddefault: Low error correction - } - $qrcode = new QRcode($code, strtoupper($mode[1])); - $this->barcode_array = $qrcode->getBarcodeArray(); - $this->barcode_array['code'] = $code; - break; - } - case 'RAW': - case 'RAW2': { // RAW MODE - // remove spaces - $code = preg_replace('/[\s]*/si', '', $code); - if (strlen($code) < 3) { - break; - } - if ($qrtype == 'RAW') { - // comma-separated rows - $rows = explode(',', $code); - } else { // RAW2 - // rows enclosed in square parentheses - $code = substr($code, 1, -1); - $rows = explode('][', $code); - } - $this->barcode_array['num_rows'] = count($rows); - $this->barcode_array['num_cols'] = strlen($rows[0]); - $this->barcode_array['bcode'] = array(); - foreach ($rows as $r) { - $this->barcode_array['bcode'][] = str_split($r, 1); - } - $this->barcode_array['code'] = $code; - break; - } - case 'TEST': { // TEST MODE - $this->barcode_array['num_rows'] = 5; - $this->barcode_array['num_cols'] = 15; - $this->barcode_array['bcode'] = array( - array(1,1,1,0,1,1,1,0,1,1,1,0,1,1,1), - array(0,1,0,0,1,0,0,0,1,0,0,0,0,1,0), - array(0,1,0,0,1,1,0,0,1,1,1,0,0,1,0), - array(0,1,0,0,1,0,0,0,0,0,1,0,0,1,0), - array(0,1,0,0,1,1,1,0,1,1,1,0,0,1,0)); - $this->barcode_array['code'] = $code; - break; - } - default: { - $this->barcode_array = false; - } - } - } -} // end of class - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/tcpdf_import.php b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/tcpdf_import.php deleted file mode 100644 index 09d726b..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/tcpdf_import.php +++ /dev/null @@ -1,104 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : This is a PHP class extension of the TCPDF library to -// import existing PDF documents. -// -//============================================================+ - -/** - * @file - * !!! THIS CLASS IS UNDER DEVELOPMENT !!! - * This is a PHP class extension of the TCPDF (http://www.tcpdf.org) library to import existing PDF documents.
    - * @package com.tecnick.tcpdf - * @author Nicola Asuni - * @version 1.0.001 - */ - -// include the TCPDF class -require_once(dirname(__FILE__).'/tcpdf.php'); -// include PDF parser class -require_once(dirname(__FILE__).'/tcpdf_parser.php'); - -/** - * @class TCPDF_IMPORT - * !!! THIS CLASS IS UNDER DEVELOPMENT !!! - * PHP class extension of the TCPDF (http://www.tcpdf.org) library to import existing PDF documents.
    - * @package com.tecnick.tcpdf - * @brief PHP class extension of the TCPDF library to import existing PDF documents. - * @version 1.0.001 - * @author Nicola Asuni - info@tecnick.com - */ -class TCPDF_IMPORT extends TCPDF { - - /** - * Import an existing PDF document - * @param $filename (string) Filename of the PDF document to import. - * @return true in case of success, false otherwise - * @public - * @since 1.0.000 (2011-05-24) - */ - public function importPDF($filename) { - // load document - $rawdata = file_get_contents($filename); - if ($rawdata === false) { - $this->Error('Unable to get the content of the file: '.$filename); - } - // configuration parameters for parser - $cfg = array( - 'die_for_errors' => false, - 'ignore_filter_decoding_errors' => true, - 'ignore_missing_filter_decoders' => true, - ); - try { - // parse PDF data - $pdf = new TCPDF_PARSER($rawdata, $cfg); - } catch (Exception $e) { - die($e->getMessage()); - } - // get the parsed data - $data = $pdf->getParsedData(); - // release some memory - unset($rawdata); - - // ... - - - print_r($data); // DEBUG - - - unset($pdf); - } - -} // END OF CLASS - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/tcpdf_parser.php b/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/tcpdf_parser.php deleted file mode 100644 index bd3d719..0000000 --- a/srcs/phpmyadmin/vendor/tecnickcom/tcpdf/tcpdf_parser.php +++ /dev/null @@ -1,815 +0,0 @@ -. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : This is a PHP class for parsing PDF documents. -// -//============================================================+ - -/** - * @file - * This is a PHP class for parsing PDF documents.
    - * @package com.tecnick.tcpdf - * @author Nicola Asuni - * @version 1.0.15 - */ - -// include class for decoding filters -require_once(dirname(__FILE__).'/include/tcpdf_filters.php'); - -/** - * @class TCPDF_PARSER - * This is a PHP class for parsing PDF documents.
    - * @package com.tecnick.tcpdf - * @brief This is a PHP class for parsing PDF documents.. - * @version 1.0.15 - * @author Nicola Asuni - info@tecnick.com - */ -class TCPDF_PARSER { - - /** - * Raw content of the PDF document. - * @private - */ - private $pdfdata = ''; - - /** - * XREF data. - * @protected - */ - protected $xref = array(); - - /** - * Array of PDF objects. - * @protected - */ - protected $objects = array(); - - /** - * Class object for decoding filters. - * @private - */ - private $FilterDecoders; - - /** - * Array of configuration parameters. - * @private - */ - private $cfg = array( - 'die_for_errors' => false, - 'ignore_filter_decoding_errors' => true, - 'ignore_missing_filter_decoders' => true, - ); - -// ----------------------------------------------------------------------------- - - /** - * Parse a PDF document an return an array of objects. - * @param $data (string) PDF data to parse. - * @param $cfg (array) Array of configuration parameters: - * 'die_for_errors' : if true termitate the program execution in case of error, otherwise thows an exception; - * 'ignore_filter_decoding_errors' : if true ignore filter decoding errors; - * 'ignore_missing_filter_decoders' : if true ignore missing filter decoding errors. - * @public - * @since 1.0.000 (2011-05-24) - */ - public function __construct($data, $cfg=array()) { - if (empty($data)) { - $this->Error('Empty PDF data.'); - } - // find the pdf header starting position - if (($trimpos = strpos($data, '%PDF-')) === FALSE) { - $this->Error('Invalid PDF data: missing %PDF header.'); - } - // get PDF content string - $this->pdfdata = substr($data, $trimpos); - // get length - $pdflen = strlen($this->pdfdata); - // set configuration parameters - $this->setConfig($cfg); - // get xref and trailer data - $this->xref = $this->getXrefData(); - // parse all document objects - $this->objects = array(); - foreach ($this->xref['xref'] as $obj => $offset) { - if (!isset($this->objects[$obj]) AND ($offset > 0)) { - // decode objects with positive offset - $this->objects[$obj] = $this->getIndirectObject($obj, $offset, true); - } - } - // release some memory - unset($this->pdfdata); - $this->pdfdata = ''; - } - - /** - * Set the configuration parameters. - * @param $cfg (array) Array of configuration parameters: - * 'die_for_errors' : if true termitate the program execution in case of error, otherwise thows an exception; - * 'ignore_filter_decoding_errors' : if true ignore filter decoding errors; - * 'ignore_missing_filter_decoders' : if true ignore missing filter decoding errors. - * @public - */ - protected function setConfig($cfg) { - if (isset($cfg['die_for_errors'])) { - $this->cfg['die_for_errors'] = !!$cfg['die_for_errors']; - } - if (isset($cfg['ignore_filter_decoding_errors'])) { - $this->cfg['ignore_filter_decoding_errors'] = !!$cfg['ignore_filter_decoding_errors']; - } - if (isset($cfg['ignore_missing_filter_decoders'])) { - $this->cfg['ignore_missing_filter_decoders'] = !!$cfg['ignore_missing_filter_decoders']; - } - } - - /** - * Return an array of parsed PDF document objects. - * @return (array) Array of parsed PDF document objects. - * @public - * @since 1.0.000 (2011-06-26) - */ - public function getParsedData() { - return array($this->xref, $this->objects); - } - - /** - * Get Cross-Reference (xref) table and trailer data from PDF document data. - * @param $offset (int) xref offset (if know). - * @param $xref (array) previous xref array (if any). - * @return Array containing xref and trailer data. - * @protected - * @since 1.0.000 (2011-05-24) - */ - protected function getXrefData($offset=0, $xref=array()) { - if ($offset == 0) { - // find last startxref - if (preg_match_all('/[\r\n]startxref[\s]*[\r\n]+([0-9]+)[\s]*[\r\n]+%%EOF/i', $this->pdfdata, $matches, PREG_SET_ORDER, $offset) == 0) { - $this->Error('Unable to find startxref'); - } - $matches = array_pop($matches); - $startxref = $matches[1]; - } elseif (strpos($this->pdfdata, 'xref', $offset) == $offset) { - // Already pointing at the xref table - $startxref = $offset; - } elseif (preg_match('/([0-9]+[\s][0-9]+[\s]obj)/i', $this->pdfdata, $matches, PREG_OFFSET_CAPTURE, $offset)) { - // Cross-Reference Stream object - $startxref = $offset; - } elseif (preg_match('/[\r\n]startxref[\s]*[\r\n]+([0-9]+)[\s]*[\r\n]+%%EOF/i', $this->pdfdata, $matches, PREG_OFFSET_CAPTURE, $offset)) { - // startxref found - $startxref = $matches[1][0]; - } else { - $this->Error('Unable to find startxref'); - } - // check xref position - if (strpos($this->pdfdata, 'xref', $startxref) == $startxref) { - // Cross-Reference - $xref = $this->decodeXref($startxref, $xref); - } else { - // Cross-Reference Stream - $xref = $this->decodeXrefStream($startxref, $xref); - } - if (empty($xref)) { - $this->Error('Unable to find xref'); - } - return $xref; - } - - /** - * Decode the Cross-Reference section - * @param $startxref (int) Offset at which the xref section starts (position of the 'xref' keyword). - * @param $xref (array) Previous xref array (if any). - * @return Array containing xref and trailer data. - * @protected - * @since 1.0.000 (2011-06-20) - */ - protected function decodeXref($startxref, $xref=array()) { - $startxref += 4; // 4 is the length of the word 'xref' - // skip initial white space chars: \x00 null (NUL), \x09 horizontal tab (HT), \x0A line feed (LF), \x0C form feed (FF), \x0D carriage return (CR), \x20 space (SP) - $offset = $startxref + strspn($this->pdfdata, "\x00\x09\x0a\x0c\x0d\x20", $startxref); - // initialize object number - $obj_num = 0; - // search for cross-reference entries or subsection - while (preg_match('/([0-9]+)[\x20]([0-9]+)[\x20]?([nf]?)(\r\n|[\x20]?[\r\n])/', $this->pdfdata, $matches, PREG_OFFSET_CAPTURE, $offset) > 0) { - if ($matches[0][1] != $offset) { - // we are on another section - break; - } - $offset += strlen($matches[0][0]); - if ($matches[3][0] == 'n') { - // create unique object index: [object number]_[generation number] - $index = $obj_num.'_'.intval($matches[2][0]); - // check if object already exist - if (!isset($xref['xref'][$index])) { - // store object offset position - $xref['xref'][$index] = intval($matches[1][0]); - } - ++$obj_num; - } elseif ($matches[3][0] == 'f') { - ++$obj_num; - } else { - // object number (index) - $obj_num = intval($matches[1][0]); - } - } - // get trailer data - if (preg_match('/trailer[\s]*<<(.*)>>/isU', $this->pdfdata, $matches, PREG_OFFSET_CAPTURE, $offset) > 0) { - $trailer_data = $matches[1][0]; - if (!isset($xref['trailer']) OR empty($xref['trailer'])) { - // get only the last updated version - $xref['trailer'] = array(); - // parse trailer_data - if (preg_match('/Size[\s]+([0-9]+)/i', $trailer_data, $matches) > 0) { - $xref['trailer']['size'] = intval($matches[1]); - } - if (preg_match('/Root[\s]+([0-9]+)[\s]+([0-9]+)[\s]+R/i', $trailer_data, $matches) > 0) { - $xref['trailer']['root'] = intval($matches[1]).'_'.intval($matches[2]); - } - if (preg_match('/Encrypt[\s]+([0-9]+)[\s]+([0-9]+)[\s]+R/i', $trailer_data, $matches) > 0) { - $xref['trailer']['encrypt'] = intval($matches[1]).'_'.intval($matches[2]); - } - if (preg_match('/Info[\s]+([0-9]+)[\s]+([0-9]+)[\s]+R/i', $trailer_data, $matches) > 0) { - $xref['trailer']['info'] = intval($matches[1]).'_'.intval($matches[2]); - } - if (preg_match('/ID[\s]*[\[][\s]*[<]([^>]*)[>][\s]*[<]([^>]*)[>]/i', $trailer_data, $matches) > 0) { - $xref['trailer']['id'] = array(); - $xref['trailer']['id'][0] = $matches[1]; - $xref['trailer']['id'][1] = $matches[2]; - } - } - if (preg_match('/Prev[\s]+([0-9]+)/i', $trailer_data, $matches) > 0) { - // get previous xref - $xref = $this->getXrefData(intval($matches[1]), $xref); - } - } else { - $this->Error('Unable to find trailer'); - } - return $xref; - } - - /** - * Decode the Cross-Reference Stream section - * @param $startxref (int) Offset at which the xref section starts. - * @param $xref (array) Previous xref array (if any). - * @return Array containing xref and trailer data. - * @protected - * @since 1.0.003 (2013-03-16) - */ - protected function decodeXrefStream($startxref, $xref=array()) { - // try to read Cross-Reference Stream - $xrefobj = $this->getRawObject($startxref); - $xrefcrs = $this->getIndirectObject($xrefobj[1], $startxref, true); - if (!isset($xref['trailer']) OR empty($xref['trailer'])) { - // get only the last updated version - $xref['trailer'] = array(); - $filltrailer = true; - } else { - $filltrailer = false; - } - if (!isset($xref['xref'])) { - $xref['xref'] = array(); - } - $valid_crs = false; - $columns = 0; - $sarr = $xrefcrs[0][1]; - if (!is_array($sarr)) { - $sarr = array(); - } - foreach ($sarr as $k => $v) { - if (($v[0] == '/') AND ($v[1] == 'Type') AND (isset($sarr[($k +1)]) AND ($sarr[($k +1)][0] == '/') AND ($sarr[($k +1)][1] == 'XRef'))) { - $valid_crs = true; - } elseif (($v[0] == '/') AND ($v[1] == 'Index') AND (isset($sarr[($k +1)]))) { - // first object number in the subsection - $index_first = intval($sarr[($k +1)][1][0][1]); - // number of entries in the subsection - $index_entries = intval($sarr[($k +1)][1][1][1]); - } elseif (($v[0] == '/') AND ($v[1] == 'Prev') AND (isset($sarr[($k +1)]) AND ($sarr[($k +1)][0] == 'numeric'))) { - // get previous xref offset - $prevxref = intval($sarr[($k +1)][1]); - } elseif (($v[0] == '/') AND ($v[1] == 'W') AND (isset($sarr[($k +1)]))) { - // number of bytes (in the decoded stream) of the corresponding field - $wb = array(); - $wb[0] = intval($sarr[($k +1)][1][0][1]); - $wb[1] = intval($sarr[($k +1)][1][1][1]); - $wb[2] = intval($sarr[($k +1)][1][2][1]); - } elseif (($v[0] == '/') AND ($v[1] == 'DecodeParms') AND (isset($sarr[($k +1)][1]))) { - $decpar = $sarr[($k +1)][1]; - foreach ($decpar as $kdc => $vdc) { - if (($vdc[0] == '/') AND ($vdc[1] == 'Columns') AND (isset($decpar[($kdc +1)]) AND ($decpar[($kdc +1)][0] == 'numeric'))) { - $columns = intval($decpar[($kdc +1)][1]); - } elseif (($vdc[0] == '/') AND ($vdc[1] == 'Predictor') AND (isset($decpar[($kdc +1)]) AND ($decpar[($kdc +1)][0] == 'numeric'))) { - $predictor = intval($decpar[($kdc +1)][1]); - } - } - } elseif ($filltrailer) { - if (($v[0] == '/') AND ($v[1] == 'Size') AND (isset($sarr[($k +1)]) AND ($sarr[($k +1)][0] == 'numeric'))) { - $xref['trailer']['size'] = $sarr[($k +1)][1]; - } elseif (($v[0] == '/') AND ($v[1] == 'Root') AND (isset($sarr[($k +1)]) AND ($sarr[($k +1)][0] == 'objref'))) { - $xref['trailer']['root'] = $sarr[($k +1)][1]; - } elseif (($v[0] == '/') AND ($v[1] == 'Info') AND (isset($sarr[($k +1)]) AND ($sarr[($k +1)][0] == 'objref'))) { - $xref['trailer']['info'] = $sarr[($k +1)][1]; - } elseif (($v[0] == '/') AND ($v[1] == 'Encrypt') AND (isset($sarr[($k +1)]) AND ($sarr[($k +1)][0] == 'objref'))) { - $xref['trailer']['encrypt'] = $sarr[($k +1)][1]; - } elseif (($v[0] == '/') AND ($v[1] == 'ID') AND (isset($sarr[($k +1)]))) { - $xref['trailer']['id'] = array(); - $xref['trailer']['id'][0] = $sarr[($k +1)][1][0][1]; - $xref['trailer']['id'][1] = $sarr[($k +1)][1][1][1]; - } - } - } - // decode data - if ($valid_crs AND isset($xrefcrs[1][3][0])) { - // number of bytes in a row - $rowlen = ($columns + 1); - // convert the stream into an array of integers - $sdata = unpack('C*', $xrefcrs[1][3][0]); - // split the rows - $sdata = array_chunk($sdata, $rowlen); - // initialize decoded array - $ddata = array(); - // initialize first row with zeros - $prev_row = array_fill (0, $rowlen, 0); - // for each row apply PNG unpredictor - foreach ($sdata as $k => $row) { - // initialize new row - $ddata[$k] = array(); - // get PNG predictor value - $predictor = (10 + $row[0]); - // for each byte on the row - for ($i=1; $i<=$columns; ++$i) { - // new index - $j = ($i - 1); - $row_up = $prev_row[$j]; - if ($i == 1) { - $row_left = 0; - $row_upleft = 0; - } else { - $row_left = $row[($i - 1)]; - $row_upleft = $prev_row[($j - 1)]; - } - switch ($predictor) { - case 10: { // PNG prediction (on encoding, PNG None on all rows) - $ddata[$k][$j] = $row[$i]; - break; - } - case 11: { // PNG prediction (on encoding, PNG Sub on all rows) - $ddata[$k][$j] = (($row[$i] + $row_left) & 0xff); - break; - } - case 12: { // PNG prediction (on encoding, PNG Up on all rows) - $ddata[$k][$j] = (($row[$i] + $row_up) & 0xff); - break; - } - case 13: { // PNG prediction (on encoding, PNG Average on all rows) - $ddata[$k][$j] = (($row[$i] + (($row_left + $row_up) / 2)) & 0xff); - break; - } - case 14: { // PNG prediction (on encoding, PNG Paeth on all rows) - // initial estimate - $p = ($row_left + $row_up - $row_upleft); - // distances - $pa = abs($p - $row_left); - $pb = abs($p - $row_up); - $pc = abs($p - $row_upleft); - $pmin = min($pa, $pb, $pc); - // return minimum distance - switch ($pmin) { - case $pa: { - $ddata[$k][$j] = (($row[$i] + $row_left) & 0xff); - break; - } - case $pb: { - $ddata[$k][$j] = (($row[$i] + $row_up) & 0xff); - break; - } - case $pc: { - $ddata[$k][$j] = (($row[$i] + $row_upleft) & 0xff); - break; - } - } - break; - } - default: { // PNG prediction (on encoding, PNG optimum) - $this->Error('Unknown PNG predictor'); - break; - } - } - } - $prev_row = $ddata[$k]; - } // end for each row - // complete decoding - $sdata = array(); - // for every row - foreach ($ddata as $k => $row) { - // initialize new row - $sdata[$k] = array(0, 0, 0); - if ($wb[0] == 0) { - // default type field - $sdata[$k][0] = 1; - } - $i = 0; // count bytes in the row - // for every column - for ($c = 0; $c < 3; ++$c) { - // for every byte on the column - for ($b = 0; $b < $wb[$c]; ++$b) { - if (isset($row[$i])) { - $sdata[$k][$c] += ($row[$i] << (($wb[$c] - 1 - $b) * 8)); - } - ++$i; - } - } - } - $ddata = array(); - // fill xref - if (isset($index_first)) { - $obj_num = $index_first; - } else { - $obj_num = 0; - } - foreach ($sdata as $k => $row) { - switch ($row[0]) { - case 0: { // (f) linked list of free objects - break; - } - case 1: { // (n) objects that are in use but are not compressed - // create unique object index: [object number]_[generation number] - $index = $obj_num.'_'.$row[2]; - // check if object already exist - if (!isset($xref['xref'][$index])) { - // store object offset position - $xref['xref'][$index] = $row[1]; - } - break; - } - case 2: { // compressed objects - // $row[1] = object number of the object stream in which this object is stored - // $row[2] = index of this object within the object stream - $index = $row[1].'_0_'.$row[2]; - $xref['xref'][$index] = -1; - break; - } - default: { // null objects - break; - } - } - ++$obj_num; - } - } // end decoding data - if (isset($prevxref)) { - // get previous xref - $xref = $this->getXrefData($prevxref, $xref); - } - return $xref; - } - - /** - * Get object type, raw value and offset to next object - * @param $offset (int) Object offset. - * @return array containing object type, raw value and offset to next object - * @protected - * @since 1.0.000 (2011-06-20) - */ - protected function getRawObject($offset=0) { - $objtype = ''; // object type to be returned - $objval = ''; // object value to be returned - // skip initial white space chars: \x00 null (NUL), \x09 horizontal tab (HT), \x0A line feed (LF), \x0C form feed (FF), \x0D carriage return (CR), \x20 space (SP) - $offset += strspn($this->pdfdata, "\x00\x09\x0a\x0c\x0d\x20", $offset); - // get first char - $char = $this->pdfdata[$offset]; - // get object type - switch ($char) { - case '%': { // \x25 PERCENT SIGN - // skip comment and search for next token - $next = strcspn($this->pdfdata, "\r\n", $offset); - if ($next > 0) { - $offset += $next; - return $this->getRawObject($offset); - } - break; - } - case '/': { // \x2F SOLIDUS - // name object - $objtype = $char; - ++$offset; - if (preg_match('/^([^\x00\x09\x0a\x0c\x0d\x20\s\x28\x29\x3c\x3e\x5b\x5d\x7b\x7d\x2f\x25]+)/', substr($this->pdfdata, $offset, 256), $matches) == 1) { - $objval = $matches[1]; // unescaped value - $offset += strlen($objval); - } - break; - } - case '(': // \x28 LEFT PARENTHESIS - case ')': { // \x29 RIGHT PARENTHESIS - // literal string object - $objtype = $char; - ++$offset; - $strpos = $offset; - if ($char == '(') { - $open_bracket = 1; - while ($open_bracket > 0) { - if (!isset($this->pdfdata[$strpos])) { - break; - } - $ch = $this->pdfdata[$strpos]; - switch ($ch) { - case '\\': { // REVERSE SOLIDUS (5Ch) (Backslash) - // skip next character - ++$strpos; - break; - } - case '(': { // LEFT PARENHESIS (28h) - ++$open_bracket; - break; - } - case ')': { // RIGHT PARENTHESIS (29h) - --$open_bracket; - break; - } - } - ++$strpos; - } - $objval = substr($this->pdfdata, $offset, ($strpos - $offset - 1)); - $offset = $strpos; - } - break; - } - case '[': // \x5B LEFT SQUARE BRACKET - case ']': { // \x5D RIGHT SQUARE BRACKET - // array object - $objtype = $char; - ++$offset; - if ($char == '[') { - // get array content - $objval = array(); - do { - // get element - $element = $this->getRawObject($offset); - $offset = $element[2]; - $objval[] = $element; - } while ($element[0] != ']'); - // remove closing delimiter - array_pop($objval); - } - break; - } - case '<': // \x3C LESS-THAN SIGN - case '>': { // \x3E GREATER-THAN SIGN - if (isset($this->pdfdata[($offset + 1)]) AND ($this->pdfdata[($offset + 1)] == $char)) { - // dictionary object - $objtype = $char.$char; - $offset += 2; - if ($char == '<') { - // get array content - $objval = array(); - do { - // get element - $element = $this->getRawObject($offset); - $offset = $element[2]; - $objval[] = $element; - } while ($element[0] != '>>'); - // remove closing delimiter - array_pop($objval); - } - } else { - // hexadecimal string object - $objtype = $char; - ++$offset; - if (($char == '<') AND (preg_match('/^([0-9A-Fa-f\x09\x0a\x0c\x0d\x20]+)>/iU', substr($this->pdfdata, $offset), $matches) == 1)) { - // remove white space characters - $objval = strtr($matches[1], "\x09\x0a\x0c\x0d\x20", ''); - $offset += strlen($matches[0]); - } elseif (($endpos = strpos($this->pdfdata, '>', $offset)) !== FALSE) { - $offset = $endpos + 1; - } - } - break; - } - default: { - if (substr($this->pdfdata, $offset, 6) == 'endobj') { - // indirect object - $objtype = 'endobj'; - $offset += 6; - } elseif (substr($this->pdfdata, $offset, 4) == 'null') { - // null object - $objtype = 'null'; - $offset += 4; - $objval = 'null'; - } elseif (substr($this->pdfdata, $offset, 4) == 'true') { - // boolean true object - $objtype = 'boolean'; - $offset += 4; - $objval = 'true'; - } elseif (substr($this->pdfdata, $offset, 5) == 'false') { - // boolean false object - $objtype = 'boolean'; - $offset += 5; - $objval = 'false'; - } elseif (substr($this->pdfdata, $offset, 6) == 'stream') { - // start stream object - $objtype = 'stream'; - $offset += 6; - if (preg_match('/^([\r]?[\n])/isU', substr($this->pdfdata, $offset), $matches) == 1) { - $offset += strlen($matches[0]); - if (preg_match('/(endstream)[\x09\x0a\x0c\x0d\x20]/isU', substr($this->pdfdata, $offset), $matches, PREG_OFFSET_CAPTURE) == 1) { - $objval = substr($this->pdfdata, $offset, $matches[0][1]); - $offset += $matches[1][1]; - } - } - } elseif (substr($this->pdfdata, $offset, 9) == 'endstream') { - // end stream object - $objtype = 'endstream'; - $offset += 9; - } elseif (preg_match('/^([0-9]+)[\s]+([0-9]+)[\s]+R/iU', substr($this->pdfdata, $offset, 33), $matches) == 1) { - // indirect object reference - $objtype = 'objref'; - $offset += strlen($matches[0]); - $objval = intval($matches[1]).'_'.intval($matches[2]); - } elseif (preg_match('/^([0-9]+)[\s]+([0-9]+)[\s]+obj/iU', substr($this->pdfdata, $offset, 33), $matches) == 1) { - // object start - $objtype = 'obj'; - $objval = intval($matches[1]).'_'.intval($matches[2]); - $offset += strlen ($matches[0]); - } elseif (($numlen = strspn($this->pdfdata, '+-.0123456789', $offset)) > 0) { - // numeric object - $objtype = 'numeric'; - $objval = substr($this->pdfdata, $offset, $numlen); - $offset += $numlen; - } - break; - } - } - return array($objtype, $objval, $offset); - } - - /** - * Get content of indirect object. - * @param $obj_ref (string) Object number and generation number separated by underscore character. - * @param $offset (int) Object offset. - * @param $decoding (boolean) If true decode streams. - * @return array containing object data. - * @protected - * @since 1.0.000 (2011-05-24) - */ - protected function getIndirectObject($obj_ref, $offset=0, $decoding=true) { - $obj = explode('_', $obj_ref); - if (($obj === false) OR (count($obj) != 2)) { - $this->Error('Invalid object reference: '.$obj); - return; - } - $objref = $obj[0].' '.$obj[1].' obj'; - // ignore leading zeros - $offset += strspn($this->pdfdata, '0', $offset); - if (strpos($this->pdfdata, $objref, $offset) != $offset) { - // an indirect reference to an undefined object shall be considered a reference to the null object - return array('null', 'null', $offset); - } - // starting position of object content - $offset += strlen($objref); - // get array of object content - $objdata = array(); - $i = 0; // object main index - do { - $oldoffset = $offset; - // get element - $element = $this->getRawObject($offset); - $offset = $element[2]; - // decode stream using stream's dictionary information - if ($decoding AND ($element[0] == 'stream') AND (isset($objdata[($i - 1)][0])) AND ($objdata[($i - 1)][0] == '<<')) { - $element[3] = $this->decodeStream($objdata[($i - 1)][1], $element[1]); - } - $objdata[$i] = $element; - ++$i; - } while (($element[0] != 'endobj') AND ($offset != $oldoffset)); - // remove closing delimiter - array_pop($objdata); - // return raw object content - return $objdata; - } - - /** - * Get the content of object, resolving indect object reference if necessary. - * @param $obj (string) Object value. - * @return array containing object data. - * @protected - * @since 1.0.000 (2011-06-26) - */ - protected function getObjectVal($obj) { - if ($obj[0] == 'objref') { - // reference to indirect object - if (isset($this->objects[$obj[1]])) { - // this object has been already parsed - return $this->objects[$obj[1]]; - } elseif (isset($this->xref[$obj[1]])) { - // parse new object - $this->objects[$obj[1]] = $this->getIndirectObject($obj[1], $this->xref[$obj[1]], false); - return $this->objects[$obj[1]]; - } - } - return $obj; - } - - /** - * Decode the specified stream. - * @param $sdic (array) Stream's dictionary array. - * @param $stream (string) Stream to decode. - * @return array containing decoded stream data and remaining filters. - * @protected - * @since 1.0.000 (2011-06-22) - */ - protected function decodeStream($sdic, $stream) { - // get stream length and filters - $slength = strlen($stream); - if ($slength <= 0) { - return array('', array()); - } - $filters = array(); - foreach ($sdic as $k => $v) { - if ($v[0] == '/') { - if (($v[1] == 'Length') AND (isset($sdic[($k + 1)])) AND ($sdic[($k + 1)][0] == 'numeric')) { - // get declared stream length - $declength = intval($sdic[($k + 1)][1]); - if ($declength < $slength) { - $stream = substr($stream, 0, $declength); - $slength = $declength; - } - } elseif (($v[1] == 'Filter') AND (isset($sdic[($k + 1)]))) { - // resolve indirect object - $objval = $this->getObjectVal($sdic[($k + 1)]); - if ($objval[0] == '/') { - // single filter - $filters[] = $objval[1]; - } elseif ($objval[0] == '[') { - // array of filters - foreach ($objval[1] as $flt) { - if ($flt[0] == '/') { - $filters[] = $flt[1]; - } - } - } - } - } - } - // decode the stream - $remaining_filters = array(); - foreach ($filters as $filter) { - if (in_array($filter, TCPDF_FILTERS::getAvailableFilters())) { - try { - $stream = TCPDF_FILTERS::decodeFilter($filter, $stream); - } catch (Exception $e) { - $emsg = $e->getMessage(); - if ((($emsg[0] == '~') AND !$this->cfg['ignore_missing_filter_decoders']) - OR (($emsg[0] != '~') AND !$this->cfg['ignore_filter_decoding_errors'])) { - $this->Error($e->getMessage()); - } - } - } else { - // add missing filter to array - $remaining_filters[] = $filter; - } - } - return array($stream, $remaining_filters); - } - - /** - * Throw an exception or print an error message and die if the K_TCPDF_PARSER_THROW_EXCEPTION_ERROR constant is set to true. - * @param $msg (string) The error message - * @public - * @since 1.0.000 (2011-05-23) - */ - public function Error($msg) { - if ($this->cfg['die_for_errors']) { - die('TCPDF_PARSER ERROR: '.$msg); - } else { - throw new Exception('TCPDF_PARSER ERROR: '.$msg); - } - } - -} // END OF TCPDF_PARSER CLASS - -//============================================================+ -// END OF FILE -//============================================================+ diff --git a/srcs/phpmyadmin/vendor/twig/extensions/.travis.yml b/srcs/phpmyadmin/vendor/twig/extensions/.travis.yml deleted file mode 100644 index 88c7404..0000000 --- a/srcs/phpmyadmin/vendor/twig/extensions/.travis.yml +++ /dev/null @@ -1,34 +0,0 @@ -language: php - -sudo: false - -cache: - directories: - - vendor - - $HOME/.composer/cache/files - -env: - - DEPS=no - -before_install: - - phpenv config-rm xdebug.ini - -before_script: - - if [ "$DEPS" == "low" ]; then composer --prefer-lowest --prefer-stable update; fi; - - if [ "$DEPS" == "no" ]; then composer install; fi; - -script: | - ./vendor/bin/simple-phpunit - -matrix: - include: - - php: 5.3 - dist: precise - - php: 5.4 - - php: 5.5 - - php: 5.6 - env: DEPS=low - - php: 7.0 - - php: 7.1 - - php: 7.2 - fast_finish: true diff --git a/srcs/phpmyadmin/vendor/twig/extensions/LICENSE b/srcs/phpmyadmin/vendor/twig/extensions/LICENSE deleted file mode 100644 index b420d71..0000000 --- a/srcs/phpmyadmin/vendor/twig/extensions/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2010-2017 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. diff --git a/srcs/phpmyadmin/vendor/twig/extensions/README.rst b/srcs/phpmyadmin/vendor/twig/extensions/README.rst deleted file mode 100644 index 2b4ea92..0000000 --- a/srcs/phpmyadmin/vendor/twig/extensions/README.rst +++ /dev/null @@ -1,14 +0,0 @@ -Twig Extensions Repository -========================== - -This repository hosts Twig Extensions that do not belong to the core but can -be nonetheless interesting to share with other developers. - -Fork this repository, add your extension, and request a pull. - -More Information ----------------- - -Read the `documentation`_ for more information. - -.. _documentation: http://twig-extensions.readthedocs.io/ diff --git a/srcs/phpmyadmin/vendor/twig/extensions/composer.json b/srcs/phpmyadmin/vendor/twig/extensions/composer.json deleted file mode 100644 index 3644d8e..0000000 --- a/srcs/phpmyadmin/vendor/twig/extensions/composer.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "twig/extensions", - "description": "Common additional features for Twig that do not directly belong in core", - "keywords": ["i18n","text"], - "type": "library", - "license": "MIT", - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - } - ], - "require": { - "twig/twig": "^1.27|^2.0" - }, - "require-dev": { - "symfony/phpunit-bridge": "^3.4", - "symfony/translation": "^2.7|^3.4" - }, - "suggest": { - "symfony/translation": "Allow the time_diff output to be translated" - }, - "autoload": { - "psr-0": { "Twig_Extensions_": "lib/" }, - "psr-4": { "Twig\\Extensions\\": "src/" } - }, - "extra": { - "branch-alias": { - "dev-master": "1.5-dev" - } - } -} diff --git a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Autoloader.php b/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Autoloader.php deleted file mode 100644 index 9ad5a46..0000000 --- a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Autoloader.php +++ /dev/null @@ -1,48 +0,0 @@ - - * - * @deprecated since version 1.5, use Composer instead. - */ -class Twig_Extensions_Autoloader -{ - /** - * Registers Twig_Extensions_Autoloader as an SPL autoloader. - */ - public static function register() - { - spl_autoload_register(array(new self(), 'autoload')); - } - - /** - * Handles autoloading of classes. - * - * @param string $class a class name - * - * @return bool Returns true if the class has been loaded - */ - public static function autoload($class) - { - if (0 !== strpos($class, 'Twig_Extensions')) { - return; - } - - if (file_exists($file = __DIR__.'/../../'.str_replace('_', '/', $class).'.php')) { - require $file; - } - } -} diff --git a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Extension/Array.php b/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Extension/Array.php deleted file mode 100644 index a5eaf6d..0000000 --- a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Extension/Array.php +++ /dev/null @@ -1,56 +0,0 @@ - - */ -class Twig_Extensions_Extension_Array extends Twig_Extension -{ - /** - * {@inheritdoc} - */ - public function getFilters() - { - $filters = array( - new Twig_SimpleFilter('shuffle', 'twig_shuffle_filter'), - ); - - return $filters; - } - - /** - * {@inheritdoc} - */ - public function getName() - { - return 'array'; - } -} - -/** - * Shuffles an array. - * - * @param array|Traversable $array An array - * - * @return array - */ -function twig_shuffle_filter($array) -{ - if ($array instanceof Traversable) { - $array = iterator_to_array($array, false); - } - - shuffle($array); - - return $array; -} - -class_alias('Twig_Extensions_Extension_Array', 'Twig\Extensions\ArrayExtension', false); diff --git a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Extension/Date.php b/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Extension/Date.php deleted file mode 100644 index 1cdd455..0000000 --- a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Extension/Date.php +++ /dev/null @@ -1,107 +0,0 @@ - - */ -class Twig_Extensions_Extension_Date extends Twig_Extension -{ - public static $units = array( - 'y' => 'year', - 'm' => 'month', - 'd' => 'day', - 'h' => 'hour', - 'i' => 'minute', - 's' => 'second', - ); - - /** - * @var TranslatorInterface - */ - private $translator; - - public function __construct(TranslatorInterface $translator = null) - { - // Ignore the IdentityTranslator, otherwise the parameters won't be replaced properly - if ($translator instanceof IdentityTranslator) { - $translator = null; - } - - $this->translator = $translator; - } - - /** - * {@inheritdoc} - */ - public function getFilters() - { - return array( - new Twig_SimpleFilter('time_diff', array($this, 'diff'), array('needs_environment' => true)), - ); - } - - /** - * Filter for converting dates to a time ago string like Facebook and Twitter has. - * - * @param Twig_Environment $env a Twig_Environment instance - * @param string|DateTime $date a string or DateTime object to convert - * @param string|DateTime $now A string or DateTime object to compare with. If none given, the current time will be used. - * - * @return string the converted time - */ - public function diff(Twig_Environment $env, $date, $now = null) - { - // Convert both dates to DateTime instances. - $date = twig_date_converter($env, $date); - $now = twig_date_converter($env, $now); - - // Get the difference between the two DateTime objects. - $diff = $date->diff($now); - - // Check for each interval if it appears in the $diff object. - foreach (self::$units as $attribute => $unit) { - $count = $diff->$attribute; - - if (0 !== $count) { - return $this->getPluralizedInterval($count, $diff->invert, $unit); - } - } - - return ''; - } - - protected function getPluralizedInterval($count, $invert, $unit) - { - if ($this->translator) { - $id = sprintf('diff.%s.%s', $invert ? 'in' : 'ago', $unit); - - return $this->translator->transChoice($id, $count, array('%count%' => $count), 'date'); - } - - if (1 !== $count) { - $unit .= 's'; - } - - return $invert ? "in $count $unit" : "$count $unit ago"; - } - - /** - * {@inheritdoc} - */ - public function getName() - { - return 'date'; - } -} - -class_alias('Twig_Extensions_Extension_Date', 'Twig\Extensions\DateExtension', false); diff --git a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Extension/I18n.php b/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Extension/I18n.php deleted file mode 100644 index 41cb9ce..0000000 --- a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Extension/I18n.php +++ /dev/null @@ -1,41 +0,0 @@ - true)), - new Twig_SimpleFilter('localizednumber', 'twig_localized_number_filter'), - new Twig_SimpleFilter('localizedcurrency', 'twig_localized_currency_filter'), - ); - } - - /** - * {@inheritdoc} - */ - public function getName() - { - return 'intl'; - } -} - -function twig_localized_date_filter(Twig_Environment $env, $date, $dateFormat = 'medium', $timeFormat = 'medium', $locale = null, $timezone = null, $format = null, $calendar = 'gregorian') -{ - $date = twig_date_converter($env, $date, $timezone); - - $formatValues = array( - 'none' => IntlDateFormatter::NONE, - 'short' => IntlDateFormatter::SHORT, - 'medium' => IntlDateFormatter::MEDIUM, - 'long' => IntlDateFormatter::LONG, - 'full' => IntlDateFormatter::FULL, - ); - - if (PHP_VERSION_ID < 50500 || !class_exists('IntlTimeZone')) { - $formatter = IntlDateFormatter::create( - $locale, - $formatValues[$dateFormat], - $formatValues[$timeFormat], - $date->getTimezone()->getName(), - 'gregorian' === $calendar ? IntlDateFormatter::GREGORIAN : IntlDateFormatter::TRADITIONAL, - $format - ); - - return $formatter->format($date->getTimestamp()); - } - - $formatter = IntlDateFormatter::create( - $locale, - $formatValues[$dateFormat], - $formatValues[$timeFormat], - IntlTimeZone::createTimeZone($date->getTimezone()->getName()), - 'gregorian' === $calendar ? IntlDateFormatter::GREGORIAN : IntlDateFormatter::TRADITIONAL, - $format - ); - - return $formatter->format($date->getTimestamp()); -} - -function twig_localized_number_filter($number, $style = 'decimal', $type = 'default', $locale = null) -{ - static $typeValues = array( - 'default' => NumberFormatter::TYPE_DEFAULT, - 'int32' => NumberFormatter::TYPE_INT32, - 'int64' => NumberFormatter::TYPE_INT64, - 'double' => NumberFormatter::TYPE_DOUBLE, - 'currency' => NumberFormatter::TYPE_CURRENCY, - ); - - $formatter = twig_get_number_formatter($locale, $style); - - if (!isset($typeValues[$type])) { - throw new Twig_Error_Syntax(sprintf('The type "%s" does not exist. Known types are: "%s"', $type, implode('", "', array_keys($typeValues)))); - } - - return $formatter->format($number, $typeValues[$type]); -} - -function twig_localized_currency_filter($number, $currency = null, $locale = null) -{ - $formatter = twig_get_number_formatter($locale, 'currency'); - - return $formatter->formatCurrency($number, $currency); -} - -/** - * Gets a number formatter instance according to given locale and formatter. - * - * @param string $locale Locale in which the number would be formatted - * @param int $style Style of the formatting - * - * @return NumberFormatter A NumberFormatter instance - */ -function twig_get_number_formatter($locale, $style) -{ - static $formatter, $currentStyle; - - $locale = null !== $locale ? $locale : Locale::getDefault(); - - if ($formatter && $formatter->getLocale() === $locale && $currentStyle === $style) { - // Return same instance of NumberFormatter if parameters are the same - // to those in previous call - return $formatter; - } - - static $styleValues = array( - 'decimal' => NumberFormatter::DECIMAL, - 'currency' => NumberFormatter::CURRENCY, - 'percent' => NumberFormatter::PERCENT, - 'scientific' => NumberFormatter::SCIENTIFIC, - 'spellout' => NumberFormatter::SPELLOUT, - 'ordinal' => NumberFormatter::ORDINAL, - 'duration' => NumberFormatter::DURATION, - ); - - if (!isset($styleValues[$style])) { - throw new Twig_Error_Syntax(sprintf('The style "%s" does not exist. Known styles are: "%s"', $style, implode('", "', array_keys($styleValues)))); - } - - $currentStyle = $style; - - $formatter = NumberFormatter::create($locale, $styleValues[$style]); - - return $formatter; -} - -class_alias('Twig_Extensions_Extension_Intl', 'Twig\Extensions\IntlExtension', false); diff --git a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Extension/Text.php b/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Extension/Text.php deleted file mode 100644 index 52d3591..0000000 --- a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Extension/Text.php +++ /dev/null @@ -1,99 +0,0 @@ - - */ -class Twig_Extensions_Extension_Text extends Twig_Extension -{ - /** - * {@inheritdoc} - */ - public function getFilters() - { - return array( - new Twig_SimpleFilter('truncate', 'twig_truncate_filter', array('needs_environment' => true)), - new Twig_SimpleFilter('wordwrap', 'twig_wordwrap_filter', array('needs_environment' => true)), - ); - } - - /** - * {@inheritdoc} - */ - public function getName() - { - return 'Text'; - } -} - -if (function_exists('mb_get_info')) { - function twig_truncate_filter(Twig_Environment $env, $value, $length = 30, $preserve = false, $separator = '...') - { - if (mb_strlen($value, $env->getCharset()) > $length) { - if ($preserve) { - // If breakpoint is on the last word, return the value without separator. - if (false === ($breakpoint = mb_strpos($value, ' ', $length, $env->getCharset()))) { - return $value; - } - - $length = $breakpoint; - } - - return rtrim(mb_substr($value, 0, $length, $env->getCharset())).$separator; - } - - return $value; - } - - function twig_wordwrap_filter(Twig_Environment $env, $value, $length = 80, $separator = "\n", $preserve = false) - { - $sentences = array(); - - $previous = mb_regex_encoding(); - mb_regex_encoding($env->getCharset()); - - $pieces = mb_split($separator, $value); - mb_regex_encoding($previous); - - foreach ($pieces as $piece) { - while (!$preserve && mb_strlen($piece, $env->getCharset()) > $length) { - $sentences[] = mb_substr($piece, 0, $length, $env->getCharset()); - $piece = mb_substr($piece, $length, 2048, $env->getCharset()); - } - - $sentences[] = $piece; - } - - return implode($separator, $sentences); - } -} else { - function twig_truncate_filter(Twig_Environment $env, $value, $length = 30, $preserve = false, $separator = '...') - { - if (strlen($value) > $length) { - if ($preserve) { - if (false !== ($breakpoint = strpos($value, ' ', $length))) { - $length = $breakpoint; - } - } - - return rtrim(substr($value, 0, $length)).$separator; - } - - return $value; - } - - function twig_wordwrap_filter(Twig_Environment $env, $value, $length = 80, $separator = "\n", $preserve = false) - { - return wordwrap($value, $length, $separator, !$preserve); - } -} - -class_alias('Twig_Extensions_Extension_Text', 'Twig\Extensions\TextExtension', false); diff --git a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar.php b/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar.php deleted file mode 100644 index b6cc0a7..0000000 --- a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar.php +++ /dev/null @@ -1,43 +0,0 @@ -name = $name; - } - - /** - * @param Twig_Parser $parser - */ - public function setParser(Twig_Parser $parser) - { - $this->parser = $parser; - } - - /** - * @return string - */ - public function getName() - { - return $this->name; - } -} diff --git a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Arguments.php b/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Arguments.php deleted file mode 100644 index abb9e0e..0000000 --- a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Arguments.php +++ /dev/null @@ -1,26 +0,0 @@ -', $this->name); - } - - public function parse(Twig_Token $token) - { - return $this->parser->getExpressionParser()->parseArguments(); - } -} diff --git a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Array.php b/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Array.php deleted file mode 100644 index 94d7b8c..0000000 --- a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Array.php +++ /dev/null @@ -1,26 +0,0 @@ -', $this->name); - } - - public function parse(Twig_Token $token) - { - return $this->parser->getExpressionParser()->parseArrayExpression(); - } -} diff --git a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Body.php b/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Body.php deleted file mode 100644 index b2ac43e..0000000 --- a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Body.php +++ /dev/null @@ -1,43 +0,0 @@ -end = null === $end ? 'end'.$name : $end; - } - - public function __toString() - { - return sprintf('<%s:body>', $this->name); - } - - public function parse(Twig_Token $token) - { - $stream = $this->parser->getStream(); - $stream->expect(Twig_Token::BLOCK_END_TYPE); - - return $this->parser->subparse(array($this, 'decideBlockEnd'), true); - } - - public function decideBlockEnd(Twig_Token $token) - { - return $token->test($this->end); - } -} diff --git a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Boolean.php b/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Boolean.php deleted file mode 100644 index 578567e..0000000 --- a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Boolean.php +++ /dev/null @@ -1,28 +0,0 @@ -', $this->name); - } - - public function parse(Twig_Token $token) - { - $this->parser->getStream()->expect(Twig_Token::NAME_TYPE, array('true', 'false')); - - return new Twig_Node_Expression_Constant('true' === $token->getValue() ? true : false, $token->getLine()); - } -} diff --git a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Constant.php b/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Constant.php deleted file mode 100644 index 8d82b82..0000000 --- a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Constant.php +++ /dev/null @@ -1,41 +0,0 @@ -name = $name; - $this->type = null === $type ? Twig_Token::NAME_TYPE : $type; - } - - public function __toString() - { - return $this->name; - } - - public function parse(Twig_Token $token) - { - $this->parser->getStream()->expect($this->type, $this->name); - - return $this->name; - } - - public function getType() - { - return $this->type; - } -} diff --git a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Expression.php b/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Expression.php deleted file mode 100644 index b73156e..0000000 --- a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Expression.php +++ /dev/null @@ -1,26 +0,0 @@ -', $this->name); - } - - public function parse(Twig_Token $token) - { - return $this->parser->getExpressionParser()->parseExpression(); - } -} diff --git a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Hash.php b/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Hash.php deleted file mode 100644 index 5ea3e69..0000000 --- a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Hash.php +++ /dev/null @@ -1,26 +0,0 @@ -', $this->name); - } - - public function parse(Twig_Token $token) - { - return $this->parser->getExpressionParser()->parseHashExpression(); - } -} diff --git a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Number.php b/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Number.php deleted file mode 100644 index 68bbb62..0000000 --- a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Number.php +++ /dev/null @@ -1,28 +0,0 @@ -', $this->name); - } - - public function parse(Twig_Token $token) - { - $this->parser->getStream()->expect(Twig_Token::NUMBER_TYPE); - - return new Twig_Node_Expression_Constant($token->getValue(), $token->getLine()); - } -} diff --git a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Optional.php b/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Optional.php deleted file mode 100644 index 0cde9bc..0000000 --- a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Optional.php +++ /dev/null @@ -1,73 +0,0 @@ -grammar = array(); - foreach (func_get_args() as $grammar) { - $this->addGrammar($grammar); - } - } - - public function __toString() - { - $repr = array(); - foreach ($this->grammar as $grammar) { - $repr[] = (string) $grammar; - } - - return sprintf('[%s]', implode(' ', $repr)); - } - - public function addGrammar(Twig_Extensions_GrammarInterface $grammar) - { - $this->grammar[] = $grammar; - } - - public function parse(Twig_Token $token) - { - // test if we have the optional element before consuming it - if ($this->grammar[0] instanceof Twig_Extensions_Grammar_Constant) { - if (!$this->parser->getStream()->test($this->grammar[0]->getType(), $this->grammar[0]->getName())) { - return array(); - } - } elseif ($this->grammar[0] instanceof Twig_Extensions_Grammar_Name) { - if (!$this->parser->getStream()->test(Twig_Token::NAME_TYPE)) { - return array(); - } - } elseif ($this->parser->getStream()->test(Twig_Token::BLOCK_END_TYPE)) { - // if this is not a Constant or a Name, it must be the last element of the tag - - return array(); - } - - $elements = array(); - foreach ($this->grammar as $grammar) { - $grammar->setParser($this->parser); - - $element = $grammar->parse($token); - if (is_array($element)) { - $elements = array_merge($elements, $element); - } else { - $elements[$grammar->getName()] = $element; - } - } - - return $elements; - } -} diff --git a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Switch.php b/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Switch.php deleted file mode 100644 index 407cc20..0000000 --- a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Switch.php +++ /dev/null @@ -1,28 +0,0 @@ -', $this->name); - } - - public function parse(Twig_Token $token) - { - $this->parser->getStream()->expect(Twig_Token::NAME_TYPE, $this->name); - - return new Twig_Node_Expression_Constant(true, $token->getLine()); - } -} diff --git a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Tag.php b/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Tag.php deleted file mode 100644 index 2506efa..0000000 --- a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Tag.php +++ /dev/null @@ -1,60 +0,0 @@ -grammar = array(); - foreach (func_get_args() as $grammar) { - $this->addGrammar($grammar); - } - } - - public function __toString() - { - $repr = array(); - foreach ($this->grammar as $grammar) { - $repr[] = (string) $grammar; - } - - return implode(' ', $repr); - } - - public function addGrammar(Twig_Extensions_GrammarInterface $grammar) - { - $this->grammar[] = $grammar; - } - - public function parse(Twig_Token $token) - { - $elements = array(); - foreach ($this->grammar as $grammar) { - $grammar->setParser($this->parser); - - $element = $grammar->parse($token); - if (is_array($element)) { - $elements = array_merge($elements, $element); - } else { - $elements[$grammar->getName()] = $element; - } - } - - $this->parser->getStream()->expect(Twig_Token::BLOCK_END_TYPE); - - return $elements; - } -} diff --git a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/GrammarInterface.php b/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/GrammarInterface.php deleted file mode 100644 index b4854da..0000000 --- a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/GrammarInterface.php +++ /dev/null @@ -1,22 +0,0 @@ - - */ -class Twig_Extensions_Node_Trans extends Twig_Node -{ - public function __construct(Twig_Node $body, Twig_Node $plural = null, Twig_Node_Expression $count = null, Twig_Node $notes = null, $lineno, $tag = null) - { - $nodes = array('body' => $body); - if (null !== $count) { - $nodes['count'] = $count; - } - if (null !== $plural) { - $nodes['plural'] = $plural; - } - if (null !== $notes) { - $nodes['notes'] = $notes; - } - - parent::__construct($nodes, array(), $lineno, $tag); - } - - /** - * {@inheritdoc} - */ - public function compile(Twig_Compiler $compiler) - { - $compiler->addDebugInfo($this); - - list($msg, $vars) = $this->compileString($this->getNode('body')); - - if ($this->hasNode('plural')) { - list($msg1, $vars1) = $this->compileString($this->getNode('plural')); - - $vars = array_merge($vars, $vars1); - } - - $function = $this->getTransFunction($this->hasNode('plural')); - - if ($this->hasNode('notes')) { - $message = trim($this->getNode('notes')->getAttribute('data')); - - // line breaks are not allowed cause we want a single line comment - $message = str_replace(array("\n", "\r"), ' ', $message); - $compiler->write("// notes: {$message}\n"); - } - - if ($vars) { - $compiler - ->write('echo strtr('.$function.'(') - ->subcompile($msg) - ; - - if ($this->hasNode('plural')) { - $compiler - ->raw(', ') - ->subcompile($msg1) - ->raw(', abs(') - ->subcompile($this->hasNode('count') ? $this->getNode('count') : null) - ->raw(')') - ; - } - - $compiler->raw('), array('); - - foreach ($vars as $var) { - if ('count' === $var->getAttribute('name')) { - $compiler - ->string('%count%') - ->raw(' => abs(') - ->subcompile($this->hasNode('count') ? $this->getNode('count') : null) - ->raw('), ') - ; - } else { - $compiler - ->string('%'.$var->getAttribute('name').'%') - ->raw(' => ') - ->subcompile($var) - ->raw(', ') - ; - } - } - - $compiler->raw("));\n"); - } else { - $compiler - ->write('echo '.$function.'(') - ->subcompile($msg) - ; - - if ($this->hasNode('plural')) { - $compiler - ->raw(', ') - ->subcompile($msg1) - ->raw(', abs(') - ->subcompile($this->hasNode('count') ? $this->getNode('count') : null) - ->raw(')') - ; - } - - $compiler->raw(");\n"); - } - } - - /** - * @param Twig_Node $body A Twig_Node instance - * - * @return array - */ - protected function compileString(Twig_Node $body) - { - if ($body instanceof Twig_Node_Expression_Name || $body instanceof Twig_Node_Expression_Constant || $body instanceof Twig_Node_Expression_TempName) { - return array($body, array()); - } - - $vars = array(); - if (count($body)) { - $msg = ''; - - foreach ($body as $node) { - if (get_class($node) === 'Twig_Node' && $node->getNode(0) instanceof Twig_Node_SetTemp) { - $node = $node->getNode(1); - } - - if ($node instanceof Twig_Node_Print) { - $n = $node->getNode('expr'); - while ($n instanceof Twig_Node_Expression_Filter) { - $n = $n->getNode('node'); - } - $msg .= sprintf('%%%s%%', $n->getAttribute('name')); - $vars[] = new Twig_Node_Expression_Name($n->getAttribute('name'), $n->getTemplateLine()); - } else { - $msg .= $node->getAttribute('data'); - } - } - } else { - $msg = $body->getAttribute('data'); - } - - return array(new Twig_Node(array(new Twig_Node_Expression_Constant(trim($msg), $body->getTemplateLine()))), $vars); - } - - /** - * @param bool $plural Return plural or singular function to use - * - * @return string - */ - protected function getTransFunction($plural) - { - return $plural ? 'ngettext' : 'gettext'; - } -} - -class_alias('Twig_Extensions_Node_Trans', 'Twig\Extensions\Node\TransNode', false); diff --git a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/SimpleTokenParser.php b/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/SimpleTokenParser.php deleted file mode 100644 index 76fa9d3..0000000 --- a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/SimpleTokenParser.php +++ /dev/null @@ -1,138 +0,0 @@ -getGrammar(); - if (!is_object($grammar)) { - $grammar = self::parseGrammar($grammar); - } - - $grammar->setParser($this->parser); - $values = $grammar->parse($token); - - return $this->getNode($values, $token->getLine()); - } - - /** - * Gets the grammar as an object or as a string. - * - * @return string|Twig_Extensions_Grammar A Twig_Extensions_Grammar instance or a string - */ - abstract protected function getGrammar(); - - /** - * Gets the nodes based on the parsed values. - * - * @param array $values An array of values - * @param int $line The parser line - */ - abstract protected function getNode(array $values, $line); - - protected function getAttribute($node, $attribute, $arguments = array(), $type = Twig_Node_Expression_GetAttr::TYPE_ANY, $line = -1) - { - return new Twig_Node_Expression_GetAttr( - $node instanceof Twig_Node ? $node : new Twig_Node_Expression_Name($node, $line), - $attribute instanceof Twig_Node ? $attribute : new Twig_Node_Expression_Constant($attribute, $line), - $arguments instanceof Twig_Node ? $arguments : new Twig_Node($arguments), - $type, - $line - ); - } - - protected function call($node, $attribute, $arguments = array(), $line = -1) - { - return $this->getAttribute($node, $attribute, $arguments, Twig_Node_Expression_GetAttr::TYPE_METHOD, $line); - } - - protected function markAsSafe(Twig_Node $node, $line = -1) - { - return new Twig_Node_Expression_Filter( - $node, - new Twig_Node_Expression_Constant('raw', $line), - new Twig_Node(), - $line - ); - } - - protected function output(Twig_Node $node, $line = -1) - { - return new Twig_Node_Print($node, $line); - } - - protected function getNodeValues(array $values) - { - $nodes = array(); - foreach ($values as $value) { - if ($value instanceof Twig_Node) { - $nodes[] = $value; - } - } - - return $nodes; - } - - public static function parseGrammar($str, $main = true) - { - static $cursor; - - if (true === $main) { - $cursor = 0; - $grammar = new Twig_Extensions_Grammar_Tag(); - } else { - $grammar = new Twig_Extensions_Grammar_Optional(); - } - - while ($cursor < strlen($str)) { - if (preg_match('/\s+/A', $str, $match, null, $cursor)) { - $cursor += strlen($match[0]); - } elseif (preg_match('/<(\w+)(?:\:(\w+))?>/A', $str, $match, null, $cursor)) { - $class = sprintf('Twig_Extensions_Grammar_%s', ucfirst(isset($match[2]) ? $match[2] : 'Expression')); - if (!class_exists($class)) { - throw new Twig_Error_Runtime(sprintf('Unable to understand "%s" in grammar (%s class does not exist)', $match[0], $class)); - } - $grammar->addGrammar(new $class($match[1])); - $cursor += strlen($match[0]); - } elseif (preg_match('/\w+/A', $str, $match, null, $cursor)) { - $grammar->addGrammar(new Twig_Extensions_Grammar_Constant($match[0])); - $cursor += strlen($match[0]); - } elseif (preg_match('/,/A', $str, $match, null, $cursor)) { - $grammar->addGrammar(new Twig_Extensions_Grammar_Constant($match[0], Twig_Token::PUNCTUATION_TYPE)); - $cursor += strlen($match[0]); - } elseif (preg_match('/\[/A', $str, $match, null, $cursor)) { - $cursor += strlen($match[0]); - $grammar->addGrammar(self::parseGrammar($str, false)); - } elseif (true !== $main && preg_match('/\]/A', $str, $match, null, $cursor)) { - $cursor += strlen($match[0]); - - return $grammar; - } else { - throw new Twig_Error_Runtime(sprintf('Unable to parse grammar "%s" near "...%s..."', $str, substr($str, $cursor, 10))); - } - } - - return $grammar; - } -} diff --git a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/TokenParser/Trans.php b/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/TokenParser/Trans.php deleted file mode 100644 index 4d4f600..0000000 --- a/srcs/phpmyadmin/vendor/twig/extensions/lib/Twig/Extensions/TokenParser/Trans.php +++ /dev/null @@ -1,88 +0,0 @@ -getLine(); - $stream = $this->parser->getStream(); - $count = null; - $plural = null; - $notes = null; - - if (!$stream->test(Twig_Token::BLOCK_END_TYPE)) { - $body = $this->parser->getExpressionParser()->parseExpression(); - } else { - $stream->expect(Twig_Token::BLOCK_END_TYPE); - $body = $this->parser->subparse(array($this, 'decideForFork')); - $next = $stream->next()->getValue(); - - if ('plural' === $next) { - $count = $this->parser->getExpressionParser()->parseExpression(); - $stream->expect(Twig_Token::BLOCK_END_TYPE); - $plural = $this->parser->subparse(array($this, 'decideForFork')); - - if ('notes' === $stream->next()->getValue()) { - $stream->expect(Twig_Token::BLOCK_END_TYPE); - $notes = $this->parser->subparse(array($this, 'decideForEnd'), true); - } - } elseif ('notes' === $next) { - $stream->expect(Twig_Token::BLOCK_END_TYPE); - $notes = $this->parser->subparse(array($this, 'decideForEnd'), true); - } - } - - $stream->expect(Twig_Token::BLOCK_END_TYPE); - - $this->checkTransString($body, $lineno); - - return new Twig_Extensions_Node_Trans($body, $plural, $count, $notes, $lineno, $this->getTag()); - } - - public function decideForFork(Twig_Token $token) - { - return $token->test(array('plural', 'notes', 'endtrans')); - } - - public function decideForEnd(Twig_Token $token) - { - return $token->test('endtrans'); - } - - /** - * {@inheritdoc} - */ - public function getTag() - { - return 'trans'; - } - - protected function checkTransString(Twig_Node $body, $lineno) - { - foreach ($body as $i => $node) { - if ( - $node instanceof Twig_Node_Text - || - ($node instanceof Twig_Node_Print && $node->getNode('expr') instanceof Twig_Node_Expression_Name) - ) { - continue; - } - - throw new Twig_Error_Syntax(sprintf('The text to be translated with "trans" can only contain references to simple variables'), $lineno); - } - } -} - -class_alias('Twig_Extensions_TokenParser_Trans', 'Twig\Extensions\TokenParser\TransTokenParser', false); diff --git a/srcs/phpmyadmin/vendor/twig/extensions/phpunit.xml.dist b/srcs/phpmyadmin/vendor/twig/extensions/phpunit.xml.dist deleted file mode 100644 index 4d49fa6..0000000 --- a/srcs/phpmyadmin/vendor/twig/extensions/phpunit.xml.dist +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - ./test/Twig/ - - - - - - ./lib/Twig/ - - - diff --git a/srcs/phpmyadmin/vendor/twig/extensions/src/ArrayExtension.php b/srcs/phpmyadmin/vendor/twig/extensions/src/ArrayExtension.php deleted file mode 100644 index 22ee3ed..0000000 --- a/srcs/phpmyadmin/vendor/twig/extensions/src/ArrayExtension.php +++ /dev/null @@ -1,11 +0,0 @@ -setRules([ - '@Symfony' => true, - '@Symfony:risky' => true, - '@PHPUnit75Migration:risky' => true, - 'php_unit_dedicate_assert' => ['target' => '5.6'], - 'array_syntax' => ['syntax' => 'short'], - 'php_unit_fqcn_annotation' => true, - 'no_unreachable_default_argument_value' => false, - 'braces' => ['allow_single_line_closure' => true], - 'heredoc_to_nowdoc' => false, - 'ordered_imports' => true, - 'phpdoc_types_order' => ['null_adjustment' => 'always_last', 'sort_algorithm' => 'none'], - 'native_function_invocation' => ['include' => ['@compiler_optimized'], 'scope' => 'all'], - ]) - ->setRiskyAllowed(true) - ->setFinder(PhpCsFixer\Finder::create()->in(__DIR__)) -; diff --git a/srcs/phpmyadmin/vendor/twig/twig/.travis.yml b/srcs/phpmyadmin/vendor/twig/twig/.travis.yml deleted file mode 100644 index 0e8536b..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/.travis.yml +++ /dev/null @@ -1,45 +0,0 @@ -language: php - -cache: - directories: - - vendor - - extra/*/vendor - - $HOME/.composer/cache/files - -env: - global: - - SYMFONY_PHPUNIT_REMOVE_RETURN_TYPEHINT=1 - - SYMFONY_PHPUNIT_DISABLE_RESULT_CACHE=1 - -before_install: - - phpenv config-rm xdebug.ini || return 0 - -install: - - travis_retry composer install - - ([[ $TRAVIS_PHP_VERSION = 7.0 ]] || cd extra/cssinliner-extra && travis_retry composer install) - - ([[ $TRAVIS_PHP_VERSION = 7.0 ]] || cd extra/html-extra && travis_retry composer install) - - ([[ $TRAVIS_PHP_VERSION = 7.0 ]] || cd extra/inky-extra && travis_retry composer install) - - ([[ $TRAVIS_PHP_VERSION = 7.0 ]] || cd extra/intl-extra && travis_retry composer install) - - ([[ $TRAVIS_PHP_VERSION = 7.0 ]] || cd extra/markdown-extra && travis_retry composer install) - - ([[ $TRAVIS_PHP_VERSION < 7.2 ]] || cd extra/string-extra && travis_retry composer install) - -script: - - ./vendor/bin/simple-phpunit - - ([[ $TRAVIS_PHP_VERSION = 7.0 ]] || cd extra/cssinliner-extra && ./vendor/bin/simple-phpunit) - - ([[ $TRAVIS_PHP_VERSION = 7.0 ]] || cd extra/html-extra && ./vendor/bin/simple-phpunit) - - ([[ $TRAVIS_PHP_VERSION = 7.0 ]] || cd extra/inky-extra && ./vendor/bin/simple-phpunit) - - ([[ $TRAVIS_PHP_VERSION = 7.0 ]] || cd extra/intl-extra && ./vendor/bin/simple-phpunit) - - ([[ $TRAVIS_PHP_VERSION = 7.0 ]] || cd extra/markdown-extra && ./vendor/bin/simple-phpunit) - - ([[ $TRAVIS_PHP_VERSION < 7.2 ]] || cd extra/string-extra && ./vendor/bin/simple-phpunit) - -jobs: - fast_finish: true - include: - - php: 7.0 - - php: 7.1 - - php: 7.2 - - php: 7.3 - - php: 7.4snapshot - - stage: integration tests - php: 7.3 - script: ./drupal_test.sh diff --git a/srcs/phpmyadmin/vendor/twig/twig/CHANGELOG b/srcs/phpmyadmin/vendor/twig/twig/CHANGELOG deleted file mode 100644 index 660ff5d..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/CHANGELOG +++ /dev/null @@ -1,1431 +0,0 @@ -* 2.12.3 (2019-12-28) - - * fixed Symfony 5.0 support for the HTML extra extension - * fixed number formatter in Intl extra extension when using a formatter prototype - -* 2.12.2 (2019-11-11) - - * added supported for exponential numbers - -* 2.12.1 (2019-10-17) - - * added the String extension in the "extra" repositories: "u" filter - -* 2.12.0 (2019-10-05) - - * added the spaceship operator ("<=>"), useful when using an arrow function in the "sort" filter - * added support for an "arrow" function on the "sort" filter - * added the CssInliner extension in the "extra" repositories: "inline_css" - filter - * added the Inky extension in the "extra" repositories: "inky_to_html" filter - * added Intl extension in the "extra" repositories: "country_name", - "currency_name", "currency_symbol", "language_name", "locale_name", - "timezone_name", "format_currency", "format_number", - "format_*_number", "format_datetime", "format_date", and "format_time" - filters, and the "country_timezones" function - * added the Markdown extension in the "extra" repositories: "markdown_to_html", - and "html_to_markdown" filters - * added the HtmlExtension extension in the "extra" repositories: "date_uri" - filter, and "html_classes" function - * optimized "block('foo') ?? 'bar'" - * fixed the empty test on Traversable instances - * fixed array_key_exists() on objects - * fixed cache when opcache is installed but disabled - * fixed using macros in arrow functions - * fixed split filter on edge case - -* 2.11.3 (2019-06-18) - - * display partial output (PHP buffer) when an error occurs in debug mode - * fixed the filter filter (allow the result to be used several times) - * fixed macro auto-import when a template contains only macros - -* 2.11.2 (2019-06-05) - - * fixed macro auto-import - -* 2.11.1 (2019-06-04) - - * added support for "Twig\Markup" instances in the "in" test (again) - * allowed string operators as variables names in assignments - * fixed support for macros defined in parent templates - -* 2.11.0 (2019-05-31) - - * added the possibility to register classes/interfaces as being safe for the escaper ("EscaperExtension::addSafeClass()") - * deprecated CoreExtension::setEscaper() and CoreExtension::getEscapers() in favor of the same methods on EscaperExtension - * macros are now auto-imported in the template they are defined (under the ``_self`` variable) - * added support for macros on "is defined" tests - * fixed macros "import" when using the same name in the parent and child templates - * fixed recursive macros - * macros imported "globally" in a template are now available in macros without re-importing them - * fixed the "filter" filter when the argument is \Traversable but does not implement \Iterator (\SimpleXmlElement for instance) - * fixed a PHP fatal error when calling a macro imported in a block in a nested block - * fixed a PHP fatal error when calling a macro imported in the template in another macro - * fixed wrong error message on "import" and "from" - -* 2.10.0 (2019-05-14) - - * deprecated "if" conditions on "for" tags - * added "filter", "map", and "reduce" filters (and support for arrow functions) - * fixed partial output leak when a PHP fatal error occurs - * optimized context access on PHP 7.4 - -* 2.9.0 (2019-04-28) - - * deprecated returning "false" to remove a Node from NodeVisitorInterface::leaveNode() - * allowed Twig\NodeVisitor\NodeVisitorInterface::leaveNode() to return "null" instead of "false" (same meaning) - * deprecated the "filter" tag (use the "apply" tag instead) - * added the "apply" tag as a replacement for the "filter" tag - * allowed Twig\Loader\FilesystemLoader::findTemplate() to return "null" instead of "false" (same meaning) - * added support for "Twig\Markup" instances in the "in" test - * fixed "import" when macros are stored in a template string - * fixed Lexer when using custom options containing the # char - * added template line number to twig_get_attribute() - -* 2.8.1 (2019-04-16) - - * fixed EscaperNodeVisitor - * deprecated passing a 3rd, 4th, and 5th arguments to the Sandbox exception classes - * deprecated Node::setTemplateName() in favor of Node::setSourceContext() - -* 2.8.0 (2019-04-16) - - * added Traversable support for the length filter - * fixed some wrong location in error messages - * made exception creation faster - * made escaping on ternary expressions (?: and ??) more fine-grained - * added the possibility to give a nice name to string templates (template_from_string function) - * fixed the "with" behavior to always include the globals (for consistency with the "include" and "embed" tags) - * fixed "include" with "ignore missing" when an error loading occurs in the included template - * added support for a new whitespace trimming option ({%~ ~%}, {{~ ~}}, {#~ ~#}) - * added the "column" filter - -* 2.7.4 (2019-03-23) - - * fixed variadic support - * fixed CheckToStringNode implementation (broken when a function/filter is variadic) - -* 2.7.3 (2019-03-21) - - * fixed the spaceless filter so that it behaves like the spaceless tag - * fixed BC break on Environment::resolveTemplate() - * allowed Traversable objects to be used in the "with" tag - * allowed Traversable objects to be used in the "with" tag - * allowed Traversable objects to be used in the "with" argument of the "include" and "embed" tags - -* 2.7.2 (2019-03-12) - - * added TemplateWrapper::getTemplateName() - -* 2.7.1 (2019-03-12) - - * fixed class aliases - -* 2.7.0 (2019-03-12) - - * fixed sandbox security issue (under some circumstances, calling the - __toString() method on an object was possible even if not allowed by the - security policy) - * fixed batch filter clobbers array keys when fill parameter is used - * added preserveKeys support for the batch filter - * fixed "embed" support when used from "template_from_string" - * deprecated passing a Twig\Template to Twig\Environment::load()/Twig\Environment::resolveTemplate() - * added the possibility to pass a TemplateWrapper to Twig\Environment::load() - * marked Twig\Environment::getTemplateClass() as internal (implementation detail) - * improved the performance of the sandbox - * deprecated the spaceless tag - * added a spaceless filter - * added max value to the "random" function - * deprecated Twig\Extension\InitRuntimeInterface - * deprecated Twig\Loader\ExistsLoaderInterface - * deprecated PSR-0 classes in favor of namespaced ones - * made namespace classes the default classes (PSR-0 ones are aliases now) - * added Twig\Loader\ChainLoader::getLoaders() - * removed duplicated directory separator in FilesystemLoader - * deprecated the "base_template_class" option on Twig\Environment - * deprecated the Twig\Environment::getBaseTemplateClass() and - Twig\Environment::setBaseTemplateClass() methods - * changed internal code to use the namespaced classes as much as possible - * deprecated Twig_Parser::isReservedMacroName() - -* 2.6.2 (2019-01-14) - - * fixed regression (key exists check for non ArrayObject objects) - -* 2.6.1 (2019-01-14) - - * fixed ArrayObject access with a null value - * fixed embedded templates starting with a BOM - * fixed using a Twig_TemplateWrapper instance as an argument to extends - * fixed error location when calling an undefined block - * deprecated passing a string as a source on Twig_Error - * switched generated code to use the PHP short array notation - * fixed float representation in compiled templates - * added a second argument to the join filter (last separator configuration) - -* 2.6.0 (2018-12-16) - - * made sure twig_include returns a string - * fixed multi-byte UFT-8 in escape('html_attr') - * added the "deprecated" tag - * added support for dynamically named tests - * fixed GlobalsInterface extended class - * fixed filesystem loader throwing an exception instead of returning false - -* 2.5.0 (2018-07-13) - - * deprecated using the spaceless tag at the root level of a child template (noop anyway) - * deprecated the possibility to define a block in a non-capturing block in a child template - * added the Symfony ctype polyfill as a dependency - * fixed reporting the proper location for errors compiled in templates - * fixed the error handling for the optimized extension-based function calls - * ensured that syntax errors are triggered with the right line - * "js" filter now produces valid JSON - -* 2.4.8 (2018-04-02) - - * fixed a regression when using the "default" filter or the "defined" test on non-existing arrays - -* 2.4.7 (2018-03-20) - - * optimized runtime performance - * optimized parser performance by inlining the constant values - * fixed block names unicity - * fixed counting children of SimpleXMLElement objects - * added missing else clause to avoid infinite loops - * fixed .. (range operator) in sandbox policy - -* 2.4.6 (2018-03-03) - - * fixed a regression in the way the profiler is registered in templates - -* 2.4.5 (2018-03-02) - - * optimized the performance of calling an extension method at runtime - * optimized the performance of the dot operator for array and method calls - * added an exception when using "===" instead of "same as" - * fixed possible array to string conversion concealing actual error - * made variable names deterministic in compiled templates - * fixed length filter when passing an instance of IteratorAggregate - * fixed Environment::resolveTemplate to accept instances of TemplateWrapper - -* 2.4.4 (2017-09-27) - - * added Twig_Profiler_Profile::reset() - * fixed use TokenParser to return an empty Node - * added RuntimeExtensionInterface - * added circular reference detection when loading templates - * added support for runtime loaders in IntegrationTestCase - * fixed deprecation when using Twig_Profiler_Dumper_Html - * removed @final from Twig_Profiler_Dumper_Text - -* 2.4.3 (2017-06-07) - - * fixed namespaces introduction - -* 2.4.2 (2017-06-05) - - * fixed namespaces introduction - -* 2.4.1 (2017-06-05) - - * fixed namespaces introduction - -* 2.4.0 (2017-06-05) - - * added support for PHPUnit 6 when testing extensions - * fixed PHP 7.2 compatibility - * fixed template name generation in Twig_Environment::createTemplate() - * removed final tag on Twig_TokenParser_Include - * dropped HHVM support - * added namespaced aliases for all (non-deprecated) classes and interfaces - * marked Twig_Filter, Twig_Function, Twig_Test, Twig_Node_Module and Twig_Profiler_Profile as final via the @final annotation - -* 2.3.2 (2017-04-20) - - * fixed edge case in the method cache for Twig attributes - -* 2.3.1 (2017-04-18) - - * fixed the empty() test - -* 2.3.0 (2017-03-22) - - * fixed a race condition handling when writing cache files - * "length" filter now returns string length when applied to an object that does - not implement \Countable but provides __toString() - * "empty" test will now consider the return value of the __toString() method for - objects implement __toString() but not \Countable - * fixed JS escaping for unicode characters with higher code points - * added error message when calling `parent()` in a block that doesn't exist in the parent template - -* 2.2.0 (2017-02-26) - - * added a PSR-11 compatible runtime loader - * added `side` argument to `trim` to allow left or right trimming only. - -* 2.1.0 (2017-01-11) - - * fixed twig_get_attribute() - * added Twig_NodeCaptureInterface for nodes that capture all output - -* 2.0.0 (2017-01-05) - - * removed the C extension - * moved Twig_Environment::getAttribute() to twig_get_attribute() - * removed Twig_Environment::getLexer(), Twig_Environment::getParser(), Twig_Environment::getCompiler() - * removed Twig_Compiler::getFilename() - * added hasser support in Twig_Template::getAttribute() - * sped up the json_encode filter - * removed reserved macro names; all names can be used as macro - * removed Twig_Template::getEnvironment() - * changed _self variable to return the current template name - * made the loader a required argument of Twig_Environment constructor - * removed Twig_Environment::clearTemplateCache() - * removed Twig_Autoloader (use Composer instead) - * removed `true` as an equivalent to `html` for the auto-escaping strategy - * removed pre-1.8 autoescape tag syntax - * dropped support for PHP 5.x - * removed the ability to register a global variable after the runtime or the extensions have been initialized - * improved the performance of the filesystem loader - * removed features that were deprecated in 1.x - -* 1.42.5 (2019-XX-XX) - - * n/a - -* 1.42.4 (2019-11-11) - - * optimized "block('foo') ?? 'bar" - * added supported for exponential numbers - -* 1.42.3 (2019-08-24) - - * fixed the "split" filter when the delimiter is "0" - * fixed the "empty" test on Traversable instances - * fixed cache when opcache is installed but disabled - * fixed PHP 7.4 compatibility - * bumped the minimal PHP version to 5.5 - -* 1.42.2 (2019-06-18) - - * Display partial output (PHP buffer) when an error occurs in debug mode - -* 1.42.1 (2019-06-04) - - * added support for "Twig\Markup" instances in the "in" test (again) - * allowed string operators as variables names in assignments - -* 1.42.0 (2019-05-31) - - * fixed the "filter" filter when the argument is \Traversable but does not implement \Iterator (\SimpleXmlElement for instance) - * fixed a PHP fatal error when calling a macro imported in a block in a nested block - * fixed a PHP fatal error when calling a macro imported in the template in another macro - * fixed wrong error message on "import" and "from" - -* 1.41.0 (2019-05-14) - - * fixed support for PHP 7.4 - * added "filter", "map", and "reduce" filters (and support for arrow functions) - * fixed partial output leak when a PHP fatal error occurs - * optimized context access on PHP 7.4 - -* 1.40.1 (2019-04-29) - -* fixed regression in NodeTraverser - -* 1.40.0 (2019-04-28) - - * allowed Twig\NodeVisitor\NodeVisitorInterface::leaveNode() to return "null" instead of "false" (same meaning) - * added the "apply" tag as a replacement for the "filter" tag - * allowed Twig\Loader\FilesystemLoader::findTemplate() to return "null" instead of "false" (same meaning) - * added support for "Twig\Markup" instances in the "in" test - * fixed Lexer when using custom options containing the # char - * fixed "import" when macros are stored in a template string - -* 1.39.1 (2019-04-16) - - * fixed EscaperNodeVisitor - -* 1.39.0 (2019-04-16) - - * added Traversable support for the length filter - * fixed some wrong location in error messages - * made exception creation faster - * made escaping on ternary expressions (?: and ??) more fine-grained - * added the possibility to give a nice name to string templates (template_from_string function) - * fixed the "with" behavior to always include the globals (for consistency with the "include" and "embed" tags) - * fixed "include" with "ignore missing" when an error loading occurs in the included template - * added support for a new whitespace trimming option ({%~ ~%}, {{~ ~}}, {#~ ~#}) - -* 1.38.4 (2019-03-23) - - * fixed CheckToStringNode implementation (broken when a function/filter is variadic) - -* 1.38.3 (2019-03-21) - - * fixed the spaceless filter so that it behaves like the spaceless tag - * fixed BC break on Environment::resolveTemplate() - * fixed the bundled Autoloader to also load namespaced classes - * allowed Traversable objects to be used in the "with" tag - * allowed Traversable objects to be used in the "with" argument of the "include" and "embed" tags - -* 1.38.2 (2019-03-12) - - * added TemplateWrapper::getTemplateName() - -* 1.38.1 (2019-03-12) - - * fixed class aliases - -* 1.38.0 (2019-03-12) - - * fixed sandbox security issue (under some circumstances, calling the - __toString() method on an object was possible even if not allowed by the - security policy) - * fixed batch filter clobbers array keys when fill parameter is used - * added preserveKeys support for the batch filter - * fixed "embed" support when used from "template_from_string" - * added the possibility to pass a TemplateWrapper to Twig\Environment::load() - * improved the performance of the sandbox - * added a spaceless filter - * added max value to the "random" function - * made namespace classes the default classes (PSR-0 ones are aliases now) - * removed duplicated directory separator in FilesystemLoader - * added Twig\Loader\ChainLoader::getLoaders() - * changed internal code to use the namespaced classes as much as possible - -* 1.37.1 (2019-01-14) - - * fixed regression (key exists check for non ArrayObject objects) - * fixed logic in TemplateWrapper - -* 1.37.0 (2019-01-14) - - * fixed ArrayObject access with a null value - * fixed embedded templates starting with a BOM - * fixed using a Twig_TemplateWrapper instance as an argument to extends - * switched generated code to use the PHP short array notation - * dropped PHP 5.3 support - * fixed float representation in compiled templates - * added a second argument to the join filter (last separator configuration) - -* 1.36.0 (2018-12-16) - - * made sure twig_include returns a string - * fixed multi-byte UFT-8 in escape('html_attr') - * added the "deprecated" tag - * added support for dynamically named tests - * fixed GlobalsInterface extended class - * fixed filesystem loader throwing an exception instead of returning false - -* 1.35.4 (2018-07-13) - - * ensured that syntax errors are triggered with the right line - * added the Symfony ctype polyfill as a dependency - * "js" filter now produces valid JSON - -* 1.35.3 (2018-03-20) - - * fixed block names unicity - * fixed counting children of SimpleXMLElement objects - * added missing else clause to avoid infinite loops - * fixed .. (range operator) in sandbox policy - -* 1.35.2 (2018-03-03) - - * fixed a regression in the way the profiler is registered in templates - -* 1.35.1 (2018-03-02) - - * added an exception when using "===" instead of "same as" - * fixed possible array to string conversion concealing actual error - * made variable names deterministic in compiled templates - * fixed length filter when passing an instance of IteratorAggregate - * fixed Environment::resolveTemplate to accept instances of TemplateWrapper - -* 1.35.0 (2017-09-27) - - * added Twig_Profiler_Profile::reset() - * fixed use TokenParser to return an empty Node - * added RuntimeExtensionInterface - * added circular reference detection when loading templates - -* 1.34.4 (2017-07-04) - - * added support for runtime loaders in IntegrationTestCase - * fixed deprecation when using Twig_Profiler_Dumper_Html - -* 1.34.3 (2017-06-07) - - * fixed namespaces introduction - -* 1.34.2 (2017-06-05) - - * fixed namespaces introduction - -* 1.34.1 (2017-06-05) - - * fixed namespaces introduction - -* 1.34.0 (2017-06-05) - - * added support for PHPUnit 6 when testing extensions - * fixed PHP 7.2 compatibility - * fixed template name generation in Twig_Environment::createTemplate() - * removed final tag on Twig_TokenParser_Include - * added namespaced aliases for all (non-deprecated) classes and interfaces - * dropped HHVM support - * dropped PHP 5.2 support - -* 1.33.2 (2017-04-20) - - * fixed edge case in the method cache for Twig attributes - -* 1.33.1 (2017-04-18) - - * fixed the empty() test - -* 1.33.0 (2017-03-22) - - * fixed a race condition handling when writing cache files - * "length" filter now returns string length when applied to an object that does - not implement \Countable but provides __toString() - * "empty" test will now consider the return value of the __toString() method for - objects implement __toString() but not \Countable - * fixed JS escaping for unicode characters with higher code points - -* 1.32.0 (2017-02-26) - - * fixed deprecation notice in Twig_Util_DeprecationCollector - * added a PSR-11 compatible runtime loader - * added `side` argument to `trim` to allow left or right trimming only. - -* 1.31.0 (2017-01-11) - - * added Twig_NodeCaptureInterface for nodes that capture all output - * fixed marking the environment as initialized too early - * fixed C89 compat for the C extension - * turned fatal error into exception when a previously generated cache is corrupted - * fixed offline cache warm-ups for embedded templates - -* 1.30.0 (2016-12-23) - - * added Twig_FactoryRuntimeLoader - * deprecated function/test/filter/tag overriding - * deprecated the "disable_c_ext" attribute on Twig_Node_Expression_GetAttr - -* 1.29.0 (2016-12-13) - - * fixed sandbox being left enabled if an exception is thrown while rendering - * marked some classes as being final (via @final) - * made Twig_Error report real source path when possible - * added support for {{ _self }} to provide an upgrade path from 1.x to 2.0 (replaces {{ _self.templateName }}) - * deprecated silent display of undefined blocks - * deprecated support for mbstring.func_overload != 0 - -* 1.28.2 (2016-11-23) - - * fixed precedence between getFoo() and isFoo() in Twig_Template::getAttribute() - * improved a deprecation message - -* 1.28.1 (2016-11-18) - - * fixed block() function when used with a template argument - -* 1.28.0 (2016-11-17) - - * added support for the PHP 7 null coalescing operator for the ?? Twig implementation - * exposed a way to access template data and methods in a portable way - * changed context access to use the PHP 7 null coalescing operator when available - * added the "with" tag - * added support for a custom template on the block() function - * added "is defined" support for block() and constant() - * optimized the way attributes are fetched - -* 1.27.0 (2016-10-25) - - * deprecated Twig_Parser::getEnvironment() - * deprecated Twig_Parser::addHandler() and Twig_Parser::addNodeVisitor() - * deprecated Twig_Compiler::addIndentation() - * fixed regression when registering two extensions having the same class name - * deprecated Twig_LoaderInterface::getSource() (implement Twig_SourceContextLoaderInterface instead) - * fixed the filesystem loader with relative paths - * deprecated Twig_Node::getLine() in favor of Twig_Node::getTemplateLine() - * deprecated Twig_Template::getSource() in favor of Twig_Template::getSourceContext() - * deprecated Twig_Node::getFilename() in favor of Twig_Node::getTemplateName() - * deprecated the "filename" escaping strategy (use "name" instead) - * added Twig_Source to hold information about the original template - * deprecated Twig_Error::getTemplateFile() and Twig_Error::setTemplateFile() in favor of Twig_Error::getTemplateName() and Twig_Error::setTemplateName() - * deprecated Parser::getFilename() - * fixed template paths when a template name contains a protocol like vfs:// - * improved debugging with Twig_Sandbox_SecurityError exceptions for disallowed methods and properties - -* 1.26.1 (2016-10-05) - - * removed template source code from generated template classes when debug is disabled - * fixed default implementation of Twig_Template::getDebugInfo() for better BC - * fixed regression on static calls for functions/filters/tests - -* 1.26.0 (2016-10-02) - - * added template cache invalidation based on more environment options - * added a missing deprecation notice - * fixed template paths when a template is stored in a PHAR file - * allowed filters/functions/tests implementation to use a different class than the extension they belong to - * deprecated Twig_ExtensionInterface::getName() - -* 1.25.0 (2016-09-21) - - * changed the way we store template source in template classes - * removed usage of realpath in cache keys - * fixed Twig cache sharing when used with different versions of PHP - * removed embed parent workaround for simple use cases - * deprecated the ability to store non Node instances in Node::$nodes - * deprecated Twig_Environment::getLexer(), Twig_Environment::getParser(), Twig_Environment::getCompiler() - * deprecated Twig_Compiler::getFilename() - -* 1.24.2 (2016-09-01) - - * fixed static callables - * fixed a potential PHP warning when loading the cache - * fixed a case where the autoescaping does not work as expected - -* 1.24.1 (2016-05-30) - - * fixed reserved keywords (forbids true, false, null and none keywords for variables names) - * fixed support for PHP7 (Throwable support) - * marked the following methods as being internals on Twig_Environment: - getFunctions(), getFilters(), getTests(), getFunction(), getFilter(), getTest(), - getTokenParsers(), getTags(), getNodeVisitors(), getUnaryOperators(), getBinaryOperators(), - getFunctions(), getFilters(), getGlobals(), initGlobals(), initExtensions(), and initExtension() - -* 1.24.0 (2016-01-25) - - * adding support for the ?? operator - * fixed the defined test when used on a constant, a map, or a sequence - * undeprecated _self (should only be used to get the template name, not the template instance) - * fixed parsing on PHP7 - -* 1.23.3 (2016-01-11) - - * fixed typo - -* 1.23.2 (2015-01-11) - - * added versions in deprecated messages - * made file cache tolerant for trailing (back)slashes on directory configuration - * deprecated unused Twig_Node_Expression_ExtensionReference class - -* 1.23.1 (2015-11-05) - - * fixed some exception messages which triggered PHP warnings - * fixed BC on Twig_Test_NodeTestCase - -* 1.23.0 (2015-10-29) - - * deprecated the possibility to override an extension by registering another one with the same name - * deprecated Twig_ExtensionInterface::getGlobals() (added Twig_Extension_GlobalsInterface for BC) - * deprecated Twig_ExtensionInterface::initRuntime() (added Twig_Extension_InitRuntimeInterface for BC) - * deprecated Twig_Environment::computeAlternatives() - -* 1.22.3 (2015-10-13) - - * fixed regression when using null as a cache strategy - * improved performance when checking template freshness - * fixed warnings when loaded templates do not exist - * fixed template class name generation to prevent possible collisions - * fixed logic for custom escapers to call them even on integers and null values - * changed template cache names to take into account the Twig C extension - -* 1.22.2 (2015-09-22) - - * fixed a race condition in template loading - -* 1.22.1 (2015-09-15) - - * fixed regression in template_from_string - -* 1.22.0 (2015-09-13) - - * made Twig_Test_IntegrationTestCase more flexible - * added an option to force PHP bytecode invalidation when writing a compiled template into the cache - * fixed the profiler duration for the root node - * changed template cache names to take into account enabled extensions - * deprecated Twig_Environment::clearCacheFiles(), Twig_Environment::getCacheFilename(), - Twig_Environment::writeCacheFile(), and Twig_Environment::getTemplateClassPrefix() - * added a way to override the filesystem template cache system - * added a way to get the original template source from Twig_Template - -* 1.21.2 (2015-09-09) - - * fixed variable names for the deprecation triggering code - * fixed escaping strategy detection based on filename - * added Traversable support for replace, merge, and sort - * deprecated support for character by character replacement for the "replace" filter - -* 1.21.1 (2015-08-26) - - * fixed regression when using the deprecated Twig_Test_* classes - -* 1.21.0 (2015-08-24) - - * added deprecation notices for deprecated features - * added a deprecation "framework" for filters/functions/tests and test fixtures - -* 1.20.0 (2015-08-12) - - * forbid access to the Twig environment from templates and internal parts of Twig_Template - * fixed limited RCEs when in sandbox mode - * deprecated Twig_Template::getEnvironment() - * deprecated the _self variable for usage outside of the from and import tags - * added Twig_BaseNodeVisitor to ease the compatibility of node visitors - between 1.x and 2.x - -* 1.19.0 (2015-07-31) - - * fixed wrong error message when including an undefined template in a child template - * added support for variadic filters, functions, and tests - * added support for extra positional arguments in macros - * added ignore_missing flag to the source function - * fixed batch filter with zero items - * deprecated Twig_Environment::clearTemplateCache() - * fixed sandbox disabling when using the include function - -* 1.18.2 (2015-06-06) - - * fixed template/line guessing in exceptions for nested templates - * optimized the number of inodes and the size of realpath cache when using the cache - -* 1.18.1 (2015-04-19) - - * fixed memory leaks in the C extension - * deprecated Twig_Loader_String - * fixed the slice filter when used with a SimpleXMLElement object - * fixed filesystem loader when trying to load non-files (like directories) - -* 1.18.0 (2015-01-25) - - * fixed some error messages where the line was wrong (unknown variables or argument names) - * added a new way to customize the main Module node (via empty nodes) - * added Twig_Environment::createTemplate() to create a template from a string - * added a profiler - * fixed filesystem loader cache when different file paths are used for the same template - -* 1.17.0 (2015-01-14) - - * added a 'filename' autoescaping strategy, which dynamically chooses the - autoescaping strategy for a template based on template file extension. - -* 1.16.3 (2014-12-25) - - * fixed regression for dynamic parent templates - * fixed cache management with statcache - * fixed a regression in the slice filter - -* 1.16.2 (2014-10-17) - - * fixed timezone on dates as strings - * fixed 2-words test names when a custom node class is not used - * fixed macros when using an argument named like a PHP super global (like GET or POST) - * fixed date_modify when working with DateTimeImmutable - * optimized for loops - * fixed multi-byte characters handling in the split filter - * fixed a regression in the in operator - * fixed a regression in the slice filter - -* 1.16.1 (2014-10-10) - - * improved error reporting in a sandboxed template - * fixed missing error file/line information under certain circumstances - * fixed wrong error line number in some error messages - * fixed the in operator to use strict comparisons - * sped up the slice filter - * fixed for mb function overload mb_substr acting different - * fixed the attribute() function when passing a variable for the arguments - -* 1.16.0 (2014-07-05) - - * changed url_encode to always encode according to RFC 3986 - * fixed inheritance in a 'use'-hierarchy - * removed the __toString policy check when the sandbox is disabled - * fixed recursively calling blocks in templates with inheritance - -* 1.15.1 (2014-02-13) - - * fixed the conversion of the special '0000-00-00 00:00' date - * added an error message when trying to import an undefined block from a trait - * fixed a C extension crash when accessing defined but uninitialized property. - -* 1.15.0 (2013-12-06) - - * made ignoreStrictCheck in Template::getAttribute() works with __call() methods throwing BadMethodCallException - * added min and max functions - * added the round filter - * fixed a bug that prevented the optimizers to be enabled/disabled selectively - * fixed first and last filters for UTF-8 strings - * added a source function to include the content of a template without rendering it - * fixed the C extension sandbox behavior when get or set is prepend to method name - -* 1.14.2 (2013-10-30) - - * fixed error filename/line when an error occurs in an included file - * allowed operators that contain whitespaces to have more than one whitespace - * allowed tests to be made of 1 or 2 words (like "same as" or "divisible by") - -* 1.14.1 (2013-10-15) - - * made it possible to use named operators as variables - * fixed the possibility to have a variable named 'matches' - * added support for PHP 5.5 DateTimeInterface - -* 1.14.0 (2013-10-03) - - * fixed usage of the html_attr escaping strategy to avoid double-escaping with the html strategy - * added new operators: ends with, starts with, and matches - * fixed some compatibility issues with HHVM - * added a way to add custom escaping strategies - * fixed the C extension compilation on Windows - * fixed the batch filter when using a fill argument with an exact match of elements to batch - * fixed the filesystem loader cache when a template name exists in several namespaces - * fixed template_from_string when the template includes or extends other ones - * fixed a crash of the C extension on an edge case - -* 1.13.2 (2013-08-03) - - * fixed the error line number for an error occurs in and embedded template - * fixed crashes of the C extension on some edge cases - -* 1.13.1 (2013-06-06) - - * added the possibility to ignore the filesystem constructor argument in Twig_Loader_Filesystem - * fixed Twig_Loader_Chain::exists() for a loader which implements Twig_ExistsLoaderInterface - * adjusted backtrace call to reduce memory usage when an error occurs - * added support for object instances as the second argument of the constant test - * fixed the include function when used in an assignment - -* 1.13.0 (2013-05-10) - - * fixed getting a numeric-like item on a variable ('09' for instance) - * fixed getting a boolean or float key on an array, so it is consistent with PHP's array access: - `{{ array[false] }}` behaves the same as `echo $array[false];` (equals `$array[0]`) - * made the escape filter 20% faster for happy path (escaping string for html with UTF-8) - * changed ☃ to § in tests - * enforced usage of named arguments after positional ones - -* 1.12.3 (2013-04-08) - - * fixed a security issue in the filesystem loader where it was possible to include a template one - level above the configured path - * fixed fatal error that should be an exception when adding a filter/function/test too late - * added a batch filter - * added support for encoding an array as query string in the url_encode filter - -* 1.12.2 (2013-02-09) - - * fixed the timezone used by the date filter and function when the given date contains a timezone (like 2010-01-28T15:00:00+02:00) - * fixed globals when getGlobals is called early on - * added the first and last filter - -* 1.12.1 (2013-01-15) - - * added support for object instances as the second argument of the constant function - * relaxed globals management to avoid a BC break - * added support for {{ some_string[:2] }} - -* 1.12.0 (2013-01-08) - - * added verbatim as an alias for the raw tag to avoid confusion with the raw filter - * fixed registration of tests and functions as anonymous functions - * fixed globals management - -* 1.12.0-RC1 (2012-12-29) - - * added an include function (does the same as the include tag but in a more flexible way) - * added the ability to use any PHP callable to define filters, functions, and tests - * added a syntax error when using a loop variable that is not defined - * added the ability to set default values for macro arguments - * added support for named arguments for filters, tests, and functions - * moved filters/functions/tests syntax errors to the parser - * added support for extended ternary operator syntaxes - -* 1.11.1 (2012-11-11) - - * fixed debug info line numbering (was off by 2) - * fixed escaping when calling a macro inside another one (regression introduced in 1.9.1) - * optimized variable access on PHP 5.4 - * fixed a crash of the C extension when an exception was thrown from a macro called without being imported (using _self.XXX) - -* 1.11.0 (2012-11-07) - - * fixed macro compilation when a variable name is a PHP reserved keyword - * changed the date filter behavior to always apply the default timezone, except if false is passed as the timezone - * fixed bitwise operator precedences - * added the template_from_string function - * fixed default timezone usage for the date function - * optimized the way Twig exceptions are managed (to make them faster) - * added Twig_ExistsLoaderInterface (implementing this interface in your loader make the chain loader much faster) - -* 1.10.3 (2012-10-19) - - * fixed wrong template location in some error messages - * reverted a BC break introduced in 1.10.2 - * added a split filter - -* 1.10.2 (2012-10-15) - - * fixed macro calls on PHP 5.4 - -* 1.10.1 (2012-10-15) - - * made a speed optimization to macro calls when imported via the "import" tag - * fixed C extension compilation on Windows - * fixed a segfault in the C extension when using DateTime objects - -* 1.10.0 (2012-09-28) - - * extracted functional tests framework to make it reusable for third-party extensions - * added namespaced templates support in Twig_Loader_Filesystem - * added Twig_Loader_Filesystem::prependPath() - * fixed an error when a token parser pass a closure as a test to the subparse() method - -* 1.9.2 (2012-08-25) - - * fixed the in operator for objects that contain circular references - * fixed the C extension when accessing a public property of an object implementing the \ArrayAccess interface - -* 1.9.1 (2012-07-22) - - * optimized macro calls when auto-escaping is on - * fixed wrong parent class for Twig_Function_Node - * made Twig_Loader_Chain more explicit about problems - -* 1.9.0 (2012-07-13) - - * made the parsing independent of the template loaders - * fixed exception trace when an error occurs when rendering a child template - * added escaping strategies for CSS, URL, and HTML attributes - * fixed nested embed tag calls - * added the date_modify filter - -* 1.8.3 (2012-06-17) - - * fixed paths in the filesystem loader when passing a path that ends with a slash or a backslash - * fixed escaping when a project defines a function named html or js - * fixed chmod mode to apply the umask correctly - -* 1.8.2 (2012-05-30) - - * added the abs filter - * fixed a regression when using a number in template attributes - * fixed compiler when mbstring.func_overload is set to 2 - * fixed DateTimeZone support in date filter - -* 1.8.1 (2012-05-17) - - * fixed a regression when dealing with SimpleXMLElement instances in templates - * fixed "is_safe" value for the "dump" function when "html_errors" is not defined in php.ini - * switched to use mbstring whenever possible instead of iconv (you might need to update your encoding as mbstring and iconv encoding names sometimes differ) - -* 1.8.0 (2012-05-08) - - * enforced interface when adding tests, filters, functions, and node visitors from extensions - * fixed a side-effect of the date filter where the timezone might be changed - * simplified usage of the autoescape tag; the only (optional) argument is now the escaping strategy or false (with a BC layer) - * added a way to dynamically change the auto-escaping strategy according to the template "filename" - * changed the autoescape option to also accept a supported escaping strategy (for BC, true is equivalent to html) - * added an embed tag - -* 1.7.0 (2012-04-24) - - * fixed a PHP warning when using CIFS - * fixed template line number in some exceptions - * added an iterable test - * added an error when defining two blocks with the same name in a template - * added the preserves_safety option for filters - * fixed a PHP notice when trying to access a key on a non-object/array variable - * enhanced error reporting when the template file is an instance of SplFileInfo - * added Twig_Environment::mergeGlobals() - * added compilation checks to avoid misuses of the sandbox tag - * fixed filesystem loader freshness logic for high traffic websites - * fixed random function when charset is null - -* 1.6.5 (2012-04-11) - - * fixed a regression when a template only extends another one without defining any blocks - -* 1.6.4 (2012-04-02) - - * fixed PHP notice in Twig_Error::guessTemplateLine() introduced in 1.6.3 - * fixed performance when compiling large files - * optimized parent template creation when the template does not use dynamic inheritance - -* 1.6.3 (2012-03-22) - - * fixed usage of Z_ADDREF_P for PHP 5.2 in the C extension - * fixed compilation of numeric values used in templates when using a locale where the decimal separator is not a dot - * made the strategy used to guess the real template file name and line number in exception messages much faster and more accurate - -* 1.6.2 (2012-03-18) - - * fixed sandbox mode when used with inheritance - * added preserveKeys support for the slice filter - * fixed the date filter when a DateTime instance is passed with a specific timezone - * added a trim filter - -* 1.6.1 (2012-02-29) - - * fixed Twig C extension - * removed the creation of Twig_Markup instances when not needed - * added a way to set the default global timezone for dates - * fixed the slice filter on strings when the length is not specified - * fixed the creation of the cache directory in case of a race condition - -* 1.6.0 (2012-02-04) - - * fixed raw blocks when used with the whitespace trim option - * made a speed optimization to macro calls when imported via the "from" tag - * fixed globals, parsers, visitors, filters, tests, and functions management in Twig_Environment when a new one or new extension is added - * fixed the attribute function when passing arguments - * added slice notation support for the [] operator (syntactic sugar for the slice operator) - * added a slice filter - * added string support for the reverse filter - * fixed the empty test and the length filter for Twig_Markup instances - * added a date function to ease date comparison - * fixed unary operators precedence - * added recursive parsing support in the parser - * added string and integer handling for the random function - -* 1.5.1 (2012-01-05) - - * fixed a regression when parsing strings - -* 1.5.0 (2012-01-04) - - * added Traversable objects support for the join filter - -* 1.5.0-RC2 (2011-12-30) - - * added a way to set the default global date interval format - * fixed the date filter for DateInterval instances (setTimezone() does not exist for them) - * refactored Twig_Template::display() to ease its extension - * added a number_format filter - -* 1.5.0-RC1 (2011-12-26) - - * removed the need to quote hash keys - * allowed hash keys to be any expression - * added a do tag - * added a flush tag - * added support for dynamically named filters and functions - * added a dump function to help debugging templates - * added a nl2br filter - * added a random function - * added a way to change the default format for the date filter - * fixed the lexer when an operator ending with a letter ends a line - * added string interpolation support - * enhanced exceptions for unknown filters, functions, tests, and tags - -* 1.4.0 (2011-12-07) - - * fixed lexer when using big numbers (> PHP_INT_MAX) - * added missing preserveKeys argument to the reverse filter - * fixed macros containing filter tag calls - -* 1.4.0-RC2 (2011-11-27) - - * removed usage of Reflection in Twig_Template::getAttribute() - * added a C extension that can optionally replace Twig_Template::getAttribute() - * added negative timestamp support to the date filter - -* 1.4.0-RC1 (2011-11-20) - - * optimized variable access when using PHP 5.4 - * changed the precedence of the .. operator to be more consistent with languages that implements such a feature like Ruby - * added an Exception to Twig_Loader_Array::isFresh() method when the template does not exist to be consistent with other loaders - * added Twig_Function_Node to allow more complex functions to have their own Node class - * added Twig_Filter_Node to allow more complex filters to have their own Node class - * added Twig_Test_Node to allow more complex tests to have their own Node class - * added a better error message when a template is empty but contain a BOM - * fixed "in" operator for empty strings - * fixed the "defined" test and the "default" filter (now works with more than one call (foo.bar.foo) and for both values of the strict_variables option) - * changed the way extensions are loaded (addFilter/addFunction/addGlobal/addTest/addNodeVisitor/addTokenParser/addExtension can now be called in any order) - * added Twig_Environment::display() - * made the escape filter smarter when the encoding is not supported by PHP - * added a convert_encoding filter - * moved all node manipulations outside the compile() Node method - * made several speed optimizations - -* 1.3.0 (2011-10-08) - -no changes - -* 1.3.0-RC1 (2011-10-04) - - * added an optimization for the parent() function - * added cache reloading when auto_reload is true and an extension has been modified - * added the possibility to force the escaping of a string already marked as safe (instance of Twig_Markup) - * allowed empty templates to be used as traits - * added traits support for the "parent" function - -* 1.2.0 (2011-09-13) - -no changes - -* 1.2.0-RC1 (2011-09-10) - - * enhanced the exception when a tag remains unclosed - * added support for empty Countable objects for the "empty" test - * fixed algorithm that determines if a template using inheritance is valid (no output between block definitions) - * added better support for encoding problems when escaping a string (available as of PHP 5.4) - * added a way to ignore a missing template when using the "include" tag ({% include "foo" ignore missing %}) - * added support for an array of templates to the "include" and "extends" tags ({% include ['foo', 'bar'] %}) - * added support for bitwise operators in expressions - * added the "attribute" function to allow getting dynamic attributes on variables - * added Twig_Loader_Chain - * added Twig_Loader_Array::setTemplate() - * added an optimization for the set tag when used to capture a large chunk of static text - * changed name regex to match PHP one "[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*" (works for blocks, tags, functions, filters, and macros) - * removed the possibility to use the "extends" tag from a block - * added "if" modifier support to "for" loops - -* 1.1.2 (2011-07-30) - - * fixed json_encode filter on PHP 5.2 - * fixed regression introduced in 1.1.1 ({{ block(foo|lower) }}) - * fixed inheritance when using conditional parents - * fixed compilation of templates when the body of a child template is not empty - * fixed output when a macro throws an exception - * fixed a parsing problem when a large chunk of text is enclosed in a comment tag - * added PHPDoc for all Token parsers and Core extension functions - -* 1.1.1 (2011-07-17) - - * added a performance optimization in the Optimizer (also helps to lower the number of nested level calls) - * made some performance improvement for some edge cases - -* 1.1.0 (2011-06-28) - - * fixed json_encode filter - -* 1.1.0-RC3 (2011-06-24) - - * fixed method case-sensitivity when using the sandbox mode - * added timezone support for the date filter - * fixed possible security problems with NUL bytes - -* 1.1.0-RC2 (2011-06-16) - - * added an exception when the template passed to "use" is not a string - * made 'a.b is defined' not throw an exception if a is not defined (in strict mode) - * added {% line \d+ %} directive - -* 1.1.0-RC1 (2011-05-28) - -Flush your cache after upgrading. - - * fixed date filter when using a timestamp - * fixed the defined test for some cases - * fixed a parsing problem when a large chunk of text is enclosed in a raw tag - * added support for horizontal reuse of template blocks (see docs for more information) - * added whitespace control modifier to all tags (see docs for more information) - * added null as an alias for none (the null test is also an alias for the none test now) - * made TRUE, FALSE, NONE equivalent to their lowercase counterparts - * wrapped all compilation and runtime exceptions with Twig_Error_Runtime and added logic to guess the template name and line - * moved display() method to Twig_Template (generated templates should now use doDisplay() instead) - -* 1.0.0 (2011-03-27) - - * fixed output when using mbstring - * fixed duplicate call of methods when using the sandbox - * made the charset configurable for the escape filter - -* 1.0.0-RC2 (2011-02-21) - - * changed the way {% set %} works when capturing (the content is now marked as safe) - * added support for macro name in the endmacro tag - * make Twig_Error compatible with PHP 5.3.0 > - * fixed an infinite loop on some Windows configurations - * fixed the "length" filter for numbers - * fixed Template::getAttribute() as properties in PHP are case sensitive - * removed coupling between Twig_Node and Twig_Template - * fixed the ternary operator precedence rule - -* 1.0.0-RC1 (2011-01-09) - -Backward incompatibilities: - - * the "items" filter, which has been deprecated for quite a long time now, has been removed - * the "range" filter has been converted to a function: 0|range(10) -> range(0, 10) - * the "constant" filter has been converted to a function: {{ some_date|date('DATE_W3C'|constant) }} -> {{ some_date|date(constant('DATE_W3C')) }} - * the "cycle" filter has been converted to a function: {{ ['odd', 'even']|cycle(i) }} -> {{ cycle(['odd', 'even'], i) }} - * the "for" tag does not support "joined by" anymore - * the "autoescape" first argument is now "true"/"false" (instead of "on"/"off") - * the "parent" tag has been replaced by a "parent" function ({{ parent() }} instead of {% parent %}) - * the "display" tag has been replaced by a "block" function ({{ block('title') }} instead of {% display title %}) - * removed the grammar and simple token parser (moved to the Twig Extensions repository) - -Changes: - - * added "needs_context" option for filters and functions (the context is then passed as a first argument) - * added global variables support - * made macros return their value instead of echoing directly (fixes calling a macro in sandbox mode) - * added the "from" tag to import macros as functions - * added support for functions (a function is just syntactic sugar for a getAttribute() call) - * made macros callable when sandbox mode is enabled - * added an exception when a macro uses a reserved name - * the "default" filter now uses the "empty" test instead of just checking for null - * added the "empty" test - -* 0.9.10 (2010-12-16) - -Backward incompatibilities: - - * The Escaper extension is enabled by default, which means that all displayed - variables are now automatically escaped. You can revert to the previous - behavior by removing the extension via $env->removeExtension('escaper') - or just set the 'autoescape' option to 'false'. - * removed the "without loop" attribute for the "for" tag (not needed anymore - as the Optimizer take care of that for most cases) - * arrays and hashes have now a different syntax - * arrays keep the same syntax with square brackets: [1, 2] - * hashes now use curly braces (["a": "b"] should now be written as {"a": "b"}) - * support for "arrays with keys" and "hashes without keys" is not supported anymore ([1, "foo": "bar"] or {"foo": "bar", 1}) - * the i18n extension is now part of the Twig Extensions repository - -Changes: - - * added the merge filter - * removed 'is_escaper' option for filters (a left over from the previous version) -- you must use 'is_safe' now instead - * fixed usage of operators as method names (like is, in, and not) - * changed the order of execution for node visitors - * fixed default() filter behavior when used with strict_variables set to on - * fixed filesystem loader compatibility with PHAR files - * enhanced error messages when an unexpected token is parsed in an expression - * fixed filename not being added to syntax error messages - * added the autoescape option to enable/disable autoescaping - * removed the newline after a comment (mimics PHP behavior) - * added a syntax error exception when parent block is used on a template that does not extend another one - * made the Escaper extension enabled by default - * fixed sandbox extension when used with auto output escaping - * fixed escaper when wrapping a Twig_Node_Print (the original class must be preserved) - * added an Optimizer extension (enabled by default; optimizes "for" loops and "raw" filters) - * added priority to node visitors - -* 0.9.9 (2010-11-28) - -Backward incompatibilities: - * the self special variable has been renamed to _self - * the odd and even filters are now tests: - {{ foo|odd }} must now be written {{ foo is odd }} - * the "safe" filter has been renamed to "raw" - * in Node classes, - sub-nodes are now accessed via getNode() (instead of property access) - attributes via getAttribute() (instead of array access) - * the urlencode filter had been renamed to url_encode - * the include tag now merges the passed variables with the current context by default - (the old behavior is still possible by adding the "only" keyword) - * moved Exceptions to Twig_Error_* (Twig_SyntaxError/Twig_RuntimeError are now Twig_Error_Syntax/Twig_Error_Runtime) - * removed support for {{ 1 < i < 3 }} (use {{ i > 1 and i < 3 }} instead) - * the "in" filter has been removed ({{ a|in(b) }} should now be written {{ a in b }}) - -Changes: - * added file and line to Twig_Error_Runtime exceptions thrown from Twig_Template - * changed trans tag to accept any variable for the plural count - * fixed sandbox mode (__toString() method check was not enforced if called implicitly from complex statements) - * added the ** (power) operator - * changed the algorithm used for parsing expressions - * added the spaceless tag - * removed trim_blocks option - * added support for is*() methods for attributes (foo.bar now looks for foo->getBar() or foo->isBar()) - * changed all exceptions to extend Twig_Error - * fixed unary expressions ({{ not(1 or 0) }}) - * fixed child templates (with an extend tag) that uses one or more imports - * added support for {{ 1 not in [2, 3] }} (more readable than the current {{ not (1 in [2, 3]) }}) - * escaping has been rewritten - * the implementation of template inheritance has been rewritten - (blocks can now be called individually and still work with inheritance) - * fixed error handling for if tag when a syntax error occurs within a subparse process - * added a way to implement custom logic for resolving token parsers given a tag name - * fixed js escaper to be stricter (now uses a whilelist-based js escaper) - * added the following filers: "constant", "trans", "replace", "json_encode" - * added a "constant" test - * fixed objects with __toString() not being autoescaped - * fixed subscript expressions when calling __call() (methods now keep the case) - * added "test" feature (accessible via the "is" operator) - * removed the debug tag (should be done in an extension) - * fixed trans tag when no vars are used in plural form - * fixed race condition when writing template cache - * added the special _charset variable to reference the current charset - * added the special _context variable to reference the current context - * renamed self to _self (to avoid conflict) - * fixed Twig_Template::getAttribute() for protected properties - -* 0.9.8 (2010-06-28) - -Backward incompatibilities: - * the trans tag plural count is now attached to the plural tag: - old: `{% trans count %}...{% plural %}...{% endtrans %}` - new: `{% trans %}...{% plural count %}...{% endtrans %}` - - * added a way to translate strings coming from a variable ({% trans var %}) - * fixed trans tag when used with the Escaper extension - * fixed default cache umask - * removed Twig_Template instances from the debug tag output - * fixed objects with __isset() defined - * fixed set tag when used with a capture - * fixed type hinting for Twig_Environment::addFilter() method - -* 0.9.7 (2010-06-12) - -Backward incompatibilities: - * changed 'as' to '=' for the set tag ({% set title as "Title" %} must now be {% set title = "Title" %}) - * removed the sandboxed attribute of the include tag (use the new sandbox tag instead) - * refactored the Node system (if you have custom nodes, you will have to update them to use the new API) - - * added self as a special variable that refers to the current template (useful for importing macros from the current template) - * added Twig_Template instance support to the include tag - * added support for dynamic and conditional inheritance ({% extends some_var %} and {% extends standalone ? "minimum" : "base" %}) - * added a grammar sub-framework to ease the creation of custom tags - * fixed the for tag for large arrays (some loop variables are now only available for arrays and objects that implement the Countable interface) - * removed the Twig_Resource::resolveMissingFilter() method - * fixed the filter tag which did not apply filtering to included files - * added a bunch of unit tests - * added a bunch of phpdoc - * added a sandbox tag in the sandbox extension - * changed the date filter to support any date format supported by DateTime - * added strict_variable setting to throw an exception when an invalid variable is used in a template (disabled by default) - * added the lexer, parser, and compiler as arguments to the Twig_Environment constructor - * changed the cache option to only accepts an explicit path to a cache directory or false - * added a way to add token parsers, filters, and visitors without creating an extension - * added three interfaces: Twig_NodeInterface, Twig_TokenParserInterface, and Twig_FilterInterface - * changed the generated code to match the new coding standards - * fixed sandbox mode (__toString() method check was not enforced if called implicitly from a simple statement like {{ article }}) - * added an exception when a child template has a non-empty body (as it is always ignored when rendering) - -* 0.9.6 (2010-05-12) - - * fixed variables defined outside a loop and for which the value changes in a for loop - * fixed the test suite for PHP 5.2 and older versions of PHPUnit - * added support for __call() in expression resolution - * fixed node visiting for macros (macros are now visited by visitors as any other node) - * fixed nested block definitions with a parent call (rarely useful but nonetheless supported now) - * added the cycle filter - * fixed the Lexer when mbstring.func_overload is used with an mbstring.internal_encoding different from ASCII - * added a long-syntax for the set tag ({% set foo %}...{% endset %}) - * unit tests are now powered by PHPUnit - * added support for gettext via the `i18n` extension - * fixed twig_capitalize_string_filter() and fixed twig_length_filter() when used with UTF-8 values - * added a more useful exception if an if tag is not closed properly - * added support for escaping strategy in the autoescape tag - * fixed lexer when a template has a big chunk of text between/in a block - -* 0.9.5 (2010-01-20) - -As for any new release, don't forget to remove all cached templates after -upgrading. - -If you have defined custom filters, you MUST upgrade them for this release. To -upgrade, replace "array" with "new Twig_Filter_Function", and replace the -environment constant by the "needs_environment" option: - - // before - 'even' => array('twig_is_even_filter', false), - 'escape' => array('twig_escape_filter', true), - - // after - 'even' => new Twig_Filter_Function('twig_is_even_filter'), - 'escape' => new Twig_Filter_Function('twig_escape_filter', array('needs_environment' => true)), - -If you have created NodeTransformer classes, you will need to upgrade them to -the new interface (please note that the interface is not yet considered -stable). - - * fixed list nodes that did not extend the Twig_NodeListInterface - * added the "without loop" option to the for tag (it disables the generation of the loop variable) - * refactored node transformers to node visitors - * fixed automatic-escaping for blocks - * added a way to specify variables to pass to an included template - * changed the automatic-escaping rules to be more sensible and more configurable in custom filters (the documentation lists all the rules) - * improved the filter system to allow object methods to be used as filters - * changed the Array and String loaders to actually make use of the cache mechanism - * included the default filter function definitions in the extension class files directly (Core, Escaper) - * added the // operator (like the floor() PHP function) - * added the .. operator (as a syntactic sugar for the range filter when the step is 1) - * added the in operator (as a syntactic sugar for the in filter) - * added the following filters in the Core extension: in, range - * added support for arrays (same behavior as in PHP, a mix between lists and dictionaries, arrays and hashes) - * enhanced some error messages to provide better feedback in case of parsing errors - -* 0.9.4 (2009-12-02) - -If you have custom loaders, you MUST upgrade them for this release: The -Twig_Loader base class has been removed, and the Twig_LoaderInterface has also -been changed (see the source code for more information or the documentation). - - * added support for DateTime instances for the date filter - * fixed loop.last when the array only has one item - * made it possible to insert newlines in tag and variable blocks - * fixed a bug when a literal '\n' were present in a template text - * fixed bug when the filename of a template contains */ - * refactored loaders - -* 0.9.3 (2009-11-11) - -This release is NOT backward compatible with the previous releases. - - The loaders do not take the cache and autoReload arguments anymore. Instead, - the Twig_Environment class has two new options: cache and auto_reload. - Upgrading your code means changing this kind of code: - - $loader = new Twig_Loader_Filesystem('/path/to/templates', '/path/to/compilation_cache', true); - $twig = new Twig_Environment($loader); - - to something like this: - - $loader = new Twig_Loader_Filesystem('/path/to/templates'); - $twig = new Twig_Environment($loader, array( - 'cache' => '/path/to/compilation_cache', - 'auto_reload' => true, - )); - - * deprecated the "items" filter as it is not needed anymore - * made cache and auto_reload options of Twig_Environment instead of arguments of Twig_Loader - * optimized template loading speed - * removed output when an error occurs in a template and render() is used - * made major speed improvements for loops (up to 300% on even the smallest loops) - * added properties as part of the sandbox mode - * added public properties support (obj.item can now be the item property on the obj object) - * extended set tag to support expression as value ({% set foo as 'foo' ~ 'bar' %} ) - * fixed bug when \ was used in HTML - -* 0.9.2 (2009-10-29) - - * made some speed optimizations - * changed the cache extension to .php - * added a js escaping strategy - * added support for short block tag - * changed the filter tag to allow chained filters - * made lexer more flexible as you can now change the default delimiters - * added set tag - * changed default directory permission when cache dir does not exist (more secure) - * added macro support - * changed filters first optional argument to be a Twig_Environment instance instead of a Twig_Template instance - * made Twig_Autoloader::autoload() a static method - * avoid writing template file if an error occurs - * added $ escaping when outputting raw strings - * enhanced some error messages to ease debugging - * fixed empty cache files when the template contains an error - -* 0.9.1 (2009-10-14) - - * fixed a bug in PHP 5.2.6 - * fixed numbers with one than one decimal - * added support for method calls with arguments ({{ foo.bar('a', 43) }}) - * made small speed optimizations - * made minor tweaks to allow better extensibility and flexibility - -* 0.9.0 (2009-10-12) - - * Initial release diff --git a/srcs/phpmyadmin/vendor/twig/twig/LICENSE b/srcs/phpmyadmin/vendor/twig/twig/LICENSE deleted file mode 100644 index d06ced2..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/LICENSE +++ /dev/null @@ -1,31 +0,0 @@ -Copyright (c) 2009-2019 by the Twig Team. - -Some rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - * The names of the contributors may not be used to endorse or - promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/srcs/phpmyadmin/vendor/twig/twig/README.rst b/srcs/phpmyadmin/vendor/twig/twig/README.rst deleted file mode 100644 index d896ff5..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/README.rst +++ /dev/null @@ -1,24 +0,0 @@ -Twig, the flexible, fast, and secure template language for PHP -============================================================== - -Twig is a template language for PHP, released under the new BSD license (code -and documentation). - -Twig uses a syntax similar to the Django and Jinja template languages which -inspired the Twig runtime environment. - -Sponsors --------- - -.. raw:: html - - - Blackfire.io - - -More Information ----------------- - -Read the `documentation`_ for more information. - -.. _documentation: https://twig.symfony.com/documentation diff --git a/srcs/phpmyadmin/vendor/twig/twig/composer.json b/srcs/phpmyadmin/vendor/twig/twig/composer.json deleted file mode 100644 index 0d1c0ad..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/composer.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "name": "twig/twig", - "type": "library", - "description": "Twig, the flexible, fast, and secure template language for PHP", - "keywords": ["templating"], - "homepage": "https://twig.symfony.com", - "license": "BSD-3-Clause", - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" - }, - { - "name": "Twig Team", - "role": "Contributors" - }, - { - "name": "Armin Ronacher", - "email": "armin.ronacher@active-4.com", - "role": "Project Founder" - } - ], - "require": { - "php": "^7.0", - "symfony/polyfill-mbstring": "^1.3", - "symfony/polyfill-ctype": "^1.8" - }, - "require-dev": { - "symfony/phpunit-bridge": "^4.4|^5.0", - "psr/container": "^1.0" - }, - "autoload": { - "psr-0" : { - "Twig_" : "lib/" - }, - "psr-4" : { - "Twig\\" : "src/" - } - }, - "autoload-dev": { - "psr-4" : { - "Twig\\Tests\\" : "tests/" - } - }, - "extra": { - "branch-alias": { - "dev-master": "2.12-dev" - } - } -} diff --git a/srcs/phpmyadmin/vendor/twig/twig/drupal_test.sh b/srcs/phpmyadmin/vendor/twig/twig/drupal_test.sh deleted file mode 100755 index 75d5f02..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/drupal_test.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/bash - -set -x -set -e - -REPO=`pwd` -cd /tmp -rm -rf drupal-twig-test -composer create-project --no-interaction drupal-composer/drupal-project:8.x-dev drupal-twig-test -cd drupal-twig-test -(cd vendor/twig && rm -rf twig && ln -sf $REPO twig) -echo '$config["system.logging"]["error_level"] = "verbose";' >> web/sites/default/settings.php -composer require drupal/core:8.7.x-dev webflo/drupal-core-require-dev:8.7.x-dev "egulias/email-validator:^2.0" -php ./web/core/scripts/drupal install --no-interaction demo_umami > output -perl -p -i -e 's/^([A-Za-z]+)\: (.+)$/export DRUPAL_\1=\2/' output -source output - -wget https://get.symfony.com/cli/installer -O - | bash -export PATH="$HOME/.symfony/bin:$PATH" -symfony server:start -d --no-tls - -curl -OLsS https://get.blackfire.io/blackfire-player.phar -chmod +x blackfire-player.phar -cat > drupal-tests.bkf < - */ -interface CacheInterface -{ - /** - * Generates a cache key for the given template class name. - * - * @param string $name The template name - * @param string $className The template class name - * - * @return string - */ - public function generateKey($name, $className); - - /** - * Writes the compiled template to cache. - * - * @param string $key The cache key - * @param string $content The template representation as a PHP class - */ - public function write($key, $content); - - /** - * Loads a template from the cache. - * - * @param string $key The cache key - */ - public function load($key); - - /** - * Returns the modification timestamp of a key. - * - * @param string $key The cache key - * - * @return int - */ - public function getTimestamp($key); -} - -class_alias('Twig\Cache\CacheInterface', 'Twig_CacheInterface'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Cache/FilesystemCache.php b/srcs/phpmyadmin/vendor/twig/twig/src/Cache/FilesystemCache.php deleted file mode 100644 index b7c1e43..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Cache/FilesystemCache.php +++ /dev/null @@ -1,93 +0,0 @@ - - */ -class FilesystemCache implements CacheInterface -{ - const FORCE_BYTECODE_INVALIDATION = 1; - - private $directory; - private $options; - - /** - * @param string $directory The root cache directory - * @param int $options A set of options - */ - public function __construct($directory, $options = 0) - { - $this->directory = rtrim($directory, '\/').'/'; - $this->options = $options; - } - - public function generateKey($name, $className) - { - $hash = hash('sha256', $className); - - return $this->directory.$hash[0].$hash[1].'/'.$hash.'.php'; - } - - public function load($key) - { - if (file_exists($key)) { - @include_once $key; - } - } - - public function write($key, $content) - { - $dir = \dirname($key); - if (!is_dir($dir)) { - if (false === @mkdir($dir, 0777, true)) { - clearstatcache(true, $dir); - if (!is_dir($dir)) { - throw new \RuntimeException(sprintf('Unable to create the cache directory (%s).', $dir)); - } - } - } elseif (!is_writable($dir)) { - throw new \RuntimeException(sprintf('Unable to write in the cache directory (%s).', $dir)); - } - - $tmpFile = tempnam($dir, basename($key)); - if (false !== @file_put_contents($tmpFile, $content) && @rename($tmpFile, $key)) { - @chmod($key, 0666 & ~umask()); - - if (self::FORCE_BYTECODE_INVALIDATION == ($this->options & self::FORCE_BYTECODE_INVALIDATION)) { - // Compile cached file into bytecode cache - if (\function_exists('opcache_invalidate') && filter_var(ini_get('opcache.enable'), FILTER_VALIDATE_BOOLEAN)) { - @opcache_invalidate($key, true); - } elseif (\function_exists('apc_compile_file')) { - apc_compile_file($key); - } - } - - return; - } - - throw new \RuntimeException(sprintf('Failed to write cache file "%s".', $key)); - } - - public function getTimestamp($key) - { - if (!file_exists($key)) { - return 0; - } - - return (int) @filemtime($key); - } -} - -class_alias('Twig\Cache\FilesystemCache', 'Twig_Cache_Filesystem'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Cache/NullCache.php b/srcs/phpmyadmin/vendor/twig/twig/src/Cache/NullCache.php deleted file mode 100644 index 02c868c..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Cache/NullCache.php +++ /dev/null @@ -1,40 +0,0 @@ - - */ -final class NullCache implements CacheInterface -{ - public function generateKey($name, $className) - { - return ''; - } - - public function write($key, $content) - { - } - - public function load($key) - { - } - - public function getTimestamp($key) - { - return 0; - } -} - -class_alias('Twig\Cache\NullCache', 'Twig_Cache_Null'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Compiler.php b/srcs/phpmyadmin/vendor/twig/twig/src/Compiler.php deleted file mode 100644 index 56933e2..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Compiler.php +++ /dev/null @@ -1,245 +0,0 @@ - - */ -class Compiler -{ - private $lastLine; - private $source; - private $indentation; - private $env; - private $debugInfo = []; - private $sourceOffset; - private $sourceLine; - private $varNameSalt = 0; - - public function __construct(Environment $env) - { - $this->env = $env; - } - - /** - * Returns the environment instance related to this compiler. - * - * @return Environment - */ - public function getEnvironment() - { - return $this->env; - } - - /** - * Gets the current PHP code after compilation. - * - * @return string The PHP code - */ - public function getSource() - { - return $this->source; - } - - /** - * Compiles a node. - * - * @param int $indentation The current indentation - * - * @return $this - */ - public function compile(Node $node, $indentation = 0) - { - $this->lastLine = null; - $this->source = ''; - $this->debugInfo = []; - $this->sourceOffset = 0; - // source code starts at 1 (as we then increment it when we encounter new lines) - $this->sourceLine = 1; - $this->indentation = $indentation; - $this->varNameSalt = 0; - - $node->compile($this); - - return $this; - } - - public function subcompile(Node $node, $raw = true) - { - if (false === $raw) { - $this->source .= str_repeat(' ', $this->indentation * 4); - } - - $node->compile($this); - - return $this; - } - - /** - * Adds a raw string to the compiled code. - * - * @param string $string The string - * - * @return $this - */ - public function raw($string) - { - $this->source .= $string; - - return $this; - } - - /** - * Writes a string to the compiled code by adding indentation. - * - * @return $this - */ - public function write(...$strings) - { - foreach ($strings as $string) { - $this->source .= str_repeat(' ', $this->indentation * 4).$string; - } - - return $this; - } - - /** - * Adds a quoted string to the compiled code. - * - * @param string $value The string - * - * @return $this - */ - public function string($value) - { - $this->source .= sprintf('"%s"', addcslashes($value, "\0\t\"\$\\")); - - return $this; - } - - /** - * Returns a PHP representation of a given value. - * - * @param mixed $value The value to convert - * - * @return $this - */ - public function repr($value) - { - if (\is_int($value) || \is_float($value)) { - if (false !== $locale = setlocale(LC_NUMERIC, '0')) { - setlocale(LC_NUMERIC, 'C'); - } - - $this->raw(var_export($value, true)); - - if (false !== $locale) { - setlocale(LC_NUMERIC, $locale); - } - } elseif (null === $value) { - $this->raw('null'); - } elseif (\is_bool($value)) { - $this->raw($value ? 'true' : 'false'); - } elseif (\is_array($value)) { - $this->raw('array('); - $first = true; - foreach ($value as $key => $v) { - if (!$first) { - $this->raw(', '); - } - $first = false; - $this->repr($key); - $this->raw(' => '); - $this->repr($v); - } - $this->raw(')'); - } else { - $this->string($value); - } - - return $this; - } - - /** - * Adds debugging information. - * - * @return $this - */ - public function addDebugInfo(Node $node) - { - if ($node->getTemplateLine() != $this->lastLine) { - $this->write(sprintf("// line %d\n", $node->getTemplateLine())); - - $this->sourceLine += substr_count($this->source, "\n", $this->sourceOffset); - $this->sourceOffset = \strlen($this->source); - $this->debugInfo[$this->sourceLine] = $node->getTemplateLine(); - - $this->lastLine = $node->getTemplateLine(); - } - - return $this; - } - - public function getDebugInfo() - { - ksort($this->debugInfo); - - return $this->debugInfo; - } - - /** - * Indents the generated code. - * - * @param int $step The number of indentation to add - * - * @return $this - */ - public function indent($step = 1) - { - $this->indentation += $step; - - return $this; - } - - /** - * Outdents the generated code. - * - * @param int $step The number of indentation to remove - * - * @return $this - * - * @throws \LogicException When trying to outdent too much so the indentation would become negative - */ - public function outdent($step = 1) - { - // can't outdent by more steps than the current indentation level - if ($this->indentation < $step) { - throw new \LogicException('Unable to call outdent() as the indentation would become negative.'); - } - - $this->indentation -= $step; - - return $this; - } - - public function getVarName() - { - return sprintf('__internal_%s', hash('sha256', __METHOD__.$this->varNameSalt++)); - } -} - -class_alias('Twig\Compiler', 'Twig_Compiler'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Environment.php b/srcs/phpmyadmin/vendor/twig/twig/src/Environment.php deleted file mode 100644 index 420a72f..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Environment.php +++ /dev/null @@ -1,995 +0,0 @@ - - */ -class Environment -{ - const VERSION = '2.12.3'; - const VERSION_ID = 21203; - const MAJOR_VERSION = 2; - const MINOR_VERSION = 12; - const RELEASE_VERSION = 3; - const EXTRA_VERSION = ''; - - private $charset; - private $loader; - private $debug; - private $autoReload; - private $cache; - private $lexer; - private $parser; - private $compiler; - private $baseTemplateClass; - private $globals = []; - private $resolvedGlobals; - private $loadedTemplates; - private $strictVariables; - private $templateClassPrefix = '__TwigTemplate_'; - private $originalCache; - private $extensionSet; - private $runtimeLoaders = []; - private $runtimes = []; - private $optionsHash; - - /** - * Constructor. - * - * Available options: - * - * * debug: When set to true, it automatically set "auto_reload" to true as - * well (default to false). - * - * * charset: The charset used by the templates (default to UTF-8). - * - * * base_template_class: The base template class to use for generated - * templates (default to \Twig\Template). - * - * * cache: An absolute path where to store the compiled templates, - * a \Twig\Cache\CacheInterface implementation, - * or false to disable compilation cache (default). - * - * * auto_reload: Whether to reload the template if the original source changed. - * If you don't provide the auto_reload option, it will be - * determined automatically based on the debug value. - * - * * strict_variables: Whether to ignore invalid variables in templates - * (default to false). - * - * * autoescape: Whether to enable auto-escaping (default to html): - * * false: disable auto-escaping - * * html, js: set the autoescaping to one of the supported strategies - * * name: set the autoescaping strategy based on the template name extension - * * PHP callback: a PHP callback that returns an escaping strategy based on the template "name" - * - * * optimizations: A flag that indicates which optimizations to apply - * (default to -1 which means that all optimizations are enabled; - * set it to 0 to disable). - */ - public function __construct(LoaderInterface $loader, $options = []) - { - $this->setLoader($loader); - - $options = array_merge([ - 'debug' => false, - 'charset' => 'UTF-8', - 'base_template_class' => Template::class, - 'strict_variables' => false, - 'autoescape' => 'html', - 'cache' => false, - 'auto_reload' => null, - 'optimizations' => -1, - ], $options); - - $this->debug = (bool) $options['debug']; - $this->setCharset($options['charset']); - $this->baseTemplateClass = '\\'.ltrim($options['base_template_class'], '\\'); - if ('\\'.Template::class !== $this->baseTemplateClass && '\Twig_Template' !== $this->baseTemplateClass) { - @trigger_error('The "base_template_class" option on '.__CLASS__.' is deprecated since Twig 2.7.0.', E_USER_DEPRECATED); - } - $this->autoReload = null === $options['auto_reload'] ? $this->debug : (bool) $options['auto_reload']; - $this->strictVariables = (bool) $options['strict_variables']; - $this->setCache($options['cache']); - $this->extensionSet = new ExtensionSet(); - - $this->addExtension(new CoreExtension()); - $this->addExtension(new EscaperExtension($options['autoescape'])); - $this->addExtension(new OptimizerExtension($options['optimizations'])); - } - - /** - * Gets the base template class for compiled templates. - * - * @return string The base template class name - */ - public function getBaseTemplateClass() - { - if (1 > \func_num_args() || \func_get_arg(0)) { - @trigger_error('The '.__METHOD__.' is deprecated since Twig 2.7.0.', E_USER_DEPRECATED); - } - - return $this->baseTemplateClass; - } - - /** - * Sets the base template class for compiled templates. - * - * @param string $class The base template class name - */ - public function setBaseTemplateClass($class) - { - @trigger_error('The '.__METHOD__.' is deprecated since Twig 2.7.0.', E_USER_DEPRECATED); - - $this->baseTemplateClass = $class; - $this->updateOptionsHash(); - } - - /** - * Enables debugging mode. - */ - public function enableDebug() - { - $this->debug = true; - $this->updateOptionsHash(); - } - - /** - * Disables debugging mode. - */ - public function disableDebug() - { - $this->debug = false; - $this->updateOptionsHash(); - } - - /** - * Checks if debug mode is enabled. - * - * @return bool true if debug mode is enabled, false otherwise - */ - public function isDebug() - { - return $this->debug; - } - - /** - * Enables the auto_reload option. - */ - public function enableAutoReload() - { - $this->autoReload = true; - } - - /** - * Disables the auto_reload option. - */ - public function disableAutoReload() - { - $this->autoReload = false; - } - - /** - * Checks if the auto_reload option is enabled. - * - * @return bool true if auto_reload is enabled, false otherwise - */ - public function isAutoReload() - { - return $this->autoReload; - } - - /** - * Enables the strict_variables option. - */ - public function enableStrictVariables() - { - $this->strictVariables = true; - $this->updateOptionsHash(); - } - - /** - * Disables the strict_variables option. - */ - public function disableStrictVariables() - { - $this->strictVariables = false; - $this->updateOptionsHash(); - } - - /** - * Checks if the strict_variables option is enabled. - * - * @return bool true if strict_variables is enabled, false otherwise - */ - public function isStrictVariables() - { - return $this->strictVariables; - } - - /** - * Gets the current cache implementation. - * - * @param bool $original Whether to return the original cache option or the real cache instance - * - * @return CacheInterface|string|false A Twig\Cache\CacheInterface implementation, - * an absolute path to the compiled templates, - * or false to disable cache - */ - public function getCache($original = true) - { - return $original ? $this->originalCache : $this->cache; - } - - /** - * Sets the current cache implementation. - * - * @param CacheInterface|string|false $cache A Twig\Cache\CacheInterface implementation, - * an absolute path to the compiled templates, - * or false to disable cache - */ - public function setCache($cache) - { - if (\is_string($cache)) { - $this->originalCache = $cache; - $this->cache = new FilesystemCache($cache); - } elseif (false === $cache) { - $this->originalCache = $cache; - $this->cache = new NullCache(); - } elseif ($cache instanceof CacheInterface) { - $this->originalCache = $this->cache = $cache; - } else { - throw new \LogicException(sprintf('Cache can only be a string, false, or a \Twig\Cache\CacheInterface implementation.')); - } - } - - /** - * Gets the template class associated with the given string. - * - * The generated template class is based on the following parameters: - * - * * The cache key for the given template; - * * The currently enabled extensions; - * * Whether the Twig C extension is available or not; - * * PHP version; - * * Twig version; - * * Options with what environment was created. - * - * @param string $name The name for which to calculate the template class name - * @param int|null $index The index if it is an embedded template - * - * @return string The template class name - * - * @internal - */ - public function getTemplateClass($name, $index = null) - { - $key = $this->getLoader()->getCacheKey($name).$this->optionsHash; - - return $this->templateClassPrefix.hash('sha256', $key).(null === $index ? '' : '___'.$index); - } - - /** - * Renders a template. - * - * @param string|TemplateWrapper $name The template name - * @param array $context An array of parameters to pass to the template - * - * @return string The rendered template - * - * @throws LoaderError When the template cannot be found - * @throws SyntaxError When an error occurred during compilation - * @throws RuntimeError When an error occurred during rendering - */ - public function render($name, array $context = []) - { - return $this->load($name)->render($context); - } - - /** - * Displays a template. - * - * @param string|TemplateWrapper $name The template name - * @param array $context An array of parameters to pass to the template - * - * @throws LoaderError When the template cannot be found - * @throws SyntaxError When an error occurred during compilation - * @throws RuntimeError When an error occurred during rendering - */ - public function display($name, array $context = []) - { - $this->load($name)->display($context); - } - - /** - * Loads a template. - * - * @param string|TemplateWrapper $name The template name - * - * @throws LoaderError When the template cannot be found - * @throws RuntimeError When a previously generated cache is corrupted - * @throws SyntaxError When an error occurred during compilation - * - * @return TemplateWrapper - */ - public function load($name) - { - if ($name instanceof TemplateWrapper) { - return $name; - } - - if ($name instanceof Template) { - @trigger_error('Passing a \Twig\Template instance to '.__METHOD__.' is deprecated since Twig 2.7.0, use \Twig\TemplateWrapper instead.', E_USER_DEPRECATED); - - return new TemplateWrapper($this, $name); - } - - return new TemplateWrapper($this, $this->loadTemplate($name)); - } - - /** - * Loads a template internal representation. - * - * This method is for internal use only and should never be called - * directly. - * - * @param string $name The template name - * @param int $index The index if it is an embedded template - * - * @return Template A template instance representing the given template name - * - * @throws LoaderError When the template cannot be found - * @throws RuntimeError When a previously generated cache is corrupted - * @throws SyntaxError When an error occurred during compilation - * - * @internal - */ - public function loadTemplate($name, $index = null) - { - return $this->loadClass($this->getTemplateClass($name), $name, $index); - } - - /** - * @internal - */ - public function loadClass($cls, $name, $index = null) - { - $mainCls = $cls; - if (null !== $index) { - $cls .= '___'.$index; - } - - if (isset($this->loadedTemplates[$cls])) { - return $this->loadedTemplates[$cls]; - } - - if (!class_exists($cls, false)) { - $key = $this->cache->generateKey($name, $mainCls); - - if (!$this->isAutoReload() || $this->isTemplateFresh($name, $this->cache->getTimestamp($key))) { - $this->cache->load($key); - } - - $source = null; - if (!class_exists($cls, false)) { - $source = $this->getLoader()->getSourceContext($name); - $content = $this->compileSource($source); - $this->cache->write($key, $content); - $this->cache->load($key); - - if (!class_exists($mainCls, false)) { - /* Last line of defense if either $this->bcWriteCacheFile was used, - * $this->cache is implemented as a no-op or we have a race condition - * where the cache was cleared between the above calls to write to and load from - * the cache. - */ - eval('?>'.$content); - } - - if (!class_exists($cls, false)) { - throw new RuntimeError(sprintf('Failed to load Twig template "%s", index "%s": cache might be corrupted.', $name, $index), -1, $source); - } - } - } - - // to be removed in 3.0 - $this->extensionSet->initRuntime($this); - - return $this->loadedTemplates[$cls] = new $cls($this); - } - - /** - * Creates a template from source. - * - * This method should not be used as a generic way to load templates. - * - * @param string $template The template source - * @param string $name An optional name of the template to be used in error messages - * - * @return TemplateWrapper A template instance representing the given template name - * - * @throws LoaderError When the template cannot be found - * @throws SyntaxError When an error occurred during compilation - */ - public function createTemplate($template, string $name = null) - { - $hash = hash('sha256', $template, false); - if (null !== $name) { - $name = sprintf('%s (string template %s)', $name, $hash); - } else { - $name = sprintf('__string_template__%s', $hash); - } - - $loader = new ChainLoader([ - new ArrayLoader([$name => $template]), - $current = $this->getLoader(), - ]); - - $this->setLoader($loader); - try { - return new TemplateWrapper($this, $this->loadTemplate($name)); - } finally { - $this->setLoader($current); - } - } - - /** - * Returns true if the template is still fresh. - * - * Besides checking the loader for freshness information, - * this method also checks if the enabled extensions have - * not changed. - * - * @param string $name The template name - * @param int $time The last modification time of the cached template - * - * @return bool true if the template is fresh, false otherwise - */ - public function isTemplateFresh($name, $time) - { - return $this->extensionSet->getLastModified() <= $time && $this->getLoader()->isFresh($name, $time); - } - - /** - * Tries to load a template consecutively from an array. - * - * Similar to load() but it also accepts instances of \Twig\Template and - * \Twig\TemplateWrapper, and an array of templates where each is tried to be loaded. - * - * @param string|TemplateWrapper|array $names A template or an array of templates to try consecutively - * - * @return TemplateWrapper|Template - * - * @throws LoaderError When none of the templates can be found - * @throws SyntaxError When an error occurred during compilation - */ - public function resolveTemplate($names) - { - if (!\is_array($names)) { - $names = [$names]; - } - - foreach ($names as $name) { - if ($name instanceof Template) { - return $name; - } - if ($name instanceof TemplateWrapper) { - return $name; - } - - try { - return $this->loadTemplate($name); - } catch (LoaderError $e) { - if (1 === \count($names)) { - throw $e; - } - } - } - - throw new LoaderError(sprintf('Unable to find one of the following templates: "%s".', implode('", "', $names))); - } - - public function setLexer(Lexer $lexer) - { - $this->lexer = $lexer; - } - - /** - * Tokenizes a source code. - * - * @return TokenStream - * - * @throws SyntaxError When the code is syntactically wrong - */ - public function tokenize(Source $source) - { - if (null === $this->lexer) { - $this->lexer = new Lexer($this); - } - - return $this->lexer->tokenize($source); - } - - public function setParser(Parser $parser) - { - $this->parser = $parser; - } - - /** - * Converts a token stream to a node tree. - * - * @return ModuleNode - * - * @throws SyntaxError When the token stream is syntactically or semantically wrong - */ - public function parse(TokenStream $stream) - { - if (null === $this->parser) { - $this->parser = new Parser($this); - } - - return $this->parser->parse($stream); - } - - public function setCompiler(Compiler $compiler) - { - $this->compiler = $compiler; - } - - /** - * Compiles a node and returns the PHP code. - * - * @return string The compiled PHP source code - */ - public function compile(Node $node) - { - if (null === $this->compiler) { - $this->compiler = new Compiler($this); - } - - return $this->compiler->compile($node)->getSource(); - } - - /** - * Compiles a template source code. - * - * @return string The compiled PHP source code - * - * @throws SyntaxError When there was an error during tokenizing, parsing or compiling - */ - public function compileSource(Source $source) - { - try { - return $this->compile($this->parse($this->tokenize($source))); - } catch (Error $e) { - $e->setSourceContext($source); - throw $e; - } catch (\Exception $e) { - throw new SyntaxError(sprintf('An exception has been thrown during the compilation of a template ("%s").', $e->getMessage()), -1, $source, $e); - } - } - - public function setLoader(LoaderInterface $loader) - { - $this->loader = $loader; - } - - /** - * Gets the Loader instance. - * - * @return LoaderInterface - */ - public function getLoader() - { - return $this->loader; - } - - /** - * Sets the default template charset. - * - * @param string $charset The default charset - */ - public function setCharset($charset) - { - if ('UTF8' === $charset = strtoupper($charset)) { - // iconv on Windows requires "UTF-8" instead of "UTF8" - $charset = 'UTF-8'; - } - - $this->charset = $charset; - } - - /** - * Gets the default template charset. - * - * @return string The default charset - */ - public function getCharset() - { - return $this->charset; - } - - /** - * Returns true if the given extension is registered. - * - * @param string $class The extension class name - * - * @return bool Whether the extension is registered or not - */ - public function hasExtension($class) - { - return $this->extensionSet->hasExtension($class); - } - - /** - * Adds a runtime loader. - */ - public function addRuntimeLoader(RuntimeLoaderInterface $loader) - { - $this->runtimeLoaders[] = $loader; - } - - /** - * Gets an extension by class name. - * - * @param string $class The extension class name - * - * @return ExtensionInterface - */ - public function getExtension($class) - { - return $this->extensionSet->getExtension($class); - } - - /** - * Returns the runtime implementation of a Twig element (filter/function/test). - * - * @param string $class A runtime class name - * - * @return object The runtime implementation - * - * @throws RuntimeError When the template cannot be found - */ - public function getRuntime($class) - { - if (isset($this->runtimes[$class])) { - return $this->runtimes[$class]; - } - - foreach ($this->runtimeLoaders as $loader) { - if (null !== $runtime = $loader->load($class)) { - return $this->runtimes[$class] = $runtime; - } - } - - throw new RuntimeError(sprintf('Unable to load the "%s" runtime.', $class)); - } - - public function addExtension(ExtensionInterface $extension) - { - $this->extensionSet->addExtension($extension); - $this->updateOptionsHash(); - } - - /** - * Registers an array of extensions. - * - * @param array $extensions An array of extensions - */ - public function setExtensions(array $extensions) - { - $this->extensionSet->setExtensions($extensions); - $this->updateOptionsHash(); - } - - /** - * Returns all registered extensions. - * - * @return ExtensionInterface[] An array of extensions (keys are for internal usage only and should not be relied on) - */ - public function getExtensions() - { - return $this->extensionSet->getExtensions(); - } - - public function addTokenParser(TokenParserInterface $parser) - { - $this->extensionSet->addTokenParser($parser); - } - - /** - * Gets the registered Token Parsers. - * - * @return TokenParserInterface[] - * - * @internal - */ - public function getTokenParsers() - { - return $this->extensionSet->getTokenParsers(); - } - - /** - * Gets registered tags. - * - * @return TokenParserInterface[] - * - * @internal - */ - public function getTags() - { - $tags = []; - foreach ($this->getTokenParsers() as $parser) { - $tags[$parser->getTag()] = $parser; - } - - return $tags; - } - - public function addNodeVisitor(NodeVisitorInterface $visitor) - { - $this->extensionSet->addNodeVisitor($visitor); - } - - /** - * Gets the registered Node Visitors. - * - * @return NodeVisitorInterface[] - * - * @internal - */ - public function getNodeVisitors() - { - return $this->extensionSet->getNodeVisitors(); - } - - public function addFilter(TwigFilter $filter) - { - $this->extensionSet->addFilter($filter); - } - - /** - * Get a filter by name. - * - * Subclasses may override this method and load filters differently; - * so no list of filters is available. - * - * @param string $name The filter name - * - * @return TwigFilter|false - * - * @internal - */ - public function getFilter($name) - { - return $this->extensionSet->getFilter($name); - } - - public function registerUndefinedFilterCallback(callable $callable) - { - $this->extensionSet->registerUndefinedFilterCallback($callable); - } - - /** - * Gets the registered Filters. - * - * Be warned that this method cannot return filters defined with registerUndefinedFilterCallback. - * - * @return TwigFilter[] - * - * @see registerUndefinedFilterCallback - * - * @internal - */ - public function getFilters() - { - return $this->extensionSet->getFilters(); - } - - public function addTest(TwigTest $test) - { - $this->extensionSet->addTest($test); - } - - /** - * Gets the registered Tests. - * - * @return TwigTest[] - * - * @internal - */ - public function getTests() - { - return $this->extensionSet->getTests(); - } - - /** - * Gets a test by name. - * - * @param string $name The test name - * - * @return TwigTest|false - * - * @internal - */ - public function getTest($name) - { - return $this->extensionSet->getTest($name); - } - - public function addFunction(TwigFunction $function) - { - $this->extensionSet->addFunction($function); - } - - /** - * Get a function by name. - * - * Subclasses may override this method and load functions differently; - * so no list of functions is available. - * - * @param string $name function name - * - * @return TwigFunction|false - * - * @internal - */ - public function getFunction($name) - { - return $this->extensionSet->getFunction($name); - } - - public function registerUndefinedFunctionCallback(callable $callable) - { - $this->extensionSet->registerUndefinedFunctionCallback($callable); - } - - /** - * Gets registered functions. - * - * Be warned that this method cannot return functions defined with registerUndefinedFunctionCallback. - * - * @return TwigFunction[] - * - * @see registerUndefinedFunctionCallback - * - * @internal - */ - public function getFunctions() - { - return $this->extensionSet->getFunctions(); - } - - /** - * Registers a Global. - * - * New globals can be added before compiling or rendering a template; - * but after, you can only update existing globals. - * - * @param string $name The global name - * @param mixed $value The global value - */ - public function addGlobal($name, $value) - { - if ($this->extensionSet->isInitialized() && !\array_key_exists($name, $this->getGlobals())) { - throw new \LogicException(sprintf('Unable to add global "%s" as the runtime or the extensions have already been initialized.', $name)); - } - - if (null !== $this->resolvedGlobals) { - $this->resolvedGlobals[$name] = $value; - } else { - $this->globals[$name] = $value; - } - } - - /** - * Gets the registered Globals. - * - * @return array An array of globals - * - * @internal - */ - public function getGlobals() - { - if ($this->extensionSet->isInitialized()) { - if (null === $this->resolvedGlobals) { - $this->resolvedGlobals = array_merge($this->extensionSet->getGlobals(), $this->globals); - } - - return $this->resolvedGlobals; - } - - return array_merge($this->extensionSet->getGlobals(), $this->globals); - } - - /** - * Merges a context with the defined globals. - * - * @param array $context An array representing the context - * - * @return array The context merged with the globals - */ - public function mergeGlobals(array $context) - { - // we don't use array_merge as the context being generally - // bigger than globals, this code is faster. - foreach ($this->getGlobals() as $key => $value) { - if (!\array_key_exists($key, $context)) { - $context[$key] = $value; - } - } - - return $context; - } - - /** - * Gets the registered unary Operators. - * - * @return array An array of unary operators - * - * @internal - */ - public function getUnaryOperators() - { - return $this->extensionSet->getUnaryOperators(); - } - - /** - * Gets the registered binary Operators. - * - * @return array An array of binary operators - * - * @internal - */ - public function getBinaryOperators() - { - return $this->extensionSet->getBinaryOperators(); - } - - private function updateOptionsHash() - { - $this->optionsHash = implode(':', [ - $this->extensionSet->getSignature(), - PHP_MAJOR_VERSION, - PHP_MINOR_VERSION, - self::VERSION, - (int) $this->debug, - $this->baseTemplateClass, - (int) $this->strictVariables, - ]); - } -} - -class_alias('Twig\Environment', 'Twig_Environment'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Error/Error.php b/srcs/phpmyadmin/vendor/twig/twig/src/Error/Error.php deleted file mode 100644 index a64cbcb..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Error/Error.php +++ /dev/null @@ -1,257 +0,0 @@ - - */ -class Error extends \Exception -{ - private $lineno; - private $name; - private $rawMessage; - private $sourcePath; - private $sourceCode; - - /** - * Constructor. - * - * Set the line number to -1 to enable its automatic guessing. - * Set the name to null to enable its automatic guessing. - * - * @param string $message The error message - * @param int $lineno The template line where the error occurred - * @param Source|string|null $source The source context where the error occurred - * @param \Exception $previous The previous exception - */ - public function __construct(string $message, int $lineno = -1, $source = null, \Exception $previous = null) - { - parent::__construct('', 0, $previous); - - if (null === $source) { - $name = null; - } elseif (!$source instanceof Source && !$source instanceof \Twig_Source) { - @trigger_error(sprintf('Passing a string as a source to %s is deprecated since Twig 2.6.1; pass a Twig\Source instance instead.', __CLASS__), E_USER_DEPRECATED); - $name = $source; - } else { - $name = $source->getName(); - $this->sourceCode = $source->getCode(); - $this->sourcePath = $source->getPath(); - } - - $this->lineno = $lineno; - $this->name = $name; - $this->rawMessage = $message; - $this->updateRepr(); - } - - /** - * Gets the raw message. - * - * @return string The raw message - */ - public function getRawMessage() - { - return $this->rawMessage; - } - - /** - * Gets the template line where the error occurred. - * - * @return int The template line - */ - public function getTemplateLine() - { - return $this->lineno; - } - - /** - * Sets the template line where the error occurred. - * - * @param int $lineno The template line - */ - public function setTemplateLine($lineno) - { - $this->lineno = $lineno; - - $this->updateRepr(); - } - - /** - * Gets the source context of the Twig template where the error occurred. - * - * @return Source|null - */ - public function getSourceContext() - { - return $this->name ? new Source($this->sourceCode, $this->name, $this->sourcePath) : null; - } - - /** - * Sets the source context of the Twig template where the error occurred. - */ - public function setSourceContext(Source $source = null) - { - if (null === $source) { - $this->sourceCode = $this->name = $this->sourcePath = null; - } else { - $this->sourceCode = $source->getCode(); - $this->name = $source->getName(); - $this->sourcePath = $source->getPath(); - } - - $this->updateRepr(); - } - - public function guess() - { - $this->guessTemplateInfo(); - $this->updateRepr(); - } - - public function appendMessage($rawMessage) - { - $this->rawMessage .= $rawMessage; - $this->updateRepr(); - } - - private function updateRepr() - { - $this->message = $this->rawMessage; - - if ($this->sourcePath && $this->lineno > 0) { - $this->file = $this->sourcePath; - $this->line = $this->lineno; - - return; - } - - $dot = false; - if ('.' === substr($this->message, -1)) { - $this->message = substr($this->message, 0, -1); - $dot = true; - } - - $questionMark = false; - if ('?' === substr($this->message, -1)) { - $this->message = substr($this->message, 0, -1); - $questionMark = true; - } - - if ($this->name) { - if (\is_string($this->name) || (\is_object($this->name) && method_exists($this->name, '__toString'))) { - $name = sprintf('"%s"', $this->name); - } else { - $name = json_encode($this->name); - } - $this->message .= sprintf(' in %s', $name); - } - - if ($this->lineno && $this->lineno >= 0) { - $this->message .= sprintf(' at line %d', $this->lineno); - } - - if ($dot) { - $this->message .= '.'; - } - - if ($questionMark) { - $this->message .= '?'; - } - } - - private function guessTemplateInfo() - { - $template = null; - $templateClass = null; - - $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS | DEBUG_BACKTRACE_PROVIDE_OBJECT); - foreach ($backtrace as $trace) { - if (isset($trace['object']) && $trace['object'] instanceof Template && 'Twig_Template' !== \get_class($trace['object'])) { - $currentClass = \get_class($trace['object']); - $isEmbedContainer = 0 === strpos($templateClass, $currentClass); - if (null === $this->name || ($this->name == $trace['object']->getTemplateName() && !$isEmbedContainer)) { - $template = $trace['object']; - $templateClass = \get_class($trace['object']); - } - } - } - - // update template name - if (null !== $template && null === $this->name) { - $this->name = $template->getTemplateName(); - } - - // update template path if any - if (null !== $template && null === $this->sourcePath) { - $src = $template->getSourceContext(); - $this->sourceCode = $src->getCode(); - $this->sourcePath = $src->getPath(); - } - - if (null === $template || $this->lineno > -1) { - return; - } - - $r = new \ReflectionObject($template); - $file = $r->getFileName(); - - $exceptions = [$e = $this]; - while ($e = $e->getPrevious()) { - $exceptions[] = $e; - } - - while ($e = array_pop($exceptions)) { - $traces = $e->getTrace(); - array_unshift($traces, ['file' => $e->getFile(), 'line' => $e->getLine()]); - - while ($trace = array_shift($traces)) { - if (!isset($trace['file']) || !isset($trace['line']) || $file != $trace['file']) { - continue; - } - - foreach ($template->getDebugInfo() as $codeLine => $templateLine) { - if ($codeLine <= $trace['line']) { - // update template line - $this->lineno = $templateLine; - - return; - } - } - } - } - } -} - -class_alias('Twig\Error\Error', 'Twig_Error'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Error/LoaderError.php b/srcs/phpmyadmin/vendor/twig/twig/src/Error/LoaderError.php deleted file mode 100644 index dc5a9f1..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Error/LoaderError.php +++ /dev/null @@ -1,23 +0,0 @@ - - */ -class LoaderError extends Error -{ -} - -class_alias('Twig\Error\LoaderError', 'Twig_Error_Loader'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Error/RuntimeError.php b/srcs/phpmyadmin/vendor/twig/twig/src/Error/RuntimeError.php deleted file mode 100644 index 9b3f36e..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Error/RuntimeError.php +++ /dev/null @@ -1,24 +0,0 @@ - - */ -class RuntimeError extends Error -{ -} - -class_alias('Twig\Error\RuntimeError', 'Twig_Error_Runtime'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Error/SyntaxError.php b/srcs/phpmyadmin/vendor/twig/twig/src/Error/SyntaxError.php deleted file mode 100644 index efece92..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Error/SyntaxError.php +++ /dev/null @@ -1,48 +0,0 @@ - - */ -class SyntaxError extends Error -{ - /** - * Tweaks the error message to include suggestions. - * - * @param string $name The original name of the item that does not exist - * @param array $items An array of possible items - */ - public function addSuggestions($name, array $items) - { - $alternatives = []; - foreach ($items as $item) { - $lev = levenshtein($name, $item); - if ($lev <= \strlen($name) / 3 || false !== strpos($item, $name)) { - $alternatives[$item] = $lev; - } - } - - if (!$alternatives) { - return; - } - - asort($alternatives); - - $this->appendMessage(sprintf(' Did you mean "%s"?', implode('", "', array_keys($alternatives)))); - } -} - -class_alias('Twig\Error\SyntaxError', 'Twig_Error_Syntax'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/ExpressionParser.php b/srcs/phpmyadmin/vendor/twig/twig/src/ExpressionParser.php deleted file mode 100644 index 2c5df63..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/ExpressionParser.php +++ /dev/null @@ -1,814 +0,0 @@ - - * - * @internal - */ -class ExpressionParser -{ - const OPERATOR_LEFT = 1; - const OPERATOR_RIGHT = 2; - - private $parser; - private $env; - private $unaryOperators; - private $binaryOperators; - - public function __construct(Parser $parser, Environment $env) - { - $this->parser = $parser; - $this->env = $env; - $this->unaryOperators = $env->getUnaryOperators(); - $this->binaryOperators = $env->getBinaryOperators(); - } - - public function parseExpression($precedence = 0, $allowArrow = false) - { - if ($allowArrow && $arrow = $this->parseArrow()) { - return $arrow; - } - - $expr = $this->getPrimary(); - $token = $this->parser->getCurrentToken(); - while ($this->isBinary($token) && $this->binaryOperators[$token->getValue()]['precedence'] >= $precedence) { - $op = $this->binaryOperators[$token->getValue()]; - $this->parser->getStream()->next(); - - if ('is not' === $token->getValue()) { - $expr = $this->parseNotTestExpression($expr); - } elseif ('is' === $token->getValue()) { - $expr = $this->parseTestExpression($expr); - } elseif (isset($op['callable'])) { - $expr = $op['callable']($this->parser, $expr); - } else { - $expr1 = $this->parseExpression(self::OPERATOR_LEFT === $op['associativity'] ? $op['precedence'] + 1 : $op['precedence']); - $class = $op['class']; - $expr = new $class($expr, $expr1, $token->getLine()); - } - - $token = $this->parser->getCurrentToken(); - } - - if (0 === $precedence) { - return $this->parseConditionalExpression($expr); - } - - return $expr; - } - - /** - * @return ArrowFunctionExpression|null - */ - private function parseArrow() - { - $stream = $this->parser->getStream(); - - // short array syntax (one argument, no parentheses)? - if ($stream->look(1)->test(/* Token::ARROW_TYPE */ 12)) { - $line = $stream->getCurrent()->getLine(); - $token = $stream->expect(/* Token::NAME_TYPE */ 5); - $names = [new AssignNameExpression($token->getValue(), $token->getLine())]; - $stream->expect(/* Token::ARROW_TYPE */ 12); - - return new ArrowFunctionExpression($this->parseExpression(0), new Node($names), $line); - } - - // first, determine if we are parsing an arrow function by finding => (long form) - $i = 0; - if (!$stream->look($i)->test(/* Token::PUNCTUATION_TYPE */ 9, '(')) { - return null; - } - ++$i; - while (true) { - // variable name - ++$i; - if (!$stream->look($i)->test(/* Token::PUNCTUATION_TYPE */ 9, ',')) { - break; - } - ++$i; - } - if (!$stream->look($i)->test(/* Token::PUNCTUATION_TYPE */ 9, ')')) { - return null; - } - ++$i; - if (!$stream->look($i)->test(/* Token::ARROW_TYPE */ 12)) { - return null; - } - - // yes, let's parse it properly - $token = $stream->expect(/* Token::PUNCTUATION_TYPE */ 9, '('); - $line = $token->getLine(); - - $names = []; - while (true) { - $token = $stream->expect(/* Token::NAME_TYPE */ 5); - $names[] = new AssignNameExpression($token->getValue(), $token->getLine()); - - if (!$stream->nextIf(/* Token::PUNCTUATION_TYPE */ 9, ',')) { - break; - } - } - $stream->expect(/* Token::PUNCTUATION_TYPE */ 9, ')'); - $stream->expect(/* Token::ARROW_TYPE */ 12); - - return new ArrowFunctionExpression($this->parseExpression(0), new Node($names), $line); - } - - private function getPrimary(): AbstractExpression - { - $token = $this->parser->getCurrentToken(); - - if ($this->isUnary($token)) { - $operator = $this->unaryOperators[$token->getValue()]; - $this->parser->getStream()->next(); - $expr = $this->parseExpression($operator['precedence']); - $class = $operator['class']; - - return $this->parsePostfixExpression(new $class($expr, $token->getLine())); - } elseif ($token->test(/* Token::PUNCTUATION_TYPE */ 9, '(')) { - $this->parser->getStream()->next(); - $expr = $this->parseExpression(); - $this->parser->getStream()->expect(/* Token::PUNCTUATION_TYPE */ 9, ')', 'An opened parenthesis is not properly closed'); - - return $this->parsePostfixExpression($expr); - } - - return $this->parsePrimaryExpression(); - } - - private function parseConditionalExpression($expr): AbstractExpression - { - while ($this->parser->getStream()->nextIf(/* Token::PUNCTUATION_TYPE */ 9, '?')) { - if (!$this->parser->getStream()->nextIf(/* Token::PUNCTUATION_TYPE */ 9, ':')) { - $expr2 = $this->parseExpression(); - if ($this->parser->getStream()->nextIf(/* Token::PUNCTUATION_TYPE */ 9, ':')) { - $expr3 = $this->parseExpression(); - } else { - $expr3 = new ConstantExpression('', $this->parser->getCurrentToken()->getLine()); - } - } else { - $expr2 = $expr; - $expr3 = $this->parseExpression(); - } - - $expr = new ConditionalExpression($expr, $expr2, $expr3, $this->parser->getCurrentToken()->getLine()); - } - - return $expr; - } - - private function isUnary(Token $token): bool - { - return $token->test(/* Token::OPERATOR_TYPE */ 8) && isset($this->unaryOperators[$token->getValue()]); - } - - private function isBinary(Token $token): bool - { - return $token->test(/* Token::OPERATOR_TYPE */ 8) && isset($this->binaryOperators[$token->getValue()]); - } - - public function parsePrimaryExpression() - { - $token = $this->parser->getCurrentToken(); - switch ($token->getType()) { - case /* Token::NAME_TYPE */ 5: - $this->parser->getStream()->next(); - switch ($token->getValue()) { - case 'true': - case 'TRUE': - $node = new ConstantExpression(true, $token->getLine()); - break; - - case 'false': - case 'FALSE': - $node = new ConstantExpression(false, $token->getLine()); - break; - - case 'none': - case 'NONE': - case 'null': - case 'NULL': - $node = new ConstantExpression(null, $token->getLine()); - break; - - default: - if ('(' === $this->parser->getCurrentToken()->getValue()) { - $node = $this->getFunctionNode($token->getValue(), $token->getLine()); - } else { - $node = new NameExpression($token->getValue(), $token->getLine()); - } - } - break; - - case /* Token::NUMBER_TYPE */ 6: - $this->parser->getStream()->next(); - $node = new ConstantExpression($token->getValue(), $token->getLine()); - break; - - case /* Token::STRING_TYPE */ 7: - case /* Token::INTERPOLATION_START_TYPE */ 10: - $node = $this->parseStringExpression(); - break; - - case /* Token::OPERATOR_TYPE */ 8: - if (preg_match(Lexer::REGEX_NAME, $token->getValue(), $matches) && $matches[0] == $token->getValue()) { - // in this context, string operators are variable names - $this->parser->getStream()->next(); - $node = new NameExpression($token->getValue(), $token->getLine()); - break; - } elseif (isset($this->unaryOperators[$token->getValue()])) { - $class = $this->unaryOperators[$token->getValue()]['class']; - - $ref = new \ReflectionClass($class); - if (!(\in_array($ref->getName(), [NegUnary::class, PosUnary::class, 'Twig_Node_Expression_Unary_Neg', 'Twig_Node_Expression_Unary_Pos']) - || $ref->isSubclassOf(NegUnary::class) || $ref->isSubclassOf(PosUnary::class) - || $ref->isSubclassOf('Twig_Node_Expression_Unary_Neg') || $ref->isSubclassOf('Twig_Node_Expression_Unary_Pos')) - ) { - throw new SyntaxError(sprintf('Unexpected unary operator "%s".', $token->getValue()), $token->getLine(), $this->parser->getStream()->getSourceContext()); - } - - $this->parser->getStream()->next(); - $expr = $this->parsePrimaryExpression(); - - $node = new $class($expr, $token->getLine()); - break; - } - - // no break - default: - if ($token->test(/* Token::PUNCTUATION_TYPE */ 9, '[')) { - $node = $this->parseArrayExpression(); - } elseif ($token->test(/* Token::PUNCTUATION_TYPE */ 9, '{')) { - $node = $this->parseHashExpression(); - } elseif ($token->test(/* Token::OPERATOR_TYPE */ 8, '=') && ('==' === $this->parser->getStream()->look(-1)->getValue() || '!=' === $this->parser->getStream()->look(-1)->getValue())) { - throw new SyntaxError(sprintf('Unexpected operator of value "%s". Did you try to use "===" or "!==" for strict comparison? Use "is same as(value)" instead.', $token->getValue()), $token->getLine(), $this->parser->getStream()->getSourceContext()); - } else { - throw new SyntaxError(sprintf('Unexpected token "%s" of value "%s".', Token::typeToEnglish($token->getType()), $token->getValue()), $token->getLine(), $this->parser->getStream()->getSourceContext()); - } - } - - return $this->parsePostfixExpression($node); - } - - public function parseStringExpression() - { - $stream = $this->parser->getStream(); - - $nodes = []; - // a string cannot be followed by another string in a single expression - $nextCanBeString = true; - while (true) { - if ($nextCanBeString && $token = $stream->nextIf(/* Token::STRING_TYPE */ 7)) { - $nodes[] = new ConstantExpression($token->getValue(), $token->getLine()); - $nextCanBeString = false; - } elseif ($stream->nextIf(/* Token::INTERPOLATION_START_TYPE */ 10)) { - $nodes[] = $this->parseExpression(); - $stream->expect(/* Token::INTERPOLATION_END_TYPE */ 11); - $nextCanBeString = true; - } else { - break; - } - } - - $expr = array_shift($nodes); - foreach ($nodes as $node) { - $expr = new ConcatBinary($expr, $node, $node->getTemplateLine()); - } - - return $expr; - } - - public function parseArrayExpression() - { - $stream = $this->parser->getStream(); - $stream->expect(/* Token::PUNCTUATION_TYPE */ 9, '[', 'An array element was expected'); - - $node = new ArrayExpression([], $stream->getCurrent()->getLine()); - $first = true; - while (!$stream->test(/* Token::PUNCTUATION_TYPE */ 9, ']')) { - if (!$first) { - $stream->expect(/* Token::PUNCTUATION_TYPE */ 9, ',', 'An array element must be followed by a comma'); - - // trailing ,? - if ($stream->test(/* Token::PUNCTUATION_TYPE */ 9, ']')) { - break; - } - } - $first = false; - - $node->addElement($this->parseExpression()); - } - $stream->expect(/* Token::PUNCTUATION_TYPE */ 9, ']', 'An opened array is not properly closed'); - - return $node; - } - - public function parseHashExpression() - { - $stream = $this->parser->getStream(); - $stream->expect(/* Token::PUNCTUATION_TYPE */ 9, '{', 'A hash element was expected'); - - $node = new ArrayExpression([], $stream->getCurrent()->getLine()); - $first = true; - while (!$stream->test(/* Token::PUNCTUATION_TYPE */ 9, '}')) { - if (!$first) { - $stream->expect(/* Token::PUNCTUATION_TYPE */ 9, ',', 'A hash value must be followed by a comma'); - - // trailing ,? - if ($stream->test(/* Token::PUNCTUATION_TYPE */ 9, '}')) { - break; - } - } - $first = false; - - // a hash key can be: - // - // * a number -- 12 - // * a string -- 'a' - // * a name, which is equivalent to a string -- a - // * an expression, which must be enclosed in parentheses -- (1 + 2) - if (($token = $stream->nextIf(/* Token::STRING_TYPE */ 7)) || ($token = $stream->nextIf(/* Token::NAME_TYPE */ 5)) || $token = $stream->nextIf(/* Token::NUMBER_TYPE */ 6)) { - $key = new ConstantExpression($token->getValue(), $token->getLine()); - } elseif ($stream->test(/* Token::PUNCTUATION_TYPE */ 9, '(')) { - $key = $this->parseExpression(); - } else { - $current = $stream->getCurrent(); - - throw new SyntaxError(sprintf('A hash key must be a quoted string, a number, a name, or an expression enclosed in parentheses (unexpected token "%s" of value "%s".', Token::typeToEnglish($current->getType()), $current->getValue()), $current->getLine(), $stream->getSourceContext()); - } - - $stream->expect(/* Token::PUNCTUATION_TYPE */ 9, ':', 'A hash key must be followed by a colon (:)'); - $value = $this->parseExpression(); - - $node->addElement($value, $key); - } - $stream->expect(/* Token::PUNCTUATION_TYPE */ 9, '}', 'An opened hash is not properly closed'); - - return $node; - } - - public function parsePostfixExpression($node) - { - while (true) { - $token = $this->parser->getCurrentToken(); - if (/* Token::PUNCTUATION_TYPE */ 9 == $token->getType()) { - if ('.' == $token->getValue() || '[' == $token->getValue()) { - $node = $this->parseSubscriptExpression($node); - } elseif ('|' == $token->getValue()) { - $node = $this->parseFilterExpression($node); - } else { - break; - } - } else { - break; - } - } - - return $node; - } - - public function getFunctionNode($name, $line) - { - switch ($name) { - case 'parent': - $this->parseArguments(); - if (!\count($this->parser->getBlockStack())) { - throw new SyntaxError('Calling "parent" outside a block is forbidden.', $line, $this->parser->getStream()->getSourceContext()); - } - - if (!$this->parser->getParent() && !$this->parser->hasTraits()) { - throw new SyntaxError('Calling "parent" on a template that does not extend nor "use" another template is forbidden.', $line, $this->parser->getStream()->getSourceContext()); - } - - return new ParentExpression($this->parser->peekBlockStack(), $line); - case 'block': - $args = $this->parseArguments(); - if (\count($args) < 1) { - throw new SyntaxError('The "block" function takes one argument (the block name).', $line, $this->parser->getStream()->getSourceContext()); - } - - return new BlockReferenceExpression($args->getNode(0), \count($args) > 1 ? $args->getNode(1) : null, $line); - case 'attribute': - $args = $this->parseArguments(); - if (\count($args) < 2) { - throw new SyntaxError('The "attribute" function takes at least two arguments (the variable and the attributes).', $line, $this->parser->getStream()->getSourceContext()); - } - - return new GetAttrExpression($args->getNode(0), $args->getNode(1), \count($args) > 2 ? $args->getNode(2) : null, Template::ANY_CALL, $line); - default: - if (null !== $alias = $this->parser->getImportedSymbol('function', $name)) { - $arguments = new ArrayExpression([], $line); - foreach ($this->parseArguments() as $n) { - $arguments->addElement($n); - } - - $node = new MethodCallExpression($alias['node'], $alias['name'], $arguments, $line); - $node->setAttribute('safe', true); - - return $node; - } - - $args = $this->parseArguments(true); - $class = $this->getFunctionNodeClass($name, $line); - - return new $class($name, $args, $line); - } - } - - public function parseSubscriptExpression($node) - { - $stream = $this->parser->getStream(); - $token = $stream->next(); - $lineno = $token->getLine(); - $arguments = new ArrayExpression([], $lineno); - $type = Template::ANY_CALL; - if ('.' == $token->getValue()) { - $token = $stream->next(); - if ( - /* Token::NAME_TYPE */ 5 == $token->getType() - || - /* Token::NUMBER_TYPE */ 6 == $token->getType() - || - (/* Token::OPERATOR_TYPE */ 8 == $token->getType() && preg_match(Lexer::REGEX_NAME, $token->getValue())) - ) { - $arg = new ConstantExpression($token->getValue(), $lineno); - - if ($stream->test(/* Token::PUNCTUATION_TYPE */ 9, '(')) { - $type = Template::METHOD_CALL; - foreach ($this->parseArguments() as $n) { - $arguments->addElement($n); - } - } - } else { - throw new SyntaxError('Expected name or number.', $lineno, $stream->getSourceContext()); - } - - if ($node instanceof NameExpression && null !== $this->parser->getImportedSymbol('template', $node->getAttribute('name'))) { - if (!$arg instanceof ConstantExpression) { - throw new SyntaxError(sprintf('Dynamic macro names are not supported (called on "%s").', $node->getAttribute('name')), $token->getLine(), $stream->getSourceContext()); - } - - $name = $arg->getAttribute('value'); - - $node = new MethodCallExpression($node, 'macro_'.$name, $arguments, $lineno); - $node->setAttribute('safe', true); - - return $node; - } - } else { - $type = Template::ARRAY_CALL; - - // slice? - $slice = false; - if ($stream->test(/* Token::PUNCTUATION_TYPE */ 9, ':')) { - $slice = true; - $arg = new ConstantExpression(0, $token->getLine()); - } else { - $arg = $this->parseExpression(); - } - - if ($stream->nextIf(/* Token::PUNCTUATION_TYPE */ 9, ':')) { - $slice = true; - } - - if ($slice) { - if ($stream->test(/* Token::PUNCTUATION_TYPE */ 9, ']')) { - $length = new ConstantExpression(null, $token->getLine()); - } else { - $length = $this->parseExpression(); - } - - $class = $this->getFilterNodeClass('slice', $token->getLine()); - $arguments = new Node([$arg, $length]); - $filter = new $class($node, new ConstantExpression('slice', $token->getLine()), $arguments, $token->getLine()); - - $stream->expect(/* Token::PUNCTUATION_TYPE */ 9, ']'); - - return $filter; - } - - $stream->expect(/* Token::PUNCTUATION_TYPE */ 9, ']'); - } - - return new GetAttrExpression($node, $arg, $arguments, $type, $lineno); - } - - public function parseFilterExpression($node) - { - $this->parser->getStream()->next(); - - return $this->parseFilterExpressionRaw($node); - } - - public function parseFilterExpressionRaw($node, $tag = null) - { - while (true) { - $token = $this->parser->getStream()->expect(/* Token::NAME_TYPE */ 5); - - $name = new ConstantExpression($token->getValue(), $token->getLine()); - if (!$this->parser->getStream()->test(/* Token::PUNCTUATION_TYPE */ 9, '(')) { - $arguments = new Node(); - } else { - $arguments = $this->parseArguments(true, false, true); - } - - $class = $this->getFilterNodeClass($name->getAttribute('value'), $token->getLine()); - - $node = new $class($node, $name, $arguments, $token->getLine(), $tag); - - if (!$this->parser->getStream()->test(/* Token::PUNCTUATION_TYPE */ 9, '|')) { - break; - } - - $this->parser->getStream()->next(); - } - - return $node; - } - - /** - * Parses arguments. - * - * @param bool $namedArguments Whether to allow named arguments or not - * @param bool $definition Whether we are parsing arguments for a function definition - * - * @return Node - * - * @throws SyntaxError - */ - public function parseArguments($namedArguments = false, $definition = false, $allowArrow = false) - { - $args = []; - $stream = $this->parser->getStream(); - - $stream->expect(/* Token::PUNCTUATION_TYPE */ 9, '(', 'A list of arguments must begin with an opening parenthesis'); - while (!$stream->test(/* Token::PUNCTUATION_TYPE */ 9, ')')) { - if (!empty($args)) { - $stream->expect(/* Token::PUNCTUATION_TYPE */ 9, ',', 'Arguments must be separated by a comma'); - } - - if ($definition) { - $token = $stream->expect(/* Token::NAME_TYPE */ 5, null, 'An argument must be a name'); - $value = new NameExpression($token->getValue(), $this->parser->getCurrentToken()->getLine()); - } else { - $value = $this->parseExpression(0, $allowArrow); - } - - $name = null; - if ($namedArguments && $token = $stream->nextIf(/* Token::OPERATOR_TYPE */ 8, '=')) { - if (!$value instanceof NameExpression) { - throw new SyntaxError(sprintf('A parameter name must be a string, "%s" given.', \get_class($value)), $token->getLine(), $stream->getSourceContext()); - } - $name = $value->getAttribute('name'); - - if ($definition) { - $value = $this->parsePrimaryExpression(); - - if (!$this->checkConstantExpression($value)) { - throw new SyntaxError(sprintf('A default value for an argument must be a constant (a boolean, a string, a number, or an array).'), $token->getLine(), $stream->getSourceContext()); - } - } else { - $value = $this->parseExpression(0, $allowArrow); - } - } - - if ($definition) { - if (null === $name) { - $name = $value->getAttribute('name'); - $value = new ConstantExpression(null, $this->parser->getCurrentToken()->getLine()); - } - $args[$name] = $value; - } else { - if (null === $name) { - $args[] = $value; - } else { - $args[$name] = $value; - } - } - } - $stream->expect(/* Token::PUNCTUATION_TYPE */ 9, ')', 'A list of arguments must be closed by a parenthesis'); - - return new Node($args); - } - - public function parseAssignmentExpression() - { - $stream = $this->parser->getStream(); - $targets = []; - while (true) { - $token = $this->parser->getCurrentToken(); - if ($stream->test(/* Token::OPERATOR_TYPE */ 8) && preg_match(Lexer::REGEX_NAME, $token->getValue())) { - // in this context, string operators are variable names - $this->parser->getStream()->next(); - } else { - $stream->expect(/* Token::NAME_TYPE */ 5, null, 'Only variables can be assigned to'); - } - $value = $token->getValue(); - if (\in_array(strtolower($value), ['true', 'false', 'none', 'null'])) { - throw new SyntaxError(sprintf('You cannot assign a value to "%s".', $value), $token->getLine(), $stream->getSourceContext()); - } - $targets[] = new AssignNameExpression($value, $token->getLine()); - - if (!$stream->nextIf(/* Token::PUNCTUATION_TYPE */ 9, ',')) { - break; - } - } - - return new Node($targets); - } - - public function parseMultitargetExpression() - { - $targets = []; - while (true) { - $targets[] = $this->parseExpression(); - if (!$this->parser->getStream()->nextIf(/* Token::PUNCTUATION_TYPE */ 9, ',')) { - break; - } - } - - return new Node($targets); - } - - private function parseNotTestExpression(Node $node): NotUnary - { - return new NotUnary($this->parseTestExpression($node), $this->parser->getCurrentToken()->getLine()); - } - - private function parseTestExpression(Node $node): TestExpression - { - $stream = $this->parser->getStream(); - list($name, $test) = $this->getTest($node->getTemplateLine()); - - $class = $this->getTestNodeClass($test); - $arguments = null; - if ($stream->test(/* Token::PUNCTUATION_TYPE */ 9, '(')) { - $arguments = $this->parseArguments(true); - } - - if ('defined' === $name && $node instanceof NameExpression && null !== $alias = $this->parser->getImportedSymbol('function', $node->getAttribute('name'))) { - $node = new MethodCallExpression($alias['node'], $alias['name'], new ArrayExpression([], $node->getTemplateLine()), $node->getTemplateLine()); - $node->setAttribute('safe', true); - } - - return new $class($node, $name, $arguments, $this->parser->getCurrentToken()->getLine()); - } - - private function getTest(int $line): array - { - $stream = $this->parser->getStream(); - $name = $stream->expect(/* Token::NAME_TYPE */ 5)->getValue(); - - if ($test = $this->env->getTest($name)) { - return [$name, $test]; - } - - if ($stream->test(/* Token::NAME_TYPE */ 5)) { - // try 2-words tests - $name = $name.' '.$this->parser->getCurrentToken()->getValue(); - - if ($test = $this->env->getTest($name)) { - $stream->next(); - - return [$name, $test]; - } - } - - $e = new SyntaxError(sprintf('Unknown "%s" test.', $name), $line, $stream->getSourceContext()); - $e->addSuggestions($name, array_keys($this->env->getTests())); - - throw $e; - } - - private function getTestNodeClass(TwigTest $test): string - { - if ($test->isDeprecated()) { - $stream = $this->parser->getStream(); - $message = sprintf('Twig Test "%s" is deprecated', $test->getName()); - - if (!\is_bool($test->getDeprecatedVersion())) { - $message .= sprintf(' since version %s', $test->getDeprecatedVersion()); - } - if ($test->getAlternative()) { - $message .= sprintf('. Use "%s" instead', $test->getAlternative()); - } - $src = $stream->getSourceContext(); - $message .= sprintf(' in %s at line %d.', $src->getPath() ?: $src->getName(), $stream->getCurrent()->getLine()); - - @trigger_error($message, E_USER_DEPRECATED); - } - - return $test->getNodeClass(); - } - - private function getFunctionNodeClass(string $name, int $line): string - { - if (false === $function = $this->env->getFunction($name)) { - $e = new SyntaxError(sprintf('Unknown "%s" function.', $name), $line, $this->parser->getStream()->getSourceContext()); - $e->addSuggestions($name, array_keys($this->env->getFunctions())); - - throw $e; - } - - if ($function->isDeprecated()) { - $message = sprintf('Twig Function "%s" is deprecated', $function->getName()); - if (!\is_bool($function->getDeprecatedVersion())) { - $message .= sprintf(' since version %s', $function->getDeprecatedVersion()); - } - if ($function->getAlternative()) { - $message .= sprintf('. Use "%s" instead', $function->getAlternative()); - } - $src = $this->parser->getStream()->getSourceContext(); - $message .= sprintf(' in %s at line %d.', $src->getPath() ?: $src->getName(), $line); - - @trigger_error($message, E_USER_DEPRECATED); - } - - return $function->getNodeClass(); - } - - private function getFilterNodeClass(string $name, int $line): string - { - if (false === $filter = $this->env->getFilter($name)) { - $e = new SyntaxError(sprintf('Unknown "%s" filter.', $name), $line, $this->parser->getStream()->getSourceContext()); - $e->addSuggestions($name, array_keys($this->env->getFilters())); - - throw $e; - } - - if ($filter->isDeprecated()) { - $message = sprintf('Twig Filter "%s" is deprecated', $filter->getName()); - if (!\is_bool($filter->getDeprecatedVersion())) { - $message .= sprintf(' since version %s', $filter->getDeprecatedVersion()); - } - if ($filter->getAlternative()) { - $message .= sprintf('. Use "%s" instead', $filter->getAlternative()); - } - $src = $this->parser->getStream()->getSourceContext(); - $message .= sprintf(' in %s at line %d.', $src->getPath() ?: $src->getName(), $line); - - @trigger_error($message, E_USER_DEPRECATED); - } - - return $filter->getNodeClass(); - } - - // checks that the node only contains "constant" elements - private function checkConstantExpression(Node $node): bool - { - if (!($node instanceof ConstantExpression || $node instanceof ArrayExpression - || $node instanceof NegUnary || $node instanceof PosUnary - )) { - return false; - } - - foreach ($node as $n) { - if (!$this->checkConstantExpression($n)) { - return false; - } - } - - return true; - } -} - -class_alias('Twig\ExpressionParser', 'Twig_ExpressionParser'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Extension/AbstractExtension.php b/srcs/phpmyadmin/vendor/twig/twig/src/Extension/AbstractExtension.php deleted file mode 100644 index 0c012b3..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Extension/AbstractExtension.php +++ /dev/null @@ -1,47 +0,0 @@ -escapers[$strategy] = $callable; - } - - /** - * Gets all defined escapers. - * - * @return callable[] An array of escapers - * - * @deprecated since Twig 2.11, to be removed in 3.0; use the same method on EscaperExtension instead - */ - public function getEscapers(/* $triggerDeprecation = true */) - { - if (0 === \func_num_args() || func_get_arg(0)) { - @trigger_error(sprintf('The "%s" method is deprecated since Twig 2.11; use "%s::getEscapers" instead.', __METHOD__, EscaperExtension::class), E_USER_DEPRECATED); - } - - return $this->escapers; - } - - /** - * Sets the default format to be used by the date filter. - * - * @param string $format The default date format string - * @param string $dateIntervalFormat The default date interval format string - */ - public function setDateFormat($format = null, $dateIntervalFormat = null) - { - if (null !== $format) { - $this->dateFormats[0] = $format; - } - - if (null !== $dateIntervalFormat) { - $this->dateFormats[1] = $dateIntervalFormat; - } - } - - /** - * Gets the default format to be used by the date filter. - * - * @return array The default date format string and the default date interval format string - */ - public function getDateFormat() - { - return $this->dateFormats; - } - - /** - * Sets the default timezone to be used by the date filter. - * - * @param \DateTimeZone|string $timezone The default timezone string or a \DateTimeZone object - */ - public function setTimezone($timezone) - { - $this->timezone = $timezone instanceof \DateTimeZone ? $timezone : new \DateTimeZone($timezone); - } - - /** - * Gets the default timezone to be used by the date filter. - * - * @return \DateTimeZone The default timezone currently in use - */ - public function getTimezone() - { - if (null === $this->timezone) { - $this->timezone = new \DateTimeZone(date_default_timezone_get()); - } - - return $this->timezone; - } - - /** - * Sets the default format to be used by the number_format filter. - * - * @param int $decimal the number of decimal places to use - * @param string $decimalPoint the character(s) to use for the decimal point - * @param string $thousandSep the character(s) to use for the thousands separator - */ - public function setNumberFormat($decimal, $decimalPoint, $thousandSep) - { - $this->numberFormat = [$decimal, $decimalPoint, $thousandSep]; - } - - /** - * Get the default format used by the number_format filter. - * - * @return array The arguments for number_format() - */ - public function getNumberFormat() - { - return $this->numberFormat; - } - - public function getTokenParsers() - { - return [ - new ApplyTokenParser(), - new ForTokenParser(), - new IfTokenParser(), - new ExtendsTokenParser(), - new IncludeTokenParser(), - new BlockTokenParser(), - new UseTokenParser(), - new FilterTokenParser(), - new MacroTokenParser(), - new ImportTokenParser(), - new FromTokenParser(), - new SetTokenParser(), - new SpacelessTokenParser(), - new FlushTokenParser(), - new DoTokenParser(), - new EmbedTokenParser(), - new WithTokenParser(), - new DeprecatedTokenParser(), - ]; - } - - public function getFilters() - { - return [ - // formatting filters - new TwigFilter('date', 'twig_date_format_filter', ['needs_environment' => true]), - new TwigFilter('date_modify', 'twig_date_modify_filter', ['needs_environment' => true]), - new TwigFilter('format', 'sprintf'), - new TwigFilter('replace', 'twig_replace_filter'), - new TwigFilter('number_format', 'twig_number_format_filter', ['needs_environment' => true]), - new TwigFilter('abs', 'abs'), - new TwigFilter('round', 'twig_round'), - - // encoding - new TwigFilter('url_encode', 'twig_urlencode_filter'), - new TwigFilter('json_encode', 'json_encode'), - new TwigFilter('convert_encoding', 'twig_convert_encoding'), - - // string filters - new TwigFilter('title', 'twig_title_string_filter', ['needs_environment' => true]), - new TwigFilter('capitalize', 'twig_capitalize_string_filter', ['needs_environment' => true]), - new TwigFilter('upper', 'twig_upper_filter', ['needs_environment' => true]), - new TwigFilter('lower', 'twig_lower_filter', ['needs_environment' => true]), - new TwigFilter('striptags', 'strip_tags'), - new TwigFilter('trim', 'twig_trim_filter'), - new TwigFilter('nl2br', 'nl2br', ['pre_escape' => 'html', 'is_safe' => ['html']]), - new TwigFilter('spaceless', 'twig_spaceless', ['is_safe' => ['html']]), - - // array helpers - new TwigFilter('join', 'twig_join_filter'), - new TwigFilter('split', 'twig_split_filter', ['needs_environment' => true]), - new TwigFilter('sort', 'twig_sort_filter'), - new TwigFilter('merge', 'twig_array_merge'), - new TwigFilter('batch', 'twig_array_batch'), - new TwigFilter('column', 'twig_array_column'), - new TwigFilter('filter', 'twig_array_filter'), - new TwigFilter('map', 'twig_array_map'), - new TwigFilter('reduce', 'twig_array_reduce'), - - // string/array filters - new TwigFilter('reverse', 'twig_reverse_filter', ['needs_environment' => true]), - new TwigFilter('length', 'twig_length_filter', ['needs_environment' => true]), - new TwigFilter('slice', 'twig_slice', ['needs_environment' => true]), - new TwigFilter('first', 'twig_first', ['needs_environment' => true]), - new TwigFilter('last', 'twig_last', ['needs_environment' => true]), - - // iteration and runtime - new TwigFilter('default', '_twig_default_filter', ['node_class' => DefaultFilter::class]), - new TwigFilter('keys', 'twig_get_array_keys_filter'), - ]; - } - - public function getFunctions() - { - return [ - new TwigFunction('max', 'max'), - new TwigFunction('min', 'min'), - new TwigFunction('range', 'range'), - new TwigFunction('constant', 'twig_constant'), - new TwigFunction('cycle', 'twig_cycle'), - new TwigFunction('random', 'twig_random', ['needs_environment' => true]), - new TwigFunction('date', 'twig_date_converter', ['needs_environment' => true]), - new TwigFunction('include', 'twig_include', ['needs_environment' => true, 'needs_context' => true, 'is_safe' => ['all']]), - new TwigFunction('source', 'twig_source', ['needs_environment' => true, 'is_safe' => ['all']]), - ]; - } - - public function getTests() - { - return [ - new TwigTest('even', null, ['node_class' => EvenTest::class]), - new TwigTest('odd', null, ['node_class' => OddTest::class]), - new TwigTest('defined', null, ['node_class' => DefinedTest::class]), - new TwigTest('same as', null, ['node_class' => SameasTest::class]), - new TwigTest('none', null, ['node_class' => NullTest::class]), - new TwigTest('null', null, ['node_class' => NullTest::class]), - new TwigTest('divisible by', null, ['node_class' => DivisiblebyTest::class]), - new TwigTest('constant', null, ['node_class' => ConstantTest::class]), - new TwigTest('empty', 'twig_test_empty'), - new TwigTest('iterable', 'twig_test_iterable'), - ]; - } - - public function getNodeVisitors() - { - return [new MacroAutoImportNodeVisitor()]; - } - - public function getOperators() - { - return [ - [ - 'not' => ['precedence' => 50, 'class' => NotUnary::class], - '-' => ['precedence' => 500, 'class' => NegUnary::class], - '+' => ['precedence' => 500, 'class' => PosUnary::class], - ], - [ - 'or' => ['precedence' => 10, 'class' => OrBinary::class, 'associativity' => ExpressionParser::OPERATOR_LEFT], - 'and' => ['precedence' => 15, 'class' => AndBinary::class, 'associativity' => ExpressionParser::OPERATOR_LEFT], - 'b-or' => ['precedence' => 16, 'class' => BitwiseOrBinary::class, 'associativity' => ExpressionParser::OPERATOR_LEFT], - 'b-xor' => ['precedence' => 17, 'class' => BitwiseXorBinary::class, 'associativity' => ExpressionParser::OPERATOR_LEFT], - 'b-and' => ['precedence' => 18, 'class' => BitwiseAndBinary::class, 'associativity' => ExpressionParser::OPERATOR_LEFT], - '==' => ['precedence' => 20, 'class' => EqualBinary::class, 'associativity' => ExpressionParser::OPERATOR_LEFT], - '!=' => ['precedence' => 20, 'class' => NotEqualBinary::class, 'associativity' => ExpressionParser::OPERATOR_LEFT], - '<=>' => ['precedence' => 20, 'class' => SpaceshipBinary::class, 'associativity' => ExpressionParser::OPERATOR_LEFT], - '<' => ['precedence' => 20, 'class' => LessBinary::class, 'associativity' => ExpressionParser::OPERATOR_LEFT], - '>' => ['precedence' => 20, 'class' => GreaterBinary::class, 'associativity' => ExpressionParser::OPERATOR_LEFT], - '>=' => ['precedence' => 20, 'class' => GreaterEqualBinary::class, 'associativity' => ExpressionParser::OPERATOR_LEFT], - '<=' => ['precedence' => 20, 'class' => LessEqualBinary::class, 'associativity' => ExpressionParser::OPERATOR_LEFT], - 'not in' => ['precedence' => 20, 'class' => NotInBinary::class, 'associativity' => ExpressionParser::OPERATOR_LEFT], - 'in' => ['precedence' => 20, 'class' => InBinary::class, 'associativity' => ExpressionParser::OPERATOR_LEFT], - 'matches' => ['precedence' => 20, 'class' => MatchesBinary::class, 'associativity' => ExpressionParser::OPERATOR_LEFT], - 'starts with' => ['precedence' => 20, 'class' => StartsWithBinary::class, 'associativity' => ExpressionParser::OPERATOR_LEFT], - 'ends with' => ['precedence' => 20, 'class' => EndsWithBinary::class, 'associativity' => ExpressionParser::OPERATOR_LEFT], - '..' => ['precedence' => 25, 'class' => RangeBinary::class, 'associativity' => ExpressionParser::OPERATOR_LEFT], - '+' => ['precedence' => 30, 'class' => AddBinary::class, 'associativity' => ExpressionParser::OPERATOR_LEFT], - '-' => ['precedence' => 30, 'class' => SubBinary::class, 'associativity' => ExpressionParser::OPERATOR_LEFT], - '~' => ['precedence' => 40, 'class' => ConcatBinary::class, 'associativity' => ExpressionParser::OPERATOR_LEFT], - '*' => ['precedence' => 60, 'class' => MulBinary::class, 'associativity' => ExpressionParser::OPERATOR_LEFT], - '/' => ['precedence' => 60, 'class' => DivBinary::class, 'associativity' => ExpressionParser::OPERATOR_LEFT], - '//' => ['precedence' => 60, 'class' => FloorDivBinary::class, 'associativity' => ExpressionParser::OPERATOR_LEFT], - '%' => ['precedence' => 60, 'class' => ModBinary::class, 'associativity' => ExpressionParser::OPERATOR_LEFT], - 'is' => ['precedence' => 100, 'associativity' => ExpressionParser::OPERATOR_LEFT], - 'is not' => ['precedence' => 100, 'associativity' => ExpressionParser::OPERATOR_LEFT], - '**' => ['precedence' => 200, 'class' => PowerBinary::class, 'associativity' => ExpressionParser::OPERATOR_RIGHT], - '??' => ['precedence' => 300, 'class' => NullCoalesceExpression::class, 'associativity' => ExpressionParser::OPERATOR_RIGHT], - ], - ]; - } -} - -class_alias('Twig\Extension\CoreExtension', 'Twig_Extension_Core'); -} - -namespace { - use Twig\Environment; - use Twig\Error\LoaderError; - use Twig\Error\RuntimeError; - use Twig\Extension\CoreExtension; - use Twig\Extension\SandboxExtension; - use Twig\Markup; - use Twig\Source; - use Twig\Template; - - /** - * Cycles over a value. - * - * @param \ArrayAccess|array $values - * @param int $position The cycle position - * - * @return string The next value in the cycle - */ -function twig_cycle($values, $position) -{ - if (!\is_array($values) && !$values instanceof \ArrayAccess) { - return $values; - } - - return $values[$position % \count($values)]; -} - -/** - * Returns a random value depending on the supplied parameter type: - * - a random item from a \Traversable or array - * - a random character from a string - * - a random integer between 0 and the integer parameter. - * - * @param \Traversable|array|int|float|string $values The values to pick a random item from - * @param int|null $max Maximum value used when $values is an int - * - * @throws RuntimeError when $values is an empty array (does not apply to an empty string which is returned as is) - * - * @return mixed A random value from the given sequence - */ -function twig_random(Environment $env, $values = null, $max = null) -{ - if (null === $values) { - return null === $max ? mt_rand() : mt_rand(0, $max); - } - - if (\is_int($values) || \is_float($values)) { - if (null === $max) { - if ($values < 0) { - $max = 0; - $min = $values; - } else { - $max = $values; - $min = 0; - } - } else { - $min = $values; - $max = $max; - } - - return mt_rand($min, $max); - } - - if (\is_string($values)) { - if ('' === $values) { - return ''; - } - - $charset = $env->getCharset(); - - if ('UTF-8' !== $charset) { - $values = iconv($charset, 'UTF-8', $values); - } - - // unicode version of str_split() - // split at all positions, but not after the start and not before the end - $values = preg_split('/(? $value) { - $values[$i] = iconv('UTF-8', $charset, $value); - } - } - } - - if (!twig_test_iterable($values)) { - return $values; - } - - $values = twig_to_array($values); - - if (0 === \count($values)) { - throw new RuntimeError('The random function cannot pick from an empty array.'); - } - - return $values[array_rand($values, 1)]; -} - -/** - * Converts a date to the given format. - * - * {{ post.published_at|date("m/d/Y") }} - * - * @param \DateTimeInterface|\DateInterval|string $date A date - * @param string|null $format The target format, null to use the default - * @param \DateTimeZone|string|false|null $timezone The target timezone, null to use the default, false to leave unchanged - * - * @return string The formatted date - */ -function twig_date_format_filter(Environment $env, $date, $format = null, $timezone = null) -{ - if (null === $format) { - $formats = $env->getExtension(CoreExtension::class)->getDateFormat(); - $format = $date instanceof \DateInterval ? $formats[1] : $formats[0]; - } - - if ($date instanceof \DateInterval) { - return $date->format($format); - } - - return twig_date_converter($env, $date, $timezone)->format($format); -} - -/** - * Returns a new date object modified. - * - * {{ post.published_at|date_modify("-1day")|date("m/d/Y") }} - * - * @param \DateTimeInterface|string $date A date - * @param string $modifier A modifier string - * - * @return \DateTimeInterface - */ -function twig_date_modify_filter(Environment $env, $date, $modifier) -{ - $date = twig_date_converter($env, $date, false); - - return $date->modify($modifier); -} - -/** - * Converts an input to a \DateTime instance. - * - * {% if date(user.created_at) < date('+2days') %} - * {# do something #} - * {% endif %} - * - * @param \DateTimeInterface|string|null $date A date or null to use the current time - * @param \DateTimeZone|string|false|null $timezone The target timezone, null to use the default, false to leave unchanged - * - * @return \DateTimeInterface - */ -function twig_date_converter(Environment $env, $date = null, $timezone = null) -{ - // determine the timezone - if (false !== $timezone) { - if (null === $timezone) { - $timezone = $env->getExtension(CoreExtension::class)->getTimezone(); - } elseif (!$timezone instanceof \DateTimeZone) { - $timezone = new \DateTimeZone($timezone); - } - } - - // immutable dates - if ($date instanceof \DateTimeImmutable) { - return false !== $timezone ? $date->setTimezone($timezone) : $date; - } - - if ($date instanceof \DateTimeInterface) { - $date = clone $date; - if (false !== $timezone) { - $date->setTimezone($timezone); - } - - return $date; - } - - if (null === $date || 'now' === $date) { - return new \DateTime($date, false !== $timezone ? $timezone : $env->getExtension(CoreExtension::class)->getTimezone()); - } - - $asString = (string) $date; - if (ctype_digit($asString) || (!empty($asString) && '-' === $asString[0] && ctype_digit(substr($asString, 1)))) { - $date = new \DateTime('@'.$date); - } else { - $date = new \DateTime($date, $env->getExtension(CoreExtension::class)->getTimezone()); - } - - if (false !== $timezone) { - $date->setTimezone($timezone); - } - - return $date; -} - -/** - * Replaces strings within a string. - * - * @param string $str String to replace in - * @param array|\Traversable $from Replace values - * - * @return string - */ -function twig_replace_filter($str, $from) -{ - if (!twig_test_iterable($from)) { - throw new RuntimeError(sprintf('The "replace" filter expects an array or "Traversable" as replace values, got "%s".', \is_object($from) ? \get_class($from) : \gettype($from))); - } - - return strtr($str, twig_to_array($from)); -} - -/** - * Rounds a number. - * - * @param int|float $value The value to round - * @param int|float $precision The rounding precision - * @param string $method The method to use for rounding - * - * @return int|float The rounded number - */ -function twig_round($value, $precision = 0, $method = 'common') -{ - if ('common' == $method) { - return round($value, $precision); - } - - if ('ceil' != $method && 'floor' != $method) { - throw new RuntimeError('The round filter only supports the "common", "ceil", and "floor" methods.'); - } - - return $method($value * pow(10, $precision)) / pow(10, $precision); -} - -/** - * Number format filter. - * - * All of the formatting options can be left null, in that case the defaults will - * be used. Supplying any of the parameters will override the defaults set in the - * environment object. - * - * @param mixed $number A float/int/string of the number to format - * @param int $decimal the number of decimal points to display - * @param string $decimalPoint the character(s) to use for the decimal point - * @param string $thousandSep the character(s) to use for the thousands separator - * - * @return string The formatted number - */ -function twig_number_format_filter(Environment $env, $number, $decimal = null, $decimalPoint = null, $thousandSep = null) -{ - $defaults = $env->getExtension(CoreExtension::class)->getNumberFormat(); - if (null === $decimal) { - $decimal = $defaults[0]; - } - - if (null === $decimalPoint) { - $decimalPoint = $defaults[1]; - } - - if (null === $thousandSep) { - $thousandSep = $defaults[2]; - } - - return number_format((float) $number, $decimal, $decimalPoint, $thousandSep); -} - -/** - * URL encodes (RFC 3986) a string as a path segment or an array as a query string. - * - * @param string|array $url A URL or an array of query parameters - * - * @return string The URL encoded value - */ -function twig_urlencode_filter($url) -{ - if (\is_array($url)) { - return http_build_query($url, '', '&', PHP_QUERY_RFC3986); - } - - return rawurlencode($url); -} - -/** - * Merges an array with another one. - * - * {% set items = { 'apple': 'fruit', 'orange': 'fruit' } %} - * - * {% set items = items|merge({ 'peugeot': 'car' }) %} - * - * {# items now contains { 'apple': 'fruit', 'orange': 'fruit', 'peugeot': 'car' } #} - * - * @param array|\Traversable $arr1 An array - * @param array|\Traversable $arr2 An array - * - * @return array The merged array - */ -function twig_array_merge($arr1, $arr2) -{ - if (!twig_test_iterable($arr1)) { - throw new RuntimeError(sprintf('The merge filter only works with arrays or "Traversable", got "%s" as first argument.', \gettype($arr1))); - } - - if (!twig_test_iterable($arr2)) { - throw new RuntimeError(sprintf('The merge filter only works with arrays or "Traversable", got "%s" as second argument.', \gettype($arr2))); - } - - return array_merge(twig_to_array($arr1), twig_to_array($arr2)); -} - -/** - * Slices a variable. - * - * @param mixed $item A variable - * @param int $start Start of the slice - * @param int $length Size of the slice - * @param bool $preserveKeys Whether to preserve key or not (when the input is an array) - * - * @return mixed The sliced variable - */ -function twig_slice(Environment $env, $item, $start, $length = null, $preserveKeys = false) -{ - if ($item instanceof \Traversable) { - while ($item instanceof \IteratorAggregate) { - $item = $item->getIterator(); - } - - if ($start >= 0 && $length >= 0 && $item instanceof \Iterator) { - try { - return iterator_to_array(new \LimitIterator($item, $start, null === $length ? -1 : $length), $preserveKeys); - } catch (\OutOfBoundsException $e) { - return []; - } - } - - $item = iterator_to_array($item, $preserveKeys); - } - - if (\is_array($item)) { - return \array_slice($item, $start, $length, $preserveKeys); - } - - $item = (string) $item; - - return (string) mb_substr($item, $start, $length, $env->getCharset()); -} - -/** - * Returns the first element of the item. - * - * @param mixed $item A variable - * - * @return mixed The first element of the item - */ -function twig_first(Environment $env, $item) -{ - $elements = twig_slice($env, $item, 0, 1, false); - - return \is_string($elements) ? $elements : current($elements); -} - -/** - * Returns the last element of the item. - * - * @param mixed $item A variable - * - * @return mixed The last element of the item - */ -function twig_last(Environment $env, $item) -{ - $elements = twig_slice($env, $item, -1, 1, false); - - return \is_string($elements) ? $elements : current($elements); -} - -/** - * Joins the values to a string. - * - * The separators between elements are empty strings per default, you can define them with the optional parameters. - * - * {{ [1, 2, 3]|join(', ', ' and ') }} - * {# returns 1, 2 and 3 #} - * - * {{ [1, 2, 3]|join('|') }} - * {# returns 1|2|3 #} - * - * {{ [1, 2, 3]|join }} - * {# returns 123 #} - * - * @param array $value An array - * @param string $glue The separator - * @param string|null $and The separator for the last pair - * - * @return string The concatenated string - */ -function twig_join_filter($value, $glue = '', $and = null) -{ - if (!twig_test_iterable($value)) { - $value = (array) $value; - } - - $value = twig_to_array($value, false); - - if (0 === \count($value)) { - return ''; - } - - if (null === $and || $and === $glue) { - return implode($glue, $value); - } - - if (1 === \count($value)) { - return $value[0]; - } - - return implode($glue, \array_slice($value, 0, -1)).$and.$value[\count($value) - 1]; -} - -/** - * Splits the string into an array. - * - * {{ "one,two,three"|split(',') }} - * {# returns [one, two, three] #} - * - * {{ "one,two,three,four,five"|split(',', 3) }} - * {# returns [one, two, "three,four,five"] #} - * - * {{ "123"|split('') }} - * {# returns [1, 2, 3] #} - * - * {{ "aabbcc"|split('', 2) }} - * {# returns [aa, bb, cc] #} - * - * @param string $value A string - * @param string $delimiter The delimiter - * @param int $limit The limit - * - * @return array The split string as an array - */ -function twig_split_filter(Environment $env, $value, $delimiter, $limit = null) -{ - if (\strlen($delimiter) > 0) { - return null === $limit ? explode($delimiter, $value) : explode($delimiter, $value, $limit); - } - - if ($limit <= 1) { - return preg_split('/(?getCharset()); - if ($length < $limit) { - return [$value]; - } - - $r = []; - for ($i = 0; $i < $length; $i += $limit) { - $r[] = mb_substr($value, $i, $limit, $env->getCharset()); - } - - return $r; -} - -// The '_default' filter is used internally to avoid using the ternary operator -// which costs a lot for big contexts (before PHP 5.4). So, on average, -// a function call is cheaper. -/** - * @internal - */ -function _twig_default_filter($value, $default = '') -{ - if (twig_test_empty($value)) { - return $default; - } - - return $value; -} - -/** - * Returns the keys for the given array. - * - * It is useful when you want to iterate over the keys of an array: - * - * {% for key in array|keys %} - * {# ... #} - * {% endfor %} - * - * @param array $array An array - * - * @return array The keys - */ -function twig_get_array_keys_filter($array) -{ - if ($array instanceof \Traversable) { - while ($array instanceof \IteratorAggregate) { - $array = $array->getIterator(); - } - - if ($array instanceof \Iterator) { - $keys = []; - $array->rewind(); - while ($array->valid()) { - $keys[] = $array->key(); - $array->next(); - } - - return $keys; - } - - $keys = []; - foreach ($array as $key => $item) { - $keys[] = $key; - } - - return $keys; - } - - if (!\is_array($array)) { - return []; - } - - return array_keys($array); -} - -/** - * Reverses a variable. - * - * @param array|\Traversable|string $item An array, a \Traversable instance, or a string - * @param bool $preserveKeys Whether to preserve key or not - * - * @return mixed The reversed input - */ -function twig_reverse_filter(Environment $env, $item, $preserveKeys = false) -{ - if ($item instanceof \Traversable) { - return array_reverse(iterator_to_array($item), $preserveKeys); - } - - if (\is_array($item)) { - return array_reverse($item, $preserveKeys); - } - - $string = (string) $item; - - $charset = $env->getCharset(); - - if ('UTF-8' !== $charset) { - $item = iconv($charset, 'UTF-8', $string); - } - - preg_match_all('/./us', $item, $matches); - - $string = implode('', array_reverse($matches[0])); - - if ('UTF-8' !== $charset) { - $string = iconv('UTF-8', $charset, $string); - } - - return $string; -} - -/** - * Sorts an array. - * - * @param array|\Traversable $array - * - * @return array - */ -function twig_sort_filter($array, $arrow = null) -{ - if ($array instanceof \Traversable) { - $array = iterator_to_array($array); - } elseif (!\is_array($array)) { - throw new RuntimeError(sprintf('The sort filter only works with arrays or "Traversable", got "%s".', \gettype($array))); - } - - if (null !== $arrow) { - uasort($array, $arrow); - } else { - asort($array); - } - - return $array; -} - -/** - * @internal - */ -function twig_in_filter($value, $compare) -{ - if ($value instanceof Markup) { - $value = (string) $value; - } - if ($compare instanceof Markup) { - $compare = (string) $compare; - } - - if (\is_array($compare)) { - return \in_array($value, $compare, \is_object($value) || \is_resource($value)); - } elseif (\is_string($compare) && (\is_string($value) || \is_int($value) || \is_float($value))) { - return '' === $value || false !== strpos($compare, (string) $value); - } elseif ($compare instanceof \Traversable) { - if (\is_object($value) || \is_resource($value)) { - foreach ($compare as $item) { - if ($item === $value) { - return true; - } - } - } else { - foreach ($compare as $item) { - if ($item == $value) { - return true; - } - } - } - - return false; - } - - return false; -} - -/** - * Returns a trimmed string. - * - * @return string - * - * @throws RuntimeError When an invalid trimming side is used (not a string or not 'left', 'right', or 'both') - */ -function twig_trim_filter($string, $characterMask = null, $side = 'both') -{ - if (null === $characterMask) { - $characterMask = " \t\n\r\0\x0B"; - } - - switch ($side) { - case 'both': - return trim($string, $characterMask); - case 'left': - return ltrim($string, $characterMask); - case 'right': - return rtrim($string, $characterMask); - default: - throw new RuntimeError('Trimming side must be "left", "right" or "both".'); - } -} - -/** - * Removes whitespaces between HTML tags. - * - * @return string - */ -function twig_spaceless($content) -{ - return trim(preg_replace('/>\s+<', $content)); -} - -function twig_convert_encoding($string, $to, $from) -{ - return iconv($from, $to, $string); -} - -/** - * Returns the length of a variable. - * - * @param mixed $thing A variable - * - * @return int The length of the value - */ -function twig_length_filter(Environment $env, $thing) -{ - if (null === $thing) { - return 0; - } - - if (is_scalar($thing)) { - return mb_strlen($thing, $env->getCharset()); - } - - if ($thing instanceof \Countable || \is_array($thing) || $thing instanceof \SimpleXMLElement) { - return \count($thing); - } - - if ($thing instanceof \Traversable) { - return iterator_count($thing); - } - - if (method_exists($thing, '__toString') && !$thing instanceof \Countable) { - return mb_strlen((string) $thing, $env->getCharset()); - } - - return 1; -} - -/** - * Converts a string to uppercase. - * - * @param string $string A string - * - * @return string The uppercased string - */ -function twig_upper_filter(Environment $env, $string) -{ - return mb_strtoupper($string, $env->getCharset()); -} - -/** - * Converts a string to lowercase. - * - * @param string $string A string - * - * @return string The lowercased string - */ -function twig_lower_filter(Environment $env, $string) -{ - return mb_strtolower($string, $env->getCharset()); -} - -/** - * Returns a titlecased string. - * - * @param string $string A string - * - * @return string The titlecased string - */ -function twig_title_string_filter(Environment $env, $string) -{ - if (null !== $charset = $env->getCharset()) { - return mb_convert_case($string, MB_CASE_TITLE, $charset); - } - - return ucwords(strtolower($string)); -} - -/** - * Returns a capitalized string. - * - * @param string $string A string - * - * @return string The capitalized string - */ -function twig_capitalize_string_filter(Environment $env, $string) -{ - $charset = $env->getCharset(); - - return mb_strtoupper(mb_substr($string, 0, 1, $charset), $charset).mb_strtolower(mb_substr($string, 1, null, $charset), $charset); -} - -/** - * @internal - */ -function twig_call_macro(Template $template, string $method, array $args, int $lineno, array $context, Source $source) -{ - if (!method_exists($template, $method)) { - $parent = $template; - while ($parent = $parent->getParent($context)) { - if (method_exists($parent, $method)) { - return $parent->$method(...$args); - } - } - - throw new RuntimeError(sprintf('Macro "%s" is not defined in template "%s".', substr($method, \strlen('macro_')), $template->getTemplateName()), $lineno, $source); - } - - return $template->$method(...$args); -} - -/** - * @internal - */ -function twig_ensure_traversable($seq) -{ - if ($seq instanceof \Traversable || \is_array($seq)) { - return $seq; - } - - return []; -} - -/** - * @internal - */ -function twig_to_array($seq, $preserveKeys = true) -{ - if ($seq instanceof \Traversable) { - return iterator_to_array($seq, $preserveKeys); - } - - if (!\is_array($seq)) { - return $seq; - } - - return $preserveKeys ? $seq : array_values($seq); -} - -/** - * Checks if a variable is empty. - * - * {# evaluates to true if the foo variable is null, false, or the empty string #} - * {% if foo is empty %} - * {# ... #} - * {% endif %} - * - * @param mixed $value A variable - * - * @return bool true if the value is empty, false otherwise - */ -function twig_test_empty($value) -{ - if ($value instanceof \Countable) { - return 0 == \count($value); - } - - if ($value instanceof \Traversable) { - return !iterator_count($value); - } - - if (\is_object($value) && method_exists($value, '__toString')) { - return '' === (string) $value; - } - - return '' === $value || false === $value || null === $value || [] === $value; -} - -/** - * Checks if a variable is traversable. - * - * {# evaluates to true if the foo variable is an array or a traversable object #} - * {% if foo is iterable %} - * {# ... #} - * {% endif %} - * - * @param mixed $value A variable - * - * @return bool true if the value is traversable - */ -function twig_test_iterable($value) -{ - return $value instanceof \Traversable || \is_array($value); -} - -/** - * Renders a template. - * - * @param array $context - * @param string|array $template The template to render or an array of templates to try consecutively - * @param array $variables The variables to pass to the template - * @param bool $withContext - * @param bool $ignoreMissing Whether to ignore missing templates or not - * @param bool $sandboxed Whether to sandbox the template or not - * - * @return string The rendered template - */ -function twig_include(Environment $env, $context, $template, $variables = [], $withContext = true, $ignoreMissing = false, $sandboxed = false) -{ - $alreadySandboxed = false; - $sandbox = null; - if ($withContext) { - $variables = array_merge($context, $variables); - } - - if ($isSandboxed = $sandboxed && $env->hasExtension(SandboxExtension::class)) { - $sandbox = $env->getExtension(SandboxExtension::class); - if (!$alreadySandboxed = $sandbox->isSandboxed()) { - $sandbox->enableSandbox(); - } - } - - try { - $loaded = null; - try { - $loaded = $env->resolveTemplate($template); - } catch (LoaderError $e) { - if (!$ignoreMissing) { - throw $e; - } - } - - return $loaded ? $loaded->render($variables) : ''; - } finally { - if ($isSandboxed && !$alreadySandboxed) { - $sandbox->disableSandbox(); - } - } -} - -/** - * Returns a template content without rendering it. - * - * @param string $name The template name - * @param bool $ignoreMissing Whether to ignore missing templates or not - * - * @return string The template source - */ -function twig_source(Environment $env, $name, $ignoreMissing = false) -{ - $loader = $env->getLoader(); - try { - return $loader->getSourceContext($name)->getCode(); - } catch (LoaderError $e) { - if (!$ignoreMissing) { - throw $e; - } - } -} - -/** - * Provides the ability to get constants from instances as well as class/global constants. - * - * @param string $constant The name of the constant - * @param object|null $object The object to get the constant from - * - * @return string - */ -function twig_constant($constant, $object = null) -{ - if (null !== $object) { - $constant = \get_class($object).'::'.$constant; - } - - return \constant($constant); -} - -/** - * Checks if a constant exists. - * - * @param string $constant The name of the constant - * @param object|null $object The object to get the constant from - * - * @return bool - */ -function twig_constant_is_defined($constant, $object = null) -{ - if (null !== $object) { - $constant = \get_class($object).'::'.$constant; - } - - return \defined($constant); -} - -/** - * Batches item. - * - * @param array $items An array of items - * @param int $size The size of the batch - * @param mixed $fill A value used to fill missing items - * - * @return array - */ -function twig_array_batch($items, $size, $fill = null, $preserveKeys = true) -{ - if (!twig_test_iterable($items)) { - throw new RuntimeError(sprintf('The "batch" filter expects an array or "Traversable", got "%s".', \is_object($items) ? \get_class($items) : \gettype($items))); - } - - $size = ceil($size); - - $result = array_chunk(twig_to_array($items, $preserveKeys), $size, $preserveKeys); - - if (null !== $fill && $result) { - $last = \count($result) - 1; - if ($fillCount = $size - \count($result[$last])) { - for ($i = 0; $i < $fillCount; ++$i) { - $result[$last][] = $fill; - } - } - } - - return $result; -} - -/** - * Returns the attribute value for a given array/object. - * - * @param mixed $object The object or array from where to get the item - * @param mixed $item The item to get from the array or object - * @param array $arguments An array of arguments to pass if the item is an object method - * @param string $type The type of attribute (@see \Twig\Template constants) - * @param bool $isDefinedTest Whether this is only a defined check - * @param bool $ignoreStrictCheck Whether to ignore the strict attribute check or not - * @param int $lineno The template line where the attribute was called - * - * @return mixed The attribute value, or a Boolean when $isDefinedTest is true, or null when the attribute is not set and $ignoreStrictCheck is true - * - * @throws RuntimeError if the attribute does not exist and Twig is running in strict mode and $isDefinedTest is false - * - * @internal - */ -function twig_get_attribute(Environment $env, Source $source, $object, $item, array $arguments = [], $type = /* Template::ANY_CALL */ 'any', $isDefinedTest = false, $ignoreStrictCheck = false, $sandboxed = false, int $lineno = -1) -{ - // array - if (/* Template::METHOD_CALL */ 'method' !== $type) { - $arrayItem = \is_bool($item) || \is_float($item) ? (int) $item : $item; - - if (((\is_array($object) || $object instanceof \ArrayObject) && (isset($object[$arrayItem]) || \array_key_exists($arrayItem, (array) $object))) - || ($object instanceof ArrayAccess && isset($object[$arrayItem])) - ) { - if ($isDefinedTest) { - return true; - } - - return $object[$arrayItem]; - } - - if (/* Template::ARRAY_CALL */ 'array' === $type || !\is_object($object)) { - if ($isDefinedTest) { - return false; - } - - if ($ignoreStrictCheck || !$env->isStrictVariables()) { - return; - } - - if ($object instanceof ArrayAccess) { - $message = sprintf('Key "%s" in object with ArrayAccess of class "%s" does not exist.', $arrayItem, \get_class($object)); - } elseif (\is_object($object)) { - $message = sprintf('Impossible to access a key "%s" on an object of class "%s" that does not implement ArrayAccess interface.', $item, \get_class($object)); - } elseif (\is_array($object)) { - if (empty($object)) { - $message = sprintf('Key "%s" does not exist as the array is empty.', $arrayItem); - } else { - $message = sprintf('Key "%s" for array with keys "%s" does not exist.', $arrayItem, implode(', ', array_keys($object))); - } - } elseif (/* Template::ARRAY_CALL */ 'array' === $type) { - if (null === $object) { - $message = sprintf('Impossible to access a key ("%s") on a null variable.', $item); - } else { - $message = sprintf('Impossible to access a key ("%s") on a %s variable ("%s").', $item, \gettype($object), $object); - } - } elseif (null === $object) { - $message = sprintf('Impossible to access an attribute ("%s") on a null variable.', $item); - } else { - $message = sprintf('Impossible to access an attribute ("%s") on a %s variable ("%s").', $item, \gettype($object), $object); - } - - throw new RuntimeError($message, $lineno, $source); - } - } - - if (!\is_object($object)) { - if ($isDefinedTest) { - return false; - } - - if ($ignoreStrictCheck || !$env->isStrictVariables()) { - return; - } - - if (null === $object) { - $message = sprintf('Impossible to invoke a method ("%s") on a null variable.', $item); - } elseif (\is_array($object)) { - $message = sprintf('Impossible to invoke a method ("%s") on an array.', $item); - } else { - $message = sprintf('Impossible to invoke a method ("%s") on a %s variable ("%s").', $item, \gettype($object), $object); - } - - throw new RuntimeError($message, $lineno, $source); - } - - if ($object instanceof Template) { - throw new RuntimeError('Accessing \Twig\Template attributes is forbidden.', $lineno, $source); - } - - // object property - if (/* Template::METHOD_CALL */ 'method' !== $type) { - if (isset($object->$item) || \array_key_exists((string) $item, (array) $object)) { - if ($isDefinedTest) { - return true; - } - - if ($sandboxed) { - $env->getExtension(SandboxExtension::class)->checkPropertyAllowed($object, $item, $lineno, $source); - } - - return $object->$item; - } - } - - static $cache = []; - - $class = \get_class($object); - - // object method - // precedence: getXxx() > isXxx() > hasXxx() - if (!isset($cache[$class])) { - $methods = get_class_methods($object); - sort($methods); - $lcMethods = array_map('strtolower', $methods); - $classCache = []; - foreach ($methods as $i => $method) { - $classCache[$method] = $method; - $classCache[$lcName = $lcMethods[$i]] = $method; - - if ('g' === $lcName[0] && 0 === strpos($lcName, 'get')) { - $name = substr($method, 3); - $lcName = substr($lcName, 3); - } elseif ('i' === $lcName[0] && 0 === strpos($lcName, 'is')) { - $name = substr($method, 2); - $lcName = substr($lcName, 2); - } elseif ('h' === $lcName[0] && 0 === strpos($lcName, 'has')) { - $name = substr($method, 3); - $lcName = substr($lcName, 3); - if (\in_array('is'.$lcName, $lcMethods)) { - continue; - } - } else { - continue; - } - - // skip get() and is() methods (in which case, $name is empty) - if ($name) { - if (!isset($classCache[$name])) { - $classCache[$name] = $method; - } - - if (!isset($classCache[$lcName])) { - $classCache[$lcName] = $method; - } - } - } - $cache[$class] = $classCache; - } - - $call = false; - if (isset($cache[$class][$item])) { - $method = $cache[$class][$item]; - } elseif (isset($cache[$class][$lcItem = strtolower($item)])) { - $method = $cache[$class][$lcItem]; - } elseif (isset($cache[$class]['__call'])) { - $method = $item; - $call = true; - } else { - if ($isDefinedTest) { - return false; - } - - if ($ignoreStrictCheck || !$env->isStrictVariables()) { - return; - } - - throw new RuntimeError(sprintf('Neither the property "%1$s" nor one of the methods "%1$s()", "get%1$s()"/"is%1$s()"/"has%1$s()" or "__call()" exist and have public access in class "%2$s".', $item, $class), $lineno, $source); - } - - if ($isDefinedTest) { - return true; - } - - if ($sandboxed) { - $env->getExtension(SandboxExtension::class)->checkMethodAllowed($object, $method, $lineno, $source); - } - - // Some objects throw exceptions when they have __call, and the method we try - // to call is not supported. If ignoreStrictCheck is true, we should return null. - try { - $ret = $object->$method(...$arguments); - } catch (\BadMethodCallException $e) { - if ($call && ($ignoreStrictCheck || !$env->isStrictVariables())) { - return; - } - throw $e; - } - - return $ret; -} - -/** - * Returns the values from a single column in the input array. - * - *
    - *  {% set items = [{ 'fruit' : 'apple'}, {'fruit' : 'orange' }] %}
    - *
    - *  {% set fruits = items|column('fruit') %}
    - *
    - *  {# fruits now contains ['apple', 'orange'] #}
    - * 
    - * - * @param array|Traversable $array An array - * @param mixed $name The column name - * @param mixed $index The column to use as the index/keys for the returned array - * - * @return array The array of values - */ -function twig_array_column($array, $name, $index = null): array -{ - if ($array instanceof Traversable) { - $array = iterator_to_array($array); - } elseif (!\is_array($array)) { - throw new RuntimeError(sprintf('The column filter only works with arrays or "Traversable", got "%s" as first argument.', \gettype($array))); - } - - return array_column($array, $name, $index); -} - -function twig_array_filter($array, $arrow) -{ - if (\is_array($array)) { - return array_filter($array, $arrow, \ARRAY_FILTER_USE_BOTH); - } - - // the IteratorIterator wrapping is needed as some internal PHP classes are \Traversable but do not implement \Iterator - return new \CallbackFilterIterator(new \IteratorIterator($array), $arrow); -} - -function twig_array_map($array, $arrow) -{ - $r = []; - foreach ($array as $k => $v) { - $r[$k] = $arrow($v, $k); - } - - return $r; -} - -function twig_array_reduce($array, $arrow, $initial = null) -{ - if (!\is_array($array)) { - $array = iterator_to_array($array); - } - - return array_reduce($array, $arrow, $initial); -} -} diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Extension/DebugExtension.php b/srcs/phpmyadmin/vendor/twig/twig/src/Extension/DebugExtension.php deleted file mode 100644 index 2e8510d..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Extension/DebugExtension.php +++ /dev/null @@ -1,66 +0,0 @@ - $isDumpOutputHtmlSafe ? ['html'] : [], 'needs_context' => true, 'needs_environment' => true, 'is_variadic' => true]), - ]; - } -} - -class_alias('Twig\Extension\DebugExtension', 'Twig_Extension_Debug'); -} - -namespace { -use Twig\Environment; -use Twig\Template; -use Twig\TemplateWrapper; - -function twig_var_dump(Environment $env, $context, ...$vars) -{ - if (!$env->isDebug()) { - return; - } - - ob_start(); - - if (!$vars) { - $vars = []; - foreach ($context as $key => $value) { - if (!$value instanceof Template && !$value instanceof TemplateWrapper) { - $vars[$key] = $value; - } - } - - var_dump($vars); - } else { - var_dump(...$vars); - } - - return ob_get_clean(); -} -} diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Extension/EscaperExtension.php b/srcs/phpmyadmin/vendor/twig/twig/src/Extension/EscaperExtension.php deleted file mode 100644 index b8dabcc..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Extension/EscaperExtension.php +++ /dev/null @@ -1,427 +0,0 @@ -setDefaultStrategy($defaultStrategy); - } - - public function getTokenParsers() - { - return [new AutoEscapeTokenParser()]; - } - - public function getNodeVisitors() - { - return [new EscaperNodeVisitor()]; - } - - public function getFilters() - { - return [ - new TwigFilter('escape', 'twig_escape_filter', ['needs_environment' => true, 'is_safe_callback' => 'twig_escape_filter_is_safe']), - new TwigFilter('e', 'twig_escape_filter', ['needs_environment' => true, 'is_safe_callback' => 'twig_escape_filter_is_safe']), - new TwigFilter('raw', 'twig_raw_filter', ['is_safe' => ['all']]), - ]; - } - - /** - * Sets the default strategy to use when not defined by the user. - * - * The strategy can be a valid PHP callback that takes the template - * name as an argument and returns the strategy to use. - * - * @param string|false|callable $defaultStrategy An escaping strategy - */ - public function setDefaultStrategy($defaultStrategy) - { - if ('name' === $defaultStrategy) { - $defaultStrategy = [FileExtensionEscapingStrategy::class, 'guess']; - } - - $this->defaultStrategy = $defaultStrategy; - } - - /** - * Gets the default strategy to use when not defined by the user. - * - * @param string $name The template name - * - * @return string|false The default strategy to use for the template - */ - public function getDefaultStrategy($name) - { - // disable string callables to avoid calling a function named html or js, - // or any other upcoming escaping strategy - if (!\is_string($this->defaultStrategy) && false !== $this->defaultStrategy) { - return \call_user_func($this->defaultStrategy, $name); - } - - return $this->defaultStrategy; - } - - /** - * Defines a new escaper to be used via the escape filter. - * - * @param string $strategy The strategy name that should be used as a strategy in the escape call - * @param callable $callable A valid PHP callable - */ - public function setEscaper($strategy, callable $callable) - { - $this->escapers[$strategy] = $callable; - } - - /** - * Gets all defined escapers. - * - * @return callable[] An array of escapers - */ - public function getEscapers() - { - return $this->escapers; - } - - public function setSafeClasses(array $safeClasses = []) - { - $this->safeClasses = []; - $this->safeLookup = []; - foreach ($safeClasses as $class => $strategies) { - $this->addSafeClass($class, $strategies); - } - } - - public function addSafeClass(string $class, array $strategies) - { - $class = ltrim($class, '\\'); - if (!isset($this->safeClasses[$class])) { - $this->safeClasses[$class] = []; - } - $this->safeClasses[$class] = array_merge($this->safeClasses[$class], $strategies); - - foreach ($strategies as $strategy) { - $this->safeLookup[$strategy][$class] = true; - } - } -} - -class_alias('Twig\Extension\EscaperExtension', 'Twig_Extension_Escaper'); -} - -namespace { -use Twig\Environment; -use Twig\Error\RuntimeError; -use Twig\Extension\CoreExtension; -use Twig\Extension\EscaperExtension; -use Twig\Markup; -use Twig\Node\Expression\ConstantExpression; -use Twig\Node\Node; - -/** - * Marks a variable as being safe. - * - * @param string $string A PHP variable - * - * @return string - */ -function twig_raw_filter($string) -{ - return $string; -} - -/** - * Escapes a string. - * - * @param mixed $string The value to be escaped - * @param string $strategy The escaping strategy - * @param string $charset The charset - * @param bool $autoescape Whether the function is called by the auto-escaping feature (true) or by the developer (false) - * - * @return string - */ -function twig_escape_filter(Environment $env, $string, $strategy = 'html', $charset = null, $autoescape = false) -{ - if ($autoescape && $string instanceof Markup) { - return $string; - } - - if (!\is_string($string)) { - if (\is_object($string) && method_exists($string, '__toString')) { - if ($autoescape) { - $c = \get_class($string); - $ext = $env->getExtension(EscaperExtension::class); - if (!isset($ext->safeClasses[$c])) { - $ext->safeClasses[$c] = []; - foreach (class_parents($string) + class_implements($string) as $class) { - if (isset($ext->safeClasses[$class])) { - $ext->safeClasses[$c] = array_unique(array_merge($ext->safeClasses[$c], $ext->safeClasses[$class])); - foreach ($ext->safeClasses[$class] as $s) { - $ext->safeLookup[$s][$c] = true; - } - } - } - } - if (isset($ext->safeLookup[$strategy][$c]) || isset($ext->safeLookup['all'][$c])) { - return (string) $string; - } - } - - $string = (string) $string; - } elseif (\in_array($strategy, ['html', 'js', 'css', 'html_attr', 'url'])) { - return $string; - } - } - - if ('' === $string) { - return ''; - } - - if (null === $charset) { - $charset = $env->getCharset(); - } - - switch ($strategy) { - case 'html': - // see https://secure.php.net/htmlspecialchars - - // Using a static variable to avoid initializing the array - // each time the function is called. Moving the declaration on the - // top of the function slow downs other escaping strategies. - static $htmlspecialcharsCharsets = [ - 'ISO-8859-1' => true, 'ISO8859-1' => true, - 'ISO-8859-15' => true, 'ISO8859-15' => true, - 'utf-8' => true, 'UTF-8' => true, - 'CP866' => true, 'IBM866' => true, '866' => true, - 'CP1251' => true, 'WINDOWS-1251' => true, 'WIN-1251' => true, - '1251' => true, - 'CP1252' => true, 'WINDOWS-1252' => true, '1252' => true, - 'KOI8-R' => true, 'KOI8-RU' => true, 'KOI8R' => true, - 'BIG5' => true, '950' => true, - 'GB2312' => true, '936' => true, - 'BIG5-HKSCS' => true, - 'SHIFT_JIS' => true, 'SJIS' => true, '932' => true, - 'EUC-JP' => true, 'EUCJP' => true, - 'ISO8859-5' => true, 'ISO-8859-5' => true, 'MACROMAN' => true, - ]; - - if (isset($htmlspecialcharsCharsets[$charset])) { - return htmlspecialchars($string, ENT_QUOTES | ENT_SUBSTITUTE, $charset); - } - - if (isset($htmlspecialcharsCharsets[strtoupper($charset)])) { - // cache the lowercase variant for future iterations - $htmlspecialcharsCharsets[$charset] = true; - - return htmlspecialchars($string, ENT_QUOTES | ENT_SUBSTITUTE, $charset); - } - - $string = iconv($charset, 'UTF-8', $string); - $string = htmlspecialchars($string, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8'); - - return iconv('UTF-8', $charset, $string); - - case 'js': - // escape all non-alphanumeric characters - // into their \x or \uHHHH representations - if ('UTF-8' !== $charset) { - $string = iconv($charset, 'UTF-8', $string); - } - - if (!preg_match('//u', $string)) { - throw new RuntimeError('The string to escape is not a valid UTF-8 string.'); - } - - $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', function ($matches) { - $char = $matches[0]; - - /* - * A few characters have short escape sequences in JSON and JavaScript. - * Escape sequences supported only by JavaScript, not JSON, are ommitted. - * \" is also supported but omitted, because the resulting string is not HTML safe. - */ - static $shortMap = [ - '\\' => '\\\\', - '/' => '\\/', - "\x08" => '\b', - "\x0C" => '\f', - "\x0A" => '\n', - "\x0D" => '\r', - "\x09" => '\t', - ]; - - if (isset($shortMap[$char])) { - return $shortMap[$char]; - } - - // \uHHHH - $char = twig_convert_encoding($char, 'UTF-16BE', 'UTF-8'); - $char = strtoupper(bin2hex($char)); - - if (4 >= \strlen($char)) { - return sprintf('\u%04s', $char); - } - - return sprintf('\u%04s\u%04s', substr($char, 0, -4), substr($char, -4)); - }, $string); - - if ('UTF-8' !== $charset) { - $string = iconv('UTF-8', $charset, $string); - } - - return $string; - - case 'css': - if ('UTF-8' !== $charset) { - $string = iconv($charset, 'UTF-8', $string); - } - - if (!preg_match('//u', $string)) { - throw new RuntimeError('The string to escape is not a valid UTF-8 string.'); - } - - $string = preg_replace_callback('#[^a-zA-Z0-9]#Su', function ($matches) { - $char = $matches[0]; - - return sprintf('\\%X ', 1 === \strlen($char) ? \ord($char) : mb_ord($char, 'UTF-8')); - }, $string); - - if ('UTF-8' !== $charset) { - $string = iconv('UTF-8', $charset, $string); - } - - return $string; - - case 'html_attr': - if ('UTF-8' !== $charset) { - $string = iconv($charset, 'UTF-8', $string); - } - - if (!preg_match('//u', $string)) { - throw new RuntimeError('The string to escape is not a valid UTF-8 string.'); - } - - $string = preg_replace_callback('#[^a-zA-Z0-9,\.\-_]#Su', function ($matches) { - /** - * This function is adapted from code coming from Zend Framework. - * - * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (https://www.zend.com) - * @license https://framework.zend.com/license/new-bsd New BSD License - */ - $chr = $matches[0]; - $ord = \ord($chr); - - /* - * The following replaces characters undefined in HTML with the - * hex entity for the Unicode replacement character. - */ - if (($ord <= 0x1f && "\t" != $chr && "\n" != $chr && "\r" != $chr) || ($ord >= 0x7f && $ord <= 0x9f)) { - return '�'; - } - - /* - * Check if the current character to escape has a name entity we should - * replace it with while grabbing the hex value of the character. - */ - if (1 === \strlen($chr)) { - /* - * While HTML supports far more named entities, the lowest common denominator - * has become HTML5's XML Serialisation which is restricted to the those named - * entities that XML supports. Using HTML entities would result in this error: - * XML Parsing Error: undefined entity - */ - static $entityMap = [ - 34 => '"', /* quotation mark */ - 38 => '&', /* ampersand */ - 60 => '<', /* less-than sign */ - 62 => '>', /* greater-than sign */ - ]; - - if (isset($entityMap[$ord])) { - return $entityMap[$ord]; - } - - return sprintf('&#x%02X;', $ord); - } - - /* - * Per OWASP recommendations, we'll use hex entities for any other - * characters where a named entity does not exist. - */ - return sprintf('&#x%04X;', mb_ord($chr, 'UTF-8')); - }, $string); - - if ('UTF-8' !== $charset) { - $string = iconv('UTF-8', $charset, $string); - } - - return $string; - - case 'url': - return rawurlencode($string); - - default: - static $escapers; - - if (null === $escapers) { - // merge the ones set on CoreExtension for BC (to be removed in 3.0) - $escapers = array_merge( - $env->getExtension(CoreExtension::class)->getEscapers(false), - $env->getExtension(EscaperExtension::class)->getEscapers() - ); - } - - if (isset($escapers[$strategy])) { - return $escapers[$strategy]($env, $string, $charset); - } - - $validStrategies = implode(', ', array_merge(['html', 'js', 'url', 'css', 'html_attr'], array_keys($escapers))); - - throw new RuntimeError(sprintf('Invalid escaping strategy "%s" (valid ones: %s).', $strategy, $validStrategies)); - } -} - -/** - * @internal - */ -function twig_escape_filter_is_safe(Node $filterArgs) -{ - foreach ($filterArgs as $arg) { - if ($arg instanceof ConstantExpression) { - return [$arg->getAttribute('value')]; - } - - return []; - } - - return ['html']; -} -} diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Extension/ExtensionInterface.php b/srcs/phpmyadmin/vendor/twig/twig/src/Extension/ExtensionInterface.php deleted file mode 100644 index a083211..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Extension/ExtensionInterface.php +++ /dev/null @@ -1,73 +0,0 @@ - - */ -interface ExtensionInterface -{ - /** - * Returns the token parser instances to add to the existing list. - * - * @return TokenParserInterface[] - */ - public function getTokenParsers(); - - /** - * Returns the node visitor instances to add to the existing list. - * - * @return NodeVisitorInterface[] - */ - public function getNodeVisitors(); - - /** - * Returns a list of filters to add to the existing list. - * - * @return TwigFilter[] - */ - public function getFilters(); - - /** - * Returns a list of tests to add to the existing list. - * - * @return TwigTest[] - */ - public function getTests(); - - /** - * Returns a list of functions to add to the existing list. - * - * @return TwigFunction[] - */ - public function getFunctions(); - - /** - * Returns a list of operators to add to the existing list. - * - * @return array First array of unary operators, second array of binary operators - */ - public function getOperators(); -} - -class_alias('Twig\Extension\ExtensionInterface', 'Twig_ExtensionInterface'); - -// Ensure that the aliased name is loaded to keep BC for classes implementing the typehint with the old aliased name. -class_exists('Twig\Environment'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Extension/GlobalsInterface.php b/srcs/phpmyadmin/vendor/twig/twig/src/Extension/GlobalsInterface.php deleted file mode 100644 index 4421271..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Extension/GlobalsInterface.php +++ /dev/null @@ -1,32 +0,0 @@ - - */ -interface GlobalsInterface -{ - /** - * Returns a list of global variables to add to the existing list. - * - * @return array An array of global variables - */ - public function getGlobals(); -} - -class_alias('Twig\Extension\GlobalsInterface', 'Twig_Extension_GlobalsInterface'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Extension/InitRuntimeInterface.php b/srcs/phpmyadmin/vendor/twig/twig/src/Extension/InitRuntimeInterface.php deleted file mode 100644 index d64d3cd..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Extension/InitRuntimeInterface.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * @deprecated since Twig 2.7, to be removed in 3.0 - */ -interface InitRuntimeInterface -{ - /** - * Initializes the runtime environment. - * - * This is where you can load some file that contains filter functions for instance. - */ - public function initRuntime(Environment $environment); -} - -class_alias('Twig\Extension\InitRuntimeInterface', 'Twig_Extension_InitRuntimeInterface'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Extension/OptimizerExtension.php b/srcs/phpmyadmin/vendor/twig/twig/src/Extension/OptimizerExtension.php deleted file mode 100644 index 9552b35..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Extension/OptimizerExtension.php +++ /dev/null @@ -1,31 +0,0 @@ -optimizers = $optimizers; - } - - public function getNodeVisitors() - { - return [new OptimizerNodeVisitor($this->optimizers)]; - } -} - -class_alias('Twig\Extension\OptimizerExtension', 'Twig_Extension_Optimizer'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Extension/ProfilerExtension.php b/srcs/phpmyadmin/vendor/twig/twig/src/Extension/ProfilerExtension.php deleted file mode 100644 index ca5367c..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Extension/ProfilerExtension.php +++ /dev/null @@ -1,48 +0,0 @@ -actives[] = $profile; - } - - public function enter(Profile $profile) - { - $this->actives[0]->addProfile($profile); - array_unshift($this->actives, $profile); - } - - public function leave(Profile $profile) - { - $profile->leave(); - array_shift($this->actives); - - if (1 === \count($this->actives)) { - $this->actives[0]->leave(); - } - } - - public function getNodeVisitors() - { - return [new ProfilerNodeVisitor(\get_class($this))]; - } -} - -class_alias('Twig\Extension\ProfilerExtension', 'Twig_Extension_Profiler'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Extension/RuntimeExtensionInterface.php b/srcs/phpmyadmin/vendor/twig/twig/src/Extension/RuntimeExtensionInterface.php deleted file mode 100644 index 63bc3b1..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Extension/RuntimeExtensionInterface.php +++ /dev/null @@ -1,19 +0,0 @@ - - */ -interface RuntimeExtensionInterface -{ -} diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Extension/SandboxExtension.php b/srcs/phpmyadmin/vendor/twig/twig/src/Extension/SandboxExtension.php deleted file mode 100644 index d16e4ed..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Extension/SandboxExtension.php +++ /dev/null @@ -1,125 +0,0 @@ -policy = $policy; - $this->sandboxedGlobally = $sandboxed; - } - - public function getTokenParsers() - { - return [new SandboxTokenParser()]; - } - - public function getNodeVisitors() - { - return [new SandboxNodeVisitor()]; - } - - public function enableSandbox() - { - $this->sandboxed = true; - } - - public function disableSandbox() - { - $this->sandboxed = false; - } - - public function isSandboxed() - { - return $this->sandboxedGlobally || $this->sandboxed; - } - - public function isSandboxedGlobally() - { - return $this->sandboxedGlobally; - } - - public function setSecurityPolicy(SecurityPolicyInterface $policy) - { - $this->policy = $policy; - } - - public function getSecurityPolicy() - { - return $this->policy; - } - - public function checkSecurity($tags, $filters, $functions) - { - if ($this->isSandboxed()) { - $this->policy->checkSecurity($tags, $filters, $functions); - } - } - - public function checkMethodAllowed($obj, $method, int $lineno = -1, Source $source = null) - { - if ($this->isSandboxed()) { - try { - $this->policy->checkMethodAllowed($obj, $method); - } catch (SecurityNotAllowedMethodError $e) { - $e->setSourceContext($source); - $e->setTemplateLine($lineno); - - throw $e; - } - } - } - - public function checkPropertyAllowed($obj, $method, int $lineno = -1, Source $source = null) - { - if ($this->isSandboxed()) { - try { - $this->policy->checkPropertyAllowed($obj, $method); - } catch (SecurityNotAllowedPropertyError $e) { - $e->setSourceContext($source); - $e->setTemplateLine($lineno); - - throw $e; - } - } - } - - public function ensureToStringAllowed($obj, int $lineno = -1, Source $source = null) - { - if ($this->isSandboxed() && \is_object($obj) && method_exists($obj, '__toString')) { - try { - $this->policy->checkMethodAllowed($obj, '__toString'); - } catch (SecurityNotAllowedMethodError $e) { - $e->setSourceContext($source); - $e->setTemplateLine($lineno); - - throw $e; - } - } - - return $obj; - } -} - -class_alias('Twig\Extension\SandboxExtension', 'Twig_Extension_Sandbox'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Extension/StagingExtension.php b/srcs/phpmyadmin/vendor/twig/twig/src/Extension/StagingExtension.php deleted file mode 100644 index 7c0c26c..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Extension/StagingExtension.php +++ /dev/null @@ -1,102 +0,0 @@ - - * - * @internal - */ -final class StagingExtension extends AbstractExtension -{ - private $functions = []; - private $filters = []; - private $visitors = []; - private $tokenParsers = []; - private $tests = []; - - public function addFunction(TwigFunction $function) - { - if (isset($this->functions[$function->getName()])) { - throw new \LogicException(sprintf('Function "%s" is already registered.', $function->getName())); - } - - $this->functions[$function->getName()] = $function; - } - - public function getFunctions() - { - return $this->functions; - } - - public function addFilter(TwigFilter $filter) - { - if (isset($this->filters[$filter->getName()])) { - throw new \LogicException(sprintf('Filter "%s" is already registered.', $filter->getName())); - } - - $this->filters[$filter->getName()] = $filter; - } - - public function getFilters() - { - return $this->filters; - } - - public function addNodeVisitor(NodeVisitorInterface $visitor) - { - $this->visitors[] = $visitor; - } - - public function getNodeVisitors() - { - return $this->visitors; - } - - public function addTokenParser(TokenParserInterface $parser) - { - if (isset($this->tokenParsers[$parser->getTag()])) { - throw new \LogicException(sprintf('Tag "%s" is already registered.', $parser->getTag())); - } - - $this->tokenParsers[$parser->getTag()] = $parser; - } - - public function getTokenParsers() - { - return $this->tokenParsers; - } - - public function addTest(TwigTest $test) - { - if (isset($this->tests[$test->getName()])) { - throw new \LogicException(sprintf('Test "%s" is already registered.', $test->getName())); - } - - $this->tests[$test->getName()] = $test; - } - - public function getTests() - { - return $this->tests; - } -} - -class_alias('Twig\Extension\StagingExtension', 'Twig_Extension_Staging'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Extension/StringLoaderExtension.php b/srcs/phpmyadmin/vendor/twig/twig/src/Extension/StringLoaderExtension.php deleted file mode 100644 index d671862..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Extension/StringLoaderExtension.php +++ /dev/null @@ -1,46 +0,0 @@ - true]), - ]; - } -} - -class_alias('Twig\Extension\StringLoaderExtension', 'Twig_Extension_StringLoader'); -} - -namespace { -use Twig\Environment; -use Twig\TemplateWrapper; - -/** - * Loads a template from a string. - * - * {{ include(template_from_string("Hello {{ name }}")) }} - * - * @param string $template A template as a string or object implementing __toString() - * @param string $name An optional name of the template to be used in error messages - * - * @return TemplateWrapper - */ -function twig_template_from_string(Environment $env, $template, string $name = null) -{ - return $env->createTemplate((string) $template, $name); -} -} diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/ExtensionSet.php b/srcs/phpmyadmin/vendor/twig/twig/src/ExtensionSet.php deleted file mode 100644 index dc25b13..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/ExtensionSet.php +++ /dev/null @@ -1,477 +0,0 @@ - - * - * @internal - */ -final class ExtensionSet -{ - private $extensions; - private $initialized = false; - private $runtimeInitialized = false; - private $staging; - private $parsers; - private $visitors; - private $filters; - private $tests; - private $functions; - private $unaryOperators; - private $binaryOperators; - private $globals; - private $functionCallbacks = []; - private $filterCallbacks = []; - private $lastModified = 0; - - public function __construct() - { - $this->staging = new StagingExtension(); - } - - /** - * Initializes the runtime environment. - * - * @deprecated since Twig 2.7 - */ - public function initRuntime(Environment $env) - { - if ($this->runtimeInitialized) { - return; - } - - $this->runtimeInitialized = true; - - foreach ($this->extensions as $extension) { - if ($extension instanceof InitRuntimeInterface) { - $extension->initRuntime($env); - } - } - } - - public function hasExtension(string $class): bool - { - $class = ltrim($class, '\\'); - if (!isset($this->extensions[$class]) && class_exists($class, false)) { - // For BC/FC with namespaced aliases - $class = (new \ReflectionClass($class))->name; - } - - return isset($this->extensions[$class]); - } - - public function getExtension(string $class): ExtensionInterface - { - $class = ltrim($class, '\\'); - if (!isset($this->extensions[$class]) && class_exists($class, false)) { - // For BC/FC with namespaced aliases - $class = (new \ReflectionClass($class))->name; - } - - if (!isset($this->extensions[$class])) { - throw new RuntimeError(sprintf('The "%s" extension is not enabled.', $class)); - } - - return $this->extensions[$class]; - } - - /** - * @param ExtensionInterface[] $extensions - */ - public function setExtensions(array $extensions) - { - foreach ($extensions as $extension) { - $this->addExtension($extension); - } - } - - /** - * @return ExtensionInterface[] - */ - public function getExtensions(): array - { - return $this->extensions; - } - - public function getSignature(): string - { - return json_encode(array_keys($this->extensions)); - } - - public function isInitialized(): bool - { - return $this->initialized || $this->runtimeInitialized; - } - - public function getLastModified(): int - { - if (0 !== $this->lastModified) { - return $this->lastModified; - } - - foreach ($this->extensions as $extension) { - $r = new \ReflectionObject($extension); - if (file_exists($r->getFileName()) && ($extensionTime = filemtime($r->getFileName())) > $this->lastModified) { - $this->lastModified = $extensionTime; - } - } - - return $this->lastModified; - } - - public function addExtension(ExtensionInterface $extension) - { - $class = \get_class($extension); - - if ($this->initialized) { - throw new \LogicException(sprintf('Unable to register extension "%s" as extensions have already been initialized.', $class)); - } - - if (isset($this->extensions[$class])) { - throw new \LogicException(sprintf('Unable to register extension "%s" as it is already registered.', $class)); - } - - // For BC/FC with namespaced aliases - $class = (new \ReflectionClass($class))->name; - $this->extensions[$class] = $extension; - } - - public function addFunction(TwigFunction $function) - { - if ($this->initialized) { - throw new \LogicException(sprintf('Unable to add function "%s" as extensions have already been initialized.', $function->getName())); - } - - $this->staging->addFunction($function); - } - - /** - * @return TwigFunction[] - */ - public function getFunctions(): array - { - if (!$this->initialized) { - $this->initExtensions(); - } - - return $this->functions; - } - - /** - * @return TwigFunction|false - */ - public function getFunction(string $name) - { - if (!$this->initialized) { - $this->initExtensions(); - } - - if (isset($this->functions[$name])) { - return $this->functions[$name]; - } - - foreach ($this->functions as $pattern => $function) { - $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); - - if ($count && preg_match('#^'.$pattern.'$#', $name, $matches)) { - array_shift($matches); - $function->setArguments($matches); - - return $function; - } - } - - foreach ($this->functionCallbacks as $callback) { - if (false !== $function = $callback($name)) { - return $function; - } - } - - return false; - } - - public function registerUndefinedFunctionCallback(callable $callable) - { - $this->functionCallbacks[] = $callable; - } - - public function addFilter(TwigFilter $filter) - { - if ($this->initialized) { - throw new \LogicException(sprintf('Unable to add filter "%s" as extensions have already been initialized.', $filter->getName())); - } - - $this->staging->addFilter($filter); - } - - /** - * @return TwigFilter[] - */ - public function getFilters(): array - { - if (!$this->initialized) { - $this->initExtensions(); - } - - return $this->filters; - } - - /** - * @return TwigFilter|false - */ - public function getFilter(string $name) - { - if (!$this->initialized) { - $this->initExtensions(); - } - - if (isset($this->filters[$name])) { - return $this->filters[$name]; - } - - foreach ($this->filters as $pattern => $filter) { - $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); - - if ($count && preg_match('#^'.$pattern.'$#', $name, $matches)) { - array_shift($matches); - $filter->setArguments($matches); - - return $filter; - } - } - - foreach ($this->filterCallbacks as $callback) { - if (false !== $filter = $callback($name)) { - return $filter; - } - } - - return false; - } - - public function registerUndefinedFilterCallback(callable $callable) - { - $this->filterCallbacks[] = $callable; - } - - public function addNodeVisitor(NodeVisitorInterface $visitor) - { - if ($this->initialized) { - throw new \LogicException('Unable to add a node visitor as extensions have already been initialized.'); - } - - $this->staging->addNodeVisitor($visitor); - } - - /** - * @return NodeVisitorInterface[] - */ - public function getNodeVisitors(): array - { - if (!$this->initialized) { - $this->initExtensions(); - } - - return $this->visitors; - } - - public function addTokenParser(TokenParserInterface $parser) - { - if ($this->initialized) { - throw new \LogicException('Unable to add a token parser as extensions have already been initialized.'); - } - - $this->staging->addTokenParser($parser); - } - - /** - * @return TokenParserInterface[] - */ - public function getTokenParsers(): array - { - if (!$this->initialized) { - $this->initExtensions(); - } - - return $this->parsers; - } - - public function getGlobals(): array - { - if (null !== $this->globals) { - return $this->globals; - } - - $globals = []; - foreach ($this->extensions as $extension) { - if (!$extension instanceof GlobalsInterface) { - continue; - } - - $extGlobals = $extension->getGlobals(); - if (!\is_array($extGlobals)) { - throw new \UnexpectedValueException(sprintf('"%s::getGlobals()" must return an array of globals.', \get_class($extension))); - } - - $globals = array_merge($globals, $extGlobals); - } - - if ($this->initialized) { - $this->globals = $globals; - } - - return $globals; - } - - public function addTest(TwigTest $test) - { - if ($this->initialized) { - throw new \LogicException(sprintf('Unable to add test "%s" as extensions have already been initialized.', $test->getName())); - } - - $this->staging->addTest($test); - } - - /** - * @return TwigTest[] - */ - public function getTests(): array - { - if (!$this->initialized) { - $this->initExtensions(); - } - - return $this->tests; - } - - /** - * @return TwigTest|false - */ - public function getTest(string $name) - { - if (!$this->initialized) { - $this->initExtensions(); - } - - if (isset($this->tests[$name])) { - return $this->tests[$name]; - } - - foreach ($this->tests as $pattern => $test) { - $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); - - if ($count) { - if (preg_match('#^'.$pattern.'$#', $name, $matches)) { - array_shift($matches); - $test->setArguments($matches); - - return $test; - } - } - } - - return false; - } - - public function getUnaryOperators(): array - { - if (!$this->initialized) { - $this->initExtensions(); - } - - return $this->unaryOperators; - } - - public function getBinaryOperators(): array - { - if (!$this->initialized) { - $this->initExtensions(); - } - - return $this->binaryOperators; - } - - private function initExtensions() - { - $this->parsers = []; - $this->filters = []; - $this->functions = []; - $this->tests = []; - $this->visitors = []; - $this->unaryOperators = []; - $this->binaryOperators = []; - - foreach ($this->extensions as $extension) { - $this->initExtension($extension); - } - $this->initExtension($this->staging); - // Done at the end only, so that an exception during initialization does not mark the environment as initialized when catching the exception - $this->initialized = true; - } - - private function initExtension(ExtensionInterface $extension) - { - // filters - foreach ($extension->getFilters() as $filter) { - $this->filters[$filter->getName()] = $filter; - } - - // functions - foreach ($extension->getFunctions() as $function) { - $this->functions[$function->getName()] = $function; - } - - // tests - foreach ($extension->getTests() as $test) { - $this->tests[$test->getName()] = $test; - } - - // token parsers - foreach ($extension->getTokenParsers() as $parser) { - if (!$parser instanceof TokenParserInterface) { - throw new \LogicException('getTokenParsers() must return an array of \Twig\TokenParser\TokenParserInterface.'); - } - - $this->parsers[] = $parser; - } - - // node visitors - foreach ($extension->getNodeVisitors() as $visitor) { - $this->visitors[] = $visitor; - } - - // operators - if ($operators = $extension->getOperators()) { - if (!\is_array($operators)) { - throw new \InvalidArgumentException(sprintf('"%s::getOperators()" must return an array with operators, got "%s".', \get_class($extension), \is_object($operators) ? \get_class($operators) : \gettype($operators).(\is_resource($operators) ? '' : '#'.$operators))); - } - - if (2 !== \count($operators)) { - throw new \InvalidArgumentException(sprintf('"%s::getOperators()" must return an array of 2 elements, got %d.', \get_class($extension), \count($operators))); - } - - $this->unaryOperators = array_merge($this->unaryOperators, $operators[0]); - $this->binaryOperators = array_merge($this->binaryOperators, $operators[1]); - } - } -} - -class_alias('Twig\ExtensionSet', 'Twig_ExtensionSet'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/FileExtensionEscapingStrategy.php b/srcs/phpmyadmin/vendor/twig/twig/src/FileExtensionEscapingStrategy.php deleted file mode 100644 index bc95f33..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/FileExtensionEscapingStrategy.php +++ /dev/null @@ -1,62 +0,0 @@ - - */ -class FileExtensionEscapingStrategy -{ - /** - * Guesses the best autoescaping strategy based on the file name. - * - * @param string $name The template name - * - * @return string|false The escaping strategy name to use or false to disable - */ - public static function guess($name) - { - if (\in_array(substr($name, -1), ['/', '\\'])) { - return 'html'; // return html for directories - } - - if ('.twig' === substr($name, -5)) { - $name = substr($name, 0, -5); - } - - $extension = pathinfo($name, PATHINFO_EXTENSION); - - switch ($extension) { - case 'js': - return 'js'; - - case 'css': - return 'css'; - - case 'txt': - return false; - - default: - return 'html'; - } - } -} - -class_alias('Twig\FileExtensionEscapingStrategy', 'Twig_FileExtensionEscapingStrategy'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Lexer.php b/srcs/phpmyadmin/vendor/twig/twig/src/Lexer.php deleted file mode 100644 index 45c7290..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Lexer.php +++ /dev/null @@ -1,501 +0,0 @@ - - */ -class Lexer -{ - private $tokens; - private $code; - private $cursor; - private $lineno; - private $end; - private $state; - private $states; - private $brackets; - private $env; - private $source; - private $options; - private $regexes; - private $position; - private $positions; - private $currentVarBlockLine; - - const STATE_DATA = 0; - const STATE_BLOCK = 1; - const STATE_VAR = 2; - const STATE_STRING = 3; - const STATE_INTERPOLATION = 4; - - const REGEX_NAME = '/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/A'; - const REGEX_NUMBER = '/[0-9]+(?:\.[0-9]+)?([Ee][\+\-][0-9]+)?/A'; - const REGEX_STRING = '/"([^#"\\\\]*(?:\\\\.[^#"\\\\]*)*)"|\'([^\'\\\\]*(?:\\\\.[^\'\\\\]*)*)\'/As'; - const REGEX_DQ_STRING_DELIM = '/"/A'; - const REGEX_DQ_STRING_PART = '/[^#"\\\\]*(?:(?:\\\\.|#(?!\{))[^#"\\\\]*)*/As'; - const PUNCTUATION = '()[]{}?:.,|'; - - public function __construct(Environment $env, array $options = []) - { - $this->env = $env; - - $this->options = array_merge([ - 'tag_comment' => ['{#', '#}'], - 'tag_block' => ['{%', '%}'], - 'tag_variable' => ['{{', '}}'], - 'whitespace_trim' => '-', - 'whitespace_line_trim' => '~', - 'whitespace_line_chars' => ' \t\0\x0B', - 'interpolation' => ['#{', '}'], - ], $options); - - // when PHP 7.3 is the min version, we will be able to remove the '#' part in preg_quote as it's part of the default - $this->regexes = [ - // }} - 'lex_var' => '{ - \s* - (?:'. - preg_quote($this->options['whitespace_trim'].$this->options['tag_variable'][1], '#').'\s*'. // -}}\s* - '|'. - preg_quote($this->options['whitespace_line_trim'].$this->options['tag_variable'][1], '#').'['.$this->options['whitespace_line_chars'].']*'. // ~}}[ \t\0\x0B]* - '|'. - preg_quote($this->options['tag_variable'][1], '#'). // }} - ') - }Ax', - - // %} - 'lex_block' => '{ - \s* - (?:'. - preg_quote($this->options['whitespace_trim'].$this->options['tag_block'][1], '#').'\s*\n?'. // -%}\s*\n? - '|'. - preg_quote($this->options['whitespace_line_trim'].$this->options['tag_block'][1], '#').'['.$this->options['whitespace_line_chars'].']*'. // ~%}[ \t\0\x0B]* - '|'. - preg_quote($this->options['tag_block'][1], '#').'\n?'. // %}\n? - ') - }Ax', - - // {% endverbatim %} - 'lex_raw_data' => '{'. - preg_quote($this->options['tag_block'][0], '#'). // {% - '('. - $this->options['whitespace_trim']. // - - '|'. - $this->options['whitespace_line_trim']. // ~ - ')?\s*endverbatim\s*'. - '(?:'. - preg_quote($this->options['whitespace_trim'].$this->options['tag_block'][1], '#').'\s*'. // -%} - '|'. - preg_quote($this->options['whitespace_line_trim'].$this->options['tag_block'][1], '#').'['.$this->options['whitespace_line_chars'].']*'. // ~%}[ \t\0\x0B]* - '|'. - preg_quote($this->options['tag_block'][1], '#'). // %} - ') - }sx', - - 'operator' => $this->getOperatorRegex(), - - // #} - 'lex_comment' => '{ - (?:'. - preg_quote($this->options['whitespace_trim']).preg_quote($this->options['tag_comment'][1], '#').'\s*\n?'. // -#}\s*\n? - '|'. - preg_quote($this->options['whitespace_line_trim'].$this->options['tag_comment'][1], '#').'['.$this->options['whitespace_line_chars'].']*'. // ~#}[ \t\0\x0B]* - '|'. - preg_quote($this->options['tag_comment'][1], '#').'\n?'. // #}\n? - ') - }sx', - - // verbatim %} - 'lex_block_raw' => '{ - \s*verbatim\s* - (?:'. - preg_quote($this->options['whitespace_trim'].$this->options['tag_block'][1], '#').'\s*'. // -%}\s* - '|'. - preg_quote($this->options['whitespace_line_trim'].$this->options['tag_block'][1], '#').'['.$this->options['whitespace_line_chars'].']*'. // ~%}[ \t\0\x0B]* - '|'. - preg_quote($this->options['tag_block'][1], '#'). // %} - ') - }Asx', - - 'lex_block_line' => '{\s*line\s+(\d+)\s*'.preg_quote($this->options['tag_block'][1], '#').'}As', - - // {{ or {% or {# - 'lex_tokens_start' => '{ - ('. - preg_quote($this->options['tag_variable'][0], '#'). // {{ - '|'. - preg_quote($this->options['tag_block'][0], '#'). // {% - '|'. - preg_quote($this->options['tag_comment'][0], '#'). // {# - ')('. - preg_quote($this->options['whitespace_trim'], '#'). // - - '|'. - preg_quote($this->options['whitespace_line_trim'], '#'). // ~ - ')? - }sx', - 'interpolation_start' => '{'.preg_quote($this->options['interpolation'][0], '#').'\s*}A', - 'interpolation_end' => '{\s*'.preg_quote($this->options['interpolation'][1], '#').'}A', - ]; - } - - public function tokenize(Source $source) - { - $this->source = $source; - $this->code = str_replace(["\r\n", "\r"], "\n", $source->getCode()); - $this->cursor = 0; - $this->lineno = 1; - $this->end = \strlen($this->code); - $this->tokens = []; - $this->state = self::STATE_DATA; - $this->states = []; - $this->brackets = []; - $this->position = -1; - - // find all token starts in one go - preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); - $this->positions = $matches; - - while ($this->cursor < $this->end) { - // dispatch to the lexing functions depending - // on the current state - switch ($this->state) { - case self::STATE_DATA: - $this->lexData(); - break; - - case self::STATE_BLOCK: - $this->lexBlock(); - break; - - case self::STATE_VAR: - $this->lexVar(); - break; - - case self::STATE_STRING: - $this->lexString(); - break; - - case self::STATE_INTERPOLATION: - $this->lexInterpolation(); - break; - } - } - - $this->pushToken(/* Token::EOF_TYPE */ -1); - - if (!empty($this->brackets)) { - list($expect, $lineno) = array_pop($this->brackets); - throw new SyntaxError(sprintf('Unclosed "%s".', $expect), $lineno, $this->source); - } - - return new TokenStream($this->tokens, $this->source); - } - - private function lexData() - { - // if no matches are left we return the rest of the template as simple text token - if ($this->position == \count($this->positions[0]) - 1) { - $this->pushToken(/* Token::TEXT_TYPE */ 0, substr($this->code, $this->cursor)); - $this->cursor = $this->end; - - return; - } - - // Find the first token after the current cursor - $position = $this->positions[0][++$this->position]; - while ($position[1] < $this->cursor) { - if ($this->position == \count($this->positions[0]) - 1) { - return; - } - $position = $this->positions[0][++$this->position]; - } - - // push the template text first - $text = $textContent = substr($this->code, $this->cursor, $position[1] - $this->cursor); - - // trim? - if (isset($this->positions[2][$this->position][0])) { - if ($this->options['whitespace_trim'] === $this->positions[2][$this->position][0]) { - // whitespace_trim detected ({%-, {{- or {#-) - $text = rtrim($text); - } elseif ($this->options['whitespace_line_trim'] === $this->positions[2][$this->position][0]) { - // whitespace_line_trim detected ({%~, {{~ or {#~) - // don't trim \r and \n - $text = rtrim($text, " \t\0\x0B"); - } - } - $this->pushToken(/* Token::TEXT_TYPE */ 0, $text); - $this->moveCursor($textContent.$position[0]); - - switch ($this->positions[1][$this->position][0]) { - case $this->options['tag_comment'][0]: - $this->lexComment(); - break; - - case $this->options['tag_block'][0]: - // raw data? - if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, 0, $this->cursor)) { - $this->moveCursor($match[0]); - $this->lexRawData(); - // {% line \d+ %} - } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, 0, $this->cursor)) { - $this->moveCursor($match[0]); - $this->lineno = (int) $match[1]; - } else { - $this->pushToken(/* Token::BLOCK_START_TYPE */ 1); - $this->pushState(self::STATE_BLOCK); - $this->currentVarBlockLine = $this->lineno; - } - break; - - case $this->options['tag_variable'][0]: - $this->pushToken(/* Token::VAR_START_TYPE */ 2); - $this->pushState(self::STATE_VAR); - $this->currentVarBlockLine = $this->lineno; - break; - } - } - - private function lexBlock() - { - if (empty($this->brackets) && preg_match($this->regexes['lex_block'], $this->code, $match, 0, $this->cursor)) { - $this->pushToken(/* Token::BLOCK_END_TYPE */ 3); - $this->moveCursor($match[0]); - $this->popState(); - } else { - $this->lexExpression(); - } - } - - private function lexVar() - { - if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, 0, $this->cursor)) { - $this->pushToken(/* Token::VAR_END_TYPE */ 4); - $this->moveCursor($match[0]); - $this->popState(); - } else { - $this->lexExpression(); - } - } - - private function lexExpression() - { - // whitespace - if (preg_match('/\s+/A', $this->code, $match, 0, $this->cursor)) { - $this->moveCursor($match[0]); - - if ($this->cursor >= $this->end) { - throw new SyntaxError(sprintf('Unclosed "%s".', self::STATE_BLOCK === $this->state ? 'block' : 'variable'), $this->currentVarBlockLine, $this->source); - } - } - - // arrow function - if ('=' === $this->code[$this->cursor] && '>' === $this->code[$this->cursor + 1]) { - $this->pushToken(Token::ARROW_TYPE, '=>'); - $this->moveCursor('=>'); - } - // operators - elseif (preg_match($this->regexes['operator'], $this->code, $match, 0, $this->cursor)) { - $this->pushToken(/* Token::OPERATOR_TYPE */ 8, preg_replace('/\s+/', ' ', $match[0])); - $this->moveCursor($match[0]); - } - // names - elseif (preg_match(self::REGEX_NAME, $this->code, $match, 0, $this->cursor)) { - $this->pushToken(/* Token::NAME_TYPE */ 5, $match[0]); - $this->moveCursor($match[0]); - } - // numbers - elseif (preg_match(self::REGEX_NUMBER, $this->code, $match, 0, $this->cursor)) { - $number = (float) $match[0]; // floats - if (ctype_digit($match[0]) && $number <= PHP_INT_MAX) { - $number = (int) $match[0]; // integers lower than the maximum - } - $this->pushToken(/* Token::NUMBER_TYPE */ 6, $number); - $this->moveCursor($match[0]); - } - // punctuation - elseif (false !== strpos(self::PUNCTUATION, $this->code[$this->cursor])) { - // opening bracket - if (false !== strpos('([{', $this->code[$this->cursor])) { - $this->brackets[] = [$this->code[$this->cursor], $this->lineno]; - } - // closing bracket - elseif (false !== strpos(')]}', $this->code[$this->cursor])) { - if (empty($this->brackets)) { - throw new SyntaxError(sprintf('Unexpected "%s".', $this->code[$this->cursor]), $this->lineno, $this->source); - } - - list($expect, $lineno) = array_pop($this->brackets); - if ($this->code[$this->cursor] != strtr($expect, '([{', ')]}')) { - throw new SyntaxError(sprintf('Unclosed "%s".', $expect), $lineno, $this->source); - } - } - - $this->pushToken(/* Token::PUNCTUATION_TYPE */ 9, $this->code[$this->cursor]); - ++$this->cursor; - } - // strings - elseif (preg_match(self::REGEX_STRING, $this->code, $match, 0, $this->cursor)) { - $this->pushToken(/* Token::STRING_TYPE */ 7, stripcslashes(substr($match[0], 1, -1))); - $this->moveCursor($match[0]); - } - // opening double quoted string - elseif (preg_match(self::REGEX_DQ_STRING_DELIM, $this->code, $match, 0, $this->cursor)) { - $this->brackets[] = ['"', $this->lineno]; - $this->pushState(self::STATE_STRING); - $this->moveCursor($match[0]); - } - // unlexable - else { - throw new SyntaxError(sprintf('Unexpected character "%s".', $this->code[$this->cursor]), $this->lineno, $this->source); - } - } - - private function lexRawData() - { - if (!preg_match($this->regexes['lex_raw_data'], $this->code, $match, PREG_OFFSET_CAPTURE, $this->cursor)) { - throw new SyntaxError('Unexpected end of file: Unclosed "verbatim" block.', $this->lineno, $this->source); - } - - $text = substr($this->code, $this->cursor, $match[0][1] - $this->cursor); - $this->moveCursor($text.$match[0][0]); - - // trim? - if (isset($match[1][0])) { - if ($this->options['whitespace_trim'] === $match[1][0]) { - // whitespace_trim detected ({%-, {{- or {#-) - $text = rtrim($text); - } else { - // whitespace_line_trim detected ({%~, {{~ or {#~) - // don't trim \r and \n - $text = rtrim($text, " \t\0\x0B"); - } - } - - $this->pushToken(/* Token::TEXT_TYPE */ 0, $text); - } - - private function lexComment() - { - if (!preg_match($this->regexes['lex_comment'], $this->code, $match, PREG_OFFSET_CAPTURE, $this->cursor)) { - throw new SyntaxError('Unclosed comment.', $this->lineno, $this->source); - } - - $this->moveCursor(substr($this->code, $this->cursor, $match[0][1] - $this->cursor).$match[0][0]); - } - - private function lexString() - { - if (preg_match($this->regexes['interpolation_start'], $this->code, $match, 0, $this->cursor)) { - $this->brackets[] = [$this->options['interpolation'][0], $this->lineno]; - $this->pushToken(/* Token::INTERPOLATION_START_TYPE */ 10); - $this->moveCursor($match[0]); - $this->pushState(self::STATE_INTERPOLATION); - } elseif (preg_match(self::REGEX_DQ_STRING_PART, $this->code, $match, 0, $this->cursor) && \strlen($match[0]) > 0) { - $this->pushToken(/* Token::STRING_TYPE */ 7, stripcslashes($match[0])); - $this->moveCursor($match[0]); - } elseif (preg_match(self::REGEX_DQ_STRING_DELIM, $this->code, $match, 0, $this->cursor)) { - list($expect, $lineno) = array_pop($this->brackets); - if ('"' != $this->code[$this->cursor]) { - throw new SyntaxError(sprintf('Unclosed "%s".', $expect), $lineno, $this->source); - } - - $this->popState(); - ++$this->cursor; - } else { - // unlexable - throw new SyntaxError(sprintf('Unexpected character "%s".', $this->code[$this->cursor]), $this->lineno, $this->source); - } - } - - private function lexInterpolation() - { - $bracket = end($this->brackets); - if ($this->options['interpolation'][0] === $bracket[0] && preg_match($this->regexes['interpolation_end'], $this->code, $match, 0, $this->cursor)) { - array_pop($this->brackets); - $this->pushToken(/* Token::INTERPOLATION_END_TYPE */ 11); - $this->moveCursor($match[0]); - $this->popState(); - } else { - $this->lexExpression(); - } - } - - private function pushToken($type, $value = '') - { - // do not push empty text tokens - if (/* Token::TEXT_TYPE */ 0 === $type && '' === $value) { - return; - } - - $this->tokens[] = new Token($type, $value, $this->lineno); - } - - private function moveCursor($text) - { - $this->cursor += \strlen($text); - $this->lineno += substr_count($text, "\n"); - } - - private function getOperatorRegex() - { - $operators = array_merge( - ['='], - array_keys($this->env->getUnaryOperators()), - array_keys($this->env->getBinaryOperators()) - ); - - $operators = array_combine($operators, array_map('strlen', $operators)); - arsort($operators); - - $regex = []; - foreach ($operators as $operator => $length) { - // an operator that ends with a character must be followed by - // a whitespace or a parenthesis - if (ctype_alpha($operator[$length - 1])) { - $r = preg_quote($operator, '/').'(?=[\s()])'; - } else { - $r = preg_quote($operator, '/'); - } - - // an operator with a space can be any amount of whitespaces - $r = preg_replace('/\s+/', '\s+', $r); - - $regex[] = $r; - } - - return '/'.implode('|', $regex).'/A'; - } - - private function pushState($state) - { - $this->states[] = $this->state; - $this->state = $state; - } - - private function popState() - { - if (0 === \count($this->states)) { - throw new \LogicException('Cannot pop state without a previous state.'); - } - - $this->state = array_pop($this->states); - } -} - -class_alias('Twig\Lexer', 'Twig_Lexer'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Loader/ArrayLoader.php b/srcs/phpmyadmin/vendor/twig/twig/src/Loader/ArrayLoader.php deleted file mode 100644 index b03170b..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Loader/ArrayLoader.php +++ /dev/null @@ -1,86 +0,0 @@ - - */ -final class ArrayLoader implements LoaderInterface, ExistsLoaderInterface, SourceContextLoaderInterface -{ - private $templates = []; - - /** - * @param array $templates An array of templates (keys are the names, and values are the source code) - */ - public function __construct(array $templates = []) - { - $this->templates = $templates; - } - - /** - * Adds or overrides a template. - * - * @param string $name The template name - * @param string $template The template source - */ - public function setTemplate($name, $template) - { - $this->templates[$name] = $template; - } - - public function getSourceContext($name) - { - $name = (string) $name; - if (!isset($this->templates[$name])) { - throw new LoaderError(sprintf('Template "%s" is not defined.', $name)); - } - - return new Source($this->templates[$name], $name); - } - - public function exists($name) - { - return isset($this->templates[$name]); - } - - public function getCacheKey($name) - { - if (!isset($this->templates[$name])) { - throw new LoaderError(sprintf('Template "%s" is not defined.', $name)); - } - - return $name.':'.$this->templates[$name]; - } - - public function isFresh($name, $time) - { - if (!isset($this->templates[$name])) { - throw new LoaderError(sprintf('Template "%s" is not defined.', $name)); - } - - return true; - } -} - -class_alias('Twig\Loader\ArrayLoader', 'Twig_Loader_Array'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Loader/ChainLoader.php b/srcs/phpmyadmin/vendor/twig/twig/src/Loader/ChainLoader.php deleted file mode 100644 index edb9df8..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Loader/ChainLoader.php +++ /dev/null @@ -1,120 +0,0 @@ - - */ -final class ChainLoader implements LoaderInterface, ExistsLoaderInterface, SourceContextLoaderInterface -{ - private $hasSourceCache = []; - private $loaders = []; - - /** - * @param LoaderInterface[] $loaders - */ - public function __construct(array $loaders = []) - { - foreach ($loaders as $loader) { - $this->addLoader($loader); - } - } - - public function addLoader(LoaderInterface $loader) - { - $this->loaders[] = $loader; - $this->hasSourceCache = []; - } - - /** - * @return LoaderInterface[] - */ - public function getLoaders() - { - return $this->loaders; - } - - public function getSourceContext($name) - { - $exceptions = []; - foreach ($this->loaders as $loader) { - if (!$loader->exists($name)) { - continue; - } - - try { - return $loader->getSourceContext($name); - } catch (LoaderError $e) { - $exceptions[] = $e->getMessage(); - } - } - - throw new LoaderError(sprintf('Template "%s" is not defined%s.', $name, $exceptions ? ' ('.implode(', ', $exceptions).')' : '')); - } - - public function exists($name) - { - if (isset($this->hasSourceCache[$name])) { - return $this->hasSourceCache[$name]; - } - - foreach ($this->loaders as $loader) { - if ($loader->exists($name)) { - return $this->hasSourceCache[$name] = true; - } - } - - return $this->hasSourceCache[$name] = false; - } - - public function getCacheKey($name) - { - $exceptions = []; - foreach ($this->loaders as $loader) { - if (!$loader->exists($name)) { - continue; - } - - try { - return $loader->getCacheKey($name); - } catch (LoaderError $e) { - $exceptions[] = \get_class($loader).': '.$e->getMessage(); - } - } - - throw new LoaderError(sprintf('Template "%s" is not defined%s.', $name, $exceptions ? ' ('.implode(', ', $exceptions).')' : '')); - } - - public function isFresh($name, $time) - { - $exceptions = []; - foreach ($this->loaders as $loader) { - if (!$loader->exists($name)) { - continue; - } - - try { - return $loader->isFresh($name, $time); - } catch (LoaderError $e) { - $exceptions[] = \get_class($loader).': '.$e->getMessage(); - } - } - - throw new LoaderError(sprintf('Template "%s" is not defined%s.', $name, $exceptions ? ' ('.implode(', ', $exceptions).')' : '')); - } -} - -class_alias('Twig\Loader\ChainLoader', 'Twig_Loader_Chain'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Loader/ExistsLoaderInterface.php b/srcs/phpmyadmin/vendor/twig/twig/src/Loader/ExistsLoaderInterface.php deleted file mode 100644 index aab8bd8..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Loader/ExistsLoaderInterface.php +++ /dev/null @@ -1,23 +0,0 @@ - - */ -class FilesystemLoader implements LoaderInterface, ExistsLoaderInterface, SourceContextLoaderInterface -{ - /** Identifier of the main namespace. */ - const MAIN_NAMESPACE = '__main__'; - - protected $paths = []; - protected $cache = []; - protected $errorCache = []; - - private $rootPath; - - /** - * @param string|array $paths A path or an array of paths where to look for templates - * @param string|null $rootPath The root path common to all relative paths (null for getcwd()) - */ - public function __construct($paths = [], string $rootPath = null) - { - $this->rootPath = (null === $rootPath ? getcwd() : $rootPath).\DIRECTORY_SEPARATOR; - if (false !== $realPath = realpath($rootPath)) { - $this->rootPath = $realPath.\DIRECTORY_SEPARATOR; - } - - if ($paths) { - $this->setPaths($paths); - } - } - - /** - * Returns the paths to the templates. - * - * @param string $namespace A path namespace - * - * @return array The array of paths where to look for templates - */ - public function getPaths($namespace = self::MAIN_NAMESPACE) - { - return isset($this->paths[$namespace]) ? $this->paths[$namespace] : []; - } - - /** - * Returns the path namespaces. - * - * The main namespace is always defined. - * - * @return array The array of defined namespaces - */ - public function getNamespaces() - { - return array_keys($this->paths); - } - - /** - * Sets the paths where templates are stored. - * - * @param string|array $paths A path or an array of paths where to look for templates - * @param string $namespace A path namespace - */ - public function setPaths($paths, $namespace = self::MAIN_NAMESPACE) - { - if (!\is_array($paths)) { - $paths = [$paths]; - } - - $this->paths[$namespace] = []; - foreach ($paths as $path) { - $this->addPath($path, $namespace); - } - } - - /** - * Adds a path where templates are stored. - * - * @param string $path A path where to look for templates - * @param string $namespace A path namespace - * - * @throws LoaderError - */ - public function addPath($path, $namespace = self::MAIN_NAMESPACE) - { - // invalidate the cache - $this->cache = $this->errorCache = []; - - $checkPath = $this->isAbsolutePath($path) ? $path : $this->rootPath.$path; - if (!is_dir($checkPath)) { - throw new LoaderError(sprintf('The "%s" directory does not exist ("%s").', $path, $checkPath)); - } - - $this->paths[$namespace][] = rtrim($path, '/\\'); - } - - /** - * Prepends a path where templates are stored. - * - * @param string $path A path where to look for templates - * @param string $namespace A path namespace - * - * @throws LoaderError - */ - public function prependPath($path, $namespace = self::MAIN_NAMESPACE) - { - // invalidate the cache - $this->cache = $this->errorCache = []; - - $checkPath = $this->isAbsolutePath($path) ? $path : $this->rootPath.$path; - if (!is_dir($checkPath)) { - throw new LoaderError(sprintf('The "%s" directory does not exist ("%s").', $path, $checkPath)); - } - - $path = rtrim($path, '/\\'); - - if (!isset($this->paths[$namespace])) { - $this->paths[$namespace][] = $path; - } else { - array_unshift($this->paths[$namespace], $path); - } - } - - public function getSourceContext($name) - { - if (null === ($path = $this->findTemplate($name)) || false === $path) { - return new Source('', $name, ''); - } - - return new Source(file_get_contents($path), $name, $path); - } - - public function getCacheKey($name) - { - if (null === ($path = $this->findTemplate($name)) || false === $path) { - return ''; - } - $len = \strlen($this->rootPath); - if (0 === strncmp($this->rootPath, $path, $len)) { - return substr($path, $len); - } - - return $path; - } - - public function exists($name) - { - $name = $this->normalizeName($name); - - if (isset($this->cache[$name])) { - return true; - } - - return null !== ($path = $this->findTemplate($name, false)) && false !== $path; - } - - public function isFresh($name, $time) - { - // false support to be removed in 3.0 - if (null === ($path = $this->findTemplate($name)) || false === $path) { - return false; - } - - return filemtime($path) < $time; - } - - /** - * Checks if the template can be found. - * - * In Twig 3.0, findTemplate must return a string or null (returning false won't work anymore). - * - * @param string $name The template name - * @param bool $throw Whether to throw an exception when an error occurs - * - * @return string|false|null The template name or false/null - */ - protected function findTemplate($name, $throw = true) - { - $name = $this->normalizeName($name); - - if (isset($this->cache[$name])) { - return $this->cache[$name]; - } - - if (isset($this->errorCache[$name])) { - if (!$throw) { - return false; - } - - throw new LoaderError($this->errorCache[$name]); - } - - try { - $this->validateName($name); - - list($namespace, $shortname) = $this->parseName($name); - } catch (LoaderError $e) { - if (!$throw) { - return false; - } - - throw $e; - } - - if (!isset($this->paths[$namespace])) { - $this->errorCache[$name] = sprintf('There are no registered paths for namespace "%s".', $namespace); - - if (!$throw) { - return false; - } - - throw new LoaderError($this->errorCache[$name]); - } - - foreach ($this->paths[$namespace] as $path) { - if (!$this->isAbsolutePath($path)) { - $path = $this->rootPath.$path; - } - - if (is_file($path.'/'.$shortname)) { - if (false !== $realpath = realpath($path.'/'.$shortname)) { - return $this->cache[$name] = $realpath; - } - - return $this->cache[$name] = $path.'/'.$shortname; - } - } - - $this->errorCache[$name] = sprintf('Unable to find template "%s" (looked into: %s).', $name, implode(', ', $this->paths[$namespace])); - - if (!$throw) { - return false; - } - - throw new LoaderError($this->errorCache[$name]); - } - - private function normalizeName($name) - { - return preg_replace('#/{2,}#', '/', str_replace('\\', '/', $name)); - } - - private function parseName($name, $default = self::MAIN_NAMESPACE) - { - if (isset($name[0]) && '@' == $name[0]) { - if (false === $pos = strpos($name, '/')) { - throw new LoaderError(sprintf('Malformed namespaced template name "%s" (expecting "@namespace/template_name").', $name)); - } - - $namespace = substr($name, 1, $pos - 1); - $shortname = substr($name, $pos + 1); - - return [$namespace, $shortname]; - } - - return [$default, $name]; - } - - private function validateName($name) - { - if (false !== strpos($name, "\0")) { - throw new LoaderError('A template name cannot contain NUL bytes.'); - } - - $name = ltrim($name, '/'); - $parts = explode('/', $name); - $level = 0; - foreach ($parts as $part) { - if ('..' === $part) { - --$level; - } elseif ('.' !== $part) { - ++$level; - } - - if ($level < 0) { - throw new LoaderError(sprintf('Looks like you try to load a template outside configured directories (%s).', $name)); - } - } - } - - private function isAbsolutePath($file) - { - return strspn($file, '/\\', 0, 1) - || (\strlen($file) > 3 && ctype_alpha($file[0]) - && ':' === $file[1] - && strspn($file, '/\\', 2, 1) - ) - || null !== parse_url($file, PHP_URL_SCHEME) - ; - } -} - -class_alias('Twig\Loader\FilesystemLoader', 'Twig_Loader_Filesystem'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Loader/LoaderInterface.php b/srcs/phpmyadmin/vendor/twig/twig/src/Loader/LoaderInterface.php deleted file mode 100644 index 5ccd2c7..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Loader/LoaderInterface.php +++ /dev/null @@ -1,69 +0,0 @@ - - */ -interface LoaderInterface -{ - /** - * Returns the source context for a given template logical name. - * - * @param string $name The template logical name - * - * @return Source - * - * @throws LoaderError When $name is not found - */ - public function getSourceContext($name); - - /** - * Gets the cache key to use for the cache for a given template name. - * - * @param string $name The name of the template to load - * - * @return string The cache key - * - * @throws LoaderError When $name is not found - */ - public function getCacheKey($name); - - /** - * Returns true if the template is still fresh. - * - * @param string $name The template name - * @param int $time Timestamp of the last modification time of the - * cached template - * - * @return bool true if the template is fresh, false otherwise - * - * @throws LoaderError When $name is not found - */ - public function isFresh($name, $time); - - /** - * Check if we have the source code of a template, given its name. - * - * @param string $name The name of the template to check if we can load - * - * @return bool If the template source code is handled by this loader or not - */ - public function exists($name); -} - -class_alias('Twig\Loader\LoaderInterface', 'Twig_LoaderInterface'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Loader/SourceContextLoaderInterface.php b/srcs/phpmyadmin/vendor/twig/twig/src/Loader/SourceContextLoaderInterface.php deleted file mode 100644 index 4fdb17e..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Loader/SourceContextLoaderInterface.php +++ /dev/null @@ -1,21 +0,0 @@ - - */ -class Markup implements \Countable, \JsonSerializable -{ - private $content; - private $charset; - - public function __construct($content, $charset) - { - $this->content = (string) $content; - $this->charset = $charset; - } - - public function __toString() - { - return $this->content; - } - - public function count() - { - return mb_strlen($this->content, $this->charset); - } - - public function jsonSerialize() - { - return $this->content; - } -} - -class_alias('Twig\Markup', 'Twig_Markup'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/AutoEscapeNode.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/AutoEscapeNode.php deleted file mode 100644 index 0bd5ae1..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/AutoEscapeNode.php +++ /dev/null @@ -1,40 +0,0 @@ - - */ -class AutoEscapeNode extends Node -{ - public function __construct($value, Node $body, int $lineno, string $tag = 'autoescape') - { - parent::__construct(['body' => $body], ['value' => $value], $lineno, $tag); - } - - public function compile(Compiler $compiler) - { - $compiler->subcompile($this->getNode('body')); - } -} - -class_alias('Twig\Node\AutoEscapeNode', 'Twig_Node_AutoEscape'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/BlockNode.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/BlockNode.php deleted file mode 100644 index 4da6e6f..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/BlockNode.php +++ /dev/null @@ -1,46 +0,0 @@ - - */ -class BlockNode extends Node -{ - public function __construct(string $name, Node $body, int $lineno, string $tag = null) - { - parent::__construct(['body' => $body], ['name' => $name], $lineno, $tag); - } - - public function compile(Compiler $compiler) - { - $compiler - ->addDebugInfo($this) - ->write(sprintf("public function block_%s(\$context, array \$blocks = [])\n", $this->getAttribute('name')), "{\n") - ->indent() - ->write("\$macros = \$this->macros;\n") - ; - - $compiler - ->subcompile($this->getNode('body')) - ->outdent() - ->write("}\n\n") - ; - } -} - -class_alias('Twig\Node\BlockNode', 'Twig_Node_Block'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/BlockReferenceNode.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/BlockReferenceNode.php deleted file mode 100644 index c46d8b3..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/BlockReferenceNode.php +++ /dev/null @@ -1,38 +0,0 @@ - - */ -class BlockReferenceNode extends Node implements NodeOutputInterface -{ - public function __construct(string $name, int $lineno, string $tag = null) - { - parent::__construct([], ['name' => $name], $lineno, $tag); - } - - public function compile(Compiler $compiler) - { - $compiler - ->addDebugInfo($this) - ->write(sprintf("\$this->displayBlock('%s', \$context, \$blocks);\n", $this->getAttribute('name'))) - ; - } -} - -class_alias('Twig\Node\BlockReferenceNode', 'Twig_Node_BlockReference'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/BodyNode.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/BodyNode.php deleted file mode 100644 index 5290be5..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/BodyNode.php +++ /dev/null @@ -1,23 +0,0 @@ - - */ -class BodyNode extends Node -{ -} - -class_alias('Twig\Node\BodyNode', 'Twig_Node_Body'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/CheckSecurityNode.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/CheckSecurityNode.php deleted file mode 100644 index 59857ca..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/CheckSecurityNode.php +++ /dev/null @@ -1,85 +0,0 @@ - - */ -class CheckSecurityNode extends Node -{ - private $usedFilters; - private $usedTags; - private $usedFunctions; - - public function __construct(array $usedFilters, array $usedTags, array $usedFunctions) - { - $this->usedFilters = $usedFilters; - $this->usedTags = $usedTags; - $this->usedFunctions = $usedFunctions; - - parent::__construct(); - } - - public function compile(Compiler $compiler) - { - $tags = $filters = $functions = []; - foreach (['tags', 'filters', 'functions'] as $type) { - foreach ($this->{'used'.ucfirst($type)} as $name => $node) { - if ($node instanceof Node) { - ${$type}[$name] = $node->getTemplateLine(); - } else { - ${$type}[$node] = null; - } - } - } - - $compiler - ->write("\$this->sandbox = \$this->env->getExtension('\Twig\Extension\SandboxExtension');\n") - ->write('$tags = ')->repr(array_filter($tags))->raw(";\n") - ->write('$filters = ')->repr(array_filter($filters))->raw(";\n") - ->write('$functions = ')->repr(array_filter($functions))->raw(";\n\n") - ->write("try {\n") - ->indent() - ->write("\$this->sandbox->checkSecurity(\n") - ->indent() - ->write(!$tags ? "[],\n" : "['".implode("', '", array_keys($tags))."'],\n") - ->write(!$filters ? "[],\n" : "['".implode("', '", array_keys($filters))."'],\n") - ->write(!$functions ? "[]\n" : "['".implode("', '", array_keys($functions))."']\n") - ->outdent() - ->write(");\n") - ->outdent() - ->write("} catch (SecurityError \$e) {\n") - ->indent() - ->write("\$e->setSourceContext(\$this->source);\n\n") - ->write("if (\$e instanceof SecurityNotAllowedTagError && isset(\$tags[\$e->getTagName()])) {\n") - ->indent() - ->write("\$e->setTemplateLine(\$tags[\$e->getTagName()]);\n") - ->outdent() - ->write("} elseif (\$e instanceof SecurityNotAllowedFilterError && isset(\$filters[\$e->getFilterName()])) {\n") - ->indent() - ->write("\$e->setTemplateLine(\$filters[\$e->getFilterName()]);\n") - ->outdent() - ->write("} elseif (\$e instanceof SecurityNotAllowedFunctionError && isset(\$functions[\$e->getFunctionName()])) {\n") - ->indent() - ->write("\$e->setTemplateLine(\$functions[\$e->getFunctionName()]);\n") - ->outdent() - ->write("}\n\n") - ->write("throw \$e;\n") - ->outdent() - ->write("}\n\n") - ; - } -} - -class_alias('Twig\Node\CheckSecurityNode', 'Twig_Node_CheckSecurity'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/CheckToStringNode.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/CheckToStringNode.php deleted file mode 100644 index 02b42fc..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/CheckToStringNode.php +++ /dev/null @@ -1,45 +0,0 @@ - - */ -class CheckToStringNode extends AbstractExpression -{ - public function __construct(AbstractExpression $expr) - { - parent::__construct(['expr' => $expr], [], $expr->getTemplateLine(), $expr->getNodeTag()); - } - - public function compile(Compiler $compiler) - { - $expr = $this->getNode('expr'); - $compiler - ->raw('$this->sandbox->ensureToStringAllowed(') - ->subcompile($expr) - ->raw(', ') - ->repr($expr->getTemplateLine()) - ->raw(', $this->source)') - ; - } -} diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/DeprecatedNode.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/DeprecatedNode.php deleted file mode 100644 index accd768..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/DeprecatedNode.php +++ /dev/null @@ -1,55 +0,0 @@ - - */ -class DeprecatedNode extends Node -{ - public function __construct(AbstractExpression $expr, int $lineno, string $tag = null) - { - parent::__construct(['expr' => $expr], [], $lineno, $tag); - } - - public function compile(Compiler $compiler) - { - $compiler->addDebugInfo($this); - - $expr = $this->getNode('expr'); - - if ($expr instanceof ConstantExpression) { - $compiler->write('@trigger_error(') - ->subcompile($expr); - } else { - $varName = $compiler->getVarName(); - $compiler->write(sprintf('$%s = ', $varName)) - ->subcompile($expr) - ->raw(";\n") - ->write(sprintf('@trigger_error($%s', $varName)); - } - - $compiler - ->raw('.') - ->string(sprintf(' ("%s" at line %d).', $this->getTemplateName(), $this->getTemplateLine())) - ->raw(", E_USER_DEPRECATED);\n") - ; - } -} - -class_alias('Twig\Node\DeprecatedNode', 'Twig_Node_Deprecated'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/DoNode.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/DoNode.php deleted file mode 100644 index d74804c..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/DoNode.php +++ /dev/null @@ -1,40 +0,0 @@ - - */ -class DoNode extends Node -{ - public function __construct(AbstractExpression $expr, int $lineno, string $tag = null) - { - parent::__construct(['expr' => $expr], [], $lineno, $tag); - } - - public function compile(Compiler $compiler) - { - $compiler - ->addDebugInfo($this) - ->write('') - ->subcompile($this->getNode('expr')) - ->raw(";\n") - ; - } -} - -class_alias('Twig\Node\DoNode', 'Twig_Node_Do'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/EmbedNode.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/EmbedNode.php deleted file mode 100644 index 4a1ef6f..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/EmbedNode.php +++ /dev/null @@ -1,50 +0,0 @@ - - */ -class EmbedNode extends IncludeNode -{ - // we don't inject the module to avoid node visitors to traverse it twice (as it will be already visited in the main module) - public function __construct(string $name, int $index, AbstractExpression $variables = null, bool $only = false, bool $ignoreMissing = false, int $lineno, string $tag = null) - { - parent::__construct(new ConstantExpression('not_used', $lineno), $variables, $only, $ignoreMissing, $lineno, $tag); - - $this->setAttribute('name', $name); - $this->setAttribute('index', $index); - } - - protected function addGetTemplate(Compiler $compiler) - { - $compiler - ->write('$this->loadTemplate(') - ->string($this->getAttribute('name')) - ->raw(', ') - ->repr($this->getTemplateName()) - ->raw(', ') - ->repr($this->getTemplateLine()) - ->raw(', ') - ->string($this->getAttribute('index')) - ->raw(')') - ; - } -} - -class_alias('Twig\Node\EmbedNode', 'Twig_Node_Embed'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/AbstractExpression.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/AbstractExpression.php deleted file mode 100644 index a352892..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/AbstractExpression.php +++ /dev/null @@ -1,26 +0,0 @@ - - */ -abstract class AbstractExpression extends Node -{ -} - -class_alias('Twig\Node\Expression\AbstractExpression', 'Twig_Node_Expression'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/ArrayExpression.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/ArrayExpression.php deleted file mode 100644 index 917675d..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/ArrayExpression.php +++ /dev/null @@ -1,88 +0,0 @@ -index = -1; - foreach ($this->getKeyValuePairs() as $pair) { - if ($pair['key'] instanceof ConstantExpression && ctype_digit((string) $pair['key']->getAttribute('value')) && $pair['key']->getAttribute('value') > $this->index) { - $this->index = $pair['key']->getAttribute('value'); - } - } - } - - public function getKeyValuePairs() - { - $pairs = []; - - foreach (array_chunk($this->nodes, 2) as $pair) { - $pairs[] = [ - 'key' => $pair[0], - 'value' => $pair[1], - ]; - } - - return $pairs; - } - - public function hasElement(AbstractExpression $key) - { - foreach ($this->getKeyValuePairs() as $pair) { - // we compare the string representation of the keys - // to avoid comparing the line numbers which are not relevant here. - if ((string) $key === (string) $pair['key']) { - return true; - } - } - - return false; - } - - public function addElement(AbstractExpression $value, AbstractExpression $key = null) - { - if (null === $key) { - $key = new ConstantExpression(++$this->index, $value->getTemplateLine()); - } - - array_push($this->nodes, $key, $value); - } - - public function compile(Compiler $compiler) - { - $compiler->raw('['); - $first = true; - foreach ($this->getKeyValuePairs() as $pair) { - if (!$first) { - $compiler->raw(', '); - } - $first = false; - - $compiler - ->subcompile($pair['key']) - ->raw(' => ') - ->subcompile($pair['value']) - ; - } - $compiler->raw(']'); - } -} - -class_alias('Twig\Node\Expression\ArrayExpression', 'Twig_Node_Expression_Array'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/ArrowFunctionExpression.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/ArrowFunctionExpression.php deleted file mode 100644 index b5b720e..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/ArrowFunctionExpression.php +++ /dev/null @@ -1,64 +0,0 @@ - - */ -class ArrowFunctionExpression extends AbstractExpression -{ - public function __construct(AbstractExpression $expr, Node $names, $lineno, $tag = null) - { - parent::__construct(['expr' => $expr, 'names' => $names], [], $lineno, $tag); - } - - public function compile(Compiler $compiler) - { - $compiler - ->addDebugInfo($this) - ->raw('function (') - ; - foreach ($this->getNode('names') as $i => $name) { - if ($i) { - $compiler->raw(', '); - } - - $compiler - ->raw('$__') - ->raw($name->getAttribute('name')) - ->raw('__') - ; - } - $compiler - ->raw(') use ($context, $macros) { ') - ; - foreach ($this->getNode('names') as $name) { - $compiler - ->raw('$context["') - ->raw($name->getAttribute('name')) - ->raw('"] = $__') - ->raw($name->getAttribute('name')) - ->raw('__; ') - ; - } - $compiler - ->raw('return ') - ->subcompile($this->getNode('expr')) - ->raw('; }') - ; - } -} diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/AssignNameExpression.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/AssignNameExpression.php deleted file mode 100644 index 62c4ac0..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/AssignNameExpression.php +++ /dev/null @@ -1,29 +0,0 @@ -raw('$context[') - ->string($this->getAttribute('name')) - ->raw(']') - ; - } -} - -class_alias('Twig\Node\Expression\AssignNameExpression', 'Twig_Node_Expression_AssignName'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/AbstractBinary.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/AbstractBinary.php deleted file mode 100644 index 67c388a..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/AbstractBinary.php +++ /dev/null @@ -1,44 +0,0 @@ - $left, 'right' => $right], [], $lineno); - } - - public function compile(Compiler $compiler) - { - $compiler - ->raw('(') - ->subcompile($this->getNode('left')) - ->raw(' ') - ; - $this->operator($compiler); - $compiler - ->raw(' ') - ->subcompile($this->getNode('right')) - ->raw(')') - ; - } - - abstract public function operator(Compiler $compiler); -} - -class_alias('Twig\Node\Expression\Binary\AbstractBinary', 'Twig_Node_Expression_Binary'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/AddBinary.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/AddBinary.php deleted file mode 100644 index f7719a1..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/AddBinary.php +++ /dev/null @@ -1,25 +0,0 @@ -raw('+'); - } -} - -class_alias('Twig\Node\Expression\Binary\AddBinary', 'Twig_Node_Expression_Binary_Add'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/AndBinary.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/AndBinary.php deleted file mode 100644 index 484597d..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/AndBinary.php +++ /dev/null @@ -1,25 +0,0 @@ -raw('&&'); - } -} - -class_alias('Twig\Node\Expression\Binary\AndBinary', 'Twig_Node_Expression_Binary_And'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/BitwiseAndBinary.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/BitwiseAndBinary.php deleted file mode 100644 index cf28691..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/BitwiseAndBinary.php +++ /dev/null @@ -1,25 +0,0 @@ -raw('&'); - } -} - -class_alias('Twig\Node\Expression\Binary\BitwiseAndBinary', 'Twig_Node_Expression_Binary_BitwiseAnd'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/BitwiseOrBinary.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/BitwiseOrBinary.php deleted file mode 100644 index 7d5d260..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/BitwiseOrBinary.php +++ /dev/null @@ -1,25 +0,0 @@ -raw('|'); - } -} - -class_alias('Twig\Node\Expression\Binary\BitwiseOrBinary', 'Twig_Node_Expression_Binary_BitwiseOr'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/BitwiseXorBinary.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/BitwiseXorBinary.php deleted file mode 100644 index 7291987..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/BitwiseXorBinary.php +++ /dev/null @@ -1,25 +0,0 @@ -raw('^'); - } -} - -class_alias('Twig\Node\Expression\Binary\BitwiseXorBinary', 'Twig_Node_Expression_Binary_BitwiseXor'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/ConcatBinary.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/ConcatBinary.php deleted file mode 100644 index f6e5938..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/ConcatBinary.php +++ /dev/null @@ -1,25 +0,0 @@ -raw('.'); - } -} - -class_alias('Twig\Node\Expression\Binary\ConcatBinary', 'Twig_Node_Expression_Binary_Concat'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/DivBinary.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/DivBinary.php deleted file mode 100644 index ebfcc75..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/DivBinary.php +++ /dev/null @@ -1,25 +0,0 @@ -raw('/'); - } -} - -class_alias('Twig\Node\Expression\Binary\DivBinary', 'Twig_Node_Expression_Binary_Div'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/EndsWithBinary.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/EndsWithBinary.php deleted file mode 100644 index 41a0065..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/EndsWithBinary.php +++ /dev/null @@ -1,37 +0,0 @@ -getVarName(); - $right = $compiler->getVarName(); - $compiler - ->raw(sprintf('(is_string($%s = ', $left)) - ->subcompile($this->getNode('left')) - ->raw(sprintf(') && is_string($%s = ', $right)) - ->subcompile($this->getNode('right')) - ->raw(sprintf(') && (\'\' === $%2$s || $%2$s === substr($%1$s, -strlen($%2$s))))', $left, $right)) - ; - } - - public function operator(Compiler $compiler) - { - return $compiler->raw(''); - } -} - -class_alias('Twig\Node\Expression\Binary\EndsWithBinary', 'Twig_Node_Expression_Binary_EndsWith'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/EqualBinary.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/EqualBinary.php deleted file mode 100644 index 84904c3..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/EqualBinary.php +++ /dev/null @@ -1,24 +0,0 @@ -raw('=='); - } -} - -class_alias('Twig\Node\Expression\Binary\EqualBinary', 'Twig_Node_Expression_Binary_Equal'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/FloorDivBinary.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/FloorDivBinary.php deleted file mode 100644 index 4dd5e3d..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/FloorDivBinary.php +++ /dev/null @@ -1,31 +0,0 @@ -raw('(int) floor('); - parent::compile($compiler); - $compiler->raw(')'); - } - - public function operator(Compiler $compiler) - { - return $compiler->raw('/'); - } -} - -class_alias('Twig\Node\Expression\Binary\FloorDivBinary', 'Twig_Node_Expression_Binary_FloorDiv'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/GreaterBinary.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/GreaterBinary.php deleted file mode 100644 index be73001..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/GreaterBinary.php +++ /dev/null @@ -1,24 +0,0 @@ -raw('>'); - } -} - -class_alias('Twig\Node\Expression\Binary\GreaterBinary', 'Twig_Node_Expression_Binary_Greater'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/GreaterEqualBinary.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/GreaterEqualBinary.php deleted file mode 100644 index 5c2ae72..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/GreaterEqualBinary.php +++ /dev/null @@ -1,24 +0,0 @@ -raw('>='); - } -} - -class_alias('Twig\Node\Expression\Binary\GreaterEqualBinary', 'Twig_Node_Expression_Binary_GreaterEqual'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/InBinary.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/InBinary.php deleted file mode 100644 index f00b230..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/InBinary.php +++ /dev/null @@ -1,35 +0,0 @@ -raw('twig_in_filter(') - ->subcompile($this->getNode('left')) - ->raw(', ') - ->subcompile($this->getNode('right')) - ->raw(')') - ; - } - - public function operator(Compiler $compiler) - { - return $compiler->raw('in'); - } -} - -class_alias('Twig\Node\Expression\Binary\InBinary', 'Twig_Node_Expression_Binary_In'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/LessBinary.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/LessBinary.php deleted file mode 100644 index 2b202da..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/LessBinary.php +++ /dev/null @@ -1,24 +0,0 @@ -raw('<'); - } -} - -class_alias('Twig\Node\Expression\Binary\LessBinary', 'Twig_Node_Expression_Binary_Less'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/LessEqualBinary.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/LessEqualBinary.php deleted file mode 100644 index 4fffafe..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/LessEqualBinary.php +++ /dev/null @@ -1,24 +0,0 @@ -raw('<='); - } -} - -class_alias('Twig\Node\Expression\Binary\LessEqualBinary', 'Twig_Node_Expression_Binary_LessEqual'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/MatchesBinary.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/MatchesBinary.php deleted file mode 100644 index ae810b2..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/MatchesBinary.php +++ /dev/null @@ -1,35 +0,0 @@ -raw('preg_match(') - ->subcompile($this->getNode('right')) - ->raw(', ') - ->subcompile($this->getNode('left')) - ->raw(')') - ; - } - - public function operator(Compiler $compiler) - { - return $compiler->raw(''); - } -} - -class_alias('Twig\Node\Expression\Binary\MatchesBinary', 'Twig_Node_Expression_Binary_Matches'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/ModBinary.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/ModBinary.php deleted file mode 100644 index e6a2b36..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/ModBinary.php +++ /dev/null @@ -1,25 +0,0 @@ -raw('%'); - } -} - -class_alias('Twig\Node\Expression\Binary\ModBinary', 'Twig_Node_Expression_Binary_Mod'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/MulBinary.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/MulBinary.php deleted file mode 100644 index cd65f5d..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/MulBinary.php +++ /dev/null @@ -1,25 +0,0 @@ -raw('*'); - } -} - -class_alias('Twig\Node\Expression\Binary\MulBinary', 'Twig_Node_Expression_Binary_Mul'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/NotEqualBinary.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/NotEqualBinary.php deleted file mode 100644 index df5c6a2..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/NotEqualBinary.php +++ /dev/null @@ -1,24 +0,0 @@ -raw('!='); - } -} - -class_alias('Twig\Node\Expression\Binary\NotEqualBinary', 'Twig_Node_Expression_Binary_NotEqual'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/NotInBinary.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/NotInBinary.php deleted file mode 100644 index ed2034e..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/NotInBinary.php +++ /dev/null @@ -1,35 +0,0 @@ -raw('!twig_in_filter(') - ->subcompile($this->getNode('left')) - ->raw(', ') - ->subcompile($this->getNode('right')) - ->raw(')') - ; - } - - public function operator(Compiler $compiler) - { - return $compiler->raw('not in'); - } -} - -class_alias('Twig\Node\Expression\Binary\NotInBinary', 'Twig_Node_Expression_Binary_NotIn'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/OrBinary.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/OrBinary.php deleted file mode 100644 index 8f9da43..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/OrBinary.php +++ /dev/null @@ -1,25 +0,0 @@ -raw('||'); - } -} - -class_alias('Twig\Node\Expression\Binary\OrBinary', 'Twig_Node_Expression_Binary_Or'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/PowerBinary.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/PowerBinary.php deleted file mode 100644 index 32d0214..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/PowerBinary.php +++ /dev/null @@ -1,24 +0,0 @@ -raw('**'); - } -} - -class_alias('Twig\Node\Expression\Binary\PowerBinary', 'Twig_Node_Expression_Binary_Power'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/RangeBinary.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/RangeBinary.php deleted file mode 100644 index e9c0cdf..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/RangeBinary.php +++ /dev/null @@ -1,35 +0,0 @@ -raw('range(') - ->subcompile($this->getNode('left')) - ->raw(', ') - ->subcompile($this->getNode('right')) - ->raw(')') - ; - } - - public function operator(Compiler $compiler) - { - return $compiler->raw('..'); - } -} - -class_alias('Twig\Node\Expression\Binary\RangeBinary', 'Twig_Node_Expression_Binary_Range'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/SpaceshipBinary.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/SpaceshipBinary.php deleted file mode 100644 index 5245e40..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/SpaceshipBinary.php +++ /dev/null @@ -1,22 +0,0 @@ -raw('<=>'); - } -} diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/StartsWithBinary.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/StartsWithBinary.php deleted file mode 100644 index 1fe59fb..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/StartsWithBinary.php +++ /dev/null @@ -1,37 +0,0 @@ -getVarName(); - $right = $compiler->getVarName(); - $compiler - ->raw(sprintf('(is_string($%s = ', $left)) - ->subcompile($this->getNode('left')) - ->raw(sprintf(') && is_string($%s = ', $right)) - ->subcompile($this->getNode('right')) - ->raw(sprintf(') && (\'\' === $%2$s || 0 === strpos($%1$s, $%2$s)))', $left, $right)) - ; - } - - public function operator(Compiler $compiler) - { - return $compiler->raw(''); - } -} - -class_alias('Twig\Node\Expression\Binary\StartsWithBinary', 'Twig_Node_Expression_Binary_StartsWith'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/SubBinary.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/SubBinary.php deleted file mode 100644 index 2546975..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Binary/SubBinary.php +++ /dev/null @@ -1,25 +0,0 @@ -raw('-'); - } -} - -class_alias('Twig\Node\Expression\Binary\SubBinary', 'Twig_Node_Expression_Binary_Sub'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/BlockReferenceExpression.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/BlockReferenceExpression.php deleted file mode 100644 index c68989a..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/BlockReferenceExpression.php +++ /dev/null @@ -1,88 +0,0 @@ - - */ -class BlockReferenceExpression extends AbstractExpression -{ - public function __construct(Node $name, Node $template = null, int $lineno, string $tag = null) - { - $nodes = ['name' => $name]; - if (null !== $template) { - $nodes['template'] = $template; - } - - parent::__construct($nodes, ['is_defined_test' => false, 'output' => false], $lineno, $tag); - } - - public function compile(Compiler $compiler) - { - if ($this->getAttribute('is_defined_test')) { - $this->compileTemplateCall($compiler, 'hasBlock'); - } else { - if ($this->getAttribute('output')) { - $compiler->addDebugInfo($this); - - $this - ->compileTemplateCall($compiler, 'displayBlock') - ->raw(";\n"); - } else { - $this->compileTemplateCall($compiler, 'renderBlock'); - } - } - } - - private function compileTemplateCall(Compiler $compiler, string $method): Compiler - { - if (!$this->hasNode('template')) { - $compiler->write('$this'); - } else { - $compiler - ->write('$this->loadTemplate(') - ->subcompile($this->getNode('template')) - ->raw(', ') - ->repr($this->getTemplateName()) - ->raw(', ') - ->repr($this->getTemplateLine()) - ->raw(')') - ; - } - - $compiler->raw(sprintf('->%s', $method)); - - return $this->compileBlockArguments($compiler); - } - - private function compileBlockArguments(Compiler $compiler): Compiler - { - $compiler - ->raw('(') - ->subcompile($this->getNode('name')) - ->raw(', $context'); - - if (!$this->hasNode('template')) { - $compiler->raw(', $blocks'); - } - - return $compiler->raw(')'); - } -} - -class_alias('Twig\Node\Expression\BlockReferenceExpression', 'Twig_Node_Expression_BlockReference'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/CallExpression.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/CallExpression.php deleted file mode 100644 index 4ecd2c1..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/CallExpression.php +++ /dev/null @@ -1,313 +0,0 @@ -getAttribute('callable'); - - $closingParenthesis = false; - $isArray = false; - if (\is_string($callable) && false === strpos($callable, '::')) { - $compiler->raw($callable); - } else { - list($r, $callable) = $this->reflectCallable($callable); - if ($r instanceof \ReflectionMethod && \is_string($callable[0])) { - if ($r->isStatic()) { - $compiler->raw(sprintf('%s::%s', $callable[0], $callable[1])); - } else { - $compiler->raw(sprintf('$this->env->getRuntime(\'%s\')->%s', $callable[0], $callable[1])); - } - } elseif ($r instanceof \ReflectionMethod && $callable[0] instanceof ExtensionInterface) { - // For BC/FC with namespaced aliases - $class = (new \ReflectionClass(\get_class($callable[0])))->name; - if (!$compiler->getEnvironment()->hasExtension($class)) { - // Compile a non-optimized call to trigger a \Twig\Error\RuntimeError, which cannot be a compile-time error - $compiler->raw(sprintf('$this->env->getExtension(\'%s\')', $class)); - } else { - $compiler->raw(sprintf('$this->extensions[\'%s\']', ltrim($class, '\\'))); - } - - $compiler->raw(sprintf('->%s', $callable[1])); - } else { - $closingParenthesis = true; - $isArray = true; - $compiler->raw(sprintf('call_user_func_array($this->env->get%s(\'%s\')->getCallable(), ', ucfirst($this->getAttribute('type')), $this->getAttribute('name'))); - } - } - - $this->compileArguments($compiler, $isArray); - - if ($closingParenthesis) { - $compiler->raw(')'); - } - } - - protected function compileArguments(Compiler $compiler, $isArray = false) - { - $compiler->raw($isArray ? '[' : '('); - - $first = true; - - if ($this->hasAttribute('needs_environment') && $this->getAttribute('needs_environment')) { - $compiler->raw('$this->env'); - $first = false; - } - - if ($this->hasAttribute('needs_context') && $this->getAttribute('needs_context')) { - if (!$first) { - $compiler->raw(', '); - } - $compiler->raw('$context'); - $first = false; - } - - if ($this->hasAttribute('arguments')) { - foreach ($this->getAttribute('arguments') as $argument) { - if (!$first) { - $compiler->raw(', '); - } - $compiler->string($argument); - $first = false; - } - } - - if ($this->hasNode('node')) { - if (!$first) { - $compiler->raw(', '); - } - $compiler->subcompile($this->getNode('node')); - $first = false; - } - - if ($this->hasNode('arguments')) { - $callable = $this->getAttribute('callable'); - $arguments = $this->getArguments($callable, $this->getNode('arguments')); - foreach ($arguments as $node) { - if (!$first) { - $compiler->raw(', '); - } - $compiler->subcompile($node); - $first = false; - } - } - - $compiler->raw($isArray ? ']' : ')'); - } - - protected function getArguments($callable = null, $arguments) - { - $callType = $this->getAttribute('type'); - $callName = $this->getAttribute('name'); - - $parameters = []; - $named = false; - foreach ($arguments as $name => $node) { - if (!\is_int($name)) { - $named = true; - $name = $this->normalizeName($name); - } elseif ($named) { - throw new SyntaxError(sprintf('Positional arguments cannot be used after named arguments for %s "%s".', $callType, $callName), $this->getTemplateLine(), $this->getSourceContext()); - } - - $parameters[$name] = $node; - } - - $isVariadic = $this->hasAttribute('is_variadic') && $this->getAttribute('is_variadic'); - if (!$named && !$isVariadic) { - return $parameters; - } - - if (!$callable) { - if ($named) { - $message = sprintf('Named arguments are not supported for %s "%s".', $callType, $callName); - } else { - $message = sprintf('Arbitrary positional arguments are not supported for %s "%s".', $callType, $callName); - } - - throw new \LogicException($message); - } - - list($callableParameters, $isPhpVariadic) = $this->getCallableParameters($callable, $isVariadic); - $arguments = []; - $names = []; - $missingArguments = []; - $optionalArguments = []; - $pos = 0; - foreach ($callableParameters as $callableParameter) { - $names[] = $name = $this->normalizeName($callableParameter->name); - - if (\array_key_exists($name, $parameters)) { - if (\array_key_exists($pos, $parameters)) { - throw new SyntaxError(sprintf('Argument "%s" is defined twice for %s "%s".', $name, $callType, $callName), $this->getTemplateLine(), $this->getSourceContext()); - } - - if (\count($missingArguments)) { - throw new SyntaxError(sprintf( - 'Argument "%s" could not be assigned for %s "%s(%s)" because it is mapped to an internal PHP function which cannot determine default value for optional argument%s "%s".', - $name, $callType, $callName, implode(', ', $names), \count($missingArguments) > 1 ? 's' : '', implode('", "', $missingArguments) - ), $this->getTemplateLine(), $this->getSourceContext()); - } - - $arguments = array_merge($arguments, $optionalArguments); - $arguments[] = $parameters[$name]; - unset($parameters[$name]); - $optionalArguments = []; - } elseif (\array_key_exists($pos, $parameters)) { - $arguments = array_merge($arguments, $optionalArguments); - $arguments[] = $parameters[$pos]; - unset($parameters[$pos]); - $optionalArguments = []; - ++$pos; - } elseif ($callableParameter->isDefaultValueAvailable()) { - $optionalArguments[] = new ConstantExpression($callableParameter->getDefaultValue(), -1); - } elseif ($callableParameter->isOptional()) { - if (empty($parameters)) { - break; - } else { - $missingArguments[] = $name; - } - } else { - throw new SyntaxError(sprintf('Value for argument "%s" is required for %s "%s".', $name, $callType, $callName), $this->getTemplateLine(), $this->getSourceContext()); - } - } - - if ($isVariadic) { - $arbitraryArguments = $isPhpVariadic ? new VariadicExpression([], -1) : new ArrayExpression([], -1); - foreach ($parameters as $key => $value) { - if (\is_int($key)) { - $arbitraryArguments->addElement($value); - } else { - $arbitraryArguments->addElement($value, new ConstantExpression($key, -1)); - } - unset($parameters[$key]); - } - - if ($arbitraryArguments->count()) { - $arguments = array_merge($arguments, $optionalArguments); - $arguments[] = $arbitraryArguments; - } - } - - if (!empty($parameters)) { - $unknownParameter = null; - foreach ($parameters as $parameter) { - if ($parameter instanceof Node) { - $unknownParameter = $parameter; - break; - } - } - - throw new SyntaxError( - sprintf( - 'Unknown argument%s "%s" for %s "%s(%s)".', - \count($parameters) > 1 ? 's' : '', implode('", "', array_keys($parameters)), $callType, $callName, implode(', ', $names) - ), - $unknownParameter ? $unknownParameter->getTemplateLine() : $this->getTemplateLine(), - $unknownParameter ? $unknownParameter->getSourceContext() : $this->getSourceContext() - ); - } - - return $arguments; - } - - protected function normalizeName($name) - { - return strtolower(preg_replace(['/([A-Z]+)([A-Z][a-z])/', '/([a-z\d])([A-Z])/'], ['\\1_\\2', '\\1_\\2'], $name)); - } - - private function getCallableParameters($callable, bool $isVariadic): array - { - list($r) = $this->reflectCallable($callable); - if (null === $r) { - return [[], false]; - } - - $parameters = $r->getParameters(); - if ($this->hasNode('node')) { - array_shift($parameters); - } - if ($this->hasAttribute('needs_environment') && $this->getAttribute('needs_environment')) { - array_shift($parameters); - } - if ($this->hasAttribute('needs_context') && $this->getAttribute('needs_context')) { - array_shift($parameters); - } - if ($this->hasAttribute('arguments') && null !== $this->getAttribute('arguments')) { - foreach ($this->getAttribute('arguments') as $argument) { - array_shift($parameters); - } - } - $isPhpVariadic = false; - if ($isVariadic) { - $argument = end($parameters); - if ($argument && $argument->isArray() && $argument->isDefaultValueAvailable() && [] === $argument->getDefaultValue()) { - array_pop($parameters); - } elseif ($argument && $argument->isVariadic()) { - array_pop($parameters); - $isPhpVariadic = true; - } else { - $callableName = $r->name; - if ($r instanceof \ReflectionMethod) { - $callableName = $r->getDeclaringClass()->name.'::'.$callableName; - } - - throw new \LogicException(sprintf('The last parameter of "%s" for %s "%s" must be an array with default value, eg. "array $arg = []".', $callableName, $this->getAttribute('type'), $this->getAttribute('name'))); - } - } - - return [$parameters, $isPhpVariadic]; - } - - private function reflectCallable($callable) - { - if (null !== $this->reflector) { - return $this->reflector; - } - - if (\is_array($callable)) { - if (!method_exists($callable[0], $callable[1])) { - // __call() - return [null, []]; - } - $r = new \ReflectionMethod($callable[0], $callable[1]); - } elseif (\is_object($callable) && !$callable instanceof \Closure) { - $r = new \ReflectionObject($callable); - $r = $r->getMethod('__invoke'); - $callable = [$callable, '__invoke']; - } elseif (\is_string($callable) && false !== $pos = strpos($callable, '::')) { - $class = substr($callable, 0, $pos); - $method = substr($callable, $pos + 2); - if (!method_exists($class, $method)) { - // __staticCall() - return [null, []]; - } - $r = new \ReflectionMethod($callable); - $callable = [$class, $method]; - } else { - $r = new \ReflectionFunction($callable); - } - - return $this->reflector = [$r, $callable]; - } -} - -class_alias('Twig\Node\Expression\CallExpression', 'Twig_Node_Expression_Call'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/ConditionalExpression.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/ConditionalExpression.php deleted file mode 100644 index 8c367d3..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/ConditionalExpression.php +++ /dev/null @@ -1,38 +0,0 @@ - $expr1, 'expr2' => $expr2, 'expr3' => $expr3], [], $lineno); - } - - public function compile(Compiler $compiler) - { - $compiler - ->raw('((') - ->subcompile($this->getNode('expr1')) - ->raw(') ? (') - ->subcompile($this->getNode('expr2')) - ->raw(') : (') - ->subcompile($this->getNode('expr3')) - ->raw('))') - ; - } -} - -class_alias('Twig\Node\Expression\ConditionalExpression', 'Twig_Node_Expression_Conditional'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/ConstantExpression.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/ConstantExpression.php deleted file mode 100644 index 46e0ac3..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/ConstantExpression.php +++ /dev/null @@ -1,30 +0,0 @@ - $value], $lineno); - } - - public function compile(Compiler $compiler) - { - $compiler->repr($this->getAttribute('value')); - } -} - -class_alias('Twig\Node\Expression\ConstantExpression', 'Twig_Node_Expression_Constant'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Filter/DefaultFilter.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Filter/DefaultFilter.php deleted file mode 100644 index 0dacae8..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Filter/DefaultFilter.php +++ /dev/null @@ -1,54 +0,0 @@ - - */ -class DefaultFilter extends FilterExpression -{ - public function __construct(Node $node, ConstantExpression $filterName, Node $arguments, int $lineno, string $tag = null) - { - $default = new FilterExpression($node, new ConstantExpression('default', $node->getTemplateLine()), $arguments, $node->getTemplateLine()); - - if ('default' === $filterName->getAttribute('value') && ($node instanceof NameExpression || $node instanceof GetAttrExpression)) { - $test = new DefinedTest(clone $node, 'defined', new Node(), $node->getTemplateLine()); - $false = \count($arguments) ? $arguments->getNode(0) : new ConstantExpression('', $node->getTemplateLine()); - - $node = new ConditionalExpression($test, $default, $false, $node->getTemplateLine()); - } else { - $node = $default; - } - - parent::__construct($node, $filterName, $arguments, $lineno, $tag); - } - - public function compile(Compiler $compiler) - { - $compiler->subcompile($this->getNode('node')); - } -} - -class_alias('Twig\Node\Expression\Filter\DefaultFilter', 'Twig_Node_Expression_Filter_Default'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/FilterExpression.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/FilterExpression.php deleted file mode 100644 index 41b0734..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/FilterExpression.php +++ /dev/null @@ -1,42 +0,0 @@ - $node, 'filter' => $filterName, 'arguments' => $arguments], [], $lineno, $tag); - } - - public function compile(Compiler $compiler) - { - $name = $this->getNode('filter')->getAttribute('value'); - $filter = $compiler->getEnvironment()->getFilter($name); - - $this->setAttribute('name', $name); - $this->setAttribute('type', 'filter'); - $this->setAttribute('needs_environment', $filter->needsEnvironment()); - $this->setAttribute('needs_context', $filter->needsContext()); - $this->setAttribute('arguments', $filter->getArguments()); - $this->setAttribute('callable', $filter->getCallable()); - $this->setAttribute('is_variadic', $filter->isVariadic()); - - $this->compileCallable($compiler); - } -} - -class_alias('Twig\Node\Expression\FilterExpression', 'Twig_Node_Expression_Filter'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/FunctionExpression.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/FunctionExpression.php deleted file mode 100644 index 429dbb9..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/FunctionExpression.php +++ /dev/null @@ -1,45 +0,0 @@ - $arguments], ['name' => $name, 'is_defined_test' => false], $lineno); - } - - public function compile(Compiler $compiler) - { - $name = $this->getAttribute('name'); - $function = $compiler->getEnvironment()->getFunction($name); - - $this->setAttribute('name', $name); - $this->setAttribute('type', 'function'); - $this->setAttribute('needs_environment', $function->needsEnvironment()); - $this->setAttribute('needs_context', $function->needsContext()); - $this->setAttribute('arguments', $function->getArguments()); - $callable = $function->getCallable(); - if ('constant' === $name && $this->getAttribute('is_defined_test')) { - $callable = 'twig_constant_is_defined'; - } - $this->setAttribute('callable', $callable); - $this->setAttribute('is_variadic', $function->isVariadic()); - - $this->compileCallable($compiler); - } -} - -class_alias('Twig\Node\Expression\FunctionExpression', 'Twig_Node_Expression_Function'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/GetAttrExpression.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/GetAttrExpression.php deleted file mode 100644 index 7b06617..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/GetAttrExpression.php +++ /dev/null @@ -1,89 +0,0 @@ - $node, 'attribute' => $attribute]; - if (null !== $arguments) { - $nodes['arguments'] = $arguments; - } - - parent::__construct($nodes, ['type' => $type, 'is_defined_test' => false, 'ignore_strict_check' => false, 'optimizable' => true], $lineno); - } - - public function compile(Compiler $compiler) - { - $env = $compiler->getEnvironment(); - - // optimize array calls - if ( - $this->getAttribute('optimizable') - && (!$env->isStrictVariables() || $this->getAttribute('ignore_strict_check')) - && !$this->getAttribute('is_defined_test') - && Template::ARRAY_CALL === $this->getAttribute('type') - ) { - $var = '$'.$compiler->getVarName(); - $compiler - ->raw('(('.$var.' = ') - ->subcompile($this->getNode('node')) - ->raw(') && is_array(') - ->raw($var) - ->raw(') || ') - ->raw($var) - ->raw(' instanceof ArrayAccess ? (') - ->raw($var) - ->raw('[') - ->subcompile($this->getNode('attribute')) - ->raw('] ?? null) : null)') - ; - - return; - } - - $compiler->raw('twig_get_attribute($this->env, $this->source, '); - - if ($this->getAttribute('ignore_strict_check')) { - $this->getNode('node')->setAttribute('ignore_strict_check', true); - } - - $compiler - ->subcompile($this->getNode('node')) - ->raw(', ') - ->subcompile($this->getNode('attribute')) - ; - - if ($this->hasNode('arguments')) { - $compiler->raw(', ')->subcompile($this->getNode('arguments')); - } else { - $compiler->raw(', []'); - } - - $compiler->raw(', ') - ->repr($this->getAttribute('type')) - ->raw(', ')->repr($this->getAttribute('is_defined_test')) - ->raw(', ')->repr($this->getAttribute('ignore_strict_check')) - ->raw(', ')->repr($env->hasExtension(SandboxExtension::class)) - ->raw(', ')->repr($this->getNode('node')->getTemplateLine()) - ->raw(')') - ; - } -} - -class_alias('Twig\Node\Expression\GetAttrExpression', 'Twig_Node_Expression_GetAttr'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/InlinePrint.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/InlinePrint.php deleted file mode 100644 index 469e736..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/InlinePrint.php +++ /dev/null @@ -1,35 +0,0 @@ - $node], [], $lineno); - } - - public function compile(Compiler $compiler) - { - $compiler - ->raw('print (') - ->subcompile($this->getNode('node')) - ->raw(')') - ; - } -} diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/MethodCallExpression.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/MethodCallExpression.php deleted file mode 100644 index d5287f8..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/MethodCallExpression.php +++ /dev/null @@ -1,64 +0,0 @@ - $node, 'arguments' => $arguments], ['method' => $method, 'safe' => false, 'is_defined_test' => false], $lineno); - - if ($node instanceof NameExpression) { - $node->setAttribute('always_defined', true); - } - } - - public function compile(Compiler $compiler) - { - if ($this->getAttribute('is_defined_test')) { - $compiler - ->raw('method_exists($macros[') - ->repr($this->getNode('node')->getAttribute('name')) - ->raw('], ') - ->repr($this->getAttribute('method')) - ->raw(')') - ; - - return; - } - - $compiler - ->raw('twig_call_macro($macros[') - ->repr($this->getNode('node')->getAttribute('name')) - ->raw('], ') - ->repr($this->getAttribute('method')) - ->raw(', [') - ; - $first = true; - foreach ($this->getNode('arguments')->getKeyValuePairs() as $pair) { - if (!$first) { - $compiler->raw(', '); - } - $first = false; - - $compiler->subcompile($pair['value']); - } - $compiler - ->raw('], ') - ->repr($this->getTemplateLine()) - ->raw(', $context, $this->getSourceContext())'); - } -} - -class_alias('Twig\Node\Expression\MethodCallExpression', 'Twig_Node_Expression_MethodCall'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/NameExpression.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/NameExpression.php deleted file mode 100644 index ff7a046..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/NameExpression.php +++ /dev/null @@ -1,99 +0,0 @@ - '$this->getTemplateName()', - '_context' => '$context', - '_charset' => '$this->env->getCharset()', - ]; - - public function __construct(string $name, int $lineno) - { - parent::__construct([], ['name' => $name, 'is_defined_test' => false, 'ignore_strict_check' => false, 'always_defined' => false], $lineno); - } - - public function compile(Compiler $compiler) - { - $name = $this->getAttribute('name'); - - $compiler->addDebugInfo($this); - - if ($this->getAttribute('is_defined_test')) { - if ($this->isSpecial()) { - $compiler->repr(true); - } elseif (\PHP_VERSION_ID >= 700400) { - $compiler - ->raw('array_key_exists(') - ->string($name) - ->raw(', $context)') - ; - } else { - $compiler - ->raw('(isset($context[') - ->string($name) - ->raw(']) || array_key_exists(') - ->string($name) - ->raw(', $context))') - ; - } - } elseif ($this->isSpecial()) { - $compiler->raw($this->specialVars[$name]); - } elseif ($this->getAttribute('always_defined')) { - $compiler - ->raw('$context[') - ->string($name) - ->raw(']') - ; - } else { - if ($this->getAttribute('ignore_strict_check') || !$compiler->getEnvironment()->isStrictVariables()) { - $compiler - ->raw('($context[') - ->string($name) - ->raw('] ?? null)') - ; - } else { - $compiler - ->raw('(isset($context[') - ->string($name) - ->raw(']) || array_key_exists(') - ->string($name) - ->raw(', $context) ? $context[') - ->string($name) - ->raw('] : (function () { throw new RuntimeError(\'Variable ') - ->string($name) - ->raw(' does not exist.\', ') - ->repr($this->lineno) - ->raw(', $this->source); })()') - ->raw(')') - ; - } - } - } - - public function isSpecial() - { - return isset($this->specialVars[$this->getAttribute('name')]); - } - - public function isSimple() - { - return !$this->isSpecial() && !$this->getAttribute('is_defined_test'); - } -} - -class_alias('Twig\Node\Expression\NameExpression', 'Twig_Node_Expression_Name'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/NullCoalesceExpression.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/NullCoalesceExpression.php deleted file mode 100644 index de03ff2..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/NullCoalesceExpression.php +++ /dev/null @@ -1,62 +0,0 @@ -getTemplateLine()); - // for "block()", we don't need the null test as the return value is always a string - if (!$left instanceof BlockReferenceExpression) { - $test = new AndBinary( - $test, - new NotUnary(new NullTest($left, 'null', new Node(), $left->getTemplateLine()), $left->getTemplateLine()), - $left->getTemplateLine() - ); - } - - parent::__construct($test, $left, $right, $lineno); - } - - public function compile(Compiler $compiler) - { - /* - * This optimizes only one case. PHP 7 also supports more complex expressions - * that can return null. So, for instance, if log is defined, log("foo") ?? "..." works, - * but log($a["foo"]) ?? "..." does not if $a["foo"] is not defined. More advanced - * cases might be implemented as an optimizer node visitor, but has not been done - * as benefits are probably not worth the added complexity. - */ - if ($this->getNode('expr2') instanceof NameExpression) { - $this->getNode('expr2')->setAttribute('always_defined', true); - $compiler - ->raw('((') - ->subcompile($this->getNode('expr2')) - ->raw(') ?? (') - ->subcompile($this->getNode('expr3')) - ->raw('))') - ; - } else { - parent::compile($compiler); - } - } -} - -class_alias('Twig\Node\Expression\NullCoalesceExpression', 'Twig_Node_Expression_NullCoalesce'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/ParentExpression.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/ParentExpression.php deleted file mode 100644 index 294ab39..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/ParentExpression.php +++ /dev/null @@ -1,48 +0,0 @@ - - */ -class ParentExpression extends AbstractExpression -{ - public function __construct(string $name, int $lineno, string $tag = null) - { - parent::__construct([], ['output' => false, 'name' => $name], $lineno, $tag); - } - - public function compile(Compiler $compiler) - { - if ($this->getAttribute('output')) { - $compiler - ->addDebugInfo($this) - ->write('$this->displayParentBlock(') - ->string($this->getAttribute('name')) - ->raw(", \$context, \$blocks);\n") - ; - } else { - $compiler - ->raw('$this->renderParentBlock(') - ->string($this->getAttribute('name')) - ->raw(', $context, $blocks)') - ; - } - } -} - -class_alias('Twig\Node\Expression\ParentExpression', 'Twig_Node_Expression_Parent'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/TempNameExpression.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/TempNameExpression.php deleted file mode 100644 index e7a1a89..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/TempNameExpression.php +++ /dev/null @@ -1,33 +0,0 @@ - $name], $lineno); - } - - public function compile(Compiler $compiler) - { - $compiler - ->raw('$_') - ->raw($this->getAttribute('name')) - ->raw('_') - ; - } -} - -class_alias('Twig\Node\Expression\TempNameExpression', 'Twig_Node_Expression_TempName'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Test/ConstantTest.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Test/ConstantTest.php deleted file mode 100644 index 78353a8..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Test/ConstantTest.php +++ /dev/null @@ -1,51 +0,0 @@ - - */ -class ConstantTest extends TestExpression -{ - public function compile(Compiler $compiler) - { - $compiler - ->raw('(') - ->subcompile($this->getNode('node')) - ->raw(' === constant(') - ; - - if ($this->getNode('arguments')->hasNode(1)) { - $compiler - ->raw('get_class(') - ->subcompile($this->getNode('arguments')->getNode(1)) - ->raw(')."::".') - ; - } - - $compiler - ->subcompile($this->getNode('arguments')->getNode(0)) - ->raw('))') - ; - } -} - -class_alias('Twig\Node\Expression\Test\ConstantTest', 'Twig_Node_Expression_Test_Constant'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Test/DefinedTest.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Test/DefinedTest.php deleted file mode 100644 index 7a89840..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Test/DefinedTest.php +++ /dev/null @@ -1,76 +0,0 @@ - - */ -class DefinedTest extends TestExpression -{ - public function __construct(Node $node, string $name, Node $arguments = null, int $lineno) - { - if ($node instanceof NameExpression) { - $node->setAttribute('is_defined_test', true); - } elseif ($node instanceof GetAttrExpression) { - $node->setAttribute('is_defined_test', true); - $this->changeIgnoreStrictCheck($node); - } elseif ($node instanceof BlockReferenceExpression) { - $node->setAttribute('is_defined_test', true); - } elseif ($node instanceof FunctionExpression && 'constant' === $node->getAttribute('name')) { - $node->setAttribute('is_defined_test', true); - } elseif ($node instanceof ConstantExpression || $node instanceof ArrayExpression) { - $node = new ConstantExpression(true, $node->getTemplateLine()); - } elseif ($node instanceof MethodCallExpression) { - $node->setAttribute('is_defined_test', true); - } else { - throw new SyntaxError('The "defined" test only works with simple variables.', $lineno); - } - - parent::__construct($node, $name, $arguments, $lineno); - } - - private function changeIgnoreStrictCheck(GetAttrExpression $node) - { - $node->setAttribute('optimizable', false); - $node->setAttribute('ignore_strict_check', true); - - if ($node->getNode('node') instanceof GetAttrExpression) { - $this->changeIgnoreStrictCheck($node->getNode('node')); - } - } - - public function compile(Compiler $compiler) - { - $compiler->subcompile($this->getNode('node')); - } -} - -class_alias('Twig\Node\Expression\Test\DefinedTest', 'Twig_Node_Expression_Test_Defined'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Test/DivisiblebyTest.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Test/DivisiblebyTest.php deleted file mode 100644 index 05c8ad8..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Test/DivisiblebyTest.php +++ /dev/null @@ -1,38 +0,0 @@ - - */ -class DivisiblebyTest extends TestExpression -{ - public function compile(Compiler $compiler) - { - $compiler - ->raw('(0 == ') - ->subcompile($this->getNode('node')) - ->raw(' % ') - ->subcompile($this->getNode('arguments')->getNode(0)) - ->raw(')') - ; - } -} - -class_alias('Twig\Node\Expression\Test\DivisiblebyTest', 'Twig_Node_Expression_Test_Divisibleby'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Test/EvenTest.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Test/EvenTest.php deleted file mode 100644 index 3b955d2..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Test/EvenTest.php +++ /dev/null @@ -1,37 +0,0 @@ - - */ -class EvenTest extends TestExpression -{ - public function compile(Compiler $compiler) - { - $compiler - ->raw('(') - ->subcompile($this->getNode('node')) - ->raw(' % 2 == 0') - ->raw(')') - ; - } -} - -class_alias('Twig\Node\Expression\Test\EvenTest', 'Twig_Node_Expression_Test_Even'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Test/NullTest.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Test/NullTest.php deleted file mode 100644 index 24d3997..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Test/NullTest.php +++ /dev/null @@ -1,36 +0,0 @@ - - */ -class NullTest extends TestExpression -{ - public function compile(Compiler $compiler) - { - $compiler - ->raw('(null === ') - ->subcompile($this->getNode('node')) - ->raw(')') - ; - } -} - -class_alias('Twig\Node\Expression\Test\NullTest', 'Twig_Node_Expression_Test_Null'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Test/OddTest.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Test/OddTest.php deleted file mode 100644 index 2dc693a..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Test/OddTest.php +++ /dev/null @@ -1,37 +0,0 @@ - - */ -class OddTest extends TestExpression -{ - public function compile(Compiler $compiler) - { - $compiler - ->raw('(') - ->subcompile($this->getNode('node')) - ->raw(' % 2 == 1') - ->raw(')') - ; - } -} - -class_alias('Twig\Node\Expression\Test\OddTest', 'Twig_Node_Expression_Test_Odd'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Test/SameasTest.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Test/SameasTest.php deleted file mode 100644 index 75f2b82..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Test/SameasTest.php +++ /dev/null @@ -1,36 +0,0 @@ - - */ -class SameasTest extends TestExpression -{ - public function compile(Compiler $compiler) - { - $compiler - ->raw('(') - ->subcompile($this->getNode('node')) - ->raw(' === ') - ->subcompile($this->getNode('arguments')->getNode(0)) - ->raw(')') - ; - } -} - -class_alias('Twig\Node\Expression\Test\SameasTest', 'Twig_Node_Expression_Test_Sameas'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/TestExpression.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/TestExpression.php deleted file mode 100644 index 50aab05..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/TestExpression.php +++ /dev/null @@ -1,44 +0,0 @@ - $node]; - if (null !== $arguments) { - $nodes['arguments'] = $arguments; - } - - parent::__construct($nodes, ['name' => $name], $lineno); - } - - public function compile(Compiler $compiler) - { - $name = $this->getAttribute('name'); - $test = $compiler->getEnvironment()->getTest($name); - - $this->setAttribute('name', $name); - $this->setAttribute('type', 'test'); - $this->setAttribute('arguments', $test->getArguments()); - $this->setAttribute('callable', $test->getCallable()); - $this->setAttribute('is_variadic', $test->isVariadic()); - - $this->compileCallable($compiler); - } -} - -class_alias('Twig\Node\Expression\TestExpression', 'Twig_Node_Expression_Test'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Unary/AbstractUnary.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Unary/AbstractUnary.php deleted file mode 100644 index 4896280..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Unary/AbstractUnary.php +++ /dev/null @@ -1,36 +0,0 @@ - $node], [], $lineno); - } - - public function compile(Compiler $compiler) - { - $compiler->raw(' '); - $this->operator($compiler); - $compiler->subcompile($this->getNode('node')); - } - - abstract public function operator(Compiler $compiler); -} - -class_alias('Twig\Node\Expression\Unary\AbstractUnary', 'Twig_Node_Expression_Unary'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Unary/NegUnary.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Unary/NegUnary.php deleted file mode 100644 index dfb6f54..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Unary/NegUnary.php +++ /dev/null @@ -1,25 +0,0 @@ -raw('-'); - } -} - -class_alias('Twig\Node\Expression\Unary\NegUnary', 'Twig_Node_Expression_Unary_Neg'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Unary/NotUnary.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Unary/NotUnary.php deleted file mode 100644 index 7bdde96..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Unary/NotUnary.php +++ /dev/null @@ -1,25 +0,0 @@ -raw('!'); - } -} - -class_alias('Twig\Node\Expression\Unary\NotUnary', 'Twig_Node_Expression_Unary_Not'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Unary/PosUnary.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Unary/PosUnary.php deleted file mode 100644 index 52d5d0c..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/Unary/PosUnary.php +++ /dev/null @@ -1,25 +0,0 @@ -raw('+'); - } -} - -class_alias('Twig\Node\Expression\Unary\PosUnary', 'Twig_Node_Expression_Unary_Pos'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/VariadicExpression.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/VariadicExpression.php deleted file mode 100644 index 3351e1a..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Expression/VariadicExpression.php +++ /dev/null @@ -1,24 +0,0 @@ -raw('...'); - - parent::compile($compiler); - } -} diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/FlushNode.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/FlushNode.php deleted file mode 100644 index b88f340..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/FlushNode.php +++ /dev/null @@ -1,37 +0,0 @@ - - */ -class FlushNode extends Node -{ - public function __construct(int $lineno, string $tag) - { - parent::__construct([], [], $lineno, $tag); - } - - public function compile(Compiler $compiler) - { - $compiler - ->addDebugInfo($this) - ->write("flush();\n") - ; - } -} - -class_alias('Twig\Node\FlushNode', 'Twig_Node_Flush'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/ForLoopNode.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/ForLoopNode.php deleted file mode 100644 index 42aedd7..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/ForLoopNode.php +++ /dev/null @@ -1,56 +0,0 @@ - - */ -class ForLoopNode extends Node -{ - public function __construct(int $lineno, string $tag = null) - { - parent::__construct([], ['with_loop' => false, 'ifexpr' => false, 'else' => false], $lineno, $tag); - } - - public function compile(Compiler $compiler) - { - if ($this->getAttribute('else')) { - $compiler->write("\$context['_iterated'] = true;\n"); - } - - if ($this->getAttribute('with_loop')) { - $compiler - ->write("++\$context['loop']['index0'];\n") - ->write("++\$context['loop']['index'];\n") - ->write("\$context['loop']['first'] = false;\n") - ; - - if (!$this->getAttribute('ifexpr')) { - $compiler - ->write("if (isset(\$context['loop']['length'])) {\n") - ->indent() - ->write("--\$context['loop']['revindex0'];\n") - ->write("--\$context['loop']['revindex'];\n") - ->write("\$context['loop']['last'] = 0 === \$context['loop']['revindex0'];\n") - ->outdent() - ->write("}\n") - ; - } - } - } -} - -class_alias('Twig\Node\ForLoopNode', 'Twig_Node_ForLoop'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/ForNode.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/ForNode.php deleted file mode 100644 index 54afe93..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/ForNode.php +++ /dev/null @@ -1,119 +0,0 @@ - - */ -class ForNode extends Node -{ - private $loop; - - public function __construct(AssignNameExpression $keyTarget, AssignNameExpression $valueTarget, AbstractExpression $seq, AbstractExpression $ifexpr = null, Node $body, Node $else = null, int $lineno, string $tag = null) - { - $body = new Node([$body, $this->loop = new ForLoopNode($lineno, $tag)]); - - if (null !== $ifexpr) { - $body = new IfNode(new Node([$ifexpr, $body]), null, $lineno, $tag); - } - - $nodes = ['key_target' => $keyTarget, 'value_target' => $valueTarget, 'seq' => $seq, 'body' => $body]; - if (null !== $else) { - $nodes['else'] = $else; - } - - parent::__construct($nodes, ['with_loop' => true, 'ifexpr' => null !== $ifexpr], $lineno, $tag); - } - - public function compile(Compiler $compiler) - { - $compiler - ->addDebugInfo($this) - ->write("\$context['_parent'] = \$context;\n") - ->write("\$context['_seq'] = twig_ensure_traversable(") - ->subcompile($this->getNode('seq')) - ->raw(");\n") - ; - - if ($this->hasNode('else')) { - $compiler->write("\$context['_iterated'] = false;\n"); - } - - if ($this->getAttribute('with_loop')) { - $compiler - ->write("\$context['loop'] = [\n") - ->write(" 'parent' => \$context['_parent'],\n") - ->write(" 'index0' => 0,\n") - ->write(" 'index' => 1,\n") - ->write(" 'first' => true,\n") - ->write("];\n") - ; - - if (!$this->getAttribute('ifexpr')) { - $compiler - ->write("if (is_array(\$context['_seq']) || (is_object(\$context['_seq']) && \$context['_seq'] instanceof \Countable)) {\n") - ->indent() - ->write("\$length = count(\$context['_seq']);\n") - ->write("\$context['loop']['revindex0'] = \$length - 1;\n") - ->write("\$context['loop']['revindex'] = \$length;\n") - ->write("\$context['loop']['length'] = \$length;\n") - ->write("\$context['loop']['last'] = 1 === \$length;\n") - ->outdent() - ->write("}\n") - ; - } - } - - $this->loop->setAttribute('else', $this->hasNode('else')); - $this->loop->setAttribute('with_loop', $this->getAttribute('with_loop')); - $this->loop->setAttribute('ifexpr', $this->getAttribute('ifexpr')); - - $compiler - ->write("foreach (\$context['_seq'] as ") - ->subcompile($this->getNode('key_target')) - ->raw(' => ') - ->subcompile($this->getNode('value_target')) - ->raw(") {\n") - ->indent() - ->subcompile($this->getNode('body')) - ->outdent() - ->write("}\n") - ; - - if ($this->hasNode('else')) { - $compiler - ->write("if (!\$context['_iterated']) {\n") - ->indent() - ->subcompile($this->getNode('else')) - ->outdent() - ->write("}\n") - ; - } - - $compiler->write("\$_parent = \$context['_parent'];\n"); - - // remove some "private" loop variables (needed for nested loops) - $compiler->write('unset($context[\'_seq\'], $context[\'_iterated\'], $context[\''.$this->getNode('key_target')->getAttribute('name').'\'], $context[\''.$this->getNode('value_target')->getAttribute('name').'\'], $context[\'_parent\'], $context[\'loop\']);'."\n"); - - // keep the values set in the inner context for variables defined in the outer context - $compiler->write("\$context = array_intersect_key(\$context, \$_parent) + \$_parent;\n"); - } -} - -class_alias('Twig\Node\ForNode', 'Twig_Node_For'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/IfNode.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/IfNode.php deleted file mode 100644 index 814a6f3..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/IfNode.php +++ /dev/null @@ -1,72 +0,0 @@ - - */ -class IfNode extends Node -{ - public function __construct(Node $tests, Node $else = null, int $lineno, string $tag = null) - { - $nodes = ['tests' => $tests]; - if (null !== $else) { - $nodes['else'] = $else; - } - - parent::__construct($nodes, [], $lineno, $tag); - } - - public function compile(Compiler $compiler) - { - $compiler->addDebugInfo($this); - for ($i = 0, $count = \count($this->getNode('tests')); $i < $count; $i += 2) { - if ($i > 0) { - $compiler - ->outdent() - ->write('} elseif (') - ; - } else { - $compiler - ->write('if (') - ; - } - - $compiler - ->subcompile($this->getNode('tests')->getNode($i)) - ->raw(") {\n") - ->indent() - ->subcompile($this->getNode('tests')->getNode($i + 1)) - ; - } - - if ($this->hasNode('else')) { - $compiler - ->outdent() - ->write("} else {\n") - ->indent() - ->subcompile($this->getNode('else')) - ; - } - - $compiler - ->outdent() - ->write("}\n"); - } -} - -class_alias('Twig\Node\IfNode', 'Twig_Node_If'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/ImportNode.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/ImportNode.php deleted file mode 100644 index b661f43..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/ImportNode.php +++ /dev/null @@ -1,65 +0,0 @@ - - */ -class ImportNode extends Node -{ - public function __construct(AbstractExpression $expr, AbstractExpression $var, int $lineno, string $tag = null, bool $global = true) - { - parent::__construct(['expr' => $expr, 'var' => $var], ['global' => $global], $lineno, $tag); - } - - public function compile(Compiler $compiler) - { - $compiler - ->addDebugInfo($this) - ->write('$macros[') - ->repr($this->getNode('var')->getAttribute('name')) - ->raw('] = ') - ; - - if ($this->getAttribute('global')) { - $compiler - ->raw('$this->macros[') - ->repr($this->getNode('var')->getAttribute('name')) - ->raw('] = ') - ; - } - - if ($this->getNode('expr') instanceof NameExpression && '_self' === $this->getNode('expr')->getAttribute('name')) { - $compiler->raw('$this'); - } else { - $compiler - ->raw('$this->loadTemplate(') - ->subcompile($this->getNode('expr')) - ->raw(', ') - ->repr($this->getTemplateName()) - ->raw(', ') - ->repr($this->getTemplateLine()) - ->raw(')->unwrap()') - ; - } - - $compiler->raw(";\n"); - } -} - -class_alias('Twig\Node\ImportNode', 'Twig_Node_Import'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/IncludeNode.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/IncludeNode.php deleted file mode 100644 index d453030..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/IncludeNode.php +++ /dev/null @@ -1,108 +0,0 @@ - - */ -class IncludeNode extends Node implements NodeOutputInterface -{ - public function __construct(AbstractExpression $expr, AbstractExpression $variables = null, bool $only = false, bool $ignoreMissing = false, int $lineno, string $tag = null) - { - $nodes = ['expr' => $expr]; - if (null !== $variables) { - $nodes['variables'] = $variables; - } - - parent::__construct($nodes, ['only' => (bool) $only, 'ignore_missing' => (bool) $ignoreMissing], $lineno, $tag); - } - - public function compile(Compiler $compiler) - { - $compiler->addDebugInfo($this); - - if ($this->getAttribute('ignore_missing')) { - $template = $compiler->getVarName(); - - $compiler - ->write(sprintf("$%s = null;\n", $template)) - ->write("try {\n") - ->indent() - ->write(sprintf('$%s = ', $template)) - ; - - $this->addGetTemplate($compiler); - - $compiler - ->raw(";\n") - ->outdent() - ->write("} catch (LoaderError \$e) {\n") - ->indent() - ->write("// ignore missing template\n") - ->outdent() - ->write("}\n") - ->write(sprintf("if ($%s) {\n", $template)) - ->indent() - ->write(sprintf('$%s->display(', $template)) - ; - $this->addTemplateArguments($compiler); - $compiler - ->raw(");\n") - ->outdent() - ->write("}\n") - ; - } else { - $this->addGetTemplate($compiler); - $compiler->raw('->display('); - $this->addTemplateArguments($compiler); - $compiler->raw(");\n"); - } - } - - protected function addGetTemplate(Compiler $compiler) - { - $compiler - ->write('$this->loadTemplate(') - ->subcompile($this->getNode('expr')) - ->raw(', ') - ->repr($this->getTemplateName()) - ->raw(', ') - ->repr($this->getTemplateLine()) - ->raw(')') - ; - } - - protected function addTemplateArguments(Compiler $compiler) - { - if (!$this->hasNode('variables')) { - $compiler->raw(false === $this->getAttribute('only') ? '$context' : '[]'); - } elseif (false === $this->getAttribute('only')) { - $compiler - ->raw('twig_array_merge($context, ') - ->subcompile($this->getNode('variables')) - ->raw(')') - ; - } else { - $compiler->raw('twig_to_array('); - $compiler->subcompile($this->getNode('variables')); - $compiler->raw(')'); - } - } -} - -class_alias('Twig\Node\IncludeNode', 'Twig_Node_Include'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/MacroNode.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/MacroNode.php deleted file mode 100644 index a133720..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/MacroNode.php +++ /dev/null @@ -1,115 +0,0 @@ - - */ -class MacroNode extends Node -{ - const VARARGS_NAME = 'varargs'; - - public function __construct(string $name, Node $body, Node $arguments, int $lineno, string $tag = null) - { - foreach ($arguments as $argumentName => $argument) { - if (self::VARARGS_NAME === $argumentName) { - throw new SyntaxError(sprintf('The argument "%s" in macro "%s" cannot be defined because the variable "%s" is reserved for arbitrary arguments.', self::VARARGS_NAME, $name, self::VARARGS_NAME), $argument->getTemplateLine(), $argument->getSourceContext()); - } - } - - parent::__construct(['body' => $body, 'arguments' => $arguments], ['name' => $name], $lineno, $tag); - } - - public function compile(Compiler $compiler) - { - $compiler - ->addDebugInfo($this) - ->write(sprintf('public function macro_%s(', $this->getAttribute('name'))) - ; - - $count = \count($this->getNode('arguments')); - $pos = 0; - foreach ($this->getNode('arguments') as $name => $default) { - $compiler - ->raw('$__'.$name.'__ = ') - ->subcompile($default) - ; - - if (++$pos < $count) { - $compiler->raw(', '); - } - } - - if ($count) { - $compiler->raw(', '); - } - - $compiler - ->raw('...$__varargs__') - ->raw(")\n") - ->write("{\n") - ->indent() - ->write("\$macros = \$this->macros;\n") - ->write("\$context = \$this->env->mergeGlobals([\n") - ->indent() - ; - - foreach ($this->getNode('arguments') as $name => $default) { - $compiler - ->write('') - ->string($name) - ->raw(' => $__'.$name.'__') - ->raw(",\n") - ; - } - - $compiler - ->write('') - ->string(self::VARARGS_NAME) - ->raw(' => ') - ; - - $compiler - ->raw("\$__varargs__,\n") - ->outdent() - ->write("]);\n\n") - ->write("\$blocks = [];\n\n") - ; - if ($compiler->getEnvironment()->isDebug()) { - $compiler->write("ob_start();\n"); - } else { - $compiler->write("ob_start(function () { return ''; });\n"); - } - $compiler - ->write("try {\n") - ->indent() - ->subcompile($this->getNode('body')) - ->raw("\n") - ->write("return ('' === \$tmp = ob_get_contents()) ? '' : new Markup(\$tmp, \$this->env->getCharset());\n") - ->outdent() - ->write("} finally {\n") - ->indent() - ->write("ob_end_clean();\n") - ->outdent() - ->write("}\n") - ->outdent() - ->write("}\n\n") - ; - } -} - -class_alias('Twig\Node\MacroNode', 'Twig_Node_Macro'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/ModuleNode.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/ModuleNode.php deleted file mode 100644 index b23a342..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/ModuleNode.php +++ /dev/null @@ -1,472 +0,0 @@ - - * - * @final since Twig 2.4.0 - */ -class ModuleNode extends Node -{ - public function __construct(Node $body, AbstractExpression $parent = null, Node $blocks, Node $macros, Node $traits, $embeddedTemplates, Source $source) - { - if (__CLASS__ !== \get_class($this)) { - @trigger_error('Overriding '.__CLASS__.' is deprecated since Twig 2.4.0 and the class will be final in 3.0.', E_USER_DEPRECATED); - } - - $nodes = [ - 'body' => $body, - 'blocks' => $blocks, - 'macros' => $macros, - 'traits' => $traits, - 'display_start' => new Node(), - 'display_end' => new Node(), - 'constructor_start' => new Node(), - 'constructor_end' => new Node(), - 'class_end' => new Node(), - ]; - if (null !== $parent) { - $nodes['parent'] = $parent; - } - - // embedded templates are set as attributes so that they are only visited once by the visitors - parent::__construct($nodes, [ - 'index' => null, - 'embedded_templates' => $embeddedTemplates, - ], 1); - - // populate the template name of all node children - $this->setSourceContext($source); - } - - public function setIndex($index) - { - $this->setAttribute('index', $index); - } - - public function compile(Compiler $compiler) - { - $this->compileTemplate($compiler); - - foreach ($this->getAttribute('embedded_templates') as $template) { - $compiler->subcompile($template); - } - } - - protected function compileTemplate(Compiler $compiler) - { - if (!$this->getAttribute('index')) { - $compiler->write('compileClassHeader($compiler); - - $this->compileConstructor($compiler); - - $this->compileGetParent($compiler); - - $this->compileDisplay($compiler); - - $compiler->subcompile($this->getNode('blocks')); - - $this->compileMacros($compiler); - - $this->compileGetTemplateName($compiler); - - $this->compileIsTraitable($compiler); - - $this->compileDebugInfo($compiler); - - $this->compileGetSourceContext($compiler); - - $this->compileClassFooter($compiler); - } - - protected function compileGetParent(Compiler $compiler) - { - if (!$this->hasNode('parent')) { - return; - } - $parent = $this->getNode('parent'); - - $compiler - ->write("protected function doGetParent(array \$context)\n", "{\n") - ->indent() - ->addDebugInfo($parent) - ->write('return ') - ; - - if ($parent instanceof ConstantExpression) { - $compiler->subcompile($parent); - } else { - $compiler - ->raw('$this->loadTemplate(') - ->subcompile($parent) - ->raw(', ') - ->repr($this->getSourceContext()->getName()) - ->raw(', ') - ->repr($parent->getTemplateLine()) - ->raw(')') - ; - } - - $compiler - ->raw(";\n") - ->outdent() - ->write("}\n\n") - ; - } - - protected function compileClassHeader(Compiler $compiler) - { - $compiler - ->write("\n\n") - ; - if (!$this->getAttribute('index')) { - $compiler - ->write("use Twig\Environment;\n") - ->write("use Twig\Error\LoaderError;\n") - ->write("use Twig\Error\RuntimeError;\n") - ->write("use Twig\Extension\SandboxExtension;\n") - ->write("use Twig\Markup;\n") - ->write("use Twig\Sandbox\SecurityError;\n") - ->write("use Twig\Sandbox\SecurityNotAllowedTagError;\n") - ->write("use Twig\Sandbox\SecurityNotAllowedFilterError;\n") - ->write("use Twig\Sandbox\SecurityNotAllowedFunctionError;\n") - ->write("use Twig\Source;\n") - ->write("use Twig\Template;\n\n") - ; - } - $compiler - // if the template name contains */, add a blank to avoid a PHP parse error - ->write('/* '.str_replace('*/', '* /', $this->getSourceContext()->getName())." */\n") - ->write('class '.$compiler->getEnvironment()->getTemplateClass($this->getSourceContext()->getName(), $this->getAttribute('index'))) - ->raw(sprintf(" extends %s\n", $compiler->getEnvironment()->getBaseTemplateClass(false))) - ->write("{\n") - ->indent() - ->write("private \$source;\n") - ->write("private \$macros = [];\n\n") - ; - } - - protected function compileConstructor(Compiler $compiler) - { - $compiler - ->write("public function __construct(Environment \$env)\n", "{\n") - ->indent() - ->subcompile($this->getNode('constructor_start')) - ->write("parent::__construct(\$env);\n\n") - ->write("\$this->source = \$this->getSourceContext();\n\n") - ; - - // parent - if (!$this->hasNode('parent')) { - $compiler->write("\$this->parent = false;\n\n"); - } - - $countTraits = \count($this->getNode('traits')); - if ($countTraits) { - // traits - foreach ($this->getNode('traits') as $i => $trait) { - $node = $trait->getNode('template'); - - $compiler - ->addDebugInfo($node) - ->write(sprintf('$_trait_%s = $this->loadTemplate(', $i)) - ->subcompile($node) - ->raw(', ') - ->repr($node->getTemplateName()) - ->raw(', ') - ->repr($node->getTemplateLine()) - ->raw(");\n") - ->write(sprintf("if (!\$_trait_%s->isTraitable()) {\n", $i)) - ->indent() - ->write("throw new RuntimeError('Template \"'.") - ->subcompile($trait->getNode('template')) - ->raw(".'\" cannot be used as a trait.', ") - ->repr($node->getTemplateLine()) - ->raw(", \$this->source);\n") - ->outdent() - ->write("}\n") - ->write(sprintf("\$_trait_%s_blocks = \$_trait_%s->getBlocks();\n\n", $i, $i)) - ; - - foreach ($trait->getNode('targets') as $key => $value) { - $compiler - ->write(sprintf('if (!isset($_trait_%s_blocks[', $i)) - ->string($key) - ->raw("])) {\n") - ->indent() - ->write("throw new RuntimeError('Block ") - ->string($key) - ->raw(' is not defined in trait ') - ->subcompile($trait->getNode('template')) - ->raw(".', ") - ->repr($node->getTemplateLine()) - ->raw(", \$this->source);\n") - ->outdent() - ->write("}\n\n") - - ->write(sprintf('$_trait_%s_blocks[', $i)) - ->subcompile($value) - ->raw(sprintf('] = $_trait_%s_blocks[', $i)) - ->string($key) - ->raw(sprintf(']; unset($_trait_%s_blocks[', $i)) - ->string($key) - ->raw("]);\n\n") - ; - } - } - - if ($countTraits > 1) { - $compiler - ->write("\$this->traits = array_merge(\n") - ->indent() - ; - - for ($i = 0; $i < $countTraits; ++$i) { - $compiler - ->write(sprintf('$_trait_%s_blocks'.($i == $countTraits - 1 ? '' : ',')."\n", $i)) - ; - } - - $compiler - ->outdent() - ->write(");\n\n") - ; - } else { - $compiler - ->write("\$this->traits = \$_trait_0_blocks;\n\n") - ; - } - - $compiler - ->write("\$this->blocks = array_merge(\n") - ->indent() - ->write("\$this->traits,\n") - ->write("[\n") - ; - } else { - $compiler - ->write("\$this->blocks = [\n") - ; - } - - // blocks - $compiler - ->indent() - ; - - foreach ($this->getNode('blocks') as $name => $node) { - $compiler - ->write(sprintf("'%s' => [\$this, 'block_%s'],\n", $name, $name)) - ; - } - - if ($countTraits) { - $compiler - ->outdent() - ->write("]\n") - ->outdent() - ->write(");\n") - ; - } else { - $compiler - ->outdent() - ->write("];\n") - ; - } - - $compiler - ->subcompile($this->getNode('constructor_end')) - ->outdent() - ->write("}\n\n") - ; - } - - protected function compileDisplay(Compiler $compiler) - { - $compiler - ->write("protected function doDisplay(array \$context, array \$blocks = [])\n", "{\n") - ->indent() - ->write("\$macros = \$this->macros;\n") - ->subcompile($this->getNode('display_start')) - ->subcompile($this->getNode('body')) - ; - - if ($this->hasNode('parent')) { - $parent = $this->getNode('parent'); - - $compiler->addDebugInfo($parent); - if ($parent instanceof ConstantExpression) { - $compiler - ->write('$this->parent = $this->loadTemplate(') - ->subcompile($parent) - ->raw(', ') - ->repr($this->getSourceContext()->getName()) - ->raw(', ') - ->repr($parent->getTemplateLine()) - ->raw(");\n") - ; - $compiler->write('$this->parent'); - } else { - $compiler->write('$this->getParent($context)'); - } - $compiler->raw("->display(\$context, array_merge(\$this->blocks, \$blocks));\n"); - } - - $compiler - ->subcompile($this->getNode('display_end')) - ->outdent() - ->write("}\n\n") - ; - } - - protected function compileClassFooter(Compiler $compiler) - { - $compiler - ->subcompile($this->getNode('class_end')) - ->outdent() - ->write("}\n") - ; - } - - protected function compileMacros(Compiler $compiler) - { - $compiler->subcompile($this->getNode('macros')); - } - - protected function compileGetTemplateName(Compiler $compiler) - { - $compiler - ->write("public function getTemplateName()\n", "{\n") - ->indent() - ->write('return ') - ->repr($this->getSourceContext()->getName()) - ->raw(";\n") - ->outdent() - ->write("}\n\n") - ; - } - - protected function compileIsTraitable(Compiler $compiler) - { - // A template can be used as a trait if: - // * it has no parent - // * it has no macros - // * it has no body - // - // Put another way, a template can be used as a trait if it - // only contains blocks and use statements. - $traitable = !$this->hasNode('parent') && 0 === \count($this->getNode('macros')); - if ($traitable) { - if ($this->getNode('body') instanceof BodyNode) { - $nodes = $this->getNode('body')->getNode(0); - } else { - $nodes = $this->getNode('body'); - } - - if (!\count($nodes)) { - $nodes = new Node([$nodes]); - } - - foreach ($nodes as $node) { - if (!\count($node)) { - continue; - } - - if ($node instanceof TextNode && ctype_space($node->getAttribute('data'))) { - continue; - } - - if ($node instanceof BlockReferenceNode) { - continue; - } - - $traitable = false; - break; - } - } - - if ($traitable) { - return; - } - - $compiler - ->write("public function isTraitable()\n", "{\n") - ->indent() - ->write(sprintf("return %s;\n", $traitable ? 'true' : 'false')) - ->outdent() - ->write("}\n\n") - ; - } - - protected function compileDebugInfo(Compiler $compiler) - { - $compiler - ->write("public function getDebugInfo()\n", "{\n") - ->indent() - ->write(sprintf("return %s;\n", str_replace("\n", '', var_export(array_reverse($compiler->getDebugInfo(), true), true)))) - ->outdent() - ->write("}\n\n") - ; - } - - protected function compileGetSourceContext(Compiler $compiler) - { - $compiler - ->write("public function getSourceContext()\n", "{\n") - ->indent() - ->write('return new Source(') - ->string($compiler->getEnvironment()->isDebug() ? $this->getSourceContext()->getCode() : '') - ->raw(', ') - ->string($this->getSourceContext()->getName()) - ->raw(', ') - ->string($this->getSourceContext()->getPath()) - ->raw(");\n") - ->outdent() - ->write("}\n") - ; - } - - protected function compileLoadTemplate(Compiler $compiler, $node, $var) - { - if ($node instanceof ConstantExpression) { - $compiler - ->write(sprintf('%s = $this->loadTemplate(', $var)) - ->subcompile($node) - ->raw(', ') - ->repr($node->getTemplateName()) - ->raw(', ') - ->repr($node->getTemplateLine()) - ->raw(");\n") - ; - } else { - throw new \LogicException('Trait templates can only be constant nodes.'); - } - } -} - -class_alias('Twig\Node\ModuleNode', 'Twig_Node_Module'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Node.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/Node.php deleted file mode 100644 index 909a687..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/Node.php +++ /dev/null @@ -1,211 +0,0 @@ - - */ -class Node implements \Countable, \IteratorAggregate -{ - protected $nodes; - protected $attributes; - protected $lineno; - protected $tag; - - private $name; - private $sourceContext; - - /** - * @param array $nodes An array of named nodes - * @param array $attributes An array of attributes (should not be nodes) - * @param int $lineno The line number - * @param string $tag The tag name associated with the Node - */ - public function __construct(array $nodes = [], array $attributes = [], int $lineno = 0, string $tag = null) - { - foreach ($nodes as $name => $node) { - if (!$node instanceof self) { - throw new \InvalidArgumentException(sprintf('Using "%s" for the value of node "%s" of "%s" is not supported. You must pass a \Twig\Node\Node instance.', \is_object($node) ? \get_class($node) : (null === $node ? 'null' : \gettype($node)), $name, \get_class($this))); - } - } - $this->nodes = $nodes; - $this->attributes = $attributes; - $this->lineno = $lineno; - $this->tag = $tag; - } - - public function __toString() - { - $attributes = []; - foreach ($this->attributes as $name => $value) { - $attributes[] = sprintf('%s: %s', $name, str_replace("\n", '', var_export($value, true))); - } - - $repr = [\get_class($this).'('.implode(', ', $attributes)]; - - if (\count($this->nodes)) { - foreach ($this->nodes as $name => $node) { - $len = \strlen($name) + 4; - $noderepr = []; - foreach (explode("\n", (string) $node) as $line) { - $noderepr[] = str_repeat(' ', $len).$line; - } - - $repr[] = sprintf(' %s: %s', $name, ltrim(implode("\n", $noderepr))); - } - - $repr[] = ')'; - } else { - $repr[0] .= ')'; - } - - return implode("\n", $repr); - } - - public function compile(Compiler $compiler) - { - foreach ($this->nodes as $node) { - $node->compile($compiler); - } - } - - public function getTemplateLine() - { - return $this->lineno; - } - - public function getNodeTag() - { - return $this->tag; - } - - /** - * @return bool - */ - public function hasAttribute($name) - { - return \array_key_exists($name, $this->attributes); - } - - /** - * @return mixed - */ - public function getAttribute($name) - { - if (!\array_key_exists($name, $this->attributes)) { - throw new \LogicException(sprintf('Attribute "%s" does not exist for Node "%s".', $name, \get_class($this))); - } - - return $this->attributes[$name]; - } - - /** - * @param string $name - * @param mixed $value - */ - public function setAttribute($name, $value) - { - $this->attributes[$name] = $value; - } - - public function removeAttribute($name) - { - unset($this->attributes[$name]); - } - - /** - * @return bool - */ - public function hasNode($name) - { - return isset($this->nodes[$name]); - } - - /** - * @return Node - */ - public function getNode($name) - { - if (!isset($this->nodes[$name])) { - throw new \LogicException(sprintf('Node "%s" does not exist for Node "%s".', $name, \get_class($this))); - } - - return $this->nodes[$name]; - } - - public function setNode($name, self $node) - { - $this->nodes[$name] = $node; - } - - public function removeNode($name) - { - unset($this->nodes[$name]); - } - - public function count() - { - return \count($this->nodes); - } - - public function getIterator() - { - return new \ArrayIterator($this->nodes); - } - - /** - * @deprecated since 2.8 (to be removed in 3.0) - */ - public function setTemplateName($name/*, $triggerDeprecation = true */) - { - $triggerDeprecation = 2 > \func_num_args() || \func_get_arg(1); - if ($triggerDeprecation) { - @trigger_error('The '.__METHOD__.' method is deprecated since version 2.8 and will be removed in 3.0. Use setSourceContext() instead.', E_USER_DEPRECATED); - } - - $this->name = $name; - foreach ($this->nodes as $node) { - $node->setTemplateName($name, $triggerDeprecation); - } - } - - public function getTemplateName() - { - return $this->sourceContext ? $this->sourceContext->getName() : null; - } - - public function setSourceContext(Source $source) - { - $this->sourceContext = $source; - foreach ($this->nodes as $node) { - $node->setSourceContext($source); - } - - $this->setTemplateName($source->getName(), false); - } - - public function getSourceContext() - { - return $this->sourceContext; - } -} - -class_alias('Twig\Node\Node', 'Twig_Node'); - -// Ensure that the aliased name is loaded to keep BC for classes implementing the typehint with the old aliased name. -class_exists('Twig\Compiler'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/NodeCaptureInterface.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/NodeCaptureInterface.php deleted file mode 100644 index 474003f..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/NodeCaptureInterface.php +++ /dev/null @@ -1,23 +0,0 @@ - - */ -interface NodeCaptureInterface -{ -} - -class_alias('Twig\Node\NodeCaptureInterface', 'Twig_NodeCaptureInterface'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/NodeOutputInterface.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/NodeOutputInterface.php deleted file mode 100644 index 8b046ee..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/NodeOutputInterface.php +++ /dev/null @@ -1,23 +0,0 @@ - - */ -interface NodeOutputInterface -{ -} - -class_alias('Twig\Node\NodeOutputInterface', 'Twig_NodeOutputInterface'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/PrintNode.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/PrintNode.php deleted file mode 100644 index fcc086a..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/PrintNode.php +++ /dev/null @@ -1,41 +0,0 @@ - - */ -class PrintNode extends Node implements NodeOutputInterface -{ - public function __construct(AbstractExpression $expr, int $lineno, string $tag = null) - { - parent::__construct(['expr' => $expr], [], $lineno, $tag); - } - - public function compile(Compiler $compiler) - { - $compiler - ->addDebugInfo($this) - ->write('echo ') - ->subcompile($this->getNode('expr')) - ->raw(";\n") - ; - } -} - -class_alias('Twig\Node\PrintNode', 'Twig_Node_Print'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/SandboxNode.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/SandboxNode.php deleted file mode 100644 index fe59313..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/SandboxNode.php +++ /dev/null @@ -1,47 +0,0 @@ - - */ -class SandboxNode extends Node -{ - public function __construct(Node $body, int $lineno, string $tag = null) - { - parent::__construct(['body' => $body], [], $lineno, $tag); - } - - public function compile(Compiler $compiler) - { - $compiler - ->addDebugInfo($this) - ->write("if (!\$alreadySandboxed = \$this->sandbox->isSandboxed()) {\n") - ->indent() - ->write("\$this->sandbox->enableSandbox();\n") - ->outdent() - ->write("}\n") - ->subcompile($this->getNode('body')) - ->write("if (!\$alreadySandboxed) {\n") - ->indent() - ->write("\$this->sandbox->disableSandbox();\n") - ->outdent() - ->write("}\n") - ; - } -} - -class_alias('Twig\Node\SandboxNode', 'Twig_Node_Sandbox'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/SandboxedPrintNode.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/SandboxedPrintNode.php deleted file mode 100644 index 54e92e6..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/SandboxedPrintNode.php +++ /dev/null @@ -1,54 +0,0 @@ - - */ -class SandboxedPrintNode extends PrintNode -{ - public function compile(Compiler $compiler) - { - $compiler - ->addDebugInfo($this) - ->write('echo ') - ; - $expr = $this->getNode('expr'); - if ($expr instanceof ConstantExpression) { - $compiler - ->subcompile($expr) - ->raw(";\n") - ; - } else { - $compiler - ->write('$this->extensions[SandboxExtension::class]->ensureToStringAllowed(') - ->subcompile($expr) - ->raw(', ') - ->repr($expr->getTemplateLine()) - ->raw(", \$this->source);\n") - ; - } - } -} - -class_alias('Twig\Node\SandboxedPrintNode', 'Twig_Node_SandboxedPrint'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/SetNode.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/SetNode.php deleted file mode 100644 index 3cf4615..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/SetNode.php +++ /dev/null @@ -1,107 +0,0 @@ - - */ -class SetNode extends Node implements NodeCaptureInterface -{ - public function __construct(bool $capture, Node $names, Node $values, int $lineno, string $tag = null) - { - parent::__construct(['names' => $names, 'values' => $values], ['capture' => $capture, 'safe' => false], $lineno, $tag); - - /* - * Optimizes the node when capture is used for a large block of text. - * - * {% set foo %}foo{% endset %} is compiled to $context['foo'] = new Twig\Markup("foo"); - */ - if ($this->getAttribute('capture')) { - $this->setAttribute('safe', true); - - $values = $this->getNode('values'); - if ($values instanceof TextNode) { - $this->setNode('values', new ConstantExpression($values->getAttribute('data'), $values->getTemplateLine())); - $this->setAttribute('capture', false); - } - } - } - - public function compile(Compiler $compiler) - { - $compiler->addDebugInfo($this); - - if (\count($this->getNode('names')) > 1) { - $compiler->write('list('); - foreach ($this->getNode('names') as $idx => $node) { - if ($idx) { - $compiler->raw(', '); - } - - $compiler->subcompile($node); - } - $compiler->raw(')'); - } else { - if ($this->getAttribute('capture')) { - if ($compiler->getEnvironment()->isDebug()) { - $compiler->write("ob_start();\n"); - } else { - $compiler->write("ob_start(function () { return ''; });\n"); - } - $compiler - ->subcompile($this->getNode('values')) - ; - } - - $compiler->subcompile($this->getNode('names'), false); - - if ($this->getAttribute('capture')) { - $compiler->raw(" = ('' === \$tmp = ob_get_clean()) ? '' : new Markup(\$tmp, \$this->env->getCharset())"); - } - } - - if (!$this->getAttribute('capture')) { - $compiler->raw(' = '); - - if (\count($this->getNode('names')) > 1) { - $compiler->write('['); - foreach ($this->getNode('values') as $idx => $value) { - if ($idx) { - $compiler->raw(', '); - } - - $compiler->subcompile($value); - } - $compiler->raw(']'); - } else { - if ($this->getAttribute('safe')) { - $compiler - ->raw("('' === \$tmp = ") - ->subcompile($this->getNode('values')) - ->raw(") ? '' : new Markup(\$tmp, \$this->env->getCharset())") - ; - } else { - $compiler->subcompile($this->getNode('values')); - } - } - } - - $compiler->raw(";\n"); - } -} - -class_alias('Twig\Node\SetNode', 'Twig_Node_Set'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/SpacelessNode.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/SpacelessNode.php deleted file mode 100644 index 8fc4a2d..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/SpacelessNode.php +++ /dev/null @@ -1,49 +0,0 @@ - - */ -class SpacelessNode extends Node implements NodeOutputInterface -{ - public function __construct(Node $body, int $lineno, string $tag = 'spaceless') - { - parent::__construct(['body' => $body], [], $lineno, $tag); - } - - public function compile(Compiler $compiler) - { - $compiler - ->addDebugInfo($this) - ; - if ($compiler->getEnvironment()->isDebug()) { - $compiler->write("ob_start();\n"); - } else { - $compiler->write("ob_start(function () { return ''; });\n"); - } - $compiler - ->subcompile($this->getNode('body')) - ->write("echo trim(preg_replace('/>\s+<', ob_get_clean()));\n") - ; - } -} - -class_alias('Twig\Node\SpacelessNode', 'Twig_Node_Spaceless'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/TextNode.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/TextNode.php deleted file mode 100644 index 85640a5..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/TextNode.php +++ /dev/null @@ -1,40 +0,0 @@ - - */ -class TextNode extends Node implements NodeOutputInterface -{ - public function __construct(string $data, int $lineno) - { - parent::__construct([], ['data' => $data], $lineno); - } - - public function compile(Compiler $compiler) - { - $compiler - ->addDebugInfo($this) - ->write('echo ') - ->string($this->getAttribute('data')) - ->raw(";\n") - ; - } -} - -class_alias('Twig\Node\TextNode', 'Twig_Node_Text'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Node/WithNode.php b/srcs/phpmyadmin/vendor/twig/twig/src/Node/WithNode.php deleted file mode 100644 index 74d1ea0..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Node/WithNode.php +++ /dev/null @@ -1,72 +0,0 @@ - - */ -class WithNode extends Node -{ - public function __construct(Node $body, Node $variables = null, bool $only = false, int $lineno, string $tag = null) - { - $nodes = ['body' => $body]; - if (null !== $variables) { - $nodes['variables'] = $variables; - } - - parent::__construct($nodes, ['only' => $only], $lineno, $tag); - } - - public function compile(Compiler $compiler) - { - $compiler->addDebugInfo($this); - - if ($this->hasNode('variables')) { - $node = $this->getNode('variables'); - $varsName = $compiler->getVarName(); - $compiler - ->write(sprintf('$%s = ', $varsName)) - ->subcompile($node) - ->raw(";\n") - ->write(sprintf("if (!twig_test_iterable(\$%s)) {\n", $varsName)) - ->indent() - ->write("throw new RuntimeError('Variables passed to the \"with\" tag must be a hash.', ") - ->repr($node->getTemplateLine()) - ->raw(", \$this->getSourceContext());\n") - ->outdent() - ->write("}\n") - ->write(sprintf("\$%s = twig_to_array(\$%s);\n", $varsName, $varsName)) - ; - - if ($this->getAttribute('only')) { - $compiler->write("\$context = ['_parent' => \$context];\n"); - } else { - $compiler->write("\$context['_parent'] = \$context;\n"); - } - - $compiler->write(sprintf("\$context = \$this->env->mergeGlobals(array_merge(\$context, \$%s));\n", $varsName)); - } else { - $compiler->write("\$context['_parent'] = \$context;\n"); - } - - $compiler - ->subcompile($this->getNode('body')) - ->write("\$context = \$context['_parent'];\n") - ; - } -} - -class_alias('Twig\Node\WithNode', 'Twig_Node_With'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/NodeTraverser.php b/srcs/phpmyadmin/vendor/twig/twig/src/NodeTraverser.php deleted file mode 100644 index 625b049..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/NodeTraverser.php +++ /dev/null @@ -1,85 +0,0 @@ - - */ -final class NodeTraverser -{ - private $env; - private $visitors = []; - - /** - * @param NodeVisitorInterface[] $visitors - */ - public function __construct(Environment $env, array $visitors = []) - { - $this->env = $env; - foreach ($visitors as $visitor) { - $this->addVisitor($visitor); - } - } - - public function addVisitor(NodeVisitorInterface $visitor) - { - $this->visitors[$visitor->getPriority()][] = $visitor; - } - - /** - * Traverses a node and calls the registered visitors. - */ - public function traverse(Node $node): Node - { - ksort($this->visitors); - foreach ($this->visitors as $visitors) { - foreach ($visitors as $visitor) { - $node = $this->traverseForVisitor($visitor, $node); - } - } - - return $node; - } - - /** - * @return Node|null - */ - private function traverseForVisitor(NodeVisitorInterface $visitor, Node $node) - { - $node = $visitor->enterNode($node, $this->env); - - foreach ($node as $k => $n) { - if (false !== ($m = $this->traverseForVisitor($visitor, $n)) && null !== $m) { - if ($m !== $n) { - $node->setNode($k, $m); - } - } else { - if (false === $m) { - @trigger_error('Returning "false" to remove a Node from NodeVisitorInterface::leaveNode() is deprecated since Twig version 2.9; return "null" instead.', E_USER_DEPRECATED); - } - - $node->removeNode($k); - } - } - - return $visitor->leaveNode($node, $this->env); - } -} - -class_alias('Twig\NodeTraverser', 'Twig_NodeTraverser'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/NodeVisitor/AbstractNodeVisitor.php b/srcs/phpmyadmin/vendor/twig/twig/src/NodeVisitor/AbstractNodeVisitor.php deleted file mode 100644 index 9c6cb12..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/NodeVisitor/AbstractNodeVisitor.php +++ /dev/null @@ -1,51 +0,0 @@ - - */ -abstract class AbstractNodeVisitor implements NodeVisitorInterface -{ - final public function enterNode(Node $node, Environment $env) - { - return $this->doEnterNode($node, $env); - } - - final public function leaveNode(Node $node, Environment $env) - { - return $this->doLeaveNode($node, $env); - } - - /** - * Called before child nodes are visited. - * - * @return Node The modified node - */ - abstract protected function doEnterNode(Node $node, Environment $env); - - /** - * Called after child nodes are visited. - * - * @return Node|null The modified node or null if the node must be removed - */ - abstract protected function doLeaveNode(Node $node, Environment $env); -} - -class_alias('Twig\NodeVisitor\AbstractNodeVisitor', 'Twig_BaseNodeVisitor'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/NodeVisitor/EscaperNodeVisitor.php b/srcs/phpmyadmin/vendor/twig/twig/src/NodeVisitor/EscaperNodeVisitor.php deleted file mode 100644 index bfbfdc9..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/NodeVisitor/EscaperNodeVisitor.php +++ /dev/null @@ -1,208 +0,0 @@ - - */ -final class EscaperNodeVisitor extends AbstractNodeVisitor -{ - private $statusStack = []; - private $blocks = []; - private $safeAnalysis; - private $traverser; - private $defaultStrategy = false; - private $safeVars = []; - - public function __construct() - { - $this->safeAnalysis = new SafeAnalysisNodeVisitor(); - } - - protected function doEnterNode(Node $node, Environment $env) - { - if ($node instanceof ModuleNode) { - if ($env->hasExtension(EscaperExtension::class) && $defaultStrategy = $env->getExtension(EscaperExtension::class)->getDefaultStrategy($node->getTemplateName())) { - $this->defaultStrategy = $defaultStrategy; - } - $this->safeVars = []; - $this->blocks = []; - } elseif ($node instanceof AutoEscapeNode) { - $this->statusStack[] = $node->getAttribute('value'); - } elseif ($node instanceof BlockNode) { - $this->statusStack[] = isset($this->blocks[$node->getAttribute('name')]) ? $this->blocks[$node->getAttribute('name')] : $this->needEscaping($env); - } elseif ($node instanceof ImportNode) { - $this->safeVars[] = $node->getNode('var')->getAttribute('name'); - } - - return $node; - } - - protected function doLeaveNode(Node $node, Environment $env) - { - if ($node instanceof ModuleNode) { - $this->defaultStrategy = false; - $this->safeVars = []; - $this->blocks = []; - } elseif ($node instanceof FilterExpression) { - return $this->preEscapeFilterNode($node, $env); - } elseif ($node instanceof PrintNode && false !== $type = $this->needEscaping($env)) { - $expression = $node->getNode('expr'); - if ($expression instanceof ConditionalExpression && $this->shouldUnwrapConditional($expression, $env, $type)) { - return new DoNode($this->unwrapConditional($expression, $env, $type), $expression->getTemplateLine()); - } - - return $this->escapePrintNode($node, $env, $type); - } - - if ($node instanceof AutoEscapeNode || $node instanceof BlockNode) { - array_pop($this->statusStack); - } elseif ($node instanceof BlockReferenceNode) { - $this->blocks[$node->getAttribute('name')] = $this->needEscaping($env); - } - - return $node; - } - - private function shouldUnwrapConditional(ConditionalExpression $expression, Environment $env, $type) - { - $expr2Safe = $this->isSafeFor($type, $expression->getNode('expr2'), $env); - $expr3Safe = $this->isSafeFor($type, $expression->getNode('expr3'), $env); - - return $expr2Safe !== $expr3Safe; - } - - private function unwrapConditional(ConditionalExpression $expression, Environment $env, $type) - { - // convert "echo a ? b : c" to "a ? echo b : echo c" recursively - $expr2 = $expression->getNode('expr2'); - if ($expr2 instanceof ConditionalExpression && $this->shouldUnwrapConditional($expr2, $env, $type)) { - $expr2 = $this->unwrapConditional($expr2, $env, $type); - } else { - $expr2 = $this->escapeInlinePrintNode(new InlinePrint($expr2, $expr2->getTemplateLine()), $env, $type); - } - $expr3 = $expression->getNode('expr3'); - if ($expr3 instanceof ConditionalExpression && $this->shouldUnwrapConditional($expr3, $env, $type)) { - $expr3 = $this->unwrapConditional($expr3, $env, $type); - } else { - $expr3 = $this->escapeInlinePrintNode(new InlinePrint($expr3, $expr3->getTemplateLine()), $env, $type); - } - - return new ConditionalExpression($expression->getNode('expr1'), $expr2, $expr3, $expression->getTemplateLine()); - } - - private function escapeInlinePrintNode(InlinePrint $node, Environment $env, $type) - { - $expression = $node->getNode('node'); - - if ($this->isSafeFor($type, $expression, $env)) { - return $node; - } - - return new InlinePrint($this->getEscaperFilter($type, $expression), $node->getTemplateLine()); - } - - private function escapePrintNode(PrintNode $node, Environment $env, $type) - { - if (false === $type) { - return $node; - } - - $expression = $node->getNode('expr'); - - if ($this->isSafeFor($type, $expression, $env)) { - return $node; - } - - $class = \get_class($node); - - return new $class($this->getEscaperFilter($type, $expression), $node->getTemplateLine()); - } - - private function preEscapeFilterNode(FilterExpression $filter, Environment $env) - { - $name = $filter->getNode('filter')->getAttribute('value'); - - $type = $env->getFilter($name)->getPreEscape(); - if (null === $type) { - return $filter; - } - - $node = $filter->getNode('node'); - if ($this->isSafeFor($type, $node, $env)) { - return $filter; - } - - $filter->setNode('node', $this->getEscaperFilter($type, $node)); - - return $filter; - } - - private function isSafeFor($type, Node $expression, $env) - { - $safe = $this->safeAnalysis->getSafe($expression); - - if (null === $safe) { - if (null === $this->traverser) { - $this->traverser = new NodeTraverser($env, [$this->safeAnalysis]); - } - - $this->safeAnalysis->setSafeVars($this->safeVars); - - $this->traverser->traverse($expression); - $safe = $this->safeAnalysis->getSafe($expression); - } - - return \in_array($type, $safe) || \in_array('all', $safe); - } - - private function needEscaping(Environment $env) - { - if (\count($this->statusStack)) { - return $this->statusStack[\count($this->statusStack) - 1]; - } - - return $this->defaultStrategy ? $this->defaultStrategy : false; - } - - private function getEscaperFilter(string $type, Node $node): FilterExpression - { - $line = $node->getTemplateLine(); - $name = new ConstantExpression('escape', $line); - $args = new Node([new ConstantExpression((string) $type, $line), new ConstantExpression(null, $line), new ConstantExpression(true, $line)]); - - return new FilterExpression($node, $name, $args, $line); - } - - public function getPriority() - { - return 0; - } -} - -class_alias('Twig\NodeVisitor\EscaperNodeVisitor', 'Twig_NodeVisitor_Escaper'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/NodeVisitor/MacroAutoImportNodeVisitor.php b/srcs/phpmyadmin/vendor/twig/twig/src/NodeVisitor/MacroAutoImportNodeVisitor.php deleted file mode 100644 index f41d463..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/NodeVisitor/MacroAutoImportNodeVisitor.php +++ /dev/null @@ -1,72 +0,0 @@ - - */ -final class MacroAutoImportNodeVisitor implements NodeVisitorInterface -{ - private $inAModule = false; - private $hasMacroCalls = false; - - public function enterNode(Node $node, Environment $env) - { - if ($node instanceof ModuleNode) { - $this->inAModule = true; - $this->hasMacroCalls = false; - } - - return $node; - } - - public function leaveNode(Node $node, Environment $env) - { - if ($node instanceof ModuleNode) { - $this->inAModule = false; - if ($this->hasMacroCalls) { - $node->getNode('constructor_end')->setNode('_auto_macro_import', new ImportNode(new NameExpression('_self', 0), new AssignNameExpression('_self', 0), 0, 'import', true)); - } - } elseif ($this->inAModule) { - if ( - $node instanceof GetAttrExpression && - $node->getNode('node') instanceof NameExpression && - '_self' === $node->getNode('node')->getAttribute('name') && - $node->getNode('attribute') instanceof ConstantExpression - ) { - $this->hasMacroCalls = true; - - $name = $node->getNode('attribute')->getAttribute('value'); - $node = new MethodCallExpression($node->getNode('node'), 'macro_'.$name, $node->getNode('arguments'), $node->getTemplateLine()); - $node->setAttribute('safe', true); - } - } - - return $node; - } - - public function getPriority() - { - // we must be ran before auto-escaping - return -10; - } -} diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/NodeVisitor/NodeVisitorInterface.php b/srcs/phpmyadmin/vendor/twig/twig/src/NodeVisitor/NodeVisitorInterface.php deleted file mode 100644 index e0ffae2..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/NodeVisitor/NodeVisitorInterface.php +++ /dev/null @@ -1,51 +0,0 @@ - - */ -interface NodeVisitorInterface -{ - /** - * Called before child nodes are visited. - * - * @return Node The modified node - */ - public function enterNode(Node $node, Environment $env); - - /** - * Called after child nodes are visited. - * - * @return Node|null The modified node or null if the node must be removed - */ - public function leaveNode(Node $node, Environment $env); - - /** - * Returns the priority for this visitor. - * - * Priority should be between -10 and 10 (0 is the default). - * - * @return int The priority level - */ - public function getPriority(); -} - -class_alias('Twig\NodeVisitor\NodeVisitorInterface', 'Twig_NodeVisitorInterface'); - -// Ensure that the aliased name is loaded to keep BC for classes implementing the typehint with the old aliased name. -class_exists('Twig\Environment'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/NodeVisitor/OptimizerNodeVisitor.php b/srcs/phpmyadmin/vendor/twig/twig/src/NodeVisitor/OptimizerNodeVisitor.php deleted file mode 100644 index 9f7cae4..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/NodeVisitor/OptimizerNodeVisitor.php +++ /dev/null @@ -1,219 +0,0 @@ - - */ -final class OptimizerNodeVisitor extends AbstractNodeVisitor -{ - const OPTIMIZE_ALL = -1; - const OPTIMIZE_NONE = 0; - const OPTIMIZE_FOR = 2; - const OPTIMIZE_RAW_FILTER = 4; - // obsolete, does not do anything - const OPTIMIZE_VAR_ACCESS = 8; - - private $loops = []; - private $loopsTargets = []; - private $optimizers; - - /** - * @param int $optimizers The optimizer mode - */ - public function __construct(int $optimizers = -1) - { - if (!\is_int($optimizers) || $optimizers > (self::OPTIMIZE_FOR | self::OPTIMIZE_RAW_FILTER | self::OPTIMIZE_VAR_ACCESS)) { - throw new \InvalidArgumentException(sprintf('Optimizer mode "%s" is not valid.', $optimizers)); - } - - $this->optimizers = $optimizers; - } - - protected function doEnterNode(Node $node, Environment $env) - { - if (self::OPTIMIZE_FOR === (self::OPTIMIZE_FOR & $this->optimizers)) { - $this->enterOptimizeFor($node, $env); - } - - return $node; - } - - protected function doLeaveNode(Node $node, Environment $env) - { - if (self::OPTIMIZE_FOR === (self::OPTIMIZE_FOR & $this->optimizers)) { - $this->leaveOptimizeFor($node, $env); - } - - if (self::OPTIMIZE_RAW_FILTER === (self::OPTIMIZE_RAW_FILTER & $this->optimizers)) { - $node = $this->optimizeRawFilter($node, $env); - } - - $node = $this->optimizePrintNode($node, $env); - - return $node; - } - - /** - * Optimizes print nodes. - * - * It replaces: - * - * * "echo $this->render(Parent)Block()" with "$this->display(Parent)Block()" - */ - private function optimizePrintNode(Node $node, Environment $env): Node - { - if (!$node instanceof PrintNode) { - return $node; - } - - $exprNode = $node->getNode('expr'); - if ( - $exprNode instanceof BlockReferenceExpression || - $exprNode instanceof ParentExpression - ) { - $exprNode->setAttribute('output', true); - - return $exprNode; - } - - return $node; - } - - /** - * Removes "raw" filters. - */ - private function optimizeRawFilter(Node $node, Environment $env): Node - { - if ($node instanceof FilterExpression && 'raw' == $node->getNode('filter')->getAttribute('value')) { - return $node->getNode('node'); - } - - return $node; - } - - /** - * Optimizes "for" tag by removing the "loop" variable creation whenever possible. - */ - private function enterOptimizeFor(Node $node, Environment $env) - { - if ($node instanceof ForNode) { - // disable the loop variable by default - $node->setAttribute('with_loop', false); - array_unshift($this->loops, $node); - array_unshift($this->loopsTargets, $node->getNode('value_target')->getAttribute('name')); - array_unshift($this->loopsTargets, $node->getNode('key_target')->getAttribute('name')); - } elseif (!$this->loops) { - // we are outside a loop - return; - } - - // when do we need to add the loop variable back? - - // the loop variable is referenced for the current loop - elseif ($node instanceof NameExpression && 'loop' === $node->getAttribute('name')) { - $node->setAttribute('always_defined', true); - $this->addLoopToCurrent(); - } - - // optimize access to loop targets - elseif ($node instanceof NameExpression && \in_array($node->getAttribute('name'), $this->loopsTargets)) { - $node->setAttribute('always_defined', true); - } - - // block reference - elseif ($node instanceof BlockReferenceNode || $node instanceof BlockReferenceExpression) { - $this->addLoopToCurrent(); - } - - // include without the only attribute - elseif ($node instanceof IncludeNode && !$node->getAttribute('only')) { - $this->addLoopToAll(); - } - - // include function without the with_context=false parameter - elseif ($node instanceof FunctionExpression - && 'include' === $node->getAttribute('name') - && (!$node->getNode('arguments')->hasNode('with_context') - || false !== $node->getNode('arguments')->getNode('with_context')->getAttribute('value') - ) - ) { - $this->addLoopToAll(); - } - - // the loop variable is referenced via an attribute - elseif ($node instanceof GetAttrExpression - && (!$node->getNode('attribute') instanceof ConstantExpression - || 'parent' === $node->getNode('attribute')->getAttribute('value') - ) - && (true === $this->loops[0]->getAttribute('with_loop') - || ($node->getNode('node') instanceof NameExpression - && 'loop' === $node->getNode('node')->getAttribute('name') - ) - ) - ) { - $this->addLoopToAll(); - } - } - - /** - * Optimizes "for" tag by removing the "loop" variable creation whenever possible. - */ - private function leaveOptimizeFor(Node $node, Environment $env) - { - if ($node instanceof ForNode) { - array_shift($this->loops); - array_shift($this->loopsTargets); - array_shift($this->loopsTargets); - } - } - - private function addLoopToCurrent() - { - $this->loops[0]->setAttribute('with_loop', true); - } - - private function addLoopToAll() - { - foreach ($this->loops as $loop) { - $loop->setAttribute('with_loop', true); - } - } - - public function getPriority() - { - return 255; - } -} - -class_alias('Twig\NodeVisitor\OptimizerNodeVisitor', 'Twig_NodeVisitor_Optimizer'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/NodeVisitor/SafeAnalysisNodeVisitor.php b/srcs/phpmyadmin/vendor/twig/twig/src/NodeVisitor/SafeAnalysisNodeVisitor.php deleted file mode 100644 index 02a2af4..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/NodeVisitor/SafeAnalysisNodeVisitor.php +++ /dev/null @@ -1,160 +0,0 @@ -safeVars = $safeVars; - } - - public function getSafe(Node $node) - { - $hash = spl_object_hash($node); - if (!isset($this->data[$hash])) { - return; - } - - foreach ($this->data[$hash] as $bucket) { - if ($bucket['key'] !== $node) { - continue; - } - - if (\in_array('html_attr', $bucket['value'])) { - $bucket['value'][] = 'html'; - } - - return $bucket['value']; - } - } - - private function setSafe(Node $node, array $safe) - { - $hash = spl_object_hash($node); - if (isset($this->data[$hash])) { - foreach ($this->data[$hash] as &$bucket) { - if ($bucket['key'] === $node) { - $bucket['value'] = $safe; - - return; - } - } - } - $this->data[$hash][] = [ - 'key' => $node, - 'value' => $safe, - ]; - } - - protected function doEnterNode(Node $node, Environment $env) - { - return $node; - } - - protected function doLeaveNode(Node $node, Environment $env) - { - if ($node instanceof ConstantExpression) { - // constants are marked safe for all - $this->setSafe($node, ['all']); - } elseif ($node instanceof BlockReferenceExpression) { - // blocks are safe by definition - $this->setSafe($node, ['all']); - } elseif ($node instanceof ParentExpression) { - // parent block is safe by definition - $this->setSafe($node, ['all']); - } elseif ($node instanceof ConditionalExpression) { - // intersect safeness of both operands - $safe = $this->intersectSafe($this->getSafe($node->getNode('expr2')), $this->getSafe($node->getNode('expr3'))); - $this->setSafe($node, $safe); - } elseif ($node instanceof FilterExpression) { - // filter expression is safe when the filter is safe - $name = $node->getNode('filter')->getAttribute('value'); - $args = $node->getNode('arguments'); - if (false !== $filter = $env->getFilter($name)) { - $safe = $filter->getSafe($args); - if (null === $safe) { - $safe = $this->intersectSafe($this->getSafe($node->getNode('node')), $filter->getPreservesSafety()); - } - $this->setSafe($node, $safe); - } else { - $this->setSafe($node, []); - } - } elseif ($node instanceof FunctionExpression) { - // function expression is safe when the function is safe - $name = $node->getAttribute('name'); - $args = $node->getNode('arguments'); - $function = $env->getFunction($name); - if (false !== $function) { - $this->setSafe($node, $function->getSafe($args)); - } else { - $this->setSafe($node, []); - } - } elseif ($node instanceof MethodCallExpression) { - if ($node->getAttribute('safe')) { - $this->setSafe($node, ['all']); - } else { - $this->setSafe($node, []); - } - } elseif ($node instanceof GetAttrExpression && $node->getNode('node') instanceof NameExpression) { - $name = $node->getNode('node')->getAttribute('name'); - if (\in_array($name, $this->safeVars)) { - $this->setSafe($node, ['all']); - } else { - $this->setSafe($node, []); - } - } else { - $this->setSafe($node, []); - } - - return $node; - } - - private function intersectSafe(array $a = null, array $b = null): array - { - if (null === $a || null === $b) { - return []; - } - - if (\in_array('all', $a)) { - return $b; - } - - if (\in_array('all', $b)) { - return $a; - } - - return array_intersect($a, $b); - } - - public function getPriority() - { - return 0; - } -} - -class_alias('Twig\NodeVisitor\SafeAnalysisNodeVisitor', 'Twig_NodeVisitor_SafeAnalysis'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/NodeVisitor/SandboxNodeVisitor.php b/srcs/phpmyadmin/vendor/twig/twig/src/NodeVisitor/SandboxNodeVisitor.php deleted file mode 100644 index 3e8d0bc..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/NodeVisitor/SandboxNodeVisitor.php +++ /dev/null @@ -1,135 +0,0 @@ - - */ -final class SandboxNodeVisitor extends AbstractNodeVisitor -{ - private $inAModule = false; - private $tags; - private $filters; - private $functions; - - private $needsToStringWrap = false; - - protected function doEnterNode(Node $node, Environment $env) - { - if ($node instanceof ModuleNode) { - $this->inAModule = true; - $this->tags = []; - $this->filters = []; - $this->functions = []; - - return $node; - } elseif ($this->inAModule) { - // look for tags - if ($node->getNodeTag() && !isset($this->tags[$node->getNodeTag()])) { - $this->tags[$node->getNodeTag()] = $node; - } - - // look for filters - if ($node instanceof FilterExpression && !isset($this->filters[$node->getNode('filter')->getAttribute('value')])) { - $this->filters[$node->getNode('filter')->getAttribute('value')] = $node; - } - - // look for functions - if ($node instanceof FunctionExpression && !isset($this->functions[$node->getAttribute('name')])) { - $this->functions[$node->getAttribute('name')] = $node; - } - - // the .. operator is equivalent to the range() function - if ($node instanceof RangeBinary && !isset($this->functions['range'])) { - $this->functions['range'] = $node; - } - - if ($node instanceof PrintNode) { - $this->needsToStringWrap = true; - $this->wrapNode($node, 'expr'); - } - - if ($node instanceof SetNode && !$node->getAttribute('capture')) { - $this->needsToStringWrap = true; - } - - // wrap outer nodes that can implicitly call __toString() - if ($this->needsToStringWrap) { - if ($node instanceof ConcatBinary) { - $this->wrapNode($node, 'left'); - $this->wrapNode($node, 'right'); - } - if ($node instanceof FilterExpression) { - $this->wrapNode($node, 'node'); - $this->wrapArrayNode($node, 'arguments'); - } - if ($node instanceof FunctionExpression) { - $this->wrapArrayNode($node, 'arguments'); - } - } - } - - return $node; - } - - protected function doLeaveNode(Node $node, Environment $env) - { - if ($node instanceof ModuleNode) { - $this->inAModule = false; - - $node->getNode('constructor_end')->setNode('_security_check', new Node([new CheckSecurityNode($this->filters, $this->tags, $this->functions), $node->getNode('display_start')])); - } elseif ($this->inAModule) { - if ($node instanceof PrintNode || $node instanceof SetNode) { - $this->needsToStringWrap = false; - } - } - - return $node; - } - - private function wrapNode(Node $node, string $name) - { - $expr = $node->getNode($name); - if ($expr instanceof NameExpression || $expr instanceof GetAttrExpression) { - $node->setNode($name, new CheckToStringNode($expr)); - } - } - - private function wrapArrayNode(Node $node, string $name) - { - $args = $node->getNode($name); - foreach ($args as $name => $_) { - $this->wrapNode($args, $name); - } - } - - public function getPriority() - { - return 0; - } -} - -class_alias('Twig\NodeVisitor\SandboxNodeVisitor', 'Twig_NodeVisitor_Sandbox'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Parser.php b/srcs/phpmyadmin/vendor/twig/twig/src/Parser.php deleted file mode 100644 index 8a937e3..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Parser.php +++ /dev/null @@ -1,394 +0,0 @@ - - */ -class Parser -{ - private $stack = []; - private $stream; - private $parent; - private $handlers; - private $visitors; - private $expressionParser; - private $blocks; - private $blockStack; - private $macros; - private $env; - private $importedSymbols; - private $traits; - private $embeddedTemplates = []; - private $varNameSalt = 0; - - public function __construct(Environment $env) - { - $this->env = $env; - } - - public function getVarName() - { - return sprintf('__internal_%s', hash('sha256', __METHOD__.$this->stream->getSourceContext()->getCode().$this->varNameSalt++)); - } - - public function parse(TokenStream $stream, $test = null, $dropNeedle = false) - { - $vars = get_object_vars($this); - unset($vars['stack'], $vars['env'], $vars['handlers'], $vars['visitors'], $vars['expressionParser'], $vars['reservedMacroNames']); - $this->stack[] = $vars; - - // tag handlers - if (null === $this->handlers) { - $this->handlers = []; - foreach ($this->env->getTokenParsers() as $handler) { - $handler->setParser($this); - - $this->handlers[$handler->getTag()] = $handler; - } - } - - // node visitors - if (null === $this->visitors) { - $this->visitors = $this->env->getNodeVisitors(); - } - - if (null === $this->expressionParser) { - $this->expressionParser = new ExpressionParser($this, $this->env); - } - - $this->stream = $stream; - $this->parent = null; - $this->blocks = []; - $this->macros = []; - $this->traits = []; - $this->blockStack = []; - $this->importedSymbols = [[]]; - $this->embeddedTemplates = []; - $this->varNameSalt = 0; - - try { - $body = $this->subparse($test, $dropNeedle); - - if (null !== $this->parent && null === $body = $this->filterBodyNodes($body)) { - $body = new Node(); - } - } catch (SyntaxError $e) { - if (!$e->getSourceContext()) { - $e->setSourceContext($this->stream->getSourceContext()); - } - - if (!$e->getTemplateLine()) { - $e->setTemplateLine($this->stream->getCurrent()->getLine()); - } - - throw $e; - } - - $node = new ModuleNode(new BodyNode([$body]), $this->parent, new Node($this->blocks), new Node($this->macros), new Node($this->traits), $this->embeddedTemplates, $stream->getSourceContext()); - - $traverser = new NodeTraverser($this->env, $this->visitors); - - $node = $traverser->traverse($node); - - // restore previous stack so previous parse() call can resume working - foreach (array_pop($this->stack) as $key => $val) { - $this->$key = $val; - } - - return $node; - } - - public function subparse($test, $dropNeedle = false) - { - $lineno = $this->getCurrentToken()->getLine(); - $rv = []; - while (!$this->stream->isEOF()) { - switch ($this->getCurrentToken()->getType()) { - case /* Token::TEXT_TYPE */ 0: - $token = $this->stream->next(); - $rv[] = new TextNode($token->getValue(), $token->getLine()); - break; - - case /* Token::VAR_START_TYPE */ 2: - $token = $this->stream->next(); - $expr = $this->expressionParser->parseExpression(); - $this->stream->expect(/* Token::VAR_END_TYPE */ 4); - $rv[] = new PrintNode($expr, $token->getLine()); - break; - - case /* Token::BLOCK_START_TYPE */ 1: - $this->stream->next(); - $token = $this->getCurrentToken(); - - if (/* Token::NAME_TYPE */ 5 !== $token->getType()) { - throw new SyntaxError('A block must start with a tag name.', $token->getLine(), $this->stream->getSourceContext()); - } - - if (null !== $test && $test($token)) { - if ($dropNeedle) { - $this->stream->next(); - } - - if (1 === \count($rv)) { - return $rv[0]; - } - - return new Node($rv, [], $lineno); - } - - if (!isset($this->handlers[$token->getValue()])) { - if (null !== $test) { - $e = new SyntaxError(sprintf('Unexpected "%s" tag', $token->getValue()), $token->getLine(), $this->stream->getSourceContext()); - - if (\is_array($test) && isset($test[0]) && $test[0] instanceof TokenParserInterface) { - $e->appendMessage(sprintf(' (expecting closing tag for the "%s" tag defined near line %s).', $test[0]->getTag(), $lineno)); - } - } else { - $e = new SyntaxError(sprintf('Unknown "%s" tag.', $token->getValue()), $token->getLine(), $this->stream->getSourceContext()); - $e->addSuggestions($token->getValue(), array_keys($this->env->getTags())); - } - - throw $e; - } - - $this->stream->next(); - - $subparser = $this->handlers[$token->getValue()]; - $node = $subparser->parse($token); - if (null !== $node) { - $rv[] = $node; - } - break; - - default: - throw new SyntaxError('Lexer or parser ended up in unsupported state.', $this->getCurrentToken()->getLine(), $this->stream->getSourceContext()); - } - } - - if (1 === \count($rv)) { - return $rv[0]; - } - - return new Node($rv, [], $lineno); - } - - public function getBlockStack() - { - return $this->blockStack; - } - - public function peekBlockStack() - { - return isset($this->blockStack[\count($this->blockStack) - 1]) ? $this->blockStack[\count($this->blockStack) - 1] : null; - } - - public function popBlockStack() - { - array_pop($this->blockStack); - } - - public function pushBlockStack($name) - { - $this->blockStack[] = $name; - } - - public function hasBlock($name) - { - return isset($this->blocks[$name]); - } - - public function getBlock($name) - { - return $this->blocks[$name]; - } - - public function setBlock($name, BlockNode $value) - { - $this->blocks[$name] = new BodyNode([$value], [], $value->getTemplateLine()); - } - - public function hasMacro($name) - { - return isset($this->macros[$name]); - } - - public function setMacro($name, MacroNode $node) - { - $this->macros[$name] = $node; - } - - /** - * @deprecated since Twig 2.7 as there are no reserved macro names anymore, will be removed in 3.0. - */ - public function isReservedMacroName($name) - { - @trigger_error(sprintf('The "%s" method is deprecated since Twig 2.7 and will be removed in 3.0.', __METHOD__), E_USER_DEPRECATED); - - return false; - } - - public function addTrait($trait) - { - $this->traits[] = $trait; - } - - public function hasTraits() - { - return \count($this->traits) > 0; - } - - public function embedTemplate(ModuleNode $template) - { - $template->setIndex(mt_rand()); - - $this->embeddedTemplates[] = $template; - } - - public function addImportedSymbol($type, $alias, $name = null, AbstractExpression $node = null) - { - $this->importedSymbols[0][$type][$alias] = ['name' => $name, 'node' => $node]; - } - - public function getImportedSymbol($type, $alias) - { - // if the symbol does not exist in the current scope (0), try in the main/global scope (last index) - return $this->importedSymbols[0][$type][$alias] ?? ($this->importedSymbols[\count($this->importedSymbols) - 1][$type][$alias] ?? null); - } - - public function isMainScope() - { - return 1 === \count($this->importedSymbols); - } - - public function pushLocalScope() - { - array_unshift($this->importedSymbols, []); - } - - public function popLocalScope() - { - array_shift($this->importedSymbols); - } - - /** - * @return ExpressionParser - */ - public function getExpressionParser() - { - return $this->expressionParser; - } - - public function getParent() - { - return $this->parent; - } - - public function setParent($parent) - { - $this->parent = $parent; - } - - /** - * @return TokenStream - */ - public function getStream() - { - return $this->stream; - } - - /** - * @return Token - */ - public function getCurrentToken() - { - return $this->stream->getCurrent(); - } - - private function filterBodyNodes(Node $node, bool $nested = false) - { - // check that the body does not contain non-empty output nodes - if ( - ($node instanceof TextNode && !ctype_space($node->getAttribute('data'))) - || - // the "&& !$node instanceof SpacelessNode" part of the condition must be removed in 3.0 - (!$node instanceof TextNode && !$node instanceof BlockReferenceNode && ($node instanceof NodeOutputInterface && !$node instanceof SpacelessNode)) - ) { - if (false !== strpos((string) $node, \chr(0xEF).\chr(0xBB).\chr(0xBF))) { - $t = substr($node->getAttribute('data'), 3); - if ('' === $t || ctype_space($t)) { - // bypass empty nodes starting with a BOM - return; - } - } - - throw new SyntaxError('A template that extends another one cannot include content outside Twig blocks. Did you forget to put the content inside a {% block %} tag?', $node->getTemplateLine(), $this->stream->getSourceContext()); - } - - // bypass nodes that "capture" the output - if ($node instanceof NodeCaptureInterface) { - // a "block" tag in such a node will serve as a block definition AND be displayed in place as well - return $node; - } - - // to be removed completely in Twig 3.0 - if (!$nested && $node instanceof SpacelessNode) { - @trigger_error(sprintf('Using the spaceless tag at the root level of a child template in "%s" at line %d is deprecated since Twig 2.5.0 and will become a syntax error in 3.0.', $this->stream->getSourceContext()->getName(), $node->getTemplateLine()), E_USER_DEPRECATED); - } - - // "block" tags that are not captured (see above) are only used for defining - // the content of the block. In such a case, nesting it does not work as - // expected as the definition is not part of the default template code flow. - if ($nested && ($node instanceof BlockReferenceNode || $node instanceof \Twig_Node_BlockReference)) { - //throw new SyntaxError('A block definition cannot be nested under non-capturing nodes.', $node->getTemplateLine(), $this->stream->getSourceContext()); - @trigger_error(sprintf('Nesting a block definition under a non-capturing node in "%s" at line %d is deprecated since Twig 2.5.0 and will become a syntax error in 3.0.', $this->stream->getSourceContext()->getName(), $node->getTemplateLine()), E_USER_DEPRECATED); - - return; - } - - // the "&& !$node instanceof SpacelessNode" part of the condition must be removed in 3.0 - if ($node instanceof NodeOutputInterface && !$node instanceof SpacelessNode) { - return; - } - - // here, $nested means "being at the root level of a child template" - // we need to discard the wrapping "Twig_Node" for the "body" node - $nested = $nested || ('Twig_Node' !== \get_class($node) && Node::class !== \get_class($node)); - foreach ($node as $k => $n) { - if (null !== $n && null === $this->filterBodyNodes($n, $nested)) { - $node->removeNode($k); - } - } - - return $node; - } -} - -class_alias('Twig\Parser', 'Twig_Parser'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Profiler/Dumper/BaseDumper.php b/srcs/phpmyadmin/vendor/twig/twig/src/Profiler/Dumper/BaseDumper.php deleted file mode 100644 index 1631987..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Profiler/Dumper/BaseDumper.php +++ /dev/null @@ -1,65 +0,0 @@ - - */ -abstract class BaseDumper -{ - private $root; - - public function dump(Profile $profile) - { - return $this->dumpProfile($profile); - } - - abstract protected function formatTemplate(Profile $profile, $prefix); - - abstract protected function formatNonTemplate(Profile $profile, $prefix); - - abstract protected function formatTime(Profile $profile, $percent); - - private function dumpProfile(Profile $profile, $prefix = '', $sibling = false): string - { - if ($profile->isRoot()) { - $this->root = $profile->getDuration(); - $start = $profile->getName(); - } else { - if ($profile->isTemplate()) { - $start = $this->formatTemplate($profile, $prefix); - } else { - $start = $this->formatNonTemplate($profile, $prefix); - } - $prefix .= $sibling ? '│ ' : ' '; - } - - $percent = $this->root ? $profile->getDuration() / $this->root * 100 : 0; - - if ($profile->getDuration() * 1000 < 1) { - $str = $start."\n"; - } else { - $str = sprintf("%s %s\n", $start, $this->formatTime($profile, $percent)); - } - - $nCount = \count($profile->getProfiles()); - foreach ($profile as $i => $p) { - $str .= $this->dumpProfile($p, $prefix, $i + 1 !== $nCount); - } - - return $str; - } -} - -class_alias('Twig\Profiler\Dumper\BaseDumper', 'Twig_Profiler_Dumper_Base'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Profiler/Dumper/BlackfireDumper.php b/srcs/phpmyadmin/vendor/twig/twig/src/Profiler/Dumper/BlackfireDumper.php deleted file mode 100644 index f333429..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Profiler/Dumper/BlackfireDumper.php +++ /dev/null @@ -1,74 +0,0 @@ - - */ -final class BlackfireDumper -{ - public function dump(Profile $profile) - { - $data = []; - $this->dumpProfile('main()', $profile, $data); - $this->dumpChildren('main()', $profile, $data); - - $start = sprintf('%f', microtime(true)); - $str = << $values) { - $str .= "{$name}//{$values['ct']} {$values['wt']} {$values['mu']} {$values['pmu']}\n"; - } - - return $str; - } - - private function dumpChildren(string $parent, Profile $profile, &$data) - { - foreach ($profile as $p) { - if ($p->isTemplate()) { - $name = $p->getTemplate(); - } else { - $name = sprintf('%s::%s(%s)', $p->getTemplate(), $p->getType(), $p->getName()); - } - $this->dumpProfile(sprintf('%s==>%s', $parent, $name), $p, $data); - $this->dumpChildren($name, $p, $data); - } - } - - private function dumpProfile(string $edge, Profile $profile, &$data) - { - if (isset($data[$edge])) { - ++$data[$edge]['ct']; - $data[$edge]['wt'] += floor($profile->getDuration() * 1000000); - $data[$edge]['mu'] += $profile->getMemoryUsage(); - $data[$edge]['pmu'] += $profile->getPeakMemoryUsage(); - } else { - $data[$edge] = [ - 'ct' => 1, - 'wt' => floor($profile->getDuration() * 1000000), - 'mu' => $profile->getMemoryUsage(), - 'pmu' => $profile->getPeakMemoryUsage(), - ]; - } - } -} - -class_alias('Twig\Profiler\Dumper\BlackfireDumper', 'Twig_Profiler_Dumper_Blackfire'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Profiler/Dumper/HtmlDumper.php b/srcs/phpmyadmin/vendor/twig/twig/src/Profiler/Dumper/HtmlDumper.php deleted file mode 100644 index 5be5abe..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Profiler/Dumper/HtmlDumper.php +++ /dev/null @@ -1,49 +0,0 @@ - - */ -final class HtmlDumper extends BaseDumper -{ - private static $colors = [ - 'block' => '#dfd', - 'macro' => '#ddf', - 'template' => '#ffd', - 'big' => '#d44', - ]; - - public function dump(Profile $profile) - { - return '
    '.parent::dump($profile).'
    '; - } - - protected function formatTemplate(Profile $profile, $prefix) - { - return sprintf('%s└ %s', $prefix, self::$colors['template'], $profile->getTemplate()); - } - - protected function formatNonTemplate(Profile $profile, $prefix) - { - return sprintf('%s└ %s::%s(%s)', $prefix, $profile->getTemplate(), $profile->getType(), isset(self::$colors[$profile->getType()]) ? self::$colors[$profile->getType()] : 'auto', $profile->getName()); - } - - protected function formatTime(Profile $profile, $percent) - { - return sprintf('%.2fms/%.0f%%', $percent > 20 ? self::$colors['big'] : 'auto', $profile->getDuration() * 1000, $percent); - } -} - -class_alias('Twig\Profiler\Dumper\HtmlDumper', 'Twig_Profiler_Dumper_Html'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Profiler/Dumper/TextDumper.php b/srcs/phpmyadmin/vendor/twig/twig/src/Profiler/Dumper/TextDumper.php deleted file mode 100644 index 395ef9d..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Profiler/Dumper/TextDumper.php +++ /dev/null @@ -1,37 +0,0 @@ - - */ -final class TextDumper extends BaseDumper -{ - protected function formatTemplate(Profile $profile, $prefix) - { - return sprintf('%s└ %s', $prefix, $profile->getTemplate()); - } - - protected function formatNonTemplate(Profile $profile, $prefix) - { - return sprintf('%s└ %s::%s(%s)', $prefix, $profile->getTemplate(), $profile->getType(), $profile->getName()); - } - - protected function formatTime(Profile $profile, $percent) - { - return sprintf('%.2fms/%.0f%%', $profile->getDuration() * 1000, $percent); - } -} - -class_alias('Twig\Profiler\Dumper\TextDumper', 'Twig_Profiler_Dumper_Text'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Profiler/Node/EnterProfileNode.php b/srcs/phpmyadmin/vendor/twig/twig/src/Profiler/Node/EnterProfileNode.php deleted file mode 100644 index 91de5ff..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Profiler/Node/EnterProfileNode.php +++ /dev/null @@ -1,44 +0,0 @@ - - */ -class EnterProfileNode extends Node -{ - public function __construct(string $extensionName, string $type, string $name, string $varName) - { - parent::__construct([], ['extension_name' => $extensionName, 'name' => $name, 'type' => $type, 'var_name' => $varName]); - } - - public function compile(Compiler $compiler) - { - $compiler - ->write(sprintf('$%s = $this->extensions[', $this->getAttribute('var_name'))) - ->repr($this->getAttribute('extension_name')) - ->raw("];\n") - ->write(sprintf('$%s->enter($%s = new \Twig\Profiler\Profile($this->getTemplateName(), ', $this->getAttribute('var_name'), $this->getAttribute('var_name').'_prof')) - ->repr($this->getAttribute('type')) - ->raw(', ') - ->repr($this->getAttribute('name')) - ->raw("));\n\n") - ; - } -} - -class_alias('Twig\Profiler\Node\EnterProfileNode', 'Twig_Profiler_Node_EnterProfile'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Profiler/Node/LeaveProfileNode.php b/srcs/phpmyadmin/vendor/twig/twig/src/Profiler/Node/LeaveProfileNode.php deleted file mode 100644 index 7fbf435..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Profiler/Node/LeaveProfileNode.php +++ /dev/null @@ -1,38 +0,0 @@ - - */ -class LeaveProfileNode extends Node -{ - public function __construct(string $varName) - { - parent::__construct([], ['var_name' => $varName]); - } - - public function compile(Compiler $compiler) - { - $compiler - ->write("\n") - ->write(sprintf("\$%s->leave(\$%s);\n\n", $this->getAttribute('var_name'), $this->getAttribute('var_name').'_prof')) - ; - } -} - -class_alias('Twig\Profiler\Node\LeaveProfileNode', 'Twig_Profiler_Node_LeaveProfile'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Profiler/NodeVisitor/ProfilerNodeVisitor.php b/srcs/phpmyadmin/vendor/twig/twig/src/Profiler/NodeVisitor/ProfilerNodeVisitor.php deleted file mode 100644 index f19f6b7..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Profiler/NodeVisitor/ProfilerNodeVisitor.php +++ /dev/null @@ -1,78 +0,0 @@ - - */ -final class ProfilerNodeVisitor extends AbstractNodeVisitor -{ - private $extensionName; - - public function __construct(string $extensionName) - { - $this->extensionName = $extensionName; - } - - protected function doEnterNode(Node $node, Environment $env) - { - return $node; - } - - protected function doLeaveNode(Node $node, Environment $env) - { - if ($node instanceof ModuleNode) { - $varName = $this->getVarName(); - $node->setNode('display_start', new Node([new EnterProfileNode($this->extensionName, Profile::TEMPLATE, $node->getTemplateName(), $varName), $node->getNode('display_start')])); - $node->setNode('display_end', new Node([new LeaveProfileNode($varName), $node->getNode('display_end')])); - } elseif ($node instanceof BlockNode) { - $varName = $this->getVarName(); - $node->setNode('body', new BodyNode([ - new EnterProfileNode($this->extensionName, Profile::BLOCK, $node->getAttribute('name'), $varName), - $node->getNode('body'), - new LeaveProfileNode($varName), - ])); - } elseif ($node instanceof MacroNode) { - $varName = $this->getVarName(); - $node->setNode('body', new BodyNode([ - new EnterProfileNode($this->extensionName, Profile::MACRO, $node->getAttribute('name'), $varName), - $node->getNode('body'), - new LeaveProfileNode($varName), - ])); - } - - return $node; - } - - private function getVarName(): string - { - return sprintf('__internal_%s', hash('sha256', $this->extensionName)); - } - - public function getPriority() - { - return 0; - } -} - -class_alias('Twig\Profiler\NodeVisitor\ProfilerNodeVisitor', 'Twig_Profiler_NodeVisitor_Profiler'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Profiler/Profile.php b/srcs/phpmyadmin/vendor/twig/twig/src/Profiler/Profile.php deleted file mode 100644 index e9726d6..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Profiler/Profile.php +++ /dev/null @@ -1,192 +0,0 @@ - - * - * @final since Twig 2.4.0 - */ -class Profile implements \IteratorAggregate, \Serializable -{ - const ROOT = 'ROOT'; - const BLOCK = 'block'; - const TEMPLATE = 'template'; - const MACRO = 'macro'; - - private $template; - private $name; - private $type; - private $starts = []; - private $ends = []; - private $profiles = []; - - public function __construct(string $template = 'main', string $type = self::ROOT, string $name = 'main') - { - if (__CLASS__ !== \get_class($this)) { - @trigger_error('Overriding '.__CLASS__.' is deprecated since Twig 2.4.0 and the class will be final in 3.0.', E_USER_DEPRECATED); - } - - $this->template = $template; - $this->type = $type; - $this->name = 0 === strpos($name, '__internal_') ? 'INTERNAL' : $name; - $this->enter(); - } - - public function getTemplate() - { - return $this->template; - } - - public function getType() - { - return $this->type; - } - - public function getName() - { - return $this->name; - } - - public function isRoot() - { - return self::ROOT === $this->type; - } - - public function isTemplate() - { - return self::TEMPLATE === $this->type; - } - - public function isBlock() - { - return self::BLOCK === $this->type; - } - - public function isMacro() - { - return self::MACRO === $this->type; - } - - public function getProfiles() - { - return $this->profiles; - } - - public function addProfile(self $profile) - { - $this->profiles[] = $profile; - } - - /** - * Returns the duration in microseconds. - * - * @return float - */ - public function getDuration() - { - if ($this->isRoot() && $this->profiles) { - // for the root node with children, duration is the sum of all child durations - $duration = 0; - foreach ($this->profiles as $profile) { - $duration += $profile->getDuration(); - } - - return $duration; - } - - return isset($this->ends['wt']) && isset($this->starts['wt']) ? $this->ends['wt'] - $this->starts['wt'] : 0; - } - - /** - * Returns the memory usage in bytes. - * - * @return int - */ - public function getMemoryUsage() - { - return isset($this->ends['mu']) && isset($this->starts['mu']) ? $this->ends['mu'] - $this->starts['mu'] : 0; - } - - /** - * Returns the peak memory usage in bytes. - * - * @return int - */ - public function getPeakMemoryUsage() - { - return isset($this->ends['pmu']) && isset($this->starts['pmu']) ? $this->ends['pmu'] - $this->starts['pmu'] : 0; - } - - /** - * Starts the profiling. - */ - public function enter() - { - $this->starts = [ - 'wt' => microtime(true), - 'mu' => memory_get_usage(), - 'pmu' => memory_get_peak_usage(), - ]; - } - - /** - * Stops the profiling. - */ - public function leave() - { - $this->ends = [ - 'wt' => microtime(true), - 'mu' => memory_get_usage(), - 'pmu' => memory_get_peak_usage(), - ]; - } - - public function reset() - { - $this->starts = $this->ends = $this->profiles = []; - $this->enter(); - } - - public function getIterator() - { - return new \ArrayIterator($this->profiles); - } - - public function serialize() - { - return serialize($this->__serialize()); - } - - public function unserialize($data) - { - $this->__unserialize(unserialize($data)); - } - - /** - * @internal - */ - public function __serialize() - { - return [$this->template, $this->name, $this->type, $this->starts, $this->ends, $this->profiles]; - } - - /** - * @internal - */ - public function __unserialize(array $data) - { - list($this->template, $this->name, $this->type, $this->starts, $this->ends, $this->profiles) = $data; - } -} - -class_alias('Twig\Profiler\Profile', 'Twig_Profiler_Profile'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/RuntimeLoader/ContainerRuntimeLoader.php b/srcs/phpmyadmin/vendor/twig/twig/src/RuntimeLoader/ContainerRuntimeLoader.php deleted file mode 100644 index 04a6602..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/RuntimeLoader/ContainerRuntimeLoader.php +++ /dev/null @@ -1,41 +0,0 @@ - - * @author Robin Chalas - */ -class ContainerRuntimeLoader implements RuntimeLoaderInterface -{ - private $container; - - public function __construct(ContainerInterface $container) - { - $this->container = $container; - } - - public function load($class) - { - if ($this->container->has($class)) { - return $this->container->get($class); - } - } -} - -class_alias('Twig\RuntimeLoader\ContainerRuntimeLoader', 'Twig_ContainerRuntimeLoader'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/RuntimeLoader/FactoryRuntimeLoader.php b/srcs/phpmyadmin/vendor/twig/twig/src/RuntimeLoader/FactoryRuntimeLoader.php deleted file mode 100644 index e4676f7..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/RuntimeLoader/FactoryRuntimeLoader.php +++ /dev/null @@ -1,41 +0,0 @@ - - */ -class FactoryRuntimeLoader implements RuntimeLoaderInterface -{ - private $map; - - /** - * @param array $map An array where keys are class names and values factory callables - */ - public function __construct(array $map = []) - { - $this->map = $map; - } - - public function load($class) - { - if (isset($this->map[$class])) { - $runtimeFactory = $this->map[$class]; - - return $runtimeFactory(); - } - } -} - -class_alias('Twig\RuntimeLoader\FactoryRuntimeLoader', 'Twig_FactoryRuntimeLoader'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/RuntimeLoader/RuntimeLoaderInterface.php b/srcs/phpmyadmin/vendor/twig/twig/src/RuntimeLoader/RuntimeLoaderInterface.php deleted file mode 100644 index 4eb5ad8..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/RuntimeLoader/RuntimeLoaderInterface.php +++ /dev/null @@ -1,31 +0,0 @@ - - */ -interface RuntimeLoaderInterface -{ - /** - * Creates the runtime implementation of a Twig element (filter/function/test). - * - * @param string $class A runtime class - * - * @return object|null The runtime instance or null if the loader does not know how to create the runtime for this class - */ - public function load($class); -} - -class_alias('Twig\RuntimeLoader\RuntimeLoaderInterface', 'Twig_RuntimeLoaderInterface'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityError.php b/srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityError.php deleted file mode 100644 index 5f96d46..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityError.php +++ /dev/null @@ -1,25 +0,0 @@ - - */ -class SecurityError extends Error -{ -} - -class_alias('Twig\Sandbox\SecurityError', 'Twig_Sandbox_SecurityError'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityNotAllowedFilterError.php b/srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityNotAllowedFilterError.php deleted file mode 100644 index 767ec5b..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityNotAllowedFilterError.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * @final - */ -class SecurityNotAllowedFilterError extends SecurityError -{ - private $filterName; - - public function __construct(string $message, string $functionName, int $lineno = -1, string $filename = null, \Exception $previous = null) - { - if (-1 !== $lineno) { - @trigger_error(sprintf('Passing $lineno as a 3th argument of the %s constructor is deprecated since Twig 2.8.1.', __CLASS__), E_USER_DEPRECATED); - } - if (null !== $filename) { - @trigger_error(sprintf('Passing $filename as a 4th argument of the %s constructor is deprecated since Twig 2.8.1.', __CLASS__), E_USER_DEPRECATED); - } - if (null !== $previous) { - @trigger_error(sprintf('Passing $previous as a 5th argument of the %s constructor is deprecated since Twig 2.8.1.', __CLASS__), E_USER_DEPRECATED); - } - parent::__construct($message, $lineno, $filename, $previous); - $this->filterName = $functionName; - } - - public function getFilterName() - { - return $this->filterName; - } -} - -class_alias('Twig\Sandbox\SecurityNotAllowedFilterError', 'Twig_Sandbox_SecurityNotAllowedFilterError'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityNotAllowedFunctionError.php b/srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityNotAllowedFunctionError.php deleted file mode 100644 index 5a30139..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityNotAllowedFunctionError.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * @final - */ -class SecurityNotAllowedFunctionError extends SecurityError -{ - private $functionName; - - public function __construct(string $message, string $functionName, int $lineno = -1, string $filename = null, \Exception $previous = null) - { - if (-1 !== $lineno) { - @trigger_error(sprintf('Passing $lineno as a 3th argument of the %s constructor is deprecated since Twig 2.8.1.', __CLASS__), E_USER_DEPRECATED); - } - if (null !== $filename) { - @trigger_error(sprintf('Passing $filename as a 4th argument of the %s constructor is deprecated since Twig 2.8.1.', __CLASS__), E_USER_DEPRECATED); - } - if (null !== $previous) { - @trigger_error(sprintf('Passing $previous as a 5th argument of the %s constructor is deprecated since Twig 2.8.1.', __CLASS__), E_USER_DEPRECATED); - } - parent::__construct($message, $lineno, $filename, $previous); - $this->functionName = $functionName; - } - - public function getFunctionName() - { - return $this->functionName; - } -} - -class_alias('Twig\Sandbox\SecurityNotAllowedFunctionError', 'Twig_Sandbox_SecurityNotAllowedFunctionError'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityNotAllowedMethodError.php b/srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityNotAllowedMethodError.php deleted file mode 100644 index c8103ea..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityNotAllowedMethodError.php +++ /dev/null @@ -1,53 +0,0 @@ - - * - * @final - */ -class SecurityNotAllowedMethodError extends SecurityError -{ - private $className; - private $methodName; - - public function __construct(string $message, string $className, string $methodName, int $lineno = -1, string $filename = null, \Exception $previous = null) - { - if (-1 !== $lineno) { - @trigger_error(sprintf('Passing $lineno as a 3th argument of the %s constructor is deprecated since Twig 2.8.1.', __CLASS__), E_USER_DEPRECATED); - } - if (null !== $filename) { - @trigger_error(sprintf('Passing $filename as a 4th argument of the %s constructor is deprecated since Twig 2.8.1.', __CLASS__), E_USER_DEPRECATED); - } - if (null !== $previous) { - @trigger_error(sprintf('Passing $previous as a 5th argument of the %s constructor is deprecated since Twig 2.8.1.', __CLASS__), E_USER_DEPRECATED); - } - parent::__construct($message, $lineno, $filename, $previous); - $this->className = $className; - $this->methodName = $methodName; - } - - public function getClassName() - { - return $this->className; - } - - public function getMethodName() - { - return $this->methodName; - } -} - -class_alias('Twig\Sandbox\SecurityNotAllowedMethodError', 'Twig_Sandbox_SecurityNotAllowedMethodError'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityNotAllowedPropertyError.php b/srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityNotAllowedPropertyError.php deleted file mode 100644 index d148f08..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityNotAllowedPropertyError.php +++ /dev/null @@ -1,53 +0,0 @@ - - * - * @final - */ -class SecurityNotAllowedPropertyError extends SecurityError -{ - private $className; - private $propertyName; - - public function __construct(string $message, string $className, string $propertyName, int $lineno = -1, string $filename = null, \Exception $previous = null) - { - if (-1 !== $lineno) { - @trigger_error(sprintf('Passing $lineno as a 3th argument of the %s constructor is deprecated since Twig 2.8.1.', __CLASS__), E_USER_DEPRECATED); - } - if (null !== $filename) { - @trigger_error(sprintf('Passing $filename as a 4th argument of the %s constructor is deprecated since Twig 2.8.1.', __CLASS__), E_USER_DEPRECATED); - } - if (null !== $previous) { - @trigger_error(sprintf('Passing $previous as a 5th argument of the %s constructor is deprecated since Twig 2.8.1.', __CLASS__), E_USER_DEPRECATED); - } - parent::__construct($message, $lineno, $filename, $previous); - $this->className = $className; - $this->propertyName = $propertyName; - } - - public function getClassName() - { - return $this->className; - } - - public function getPropertyName() - { - return $this->propertyName; - } -} - -class_alias('Twig\Sandbox\SecurityNotAllowedPropertyError', 'Twig_Sandbox_SecurityNotAllowedPropertyError'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityNotAllowedTagError.php b/srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityNotAllowedTagError.php deleted file mode 100644 index 25f6361..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityNotAllowedTagError.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * @final - */ -class SecurityNotAllowedTagError extends SecurityError -{ - private $tagName; - - public function __construct(string $message, string $tagName, int $lineno = -1, string $filename = null, \Exception $previous = null) - { - if (-1 !== $lineno) { - @trigger_error(sprintf('Passing $lineno as a 3th argument of the %s constructor is deprecated since Twig 2.8.1.', __CLASS__), E_USER_DEPRECATED); - } - if (null !== $filename) { - @trigger_error(sprintf('Passing $filename as a 4th argument of the %s constructor is deprecated since Twig 2.8.1.', __CLASS__), E_USER_DEPRECATED); - } - if (null !== $previous) { - @trigger_error(sprintf('Passing $previous as a 5th argument of the %s constructor is deprecated since Twig 2.8.1.', __CLASS__), E_USER_DEPRECATED); - } - parent::__construct($message, $lineno, $filename, $previous); - $this->tagName = $tagName; - } - - public function getTagName() - { - return $this->tagName; - } -} - -class_alias('Twig\Sandbox\SecurityNotAllowedTagError', 'Twig_Sandbox_SecurityNotAllowedTagError'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityPolicy.php b/srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityPolicy.php deleted file mode 100644 index 01fecf8..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityPolicy.php +++ /dev/null @@ -1,128 +0,0 @@ - - */ -final class SecurityPolicy implements SecurityPolicyInterface -{ - private $allowedTags; - private $allowedFilters; - private $allowedMethods; - private $allowedProperties; - private $allowedFunctions; - - public function __construct(array $allowedTags = [], array $allowedFilters = [], array $allowedMethods = [], array $allowedProperties = [], array $allowedFunctions = []) - { - $this->allowedTags = $allowedTags; - $this->allowedFilters = $allowedFilters; - $this->setAllowedMethods($allowedMethods); - $this->allowedProperties = $allowedProperties; - $this->allowedFunctions = $allowedFunctions; - } - - public function setAllowedTags(array $tags) - { - $this->allowedTags = $tags; - } - - public function setAllowedFilters(array $filters) - { - $this->allowedFilters = $filters; - } - - public function setAllowedMethods(array $methods) - { - $this->allowedMethods = []; - foreach ($methods as $class => $m) { - $this->allowedMethods[$class] = array_map('strtolower', \is_array($m) ? $m : [$m]); - } - } - - public function setAllowedProperties(array $properties) - { - $this->allowedProperties = $properties; - } - - public function setAllowedFunctions(array $functions) - { - $this->allowedFunctions = $functions; - } - - public function checkSecurity($tags, $filters, $functions) - { - foreach ($tags as $tag) { - if (!\in_array($tag, $this->allowedTags)) { - throw new SecurityNotAllowedTagError(sprintf('Tag "%s" is not allowed.', $tag), $tag); - } - } - - foreach ($filters as $filter) { - if (!\in_array($filter, $this->allowedFilters)) { - throw new SecurityNotAllowedFilterError(sprintf('Filter "%s" is not allowed.', $filter), $filter); - } - } - - foreach ($functions as $function) { - if (!\in_array($function, $this->allowedFunctions)) { - throw new SecurityNotAllowedFunctionError(sprintf('Function "%s" is not allowed.', $function), $function); - } - } - } - - public function checkMethodAllowed($obj, $method) - { - if ($obj instanceof Template || $obj instanceof Markup) { - return; - } - - $allowed = false; - $method = strtolower($method); - foreach ($this->allowedMethods as $class => $methods) { - if ($obj instanceof $class) { - $allowed = \in_array($method, $methods); - - break; - } - } - - if (!$allowed) { - $class = \get_class($obj); - throw new SecurityNotAllowedMethodError(sprintf('Calling "%s" method on a "%s" object is not allowed.', $method, $class), $class, $method); - } - } - - public function checkPropertyAllowed($obj, $property) - { - $allowed = false; - foreach ($this->allowedProperties as $class => $properties) { - if ($obj instanceof $class) { - $allowed = \in_array($property, \is_array($properties) ? $properties : [$properties]); - - break; - } - } - - if (!$allowed) { - $class = \get_class($obj); - throw new SecurityNotAllowedPropertyError(sprintf('Calling "%s" property on a "%s" object is not allowed.', $property, $class), $class, $property); - } - } -} - -class_alias('Twig\Sandbox\SecurityPolicy', 'Twig_Sandbox_SecurityPolicy'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityPolicyInterface.php b/srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityPolicyInterface.php deleted file mode 100644 index 8b2ab4a..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Sandbox/SecurityPolicyInterface.php +++ /dev/null @@ -1,37 +0,0 @@ - - */ -interface SecurityPolicyInterface -{ - /** - * @throws SecurityError - */ - public function checkSecurity($tags, $filters, $functions); - - /** - * @throws SecurityNotAllowedMethodError - */ - public function checkMethodAllowed($obj, $method); - - /** - * @throws SecurityNotAllowedPropertyError - */ - public function checkPropertyAllowed($obj, $method); -} - -class_alias('Twig\Sandbox\SecurityPolicyInterface', 'Twig_Sandbox_SecurityPolicyInterface'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Source.php b/srcs/phpmyadmin/vendor/twig/twig/src/Source.php deleted file mode 100644 index a728778..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Source.php +++ /dev/null @@ -1,53 +0,0 @@ - - */ -final class Source -{ - private $code; - private $name; - private $path; - - /** - * @param string $code The template source code - * @param string $name The template logical name - * @param string $path The filesystem path of the template if any - */ - public function __construct(string $code, string $name, string $path = '') - { - $this->code = $code; - $this->name = $name; - $this->path = $path; - } - - public function getCode(): string - { - return $this->code; - } - - public function getName() - { - return $this->name; - } - - public function getPath(): string - { - return $this->path; - } -} - -class_alias('Twig\Source', 'Twig_Source'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Template.php b/srcs/phpmyadmin/vendor/twig/twig/src/Template.php deleted file mode 100644 index 0f09e19..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Template.php +++ /dev/null @@ -1,437 +0,0 @@ -load() - * instead, which returns an instance of \Twig\TemplateWrapper. - * - * @author Fabien Potencier - * - * @internal - */ -abstract class Template -{ - const ANY_CALL = 'any'; - const ARRAY_CALL = 'array'; - const METHOD_CALL = 'method'; - - protected $parent; - protected $parents = []; - protected $env; - protected $blocks = []; - protected $traits = []; - protected $extensions = []; - protected $sandbox; - - public function __construct(Environment $env) - { - $this->env = $env; - $this->extensions = $env->getExtensions(); - } - - /** - * @internal this method will be removed in 3.0 and is only used internally to provide an upgrade path from 1.x to 2.0 - */ - public function __toString() - { - return $this->getTemplateName(); - } - - /** - * Returns the template name. - * - * @return string The template name - */ - abstract public function getTemplateName(); - - /** - * Returns debug information about the template. - * - * @return array Debug information - */ - abstract public function getDebugInfo(); - - /** - * Returns information about the original template source code. - * - * @return Source - */ - public function getSourceContext() - { - return new Source('', $this->getTemplateName()); - } - - /** - * Returns the parent template. - * - * This method is for internal use only and should never be called - * directly. - * - * @param array $context - * - * @return Template|TemplateWrapper|false The parent template or false if there is no parent - */ - public function getParent(array $context) - { - if (null !== $this->parent) { - return $this->parent; - } - - try { - $parent = $this->doGetParent($context); - - if (false === $parent) { - return false; - } - - if ($parent instanceof self || $parent instanceof TemplateWrapper) { - return $this->parents[$parent->getSourceContext()->getName()] = $parent; - } - - if (!isset($this->parents[$parent])) { - $this->parents[$parent] = $this->loadTemplate($parent); - } - } catch (LoaderError $e) { - $e->setSourceContext(null); - $e->guess(); - - throw $e; - } - - return $this->parents[$parent]; - } - - protected function doGetParent(array $context) - { - return false; - } - - public function isTraitable() - { - return true; - } - - /** - * Displays a parent block. - * - * This method is for internal use only and should never be called - * directly. - * - * @param string $name The block name to display from the parent - * @param array $context The context - * @param array $blocks The current set of blocks - */ - public function displayParentBlock($name, array $context, array $blocks = []) - { - if (isset($this->traits[$name])) { - $this->traits[$name][0]->displayBlock($name, $context, $blocks, false); - } elseif (false !== $parent = $this->getParent($context)) { - $parent->displayBlock($name, $context, $blocks, false); - } else { - throw new RuntimeError(sprintf('The template has no parent and no traits defining the "%s" block.', $name), -1, $this->getSourceContext()); - } - } - - /** - * Displays a block. - * - * This method is for internal use only and should never be called - * directly. - * - * @param string $name The block name to display - * @param array $context The context - * @param array $blocks The current set of blocks - * @param bool $useBlocks Whether to use the current set of blocks - */ - public function displayBlock($name, array $context, array $blocks = [], $useBlocks = true, self $templateContext = null) - { - if ($useBlocks && isset($blocks[$name])) { - $template = $blocks[$name][0]; - $block = $blocks[$name][1]; - } elseif (isset($this->blocks[$name])) { - $template = $this->blocks[$name][0]; - $block = $this->blocks[$name][1]; - } else { - $template = null; - $block = null; - } - - // avoid RCEs when sandbox is enabled - if (null !== $template && !$template instanceof self) { - throw new \LogicException('A block must be a method on a \Twig\Template instance.'); - } - - if (null !== $template) { - try { - $template->$block($context, $blocks); - } catch (Error $e) { - if (!$e->getSourceContext()) { - $e->setSourceContext($template->getSourceContext()); - } - - // this is mostly useful for \Twig\Error\LoaderError exceptions - // see \Twig\Error\LoaderError - if (-1 === $e->getTemplateLine()) { - $e->guess(); - } - - throw $e; - } catch (\Exception $e) { - $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $template->getSourceContext(), $e); - $e->guess(); - - throw $e; - } - } elseif (false !== $parent = $this->getParent($context)) { - $parent->displayBlock($name, $context, array_merge($this->blocks, $blocks), false, $templateContext ?? $this); - } elseif (isset($blocks[$name])) { - throw new RuntimeError(sprintf('Block "%s" should not call parent() in "%s" as the block does not exist in the parent template "%s".', $name, $blocks[$name][0]->getTemplateName(), $this->getTemplateName()), -1, $blocks[$name][0]->getSourceContext()); - } else { - throw new RuntimeError(sprintf('Block "%s" on template "%s" does not exist.', $name, $this->getTemplateName()), -1, ($templateContext ?? $this)->getSourceContext()); - } - } - - /** - * Renders a parent block. - * - * This method is for internal use only and should never be called - * directly. - * - * @param string $name The block name to render from the parent - * @param array $context The context - * @param array $blocks The current set of blocks - * - * @return string The rendered block - */ - public function renderParentBlock($name, array $context, array $blocks = []) - { - if ($this->env->isDebug()) { - ob_start(); - } else { - ob_start(function () { return ''; }); - } - $this->displayParentBlock($name, $context, $blocks); - - return ob_get_clean(); - } - - /** - * Renders a block. - * - * This method is for internal use only and should never be called - * directly. - * - * @param string $name The block name to render - * @param array $context The context - * @param array $blocks The current set of blocks - * @param bool $useBlocks Whether to use the current set of blocks - * - * @return string The rendered block - */ - public function renderBlock($name, array $context, array $blocks = [], $useBlocks = true) - { - if ($this->env->isDebug()) { - ob_start(); - } else { - ob_start(function () { return ''; }); - } - $this->displayBlock($name, $context, $blocks, $useBlocks); - - return ob_get_clean(); - } - - /** - * Returns whether a block exists or not in the current context of the template. - * - * This method checks blocks defined in the current template - * or defined in "used" traits or defined in parent templates. - * - * @param string $name The block name - * @param array $context The context - * @param array $blocks The current set of blocks - * - * @return bool true if the block exists, false otherwise - */ - public function hasBlock($name, array $context, array $blocks = []) - { - if (isset($blocks[$name])) { - return $blocks[$name][0] instanceof self; - } - - if (isset($this->blocks[$name])) { - return true; - } - - if (false !== $parent = $this->getParent($context)) { - return $parent->hasBlock($name, $context); - } - - return false; - } - - /** - * Returns all block names in the current context of the template. - * - * This method checks blocks defined in the current template - * or defined in "used" traits or defined in parent templates. - * - * @param array $context The context - * @param array $blocks The current set of blocks - * - * @return array An array of block names - */ - public function getBlockNames(array $context, array $blocks = []) - { - $names = array_merge(array_keys($blocks), array_keys($this->blocks)); - - if (false !== $parent = $this->getParent($context)) { - $names = array_merge($names, $parent->getBlockNames($context)); - } - - return array_unique($names); - } - - /** - * @return Template|TemplateWrapper - */ - protected function loadTemplate($template, $templateName = null, $line = null, $index = null) - { - try { - if (\is_array($template)) { - return $this->env->resolveTemplate($template); - } - - if ($template instanceof self || $template instanceof TemplateWrapper) { - return $template; - } - - if ($template === $this->getTemplateName()) { - $class = \get_class($this); - if (false !== $pos = strrpos($class, '___', -1)) { - $class = substr($class, 0, $pos); - } - - return $this->env->loadClass($class, $template, $index); - } - - return $this->env->loadTemplate($template, $index); - } catch (Error $e) { - if (!$e->getSourceContext()) { - $e->setSourceContext($templateName ? new Source('', $templateName) : $this->getSourceContext()); - } - - if ($e->getTemplateLine() > 0) { - throw $e; - } - - if (!$line) { - $e->guess(); - } else { - $e->setTemplateLine($line); - } - - throw $e; - } - } - - /** - * @internal - * - * @return Template - */ - protected function unwrap() - { - return $this; - } - - /** - * Returns all blocks. - * - * This method is for internal use only and should never be called - * directly. - * - * @return array An array of blocks - */ - public function getBlocks() - { - return $this->blocks; - } - - public function display(array $context, array $blocks = []) - { - $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks)); - } - - public function render(array $context) - { - $level = ob_get_level(); - if ($this->env->isDebug()) { - ob_start(); - } else { - ob_start(function () { return ''; }); - } - try { - $this->display($context); - } catch (\Throwable $e) { - while (ob_get_level() > $level) { - ob_end_clean(); - } - - throw $e; - } - - return ob_get_clean(); - } - - protected function displayWithErrorHandling(array $context, array $blocks = []) - { - try { - $this->doDisplay($context, $blocks); - } catch (Error $e) { - if (!$e->getSourceContext()) { - $e->setSourceContext($this->getSourceContext()); - } - - // this is mostly useful for \Twig\Error\LoaderError exceptions - // see \Twig\Error\LoaderError - if (-1 === $e->getTemplateLine()) { - $e->guess(); - } - - throw $e; - } catch (\Exception $e) { - $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e); - $e->guess(); - - throw $e; - } - } - - /** - * Auto-generated method to display the template with the given context. - * - * @param array $context An array of parameters to pass to the template - * @param array $blocks An array of blocks to pass to the template - */ - abstract protected function doDisplay(array $context, array $blocks = []); -} - -class_alias('Twig\Template', 'Twig_Template'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/TemplateWrapper.php b/srcs/phpmyadmin/vendor/twig/twig/src/TemplateWrapper.php deleted file mode 100644 index 8b44815..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/TemplateWrapper.php +++ /dev/null @@ -1,145 +0,0 @@ - - */ -final class TemplateWrapper -{ - private $env; - private $template; - - /** - * This method is for internal use only and should never be called - * directly (use Twig\Environment::load() instead). - * - * @internal - */ - public function __construct(Environment $env, Template $template) - { - $this->env = $env; - $this->template = $template; - } - - /** - * Renders the template. - * - * @param array $context An array of parameters to pass to the template - */ - public function render(array $context = []): string - { - // using func_get_args() allows to not expose the blocks argument - // as it should only be used by internal code - return $this->template->render($context, \func_get_args()[1] ?? []); - } - - /** - * Displays the template. - * - * @param array $context An array of parameters to pass to the template - */ - public function display(array $context = []) - { - // using func_get_args() allows to not expose the blocks argument - // as it should only be used by internal code - $this->template->display($context, \func_get_args()[1] ?? []); - } - - /** - * Checks if a block is defined. - * - * @param string $name The block name - * @param array $context An array of parameters to pass to the template - */ - public function hasBlock(string $name, array $context = []): bool - { - return $this->template->hasBlock($name, $context); - } - - /** - * Returns defined block names in the template. - * - * @param array $context An array of parameters to pass to the template - * - * @return string[] An array of defined template block names - */ - public function getBlockNames(array $context = []): array - { - return $this->template->getBlockNames($context); - } - - /** - * Renders a template block. - * - * @param string $name The block name to render - * @param array $context An array of parameters to pass to the template - * - * @return string The rendered block - */ - public function renderBlock(string $name, array $context = []): string - { - $context = $this->env->mergeGlobals($context); - $level = ob_get_level(); - if ($this->env->isDebug()) { - ob_start(); - } else { - ob_start(function () { return ''; }); - } - try { - $this->template->displayBlock($name, $context); - } catch (\Throwable $e) { - while (ob_get_level() > $level) { - ob_end_clean(); - } - - throw $e; - } - - return ob_get_clean(); - } - - /** - * Displays a template block. - * - * @param string $name The block name to render - * @param array $context An array of parameters to pass to the template - */ - public function displayBlock(string $name, array $context = []) - { - $this->template->displayBlock($name, $this->env->mergeGlobals($context)); - } - - public function getSourceContext(): Source - { - return $this->template->getSourceContext(); - } - - public function getTemplateName(): string - { - return $this->template->getTemplateName(); - } - - /** - * @internal - * - * @return Template - */ - public function unwrap() - { - return $this->template; - } -} - -class_alias('Twig\TemplateWrapper', 'Twig_TemplateWrapper'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Test/IntegrationTestCase.php b/srcs/phpmyadmin/vendor/twig/twig/src/Test/IntegrationTestCase.php deleted file mode 100644 index d9c3290..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Test/IntegrationTestCase.php +++ /dev/null @@ -1,267 +0,0 @@ - - * @author Karma Dordrak - */ -abstract class IntegrationTestCase extends TestCase -{ - /** - * @return string - */ - abstract protected function getFixturesDir(); - - /** - * @return RuntimeLoaderInterface[] - */ - protected function getRuntimeLoaders() - { - return []; - } - - /** - * @return ExtensionInterface[] - */ - protected function getExtensions() - { - return []; - } - - /** - * @return TwigFilter[] - */ - protected function getTwigFilters() - { - return []; - } - - /** - * @return TwigFunction[] - */ - protected function getTwigFunctions() - { - return []; - } - - /** - * @return TwigTest[] - */ - protected function getTwigTests() - { - return []; - } - - /** - * @dataProvider getTests - */ - public function testIntegration($file, $message, $condition, $templates, $exception, $outputs, $deprecation = '') - { - $this->doIntegrationTest($file, $message, $condition, $templates, $exception, $outputs, $deprecation); - } - - /** - * @dataProvider getLegacyTests - * @group legacy - */ - public function testLegacyIntegration($file, $message, $condition, $templates, $exception, $outputs, $deprecation = '') - { - $this->doIntegrationTest($file, $message, $condition, $templates, $exception, $outputs, $deprecation); - } - - public function getTests($name, $legacyTests = false) - { - $fixturesDir = realpath($this->getFixturesDir()); - $tests = []; - - foreach (new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($fixturesDir), \RecursiveIteratorIterator::LEAVES_ONLY) as $file) { - if (!preg_match('/\.test$/', $file)) { - continue; - } - - if ($legacyTests xor false !== strpos($file->getRealpath(), '.legacy.test')) { - continue; - } - - $test = file_get_contents($file->getRealpath()); - - if (preg_match('/--TEST--\s*(.*?)\s*(?:--CONDITION--\s*(.*))?\s*(?:--DEPRECATION--\s*(.*?))?\s*((?:--TEMPLATE(?:\(.*?\))?--(?:.*?))+)\s*(?:--DATA--\s*(.*))?\s*--EXCEPTION--\s*(.*)/sx', $test, $match)) { - $message = $match[1]; - $condition = $match[2]; - $deprecation = $match[3]; - $templates = self::parseTemplates($match[4]); - $exception = $match[6]; - $outputs = [[null, $match[5], null, '']]; - } elseif (preg_match('/--TEST--\s*(.*?)\s*(?:--CONDITION--\s*(.*))?\s*(?:--DEPRECATION--\s*(.*?))?\s*((?:--TEMPLATE(?:\(.*?\))?--(?:.*?))+)--DATA--.*?--EXPECT--.*/s', $test, $match)) { - $message = $match[1]; - $condition = $match[2]; - $deprecation = $match[3]; - $templates = self::parseTemplates($match[4]); - $exception = false; - preg_match_all('/--DATA--(.*?)(?:--CONFIG--(.*?))?--EXPECT--(.*?)(?=\-\-DATA\-\-|$)/s', $test, $outputs, PREG_SET_ORDER); - } else { - throw new \InvalidArgumentException(sprintf('Test "%s" is not valid.', str_replace($fixturesDir.'/', '', $file))); - } - - $tests[] = [str_replace($fixturesDir.'/', '', $file), $message, $condition, $templates, $exception, $outputs, $deprecation]; - } - - if ($legacyTests && empty($tests)) { - // add a dummy test to avoid a PHPUnit message - return [['not', '-', '', [], '', []]]; - } - - return $tests; - } - - public function getLegacyTests() - { - return $this->getTests('testLegacyIntegration', true); - } - - protected function doIntegrationTest($file, $message, $condition, $templates, $exception, $outputs, $deprecation = '') - { - if (!$outputs) { - $this->markTestSkipped('no tests to run'); - } - - if ($condition) { - eval('$ret = '.$condition.';'); - if (!$ret) { - $this->markTestSkipped($condition); - } - } - - $loader = new ArrayLoader($templates); - - foreach ($outputs as $i => $match) { - $config = array_merge([ - 'cache' => false, - 'strict_variables' => true, - ], $match[2] ? eval($match[2].';') : []); - $twig = new Environment($loader, $config); - $twig->addGlobal('global', 'global'); - foreach ($this->getRuntimeLoaders() as $runtimeLoader) { - $twig->addRuntimeLoader($runtimeLoader); - } - - foreach ($this->getExtensions() as $extension) { - $twig->addExtension($extension); - } - - foreach ($this->getTwigFilters() as $filter) { - $twig->addFilter($filter); - } - - foreach ($this->getTwigTests() as $test) { - $twig->addTest($test); - } - - foreach ($this->getTwigFunctions() as $function) { - $twig->addFunction($function); - } - - // avoid using the same PHP class name for different cases - $p = new \ReflectionProperty($twig, 'templateClassPrefix'); - $p->setAccessible(true); - $p->setValue($twig, '__TwigTemplate_'.hash('sha256', uniqid(mt_rand(), true), false).'_'); - - $deprecations = []; - try { - $prevHandler = set_error_handler(function ($type, $msg, $file, $line, $context = []) use (&$deprecations, &$prevHandler) { - if (E_USER_DEPRECATED === $type) { - $deprecations[] = $msg; - - return true; - } - - return $prevHandler ? $prevHandler($type, $msg, $file, $line, $context) : false; - }); - - $template = $twig->load('index.twig'); - } catch (\Exception $e) { - if (false !== $exception) { - $message = $e->getMessage(); - $this->assertSame(trim($exception), trim(sprintf('%s: %s', \get_class($e), $message))); - $last = substr($message, \strlen($message) - 1); - $this->assertTrue('.' === $last || '?' === $last, 'Exception message must end with a dot or a question mark.'); - - return; - } - - throw new Error(sprintf('%s: %s', \get_class($e), $e->getMessage()), -1, null, $e); - } finally { - restore_error_handler(); - } - - $this->assertSame($deprecation, implode("\n", $deprecations)); - - try { - $output = trim($template->render(eval($match[1].';')), "\n "); - } catch (\Exception $e) { - if (false !== $exception) { - $this->assertSame(trim($exception), trim(sprintf('%s: %s', \get_class($e), $e->getMessage()))); - - return; - } - - $e = new Error(sprintf('%s: %s', \get_class($e), $e->getMessage()), -1, null, $e); - - $output = trim(sprintf('%s: %s', \get_class($e), $e->getMessage())); - } - - if (false !== $exception) { - list($class) = explode(':', $exception); - $constraintClass = class_exists('PHPUnit\Framework\Constraint\Exception') ? 'PHPUnit\Framework\Constraint\Exception' : 'PHPUnit_Framework_Constraint_Exception'; - $this->assertThat(null, new $constraintClass($class)); - } - - $expected = trim($match[3], "\n "); - - if ($expected !== $output) { - printf("Compiled templates that failed on case %d:\n", $i + 1); - - foreach (array_keys($templates) as $name) { - echo "Template: $name\n"; - echo $twig->compile($twig->parse($twig->tokenize($twig->getLoader()->getSourceContext($name)))); - } - } - $this->assertEquals($expected, $output, $message.' (in '.$file.')'); - } - } - - protected static function parseTemplates($test) - { - $templates = []; - preg_match_all('/--TEMPLATE(?:\((.*?)\))?--(.*?)(?=\-\-TEMPLATE|$)/s', $test, $matches, PREG_SET_ORDER); - foreach ($matches as $match) { - $templates[($match[1] ? $match[1] : 'index.twig')] = $match[2]; - } - - return $templates; - } -} - -class_alias('Twig\Test\IntegrationTestCase', 'Twig_Test_IntegrationTestCase'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Test/NodeTestCase.php b/srcs/phpmyadmin/vendor/twig/twig/src/Test/NodeTestCase.php deleted file mode 100644 index 368ceb1..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Test/NodeTestCase.php +++ /dev/null @@ -1,67 +0,0 @@ -assertNodeCompilation($source, $node, $environment, $isPattern); - } - - public function assertNodeCompilation($source, Node $node, Environment $environment = null, $isPattern = false) - { - $compiler = $this->getCompiler($environment); - $compiler->compile($node); - - if ($isPattern) { - $this->assertStringMatchesFormat($source, trim($compiler->getSource())); - } else { - $this->assertEquals($source, trim($compiler->getSource())); - } - } - - protected function getCompiler(Environment $environment = null) - { - return new Compiler(null === $environment ? $this->getEnvironment() : $environment); - } - - protected function getEnvironment() - { - return new Environment(new ArrayLoader([])); - } - - protected function getVariableGetter($name, $line = false) - { - $line = $line > 0 ? "// line {$line}\n" : ''; - - return sprintf('%s($context["%s"] ?? null)', $line, $name); - } - - protected function getAttributeGetter() - { - return 'twig_get_attribute($this->env, $this->source, '; - } -} - -class_alias('Twig\Test\NodeTestCase', 'Twig_Test_NodeTestCase'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/Token.php b/srcs/phpmyadmin/vendor/twig/twig/src/Token.php deleted file mode 100644 index 262fa48..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/Token.php +++ /dev/null @@ -1,213 +0,0 @@ - - */ -final class Token -{ - private $value; - private $type; - private $lineno; - - const EOF_TYPE = -1; - const TEXT_TYPE = 0; - const BLOCK_START_TYPE = 1; - const VAR_START_TYPE = 2; - const BLOCK_END_TYPE = 3; - const VAR_END_TYPE = 4; - const NAME_TYPE = 5; - const NUMBER_TYPE = 6; - const STRING_TYPE = 7; - const OPERATOR_TYPE = 8; - const PUNCTUATION_TYPE = 9; - const INTERPOLATION_START_TYPE = 10; - const INTERPOLATION_END_TYPE = 11; - const ARROW_TYPE = 12; - - /** - * @param int $type The type of the token - * @param string $value The token value - * @param int $lineno The line position in the source - */ - public function __construct($type, $value, $lineno) - { - $this->type = $type; - $this->value = $value; - $this->lineno = $lineno; - } - - public function __toString() - { - return sprintf('%s(%s)', self::typeToString($this->type, true), $this->value); - } - - /** - * Tests the current token for a type and/or a value. - * - * Parameters may be: - * * just type - * * type and value (or array of possible values) - * * just value (or array of possible values) (NAME_TYPE is used as type) - * - * @param array|string|int $type The type to test - * @param array|string|null $values The token value - * - * @return bool - */ - public function test($type, $values = null) - { - if (null === $values && !\is_int($type)) { - $values = $type; - $type = self::NAME_TYPE; - } - - return ($this->type === $type) && ( - null === $values || - (\is_array($values) && \in_array($this->value, $values)) || - $this->value == $values - ); - } - - /** - * @return int - */ - public function getLine() - { - return $this->lineno; - } - - /** - * @return int - */ - public function getType() - { - return $this->type; - } - - /** - * @return string - */ - public function getValue() - { - return $this->value; - } - - /** - * Returns the constant representation (internal) of a given type. - * - * @param int $type The type as an integer - * @param bool $short Whether to return a short representation or not - * - * @return string The string representation - */ - public static function typeToString($type, $short = false) - { - switch ($type) { - case self::EOF_TYPE: - $name = 'EOF_TYPE'; - break; - case self::TEXT_TYPE: - $name = 'TEXT_TYPE'; - break; - case self::BLOCK_START_TYPE: - $name = 'BLOCK_START_TYPE'; - break; - case self::VAR_START_TYPE: - $name = 'VAR_START_TYPE'; - break; - case self::BLOCK_END_TYPE: - $name = 'BLOCK_END_TYPE'; - break; - case self::VAR_END_TYPE: - $name = 'VAR_END_TYPE'; - break; - case self::NAME_TYPE: - $name = 'NAME_TYPE'; - break; - case self::NUMBER_TYPE: - $name = 'NUMBER_TYPE'; - break; - case self::STRING_TYPE: - $name = 'STRING_TYPE'; - break; - case self::OPERATOR_TYPE: - $name = 'OPERATOR_TYPE'; - break; - case self::PUNCTUATION_TYPE: - $name = 'PUNCTUATION_TYPE'; - break; - case self::INTERPOLATION_START_TYPE: - $name = 'INTERPOLATION_START_TYPE'; - break; - case self::INTERPOLATION_END_TYPE: - $name = 'INTERPOLATION_END_TYPE'; - break; - case self::ARROW_TYPE: - $name = 'ARROW_TYPE'; - break; - default: - throw new \LogicException(sprintf('Token of type "%s" does not exist.', $type)); - } - - return $short ? $name : 'Twig\Token::'.$name; - } - - /** - * Returns the English representation of a given type. - * - * @param int $type The type as an integer - * - * @return string The string representation - */ - public static function typeToEnglish($type) - { - switch ($type) { - case self::EOF_TYPE: - return 'end of template'; - case self::TEXT_TYPE: - return 'text'; - case self::BLOCK_START_TYPE: - return 'begin of statement block'; - case self::VAR_START_TYPE: - return 'begin of print statement'; - case self::BLOCK_END_TYPE: - return 'end of statement block'; - case self::VAR_END_TYPE: - return 'end of print statement'; - case self::NAME_TYPE: - return 'name'; - case self::NUMBER_TYPE: - return 'number'; - case self::STRING_TYPE: - return 'string'; - case self::OPERATOR_TYPE: - return 'operator'; - case self::PUNCTUATION_TYPE: - return 'punctuation'; - case self::INTERPOLATION_START_TYPE: - return 'begin of string interpolation'; - case self::INTERPOLATION_END_TYPE: - return 'end of string interpolation'; - case self::ARROW_TYPE: - return 'arrow function'; - default: - throw new \LogicException(sprintf('Token of type "%s" does not exist.', $type)); - } - } -} - -class_alias('Twig\Token', 'Twig_Token'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/AbstractTokenParser.php b/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/AbstractTokenParser.php deleted file mode 100644 index 2c2f90b..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/AbstractTokenParser.php +++ /dev/null @@ -1,34 +0,0 @@ - - */ -abstract class AbstractTokenParser implements TokenParserInterface -{ - /** - * @var Parser - */ - protected $parser; - - public function setParser(Parser $parser) - { - $this->parser = $parser; - } -} - -class_alias('Twig\TokenParser\AbstractTokenParser', 'Twig_TokenParser'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/ApplyTokenParser.php b/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/ApplyTokenParser.php deleted file mode 100644 index 879879a..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/ApplyTokenParser.php +++ /dev/null @@ -1,58 +0,0 @@ -getLine(); - $name = $this->parser->getVarName(); - - $ref = new TempNameExpression($name, $lineno); - $ref->setAttribute('always_defined', true); - - $filter = $this->parser->getExpressionParser()->parseFilterExpressionRaw($ref, $this->getTag()); - - $this->parser->getStream()->expect(Token::BLOCK_END_TYPE); - $body = $this->parser->subparse([$this, 'decideApplyEnd'], true); - $this->parser->getStream()->expect(Token::BLOCK_END_TYPE); - - return new Node([ - new SetNode(true, $ref, $body, $lineno, $this->getTag()), - new PrintNode($filter, $lineno, $this->getTag()), - ]); - } - - public function decideApplyEnd(Token $token) - { - return $token->test('endapply'); - } - - public function getTag() - { - return 'apply'; - } -} diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/AutoEscapeTokenParser.php b/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/AutoEscapeTokenParser.php deleted file mode 100644 index 10fdb81..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/AutoEscapeTokenParser.php +++ /dev/null @@ -1,57 +0,0 @@ -getLine(); - $stream = $this->parser->getStream(); - - if ($stream->test(/* Token::BLOCK_END_TYPE */ 3)) { - $value = 'html'; - } else { - $expr = $this->parser->getExpressionParser()->parseExpression(); - if (!$expr instanceof ConstantExpression) { - throw new SyntaxError('An escaping strategy must be a string or false.', $stream->getCurrent()->getLine(), $stream->getSourceContext()); - } - $value = $expr->getAttribute('value'); - } - - $stream->expect(/* Token::BLOCK_END_TYPE */ 3); - $body = $this->parser->subparse([$this, 'decideBlockEnd'], true); - $stream->expect(/* Token::BLOCK_END_TYPE */ 3); - - return new AutoEscapeNode($value, $body, $lineno, $this->getTag()); - } - - public function decideBlockEnd(Token $token) - { - return $token->test('endautoescape'); - } - - public function getTag() - { - return 'autoescape'; - } -} - -class_alias('Twig\TokenParser\AutoEscapeTokenParser', 'Twig_TokenParser_AutoEscape'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/BlockTokenParser.php b/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/BlockTokenParser.php deleted file mode 100644 index 449a2c0..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/BlockTokenParser.php +++ /dev/null @@ -1,78 +0,0 @@ - - * {% block title %}{% endblock %} - My Webpage - * {% endblock %} - */ -final class BlockTokenParser extends AbstractTokenParser -{ - public function parse(Token $token) - { - $lineno = $token->getLine(); - $stream = $this->parser->getStream(); - $name = $stream->expect(/* Token::NAME_TYPE */ 5)->getValue(); - if ($this->parser->hasBlock($name)) { - throw new SyntaxError(sprintf("The block '%s' has already been defined line %d.", $name, $this->parser->getBlock($name)->getTemplateLine()), $stream->getCurrent()->getLine(), $stream->getSourceContext()); - } - $this->parser->setBlock($name, $block = new BlockNode($name, new Node([]), $lineno)); - $this->parser->pushLocalScope(); - $this->parser->pushBlockStack($name); - - if ($stream->nextIf(/* Token::BLOCK_END_TYPE */ 3)) { - $body = $this->parser->subparse([$this, 'decideBlockEnd'], true); - if ($token = $stream->nextIf(/* Token::NAME_TYPE */ 5)) { - $value = $token->getValue(); - - if ($value != $name) { - throw new SyntaxError(sprintf('Expected endblock for block "%s" (but "%s" given).', $name, $value), $stream->getCurrent()->getLine(), $stream->getSourceContext()); - } - } - } else { - $body = new Node([ - new PrintNode($this->parser->getExpressionParser()->parseExpression(), $lineno), - ]); - } - $stream->expect(/* Token::BLOCK_END_TYPE */ 3); - - $block->setNode('body', $body); - $this->parser->popBlockStack(); - $this->parser->popLocalScope(); - - return new BlockReferenceNode($name, $lineno, $this->getTag()); - } - - public function decideBlockEnd(Token $token) - { - return $token->test('endblock'); - } - - public function getTag() - { - return 'block'; - } -} - -class_alias('Twig\TokenParser\BlockTokenParser', 'Twig_TokenParser_Block'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/DeprecatedTokenParser.php b/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/DeprecatedTokenParser.php deleted file mode 100644 index 6575cff..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/DeprecatedTokenParser.php +++ /dev/null @@ -1,44 +0,0 @@ - - * - * @final - */ -class DeprecatedTokenParser extends AbstractTokenParser -{ - public function parse(Token $token) - { - $expr = $this->parser->getExpressionParser()->parseExpression(); - - $this->parser->getStream()->expect(Token::BLOCK_END_TYPE); - - return new DeprecatedNode($expr, $token->getLine(), $this->getTag()); - } - - public function getTag() - { - return 'deprecated'; - } -} - -class_alias('Twig\TokenParser\DeprecatedTokenParser', 'Twig_TokenParser_Deprecated'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/DoTokenParser.php b/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/DoTokenParser.php deleted file mode 100644 index e5a07d6..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/DoTokenParser.php +++ /dev/null @@ -1,37 +0,0 @@ -parser->getExpressionParser()->parseExpression(); - - $this->parser->getStream()->expect(/* Token::BLOCK_END_TYPE */ 3); - - return new DoNode($expr, $token->getLine(), $this->getTag()); - } - - public function getTag() - { - return 'do'; - } -} - -class_alias('Twig\TokenParser\DoTokenParser', 'Twig_TokenParser_Do'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/EmbedTokenParser.php b/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/EmbedTokenParser.php deleted file mode 100644 index 83a545e..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/EmbedTokenParser.php +++ /dev/null @@ -1,72 +0,0 @@ -parser->getStream(); - - $parent = $this->parser->getExpressionParser()->parseExpression(); - - list($variables, $only, $ignoreMissing) = $this->parseArguments(); - - $parentToken = $fakeParentToken = new Token(/* Token::STRING_TYPE */ 7, '__parent__', $token->getLine()); - if ($parent instanceof ConstantExpression) { - $parentToken = new Token(/* Token::STRING_TYPE */ 7, $parent->getAttribute('value'), $token->getLine()); - } elseif ($parent instanceof NameExpression) { - $parentToken = new Token(/* Token::NAME_TYPE */ 5, $parent->getAttribute('name'), $token->getLine()); - } - - // inject a fake parent to make the parent() function work - $stream->injectTokens([ - new Token(/* Token::BLOCK_START_TYPE */ 1, '', $token->getLine()), - new Token(/* Token::NAME_TYPE */ 5, 'extends', $token->getLine()), - $parentToken, - new Token(/* Token::BLOCK_END_TYPE */ 3, '', $token->getLine()), - ]); - - $module = $this->parser->parse($stream, [$this, 'decideBlockEnd'], true); - - // override the parent with the correct one - if ($fakeParentToken === $parentToken) { - $module->setNode('parent', $parent); - } - - $this->parser->embedTemplate($module); - - $stream->expect(/* Token::BLOCK_END_TYPE */ 3); - - return new EmbedNode($module->getTemplateName(), $module->getAttribute('index'), $variables, $only, $ignoreMissing, $token->getLine(), $this->getTag()); - } - - public function decideBlockEnd(Token $token) - { - return $token->test('endembed'); - } - - public function getTag() - { - return 'embed'; - } -} - -class_alias('Twig\TokenParser\EmbedTokenParser', 'Twig_TokenParser_Embed'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/ExtendsTokenParser.php b/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/ExtendsTokenParser.php deleted file mode 100644 index a44980f..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/ExtendsTokenParser.php +++ /dev/null @@ -1,52 +0,0 @@ -parser->getStream(); - - if ($this->parser->peekBlockStack()) { - throw new SyntaxError('Cannot use "extend" in a block.', $token->getLine(), $stream->getSourceContext()); - } elseif (!$this->parser->isMainScope()) { - throw new SyntaxError('Cannot use "extend" in a macro.', $token->getLine(), $stream->getSourceContext()); - } - - if (null !== $this->parser->getParent()) { - throw new SyntaxError('Multiple extends tags are forbidden.', $token->getLine(), $stream->getSourceContext()); - } - $this->parser->setParent($this->parser->getExpressionParser()->parseExpression()); - - $stream->expect(Token::BLOCK_END_TYPE); - - return new Node(); - } - - public function getTag() - { - return 'extends'; - } -} - -class_alias('Twig\TokenParser\ExtendsTokenParser', 'Twig_TokenParser_Extends'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/FilterTokenParser.php b/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/FilterTokenParser.php deleted file mode 100644 index e57fc90..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/FilterTokenParser.php +++ /dev/null @@ -1,64 +0,0 @@ -parser->getStream(); - $lineno = $token->getLine(); - - @trigger_error(sprintf('The "filter" tag in "%s" at line %d is deprecated since Twig 2.9, use the "apply" tag instead.', $stream->getSourceContext()->getName(), $lineno), E_USER_DEPRECATED); - - $name = $this->parser->getVarName(); - $ref = new BlockReferenceExpression(new ConstantExpression($name, $lineno), null, $lineno, $this->getTag()); - - $filter = $this->parser->getExpressionParser()->parseFilterExpressionRaw($ref, $this->getTag()); - $stream->expect(/* Token::BLOCK_END_TYPE */ 3); - - $body = $this->parser->subparse([$this, 'decideBlockEnd'], true); - $stream->expect(/* Token::BLOCK_END_TYPE */ 3); - - $block = new BlockNode($name, $body, $lineno); - $this->parser->setBlock($name, $block); - - return new PrintNode($filter, $lineno, $this->getTag()); - } - - public function decideBlockEnd(Token $token) - { - return $token->test('endfilter'); - } - - public function getTag() - { - return 'filter'; - } -} - -class_alias('Twig\TokenParser\FilterTokenParser', 'Twig_TokenParser_Filter'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/FlushTokenParser.php b/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/FlushTokenParser.php deleted file mode 100644 index 70f4339..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/FlushTokenParser.php +++ /dev/null @@ -1,37 +0,0 @@ -parser->getStream()->expect(/* Token::BLOCK_END_TYPE */ 3); - - return new FlushNode($token->getLine(), $this->getTag()); - } - - public function getTag() - { - return 'flush'; - } -} - -class_alias('Twig\TokenParser\FlushTokenParser', 'Twig_TokenParser_Flush'); diff --git a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/ForTokenParser.php b/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/ForTokenParser.php deleted file mode 100644 index 34430f0..0000000 --- a/srcs/phpmyadmin/vendor/twig/twig/src/TokenParser/ForTokenParser.php +++ /dev/null @@ -1,137 +0,0 @@ - - * {% for user in users %} - *